whois 0.8.1 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (113) hide show
  1. data/CHANGELOG.rdoc +61 -0
  2. data/Manifest +87 -4
  3. data/README.rdoc +13 -9
  4. data/Rakefile +4 -1
  5. data/bin/ruby-whois +35 -21
  6. data/lib/whois.rb +6 -0
  7. data/lib/whois/answer.rb +30 -14
  8. data/lib/whois/answer/parser.rb +48 -11
  9. data/lib/whois/answer/parser/ast.rb +72 -0
  10. data/lib/whois/answer/parser/base.rb +14 -9
  11. data/lib/whois/answer/parser/blank.rb +1 -1
  12. data/lib/whois/answer/parser/scanners/verisign.rb +117 -0
  13. data/lib/whois/answer/parser/whois.aero.rb +74 -0
  14. data/lib/whois/answer/parser/whois.afilias-grs.info.rb +72 -0
  15. data/lib/whois/answer/parser/whois.afilias.info.rb +72 -0
  16. data/lib/whois/answer/parser/whois.crsnic.net.rb +5 -115
  17. data/lib/whois/answer/parser/whois.denic.de.rb +28 -25
  18. data/lib/whois/answer/parser/whois.domainregistry.ie.rb +74 -0
  19. data/lib/whois/answer/parser/whois.educause.edu.rb +76 -0
  20. data/lib/whois/answer/parser/whois.eu.org.rb +73 -0
  21. data/lib/whois/answer/parser/whois.iana.org.rb +75 -0
  22. data/lib/whois/answer/parser/whois.nic.asia.rb +74 -0
  23. data/lib/whois/answer/parser/whois.nic.fr.rb +77 -0
  24. data/lib/whois/answer/parser/whois.nic.gov.rb +71 -0
  25. data/lib/whois/answer/parser/whois.nic.hu.rb +332 -0
  26. data/lib/whois/answer/parser/whois.nic.it.rb +5 -23
  27. data/lib/whois/answer/parser/whois.nic.name.rb +73 -0
  28. data/lib/whois/answer/parser/whois.nic.tv.rb +99 -0
  29. data/lib/whois/answer/parser/whois.publicinterestregistry.net.rb +6 -24
  30. data/lib/whois/answer/parser/whois.za.net.rb +75 -0
  31. data/lib/whois/answer/parser/whois.za.org.rb +75 -0
  32. data/lib/whois/client.rb +4 -3
  33. data/lib/whois/definitions/tld.notes.txt +1 -0
  34. data/lib/whois/definitions/tlds.rb +11 -49
  35. data/lib/whois/version.rb +5 -6
  36. data/lib/whois/whois.rb +0 -6
  37. data/test/answer/parser/base_test.rb +21 -0
  38. data/test/answer/parser/blank_test.rb +1 -1
  39. data/test/answer/parser/whois.aero_test.rb +51 -0
  40. data/test/answer/parser/whois.afilias-grs.info_test.rb +51 -0
  41. data/test/answer/parser/whois.afilias.info_test.rb +51 -0
  42. data/test/answer/parser/{whois_crsnic_net_test.rb → whois.crsnic.net_test.rb} +15 -68
  43. data/test/answer/parser/{whois_denic_de_test.rb → whois.denic.de_test.rb} +9 -34
  44. data/test/answer/parser/whois.domainregistry.ie_test.rb +51 -0
  45. data/test/answer/parser/whois.educause.edu_test.rb +51 -0
  46. data/test/answer/parser/whois.eu.org_test.rb +51 -0
  47. data/test/answer/parser/whois.iana.org_test.rb +51 -0
  48. data/test/answer/parser/whois.nic.asia_test.rb +51 -0
  49. data/test/answer/parser/whois.nic.fr_test.rb +51 -0
  50. data/test/answer/parser/whois.nic.gov_test.rb +51 -0
  51. data/test/answer/parser/whois.nic.hu_test.rb +226 -0
  52. data/test/answer/parser/{whois_nic_it_test.rb → whois.nic.it_test.rb} +3 -25
  53. data/test/answer/parser/whois.nic.name_test.rb +51 -0
  54. data/test/answer/parser/whois.nic.tv_test.rb +122 -0
  55. data/test/answer/parser/{whois_publicinterestregistry_net_test.rb → whois.publicinterestregistry.net_test.rb} +4 -26
  56. data/test/answer/parser/whois.za.net_test.rb +51 -0
  57. data/test/answer/parser/whois.za.org_test.rb +51 -0
  58. data/test/answer/parser_test.rb +44 -3
  59. data/test/answer_test.rb +27 -13
  60. data/test/client_test.rb +18 -11
  61. data/test/list_tld +319 -0
  62. data/test/test_helper.rb +24 -0
  63. data/test/testcases/responses/whois.aero/available.txt +1 -0
  64. data/test/testcases/responses/whois.aero/registered.txt +102 -0
  65. data/test/testcases/responses/whois.afilias-grs.info/available.txt +1 -0
  66. data/test/testcases/responses/whois.afilias-grs.info/bz/available.txt +1 -0
  67. data/test/testcases/responses/whois.afilias-grs.info/bz/registered.txt +122 -0
  68. data/test/testcases/responses/whois.afilias-grs.info/gi/available.txt +1 -0
  69. data/test/testcases/responses/whois.afilias-grs.info/gi/registered.txt +98 -0
  70. data/test/testcases/responses/whois.afilias-grs.info/hn/available.txt +1 -0
  71. data/test/testcases/responses/whois.afilias-grs.info/hn/registered.txt +85 -0
  72. data/test/testcases/responses/whois.afilias-grs.info/lc/available.txt +1 -0
  73. data/test/testcases/responses/whois.afilias-grs.info/lc/registered.txt +83 -0
  74. data/test/testcases/responses/whois.afilias-grs.info/mn/available.txt +1 -0
  75. data/test/testcases/responses/whois.afilias-grs.info/mn/registered.txt +100 -0
  76. data/test/testcases/responses/whois.afilias-grs.info/registered.txt +122 -0
  77. data/test/testcases/responses/whois.afilias-grs.info/sc/available.txt +1 -0
  78. data/test/testcases/responses/whois.afilias-grs.info/sc/registered.txt +85 -0
  79. data/test/testcases/responses/whois.afilias-grs.info/vc/available.txt +1 -0
  80. data/test/testcases/responses/whois.afilias-grs.info/vc/registered.txt +100 -0
  81. data/test/testcases/responses/whois.afilias.info/available.txt +1 -0
  82. data/test/testcases/responses/whois.afilias.info/registered.txt +104 -0
  83. data/test/testcases/responses/whois.crsnic.net/MULTIPLE.txt +3 -0
  84. data/test/testcases/responses/whois.domainregistry.ie/available.txt +7 -0
  85. data/test/testcases/responses/whois.domainregistry.ie/registered.txt +26 -0
  86. data/test/testcases/responses/whois.educause.edu/available.txt +28 -0
  87. data/test/testcases/responses/whois.educause.edu/registered.txt +66 -0
  88. data/test/testcases/responses/whois.eu.org/available.txt +1 -0
  89. data/test/testcases/responses/whois.eu.org/registered.txt +19 -0
  90. data/test/testcases/responses/whois.iana.org/MULTIPLE.txt +3 -0
  91. data/test/testcases/responses/whois.iana.org/available.txt +7 -0
  92. data/test/testcases/responses/whois.iana.org/registered.txt +89 -0
  93. data/test/testcases/responses/whois.nic.asia/available.txt +1 -0
  94. data/test/testcases/responses/whois.nic.asia/registered.txt +159 -0
  95. data/test/testcases/responses/whois.nic.fr/MULTIPLE.txt +4 -0
  96. data/test/testcases/responses/whois.nic.fr/available.txt +19 -0
  97. data/test/testcases/responses/whois.nic.fr/registered.txt +98 -0
  98. data/test/testcases/responses/whois.nic.gov/available.txt +1 -0
  99. data/test/testcases/responses/whois.nic.gov/registered.txt +5 -0
  100. data/test/testcases/responses/whois.nic.hu/available.txt +12 -0
  101. data/test/testcases/responses/whois.nic.hu/in_progress.txt +13 -0
  102. data/test/testcases/responses/whois.nic.hu/registered.txt +65 -0
  103. data/test/testcases/responses/whois.nic.name/available.txt +29 -0
  104. data/test/testcases/responses/whois.nic.name/registered.txt +36 -0
  105. data/test/testcases/responses/whois.nic.name/reserved.txt +30 -0
  106. data/test/testcases/responses/whois.nic.tv/available.txt +44 -0
  107. data/test/testcases/responses/whois.nic.tv/registered.txt +54 -0
  108. data/test/testcases/responses/whois.za.net/available.txt +9 -0
  109. data/test/testcases/responses/whois.za.net/registered.txt +42 -0
  110. data/test/testcases/responses/whois.za.org/available.txt +9 -0
  111. data/test/testcases/responses/whois.za.org/registered.txt +44 -0
  112. data/whois.gemspec +9 -6
  113. metadata +138 -15
