<!doctype html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<div id="d"></div>
<script>
promise_test(async () => {
let onnavigate_called = false;
navigation.onnavigate = () => onnavigate_called = true;
await navigation.navigate("#d").committed;
assert_equals(location.hash, "#d");
assert_true(onnavigate_called);
assert_equals(document.querySelector(":target"), d);
}, "navigate() navigates same-document and fires onnavigate (async)");
test(() => {
let onnavigate_called = false;
navigation.onnavigate = () => onnavigate_called = true;
navigation.navigate("#d");
assert_equals(location.hash, "#d");
assert_true(onnavigate_called);
assert_equals(document.querySelector(":target"), d);
}, "navigate() navigates same-document and fires onnavigate (sync)");
</script>