summaryrefslogtreecommitdiff
path: root/www/wiki/extensions/UniversalLanguageSelector/tests/qunit/ext.uls.tests.js
diff options
context:
space:
mode:
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.js93
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.'
+ );
+ } );
+}() );