Make all QUnit tests pass for languages other than English
authorSchnark <listenleser@gmail.com>
Tue, 24 Mar 2015 10:33:47 +0000 (10:33 +0000)
committerUmherirrender <umherirrender_de.wp@web.de>
Wed, 1 Apr 2015 19:33:53 +0000 (19:33 +0000)
Some tablesorter tests were failing for a content language different from
English, and the test for two functions from mw.language for a different
UI language.
This patch provides a mocked environment for all these tests, simulating
English language.

Bug: T59776
Change-Id: Ibfc83c34a896dc5fb5e892fb0ffd60e618880781

tests/qunit/suites/resources/jquery/jquery.tablesorter.parsers.test.js
tests/qunit/suites/resources/jquery/jquery.tablesorter.test.js
tests/qunit/suites/resources/mediawiki/mediawiki.language.test.js

index 2c56eea..97a3ae1 100644 (file)
@@ -6,17 +6,40 @@
 
        var text, ipv4,
                simpleMDYDatesInMDY, simpleMDYDatesInDMY, oldMDYDates, complexMDYDates, clobberedDates, MYDates, YDates,
-               currencyData, transformedCurrencyData,
-               config = {
+               currencyData, transformedCurrencyData;
+
+       QUnit.module( 'jquery.tablesorter.parsers', QUnit.newMwEnvironment( {
+               setup: function () {
+                       this.liveMonths = mw.language.months;
+                       mw.language.months = {
+                               'keys': {
+                                       'names': ['january', 'february', 'march', 'april', 'may_long', 'june',
+                                               'july', 'august', 'september', 'october', 'november', 'december'],
+                                       'genitive': ['january-gen', 'february-gen', 'march-gen', 'april-gen', 'may-gen', 'june-gen',
+                                               'july-gen', 'august-gen', 'september-gen', 'october-gen', 'november-gen', 'december-gen'],
+                                       'abbrev': ['jan', 'feb', 'mar', 'apr', 'may', 'jun',
+                                               'jul', 'aug', 'sep', 'oct', 'nov', 'dec']
+                               },
+                               'names': ['January', 'February', 'March', 'April', 'May', 'June',
+                                               'July', 'August', 'September', 'October', 'November', 'December'],
+                               'genitive': ['January', 'February', 'March', 'April', 'May', 'June',
+                                               'July', 'August', 'September', 'October', 'November', 'December'],
+                               'abbrev': ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
+                                               'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
+                       };
+               },
+               teardown: function () {
+                       mw.language.months = this.liveMonths;
+               },
+               config: {
                        wgContentLanguage: 'en',
                        /* default date format of the content language */
                        wgDefaultDateFormat: 'dmy',
                        /* These two are important for numeric interpretations */
                        wgSeparatorTransformTable: ['', ''],
                        wgDigitTransformTable: ['', '']
-               };
-
-       QUnit.module( 'jquery.tablesorter.parsers', QUnit.newMwEnvironment( { config: config } ) );
+               }
+       } ) );
 
        /**
         * For a value, check if the parser recognizes it and how it transforms it
index f7700f8..f63aa27 100644 (file)
                ];
 
        QUnit.module( 'jquery.tablesorter', QUnit.newMwEnvironment( {
+               setup: function () {
+                       this.liveMonths = mw.language.months;
+                       mw.language.months = {
+                               'keys': {
+                                       'names': ['january', 'february', 'march', 'april', 'may_long', 'june',
+                                               'july', 'august', 'september', 'october', 'november', 'december'],
+                                       'genitive': ['january-gen', 'february-gen', 'march-gen', 'april-gen', 'may-gen', 'june-gen',
+                                               'july-gen', 'august-gen', 'september-gen', 'october-gen', 'november-gen', 'december-gen'],
+                                       'abbrev': ['jan', 'feb', 'mar', 'apr', 'may', 'jun',
+                                               'jul', 'aug', 'sep', 'oct', 'nov', 'dec']
+                               },
+                               'names': ['January', 'February', 'March', 'April', 'May', 'June',
+                                               'July', 'August', 'September', 'October', 'November', 'December'],
+                               'genitive': ['January', 'February', 'March', 'April', 'May', 'June',
+                                               'July', 'August', 'September', 'October', 'November', 'December'],
+                               'abbrev': ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
+                                               'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
+                       };
+               },
+               teardown: function () {
+                       mw.language.months = this.liveMonths;
+               },
                config: {
-                       wgMonthNames: ['', 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
-                       wgMonthNamesShort: ['', 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
                        wgDefaultDateFormat: 'dmy',
                        wgSeparatorTransformTable: ['', ''],
                        wgDigitTransformTable: ['', ''],
index d9df650..670914e 100644 (file)
@@ -8,6 +8,12 @@
                },
                teardown: function () {
                        mw.language.data.values = this.liveLangData;
+               },
+               messages: {
+                       // mw.language.listToText test
+                       'and': ' and',
+                       'comma-separator': ', ',
+                       'word-separator': ' '
                }
        } ) );
 
        } );
 
        QUnit.test( 'mw.language.commafy test', 9, function ( assert ) {
+               mw.language.setData( 'en', 'digitGroupingPattern', null );
+               mw.language.setData( 'en', 'digitTransformTable', null );
+               mw.language.setData( 'en', 'separatorTransformTable', null );
+
+               mw.config.set( 'wgUserLanguage', 'en' );
                // Number grouping patterns are as per http://cldr.unicode.org/translation/number-patterns
                assert.equal( mw.language.commafy( 1234.567, '###0.#####' ), '1234.567', 'Pattern with no digit grouping separator defined' );
                assert.equal( mw.language.commafy( 123456789.567, '###0.#####' ), '123456789.567', 'Pattern with no digit grouping separator defined, bigger decimal part' );