OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2012 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
142 document, p1.id, p1.screenPosition, p1.position, | 142 document, p1.id, p1.screenPosition, p1.position, |
143 FloatSize(p1.radiusX, p1.radiusY), | 143 FloatSize(p1.radiusX, p1.radiusY), |
144 p1.rotationAngle, p1.force, String()); | 144 p1.rotationAngle, p1.force, String()); |
145 | 145 |
146 // Test touchstart. | 146 // Test touchstart. |
147 { | 147 { |
148 TouchList* touchList = TouchList::create(); | 148 TouchList* touchList = TouchList::create(); |
149 touchList->append(touch0); | 149 touchList->append(touch0); |
150 TouchEvent* touchEvent = TouchEvent::create( | 150 TouchEvent* touchEvent = TouchEvent::create( |
151 touchList, touchList, touchList, EventTypeNames::touchstart, domWindow, | 151 touchList, touchList, touchList, EventTypeNames::touchstart, domWindow, |
152 PlatformEvent::NoModifiers, false, false, true, 0, TouchActionAuto); | 152 PlatformEvent::NoModifiers, false, false, true, 0, TouchActionAuto, |
| 153 WebPointerProperties::PointerType::Touch); |
153 | 154 |
154 WebTouchEventBuilder webTouchBuilder(documentLayoutView, *touchEvent); | 155 WebTouchEventBuilder webTouchBuilder(documentLayoutView, *touchEvent); |
155 ASSERT_EQ(1u, webTouchBuilder.touchesLength); | 156 ASSERT_EQ(1u, webTouchBuilder.touchesLength); |
156 EXPECT_EQ(WebInputEvent::TouchStart, webTouchBuilder.type); | 157 EXPECT_EQ(WebInputEvent::TouchStart, webTouchBuilder.type); |
157 EXPECT_EQ(WebTouchPoint::StatePressed, webTouchBuilder.touches[0].state); | 158 EXPECT_EQ(WebTouchPoint::StatePressed, webTouchBuilder.touches[0].state); |
158 EXPECT_FLOAT_EQ(p0.screenPosition.x, | 159 EXPECT_FLOAT_EQ(p0.screenPosition.x, |
159 webTouchBuilder.touches[0].screenPosition.x); | 160 webTouchBuilder.touches[0].screenPosition.x); |
160 EXPECT_FLOAT_EQ(p0.screenPosition.y, | 161 EXPECT_FLOAT_EQ(p0.screenPosition.y, |
161 webTouchBuilder.touches[0].screenPosition.y); | 162 webTouchBuilder.touches[0].screenPosition.y); |
162 EXPECT_FLOAT_EQ(p0.position.x, webTouchBuilder.touches[0].position.x); | 163 EXPECT_FLOAT_EQ(p0.position.x, webTouchBuilder.touches[0].position.x); |
163 EXPECT_FLOAT_EQ(p0.position.y, webTouchBuilder.touches[0].position.y); | 164 EXPECT_FLOAT_EQ(p0.position.y, webTouchBuilder.touches[0].position.y); |
164 EXPECT_FLOAT_EQ(p0.radiusX, webTouchBuilder.touches[0].radiusX); | 165 EXPECT_FLOAT_EQ(p0.radiusX, webTouchBuilder.touches[0].radiusX); |
165 EXPECT_FLOAT_EQ(p0.radiusY, webTouchBuilder.touches[0].radiusY); | 166 EXPECT_FLOAT_EQ(p0.radiusY, webTouchBuilder.touches[0].radiusY); |
166 EXPECT_FLOAT_EQ(p0.rotationAngle, webTouchBuilder.touches[0].rotationAngle); | 167 EXPECT_FLOAT_EQ(p0.rotationAngle, webTouchBuilder.touches[0].rotationAngle); |
167 EXPECT_FLOAT_EQ(p0.force, webTouchBuilder.touches[0].force); | 168 EXPECT_FLOAT_EQ(p0.force, webTouchBuilder.touches[0].force); |
| 169 EXPECT_EQ(WebPointerProperties::PointerType::Touch, |
| 170 webTouchBuilder.touches[0].pointerType); |
168 EXPECT_EQ(WebInputEvent::EventNonBlocking, webTouchBuilder.dispatchType); | 171 EXPECT_EQ(WebInputEvent::EventNonBlocking, webTouchBuilder.dispatchType); |
169 } | 172 } |
170 | 173 |
171 // Test cancelable touchstart. | 174 // Test cancelable touchstart. |
172 { | 175 { |
173 TouchList* touchList = TouchList::create(); | 176 TouchList* touchList = TouchList::create(); |
174 touchList->append(touch0); | 177 touchList->append(touch0); |
175 TouchEvent* touchEvent = TouchEvent::create( | 178 TouchEvent* touchEvent = TouchEvent::create( |
176 touchList, touchList, touchList, EventTypeNames::touchstart, domWindow, | 179 touchList, touchList, touchList, EventTypeNames::touchstart, domWindow, |
177 PlatformEvent::NoModifiers, true, false, true, 0, TouchActionAuto); | 180 PlatformEvent::NoModifiers, true, false, true, 0, TouchActionAuto, |
| 181 WebPointerProperties::PointerType::Touch); |
178 | 182 |
179 WebTouchEventBuilder webTouchBuilder(documentLayoutView, *touchEvent); | 183 WebTouchEventBuilder webTouchBuilder(documentLayoutView, *touchEvent); |
180 EXPECT_EQ(WebInputEvent::Blocking, webTouchBuilder.dispatchType); | 184 EXPECT_EQ(WebInputEvent::Blocking, webTouchBuilder.dispatchType); |
181 } | 185 } |
182 | 186 |
183 // Test touchmove. | 187 // Test touchmove. |
184 { | 188 { |
185 TouchList* activeTouchList = TouchList::create(); | 189 TouchList* activeTouchList = TouchList::create(); |
186 TouchList* movedTouchList = TouchList::create(); | 190 TouchList* movedTouchList = TouchList::create(); |
187 activeTouchList->append(touch0); | 191 activeTouchList->append(touch0); |
188 activeTouchList->append(touch1); | 192 activeTouchList->append(touch1); |
189 movedTouchList->append(touch0); | 193 movedTouchList->append(touch0); |
190 TouchEvent* touchEvent = TouchEvent::create( | 194 TouchEvent* touchEvent = TouchEvent::create( |
191 activeTouchList, activeTouchList, movedTouchList, | 195 activeTouchList, activeTouchList, movedTouchList, |
192 EventTypeNames::touchmove, domWindow, PlatformEvent::NoModifiers, false, | 196 EventTypeNames::touchmove, domWindow, PlatformEvent::NoModifiers, false, |
193 false, true, 0, TouchActionAuto); | 197 false, true, 0, TouchActionAuto, |
| 198 WebPointerProperties::PointerType::Touch); |
194 | 199 |
195 WebTouchEventBuilder webTouchBuilder(documentLayoutView, *touchEvent); | 200 WebTouchEventBuilder webTouchBuilder(documentLayoutView, *touchEvent); |
196 ASSERT_EQ(2u, webTouchBuilder.touchesLength); | 201 ASSERT_EQ(2u, webTouchBuilder.touchesLength); |
197 EXPECT_EQ(WebInputEvent::TouchMove, webTouchBuilder.type); | 202 EXPECT_EQ(WebInputEvent::TouchMove, webTouchBuilder.type); |
198 EXPECT_EQ(WebTouchPoint::StateMoved, webTouchBuilder.touches[0].state); | 203 EXPECT_EQ(WebTouchPoint::StateMoved, webTouchBuilder.touches[0].state); |
199 EXPECT_EQ(WebTouchPoint::StateStationary, webTouchBuilder.touches[1].state); | 204 EXPECT_EQ(WebTouchPoint::StateStationary, webTouchBuilder.touches[1].state); |
200 EXPECT_EQ(p0.id, webTouchBuilder.touches[0].id); | 205 EXPECT_EQ(p0.id, webTouchBuilder.touches[0].id); |
201 EXPECT_EQ(p1.id, webTouchBuilder.touches[1].id); | 206 EXPECT_EQ(p1.id, webTouchBuilder.touches[1].id); |
202 EXPECT_EQ(WebInputEvent::EventNonBlocking, webTouchBuilder.dispatchType); | 207 EXPECT_EQ(WebInputEvent::EventNonBlocking, webTouchBuilder.dispatchType); |
203 } | 208 } |
204 | 209 |
205 // Test touchmove, different point yields same ordering. | 210 // Test touchmove, different point yields same ordering. |
206 { | 211 { |
207 TouchList* activeTouchList = TouchList::create(); | 212 TouchList* activeTouchList = TouchList::create(); |
208 TouchList* movedTouchList = TouchList::create(); | 213 TouchList* movedTouchList = TouchList::create(); |
209 activeTouchList->append(touch0); | 214 activeTouchList->append(touch0); |
210 activeTouchList->append(touch1); | 215 activeTouchList->append(touch1); |
211 movedTouchList->append(touch1); | 216 movedTouchList->append(touch1); |
212 TouchEvent* touchEvent = TouchEvent::create( | 217 TouchEvent* touchEvent = TouchEvent::create( |
213 activeTouchList, activeTouchList, movedTouchList, | 218 activeTouchList, activeTouchList, movedTouchList, |
214 EventTypeNames::touchmove, domWindow, PlatformEvent::NoModifiers, false, | 219 EventTypeNames::touchmove, domWindow, PlatformEvent::NoModifiers, false, |
215 false, true, 0, TouchActionAuto); | 220 false, true, 0, TouchActionAuto, |
| 221 WebPointerProperties::PointerType::Touch); |
216 | 222 |
217 WebTouchEventBuilder webTouchBuilder(documentLayoutView, *touchEvent); | 223 WebTouchEventBuilder webTouchBuilder(documentLayoutView, *touchEvent); |
218 ASSERT_EQ(2u, webTouchBuilder.touchesLength); | 224 ASSERT_EQ(2u, webTouchBuilder.touchesLength); |
219 EXPECT_EQ(WebInputEvent::TouchMove, webTouchBuilder.type); | 225 EXPECT_EQ(WebInputEvent::TouchMove, webTouchBuilder.type); |
220 EXPECT_EQ(WebTouchPoint::StateStationary, webTouchBuilder.touches[0].state); | 226 EXPECT_EQ(WebTouchPoint::StateStationary, webTouchBuilder.touches[0].state); |
221 EXPECT_EQ(WebTouchPoint::StateMoved, webTouchBuilder.touches[1].state); | 227 EXPECT_EQ(WebTouchPoint::StateMoved, webTouchBuilder.touches[1].state); |
222 EXPECT_EQ(p0.id, webTouchBuilder.touches[0].id); | 228 EXPECT_EQ(p0.id, webTouchBuilder.touches[0].id); |
223 EXPECT_EQ(p1.id, webTouchBuilder.touches[1].id); | 229 EXPECT_EQ(p1.id, webTouchBuilder.touches[1].id); |
224 EXPECT_EQ(WebInputEvent::EventNonBlocking, webTouchBuilder.dispatchType); | 230 EXPECT_EQ(WebInputEvent::EventNonBlocking, webTouchBuilder.dispatchType); |
225 } | 231 } |
226 | 232 |
227 // Test touchend. | 233 // Test touchend. |
228 { | 234 { |
229 TouchList* activeTouchList = TouchList::create(); | 235 TouchList* activeTouchList = TouchList::create(); |
230 TouchList* releasedTouchList = TouchList::create(); | 236 TouchList* releasedTouchList = TouchList::create(); |
231 activeTouchList->append(touch0); | 237 activeTouchList->append(touch0); |
232 releasedTouchList->append(touch1); | 238 releasedTouchList->append(touch1); |
233 TouchEvent* touchEvent = TouchEvent::create( | 239 TouchEvent* touchEvent = TouchEvent::create( |
234 activeTouchList, activeTouchList, releasedTouchList, | 240 activeTouchList, activeTouchList, releasedTouchList, |
235 EventTypeNames::touchend, domWindow, PlatformEvent::NoModifiers, false, | 241 EventTypeNames::touchend, domWindow, PlatformEvent::NoModifiers, false, |
236 false, false, 0, TouchActionAuto); | 242 false, false, 0, TouchActionAuto, |
| 243 WebPointerProperties::PointerType::Touch); |
237 | 244 |
238 WebTouchEventBuilder webTouchBuilder(documentLayoutView, *touchEvent); | 245 WebTouchEventBuilder webTouchBuilder(documentLayoutView, *touchEvent); |
239 ASSERT_EQ(2u, webTouchBuilder.touchesLength); | 246 ASSERT_EQ(2u, webTouchBuilder.touchesLength); |
240 EXPECT_EQ(WebInputEvent::TouchEnd, webTouchBuilder.type); | 247 EXPECT_EQ(WebInputEvent::TouchEnd, webTouchBuilder.type); |
241 EXPECT_EQ(WebTouchPoint::StateStationary, webTouchBuilder.touches[0].state); | 248 EXPECT_EQ(WebTouchPoint::StateStationary, webTouchBuilder.touches[0].state); |
242 EXPECT_EQ(WebTouchPoint::StateReleased, webTouchBuilder.touches[1].state); | 249 EXPECT_EQ(WebTouchPoint::StateReleased, webTouchBuilder.touches[1].state); |
243 EXPECT_EQ(p0.id, webTouchBuilder.touches[0].id); | 250 EXPECT_EQ(p0.id, webTouchBuilder.touches[0].id); |
244 EXPECT_EQ(p1.id, webTouchBuilder.touches[1].id); | 251 EXPECT_EQ(p1.id, webTouchBuilder.touches[1].id); |
245 EXPECT_EQ(WebInputEvent::EventNonBlocking, webTouchBuilder.dispatchType); | 252 EXPECT_EQ(WebInputEvent::EventNonBlocking, webTouchBuilder.dispatchType); |
246 } | 253 } |
247 | 254 |
248 // Test touchcancel. | 255 // Test touchcancel. |
249 { | 256 { |
250 TouchList* activeTouchList = TouchList::create(); | 257 TouchList* activeTouchList = TouchList::create(); |
251 TouchList* cancelledTouchList = TouchList::create(); | 258 TouchList* cancelledTouchList = TouchList::create(); |
252 cancelledTouchList->append(touch0); | 259 cancelledTouchList->append(touch0); |
253 cancelledTouchList->append(touch1); | 260 cancelledTouchList->append(touch1); |
254 TouchEvent* touchEvent = TouchEvent::create( | 261 TouchEvent* touchEvent = TouchEvent::create( |
255 activeTouchList, activeTouchList, cancelledTouchList, | 262 activeTouchList, activeTouchList, cancelledTouchList, |
256 EventTypeNames::touchcancel, domWindow, PlatformEvent::NoModifiers, | 263 EventTypeNames::touchcancel, domWindow, PlatformEvent::NoModifiers, |
257 false, false, false, 0, TouchActionAuto); | 264 false, false, false, 0, TouchActionAuto, |
| 265 WebPointerProperties::PointerType::Touch); |
258 | 266 |
259 WebTouchEventBuilder webTouchBuilder(documentLayoutView, *touchEvent); | 267 WebTouchEventBuilder webTouchBuilder(documentLayoutView, *touchEvent); |
260 ASSERT_EQ(2u, webTouchBuilder.touchesLength); | 268 ASSERT_EQ(2u, webTouchBuilder.touchesLength); |
261 EXPECT_EQ(WebInputEvent::TouchCancel, webTouchBuilder.type); | 269 EXPECT_EQ(WebInputEvent::TouchCancel, webTouchBuilder.type); |
262 EXPECT_EQ(WebTouchPoint::StateCancelled, webTouchBuilder.touches[0].state); | 270 EXPECT_EQ(WebTouchPoint::StateCancelled, webTouchBuilder.touches[0].state); |
263 EXPECT_EQ(WebTouchPoint::StateCancelled, webTouchBuilder.touches[1].state); | 271 EXPECT_EQ(WebTouchPoint::StateCancelled, webTouchBuilder.touches[1].state); |
264 EXPECT_EQ(p0.id, webTouchBuilder.touches[0].id); | 272 EXPECT_EQ(p0.id, webTouchBuilder.touches[0].id); |
265 EXPECT_EQ(p1.id, webTouchBuilder.touches[1].id); | 273 EXPECT_EQ(p1.id, webTouchBuilder.touches[1].id); |
266 EXPECT_EQ(WebInputEvent::EventNonBlocking, webTouchBuilder.dispatchType); | 274 EXPECT_EQ(WebInputEvent::EventNonBlocking, webTouchBuilder.dispatchType); |
267 } | 275 } |
268 | 276 |
269 // Test max point limit. | 277 // Test max point limit. |
270 { | 278 { |
271 TouchList* touchList = TouchList::create(); | 279 TouchList* touchList = TouchList::create(); |
272 TouchList* changedTouchList = TouchList::create(); | 280 TouchList* changedTouchList = TouchList::create(); |
273 for (int i = 0; i <= static_cast<int>(WebTouchEvent::kTouchesLengthCap) * 2; | 281 for (int i = 0; i <= static_cast<int>(WebTouchEvent::kTouchesLengthCap) * 2; |
274 ++i) { | 282 ++i) { |
275 Touch* touch = Touch::create( | 283 Touch* touch = Touch::create( |
276 toLocalFrame(webViewImpl->page()->mainFrame()), document, i, | 284 toLocalFrame(webViewImpl->page()->mainFrame()), document, i, |
277 p0.screenPosition, p0.position, FloatSize(p0.radiusX, p0.radiusY), | 285 p0.screenPosition, p0.position, FloatSize(p0.radiusX, p0.radiusY), |
278 p0.rotationAngle, p0.force, String()); | 286 p0.rotationAngle, p0.force, String()); |
279 touchList->append(touch); | 287 touchList->append(touch); |
280 changedTouchList->append(touch); | 288 changedTouchList->append(touch); |
281 } | 289 } |
282 TouchEvent* touchEvent = TouchEvent::create( | 290 TouchEvent* touchEvent = TouchEvent::create( |
283 touchList, touchList, touchList, EventTypeNames::touchstart, domWindow, | 291 touchList, touchList, touchList, EventTypeNames::touchstart, domWindow, |
284 PlatformEvent::NoModifiers, false, false, true, 0, TouchActionAuto); | 292 PlatformEvent::NoModifiers, false, false, true, 0, TouchActionAuto, |
| 293 WebPointerProperties::PointerType::Touch); |
285 | 294 |
286 WebTouchEventBuilder webTouchBuilder(documentLayoutView, *touchEvent); | 295 WebTouchEventBuilder webTouchBuilder(documentLayoutView, *touchEvent); |
287 ASSERT_EQ(static_cast<unsigned>(WebTouchEvent::kTouchesLengthCap), | 296 ASSERT_EQ(static_cast<unsigned>(WebTouchEvent::kTouchesLengthCap), |
288 webTouchBuilder.touchesLength); | 297 webTouchBuilder.touchesLength); |
289 } | 298 } |
290 } | 299 } |
291 | 300 |
292 TEST(WebInputEventConversionTest, InputEventsScaling) { | 301 TEST(WebInputEventConversionTest, InputEventsScaling) { |
293 const std::string baseURL("http://www.test1.com/"); | 302 const std::string baseURL("http://www.test1.com/"); |
294 const std::string fileName("fixed_layout.html"); | 303 const std::string fileName("fixed_layout.html"); |
(...skipping 257 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
552 | 561 |
553 { | 562 { |
554 Touch* touch = | 563 Touch* touch = |
555 Touch::create(toLocalFrame(webViewImpl->page()->mainFrame()), document, | 564 Touch::create(toLocalFrame(webViewImpl->page()->mainFrame()), document, |
556 0, FloatPoint(10, 9.5), FloatPoint(3.5, 2), | 565 0, FloatPoint(10, 9.5), FloatPoint(3.5, 2), |
557 FloatSize(4, 4.5), 0, 0, String()); | 566 FloatSize(4, 4.5), 0, 0, String()); |
558 TouchList* touchList = TouchList::create(); | 567 TouchList* touchList = TouchList::create(); |
559 touchList->append(touch); | 568 touchList->append(touch); |
560 TouchEvent* touchEvent = TouchEvent::create( | 569 TouchEvent* touchEvent = TouchEvent::create( |
561 touchList, touchList, touchList, EventTypeNames::touchmove, domWindow, | 570 touchList, touchList, touchList, EventTypeNames::touchmove, domWindow, |
562 PlatformEvent::NoModifiers, false, false, true, 0, TouchActionAuto); | 571 PlatformEvent::NoModifiers, false, false, true, 0, TouchActionAuto, |
| 572 WebPointerProperties::PointerType::Touch); |
563 | 573 |
564 WebTouchEventBuilder webTouchBuilder(documentLayoutView, *touchEvent); | 574 WebTouchEventBuilder webTouchBuilder(documentLayoutView, *touchEvent); |
565 ASSERT_EQ(1u, webTouchBuilder.touchesLength); | 575 ASSERT_EQ(1u, webTouchBuilder.touchesLength); |
566 EXPECT_EQ(10, webTouchBuilder.touches[0].screenPosition.x); | 576 EXPECT_EQ(10, webTouchBuilder.touches[0].screenPosition.x); |
567 EXPECT_FLOAT_EQ(9.5, webTouchBuilder.touches[0].screenPosition.y); | 577 EXPECT_FLOAT_EQ(9.5, webTouchBuilder.touches[0].screenPosition.y); |
568 EXPECT_FLOAT_EQ(3.5, webTouchBuilder.touches[0].position.x); | 578 EXPECT_FLOAT_EQ(3.5, webTouchBuilder.touches[0].position.x); |
569 EXPECT_FLOAT_EQ(2, webTouchBuilder.touches[0].position.y); | 579 EXPECT_FLOAT_EQ(2, webTouchBuilder.touches[0].position.y); |
570 EXPECT_FLOAT_EQ(4, webTouchBuilder.touches[0].radiusX); | 580 EXPECT_FLOAT_EQ(4, webTouchBuilder.touches[0].radiusX); |
571 EXPECT_FLOAT_EQ(4.5, webTouchBuilder.touches[0].radiusY); | 581 EXPECT_FLOAT_EQ(4.5, webTouchBuilder.touches[0].radiusY); |
572 EXPECT_EQ(WebInputEvent::EventNonBlocking, webTouchBuilder.dispatchType); | 582 EXPECT_EQ(WebInputEvent::EventNonBlocking, webTouchBuilder.dispatchType); |
(...skipping 755 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1328 EXPECT_EQ(ScrollInertialPhaseNonMomentum, | 1338 EXPECT_EQ(ScrollInertialPhaseNonMomentum, |
1329 platformGestureBuilder.inertialPhase()); | 1339 platformGestureBuilder.inertialPhase()); |
1330 EXPECT_TRUE(platformGestureBuilder.synthetic()); | 1340 EXPECT_TRUE(platformGestureBuilder.synthetic()); |
1331 EXPECT_EQ(ScrollGranularity::ScrollByPage, | 1341 EXPECT_EQ(ScrollGranularity::ScrollByPage, |
1332 platformGestureBuilder.deltaUnits()); | 1342 platformGestureBuilder.deltaUnits()); |
1333 EXPECT_EQ(12345U, platformGestureBuilder.uniqueTouchEventId()); | 1343 EXPECT_EQ(12345U, platformGestureBuilder.uniqueTouchEventId()); |
1334 } | 1344 } |
1335 } | 1345 } |
1336 | 1346 |
1337 } // namespace blink | 1347 } // namespace blink |
OLD | NEW |