}
/**
+ * 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();
];
$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->warning( 'fooBar!' );
$testCases['1StringWarning'] = [
$status,
- "<fooBar!>",
+ "⧼fooBar!⧽",
"(wrap-short: (fooBar!))",
- "<p><fooBar!>\n</p>",
+ "<p>⧼fooBar!⧽\n</p>",
"<p>(wrap-short: (fooBar!))\n</p>",
];
$status->warning( 'fooBar2!' );
$testCases['2StringWarnings'] = [
$status,
- "* <fooBar!>\n* <fooBar2!>\n",
+ "* ⧼fooBar!⧽\n* ⧼fooBar2!⧽\n",
"(wrap-long: * (fooBar!)\n* (fooBar2!)\n)",
- "<ul><li> <fooBar!></li>\n<li> <fooBar2!></li></ul>\n",
+ "<ul><li> ⧼fooBar!⧽</li>\n<li> ⧼fooBar2!⧽</li></ul>\n",
"<p>(wrap-long: * (fooBar!)\n</p>\n<ul><li> (fooBar2!)</li></ul>\n<p>)\n</p>",
];
$status->warning( new Message( 'fooBar!', [ 'foo', 'bar' ] ) );
$testCases['1MessageWarning'] = [
$status,
- "<fooBar!>",
+ "⧼fooBar!⧽",
"(wrap-short: (fooBar!: foo, bar))",
- "<p><fooBar!>\n</p>",
+ "<p>⧼fooBar!⧽\n</p>",
"<p>(wrap-short: (fooBar!: foo, bar))\n</p>",
];
$status->warning( new Message( 'fooBar2!' ) );
$testCases['2MessageWarnings'] = [
$status,
- "* <fooBar!>\n* <fooBar2!>\n",
+ "* ⧼fooBar!⧽\n* ⧼fooBar2!⧽\n",
"(wrap-long: * (fooBar!: foo, bar)\n* (fooBar2!)\n)",
- "<ul><li> <fooBar!></li>\n<li> <fooBar2!></li></ul>\n",
+ "<ul><li> ⧼fooBar!⧽</li>\n<li> ⧼fooBar2!⧽</li></ul>\n",
"<p>(wrap-long: * (fooBar!: foo, bar)\n</p>\n<ul><li> (fooBar2!)</li></ul>\n<p>)\n</p>",
];
];
$status = new Status();
- $status->ok = false;
+ $status->setOK( false );
$testCases['GoodButNoError'] = [
$status,
[ "Status::getMessage: Invalid result object: no error text but not OK\n" ],
];
}
+ /**
+ * @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,
+ [],
+ [],
+ ]
+ ];
+ }
+
}