whois 1.2.1 → 1.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. data/CHANGELOG.rdoc +23 -0
  2. data/Manifest +27 -4
  3. data/README.rdoc +5 -8
  4. data/Rakefile +14 -0
  5. data/data/ip_del_list +11 -3
  6. data/data/servers_charset_list +2 -1
  7. data/data/tld_serv_list +15 -7
  8. data/lib/whois/answer/contact.rb +15 -15
  9. data/lib/whois/answer/parser/NOTES.txt +10 -13
  10. data/lib/whois/answer/parser/saudinic.net.sa.rb +36 -0
  11. data/lib/whois/answer/parser/whois.audns.net.au.rb +71 -0
  12. data/lib/whois/answer/parser/whois.ausregistry.net.au.rb +3 -39
  13. data/lib/whois/answer/parser/whois.cnnic.net.cn.rb +0 -1
  14. data/lib/whois/answer/parser/whois.jprs.jp.rb +3 -3
  15. data/lib/whois/answer/parser/whois.nic.co.rb +77 -0
  16. data/lib/whois/answer/parser/whois.nic.net.sa.rb +73 -0
  17. data/lib/whois/answer/parser/whois.tonic.to.rb +108 -0
  18. data/lib/whois/answer/parser.rb +5 -5
  19. data/lib/whois/answer/part.rb +1 -1
  20. data/lib/whois/answer/registrar.rb +4 -4
  21. data/lib/whois/client.rb +22 -10
  22. data/lib/whois/definitions/ipv4.rb +11 -3
  23. data/lib/whois/definitions/ipv4.txt +226 -0
  24. data/lib/whois/definitions/ipv6.txt +32 -0
  25. data/lib/whois/definitions/tlds.rb +12 -6
  26. data/lib/whois/definitions/tlds.txt +360 -0
  27. data/lib/whois/version.rb +2 -2
  28. data/lib/whois.rb +36 -17
  29. data/test/list_tld +21 -15
  30. data/test/testcases/responses/{whois.ausregistry.net.au → whois.audns.net.au}/available.txt +0 -0
  31. data/test/testcases/responses/{whois.ausregistry.net.au → whois.audns.net.au}/registered.txt +0 -0
  32. data/test/testcases/responses/whois.jprs.jp/jp/available.txt +17 -0
  33. data/test/testcases/responses/whois.jprs.jp/{registered.txt → jp/registered.txt} +0 -0
  34. data/test/testcases/responses/whois.jprs.jp/ne.jp/available.txt +17 -0
  35. data/test/testcases/responses/whois.jprs.jp/ne.jp/registered.txt +19 -0
  36. data/test/testcases/responses/whois.nic.co/available.txt +28 -0
  37. data/test/testcases/responses/whois.nic.co/registered.txt +82 -0
  38. data/test/testcases/responses/whois.nic.net.sa/available.txt +5 -0
  39. data/test/testcases/responses/whois.nic.net.sa/registered.txt +17 -0
  40. data/test/testcases/responses/whois.tonic.to/1.txt +1 -0
  41. data/test/testcases/responses/whois.tonic.to/available.txt +2 -0
  42. data/test/testcases/responses/whois.tonic.to/incomplete.txt +1 -0
  43. data/test/testcases/responses/whois.tonic.to/registered.txt +3 -0
  44. data/test/whois/answer/parser/saudinic.net.sa_test.rb +12 -0
  45. data/test/whois/answer/parser/whois.audns.net.au_test.rb +70 -0
  46. data/test/whois/answer/parser/whois.ausregistry.net.au_test.rb +3 -61
  47. data/test/whois/answer/parser/whois.jprs.jp_test.rb +93 -14
  48. data/test/whois/answer/parser/whois.nic.co_test.rb +64 -0
  49. data/test/whois/answer/parser/whois.nic.net.sa_test.rb +84 -0
  50. data/test/whois/answer/parser/whois.tonic.to_test.rb +125 -0
  51. data/whois.gemspec +5 -5
  52. metadata +44 -8
  53. data/test/testcases/responses/whois.jprs.jp/available.txt +0 -8
