Note: After publishing, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
- Opera: Press Ctrl-F5.
// <nowiki>
/*
* Test suite for [[I18n-js]].
*
* @author Cqm <https://dev.wikia.com/User:Cqm>
*/
/*global mediaWiki, importArticle */
/*jshint bitwise:true, camelcase:true, curly:true, eqeqeq:true, es3:false,
forin:true, immed:true, indent:4, latedef:true, newcap:true,
noarg:true, noempty:true, nonew:true, plusplus:true, quotmark:single,
undef:true, unused:true, strict:true, trailing:true,
browser:true, devel:false, jquery:true,
onevar:true
*/
;(function (mw) {
'use strict';
var testCases = [
/* Example:
{
message: 'message_name',
method: 'plain|escape|parse|markdown',
expected: 'expected output'
}
*/
];
function runTests() {
window.dev.i18n.loadMessages('u:dev:MediaWiki:Custom-I18n-js/test.json').done(function (i18n) {
var results = {
passed: 0,
failed: 0,
errors: []
};
console.log('### Starting I18n-js tests ###');
testCases.forEach(function (testCase) {
var output = i18n.msg(testCase.message)[testCase.method]();
if (output === testCase.expected) {
console.log(testCase.message + ': SUCCESS');
results.passed += 1;
} else {
console.log(testCase.message + ': FAIL');
results.failed += 1;
results.errors.push(testCase.message + ': Expected: ' + testCase.expected +
', Got: ' + output);
}
});
if (results.errors.length) {
console.log('## Errors');
console.log(results.errors.join('\n'));
console.log();
}
console.log('## Results');
console.log('Passed: ' + results.passed);
console.log('Failed: ' + results.failed);
console.log('### I18n-js tests completed ###');
});
}
mw.hook('dev.i18n').add(runTests);
importArticle({ type: 'script', article: 'u:dev:I18n-js/code.js' });
}(mediaWiki));