Port IP tests to PHPUnit format
authorChad Horohoe <demon@users.mediawiki.org>
Wed, 3 Feb 2010 13:32:44 +0000 (13:32 +0000)
committerChad Horohoe <demon@users.mediawiki.org>
Wed, 3 Feb 2010 13:32:44 +0000 (13:32 +0000)
tests/IPTest.php [new file with mode: 0644]

diff --git a/tests/IPTest.php b/tests/IPTest.php
new file mode 100644 (file)
index 0000000..9db77f7
--- /dev/null
@@ -0,0 +1,52 @@
+<?php
+/* 
+ * Tests for IP validity functions. Ported from /t/inc/IP.t by avar.
+ */
+
+class IPTest extends PHPUnit_Framework_TestCase {
+
+       public function testValidIPs() {
+               foreach ( range( 0, 255 ) as $i ) {
+                       $a = sprintf( "%03d", $i );
+                       $b = sprintf( "%02d", $i );
+                       $c = sprintf( "%01d", $i );
+                       foreach ( array_unique( array( $a, $b, $c ) ) as $f ) {
+                               $ip = "$f.$f.$f.$f";
+                               $this->assertTrue( IP::isValid( $ip ) , "$ip is a valid IPv4 address" );
+                       }
+               }
+       }
+
+       public function testInvalidIPs() {
+               foreach ( range( 256, 999 ) as $i ) {
+                       $a = sprintf( "%03d", $i );
+                       $b = sprintf( "%02d", $i );
+                       $c = sprintf( "%01d", $i );
+                       foreach ( array_unique( array( $a, $b, $c ) ) as $f ) {
+                               $ip = "$f.$f.$f.$f";
+                               $this->assertFalse( IP::isValid( $ip ), "$ip is not a valid IPv4 address" );
+                       }
+               }
+       }
+
+       public function testBogusIPs() {
+               $invalid = array(
+                       'www.xn--var-xla.net',
+                       '216.17.184.G',
+                       '216.17.184.1.',
+                       '216.17.184',
+                       '216.17.184.',
+                       '256.17.184.1'
+               );
+               foreach ( $invalid as $i ) {
+                       $this->assertFalse( IP::isValid( $i ), "$i is an invalid IPv4 address" );
+               }
+       }
+
+       public function testPrivateIPs() {
+               $private = array( '10.0.0.1', '172.16.0.1', '192.168.0.1' );
+               foreach ( $private as $p ) {
+                       $this->assertFalse( IP::isPublic( $p ), "$p is not a public IP address" );
+               }
+       }
+}