Merge "Selenium: replace UserLoginPage with BlankPage where possible"
[lhc/web/wiklou.git] / tests / phpunit / includes / resourceloader / ResourceLoaderStartUpModuleTest.php
index d4b5ed6..bc7cb69 100644 (file)
@@ -36,10 +36,12 @@ mw.loader.register( [
 ] );',
                        ] ],
                        [ [
-                               'msg' => 'Omit raw modules from registry',
+                               'msg' => 'Optimise the dependency tree (basic case)',
                                'modules' => [
-                                       'test.raw' => new ResourceLoaderTestModule( [ 'isRaw' => true ] ),
-                                       'test.blank' => new ResourceLoaderTestModule(),
+                                       'a' => new ResourceLoaderTestModule( [ 'dependencies' => [ 'b', 'c', 'd' ] ] ),
+                                       'b' => new ResourceLoaderTestModule( [ 'dependencies' => [ 'c' ] ] ),
+                                       'c' => new ResourceLoaderTestModule( [ 'dependencies' => [] ] ),
+                                       'd' => new ResourceLoaderTestModule( [ 'dependencies' => [] ] ),
                                ],
                                'out' => '
 mw.loader.addSource( {
@@ -47,7 +49,137 @@ mw.loader.addSource( {
 } );
 mw.loader.register( [
     [
-        "test.blank",
+        "a",
+        "{blankVer}",
+        [
+            1,
+            3
+        ]
+    ],
+    [
+        "b",
+        "{blankVer}",
+        [
+            2
+        ]
+    ],
+    [
+        "c",
+        "{blankVer}"
+    ],
+    [
+        "d",
+        "{blankVer}"
+    ]
+] );',
+                       ] ],
+                       [ [
+                               'msg' => 'Optimise the dependency tree (tolerate unknown deps)',
+                               'modules' => [
+                                       'a' => new ResourceLoaderTestModule( [ 'dependencies' => [ 'b', 'c', 'x' ] ] ),
+                                       'b' => new ResourceLoaderTestModule( [ 'dependencies' => [ 'c', 'x' ] ] ),
+                                       'c' => new ResourceLoaderTestModule( [ 'dependencies' => [] ] ),
+                               ],
+                               'out' => '
+mw.loader.addSource( {
+    "local": "/w/load.php"
+} );
+mw.loader.register( [
+    [
+        "a",
+        "{blankVer}",
+        [
+            1,
+            "x"
+        ]
+    ],
+    [
+        "b",
+        "{blankVer}",
+        [
+            2,
+            "x"
+        ]
+    ],
+    [
+        "c",
+        "{blankVer}"
+    ]
+] );',
+                       ] ],
+                       [ [
+                               // Regression test for T223402.
+                               'msg' => 'Optimise the dependency tree (indirect circular dependency)',
+                               'modules' => [
+                                       'top' => new ResourceLoaderTestModule( [ 'dependencies' => [ 'middle1', 'util' ] ] ),
+                                       'middle1' => new ResourceLoaderTestModule( [ 'dependencies' => [ 'middle2', 'util' ] ] ),
+                                       'middle2' => new ResourceLoaderTestModule( [ 'dependencies' => [ 'bottom' ] ] ),
+                                       'bottom' => new ResourceLoaderTestModule( [ 'dependencies' => [ 'top' ] ] ),
+                                       'util' => new ResourceLoaderTestModule( [ 'dependencies' => [] ] ),
+                               ],
+                               'out' => '
+mw.loader.addSource( {
+    "local": "/w/load.php"
+} );
+mw.loader.register( [
+    [
+        "top",
+        "{blankVer}",
+        [
+            1,
+            4
+        ]
+    ],
+    [
+        "middle1",
+        "{blankVer}",
+        [
+            2,
+            4
+        ]
+    ],
+    [
+        "middle2",
+        "{blankVer}",
+        [
+            3
+        ]
+    ],
+    [
+        "bottom",
+        "{blankVer}",
+        [
+            0
+        ]
+    ],
+    [
+        "util",
+        "{blankVer}"
+    ]
+] );',
+                       ] ],
+                       [ [
+                               // Regression test for T223402.
+                               'msg' => 'Optimise the dependency tree (direct circular dependency)',
+                               'modules' => [
+                                       'top' => new ResourceLoaderTestModule( [ 'dependencies' => [ 'util', 'top' ] ] ),
+                                       'util' => new ResourceLoaderTestModule( [ 'dependencies' => [] ] ),
+                               ],
+                               'out' => '
+mw.loader.addSource( {
+    "local": "/w/load.php"
+} );
+mw.loader.register( [
+    [
+        "top",
+        "{blankVer}",
+        [
+            1,
+            0
+        ]
+    ],
+    [
+        "util",
         "{blankVer}"
     ]
 ] );',
@@ -454,8 +586,7 @@ mw.loader.register( [
 
        /**
         * @dataProvider provideGetModuleRegistrations
-        * @covers ResourceLoaderStartUpModule::getModuleRegistrations
-        * @covers ResourceLoaderStartUpModule::compileUnresolvedDependencies
+        * @covers ResourceLoaderStartUpModule
         * @covers ResourceLoader::makeLoaderRegisterScript
         */
        public function testGetModuleRegistrations( $case ) {