Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1361)

Side by Side Diff: LayoutTests/fast/events/touch/touch-fractional-coordinates.html

Issue 298133003: Expose fractional TouchEvent coordinates (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Merge with trunk Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 <!DOCTYPE html>
2 <script src='../../../resources/js-test.js'></script>
3 <style>
4 #spacer {
5 height: 1000px;
6 width: 1000px;
7 }
8 iframe {
9 width: 100px;
10 height: 100px;
11 border: 0;
12 }
13 #rotatedFrame {
14 transform: rotate(180deg);
15 }
16 #scaledFrame {
17 transform: scale(2);
18 width: 50px;
19 height: 50px;
20 margin-left: 50px;
21 margin-bottom: 20px;
22 }
23 </style>
24 <p id='description'></p>
25 <iframe id=simpleFrame src='resources/frame-touchevent-forwarder.html'></iframe>
26 <iframe id=rotatedFrame src='resources/frame-touchevent-forwarder.html'></iframe >
27 <iframe id=scaledFrame src='resources/frame-touchevent-forwarder.html'></iframe>
28 <div id='console'></div>
29 <div id='spacer'></div>
30 <script>
31 description('Tests non-integer TouchEvent co-ordinates and radii');
32
33 var scrollX = 3;
34 var scrollY = 10;
35 scrollTo(scrollX, scrollY);
36
37 eventCount = 0;
38 function onTouchStart(e) {
39 eventCount++;
40 lastEvent = e;
41 }
42 function expectEvent(eventName) {
43 shouldBeEqualToNumber('eventCount', 1);
44 var origEventCount = eventCount;
45 eventCount = 0;
46 if (origEventCount > 0) {
47 shouldBeEqualToString('lastEvent.type', eventName);
48 return true;
49 }
50 return false;
51 }
52
53 document.addEventListener('touchstart', onTouchStart);
54 var floatPrecision = 0.00001;
55
56 function runTest() {
57 if (!eventSender) {
58 debug('This test requires eventSender.');
59 return;
60 }
61
62 debug('Testing simple fractional touch');
63 eventSender.addTouchPoint(30.33, 4.5, 5.2, 6.3);
64 eventSender.touchStart();
65 if (expectEvent('touchstart')) {
66 shouldBeCloseTo('lastEvent.changedTouches[0].screenX', 30.33, floatP recision);
67 shouldBeCloseTo('lastEvent.changedTouches[0].screenY', 4.5, floatPre cision);
68 shouldBeCloseTo('lastEvent.changedTouches[0].clientX', 30.33, floatP recision);
69 shouldBeCloseTo('lastEvent.changedTouches[0].clientY', 4.5, floatPre cision);
70 shouldBeCloseTo('lastEvent.changedTouches[0].pageX', 30.33 + scrollX , floatPrecision);
71 shouldBeCloseTo('lastEvent.changedTouches[0].pageY', 4.5 + scrollY, floatPrecision);
72 shouldBeCloseTo('lastEvent.changedTouches[0].webkitRadiusX', 5.2, fl oatPrecision);
73 shouldBeCloseTo('lastEvent.changedTouches[0].webkitRadiusY', 6.3, fl oatPrecision);
74 }
75 eventSender.releaseTouchPoint(0);
76 eventSender.touchEnd();
77 debug('');
78
79 debug('Testing fractional touch inside simple iframe');
80 frameRect = document.getElementById('simpleFrame').getBoundingClientRect ();
81 eventSender.addTouchPoint(frameRect.left + 4.5, frameRect.top + 2.2);
82 eventSender.touchStart();
83 if (expectEvent('touchstart')) {
84 shouldBeCloseTo('lastEvent.changedTouches[0].screenX', frameRect.lef t + 4.5, floatPrecision);
85 shouldBeCloseTo('lastEvent.changedTouches[0].screenY', frameRect.top + 2.2, floatPrecision);
86 shouldBeCloseTo('lastEvent.changedTouches[0].clientX', 4.5, floatPre cision);
87 shouldBeCloseTo('lastEvent.changedTouches[0].clientY', 2.2, floatPre cision);
88 shouldBeCloseTo('lastEvent.changedTouches[0].pageX', 4.5, floatPreci sion);
89 shouldBeCloseTo('lastEvent.changedTouches[0].pageY', 2.2, floatPreci sion);
90 }
91 eventSender.releaseTouchPoint(0);
92 eventSender.touchEnd();
93 debug('');
94
95 debug('Testing fractional touch inside rotated iframe');
96 frameRect = document.getElementById('rotatedFrame').getBoundingClientRec t();
97 eventSender.addTouchPoint(frameRect.left + 4.5, frameRect.top + 2.2);
98 eventSender.touchStart();
99 if (expectEvent('touchstart')) {
100 shouldBeCloseTo('lastEvent.changedTouches[0].screenX', frameRect.lef t + 4.5, floatPrecision);
101 shouldBeCloseTo('lastEvent.changedTouches[0].screenY', frameRect.top + 2.2, floatPrecision);
102 shouldBeCloseTo('lastEvent.changedTouches[0].clientX', 100 - 4.5, fl oatPrecision);
103 shouldBeCloseTo('lastEvent.changedTouches[0].clientY', 100 - 2.2, fl oatPrecision);
104 shouldBeCloseTo('lastEvent.changedTouches[0].pageX', 100 - 4.5, floa tPrecision);
105 shouldBeCloseTo('lastEvent.changedTouches[0].pageY', 100 - 2.2, floa tPrecision);
106 }
107 eventSender.releaseTouchPoint(0);
108 eventSender.touchEnd();
109 debug('');
110
111 debug('Testing fractional touch inside scaled iframe');
112 frameRect = document.getElementById('scaledFrame').getBoundingClientRect ();
113 eventSender.addTouchPoint(frameRect.left + 4.5, frameRect.top + 2.2);
114 eventSender.touchStart();
115 if (expectEvent('touchstart')) {
116 shouldBeCloseTo('lastEvent.changedTouches[0].screenX', frameRect.lef t + 4.5, floatPrecision);
117 shouldBeCloseTo('lastEvent.changedTouches[0].screenY', frameRect.top + 2.2, floatPrecision);
118 shouldBeCloseTo('lastEvent.changedTouches[0].clientX', 4.5 / 2, floa tPrecision);
119 shouldBeCloseTo('lastEvent.changedTouches[0].clientY', 2.2 / 2, floa tPrecision);
120 shouldBeCloseTo('lastEvent.changedTouches[0].pageX', 4.5 / 2, floatP recision);
121 shouldBeCloseTo('lastEvent.changedTouches[0].pageY', 2.2 / 2, floatP recision);
122 }
123 eventSender.releaseTouchPoint(0);
124 eventSender.touchEnd();
125 debug('');
126 }
127
128 addEventListener('load', runTest);
129 </script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698