| <!doctype html> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script> |
| async_test(t => { |
| let events = []; |
| function finish() { |
| assert_array_equals(events, ["onnavigate", "onnavigateerror", "promiserejected"]); |
| t.done(); |
| } |
| |
| appHistory.onnavigate = e => { |
| events.push("onnavigate"); |
| e.transitionWhile(Promise.reject()); |
| }; |
| appHistory.onnavigatesuccess = () => events.push("onnavigatesuccess"); |
| appHistory.onnavigateerror = () => events.push("onnavigateerror"); |
| window.onhashchange = () => events.push("onhashchange"); |
| window.onpopstate = () => events.push("onpopstate"); |
| appHistory.navigate("#1").then( |
| () => events.push("promisefulfilled"), |
| () => { |
| events.push("promiserejected"); |
| t.step_timeout(finish, 0); |
| }); |
| }, "navigate() event ordering for same-document navigation"); |
| </script> |