<!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>
