b2c4c405e598a6254ab641efbe99ff5247c6aacb
[WebKit-https.git] / LayoutTests / touchadjustment / focusout-on-touch.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2 <html>
3 <head>
4 <title>Touch Adjustment : Fake mouse events not delivered when touching on a non-interactable node - bug 91012</title>
5 <style type="text/css">
6 div {
7     width: 400px;
8     height: 400px;
9 }
10 </style>
11 <script type="text/javascript">
12 function runTest()
13 {
14 /*
15     WebKit generates fake mouse events on each touch event, here we test if
16     the touch adjustment doesn't caused an early return not firing the fake
17     mouse events used here to unfocus a simple text input.
18 */
19     if (!window.eventSender || !window.testRunner)
20         return;
21
22     testRunner.dumpAsText();
23
24     // Focus the text field
25     var textInput = document.getElementById("textInput");
26     if (document.activeElement === textInput)
27         alert("FAILED!");
28     textInput.focus();
29     if (document.activeElement != textInput)
30         alert("FAILED!");
31
32     // Try to loose the focus touching on a non-editable element.
33     var theDiv = document.getElementById("theDiv");
34     var w = theDiv.clientWidth;
35     var h = theDiv.clientHeight;
36     var x = theDiv.offsetLeft + w/2;
37     var y = theDiv.offsetTop + h/2;
38
39     eventSender.clearTouchPoints();
40     eventSender.setTouchPointRadius(10, 10);
41     eventSender.addTouchPoint(x, y);
42     eventSender.touchStart();
43     eventSender.releaseTouchPoint(0);
44     eventSender.touchEnd();
45
46     // Need to wait a bit so the gesture recognizer will be sure this isn't a double tap.
47     setTimeout(function() {
48         if (document.activeElement == document.body)
49             alert("PASS!")
50         else
51             alert("FAILED, " + document.activeElement.id + " is focused.");
52         testRunner.notifyDone();
53     }, 800);
54
55     // Wait and see...
56     testRunner.waitUntilDone();
57
58 }
59
60 </script>
61 </head>
62 <body onload="runTest()">
63 <div id="theDiv">You should see "ALERT: PASS!"</div>
64 <input id="textInput" type="text" value="Touch me please!" />
65 </body>
66 </html>