@@ -0,0 +1,28 @@
1
+ Not found: u34jedzcq.co
2
+
3
+ >>>> Whois database was last updated on: Tue Jul 20 09:39:19 GMT 2010 <<<<
4
+ .CO Internet, S.A.S., the Administrator for .CO, has collected this
5
+ information for the WHOIS database through Accredited Registrars.
6
+ This information is provided to you for informational purposes only and is
7
+ designed to assist persons in determining contents of a domain name
8
+ registration record in the .CO Internet registry database. .CO Internet makes this
9
+ information available to you "as is" and does not guarantee its accuracy.
10
+ By submitting a WHOIS query, you agree that you will use this data only for
11
+ lawful purposes and that, under no circumstances will you use this data:
12
+ (1) to allow, enable, or otherwise support the transmission of mass
13
+ unsolicited, commercial advertising or solicitations via direct mail,
14
+ electronic mail, or by telephone; (2) in contravention of any applicable
15
+ data and privacy protection laws; or (3) to enable high volume, automated,
16
+ electronic processes that apply to the registry (or its systems). Compilation,
17
+ repackaging, dissemination, or other use of the WHOIS database in its
18
+ entirety, or of a substantial portion thereof, is not allowed without
19
+ .CO Internet’s prior written permission. .CO Internet reserves the right to modify or
20
+ change these conditions at any time without prior or subsequent notification
21
+ of any kind. By executing this query, in any manner whatsoever, you agree to
22
+ abide by these terms.
23
+
24
+ NOTE: FAILURE TO LOCATE A RECORD IN THE WHOIS DATABASE IS NOT INDICATIVE
25
+ OF THE AVAILABILITY OF A DOMAIN NAME.
26
+
27
+ All domain names are subject to certain additional domain name registration
28
+ rules. For details, please visit our site at www.whois.co <http://www.whois.co> .
@@ -0,0 +1,82 @@
1
+ Domain Name: T.CO
2
+ Domain ID: D740225-CO
3
+ Sponsoring Registrar: RESTRICTED AND RESERVED NAMES .COINTERNET
4
+ Sponsoring Registrar IANA ID: 672943168
5
+ Registrar URL (registration services): www.cointernet.com.co
6
+ Domain Status: serverTransferProhibited
7
+ Registrant ID: COFOUNDERS
8
+ Registrant Name: .CO Founders program
9
+ Registrant Organization: .CO Internet S.A.S.
10
+ Registrant Address1: Calle 100# 8a-49 Torre B Oficina 507
11
+ Registrant City: Bogota
12
+ Registrant Postal Code: 00000
13
+ Registrant Country: Colombia
14
+ Registrant Country Code: CO
15
+ Registrant Phone Number: +571.6169916
16
+ Registrant Email: cofounders@cointernet.co
17
+ Administrative Contact ID: COFOUNDERS
18
+ Administrative Contact Name: .CO Founders program
19
+ Administrative Contact Organization: .CO Internet S.A.S.
20
+ Administrative Contact Address1: Calle 100# 8a-49 Torre B Oficina 507
21
+ Administrative Contact City: Bogota
22
+ Administrative Contact Postal Code: 00000
23
+ Administrative Contact Country: Colombia
24
+ Administrative Contact Country Code: CO
25
+ Administrative Contact Phone Number: +571.6169916
26
+ Administrative Contact Email: cofounders@cointernet.co
27
+ Billing Contact ID: COFOUNDERS
28
+ Billing Contact Name: .CO Founders program
29
+ Billing Contact Organization: .CO Internet S.A.S.
30
+ Billing Contact Address1: Calle 100# 8a-49 Torre B Oficina 507
31
+ Billing Contact City: Bogota
32
+ Billing Contact Postal Code: 00000
33
+ Billing Contact Country: Colombia
34
+ Billing Contact Country Code: CO
35
+ Billing Contact Phone Number: +571.6169916
36
+ Billing Contact Email: cofounders@cointernet.co
37
+ Technical Contact ID: COFOUNDERS
38
+ Technical Contact Name: .CO Founders program
39
+ Technical Contact Organization: .CO Internet S.A.S.
40
+ Technical Contact Address1: Calle 100# 8a-49 Torre B Oficina 507
41
+ Technical Contact City: Bogota
42
+ Technical Contact Postal Code: 00000
43
+ Technical Contact Country: Colombia
44
+ Technical Contact Country Code: CO
45
+ Technical Contact Phone Number: +571.6169916
46
+ Technical Contact Email: cofounders@cointernet.co
47
+ Name Server: NS1.P26.DYNECT.NET
48
+ Name Server: NS2.P26.DYNECT.NET
49
+ Name Server: NS3.P26.DYNECT.NET
50
+ Name Server: NS4.P26.DYNECT.NET
51
+ Created by Registrar: INJECTCSR
52
+ Last Updated by Registrar: NEULEVELCSR
53
+ Domain Registration Date: Mon Apr 26 07:50:40 GMT 2010
54
+ Domain Expiration Date: Thu Apr 25 23:59:59 GMT 2013
55
+ Domain Last Updated Date: Tue Jul 06 18:54:16 GMT 2010
56
+
57
+ >>>> Whois database was last updated on: Tue Jul 20 09:39:19 GMT 2010 <<<<
58
+ .CO Internet, S.A.S., the Administrator for .CO, has collected this
59
+ information for the WHOIS database through Accredited Registrars.
60
+ This information is provided to you for informational purposes only and is
61
+ designed to assist persons in determining contents of a domain name
62
+ registration record in the .CO Internet registry database. .CO Internet makes this
63
+ information available to you "as is" and does not guarantee its accuracy.
64
+ By submitting a WHOIS query, you agree that you will use this data only for
65
+ lawful purposes and that, under no circumstances will you use this data:
66
+ (1) to allow, enable, or otherwise support the transmission of mass
67
+ unsolicited, commercial advertising or solicitations via direct mail,
68
+ electronic mail, or by telephone; (2) in contravention of any applicable
69
+ data and privacy protection laws; or (3) to enable high volume, automated,
70
+ electronic processes that apply to the registry (or its systems). Compilation,
71
+ repackaging, dissemination, or other use of the WHOIS database in its
72
+ entirety, or of a substantial portion thereof, is not allowed without
73
+ .CO Internet’s prior written permission. .CO Internet reserves the right to modify or
74
+ change these conditions at any time without prior or subsequent notification
75
+ of any kind. By executing this query, in any manner whatsoever, you agree to
76
+ abide by these terms.
77
+
78
+ NOTE: FAILURE TO LOCATE A RECORD IN THE WHOIS DATABASE IS NOT INDICATIVE
79
+ OF THE AVAILABILITY OF A DOMAIN NAME.
80
+
81
+ All domain names are subject to certain additional domain name registration
82
+ rules. For details, please visit our site at www.whois.co <http://www.whois.co> .
@@ -0,0 +1,5 @@
1
+ % SaudiNIC Whois server.
2
+ % Rights restricted by copyright.
3
+ % http://www.nic.net.sa/tools/copyright.php
4
+
5
+ No match.
@@ -0,0 +1,17 @@
1
+ % SaudiNIC Whois server.
2
+ % Rights restricted by copyright.
3
+ % http://www.nic.net.sa/tools/copyright.php
4
+
5
+ domain: saudigazette.com.sa
6
+ organization: Okaz for Press and Publication
7
+ address: P.O.Box 1508
8
+ address: 21441 Jeddah
9
+ address: Saudi Arabia
10
+ admin-c: AD59-SA
11
+ tech-c: SW13-SA
12
+ reg-c: SW13-SA
13
+ nserver: ns1.peer1.net
14
+ nserver: ns2.peer1.net
15
+ req-date: 1999-06-20
16
+ reg-date: 2000-09-11
17
+ source: SaudiNIC
@@ -0,0 +1,2 @@
1
+ Tonic whoisd V1.1
2
+ No match for u34jedzcq
@@ -0,0 +1,3 @@
1
+ Tonic whoisd V1.1
2
+ go ns-1.myphotoalbum.com
3
+ go ns-2.myphotoalbum.com
@@ -0,0 +1,12 @@
1
+ require 'test_helper'
2
+ require 'whois/answer/parser/saudinic.net.sa'
3
+ require 'whois/answer/parser/whois.nic.net.sa_test'
4
+
5
+ class AnswerParserSaudinicNetSaTest < AnswerParserWhoisNicNetSaTest
6
+
7
+ def setup
8
+ @klass = Whois::Answer::Parser::SaudinicNetSa
9
+ @host = "whois.nic.net.sa"
10
+ end
11
+
12
+ end
@@ -0,0 +1,70 @@
1
+ require 'test_helper'
2
+ require 'whois/answer/parser/whois.audns.net.au'
3
+
4
+ class AnswerParserWhoisAudnsNetAuTest < Whois::Answer::Parser::TestCase
5
+
6
+ def setup
7
+ @klass = Whois::Answer::Parser::WhoisAudnsNetAu
8
+ @host = "whois.audns.net.au"
9
+ end
10
+
11
+
12
+ def test_status
13
+ parser = @klass.new(load_part('/registered.txt'))
14
+ expected = "ok"
15
+ assert_equal expected, parser.status
16
+ assert_equal expected, parser.instance_eval { @status }
17
+
18
+ parser = @klass.new(load_part('/available.txt'))
19
+ expected = nil
20
+ assert_equal expected, parser.status
21
+ assert_equal expected, parser.instance_eval { @status }
22
+ end
23
+
24
+ def test_available?
25
+ assert !@klass.new(load_part('/registered.txt')).available?
26
+ assert @klass.new(load_part('/available.txt')).available?
27
+ end
28
+
29
+ def test_registered?
30
+ assert @klass.new(load_part('/registered.txt')).registered?
31
+ assert !@klass.new(load_part('/available.txt')).registered?
32
+ end
33
+
34
+
35
+ def test_created_on
36
+ assert_raise(Whois::PropertyNotSupported) { @klass.new(load_part('/registered.txt')).created_on }
37
+ assert_raise(Whois::PropertyNotSupported) { @klass.new(load_part('/available.txt')).created_on }
38
+ end
39
+
40
+ def test_updated_on
41
+ parser = @klass.new(load_part('/registered.txt'))
42
+ expected = Time.parse("2009-10-12 16:05:44 UTC")
43
+ assert_equal expected, parser.updated_on
44
+ assert_equal expected, parser.instance_eval { @updated_on }
45
+
46
+ parser = @klass.new(load_part('/available.txt'))
47
+ expected = nil
48
+ assert_equal expected, parser.updated_on
49
+ assert_equal expected, parser.instance_eval { @updated_on }
50
+ end
51
+
52
+ def test_expires_on
53
+ assert_raise(Whois::PropertyNotSupported) { @klass.new(load_part('/registered.txt')).expires_on }
54
+ assert_raise(Whois::PropertyNotSupported) { @klass.new(load_part('/available.txt')).expires_on }
55
+ end
56
+
57
+
58
+ def test_nameservers
59
+ parser = @klass.new(load_part('/registered.txt'))
60
+ expected = %w( ns1.google.com ns2.google.com ns3.google.com ns4.google.com )
61
+ assert_equal expected, parser.nameservers
62
+ assert_equal expected, parser.instance_eval { @nameservers }
63
+
64
+ parser = @klass.new(load_part('/available.txt'))
65
+ expected = %w()
66
+ assert_equal expected, parser.nameservers
67
+ assert_equal expected, parser.instance_eval { @nameservers }
68
+ end
69
+
70
+ end
@@ -1,70 +1,12 @@
1
1
  require 'test_helper'