@@ -1,9 +1,7 @@
1
1
  require 'test_helper'
2
2
  require 'whois/answer/parser/whois.nic.it.rb'
3
3
 
4
- class AnswerParserWhoisNicItTest < Test::Unit::TestCase
5
-
6
- TESTCASE_PATH = File.expand_path(File.dirname(__FILE__) + '/../../testcases/responses/whois.nic.it')
4
+ class AnswerParserWhoisNicItTest < Whois::Answer::Parser::TestCase
7
5
 
8
6
  def setup
9
7
  @klass = Whois::Answer::Parser::WhoisNicIt
@@ -56,21 +54,15 @@ class AnswerParserWhoisNicItTest < Test::Unit::TestCase
56
54
 
57
55
 
58
56
  def test_created_on
59
- assert_equal Time.parse("1999-12-10 00:00:00"),
57
+ assert_equal Time.parse("1999-12-10 00:00:00 +0100"),
60
58
  @klass.new(load_part('/registered.txt')).created_on
61
- end
62
-
63
- def test_created_on_with_available
64
59
  assert_equal nil,
65
60
  @klass.new(load_part('/available.txt')).created_on
66
61
  end
67
62
 
68
63
  def test_updated_on
69
- assert_equal Time.parse("2008-11-27 16:47:22"),
64
+ assert_equal Time.parse("2008-11-27 16:47:22 +0100"),
70
65
  @klass.new(load_part('/registered.txt')).updated_on
