More documentation!
[lhc/web/wiklou.git] / tests / phpunit / includes / MessageTest.php
index 22d7363..295b6d7 100644 (file)
@@ -1,15 +1,6 @@
 <?php
 
-class MessageTest extends PHPUnit_Framework_TestCase {
-
-       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 );
-       }
+class MessageTest extends MediaWikiLangTestCase {
 
        function testExists() {
                $this->assertTrue( wfMessage( 'mainpage' )->exists() );
@@ -21,8 +12,8 @@ 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() );
        }
@@ -34,13 +25,34 @@ 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;
+               $oldLang = $wgLang;
+               $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' );
+
+               /* Restore globals */
+               $wgLang = $oldLang;
+               unset( $wgForceUIMsgAsContentMsg['testInContentLanguage'] );
+       }
+
        /**
         * @expectedException MWException
         */