*/
class StatusTest extends MediaWikiLangTestCase {
- public function testCanConstruct() {
- new Status();
- $this->assertTrue( true );
- }
-
/**
* @dataProvider provideValues
* @covers Status::newGood
* @covers Status::newFatal
*/
public function testNewFatalWithMessage() {
- $message = $this->getMockBuilder( 'Message' )
+ $message = $this->getMockBuilder( Message::class )
->disableOriginalConstructor()
->getMock();
}
/**
+ * Test 'ok' and 'errors' getters.
*
+ * @covers Status::__get
*/
- public function testOkAndErrors() {
+ public function testOkAndErrorsGetters() {
$status = Status::newGood( 'foo' );
$this->assertTrue( $status->ok );
$status = Status::newFatal( 'foo', 1, 2 );
);
}
+ /**
+ * Test 'ok' setter.
+ *
+ * @covers Status::__set
+ */
+ public function testOkSetter() {
+ $status = new Status();
+ $status->ok = false;
+ $this->assertFalse( $status->isOK() );
+ $status->ok = true;
+ $this->assertTrue( $status->isOK() );
+ }
+
/**
* @dataProvider provideSetResult
* @covers Status::setResult
/**
* @dataProvider provideIsOk
- * @covers Status::isOk
+ * @covers Status::setOK
+ * @covers Status::isOK
*/
public function testIsOk( $ok ) {
$status = new Status();
- $status->ok = $ok;
+ $status->setOK( $ok );
$this->assertEquals( $ok, $status->isOK() );
}
*/
public function testIsGood( $ok, $errors, $expected ) {
$status = new Status();
- $status->ok = $ok;
+ $status->setOK( $ok );
foreach ( $errors as $error ) {
$status->warning( $error );
}
* @covers Status::error
* @covers Status::getErrorsArray
* @covers Status::getStatusArray
+ * @covers Status::getErrors
*/
public function testErrorWithMessage( $mockDetails ) {
$status = new Status();
}
protected function getMockMessage( $key = 'key', $params = [] ) {
- $message = $this->getMockBuilder( 'Message' )
+ $message = $this->getMockBuilder( Message::class )
->disableOriginalConstructor()
->getMock();
$message->expects( $this->atLeastOnce() )
* @covers Status::cleanParams
*/
public function testCleanParams( $cleanCallback, $params, $expected ) {
- $method = new ReflectionMethod( 'Status', 'cleanParams' );
+ $method = new ReflectionMethod( Status::class, 'cleanParams' );
$method->setAccessible( true );
$status = new Status();
$status->cleanCallback = $cleanCallback;
];
$status = new Status();
- $status->ok = false;
+ $status->setOK( false );
$testCases['GoodButNoError'] = [
$status,
"Internal error: Status::getWikiText: Invalid result object: no error text but not OK\n",
Status $status, $expectedParams = [], $expectedKey, $expectedWrapper
) {
$message = $status->getMessage( null, null, 'qqx' );
- $this->assertInstanceOf( 'Message', $message );
+ $this->assertInstanceOf( Message::class, $message );
$this->assertEquals( $expectedParams, self::sanitizedMessageParams( $message ),
'Message::getParams' );
$this->assertEquals( $expectedKey, $message->getKey(), 'Message::getKey' );
$message = $status->getMessage( 'wrapper-short', 'wrapper-long' );
- $this->assertInstanceOf( 'Message', $message );
+ $this->assertInstanceOf( Message::class, $message );
$this->assertEquals( $expectedWrapper, $message->getKey(), 'Message::getKey with wrappers' );
$this->assertCount( 1, $message->getParams(), 'Message::getParams with wrappers' );
$message = $status->getMessage( 'wrapper' );
- $this->assertInstanceOf( 'Message', $message );
+ $this->assertInstanceOf( Message::class, $message );
$this->assertEquals( 'wrapper', $message->getKey(), 'Message::getKey with wrappers' );
$this->assertCount( 1, $message->getParams(), 'Message::getParams with wrappers' );
$message = $status->getMessage( false, 'wrapper' );
- $this->assertInstanceOf( 'Message', $message );
+ $this->assertInstanceOf( Message::class, $message );
$this->assertEquals( 'wrapper', $message->getKey(), 'Message::getKey with wrappers' );
$this->assertCount( 1, $message->getParams(), 'Message::getParams with wrappers' );
}
];
$status = new Status();
- $status->ok = false;
+ $status->setOK( false );
$testCases['GoodButNoError'] = [
$status,
[ "Status::getMessage: Invalid result object: no error text but not OK\n" ],
* @covers Status::getErrorMessage
*/
public function testGetErrorMessage() {
- $method = new ReflectionMethod( 'Status', 'getErrorMessage' );
+ $method = new ReflectionMethod( Status::class, 'getErrorMessage' );
$method->setAccessible( true );
$status = new Status();
$key = 'foo';
/** @var Message $message */
$message = $method->invoke( $status, array_merge( [ $key ], $params ) );
- $this->assertInstanceOf( 'Message', $message );
+ $this->assertInstanceOf( Message::class, $message );
$this->assertEquals( $key, $message->getKey() );
$this->assertEquals( $params, $message->getParams() );
}
* @covers Status::getErrorMessageArray
*/
public function testGetErrorMessageArray() {
- $method = new ReflectionMethod( 'Status', 'getErrorMessageArray' );
+ $method = new ReflectionMethod( Status::class, 'getErrorMessageArray' );
$method->setAccessible( true );
$status = new Status();
$key = 'foo';
$this->assertInternalType( 'array', $messageArray );
$this->assertCount( 2, $messageArray );
foreach ( $messageArray as $message ) {
- $this->assertInstanceOf( 'Message', $message );
+ $this->assertInstanceOf( Message::class, $message );
$this->assertEquals( $key, $message->getKey() );
$this->assertEquals( $params, $message->getParams() );
}
];
}
+ /**
+ * @dataProvider provideErrorsWarningsOnly
+ * @covers Status::splitByErrorType
+ * @covers StatusValue::splitByErrorType
+ */
+ public function testGetErrorsWarningsOnlyStatus( $errorText, $warningText, $type, $errorResult,
+ $warningResult
+ ) {
+ $status = Status::newGood();
+ if ( $errorText ) {
+ $status->fatal( $errorText );
+ }
+ if ( $warningText ) {
+ $status->warning( $warningText );
+ }
+ $testStatus = $status->splitByErrorType()[$type];
+ $this->assertEquals( $errorResult, $testStatus->getErrorsByType( 'error' ) );
+ $this->assertEquals( $warningResult, $testStatus->getErrorsByType( 'warning' ) );
+ }
+
+ public static function provideErrorsWarningsOnly() {
+ return [
+ [
+ 'Just an error',
+ 'Just a warning',
+ 0,
+ [
+ 0 => [
+ 'type' => 'error',
+ 'message' => 'Just an error',
+ 'params' => []
+ ],
+ ],
+ [],
+ ], [
+ 'Just an error',
+ 'Just a warning',
+ 1,
+ [],
+ [
+ 0 => [
+ 'type' => 'warning',
+ 'message' => 'Just a warning',
+ 'params' => []
+ ],
+ ],
+ ], [
+ null,
+ null,
+ 1,
+ [],
+ [],
+ ], [
+ null,
+ null,
+ 0,
+ [],
+ [],
+ ]
+ ];
+ }
+
}