2
2
  require 'whois/answer/parser/whois.ausregistry.net.au'
3
+ require 'whois/answer/parser/whois.audns.net.au_test'
3
4
 
4
- class AnswerParserWhoisAusregistryNetAuTest < Whois::Answer::Parser::TestCase
5
+ class AnswerParserWhoisAusregistryNetAuTest < AnswerParserWhoisAudnsNetAuTest
5
6
 
6
7
  def setup
7
8
  @klass = Whois::Answer::Parser::WhoisAusregistryNetAu
8
- @host = "whois.ausregistry.net.au"
9
- end
10
-
11
-
12
- def test_status
13
- parser = @klass.new(load_part('/registered.txt'))
14
- expected = "ok"
15
- assert_equal expected, parser.status
16
- assert_equal expected, parser.instance_eval { @status }
17
-
18
- parser = @klass.new(load_part('/available.txt'))
19
- expected = nil
20
- assert_equal expected, parser.status
21
- assert_equal expected, parser.instance_eval { @status }
22
- end
23
-
24
- def test_available?
25
- assert !@klass.new(load_part('/registered.txt')).available?
26
- assert @klass.new(load_part('/available.txt')).available?
27
- end
28
-
29
- def test_registered?
30
- assert @klass.new(load_part('/registered.txt')).registered?
31
- assert !@klass.new(load_part('/available.txt')).registered?
32
- end
33
-
34
-
35
- def test_created_on
36
- assert_raise(Whois::PropertyNotSupported) { @klass.new(load_part('/registered.txt')).created_on }
37
- assert_raise(Whois::PropertyNotSupported) { @klass.new(load_part('/available.txt')).created_on }
38
- end
39
-
40
- def test_updated_on
41
- parser = @klass.new(load_part('/registered.txt'))
42
- expected = Time.parse("2009-10-12 16:05:44 UTC")
43
- assert_equal expected, parser.updated_on
44
- assert_equal expected, parser.instance_eval { @updated_on }
45
-
46
- parser = @klass.new(load_part('/available.txt'))
47
- expected = nil
48
- assert_equal expected, parser.updated_on
49
- assert_equal expected, parser.instance_eval { @updated_on }
50
- end
51
-
52
- def test_expires_on
53
- assert_raise(Whois::PropertyNotSupported) { @klass.new(load_part('/registered.txt')).expires_on }
54
- assert_raise(Whois::PropertyNotSupported) { @klass.new(load_part('/available.txt')).expires_on }
55
- end
56
-
57
-
58
- def test_nameservers
59
- parser = @klass.new(load_part('/registered.txt'))
60
- expected = %w( ns1.google.com ns2.google.com ns3.google.com ns4.google.com )
61
- assert_equal expected, parser.nameservers
62
- assert_equal expected, parser.instance_eval { @nameservers }
63
-
64
- parser = @klass.new(load_part('/available.txt'))
65
- expected = %w()
66
- assert_equal expected, parser.nameservers
67
- assert_equal expected, parser.instance_eval { @nameservers }
9
+ @host = "whois.audns.net.au"
68
10
  end
