"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}"
+ ]
] );',
] ],
[ [
/**
* @dataProvider provideGetModuleRegistrations
- * @covers ResourceLoaderStartUpModule::getModuleRegistrations
- * @covers ResourceLoaderStartUpModule::compileUnresolvedDependencies
+ * @covers ResourceLoaderStartUpModule
* @covers ResourceLoader::makeLoaderRegisterScript
*/
public function testGetModuleRegistrations( $case ) {
- if ( isset( $case['sources'] ) ) {
- $this->setMwGlobals( 'wgResourceLoaderSources', $case['sources'] );
- }
-
$extraQuery = $case['extraQuery'] ?? [];
$context = $this->getResourceLoaderContext( $extraQuery );
$rl = $context->getResourceLoader();
+ if ( isset( $case['sources'] ) ) {
+ $rl->addSource( $case['sources'] );
+ }
$rl->register( $case['modules'] );
$module = new ResourceLoaderStartUpModule();
$out = ltrim( $case['out'], "\n" );
] ]
];
}
+
/**
* @covers ResourceLoaderStartUpModule::getModuleRegistrations
* @dataProvider provideRegistrations