blob: 9b0baa1c92804b20601aabe19965d3a08409181f [file] [log] [blame]
<!doctype html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
async_test(t => {
window.onload = t.step_func(() => {
let abort_signal;
let onabort_called = false;
appHistory.onnavigatesuccess = t.unreached_func("onnavigatesuccess");
appHistory.onnavigate = t.step_func(e => {
abort_signal = e.signal;
abort_signal.onabort = () => onabort_called = true;
e.respondWith(new Promise(resolve => t.step_timeout(resolve, 0)));
});
appHistory.navigate("?1");
window.stop();
assert_true(abort_signal.aborted);
assert_true(onabort_called);
// Complete the test asynchronously to ensure that onnavigatesuccess
// didn't fire on a microtask.
t.step_timeout(t.step_func_done(() => {}), 5);
});
}, "window.stop() cancels AppHistoryNavigateEvent.respondWith and signals AppHistoryNavigateEvent.signal");
</script>