Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

<!doctype html>
<!-- this tests the spec as it hopefully will be once bug https://www.w3.org/Bugs/Public/show_bug.cgi?id=17155 is fixed -->
<title>Fragment Navigation: hashchange event multiple changes old/newURL</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<body>
<div id="log"></div>
<script>
var t = async_test();
t.step(function() {
var original_url = location.href;
assert_equals(location.hash, "", "Page must be loaded with no hash");
location.hash = "test";
var count = 0;
var mid_url = location.href;
addEventListener("hashchange",
t.step_func(function(e) {
if (count === 0) {
assert_equals(e.oldURL, original_url, "oldURL property first update");
assert_equals(e.newURL, mid_url, "newURL property first update");
count = 1;
} else if (count === 1) {
assert_equals(e.oldURL, mid_url, "oldURL property second update");
assert_equals(e.newURL, location.href, "newURL property second update");
location.hash = "";
t.done();
}
}), true);
location.hash = "test1";
});
</script>