http://www.mediawiki.org/wiki/Special:Code/MediaWiki/74012
Revision: 74012
Author: tparscal
Date: 2010-09-30 06:54:23 +0000 (Thu, 30 Sep 2010)
Log Message:
-----------
Added some content for basic unit tests for ResourceLoader class.
Modified Paths:
--------------
trunk/phase3/maintenance/tests/phpunit/includes/ResourceLoaderTest.php
Modified: trunk/phase3/maintenance/tests/phpunit/includes/ResourceLoaderTest.php
===================================================================
--- trunk/phase3/maintenance/tests/phpunit/includes/ResourceLoaderTest.php
2010-09-30 02:30:06 UTC (rev 74011)
+++ trunk/phase3/maintenance/tests/phpunit/includes/ResourceLoaderTest.php
2010-09-30 06:54:23 UTC (rev 74012)
@@ -2,15 +2,70 @@
class ResourceLoaderTest extends PHPUnit_Framework_TestCase {
+ protected static $resourceLoaderRegisterModulesHook;
+
+ /* Hook Methods */
+
+ /**
+ * ResourceLoaderRegisterModules hook
+ */
+ public static function resourceLoaderRegisterModules( &$resourceLoader
) {
+ self::$resourceLoaderRegisterModulesHook = true;
+ return true;
+ }
+
/* Provider Methods */
- public function provide() {
-
+ public function provideValidModules() {
+ return array(
+ array( 'TEST.validModule1', new
ResourceLoaderTestModule() ),
+ );
}
/* Test Methods */
+
+ /**
+ * Ensures that the ResourceLoaderRegisterModules hook is called when a
new ResourceLoader object is constructed
+ * @covers ResourceLoader::__construct
+ */
+ public function testCreatingNewResourceLoaderCallsRegistrationHook() {
+ self::$resourceLoaderRegisterModulesHook = false;
+ $resourceLoader = new ResourceLoader();
+ $this->assertTrue( self::$resourceLoaderRegisterModulesHook );
+ return $resourceLoader;
+ }
- public function test() {
-
+ /**
+ * @dataProvider provideValidModules
+ * @depends testCreatingNewResourceLoaderCallsRegistrationHook
+ * @covers ResourceLoader::register
+ * @covers ResourceLoader::getModule
+ */
+ public function testRegisteredValidModulesAreAccessible(
+ $name, ResourceLoaderModule $module, ResourceLoader
$resourceLoader
+ ) {
+ $resourceLoader->register( $name, $module );
+ $this->assertEquals( $module, $resourceLoader->getModule( $name
) );
}
+
+ /**
+ * Allthough ResourceLoader::register uses type hinting to prevent
arbitrary information being passed through as a
+ * ResourceLoaderModule object, null can still get through.
+ *
+ * @depends testCreatingNewResourceLoaderCallsRegistrationHook
+ * @covers ResourceLoader::register
+ * @covers ResourceLoader::getModule
+ * @expectedException MWException
+ */
+ public function testRegisteringNullModuleThrowsAnException(
ResourceLoader $resourceLoader ) {
+ $resourceLoader->register( 'TEST.nullModule', null );
+ }
}
+
+/* Stubs */
+
+class ResourceLoaderTestModule extends ResourceLoaderModule { }
+
+/* Hooks */
+
+$wgHooks['ResourceLoaderRegisterModules'][] =
'ResourceLoaderTest::resourceLoaderRegisterModules';
\ No newline at end of file
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs