whois 1.2.1 → 1.2.2
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.rdoc +23 -0
- data/Manifest +27 -4
- data/README.rdoc +5 -8
- data/Rakefile +14 -0
- data/data/ip_del_list +11 -3
- data/data/servers_charset_list +2 -1
- data/data/tld_serv_list +15 -7
- data/lib/whois/answer/contact.rb +15 -15
- data/lib/whois/answer/parser/NOTES.txt +10 -13
- data/lib/whois/answer/parser/saudinic.net.sa.rb +36 -0
- data/lib/whois/answer/parser/whois.audns.net.au.rb +71 -0
- data/lib/whois/answer/parser/whois.ausregistry.net.au.rb +3 -39
- data/lib/whois/answer/parser/whois.cnnic.net.cn.rb +0 -1
- data/lib/whois/answer/parser/whois.jprs.jp.rb +3 -3
- data/lib/whois/answer/parser/whois.nic.co.rb +77 -0
- data/lib/whois/answer/parser/whois.nic.net.sa.rb +73 -0
- data/lib/whois/answer/parser/whois.tonic.to.rb +108 -0
- data/lib/whois/answer/parser.rb +5 -5
- data/lib/whois/answer/part.rb +1 -1
- data/lib/whois/answer/registrar.rb +4 -4
- data/lib/whois/client.rb +22 -10
- data/lib/whois/definitions/ipv4.rb +11 -3
- data/lib/whois/definitions/ipv4.txt +226 -0
- data/lib/whois/definitions/ipv6.txt +32 -0
- data/lib/whois/definitions/tlds.rb +12 -6
- data/lib/whois/definitions/tlds.txt +360 -0
- data/lib/whois/version.rb +2 -2
- data/lib/whois.rb +36 -17
- data/test/list_tld +21 -15
- data/test/testcases/responses/{whois.ausregistry.net.au → whois.audns.net.au}/available.txt +0 -0
- data/test/testcases/responses/{whois.ausregistry.net.au → whois.audns.net.au}/registered.txt +0 -0
- data/test/testcases/responses/whois.jprs.jp/jp/available.txt +17 -0
- data/test/testcases/responses/whois.jprs.jp/{registered.txt → jp/registered.txt} +0 -0
- data/test/testcases/responses/whois.jprs.jp/ne.jp/available.txt +17 -0
- data/test/testcases/responses/whois.jprs.jp/ne.jp/registered.txt +19 -0
- data/test/testcases/responses/whois.nic.co/available.txt +28 -0
- data/test/testcases/responses/whois.nic.co/registered.txt +82 -0
- data/test/testcases/responses/whois.nic.net.sa/available.txt +5 -0
- data/test/testcases/responses/whois.nic.net.sa/registered.txt +17 -0
- data/test/testcases/responses/whois.tonic.to/1.txt +1 -0
- data/test/testcases/responses/whois.tonic.to/available.txt +2 -0
- data/test/testcases/responses/whois.tonic.to/incomplete.txt +1 -0
- data/test/testcases/responses/whois.tonic.to/registered.txt +3 -0
- data/test/whois/answer/parser/saudinic.net.sa_test.rb +12 -0
- data/test/whois/answer/parser/whois.audns.net.au_test.rb +70 -0
- data/test/whois/answer/parser/whois.ausregistry.net.au_test.rb +3 -61
- data/test/whois/answer/parser/whois.jprs.jp_test.rb +93 -14
- data/test/whois/answer/parser/whois.nic.co_test.rb +64 -0
- data/test/whois/answer/parser/whois.nic.net.sa_test.rb +84 -0
- data/test/whois/answer/parser/whois.tonic.to_test.rb +125 -0
- data/whois.gemspec +5 -5
- metadata +44 -8
- 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,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 @@
|
|
1
|
+
|
@@ -0,0 +1 @@
|
|
1
|
+
|
@@ -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 <
|
5
|
+
class AnswerParserWhoisAusregistryNetAuTest < AnswerParserWhoisAudnsNetAuTest
|
5
6
|
|
6
7
|
def setup
|
7
8
|
@klass = Whois::Answer::Parser::WhoisAusregistryNetAu
|
8
|
-
@host = "whois.
|
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
|