diff options
Diffstat (limited to '')
-rw-r--r-- | dom/tests/mochitest/pointerlock/file_nestedFullScreen.html | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/dom/tests/mochitest/pointerlock/file_nestedFullScreen.html b/dom/tests/mochitest/pointerlock/file_nestedFullScreen.html new file mode 100644 index 0000000000..8d625b6704 --- /dev/null +++ b/dom/tests/mochitest/pointerlock/file_nestedFullScreen.html @@ -0,0 +1,76 @@ +<!DOCTYPE HTML> +<html> + <!-- + https://bugzilla.mozilla.org/show_bug.cgi?id=633602 + --> + <head> + <title>Bug 633602 - file_nestedFullScreen.html</title> + <script src="/tests/SimpleTest/SimpleTest.js"> + </script> + <script src="/tests/SimpleTest/EventUtils.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="parentDiv"> + <div id="childDiv"></div> + </div> + + <script type="application/javascript"> + /* + * Test for Bug 633602 + * Requesting fullscreen on a child element of the element with + * the pointer locked should unlock the pointer + */ + + SimpleTest.waitForExplicitFinish(); + + var parentDiv = document.getElementById("parentDiv") + , childDiv = document.getElementById("childDiv") + , parentDivLocked = false + , parentDivFullScreen = false + , pointerLocked = false; + + function runTests () { + ok(parentDivLocked, "After requesting pointerlock on parentDiv " + + "document.pointerLockElement should be equal to " + + " parentDiv element"); + isnot(pointerLocked, true, "Requesting fullscreen on " + + "childDiv while parentDiv still in fullscreen should " + + "unlock the pointer"); + } + + document.addEventListener("pointerlockchange", function (e) { + if (document.pointerLockElement === parentDiv) { + parentDivLocked = true; + addFullscreenChangeContinuation("enter", function() { + pointerLocked = !!document.pointerLockElement; + addFullscreenChangeContinuation("exit", function() { + addFullscreenChangeContinuation("exit", function() { + runTests(); + SimpleTest.finish(); + }); + document.exitFullscreen(); + }); + document.exitFullscreen(); + }); + childDiv.requestFullscreen(); + } + }); + + function start() { + addFullscreenChangeContinuation("enter", function() { + parentDivFullScreen = true; + parentDiv.requestPointerLock(); + }); + parentDiv.requestFullscreen(); + } + </script> + </body> +</html> |