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', '20');
31 shouldBe('event.clientY', '24');
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 // Coordinates passed to eventSender.addTouchPoint are in screen pixels,
61 // relative to the top left of the window.
62 eventSender.addTouchPoint(10, 12);
63 eventSender.touchStart();
65 // Insert some delay. NB: this value depends on minClickDownTime,
66 // maxClickDownTime from GestureRecognizerChromium.cpp
67 eventSender.leapForward(20);
68 eventSender.setTouchModifier("shift", true);
69 eventSender.setTouchModifier("alt", true);
71 eventSender.releaseTouchPoint(0);
72 eventSender.touchEnd();
77 if (mouseEventsReceived < expectedMouseEvents) {
78 debug('Gesture manager not implemented on this platform.');
81 isSuccessfullyParsed();
82 layoutTestController.notifyDone();
86 if (window.eventSender) {
87 eventSender.scalePageBy(0.5, 0, 0);
90 var div = document.getElementById('touchtarget');
91 div.addEventListener("mousedown", gestureEventCallback, false);
92 div.addEventListener("click", gestureEventCallback, false);
93 div.addEventListener("mouseup", gestureEventCallback, false);
94 div.addEventListener("mousemove", gestureEventCallback, false);
95 document.addEventListener("keydown", quitKeyToEndTest, false);
96 div.addEventListener("touchstart", touchEventCallback, false);
97 div.addEventListener("touchmove", touchEventCallback, false);
98 div.addEventListener("touchend", touchEventCallback, false);
100 if (window.layoutTestController)
101 layoutTestController.waitUntilDone();
103 if (window.eventSender) {
104 description("This tests basic single touch gesture generation.");
105 if (eventSender.clearTouchPoints) {
106 singleTouchSequence();
107 eventSender.leapForward(10);
108 eventSender.keyDown(' ');
113 debug("This test requires DumpRenderTree. Tap on the blue rect to log.")