69
11
 
70
12
  end
@@ -8,76 +8,155 @@ class AnswerParserWhoisJprsJpTest < Whois::Answer::Parser::TestCase
8
8
  @host = "whois.jprs.jp"
9
9
  end
10
10
 
11
+ end
12
+
13
+ class AnswerParserWhoisJprsJpJpTest < AnswerParserWhoisJprsJpTest
11
14
 
12
15
  def test_status
13
- parser = @klass.new(load_part('/registered.txt'))
16
+ parser = @klass.new(load_part('/jp/registered.txt'))
14
17
  expected = "Active"
15
18
  assert_equal expected, parser.status
16
19
  assert_equal expected, parser.instance_eval { @status }
17
20
 
18
- parser = @klass.new(load_part('/available.txt'))
21
+ parser = @klass.new(load_part('/jp/available.txt'))
19
22
  expected = nil
20
23
  assert_equal expected, parser.status
21
24
  assert_equal expected, parser.instance_eval { @status }
22
25
  end
23
26
 
24
27
  def test_available?
25
- assert !@klass.new(load_part('/registered.txt')).available?
26
- assert @klass.new(load_part('/available.txt')).available?
28
+ assert !@klass.new(load_part('/jp/registered.txt')).available?
29
+ assert @klass.new(load_part('/jp/available.txt')).available?
27
30
  end
