Merge "Fixed dependencies for jquery.collapsibleTabs"
[lhc/web/wiklou.git] / tests / phpunit / includes / MessageTest.php
index 22d7363..22450dc 100644 (file)
@@ -1,14 +1,13 @@
 <?php
 
-class MessageTest extends PHPUnit_Framework_TestCase {
+class MessageTest extends MediaWikiLangTestCase {
+       protected function setUp() {
+               parent::setUp();
 
-       function setUp() {
-               global $wgLanguageCode, $wgLang, $wgContLang, $wgMessageCache;
-
-               $wgLanguageCode = 'en'; # For mainpage to be 'Main Page'
-               //Note that a Stub Object is not enough for this test
-               $wgContLang = $wgLang = Language::factory( $wgLanguageCode );
-               $wgMessageCache = new MessageCache( false, false, 3600 );
+               $this->setMwGlobals( array(
+                       'wgLang' => Language::factory( 'en' ),
+                       'wgForceUIMsgAsContentMsg' => array(),
+               ) );
        }
 
        function testExists() {
@@ -21,10 +20,12 @@ class MessageTest extends PHPUnit_Framework_TestCase {
        }
 
        function testKey() {
-               $this->assertType( 'Message', wfMessage( 'mainpage' ) );
-               $this->assertType( 'Message', wfMessage( 'i-dont-exist-evar' ) );
+               $this->assertInstanceOf( 'Message', wfMessage( 'mainpage' ) );
+               $this->assertInstanceOf( 'Message', wfMessage( 'i-dont-exist-evar' ) );
                $this->assertEquals( 'Main Page', wfMessage( 'mainpage' )->text() );
                $this->assertEquals( '&lt;i-dont-exist-evar&gt;', wfMessage( 'i-dont-exist-evar' )->text() );
+               $this->assertEquals( '<i-dont-exist-evar>', wfMessage( 'i-dont-exist-evar' )->plain() );
+               $this->assertEquals( '&lt;i-dont-exist-evar&gt;', wfMessage( 'i-dont-exist-evar' )->escaped() );
        }
 
        function testInLanguage() {
@@ -34,13 +35,29 @@ class MessageTest extends PHPUnit_Framework_TestCase {
                $this->assertEquals( 'Заглавная страница', wfMessage( 'mainpage' )->inLanguage( Language::factory( 'ru' ) )->text() );
        }
 
-       function testMessagePararms() {
+       function testMessageParams() {
                $this->assertEquals( 'Return to $1.', wfMessage( 'returnto' )->text() );
                $this->assertEquals( 'Return to $1.', wfMessage( 'returnto', array() )->text() );
                $this->assertEquals( 'You have foo (bar).', wfMessage( 'youhavenewmessages', 'foo', 'bar' )->text() );
                $this->assertEquals( 'You have foo (bar).', wfMessage( 'youhavenewmessages', array( 'foo', 'bar' ) )->text() );
        }
 
+       function testMessageParamSubstitution() {
+               $this->assertEquals( '(Заглавная страница)', wfMessage( 'parentheses', 'Заглавная страница' )->plain() );
+               $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['testInContentLanguage'] = 'mainpage';
+               $this->assertEquals( 'Accueil', wfMessage( 'mainpage' )->inContentLanguage()->plain(), 'ForceUIMsg enabled' );
+       }
+
        /**
         * @expectedException MWException
         */