00001 <?php
00002
00003
00004
00005
00006 class IPTest extends PHPUnit_Framework_TestCase {
00007
00008 public function testValidIPs() {
00009 foreach ( range( 0, 255 ) as $i ) {
00010 $a = sprintf( "%03d", $i );
00011 $b = sprintf( "%02d", $i );
00012 $c = sprintf( "%01d", $i );
00013 foreach ( array_unique( array( $a, $b, $c ) ) as $f ) {
00014 $ip = "$f.$f.$f.$f";
00015 $this->assertTrue( IP::isValid( $ip ) , "$ip is a valid IPv4 address" );
00016 }
00017 }
00018 }
00019
00020 public function testInvalidIPs() {
00021 foreach ( range( 256, 999 ) as $i ) {
00022 $a = sprintf( "%03d", $i );
00023 $b = sprintf( "%02d", $i );
00024 $c = sprintf( "%01d", $i );
00025 foreach ( array_unique( array( $a, $b, $c ) ) as $f ) {
00026 $ip = "$f.$f.$f.$f";
00027 $this->assertFalse( IP::isValid( $ip ), "$ip is not a valid IPv4 address" );
00028 }
00029 }
00030 }
00031
00032 public function testBogusIPs() {
00033 $invalid = array(
00034 'www.xn--var-xla.net',
00035 '216.17.184.G',
00036 '216.17.184.1.',
00037 '216.17.184',
00038 '216.17.184.',
00039 '256.17.184.1'
00040 );
00041 foreach ( $invalid as $i ) {
00042 $this->assertFalse( IP::isValid( $i ), "$i is an invalid IPv4 address" );
00043 }
00044 }
00045
00046 public function testPrivateIPs() {
00047 $private = array( '10.0.0.1', '172.16.0.1', '192.168.0.1' );
00048 foreach ( $private as $p ) {
00049 $this->assertFalse( IP::isPublic( $p ), "$p is not a public IP address" );
00050 }
00051 }
00052 }