phony 2.17.0 → 2.20.12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (68) hide show
  1. checksums.yaml +4 -4
  2. data/README.textile +34 -6
  3. data/lib/phony/config.rb +91 -0
  4. data/lib/phony/countries/argentina.rb +355 -0
  5. data/lib/phony/countries/austria.rb +4 -2
  6. data/lib/phony/countries/bangladesh.rb +2 -0
  7. data/lib/phony/countries/belarus.rb +2 -0
  8. data/lib/phony/countries/brazil.rb +4 -2
  9. data/lib/phony/countries/cambodia.rb +3 -5
  10. data/lib/phony/countries/china.rb +7 -2
  11. data/lib/phony/countries/croatia.rb +2 -0
  12. data/lib/phony/countries/georgia.rb +2 -0
  13. data/lib/phony/countries/germany.rb +5 -2
  14. data/lib/phony/countries/guinea.rb +8 -5
  15. data/lib/phony/countries/india.rb +2 -0
  16. data/lib/phony/countries/indonesia.rb +2 -0
  17. data/lib/phony/countries/ireland.rb +27 -23
  18. data/lib/phony/countries/italy.rb +41 -18
  19. data/lib/phony/countries/japan.rb +60 -8
  20. data/lib/phony/countries/kyrgyzstan.rb +2 -0
  21. data/lib/phony/countries/latvia.rb +2 -0
  22. data/lib/phony/countries/libya.rb +3 -1
  23. data/lib/phony/countries/malaysia.rb +2 -0
  24. data/lib/phony/countries/moldova.rb +2 -0
  25. data/lib/phony/countries/montenegro.rb +2 -0
  26. data/lib/phony/countries/myanmar.rb +2 -0
  27. data/lib/phony/countries/namibia.rb +2 -0
  28. data/lib/phony/countries/nepal.rb +2 -0
  29. data/lib/phony/countries/netherlands.rb +2 -0
  30. data/lib/phony/countries/pakistan.rb +2 -0
  31. data/lib/phony/countries/paraguay.rb +2 -0
  32. data/lib/phony/countries/russia_kazakhstan_abkhasia_south_ossetia.rb +2 -0
  33. data/lib/phony/countries/saudi_arabia.rb +2 -0
  34. data/lib/phony/countries/serbia.rb +7 -1
  35. data/lib/phony/countries/somalia.rb +2 -0
  36. data/lib/phony/countries/south_korea.rb +7 -2
  37. data/lib/phony/countries/sweden.rb +2 -0
  38. data/lib/phony/countries/taiwan.rb +3 -0
  39. data/lib/phony/countries/tajikistan.rb +2 -0
  40. data/lib/phony/countries/turkmenistan.rb +2 -0
  41. data/lib/phony/countries/ukraine.rb +2 -0
  42. data/lib/phony/countries/united_kingdom.rb +5 -2
  43. data/lib/phony/countries/uruguay.rb +2 -0
  44. data/lib/phony/countries/vietnam.rb +7 -1
  45. data/lib/phony/countries/zimbabwe.rb +2 -0
  46. data/lib/phony/countries.rb +108 -65
  47. data/lib/phony/country.rb +11 -3
  48. data/lib/phony/country_codes.rb +16 -3
  49. data/lib/phony/dsl.rb +5 -3
  50. data/lib/phony/local_splitters/fixed.rb +2 -0
  51. data/lib/phony/national_code.rb +1 -1
  52. data/lib/phony/national_splitters/none.rb +1 -3
  53. data/lib/phony/trunk_code.rb +5 -5
  54. data/lib/phony.rb +62 -57
  55. data/spec/functional/config_spec.rb +44 -0
  56. data/spec/functional/plausibility_spec.rb +104 -19
  57. data/spec/lib/phony/countries_spec.rb +107 -35
  58. data/spec/lib/phony/country_codes_spec.rb +82 -58
  59. data/spec/lib/phony/country_spec.rb +29 -9
  60. data/spec/lib/phony/dsl_spec.rb +7 -3
  61. data/spec/lib/phony/local_splitters/regex_spec.rb +19 -15
  62. data/spec/lib/phony/national_code_spec.rb +15 -45
  63. data/spec/lib/phony/national_splitters/fixed_spec.rb +12 -16
  64. data/spec/lib/phony/national_splitters/none_spec.rb +3 -3
  65. data/spec/lib/phony/national_splitters/variable_spec.rb +9 -13
  66. data/spec/lib/phony/trunk_code_spec.rb +85 -0
  67. data/spec/lib/phony/vanity_spec.rb +4 -4
  68. metadata +23 -18
