<!doctype html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
async_test(t => {
  let key = navigation.currentEntry.key;
  let id = navigation.currentEntry.id;
  assert_equals(navigation.entries().length, 1);

  history.pushState("hash", "", "#hash");
  assert_not_equals(key, navigation.currentEntry.key);
  assert_not_equals(id, navigation.currentEntry.id);
  assert_equals(navigation.entries().length, 2);
  assert_equals(navigation.currentEntry.index, 1);

  window.onpopstate = t.step_func_done(() => {
    assert_equals(key, navigation.currentEntry.key);
    assert_equals(id, navigation.currentEntry.id);
    assert_equals(navigation.entries().length, 2);
    assert_equals(navigation.currentEntry.index, 0);
  });
  history.back();
}, "NavigationHistoryEntry's key and id on same-document back navigation");
</script>
