resourceloader: Replace some Xml::encodeJs calls with RL's own encodeJson
Bug: T32956 Change-Id: I614fe0e80ff308b857639a27d7772f969899b468
This commit is contained in:
parent
66c329b6bd
commit
23d066618d
3 changed files with 100 additions and 108 deletions
|
|
@ -1259,11 +1259,9 @@ MESSAGE;
|
|||
* @return string JavaScript code
|
||||
*/
|
||||
public static function makeMessageSetScript( $messages ) {
|
||||
return Xml::encodeJsCall(
|
||||
'mw.messages.set',
|
||||
[ (object)$messages ],
|
||||
self::inDebugMode()
|
||||
);
|
||||
return 'mw.messages.set('
|
||||
. self::encodeJsonForScript( (object)$messages )
|
||||
. ');';
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -1347,11 +1345,9 @@ MESSAGE;
|
|||
if ( !is_array( $states ) ) {
|
||||
$states = [ $states => $state ];
|
||||
}
|
||||
return Xml::encodeJsCall(
|
||||
'mw.loader.state',
|
||||
[ $states ],
|
||||
self::inDebugMode()
|
||||
);
|
||||
return 'mw.loader.state('
|
||||
. self::encodeJsonForScript( $states )
|
||||
. ');';
|
||||
}
|
||||
|
||||
private static function isEmptyObject( stdClass $obj ) {
|
||||
|
|
@ -1435,11 +1431,9 @@ MESSAGE;
|
|||
|
||||
array_walk( $modules, [ self::class, 'trimArray' ] );
|
||||
|
||||
return Xml::encodeJsCall(
|
||||
'mw.loader.register',
|
||||
[ $modules ],
|
||||
self::inDebugMode()
|
||||
);
|
||||
return 'mw.loader.register('
|
||||
. self::encodeJsonForScript( $modules )
|
||||
. ');';
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -1460,11 +1454,9 @@ MESSAGE;
|
|||
if ( !is_array( $sources ) ) {
|
||||
$sources = [ $sources => $loadUrl ];
|
||||
}
|
||||
return Xml::encodeJsCall(
|
||||
'mw.loader.addSource',
|
||||
[ $sources ],
|
||||
self::inDebugMode()
|
||||
);
|
||||
return 'mw.loader.addSource('
|
||||
. self::encodeJsonForScript( $sources )
|
||||
. ');';
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -14,10 +14,10 @@ class ResourceLoaderStartUpModuleTest extends ResourceLoaderTestCase {
|
|||
'msg' => 'Empty registry',
|
||||
'modules' => [],
|
||||
'out' => '
|
||||
mw.loader.addSource( {
|
||||
mw.loader.addSource({
|
||||
"local": "/w/load.php"
|
||||
} );
|
||||
mw.loader.register( [] );'
|
||||
});
|
||||
mw.loader.register([]);'
|
||||
] ],
|
||||
[ [
|
||||
'msg' => 'Basic registry',
|
||||
|
|
@ -25,15 +25,15 @@ mw.loader.register( [] );'
|
|||
'test.blank' => [ 'class' => ResourceLoaderTestModule::class ],
|
||||
],
|
||||
'out' => '
|
||||
mw.loader.addSource( {
|
||||
mw.loader.addSource({
|
||||
"local": "/w/load.php"
|
||||
} );
|
||||
mw.loader.register( [
|
||||
});
|
||||
mw.loader.register([
|
||||
[
|
||||
"test.blank",
|
||||
"{blankVer}"
|
||||
]
|
||||
] );',
|
||||
]);',
|
||||
] ],
|
||||
[ [
|
||||
'msg' => 'Optimise the dependency tree (basic case)',
|
||||
|
|
@ -56,10 +56,10 @@ mw.loader.register( [
|
|||
],
|
||||
],
|
||||
'out' => '
|
||||
mw.loader.addSource( {
|
||||
mw.loader.addSource({
|
||||
"local": "/w/load.php"
|
||||
} );
|
||||
mw.loader.register( [
|
||||
});
|
||||
mw.loader.register([
|
||||
[
|
||||
"a",
|
||||
"{blankVer}",
|
||||
|
|
@ -83,7 +83,7 @@ mw.loader.register( [
|
|||
"d",
|
||||
"{blankVer}"
|
||||
]
|
||||
] );',
|
||||
]);',
|
||||
] ],
|
||||
[ [
|
||||
'msg' => 'Optimise the dependency tree (tolerate unknown deps)',
|
||||
|
|
@ -102,10 +102,10 @@ mw.loader.register( [
|
|||
],
|
||||
],
|
||||
'out' => '
|
||||
mw.loader.addSource( {
|
||||
mw.loader.addSource({
|
||||
"local": "/w/load.php"
|
||||
} );
|
||||
mw.loader.register( [
|
||||
});
|
||||
mw.loader.register([
|
||||
[
|
||||
"a",
|
||||
"{blankVer}",
|
||||
|
|
@ -126,7 +126,7 @@ mw.loader.register( [
|
|||
"c",
|
||||
"{blankVer}"
|
||||
]
|
||||
] );',
|
||||
]);',
|
||||
] ],
|
||||
[ [
|
||||
// Regression test for T223402.
|
||||
|
|
@ -154,10 +154,10 @@ mw.loader.register( [
|
|||
],
|
||||
],
|
||||
'out' => '
|
||||
mw.loader.addSource( {
|
||||
mw.loader.addSource({
|
||||
"local": "/w/load.php"
|
||||
} );
|
||||
mw.loader.register( [
|
||||
});
|
||||
mw.loader.register([
|
||||
[
|
||||
"top",
|
||||
"{blankVer}",
|
||||
|
|
@ -192,7 +192,7 @@ mw.loader.register( [
|
|||
"util",
|
||||
"{blankVer}"
|
||||
]
|
||||
] );',
|
||||
]);',
|
||||
] ],
|
||||
[ [
|
||||
// Regression test for T223402.
|
||||
|
|
@ -208,10 +208,10 @@ mw.loader.register( [
|
|||
],
|
||||
],
|
||||
'out' => '
|
||||
mw.loader.addSource( {
|
||||
mw.loader.addSource({
|
||||
"local": "/w/load.php"
|
||||
} );
|
||||
mw.loader.register( [
|
||||
});
|
||||
mw.loader.register([
|
||||
[
|
||||
"top",
|
||||
"{blankVer}",
|
||||
|
|
@ -224,7 +224,7 @@ mw.loader.register( [
|
|||
"util",
|
||||
"{blankVer}"
|
||||
]
|
||||
] );',
|
||||
]);',
|
||||
] ],
|
||||
[ [
|
||||
'msg' => 'Version falls back gracefully if getVersionHash throws',
|
||||
|
|
@ -241,18 +241,18 @@ mw.loader.register( [
|
|||
]
|
||||
],
|
||||
'out' => '
|
||||
mw.loader.addSource( {
|
||||
mw.loader.addSource({
|
||||
"local": "/w/load.php"
|
||||
} );
|
||||
mw.loader.register( [
|
||||
});
|
||||
mw.loader.register([
|
||||
[
|
||||
"test.fail",
|
||||
""
|
||||
]
|
||||
] );
|
||||
mw.loader.state( {
|
||||
]);
|
||||
mw.loader.state({
|
||||
"test.fail": "error"
|
||||
} );',
|
||||
});',
|
||||
] ],
|
||||
[ [
|
||||
'msg' => 'Use version from getVersionHash',
|
||||
|
|
@ -267,15 +267,15 @@ mw.loader.state( {
|
|||
]
|
||||
],
|
||||
'out' => '
|
||||
mw.loader.addSource( {
|
||||
mw.loader.addSource({
|
||||
"local": "/w/load.php"
|
||||
} );
|
||||
mw.loader.register( [
|
||||
});
|
||||
mw.loader.register([
|
||||
[
|
||||
"test.version",
|
||||
"1234567"
|
||||
]
|
||||
] );',
|
||||
]);',
|
||||
] ],
|
||||
[ [
|
||||
'msg' => 'Re-hash version from getVersionHash if too long',
|
||||
|
|
@ -290,15 +290,15 @@ mw.loader.register( [
|
|||
],
|
||||
],
|
||||
'out' => '
|
||||
mw.loader.addSource( {
|
||||
mw.loader.addSource({
|
||||
"local": "/w/load.php"
|
||||
} );
|
||||
mw.loader.register( [
|
||||
});
|
||||
mw.loader.register([
|
||||
[
|
||||
"test.version",
|
||||
"016es8l"
|
||||
]
|
||||
] );',
|
||||
]);',
|
||||
] ],
|
||||
[ [
|
||||
'msg' => 'Group signature',
|
||||
|
|
@ -314,10 +314,10 @@ mw.loader.register( [
|
|||
],
|
||||
],
|
||||
'out' => '
|
||||
mw.loader.addSource( {
|
||||
mw.loader.addSource({
|
||||
"local": "/w/load.php"
|
||||
} );
|
||||
mw.loader.register( [
|
||||
});
|
||||
mw.loader.register([
|
||||
[
|
||||
"test.blank",
|
||||
"{blankVer}"
|
||||
|
|
@ -334,7 +334,7 @@ mw.loader.register( [
|
|||
[],
|
||||
"x-bar"
|
||||
]
|
||||
] );'
|
||||
]);'
|
||||
] ],
|
||||
[ [
|
||||
'msg' => 'Different target (non-test should not be registered)',
|
||||
|
|
@ -346,15 +346,15 @@ mw.loader.register( [
|
|||
],
|
||||
],
|
||||
'out' => '
|
||||
mw.loader.addSource( {
|
||||
mw.loader.addSource({
|
||||
"local": "/w/load.php"
|
||||
} );
|
||||
mw.loader.register( [
|
||||
});
|
||||
mw.loader.register([
|
||||
[
|
||||
"test.blank",
|
||||
"{blankVer}"
|
||||
]
|
||||
] );'
|
||||
]);'
|
||||
] ],
|
||||
[ [
|
||||
'msg' => 'Safemode disabled (default; register all modules)',
|
||||
|
|
@ -375,10 +375,10 @@ mw.loader.register( [
|
|||
],
|
||||
],
|
||||
'out' => '
|
||||
mw.loader.addSource( {
|
||||
mw.loader.addSource({
|
||||
"local": "/w/load.php"
|
||||
} );
|
||||
mw.loader.register( [
|
||||
});
|
||||
mw.loader.register([
|
||||
[
|
||||
"test.blank",
|
||||
"{blankVer}"
|
||||
|
|
@ -395,7 +395,7 @@ mw.loader.register( [
|
|||
"test.user",
|
||||
"{blankVer}"
|
||||
]
|
||||
] );'
|
||||
]);'
|
||||
] ],
|
||||
[ [
|
||||
'msg' => 'Safemode enabled (filter modules with user/site origin)',
|
||||
|
|
@ -417,10 +417,10 @@ mw.loader.register( [
|
|||
],
|
||||
],
|
||||
'out' => '
|
||||
mw.loader.addSource( {
|
||||
mw.loader.addSource({
|
||||
"local": "/w/load.php"
|
||||
} );
|
||||
mw.loader.register( [
|
||||
});
|
||||
mw.loader.register([
|
||||
[
|
||||
"test.blank",
|
||||
"{blankVer}"
|
||||
|
|
@ -429,7 +429,7 @@ mw.loader.register( [
|
|||
"test.core-generated",
|
||||
"{blankVer}"
|
||||
]
|
||||
] );'
|
||||
]);'
|
||||
] ],
|
||||
[ [
|
||||
'msg' => 'Foreign source',
|
||||
|
|
@ -446,11 +446,11 @@ mw.loader.register( [
|
|||
],
|
||||
],
|
||||
'out' => '
|
||||
mw.loader.addSource( {
|
||||
mw.loader.addSource({
|
||||
"local": "/w/load.php",
|
||||
"example": "http://example.org/w/load.php"
|
||||
} );
|
||||
mw.loader.register( [
|
||||
});
|
||||
mw.loader.register([
|
||||
[
|
||||
"test.blank",
|
||||
"{blankVer}",
|
||||
|
|
@ -458,7 +458,7 @@ mw.loader.register( [
|
|||
null,
|
||||
"example"
|
||||
]
|
||||
] );'
|
||||
]);'
|
||||
] ],
|
||||
[ [
|
||||
'msg' => 'Conditional dependency function',
|
||||
|
|
@ -487,10 +487,10 @@ mw.loader.register( [
|
|||
],
|
||||
],
|
||||
'out' => '
|
||||
mw.loader.addSource( {
|
||||
mw.loader.addSource({
|
||||
"local": "/w/load.php"
|
||||
} );
|
||||
mw.loader.register( [
|
||||
});
|
||||
mw.loader.register([
|
||||
[
|
||||
"test.x.core",
|
||||
"{blankVer}"
|
||||
|
|
@ -520,7 +520,7 @@ mw.loader.register( [
|
|||
2
|
||||
]
|
||||
]
|
||||
] );',
|
||||
]);',
|
||||
] ],
|
||||
[ [
|
||||
// This may seem like an edge case, but a plain MediaWiki core install
|
||||
|
|
@ -593,11 +593,11 @@ mw.loader.register( [
|
|||
],
|
||||
],
|
||||
'out' => '
|
||||
mw.loader.addSource( {
|
||||
mw.loader.addSource({
|
||||
"local": "/w/load.php",
|
||||
"example": "http://example.org/w/load.php"
|
||||
} );
|
||||
mw.loader.register( [
|
||||
});
|
||||
mw.loader.register([
|
||||
[
|
||||
"test.blank",
|
||||
"{blankVer}"
|
||||
|
|
@ -661,7 +661,7 @@ mw.loader.register( [
|
|||
"x-bar",
|
||||
"example"
|
||||
]
|
||||
] );'
|
||||
]);'
|
||||
] ],
|
||||
];
|
||||
}
|
||||
|
|
@ -748,10 +748,10 @@ mw.loader.register( [
|
|||
$rl->register( $modules );
|
||||
$module = new ResourceLoaderStartUpModule();
|
||||
$out =
|
||||
'mw.loader.addSource( {
|
||||
'mw.loader.addSource({
|
||||
"local": "/w/load.php"
|
||||
} );
|
||||
mw.loader.register( [
|
||||
});
|
||||
mw.loader.register([
|
||||
[
|
||||
"test.blank",
|
||||
"{blankVer}"
|
||||
|
|
@ -766,7 +766,7 @@ mw.loader.register( [
|
|||
null,
|
||||
"return !!( window.JSON \u0026\u0026 JSON.parse \u0026\u0026 JSON.stringify);"
|
||||
]
|
||||
] );';
|
||||
]);';
|
||||
|
||||
$this->assertEquals(
|
||||
self::expandPlaceholders( $out ),
|
||||
|
|
|
|||
|
|
@ -560,12 +560,12 @@ END
|
|||
*/
|
||||
public function testMakeLoaderRegisterScript() {
|
||||
$this->assertEquals(
|
||||
'mw.loader.register( [
|
||||
'mw.loader.register([
|
||||
[
|
||||
"test.name",
|
||||
"1234567"
|
||||
]
|
||||
] );',
|
||||
]);',
|
||||
ResourceLoader::makeLoaderRegisterScript( [
|
||||
[ 'test.name', '1234567' ],
|
||||
] ),
|
||||
|
|
@ -573,7 +573,7 @@ END
|
|||
);
|
||||
|
||||
$this->assertEquals(
|
||||
'mw.loader.register( [
|
||||
'mw.loader.register([
|
||||
[
|
||||
"test.foo",
|
||||
"100"
|
||||
|
|
@ -601,7 +601,7 @@ END
|
|||
null,
|
||||
"return true;"
|
||||
]
|
||||
] );',
|
||||
]);',
|
||||
ResourceLoader::makeLoaderRegisterScript( [
|
||||
[ 'test.foo', '100' , [], null, null ],
|
||||
[ 'test.bar', '200', [ 'test.unknown' ], null ],
|
||||
|
|
@ -617,29 +617,29 @@ END
|
|||
*/
|
||||
public function testMakeLoaderSourcesScript() {
|
||||
$this->assertEquals(
|
||||
'mw.loader.addSource( {
|
||||
'mw.loader.addSource({
|
||||
"local": "/w/load.php"
|
||||
} );',
|
||||
});',
|
||||
ResourceLoader::makeLoaderSourcesScript( 'local', '/w/load.php' )
|
||||
);
|
||||
$this->assertEquals(
|
||||
'mw.loader.addSource( {
|
||||
'mw.loader.addSource({
|
||||
"local": "/w/load.php"
|
||||
} );',
|
||||
});',
|
||||
ResourceLoader::makeLoaderSourcesScript( [ 'local' => '/w/load.php' ] )
|
||||
);
|
||||
$this->assertEquals(
|
||||
'mw.loader.addSource( {
|
||||
'mw.loader.addSource({
|
||||
"local": "/w/load.php",
|
||||
"example": "https://example.org/w/load.php"
|
||||
} );',
|
||||
});',
|
||||
ResourceLoader::makeLoaderSourcesScript( [
|
||||
'local' => '/w/load.php',
|
||||
'example' => 'https://example.org/w/load.php'
|
||||
] )
|
||||
);
|
||||
$this->assertEquals(
|
||||
'mw.loader.addSource( [] );',
|
||||
'mw.loader.addSource([]);',
|
||||
ResourceLoader::makeLoaderSourcesScript( [] )
|
||||
);
|
||||
}
|
||||
|
|
@ -747,9 +747,9 @@ END
|
|||
'modules' => [
|
||||
'foo' => 'foo()',
|
||||
],
|
||||
'expected' => "foo()\n" . 'mw.loader.state( {
|
||||
'expected' => "foo()\n" . 'mw.loader.state({
|
||||
"foo": "ready"
|
||||
} );',
|
||||
});',
|
||||
'minified' => "foo()\n" . 'mw.loader.state({"foo":"ready"});',
|
||||
'message' => 'Script without semi-colon',
|
||||
],
|
||||
|
|
@ -758,10 +758,10 @@ END
|
|||
'foo' => 'foo()',
|
||||
'bar' => 'bar()',
|
||||
],
|
||||
'expected' => "foo()\nbar()\n" . 'mw.loader.state( {
|
||||
'expected' => "foo()\nbar()\n" . 'mw.loader.state({
|
||||
"foo": "ready",
|
||||
"bar": "ready"
|
||||
} );',
|
||||
});',
|
||||
'minified' => "foo()\nbar()\n" . 'mw.loader.state({"foo":"ready","bar":"ready"});',
|
||||
'message' => 'Two scripts without semi-colon',
|
||||
],
|
||||
|
|
@ -769,9 +769,9 @@ END
|
|||
'modules' => [
|
||||
'foo' => "foo()\n// bar();"
|
||||
],
|
||||
'expected' => "foo()\n// bar();\n" . 'mw.loader.state( {
|
||||
'expected' => "foo()\n// bar();\n" . 'mw.loader.state({
|
||||
"foo": "ready"
|
||||
} );',
|
||||
});',
|
||||
'minified' => "foo()\n" . 'mw.loader.state({"foo":"ready"});',
|
||||
'message' => 'Script with semi-colon in comment (T162719)',
|
||||
],
|
||||
|
|
@ -866,11 +866,11 @@ END
|
|||
$this->assertCount( 1, $errors );
|
||||
$this->assertRegExp( '/Ferry not found/', $errors[0] );
|
||||
$this->assertEquals(
|
||||
"foo();\nbar();\n" . 'mw.loader.state( {
|
||||
"foo();\nbar();\n" . 'mw.loader.state({
|
||||
"ferry": "error",
|
||||
"foo": "ready",
|
||||
"bar": "ready"
|
||||
} );',
|
||||
});',
|
||||
$response
|
||||
);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue