| Index: LayoutTests/pointer-lock/mouse-event-delivery-prefixed.html
|
| diff --git a/LayoutTests/pointer-lock/mouse-event-delivery-prefixed.html b/LayoutTests/pointer-lock/mouse-event-delivery-prefixed.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..02d25250e99b99197ac21906943aa2a85096dd82
|
| --- /dev/null
|
| +++ b/LayoutTests/pointer-lock/mouse-event-delivery-prefixed.html
|
| @@ -0,0 +1,102 @@
|
| +<!DOCTYPE HTML>
|
| +<html>
|
| +<head>
|
| +<script src="../resources/js-test.js"></script>
|
| +<script src="../http/tests/resources/pointer-lock/pointer-lock-test-harness-prefixed.js"></script>
|
| +</head>
|
| +<body id="body">
|
| +<div>
|
| + <div id="target1"></div>
|
| + <div id="target2"></div>
|
| +</div>
|
| +<script>
|
| + description("Test mouse events are routed to lock target.")
|
| + window.jsTestIsAsync = true;
|
| +
|
| + targetdiv1 = document.getElementById("target1");
|
| + targetdiv2 = document.getElementById("target2");
|
| +
|
| + // Expect change event only for all transitions below.
|
| + expectedTargetToBeLockedString = "";
|
| + document.onwebkitpointerlockchange = function ()
|
| + {
|
| + testPassed("document.onwebkitpointerlockchange event received.");
|
| + shouldBe("document.webkitPointerLockElement", expectedTargetToBeLockedString);
|
| + doNextStep();
|
| + };
|
| + document.onwebkitpointerlockerror =
|
| + function () { testFailed("document.onwebkitpointerlockerror event received."); finishJSTest(); };
|
| +
|
| + function eventNotExpected(e) {
|
| + testFailed("Unexpected event " + e.type + " on " + e.currentTarget.id);
|
| + finishJSTest();
|
| + }
|
| + function eventExpected(e) {
|
| + testPassed("event type: " + e.type + ", target: " + e.target.id + ", received on: " + e.currentTarget.id);
|
| + }
|
| +
|
| + todo = [
|
| + function () {
|
| + targetdiv1.webkitRequestPointerLock();
|
| + expectedTargetToBeLockedString = "targetdiv1";
|
| + // doNextStep() called by onwebkitpointerlockchange handler.
|
| + },
|
| + function () {
|
| + debug(" With a lock in place send a click.")
|
| + targetdiv1.onmousedown = eventExpected;
|
| + targetdiv2.onmousedown = eventNotExpected;
|
| + document.body.onmousedown = eventExpected;
|
| + if (window.eventSender) {
|
| + window.eventSender.leapForward(1000);
|
| + window.eventSender.mouseDown();
|
| + window.eventSender.mouseUp();
|
| + }
|
| + doNextStepWithUserGesture();
|
| + },
|
| + function () {
|
| + targetdiv2.webkitRequestPointerLock();
|
| + expectedTargetToBeLockedString = "targetdiv2";
|
| + // doNextStep() called by onwebkitpointerlockchange handler.
|
| + },
|
| + function () {
|
| + debug(" With a lock in place send a click.")
|
| + targetdiv1.onmousedown = eventNotExpected;
|
| + targetdiv2.onmousedown = eventExpected;
|
| + document.body.onmousedown = eventExpected;
|
| + if (window.eventSender) {
|
| + window.eventSender.leapForward(1000);
|
| + window.eventSender.mouseDown();
|
| + window.eventSender.mouseUp();
|
| + }
|
| + doNextStepWithUserGesture();
|
| + },
|
| + function () {
|
| + debug(" Ensure double clicks work as expected, sending 4 clicks.")
|
| + targetdiv1.onmousedown = undefined;
|
| + document.body.onmousedown = undefined;
|
| + targetdiv2.onmousedown = eventExpected;
|
| + targetdiv2.onmouseup = eventExpected;
|
| + targetdiv2.onclick = eventExpected;
|
| + targetdiv2.ondblclick = eventExpected;
|
| + debug(" Creating a click and dblclick.");
|
| + if (window.eventSender) {
|
| + window.eventSender.leapForward(1000);
|
| + window.eventSender.mouseDown();
|
| + window.eventSender.mouseUp();
|
| + window.eventSender.mouseDown();
|
| + window.eventSender.mouseUp();
|
| + }
|
| + debug(" Ensuring no false dblclicks if we continue.");
|
| + if (window.eventSender) {
|
| + window.eventSender.mouseDown();
|
| + window.eventSender.mouseUp();
|
| + window.eventSender.mouseDown();
|
| + window.eventSender.mouseUp();
|
| + }
|
| + doNextStepWithUserGesture();
|
| + },
|
| + ];
|
| + doNextStepWithUserGesture();
|
| +</script>
|
| +</body>
|
| +</html>
|
|
|