had to introduce a mock function to test the historyChange state
This commit is contained in:
parent
379571d522
commit
6dbb098d7a
4 changed files with 20 additions and 8 deletions
|
@ -866,7 +866,7 @@ jQuery.PrivateBin = function($, sjcl, Base64, RawDeflate) {
|
||||||
{
|
{
|
||||||
var currentLocation = Helper.baseUri();
|
var currentLocation = Helper.baseUri();
|
||||||
if (event.originalEvent.state === null && // no state object passed
|
if (event.originalEvent.state === null && // no state object passed
|
||||||
event.originalEvent.target.location.href === currentLocation && // target location is home page
|
event.target.location.href === currentLocation && // target location is home page
|
||||||
window.location.href === currentLocation // and we are not already on the home page
|
window.location.href === currentLocation // and we are not already on the home page
|
||||||
) {
|
) {
|
||||||
// redirect to home page
|
// redirect to home page
|
||||||
|
@ -958,6 +958,19 @@ jQuery.PrivateBin = function($, sjcl, Base64, RawDeflate) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* trigger a history (pop) state change
|
||||||
|
*
|
||||||
|
* used to test the UiHelper.historyChange private function
|
||||||
|
*
|
||||||
|
* @name UiHelper.mockHistoryChange
|
||||||
|
* @function
|
||||||
|
*/
|
||||||
|
me.mockHistoryChange = function()
|
||||||
|
{
|
||||||
|
historyChange($.Event('popstate', {originalEvent: new PopStateEvent('popstate', {state: null}), target: window}));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* initialize
|
* initialize
|
||||||
*
|
*
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
var jsc = require('jsverify'),
|
var jsc = require('jsverify'),
|
||||||
jsdom = require('jsdom-global'),
|
jsdom = require('jsdom-global'),
|
||||||
cleanup = jsdom(),
|
cleanup = jsdom(),
|
||||||
EventEmitter = require('events'),
|
|
||||||
|
|
||||||
a2zString = ['a','b','c','d','e','f','g','h','i','j','k','l','m',
|
a2zString = ['a','b','c','d','e','f','g','h','i','j','k','l','m',
|
||||||
'n','o','p','q','r','s','t','u','v','w','x','y','z'],
|
'n','o','p','q','r','s','t','u','v','w','x','y','z'],
|
||||||
|
@ -824,6 +823,8 @@ describe('UiHelper', 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',
|
'returns the URL without query & fragment',
|
||||||
jsc.elements(schemas),
|
jsc.elements(schemas),
|
||||||
|
@ -832,11 +833,9 @@ describe('UiHelper', function () {
|
||||||
'string',
|
'string',
|
||||||
function (schema, address, query, fragment) {
|
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 + '?' + query.join('') + '#' + fragment});
|
||||||
emitter = new EventEmitter();
|
|
||||||
|
|
||||||
$.PrivateBin.UiHelper.init();
|
$.PrivateBin.UiHelper.mockHistoryChange();
|
||||||
emitter.emit('popstate');
|
|
||||||
var result = window.location.href;
|
var result = window.location.href;
|
||||||
clean();
|
clean();
|
||||||
console.log(expected, result);
|
console.log(expected, result);
|
||||||
|
|
|
@ -69,7 +69,7 @@ if ($MARKDOWN):
|
||||||
<?php
|
<?php
|
||||||
endif;
|
endif;
|
||||||
?>
|
?>
|
||||||
<script type="text/javascript" src="js/privatebin.js?<?php echo rawurlencode($VERSION); ?>" integrity="sha512-gTAGAlxWTLH1PaXA4q9l0kME8wPPWi2iub5uU7HZ3A2bisLtjMIsaZ/Ecu4+sawFvvedAzbh9Y4rR34Ct3oF5Q==" crossorigin="anonymous"></script>
|
<script type="text/javascript" src="js/privatebin.js?<?php echo rawurlencode($VERSION); ?>" integrity="sha512-08YP16cuZ9x9zHHsPLEnAQU2vD8xXFGD0KYfYZeRkje8hSUhf/j1F1ifWKZCVoZST2XXA1PJjnVHTcKxeWAGNA==" 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]-->
|
||||||
|
|
|
@ -47,7 +47,7 @@ if ($MARKDOWN):
|
||||||
<?php
|
<?php
|
||||||
endif;
|
endif;
|
||||||
?>
|
?>
|
||||||
<script type="text/javascript" src="js/privatebin.js?<?php echo rawurlencode($VERSION); ?>" integrity="sha512-gTAGAlxWTLH1PaXA4q9l0kME8wPPWi2iub5uU7HZ3A2bisLtjMIsaZ/Ecu4+sawFvvedAzbh9Y4rR34Ct3oF5Q==" crossorigin="anonymous"></script>
|
<script type="text/javascript" src="js/privatebin.js?<?php echo rawurlencode($VERSION); ?>" integrity="sha512-08YP16cuZ9x9zHHsPLEnAQU2vD8xXFGD0KYfYZeRkje8hSUhf/j1F1ifWKZCVoZST2XXA1PJjnVHTcKxeWAGNA==" 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]-->
|
||||||
|
|
Loading…
Reference in a new issue