MediaWiki REL1_32
load.mock.php
Go to the documentation of this file.
1<?php
26// This file doesn't run as part of MediaWiki
27// phpcs:disable MediaWiki.Usage.SuperGlobalsUsage.SuperGlobals
28
29header( 'Content-Type: text/javascript; charset=utf-8' );
30
32 'testUsesMissing' => "
33mw.loader.implement( 'testUsesMissing', function () {
34 mw.loader.testFail( 'Module usesMissing script should not run.' );
35}, {}, {});
36",
37
38 'testUsesNestedMissing' => "
39mw.loader.implement( 'testUsesNestedMissing', function () {
40 mw.loader.testFail('Module testUsesNestedMissing script should not run.' );
41}, {}, {});
42",
43
44 'testSkipped' => "
45mw.loader.implement( 'testSkipped', function () {
46 mw.loader.testFail( false, 'Module testSkipped was supposed to be skipped.' );
47}, {}, {});
48",
49
50 'testNotSkipped' => "
51mw.loader.implement( 'testNotSkipped', function () {}, {}, {});
52",
53
54 'testUsesSkippable' => "
55mw.loader.implement( 'testUsesSkippable', function () {}, {}, {});
56",
57
58 'testUrlInc' => "
59mw.loader.implement( 'testUrlInc', function () {} );
60",
61 'testUrlInc.a' => "
62mw.loader.implement( 'testUrlInc.a', function () {} );
63",
64 'testUrlInc.b' => "
65mw.loader.implement( 'testUrlInc.b', function () {} );
66",
67 'testUrlOrder' => "
68mw.loader.implement( 'testUrlOrder', function () {} );
69",
70 'testUrlOrder.a' => "
71mw.loader.implement( 'testUrlOrder.a', function () {} );
72",
73 'testUrlOrder.b' => "
74mw.loader.implement( 'testUrlOrder.b', function () {} );
75",
76];
77
79
80// Does not support the full behaviour of ResourceLoaderContext::expandModuleNames(),
81// Only supports dotless module names joined by comma,
82// with the exception of the hardcoded cases for testUrl*.
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' ];
88 } else {
89 $modules = explode( ',', $_GET['modules'] );
90 }
91 foreach ( $modules as $module ) {
92 if ( isset( $moduleImplementations[$module] ) ) {
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 )
102 . ' };'
103 . '} );';
104 } else {
105 // Default
106 $response .= 'mw.loader.state(' . json_encode( [ $module => 'missing' ] ) . ');' . "\n";
107 }
108 }
109}
110
111echo $response;
$moduleImplementations
Definition load.mock.php:31
$response
Definition load.mock.php:78