Add tests for class names in the api main and query module manager
authorumherirrender <umherirrender_de.wp@web.de>
Mon, 17 Nov 2014 19:08:10 +0000 (20:08 +0100)
committerLegoktm <legoktm.wikipedia@gmail.com>
Thu, 27 Nov 2014 05:24:48 +0000 (05:24 +0000)
This found wrong class names for api modules

Change-Id: If1125cd5fa4ed836fe15fc79480d78ebd899be4e

tests/phpunit/includes/api/ApiMainTest.php
tests/phpunit/includes/api/query/ApiQueryTest.php

index 4bf6deb..51d03ed 100644 (file)
@@ -61,4 +61,22 @@ class ApiMainTest extends ApiTestCase {
                }
        }
 
+       /**
+        * Test if all classes in the main module manager exists
+        */
+       public function testClassNamesInModuleManager() {
+               global $wgAutoloadLocalClasses;
+
+               $api = new ApiMain(
+                       new FauxRequest( array( 'action' => 'query', 'meta' => 'siteinfo' ) )
+               );
+               $modules = $api->getModuleManager()->getNamesWithClasses();
+               foreach( $modules as $name => $class ) {
+                       $this->assertArrayHasKey(
+                               $class,
+                               $wgAutoloadLocalClasses,
+                               'Class ' . $class . ' for api module ' . $name . ' not in autoloader (with exact case)'
+                       );
+               }
+       }
 }
index 200027d..3ab1334 100644 (file)
@@ -116,4 +116,24 @@ class ApiQueryTest extends ApiTestCase {
                        array( 'apiquerytestiw:foo', NS_MAIN, null, true ),
                );
        }
+
+       /**
+        * Test if all classes in the query module manager exists
+        */
+       public function testClassNamesInModuleManager() {
+               global $wgAutoloadLocalClasses;
+
+               $api = new ApiMain(
+                       new FauxRequest( array( 'action' => 'query', 'meta' => 'siteinfo' ) )
+               );
+               $queryApi = new ApiQuery( $api, 'query' );
+               $modules = $queryApi->getModuleManager()->getNamesWithClasses();
+               foreach( $modules as $name => $class ) {
+                       $this->assertArrayHasKey(
+                               $class,
+                               $wgAutoloadLocalClasses,
+                               'Class ' . $class . ' for api module ' . $name . ' not in autoloader (with exact case)'
+                       );
+               }
+       }
 }