71
- end
72
-
73
- def test_updated_on_with_available
74
66
  assert_equal nil,
75
67
  @klass.new(load_part('/available.txt')).updated_on
76
68
  end
@@ -78,9 +70,6 @@ class AnswerParserWhoisNicItTest < Test::Unit::TestCase
78
70
  def test_expires_on
79
71
  assert_equal Time.parse("2009-11-27"),
80
72
  @klass.new(load_part('/registered.txt')).expires_on
81
- end
82
-
83
- def test_expires_on_with_available
84
73
  assert_equal nil,
85
74
  @klass.new(load_part('/available.txt')).expires_on
86
75
  end
@@ -241,15 +230,4 @@ Status: AVAILABLE
241
230
  RESPONSE
242
231
  end
243
232
 
244
-
245
- protected
246
-
247
- def load_part(path)
248
- part(File.read(TESTCASE_PATH + path), @host)
249
- end
250
-
251
- def part(*args)
252
- Whois::Answer::Part.new(*args)
253
- end
254
-
255
233
  end
@@ -0,0 +1,51 @@
1
+ require 'test_helper'
2
+ require 'whois/answer/parser/whois.nic.name.rb'
3
+
4
+ class AnswerParserWhoisNicNameTest < Whois::Answer::Parser::TestCase
5
+
6
+ def setup
7
+ @klass = Whois::Answer::Parser::WhoisNicName
8
+ @host = "whois.nic.name"
9
+ end
10
+
11
+
12
+ def test_status
13
+ assert_equal :available,
14
+ @klass.new(load_part('/available.txt')).status
15
+ assert_equal :registered,
16
+ @klass.new(load_part('/registered.txt')).status
17
+ end
18
+
19
+ def test_available?
20
+ assert !@klass.new(load_part('/registered.txt')).available?
21
+ assert @klass.new(load_part('/available.txt')).available?
22
+ end
23
+
24
+ def test_registered?
25
+ assert !@klass.new(load_part('/available.txt')).registered?
26
+ assert @klass.new(load_part('/registered.txt')).registered?
27
+ end
28
+
29
+
30
+ def test_created_on
31
+ assert_equal nil,
32
+ @klass.new(load_part('/registered.txt')).created_on
33
+ assert_equal nil,
34
+ @klass.new(load_part('/available.txt')).created_on
35
+ end
36
+
37
+ def test_updated_on
38
+ assert_equal nil,
39
+ @klass.new(load_part('/registered.txt')).updated_on
40
+ assert_equal nil,
41
+ @klass.new(load_part('/available.txt')).updated_on
42
+ end
43
+
44
+ def test_expires_on
45
+ assert_equal nil,
46
+ @klass.new(load_part('/registered.txt')).expires_on
47
+ assert_equal nil,
48
+ @klass.new(load_part('/available.txt')).expires_on
49
+ end
50
+
51
+ end
@@ -0,0 +1,122 @@
1
+ require 'test_helper'
2
+ require 'whois/answer/parser/whois.nic.tv'
3
+
4
+ class AnswerParserWhoisNicTvTest < Whois::Answer::Parser::TestCase
5
+
6
+ def setup
7
+ @klass = Whois::Answer::Parser::WhoisNicTv
8
+ @host = "whois.nic.tv"
9
+ end
10
+
11
+
12
+ def test_disclaimer
13
+ expected = <<-EOS.strip
14
+ TERMS OF USE: You are not authorized to access or query our Whois \
15
+ database through the use of electronic processes that are high-volume and \
16
+ automated except as reasonably necessary to register domain names or \
17
+ modify existing registrations; the Data in VeriSign's ("VeriSign") Whois \
18
+ database is provided by VeriSign for information purposes only, and to \
19
+ assist persons in obtaining information about or related to a domain name \
20
+ registration record. VeriSign does not guarantee its accuracy. \
21
+ By submitting a Whois query, you agree to abide by the following terms of \
22
+ use: You agree that you may use this Data only for lawful purposes and that \
23
+ under no circumstances will you use this Data to: (1) allow, enable, or \
24
+ otherwise support the transmission of mass unsolicited, commercial \
25
+ advertising or solicitations via e-mail, telephone, or facsimile; or \
26
+ (2) enable high volume, automated, electronic processes that apply to \
27
+ VeriSign (or its computer systems). The compilation, repackaging, \
28
+ dissemination or other use of this Data is expressly prohibited without \
29
+ the prior written consent of VeriSign. You agree not to use electronic \
30
+ processes that are automated and high-volume to access or query the \
31
+ Whois database except as reasonably necessary to register domain names \
32
+ or modify existing registrations. VeriSign reserves the right to restrict \
33
+ your access to the Whois database in its sole discretion to ensure \
34
+ operational stability. VeriSign may restrict or terminate your access to the \
35
+ Whois database for failure to abide by these terms of use. VeriSign \
36
+ reserves the right to modify these terms at any time.
37
+ EOS
38
+ assert_equal expected,
39
+ @klass.new(load_part('/registered.txt')).disclaimer
40
+ assert_equal expected,
41
+ @klass.new(load_part('/available.txt')).disclaimer
42
+ end
43
+
44
+
45
+ def test_domain
46
+ assert_equal "thinkcode.tv",
47
+ @klass.new(load_part('/registered.txt')).domain
48
+ assert_equal "u34jedzcq.tv",
49
+ @klass.new(load_part('/available.txt')).domain
50
+ end
51
+
52
+ def test_domain_id
53
+ assert_equal nil,
54
+ @klass.new(load_part('/registered.txt')).domain_id
55
+ assert_equal nil,
56
+ @klass.new(load_part('/available.txt')).domain_id
57
+ end
58
+
59
+
60
+ def test_referral_whois
61
+ assert_equal "whois.dynadot.com",
62
+ @klass.new(load_part('/registered.txt')).referral_whois
63
+ assert_equal nil,
64
+ @klass.new(load_part('/available.txt')).referral_whois
65
+ end
66
+
67
+ def test_referral_url
68
+ assert_equal "http://www.dynadot.com",
69
+ @klass.new(load_part('/registered.txt')).referral_url
70
+ assert_equal nil,
71
+ @klass.new(load_part('/available.txt')).referral_url
72
+ end
73
+
74
+
75
+ def test_status
76
+ assert_equal "CLIENT-XFER-PROHIBITED",
77
+ @klass.new(load_part('/registered.txt')).status
78
+ assert_equal nil,
79
+ @klass.new(load_part('/available.txt')).status
80
+ end
81
+
82
+ def test_available?
83
+ assert !@klass.new(load_part('/registered.txt')).available?
84
+ assert @klass.new(load_part('/available.txt')).available?
85
+ end
86
+
87
+ def test_registered?
88
+ assert @klass.new(load_part('/registered.txt')).registered?
89
+ assert !@klass.new(load_part('/available.txt')).registered?
90
+ end
91
+
92
+
93
+ def test_created_on
94
+ assert_equal Time.parse("2009-04-21 00:00:00 +0200"),
95
+ @klass.new(load_part('/registered.txt')).created_on
96
+ assert_equal nil,
97
+ @klass.new(load_part('/available.txt')).created_on
98
+ end
99
+
100
+ def test_updated_on
101
+ assert_equal Time.parse("2009-11-19 00:00:00 +0100"),
102
+ @klass.new(load_part('/registered.txt')).updated_on
103
+ assert_equal nil,
104
+ @klass.new(load_part('/available.txt')).updated_on
105
+ end
106
+
107
+ def test_expires_on
108
+ assert_equal Time.parse("2010-04-21 00:00:00 +0200"),
109
+ @klass.new(load_part('/registered.txt')).expires_on
110
+ assert_equal nil,
111
+ @klass.new(load_part('/available.txt')).expires_on
112
+ end
113
+
114
+
115
+ def test_registrar
116
+ assert_equal nil,
117
+ @klass.new(load_part('/registered.txt')).registrar
118
+ assert_equal nil,
119
+ @klass.new(load_part('/available.txt')).registrar
120
+ end
121
+
122
+ end
@@ -1,9 +1,7 @@
1
1
  require 'test_helper'
