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