Bartosz Dziewoński has uploaded a new change for review.
https://gerrit.wikimedia.org/r/249134
Change subject: mediawiki.jqueryMsg: Lazy-initialize parsers with
getFailableParserFn()
......................................................................
mediawiki.jqueryMsg: Lazy-initialize parsers with getFailableParserFn()
Because they rely on data set by setParserDefaults(), and that is only
called later (from ResourceLoaderJqueryMsgModule).
Bug: T115708
Change-Id: I085d27b1b00873bc5b22573ef7eb9d17b8e5e1fd
(cherry picked from commit e71213e22685aa981c24eadb46d253b1d8881e8e)
---
M resources/src/mediawiki/mediawiki.jqueryMsg.js
M tests/qunit/suites/resources/mediawiki/mediawiki.jqueryMsg.test.js
2 files changed, 37 insertions(+), 3 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core
refs/changes/34/249134/1
diff --git a/resources/src/mediawiki/mediawiki.jqueryMsg.js
b/resources/src/mediawiki/mediawiki.jqueryMsg.js
index 544a608..dbcb636 100644
--- a/resources/src/mediawiki/mediawiki.jqueryMsg.js
+++ b/resources/src/mediawiki/mediawiki.jqueryMsg.js
@@ -189,8 +189,7 @@
* @return {string} return.return Rendered HTML.
*/
mw.jqueryMsg.getMessageFunction = function ( options ) {
- var failableParserFn = getFailableParserFn( options ),
- format;
+ var failableParserFn, format;
if ( options && options.format !== undefined ) {
format = options.format;
@@ -199,6 +198,9 @@
}
return function () {
+ if ( !failableParserFn ) {
+ failableParserFn = getFailableParserFn( options
);
+ }
var failableResult = failableParserFn( arguments );
if ( format === 'text' || format === 'escaped' ) {
return failableResult.text();
@@ -231,9 +233,12 @@
* @return {jQuery} return.return
*/
mw.jqueryMsg.getPlugin = function ( options ) {
- var failableParserFn = getFailableParserFn( options );
+ var failableParserFn;
return function () {
+ if ( !failableParserFn ) {
+ failableParserFn = getFailableParserFn( options
);
+ }
var $target = this.empty();
appendWithoutParsing( $target, failableParserFn(
arguments ) );
return $target;
diff --git a/tests/qunit/suites/resources/mediawiki/mediawiki.jqueryMsg.test.js
b/tests/qunit/suites/resources/mediawiki/mediawiki.jqueryMsg.test.js
index 3078431..c088554 100644
--- a/tests/qunit/suites/resources/mediawiki/mediawiki.jqueryMsg.test.js
+++ b/tests/qunit/suites/resources/mediawiki/mediawiki.jqueryMsg.test.js
@@ -996,4 +996,33 @@
assert.equal( logSpy.callCount, 2, 'mw.log.warn calls' );
} );
+ QUnit.test( 'Integration', 4, function ( assert ) {
+ var expected, logSpy;
+
+ expected = '<b><a title="Bold" href="/wiki/Bold">Bold</a>!</b>';
+ mw.messages.set( 'integration-test', '<b>[[Bold]]!</b>' );
+
+ this.suppressWarnings();
+ logSpy = this.sandbox.spy( mw.log, 'warn' );
+ assert.equal(
+ window.gM( 'integration-test' ),
+ expected,
+ 'Global function gM() works correctly'
+ );
+ assert.equal( logSpy.callCount, 1, 'mw.log.warn called' );
+ this.restoreWarnings();
+
+ assert.equal(
+ mw.message( 'integration-test' ).parse(),
+ expected,
+ 'mw.message().parse() works correctly'
+ );
+
+ assert.equal(
+ $( '<span>' ).msg( 'integration-test' ).html(),
+ expected,
+ 'jQuery plugin $.fn.msg() works correctly'
+ );
+ } );
+
}( mediaWiki, jQuery ) );
--
To view, visit https://gerrit.wikimedia.org/r/249134
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I085d27b1b00873bc5b22573ef7eb9d17b8e5e1fd
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: REL1_26
Gerrit-Owner: Bartosz Dziewoński <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits