mediawiki.jqueryMsg: Update tests to mock magic.SITENAME
authorTimo Tijhof <krinklemail@gmail.com>
Tue, 29 Sep 2015 19:06:33 +0000 (12:06 -0700)
committerKrinkle <krinklemail@gmail.com>
Fri, 6 Nov 2015 19:01:12 +0000 (19:01 +0000)
Change-Id: I75f92986dc0e44c85e592ab0bb969431993259fd

resources/src/mediawiki/mediawiki.jqueryMsg.js
tests/qunit/suites/resources/mediawiki/mediawiki.jqueryMsg.test.js

index bf0884b..2fe831e 100644 (file)
@@ -53,7 +53,6 @@
                        // applies to direct calls to jqueryMsg. The default for mediawiki.js itself
                        // is 'text', including when it uses jqueryMsg.
                        format: 'parse'
-
                };
 
        /**
         * @param {Object} data
         */
        mw.jqueryMsg.setParserDefaults = function ( data ) {
-               if ( data.allowedHtmlElements ) {
-                       parserDefaults.allowedHtmlElements = data.allowedHtmlElements;
-               }
+               $.extend( parserDefaults, data );
+       };
+
+       /**
+        * Get current parser defaults.
+        *
+        * Primarily used for the unit test. Returns a copy.
+        *
+        * @private
+        * @return {Object}
+        */
+       mw.jqueryMsg.getParserDefaults = function () {
+               return $.extend( {}, parserDefaults );
        };
 
        /**
index f65ff16..9473137 100644 (file)
        QUnit.module( 'mediawiki.jqueryMsg', QUnit.newMwEnvironment( {
                setup: function () {
                        this.originalMwLanguage = mw.language;
+                       this.parserDefaults = mw.jqueryMsg.getParserDefaults();
+                       mw.jqueryMsg.setParserDefaults( {
+                               magic: {
+                                       SITENAME: 'Wiki'
+                               }
+                       } );
 
                        specialCharactersPageName = '"Who" wants to be a millionaire & live on \'Exotic Island\'?';
 
                        expectedListUsers = '注册<a title="Special:ListUsers" href="/wiki/Special:ListUsers">用户</a>';
                        expectedListUsersSitename = '注册<a title="Special:ListUsers" href="/wiki/Special:ListUsers">用户' +
-                               mw.config.get( 'wgSiteName' ) + '</a>';
+                               'Wiki</a>';
 
                        expectedEntrypoints = '<a href="https://www.mediawiki.org/wiki/Manual:index.php">index.php</a>';
 
@@ -32,6 +38,7 @@
                },
                teardown: function () {
                        mw.language = this.originalMwLanguage;
+                       mw.jqueryMsg.setParserDefaults( this.parserDefaults );
                },
                config: {
                        wgArticlePath: '/wiki/$1',
                assert.equal( formatParse( 'plural-msg', 1 ), 'Found 1 item', 'Singular test for english' );
                assert.equal( formatParse( 'plural-msg', 2 ), 'Found 2 items', 'Plural test for english' );
                assert.equal( formatParse( 'plural-msg-explicit-forms-nested', 6 ), 'Found 6 results', 'Plural message with explicit plural forms' );
-               assert.equal( formatParse( 'plural-msg-explicit-forms-nested', 0 ), 'Found no results in ' + mw.config.get( 'wgSiteName' ), 'Plural message with explicit plural forms, with nested {{SITENAME}}' );
+               assert.equal( formatParse( 'plural-msg-explicit-forms-nested', 0 ), 'Found no results in Wiki', 'Plural message with explicit plural forms, with nested {{SITENAME}}' );
                assert.equal( formatParse( 'plural-msg-explicit-forms-nested', 1 ), 'Found 1 result', 'Plural message with explicit plural forms with placeholder nested' );
        } );
 
        } );
 
        QUnit.test( 'Grammar', 2, function ( assert ) {
-               assert.equal( formatParse( 'grammar-msg' ), 'Przeszukaj ' + mw.config.get( 'wgSiteName' ), 'Grammar Test with sitename' );
+               assert.equal( formatParse( 'grammar-msg' ), 'Przeszukaj Wiki', 'Grammar Test with sitename' );
 
                mw.messages.set( 'grammar-msg-wrong-syntax', 'Przeszukaj {{GRAMMAR:grammar_case_xyz}}' );
                assert.equal( formatParse( 'grammar-msg-wrong-syntax' ), 'Przeszukaj ', 'Grammar Test with wrong grammar template syntax' );
 
                assertBothModes( assert, [ 'plural-msg', 5 ], 'Found 5 items', 'plural is resolved' );
 
-               assertBothModes( assert, [ 'grammar-msg' ], 'Przeszukaj ' + mw.config.get( 'wgSiteName' ), 'grammar is resolved' );
+               assertBothModes( assert, [ 'grammar-msg' ], 'Przeszukaj Wiki', 'grammar is resolved' );
 
                mw.config.set( 'wgUserLanguage', 'en' );
                assertBothModes( assert, [ 'formatnum-msg', '987654321.654321' ], '987,654,321.654', 'formatnum is resolved' );