Fix for bug 29274 - Message class ignores $wgForceUIMsgAsContentMsg
authorNiklas Laxström <nikerabbit@users.mediawiki.org>
Mon, 6 Jun 2011 17:55:19 +0000 (17:55 +0000)
committerNiklas Laxström <nikerabbit@users.mediawiki.org>
Mon, 6 Jun 2011 17:55:19 +0000 (17:55 +0000)
Also added tests, which pass

includes/Message.php
tests/phpunit/includes/MessageTest.php

index 5f6e9af..531712f 100644 (file)
@@ -225,9 +225,15 @@ class Message {
 
        /**
         * Request the message in the wiki's content language.
+        * @see $wgForceUIMsgAsContentMsg
         * @return Message: $this
         */
        public function inContentLanguage() {
+               global $wgForceUIMsgAsContentMsg;
+               if ( in_array( $this->key, (array)$wgForceUIMsgAsContentMsg ) ) {
+                       return $this;
+               }
+
                global $wgContLang;
                $this->interface = false;
                $this->language = $wgContLang;
index 02e03ed..e1d15dc 100644 (file)
@@ -37,7 +37,15 @@ class MessageTest extends MediaWikiLangTestCase {
                $this->assertEquals( '(Заглавная страница $1)', wfMessage( 'parentheses', 'Заглавная страница $1' )->plain() );
                $this->assertEquals( '(Заглавная страница)', wfMessage( 'parentheses' )->rawParams( 'Заглавная страница' )->plain() );
                $this->assertEquals( '(Заглавная страница $1)', wfMessage( 'parentheses' )->rawParams( 'Заглавная страница $1' )->plain() );
+       }
+
+       function testInContentLanguage() {
+               global $wgLang, $wgForceUIMsgAsContentMsg;
+               $wgLang = Language::factory( 'fr' );
 
+               $this->assertEquals( 'Main Page', wfMessage( 'mainpage' )->inContentLanguage()->plain(), "ForceUIMsg disabled" );
+               $wgForceUIMsgAsContentMsg[] = 'mainpage';
+               $this->assertEquals( 'Accueil', wfMessage( 'mainpage' )->inContentLanguage()->plain(), 'ForceUIMsg enabled' );
        }
 
        /**