29header(
'Content-Type: text/javascript; charset=utf-8' );
32 'testUsesMissing' =>
"
33mw.loader.implement( 'testUsesMissing', function () {
34 mw.loader.testFail( 'Module usesMissing script should not run.' );
38 'testUsesNestedMissing' =>
"
39mw.loader.implement( 'testUsesNestedMissing', function () {
40 mw.loader.testFail('Module testUsesNestedMissing script should not run.' );
45mw.loader.implement( 'testSkipped', function () {
46 mw.loader.testFail( false, 'Module testSkipped was supposed to be skipped.' );
51mw.loader.implement( 'testNotSkipped', function () {}, {}, {});
54 'testUsesSkippable' =>
"
55mw.loader.implement( 'testUsesSkippable', function () {}, {}, {});
59mw.loader.implement( 'testUrlInc', function () {} );
62mw.loader.implement( 'testUrlInc.a', function () {} );
65mw.loader.implement( 'testUrlInc.b', function () {} );
68mw.loader.implement( 'testUrlOrder', function () {} );
71mw.loader.implement( 'testUrlOrder.a', function () {} );
74mw.loader.implement( 'testUrlOrder.b', function () {} );
83if ( isset( $_GET[
'modules'] ) ) {
84 if ( $_GET[
'modules'] ===
'testUrlInc,testUrlIncDump|testUrlInc.a,b' ) {
85 $modules = [
'testUrlInc',
'testUrlIncDump',
'testUrlInc.a',
'testUrlInc.b' ];
86 } elseif ( $_GET[
'modules'] ===
'testUrlOrder,testUrlOrderDump|testUrlOrder.a,b' ) {
87 $modules = [
'testUrlOrder',
'testUrlOrderDump',
'testUrlOrder.a',
'testUrlOrder.b' ];
89 $modules = explode(
',', $_GET[
'modules'] );
94 } elseif ( preg_match(
'/^test.*Dump$/', $module ) === 1 ) {
95 $queryModules = $_GET[
'modules'];
96 $queryVersion = isset( $_GET[
'version'] ) ? strval( $_GET[
'version'] ) :
null;
97 $response .=
'mw.loader.implement( ' . json_encode( $module )
98 .
', function ( $, jQuery, require, module ) {'
99 .
'module.exports.query = { '
100 .
'modules: ' . json_encode( $queryModules ) .
','
101 .
'version: ' . json_encode( $queryVersion )
106 $response .=
'mw.loader.state(' . json_encode( [ $module =>
'missing' ] ) .
');' .
"\n";