From a92c235d1da03fa2811abe38ee8b579f4e4d52c8 Mon Sep 17 00:00:00 2001 From: Fomafix Date: Wed, 4 Feb 2015 07:48:52 +0000 Subject: [PATCH] mediawiki.language.init: Ignore case of language code This allows capitalization suggested by BCP 47 without the risk of duplicate entries. Change-Id: I0ebdead5440862c087920fa93e85aeb47464272e --- resources/src/mediawiki.language/mediawiki.language.init.js | 2 ++ .../suites/resources/mediawiki/mediawiki.language.test.js | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/resources/src/mediawiki.language/mediawiki.language.init.js b/resources/src/mediawiki.language/mediawiki.language.init.js index df95d75148..b3765c85e7 100644 --- a/resources/src/mediawiki.language/mediawiki.language.init.js +++ b/resources/src/mediawiki.language/mediawiki.language.init.js @@ -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(); } diff --git a/tests/qunit/suites/resources/mediawiki/mediawiki.language.test.js b/tests/qunit/suites/resources/mediawiki/mediawiki.language.test.js index 16f90df8cf..a068846a9d 100644 --- a/tests/qunit/suites/resources/mediawiki/mediawiki.language.test.js +++ b/tests/qunit/suites/resources/mediawiki/mediawiki.language.test.js @@ -11,10 +11,12 @@ } } ) ); - 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 ) { -- 2.20.1