Add fallback mb_* function tests
authorX! <soxred93@users.mediawiki.org>
Sun, 2 Jan 2011 01:51:44 +0000 (01:51 +0000)
committerX! <soxred93@users.mediawiki.org>
Sun, 2 Jan 2011 01:51:44 +0000 (01:51 +0000)
tests/phpunit/includes/GlobalTest.php

index 51b0040..07b076d 100644 (file)
@@ -394,6 +394,76 @@ class GlobalTest extends MediaWikiTestCase {
                                "wfBaseName('$from') => '$to'" );
                }
        }
+       
+       
+       function testFallbackMbstringFunctions() {
+               
+               if( !extension_loaded( 'mbstring' ) ) {
+                       $this->markTestSkipped( "The mb_string functions must be installed to test the fallback functions" );
+               }
+               
+               $sampleUTF = "Östergötland_coat_of_arms.png";
+               
+               
+               //mb_substr
+               $substr_params = array(
+                       array( 0, 0 ),
+                       array( 5, -4 ),
+                       array( 33 ),
+                       array( 100, -5 ),
+                       array( -8, 10 ),
+                       array( 1, 1 ),
+                       array( 2, -1 )
+               );
+               
+               foreach( $substr_params as $param_set ) {
+                       $old_param_set = $param_set;
+                       array_unshift( $param_set, $sampleUTF );
+                       
+                       $this->assertEquals(
+                               call_user_func_array( 'mb_substr', $param_set ),
+                               call_user_func_array( 'fallback_mb_substr', $param_set ),
+                               'Fallback mb_substr with params ' . implode( ', ', $old_param_set )
+                       );                      
+               }
+               
+               
+               //mb_strlen
+               $this->assertEquals(
+                       mb_strlen( $sampleUTF ),
+                       fallback_mb_strlen( $sampleUTF ),
+                       'Fallback mb_strlen'
+               );                      
+               
+               
+               //mb_str(r?)pos
+               $strpos_params = array(
+                       //array( 'ter' ),
+                       //array( 'Ö' ),
+                       //array( 'Ö', 3 ),
+                       //array( 'oat_', 100 ),
+                       //array( 'c', -10 ),
+                       //Broken for now
+               );
+               
+               foreach( $strpos_params as $param_set ) {
+                       $old_param_set = $param_set;
+                       array_unshift( $param_set, $sampleUTF );
+                       
+                       $this->assertEquals(
+                               call_user_func_array( 'mb_strpos', $param_set ),
+                               call_user_func_array( 'fallback_mb_strpos', $param_set ),
+                               'Fallback mb_strpos with params ' . implode( ', ', $old_param_set )
+                       );              
+                       
+                       $this->assertEquals(
+                               call_user_func_array( 'mb_strrpos', $param_set ),
+                               call_user_func_array( 'fallback_mb_strrpos', $param_set ),
+                               'Fallback mb_strrpos with params ' . implode( ', ', $old_param_set )
+                       );      
+               }
+               
+       }
 
        /* TODO: many more! */
 }