diff --git a/test/libraries/PMA_ip_allow_deny_test.php b/test/libraries/PMA_ip_allow_deny_test.php index f91b75d73f..8d68251434 100644 --- a/test/libraries/PMA_ip_allow_deny_test.php +++ b/test/libraries/PMA_ip_allow_deny_test.php @@ -17,12 +17,14 @@ require_once 'libraries/ip_allow_deny.lib.php'; class PMA_Ip_allow_deny_Test extends PHPUnit_Framework_TestCase { - public function setUp() + public function setUp() { - $_SERVER['REMOTE_ADDR'] = "101.0.0.25"; $GLOBALS['cfg']['Server']['user'] = "pma_username"; $GLOBALS['cfg']['Server']['AllowDeny']['rules'][] = "allow % 255.255.255.0/4"; $GLOBALS['cfg']['Server']['AllowDeny']['rules'][] = "allow % from 255.255.2.0/4"; + $GLOBALS['cfg']['Server']['AllowDeny']['rules'][] = "allow % from 2001:4998:c:a0d:0000:0000:4998:1020"; + $GLOBALS['cfg']['Server']['AllowDeny']['rules'][] = "allow % from 2001:4998:c:a0d:0000:0000:4998:[1001-2010]"; + $GLOBALS['cfg']['Server']['AllowDeny']['rules'][] = "allow % from 2001:4998:c:a0d:0000:0000:4998:3020/24"; $GLOBALS['cfg']['Server']['AllowDeny']['rules'][] = "deny % 255.255.0.0/8"; $GLOBALS['cfg']['Server']['AllowDeny']['rules'][] = "deny % from 255.255.0.0/8"; include_once 'libraries/ip_allow_deny.lib.php'; @@ -35,10 +37,18 @@ class PMA_Ip_allow_deny_Test extends PHPUnit_Framework_TestCase */ public function testPMA_getIp() { + //$_SERVER['REMOTE_ADDR'] is empty + $this->assertEquals( + false, + PMA_getIp() + ); + + $_SERVER['REMOTE_ADDR'] = "101.0.0.25"; $this->assertEquals( "101.0.0.25", PMA_getIp() - ); + ); + } /** @@ -47,7 +57,8 @@ class PMA_Ip_allow_deny_Test extends PHPUnit_Framework_TestCase * @return void */ public function testPMA_ipMaskTest() - { + { + //IPV4 testing $testRange = "255.255.0.0/8"; $ipToTest = "10.0.0.0"; $this->assertEquals( @@ -61,6 +72,61 @@ class PMA_Ip_allow_deny_Test extends PHPUnit_Framework_TestCase true, PMA_ipMaskTest($testRange, $ipToTest) ); + + $testRange = "255.255.0.[0-10]"; + $ipToTest = "255.3.0.3"; + $this->assertEquals( + false, + PMA_ipMaskTest($testRange, $ipToTest) + ); + $ipToTest = "255.3.0.12"; + $this->assertEquals( + false, + PMA_ipMaskTest($testRange, $ipToTest) + ); + + //IPV6 testing + //not range + $ipToTest = "2001:4998:c:a0d:0000:0000:4998:1020"; + $testRange = "2001:4998:c:a0d:0000:0000:4998:1020"; + $this->assertEquals( + true, + PMA_ipMaskTest($testRange, $ipToTest) + ); + $ipToTest = "2001:4998:c:a0d:0000:0000:4998:1020"; + $testRange = "2001:4998:c:a0d:0000:0000:4998:2020"; + $this->assertEquals( + false, + PMA_ipMaskTest($testRange, $ipToTest) + ); + + //range + $ipToTest = "2001:4998:c:a0d:0000:0000:4998:1020"; + $testRange = "2001:4998:c:a0d:0000:0000:4998:[1001-2010]"; + $this->assertEquals( + true, + PMA_ipMaskTest($testRange, $ipToTest) + ); + $ipToTest = "2001:4998:c:a0d:0000:0000:4998:3020"; + $testRange = "2001:4998:c:a0d:0000:0000:4998:[1001-2010]"; + $this->assertEquals( + false, + PMA_ipMaskTest($testRange, $ipToTest) + ); + + //CDIR + $ipToTest = "2001:4998:c:a0d:0000:0000:4998:1020"; + $testRange = "2001:4998:c:a0d:0000:0000:4998:[1001-2010]"; + $this->assertEquals( + true, + PMA_ipMaskTest($testRange, $ipToTest) + ); + $ipToTest = "2001:4998:c:a0d:0000:0000:4998:1000"; + $testRange = "2001:4998:c:a0d:0000:0000:4998:3020/24"; + $this->assertEquals( + false, + PMA_ipMaskTest($testRange, $ipToTest) + ); } /** @@ -70,6 +136,12 @@ class PMA_Ip_allow_deny_Test extends PHPUnit_Framework_TestCase */ public function testPMA_allowDeny() { + $_SERVER['REMOTE_ADDR'] = ""; + $this->assertEquals( + false, + PMA_allowDeny("allow") + ); + $_SERVER['REMOTE_ADDR'] = "255.0.1.0"; $this->assertEquals( true, @@ -96,5 +168,23 @@ class PMA_Ip_allow_deny_Test extends PHPUnit_Framework_TestCase false, PMA_allowDeny("deny") ); + + //IPV6 + $_SERVER['REMOTE_ADDR'] = "2001:4998:c:a0d:0000:0000:4998:1020"; + $this->assertEquals( + true, + PMA_allowDeny("allow") + ); + $_SERVER['REMOTE_ADDR'] = "2001:4998:c:a0d:0000:0000:4998:1000"; + $this->assertEquals( + false, + PMA_allowDeny("allow") + ); + $_SERVER['REMOTE_ADDR'] = "2001:4998:c:a0d:0000:0000:4998:1020"; + $this->assertEquals( + true, + PMA_allowDeny("allow") + ); + } }