diff options
Diffstat (limited to 'www/wiki/extensions/UniversalLanguageSelector/tests/qunit/ext.uls.tests.js')
-rw-r--r-- | www/wiki/extensions/UniversalLanguageSelector/tests/qunit/ext.uls.tests.js | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/www/wiki/extensions/UniversalLanguageSelector/tests/qunit/ext.uls.tests.js b/www/wiki/extensions/UniversalLanguageSelector/tests/qunit/ext.uls.tests.js new file mode 100644 index 00000000..4d7e428c --- /dev/null +++ b/www/wiki/extensions/UniversalLanguageSelector/tests/qunit/ext.uls.tests.js @@ -0,0 +1,93 @@ +/*! + * QUnit tests for ULS. + * + * Copyright (C) 2012 Alolita Sharma, Amir Aharoni, Arun Ganesh, Brandon Harris, + * Niklas Laxström, Pau Giner, Santhosh Thottingal, Siebrand Mazeland and other + * contributors. See CREDITS for a list. + * + * UniversalLanguageSelector is dual licensed GPLv2 or later and MIT. You don't + * have to do anything special to choose one license or the other and you don't + * have to notify anyone which license you are using. You are free to use + * UniversalLanguageSelector in commercial projects as long as the copyright + * header is left intact. See files GPL-LICENSE and MIT-LICENSE for details. + * + * @file + * @ingroup Extensions + * @licence GNU General Public Licence 2.0 or later + * @licence MIT License + */ + +( function () { + 'use strict'; + + QUnit.module( 'ext.uls', QUnit.newMwEnvironment() ); + + QUnit.test( 'Initial check', function ( assert ) { + assert.ok( $.fn.uls, '$.fn.uls is defined' ); + } ); + + QUnit.test( 'Custom langdb', function ( assert ) { + // This is a custom non-standard language code used in MW. + // If it's not defined, then, for example, + // its direction cannot be acquired using the langdb utils. + assert.strictEqual( $.uls.data.getDir( 'als' ), 'ltr', 'The direction of custom MW language als is ltr.' ); + } ); + + QUnit.test( 'User preferences', function ( assert ) { + var prefName, prefs, prefsToSave, readPrefs, done; + + // 'gofanim' means "fonts" in Hebrew. + // Here it's used as a meaningless word, to test + // the preferences without changing anything useful. + prefName = 'gofanim'; + prefs = mw.uls.preferences(); + prefsToSave = {}; + + prefsToSave[ prefName ] = { + fonts: { + qqy: 'Megafont' + } + }; + + prefs.set( prefName, prefsToSave ); + + readPrefs = prefs.get( prefName ); + assert.strictEqual( + readPrefs[ prefName ].fonts.qqy, + 'Megafont', + 'Correct value for the font name' + ); + + done = assert.async(); + prefs.save( function ( successSave ) { + assert.ok( successSave, 'Options saving API did not produce an error.' ); + // Delete old options + prefs.set( prefName, undefined ); + prefs.save( function () { + done(); + } ); + } ); + } ); + + QUnit.test( 'Common languages', function ( assert ) { + var i, foundTagalog, languagesInPH; + + // Bug 49847 + foundTagalog = false; + languagesInPH = mw.uls.getFrequentLanguageList( 'PH' ); + + for ( i = 0; i < languagesInPH.length; i++ ) { + if ( $.uls.data.isRedirect( languagesInPH[ i ] ) === 'tl' || + languagesInPH[ i ] === 'tl' + ) { + foundTagalog = true; + + break; + } + } + assert.ok( + foundTagalog, + 'Tagalog is one of the languages presented to users in the Philippines.' + ); + } ); +}() ); |