diff options
Diffstat (limited to 'testing/web-platform/tests/navigation-api/ordering-and-transition/transition-realms-and-identity.html')
-rw-r--r-- | testing/web-platform/tests/navigation-api/ordering-and-transition/transition-realms-and-identity.html | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/testing/web-platform/tests/navigation-api/ordering-and-transition/transition-realms-and-identity.html b/testing/web-platform/tests/navigation-api/ordering-and-transition/transition-realms-and-identity.html new file mode 100644 index 0000000000..f1b3ead980 --- /dev/null +++ b/testing/web-platform/tests/navigation-api/ordering-and-transition/transition-realms-and-identity.html @@ -0,0 +1,41 @@ +<!doctype html> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> + +<iframe id="i" src="/common/blank.html"></iframe> + +<script> +promise_test(async () => { + await new Promise(resolve => window.onload = resolve); + + i.contentWindow.navigation.addEventListener("navigate", e => { + e.intercept(); + }); + + const returnValueFinished1 = i.contentWindow.navigation.navigate("?1").finished; + const transition1 = i.contentWindow.navigation.transition; + const transitionFinished1 = transition1.finished; + + assert_true(returnValueFinished1 instanceof i.contentWindow.Promise); + assert_true(transition1 instanceof i.contentWindow.NavigationTransition); + assert_true(transitionFinished1 instanceof i.contentWindow.Promise); + + assert_not_equals(returnValueFinished1, transitionFinished1); + + // Ensure the getters aren't generating new objects each time. + assert_equals(i.contentWindow.navigation.transition, transition1); + assert_equals(i.contentWindow.navigation.transition.finished, transitionFinished1); + + assert_equals(await transitionFinished1, undefined); + + // Ensure stuff does change after another navigation. + const committed2 = i.contentWindow.navigation.navigate("?2").committed; + const transition2 = i.contentWindow.navigation.transition; + const transitionFinished2 = transition2.finished; + + assert_not_equals(transition2, transition1); + assert_not_equals(transitionFinished2, transitionFinished1); + + await committed2; +}, "Realm and identity of the navigation.transition object and its finished promise"); +</script> |