Make wfUrlEncode(null) reset the static. Two skipped tests work now.
authorPlatonides <platonides@users.mediawiki.org>
Sat, 23 Jul 2011 20:14:12 +0000 (20:14 +0000)
committerPlatonides <platonides@users.mediawiki.org>
Sat, 23 Jul 2011 20:14:12 +0000 (20:14 +0000)
includes/GlobalFunctions.php
tests/phpunit/includes/GlobalFunctions/wfUrlencodeTest.php

index 397c7ef..d6c433e 100644 (file)
@@ -294,6 +294,11 @@ function wfRandom() {
 */
 function wfUrlencode( $s ) {
        static $needle;
+       if ( is_null( $s ) ) {
+               $needle = null;
+               return;
+       }
+       
        if ( is_null( $needle ) ) {
                $needle = array( '%3B', '%40', '%24', '%21', '%2A', '%28', '%29', '%2C', '%2F' );
                if ( !isset( $_SERVER['SERVER_SOFTWARE'] ) || ( strpos( $_SERVER['SERVER_SOFTWARE'], 'Microsoft-IIS/7' ) === false ) ) {
index 97a7844..cd1a8db 100644 (file)
@@ -35,6 +35,7 @@ class wfUrlencodeTest extends MediaWikiTestCase {
                        : null
                ;
                $_SERVER['SERVER_SOFTWARE'] = $server;
+               wfUrlencode( null );
 
                // do the requested test
                $this->assertEquals(
@@ -49,6 +50,7 @@ class wfUrlencodeTest extends MediaWikiTestCase {
                } else {
                        $_SERVER['SERVER_SOFTWARE'] = $old;
                }
+               wfUrlencode( null );
        }
 
        /**
@@ -59,14 +61,6 @@ class wfUrlencodeTest extends MediaWikiTestCase {
                if( is_string( $expectations ) ) {
                        return $expectations;
                } elseif( is_array( $expectations ) ) {
-
-                       /**
-                        * FIXME FIXME FIXME FIXME
-                        * wfUrlencode use a static variable so we can not just
-                        * change the $GLOBALS server name :(
-                        */
-                       $this->markTestSkipped( 'FIXME: wfUrlencode() use a static, thus changing $GLOBALS[SERVER_SOFTWARE] is useless' );
-
                        if( !array_key_exists( $server, $expectations ) ) {
                                throw new MWException( __METHOD__ . " expectation does not have any value for server name $server. Check the provider array.\n" );
                        } else {