ResourceLoader: Add support for packageFiles
[lhc/web/wiklou.git] / tests / phpunit / includes / resourceloader / ResourceLoaderTest.php
index 32afd75..19a1e89 100644 (file)
@@ -435,6 +435,45 @@ mw.example();
 
                                '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
+                       ] ],
                ];
        }
 
@@ -446,7 +485,7 @@ mw.example();
        public function testMakeLoaderImplementScript( $case ) {
                $case += [
                        'wrap' => true,
-                       'styles' => [], 'templates' => [], 'messages' => new XmlJsCode( '{}' )
+                       'styles' => [], 'templates' => [], 'messages' => new XmlJsCode( '{}' ), 'packageFiles' => [],
                ];
                ResourceLoader::clearCache();
                $this->setMwGlobals( 'wgResourceLoaderDebug', true );
@@ -461,7 +500,8 @@ mw.example();
                                        : $case['scripts'],
                                $case['styles'],
                                $case['messages'],
-                               $case['templates']
+                               $case['templates'],
+                               $case['packageFiles']
                        )
                );
        }
@@ -477,7 +517,8 @@ mw.example();
                        123, // scripts
                        null, // styles
                        null, // messages
-                       null // templates
+                       null, // templates
+                       null // package files
                );
        }