UNPKG

sku-pg

Version:

Skulpt is a Javascript implementation of Python 2.x. Python that runs in your browser!

228 lines (205 loc) 11 kB
<!DOCTYPE html> <html> <!-- Copyright 2011 The Closure Library Authors. All Rights Reserved. Use of this source code is governed by the Apache License, Version 2.0. See the COPYING file for details. Test suite inspired from http://code.google.com/p/ipaddr-py/ and Google's Guava InetAddresses test suite available on http://code.google.com/p/guava-libraries/ --> <head> <meta http-equiv='X-UA-Compatible' content='IE=edge'> <title>Closure Unit Test - goog.net.IpAddress</title> <script src='../base.js' type='text/javascript'></script> <script type='text/javascript'> goog.require('goog.array'); goog.require('goog.math.Integer'); goog.require('goog.net.IpAddress'); goog.require('goog.net.Ipv4Address'); goog.require('goog.net.Ipv6Address'); goog.require('goog.testing.jsunit'); </script> </head> <body> <script text='text/javascript'> function testInvalidStrings() { assertEquals(null, goog.net.IpAddress.fromString('')); assertEquals(null, goog.net.IpAddress.fromString('016.016.016.016')); assertEquals(null, goog.net.IpAddress.fromString('016.016.016')); assertEquals(null, goog.net.IpAddress.fromString('016.016')); assertEquals(null, goog.net.IpAddress.fromString('016')); assertEquals(null, goog.net.IpAddress.fromString('000.000.000.000')); assertEquals(null, goog.net.IpAddress.fromString('000')); assertEquals(null, goog.net.IpAddress.fromString('0x0a.0x0a.0x0a.0x0a')); assertEquals(null, goog.net.IpAddress.fromString('0x0a.0x0a.0x0a')); assertEquals(null, goog.net.IpAddress.fromString('0x0a.0x0a')); assertEquals(null, goog.net.IpAddress.fromString('0x0a')); assertEquals(null, goog.net.IpAddress.fromString('42.42.42.42.42')); assertEquals(null, goog.net.IpAddress.fromString('42.42.42')); assertEquals(null, goog.net.IpAddress.fromString('42.42')); assertEquals(null, goog.net.IpAddress.fromString('42')); assertEquals(null, goog.net.IpAddress.fromString('42..42.42')); assertEquals(null, goog.net.IpAddress.fromString('42..42.42.42')); assertEquals(null, goog.net.IpAddress.fromString('42.42.42.42.')); assertEquals(null, goog.net.IpAddress.fromString('42.42.42.42...')); assertEquals(null, goog.net.IpAddress.fromString('.42.42.42.42')); assertEquals(null, goog.net.IpAddress.fromString('...42.42.42.42')); assertEquals(null, goog.net.IpAddress.fromString('42.42.42.-0')); assertEquals(null, goog.net.IpAddress.fromString('42.42.42.+0')); assertEquals(null, goog.net.IpAddress.fromString('.')); assertEquals(null, goog.net.IpAddress.fromString('...')); assertEquals(null, goog.net.IpAddress.fromString('bogus')); assertEquals(null, goog.net.IpAddress.fromString('bogus.com')); assertEquals(null, goog.net.IpAddress.fromString('192.168.0.1.com')); assertEquals(null, goog.net.IpAddress.fromString('12345.67899.-54321.-98765')); assertEquals(null, goog.net.IpAddress.fromString('257.0.0.0')); assertEquals(null, goog.net.IpAddress.fromString('42.42.42.-42')); assertEquals(null, goog.net.IpAddress.fromString('3ff3:::1')); assertEquals(null, goog.net.IpAddress.fromString('3ffe::1.net')); assertEquals(null, goog.net.IpAddress.fromString('3ffe::1::1')); assertEquals(null, goog.net.IpAddress.fromString('1::2::3::4:5')); assertEquals(null, goog.net.IpAddress.fromString('::7:6:5:4:3:2:')); assertEquals(null, goog.net.IpAddress.fromString(':6:5:4:3:2:1::')); assertEquals(null, goog.net.IpAddress.fromString('2001::db:::1')); assertEquals(null, goog.net.IpAddress.fromString('FEDC:9878')); assertEquals(null, goog.net.IpAddress.fromString('+1.+2.+3.4')); assertEquals(null, goog.net.IpAddress.fromString('1.2.3.4e0')); assertEquals(null, goog.net.IpAddress.fromString('::7:6:5:4:3:2:1:0')); assertEquals(null, goog.net.IpAddress.fromString('7:6:5:4:3:2:1:0::')); assertEquals(null, goog.net.IpAddress.fromString('9:8:7:6:5:4:3::2:1')); assertEquals(null, goog.net.IpAddress.fromString('0:1:2:3::4:5:6:7')); assertEquals(null, goog.net.IpAddress.fromString('3ffe:0:0:0:0:0:0:0:1')); assertEquals(null, goog.net.IpAddress.fromString('3ffe::10000')); assertEquals(null, goog.net.IpAddress.fromString('3ffe::goog')); assertEquals(null, goog.net.IpAddress.fromString('3ffe::-0')); assertEquals(null, goog.net.IpAddress.fromString('3ffe::+0')); assertEquals(null, goog.net.IpAddress.fromString('3ffe::-1')); assertEquals(null, goog.net.IpAddress.fromString(':')); assertEquals(null, goog.net.IpAddress.fromString(':::')); assertEquals(null, goog.net.IpAddress.fromString('a:')); assertEquals(null, goog.net.IpAddress.fromString('::a:')); assertEquals(null, goog.net.IpAddress.fromString('0xa::')); assertEquals(null, goog.net.IpAddress.fromString('::1.2.3')); assertEquals(null, goog.net.IpAddress.fromString('::1.2.3.4.5')); assertEquals(null, goog.net.IpAddress.fromString('::1.2.3.4:')); assertEquals(null, goog.net.IpAddress.fromString('1.2.3.4::')); assertEquals(null, goog.net.IpAddress.fromString('2001:db8::1:')); assertEquals(null, goog.net.IpAddress.fromString(':2001:db8::1')); } function testVersion() { var ip4 = goog.net.IpAddress.fromString('1.2.3.4'); assertEquals(ip4.getVersion(), 4); var ip6 = goog.net.IpAddress.fromString('2001:dead::beef:1'); assertEquals(ip6.getVersion(), 6); ip6 = goog.net.IpAddress.fromString('::192.168.1.1'); assertEquals(ip6.getVersion(), 6); } function testStringIpv4Address() { assertEquals('192.168.1.1', new goog.net.Ipv4Address('192.168.1.1').toString()); assertEquals('1.1.1.1', new goog.net.Ipv4Address('1.1.1.1').toString()); assertEquals('224.56.33.2', new goog.net.Ipv4Address('224.56.33.2').toString()); assertEquals('255.255.255.255', new goog.net.Ipv4Address('255.255.255.255').toString()); assertEquals('0.0.0.0', new goog.net.Ipv4Address('0.0.0.0').toString()); } function testIntIpv4Address() { var ip4Str = new goog.net.Ipv4Address('1.1.1.1'); var ip4Int = new goog.net.Ipv4Address( new goog.math.Integer([16843009], 0)); assertTrue(ip4Str.equals(ip4Int)); assertEquals(ip4Str.toString(), ip4Int.toString()); assertThrows('Ipv4(-1)', goog.partial(goog.net.Ipv4Address, goog.math.Integer.fromInt(-1))); assertThrows('Ipv4(2**32)', goog.partial(goog.net.Ipv4Address, goog.math.Integer.ONE.shiftLeft(32))); } function testStringIpv6Address() { assertEquals('1:2:3:4:5:6:7:8', new goog.net.Ipv6Address('1:2:3:4:5:6:7:8').toString()); assertEquals('::1:2:3:4:5:6:7', new goog.net.Ipv6Address('::1:2:3:4:5:6:7').toString()); assertEquals('1:2:3:4:5:6:7::', new goog.net.Ipv6Address('1:2:3:4:5:6:7:0').toString()); assertEquals('2001:0:0:4::8', new goog.net.Ipv6Address('2001:0:0:4:0:0:0:8').toString()); assertEquals('2001::4:5:6:7:8', new goog.net.Ipv6Address('2001:0:0:4:5:6:7:8').toString()); assertEquals('2001::3:4:5:6:7:8', new goog.net.Ipv6Address('2001:0:3:4:5:6:7:8').toString()); assertEquals('0:0:3::ffff', new goog.net.Ipv6Address('0:0:3:0:0:0:0:ffff').toString()); assertEquals('::4:0:0:0:ffff', new goog.net.Ipv6Address('0:0:0:4:0:0:0:ffff').toString()); assertEquals('::5:0:0:ffff', new goog.net.Ipv6Address('0:0:0:0:5:0:0:ffff').toString()); assertEquals('1::4:0:0:7:8', new goog.net.Ipv6Address('1:0:0:4:0:0:7:8').toString()); assertEquals('::', new goog.net.Ipv6Address('0:0:0:0:0:0:0:0').toString()); assertEquals('::1', new goog.net.Ipv6Address('0:0:0:0:0:0:0:1').toString()); assertEquals('2001:658:22a:cafe::', new goog.net.Ipv6Address( '2001:0658:022a:cafe:0000:0000:0000:0000').toString()); assertEquals('::102:304', new goog.net.Ipv6Address('::1.2.3.4').toString()); assertEquals('::ffff:303:303', new goog.net.Ipv6Address('::ffff:3.3.3.3').toString()); assertEquals('::ffff:ffff', new goog.net.Ipv6Address('::255.255.255.255').toString()); } function testIntIpv6Address() { var ip6Str = new goog.net.Ipv6Address('2001::dead:beef:1'); var ip6Int = new goog.net.Ipv6Address( new goog.math.Integer([3203334145, 57005, 0, 536936448], 0)); assertTrue(ip6Str.equals(ip6Int)); assertEquals(ip6Str.toString(), ip6Int.toString()); assertThrows('Ipv6(-1)', goog.partial(goog.net.Ipv6Address, goog.math.Integer.fromInt(-1))); assertThrows('Ipv6(2**128)', goog.partial(goog.net.Ipv6Address, goog.math.Integer.ONE.shiftLeft(128))); } function testDottedQuadIpv6() { var ip6 = new goog.net.Ipv6Address('7::0.128.0.127'); ip6 = new goog.net.Ipv6Address('7::0.128.0.128'); ip6 = new goog.net.Ipv6Address('7::128.128.0.127'); ip6 = new goog.net.Ipv6Address('7::0.128.128.127'); } function testMappedIpv4Address() { var testAddresses = ['::ffff:1.2.3.4', '::FFFF:102:304']; var ipv4Str = '1.2.3.4'; var ip1 = new goog.net.Ipv6Address(testAddresses[0]); var ip2 = new goog.net.Ipv6Address(testAddresses[1]); var ipv4 = new goog.net.Ipv4Address(ipv4Str); assertTrue(ip1.isMappedIpv4Address()); assertTrue(ip2.isMappedIpv4Address()); assertTrue(ip1.equals(ip2)); assertTrue(ipv4.equals(ip1.getMappedIpv4Address())); assertTrue(ipv4.equals(ip2.getMappedIpv4Address())); } function testUriString() { var ip4Str = '192.168.1.1'; var ip4Uri = goog.net.IpAddress.fromUriString(ip4Str); var ip4 = goog.net.IpAddress.fromString(ip4Str); assertTrue(ip4Uri.equals(ip4)); var ip6Str = '2001:dead::beef:1'; assertEquals(null, goog.net.IpAddress.fromUriString(ip6Str)); var ip6Uri = goog.net.IpAddress.fromUriString('[' + ip6Str + ']'); var ip6 = goog.net.IpAddress.fromString(ip6Str); assertTrue(ip6Uri.equals(ip6)); assertEquals(ip6Uri.toString(), ip6Str); assertEquals(ip6Uri.toUriString(), '[' + ip6Str + ']'); } </script> </body> </html>