* @license BSD */ namespace Domframework\Tests; use Domframework\Ipaddresses; /** * Test the Ipaddresses.php file */ class IpaddressesTest extends \PHPUnit_Framework_TestCase { public function testValidIPAddress1() { $i = new Ipaddresses(); $res = $i->validIPAddress("::"); $this->assertSame(true, $res); } public function testValidIPAddress2() { $i = new Ipaddresses(); $res = $i->validIPAddress("1::"); $this->assertSame(true, $res); } public function testValidIPAddress3() { $i = new Ipaddresses(); $res = $i->validIPAddress("::1"); $this->assertSame(true, $res); } public function testValidIPAddress4() { $i = new Ipaddresses(); $res = $i->validIPAddress("2001::1"); $this->assertSame(true, $res); } public function testValidIPAddress5() { $i = new Ipaddresses(); $res = $i->validIPAddress("1.2.3.4"); $this->assertSame(true, $res); } public function testValidIPAddress6() { $this->setExpectedException("Exception"); $i = new Ipaddresses(); $res = $i->validIPAddress(""); } public function testValidIPAddress7() { $this->setExpectedException("Exception"); $i = new Ipaddresses(); $res = $i->validIPAddress([]); } public function testValidIPv4Address1() { $i = new Ipaddresses(); $res = $i->validIPv4Address("::"); $this->assertSame(false, $res); } public function testValidIPv4Address2() { $i = new Ipaddresses(); $res = $i->validIPv4Address("1.2.3.4"); $this->assertSame(true, $res); } public function testValidIPv6Address1() { $i = new Ipaddresses(); $res = $i->validIPv6Address("1.2.3.4"); $this->assertSame(false, $res); } public function testValidIPv6Address2() { $i = new Ipaddresses(); $res = $i->validIPv6Address("::"); $this->assertSame(true, $res); } public function testValidIPv6Address3() { $i = new Ipaddresses(); $res = $i->validIPv6Address("1::"); $this->assertSame(true, $res); } public function testValidIPv6Address4() { $i = new Ipaddresses(); $res = $i->validIPv6Address("::1"); $this->assertSame(true, $res); } public function testValidIPv6Address5() { $i = new Ipaddresses(); $res = $i->validIPv6Address("1::1"); $this->assertSame(true, $res); } public function testValidIPv6Address6() { $i = new Ipaddresses(); $res = $i->validIPv6Address("1:1:1"); $this->assertSame(false, $res); } public function testValidCIDR1() { $i = new Ipaddresses(); $res = $i->validCIDR(-1); $this->assertSame(false, $res); } public function testValidCIDR2() { $i = new Ipaddresses(); $res = $i->validCIDR(129); $this->assertSame(false, $res); } public function testValidCIDR3() { $i = new Ipaddresses(); $res = $i->validCIDR(128); $this->assertSame(true, $res); } public function testValidCIDR4() { $i = new Ipaddresses(); $res = $i->validCIDR(0); $this->assertSame(true, $res); } public function testValidIPv4CIDR1() { $i = new Ipaddresses(); $res = $i->validIPv4CIDR(-1); $this->assertSame(false, $res); } public function testValidIPv4CIDR2() { $i = new Ipaddresses(); $res = $i->validIPv4CIDR(33); $this->assertSame(false, $res); } public function testValidIPv4CIDR3() { $i = new Ipaddresses(); $res = $i->validIPv4CIDR(32); $this->assertSame(true, $res); } public function testValidIPv4CIDR4() { $i = new Ipaddresses(); $res = $i->validIPv4CIDR(0); $this->assertSame(true, $res); } public function testValidIPv6CIDR1() { $i = new Ipaddresses(); $res = $i->validIPv6CIDR(-1); $this->assertSame(false, $res); } public function testValidIPv6CIDR2() { $i = new Ipaddresses(); $res = $i->validIPv6CIDR(129); $this->assertSame(false, $res); } public function testValidIPv6CIDR3() { $i = new Ipaddresses(); $res = $i->validIPv6CIDR(128); $this->assertSame(true, $res); } public function testValidIPv6CIDR4() { $i = new Ipaddresses(); $res = $i->validIPv6CIDR(0); $this->assertSame(true, $res); } public function testCompressIP1() { $i = new Ipaddresses(); $res = $i->compressIP("::"); $this->assertSame("::", $res); } public function testCompressIP2() { $i = new Ipaddresses(); $res = $i->compressIP("::1"); $this->assertSame("::1", $res); } public function testCompressIP3() { $i = new Ipaddresses(); $res = $i->compressIP("2::1"); $this->assertSame("2::1", $res); } public function testCompressIP4() { $i = new Ipaddresses(); $res = $i->compressIP("2::"); $this->assertSame("2::", $res); } public function testCompressIP5() { $i = new Ipaddresses(); $res = $i->compressIP("2:1:0:3::0:1"); $this->assertSame("2:1:0:3::1", $res); } public function testCompressIP6() { $i = new Ipaddresses(); $res = $i->compressIP("2:1:0:3:0000::1"); $this->assertSame("2:1:0:3::1", $res); } public function testUncompressIPv6a() { $i = new Ipaddresses(); $res = $i->uncompressIPv6("1::1"); $this->assertSame("1:0:0:0:0:0:0:1", $res); } public function testUncompressIPv6b() { $i = new Ipaddresses(); $res = $i->uncompressIPv6("1::"); $this->assertSame("1:0:0:0:0:0:0:0", $res); } public function testUncompressIPv6c() { $i = new Ipaddresses(); $res = $i->uncompressIPv6("::"); $this->assertSame("0:0:0:0:0:0:0:0", $res); } public function testUncompressIPv6d() { $i = new Ipaddresses(); $res = $i->uncompressIPv6("1.2.3.4"); $this->assertSame("1.2.3.4", $res); } public function testGroupIPv6a() { $this->setExpectedException("Exception"); $i = new Ipaddresses(); $res = $i->groupIPv6("1.2.3.4"); } public function testGroupIPv6b() { $i = new Ipaddresses(); $res = $i->groupIPv6("0.1.2.3.4.5.6.7.8.9.a.b.c.d.e.f." . "0.1.2.3.4.5.6.7.8.9.a.b.c.d.e.f"); $this->assertSame("0123:4567:89ab:cdef:0123:4567:89ab:cdef", $res); } public function testCompleteAddressWithZero1() { $i = new Ipaddresses(); $res = $i->completeAddressWithZero("::"); $this->assertSame("0000:0000:0000:0000:0000:0000:0000:0000", $res); } public function testCompleteAddressWithZero2() { $i = new Ipaddresses(); $res = $i->completeAddressWithZero("::1"); $this->assertSame("0000:0000:0000:0000:0000:0000:0000:0001", $res); } public function testCompleteAddressWithZero3() { $i = new Ipaddresses(); $res = $i->completeAddressWithZero("1::"); $this->assertSame("0001:0000:0000:0000:0000:0000:0000:0000", $res); } public function testCompleteAddressWithZero4() { $i = new Ipaddresses(); $res = $i->completeAddressWithZero("1::1"); $this->assertSame("0001:0000:0000:0000:0000:0000:0000:0001", $res); } public function testCompleteAddressWithZero5() { $i = new Ipaddresses(); $res = $i->completeAddressWithZero("1:222::1"); $this->assertSame("0001:0222:0000:0000:0000:0000:0000:0001", $res); } public function testCompleteAddressWithZero6() { $i = new Ipaddresses(); $res = $i->completeAddressWithZero("1.2.3.4"); $this->assertSame("1.2.3.4", $res); } // TODO : cidrToBin // TODO : str_base_convert public function testReverseIPAddress1() { $i = new Ipaddresses(); $res = $i->reverseIPAddress("1.2.3.4"); $this->assertSame("4.3.2.1", $res); } public function testReverseIPAddress2() { $i = new Ipaddresses(); $res = $i->reverseIPAddress("::"); $this->assertSame("0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0", $res); } public function testReverseIPAddress3() { $i = new Ipaddresses(); $res = $i->reverseIPAddress("::1"); $this->assertSame("1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0", $res); } public function testReverseIPAddress4() { $i = new Ipaddresses(); $res = $i->reverseIPAddress("2::1"); $this->assertSame("1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.0", $res); } public function testReverseIPAddress5() { $i = new Ipaddresses(); $res = $i->reverseIPAddress("2::abcd:1"); $this->assertSame("1.0.0.0.d.c.b.a.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.0", $res); } public function testNetmask2cidr1() { $this->setExpectedException("Exception"); $i = new Ipaddresses(); $res = $i->netmask2cidr(0); } public function testNetmask2cidr2() { $i = new Ipaddresses(); $res = $i->netmask2cidr("255.255.255.0"); $this->assertSame(24, $res); } public function testNetmask2cidr3() { $i = new Ipaddresses(); $res = $i->netmask2cidr("255.255.255.255"); $this->assertSame(32, $res); } public function testNetmask2cidr4() { $i = new Ipaddresses(); $res = $i->netmask2cidr("255.255.255.255"); $this->assertSame(32, $res); } public function testNetmask2cidr5() { $i = new Ipaddresses(); $res = $i->netmask2cidr("255.0.0.0"); $this->assertSame(8, $res); } public function testNetmask2cidr6() { $i = new Ipaddresses(); $res = $i->netmask2cidr("127.0.0.0"); $this->assertSame(false, $res); } public function testNetmask2cidr7() { $i = new Ipaddresses(); $res = $i->netmask2cidr("63.0.0.0"); $this->assertSame(false, $res); } public function testNetmask2cidr8() { $i = new Ipaddresses(); $res = $i->netmask2cidr("155.0.0.0"); $this->assertSame(false, $res); } public function testNetmask2cidr9() { $i = new Ipaddresses(); $res = $i->netmask2cidr("0.0.0.255"); $this->assertSame(false, $res); } public function testNetmask2cidrWildcard1() { $i = new Ipaddresses(); $res = $i->netmask2cidr("255.255.255.0", false); $this->assertSame(false, $res); } public function testNetmask2cidrWildcard2() { $i = new Ipaddresses(); $res = $i->netmask2cidr("0.0.0.0", false); $this->assertSame(32, $res); } public function testNetmask2cidrWildcard3() { $i = new Ipaddresses(); $res = $i->netmask2cidr("255.255.255.255", false); $this->assertSame(0, $res); } public function testCidr2netmask1() { $i = new Ipaddresses(); $res = $i->cidr2netmask(0, true); $this->assertSame("0.0.0.0", $res); } public function testCidr2netmask2() { $i = new Ipaddresses(); $res = $i->cidr2netmask(24, true); $this->assertSame("255.255.255.0", $res); } public function testCidr2netmask3() { $i = new Ipaddresses(); $res = $i->cidr2netmask(25, true); $this->assertSame("255.255.255.128", $res); } public function testCidr2netmask4() { $i = new Ipaddresses(); $res = $i->cidr2netmask(32, true); $this->assertSame("255.255.255.255", $res); } public function testCidr2netmask5() { $i = new Ipaddresses(); $res = $i->cidr2netmask(1, true); $this->assertSame("128.0.0.0", $res); } public function testIpInNetwork1() { $i = new Ipaddresses(); $res = $i->ipInNetwork("127.0.0.1", "127.1.0.0", 8); $this->assertSame(true, $res); } public function testIpInNetwork2() { $i = new Ipaddresses(); $res = $i->ipInNetwork("192.168.1.1", "127.1.0.0", 8); $this->assertSame(false, $res); } public function testIpInNetwork3() { $i = new Ipaddresses(); $res = $i->ipInNetwork("2001:660:530d:201::1", "2001:660:530d:201::", 64); $this->assertSame(true, $res); } public function testIpInNetwork4() { $i = new Ipaddresses(); $res = $i->ipInNetwork("2001:660:530d:203::1", "2001:660:530d:201::", 64); $this->assertSame(false, $res); } public function testIpInNetwork5() { $i = new Ipaddresses(); $res = $i->ipInNetwork("2001:660:530d:203::1", "2001::", 0); $this->assertSame(true, $res); } public function testIpInNetwork6() { $i = new Ipaddresses(); $res = $i->ipInNetwork("192.168.1.1", "127.0.0.0", 0); $this->assertSame(true, $res); } public function testNetworkFirstIP1() { $i = new Ipaddresses(); $res = $i->networkFirstIP("192.168.1.21", 24); $this->assertSame($res, "192.168.1.0"); } public function testNetworkFirstIP2() { $i = new Ipaddresses(); $res = $i->networkFirstIP("192.168.1.21", 0); $this->assertSame($res, "0.0.0.0"); } public function testNetworkFirstIP3() { $i = new Ipaddresses(); $res = $i->networkFirstIP("192.168.1.21", 32); $this->assertSame($res, "192.168.1.21"); } public function testNetworkFirstIP4() { $i = new Ipaddresses(); $res = $i->networkFirstIP("192.168.1.21", 31); $this->assertSame($res, "192.168.1.20"); } public function testNetworkFirstIP5() { $i = new Ipaddresses(); $res = $i->networkFirstIP("2001:660:530d:201::125", 64); $this->assertSame($res, "2001:660:530d:201::"); } public function testNetworkFirstIP6() { $i = new Ipaddresses(); $res = $i->networkFirstIP("2001:660:530d:201::125", 0); $this->assertSame($res, "::"); } public function testNetworkFirstIP7() { $i = new Ipaddresses(); $res = $i->networkFirstIP("2001:660:530d:201::125", 128); $this->assertSame($res, "2001:660:530d:201::125"); } public function testNetworkFirstIP8() { $i = new Ipaddresses(); $res = $i->networkFirstIP("2001:660:530d:201::125", 127); $this->assertSame($res, "2001:660:530d:201::124"); } public function testNetworkLastIP1() { $i = new Ipaddresses(); $res = $i->networkLastIP("192.168.1.21", 24); $this->assertSame($res, "192.168.1.255"); } public function testNetworkLastIP2() { $i = new Ipaddresses(); $res = $i->networkLastIP("192.168.1.21", 0); $this->assertSame($res, "255.255.255.255"); } public function testNetworkLastIP3() { $i = new Ipaddresses(); $res = $i->networkLastIP("192.168.1.21", 32); $this->assertSame($res, "192.168.1.21"); } public function testNetworkLastIP4() { $i = new Ipaddresses(); $res = $i->networkLastIP("192.168.1.21", 31); $this->assertSame($res, "192.168.1.21"); } public function testNetworkLastIP5() { $i = new Ipaddresses(); $res = $i->networkLastIP("2001:660:530d:201::125", 64); $this->assertSame($res, "2001:660:530d:201:ffff:ffff:ffff:ffff"); } public function testNetworkLastIP6() { $i = new Ipaddresses(); $res = $i->networkLastIP("2001:660:530d:201::125", 0); $this->assertSame($res, "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff"); } public function testNetworkLastIP7() { $i = new Ipaddresses(); $res = $i->networkLastIP("2001:660:530d:201::125", 128); $this->assertSame($res, "2001:660:530d:201::125"); } public function testNetworkLastIP8() { $i = new Ipaddresses(); $res = $i->networkLastIP("2001:660:530d:201::125", 127); $this->assertSame($res, "2001:660:530d:201::125"); } }