From 5df18797e4ab91cc9ccb5ca04922019368ef6c8c Mon Sep 17 00:00:00 2001 From: "Aleksey Bekh-Ivanov (WMDE)" Date: Wed, 21 Dec 2016 16:06:57 +0100 Subject: [PATCH] Fix tests that don't check composer's autoloader Tests were failing if class cannot be loaded using `\AutoLoader` but can be loaded by composer's autoloader. Change-Id: I005c9d99245f4733a9666c4bfe9e39baeaad3960 --- tests/phpunit/includes/api/ApiMainTest.php | 13 ++++--------- tests/phpunit/includes/api/query/ApiQueryTest.php | 13 ++++--------- 2 files changed, 8 insertions(+), 18 deletions(-) diff --git a/tests/phpunit/includes/api/ApiMainTest.php b/tests/phpunit/includes/api/ApiMainTest.php index c9a3428da1..71dafceb5a 100644 --- a/tests/phpunit/includes/api/ApiMainTest.php +++ b/tests/phpunit/includes/api/ApiMainTest.php @@ -85,20 +85,15 @@ class ApiMainTest extends ApiTestCase { * Test if all classes in the main 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' ] ) ); $modules = $api->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)' ); } } diff --git a/tests/phpunit/includes/api/query/ApiQueryTest.php b/tests/phpunit/includes/api/query/ApiQueryTest.php index 9407edfffa..8026e5444e 100644 --- a/tests/phpunit/includes/api/query/ApiQueryTest.php +++ b/tests/phpunit/includes/api/query/ApiQueryTest.php @@ -123,21 +123,16 @@ class ApiQueryTest extends ApiTestCase { * 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)' ); } } -- 2.20.1