Test that verifies uniqueness of query module prefixes
authorMax Semenik <maxsem@users.mediawiki.org>
Fri, 24 Feb 2012 18:49:48 +0000 (18:49 +0000)
committerMax Semenik <maxsem@users.mediawiki.org>
Fri, 24 Feb 2012 18:49:48 +0000 (18:49 +0000)
tests/phpunit/includes/api/PrefixUniquenessTest.php [new file with mode: 0644]

diff --git a/tests/phpunit/includes/api/PrefixUniquenessTest.php b/tests/phpunit/includes/api/PrefixUniquenessTest.php
new file mode 100644 (file)
index 0000000..69b01ea
--- /dev/null
@@ -0,0 +1,24 @@
+<?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' );
+               $modules = $query->getModules();
+               $prefixes = array();
+
+               foreach ( $modules as $name => $class ) {
+                       $module = new $class( $main, $name );
+                       $prefix = $module->getModulePrefix();
+                       if ( 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
+       }
+}