jenkins-bot has submitted this change and it was merged.

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
---
M resources/src/mediawiki/mediawiki.jqueryMsg.js
M tests/qunit/suites/resources/mediawiki/mediawiki.jqueryMsg.test.js
2 files changed, 37 insertions(+), 3 deletions(-)

Approvals:
  Krinkle: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/resources/src/mediawiki/mediawiki.jqueryMsg.js 
b/resources/src/mediawiki/mediawiki.jqueryMsg.js
index 0a24454..2e89f6b 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 4f273bc..24528bb 100644
--- a/tests/qunit/suites/resources/mediawiki/mediawiki.jqueryMsg.test.js
+++ b/tests/qunit/suites/resources/mediawiki/mediawiki.jqueryMsg.test.js
@@ -1078,4 +1078,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/246941
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I085d27b1b00873bc5b22573ef7eb9d17b8e5e1fd
Gerrit-PatchSet: 3
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Bartosz DziewoƄski <[email protected]>
Gerrit-Reviewer: Anomie <[email protected]>
Gerrit-Reviewer: Daniel Friesen <[email protected]>
Gerrit-Reviewer: Edokter <[email protected]>
Gerrit-Reviewer: Jack Phoenix <[email protected]>
Gerrit-Reviewer: Krinkle <[email protected]>
Gerrit-Reviewer: Mattflaschen <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to