API warnings and error messages are currently hard-coded English strings. This patch changes that. With a few exceptions, this patch should be compatible with non-updated extensions: * The change to ApiBase::$messageMap will blow up anything trying to mess with it. * The changes to the 'ApiCheckCanExecute' hook will cause a wrong (probably unparsed) error message to be emitted for extensions not already using an ApiMessage. Unless they're currently broken like Wikibase. Bug: T37074 Bug: T47843 Depends-On: Ia2b66b57cd4eaddc30b3ffdd7b97d6ca3e02d898 Depends-On: I2e1bb975bb0045476c03ebe6cdec00259bae22ec Depends-On: I53987bf87c48f6c00deec17a8e957d24fcc3eaa6 Depends-On: Ibf93a459eb62d30f7c70d20e91ec9faeb80d10ed Depends-On: I3cf889811f44a15935e454dd42f081164d4a098c Depends-On: Ieae527de86735ddcba34724730e8730fb277b99b Depends-On: I535344c29d51521147c2a26c341dae38cec3e931 Change-Id: Iae0e2ce3bd42dd4776a9779664086119ac188412
33 lines
746 B
PHP
33 lines
746 B
PHP
<?php
|
|
|
|
/**
|
|
* @group API
|
|
* @group Database
|
|
* @group medium
|
|
*
|
|
* @covers ApiParse
|
|
*/
|
|
class ApiParseTest extends ApiTestCase {
|
|
|
|
protected function setUp() {
|
|
parent::setUp();
|
|
$this->doLogin();
|
|
}
|
|
|
|
public function testParseNonexistentPage() {
|
|
$somePage = mt_rand();
|
|
|
|
try {
|
|
$this->doApiRequest( [
|
|
'action' => 'parse',
|
|
'page' => $somePage ] );
|
|
|
|
$this->fail( "API did not return an error when parsing a nonexistent page" );
|
|
} catch ( ApiUsageException $ex ) {
|
|
$this->assertTrue( ApiTestCase::apiExceptionHasCode( $ex, 'missingtitle' ),
|
|
"Parse request for nonexistent page must give 'missingtitle' error: "
|
|
. var_export( self::getErrorFormatter()->arrayFromStatus( $ex->getStatusValue() ), true )
|
|
);
|
|
}
|
|
}
|
|
}
|