1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
4 <script src="../../js/resources/js-test-pre.js"></script>
5 <style type="text/css">
13 <body onload="runTest();">
14 <div id="touchtarget">
16 <p id="description"></p>
17 <div id="console"></div>
20 var clickEventsReceived = 0;
21 var expectedMouseEvents = 4;
22 var touchEventsReceived = 0;
23 var mouseEventsReceived = 0;
24 var eventTypes = [ 'mousemove', 'mousedown', 'mouseup', 'click' ];
26 function gestureEventCallback(event)
28 if (window.eventSender) {
29 shouldBeEqualToString('event.type', eventTypes[mouseEventsReceived]);
30 shouldBe('event.clientX', '10');
31 shouldBe('event.clientY', '12');
32 shouldBe("event.shiftKey", "true");
33 shouldBe("event.altKey", "true");
34 shouldBe("event.ctrlKey", "false");
35 shouldBe("event.metaKey", "false");
36 mouseEventsReceived++;
44 // Because we may not have a gesture recognizer, we send a key press
45 // event to end the test without temporal flakiness.
46 function quitKeyToEndTest(event) {
50 // Log that we still got the touch events.
51 function touchEventCallback(event) {
52 touchEventsReceived++;
53 debug('have received: ' + touchEventsReceived + ' touch events');
57 function singleTouchSequence()
59 eventSender.clearTouchPoints();
60 eventSender.addTouchPoint(10, 12);
61 eventSender.touchStart();
63 // Insert some delay. NB: this value depends on minClickDownTime,
64 // maxClickDownTime from GestureRecognizerChromium.cpp
65 eventSender.leapForward(20);
66 eventSender.setTouchModifier("shift", true);
67 eventSender.setTouchModifier("alt", true);
69 eventSender.releaseTouchPoint(0);
70 eventSender.touchEnd();
75 if (mouseEventsReceived < expectedMouseEvents) {
76 debug('Gesture manager not implemented on this platform.');
79 isSuccessfullyParsed();
80 layoutTestController.notifyDone();
84 var div = document.getElementById('touchtarget');
85 div.addEventListener("mousedown", gestureEventCallback, false);
86 div.addEventListener("click", gestureEventCallback, false);
87 div.addEventListener("mouseup", gestureEventCallback, false);
88 div.addEventListener("mousemove", gestureEventCallback, false);
89 document.addEventListener("keydown", quitKeyToEndTest, false);
90 div.addEventListener("touchstart", touchEventCallback, false);
91 div.addEventListener("touchmove", touchEventCallback, false);
92 div.addEventListener("touchend", touchEventCallback, false);
94 if (window.layoutTestController)
95 layoutTestController.waitUntilDone();
97 if (window.eventSender) {
98 description("This tests basic single touch gesture generation.");
99 if (eventSender.clearTouchPoints) {
100 singleTouchSequence();
101 eventSender.leapForward(10);
102 eventSender.keyDown(' ');
107 debug("This test requires DumpRenderTree. Tap on the blue rect to log.")