Add first-letter assert exception in RenderButton::setupInnerStyle().
[WebKit-https.git] / LayoutTests / touchadjustment / context-menu.html
1 <!DOCTYPE html>
2 <html>
3 <head>
4     <title>Touch Adjustment : Adjust to context menu providers - bug 94101</title>
5     <script src="../resources/js-test-pre.js"></script>
6     <script src="resources/touchadjustment.js"></script>
7     <style>
8         #sandbox {
9             position: absolute;
10             top: 0px;
11             left: 0px;
12             width: 400px;
13             height: 200px;
14         }
15         #sandbox p {
16             padding: 5px;
17             font: 20px Ahem;
18         }
19     </style>
20 </head>
21 <body>
22
23 <script>
24     function onClick() {}
25 </script>
26
27 <div id=sandbox>
28     <p id=p0><a id=a0 href="#a0">Link with URL.</a>
29     <p id=p1><span id=span0 onclick=onClick>Text with onclick handler.</span>
30     <p id=p2><img id=img0 height=20 width=100 src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPAQMAAAABGAcJAAAAA1BMVEUAgACc+aWRAAAADElEQVR42mNgIAEAAAAtAAH7KhMqAAAAAElFTkSuQmCC"></img>
31 </div>
32
33 <p id='description'></p>
34 <div id='console'></div>
35
36 <script>
37     // Set up shortcut access to elements
38     var e = {};
39     ['sandbox', 'a0', 'span0', 'img0', 'p0', 'p1', 'p2'].forEach(function(a) {
40         e[a] = document.getElementById(a);
41     });
42
43     function testDirectTouches()
44     {
45         // Check links can be targeted with context menu gesture.
46         testTouchPointContextMenu(touchPoint(100, 35, 10), e.a0);
47         // Check onclick can be targeted with activate gesture.
48         testTouchPoint(touchPoint(100, 100, 10), e.span0);
49         // Check onclick can not be targeted with context menu.
50         testTouchPointContextMenu(touchPoint(100, 100, 10), null);
51         // But that the adjusted point still hits it, if no better target is available
52         var adjustedPoint = adjustTouchPointContextMenu(touchPoint(100, 100, 10));
53         if (adjustedPoint) {
54             shouldBeNode(document.elementFromPoint(adjustedPoint.x, adjustedPoint.y), e.span0);
55         }
56         // Check images can be targeted with context menu.
57         testTouchPointContextMenu(offsetTouchPoint(findAbsoluteBounds(e.img0), 'center', 0, 5, 5), e.img0);
58     }
59
60     function testAdjustedTouches()
61     {
62         // Check we if we adjust the context menu onto the link.
63         testTouchPointContextMenu(touchPoint(100, 50, 10), e.a0);
64         // Check we if we do not adjust the context menu onto the onclick element.
65         testTouchPointContextMenu(touchPoint(100, 70, 10), null);
66         // Check the link is strongly preferred.
67         testTouchPointContextMenu(touchPoint(100, 60, 20), e.a0);
68         // Check adjustment onto the image.
69         testTouchPointContextMenu(touchPoint(20, 140, 10), e.img0);
70         // Check the image is strongly preferred for context menu gestures.
71         testTouchPointContextMenu(touchPoint(20, 120, 30), e.img0);
72         // But the onclick handler would be preferred for activate gestures.
73         testTouchPoint(touchPoint(20, 120, 30), e.span0);
74     }
75
76     function runTests()
77     {
78         if (window.testRunner && window.internals && internals.touchNodeAdjustedToBestContextMenuNode) {
79             description('Test touch adjustment for context-menu gestures.');
80             // Set editing-behaviour to win, so context-menu gesture does not trigger selections.
81             internals.settings.setEditingBehavior('win');
82             testDirectTouches();
83             testAdjustedTouches();
84             e.sandbox.style.display = 'none';
85         }
86     }
87     runTests();
88 </script>
89
90 <script src="../resources/js-test-post.js"></script>
91
92 </body>
93 </html>