From eb606312ebbcffcd07030f5e54f0dca297c8ac89 Mon Sep 17 00:00:00 2001 From: Roderick Monje Date: Thu, 18 Oct 2018 13:55:07 -0400 Subject: [PATCH 1/7] test: covered bug --- test/test_faker_internet.rb | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/test/test_faker_internet.rb b/test/test_faker_internet.rb index ca9a7945f9..eb65e6c6a1 100644 --- a/test/test_faker_internet.rb +++ b/test/test_faker_internet.rb @@ -48,6 +48,10 @@ def test_username_with_integer_arg end end + def test_username_with_utf_8_arg + assert @tester.username('Łucja').match('Łucja') + end + def test_username_with_very_large_integer_arg exception = assert_raises(ArgumentError) { @tester.username(10_000_000) } assert_equal('Given argument is too large', exception.message) From 30f520ba8108b26d783b56b09c80e63538c39a12 Mon Sep 17 00:00:00 2001 From: Roderick Monje Date: Thu, 18 Oct 2018 14:14:49 -0400 Subject: [PATCH 2/7] fix: passed --- lib/faker/internet.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/faker/internet.rb b/lib/faker/internet.rb index 62ffc1b7e4..25ca47f165 100644 --- a/lib/faker/internet.rb +++ b/lib/faker/internet.rb @@ -21,7 +21,7 @@ def safe_email(name = nil) def username(specifier = nil, separators = %w[. _]) with_locale(:en) do - return shuffle(specifier.scan(/\w+/)).join(sample(separators)).downcase if specifier.respond_to?(:scan) + return shuffle(specifier.scan(/[[:word:]]+/).join(sample(separators)).downcase if specifier.respond_to?(:scan) if specifier.is_a?(Integer) # If specifier is Integer and has large value, Argument error exception is raised to overcome memory full error From e85cedd439364b8d8083247f4d6c4799aa1fe70e Mon Sep 17 00:00:00 2001 From: Roderick Monje Date: Thu, 18 Oct 2018 14:31:03 -0400 Subject: [PATCH 3/7] fix: typo --- lib/faker/internet.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/faker/internet.rb b/lib/faker/internet.rb index 25ca47f165..b47b0fc9f2 100644 --- a/lib/faker/internet.rb +++ b/lib/faker/internet.rb @@ -21,7 +21,7 @@ def safe_email(name = nil) def username(specifier = nil, separators = %w[. _]) with_locale(:en) do - return shuffle(specifier.scan(/[[:word:]]+/).join(sample(separators)).downcase if specifier.respond_to?(:scan) + return shuffle(specifier.scan(/[[:word:]]+/)).join(sample(separators)).downcase if specifier.respond_to?(:scan) if specifier.is_a?(Integer) # If specifier is Integer and has large value, Argument error exception is raised to overcome memory full error From 169489bfc47c74803ffc9a93ec56a0b1f75bcdfd Mon Sep 17 00:00:00 2001 From: Vitor Oliveira Date: Thu, 18 Oct 2018 23:47:14 -0300 Subject: [PATCH 4/7] Minor fix --- test/test_faker_internet.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/test_faker_internet.rb b/test/test_faker_internet.rb index eb65e6c6a1..f96eb0ea84 100644 --- a/test/test_faker_internet.rb +++ b/test/test_faker_internet.rb @@ -49,7 +49,7 @@ def test_username_with_integer_arg end def test_username_with_utf_8_arg - assert @tester.username('Łucja').match('Łucja') + assert @tester.username('Łucja').match('łucja') end def test_username_with_very_large_integer_arg From 18de3862ccbfcba43fa134d4979b369cc2a4222d Mon Sep 17 00:00:00 2001 From: Vitor Oliveira Date: Fri, 19 Oct 2018 00:30:49 -0300 Subject: [PATCH 5/7] Fix test_username_with_utf_8_arg - Faker::Internet.user_name --- test/test_faker_internet.rb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/test/test_faker_internet.rb b/test/test_faker_internet.rb index f96eb0ea84..849f79fa06 100644 --- a/test/test_faker_internet.rb +++ b/test/test_faker_internet.rb @@ -49,7 +49,11 @@ def test_username_with_integer_arg end def test_username_with_utf_8_arg - assert @tester.username('Łucja').match('łucja') + if RUBY_VERSION < '2.4.0' + assert @tester.username('Łucja').match('Łucja') + else + assert @tester.username('Łucja').match('łucja') + end end def test_username_with_very_large_integer_arg From eadc82963622b8db01879c01bb81a02eefa61f5f Mon Sep 17 00:00:00 2001 From: Vitor Oliveira Date: Fri, 19 Oct 2018 00:37:11 -0300 Subject: [PATCH 6/7] Add comment above test_username_with_utf_8_arg --- test/test_faker_internet.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/test/test_faker_internet.rb b/test/test_faker_internet.rb index 849f79fa06..ebca839637 100644 --- a/test/test_faker_internet.rb +++ b/test/test_faker_internet.rb @@ -49,6 +49,7 @@ def test_username_with_integer_arg end def test_username_with_utf_8_arg + # RUBY_VERSION < '2.4.0' is not able to downcase or upcase umlauts if RUBY_VERSION < '2.4.0' assert @tester.username('Łucja').match('Łucja') else From f8470fb43b51b228a2914b2d7fcfa8be40c1f9aa Mon Sep 17 00:00:00 2001 From: Vitor Oliveira Date: Fri, 19 Oct 2018 16:21:09 -0300 Subject: [PATCH 7/7] Update test_faker_internet.rb --- test/test_faker_internet.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/test_faker_internet.rb b/test/test_faker_internet.rb index ebca839637..acb9948840 100644 --- a/test/test_faker_internet.rb +++ b/test/test_faker_internet.rb @@ -49,7 +49,7 @@ def test_username_with_integer_arg end def test_username_with_utf_8_arg - # RUBY_VERSION < '2.4.0' is not able to downcase or upcase umlauts + # RUBY_VERSION < '2.4.0' is not able to downcase or upcase non-ascii strings if RUBY_VERSION < '2.4.0' assert @tester.username('Łucja').match('Łucja') else