dom/tests/mochitest/pointerlock/file_pointerlock-api.html

branch
TOR_BUG_9701
changeset 9
a63d609f5ebe
equal deleted inserted replaced
-1:000000000000 0:6c88ba6cd876
1 <!DOCTYPE HTML>
2 <html>
3 <!--https://bugzilla.mozilla.org/show_bug.cgi?id=633602-->
4 <head>
5 <title>Bug 633602</title>
6 <script type="application/javascript" src="/tests/SimpleTest/EventUtils.js">
7 </script>
8 <script type="application/javascript" 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 * Make sure DOM API is correct.
24 */
25
26 SimpleTest.waitForExplicitFinish();
27
28 var div,
29 hasRequestPointerLock = false,
30 pointerLockChangeEventFired = false,
31 pointerUnlocked = false,
32 pointerLocked = false,
33 hasExitPointerLock = false,
34 pointerLockElement = false,
35 hasMovementX = false,
36 hasMovementY = false;
37
38 function runTests () {
39 ok(hasRequestPointerLock, "Element should have mozRequestPointerLock.");
40 ok(pointerLockChangeEventFired, "pointerlockchange event should fire.");
41 ok(pointerUnlocked, "Should be able to unlock pointer locked element.");
42 ok(pointerLocked, "Requested element should be able to lock.");
43 ok(hasExitPointerLock, "Document should have mozExitPointerLock");
44 ok(pointerLockElement, "Document should keep track of correct pointer locked element");
45 ok(hasMovementX, "Mouse Event should have mozMovementX.");
46 ok(hasMovementY, "Mouse Event should have mozMovementY.");
47 }
48
49 function mouseMoveHandler(e) {
50 document.removeEventListener("mousemove", mouseMoveHandler, false);
51
52 hasMovementX = "mozMovementX" in e;
53 hasMovementY = "mozMovementY" in e;
54
55 hasExitPointerLock = "mozExitPointerLock" in document;
56 document.mozExitPointerLock();
57 }
58
59 document.addEventListener("mozpointerlockchange", function (e) {
60 pointerLockChangeEventFired = true;
61
62 if (document.mozPointerLockElement) {
63 pointerLocked = true;
64 pointerLockElement = document.mozPointerLockElement === div;
65 document.addEventListener("mousemove", mouseMoveHandler, false);
66 synthesizeMouseAtCenter(div, {type: "mousemove"}, window);
67 } else {
68 pointerUnlocked = true;
69 document.mozCancelFullScreen();
70 }
71 }, false);
72
73 document.addEventListener("mozfullscreenchange", function(e) {
74 if (document.mozFullScreenElement === div) {
75 hasRequestPointerLock = "mozRequestPointerLock" in div;
76 div.mozRequestPointerLock();
77 } else {
78 runTests();
79 SimpleTest.finish();
80 }
81 }, false);
82
83 function start() {
84 div = document.getElementById("div");
85 div.mozRequestFullScreen();
86 }
87 </script>
88 </pre>
89 </body>
90 </html>

mercurial