]> scripts.mit.edu Git - autoinstallsdev/mediawiki.git/blob - tests/phpunit/includes/api/PrefixUniquenessTest.php
MediaWiki 1.30.2-scripts
[autoinstallsdev/mediawiki.git] / tests / phpunit / includes / api / PrefixUniquenessTest.php
1 <?php
2
3 /**
4  * Checks that all API query modules, core and extensions, have unique prefixes.
5  *
6  * @group API
7  */
8 class PrefixUniquenessTest extends MediaWikiTestCase {
9
10         public function testPrefixes() {
11                 $main = new ApiMain( new FauxRequest() );
12                 $query = new ApiQuery( $main, 'foo', 'bar' );
13                 $moduleManager = $query->getModuleManager();
14
15                 $modules = $moduleManager->getNames();
16                 $prefixes = [];
17
18                 foreach ( $modules as $name ) {
19                         $module = $moduleManager->getModule( $name );
20                         $class = get_class( $module );
21
22                         $prefix = $module->getModulePrefix();
23                         if ( $prefix !== '' && isset( $prefixes[$prefix] ) ) {
24                                 $this->fail( "Module prefix '{$prefix}' is shared between {$class} and {$prefixes[$prefix]}" );
25                         }
26                         $prefixes[$module->getModulePrefix()] = $class;
27                 }
28                 $this->assertTrue( true ); // dummy call to make this test non-incomplete
29         }
30 }