3 class ResourceLoaderTest
extends PHPUnit_Framework_TestCase
{
5 protected static $resourceLoaderRegisterModulesHook;
10 * ResourceLoaderRegisterModules hook
12 public static function resourceLoaderRegisterModules( &$resourceLoader ) {
13 self
::$resourceLoaderRegisterModulesHook = true;
17 /* Provider Methods */
18 public function provideValidModules() {
20 array( 'TEST.validModule1', new ResourceLoaderTestModule() ),
27 * Ensures that the ResourceLoaderRegisterModules hook is called when a new ResourceLoader object is constructed
28 * @covers ResourceLoader::__construct
30 public function testCreatingNewResourceLoaderCallsRegistrationHook() {
31 self
::$resourceLoaderRegisterModulesHook = false;
32 $resourceLoader = new ResourceLoader();
33 $this->assertTrue( self
::$resourceLoaderRegisterModulesHook );
34 return $resourceLoader;
38 * @dataProvider provideValidModules
39 * @depends testCreatingNewResourceLoaderCallsRegistrationHook
40 * @covers ResourceLoader::register
41 * @covers ResourceLoader::getModule
43 public function testRegisteredValidModulesAreAccessible(
44 $name, ResourceLoaderModule
$module, ResourceLoader
$resourceLoader
46 $resourceLoader->register( $name, $module );
47 $this->assertEquals( $module, $resourceLoader->getModule( $name ) );
51 * Allthough ResourceLoader::register uses type hinting to prevent arbitrary information being passed through as a
52 * ResourceLoaderModule object, null can still get through.
54 * @depends testCreatingNewResourceLoaderCallsRegistrationHook
55 * @covers ResourceLoader::register
56 * @covers ResourceLoader::getModule
57 * @expectedException MWException
59 public function testRegisteringNullModuleThrowsAnException( ResourceLoader
$resourceLoader ) {
60 $this->markTestIncomplete( "Broken by r77011" );
61 $resourceLoader->register( 'TEST.nullModule', null );
67 class ResourceLoaderTestModule
extends ResourceLoaderModule
{ }
71 $wgHooks['ResourceLoaderRegisterModules'][] = 'ResourceLoaderTest::resourceLoaderRegisterModules';