From e15e86ac3f37beb90b3f7ca4aaf48f418f451434 Mon Sep 17 00:00:00 2001 From: El RIDO Date: Sat, 25 Mar 2017 10:18:28 +0100 Subject: [PATCH] improving coverage of existing tests --- js/test.js | 66 ++++++++++++++++++++++++++++++++++++++++++++--- tpl/bootstrap.php | 2 +- tpl/page.php | 2 +- 3 files changed, 65 insertions(+), 5 deletions(-) diff --git a/js/test.js b/js/test.js index 3999158..b2e4107 100644 --- a/js/test.js +++ b/js/test.js @@ -271,7 +271,7 @@ describe('Helper', function () { count = 0; labels.forEach(function(item, i) { // deliberatly using a non-ascii key for replacing invalid characters - var key = item.replace(/[\s;,=]/g, '£'), + var key = item.replace(/[\s;,=]/g, Array(i+2).join('£')), value = (values[i] || values[0]).replace(/[\s;,=]/g, ''); cookieArray.push(key + '=' + value); if (Math.random() < 1 / i) @@ -340,8 +340,24 @@ describe('I18n', function () { $.PrivateBin.I18n.reset(); var alias = $.PrivateBin.I18n._(messageId); $.PrivateBin.I18n.reset(); - return messageId === result && - messageId === alias; + return messageId === result && messageId === alias; + } + ); + jsc.property( + 'replaces %s in strings with first given parameter', + 'string', + '(small nearray) string', + 'string', + function (prefix, params, postfix) { + var prefix = prefix.replace(/%(s|d)/g, '%%'), + postfix = postfix.replace(/%(s|d)/g, '%%'), + translation = prefix + params[0] + postfix; + params.unshift(prefix + '%s' + postfix); + var result = $.PrivateBin.I18n.translate.apply(this, params); + $.PrivateBin.I18n.reset(); + var alias = $.PrivateBin.I18n._.apply(this, params); + $.PrivateBin.I18n.reset(); + return translation === result && translation === alias; } ); }); @@ -371,6 +387,28 @@ describe('Model', function () { return queryString === result; } ); + jsc.property( + 'throws exception on empty query string', + jsc.nearray(jsc.elements(a2zString)), + jsc.nearray(jsc.elements(a2zString)), + 'string', + function (schema, address, fragment) { + var clean = jsdom('', { + url: schema.join('') + '://' + address.join('') + + '/#' + fragment + }), + result = false; + try { + $.PrivateBin.Model.getPasteId(); + } + catch(err) { + result = true; + } + $.PrivateBin.Model.reset(); + clean(); + return result; + } + ); }); describe('getPasteKey', function () { @@ -411,5 +449,27 @@ describe('Model', function () { return fragmentString === result; } ); + jsc.property( + 'throws exception on empty fragment of the URL', + jsc.nearray(jsc.elements(a2zString)), + jsc.nearray(jsc.elements(a2zString)), + jsc.array(jsc.elements(queryString)), + function (schema, address, query) { + var clean = jsdom('', { + url: schema.join('') + '://' + address.join('') + + '/?' + query.join('') + }), + result = false; + try { + $.PrivateBin.Model.getPasteKey(); + } + catch(err) { + result = true; + } + $.PrivateBin.Model.reset(); + clean(); + return result; + } + ); }); }); diff --git a/tpl/bootstrap.php b/tpl/bootstrap.php index 5381863..d47e823 100644 --- a/tpl/bootstrap.php +++ b/tpl/bootstrap.php @@ -69,7 +69,7 @@ if ($MARKDOWN): - + diff --git a/tpl/page.php b/tpl/page.php index 18d60e3..85cdf7c 100644 --- a/tpl/page.php +++ b/tpl/page.php @@ -47,7 +47,7 @@ if ($MARKDOWN): - +