@@ -5,7 +5,7 @@ require 'spec_helper'
5
5
  describe 'country descriptions' do
6
6
 
7
7
  def self.it_splits number, expected
8
- it { Phony.split(number).should == expected }
8
+ it { expect(Phony.split(number)).to eq expected }
9
9
  end
10
10
 
11
11
  describe 'regression' do
@@ -33,13 +33,13 @@ describe 'country descriptions' do
33
33
  end
34
34
 
35
35
  describe 'Argentina' do
36
- it_splits '541112345678', ['54', '11', '1234', '5678']
37
- it_splits '542911234567', ['54', '291', '123', '4567']
38
- it_splits '542965123456', ['54', '2965', '12', '3456']
39
- it_splits '5491112345678', ['54', '911', '1234', '5678']
40
- it_splits '5492201234567', ['54', '9220', '123', '4567']
41
- it_splits '5492221123456', ['54', '92221', '12', '3456']
42
- it_splits '548001234567', ['54', '800', '123', '4567']
36
+ it_splits '541112345678', ['54', '11', '1234', '5678'] # 2-digit area code / landline
37
+ it_splits '542911234567', ['54', '291', '123', '4567'] # 3-digit area code / landline
38
+ it_splits '542903123456', ['54', '2903', '12', '3456'] # 4-digit area code / landline
39
+ it_splits '5491112345678', ['54', '911', '1234', '5678'] # 2-digit area code / international mobile
40
+ it_splits '5492201234567', ['54', '9220', '123', '4567'] # 3-digit area code / international mobile
41
+ it_splits '5492221123456', ['54', '92221', '12', '3456'] # 4-digit area code / international mobile
42
+ it_splits '548001234567', ['54', '800', '123', '4567'] # Non-geographic number
43
43
  end
44
44
 
45
45
  describe 'Austria' do
@@ -103,8 +103,17 @@ describe 'country descriptions' do
103
103
  it_splits '3295551914', ['32', '9', '555', '19', '14'] # Gent
104
104
  it_splits '3245551414', ['32', '4', '555', '14', '14'] # Liège
105
105
  it_splits '3216473200', ['32', '16', '47', '32', '00'] # Leuven
106
- it_splits '32475279584', ['32', '475', '27', '95', '84'] # mobile
107
- it_splits '32468279584', ['32', '468', '27', '95', '84'] # mobile (Telenet)
106
+ it_splits '32455123456', ['32', '455', '12', '34', '56'] # mobile (Voo)
107
+ it_splits '32456123456', ['32', '456', '12', '34', '56'] # mobile (MobileViking)
108
+ it_splits '32460123456', ['32', '460', '12', '34', '56'] # mobile (Proximus)
109
+ it_splits '32465123456', ['32', '465', '12', '34', '56'] # mobile (Lycamobile)
110
+ it_splits '32466123456', ['32', '466', '12', '34', '56'] # mobile (Vectone)
111
+ it_splits '32467123456', ['32', '467', '12', '34', '56'] # mobile (Telenet)
112
+ it_splits '32468123456', ['32', '468', '12', '34', '56'] # mobile (Telenet)
113
+ it_splits '32469123456', ['32', '469', '12', '34', '56'] # mobile ()
114
+ it_splits '32475123456', ['32', '475', '12', '34', '56'] # mobile (Proximus)
115
+ it_splits '32485123456', ['32', '485', '12', '34', '56'] # mobile (Telenet)
116
+ it_splits '32495123456', ['32', '495', '12', '34', '56'] # mobile (Orange)
108
117
  it_splits '3270123123', ['32', '70', '123', '123'] # Bus Service?
109
118
  it_splits '3278123123', ['32', '78', '123', '123'] # National rate service
110
119
  it_splits '3290123123', ['32', '901', '23', '123'] # National rate service
@@ -138,9 +147,8 @@ describe 'country descriptions' do
138
147
  end
