file_escapeKey.html (2511B)
1 <!DOCTYPE HTML> 2 <html> 3 <!--https://bugzilla.mozilla.org/show_bug.cgi?id=633602--> 4 <head> 5 <title>Bug 633602</title> 6 <script src="/tests/SimpleTest/EventUtils.js"> 7 </script> 8 <script src="/tests/SimpleTest/SimpleTest.js"> 9 </script> 10 <script type="application/javascript" src="pointerlock_utils.js"></script> 11 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/> 12 </head> 13 <body> 14 <a target="_blank" 15 href="https://bugzilla.mozilla.org/show_bug.cgi?id=633602"> 16 Mozilla Bug 633602 17 </a> 18 <div id="div"></div> 19 <pre id="test"> 20 <script type="text/javascript"> 21 /* 22 * Test for Bug 633602 23 * Escape key should unlock the pointer 24 */ 25 26 SimpleTest.waitForExplicitFinish(); 27 28 var div = document.getElementById("div") 29 , pointerUnLocked = false; 30 31 function start() { 32 addFullscreenChangeContinuation("enter", enteredFullscreen); 33 div.requestFullscreen(); 34 } 35 36 function enteredFullscreen(e) { 37 is(document.fullscreenElement, div, "Element #div should entered fullscreen"); 38 ok(!document.pointerLockElement, "Pointer shouldn't have been locked"); 39 document.addEventListener("pointerlockchange", lockedPointer); 40 div.requestPointerLock(); 41 } 42 43 function lockedPointer(e) { 44 document.removeEventListener("pointerlockchange", lockedPointer); 45 is(document.pointerLockElement, div, "Pointer should have been locked on #div"); 46 document.addEventListener("pointerlockchange", unlockedPointer); 47 addFullscreenChangeContinuation("exit", leavedFullscreen); 48 SimpleTest.executeSoon(() => synthesizeKey("KEY_Escape")); 49 } 50 51 var pointerUnlocked = false; 52 var exitedFullscreen = false; 53 54 function unlockedPointer() { 55 document.removeEventListener("pointerlockchange", unlockedPointer); 56 ok(!pointerUnlocked, "Shouldn't have unlocked pointer before"); 57 ok(!document.pointerLockElement, "Pointer should have been unlocked now"); 58 pointerUnlocked = true; 59 finishTest(); 60 } 61 62 function leavedFullscreen() { 63 ok(!exitedFullscreen, "Shouldn't have exited fullscreen before"); 64 ok(!document.fullscreenElement, "Should have exited fullscreen now"); 65 exitedFullscreen = true; 66 finishTest(); 67 } 68 69 function finishTest() { 70 if (pointerUnlocked && exitedFullscreen) { 71 SimpleTest.finish(); 72 } 73 } 74 </script> 75 </pre> 76 </body> 77 </html>