(bug 1495) Include the site language in the fallback list
[lhc/web/wiklou.git] / tests / phpunit / includes / cache / MessageCacheTest.php
index 89021dd..3b3e4a6 100644 (file)
@@ -8,19 +8,44 @@ class MessageCacheTest extends MediaWikiLangTestCase {
 
        protected function setUp() {
                parent::setUp();
+               $this->configureLanguages();
                MessageCache::singleton()->enable();
        }
 
+       /**
+        * Helper function -- setup site language for testing
+        */
+       protected function configureLanguages() {
+               // for the test, we need the content language to be anything but English,
+               // let's choose e.g. German (de)
+               $langCode = 'de';
+               $langObj = Language::factory( $langCode );
+
+               $this->setMwGlobals( array(
+                       'wgLanguageCode' => $langCode,
+                       'wgLang' => $langObj,
+                       'wgContLang' => $langObj,
+               ) );
+       }
+
        function addDBData() {
-               // Set up messages and fallbacks ab -> ru -> en
+               $this->configureLanguages();
+
+               // Set up messages and fallbacks ab -> ru -> de -> en
                $this->makePage( 'FallbackLanguageTest-Full', 'ab' );
                $this->makePage( 'FallbackLanguageTest-Full', 'ru' );
+               $this->makePage( 'FallbackLanguageTest-Full', 'de' );
                $this->makePage( 'FallbackLanguageTest-Full', 'en' );
 
                // Fallbacks where ab does not exist
                $this->makePage( 'FallbackLanguageTest-Partial', 'ru' );
+               $this->makePage( 'FallbackLanguageTest-Partial', 'de' );
                $this->makePage( 'FallbackLanguageTest-Partial', 'en' );
 
+               // Fallback to the content language
+               $this->makePage( 'FallbackLanguageTest-ContLang', 'de' );
+               $this->makePage( 'FallbackLanguageTest-ContLang', 'en' );
+
                // Fallback to english
                $this->makePage( 'FallbackLanguageTest-English', 'en' );
 
@@ -57,10 +82,11 @@ class MessageCacheTest extends MediaWikiLangTestCase {
                $this->assertEquals( $expectedContent, $result, "Message fallback failed." );
        }
 
-       function provideMessagesForFallback() {
+       public static function provideMessagesForFallback() {
                return array(
                        array( 'FallbackLanguageTest-Full', 'ab', 'ab' ),
                        array( 'FallbackLanguageTest-Partial', 'ab', 'ru' ),
+                       array( 'FallbackLanguageTest-ContLang', 'ab', 'de' ),
                        array( 'FallbackLanguageTest-English', 'ab', 'en' ),
                        array( 'FallbackLanguageTest-None', 'ab', false ),
                );
@@ -77,7 +103,7 @@ class MessageCacheTest extends MediaWikiLangTestCase {
                $this->assertEquals( $expectedContent, $result, "Full key message fallback failed." );
        }
 
-       function provideMessagesForFullKeys() {
+       public static function provideMessagesForFullKeys() {
                return array(
                        array( 'MessageCacheTest-FullKeyTest/ru', 'ru', 'ru' ),
                        array( 'MessageCacheTest-FullKeyTest/ru', 'ab', 'ru' ),