dns-zone2 0.3.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.
- 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
|