28 lines
927 B
HTML
28 lines
927 B
HTML
<!doctype html>
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
<script>
|
|
async_test(t => {
|
|
let start_length = history.length;
|
|
|
|
let onpopstate_fired = false;
|
|
window.onpopstate = e => onpopstate_fired = true;
|
|
|
|
navigation.onnavigate = t.step_func(e => {
|
|
e.intercept({ handler: async () => {
|
|
await new Promise(r => t.step_timeout(r, 0));
|
|
t.step_timeout(t.step_func_done(() => {
|
|
assert_equals(location.hash, "#1");
|
|
assert_equals(history.state, "update");
|
|
assert_equals(history.length, start_length + 1);
|
|
assert_false(onpopstate_fired);
|
|
}, 0));
|
|
}});
|
|
});
|
|
|
|
history.pushState("update", "", "#1");
|
|
assert_equals(location.hash, "#1");
|
|
assert_equals(history.state, "update");
|
|
assert_equals(history.length, start_length + 1);
|
|
}, "event.intercept() should proceed if the given promise resolves");
|
|
</script>
|