139
148
 
140
149
  describe 'Brazil' do
141
- it_splits '551112341234', ['55', '11', '1234', '1234']
150
+ it_splits '551122341234', ['55', '11', '2234', '1234']
142
151
  it_splits '5511981231234', ['55', '11', '98123', '1234'] # São Paulo's 9 digits mobile
143
- it_splits '552181231234', ['55', '21', '8123', '1234']
144
152
  it_splits '5521981231234', ['55', '21', '98123', '1234'] # Rio de Janeiro's 9 digits mobile
145
153
  it_splits '551931311234', ['55', '19', '3131', '1234']
146
154
  it_splits '5531991311234', ['55', '31', '99131', '1234'] # Belo Horizonte's 9th digit
@@ -148,6 +156,7 @@ describe 'country descriptions' do
148
156
  it_splits '5579991311234', ['55', '79', '99131', '1234'] # Sergipe's 9th digit
149
157
  it_splits '5547991311234', ['55', '47', '99131', '1234'] # Santa Catarina's 9th digit
150
158
  it_splits '5541991311234', ['55', '41', '99131', '1234'] # Parana's 9th digit
159
+ it_splits '556734212121', ['55', '67', '3421', '2121']
151
160
 
152
161
  context 'mobile numbers' do
153
162
  %w{
@@ -214,9 +223,24 @@ describe 'country descriptions' do
214
223
  describe 'China' do
215
224
  it_splits '862112345678', ['86', '21', '1234', '5678'] # Shanghai
216
225
  it_splits '8675582193447', ['86', '755', '8219', '3447'] # Shenzhen
226
+ it_splits '869511234567', ['86', '951', '123', '4567'] # Yinchuan
227
+
228
+ context 'mobile numbers' do
229
+ %w{
230
+ 130 131 132 133 134 135 136 137 138 139
231
+ 145 146 147 148 149
232
+ 150 151 152 153 155 156 157 158 159
233
+ 162 165 166 167
234
+ 170 171 172 173 174 175 176 177 178
235
+ 180 181 182 183 184 185 186 187 188 189
236
+ 190 191 192 193 195 196 197 198 199
237
+ }.each do |prefix|
238
+ it_splits "86#{prefix}12345678", ['86', prefix, '1234', '5678']
239
+ end
240
+ end
217
241
  end
218
242
  describe 'Colombia' do
219
- it_splits '5711234567', ['57', '1', '123', '4567']
243
+ it_splits '5711234567', ['57', '1', '123', '4567'] # Outdated.
220
244
  it_splits '573101234567', ['57', '310', '123', '4567'] # mobile
221
245
  end
222
246
  describe 'Croatia' do
@@ -291,7 +315,7 @@ describe 'country descriptions' do
291
315
  it_splits '49800222340010', ['49', '800', '222', '340010'] # Service number
292
316
 
293
317
  it_splits '4915111231234', ['49', '151', '1123', '1234'] # Mobile number
294
- it_splits '4915771231234', ['49', '157', '7123', '1234'] # Mobile number
318
+ it_splits '4915771231234', ['49', '1577', '123', '1234'] # Mobile number
295
319
  it_splits '491601234567', ['49', '160', '1234', '567'] # Mobile number
296
320
  it_splits '4916312345678', ['49', '163', '1234', '5678'] # Mobile number
297
321
  it_splits '4915211231234', ['49', '1521', '123', '1234'] # Mobile number
@@ -329,7 +353,8 @@ describe 'country descriptions' do
329
353
  end
330
354
 
331
355
  describe 'Hong Kong' do
332
- it_splits '85212341234', ['852', false, '1234', '1234'] #
356
+ it_splits '85212341234', ['852', false, '1234', '1234'] #Other Numbers
357
+ it_splits '852800121234', ['852', '800', '12', '1234'] #Toll Free
333
358
  end
334
359
 
335
360
  describe 'Hungary' do
@@ -400,6 +425,7 @@ describe 'country descriptions' do
400
425
  it_splits '35311234567', ['353', '1', '123', '4567'] # Dublin, 7 digit subscriber #
401
426
  it_splits '353539233333', ['353', '53', '923', '3333'] # Wexford, 7 digit subscriber
402
427
  it_splits '3532212345', ['353', '22', '12345'] # Mallow, 5 digit subscriber #
428
+ it_splits '353441234567', ['353', '44', '123', '4567'] # Mullingar, Castlepollard, Tyrellspass 7 digit subscriber #
403
429
  it_splits '35345123456', ['353', '45', '123456'] # Naas, 6 digit subscriber #
404
430
  it_splits '353801234567', ['353', '80', '123', '4567'] # Mobile
405
431
  it_splits '353761234567', ['353', '76', '123', '4567'] # VoIP
@@ -408,14 +434,16 @@ describe 'country descriptions' do
408
434
  end
409
435
 
410
436
  describe 'Israel (972)' do
411
- it_splits '972100', ['972', '1', '00'] # Police
412
- it_splits '97221231234', ['972', '2', '123', '1234'] # Jerusalem Area
413
- it_splits '97282411234', ['972', '8', '241', '1234'] # Gaza Strip (Palestine)
414
- it_splits '97291231234', ['972', '9', '123', '1234'] # Sharon Area
415
- it_splits '972501231234', ['972', '50', '123', '1234'] # Mobile (Pelephone)
416
- it_splits '972591231234', ['972', '59', '123', '1234'] # Mobile Jawwal (Palestine)
417
- it_splits '972771231234', ['972', '77', '123', '1234'] # Cable Phone Services
437
+ it_splits '972100', ['972', '1', '00'] # Police
438
+ it_splits '97221231234', ['972', '2', '123', '1234'] # Jerusalem Area
439
+ it_splits '97282411234', ['972', '8', '241', '1234'] # Gaza Strip (Palestine)
440
+ it_splits '97291231234', ['972', '9', '123', '1234'] # Sharon Area
441
+ it_splits '972501231234', ['972', '50', '123', '1234'] # Mobile (Pelephone)
442
+ it_splits '972591231234', ['972', '59', '123', '1234'] # Mobile Jawwal (Palestine)
443
+ it_splits '972771231234', ['972', '77', '123', '1234'] # Cable Phone Services
418
444
  it_splits '9721700123123', ['972', '1', '700', '123', '123'] # Cable Phone Services
445
+ it_splits '972511234567', ['972', '51', '123', '4567'] # Mobile (We4G)
446
+ it_splits '972791111111', ['972', '79', '111', '1111'] # Landline (Hallo, Cellact, Telzar)
419
447
  end
420
448
  describe 'Israel (970)' do
421
449
  it_splits '97021231234', ['970', '2', '123', '1234'] # Jerusalem Area
@@ -432,8 +460,9 @@ describe 'country descriptions' do
432
460
  it_splits '3934869528123',['39', '348', '695', '2812', '3'] # Mobile (8-digit subscriber no - new)
433
461
  it_splits '393357210488', ['39', '335', '721', '0488'] # Mobile
434
462
  it_splits '393248644272', ['39', '324', '864', '4272'] # Mobile
435
- it_splits '3906123412', ['39', '06', '1234', '12'] # Roma 6 digit
436
- it_splits '39061234123', ['39', '06', '1234', '123'] # Roma 7 digit
463
+ it_splits '390612341', ['39', '06', '12341'] # Roma 5 digit
464
+ it_splits '3906123412', ['39', '06', '1234', '12'] # Roma 6 digit
465
+ it_splits '39061234123', ['39', '06', '1234', '123'] # Roma 7 digit
437
466
  it_splits '390612341234', ['39', '06', '1234', '1234'] # Roma 8 digit
438
467
  it_splits '3902888388', ['39', '02', '8883', '88'] # Milano 6 digit
439
468
  it_splits '39028883888', ['39', '02', '8883', '888'] # Milano 7 digit
@@ -442,6 +471,7 @@ describe 'country descriptions' do
442
471
  it_splits '3903123391', ['39', '031', '23391'] # Como
443
472
  it_splits '390909709511', ['39', '090', '9709511'] # Barcellona
444
473
  it_splits '390471811353', ['39', '0471', '811', '353'] # Bolzano
474
+ it_splits '3905745730', ['39', '0574', '5730'] # Prato
445
475
  end
446
476
  describe 'Japan' do
447
477
  it_splits '81312345678', %w(81 3 1234 5678) # Tokyo
@@ -457,6 +487,8 @@ describe 'country descriptions' do
457
487
  it_splits '817012345678', %w(81 70 1234 5678) # PHS
458
488
  it_splits '818012345678', %w(81 80 1234 5678) # Cellular
459
489
  it_splits '819012345678', %w(81 90 1234 5678) # Cellular
490
+ it_splits '810570123456', %w(81 570 123 456) # Navi-dial
491
+ it_splits '810180123456', %w(81 180 123 456) # Tele-gong/Tele-dome
460
492
  end
461
493
  describe 'Kenya' do
462
494
  it_splits '254201234567', ['254', '20', '1234567'] # Nairobi
@@ -496,6 +528,8 @@ describe 'country descriptions' do
496
528
  it_splits '352545258', ['352', '54', '52', '58']
497
529
  it_splits '352818181', ['352', '81', '81', '81']
498
530
  it_splits '3523572141', ['352', '35', '72', '14', '1']
531
+ it_splits '3522634731', ['352', '26', '34', '73', '1']
532
+ it_splits '352264412701', ['352', '26', '44', '12', '701']
499
533
  end
500
534
  describe 'Macedonia' do
501
535
  it_splits '38921234567', ['389', '2', '123', '4567'] # Skopje
@@ -561,6 +595,10 @@ describe 'country descriptions' do
561
595
  it_splits '31222123456', ['31', '222', '123', '456']
562
596
  it_splits '3197012345678', ['31', '970', '1234', '5678'] # machine-to-machine
563
597
  end
598
+ describe 'Norfolk Island' do
599
+ it_splits '672321234', ['672', '3', '21', '234'] # fixed
600
+ it_splits '672351234', ['672', '3', '51', '234'] # mobile
601
+ end
564
602
  describe 'Norway' do
565
603
  it_splits '4721234567', ['47',false,'21','23','45','67']
566
604
  it_splits '4731234567', ['47',false,'31','23','45','67']
@@ -594,6 +632,7 @@ describe 'country descriptions' do
594
632
  end
595
633
  describe 'Philippines' do
596
634
  it_splits '6321234567', ['63', '2', '1234567']
635
+ it_splits '63289889999', ['63', '2', '89889999']
597
636
  it_splits '6321234567890', ['63', '2', '1234567890']
598
637
  it_splits '632123456789012', ['63', '2', '123456789012']
599
638
  it_splits '639121234567', ['63', '912', '1234567']
@@ -649,6 +688,7 @@ describe 'country descriptions' do
649
688
  it_splits '250781234567', ['250', '78', '1234567'] # mobile
650
689
  it_splits '250721234567', ['250', '72', '1234567'] # mobile
651
690
  it_splits '250731234567', ['250', '73', '1234567'] # mobile
691
+ it_splits '250791234567', ['250', '79', '1234567'] # mobile
652
692
  it_splits '250251234567', ['250', '25', '1234567'] # fixed
653
693
  it_splits '25006123456', ['250', '06', '123456'] # fixed
654
694
  end
@@ -731,6 +771,7 @@ describe 'country descriptions' do
731
771
  describe 'Switzerland' do
732
772
  it_splits '41443643532', ['41', '44', '364', '35', '32'] # Zurich (usually)
733
773
  it_splits '41800334455', ['41', '800', '334', '455'] # Service number
774
+ it_splits '41860443643532', ['41', '860', '44', '364', '35', '32'] # Voicemail access
734
775
  it_splits '41900123456', ['41', '900', '123', '456'] # Business Number
735
776
  it_splits '41901123456', ['41', '901', '123', '456'] # Business Number Entertainment
736
777
  it_splits '41906123456', ['41', '906', '123', '456'] # Business Number Adult Entertainment
@@ -816,12 +857,14 @@ describe 'country descriptions' do
816
857
  it_splits '842841234567', ['84', '28', '4123', '4567'] # Ho Chi Minh City
817
858
  it_splits '84341234567', ['84', '34', '1234567'] # Viettel
818
859
  it_splits '84841234567', ['84', '84', '1234567'] # Vinaphone
860
+ it_splits '8419001212', ['84', '1900', '1212'] # Vinaphone
861
+ it_splits '841900541234', ['84', '1900', '541234'] # Vinaphone
819
862
  end
820
863
  describe 'Zambia' do
821
864
  it_splits '260211123456', ['260', '211', '123456'] # Fixed
822
- it_splits '260955123456', ['260', '955', '123456'] # Mobile
823
- it_splits '260967123456', ['260', '967', '123456'] # Mobile
824
- it_splits '260978123456', ['260', '978', '123456'] # Mobile
865
+ it_splits '260955123456', ['260', '95', '512', '3456'] # Mobile
866
+ it_splits '260967123456', ['260', '96', '712', '3456'] # Mobile
867
+ it_splits '260978123456', ['260', '97', '812', '3456'] # Mobile
825
868
  it_splits '260800123456', ['260', '800', '123', '456'] # Toll free
826
869
  end
827
870
  describe 'New Zealand' do
@@ -836,7 +879,8 @@ describe 'country descriptions' do
836
879
  it_splits '6737932744', %w(673 7 932 744)
837
880
  end
838
881
  describe 'Burkina Faso' do
839
- it_splits '22667839323', ['226', false, '6783', '9323']
882
+ it_splits '22667839323', ['226', false, '67', '83', '93', '23']
883
+ it_splits '22601234567', ['226', false, '01', '23', '45', '67'] # 0 not removed.
840
884
  end
841
885
  describe 'Burundi' do
842
886
  it_splits '25712345678', ['257', false, '1234', '5678']
@@ -867,8 +911,8 @@ describe 'country descriptions' do
867
911
  it_splits '50622345678', %w(506 2 234 5678)
868
912
  end
869
913
  describe "Côte d'Ivoire" do
870
- it_splits '22507335518', ['225', '07', '33', '55', '18']
871
- it_splits '22537335518', ['225', '37', '33', '55', '18']
914
+ it_splits '2250107335518', ['225', '01', '07', '33', '55', '18']
915
+ it_splits '2250237335518', ['225', '02', '37', '33', '55', '18']
872
916
  end
873
917
  describe 'Democratic Republic of Timor-Leste' do
874
918
  it_splits '6701742945', ['670', false, '174', '2945']
@@ -931,6 +975,7 @@ describe 'country descriptions' do
931
975
  end
932
976
  describe 'Gabonese Republic' do
933
977
  it_splits '2411834375', ['241', '1', '834', '375']
978
+ it_splits '24174012345', ['241', '74', '01', '23', '45']
934
979
  end
935
980
  describe 'Gambia' do
936
981
  it_splits '2206683355', ['220', false, '668', '3355']
@@ -976,7 +1021,7 @@ describe 'country descriptions' do
976
1021
  it_splits '96287901456', %w(962 8790 1456)
977
1022
  end
978
1023
  describe 'Kiribati (Republic of)' do
979
- it_splits '68634814', ['686', false, '34', '814']
1024
+ it_splits '68634814527', ['686', false, '34814527']
980
1025
  end
981
1026
  describe "Democratic People's Republic of Korea" do
982
1027
  it_splits '850212345', %w(850 2 123 45)
@@ -1018,11 +1063,14 @@ describe 'country descriptions' do
1018
1063
  it_splits '21822123456', %w(218 22 123 456)
1019
1064
  it_splits '218211234456', %w(218 21 1234 456)
1020
1065
  it_splits '218911234456', %w(218 91 1234 456)
1066
+ it_splits '218941234456', %w(218 94 1234 456)
1067
+ it_splits '218951234456', %w(218 95 1234 456)
1021
1068
  end
1022
1069
  describe 'Madagascar' do
1023
- it_splits '26120012345678', ['261', false, '20', '012', '345', '678']
1024
- it_splits '261201243456', ['261', false, *%w(20 124 3456)]
1025
- it_splits '261512345678', ['261', false, *%w(512 345 678)]
1070
+ it_splits '261202254716', ['261', '20', *%w(22 547 16)]
1071
+ it_splits '261320254716', ['261', '32', *%w(02 547 16)]
1072
+ it_splits '261330254716', ['261', '33', *%w(02 547 16)]
1073
+ it_splits '261340254716', ['261', '34', *%w(02 547 16)]
1026
1074
  end
1027
1075
  describe 'Malawi' do
1028
1076
  it_splits '2651725123', ['265', false, '1725', '123']
@@ -1046,7 +1094,8 @@ describe 'country descriptions' do
1046
1094
  it_splits '22212345678', ['222', false, '1234', '5678']
1047
1095
  end
1048
1096
  describe 'Mauritius' do
1049
- it_splits '23059518919', ['230', false, '5951', '8919']
1097
+ it_splits '23059518919', ['230', false, '5', '951', '8919']
1098
+ it_splits '2302600070', ['230', false, '260', '0070']
1050
1099
  end
1051
1100
  describe 'Micronesia (Federated States of)' do
1052
1101
  it_splits '6911991754', ['691', false, '199', '1754']
@@ -1099,6 +1148,8 @@ describe 'country descriptions' do
1099
1148
  describe 'Nigeria' do
1100
1149
  it_splits '23411231234', %w(234 1 123 1234) # Lagos
1101
1150
 
1151
+ it_splits '23445123456', %w(234 45 123 456) # Ogoja
1152
+
1102
1153
  # mobile numbers
1103
1154
  it_splits '2347007661234', %w(234 700 766 1234)
1104
1155
  it_splits '2347017661234', %w(234 701 766 1234)
@@ -1133,6 +1184,17 @@ describe 'country descriptions' do
1133
1184
  it_splits '2349087661234', %w(234 908 766 1234)
1134
1185
  it_splits '2349097661234', %w(234 909 766 1234)
1135
1186
 
1187
+ it_splits '2349107661234', %w(234 910 766 1234)
1188
+ it_splits '2349117661234', %w(234 911 766 1234)
1189
+ it_splits '2349127661234', %w(234 912 766 1234)
1190
+ it_splits '2349137661234', %w(234 913 766 1234)
1191
+ it_splits '2349147661234', %w(234 914 766 1234)
1192
+ it_splits '2349157661234', %w(234 915 766 1234)
1193
+ it_splits '2349167661234', %w(234 916 766 1234)
1194
+ it_splits '2349177661234', %w(234 917 766 1234)
1195
+ it_splits '2349187661234', %w(234 918 766 1234)
1196
+ it_splits '2349197661234', %w(234 919 766 1234)
1197
+
1136
1198
  it_splits '2348107661234', %w(234 810 766 1234)
1137
1199
  it_splits '2348117661234', %w(234 811 766 1234)
1138
1200
  it_splits '2348127661234', %w(234 812 766 1234)
@@ -1184,6 +1246,7 @@ describe 'country descriptions' do
1184
1246
  describe 'Samoa (Independent State of)' do
1185
1247
  it_splits '685800123', ['685', false, '800', '123']
1186
1248
  it_splits '68561123', ['685', false, '61', '123']
1249
+ it_splits '6857112345', ['685', false, '711', '2345']
1187
1250
  it_splits '6857212345', ['685', false, '721', '2345']
1188
1251
  it_splits '685830123', ['685', false, '830', '123']
1189
1252
  it_splits '685601234', ['685', false, '601', '234']
@@ -1272,6 +1335,7 @@ describe 'country descriptions' do
1272
1335
  it_splits '88633123456', %w(886 3 312 3456)
1273
1336
  it_splits '88637123456', %w(886 37 12 3456)
1274
1337
  it_splits '88682712345', %w(886 82 71 2345)
1338
+ it_splits '886801123123', %w(886 801 123 123)
1275
1339
  it_splits '88689712345', %w(886 89 71 2345)
1276
1340
  it_splits '88682672345', %w(886 826 7 2345)
1277
1341
  it_splits '88683672345', %w(886 836 7 2345)
@@ -1382,6 +1446,14 @@ describe 'country descriptions' do
1382
1446
  it_splits number, ['263', prefix, '234', '5678']
1383
1447
  end
1384
1448
  end
1449
+
1450
+ describe 'Universal International Freephone' do
1451
+ it_splits '80012345678', ['800', false, '12345678']
1452
+ end
1453
+
1454
+ describe 'Shared-Cost Service' do
1455
+ it_splits '80812345678', ['808', false, '12345678']
1456
+ end
1385
1457
  end
1386
1458
 
1387
1459
  end