<!doctype html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
async_test(t => {
let start_length = navigation.entries().length;
let start_index = navigation.currentEntry.index;
// Wait for after the load event so that the navigation doesn't get converted
// into a replace navigation.
window.onload = () => t.step_timeout(() => {
navigation.navigate("#foo").committed.then(() => {
assert_true(navigation.canGoBack);
navigation.onnavigate = t.step_func(e => e.intercept());
navigation.back().committed.then(t.step_func_done(() => {
assert_equals(navigation.entries().length, start_length + 1);
assert_equals(navigation.currentEntry, navigation.entries()[start_index]);
}));
});
}, 0);
}, "event.intercept() can intercept navigation.back()");
</script>