28
31
 
29
32
  def test_registered?
30
- assert @klass.new(load_part('/registered.txt')).registered?
31
- assert !@klass.new(load_part('/available.txt')).registered?
33
+ assert @klass.new(load_part('/jp/registered.txt')).registered?
34
+ assert !@klass.new(load_part('/jp/available.txt')).registered?
32
35
  end
33
36
 
34
37
 
35
38
  def test_created_on
36
- parser = @klass.new(load_part('/registered.txt'))
39
+ parser = @klass.new(load_part('/jp/registered.txt'))
37
40
  expected = Time.parse("2005-05-30")
38
41
  assert_equal expected, parser.created_on
39
42
  assert_equal expected, parser.instance_eval { @created_on }
40
43
 
41
- parser = @klass.new(load_part('/available.txt'))
44
+ parser = @klass.new(load_part('/jp/available.txt'))
42
45
  expected = nil
43
46
  assert_equal expected, parser.created_on
44
47
  assert_equal expected, parser.instance_eval { @created_on }
45
48
  end
46
49
 
47
50
  def test_updated_on
48
- parser = @klass.new(load_part('/registered.txt'))
51
+ parser = @klass.new(load_part('/jp/registered.txt'))
49
52
  # TODO: timezone
50
53
  # JST timezone is ignored by Time.parse
