whois 1.2.1 → 1.2.2

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.
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