making I18n class testable, adding minimal test

This commit is contained in:
El RIDO 2017-03-25 09:41:24 +01:00
parent 9d2e282772
commit 2a19b42b15
No known key found for this signature in database
GPG key ID: 0F5C940A6BD81F92
2 changed files with 35 additions and 2 deletions

View file

@ -538,6 +538,18 @@ jQuery.PrivateBin = function($, sjcl, Base64, RawDeflate) {
});
}
/**
* resets state, used for unit testing
*
* @name I18n.reset
* @function
*/
me.reset = function()
{
language = null;
translations = {};
}
return me;
})(window, document);
@ -810,7 +822,6 @@ jQuery.PrivateBin = function($, sjcl, Base64, RawDeflate) {
$cipherData = $templates = id = symmetricKey = null;
}
/**
* init navigation manager
*

View file

@ -270,7 +270,8 @@ describe('Helper', function () {
cookieArray = [],
count = 0;
labels.forEach(function(item, i) {
var key = item.replace(/[\s;,=]/g, 'x'),
// deliberatly using a non-ascii key for replacing invalid characters
var key = item.replace(/[\s;,=]/g, '£'),
value = (values[i] || values[0]).replace(/[\s;,=]/g, '');
cookieArray.push(key + '=' + value);
if (Math.random() < 1 / i)
@ -325,6 +326,27 @@ describe('Helper', function () {
});
});
describe('I18n', function () {
describe('translate', function () {
before(function () {
$.PrivateBin.I18n.reset();
});
jsc.property(
'returns message ID unchanged if no translation found',
'string',
function (messageId) {
var result = $.PrivateBin.I18n.translate(messageId);
$.PrivateBin.I18n.reset();
var alias = $.PrivateBin.I18n._(messageId);
$.PrivateBin.I18n.reset();
return messageId === result &&
messageId === alias;
}
);
});
});
describe('Model', function () {
describe('getPasteId', function () {
before(function () {