mediawiki.language.init: Ignore case of language code
authorFomafix <fomafix@googlemail.com>
Wed, 4 Feb 2015 07:48:52 +0000 (07:48 +0000)
committer[[mw:User:Fomafix]] <gerritpatchuploader@gmail.com>
Wed, 4 Feb 2015 07:48:52 +0000 (07:48 +0000)
This allows capitalization suggested by BCP 47 without the risk
of duplicate entries.

Change-Id: I0ebdead5440862c087920fa93e85aeb47464272e

resources/src/mediawiki.language/mediawiki.language.init.js
tests/qunit/suites/resources/mediawiki/mediawiki.language.test.js

index df95d75..b3765c8 100644 (file)
@@ -54,6 +54,7 @@
                 */
                getData: function ( langCode, dataKey ) {
                        var langData = mw.language.data;
+                       langCode = langCode.toLowerCase();
                        if ( langData && langData[langCode] instanceof mw.Map ) {
                                return langData[langCode].get( dataKey );
                        }
@@ -71,6 +72,7 @@
                 */
                setData: function ( langCode, dataKey, value ) {
                        var langData = mw.language.data;
+                       langCode = langCode.toLowerCase();
                        if ( !( langData[langCode] instanceof mw.Map ) ) {
                                langData[langCode] = new mw.Map();
                        }
index 16f90df..a068846 100644 (file)
                }
        } ) );
 
-       QUnit.test( 'mw.language getData and setData', 2, function ( assert ) {
+       QUnit.test( 'mw.language getData and setData', 3, function ( assert ) {
                mw.language.setData( 'en', 'testkey', 'testvalue' );
                assert.equal( mw.language.getData( 'en', 'testkey' ), 'testvalue', 'Getter setter test for mw.language' );
                assert.equal( mw.language.getData( 'en', 'invalidkey' ), undefined, 'Getter setter test for mw.language with invalid key' );
+               mw.language.setData( 'en-us', 'testkey', 'testvalue' );
+               assert.equal( mw.language.getData( 'en-US', 'testkey' ), 'testvalue', 'Case insensitive test for mw.language' );
        } );
 
        QUnit.test( 'mw.language.commafy test', 9, function ( assert ) {