2
2
  require 'whois/answer/parser/whois.publicinterestregistry.net'
3
3
 
4
- class AnswerParserWhoisPublicinterestregistryNetTest < Test::Unit::TestCase
5
-
6
- TESTCASE_PATH = File.expand_path(File.dirname(__FILE__) + '/../../testcases/responses/whois.publicinterestregistry.net')
4
+ class AnswerParserWhoisPublicinterestregistryNetTest < Whois::Answer::Parser::TestCase
7
5
 
8
6
  def setup
9
7
  @klass = Whois::Answer::Parser::WhoisPublicinterestregistryNet
@@ -73,31 +71,22 @@ time. By submitting this query, you agree to abide by this policy.
73
71
 
74
72
 
75
73
  def test_created_on
76
- assert_equal Time.parse("21-Oct-1998 04:00:00 UTC"),
74
+ assert_equal Time.parse("1998-10-21 04:00:00 UTC"),
77
75
  @klass.new(load_part('/registered.txt')).created_on
78
- end
79
-
80
- def test_created_on_with_available
81
76
  assert_equal nil,
82
77
  @klass.new(load_part('/available.txt')).created_on
83
78
  end
84
79
 
85
80
  def test_updated_on
86
- assert_equal Time.parse("04-Mar-2009 12:07:19 UTC"),
81
+ assert_equal Time.parse("2009-03-04 12:07:19 UTC"),
87
82
  @klass.new(load_part('/registered.txt')).updated_on
