ipaddresses : Add support to calculations on IP addresses

git-svn-id: https://svn.fournier38.fr/svn/ProgSVN/trunk@2542 bf3deb0d-5f1a-0410-827f-c0cc1f45334c
This commit is contained in:
2016-02-23 11:55:59 +00:00
parent 01efb53dfa
commit 9dbd64d6a2
2 changed files with 492 additions and 0 deletions

255
Tests/ipaddressesTest.php Normal file
View File

@@ -0,0 +1,255 @@
<?php
/** DomFramework - Tests
@package domframework
@author Dominique Fournier <dominique@fournier38.fr> */
/** Test the ipaddresses.php file */
class test_ipaddresses 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_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 (7, $res);
}
public function test_netmask2cidr7 ()
{
$i = new ipaddresses ();
$res = $i->netmask2cidr ("63.0.0.0");
$this->assertSame (6, $res);
}
}