diff options
Diffstat (limited to 'tests/phpunit/ResourceLoaderTestCase.php')
-rw-r--r-- | tests/phpunit/ResourceLoaderTestCase.php | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/tests/phpunit/ResourceLoaderTestCase.php b/tests/phpunit/ResourceLoaderTestCase.php new file mode 100644 index 00000000..f5f302e0 --- /dev/null +++ b/tests/phpunit/ResourceLoaderTestCase.php @@ -0,0 +1,95 @@ +<?php + +abstract class ResourceLoaderTestCase extends MediaWikiTestCase { + protected static function getResourceLoaderContext( $lang = 'en' ) { + $resourceLoader = new ResourceLoader(); + $request = new FauxRequest( array( + 'lang' => $lang, + 'modules' => 'startup', + 'only' => 'scripts', + 'skin' => 'vector', + 'target' => 'test', + ) ); + return new ResourceLoaderContext( $resourceLoader, $request ); + } + + protected function setUp() { + parent::setUp(); + + ResourceLoader::clearCache(); + + $this->setMwGlobals( array( + // For ResourceLoader::inDebugMode since it doesn't have context + 'wgResourceLoaderDebug' => true, + + // Avoid influence from wgInvalidateCacheOnLocalSettingsChange + 'wgCacheEpoch' => '20140101000000', + + // For ResourceLoader::__construct() + 'wgResourceLoaderSources' => array(), + + // For wfScript() + 'wgScriptPath' => '/w', + 'wgScriptExtension' => '.php', + 'wgScript' => '/w/index.php', + 'wgLoadScript' => '/w/load.php', + ) ); + } +} + +/* Stubs */ + +class ResourceLoaderTestModule extends ResourceLoaderModule { + protected $dependencies = array(); + protected $group = null; + protected $source = 'local'; + protected $script = ''; + protected $styles = ''; + protected $skipFunction = null; + protected $isRaw = false; + protected $targets = array( 'test' ); + + public function __construct( $options = array() ) { + foreach ( $options as $key => $value ) { + $this->$key = $value; + } + } + + public function getScript( ResourceLoaderContext $context ) { + return $this->script; + } + + public function getStyles( ResourceLoaderContext $context ) { + return array( '' => $this->styles ); + } + + public function getDependencies() { + return $this->dependencies; + } + + public function getGroup() { + return $this->group; + } + + public function getSource() { + return $this->source; + } + + public function getSkipFunction() { + return $this->skipFunction; + } + + public function isRaw() { + return $this->isRaw; + } +} + +class ResourceLoaderFileModuleTestModule extends ResourceLoaderFileModule { +} + +class ResourceLoaderWikiModuleTestModule extends ResourceLoaderWikiModule { + // Override expected via PHPUnit mocks and stubs + protected function getPages( ResourceLoaderContext $context ) { + return array(); + } +} |