summaryrefslogtreecommitdiff
path: root/tests/phpunit/includes/IPTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'tests/phpunit/includes/IPTest.php')
-rw-r--r--tests/phpunit/includes/IPTest.php78
1 files changed, 66 insertions, 12 deletions
diff --git a/tests/phpunit/includes/IPTest.php b/tests/phpunit/includes/IPTest.php
index 7bc29385..c074eea6 100644
--- a/tests/phpunit/includes/IPTest.php
+++ b/tests/phpunit/includes/IPTest.php
@@ -1,7 +1,12 @@
<?php
/**
- * Tests for IP validity functions. Ported from /t/inc/IP.t by avar.
+ * Tests for IP validity functions.
+ *
+ * Ported from /t/inc/IP.t by avar.
+ *
* @group IP
+ * @todo Test methods in this call should be split into a method and a
+ * dataprovider.
*/
class IPTest extends MediaWikiTestCase {
@@ -259,14 +264,63 @@ class IPTest extends MediaWikiTestCase {
}
/**
- * test wrapper around ip2long which might return -1 or false depending on PHP version
* @covers IP::toUnsigned
+ * @dataProvider provideToUnsigned
*/
- public function testip2longWrapper() {
- // @todo FIXME: Add more tests ?
- $this->assertEquals( pow( 2, 32 ) - 1, IP::toUnsigned( '255.255.255.255' ) );
- $i = 'IN.VA.LI.D';
- $this->assertFalse( IP::toUnSigned( $i ) );
+ public function testToUnsigned( $expected, $input ) {
+ $result = IP::toUnsigned( $input );
+ $this->assertTrue( $result === false || is_string( $result ) || is_int( $result ) );
+ $this->assertEquals( $expected, $result );
+ }
+
+ /**
+ * Provider for IP::testToUnsigned()
+ */
+ public static function provideToUnsigned() {
+ return array(
+ array( 1, '0.0.0.1' ),
+ array( 16909060, '1.2.3.4' ),
+ array( 2130706433, '127.0.0.1' ),
+ array( '2147483648', '128.0.0.0' ),
+ array( '3735931646', '222.173.202.254' ),
+ array( pow( 2, 32 ) - 1, '255.255.255.255' ),
+ array( false, 'IN.VA.LI.D' ),
+ array( 1, '::1' ),
+ array( '42540766452641154071740215577757643572', '2001:0db8:85a3:0000:0000:8a2e:0370:7334' ),
+ array( '42540766452641154071740215577757643572', '2001:db8:85a3::8a2e:0370:7334' ),
+ array( false, 'IN:VA::LI:D' ),
+ array( false, ':::1' )
+ );
+ }
+
+ /**
+ * @covers IP::toHex
+ * @dataProvider provideToHex
+ */
+ public function testToHex( $expected, $input ) {
+ $result = IP::toHex( $input );
+ $this->assertTrue( $result === false || is_string( $result ) );
+ $this->assertEquals( $expected, $result );
+ }
+
+ /**
+ * Provider for IP::testToHex()
+ */
+ public static function provideToHex() {
+ return array(
+ array( '00000001', '0.0.0.1' ),
+ array( '01020304', '1.2.3.4' ),
+ array( '7F000001', '127.0.0.1' ),
+ array( '80000000', '128.0.0.0' ),
+ array( 'DEADCAFE', '222.173.202.254' ),
+ array( 'FFFFFFFF', '255.255.255.255' ),
+ array( false, 'IN.VA.LI.D' ),
+ array( 'v6-00000000000000000000000000000001', '::1' ),
+ array( 'v6-20010DB885A3000000008A2E03707334', '2001:0db8:85a3:0000:0000:8a2e:0370:7334' ),
+ array( 'v6-20010DB885A3000000008A2E03707334', '2001:db8:85a3::8a2e:0370:7334' ),
+ array( false, 'IN:VA::LI:D' ),
+ array( false, ':::1' )
+ );
}
/**
@@ -338,7 +392,7 @@ class IPTest extends MediaWikiTestCase {
* representing the network mask and the bit mask.
* @covers IP::parseCIDR
*/
- function testCIDRParsing() {
+ public function testCIDRParsing() {
$this->assertFalseCIDR( '192.0.2.0', "missing mask" );
$this->assertFalseCIDR( '192.0.2.0/', "missing bitmask" );
@@ -435,7 +489,7 @@ class IPTest extends MediaWikiTestCase {
* Test for IP::splitHostAndPort().
* @dataProvider provideSplitHostAndPort
*/
- function testSplitHostAndPort( $expected, $input, $description ) {
+ public function testSplitHostAndPort( $expected, $input, $description ) {
$this->assertEquals( $expected, IP::splitHostAndPort( $input ), $description );
}
@@ -462,7 +516,7 @@ class IPTest extends MediaWikiTestCase {
* Test for IP::combineHostAndPort()
* @dataProvider provideCombineHostAndPort
*/
- function testCombineHostAndPort( $expected, $input, $description ) {
+ public function testCombineHostAndPort( $expected, $input, $description ) {
list( $host, $port, $defaultPort ) = $input;
$this->assertEquals(
$expected,
@@ -486,7 +540,7 @@ class IPTest extends MediaWikiTestCase {
* Test for IP::sanitizeRange()
* @dataProvider provideIPCIDRs
*/
- function testSanitizeRange( $input, $expected, $description ) {
+ public function testSanitizeRange( $input, $expected, $description ) {
$this->assertEquals( $expected, IP::sanitizeRange( $input ), $description );
}
@@ -510,7 +564,7 @@ class IPTest extends MediaWikiTestCase {
* Test for IP::prettifyIP()
* @dataProvider provideIPsToPrettify
*/
- function testPrettifyIP( $ip, $prettified ) {
+ public function testPrettifyIP( $ip, $prettified ) {
$this->assertEquals( $prettified, IP::prettifyIP( $ip ), "Prettify of $ip" );
}