51
54
  expected = Time.parse("2009-06-01 01:05:04 JST")
52
55
  assert_equal expected, parser.updated_on
53
56
  assert_equal expected, parser.instance_eval { @updated_on }
54
57
 
55
- parser = @klass.new(load_part('/available.txt'))
58
+ parser = @klass.new(load_part('/jp/available.txt'))
56
59
  expected = nil
57
60
  assert_equal expected, parser.updated_on
58
61
  assert_equal expected, parser.instance_eval { @updated_on }
59
62
  end
60
63
 
61
64
  def test_expires_on
62
- parser = @klass.new(load_part('/registered.txt'))
65
+ parser = @klass.new(load_part('/jp/registered.txt'))
63
66
  expected = Time.parse("2010-05-31")
64
67
  assert_equal expected, parser.expires_on
65
68
  assert_equal expected, parser.instance_eval { @expires_on }
66
69
 
67
- parser = @klass.new(load_part('/available.txt'))
70
+ parser = @klass.new(load_part('/jp/available.txt'))
68
71
  expected = nil
69
72
  assert_equal expected, parser.expires_on
70
73
  assert_equal expected, parser.instance_eval { @expires_on }
71
74
  end
72
75
 
76
+ def test_nameservers
77
+ parser = @klass.new(load_part('/jp/registered.txt'))
78
+ expected = %w( ns1.google.com ns2.google.com ns3.google.com ns4.google.com )
79
+ assert_equal expected, parser.nameservers
80
+ assert_equal expected, parser.instance_eval { @nameservers }
81
+
82
+ parser = @klass.new(load_part('/jp/available.txt'))
83
+ expected = %w()
84
+ assert_equal expected, parser.nameservers
85
+ assert_equal expected, parser.instance_eval { @nameservers }
86
+ end
87
+
88
+ end
89
+
90
+ class AnswerParserWhoisJprsJpNeJpTest < AnswerParserWhoisJprsJpTest
91
+
92
+ def test_status
93
+ parser = @klass.new(load_part('/ne.jp/registered.txt'))
94
+ expected = "Connected (2010/09/30)"
95
+ assert_equal expected, parser.status
96
+ assert_equal expected, parser.instance_eval { @status }
97
+
98
+ parser = @klass.new(load_part('/ne.jp/available.txt'))
99
+ expected = nil
100
+ assert_equal expected, parser.status
101
+ assert_equal expected, parser.instance_eval { @status }
102
+ end
103
+
104
+ def test_available?
105
+ assert !@klass.new(load_part('/ne.jp/registered.txt')).available?
106
+ assert @klass.new(load_part('/ne.jp/available.txt')).available?
107
+ end
108
+
109
+ def test_registered?
110
+ assert @klass.new(load_part('/ne.jp/registered.txt')).registered?
111
+ assert !@klass.new(load_part('/ne.jp/available.txt')).registered?
112
+ end
113
+
114
+
115
+ def test_created_on
116
+ parser = @klass.new(load_part('/ne.jp/registered.txt'))
117
+ expected = Time.parse("2003-09-11")
118
+ assert_equal expected, parser.created_on
119
+ assert_equal expected, parser.instance_eval { @created_on }
120
+
121
+ parser = @klass.new(load_part('/ne.jp/available.txt'))
122
+ expected = nil
123
+ assert_equal expected, parser.created_on
124
+ assert_equal expected, parser.instance_eval { @created_on }
125
+ end
126
+
127
+ def test_updated_on
128
+ parser = @klass.new(load_part('/ne.jp/registered.txt'))
129
+ # TODO: timezone
130
+ # JST timezone is ignored by Time.parse
131
+ expected = Time.parse("2009-10-23 19:22:08 JST")
132
+ assert_equal expected, parser.updated_on
133
+ assert_equal expected, parser.instance_eval { @updated_on }
134
+
135
+ parser = @klass.new(load_part('/ne.jp/available.txt'))
136
+ expected = nil
137
+ assert_equal expected, parser.updated_on
138
+ assert_equal expected, parser.instance_eval { @updated_on }
139
+ end
140
+
141
+ def test_expires_on
142
+ parser = @klass.new(load_part('/ne.jp/registered.txt'))
143
+ expected = nil
144
+ assert_equal expected, parser.expires_on
145
+ assert_equal expected, parser.instance_eval { @expires_on }
146
+
147
+ parser = @klass.new(load_part('/ne.jp/available.txt'))
148
+ expected = nil
149
+ assert_equal expected, parser.expires_on
150
+ assert_equal expected, parser.instance_eval { @expires_on }
151
+ end
73
152
 
