testing both cases of the logic required for #167

This commit is contained in:
El RIDO 2017-10-22 10:39:18 +02:00
parent 6dbb098d7a
commit 414693fa90
No known key found for this signature in database
GPG Key ID: 0F5C940A6BD81F92
5 changed files with 30 additions and 14 deletions

2
.gitattributes vendored
View File

@ -2,8 +2,6 @@ doc/ export-ignore
tst/ export-ignore tst/ export-ignore
js/.istanbul.yml export-ignore js/.istanbul.yml export-ignore
js/test.js export-ignore js/test.js export-ignore
js/mocha-3.2.0.js export-ignore
css/mocha-3.2.0.css export-ignore
.codeclimate.yml export-ignore .codeclimate.yml export-ignore
.csslintrc export-ignore .csslintrc export-ignore
.dockerignore export-ignore .dockerignore export-ignore

View File

@ -965,10 +965,14 @@ jQuery.PrivateBin = function($, sjcl, Base64, RawDeflate) {
* *
* @name UiHelper.mockHistoryChange * @name UiHelper.mockHistoryChange
* @function * @function
* @param {string} state (optional) state to mock
*/ */
me.mockHistoryChange = function() me.mockHistoryChange = function(state)
{ {
historyChange($.Event('popstate', {originalEvent: new PopStateEvent('popstate', {state: null}), target: window})); if (typeof state === 'undefined') {
state = null;
}
historyChange($.Event('popstate', {originalEvent: new PopStateEvent('popstate', {state: state}), target: window}));
} }
/** /**

View File

@ -818,27 +818,41 @@ describe('Model', function () {
}); });
describe('UiHelper', function () { describe('UiHelper', function () {
// TODO: As per https://github.com/tmpvar/jsdom/issues/1565 there is no navigation support in jsdom, yet.
// for now we use a mock function to trigger the event
describe('historyChange', function () { describe('historyChange', function () {
before(function () { before(function () {
$.PrivateBin.Helper.reset(); $.PrivateBin.Helper.reset();
}); });
// TODO: As per https://github.com/tmpvar/jsdom/issues/1565 there is no navigation support in jsdom, yet.
// for now we use a mock function to trigger the event
jsc.property( jsc.property(
'returns the URL without query & fragment', 'redirects to home, when the state is null',
jsc.elements(schemas), jsc.elements(schemas),
jsc.nearray(jsc.elements(a2zString)), jsc.nearray(jsc.elements(a2zString)),
jsc.array(jsc.elements(queryString)), function (schema, address) {
'string',
function (schema, address, query, fragment) {
var expected = schema + '://' + address.join('') + '/', var expected = schema + '://' + address.join('') + '/',
clean = jsdom('', {url: expected + '?' + query.join('') + '#' + fragment}); clean = jsdom('', {url: expected});
$.PrivateBin.UiHelper.mockHistoryChange(); $.PrivateBin.UiHelper.mockHistoryChange();
var result = window.location.href; var result = window.location.href;
clean(); clean();
console.log(expected, result); return expected === result;
}
);
jsc.property(
'does not redirect to home, when a new paste is created',
jsc.elements(schemas),
jsc.nearray(jsc.elements(a2zString)),
jsc.array(jsc.elements(queryString)),
jsc.nearray(jsc.elements(base64String)),
function (schema, address, query, fragment) {
var expected = schema + '://' + address.join('') + '/' + '?' + query.join('') + '#' + fragment.join(''),
clean = jsdom('', {url: expected});
$.PrivateBin.UiHelper.mockHistoryChange([{type: 'newpaste'}, '', expected]);
var result = window.location.href;
clean();
return expected === result; return expected === result;
} }
); );

View File

@ -69,7 +69,7 @@ if ($MARKDOWN):
<?php <?php
endif; endif;
?> ?>
<script type="text/javascript" src="js/privatebin.js?<?php echo rawurlencode($VERSION); ?>" integrity="sha512-08YP16cuZ9x9zHHsPLEnAQU2vD8xXFGD0KYfYZeRkje8hSUhf/j1F1ifWKZCVoZST2XXA1PJjnVHTcKxeWAGNA==" crossorigin="anonymous"></script> <script type="text/javascript" src="js/privatebin.js?<?php echo rawurlencode($VERSION); ?>" integrity="sha512-m9jvM3XYbrYmKTg/UNhGytuBsMQ7t6V/s/IdCUJa0UNH459k4ryJgYc/zVAOjgTddE3KZ7yZ406XJ9Fud1wJbg==" crossorigin="anonymous"></script>
<!--[if lt IE 10]> <!--[if lt IE 10]>
<style type="text/css">body {padding-left:60px;padding-right:60px;} #ienotice {display:block;} #oldienotice {display:block;}</style> <style type="text/css">body {padding-left:60px;padding-right:60px;} #ienotice {display:block;} #oldienotice {display:block;}</style>
<![endif]--> <![endif]-->

View File

@ -47,7 +47,7 @@ if ($MARKDOWN):
<?php <?php
endif; endif;
?> ?>
<script type="text/javascript" src="js/privatebin.js?<?php echo rawurlencode($VERSION); ?>" integrity="sha512-08YP16cuZ9x9zHHsPLEnAQU2vD8xXFGD0KYfYZeRkje8hSUhf/j1F1ifWKZCVoZST2XXA1PJjnVHTcKxeWAGNA==" crossorigin="anonymous"></script> <script type="text/javascript" src="js/privatebin.js?<?php echo rawurlencode($VERSION); ?>" integrity="sha512-m9jvM3XYbrYmKTg/UNhGytuBsMQ7t6V/s/IdCUJa0UNH459k4ryJgYc/zVAOjgTddE3KZ7yZ406XJ9Fud1wJbg==" crossorigin="anonymous"></script>
<!--[if lt IE 10]> <!--[if lt IE 10]>
<style type="text/css">body {padding-left:60px;padding-right:60px;} #ienotice {display:block;} #oldienotice {display:block;}</style> <style type="text/css">body {padding-left:60px;padding-right:60px;} #ienotice {display:block;} #oldienotice {display:block;}</style>
<![endif]--> <![endif]-->