follow up r60961 just test for truth rather than using isset. Found a bug in the...
authorMark A. Hershberger <mah@users.mediawiki.org>
Tue, 12 Jan 2010 18:35:45 +0000 (18:35 +0000)
committerMark A. Hershberger <mah@users.mediawiki.org>
Tue, 12 Jan 2010 18:35:45 +0000 (18:35 +0000)
languages/LanguageConverter.php
tests/LanguageConverterTest.php

index 6cb6116..8666495 100644 (file)
@@ -124,7 +124,7 @@ class LanguageConverter {
         * @public
         */
        function getVariantFallbacks( $v ) {
-               if ( isset( $this->mVariantFallbacks[$v] ) ) {
+               if ( array_key_exists( $v, $this->mVariantFallbacks ) ) {
                        return $this->mVariantFallbacks[$v];
                }
                return $this->mMainLanguageCode;
@@ -142,15 +142,15 @@ class LanguageConverter {
 
                $req = $this->getURLVariant();
 
-               if ( $fromUser && !isset( $req ) ) {
+               if ( $fromUser && !$req ) {
                        $req = $this->getUserVariant();
                }
 
-               if ( $fromHeader && !isset( $req ) ) {
+               if ( $fromHeader && !$req ) {
                        $req = $this->getHeaderVariant();
                }
 
-               if ( $wgDefaultLanguageVariant && !isset( $req ) ) {
+               if ( $wgDefaultLanguageVariant && !$req ) {
                        $req = $this->validateVariant( $wgDefaultLanguageVariant );
                }
 
@@ -158,7 +158,7 @@ class LanguageConverter {
                // not memoized (i.e. there return value is not cached) since
                // new information might appear during processing after this
                // is first called.
-               if ( isset( $req ) ) {
+               if ( $req ) {
                        return $req;
                }
                return $this->mMainLanguageCode;
@@ -170,7 +170,7 @@ class LanguageConverter {
         * @returns mixed returns the variant if it is valid, null otherwise
         */
        function validateVariant( $v = null ) {
-               if ( isset( $v ) && in_array( $v, $this->mVariants ) ) {
+               if ( $v !== null && in_array( $v, $this->mVariants ) ) {
                        return $v;
                }
                return null;
@@ -192,7 +192,7 @@ class LanguageConverter {
                // see if the preference is set in the request
                $ret = $wgRequest->getText( 'variant' );
 
-               if ( !isset( $ret ) ) {
+               if ( $ret ) {
                        $ret = $wgRequest->getVal( 'uselang' );
                }
 
@@ -246,7 +246,7 @@ class LanguageConverter {
                // http header.
 
                $acceptLanguage = $wgRequest->getHeader( 'Accept-Language' );
-               if ( !$acceptLanguage ) { // not using isset because getHeader returns false
+               if ( !$acceptLanguage ) {
                        return null;
                }
 
@@ -269,7 +269,7 @@ class LanguageConverter {
                        // strip whitespace
                        $language = trim( $language );
                        $this->mHeaderVariant = $this->validateVariant( $language );
-                       if ( isset( $this->mHeaderVariant ) ) {
+                       if ( $this->mHeaderVariant ) {
                                break;
                        }
 
@@ -286,12 +286,12 @@ class LanguageConverter {
                        }
                }
 
-               if ( !isset( $this->mHeaderVariant ) ) {
+               if ( !$this->mHeaderVariant ) {
                        // process fallback languages now
                        $fallback_languages = array_unique( $fallback_languages );
                        foreach ( $fallback_languages as $language ) {
                                $this->mHeaderVariant = $this->validateVariant( $language );
-                               if ( isset( $this->mHeaderVariant ) ) {
+                               if ( $this->mHeaderVariant ) {
                                        break;
                                }
                        }
@@ -710,7 +710,7 @@ class LanguageConverter {
                        wfProfileOut( __METHOD__ . '-cache' );
                }
                if ( !$this->mTables
-                        || !isset( $this->mTables[self::CACHE_VERSION_KEY] ) ) {
+                        || !array_key_exists( self::CACHE_VERSION_KEY, $this->mTables ) ) {
                        wfProfileIn( __METHOD__ . '-recache' );
                        // not in cache, or we need a fresh reload.
                        // we will first load the default tables
index fe6dff8..480de72 100644 (file)
@@ -81,10 +81,11 @@ class LanguageConverterTest extends PHPUnit_Framework_TestCase {
                $this->assertEquals('tg-latn', $this->lc->getPreferredVariant(true,  true));
 
                $wgRequest->setVal('variant', 'tg');
+               $wgUser->setOption('variant', 'tg-latn');
                $this->lc = new TestConverter( $this->lang, 'tg',
                                                                           array( 'tg', 'tg-latn' ) );
-               $this->assertEquals('tg', $this->lc->getPreferredVariant(true,  false));
-               $this->assertEquals('tg', $this->lc->getPreferredVariant(true,  true));
+               $this->assertEquals('tg-latn', $this->lc->getPreferredVariant(true,  false));
+               $this->assertEquals('tg-latn', $this->lc->getPreferredVariant(true,  true));
 
                $wgRequest->setVal('variant', null);
                $wgDefaultLanguageVariant = 'tg-latn';