74
153
  def test_nameservers
75
- parser = @klass.new(load_part('/registered.txt'))
154
+ parser = @klass.new(load_part('/ne.jp/registered.txt'))
76
155
  expected = %w( ns1.google.com ns2.google.com ns3.google.com ns4.google.com )
77
156
  assert_equal expected, parser.nameservers
78
157
  assert_equal expected, parser.instance_eval { @nameservers }
79
158
 
80
- parser = @klass.new(load_part('/available.txt'))
159
+ parser = @klass.new(load_part('/ne.jp/available.txt'))
81
160
  expected = %w()
82
161
  assert_equal expected, parser.nameservers
83
162
  assert_equal expected, parser.instance_eval { @nameservers }
@@ -0,0 +1,64 @@
1
+ require 'test_helper'
2
+ require 'whois/answer/parser/whois.nic.co'
3
+
4
+ class AnswerParserWhoisNicCoTest < Whois::Answer::Parser::TestCase
5
+
6
+ def setup
7
+ @klass = Whois::Answer::Parser::WhoisNicCo
8
+ @host = "whois.nic.co"
9
+ end
10
+
11
+
12
+ def test_status
13
+ assert_equal ["serverTransferProhibited"],
14
+ @klass.new(load_part('/registered.txt')).status
15
+ assert_equal [],
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('/registered.txt')).registered?
26
+ assert !@klass.new(load_part('/available.txt')).registered?
27
+ end
28
+
29
+
30
+ def test_created_on
31
+ assert_equal Time.parse("2010-04-26 07:50:40 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("2010-07-06 18:54:16 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 Time.parse("2013-04-25 23:59:59 GMT"),
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
+
52
+ def test_nameservers
53
+ parser = @klass.new(load_part('/registered.txt'))
54
+ expected = %w( ns1.p26.dynect.net ns2.p26.dynect.net ns3.p26.dynect.net ns4.p26.dynect.net )
55
+ assert_equal expected, parser.nameservers
56
+ assert_equal expected, parser.instance_eval { @nameservers }
57
+
58
+ parser = @klass.new(load_part('/available.txt'))
59
+ expected = %w()
60
+ assert_equal expected, parser.nameservers
61
+ assert_equal expected, parser.instance_eval { @nameservers }
62
+ end
63
+
64
+ end
@@ -0,0 +1,84 @@
1
+ require 'test_helper'
2
+ require 'whois/answer/parser/whois.nic.net.sa'
3
+
4
+ class AnswerParserWhoisNicNetSaTest < Whois::Answer::Parser::TestCase
5
+
6
+ def setup
7
+ @klass = Whois::Answer::Parser::WhoisNicNetSa
8
+ @host = "whois.nic.net.sa"
9
+ end
10
+
11
+
12
+ def test_status
13
+ parser = @klass.new(load_part('/registered.txt'))
14
+ expected = :registered
15
+ assert_equal expected, parser.status
16
+ assert_equal expected, parser.instance_eval { @status }
17
+
18
+ parser = @klass.new(load_part('/available.txt'))
19
+ expected = :available
20
+ assert_equal expected, parser.status
21
+ assert_equal expected, parser.instance_eval { @status }
22
+ end
23
+
24
+ def test_available?
25
+ parser = @klass.new(load_part('/registered.txt'))
26
+ expected = false
27
+ assert_equal expected, parser.available?
28
+ assert_equal expected, parser.instance_eval { @available }
29
+
30
+ parser = @klass.new(load_part('/available.txt'))
31
+ expected = true
32
+ assert_equal expected, parser.available?
33
+ assert_equal expected, parser.instance_eval { @available }
34
+ end
35
+
36
+ def test_registered?
37
+ parser = @klass.new(load_part('/registered.txt'))
38
+ expected = true
39
+ assert_equal expected, parser.registered?
40
+ assert_equal expected, parser.instance_eval { @registered }
41
+
42
+ parser = @klass.new(load_part('/available.txt'))
43
+ expected = false
44
+ assert_equal expected, parser.registered?
45
+ assert_equal expected, parser.instance_eval { @registered }
46
+ end
47
+
48
+
49
+ def test_created_on
50
+ parser = @klass.new(load_part('/registered.txt'))
51
+ expected = Time.parse("2000-09-11")
52
+ assert_equal expected, parser.created_on
53
+ assert_equal expected, parser.instance_eval { @created_on }
54
+
55
+ parser = @klass.new(load_part('/available.txt'))
56
+ expected = nil
57
+ assert_equal expected, parser.created_on
58
+ assert_equal expected, parser.instance_eval { @created_on }
59
+ end
60
+
61
+ def test_updated_on
62
+ assert_raise(Whois::PropertyNotSupported) { @klass.new(load_part('/registered.txt')).updated_on }
63
+ assert_raise(Whois::PropertyNotSupported) { @klass.new(load_part('/available.txt')).updated_on }
64
+ end
65
+
66
+ def test_expires_on
67
+ assert_raise(Whois::PropertyNotSupported) { @klass.new(load_part('/registered.txt')).expires_on }
68
+ assert_raise(Whois::PropertyNotSupported) { @klass.new(load_part('/available.txt')).expires_on }
69
+ end
70
+
71
+
72
+ def test_nameservers
73
+ parser = @klass.new(load_part('/registered.txt'))
74
+ expected = %w( ns1.peer1.net ns2.peer1.net )
75
+ assert_equal expected, parser.nameservers
76
+ assert_equal expected, parser.instance_eval { @nameservers }
77
+
78
+ parser = @klass.new(load_part('/available.txt'))
79
+ expected = %w()
80
+ assert_equal expected, parser.nameservers
81
+ assert_equal expected, parser.instance_eval { @nameservers }
82
+ end
83
+
84
+ end