Allow Status::hasMessage to work with Message objects.
[lhc/web/wiklou.git] / tests / phpunit / includes / StatusTest.php
index 209b54c..8281073 100644 (file)
@@ -259,7 +259,10 @@ class StatusTest extends MediaWikiLangTestCase {
        public function testHasMessage() {
                $status = new Status();
                $status->fatal( 'bad' );
+               $status->fatal( wfMessage( 'bad-msg' ) );
                $this->assertTrue( $status->hasMessage( 'bad' ) );
+               $this->assertTrue( $status->hasMessage( 'bad-msg' ) );
+               $this->assertTrue( $status->hasMessage( wfMessage( 'bad-msg' ) ) );
                $this->assertFalse( $status->hasMessage( 'good' ) );
        }
 
@@ -376,14 +379,15 @@ class StatusTest extends MediaWikiLangTestCase {
        public function testGetMessage( Status $status, $expectedParams = array(), $expectedKey ) {
                $message = $status->getMessage();
                $this->assertInstanceOf( 'Message', $message );
-               $this->assertEquals( $expectedParams, $message->getParams() );
-               $this->assertEquals( $expectedKey, $message->getKey() );
+               $this->assertEquals( $expectedParams, $message->getParams(), 'Message::getParams' );
+               $this->assertEquals( $expectedKey, $message->getKey(), 'Message::getKey' );
        }
 
        /**
         * @return array of arrays with values;
         *    0 => status object
-        *    1 => expected Message Params (with no context)
+        *    1 => expected Message parameters (with no context)
+        *    2 => expected Message key
         */
        public static function provideGetMessage() {
                $testCases = array();
@@ -407,17 +411,21 @@ class StatusTest extends MediaWikiLangTestCase {
                $testCases[ '1StringWarning' ] = array(
                        $status,
                        array(),
-                       "fooBar!"
+                       'fooBar!'
                );
 
-               //NOTE: this seems to return a string instead of a Message object...
+               // FIXME: Assertion tries to compare a StubUserLang with a Language object, because
+               // "data providers are executed before both the call to the setUpBeforeClass static method
+               // and the first call to the setUp method. Because of that you can't access any variables
+               // you create there from within a data provider."
+               // http://phpunit.de/manual/3.7/en/writing-tests-for-phpunit.html
 //             $status = new Status();
 //             $status->warning( 'fooBar!' );
 //             $status->warning( 'fooBar2!' );
 //             $testCases[ '2StringWarnings' ] = array(
 //                     $status,
-//                     array(),
-//                     ''
+//                     array( new Message( 'fooBar!' ), new Message( 'fooBar2!' ) ),
+//                     "* \$1\n* \$2"
 //             );
 
                $status = new Status();
@@ -425,18 +433,17 @@ class StatusTest extends MediaWikiLangTestCase {
                $testCases[ '1MessageWarning' ] = array(
                        $status,
                        array( 'foo', 'bar' ),
-                       "fooBar!",
+                       'fooBar!'
                );
 
-               //NOTE: this seems to return a string instead of a Message object...
-//             $status = new Status();
-//             $status->warning( new Message( 'fooBar!', array( 'foo', 'bar' ) ) );
-//             $status->warning( new Message( 'fooBar2!' ) );
-//             $testCases[ '2MessageWarnings' ] = array(
-//                     $status,
-//                     array(),
-//                     "",
-//             );
+               $status = new Status();
+               $status->warning( new Message( 'fooBar!', array( 'foo', 'bar' ) ) );
+               $status->warning( new Message( 'fooBar2!' ) );
+               $testCases[ '2MessageWarnings' ] = array(
+                       $status,
+                       array( new Message( 'fooBar!', array( 'foo', 'bar' ) ), new Message( 'fooBar2!' ) ),
+                       "* \$1\n* \$2"
+               );
 
                return $testCases;
        }
@@ -537,7 +544,7 @@ class StatusTest extends MediaWikiLangTestCase {
         */
        public function testGetStatusArrayWithNonObjectMessages( $nonObjMsg ) {
                $status = new Status();
-               if( !array_key_exists( 1, $nonObjMsg ) ) {
+               if ( !array_key_exists( 1, $nonObjMsg ) ) {
                        $status->warning( $nonObjMsg[0] );
                } else {
                        $status->warning( $nonObjMsg[0], $nonObjMsg[1] );