blob: 6e8891c0f1f867416fd1049e23534f842c4d1edc [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<base href="/">
<script src="/js-test-resources/js-test.js"></script>
<script>
jsTestIsAsync = true;
description('Tests that ReplaceState should not change document URL if URL argument is null.');
function testNullUrl() {
debug('Push item one');
history.pushState({}, 'page 1', '/one');
debug('Replace item one with null url');
history.replaceState({}, 'replaced page 1');
debug('Push item two');
history.pushState({}, 'page 2', '/two');
debug('Going back to item one');
history.back();
}
function testEmptyUrl() {
debug('Replace item one with empty url');
history.replaceState('StopEntry', 'replaced page 1 again', '');
debug('Push item two');
history.pushState({}, 'page 2', '/two');
debug('Going back to item one');
history.back();
}
window.onpopstate = function(event) {
if (event.state != 'StopEntry') {
shouldBeEqualToString('document.location.href', 'http://127.0.0.1:8000/one');
setTimeout(testEmptyUrl, 0);
} else {
shouldBeEqualToString('document.location.href', 'http://127.0.0.1:8000/');
finishJSTest();
}
}
</script>
</head>
<body onload="testNullUrl()">
</body>
</html>