diff options
author | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
---|---|---|
committer | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
commit | 5f8de423f190bbb79a62f804151bc24824fa32d8 (patch) | |
tree | 10027f336435511475e392454359edea8e25895d /dom/tests/mochitest/pointerlock/file_removedFromDOM.html | |
parent | 49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff) | |
download | UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip |
Add m-esr52 at 52.6.0
Diffstat (limited to 'dom/tests/mochitest/pointerlock/file_removedFromDOM.html')
-rw-r--r-- | dom/tests/mochitest/pointerlock/file_removedFromDOM.html | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/dom/tests/mochitest/pointerlock/file_removedFromDOM.html b/dom/tests/mochitest/pointerlock/file_removedFromDOM.html new file mode 100644 index 000000000..1bd70777a --- /dev/null +++ b/dom/tests/mochitest/pointerlock/file_removedFromDOM.html @@ -0,0 +1,95 @@ +<!DOCTYPE HTML> +<html> + <!-- + https://bugzilla.mozilla.org/show_bug.cgi?id=633602 + + Test DOM tree in full screen + --> +<head> +<title>Bug 633602 - file_DOMtree.html</title> +<script type="application/javascript" src="/tests/SimpleTest/EventUtils.js"></script> +<script type="application/javascript" 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> +<div id="outer"><div id="inner"></div></div> +<pre id="test"> +<script type="text/javascript"> +/* + * Test for Bug 633602 + * Checks if pointer is unlocked when element is removed from + * the DOM Tree + */ + +SimpleTest.waitForExplicitFinish(); + +var div = document.getElementById("div"); +var outer = document.getElementById("outer"); +var inner = document.getElementById("inner"); + +function listenOneDocEvent(type, handler) { + function callback(event) { + document.removeEventListener(type, callback); + SimpleTest.executeSoon(() => handler(event)); + } + document.addEventListener(type, callback); +} + +function checkPointerLockElement(elem) { + if (elem) { + is(document.pointerLockElement, elem, + `#${elem.id} should have locked the pointer`); + } else { + ok(!document.pointerLockElement, "Pointer should have been unlocked"); + } +} + +function start() { + addFullscreenChangeContinuation("enter", enteredFullscreen); + document.documentElement.requestFullscreen(); +} + +function enteredFullscreen() { + is(document.fullscreenElement, document.documentElement, + "Root element should have entered fullscreen"); + listenOneDocEvent("pointerlockchange", lockedPointerOnDiv); + div.requestPointerLock(); +} + +function lockedPointerOnDiv() { + checkPointerLockElement(div); + listenOneDocEvent("pointerlockchange", unlockedPointerFromDiv); + document.body.removeChild(div); +} + +function unlockedPointerFromDiv() { + checkPointerLockElement(null); + listenOneDocEvent("pointerlockchange", lockedPointerOnInner); + inner.requestPointerLock(); +} + +function lockedPointerOnInner() { + checkPointerLockElement(inner); + listenOneDocEvent("pointerlockchange", unlockedPointerFromInner); + document.body.removeChild(outer); +} + +function unlockedPointerFromInner() { + checkPointerLockElement(null); + addFullscreenChangeContinuation("exit", exitedFullscreen); + document.exitFullscreen(); +} + +function exitedFullscreen() { + SimpleTest.finish(); +} +</script> +</pre> +</body> +</html> |