<!doctype html>
<title>Queue a task to fire hashchange event</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<div id="log"></div>
<script>
t = async_test();
window.onload = t.step_func(function () {
  if (location.href.toString().indexOf("#") > -1) {
    location.href = location.href.replace(/#.*$/,'');
    return;
  }
  var root = location.href;
  var oldURLs = [];
  var newURLs = [];

  var timer = null;

  location.hash = 'foo';
  window.onhashchange = t.step_func(function (e) {
    oldURLs.push(e.oldURL);
    newURLs.push(e.newURL);
    if (newURLs.length === 2) {
      check_result();
    } else if (timer === null) {
      timer = setTimeout(function() {check_result()}, 500);
    }
  })

  check_result = t.step_func(function() {
    clearTimeout(timer);
    try {
      assert_array_equals([root, root+"#foo"], oldURLs, "e.newURL");
      assert_array_equals([root+"#foo", root+"#bar"], newURLs, "e.newURL");
      t.done();
    } finally {
      location.hash = "";
    }
  });

  location.hash = 'bar';
});
</script>
