QUnit.module( 'mediawiki.language', QUnit.newMwEnvironment( {
setup: function () {
- this.liveLangData = mw.language.data.values;
- mw.language.data.values = $.extend( true, {}, this.liveLangData );
+ this.liveLangData = mw.language.data;
+ mw.language.data = {};
},
teardown: function () {
- mw.language.data.values = this.liveLangData;
+ mw.language.data = this.liveLangData;
},
messages: {
// mw.language.listToText test
}
} ) );
- QUnit.test( 'mw.language getData and setData', 3, function ( assert ) {
+ QUnit.test( 'mw.language getData and setData', 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' );
assert.equal( mw.language.getData( 'en-US', 'testkey' ), 'testvalue', 'Case insensitive test for mw.language' );
} );
- QUnit.test( 'mw.language.commafy test', 9, function ( assert ) {
+ QUnit.test( 'mw.language.commafy test', function ( assert ) {
mw.language.setData( 'en', 'digitGroupingPattern', null );
mw.language.setData( 'en', 'digitTransformTable', null );
mw.language.setData( 'en', 'separatorTransformTable', null );
assert.equal( mw.language.commafy( 123456789.567, '###,###,#0.00' ), '1,234,567,89.56', 'Decimal part as group of 3 and last one 2' );
} );
+ QUnit.test( 'mw.language.convertNumber', function ( assert ) {
+ mw.language.setData( 'en', 'digitGroupingPattern', null );
+ mw.language.setData( 'en', 'digitTransformTable', null );
+ mw.language.setData( 'en', 'separatorTransformTable', { ',': '.', '.': ',' } );
+ mw.config.set( 'wgUserLanguage', 'en' );
+
+ assert.equal( mw.language.convertNumber( 1800 ), '1.800', 'formatting' );
+ assert.equal( mw.language.convertNumber( '1.800', true ), '1800', 'unformatting' );
+ } );
+
function grammarTest( langCode, test ) {
// The test works only if the content language is opt.language
// because it requires [lang].js to be loaded.
QUnit.test( 'Grammar test for lang=' + langCode, function ( assert ) {
- QUnit.expect( test.length );
for ( var i = 0; i < test.length; i++ ) {
assert.equal(
word: 'Wikipedia',
grammarForm: 'תחילית',
expected: '־Wikipedia',
- description: 'GAdd a hyphen (maqaf) before non-Hebrew letters'
+ description: 'Add a hyphen (maqaf) before non-Hebrew letters'
},
{
word: '1995',
grammarForm: 'prepositional',
expected: 'данных',
description: 'Grammar test for prepositional case, данные -> данных'
+ },
+ {
+ word: 'русский',
+ grammarForm: 'languagegen',
+ expected: 'русского',
+ description: 'Grammar test for languagegen case, русский -> русского'
+ },
+ {
+ word: 'немецкий',
+ grammarForm: 'languagegen',
+ expected: 'немецкого',
+ description: 'Grammar test for languagegen case, немецкий -> немецкого'
+ },
+ {
+ word: 'иврит',
+ grammarForm: 'languagegen',
+ expected: 'иврита',
+ description: 'Grammar test for languagegen case, иврит -> иврита'
+ },
+ {
+ word: 'эсперанто',
+ grammarForm: 'languagegen',
+ expected: 'эсперанто',
+ description: 'Grammar test for languagegen case, эсперанто -> эсперанто'
+ },
+ {
+ word: 'русский',
+ grammarForm: 'languageprep',
+ expected: 'русском',
+ description: 'Grammar test for languageprep case, русский -> русском'
+ },
+ {
+ word: 'немецкий',
+ grammarForm: 'languageprep',
+ expected: 'немецком',
+ description: 'Grammar test for languageprep case, немецкий -> немецком'
+ },
+ {
+ word: 'идиш',
+ grammarForm: 'languageprep',
+ expected: 'идише',
+ description: 'Grammar test for languageprep case, идиш -> идише'
+ },
+ {
+ word: 'эсперанто',
+ grammarForm: 'languageprep',
+ expected: 'эсперанто',
+ description: 'Grammar test for languageprep case, эсперанто -> эсперанто'
+ },
+ {
+ word: 'русский',
+ grammarForm: 'languageadverb',
+ expected: 'по-русски',
+ description: 'Grammar test for languageadverb case, русский -> по-русски'
+ },
+ {
+ word: 'немецкий',
+ grammarForm: 'languageadverb',
+ expected: 'по-немецки',
+ description: 'Grammar test for languageadverb case, немецкий -> по-немецки'
+ },
+ {
+ word: 'иврит',
+ grammarForm: 'languageadverb',
+ expected: 'на иврите',
+ description: 'Grammar test for languageadverb case, иврит -> на иврите'
+ },
+ {
+ word: 'эсперанто',
+ grammarForm: 'languageadverb',
+ expected: 'на эсперанто',
+ description: 'Grammar test for languageadverb case, эсперанто -> на эсперанто'
+ },
+ {
+ word: 'гуарани',
+ grammarForm: 'languageadverb',
+ expected: 'на языке гуарани',
+ description: 'Grammar test for languageadverb case, гуарани -> на языке гуарани'
}
],
],
uk: [
- {
- word: 'тесть',
- grammarForm: 'genitive',
- expected: 'тестя',
- description: 'Grammar test for genitive case'
- },
{
word: 'Вікіпедія',
grammarForm: 'genitive',
description: 'Grammar test for genitive case'
},
{
- word: 'установка',
- grammarForm: 'genitive',
- expected: 'установки',
- description: 'Grammar test for genitive case'
- },
- {
- word: 'похоти',
+ word: 'Віківиди',
grammarForm: 'genitive',
- expected: 'поÑ\85оÑ\82ей',
+ expected: 'Ð\92Ñ\96кÑ\96видÑ\96в',
description: 'Grammar test for genitive case'
},
{
- word: 'доводÑ\8b',
+ word: 'Ð\92Ñ\96кÑ\96Ñ\86иÑ\82аÑ\82и',
grammarForm: 'genitive',
- expected: 'доводов',
+ expected: 'Ð\92Ñ\96кÑ\96Ñ\86иÑ\82аÑ\82',
description: 'Grammar test for genitive case'
},
{
- word: 'пеÑ\81Ñ\87аник',
+ word: 'Ð\92Ñ\96кÑ\96пÑ\96дÑ\80Ñ\83Ñ\87ник',
grammarForm: 'genitive',
- expected: 'пеÑ\81Ñ\87аника',
+ expected: 'Ð\92Ñ\96кÑ\96пÑ\96дÑ\80Ñ\83Ñ\87ника',
description: 'Grammar test for genitive case'
},
{
}
} );
- QUnit.test( 'List to text test', 4, function ( assert ) {
+ QUnit.test( 'List to text test', function ( assert ) {
assert.equal( mw.language.listToText( [] ), '', 'Blank list' );
assert.equal( mw.language.listToText( [ 'a' ] ), 'a', 'Single item' );
assert.equal( mw.language.listToText( [ 'a', 'b' ] ), 'a and b', 'Two items' );