<!
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>