diff options
Diffstat (limited to 'tests/phpunit/includes/api/PrefixUniquenessTest.php')
-rw-r--r-- | tests/phpunit/includes/api/PrefixUniquenessTest.php | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/tests/phpunit/includes/api/PrefixUniquenessTest.php b/tests/phpunit/includes/api/PrefixUniquenessTest.php new file mode 100644 index 00000000..13da33c7 --- /dev/null +++ b/tests/phpunit/includes/api/PrefixUniquenessTest.php @@ -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 = array(); + + foreach ( $modules as $name ) { + $module = $moduleManager->getModule( $name ); + $class = get_class( $module ); + + $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 + } +} |