<!doctype html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
async_test(t => {
  let start_length = history.length;
  navigation.onnavigate = t.step_func(e => {
    assert_equals(e.navigationType, "replace");
    assert_true(e.cancelable);
    assert_true(e.canIntercept);
    assert_false(e.userInitiated);
    assert_false(e.hashChange);
    assert_equals(e.downloadRequest, null);
    assert_equals(new URL(e.destination.url).hash, "#1");
    assert_true(e.destination.sameDocument);
    assert_equals(e.destination.key, "");
    assert_equals(e.destination.id, "");
    assert_equals(e.destination.index, -1);
    assert_equals(e.formData, null);
    assert_equals(e.sourceElement, null);
    e.preventDefault();
    t.step_timeout(t.step_func_done(() => {
      assert_equals(location.hash, "");
      assert_equals(history.state, null);
      assert_equals(history.length, start_length);
    }), 0);
  });
  history.replaceState(1, null, "#1");
}, "history.replaceState() fires the navigate event");
</script>
