$this->assertArrayHasKey( 'invalid', $data[0]['query']['pages'][-1] );
}
+ public function testTitlesWithWhitespaces() {
+ $data = $this->doApiRequest( [
+ 'action' => 'query',
+ 'titles' => ' '
+ ] );
+
+ $this->assertArrayHasKey( 'query', $data[0] );
+ $this->assertArrayHasKey( 'pages', $data[0]['query'] );
+ $this->assertEquals( 1, count( $data[0]['query']['pages'] ) );
+ $this->assertArrayHasKey( -1, $data[0]['query']['pages'] );
+ $this->assertArrayHasKey( 'invalid', $data[0]['query']['pages'][-1] );
+ }
+
/**
* Test the ApiBase::titlePartToKey function
*
$exceptionCaught = false;
try {
$this->assertEquals( $expected, $api->titlePartToKey( $titlePart, $namespace ) );
- } catch ( UsageException $e ) {
+ } catch ( ApiUsageException $e ) {
$exceptionCaught = true;
}
$this->assertEquals( $expectException, $exceptionCaught,
- 'UsageException thrown by titlePartToKey' );
+ 'ApiUsageException thrown by titlePartToKey' );
}
function provideTestTitlePartToKey() {
* Test if all classes in the query module manager exists
*/
public function testClassNamesInModuleManager() {
- global $wgAutoloadLocalClasses, $wgAutoloadClasses;
-
- // wgAutoloadLocalClasses has precedence, just like in includes/AutoLoader.php
- $classes = $wgAutoloadLocalClasses + $wgAutoloadClasses;
-
$api = new ApiMain(
new FauxRequest( [ 'action' => 'query', 'meta' => 'siteinfo' ] )
);
$queryApi = new ApiQuery( $api, 'query' );
$modules = $queryApi->getModuleManager()->getNamesWithClasses();
+
foreach ( $modules as $name => $class ) {
- $this->assertArrayHasKey(
- $class,
- $classes,
- 'Class ' . $class . ' for api module ' . $name . ' not in autoloader (with exact case)'
+ $this->assertTrue(
+ class_exists( $class ),
+ 'Class ' . $class . ' for api module ' . $name . ' does not exist (with exact case)'
);
}
}