ffaker 2.2.0 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Changelog.md +34 -0
- data/README.md +4 -0
- data/REFERENCE.md +1153 -800
- data/Rakefile +23 -24
- data/ffaker.gemspec +12 -420
- data/lib/ffaker.rb +47 -7
- data/lib/ffaker/address.rb +11 -11
- data/lib/ffaker/address_au.rb +60 -60
- data/lib/ffaker/address_br.rb +5 -5
- data/lib/ffaker/address_ca.rb +7 -7
- data/lib/ffaker/address_ch.rb +1 -2
- data/lib/ffaker/address_ch_de.rb +1 -1
- data/lib/ffaker/address_ch_fr.rb +1 -1
- data/lib/ffaker/address_ch_it.rb +1 -1
- data/lib/ffaker/address_da.rb +5 -5
- data/lib/ffaker/address_de.rb +16 -12
- data/lib/ffaker/address_fi.rb +7 -8
- data/lib/ffaker/address_fr.rb +13 -13
- data/lib/ffaker/address_gr.rb +40 -0
- data/lib/ffaker/address_in.rb +12 -12
- data/lib/ffaker/address_kr.rb +87 -0
- data/lib/ffaker/address_mx.rb +409 -409
- data/lib/ffaker/address_nl.rb +17 -13
- data/lib/ffaker/address_ru.rb +6 -6
- data/lib/ffaker/address_se.rb +7 -8
- data/lib/ffaker/address_sn.rb +3 -3
- data/lib/ffaker/address_ua.rb +8 -8
- data/lib/ffaker/address_uk.rb +5 -5
- data/lib/ffaker/address_us.rb +9 -9
- data/lib/ffaker/airline.rb +16 -0
- data/lib/ffaker/avatar.rb +3 -3
- data/lib/ffaker/aws.rb +24 -0
- data/lib/ffaker/bacon_ipsum.rb +2 -2
- data/lib/ffaker/book.rb +45 -0
- data/lib/ffaker/boolean.rb +2 -2
- data/lib/ffaker/cheesy_lingo.rb +15 -12
- data/lib/ffaker/color.rb +54 -1
- data/lib/ffaker/color_ua.rb +1 -1
- data/lib/ffaker/company.rb +13 -11
- data/lib/ffaker/company_cn.rb +23 -0
- data/lib/ffaker/company_it.rb +4 -4
- data/lib/ffaker/company_se.rb +2 -2
- data/lib/ffaker/conference.rb +1 -1
- data/lib/ffaker/courses.rb +2 -3
- data/lib/ffaker/currency.rb +2 -2
- data/lib/ffaker/data/address_gr/city +79 -0
- data/lib/ffaker/data/address_gr/region +13 -0
- data/lib/ffaker/data/address_gr/street +100 -0
- data/lib/ffaker/data/address_kr/boroughs +29 -0
- data/lib/ffaker/data/address_kr/cities +51 -0
- data/lib/ffaker/data/airline/codes_list +209 -0
- data/lib/ffaker/data/airline/names_list +206 -0
- data/lib/ffaker/data/aws/ec2_instance_type +59 -0
- data/lib/ffaker/data/aws/ec2_reserved_instance_tenancy +3 -0
- data/lib/ffaker/data/aws/ec2_reserved_offering_type +6 -0
- data/lib/ffaker/data/aws/ec2_reserved_product_description +14 -0
- data/lib/ffaker/data/book/adj_and_adv +20 -0
- data/lib/ffaker/data/book/genres +369 -0
- data/lib/ffaker/data/book/nouns +36 -0
- data/lib/ffaker/data/book/prefixes +17 -0
- data/lib/ffaker/data/color/names_list +128 -0
- data/lib/ffaker/data/education/degree_prefix +274 -0
- data/lib/ffaker/data/education/degree_short_prefix +19 -0
- data/lib/ffaker/data/job_br/job_nouns +52 -0
- data/lib/ffaker/data/job_vn/job_nouns +191 -0
- data/lib/ffaker/data/lorem_ja/characters +101 -0
- data/lib/ffaker/data/lorem_ja/sentences +30 -0
- data/lib/ffaker/data/lorem_ja/sentences_end +21 -0
- data/lib/ffaker/data/lorem_ja/words +81 -0
- data/lib/ffaker/data/name/first_names_female +4275 -0
- data/lib/ffaker/data/name/first_names_male +1219 -0
- data/lib/ffaker/data/name_br/first_names_female +1068 -0
- data/lib/ffaker/data/name_br/first_names_male +607 -0
- data/lib/ffaker/data/name_br/last_names +52 -0
- data/lib/ffaker/data/name_gr/female_first_names +80 -0
- data/lib/ffaker/data/name_gr/female_last_names +45 -0
- data/lib/ffaker/data/name_gr/male_first_names +90 -0
- data/lib/ffaker/data/name_gr/male_last_names +57 -0
- data/lib/ffaker/data/name_kh/first_names +64 -0
- data/lib/ffaker/data/name_kh/last_names +71 -0
- data/lib/ffaker/data/name_kh/nick_names +30 -0
- data/lib/ffaker/data/name_then/first_names +292 -0
- data/lib/ffaker/data/name_then/last_names +63 -0
- data/lib/ffaker/data/name_then/nick_names +30 -0
- data/lib/ffaker/data/phone_number/phone_calling_code +205 -0
- data/lib/ffaker/data/sport/names +57 -24
- data/lib/ffaker/data/tweet/hashtag +58 -0
- data/lib/ffaker/data/youtube/video_ids +50 -0
- data/lib/ffaker/dizzle_ipsum.rb +2 -2
- data/lib/ffaker/education.rb +17 -16
- data/lib/ffaker/food.rb +5 -6
- data/lib/ffaker/gender.rb +4 -4
- data/lib/ffaker/gender_br.rb +17 -0
- data/lib/ffaker/gender_cn.rb +4 -4
- data/lib/ffaker/gender_kr.rb +4 -4
- data/lib/ffaker/geolocation.rb +26 -26
- data/lib/ffaker/healthcare_ipsum.rb +2 -2
- data/lib/ffaker/hipster_ipsum.rb +2 -2
- data/lib/ffaker/html_ipsum.rb +101 -81
- data/lib/ffaker/identification.rb +4 -4
- data/lib/ffaker/identification_br.rb +84 -0
- data/lib/ffaker/identification_es.rb +2 -2
- data/lib/ffaker/identification_es_cl.rb +7 -5
- data/lib/ffaker/identification_es_co.rb +9 -10
- data/lib/ffaker/identification_kr.rb +3 -4
- data/lib/ffaker/identification_mx.rb +27 -11
- data/lib/ffaker/internet.rb +26 -23
- data/lib/ffaker/internet_se.rb +21 -21
- data/lib/ffaker/job.rb +1 -1
- data/lib/ffaker/job_br.rb +12 -0
- data/lib/ffaker/job_cn.rb +1 -1
- data/lib/ffaker/job_fr.rb +3 -3
- data/lib/ffaker/job_ja.rb +2 -1
- data/lib/ffaker/job_kr.rb +1 -1
- data/lib/ffaker/job_vn.rb +13 -0
- data/lib/ffaker/locale.rb +2 -3
- data/lib/ffaker/lorem.rb +5 -5
- data/lib/ffaker/lorem_ar.rb +4 -4
- data/lib/ffaker/lorem_cn.rb +3 -3
- data/lib/ffaker/lorem_fr.rb +4 -4
- data/lib/ffaker/lorem_ja.rb +40 -0
- data/lib/ffaker/lorem_kr.rb +4 -4
- data/lib/ffaker/lorem_ua.rb +8 -11
- data/lib/ffaker/movie.rb +18 -20
- data/lib/ffaker/music.rb +4 -4
- data/lib/ffaker/name.rb +100 -11
- data/lib/ffaker/name_br.rb +37 -6
- data/lib/ffaker/name_cn.rb +2 -2
- data/lib/ffaker/name_cs.rb +10 -10
- data/lib/ffaker/name_da.rb +6 -6
- data/lib/ffaker/name_de.rb +5 -5
- data/lib/ffaker/name_fr.rb +4 -4
- data/lib/ffaker/name_ga.rb +4 -5
- data/lib/ffaker/name_gr.rb +60 -0
- data/lib/ffaker/name_it.rb +4 -4
- data/lib/ffaker/name_ja.rb +3 -3
- data/lib/ffaker/name_kh.rb +22 -0
- data/lib/ffaker/name_kr.rb +3 -3
- data/lib/ffaker/name_mx.rb +14 -14
- data/lib/ffaker/name_nb.rb +5 -5
- data/lib/ffaker/name_nl.rb +7 -7
- data/lib/ffaker/name_ph.rb +2 -2
- data/lib/ffaker/name_ru.rb +7 -8
- data/lib/ffaker/name_se.rb +5 -5
- data/lib/ffaker/name_sn.rb +23 -23
- data/lib/ffaker/name_th.rb +3 -3
- data/lib/ffaker/name_th_en.rb +26 -0
- data/lib/ffaker/name_ua.rb +8 -8
- data/lib/ffaker/name_vn.rb +4 -4
- data/lib/ffaker/nato_alphabet.rb +10 -10
- data/lib/ffaker/phone_number.rb +31 -21
- data/lib/ffaker/phone_number_au.rb +3 -3
- data/lib/ffaker/phone_number_br.rb +9 -8
- data/lib/ffaker/phone_number_ch.rb +7 -7
- data/lib/ffaker/phone_number_cu.rb +5 -5
- data/lib/ffaker/phone_number_de.rb +1 -1
- data/lib/ffaker/phone_number_fr.rb +4 -4
- data/lib/ffaker/phone_number_it.rb +2 -2
- data/lib/ffaker/phone_number_kr.rb +4 -4
- data/lib/ffaker/phone_number_mx.rb +4 -5
- data/lib/ffaker/phone_number_nl.rb +13 -13
- data/lib/ffaker/phone_number_se.rb +18 -19
- data/lib/ffaker/phone_number_sg.rb +8 -8
- data/lib/ffaker/phone_number_sn.rb +2 -2
- data/lib/ffaker/product.rb +18 -14
- data/lib/ffaker/skill.rb +3 -3
- data/lib/ffaker/sport.rb +1 -1
- data/lib/ffaker/ssn_se.rb +19 -20
- data/lib/ffaker/string.rb +21 -23
- data/lib/ffaker/time.rb +19 -7
- data/lib/ffaker/tweet.rb +59 -0
- data/lib/ffaker/unit.rb +12 -12
- data/lib/ffaker/unit_english.rb +34 -35
- data/lib/ffaker/unit_metric.rb +25 -25
- data/lib/ffaker/utils/array_utils.rb +12 -9
- data/lib/ffaker/utils/module_utils.rb +9 -6
- data/lib/ffaker/utils/random_utils.rb +33 -0
- data/lib/ffaker/vehicle.rb +21 -21
- data/lib/ffaker/venue.rb +1 -1
- data/lib/ffaker/youtube.rb +24 -0
- data/scripts/benchmark.rb +3 -3
- data/scripts/reference.rb +26 -23
- data/test/helper.rb +50 -0
- data/test/test_address.rb +40 -21
- data/test/test_address_au.rb +19 -9
- data/test/test_address_br.rb +9 -2
- data/test/test_address_ca.rb +7 -0
- data/test/test_address_ch.rb +6 -2
- data/test/test_address_ch_de.rb +7 -3
- data/test/test_address_ch_fr.rb +7 -3
- data/test/test_address_ch_it.rb +5 -1
- data/test/test_address_da.rb +18 -9
- data/test/test_address_de.rb +12 -5
- data/test/test_address_fi.rb +10 -3
- data/test/test_address_fr.rb +13 -0
- data/test/test_address_gr.rb +43 -0
- data/test/test_address_in.rb +20 -12
- data/test/test_address_kr.rb +14 -0
- data/test/test_address_mx.rb +12 -5
- data/test/test_address_nl.rb +11 -5
- data/test/test_address_ru.rb +11 -5
- data/test/test_address_se.rb +9 -3
- data/test/test_address_sn.rb +7 -1
- data/test/test_address_ua.rb +17 -10
- data/test/test_address_uk.rb +11 -3
- data/test/test_address_us.rb +15 -6
- data/test/test_airline.rb +17 -0
- data/test/test_array_utils.rb +51 -3
- data/test/test_avatar.rb +5 -1
- data/test/test_aws.rb +25 -0
- data/test/test_bacon_ipsum.rb +12 -6
- data/test/test_book.rb +41 -0
- data/test/test_boolean.rb +4 -0
- data/test/test_cheesy_lingo.rb +14 -10
- data/test/test_color.rb +126 -1
- data/test/test_color_ua.rb +5 -1
- data/test/test_company.rb +7 -0
- data/test/test_company_cn.rb +24 -0
- data/test/test_company_it.rb +7 -1
- data/test/test_company_se.rb +6 -0
- data/test/test_conference.rb +5 -2
- data/test/test_course_mathematiques.rb +5 -1
- data/test/test_course_philosophie.rb +5 -1
- data/test/test_currency.rb +12 -0
- data/test/test_dizzle_ipsum.rb +12 -6
- data/test/test_education.rb +9 -2
- data/test/test_faker.rb +8 -1
- data/test/test_food.rb +11 -4
- data/test/test_gender.rb +5 -1
- data/test/test_gender_br.rb +18 -0
- data/test/test_gender_cn.rb +5 -2
- data/test/test_gender_kr.rb +7 -3
- data/test/test_geolocation.rb +11 -8
- data/test/test_guid.rb +6 -1
- data/test/test_healthcare_ipsum.rb +13 -6
- data/test/test_hipster_ipsum.rb +13 -6
- data/test/test_html_ipsum.rb +28 -20
- data/test/test_identification.rb +9 -2
- data/test/test_identification_br.rb +46 -0
- data/test/test_identification_co.rb +7 -0
- data/test/test_identification_es.rb +5 -1
- data/test/test_identification_es_cl.rb +5 -1
- data/test/test_identification_es_mx.rb +7 -2
- data/test/test_identification_kr.rb +4 -0
- data/test/test_internet.rb +36 -5
- data/test/test_internet_se.rb +12 -4
- data/test/test_job.rb +4 -0
- data/test/test_job_br.rb +17 -0
- data/test/test_job_cn.rb +4 -0
- data/test/test_job_fr.rb +4 -0
- data/test/test_job_ja.rb +4 -0
- data/test/test_job_kr.rb +4 -0
- data/test/test_job_vn.rb +22 -0
- data/test/test_locale.rb +10 -4
- data/test/test_lorem.rb +18 -11
- data/test/test_lorem_ar.rb +16 -8
- data/test/test_lorem_cn.rb +9 -2
- data/test/test_lorem_fr.rb +16 -8
- data/test/test_lorem_ja.rb +81 -0
- data/test/test_lorem_kr.rb +17 -8
- data/test/test_lorem_ua.rb +15 -8
- data/test/test_module_utils.rb +2 -2
- data/test/test_movie.rb +5 -1
- data/test/test_music.rb +11 -4
- data/test/test_name.rb +114 -1
- data/test/test_name_br.rb +41 -2
- data/test/test_name_cn.rb +7 -0
- data/test/test_name_cs.rb +7 -0
- data/test/test_name_da.rb +13 -6
- data/test/test_name_de.rb +4 -0
- data/test/test_name_fr.rb +7 -0
- data/test/test_name_ga.rb +7 -0
- data/test/test_name_gr.rb +70 -0
- data/test/test_name_it.rb +7 -0
- data/test/test_name_ja.rb +7 -0
- data/test/test_name_kh.rb +32 -0
- data/test/test_name_kr.rb +7 -0
- data/test/test_name_mx.rb +9 -0
- data/test/test_name_nb.rb +8 -0
- data/test/test_name_nl.rb +4 -0
- data/test/test_name_ph.rb +7 -0
- data/test/test_name_ru.rb +10 -3
- data/test/test_name_se.rb +12 -4
- data/test/test_name_sn.rb +8 -0
- data/test/test_name_th.rb +7 -0
- data/test/test_name_th_en.rb +35 -0
- data/test/test_name_ua.rb +26 -17
- data/test/test_name_vn.rb +42 -0
- data/test/test_nato_alphabet.rb +15 -4
- data/test/test_phone_number.rb +24 -6
- data/test/test_phone_number_au.rb +17 -6
- data/test/test_phone_number_br.rb +22 -13
- data/test/test_phone_number_cu.rb +29 -18
- data/test/test_phone_number_da.rb +16 -7
- data/test/test_phone_number_de.rb +17 -9
- data/test/test_phone_number_kr.rb +9 -0
- data/test/test_phone_number_mx.rb +16 -8
- data/test/test_phone_number_nl.rb +9 -2
- data/test/test_phone_number_se.rb +12 -7
- data/test/test_phone_number_sg.rb +17 -9
- data/test/test_phone_number_sn.rb +12 -4
- data/test/test_products.rb +22 -0
- data/test/test_skill.rb +8 -2
- data/test/test_sports.rb +4 -0
- data/test/test_ssn.rb +3 -1
- data/test/test_ssn_mx.rb +6 -1
- data/test/test_ssn_se.rb +3 -0
- data/test/test_string.rb +28 -1
- data/test/test_time.rb +33 -2
- data/test/test_tweet.rb +59 -0
- data/test/test_units.rb +7 -0
- data/test/test_units_english.rb +9 -0
- data/test/test_units_metric.rb +9 -0
- data/test/test_vehicle.rb +24 -15
- data/test/test_venue.rb +5 -1
- data/test/test_youtube.rb +28 -0
- metadata +101 -5
- data/lib/ffaker/data/name/first_names +0 -3008
- data/lib/ffaker/data/name_br/first_names +0 -91
data/test/test_html_ipsum.rb
CHANGED
|
@@ -3,24 +3,32 @@
|
|
|
3
3
|
require 'helper'
|
|
4
4
|
|
|
5
5
|
class TestHTMLIpsum < Test::Unit::TestCase
|
|
6
|
+
include DeterministicHelper
|
|
7
|
+
|
|
8
|
+
assert_methods_are_deterministic(
|
|
9
|
+
FFaker::HTMLIpsum,
|
|
10
|
+
:a, :p, :dl, :ul_short, :ul_long, :ol_short, :ol_long, :ul_links,
|
|
11
|
+
:table, :body, :fancy_string
|
|
12
|
+
)
|
|
13
|
+
|
|
6
14
|
def setup
|
|
7
15
|
@tester = FFaker::HTMLIpsum
|
|
8
16
|
end
|
|
9
17
|
|
|
10
18
|
def test_a
|
|
11
|
-
assert_match
|
|
19
|
+
assert_match(/^<a href="#\w+" title="[ \w]+">[ \w]+<\/a>$/i, FFaker::HTMLIpsum.a)
|
|
12
20
|
end
|
|
13
21
|
|
|
14
22
|
def test_p
|
|
15
23
|
# We can't predict the number of times the sentence pattern will repeat
|
|
16
24
|
# because the FFaker::Lorem methods that we are using adds a random
|
|
17
25
|
# number on top of what we specify for the count argument.
|
|
18
|
-
assert_match
|
|
26
|
+
assert_match(/^<p>([ \w]+\.)+<\/p>$/i, FFaker::HTMLIpsum.p)
|
|
19
27
|
end
|
|
20
28
|
|
|
21
29
|
def test_p_breaks
|
|
22
30
|
# Here we can at least test how many <br> tags there are.
|
|
23
|
-
assert_match
|
|
31
|
+
assert_match(/^<p>(?:[ \w\.]+<br>){2}[ \w\.]+<\/p>$/i, FFaker::HTMLIpsum.p(3, include_breaks: true))
|
|
24
32
|
end
|
|
25
33
|
|
|
26
34
|
def test_p_fancy
|
|
@@ -28,64 +36,64 @@ class TestHTMLIpsum < Test::Unit::TestCase
|
|
|
28
36
|
# because the FFaker::Lorem methods that we are using adds a random
|
|
29
37
|
# number on top of what we specify for the count argument. We also have to
|
|
30
38
|
# account for the other HTML that is being returned.
|
|
31
|
-
str = FFaker::HTMLIpsum.p(5,
|
|
32
|
-
assert_match
|
|
33
|
-
assert_match
|
|
34
|
-
assert str.length > 6,
|
|
39
|
+
str = FFaker::HTMLIpsum.p(5, fancy: true)
|
|
40
|
+
assert_match(/^<p>/, str)
|
|
41
|
+
assert_match(/<\/p>$/, str)
|
|
42
|
+
assert str.length > 6, 'string contains more than <p></p>'
|
|
35
43
|
end
|
|
36
44
|
|
|
37
45
|
def test_p_fancy_breaks
|
|
38
46
|
# Here we can at least test how many <br> tags there are. We also have to
|
|
39
47
|
# account for the other HTML that is being returned.
|
|
40
|
-
str = FFaker::HTMLIpsum.p(10,
|
|
41
|
-
assert_equal 10, str.split(
|
|
48
|
+
str = FFaker::HTMLIpsum.p(10, fancy: true, include_breaks: true)
|
|
49
|
+
assert_equal 10, str.split('<br>').length
|
|
42
50
|
end
|
|
43
51
|
|
|
44
52
|
def test_dl
|
|
45
|
-
assert_match
|
|
53
|
+
assert_match(/^<dl>(<dt>[ \w]+<\/dt><dd>[ \w.]+<\/dd>){3}<\/dl>$/i, FFaker::HTMLIpsum.dl(3))
|
|
46
54
|
end
|
|
47
55
|
|
|
48
56
|
def test_ul_short
|
|
49
|
-
assert_match
|
|
57
|
+
assert_match(/^<ul>(<li>[ \w.]+<\/li>){3}<\/ul>$/i, FFaker::HTMLIpsum.ul_short(3))
|
|
50
58
|
end
|
|
51
59
|
|
|
52
60
|
def test_ul_long
|
|
53
|
-
assert_match
|
|
61
|
+
assert_match(/^<ul>(<li>[ \w.]+<\/li>){3}<\/ul>$/i, FFaker::HTMLIpsum.ul_long(3))
|
|
54
62
|
end
|
|
55
63
|
|
|
56
64
|
def test_ol_short
|
|
57
|
-
assert_match
|
|
65
|
+
assert_match(/^<ol>(<li>[ \w.]+<\/li>){3}<\/ol>$/i, FFaker::HTMLIpsum.ol_short(3))
|
|
58
66
|
end
|
|
59
67
|
|
|
60
68
|
def test_ol_long
|
|
61
|
-
assert_match
|
|
69
|
+
assert_match(/^<ol>(<li>[ \w.]+<\/li>){3}<\/ol>$/i, FFaker::HTMLIpsum.ol_long(3))
|
|
62
70
|
end
|
|
63
71
|
|
|
64
72
|
def test_ul_links
|
|
65
|
-
assert_match
|
|
73
|
+
assert_match(/^<ul>(<li><a href="#\w+" title="\w+">[ \w]+<\/a><\/li>){3}<\/ul>$/i, FFaker::HTMLIpsum.ul_links(3))
|
|
66
74
|
end
|
|
67
75
|
|
|
68
76
|
def test_table
|
|
69
|
-
assert_match
|
|
77
|
+
assert_match(/(<td>[ \w]+<\/td>\s*){3}/i, FFaker::HTMLIpsum.table(3))
|
|
70
78
|
end
|
|
71
79
|
|
|
72
80
|
def test_body
|
|
73
81
|
# We can't reliably predict what's going to end up inside, so just ensure
|
|
74
82
|
# that we have a complete string.
|
|
75
|
-
assert_match
|
|
83
|
+
assert_match(/^<h1>.+<\/pre>$/im, FFaker::HTMLIpsum.body)
|
|
76
84
|
end
|
|
77
85
|
|
|
78
86
|
def test_fancy_string
|
|
79
87
|
# We can't reliably predict what's going to end up inside, so just ensure
|
|
80
88
|
# that we have a complete string.
|
|
81
|
-
assert FFaker::HTMLIpsum.fancy_string.is_a?(String),
|
|
82
|
-
assert FFaker::HTMLIpsum.fancy_string.length > 1,
|
|
89
|
+
assert FFaker::HTMLIpsum.fancy_string.is_a?(String), 'returns a string'
|
|
90
|
+
assert FFaker::HTMLIpsum.fancy_string.length > 1, 'the string is longer than one char'
|
|
83
91
|
end
|
|
84
92
|
|
|
85
93
|
def test_fancy_string_breaks
|
|
86
94
|
# We can't reliably predict what's going to end up inside, so just ensure
|
|
87
95
|
# that we have a complete string.
|
|
88
96
|
str = FFaker::HTMLIpsum.fancy_string(3, true)
|
|
89
|
-
assert_equal 3, str.split(
|
|
97
|
+
assert_equal 3, str.split('<br>').length
|
|
90
98
|
end
|
|
91
99
|
end
|
data/test/test_identification.rb
CHANGED
|
@@ -3,6 +3,13 @@
|
|
|
3
3
|
require 'helper'
|
|
4
4
|
|
|
5
5
|
class TestFakerIdentification < Test::Unit::TestCase
|
|
6
|
+
include DeterministicHelper
|
|
7
|
+
|
|
8
|
+
assert_methods_are_deterministic(
|
|
9
|
+
FFaker::Identification,
|
|
10
|
+
:drivers_license, :ssn, :gender, :ethnicity
|
|
11
|
+
)
|
|
12
|
+
|
|
6
13
|
def setup
|
|
7
14
|
@tester = FFaker::Identification
|
|
8
15
|
end
|
|
@@ -10,7 +17,7 @@ class TestFakerIdentification < Test::Unit::TestCase
|
|
|
10
17
|
def test_drivers_license
|
|
11
18
|
###-###-##-###-#
|
|
12
19
|
drivers_license_regex = /\A[A-Z]\d{3}-\d{3}-\d{2}-\d{3}-\d{1}\z/
|
|
13
|
-
assert_match
|
|
20
|
+
assert_match(drivers_license_regex, @tester.drivers_license)
|
|
14
21
|
end
|
|
15
22
|
|
|
16
23
|
def test_ssn
|
|
@@ -23,6 +30,6 @@ class TestFakerIdentification < Test::Unit::TestCase
|
|
|
23
30
|
|
|
24
31
|
def test_ethnicity
|
|
25
32
|
ethnicity_regex = /\A(African American|Asian\/Pacific Islander|Caucasian|Hispanic|Native American|Multiracial|Other|Prefer not to respond)\z/
|
|
26
|
-
assert_match
|
|
33
|
+
assert_match(ethnicity_regex, @tester.ethnicity)
|
|
27
34
|
end
|
|
28
35
|
end
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
require 'helper'
|
|
4
|
+
|
|
5
|
+
class TestFakerIdentificationBR < Test::Unit::TestCase
|
|
6
|
+
include DeterministicHelper
|
|
7
|
+
|
|
8
|
+
assert_methods_are_deterministic(
|
|
9
|
+
FFaker::IdentificationBR,
|
|
10
|
+
:cpf, :pretty_cpf, :cnpj, :pretty_cnpj, :rg, :pretty_rg, :gender
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
def setup
|
|
14
|
+
@tester = FFaker::IdentificationBR
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def test_cpf
|
|
18
|
+
cpf = @tester.cpf
|
|
19
|
+
verification_digits = @tester.cpf_verification_digits(cpf[0..8])
|
|
20
|
+
assert(cpf[9..10] == verification_digits.join)
|
|
21
|
+
assert_match(/\A\d{11}\z/, cpf)
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def test_pretty_cpf
|
|
25
|
+
assert_match(/\A\d{3}\.\d{3}\.\d{3}-\d{2}\z/, @tester.pretty_cpf)
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def test_cnpj
|
|
29
|
+
cnpj = @tester.cnpj
|
|
30
|
+
verification_digits = @tester.cnpj_verification_digits(cnpj[0..11])
|
|
31
|
+
assert(cnpj[12..13] == verification_digits.join)
|
|
32
|
+
assert_match(/\A\d{14}\z/, cnpj)
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def test_pretty_cnpj
|
|
36
|
+
assert_match(%r{\A\d{2}\.\d{3}\.\d{3}/\d{4}-\d{2}\z}, @tester.pretty_cnpj)
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def test_rg
|
|
40
|
+
assert_match(/\A\d{9}\z/, @tester.rg)
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def test_gender
|
|
44
|
+
assert_match(/\A(Feminino|Masculino)\z/, @tester.gender)
|
|
45
|
+
end
|
|
46
|
+
end
|
|
@@ -2,6 +2,13 @@ require 'helper'
|
|
|
2
2
|
|
|
3
3
|
class TestFakerIdentificationESCO < Test::Unit::TestCase
|
|
4
4
|
include Test::Unit::Assertions
|
|
5
|
+
include DeterministicHelper
|
|
6
|
+
|
|
7
|
+
assert_methods_are_deterministic(
|
|
8
|
+
FFaker::IdentificationESCO,
|
|
9
|
+
:drivers_license, :driver_license_category, :blood_type, :expedition_date
|
|
10
|
+
)
|
|
11
|
+
|
|
5
12
|
def setup
|
|
6
13
|
@tester = FFaker::IdentificationESCO
|
|
7
14
|
end
|
|
@@ -3,11 +3,15 @@
|
|
|
3
3
|
require 'helper'
|
|
4
4
|
|
|
5
5
|
class TestFakerIdentificationES < Test::Unit::TestCase
|
|
6
|
+
include DeterministicHelper
|
|
7
|
+
|
|
8
|
+
assert_methods_are_deterministic(FFaker::IdentificationES, :gender)
|
|
9
|
+
|
|
6
10
|
def setup
|
|
7
11
|
@tester = FFaker::IdentificationES
|
|
8
12
|
end
|
|
9
13
|
|
|
10
14
|
def test_gender
|
|
11
|
-
assert_match
|
|
15
|
+
assert_match(/(Hombre|Mujer)/, @tester.gender)
|
|
12
16
|
end
|
|
13
17
|
end
|
|
@@ -3,11 +3,15 @@
|
|
|
3
3
|
require 'helper'
|
|
4
4
|
|
|
5
5
|
class TestFakerIdentificationESCL < Test::Unit::TestCase
|
|
6
|
+
include DeterministicHelper
|
|
7
|
+
|
|
8
|
+
assert_methods_are_deterministic(FFaker::IdentificationESCL, :rut)
|
|
9
|
+
|
|
6
10
|
def setup
|
|
7
11
|
@tester = FFaker::IdentificationESCL
|
|
8
12
|
end
|
|
9
13
|
|
|
10
14
|
def test_rut
|
|
11
|
-
assert_match
|
|
15
|
+
assert_match(/\b\d{7,8}\-[k|0-9]/i, @tester.rut)
|
|
12
16
|
end
|
|
13
17
|
end
|
|
@@ -4,6 +4,12 @@ require 'helper'
|
|
|
4
4
|
|
|
5
5
|
# Author Guapolo <github.com/guapolo>
|
|
6
6
|
class TestIdentificationMX < Test::Unit::TestCase
|
|
7
|
+
include DeterministicHelper
|
|
8
|
+
|
|
9
|
+
assert_methods_are_deterministic(
|
|
10
|
+
FFaker::IdentificationMX,
|
|
11
|
+
:rfc_persona_moral, :rfc_persona_fisica, :curp
|
|
12
|
+
)
|
|
7
13
|
|
|
8
14
|
def test_rfc_persona_moral
|
|
9
15
|
re = /\A[a-zñÑ&]{3}\d{2}[0-1][0-9][0-3][0-9][a-z0-9]{3}\z/i
|
|
@@ -16,9 +22,8 @@ class TestIdentificationMX < Test::Unit::TestCase
|
|
|
16
22
|
end
|
|
17
23
|
|
|
18
24
|
def test_curp
|
|
19
|
-
or_curp_states_abbr = FFaker::IdentificationMX::ESTADOS_CURP.join(
|
|
25
|
+
or_curp_states_abbr = FFaker::IdentificationMX::ESTADOS_CURP.join('|')
|
|
20
26
|
re = /\A[a-z][aeioux][a-z]{2}[0-9]{2}[0-1][0-9][0-3][0-9][hm]#{or_curp_states_abbr}[bcdfghjklmnñpqrstvwxyz]{3}[0-9a-z][0-9]\z/i
|
|
21
27
|
assert_match(re, FFaker::IdentificationMX.curp)
|
|
22
28
|
end
|
|
23
|
-
|
|
24
29
|
end
|
data/test/test_internet.rb
CHANGED
|
@@ -3,6 +3,15 @@
|
|
|
3
3
|
require 'helper'
|
|
4
4
|
|
|
5
5
|
class TestFakerInternet < Test::Unit::TestCase
|
|
6
|
+
include DeterministicHelper
|
|
7
|
+
|
|
8
|
+
assert_methods_are_deterministic(
|
|
9
|
+
FFaker::Internet,
|
|
10
|
+
:email, :free_email, :safe_email, :disposable_email,
|
|
11
|
+
:user_name, :domain_name, :domain_word, :domain_suffix,
|
|
12
|
+
:http_url, :ip_v4_address, :password, :slug, :mac
|
|
13
|
+
)
|
|
14
|
+
|
|
6
15
|
def setup
|
|
7
16
|
@tester = FFaker::Internet
|
|
8
17
|
end
|
|
@@ -48,9 +57,13 @@ class TestFakerInternet < Test::Unit::TestCase
|
|
|
48
57
|
end
|
|
49
58
|
|
|
50
59
|
def test_uri
|
|
51
|
-
assert @tester.uri(
|
|
52
|
-
assert @tester.uri(
|
|
53
|
-
assert @tester.uri(
|
|
60
|
+
assert @tester.uri('ftp').match(/^ftp:\/\/.+/)
|
|
61
|
+
assert @tester.uri('http').match(/^http:\/\/.+/)
|
|
62
|
+
assert @tester.uri('https').match(/^https:\/\/.+/)
|
|
63
|
+
|
|
64
|
+
assert_deterministic { @tester.uri('ftp') }
|
|
65
|
+
assert_deterministic { @tester.uri('http') }
|
|
66
|
+
assert_deterministic { @tester.uri('https') }
|
|
54
67
|
end
|
|
55
68
|
|
|
56
69
|
def test_http_url
|
|
@@ -66,11 +79,13 @@ class TestFakerInternet < Test::Unit::TestCase
|
|
|
66
79
|
end
|
|
67
80
|
|
|
68
81
|
def test_slug_with_input_words
|
|
69
|
-
assert_not_match(/&/, @tester.slug(
|
|
82
|
+
assert_not_match(/&/, @tester.slug('Input Words&&Symbols'))
|
|
83
|
+
assert_deterministic { @tester.slug('Input Words&&Symbols') }
|
|
70
84
|
end
|
|
71
85
|
|
|
72
86
|
def test_slug_with_specified_glue
|
|
73
|
-
assert_match(/\A[a-z]+-[a-z]+\z/, @tester.slug(nil,
|
|
87
|
+
assert_match(/\A[a-z]+-[a-z]+\z/, @tester.slug(nil, '-'))
|
|
88
|
+
assert_deterministic { @tester.slug(nil, '-') }
|
|
74
89
|
end
|
|
75
90
|
|
|
76
91
|
def test_password
|
|
@@ -98,4 +113,20 @@ class TestFakerInternet < Test::Unit::TestCase
|
|
|
98
113
|
assert @tester.password(3, 1).length > 2
|
|
99
114
|
assert @tester.password(8, 5).length > 7
|
|
100
115
|
end
|
|
116
|
+
|
|
117
|
+
def test_mac
|
|
118
|
+
assert_match(/\A([a-z0-9]{2}:){5}[a-z0-9]{2}\z/, @tester.mac)
|
|
119
|
+
assert @tester.mac.length == 17
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
def test_mac_delimiter_argument
|
|
123
|
+
assert_match(/\A([a-z0-9]{2}-){5}[a-z0-9]{2}\z/, @tester.mac('-'))
|
|
124
|
+
assert_match(/\A([a-z0-9]{2}\.){5}[a-z0-9]{2}\z/, @tester.mac('.'))
|
|
125
|
+
assert_match(/\A([a-z0-9]{2}){6}\z/, @tester.mac(nil))
|
|
126
|
+
assert_match(/\A([a-z0-9]{2}){6}\z/, @tester.mac(''))
|
|
127
|
+
assert @tester.mac('-').length == 17
|
|
128
|
+
assert @tester.mac('.').length == 17
|
|
129
|
+
assert @tester.mac(nil).length == 12
|
|
130
|
+
assert @tester.mac('').length == 12
|
|
131
|
+
end
|
|
101
132
|
end
|
data/test/test_internet_se.rb
CHANGED
|
@@ -3,6 +3,14 @@
|
|
|
3
3
|
require 'helper'
|
|
4
4
|
|
|
5
5
|
class TestFakerInternetSE < Test::Unit::TestCase
|
|
6
|
+
include DeterministicHelper
|
|
7
|
+
|
|
8
|
+
assert_methods_are_deterministic(
|
|
9
|
+
FFaker::InternetSE,
|
|
10
|
+
:email, :free_email, :safe_email, :disposable_email,
|
|
11
|
+
:user_name, :domain_name, :domain_word, :domain_suffix,
|
|
12
|
+
:http_url, :ip_v4_address, :password, :slug
|
|
13
|
+
)
|
|
6
14
|
|
|
7
15
|
def setup
|
|
8
16
|
@tester = FFaker::InternetSE
|
|
@@ -35,6 +43,7 @@ class TestFakerInternetSE < Test::Unit::TestCase
|
|
|
35
43
|
|
|
36
44
|
def test_user_name_with_arg
|
|
37
45
|
assert @tester.user_name('joel larsson').match(/(joel(_|\.)larsson|larsson(_|\.)joel)/)
|
|
46
|
+
assert_deterministic { @tester.user_name('joel larsson') }
|
|
38
47
|
end
|
|
39
48
|
|
|
40
49
|
def test_domain_name
|
|
@@ -50,9 +59,9 @@ class TestFakerInternetSE < Test::Unit::TestCase
|
|
|
50
59
|
end
|
|
51
60
|
|
|
52
61
|
def test_uri
|
|
53
|
-
assert @tester.uri(
|
|
54
|
-
assert @tester.uri(
|
|
55
|
-
assert @tester.uri(
|
|
62
|
+
assert @tester.uri('ftp').match(/^ftp:\/\/.+/)
|
|
63
|
+
assert @tester.uri('http').match(/^http:\/\/.+/)
|
|
64
|
+
assert @tester.uri('https').match(/^https:\/\/.+/)
|
|
56
65
|
end
|
|
57
66
|
|
|
58
67
|
def test_http_url
|
|
@@ -66,5 +75,4 @@ class TestFakerInternetSE < Test::Unit::TestCase
|
|
|
66
75
|
def test_slug
|
|
67
76
|
assert @tester.slug.match(/^[a-z]+(_|\.|\-)[a-z]+$/)
|
|
68
77
|
end
|
|
69
|
-
|
|
70
78
|
end
|
data/test/test_job.rb
CHANGED
data/test/test_job_br.rb
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
|
|
3
|
+
require 'helper'
|
|
4
|
+
|
|
5
|
+
class TestFakerJobBR < Test::Unit::TestCase
|
|
6
|
+
include DeterministicHelper
|
|
7
|
+
|
|
8
|
+
assert_methods_are_deterministic(FFaker::JobBR, :title)
|
|
9
|
+
|
|
10
|
+
def setup
|
|
11
|
+
@tester = FFaker::JobBR
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def test_title
|
|
15
|
+
assert_includes @tester::JOB_NOUNS, @tester.title
|
|
16
|
+
end
|
|
17
|
+
end
|
data/test/test_job_cn.rb
CHANGED
data/test/test_job_fr.rb
CHANGED