dns-zone2 0.3.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/Gemfile +2 -0
- data/HISTORY.md +45 -0
- data/README.md +151 -0
- data/Rakefile +15 -0
- data/dns-zone2.gemspec +41 -0
- data/lib/dns/zone.rb +207 -0
- data/lib/dns/zone/rr.rb +87 -0
- data/lib/dns/zone/rr/a.rb +21 -0
- data/lib/dns/zone/rr/aaaa.rb +5 -0
- data/lib/dns/zone/rr/cdnskey.rb +5 -0
- data/lib/dns/zone/rr/cds.rb +5 -0
- data/lib/dns/zone/rr/cname.rb +21 -0
- data/lib/dns/zone/rr/dlv.rb +5 -0
- data/lib/dns/zone/rr/dnskey.rb +38 -0
- data/lib/dns/zone/rr/ds.rb +38 -0
- data/lib/dns/zone/rr/hinfo.rb +31 -0
- data/lib/dns/zone/rr/mx.rb +33 -0
- data/lib/dns/zone/rr/naptr.rb +44 -0
- data/lib/dns/zone/rr/ns.rb +21 -0
- data/lib/dns/zone/rr/nsec.rb +32 -0
- data/lib/dns/zone/rr/nsec3.rb +45 -0
- data/lib/dns/zone/rr/nsec3param.rb +38 -0
- data/lib/dns/zone/rr/ptr.rb +21 -0
- data/lib/dns/zone/rr/record.rb +88 -0
- data/lib/dns/zone/rr/rrsig.rb +54 -0
- data/lib/dns/zone/rr/soa.rb +51 -0
- data/lib/dns/zone/rr/spf.rb +5 -0
- data/lib/dns/zone/rr/srv.rb +38 -0
- data/lib/dns/zone/rr/sshfp.rb +35 -0
- data/lib/dns/zone/rr/txt.rb +24 -0
- data/lib/dns/zone/test_case.rb +27 -0
- data/lib/dns/zone/version.rb +6 -0
- data/test/rr/a_test.rb +37 -0
- data/test/rr/aaaa_test.rb +27 -0
- data/test/rr/cdnskey_test.rb +31 -0
- data/test/rr/cds_test.rb +28 -0
- data/test/rr/cname_test.rb +19 -0
- data/test/rr/dlv_test.rb +28 -0
- data/test/rr/dnskey_test.rb +31 -0
- data/test/rr/ds_test.rb +28 -0
- data/test/rr/hinfo_test.rb +44 -0
- data/test/rr/mx_test.rb +26 -0
- data/test/rr/naptr_test.rb +60 -0
- data/test/rr/ns_test.rb +18 -0
- data/test/rr/nsec3_test.rb +33 -0
- data/test/rr/nsec3param_test.rb +29 -0
- data/test/rr/nsec_test.rb +24 -0
- data/test/rr/ptr_test.rb +19 -0
- data/test/rr/record_test.rb +37 -0
- data/test/rr/rrsig_test.rb +40 -0
- data/test/rr/soa_test.rb +34 -0
- data/test/rr/spf_test.rb +20 -0
- data/test/rr/srv_test.rb +24 -0
- data/test/rr/sshfp_test.rb +24 -0
- data/test/rr/txt_test.rb +44 -0
- data/test/rr_test.rb +50 -0
- data/test/version_test.rb +9 -0
- data/test/zone_test.rb +273 -0
- metadata +217 -0
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'dns/zone/test_case'
|
2
|
+
|
3
|
+
class RR_CDNSKEY_Test < DNS::Zone::TestCase
|
4
|
+
|
5
|
+
# FIXME (lantins): algorithm can be integer _or_ mnemonic!
|
6
|
+
|
7
|
+
TEST_KEY = 'AQPSKmynfzW4kyBv015MUG2DeIQ3Cbl+BBZH4b/0PY1kxkmvHjcZc8nokfzj31GajIQKY+5CptLr3buXA10hWqTkF7H6RfoRqXQeogmMHfpftf6zMv1LyBUgia7za6ZEzOJBOztyvhjL742iU/TpPSEDhm2SNKLijfUppn1UaNvv4w=='
|
8
|
+
|
9
|
+
def test_build_rr__cdnskey
|
10
|
+
rr = DNS::Zone::RR::CDNSKEY.new
|
11
|
+
rr.label = 'example.com.'
|
12
|
+
rr.ttl = 86400
|
13
|
+
rr.flags = 256
|
14
|
+
rr.protocol = 3
|
15
|
+
rr.algorithm = 5
|
16
|
+
rr.key = TEST_KEY
|
17
|
+
|
18
|
+
assert_equal "example.com. 86400 IN CDNSKEY 256 3 5 #{TEST_KEY}", rr.dump
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_load_rr__cdnskey
|
22
|
+
rr = DNS::Zone::RR::CDNSKEY.new.load("example.com. IN CDNSKEY 256 3 5 #{TEST_KEY}")
|
23
|
+
assert_equal 'example.com.', rr.label
|
24
|
+
assert_equal 'CDNSKEY', rr.type
|
25
|
+
assert_equal 256, rr.flags
|
26
|
+
assert_equal 3, rr.protocol
|
27
|
+
assert_equal 5, rr.algorithm
|
28
|
+
assert_equal TEST_KEY, rr.key
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
data/test/rr/cds_test.rb
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'dns/zone/test_case'
|
2
|
+
|
3
|
+
class RR_CDS_Test < DNS::Zone::TestCase
|
4
|
+
|
5
|
+
TEST_DIGEST = '2BB183AF5F22588179A53B0A98631FAD1A292118'
|
6
|
+
|
7
|
+
def test_build_rr__cds
|
8
|
+
rr = DNS::Zone::RR::CDS.new
|
9
|
+
rr.label = 'dskey.example.com.'
|
10
|
+
rr.key_tag = 60485
|
11
|
+
rr.algorithm = 5
|
12
|
+
rr.digest_type = 1
|
13
|
+
rr.digest = TEST_DIGEST
|
14
|
+
|
15
|
+
assert_equal "dskey.example.com. IN CDS 60485 5 1 #{TEST_DIGEST}", rr.dump
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_load_rr__cds
|
19
|
+
rr = DNS::Zone::RR::CDS.new.load("dskey.example.com. IN CDS 60485 5 1 #{TEST_DIGEST}")
|
20
|
+
assert_equal 'dskey.example.com.', rr.label
|
21
|
+
assert_equal 'CDS', rr.type
|
22
|
+
assert_equal 60485, rr.key_tag
|
23
|
+
assert_equal 5, rr.algorithm
|
24
|
+
assert_equal 1, rr.digest_type
|
25
|
+
assert_equal TEST_DIGEST, rr.digest
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'dns/zone/test_case'
|
2
|
+
|
3
|
+
class RR_CNAME_Test < DNS::Zone::TestCase
|
4
|
+
|
5
|
+
def test_build_rr__cname
|
6
|
+
rr = DNS::Zone::RR::CNAME.new
|
7
|
+
rr.label = 'google9d97d7f266ee521d'
|
8
|
+
rr.domainname = 'google.com.'
|
9
|
+
assert_equal 'google9d97d7f266ee521d IN CNAME google.com.', rr.dump
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_load_rr__cname
|
13
|
+
rr = DNS::Zone::RR::CNAME.new.load('foo IN CNAME example.com.')
|
14
|
+
assert_equal 'foo', rr.label
|
15
|
+
assert_equal 'CNAME', rr.type
|
16
|
+
assert_equal 'example.com.', rr.domainname
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
data/test/rr/dlv_test.rb
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'dns/zone/test_case'
|
2
|
+
|
3
|
+
class RR_DLV_Test < DNS::Zone::TestCase
|
4
|
+
|
5
|
+
TEST_DIGEST = '2BB183AF5F22588179A53B0A98631FAD1A292118'
|
6
|
+
|
7
|
+
def test_build_rr__dlv
|
8
|
+
rr = DNS::Zone::RR::DLV.new
|
9
|
+
rr.label = 'dlvtest.example.com.'
|
10
|
+
rr.key_tag = 60485
|
11
|
+
rr.algorithm = 5
|
12
|
+
rr.digest_type = 1
|
13
|
+
rr.digest = TEST_DIGEST
|
14
|
+
|
15
|
+
assert_equal "dlvtest.example.com. IN DLV 60485 5 1 #{TEST_DIGEST}", rr.dump
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_load_rr__dlv
|
19
|
+
rr = DNS::Zone::RR::DLV.new.load("dlvtest.example.com. IN DLV 60485 5 1 #{TEST_DIGEST}")
|
20
|
+
assert_equal 'dlvtest.example.com.', rr.label
|
21
|
+
assert_equal 'DLV', rr.type
|
22
|
+
assert_equal 60485, rr.key_tag
|
23
|
+
assert_equal 5, rr.algorithm
|
24
|
+
assert_equal 1, rr.digest_type
|
25
|
+
assert_equal TEST_DIGEST, rr.digest
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'dns/zone/test_case'
|
2
|
+
|
3
|
+
class RR_DNSKEY_Test < DNS::Zone::TestCase
|
4
|
+
|
5
|
+
# FIXME (lantins): algorithm can be integer _or_ mnemonic!
|
6
|
+
|
7
|
+
TEST_KEY = 'AQPSKmynfzW4kyBv015MUG2DeIQ3Cbl+BBZH4b/0PY1kxkmvHjcZc8nokfzj31GajIQKY+5CptLr3buXA10hWqTkF7H6RfoRqXQeogmMHfpftf6zMv1LyBUgia7za6ZEzOJBOztyvhjL742iU/TpPSEDhm2SNKLijfUppn1UaNvv4w=='
|
8
|
+
|
9
|
+
def test_build_rr__dnskey
|
10
|
+
rr = DNS::Zone::RR::DNSKEY.new
|
11
|
+
rr.label = 'example.com.'
|
12
|
+
rr.ttl = 86400
|
13
|
+
rr.flags = 256
|
14
|
+
rr.protocol = 3
|
15
|
+
rr.algorithm = 5
|
16
|
+
rr.key = TEST_KEY
|
17
|
+
|
18
|
+
assert_equal "example.com. 86400 IN DNSKEY 256 3 5 #{TEST_KEY}", rr.dump
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_load_rr__dnskey
|
22
|
+
rr = DNS::Zone::RR::DNSKEY.new.load("example.com. IN DNSKEY 256 3 5 #{TEST_KEY}")
|
23
|
+
assert_equal 'example.com.', rr.label
|
24
|
+
assert_equal 'DNSKEY', rr.type
|
25
|
+
assert_equal 256, rr.flags
|
26
|
+
assert_equal 3, rr.protocol
|
27
|
+
assert_equal 5, rr.algorithm
|
28
|
+
assert_equal TEST_KEY, rr.key
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
data/test/rr/ds_test.rb
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'dns/zone/test_case'
|
2
|
+
|
3
|
+
class RR_DS_Test < DNS::Zone::TestCase
|
4
|
+
|
5
|
+
TEST_DIGEST = '2BB183AF5F22588179A53B0A98631FAD1A292118'
|
6
|
+
|
7
|
+
def test_build_rr__ds
|
8
|
+
rr = DNS::Zone::RR::DS.new
|
9
|
+
rr.label = 'dskey.example.com.'
|
10
|
+
rr.key_tag = 60485
|
11
|
+
rr.algorithm = 5
|
12
|
+
rr.digest_type = 1
|
13
|
+
rr.digest = TEST_DIGEST
|
14
|
+
|
15
|
+
assert_equal "dskey.example.com. IN DS 60485 5 1 #{TEST_DIGEST}", rr.dump
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_load_rr__ds
|
19
|
+
rr = DNS::Zone::RR::DS.new.load("dskey.example.com. IN DS 60485 5 1 #{TEST_DIGEST}")
|
20
|
+
assert_equal 'dskey.example.com.', rr.label
|
21
|
+
assert_equal 'DS', rr.type
|
22
|
+
assert_equal 60485, rr.key_tag
|
23
|
+
assert_equal 5, rr.algorithm
|
24
|
+
assert_equal 1, rr.digest_type
|
25
|
+
assert_equal TEST_DIGEST, rr.digest
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
require 'dns/zone/test_case'
|
2
|
+
|
3
|
+
class RR_HINFO_Test < DNS::Zone::TestCase
|
4
|
+
|
5
|
+
def test_build_rr__hinfo
|
6
|
+
rr = DNS::Zone::RR::HINFO.new
|
7
|
+
rr.cpu = 'Intel'
|
8
|
+
rr.os = 'Ubuntu'
|
9
|
+
assert_equal '@ IN HINFO "Intel" "Ubuntu"', rr.dump
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_build_with_spaces
|
13
|
+
rr = DNS::Zone::RR::HINFO.new
|
14
|
+
rr.label = 'ns0'
|
15
|
+
rr.cpu = 'PC Intel 700mhz'
|
16
|
+
rr.os = 'Ubuntu 12.04 LTS'
|
17
|
+
assert_equal 'ns0 IN HINFO "PC Intel 700mhz" "Ubuntu 12.04 LTS"', rr.dump
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_load_rr__hinfo
|
21
|
+
rr = DNS::Zone::RR::HINFO.new.load('ns0 IN HINFO "Intel" "Ubuntu"')
|
22
|
+
assert_equal 'ns0', rr.label
|
23
|
+
assert_equal 'HINFO', rr.type
|
24
|
+
assert_equal 'Intel', rr.cpu
|
25
|
+
assert_equal 'Ubuntu', rr.os
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_load_with_spaces
|
29
|
+
rr = DNS::Zone::RR::HINFO.new.load('ns0 IN HINFO "PC Intel 700mhz" "Ubuntu 12.04 LTS"')
|
30
|
+
assert_equal 'PC Intel 700mhz', rr.cpu
|
31
|
+
assert_equal 'Ubuntu 12.04 LTS', rr.os
|
32
|
+
end
|
33
|
+
|
34
|
+
def test_load_mixed_quotes
|
35
|
+
rr = DNS::Zone::RR::HINFO.new.load('ns0 IN HINFO Intel "Ubuntu 12.04"')
|
36
|
+
assert_equal 'Intel', rr.cpu
|
37
|
+
assert_equal 'Ubuntu 12.04', rr.os
|
38
|
+
|
39
|
+
rr = DNS::Zone::RR::HINFO.new.load('ns0 IN HINFO "PC Intel" Ubuntu')
|
40
|
+
assert_equal 'PC Intel', rr.cpu
|
41
|
+
assert_equal 'Ubuntu', rr.os
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
data/test/rr/mx_test.rb
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'dns/zone/test_case'
|
2
|
+
|
3
|
+
class RR_MX_Test < DNS::Zone::TestCase
|
4
|
+
|
5
|
+
def test_build_rr__mx
|
6
|
+
rr = DNS::Zone::RR::MX.new
|
7
|
+
|
8
|
+
# ensure we can set priority and exchange parameter
|
9
|
+
rr.priority = 10
|
10
|
+
rr.exchange = 'mx0.lividpenguin.com.'
|
11
|
+
assert_equal '@ IN MX 10 mx0.lividpenguin.com.', rr.dump
|
12
|
+
|
13
|
+
rr.priority = 20
|
14
|
+
rr.exchange = 'mx1.lividpenguin.com.'
|
15
|
+
assert_equal '@ IN MX 20 mx1.lividpenguin.com.', rr.dump
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_load_rr__mx
|
19
|
+
rr = DNS::Zone::RR::MX.new.load('@ IN MX 20 mx1.lividpenguin.com.')
|
20
|
+
assert_equal '@', rr.label
|
21
|
+
assert_equal 'MX', rr.type
|
22
|
+
assert_equal 20, rr.priority
|
23
|
+
assert_equal 'mx1.lividpenguin.com.', rr.exchange
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
require 'dns/zone/test_case'
|
2
|
+
|
3
|
+
class RR_NAPTR_Test < DNS::Zone::TestCase
|
4
|
+
|
5
|
+
def test_build_rr__naptr
|
6
|
+
rr = DNS::Zone::RR::NAPTR.new
|
7
|
+
rr.order = 100
|
8
|
+
rr.pref = 10
|
9
|
+
rr.flags = ''
|
10
|
+
rr.service = ''
|
11
|
+
rr.regexp = '!^urn:cid:.+@([^\.]+\.)(.*)$!\2!i'
|
12
|
+
rr.replacement = '.'
|
13
|
+
|
14
|
+
assert_equal '@ IN NAPTR 100 10 "" "" "!^urn:cid:.+@([^\.]+\.)(.*)$!\2!i" .', rr.dump
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_load_rr__naptr
|
18
|
+
rr = DNS::Zone::RR::NAPTR.new.load('@ IN NAPTR 100 10 "" "" "!^urn:cid:.+@([^\.]+\.)(.*)$!\2!i" .')
|
19
|
+
assert_equal '@', rr.label
|
20
|
+
assert_equal 'NAPTR', rr.type
|
21
|
+
assert_equal 100, rr.order
|
22
|
+
assert_equal 10, rr.pref
|
23
|
+
assert_equal '', rr.flags
|
24
|
+
assert_equal '', rr.service
|
25
|
+
assert_equal '!^urn:cid:.+@([^\\.]+\\.)(.*)$!\\2!i', rr.regexp
|
26
|
+
assert_equal '.', rr.replacement
|
27
|
+
|
28
|
+
rr = DNS::Zone::RR::NAPTR.new.load('example.com. IN NAPTR 100 50 "a" "z3950+N2L+N2C" "" cidserver.example.com.')
|
29
|
+
assert_equal 'example.com.', rr.label
|
30
|
+
assert_equal 'NAPTR', rr.type
|
31
|
+
assert_equal 100, rr.order
|
32
|
+
assert_equal 50, rr.pref
|
33
|
+
assert_equal 'a', rr.flags
|
34
|
+
assert_equal 'z3950+N2L+N2C', rr.service
|
35
|
+
assert_equal '', rr.regexp
|
36
|
+
assert_equal 'cidserver.example.com.', rr.replacement
|
37
|
+
|
38
|
+
rr = DNS::Zone::RR::NAPTR.new.load('example.com. IN NAPTR 100 60 "a" "rcds+N2C" "" cidserver.example.com.')
|
39
|
+
assert_equal 'example.com.', rr.label
|
40
|
+
assert_equal 'NAPTR', rr.type
|
41
|
+
assert_equal 100, rr.order
|
42
|
+
assert_equal 60, rr.pref
|
43
|
+
assert_equal 'a', rr.flags
|
44
|
+
assert_equal 'rcds+N2C', rr.service
|
45
|
+
assert_equal '', rr.regexp
|
46
|
+
assert_equal 'cidserver.example.com.', rr.replacement
|
47
|
+
|
48
|
+
rr = DNS::Zone::RR::NAPTR.new.load('example.com. IN NAPTR 300 50 "b" "http+N2L+N2C+N2R" "" www.example.com.')
|
49
|
+
assert_equal 'example.com.', rr.label
|
50
|
+
assert_equal 'NAPTR', rr.type
|
51
|
+
assert_equal 300, rr.order
|
52
|
+
assert_equal 50, rr.pref
|
53
|
+
assert_equal 'b', rr.flags
|
54
|
+
assert_equal 'http+N2L+N2C+N2R', rr.service
|
55
|
+
assert_equal '', rr.regexp
|
56
|
+
assert_equal 'www.example.com.', rr.replacement
|
57
|
+
|
58
|
+
end
|
59
|
+
|
60
|
+
end
|
data/test/rr/ns_test.rb
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'dns/zone/test_case'
|
2
|
+
|
3
|
+
class RR_NS_Test < DNS::Zone::TestCase
|
4
|
+
|
5
|
+
def test_build_rr__ns
|
6
|
+
rr = DNS::Zone::RR::NS.new
|
7
|
+
rr.nameserver = 'ns0.lividpenguin.com.'
|
8
|
+
assert_equal '@ IN NS ns0.lividpenguin.com.', rr.dump
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_load_rr__ns
|
12
|
+
rr = DNS::Zone::RR::NS.new.load('@ IN NS ns0.lividpenguin.com.')
|
13
|
+
assert_equal '@', rr.label
|
14
|
+
assert_equal 'NS', rr.type
|
15
|
+
assert_equal 'ns0.lividpenguin.com.', rr.nameserver
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'dns/zone/test_case'
|
2
|
+
|
3
|
+
class RR_NSEC3_Test < DNS::Zone::TestCase
|
4
|
+
|
5
|
+
def test_build_rr__nsec3
|
6
|
+
rr = DNS::Zone::RR::NSEC3.new
|
7
|
+
rr.label = 'foo.example.com.'
|
8
|
+
|
9
|
+
rr.algorithm = 1
|
10
|
+
rr.flags = 0
|
11
|
+
rr.iterations = 12
|
12
|
+
rr.salt = 'aabbccdd'
|
13
|
+
rr.next_hashed_owner_name = 'ji6neoaepv8b5o6k4ev33abha8ht9fgc'
|
14
|
+
rr.rrset_types = 'A AAAA'
|
15
|
+
|
16
|
+
assert_equal "foo.example.com. IN NSEC3 1 0 12 aabbccdd ji6neoaepv8b5o6k4ev33abha8ht9fgc A AAAA", rr.dump
|
17
|
+
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_load_rr__nsec3
|
21
|
+
rr = DNS::Zone::RR::NSEC3.new.load("foo.example.com. IN NSEC3 1 0 12 aabbccdd ji6neoaepv8b5o6k4ev33abha8ht9fgc A AAAA")
|
22
|
+
assert_equal 'foo.example.com.', rr.label
|
23
|
+
assert_equal 'NSEC3', rr.type
|
24
|
+
|
25
|
+
assert_equal 1, rr.algorithm
|
26
|
+
assert_equal 0, rr.flags
|
27
|
+
assert_equal 12, rr.iterations
|
28
|
+
assert_equal 'aabbccdd', rr.salt
|
29
|
+
assert_equal 'ji6neoaepv8b5o6k4ev33abha8ht9fgc', rr.next_hashed_owner_name
|
30
|
+
assert_equal 'A AAAA', rr.rrset_types
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'dns/zone/test_case'
|
2
|
+
|
3
|
+
class RR_NSEC3PARAM_Test < DNS::Zone::TestCase
|
4
|
+
|
5
|
+
def test_build_rr__nsec3param
|
6
|
+
rr = DNS::Zone::RR::NSEC3PARAM.new
|
7
|
+
rr.label = 'foo.example.com.'
|
8
|
+
|
9
|
+
rr.algorithm = 1
|
10
|
+
rr.flags = 0
|
11
|
+
rr.iterations = 12
|
12
|
+
rr.salt = 'aabbccdd'
|
13
|
+
|
14
|
+
assert_equal "foo.example.com. IN NSEC3PARAM 1 0 12 aabbccdd", rr.dump
|
15
|
+
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_load_rr__nsec3param
|
19
|
+
rr = DNS::Zone::RR::NSEC3PARAM.new.load("foo.example.com. IN NSEC3PARAM 1 0 12 aabbccdd")
|
20
|
+
assert_equal 'foo.example.com.', rr.label
|
21
|
+
assert_equal 'NSEC3PARAM', rr.type
|
22
|
+
|
23
|
+
assert_equal 1, rr.algorithm
|
24
|
+
assert_equal 0, rr.flags
|
25
|
+
assert_equal 12, rr.iterations
|
26
|
+
assert_equal 'aabbccdd', rr.salt
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'dns/zone/test_case'
|
2
|
+
|
3
|
+
class RR_NSEC_Test < DNS::Zone::TestCase
|
4
|
+
|
5
|
+
def test_build_rr__nsec
|
6
|
+
rr = DNS::Zone::RR::NSEC.new
|
7
|
+
rr.label = 'alfa.example.com.'
|
8
|
+
rr.next_domain = 'host.example.com.'
|
9
|
+
rr.rrset_types = 'A MX RRSIG NSEC TYPE1234'
|
10
|
+
|
11
|
+
assert_equal "alfa.example.com. IN NSEC host.example.com. A MX RRSIG NSEC TYPE1234", rr.dump
|
12
|
+
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_load_rr__nsec
|
16
|
+
rr = DNS::Zone::RR::NSEC.new.load("alfa.example.com. IN NSEC host.example.com. A MX RRSIG NSEC TYPE1234")
|
17
|
+
assert_equal 'alfa.example.com.', rr.label
|
18
|
+
assert_equal 'NSEC', rr.type
|
19
|
+
|
20
|
+
assert_equal 'host.example.com.', rr.next_domain
|
21
|
+
assert_equal 'A MX RRSIG NSEC TYPE1234', rr.rrset_types
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
data/test/rr/ptr_test.rb
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'dns/zone/test_case'
|
2
|
+
|
3
|
+
class RR_PTR_Test < DNS::Zone::TestCase
|
4
|
+
|
5
|
+
def test_build_rr__ptr
|
6
|
+
rr = DNS::Zone::RR::PTR.new
|
7
|
+
rr.label = '69'
|
8
|
+
rr.name = 'mx0.lividpenguin.com.'
|
9
|
+
assert_equal '69 IN PTR mx0.lividpenguin.com.', rr.dump
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_load_rr__ptr
|
13
|
+
rr = DNS::Zone::RR::PTR.new.load('69 IN PTR mx0.lividpenguin.com.')
|
14
|
+
assert_equal '69', rr.label
|
15
|
+
assert_equal 'PTR', rr.type
|
16
|
+
assert_equal 'mx0.lividpenguin.com.', rr.name
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'dns/zone/test_case'
|
2
|
+
|
3
|
+
class RR_Record_Test < DNS::Zone::TestCase
|
4
|
+
|
5
|
+
def test_rr_record_defaults
|
6
|
+
rr = DNS::Zone::RR::Record.new
|
7
|
+
assert_equal '@', rr.label, 'label is @, by default'
|
8
|
+
assert_equal nil, rr.ttl, 'ttl is nil, by default'
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_rr_record_with_label
|
12
|
+
rr = DNS::Zone::RR::Record.new
|
13
|
+
rr.label = 'labelname'
|
14
|
+
assert_equal 'labelname IN <type>', rr.dump
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_rr_record_with_label_and_ttl
|
18
|
+
rr = DNS::Zone::RR::Record.new
|
19
|
+
rr.label = 'labelname'
|
20
|
+
rr.ttl = '2d'
|
21
|
+
assert_equal 'labelname 2d IN <type>', rr.dump
|
22
|
+
end
|
23
|
+
|
24
|
+
def test_rr_record_with_ttl
|
25
|
+
rr = DNS::Zone::RR::Record.new
|
26
|
+
rr.ttl = '2d'
|
27
|
+
assert_equal '@ 2d IN <type>', rr.dump
|
28
|
+
end
|
29
|
+
|
30
|
+
# the load method should be overloaded by a subclass, calling direct should raise
|
31
|
+
def test_record_load_default_method_raises_exception
|
32
|
+
assert_raises(NotImplementedError) {
|
33
|
+
DNS::Zone::RR::Record.new.load('')
|
34
|
+
}
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|