diff options
Diffstat (limited to 'dom/tests/mochitest/pointerlock/file_escapeKey.html')
-rw-r--r-- | dom/tests/mochitest/pointerlock/file_escapeKey.html | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/dom/tests/mochitest/pointerlock/file_escapeKey.html b/dom/tests/mochitest/pointerlock/file_escapeKey.html new file mode 100644 index 0000000000..987b880232 --- /dev/null +++ b/dom/tests/mochitest/pointerlock/file_escapeKey.html @@ -0,0 +1,77 @@ +<!DOCTYPE HTML> +<html> +<!--https://bugzilla.mozilla.org/show_bug.cgi?id=633602--> +<head> + <title>Bug 633602</title> + <script src="/tests/SimpleTest/EventUtils.js"> + </script> + <script src="/tests/SimpleTest/SimpleTest.js"> + </script> + <script type="application/javascript" src="pointerlock_utils.js"></script> + <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/> +</head> +<body> + <a target="_blank" + href="https://bugzilla.mozilla.org/show_bug.cgi?id=633602"> + Mozilla Bug 633602 + </a> + <div id="div"></div> + <pre id="test"> + <script type="text/javascript"> + /* + * Test for Bug 633602 + * Escape key should unlock the pointer + */ + + SimpleTest.waitForExplicitFinish(); + + var div = document.getElementById("div") + , pointerUnLocked = false; + + function start() { + addFullscreenChangeContinuation("enter", enteredFullscreen); + div.requestFullscreen(); + } + + function enteredFullscreen(e) { + is(document.fullscreenElement, div, "Element #div should entered fullscreen"); + ok(!document.pointerLockElement, "Pointer shouldn't have been locked"); + document.addEventListener("pointerlockchange", lockedPointer); + div.requestPointerLock(); + } + + function lockedPointer(e) { + document.removeEventListener("pointerlockchange", lockedPointer); + is(document.pointerLockElement, div, "Pointer should have been locked on #div"); + document.addEventListener("pointerlockchange", unlockedPointer); + addFullscreenChangeContinuation("exit", leavedFullscreen); + SimpleTest.executeSoon(() => synthesizeKey("KEY_Escape")); + } + + var pointerUnlocked = false; + var exitedFullscreen = false; + + function unlockedPointer() { + document.removeEventListener("pointerlockchange", unlockedPointer); + ok(!pointerUnlocked, "Shouldn't have unlocked pointer before"); + ok(!document.pointerLockElement, "Pointer should have been unlocked now"); + pointerUnlocked = true; + finishTest(); + } + + function leavedFullscreen() { + ok(!exitedFullscreen, "Shouldn't have exited fullscreen before"); + ok(!document.fullscreenElement, "Should have exited fullscreen now"); + exitedFullscreen = true; + finishTest(); + } + + function finishTest() { + if (pointerUnlocked && exitedFullscreen) { + SimpleTest.finish(); + } + } + </script> + </pre> +</body> +</html> |