]> scripts.mit.edu Git - autoinstallsdev/mediawiki.git/blobdiff - tests/phpunit/includes/api/PrefixUniquenessTest.php
MediaWiki 1.30.2
[autoinstallsdev/mediawiki.git] / tests / phpunit / includes / api / PrefixUniquenessTest.php
diff --git a/tests/phpunit/includes/api/PrefixUniquenessTest.php b/tests/phpunit/includes/api/PrefixUniquenessTest.php
new file mode 100644 (file)
index 0000000..d125a7d
--- /dev/null
@@ -0,0 +1,30 @@
+<?php
+
+/**
+ * Checks that all API query modules, core and extensions, have unique prefixes.
+ *
+ * @group API
+ */
+class PrefixUniquenessTest extends MediaWikiTestCase {
+
+       public function testPrefixes() {
+               $main = new ApiMain( new FauxRequest() );
+               $query = new ApiQuery( $main, 'foo', 'bar' );
+               $moduleManager = $query->getModuleManager();
+
+               $modules = $moduleManager->getNames();
+               $prefixes = [];
+
+               foreach ( $modules as $name ) {
+                       $module = $moduleManager->getModule( $name );
+                       $class = get_class( $module );
+
+                       $prefix = $module->getModulePrefix();
+                       if ( $prefix !== '' && isset( $prefixes[$prefix] ) ) {
+                               $this->fail( "Module prefix '{$prefix}' is shared between {$class} and {$prefixes[$prefix]}" );
+                       }
+                       $prefixes[$module->getModulePrefix()] = $class;
+               }
+               $this->assertTrue( true ); // dummy call to make this test non-incomplete
+       }
+}