resourceloader: Add tests for StartUpModule dep tree optimisation
authorTimo Tijhof <krinklemail@gmail.com>
Wed, 22 May 2019 18:29:09 +0000 (19:29 +0100)
committerTimo Tijhof <krinklemail@gmail.com>
Wed, 22 May 2019 20:53:13 +0000 (21:53 +0100)
Bug: T223402
Change-Id: I0450c052852068f3c78312f48a42645a8b77bc5c

tests/phpunit/includes/resourceloader/ResourceLoaderStartUpModuleTest.php

index d4b5ed6..b5dd008 100644 (file)
@@ -33,6 +33,78 @@ mw.loader.register( [
         "test.blank",
         "{blankVer}"
     ]
+] );',
+                       ] ],
+                       [ [
+                               'msg' => 'Optimise the dependency tree (basic case)',
+                               'modules' => [
+                                       'a' => new ResourceLoaderTestModule( [ 'dependencies' => [ 'b', 'c', 'd' ] ] ),
+                                       'b' => new ResourceLoaderTestModule( [ 'dependencies' => [ 'c' ] ] ),
+                                       'c' => new ResourceLoaderTestModule( [ 'dependencies' => [] ] ),
+                                       'd' => new ResourceLoaderTestModule( [ 'dependencies' => [] ] ),
+                               ],
+                               'out' => '
+mw.loader.addSource( {
+    "local": "/w/load.php"
+} );
+mw.loader.register( [
+    [
+        "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}"
+    ]
 ] );',
                        ] ],
                        [ [
@@ -454,8 +526,7 @@ mw.loader.register( [
 
        /**
         * @dataProvider provideGetModuleRegistrations
-        * @covers ResourceLoaderStartUpModule::getModuleRegistrations
-        * @covers ResourceLoaderStartUpModule::compileUnresolvedDependencies
+        * @covers ResourceLoaderStartUpModule
         * @covers ResourceLoader::makeLoaderRegisterScript
         */
        public function testGetModuleRegistrations( $case ) {