ffaker 2.21.0 → 2.23.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Changelog.md +131 -17
- data/Gemfile +15 -0
- data/README.md +18 -6
- data/REFERENCE.md +1012 -969
- data/Rakefile +16 -47
- data/bin/console +9 -0
- data/ffaker.gemspec +9 -23
- data/lib/ffaker/address.rb +4 -4
- data/lib/ffaker/address_fr.rb +3 -5
- data/lib/ffaker/address_it.rb +1 -4
- data/lib/ffaker/address_ua.rb +1 -1
- data/lib/ffaker/avatar.rb +11 -3
- data/lib/ffaker/bank.rb +1 -1
- data/lib/ffaker/bank_us.rb +33 -0
- data/lib/ffaker/book.rb +15 -7
- data/lib/ffaker/cheesy_lingo.rb +2 -2
- data/lib/ffaker/code.rb +1 -1
- data/lib/ffaker/company.rb +2 -2
- data/lib/ffaker/company_fr.rb +2 -2
- data/lib/ffaker/crypto.rb +14 -0
- data/lib/ffaker/data/address_de/state +1 -0
- data/lib/ffaker/data/jo_jo/first_names +356 -0
- data/lib/ffaker/data/jo_jo/full_names +225 -0
- data/lib/ffaker/data/jo_jo/last_names +153 -0
- data/lib/ffaker/data/jo_jo/stands +149 -0
- data/lib/ffaker/date.rb +40 -0
- data/lib/ffaker/filesystem.rb +12 -2
- data/lib/ffaker/geolocation.rb +2 -2
- data/lib/ffaker/identification_br.rb +3 -12
- data/lib/ffaker/identification_ec.rb +39 -0
- data/lib/ffaker/identification_es_cl.rb +2 -2
- data/lib/ffaker/identification_es_co.rb +1 -1
- data/lib/ffaker/identification_kr.rb +11 -4
- data/lib/ffaker/identification_pl.rb +6 -6
- data/lib/ffaker/identification_tw.rb +1 -1
- data/lib/ffaker/image.rb +28 -4
- data/lib/ffaker/jo_jo.rb +24 -0
- data/lib/ffaker/lorem_ja.rb +1 -1
- data/lib/ffaker/lorem_ru.rb +1 -1
- data/lib/ffaker/movie.rb +1 -1
- data/lib/ffaker/name_fr.rb +4 -3
- data/lib/ffaker/name_pl.rb +1 -1
- data/lib/ffaker/number.rb +6 -2
- data/lib/ffaker/phone_number_de.rb +3 -3
- data/lib/ffaker/skill.rb +1 -1
- data/lib/ffaker/ssn.rb +4 -2
- data/lib/ffaker/ssn_se.rb +2 -2
- data/lib/ffaker/string.rb +1 -1
- data/lib/ffaker/time.rb +3 -3
- data/lib/ffaker/utils/module_utils.rb +5 -6
- data/lib/ffaker/utils/unique_utils.rb +33 -21
- data/lib/ffaker/vehicle.rb +2 -2
- data/lib/{version.rb → ffaker/version.rb} +1 -1
- data/lib/ffaker.rb +63 -191
- data/scripts/reference.rb +8 -10
- data/test/helper.rb +3 -5
- data/test/test_address_da.rb +3 -3
- data/test/test_address_fi.rb +2 -2
- data/test/test_address_se.rb +2 -2
- data/test/test_avatar.rb +30 -7
- data/test/test_bank_us.rb +35 -0
- data/test/test_book.rb +29 -0
- data/test/test_cheesy_lingo.rb +1 -1
- data/test/test_color.rb +3 -3
- data/test/test_crypto.rb +15 -0
- data/test/test_date.rb +47 -0
- data/test/test_filesystem.rb +30 -4
- data/test/test_freedom_ipsum.rb +1 -1
- data/test/test_gender_it.rb +1 -1
- data/test/test_gender_ja.rb +1 -1
- data/test/test_gender_jp.rb +1 -1
- data/test/test_gender_pl.rb +1 -1
- data/test/test_healthcare_ru.rb +1 -1
- data/test/test_hipster_ipsum.rb +1 -1
- data/test/test_html_ipsum.rb +2 -2
- data/test/test_identification.rb +12 -2
- data/test/test_identification_ec.rb +33 -0
- data/test/test_identification_es_mx.rb +3 -1
- data/test/test_identification_it.rb +12 -1
- data/test/test_identification_kr.rb +3 -3
- data/test/test_image.rb +51 -5
- data/test/test_internet.rb +3 -1
- data/test/test_internet_se.rb +5 -2
- data/test/test_jo_jo.rb +29 -0
- data/test/test_lorem_br.rb +2 -2
- data/test/test_lorem_cn.rb +3 -3
- data/test/test_lorem_fr.rb +3 -3
- data/test/test_lorem_ie.rb +2 -2
- data/test/test_lorem_kr.rb +3 -3
- data/test/test_lorem_pl.rb +2 -2
- data/test/test_lorem_ru.rb +3 -3
- data/test/test_lorem_ua.rb +3 -3
- data/test/test_module_utils.rb +33 -0
- data/test/test_name_da.rb +1 -1
- data/test/test_name_ph.rb +1 -1
- data/test/test_name_ru.rb +2 -2
- data/test/test_name_ua.rb +2 -2
- data/test/test_number.rb +13 -1
- data/test/test_phone_number_nl.rb +1 -1
- data/test/test_phone_number_se.rb +1 -1
- data/test/test_phone_number_sg.rb +8 -8
- data/test/test_unique_utils.rb +29 -5
- data/test/test_units.rb +6 -6
- data/test/test_units_english.rb +15 -15
- data/test/test_units_metric.rb +15 -15
- data/test/test_vehicle.rb +22 -0
- metadata +24 -241
data/test/test_book.rb
CHANGED
@@ -39,6 +39,35 @@ class TestBook < Test::Unit::TestCase
|
|
39
39
|
@tester.cover)
|
40
40
|
end
|
41
41
|
|
42
|
+
def test_cover_with_format
|
43
|
+
assert_match(%r{\Ahttps://robohash\.org/.+\.jpg\?size=300x300\z},
|
44
|
+
@tester.cover(format: 'jpg'))
|
45
|
+
end
|
46
|
+
|
47
|
+
def test_cover_output_with_keyword_arguments
|
48
|
+
output = capture_output do
|
49
|
+
@tester.cover(format: 'jpg')
|
50
|
+
end
|
51
|
+
|
52
|
+
assert_equal ['', ''], output
|
53
|
+
end
|
54
|
+
|
55
|
+
def test_cover_with_slug_as_positional_argument
|
56
|
+
assert_match(%r{\Ahttps://robohash\.org/foobar\.png\?size=300x300\z},
|
57
|
+
@tester.cover('foobar'))
|
58
|
+
end
|
59
|
+
|
60
|
+
def test_cover_output_with_positional_arguments
|
61
|
+
output = capture_output do
|
62
|
+
@tester.cover('foobar')
|
63
|
+
end
|
64
|
+
|
65
|
+
assert_equal(
|
66
|
+
['', "Positional arguments for Book#cover are deprecated. Please use keyword arguments.\n"],
|
67
|
+
output
|
68
|
+
)
|
69
|
+
end
|
70
|
+
|
42
71
|
def test_orly_cover
|
43
72
|
assert_match(%r{\Ahttps://orly-appstore\.herokuapp\.com/generate},
|
44
73
|
@tester.orly_cover)
|
data/test/test_cheesy_lingo.rb
CHANGED
data/test/test_color.rb
CHANGED
@@ -5,9 +5,9 @@ require_relative 'helper'
|
|
5
5
|
class TestColor < Test::Unit::TestCase
|
6
6
|
include DeterministicHelper
|
7
7
|
|
8
|
-
VALID_RGB_REGEX = /\A([0-9]{1,3})\z
|
9
|
-
VALID_OPACITY_REGEX = /^([0-9].[0-9]{1,2})
|
10
|
-
VALID_PERCENTAGE_REGEX = /^([0-9]{1,3}%)
|
8
|
+
VALID_RGB_REGEX = /\A([0-9]{1,3})\z/
|
9
|
+
VALID_OPACITY_REGEX = /^([0-9].[0-9]{1,2})$/
|
10
|
+
VALID_PERCENTAGE_REGEX = /^([0-9]{1,3}%)$/
|
11
11
|
|
12
12
|
assert_methods_are_deterministic(
|
13
13
|
FFaker::Color,
|
data/test/test_crypto.rb
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'helper'
|
4
|
+
|
5
|
+
class TestCrypto < Test::Unit::TestCase
|
6
|
+
include DeterministicHelper
|
7
|
+
|
8
|
+
assert_methods_are_deterministic(FFaker::Crypto, :sha256)
|
9
|
+
|
10
|
+
def test_sha256
|
11
|
+
assert FFaker::Crypto.sha256.is_a?(String)
|
12
|
+
assert FFaker::Crypto.sha256.length == 64
|
13
|
+
assert_match(/\A[a-z\d]{64}\z/, FFaker::Crypto.sha256)
|
14
|
+
end
|
15
|
+
end
|
data/test/test_date.rb
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'helper'
|
4
|
+
|
5
|
+
class TestFakerDate < Test::Unit::TestCase
|
6
|
+
include DeterministicHelper
|
7
|
+
|
8
|
+
def setup
|
9
|
+
@tester = FFaker::Date
|
10
|
+
end
|
11
|
+
|
12
|
+
assert_methods_are_deterministic(FFaker::Date, :backward, :forward, :birthday)
|
13
|
+
|
14
|
+
def test_between
|
15
|
+
from = Date.new(2015, 1, 1)
|
16
|
+
to = Date.new(2016, 12, 31)
|
17
|
+
|
18
|
+
assert_random_between(from..to) { @tester.between(from, to) }
|
19
|
+
assert_instance_of Date, @tester.between(from, to)
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_backward
|
23
|
+
today = Date.today
|
24
|
+
|
25
|
+
assert_random_between(today - 365..today - 1) { @tester.backward }
|
26
|
+
assert_random_between(today - 30..today - 1) { @tester.backward(30) }
|
27
|
+
assert_instance_of Date, @tester.backward
|
28
|
+
end
|
29
|
+
|
30
|
+
def test_forward
|
31
|
+
today = Date.today
|
32
|
+
|
33
|
+
assert_random_between(today + 1..today + 365) { @tester.forward }
|
34
|
+
assert_random_between(today + 1..today + 30) { @tester.forward(30) }
|
35
|
+
assert_instance_of Date, @tester.forward
|
36
|
+
end
|
37
|
+
|
38
|
+
def test_birthday
|
39
|
+
today = Date.today
|
40
|
+
|
41
|
+
assert_random_between(today.prev_year(65).next_day..today.prev_year(18)) { @tester.birthday }
|
42
|
+
assert_random_between(today.prev_year(43).next_day..today.prev_year(42)) do
|
43
|
+
@tester.birthday(min_age: 42, max_age: 42)
|
44
|
+
end
|
45
|
+
assert_instance_of Date, @tester.birthday
|
46
|
+
end
|
47
|
+
end
|
data/test/test_filesystem.rb
CHANGED
@@ -15,10 +15,10 @@ class TestFakerFilesystem < Test::Unit::TestCase
|
|
15
15
|
end
|
16
16
|
|
17
17
|
def test_extension
|
18
|
-
assert_match
|
18
|
+
assert_match(/\A(?:flac|mp3|wav|bmp|gif|jpeg|jpg|png|tiff|css|csv|html|js|
|
19
19
|
json|txt|mp4|avi|mov|webm|doc|docx|xls|xlsx|ppt|pptx|odt|
|
20
20
|
ods|odp|pages|numbers|key|pdf)\z/x,
|
21
|
-
@tester.extension
|
21
|
+
@tester.extension)
|
22
22
|
end
|
23
23
|
|
24
24
|
def test_mime_type_format
|
@@ -30,7 +30,33 @@ class TestFakerFilesystem < Test::Unit::TestCase
|
|
30
30
|
end
|
31
31
|
|
32
32
|
def test_file_name
|
33
|
-
assert_match %r{\A(?:[a-z_-]+[\\/])+[a-z_-]+\.\w{2,4}\z},
|
34
|
-
|
33
|
+
assert_match %r{\A(?:[a-z_-]+[\\/])+[a-z_-]+\.\w{2,4}\z}, @tester.file_name
|
34
|
+
end
|
35
|
+
|
36
|
+
def test_file_name_with_extension
|
37
|
+
assert_match %r{\A(?:[a-z_-]+[\\/])+[a-z_-]+\.rb\z}, @tester.file_name(ext: 'rb')
|
38
|
+
end
|
39
|
+
|
40
|
+
def test_file_name_output_with_keyword_arguments
|
41
|
+
output = capture_output do
|
42
|
+
@tester.file_name(ext: 'rb')
|
43
|
+
end
|
44
|
+
|
45
|
+
assert_equal ['', ''], output
|
46
|
+
end
|
47
|
+
|
48
|
+
def test_file_name_with_directory_as_positional_argument
|
49
|
+
assert_match %r{\Asome_directory/[a-z_-]+\.\w{2,4}\z}, @tester.file_name('some_directory')
|
50
|
+
end
|
51
|
+
|
52
|
+
def test_file_name_output_with_positional_arguments
|
53
|
+
output = capture_output do
|
54
|
+
@tester.file_name('some_directory')
|
55
|
+
end
|
56
|
+
|
57
|
+
assert_equal(
|
58
|
+
['', "Positional arguments for Filesystem#file_name are deprecated. Please use keyword arguments.\n"],
|
59
|
+
output
|
60
|
+
)
|
35
61
|
end
|
36
62
|
end
|
data/test/test_freedom_ipsum.rb
CHANGED
data/test/test_gender_it.rb
CHANGED
data/test/test_gender_ja.rb
CHANGED
data/test/test_gender_jp.rb
CHANGED
data/test/test_gender_pl.rb
CHANGED
@@ -5,7 +5,7 @@ require_relative 'helper'
|
|
5
5
|
class TestFakerGenderPL < Test::Unit::TestCase
|
6
6
|
include DeterministicHelper
|
7
7
|
|
8
|
-
GENDER_REGEX = /\A(kobieta|mężczyzna)\z
|
8
|
+
GENDER_REGEX = /\A(kobieta|mężczyzna)\z/
|
9
9
|
|
10
10
|
assert_methods_are_deterministic(FFaker::GenderPL, :random)
|
11
11
|
|
data/test/test_healthcare_ru.rb
CHANGED
@@ -5,7 +5,7 @@ require_relative 'helper'
|
|
5
5
|
class TestHealthcareRU < Test::Unit::TestCase
|
6
6
|
include DeterministicHelper
|
7
7
|
|
8
|
-
SPECIALIZATION_REGEX = /\A[А-Яа-я\ ()
|
8
|
+
SPECIALIZATION_REGEX = /\A[А-Яа-я\ ()-]+\z/
|
9
9
|
|
10
10
|
assert_methods_are_deterministic(FFaker::HealthcareRU, :doctor_specialization)
|
11
11
|
|
data/test/test_hipster_ipsum.rb
CHANGED
@@ -10,7 +10,7 @@ class TestHipsterIpsum < Test::Unit::TestCase
|
|
10
10
|
:paragraph, :paragraphs, :sentence, :sentences, :word, :words
|
11
11
|
)
|
12
12
|
|
13
|
-
TEST_REGEX = /\+1|[ a-z]+/i
|
13
|
+
TEST_REGEX = /\+1|[ a-z]+/i
|
14
14
|
|
15
15
|
def test_paragraph
|
16
16
|
assert_match(TEST_REGEX, FFaker::HipsterIpsum.paragraph)
|
data/test/test_html_ipsum.rb
CHANGED
@@ -92,8 +92,8 @@ class TestHTMLIpsum < Test::Unit::TestCase
|
|
92
92
|
|
93
93
|
def test_fancy_string_tags
|
94
94
|
# It returns a string with at least one HTML tag
|
95
|
-
assert_match(%r{(<.*>[\w\s]
|
96
|
-
assert_match(%r{(<.*>[\w\s]
|
95
|
+
assert_match(%r{(<.*>[\w\s]+</\w+>){1}}i, FFaker::HTMLIpsum.fancy_string(1))
|
96
|
+
assert_match(%r{(<.*>[\w\s]+</\w+>){1}}i, FFaker::HTMLIpsum.fancy_string(3))
|
97
97
|
end
|
98
98
|
|
99
99
|
def test_fancy_string_breaks
|
data/test/test_identification.rb
CHANGED
@@ -15,7 +15,6 @@ class TestFakerIdentification < Test::Unit::TestCase
|
|
15
15
|
end
|
16
16
|
|
17
17
|
def test_drivers_license
|
18
|
-
###-###-##-###-#
|
19
18
|
drivers_license_regex = /\A[A-Z]\d{3}-\d{3}-\d{2}-\d{3}-\d{1}\z/
|
20
19
|
assert_match(drivers_license_regex, @tester.drivers_license)
|
21
20
|
end
|
@@ -29,7 +28,18 @@ class TestFakerIdentification < Test::Unit::TestCase
|
|
29
28
|
end
|
30
29
|
|
31
30
|
def test_ethnicity
|
32
|
-
ethnicity_regex = %r{
|
31
|
+
ethnicity_regex = %r{
|
32
|
+
\A(
|
33
|
+
African\ American|
|
34
|
+
Asian/Pacific\ Islander|
|
35
|
+
Caucasian|
|
36
|
+
Hispanic|
|
37
|
+
Native\ American|
|
38
|
+
Multiracial|
|
39
|
+
Other|
|
40
|
+
Prefer\ not\ to\ respond
|
41
|
+
)\z
|
42
|
+
}x
|
33
43
|
assert_match(ethnicity_regex, @tester.ethnicity)
|
34
44
|
end
|
35
45
|
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'helper'
|
4
|
+
|
5
|
+
class TestIdentificationEC < Test::Unit::TestCase
|
6
|
+
include DeterministicHelper
|
7
|
+
|
8
|
+
assert_methods_are_deterministic(FFaker::IdentificationEC, :ci)
|
9
|
+
|
10
|
+
def setup
|
11
|
+
@tester = FFaker::IdentificationEC
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_ci
|
15
|
+
assert_match(/^[0-9]{10}$/, @tester.ci)
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_last_digit
|
19
|
+
ci = @tester.ci
|
20
|
+
sum = 0
|
21
|
+
ci[0..8].chars.each_with_index do |char, index|
|
22
|
+
if index.even?
|
23
|
+
multiple = char.to_i * 2
|
24
|
+
sum += multiple > 9 ? multiple - 9 : multiple
|
25
|
+
else
|
26
|
+
sum += char.to_i
|
27
|
+
end
|
28
|
+
end
|
29
|
+
mod = sum % 10
|
30
|
+
mod = 10 - mod if mod.positive?
|
31
|
+
assert(ci[9].to_i == mod)
|
32
|
+
end
|
33
|
+
end
|
@@ -22,7 +22,9 @@ class TestIdentificationMX < Test::Unit::TestCase
|
|
22
22
|
|
23
23
|
def test_curp
|
24
24
|
or_curp_states_abbr = FFaker::IdentificationMX::ESTADOS_CURP.join('|')
|
25
|
-
re =
|
25
|
+
re = /
|
26
|
+
\A[a-z][aeioux][a-z]{2}\d{2}[0-1]\d[0-3]\d[hm](?:#{or_curp_states_abbr})[bcdfghjklmñpqrstvwxyz]{3}[0-9a-z]\d\z
|
27
|
+
/uix
|
26
28
|
assert_match(re, FFaker::IdentificationMX.curp)
|
27
29
|
end
|
28
30
|
end
|
@@ -28,7 +28,18 @@ class TestFakerIdentificationIT < Test::Unit::TestCase
|
|
28
28
|
end
|
29
29
|
|
30
30
|
def test_ethnicity
|
31
|
-
ethnicity_regex = %r{
|
31
|
+
ethnicity_regex = %r{
|
32
|
+
\A(
|
33
|
+
Afroamericano|
|
34
|
+
Asiatico/isolano\ del\ Pacifico|
|
35
|
+
Caucasico|
|
36
|
+
Ispanico|
|
37
|
+
Nativo\ americano|
|
38
|
+
Multirazziale|
|
39
|
+
Altro|
|
40
|
+
Preferisco\ non\ rispondere
|
41
|
+
)\z
|
42
|
+
}x
|
32
43
|
assert_match(ethnicity_regex, @tester.ethnicity)
|
33
44
|
end
|
34
45
|
end
|
@@ -2,13 +2,13 @@
|
|
2
2
|
|
3
3
|
require_relative 'helper'
|
4
4
|
|
5
|
-
class
|
5
|
+
class TestFakerIdentificationKR < Test::Unit::TestCase
|
6
6
|
include DeterministicHelper
|
7
7
|
|
8
|
-
assert_methods_are_deterministic(FFaker::
|
8
|
+
assert_methods_are_deterministic(FFaker::IdentificationKR, :rrn)
|
9
9
|
|
10
10
|
def setup
|
11
|
-
@tester = FFaker::
|
11
|
+
@tester = FFaker::IdentificationKR
|
12
12
|
end
|
13
13
|
|
14
14
|
def test_rrn
|
data/test/test_image.rb
CHANGED
@@ -18,34 +18,80 @@ class TestImage < Test::Unit::TestCase
|
|
18
18
|
@tester.url)
|
19
19
|
end
|
20
20
|
|
21
|
+
def test_url_output_with_keyword_arguments
|
22
|
+
output = capture_output do
|
23
|
+
@tester.url(format: 'jpg')
|
24
|
+
end
|
25
|
+
|
26
|
+
assert_equal ['', ''], output
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_url_with_size_as_positional_argument
|
30
|
+
assert_match(%r(#{Regexp.quote(PLACEHOLDER)}150x320/[0-9a-f]{6}/[0-9a-f]{6}\.png\?text=), @tester.url('150x320'))
|
31
|
+
end
|
32
|
+
|
33
|
+
def test_url_output_with_positional_arguments
|
34
|
+
output = capture_output do
|
35
|
+
@tester.url('150x320')
|
36
|
+
end
|
37
|
+
|
38
|
+
assert_equal(
|
39
|
+
['', "Positional arguments for Image#url are deprecated. Please use keyword arguments.\n"],
|
40
|
+
output
|
41
|
+
)
|
42
|
+
end
|
43
|
+
|
21
44
|
def test_image_url_with_param
|
22
45
|
assert_equal("#{PLACEHOLDER}300x300//.png?text=",
|
23
|
-
@tester.url('300x300', 'png', nil, nil))
|
46
|
+
@tester.url(size: '300x300', format: 'png', bg_color: nil, text_color: nil))
|
24
47
|
end
|
25
48
|
|
26
49
|
def test_image_url_with_correct_size
|
27
50
|
assert_match(%r(#{Regexp.quote(PLACEHOLDER)}150x320/[0-9a-f]{6}/[0-9a-f]{6}\.png\?text=),
|
28
|
-
@tester.url('150x320'))
|
51
|
+
@tester.url(size: '150x320'))
|
29
52
|
end
|
30
53
|
|
31
54
|
def test_image_url_with_incorrect_size
|
32
55
|
assert_raise ArgumentError do
|
33
|
-
@tester.url('150x320z')
|
56
|
+
@tester.url(size: '150x320z')
|
34
57
|
end
|
35
58
|
end
|
36
59
|
|
37
60
|
def test_image_url_with_supported_format
|
38
61
|
assert_match(%r(#{Regexp.quote(PLACEHOLDER)}300x300/[0-9a-f]{6}/[0-9a-f]{6}\.jpg\?text=),
|
39
|
-
@tester.url('300x300', 'jpg'))
|
62
|
+
@tester.url(size: '300x300', format: 'jpg'))
|
40
63
|
end
|
41
64
|
|
42
65
|
def test_image_url_with_incorrect_format
|
43
66
|
assert_raise ArgumentError do
|
44
|
-
@tester.url('300x300', 'wrong_format')
|
67
|
+
@tester.url(size: '300x300', format: 'wrong_format')
|
45
68
|
end
|
46
69
|
end
|
47
70
|
|
48
71
|
def test_image_file
|
49
72
|
assert_equal(@tester.file.class.name, 'File')
|
50
73
|
end
|
74
|
+
|
75
|
+
def test_file_output_with_keyword_arguments
|
76
|
+
output = capture_output do
|
77
|
+
@tester.file(format: 'jpg')
|
78
|
+
end
|
79
|
+
|
80
|
+
assert_equal ['', ''], output
|
81
|
+
end
|
82
|
+
|
83
|
+
def test_file_with_size_as_positional_argument
|
84
|
+
assert_equal(@tester.file('150x320').class.name, 'File')
|
85
|
+
end
|
86
|
+
|
87
|
+
def test_file_output_with_positional_arguments
|
88
|
+
output = capture_output do
|
89
|
+
@tester.file('150x320')
|
90
|
+
end
|
91
|
+
|
92
|
+
assert_equal(
|
93
|
+
['', "Positional arguments for Image#file are deprecated. Please use keyword arguments.\n"],
|
94
|
+
output
|
95
|
+
)
|
96
|
+
end
|
51
97
|
end
|
data/test/test_internet.rb
CHANGED
@@ -29,7 +29,9 @@ class TestFakerInternet < Test::Unit::TestCase
|
|
29
29
|
end
|
30
30
|
|
31
31
|
def test_disposable_email
|
32
|
-
assert @tester.disposable_email.match(
|
32
|
+
assert @tester.disposable_email.match(
|
33
|
+
/.+@(mailinator\.com|suremail\.info|spamherelots\.com|binkmail\.com|safetymail\.info)/
|
34
|
+
)
|
33
35
|
end
|
34
36
|
|
35
37
|
def test_safe_email
|
data/test/test_internet_se.rb
CHANGED
@@ -25,12 +25,15 @@ class TestFakerInternetSE < Test::Unit::TestCase
|
|
25
25
|
end
|
26
26
|
|
27
27
|
def test_disposable_email
|
28
|
-
assert @tester.disposable_email.match(
|
28
|
+
assert @tester.disposable_email.match(
|
29
|
+
/.+@(mailinator\.com|suremail\.info|spamherelots\.com|binkmail\.com|safetymail\.info)/
|
30
|
+
)
|
29
31
|
end
|
30
32
|
|
31
33
|
def test_free_email
|
32
34
|
email = @tester.free_email
|
33
|
-
assert email.match(/.+@(gmail\.com|hotmail\.com|yahoo\.com|spray\.se|passagen\.se)/),
|
35
|
+
assert email.match(/.+@(gmail\.com|hotmail\.com|yahoo\.com|spray\.se|passagen\.se)/),
|
36
|
+
"mail: #{email} does not match"
|
34
37
|
end
|
35
38
|
|
36
39
|
def test_login_user_name
|
data/test/test_jo_jo.rb
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'helper'
|
4
|
+
|
5
|
+
class TestJoJo < Test::Unit::TestCase
|
6
|
+
include DeterministicHelper
|
7
|
+
|
8
|
+
assert_methods_are_deterministic(FFaker::JoJo, :full_name, :first_name, :last_name, :stand)
|
9
|
+
|
10
|
+
def setup
|
11
|
+
@tester = FFaker::JoJo
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_full_name
|
15
|
+
assert_include @tester::FULL_NAMES, @tester.full_name
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_first_name
|
19
|
+
assert_include @tester::FIRST_NAMES, @tester.first_name
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_last_name
|
23
|
+
assert_include @tester::LAST_NAMES, @tester.last_name
|
24
|
+
end
|
25
|
+
|
26
|
+
def test_stand
|
27
|
+
assert_include @tester::STANDS, @tester.stand
|
28
|
+
end
|
29
|
+
end
|
data/test/test_lorem_br.rb
CHANGED
@@ -10,9 +10,9 @@ class TestLoremBR < Test::Unit::TestCase
|
|
10
10
|
:paragraph, :sentence, :phrase, :paragraphs, :sentences, :phrases, :words, :word, :characters
|
11
11
|
)
|
12
12
|
|
13
|
-
CHARACTERS = /\A[A-zÀ-ü0-9]+\z/i
|
13
|
+
CHARACTERS = /\A[A-zÀ-ü0-9]+\z/i
|
14
14
|
WORD = /\A[A-zÀ-ü-]+\z/i
|
15
|
-
WORDS = /[ A-z
|
15
|
+
WORDS = /[ A-zÀ-ü\-.]+/i
|
16
16
|
|
17
17
|
def test_paragraph
|
18
18
|
assert_match(WORDS, FFaker::LoremBR.paragraph)
|
data/test/test_lorem_cn.rb
CHANGED
@@ -27,7 +27,7 @@ class TestLoremCN < Test::Unit::TestCase
|
|
27
27
|
end
|
28
28
|
|
29
29
|
def test_paragraphs_is_an_array
|
30
|
-
assert FFaker::LoremCN.paragraphs.
|
30
|
+
assert FFaker::LoremCN.paragraphs.instance_of?(Array)
|
31
31
|
end
|
32
32
|
|
33
33
|
def test_sentences
|
@@ -35,12 +35,12 @@ class TestLoremCN < Test::Unit::TestCase
|
|
35
35
|
end
|
36
36
|
|
37
37
|
def test_sentences_is_an_array
|
38
|
-
assert FFaker::LoremCN.sentences.
|
38
|
+
assert FFaker::LoremCN.sentences.instance_of?(Array)
|
39
39
|
end
|
40
40
|
|
41
41
|
def test_sentences_via_to_s_produces_string_terminated_with_period
|
42
42
|
string = FFaker::LoremCN.sentences.to_s
|
43
|
-
assert string.
|
43
|
+
assert string.instance_of?(String)
|
44
44
|
assert string =~ /。$/
|
45
45
|
end
|
46
46
|
|
data/test/test_lorem_fr.rb
CHANGED
@@ -10,9 +10,9 @@ class TestLoremFR < Test::Unit::TestCase
|
|
10
10
|
:paragraph, :paragraphs, :sentence, :sentences, :phrase, :phrases, :word, :words
|
11
11
|
)
|
12
12
|
|
13
|
-
REGEX = /\A[ -.ÀÂÉÈÊÎÔÚÛàâéèêîôùûa-z]+\z/i
|
14
|
-
REGEX_WORD = /\A[-ÀÂÉÈÊÎÔÚÛàâéèêîôùûa-z]+\z/i
|
15
|
-
REGEX_WORDS = /\A[ -ÀÂÉÈÊÎÔÚÛàâéèêîôùûa-z]+\z/i
|
13
|
+
REGEX = /\A[ -.ÀÂÉÈÊÎÔÚÛàâéèêîôùûa-z]+\z/i
|
14
|
+
REGEX_WORD = /\A[-ÀÂÉÈÊÎÔÚÛàâéèêîôùûa-z]+\z/i
|
15
|
+
REGEX_WORDS = /\A[ -ÀÂÉÈÊÎÔÚÛàâéèêîôùûa-z]+\z/i
|
16
16
|
|
17
17
|
def test_paragraph
|
18
18
|
assert_match(REGEX, FFaker::LoremFR.paragraph)
|
data/test/test_lorem_ie.rb
CHANGED
@@ -11,8 +11,8 @@ class TestLoremIE < Test::Unit::TestCase
|
|
11
11
|
:phrase, :phrases, :word, :words, :question
|
12
12
|
)
|
13
13
|
|
14
|
-
WORDS_REGEX = /\A[\w\W]+\z/i
|
15
|
-
WORD_REGEX = /\A[áéíóúa-z]+\z/i
|
14
|
+
WORDS_REGEX = /\A[\w\W]+\z/i # spaces, alphanumeric & perioids, etc.
|
15
|
+
WORD_REGEX = /\A[áéíóúa-z]+\z/i
|
16
16
|
|
17
17
|
def test_paragraph
|
18
18
|
assert_match(WORDS_REGEX, FFaker::LoremIE.paragraph)
|
data/test/test_lorem_kr.rb
CHANGED
@@ -5,9 +5,9 @@ require_relative 'helper'
|
|
5
5
|
class TestLoremKR < Test::Unit::TestCase
|
6
6
|
include DeterministicHelper
|
7
7
|
|
8
|
-
KOREAN_SENTENCE_MATCHER = /\A[ .가-힣]+\z
|
9
|
-
KOREAN_WORDS_MATCHER = /\A[ 가-힣]+\z
|
10
|
-
KOREAN_WORD_MATCHER = /\A[가-힣]+\z
|
8
|
+
KOREAN_SENTENCE_MATCHER = /\A[ .가-힣]+\z/
|
9
|
+
KOREAN_WORDS_MATCHER = /\A[ 가-힣]+\z/
|
10
|
+
KOREAN_WORD_MATCHER = /\A[가-힣]+\z/
|
11
11
|
|
12
12
|
assert_methods_are_deterministic(
|
13
13
|
FFaker::LoremKR,
|
data/test/test_lorem_pl.rb
CHANGED
@@ -5,8 +5,8 @@ require_relative 'helper'
|
|
5
5
|
class TestFakerLoremPL < Test::Unit::TestCase
|
6
6
|
include DeterministicHelper
|
7
7
|
|
8
|
-
POLISH_WORD_MATCHER = /\A[A-Ża-ż\s]+\z
|
9
|
-
POLISH_SENTENCE_MATCHER = /\A[A-Ża-ż\s.!?,]+\z
|
8
|
+
POLISH_WORD_MATCHER = /\A[A-Ża-ż\s]+\z/
|
9
|
+
POLISH_SENTENCE_MATCHER = /\A[A-Ża-ż\s.!?,]+\z/
|
10
10
|
|
11
11
|
assert_methods_are_deterministic(
|
12
12
|
FFaker::LoremPL,
|
data/test/test_lorem_ru.rb
CHANGED
@@ -5,9 +5,9 @@ require_relative 'helper'
|
|
5
5
|
class TestLoremRU < Test::Unit::TestCase
|
6
6
|
include DeterministicHelper
|
7
7
|
|
8
|
-
SENTENCE_MATCHER = /\A[а-яА-ЯёЁ\-\s.!?,]+\z
|
9
|
-
WORDS_MATCHER = /\A[А-Яа-яёЁ\-\s]+\z
|
10
|
-
WORD_MATCHER = /\A[
|
8
|
+
SENTENCE_MATCHER = /\A[а-яА-ЯёЁ\-\s.!?,]+\z/
|
9
|
+
WORDS_MATCHER = /\A[А-Яа-яёЁ\-\s]+\z/
|
10
|
+
WORD_MATCHER = /\A[А-Яа-яёЁ-]+\z/
|
11
11
|
|
12
12
|
assert_methods_are_deterministic(
|
13
13
|
FFaker::LoremRU,
|
data/test/test_lorem_ua.rb
CHANGED
@@ -5,9 +5,9 @@ require_relative 'helper'
|
|
5
5
|
class TestLoremUA < Test::Unit::TestCase
|
6
6
|
include DeterministicHelper
|
7
7
|
|
8
|
-
SENTENCE_MATCHER = /\A[а-яА-ЯіїєґІЇЄҐ’\-\s.!?,]+\z
|
9
|
-
WORDS_MATCHER = /\A[а-яА-ЯіїєґІЇЄҐ’\-\s]+\z
|
10
|
-
WORD_MATCHER = /\A[
|
8
|
+
SENTENCE_MATCHER = /\A[а-яА-ЯіїєґІЇЄҐ’\-\s.!?,]+\z/
|
9
|
+
WORDS_MATCHER = /\A[а-яА-ЯіїєґІЇЄҐ’\-\s]+\z/
|
10
|
+
WORD_MATCHER = /\A[а-яА-ЯіїєґІЇЄҐ’-]+\z/
|
11
11
|
|
12
12
|
assert_methods_are_deterministic(
|
13
13
|
FFaker::LoremUA,
|