e8ca2a3042fcca5399a634c7c5ad2c76ed8a76fe
3 class ResourceLoaderModuleTest
extends ResourceLoaderTestCase
{
6 * @covers ResourceLoaderModule::getVersionHash
8 public function testGetVersionHash() {
9 $context = $this->getResourceLoaderContext();
12 'scripts' => array( 'foo.js', 'bar.js' ),
13 'dependencies' => array( 'jquery', 'mediawiki' ),
14 'messages' => array( 'hello', 'world' ),
17 $module = new ResourceLoaderFileModule( $baseParams );
18 $version = json_encode( $module->getVersionHash( $context ) );
21 $module = new ResourceLoaderFileModule( $baseParams );
24 json_encode( $module->getVersionHash( $context ) ),
25 'Instance is insignificant'
28 // Re-order dependencies
29 $module = new ResourceLoaderFileModule( array(
30 'dependencies' => array( 'mediawiki', 'jquery' ),
34 json_encode( $module->getVersionHash( $context ) ),
35 'Order of dependencies is insignificant'
39 $module = new ResourceLoaderFileModule( array(
40 'messages' => array( 'world', 'hello' ),
44 json_encode( $module->getVersionHash( $context ) ),
45 'Order of messages is insignificant'
49 $module = new ResourceLoaderFileModule( array(
50 'scripts' => array( 'bar.js', 'foo.js' ),
52 $this->assertNotEquals(
54 json_encode( $module->getVersionHash( $context ) ),
55 'Order of scripts is significant'
59 $module = new ResourceLoaderFileModuleTestModule( $baseParams );
60 $this->assertNotEquals(
62 json_encode( $module->getVersionHash( $context ) ),
63 'Class is significant'
68 * @covers ResourceLoaderModule::validateScriptFile
70 public function testValidateScriptFile() {
71 $context = $this->getResourceLoaderContext();
73 $module = new ResourceLoaderTestModule( array(
74 'script' => "var a = 'this is';\n {\ninvalid"
77 $module->getScript( $context ),
79 '"JavaScript parse error: Parse error: Unexpected token; ' .
80 'token } expected in file \'input\' on line 3"' .
82 'Replace invalid syntax with error logging'
85 $module = new ResourceLoaderTestModule( array(
86 'script' => "\n'valid';"
89 $module->getScript( $context ),
91 'Leave valid scripts as-is'