diff options
Diffstat (limited to 'testing/web-platform/tests/html/browsers/browsing-the-web/history-traversal/event-order/before-load-hash-twice.html')
-rw-r--r-- | testing/web-platform/tests/html/browsers/browsing-the-web/history-traversal/event-order/before-load-hash-twice.html | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/testing/web-platform/tests/html/browsers/browsing-the-web/history-traversal/event-order/before-load-hash-twice.html b/testing/web-platform/tests/html/browsers/browsing-the-web/history-traversal/event-order/before-load-hash-twice.html new file mode 100644 index 0000000000..7c8df11843 --- /dev/null +++ b/testing/web-platform/tests/html/browsers/browsing-the-web/history-traversal/event-order/before-load-hash-twice.html @@ -0,0 +1,29 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Popstate/hashchange/load event ordering</title> + +<script> +// Set these up super-early before we hit the network for the test harness, just in case. +window.eventOrder = []; +window.onhashchange = () => window.eventOrder.push("hashchange"); +window.onpopstate = () => window.eventOrder.push("popstate"); +window.onload = () => window.eventOrder.push("load"); +</script> + +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> + +<script> +async_test(t => { + assert_array_equals(window.eventOrder, []); + + window.addEventListener("load", t.step_func_done(() => { + assert_array_equals(window.eventOrder, ["popstate", "popstate", "hashchange", "hashchange", "load"]); + })); + + location.hash = "#1"; + assert_array_equals(window.eventOrder, ["popstate"]); + location.hash = "#2"; + assert_array_equals(window.eventOrder, ["popstate", "popstate"]); +}, "when changing hash twice, before load"); +</script> |