superp-phone 1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,19 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../test_helper')
2
+
3
+ ## Slovenia
4
+ class SITest < Phoner::TestCase
5
+ def test_local
6
+ #Maribor
7
+ parse_test('+ 386 2 23 46 611', '386', '2', '2346611')
8
+ end
9
+
10
+ def test_local_2
11
+ # Koper
12
+ parse_test('+ 386 5 23 46 611', '386', '5', '2346611', "Slovenia", false)
13
+ end
14
+
15
+ def test_mobile
16
+ # Mobitel
17
+ parse_test('+386 51 258999', '386', '51', '258999', "Slovenia", true)
18
+ end
19
+ end
@@ -0,0 +1,17 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../test_helper')
2
+
3
+ ## Ukraine
4
+ class UATest < Phoner::TestCase
5
+
6
+ def test_local
7
+ parse_test('+380 57 711 22 33', '380', '57', '7112233', "Ukraine", false)
8
+ end
9
+
10
+ def test_mobile
11
+ parse_test('+380-50-111-22-33', '380', '50', '1112233', "Ukraine", true)
12
+ end
13
+
14
+ def test_mobile2
15
+ parse_test('+380-66-042-22-01', '380', '66', '0422201', "Ukraine", true)
16
+ end
17
+ end
@@ -0,0 +1,24 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../test_helper')
2
+
3
+ ## United States
4
+ class USTest < Phoner::TestCase
5
+
6
+ def test_local
7
+ parse_test('+1 251 123 4567', '1', '251', '1234567', 'United States')
8
+ end
9
+
10
+ def test_tollfree
11
+ parse_test('+1 800 555 3456', '1', '800', '5553456', 'United States')
12
+ end
13
+
14
+ def test_long_with_default_country_code
15
+ Phoner::Phone.default_country_code = '1'
16
+ parse_test('2069735100', '1', '206', '9735100', 'United States')
17
+ end
18
+
19
+ def test_short_with_default_country_code_and_area_code
20
+ Phoner::Phone.default_country_code = '1'
21
+ Phoner::Phone.default_area_code = '206'
22
+ parse_test('9735100', '1', '206', '9735100', 'United States')
23
+ end
24
+ end
@@ -0,0 +1,19 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../test_helper')
2
+
3
+ ## South Africa
4
+ class ZATest < Phoner::TestCase
5
+ def test_local
6
+ # Telkom
7
+ parse_test('+27 11 555 5555', '27', '11', '5555555', "South Africa", false)
8
+ end
9
+
10
+ def test_mobile
11
+ # Vodacom
12
+ parse_test('+27 82 555 5555', '27', '82', '5555555', "South Africa", true)
13
+ end
14
+
15
+ def test_tollfree
16
+ # Telkom
17
+ parse_test('+27 800 123 321', '27', '800', '123321', "South Africa", false)
18
+ end
19
+ end
@@ -0,0 +1,30 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/test_helper')
2
+
3
+ class ExtensionTest < Test::Unit::TestCase
4
+
5
+ def test_parse_usa_long_with_simple_extension
6
+ pn = Phoner::Phone.parse "+1 2069735100 x143"
7
+
8
+ assert_not_nil pn, %Q{parse should pass}
9
+ assert_equal '9735100', pn.number
10
+ assert_equal '206', pn.area_code
11
+ assert_equal '1', pn.country_code
12
+ assert_equal '143', pn.extension
13
+ end
14
+
15
+ def test_to_s_with_extension
16
+ pn = Phoner::Phone.new '5125486', '91', '385', '143'
17
+ assert_equal '+385915125486x143', pn.format(:default_with_extension)
18
+ end
19
+
20
+ def test_format_with_extension
21
+ pn = Phoner::Phone.new '5125486', '91', '385', '143'
22
+ assert_equal '(091)/512-5486 x 143', pn.format('(%A)/%f-%l x %x')
23
+ end
24
+
25
+ def test_validation_keeps_extension
26
+ number = "555-555-1212 ext 1234"
27
+ Phoner::Phone.valid?(number)
28
+ assert_equal "555-555-1212 ext 1234", number
29
+ end
30
+ end
@@ -0,0 +1,137 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/test_helper')
2
+
3
+ class PhoneTest < Phoner::TestCase
4
+
5
+ def test_is_mobile
6
+ assert Phoner::Phone.is_mobile?("918124452900")
7
+ end
8
+
9
+ def test_number_without_country_code_initialize
10
+ Phoner::Phone.default_country_code = nil
11
+
12
+ assert_raise RuntimeError do
13
+ pn = Phoner::Phone.new '5125486', '91'
14
+ end
15
+ end
16
+
17
+ def test_number_without_country_and_area_code_initialize
18
+ Phoner::Phone.default_country_code = nil
19
+ Phoner::Phone.default_area_code = nil
20
+
21
+ assert_raise RuntimeError do
22
+ pn = Phoner::Phone.new '451588'
23
+ end
24
+ end
25
+
26
+ def test_number_with_default_area_code_initialize
27
+ Phoner::Phone.default_country_code = '385'
28
+ Phoner::Phone.default_area_code = '47'
29
+
30
+ pn = Phoner::Phone.new '451588'
31
+ assert pn.number == '451588'
32
+ assert pn.area_code == '47'
33
+ assert pn.country_code == '385'
34
+ end
35
+
36
+ def test_number_with_default_country_code_initialize
37
+ Phoner::Phone.default_country_code = '386'
38
+
39
+ pn = Phoner::Phone.new '5125486', '91'
40
+ assert pn.number == '5125486'
41
+ assert pn.area_code == '91'
42
+ assert pn.country_code == '386'
43
+ end
44
+
45
+ def test_number_with_country_code_initialize
46
+ Phoner::Phone.default_country_code = '387'
47
+
48
+ pn = Phoner::Phone.new '5125486', '91', '385'
49
+ assert pn.number == '5125486'
50
+ assert pn.area_code == '91'
51
+ assert pn.country_code == '385'
52
+ end
53
+
54
+ def test_parse_empty
55
+ assert_equal Phoner::Phone.parse(''), nil
56
+ assert_equal Phoner::Phone.parse(nil), nil
57
+ end
58
+
59
+ def test_parse_short_without_special_characters_without_country
60
+ Phoner::Phone.default_country_code = nil
61
+
62
+ assert_nil Phoner::Phone.parse "0915125486"
63
+
64
+ assert_raise RuntimeError do
65
+ Phoner::Phone.parse! "0915125486"
66
+ end
67
+ end
68
+
69
+ def test_parse_short_with_special_characters_without_country
70
+ Phoner::Phone.default_country_code = nil
71
+
72
+ assert_nil Phoner::Phone.parse "091/512-5486"
73
+
74
+ assert_raise RuntimeError do
75
+ Phoner::Phone.parse! "091/512-5486"
76
+ end
77
+ end
78
+
79
+ def test_to_s
80
+ Phoner::Phone.default_country_code = nil
81
+ pn = Phoner::Phone.new '5125486', '91', '385'
82
+ assert pn.to_s == '+385915125486'
83
+ end
84
+
85
+ def test_to_s_without_country_code
86
+ Phoner::Phone.default_country_code = '385'
87
+ pn = Phoner::Phone.new '5125486', '91'
88
+ assert pn.format("0%a%n") == '0915125486'
89
+ end
90
+
91
+ def test_format_special_with_country_code
92
+ Phoner::Phone.default_country_code = nil
93
+ pn = Phoner::Phone.new '5125486', '91', '385'
94
+ assert pn.format("+ %c (%a) %n") == '+ 385 (91) 5125486'
95
+ end
96
+
97
+ def test_format_special_without_country_code
98
+ Phoner::Phone.default_country_code = '385'
99
+ pn = Phoner::Phone.new '5125486', '91'
100
+ assert_equal pn.format("%A/%f-%l"), '091/512-5486'
101
+ end
102
+
103
+ def test_format_with_symbol_specifier
104
+ Phoner::Phone.default_country_code = nil
105
+ pn = Phoner::Phone.new '5125486', '91', '385'
106
+ assert_equal pn.format(:europe), '+385 (0) 91 512 5486'
107
+ end
108
+
109
+ def test_valid
110
+ assert_equal Phoner::Phone.valid?('915125486', :country_code => '385'), true
111
+ assert_equal Phoner::Phone.valid?('385915125486'), true
112
+ end
113
+
114
+ def test_doesnt_validate
115
+ assert_equal Phoner::Phone.valid?('asdas'), false
116
+ assert_equal Phoner::Phone.valid?('38591512548678'), false
117
+ end
118
+
119
+ def test_comparison_true
120
+ pn1 = Phoner::Phone.new '5125486', '91', '385'
121
+ pn2 = Phoner::Phone.new '5125486', '91', '385'
122
+ assert pn1 == pn2
123
+ end
124
+
125
+ def test_comparison_false
126
+ pn1 = Phoner::Phone.new '5125486', '91', '385'
127
+ pn2 = Phoner::Phone.new '1234567', '91', '385'
128
+ assert pn1 != pn2
129
+ end
130
+
131
+ def test_parse_number_without_international_code
132
+ assert_equal (Phoner::Phone.parse "90123456"), nil
133
+ assert_equal (Phoner::Phone.parse "90123456", :country_code => '47').format(:default), "+4790123456"
134
+ assert_equal (Phoner::Phone.parse "90123456", :country_code => '47', :area_code => '').format(:default), "+4790123456"
135
+ end
136
+
137
+ end
@@ -0,0 +1,37 @@
1
+ $:.unshift(File.dirname(__FILE__) + '/../lib')
2
+
3
+ require 'rubygems'
4
+
5
+ require 'test/unit'
6
+ require 'phone'
7
+
8
+ def parse_test(raw, country_code, area_code, number, country_name = nil, is_mobile = nil)
9
+ pn = Phoner::Phone.parse(raw)
10
+
11
+ assert_not_nil pn, %Q{parse should pass}
12
+ assert_equal pn.country_code, country_code
13
+ assert_equal pn.area_code, area_code
14
+ assert_equal pn.number, number
15
+ if country_name
16
+ assert_equal pn.country.name, country_name
17
+ end
18
+
19
+ unless is_mobile.nil?
20
+ assert_equal is_mobile, pn.is_mobile?
21
+ end
22
+ end
23
+
24
+
25
+ class Phoner::TestCase < Test::Unit::TestCase
26
+
27
+ def setup
28
+ Phoner::Phone.default_country_code = nil
29
+ Phoner::Phone.default_area_code = nil
30
+ end
31
+
32
+ def default_test
33
+ klass = self.class.to_s
34
+ ancestors = (self.class.ancestors - [self.class]).collect { |ancestor| ancestor.to_s }
35
+ super unless klass =~ /TestCase/ or ancestors.first =~ /TestCase/
36
+ end
37
+ end
metadata ADDED
@@ -0,0 +1,105 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: superp-phone
3
+ version: !ruby/object:Gem::Version
4
+ version: '1.1'
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Tomislav Car
9
+ - Todd Eichel
10
+ - Don Morrison
11
+ - Wesley Moxam
12
+ autorequire:
13
+ bindir: bin
14
+ cert_chain: []
15
+ date: 2012-12-05 00:00:00.000000000 Z
16
+ dependencies: []
17
+ description: Release for https://github.com/wmoxam/phone fork
18
+ email:
19
+ - tomislav@infinum.hr
20
+ - todd@toddeichel.com
21
+ - elskwid@gmail.com
22
+ - wesley.moxam@gmail.com
23
+ executables: []
24
+ extensions: []
25
+ extra_rdoc_files:
26
+ - Readme.rdoc
27
+ - LICENSE
28
+ files:
29
+ - Readme.rdoc
30
+ - LICENSE
31
+ - data/phone_countries.yml
32
+ - lib/phone.rb
33
+ - lib/country.rb
34
+ - lib/support.rb
35
+ - test/extension_test.rb
36
+ - test/phone_test.rb
37
+ - test/test_helper.rb
38
+ - test/countries/au_test.rb
39
+ - test/countries/ba_test.rb
40
+ - test/countries/be_test.rb
41
+ - test/countries/ca_test.rb
42
+ - test/countries/de_test.rb
43
+ - test/countries/fr_test.rb
44
+ - test/countries/gb_test.rb
45
+ - test/countries/hr_test.rb
46
+ - test/countries/hu_test.rb
47
+ - test/countries/in_test.rb
48
+ - test/countries/nl_test.rb
49
+ - test/countries/pt_test.rb
50
+ - test/countries/rs_test.rb
51
+ - test/countries/se_test.rb
52
+ - test/countries/si_test.rb
53
+ - test/countries/ua_test.rb
54
+ - test/countries/us_test.rb
55
+ - test/countries/za_test.rb
56
+ homepage: http://github.com/superp/phone
57
+ licenses: []
58
+ post_install_message:
59
+ rdoc_options:
60
+ - --main
61
+ - Readme.rdoc
62
+ - --inline-source
63
+ - --charset=UTF-8
64
+ require_paths:
65
+ - lib
66
+ required_ruby_version: !ruby/object:Gem::Requirement
67
+ none: false
68
+ requirements:
69
+ - - ! '>='
70
+ - !ruby/object:Gem::Version
71
+ version: '0'
72
+ required_rubygems_version: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ requirements: []
79
+ rubyforge_project:
80
+ rubygems_version: 1.8.24
81
+ signing_key:
82
+ specification_version: 3
83
+ summary: Phone number parsing, validation and formatting
84
+ test_files:
85
+ - test/extension_test.rb
86
+ - test/phone_test.rb
87
+ - test/test_helper.rb
88
+ - test/countries/au_test.rb
89
+ - test/countries/ba_test.rb
90
+ - test/countries/be_test.rb
91
+ - test/countries/ca_test.rb
92
+ - test/countries/de_test.rb
93
+ - test/countries/fr_test.rb
94
+ - test/countries/gb_test.rb
95
+ - test/countries/hr_test.rb
96
+ - test/countries/hu_test.rb
97
+ - test/countries/in_test.rb
98
+ - test/countries/nl_test.rb
99
+ - test/countries/pt_test.rb
100
+ - test/countries/rs_test.rb
101
+ - test/countries/se_test.rb
102
+ - test/countries/si_test.rb
103
+ - test/countries/ua_test.rb
104
+ - test/countries/us_test.rb
105
+ - test/countries/za_test.rb