'msg' => 'Version falls back gracefully if getVersionHash throws',
'modules' => [
'test.fail' => (
- ( $mock = $this->getMockBuilder( 'ResourceLoaderTestModule' )
+ ( $mock = $this->getMockBuilder( ResourceLoaderTestModule::class )
->setMethods( [ 'getVersionHash' ] )->getMock() )
&& $mock->method( 'getVersionHash' )->will(
$this->throwException( new Exception )
'msg' => 'Use version from getVersionHash',
'modules' => [
'test.version' => (
- ( $mock = $this->getMockBuilder( 'ResourceLoaderTestModule' )
+ ( $mock = $this->getMockBuilder( ResourceLoaderTestModule::class )
->setMethods( [ 'getVersionHash' ] )->getMock() )
&& $mock->method( 'getVersionHash' )->willReturn( '1234567' )
) ? $mock : $mock
'msg' => 'Re-hash version from getVersionHash if too long',
'modules' => [
'test.version' => (
- ( $mock = $this->getMockBuilder( 'ResourceLoaderTestModule' )
+ ( $mock = $this->getMockBuilder( ResourceLoaderTestModule::class )
->setMethods( [ 'getVersionHash' ] )->getMock() )
&& $mock->method( 'getVersionHash' )->willReturn( '12345678' )
) ? $mock : $mock
"test.blank",
"{blankVer}"
]
+] );'
+ ] ],
+ [ [
+ 'msg' => 'Safemode disabled (default; register all modules)',
+ 'modules' => [
+ // Default origin: ORIGIN_CORE_SITEWIDE
+ 'test.blank' => new ResourceLoaderTestModule(),
+ 'test.core-generated' => new ResourceLoaderTestModule( [
+ 'origin' => ResourceLoaderModule::ORIGIN_CORE_INDIVIDUAL
+ ] ),
+ 'test.sitewide' => new ResourceLoaderTestModule( [
+ 'origin' => ResourceLoaderModule::ORIGIN_USER_SITEWIDE
+ ] ),
+ 'test.user' => new ResourceLoaderTestModule( [
+ 'origin' => ResourceLoaderModule::ORIGIN_USER_INDIVIDUAL
+ ] ),
+ ],
+ 'out' => '
+mw.loader.addSource( {
+ "local": "/w/load.php"
+} );
+mw.loader.register( [
+ [
+ "test.blank",
+ "{blankVer}"
+ ],
+ [
+ "test.core-generated",
+ "{blankVer}"
+ ],
+ [
+ "test.sitewide",
+ "{blankVer}"
+ ],
+ [
+ "test.user",
+ "{blankVer}"
+ ]
+] );'
+ ] ],
+ [ [
+ 'msg' => 'Safemode enabled (filter modules with user/site origin)',
+ 'extraQuery' => [ 'safemode' => '1' ],
+ 'modules' => [
+ // Default origin: ORIGIN_CORE_SITEWIDE
+ 'test.blank' => new ResourceLoaderTestModule(),
+ 'test.core-generated' => new ResourceLoaderTestModule( [
+ 'origin' => ResourceLoaderModule::ORIGIN_CORE_INDIVIDUAL
+ ] ),
+ 'test.sitewide' => new ResourceLoaderTestModule( [
+ 'origin' => ResourceLoaderModule::ORIGIN_USER_SITEWIDE
+ ] ),
+ 'test.user' => new ResourceLoaderTestModule( [
+ 'origin' => ResourceLoaderModule::ORIGIN_USER_INDIVIDUAL
+ ] ),
+ ],
+ 'out' => '
+mw.loader.addSource( {
+ "local": "/w/load.php"
+} );
+mw.loader.register( [
+ [
+ "test.blank",
+ "{blankVer}"
+ ],
+ [
+ "test.core-generated",
+ "{blankVer}"
+ ]
] );'
] ],
[ [
$this->setMwGlobals( 'wgResourceLoaderSources', $case['sources'] );
}
- $context = $this->getResourceLoaderContext();
+ $extraQuery = $case['extraQuery'] ?? [];
+ $context = $this->getResourceLoaderContext( $extraQuery );
$rl = $context->getResourceLoader();
$rl->register( $case['modules'] );
$module = new ResourceLoaderStartUpModule();