test/ipaddress/ipv6_test.rb in ipaddress-0.6.0 vs test/ipaddress/ipv6_test.rb in ipaddress-0.7.0
- old
+ new
@@ -37,11 +37,10 @@
@network = @klass.new "2001:db8:8:800::/64"
@arr = [8193,3512,0,0,8,2048,8204,16762]
@hex = "20010db80000000000080800200c417a"
end
-
def test_attribute_address
addr = "2001:0db8:0000:0000:0008:0800:200c:417a"
assert_equal addr, @ip.address
end
@@ -52,10 +51,14 @@
end
@invalid_ipv6.each do |ip|
assert_raise(ArgumentError) {@klass.new ip}
end
assert_equal 64, @ip.prefix
+
+ assert_raise(ArgumentError) {
+ @klass.new "::10.1.1.1"
+ }
end
def test_attribute_groups
assert_equal @arr, @ip.groups
end
@@ -86,10 +89,12 @@
assert_equal "2001:db8::8:800:200c:417a/64", ip.to_string
end
def test_method_mapped?
assert_equal false, @ip.mapped?
+ ip6 = @klass.new "::ffff:1234:5678"
+ assert_equal true, ip6.mapped?
end
def test_method_literal
str = "2001-0db8-0000-0000-0008-0800-200c-417a.ipv6-literal.net"
assert_equal str, @ip.literal
@@ -104,10 +109,33 @@
def test_method_network?
assert_equal true, @network.network?
assert_equal false, @ip.network?
end
+ def test_method_network_u128
+ assert_equal 42540766411282592856903984951653826560, @ip.network_u128
+ end
+
+ def test_method_include?
+ assert_equal true, @ip.include?(@ip)
+ # test prefix on same address
+ included = @klass.new "2001:db8::8:800:200c:417a/128"
+ not_included = @klass.new "2001:db8::8:800:200c:417a/46"
+ assert_equal true, @ip.include?(included)
+ assert_equal false, @ip.include?(not_included)
+ # test address on same prefix
+ included = @klass.new "2001:db8::8:800:200c:0/64"
+ not_included = @klass.new "2001:db8:1::8:800:200c:417a/64"
+ assert_equal true, @ip.include?(included)
+ assert_equal false, @ip.include?(not_included)
+ # general test
+ included = @klass.new "2001:db8::8:800:200c:1/128"
+ not_included = @klass.new "2001:db8:1::8:800:200c:417a/76"
+ assert_equal true, @ip.include?(included)
+ assert_equal false, @ip.include?(not_included)
+ end
+
def test_method_to_hex
assert_equal @hex, @ip.to_hex
end
def test_method_to_s
@@ -126,24 +154,15 @@
def test_method_data
str = " \001\r\270\000\000\000\000\000\b\b\000 \fAz"
assert_equal str, @ip.data
end
-
def test_method_reverse
str = "f.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.0.5.0.5.0.e.f.f.3.ip6.arpa"
assert_equal str, @klass.new("3ffe:505:2::f").reverse
end
-# def test_ip6_int
-# assert_equal("f.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.0.5.0.5.0.e.f.f.3.ip6.int", IPAddress("3ffe:505:2::f").ip6_int)
- # assert_raises(ArgumentError) {
-# IPAddress("192.168.2.1").ip6_int
- # }
-# end
-
-
def test_method_compressed
assert_equal "1:1:1::1", @klass.new("1:1:1:0:0:0:0:1").compressed
assert_equal "1:0:1::1", @klass.new("1:0:1:0:0:0:0:1").compressed
assert_equal "1:0:0:1::1", @klass.new("1:0:0:1:0:0:0:1").compressed
assert_equal "1::1:0:0:1", @klass.new("1:0:0:0:1:0:0:1").compressed
@@ -285,17 +304,36 @@
@address = "::ffff:ac10:a01"
@valid_mapped = {'::13.1.68.3' => 281470899930115,
'0:0:0:0:0:ffff:129.144.52.38' => 281472855454758,
'::ffff:129.144.52.38' => 281472855454758}
+
+ @valid_mapped_ipv6 = {'::0d01:4403' => 281470899930115,
+ '0:0:0:0:0:ffff:8190:3426' => 281472855454758,
+ '::ffff:8190:3426' => 281472855454758}
+
+ @valid_mapped_ipv6_conversion = {'::0d01:4403' => "13.1.68.3",
+ '0:0:0:0:0:ffff:8190:3426' => "129.144.52.38",
+ '::ffff:8190:3426' => "129.144.52.38"}
+
end
def test_initialize
assert_nothing_raised {@klass.new("::172.16.10.1")}
assert_instance_of @klass, @ip
@valid_mapped.each do |ip, u128|
assert_nothing_raised {@klass.new ip}
assert_equal u128, @klass.new(ip).to_u128
+ end
+ @valid_mapped_ipv6.each do |ip, u128|
+ assert_nothing_raised {@klass.new ip}
+ assert_equal u128, @klass.new(ip).to_u128
+ end
+ end
+
+ def test_mapped_from_ipv6_conversion
+ @valid_mapped_ipv6_conversion.each do |ip6,ip4|
+ assert_equal ip4, @klass.new(ip6).ipv4.to_s
end
end
def test_attributes
assert_equal @address, @ip.compressed