574 lines
16 KiB
PHP
574 lines
16 KiB
PHP
<?php
|
|
|
|
/** DomFramework - Tests
|
|
* @package domframework
|
|
* @author Dominique Fournier <dominique@fournier38.fr>
|
|
* @license BSD
|
|
*/
|
|
|
|
namespace Domframework\Tests;
|
|
|
|
use Domframework\Ipaddresses;
|
|
|
|
/** Test the Ipaddresses.php file */
|
|
class IpaddressesTest extends \PHPUnit_Framework_TestCase
|
|
{
|
|
public function test_validIPAddress1()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->validIPAddress("::");
|
|
$this->assertSame(true, $res);
|
|
}
|
|
public function test_validIPAddress2()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->validIPAddress("1::");
|
|
$this->assertSame(true, $res);
|
|
}
|
|
public function test_validIPAddress3()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->validIPAddress("::1");
|
|
$this->assertSame(true, $res);
|
|
}
|
|
public function test_validIPAddress4()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->validIPAddress("2001::1");
|
|
$this->assertSame(true, $res);
|
|
}
|
|
public function test_validIPAddress5()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->validIPAddress("1.2.3.4");
|
|
$this->assertSame(true, $res);
|
|
}
|
|
public function test_validIPAddress6()
|
|
{
|
|
$this->setExpectedException("Exception");
|
|
$i = new Ipaddresses();
|
|
$res = $i->validIPAddress("");
|
|
}
|
|
public function test_validIPAddress7()
|
|
{
|
|
$this->setExpectedException("Exception");
|
|
$i = new Ipaddresses();
|
|
$res = $i->validIPAddress(array ());
|
|
}
|
|
|
|
public function test_validIPv4Address1()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->validIPv4Address("::");
|
|
$this->assertSame(false, $res);
|
|
}
|
|
public function test_validIPv4Address2()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->validIPv4Address("1.2.3.4");
|
|
$this->assertSame(true, $res);
|
|
}
|
|
|
|
public function test_validIPv6Address1()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->validIPv6Address("1.2.3.4");
|
|
$this->assertSame(false, $res);
|
|
}
|
|
public function test_validIPv6Address2()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->validIPv6Address("::");
|
|
$this->assertSame(true, $res);
|
|
}
|
|
public function test_validIPv6Address3()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->validIPv6Address("1::");
|
|
$this->assertSame(true, $res);
|
|
}
|
|
public function test_validIPv6Address4()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->validIPv6Address("::1");
|
|
$this->assertSame(true, $res);
|
|
}
|
|
public function test_validIPv6Address5()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->validIPv6Address("1::1");
|
|
$this->assertSame(true, $res);
|
|
}
|
|
public function test_validIPv6Address6()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->validIPv6Address("1:1:1");
|
|
$this->assertSame(false, $res);
|
|
}
|
|
|
|
public function test_validCIDR1()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->validCIDR(-1);
|
|
$this->assertSame(false, $res);
|
|
}
|
|
public function test_validCIDR2()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->validCIDR(129);
|
|
$this->assertSame(false, $res);
|
|
}
|
|
public function test_validCIDR3()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->validCIDR(128);
|
|
$this->assertSame(true, $res);
|
|
}
|
|
public function test_validCIDR4()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->validCIDR(0);
|
|
$this->assertSame(true, $res);
|
|
}
|
|
|
|
public function test_validIPv4CIDR1()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->validIPv4CIDR(-1);
|
|
$this->assertSame(false, $res);
|
|
}
|
|
public function test_validIPv4CIDR2()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->validIPv4CIDR(33);
|
|
$this->assertSame(false, $res);
|
|
}
|
|
public function test_validIPv4CIDR3()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->validIPv4CIDR(32);
|
|
$this->assertSame(true, $res);
|
|
}
|
|
public function test_validIPv4CIDR4()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->validIPv4CIDR(0);
|
|
$this->assertSame(true, $res);
|
|
}
|
|
|
|
public function test_validIPv6CIDR1()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->validIPv6CIDR(-1);
|
|
$this->assertSame(false, $res);
|
|
}
|
|
public function test_validIPv6CIDR2()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->validIPv6CIDR(129);
|
|
$this->assertSame(false, $res);
|
|
}
|
|
public function test_validIPv6CIDR3()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->validIPv6CIDR(128);
|
|
$this->assertSame(true, $res);
|
|
}
|
|
public function test_validIPv6CIDR4()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->validIPv6CIDR(0);
|
|
$this->assertSame(true, $res);
|
|
}
|
|
|
|
public function test_compressIP1()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->compressIP("::");
|
|
$this->assertSame("::", $res);
|
|
}
|
|
public function test_compressIP2()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->compressIP("::1");
|
|
$this->assertSame("::1", $res);
|
|
}
|
|
public function test_compressIP3()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->compressIP("2::1");
|
|
$this->assertSame("2::1", $res);
|
|
}
|
|
public function test_compressIP4()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->compressIP("2::");
|
|
$this->assertSame("2::", $res);
|
|
}
|
|
public function test_compressIP5()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->compressIP("2:1:0:3::0:1");
|
|
$this->assertSame("2:1:0:3::1", $res);
|
|
}
|
|
public function test_compressIP6()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->compressIP("2:1:0:3:0000::1");
|
|
$this->assertSame("2:1:0:3::1", $res);
|
|
}
|
|
|
|
public function test_uncompressIPv6a()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->uncompressIPv6("1::1");
|
|
$this->assertSame("1:0:0:0:0:0:0:1", $res);
|
|
}
|
|
public function test_uncompressIPv6b()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->uncompressIPv6("1::");
|
|
$this->assertSame("1:0:0:0:0:0:0:0", $res);
|
|
}
|
|
public function test_uncompressIPv6c()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->uncompressIPv6("::");
|
|
$this->assertSame("0:0:0:0:0:0:0:0", $res);
|
|
}
|
|
public function test_uncompressIPv6d()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->uncompressIPv6("1.2.3.4");
|
|
$this->assertSame("1.2.3.4", $res);
|
|
}
|
|
|
|
public function test_groupIPv6a()
|
|
{
|
|
$this->setExpectedException("Exception");
|
|
$i = new Ipaddresses();
|
|
$res = $i->groupIPv6("1.2.3.4");
|
|
}
|
|
public function test_groupIPv6b()
|
|
{
|
|
$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 test_completeAddressWithZero1()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->completeAddressWithZero("::");
|
|
$this->assertSame("0000:0000:0000:0000:0000:0000:0000:0000", $res);
|
|
}
|
|
public function test_completeAddressWithZero2()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->completeAddressWithZero("::1");
|
|
$this->assertSame("0000:0000:0000:0000:0000:0000:0000:0001", $res);
|
|
}
|
|
public function test_completeAddressWithZero3()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->completeAddressWithZero("1::");
|
|
$this->assertSame("0001:0000:0000:0000:0000:0000:0000:0000", $res);
|
|
}
|
|
public function test_completeAddressWithZero4()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->completeAddressWithZero("1::1");
|
|
$this->assertSame("0001:0000:0000:0000:0000:0000:0000:0001", $res);
|
|
}
|
|
public function test_completeAddressWithZero5()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->completeAddressWithZero("1:222::1");
|
|
$this->assertSame("0001:0222:0000:0000:0000:0000:0000:0001", $res);
|
|
}
|
|
public function test_completeAddressWithZero6()
|
|
{
|
|
$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 test_reverseIPAddress1()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->reverseIPAddress("1.2.3.4");
|
|
$this->assertSame("4.3.2.1", $res);
|
|
}
|
|
public function test_reverseIPAddress2()
|
|
{
|
|
$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 test_reverseIPAddress3()
|
|
{
|
|
$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 test_reverseIPAddress4()
|
|
{
|
|
$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 test_reverseIPAddress5()
|
|
{
|
|
$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 test_netmask2cidr1()
|
|
{
|
|
$this->setExpectedException("Exception");
|
|
$i = new Ipaddresses();
|
|
$res = $i->netmask2cidr(0);
|
|
}
|
|
public function test_netmask2cidr2()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->netmask2cidr("255.255.255.0");
|
|
$this->assertSame(24, $res);
|
|
}
|
|
public function test_netmask2cidr3()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->netmask2cidr("255.255.255.255");
|
|
$this->assertSame(32, $res);
|
|
}
|
|
public function test_netmask2cidr4()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->netmask2cidr("255.255.255.255");
|
|
$this->assertSame(32, $res);
|
|
}
|
|
public function test_netmask2cidr5()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->netmask2cidr("255.0.0.0");
|
|
$this->assertSame(8, $res);
|
|
}
|
|
public function test_netmask2cidr6()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->netmask2cidr("127.0.0.0");
|
|
$this->assertSame(false, $res);
|
|
}
|
|
public function test_netmask2cidr7()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->netmask2cidr("63.0.0.0");
|
|
$this->assertSame(false, $res);
|
|
}
|
|
public function test_netmask2cidr8()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->netmask2cidr("155.0.0.0");
|
|
$this->assertSame(false, $res);
|
|
}
|
|
public function test_netmask2cidr9()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->netmask2cidr("0.0.0.255");
|
|
$this->assertSame(false, $res);
|
|
}
|
|
|
|
public function test_netmask2cidrWildcard_1()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->netmask2cidr("255.255.255.0", false);
|
|
$this->assertSame(false, $res);
|
|
}
|
|
|
|
public function test_netmask2cidrWildcard_2()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->netmask2cidr("0.0.0.0", false);
|
|
$this->assertSame(32, $res);
|
|
}
|
|
public function test_netmask2cidrWildcard_3()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->netmask2cidr("255.255.255.255", false);
|
|
$this->assertSame(0, $res);
|
|
}
|
|
|
|
public function test_cidr2netmask_1()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->cidr2netmask(0, true);
|
|
$this->assertSame("0.0.0.0", $res);
|
|
}
|
|
|
|
public function test_cidr2netmask_2()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->cidr2netmask(24, true);
|
|
$this->assertSame("255.255.255.0", $res);
|
|
}
|
|
|
|
public function test_cidr2netmask_3()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->cidr2netmask(25, true);
|
|
$this->assertSame("255.255.255.128", $res);
|
|
}
|
|
|
|
public function test_cidr2netmask_4()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->cidr2netmask(32, true);
|
|
$this->assertSame("255.255.255.255", $res);
|
|
}
|
|
public function test_cidr2netmask_5()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->cidr2netmask(1, true);
|
|
$this->assertSame("128.0.0.0", $res);
|
|
}
|
|
|
|
public function test_ipInNetwork1()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->ipInNetwork("127.0.0.1", "127.1.0.0", 8);
|
|
$this->assertSame(true, $res);
|
|
}
|
|
public function test_ipInNetwork2()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->ipInNetwork("192.168.1.1", "127.1.0.0", 8);
|
|
$this->assertSame(false, $res);
|
|
}
|
|
public function test_ipInNetwork3()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->ipInNetwork("2001:660:530d:201::1", "2001:660:530d:201::", 64);
|
|
$this->assertSame(true, $res);
|
|
}
|
|
public function test_ipInNetwork4()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->ipInNetwork("2001:660:530d:203::1", "2001:660:530d:201::", 64);
|
|
$this->assertSame(false, $res);
|
|
}
|
|
public function test_ipInNetwork5()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->ipInNetwork("2001:660:530d:203::1", "2001::", 0);
|
|
$this->assertSame(true, $res);
|
|
}
|
|
public function test_ipInNetwork6()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->ipInNetwork("192.168.1.1", "127.0.0.0", 0);
|
|
$this->assertSame(true, $res);
|
|
}
|
|
|
|
public function test_networkFirstIP1()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->networkFirstIP("192.168.1.21", 24);
|
|
$this->assertSame($res, "192.168.1.0");
|
|
}
|
|
public function test_networkFirstIP2()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->networkFirstIP("192.168.1.21", 0);
|
|
$this->assertSame($res, "0.0.0.0");
|
|
}
|
|
public function test_networkFirstIP3()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->networkFirstIP("192.168.1.21", 32);
|
|
$this->assertSame($res, "192.168.1.21");
|
|
}
|
|
public function test_networkFirstIP4()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->networkFirstIP("192.168.1.21", 31);
|
|
$this->assertSame($res, "192.168.1.20");
|
|
}
|
|
public function test_networkFirstIP5()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->networkFirstIP("2001:660:530d:201::125", 64);
|
|
$this->assertSame($res, "2001:660:530d:201::");
|
|
}
|
|
public function test_networkFirstIP6()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->networkFirstIP("2001:660:530d:201::125", 0);
|
|
$this->assertSame($res, "::");
|
|
}
|
|
public function test_networkFirstIP7()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->networkFirstIP("2001:660:530d:201::125", 128);
|
|
$this->assertSame($res, "2001:660:530d:201::125");
|
|
}
|
|
public function test_networkFirstIP8()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->networkFirstIP("2001:660:530d:201::125", 127);
|
|
$this->assertSame($res, "2001:660:530d:201::124");
|
|
}
|
|
public function test_networkLastIP1()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->networkLastIP("192.168.1.21", 24);
|
|
$this->assertSame($res, "192.168.1.255");
|
|
}
|
|
public function test_networkLastIP2()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->networkLastIP("192.168.1.21", 0);
|
|
$this->assertSame($res, "255.255.255.255");
|
|
}
|
|
public function test_networkLastIP3()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->networkLastIP("192.168.1.21", 32);
|
|
$this->assertSame($res, "192.168.1.21");
|
|
}
|
|
public function test_networkLastIP4()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->networkLastIP("192.168.1.21", 31);
|
|
$this->assertSame($res, "192.168.1.21");
|
|
}
|
|
public function test_networkLastIP5()
|
|
{
|
|
$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 test_networkLastIP6()
|
|
{
|
|
$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 test_networkLastIP7()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->networkLastIP("2001:660:530d:201::125", 128);
|
|
$this->assertSame($res, "2001:660:530d:201::125");
|
|
}
|
|
public function test_networkLastIP8()
|
|
{
|
|
$i = new Ipaddresses();
|
|
$res = $i->networkLastIP("2001:660:530d:201::125", 127);
|
|
$this->assertSame($res, "2001:660:530d:201::125");
|
|
}
|
|
}
|