diff options
Diffstat (limited to 'testing/web-platform/tests/fullscreen/api/document-exit-fullscreen-twice.html')
-rw-r--r-- | testing/web-platform/tests/fullscreen/api/document-exit-fullscreen-twice.html | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/testing/web-platform/tests/fullscreen/api/document-exit-fullscreen-twice.html b/testing/web-platform/tests/fullscreen/api/document-exit-fullscreen-twice.html new file mode 100644 index 0000000000..aa8538cce4 --- /dev/null +++ b/testing/web-platform/tests/fullscreen/api/document-exit-fullscreen-twice.html @@ -0,0 +1,54 @@ +<!DOCTYPE html> +<title>Document#exitFullscreen() called twice</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/testdriver.js"></script> +<script src="/resources/testdriver-vendor.js"></script> +<script src="../trusted-click.js"></script> +<div id="log"></div> +<script> + promise_test(async (t) => { + const once = { once: true }; + const div = document.querySelector("div"); + document.onfullscreenerror = t.unreached_func("fullscreenerror event"); + + await Promise.all([ + fullScreenChange(), + trusted_request(div), + ]); + + // We are now in fullscreen. + assert_equals(document.fullscreenElement, div); + + // Exit fullscreen twice. + const firstPromise = document.exitFullscreen(); + assert_equals( + document.fullscreenElement, + div, + "fullscreenElement after first exitFullscreen()" + ); + + const secondPromise = document.exitFullscreen(); + assert_equals( + document.fullscreenElement, + div, + "fullscreenElement after second exitFullscreen()" + ); + const eventChange = new Promise((resolve) => { + document.addEventListener("fullscreenchange", resolve, once); + document.addEventListener( + "fullscreenchange", + t.unreached_func("second event fired"), + once + ); + }); + + await Promise.all([ + fullScreenChange, + firstPromise, + secondPromise, + eventChange, + ]); + assert_equals(document.fullscreenElement, null); + }); +</script> |