Fix tests that don't check composer's autoloader
authorAleksey Bekh-Ivanov (WMDE) <aleksey.bekh-ivanov@wikimedia.de>
Wed, 21 Dec 2016 15:06:57 +0000 (16:06 +0100)
committerAleksey Bekh-Ivanov (WMDE) <aleksey.bekh-ivanov@wikimedia.de>
Thu, 22 Dec 2016 10:46:11 +0000 (10:46 +0000)
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
tests/phpunit/includes/api/query/ApiQueryTest.php

index c9a3428..71dafce 100644 (file)
@@ -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)'
                        );
                }
        }
index 9407edf..8026e54 100644 (file)
@@ -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)'
                        );
                }
        }