88
- end
89
-
90
- def test_updated_on_with_available
91
83
  assert_equal nil,
92
84
  @klass.new(load_part('/available.txt')).updated_on
93
85
  end
94
86
 
95
87
  def test_expires_on
96
- assert_equal Time.parse("20-Oct-2012 04:00:00 UTC"),
88
+ assert_equal Time.parse("2012-10-20 04:00:00 UTC"),
97
89
  @klass.new(load_part('/registered.txt')).expires_on
98
- end
99
-
100
- def test_expires_on_with_available
101
90
  assert_equal nil,
102
91
  @klass.new(load_part('/available.txt')).expires_on
103
92
  end
@@ -196,15 +185,4 @@ time. By submitting this query, you agree to abide by this policy.
196
185
  @klass.new(load_part('/available.txt')).nameservers
197
186
  end
198
187
 
199
-
200
- protected
201
-
202
- def load_part(path)
203
- part(File.read(TESTCASE_PATH + path), @host)
204
- end
205
-
206
- def part(*args)
207
- Whois::Answer::Part.new(*args)
208
- end
209
-
210
188
  end
@@ -0,0 +1,51 @@
1
+ require 'test_helper'
2
+ require 'whois/answer/parser/whois.za.net.rb'
3
+
4
+ class AnswerParserWhoisZaNetTest < Whois::Answer::Parser::TestCase
5
+
6
+ def setup
7
+ @klass = Whois::Answer::Parser::WhoisZaNet
8
+ @host = "whois.za.net"
9
+ end
10
+
11
+
12
+ def test_status
13
+ assert_equal :registered,
14
+ @klass.new(load_part('/registered.txt')).status
15
+ assert_equal :available,
16
+ @klass.new(load_part('/available.txt')).status
17
+ end
18
+
19
+ def test_available?
20
+ assert !@klass.new(load_part('/registered.txt')).available?
21
+ assert @klass.new(load_part('/available.txt')).available?
22
+ end
23
+
24
+ def test_registered?
25
+ assert !@klass.new(load_part('/available.txt')).registered?
26
+ assert @klass.new(load_part('/registered.txt')).registered?
27
+ end
28
+
29
+
30
+ def test_created_on
31
+ assert_equal Time.parse("2002-03-29 22:03:53 GMT"),
32
+ @klass.new(load_part('/registered.txt')).created_on
33
+ assert_equal nil,
34
+ @klass.new(load_part('/available.txt')).created_on
35
+ end
36
+
37
+ def test_updated_on
38
+ assert_equal Time.parse("2002-03-29 22:03:53 GMT"),
39
+ @klass.new(load_part('/registered.txt')).updated_on
40
+ assert_equal nil,
41
+ @klass.new(load_part('/available.txt')).updated_on
42
+ end
43
+
44
+ def test_expires_on
45
+ assert_equal nil,
46
+ @klass.new(load_part('/registered.txt')).expires_on
47
+ assert_equal nil,
48
+ @klass.new(load_part('/available.txt')).expires_on
49
+ end
50
+
51
+ end
@@ -0,0 +1,51 @@
1
+ require 'test_helper'
2
+ require 'whois/answer/parser/whois.za.org.rb'
3
+
4
+ class AnswerParserWhoisZaOrgTest < Whois::Answer::Parser::TestCase
5
+
6
+ def setup
7
+ @klass = Whois::Answer::Parser::WhoisZaOrg
8
+ @host = "whois.za.org"
9
+ end
10
+
11
+
12
+ def test_status
13
+ assert_equal :registered,
14
+ @klass.new(load_part('/registered.txt')).status
15
+ assert_equal :available,
16
+ @klass.new(load_part('/available.txt')).status
17
+ end
18
+
19
+ def test_available?
20
+ assert !@klass.new(load_part('/registered.txt')).available?
21
+ assert @klass.new(load_part('/available.txt')).available?
22
+ end
23
+
24
+ def test_registered?
25
+ assert !@klass.new(load_part('/available.txt')).registered?
26
+ assert @klass.new(load_part('/registered.txt')).registered?
27
+ end
28
+
29
+
30
+ def test_created_on
31
+ assert_equal Time.parse("2000-11-05 14:03:48 GMT"),
32
+ @klass.new(load_part('/registered.txt')).created_on
33
+ assert_equal nil,
34
+ @klass.new(load_part('/available.txt')).created_on
35
+ end
36
+
37
+ def test_updated_on
38
+ assert_equal Time.parse("2005-08-15 12:15:10 BST"),
39
+ @klass.new(load_part('/registered.txt')).updated_on
40
+ assert_equal nil,
41
+ @klass.new(load_part('/available.txt')).updated_on
42
+ end
43
+
44
+ def test_expires_on
45
+ assert_equal nil,
46
+ @klass.new(load_part('/registered.txt')).expires_on
47
+ assert_equal nil,
48
+ @klass.new(load_part('/available.txt')).expires_on
49
+ end
50
+
51
+ end
@@ -50,32 +50,60 @@ class AnswerParserTest < Test::Unit::TestCase
50
50
  end
