* ctype tests
authorÆvar Arnfjörð Bjarmason <avar@users.mediawiki.org>
Fri, 20 Jan 2006 22:52:21 +0000 (22:52 +0000)
committerÆvar Arnfjörð Bjarmason <avar@users.mediawiki.org>
Fri, 20 Jan 2006 22:52:21 +0000 (22:52 +0000)
tests/CtypeTest.php [new file with mode: 0644]

diff --git a/tests/CtypeTest.php b/tests/CtypeTest.php
new file mode 100644 (file)
index 0000000..1b628e2
--- /dev/null
@@ -0,0 +1,64 @@
+<?php
+require_once 'PHPUnit.php';
+
+class CtypeTest extends PHPUnit_TestCase {
+       var $functions;
+       
+       function CtypeTest( $name ) {
+               $this->PHPUnit_TestCase( $name );
+       }
+
+       function setUp() {
+               $cont = file_get_contents( '../includes/compatability/ctype.php' );
+
+               preg_match_all( '~function (ctype_[a-z]+)~', $cont, $m );
+               $this->populateFunctions( $m[1] );
+
+               // Will get called before each test* function
+               if ( function_exists( '_ctype_alnum' ) )
+                       return;
+               else {
+                       $cont = preg_replace( '~^<\?php~', '', $cont );
+                       $cont = preg_replace( '~\?>$~', '', $cont );
+
+                       // Rename the custom functions so they don't conflict
+                       $cont = preg_replace( '~(function )(ctype_)~', '\1_\2', $cont );
+
+                       eval( $cont );
+               }
+       }
+
+       function populateFunctions( $functions ) {
+               $this->functions = array();
+               foreach ( $functions as $function )
+                       $this->functions[$function] = "_$function";
+       }
+       
+       function tearDown() {}
+
+//     function testInteger256_to_big() {}
+
+       function testInteger0_to_255() {
+               foreach ( $this->functions as $phpfunc => $mwfunc )
+                       foreach ( range( 0, 255 ) as $i )
+                               $this->assertEquals(
+                                       _ctype_alnum( $i ),
+                                       ctype_alnum( $i ),
+                                       "On $i ($phpfunc)"
+                               );
+       }
+
+       function testChr0_to_255() {
+               foreach ( $this->functions as $phpfunc => $mwfunc )
+                       foreach ( range( 0, 255 ) as $i ) {
+                               $i = chr( $i );
+                               $this->assertEquals(
+                                       _ctype_alnum( $i ),
+                                       ctype_alnum( $i ),
+                                       "On $i ($phpfunc)"
+                               );
+                       }
+       }
+
+}
+?>