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; return me;
})(window, document); })(window, document);
@ -810,7 +822,6 @@ jQuery.PrivateBin = function($, sjcl, Base64, RawDeflate) {
$cipherData = $templates = id = symmetricKey = null; $cipherData = $templates = id = symmetricKey = null;
} }
/** /**
* init navigation manager * init navigation manager
* *

View File

@ -270,7 +270,8 @@ describe('Helper', function () {
cookieArray = [], cookieArray = [],
count = 0; count = 0;
labels.forEach(function(item, i) { 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, ''); value = (values[i] || values[0]).replace(/[\s;,=]/g, '');
cookieArray.push(key + '=' + value); cookieArray.push(key + '=' + value);
if (Math.random() < 1 / i) 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('Model', function () {
describe('getPasteId', function () { describe('getPasteId', function () {
before(function () { before(function () {