51
51
 
52
52
 
53
+ # DEPRECATED
53
54
  def test_supported_with_zero_parts
54
55
  answer = Whois::Answer.new(nil, [])
55
56
  parser = @klass.new(answer)
56
57
  assert !parser.supported?(:disclaimer)
57
58
  end
58
59
 
60
+ # DEPRECATED
59
61
  def test_supported_with_one_part_supported
60
62
  answer = Whois::Answer.new(nil, [Whois::Answer::Part.new(nil, "whois.nic.it")])
61
63
  parser = @klass.new(answer)
62
64
  assert parser.supported?(:disclaimer)
63
65
  end
64
66
 
67
+ # DEPRECATED
65
68
  def test_supported_with_one_part_unsupported
66
69
  answer = Whois::Answer.new(nil, [Whois::Answer::Part.new(nil, "invalid.nic.it")])
67
70
  parser = @klass.new(answer)
68
71
  assert !parser.supported?(:disclaimer)
69
72
  end
70
73
 
74
+ # DEPRECATED
71
75
  def test_supported_with_two_parts
72
76
  answer = Whois::Answer.new(nil, [Whois::Answer::Part.new(nil, "whois.crsnic.net"), Whois::Answer::Part.new(nil, "whois.nic.it")])
73
77
  parser = @klass.new(answer)
