<!doctype html>
<title>history.go(0)</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<div id="log"></div>
<script>
  var t = async_test(undefined, {timeout:5000});
  started = false;
  gone = false;
  pages = []
  timer = null;
  start_test_wait = t.step_func(
    function() {
      clearTimeout(timer);
      timer = setTimeout(t.step_func(
        function() {
          try {
            assert_array_equals(pages, [3, 2, 2], "Pages opened during history navigation");
            t.done();
          } finally {
            win.close();
          }
        }
      ), 500);
    }
  );
  t.step(function() {win = window.open("history_entry.html?urls=history_go_zero-1.html,history_forward-2.html");
});
</script>
