'SkinModule (FileModule subclass)' => [ true,
[ 'class' => ResourceLoaderSkinModule::class, 'scripts' => 'example.js' ]
],
- 'JqueryMsgModule (FileModule subclass)' => [ true, [
- 'class' => ResourceLoaderJqueryMsgModule::class,
- 'scripts' => 'example.js',
- ] ],
'WikiModule' => [ false, [
'class' => ResourceLoaderWikiModule::class,
'scripts' => [ 'MediaWiki:Example.js' ],
'expected' => 'mw.loader.implement( "user", "mw.example( 1 );" );',
] ],
+ [ [
+ 'title' => 'Implement multi-file script',
+
+ 'name' => 'test.multifile',
+ 'scripts' => [
+ 'files' => [
+ 'one.js' => [
+ 'type' => 'script',
+ 'content' => 'mw.example( 1 );',
+ ],
+ 'two.json' => [
+ 'type' => 'data',
+ 'content' => [ 'n' => 2 ],
+ ],
+ 'three.js' => [
+ 'type' => 'script',
+ 'content' => 'mw.example( 3 );'
+ ],
+ ],
+ 'main' => 'three.js',
+ ],
+
+ 'expected' => <<<END
+mw.loader.implement( "test.multifile", {
+ "main": "three.js",
+ "files": {
+ "one.js": function ( require, module ) {
+mw.example( 1 );
+},
+ "two.json": {
+ "n": 2
+},
+ "three.js": function ( require, module ) {
+mw.example( 3 );
+}
+}
+} );
+END
+ ] ],
];
}
public function testMakeLoaderImplementScript( $case ) {
$case += [
'wrap' => true,
- 'styles' => [], 'templates' => [], 'messages' => new XmlJsCode( '{}' )
+ 'styles' => [], 'templates' => [], 'messages' => new XmlJsCode( '{}' ), 'packageFiles' => [],
];
ResourceLoader::clearCache();
$this->setMwGlobals( 'wgResourceLoaderDebug', true );
: $case['scripts'],
$case['styles'],
$case['messages'],
- $case['templates']
+ $case['templates'],
+ $case['packageFiles']
)
);
}
123, // scripts
null, // styles
null, // messages
- null // templates
+ null, // templates
+ null // package files
);
}