74
- assert parser.supported?(:disclaimer)
78
+ assert parser.property_supported?(:disclaimer)
79
+ end
80
+
81
+ def test_property_supported_with_zero_parts
82
+ answer = Whois::Answer.new(nil, [])
83
+ parser = @klass.new(answer)
84
+ assert !parser.property_supported?(:disclaimer)
85
+ end
86
+
87
+ def test_property_supported_with_one_part_supported
88
+ answer = Whois::Answer.new(nil, [Whois::Answer::Part.new(nil, "whois.nic.it")])
89
+ parser = @klass.new(answer)
90
+ assert parser.property_supported?(:disclaimer)
91
+ end
92
+
93
+ def test_property_supported_with_one_part_unsupported
94
+ answer = Whois::Answer.new(nil, [Whois::Answer::Part.new(nil, "invalid.nic.it")])
95
+ parser = @klass.new(answer)
96
+ assert !parser.property_supported?(:disclaimer)
97
+ end
98
+
99
+ def test_property_supported_with_two_parts
100
+ answer = Whois::Answer.new(nil, [Whois::Answer::Part.new(nil, "whois.crsnic.net"), Whois::Answer::Part.new(nil, "whois.nic.it")])
101
+ parser = @klass.new(answer)
102
+ assert parser.property_supported?(:disclaimer)
75
103
  end
76
104
 
77
105
 
78
- (Whois::Answer::Parser.registrable_methods - [:referral_url, :referral_whois]).each do |method|
106
+ (Whois::Answer::Parser.properties - [:referral_url, :referral_whois]).each do |method|
79
107
  define_method "test_should_delegate_#{method}_to_parsers_first_parser_if_supported" do
80
108
  answer = Whois::Answer.new(nil, [Whois::Answer::Part.new("", "whois.nic.it")])
81
109
  parser = @klass.new(answer)
@@ -92,7 +120,7 @@ class AnswerParserTest < Test::Unit::TestCase
92
120
  end
93
121
  end
94
122
 
95
- Whois::Answer::Parser.registrable_methods.each do |method|
123
+ Whois::Answer::Parser.properties.each do |method|
96
124
  define_method "test_should_delegate_#{method}_to_parser_raise_with_no_zero_parts" do
97
125
  answer = Whois::Answer.new(nil, [])
98
126
  parser = @klass.new(answer)
@@ -107,4 +135,17 @@ class AnswerParserTest < Test::Unit::TestCase
107
135
  assert_raise(NoMethodError) { parser.send("unallowed_method") }
108
136
  end
109
137
 
138
+
139
+ def test_parser_klass
140
+ assert_equal "Whois::Answer::Parser::WhoisNicIt", @klass.parser_klass("whois.nic.it").name
141
+ end
142
+
143
+ def test_parser_klass_with_preloaded_class
144
+ @klass.class_eval <<-RUBY
145
+ class WhoisFooBar
146
+ end
147
+ RUBY
148
+ assert_equal "Whois::Answer::Parser::WhoisFooBar", @klass.parser_klass("whois.foo.bar").name
149
+ end
150
+
110
151
  end