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' ) );
}
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();
$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();
$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;
}
$this->assertEquals( $error, $errors[0]['message'] );
}
+ /**
+ * @covers Status::__wakeup
+ */
+ public function testWakeUpSanitizesCallback() {
+ $status = new Status();
+ $status->cleanCallback = function( $value ) {
+ return '-' . $value . '-';
+ };
+ $status->__wakeup();
+ $this->assertEquals( false, $status->cleanCallback );
+ }
+
+ /**
+ * @dataProvider provideNonObjectMessages
+ * @covers Status::getStatusArray
+ */
+ public function testGetStatusArrayWithNonObjectMessages( $nonObjMsg ) {
+ $status = new Status();
+ if ( !array_key_exists( 1, $nonObjMsg ) ) {
+ $status->warning( $nonObjMsg[0] );
+ } else {
+ $status->warning( $nonObjMsg[0], $nonObjMsg[1] );
+ }
+
+ $array = $status->getWarningsArray(); // We use getWarningsArray to access getStatusArray
+
+ $this->assertEquals( 1, count( $array ) );
+ $this->assertEquals( $nonObjMsg, $array[0] );
+ }
+
+ public static function provideNonObjectMessages() {
+ return array(
+ array( array( 'ImaString', array( 'param1' => 'value1' ) ) ),
+ array( array( 'ImaString' ) ),
+ );
+ }
+
}