OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "base/basictypes.h" | 5 #include "base/basictypes.h" |
6 #include "base/logging.h" | 6 #include "base/logging.h" |
7 #include "base/memory/scoped_ptr.h" | 7 #include "base/memory/scoped_ptr.h" |
8 #include "base/message_loop/message_loop.h" | 8 #include "base/message_loop/message_loop.h" |
9 #include "base/time/time.h" | 9 #include "base/time/time.h" |
10 #include "testing/gtest/include/gtest/gtest.h" | 10 #include "testing/gtest/include/gtest/gtest.h" |
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
188 | 188 |
189 event = ObtainMotionEvent( | 189 event = ObtainMotionEvent( |
190 event_time + kOneSecond, end_action_type, scroll_to_x, scroll_to_y); | 190 event_time + kOneSecond, end_action_type, scroll_to_x, scroll_to_y); |
191 event.SetId(++motion_event_id); | 191 event.SetId(++motion_event_id); |
192 | 192 |
193 gesture_provider_->OnTouchEvent(event); | 193 gesture_provider_->OnTouchEvent(event); |
194 EXPECT_FALSE(gesture_provider_->IsScrollInProgress()); | 194 EXPECT_FALSE(gesture_provider_->IsScrollInProgress()); |
195 EXPECT_TRUE(HasReceivedGesture(ET_GESTURE_SCROLL_END)); | 195 EXPECT_TRUE(HasReceivedGesture(ET_GESTURE_SCROLL_END)); |
196 EXPECT_EQ(ET_GESTURE_SCROLL_END, GetMostRecentGestureEventType()); | 196 EXPECT_EQ(ET_GESTURE_SCROLL_END, GetMostRecentGestureEventType()); |
197 EXPECT_EQ(motion_event_id, GetMostRecentGestureEvent().motion_event_id); | 197 EXPECT_EQ(motion_event_id, GetMostRecentGestureEvent().motion_event_id); |
| 198 EXPECT_EQ(1, GetMostRecentGestureEvent().details.touch_points()); |
198 } | 199 } |
199 | 200 |
200 static void RunTasksAndWait(base::TimeDelta delay) { | 201 static void RunTasksAndWait(base::TimeDelta delay) { |
201 base::MessageLoop::current()->PostDelayedTask( | 202 base::MessageLoop::current()->PostDelayedTask( |
202 FROM_HERE, base::MessageLoop::QuitClosure(), delay); | 203 FROM_HERE, base::MessageLoop::QuitClosure(), delay); |
203 base::MessageLoop::current()->Run(); | 204 base::MessageLoop::current()->Run(); |
204 } | 205 } |
205 | 206 |
206 std::vector<GestureEventData> gestures_; | 207 std::vector<GestureEventData> gestures_; |
207 scoped_ptr<GestureProvider> gesture_provider_; | 208 scoped_ptr<GestureProvider> gesture_provider_; |
208 scoped_ptr<GestureEventData> active_scroll_begin_event_; | 209 scoped_ptr<GestureEventData> active_scroll_begin_event_; |
209 base::MessageLoopForUI message_loop_; | 210 base::MessageLoopForUI message_loop_; |
210 }; | 211 }; |
211 | 212 |
212 // Verify that a DOWN followed shortly by an UP will trigger a single tap. | 213 // Verify that a DOWN followed shortly by an UP will trigger a single tap. |
213 TEST_F(GestureProviderTest, GestureTapTap) { | 214 TEST_F(GestureProviderTest, GestureTapTap) { |
214 base::TimeTicks event_time = base::TimeTicks::Now(); | 215 base::TimeTicks event_time = base::TimeTicks::Now(); |
215 int motion_event_id = 0; | 216 int motion_event_id = 0; |
216 | 217 |
217 gesture_provider_->SetDoubleTapSupportForPlatformEnabled(false); | 218 gesture_provider_->SetDoubleTapSupportForPlatformEnabled(false); |
218 | 219 |
219 MockMotionEvent event = | 220 MockMotionEvent event = |
220 ObtainMotionEvent(event_time, MotionEvent::ACTION_DOWN); | 221 ObtainMotionEvent(event_time, MotionEvent::ACTION_DOWN); |
221 event.SetId(++motion_event_id); | 222 event.SetId(++motion_event_id); |
222 | 223 |
223 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 224 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
224 EXPECT_EQ(ET_GESTURE_TAP_DOWN, GetMostRecentGestureEventType()); | 225 EXPECT_EQ(ET_GESTURE_TAP_DOWN, GetMostRecentGestureEventType()); |
| 226 EXPECT_EQ(1, GetMostRecentGestureEvent().details.touch_points()); |
225 | 227 |
226 event = ObtainMotionEvent(event_time + kOneMicrosecond, | 228 event = ObtainMotionEvent(event_time + kOneMicrosecond, |
227 MotionEvent::ACTION_UP); | 229 MotionEvent::ACTION_UP); |
228 event.SetId(++motion_event_id); | 230 event.SetId(++motion_event_id); |
229 | 231 |
230 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 232 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
231 EXPECT_EQ(ET_GESTURE_TAP, GetMostRecentGestureEventType()); | 233 EXPECT_EQ(ET_GESTURE_TAP, GetMostRecentGestureEventType()); |
232 // Ensure tap details have been set. | 234 // Ensure tap details have been set. |
233 EXPECT_EQ(10, GetMostRecentGestureEvent().details.bounding_box().width()); | 235 EXPECT_EQ(10, GetMostRecentGestureEvent().details.bounding_box().width()); |
234 EXPECT_EQ(10, GetMostRecentGestureEvent().details.bounding_box().height()); | 236 EXPECT_EQ(10, GetMostRecentGestureEvent().details.bounding_box().height()); |
235 EXPECT_EQ(1, GetMostRecentGestureEvent().details.tap_count()); | 237 EXPECT_EQ(1, GetMostRecentGestureEvent().details.tap_count()); |
236 EXPECT_EQ(motion_event_id, GetMostRecentGestureEvent().motion_event_id); | 238 EXPECT_EQ(motion_event_id, GetMostRecentGestureEvent().motion_event_id); |
| 239 EXPECT_EQ(1, GetMostRecentGestureEvent().details.touch_points()); |
237 } | 240 } |
238 | 241 |
239 // Verify that a DOWN followed shortly by an UP will trigger | 242 // Verify that a DOWN followed shortly by an UP will trigger |
240 // a ET_GESTURE_TAP_UNCONFIRMED event if double-tap is enabled. | 243 // a ET_GESTURE_TAP_UNCONFIRMED event if double-tap is enabled. |
241 TEST_F(GestureProviderTest, GestureTapTapWithDelay) { | 244 TEST_F(GestureProviderTest, GestureTapTapWithDelay) { |
242 base::TimeTicks event_time = base::TimeTicks::Now(); | 245 base::TimeTicks event_time = base::TimeTicks::Now(); |
243 int motion_event_id = 0; | 246 int motion_event_id = 0; |
244 | 247 |
245 gesture_provider_->SetDoubleTapSupportForPlatformEnabled(true); | 248 gesture_provider_->SetDoubleTapSupportForPlatformEnabled(true); |
246 | 249 |
247 MockMotionEvent event = | 250 MockMotionEvent event = |
248 ObtainMotionEvent(event_time, MotionEvent::ACTION_DOWN); | 251 ObtainMotionEvent(event_time, MotionEvent::ACTION_DOWN); |
249 event.SetId(++motion_event_id); | 252 event.SetId(++motion_event_id); |
250 | 253 |
251 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 254 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
252 EXPECT_EQ(ET_GESTURE_TAP_DOWN, GetMostRecentGestureEventType()); | 255 EXPECT_EQ(ET_GESTURE_TAP_DOWN, GetMostRecentGestureEventType()); |
253 EXPECT_EQ(motion_event_id, GetMostRecentGestureEvent().motion_event_id); | 256 EXPECT_EQ(motion_event_id, GetMostRecentGestureEvent().motion_event_id); |
| 257 EXPECT_EQ(1, GetMostRecentGestureEvent().details.touch_points()); |
254 | 258 |
255 event = ObtainMotionEvent(event_time + kOneMicrosecond, | 259 event = ObtainMotionEvent(event_time + kOneMicrosecond, |
256 MotionEvent::ACTION_UP); | 260 MotionEvent::ACTION_UP); |
257 event.SetId(++motion_event_id); | 261 event.SetId(++motion_event_id); |
258 | 262 |
259 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 263 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
260 EXPECT_EQ(ET_GESTURE_TAP_UNCONFIRMED, GetMostRecentGestureEventType()); | 264 EXPECT_EQ(ET_GESTURE_TAP_UNCONFIRMED, GetMostRecentGestureEventType()); |
261 // Ensure tap details have been set. | 265 // Ensure tap details have been set. |
262 EXPECT_EQ(10, GetMostRecentGestureEvent().details.bounding_box().width()); | 266 EXPECT_EQ(10, GetMostRecentGestureEvent().details.bounding_box().width()); |
263 EXPECT_EQ(10, GetMostRecentGestureEvent().details.bounding_box().height()); | 267 EXPECT_EQ(10, GetMostRecentGestureEvent().details.bounding_box().height()); |
264 EXPECT_EQ(1, GetMostRecentGestureEvent().details.tap_count()); | 268 EXPECT_EQ(1, GetMostRecentGestureEvent().details.tap_count()); |
265 EXPECT_EQ(motion_event_id, GetMostRecentGestureEvent().motion_event_id); | 269 EXPECT_EQ(motion_event_id, GetMostRecentGestureEvent().motion_event_id); |
| 270 EXPECT_EQ(1, GetMostRecentGestureEvent().details.touch_points()); |
266 | 271 |
267 EXPECT_FALSE(HasReceivedGesture(ET_GESTURE_TAP)); | 272 EXPECT_FALSE(HasReceivedGesture(ET_GESTURE_TAP)); |
268 } | 273 } |
269 | 274 |
270 // Verify that a DOWN followed by a MOVE will trigger fling (but not LONG). | 275 // Verify that a DOWN followed by a MOVE will trigger fling (but not LONG). |
271 TEST_F(GestureProviderTest, GestureFlingAndCancelLongPress) { | 276 TEST_F(GestureProviderTest, GestureFlingAndCancelLongPress) { |
272 base::TimeTicks event_time = TimeTicks::Now(); | 277 base::TimeTicks event_time = TimeTicks::Now(); |
273 base::TimeDelta delta_time = kDeltaTimeForFlingSequences; | 278 base::TimeDelta delta_time = kDeltaTimeForFlingSequences; |
274 int motion_event_id = 0; | 279 int motion_event_id = 0; |
275 | 280 |
276 MockMotionEvent event = | 281 MockMotionEvent event = |
277 ObtainMotionEvent(event_time, MotionEvent::ACTION_DOWN); | 282 ObtainMotionEvent(event_time, MotionEvent::ACTION_DOWN); |
278 event.SetId(++motion_event_id); | 283 event.SetId(++motion_event_id); |
279 | 284 |
280 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 285 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
281 EXPECT_EQ(ET_GESTURE_TAP_DOWN, GetMostRecentGestureEventType()); | 286 EXPECT_EQ(ET_GESTURE_TAP_DOWN, GetMostRecentGestureEventType()); |
282 EXPECT_EQ(motion_event_id, GetMostRecentGestureEvent().motion_event_id); | 287 EXPECT_EQ(motion_event_id, GetMostRecentGestureEvent().motion_event_id); |
| 288 EXPECT_EQ(1, GetMostRecentGestureEvent().details.touch_points()); |
283 | 289 |
284 event = ObtainMotionEvent(event_time + delta_time, | 290 event = ObtainMotionEvent(event_time + delta_time, |
285 MotionEvent::ACTION_MOVE, | 291 MotionEvent::ACTION_MOVE, |
286 kFakeCoordX * 10, | 292 kFakeCoordX * 10, |
287 kFakeCoordY * 10); | 293 kFakeCoordY * 10); |
288 event.SetId(++motion_event_id); | 294 event.SetId(++motion_event_id); |
289 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 295 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
290 | 296 |
291 event = ObtainMotionEvent(event_time + delta_time * 2, | 297 event = ObtainMotionEvent(event_time + delta_time * 2, |
292 MotionEvent::ACTION_UP, | 298 MotionEvent::ACTION_UP, |
293 kFakeCoordX * 10, | 299 kFakeCoordX * 10, |
294 kFakeCoordY * 10); | 300 kFakeCoordY * 10); |
295 event.SetId(++motion_event_id); | 301 event.SetId(++motion_event_id); |
296 | 302 |
297 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 303 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
298 EXPECT_EQ(ET_SCROLL_FLING_START, GetMostRecentGestureEventType()); | 304 EXPECT_EQ(ET_SCROLL_FLING_START, GetMostRecentGestureEventType()); |
299 EXPECT_EQ(motion_event_id, GetMostRecentGestureEvent().motion_event_id); | 305 EXPECT_EQ(motion_event_id, GetMostRecentGestureEvent().motion_event_id); |
| 306 EXPECT_EQ(1, GetMostRecentGestureEvent().details.touch_points()); |
300 EXPECT_FALSE(HasReceivedGesture(ET_GESTURE_LONG_PRESS)); | 307 EXPECT_FALSE(HasReceivedGesture(ET_GESTURE_LONG_PRESS)); |
301 } | 308 } |
302 | 309 |
303 // Verify that for a normal scroll the following events are sent: | 310 // Verify that for a normal scroll the following events are sent: |
304 // - ET_GESTURE_SCROLL_BEGIN | 311 // - ET_GESTURE_SCROLL_BEGIN |
305 // - ET_GESTURE_SCROLL_UPDATE | 312 // - ET_GESTURE_SCROLL_UPDATE |
306 // - ET_GESTURE_SCROLL_END | 313 // - ET_GESTURE_SCROLL_END |
307 TEST_F(GestureProviderTest, ScrollEventActionUpSequence) { | 314 TEST_F(GestureProviderTest, ScrollEventActionUpSequence) { |
308 CheckScrollEventSequenceForEndActionType(MotionEvent::ACTION_UP); | 315 CheckScrollEventSequenceForEndActionType(MotionEvent::ACTION_UP); |
309 } | 316 } |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
356 event = ObtainMotionEvent(event_time + delta_time * 2, | 363 event = ObtainMotionEvent(event_time + delta_time * 2, |
357 MotionEvent::ACTION_UP, | 364 MotionEvent::ACTION_UP, |
358 kFakeCoordX * 10, | 365 kFakeCoordX * 10, |
359 kFakeCoordY * 10); | 366 kFakeCoordY * 10); |
360 event.SetId(++motion_event_id); | 367 event.SetId(++motion_event_id); |
361 | 368 |
362 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 369 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
363 EXPECT_FALSE(gesture_provider_->IsScrollInProgress()); | 370 EXPECT_FALSE(gesture_provider_->IsScrollInProgress()); |
364 EXPECT_EQ(ET_SCROLL_FLING_START, GetMostRecentGestureEventType()); | 371 EXPECT_EQ(ET_SCROLL_FLING_START, GetMostRecentGestureEventType()); |
365 EXPECT_EQ(motion_event_id, GetMostRecentGestureEvent().motion_event_id); | 372 EXPECT_EQ(motion_event_id, GetMostRecentGestureEvent().motion_event_id); |
| 373 EXPECT_EQ(1, GetMostRecentGestureEvent().details.touch_points()); |
366 EXPECT_FALSE(HasReceivedGesture(ET_GESTURE_SCROLL_END)); | 374 EXPECT_FALSE(HasReceivedGesture(ET_GESTURE_SCROLL_END)); |
367 EXPECT_EQ(event_time + delta_time * 2, GetMostRecentGestureEvent().time) | 375 EXPECT_EQ(event_time + delta_time * 2, GetMostRecentGestureEvent().time) |
368 << "FlingStart should have the time of the ACTION_UP"; | 376 << "FlingStart should have the time of the ACTION_UP"; |
369 } | 377 } |
370 | 378 |
371 TEST_F(GestureProviderTest, GestureCancelledWhenWindowFocusLost) { | 379 TEST_F(GestureProviderTest, GestureCancelledWhenWindowFocusLost) { |
372 const base::TimeTicks event_time = TimeTicks::Now(); | 380 const base::TimeTicks event_time = TimeTicks::Now(); |
373 | 381 |
374 MockMotionEvent event = | 382 MockMotionEvent event = |
375 ObtainMotionEvent(event_time, MotionEvent::ACTION_DOWN); | 383 ObtainMotionEvent(event_time, MotionEvent::ACTION_DOWN); |
(...skipping 17 matching lines...) Expand all Loading... |
393 | 401 |
394 TEST_F(GestureProviderTest, NoTapAfterScrollBegins) { | 402 TEST_F(GestureProviderTest, NoTapAfterScrollBegins) { |
395 base::TimeTicks event_time = base::TimeTicks::Now(); | 403 base::TimeTicks event_time = base::TimeTicks::Now(); |
396 | 404 |
397 MockMotionEvent event = | 405 MockMotionEvent event = |
398 ObtainMotionEvent(event_time, MotionEvent::ACTION_DOWN); | 406 ObtainMotionEvent(event_time, MotionEvent::ACTION_DOWN); |
399 | 407 |
400 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 408 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
401 | 409 |
402 EXPECT_EQ(ET_GESTURE_TAP_DOWN, GetMostRecentGestureEventType()); | 410 EXPECT_EQ(ET_GESTURE_TAP_DOWN, GetMostRecentGestureEventType()); |
| 411 EXPECT_EQ(1, GetMostRecentGestureEvent().details.touch_points()); |
403 event = ObtainMotionEvent(event_time + kOneMicrosecond, | 412 event = ObtainMotionEvent(event_time + kOneMicrosecond, |
404 MotionEvent::ACTION_MOVE, | 413 MotionEvent::ACTION_MOVE, |
405 kFakeCoordX + 50, | 414 kFakeCoordX + 50, |
406 kFakeCoordY + 50); | 415 kFakeCoordY + 50); |
407 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 416 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
408 EXPECT_EQ(ET_GESTURE_SCROLL_UPDATE, GetMostRecentGestureEventType()); | 417 EXPECT_EQ(ET_GESTURE_SCROLL_UPDATE, GetMostRecentGestureEventType()); |
409 | 418 |
410 event = ObtainMotionEvent(event_time + kOneSecond, | 419 event = ObtainMotionEvent(event_time + kOneSecond, |
411 MotionEvent::ACTION_UP, | 420 MotionEvent::ACTION_UP, |
412 kFakeCoordX + 50, | 421 kFakeCoordX + 50, |
413 kFakeCoordY + 50); | 422 kFakeCoordY + 50); |
414 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 423 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
415 EXPECT_EQ(ET_GESTURE_SCROLL_END, GetMostRecentGestureEventType()); | 424 EXPECT_EQ(ET_GESTURE_SCROLL_END, GetMostRecentGestureEventType()); |
416 EXPECT_FALSE(HasReceivedGesture(ET_GESTURE_LONG_TAP)); | 425 EXPECT_FALSE(HasReceivedGesture(ET_GESTURE_LONG_TAP)); |
417 } | 426 } |
418 | 427 |
419 TEST_F(GestureProviderTest, DoubleTap) { | 428 TEST_F(GestureProviderTest, DoubleTap) { |
420 base::TimeTicks event_time = base::TimeTicks::Now(); | 429 base::TimeTicks event_time = base::TimeTicks::Now(); |
421 | 430 |
422 MockMotionEvent event = | 431 MockMotionEvent event = |
423 ObtainMotionEvent(event_time, MotionEvent::ACTION_DOWN); | 432 ObtainMotionEvent(event_time, MotionEvent::ACTION_DOWN); |
424 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 433 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
425 | 434 |
426 EXPECT_EQ(ET_GESTURE_TAP_DOWN, GetMostRecentGestureEventType()); | 435 EXPECT_EQ(ET_GESTURE_TAP_DOWN, GetMostRecentGestureEventType()); |
| 436 EXPECT_EQ(1, GetMostRecentGestureEvent().details.touch_points()); |
427 | 437 |
428 event = ObtainMotionEvent(event_time + kOneMicrosecond, | 438 event = ObtainMotionEvent(event_time + kOneMicrosecond, |
429 MotionEvent::ACTION_UP, | 439 MotionEvent::ACTION_UP, |
430 kFakeCoordX, | 440 kFakeCoordX, |
431 kFakeCoordY); | 441 kFakeCoordY); |
432 gesture_provider_->OnTouchEvent(event); | 442 gesture_provider_->OnTouchEvent(event); |
433 EXPECT_EQ(ET_GESTURE_TAP_UNCONFIRMED, GetMostRecentGestureEventType()); | 443 EXPECT_EQ(ET_GESTURE_TAP_UNCONFIRMED, GetMostRecentGestureEventType()); |
| 444 EXPECT_EQ(1, GetMostRecentGestureEvent().details.touch_points()); |
434 | 445 |
435 event = ObtainMotionEvent(event_time + kOneMicrosecond * 2, | 446 event = ObtainMotionEvent(event_time + kOneMicrosecond * 2, |
436 MotionEvent::ACTION_DOWN, | 447 MotionEvent::ACTION_DOWN, |
437 kFakeCoordX, | 448 kFakeCoordX, |
438 kFakeCoordY); | 449 kFakeCoordY); |
439 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 450 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
440 EXPECT_EQ(ET_GESTURE_TAP_DOWN, GetMostRecentGestureEventType()); | 451 EXPECT_EQ(ET_GESTURE_TAP_DOWN, GetMostRecentGestureEventType()); |
| 452 EXPECT_EQ(1, GetMostRecentGestureEvent().details.touch_points()); |
441 | 453 |
442 // Moving a very small amount of distance should not trigger the double tap | 454 // Moving a very small amount of distance should not trigger the double tap |
443 // drag zoom mode. | 455 // drag zoom mode. |
444 event = ObtainMotionEvent(event_time + kOneMicrosecond * 3, | 456 event = ObtainMotionEvent(event_time + kOneMicrosecond * 3, |
445 MotionEvent::ACTION_MOVE, | 457 MotionEvent::ACTION_MOVE, |
446 kFakeCoordX, | 458 kFakeCoordX, |
447 kFakeCoordY + 1); | 459 kFakeCoordY + 1); |
448 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 460 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
449 EXPECT_EQ(ET_GESTURE_TAP_DOWN, GetMostRecentGestureEventType()); | 461 EXPECT_EQ(ET_GESTURE_TAP_DOWN, GetMostRecentGestureEventType()); |
| 462 EXPECT_EQ(1, GetMostRecentGestureEvent().details.touch_points()); |
450 | 463 |
451 event = ObtainMotionEvent(event_time + kOneMicrosecond * 3, | 464 event = ObtainMotionEvent(event_time + kOneMicrosecond * 3, |
452 MotionEvent::ACTION_UP, | 465 MotionEvent::ACTION_UP, |
453 kFakeCoordX, | 466 kFakeCoordX, |
454 kFakeCoordY + 1); | 467 kFakeCoordY + 1); |
455 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 468 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
456 | 469 |
457 const GestureEventData& double_tap = GetMostRecentGestureEvent(); | 470 const GestureEventData& double_tap = GetMostRecentGestureEvent(); |
458 EXPECT_EQ(ET_GESTURE_DOUBLE_TAP, double_tap.type); | 471 EXPECT_EQ(ET_GESTURE_DOUBLE_TAP, double_tap.type); |
459 // Ensure tap details have been set. | 472 // Ensure tap details have been set. |
460 EXPECT_EQ(10, double_tap.details.bounding_box().width()); | 473 EXPECT_EQ(10, double_tap.details.bounding_box().width()); |
461 EXPECT_EQ(10, double_tap.details.bounding_box().height()); | 474 EXPECT_EQ(10, double_tap.details.bounding_box().height()); |
462 EXPECT_EQ(1, double_tap.details.tap_count()); | 475 EXPECT_EQ(1, double_tap.details.tap_count()); |
463 } | 476 } |
464 | 477 |
465 TEST_F(GestureProviderTest, DoubleTapDragZoomBasic) { | 478 TEST_F(GestureProviderTest, DoubleTapDragZoomBasic) { |
466 const base::TimeTicks down_time_1 = TimeTicks::Now(); | 479 const base::TimeTicks down_time_1 = TimeTicks::Now(); |
467 const base::TimeTicks down_time_2 = down_time_1 + kOneMicrosecond * 2; | 480 const base::TimeTicks down_time_2 = down_time_1 + kOneMicrosecond * 2; |
468 | 481 |
469 MockMotionEvent event = | 482 MockMotionEvent event = |
470 ObtainMotionEvent(down_time_1, MotionEvent::ACTION_DOWN); | 483 ObtainMotionEvent(down_time_1, MotionEvent::ACTION_DOWN); |
471 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 484 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
472 | 485 |
473 event = ObtainMotionEvent(down_time_1 + kOneMicrosecond, | 486 event = ObtainMotionEvent(down_time_1 + kOneMicrosecond, |
474 MotionEvent::ACTION_UP, | 487 MotionEvent::ACTION_UP, |
475 kFakeCoordX, | 488 kFakeCoordX, |
476 kFakeCoordY); | 489 kFakeCoordY); |
477 gesture_provider_->OnTouchEvent(event); | 490 gesture_provider_->OnTouchEvent(event); |
478 EXPECT_EQ(ET_GESTURE_TAP_UNCONFIRMED, GetMostRecentGestureEventType()); | 491 EXPECT_EQ(ET_GESTURE_TAP_UNCONFIRMED, GetMostRecentGestureEventType()); |
| 492 EXPECT_EQ(1, GetMostRecentGestureEvent().details.touch_points()); |
479 | 493 |
480 event = ObtainMotionEvent( | 494 event = ObtainMotionEvent( |
481 down_time_2, MotionEvent::ACTION_DOWN, kFakeCoordX, kFakeCoordY); | 495 down_time_2, MotionEvent::ACTION_DOWN, kFakeCoordX, kFakeCoordY); |
482 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 496 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
483 EXPECT_EQ(ET_GESTURE_TAP_DOWN, GetMostRecentGestureEventType()); | 497 EXPECT_EQ(ET_GESTURE_TAP_DOWN, GetMostRecentGestureEventType()); |
| 498 EXPECT_EQ(1, GetMostRecentGestureEvent().details.touch_points()); |
484 | 499 |
485 event = ObtainMotionEvent(down_time_2 + kOneMicrosecond, | 500 event = ObtainMotionEvent(down_time_2 + kOneMicrosecond, |
486 MotionEvent::ACTION_MOVE, | 501 MotionEvent::ACTION_MOVE, |
487 kFakeCoordX, | 502 kFakeCoordX, |
488 kFakeCoordY + 100); | 503 kFakeCoordY + 100); |
489 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 504 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
490 EXPECT_TRUE(HasReceivedGesture(ET_GESTURE_SCROLL_BEGIN)); | 505 EXPECT_TRUE(HasReceivedGesture(ET_GESTURE_SCROLL_BEGIN)); |
491 ASSERT_EQ(ET_GESTURE_PINCH_BEGIN, GetMostRecentGestureEventType()); | 506 ASSERT_EQ(ET_GESTURE_PINCH_BEGIN, GetMostRecentGestureEventType()); |
492 | 507 |
493 event = ObtainMotionEvent(down_time_2 + kOneMicrosecond * 2, | 508 event = ObtainMotionEvent(down_time_2 + kOneMicrosecond * 2, |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
541 kFakeCoordY - delta_y); | 556 kFakeCoordY - delta_y); |
542 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 557 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
543 | 558 |
544 // Make sure the reported gesture event has all the expected details. | 559 // Make sure the reported gesture event has all the expected details. |
545 ASSERT_LT(0U, GetReceivedGestureCount()); | 560 ASSERT_LT(0U, GetReceivedGestureCount()); |
546 GestureEventData gesture = GetMostRecentGestureEvent(); | 561 GestureEventData gesture = GetMostRecentGestureEvent(); |
547 EXPECT_EQ(ET_GESTURE_SCROLL_UPDATE, gesture.type); | 562 EXPECT_EQ(ET_GESTURE_SCROLL_UPDATE, gesture.type); |
548 EXPECT_EQ(event_time + kOneMicrosecond * 2, gesture.time); | 563 EXPECT_EQ(event_time + kOneMicrosecond * 2, gesture.time); |
549 EXPECT_EQ(kFakeCoordX - delta_x, gesture.x); | 564 EXPECT_EQ(kFakeCoordX - delta_x, gesture.x); |
550 EXPECT_EQ(kFakeCoordY - delta_y, gesture.y); | 565 EXPECT_EQ(kFakeCoordY - delta_y, gesture.y); |
| 566 EXPECT_EQ(1, gesture.details.touch_points()); |
551 | 567 |
552 // No horizontal delta because of snapping. | 568 // No horizontal delta because of snapping. |
553 EXPECT_EQ(0, gesture.details.scroll_x()); | 569 EXPECT_EQ(0, gesture.details.scroll_x()); |
554 EXPECT_EQ(-delta_y / 2, gesture.details.scroll_y()); | 570 EXPECT_EQ(-delta_y / 2, gesture.details.scroll_y()); |
555 } | 571 } |
556 | 572 |
557 // Verify that fractional scroll deltas are rounded as expected and that | 573 // Verify that fractional scroll deltas are rounded as expected and that |
558 // fractional scrolling doesn't break scroll snapping. | 574 // fractional scrolling doesn't break scroll snapping. |
559 TEST_F(GestureProviderTest, FractionalScroll) { | 575 TEST_F(GestureProviderTest, FractionalScroll) { |
560 const float delta_x = 0.4f; | 576 const float delta_x = 0.4f; |
(...skipping 21 matching lines...) Expand all Loading... |
582 event = ObtainMotionEvent(event_time + kOneMicrosecond * i, | 598 event = ObtainMotionEvent(event_time + kOneMicrosecond * i, |
583 MotionEvent::ACTION_MOVE, | 599 MotionEvent::ACTION_MOVE, |
584 kFakeCoordX + delta_x * i, | 600 kFakeCoordX + delta_x * i, |
585 kFakeCoordY + delta_y * i); | 601 kFakeCoordY + delta_y * i); |
586 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 602 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
587 | 603 |
588 ASSERT_LT(0U, GetReceivedGestureCount()); | 604 ASSERT_LT(0U, GetReceivedGestureCount()); |
589 GestureEventData gesture = GetMostRecentGestureEvent(); | 605 GestureEventData gesture = GetMostRecentGestureEvent(); |
590 EXPECT_EQ(ET_GESTURE_SCROLL_UPDATE, gesture.type); | 606 EXPECT_EQ(ET_GESTURE_SCROLL_UPDATE, gesture.type); |
591 EXPECT_EQ(event_time + kOneMicrosecond * i, gesture.time); | 607 EXPECT_EQ(event_time + kOneMicrosecond * i, gesture.time); |
| 608 EXPECT_EQ(1, gesture.details.touch_points()); |
592 | 609 |
593 // Verify that the event co-ordinates are still the precise values we | 610 // Verify that the event co-ordinates are still the precise values we |
594 // supplied. | 611 // supplied. |
595 EXPECT_EQ(kFakeCoordX + delta_x * i, gesture.x); | 612 EXPECT_EQ(kFakeCoordX + delta_x * i, gesture.x); |
596 EXPECT_EQ(kFakeCoordY + delta_y * i, gesture.y); | 613 EXPECT_EQ(kFakeCoordY + delta_y * i, gesture.y); |
597 | 614 |
598 // Verify that we're scrolling vertically by the expected amount | 615 // Verify that we're scrolling vertically by the expected amount |
599 // (modulo rounding). | 616 // (modulo rounding). |
600 EXPECT_GE(gesture.details.scroll_y(), (int)delta_y); | 617 EXPECT_GE(gesture.details.scroll_y(), (int)delta_y); |
601 EXPECT_LE(gesture.details.scroll_y(), ((int)delta_y) + 1); | 618 EXPECT_LE(gesture.details.scroll_y(), ((int)delta_y) + 1); |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
671 | 688 |
672 MockMotionEvent event = | 689 MockMotionEvent event = |
673 ObtainMotionEvent(event_time, MotionEvent::ACTION_DOWN); | 690 ObtainMotionEvent(event_time, MotionEvent::ACTION_DOWN); |
674 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 691 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
675 | 692 |
676 const base::TimeDelta long_press_timeout = | 693 const base::TimeDelta long_press_timeout = |
677 GetLongPressTimeout() + GetShowPressTimeout() + kOneMicrosecond; | 694 GetLongPressTimeout() + GetShowPressTimeout() + kOneMicrosecond; |
678 RunTasksAndWait(long_press_timeout); | 695 RunTasksAndWait(long_press_timeout); |
679 | 696 |
680 EXPECT_EQ(ET_GESTURE_LONG_PRESS, GetMostRecentGestureEventType()); | 697 EXPECT_EQ(ET_GESTURE_LONG_PRESS, GetMostRecentGestureEventType()); |
| 698 EXPECT_EQ(1, GetMostRecentGestureEvent().details.touch_points()); |
681 | 699 |
682 event = ObtainMotionEvent(event_time + kOneSecond, MotionEvent::ACTION_UP); | 700 event = ObtainMotionEvent(event_time + kOneSecond, MotionEvent::ACTION_UP); |
683 gesture_provider_->OnTouchEvent(event); | 701 gesture_provider_->OnTouchEvent(event); |
684 EXPECT_EQ(ET_GESTURE_LONG_TAP, GetMostRecentGestureEventType()); | 702 EXPECT_EQ(ET_GESTURE_LONG_TAP, GetMostRecentGestureEventType()); |
| 703 EXPECT_EQ(1, GetMostRecentGestureEvent().details.touch_points()); |
685 } | 704 } |
686 | 705 |
687 TEST_F(GestureProviderTest, GestureLongPressDoesNotPreventScrolling) { | 706 TEST_F(GestureProviderTest, GestureLongPressDoesNotPreventScrolling) { |
688 base::TimeTicks event_time = base::TimeTicks::Now(); | 707 base::TimeTicks event_time = base::TimeTicks::Now(); |
689 | 708 |
690 MockMotionEvent event = | 709 MockMotionEvent event = |
691 ObtainMotionEvent(event_time, MotionEvent::ACTION_DOWN); | 710 ObtainMotionEvent(event_time, MotionEvent::ACTION_DOWN); |
692 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 711 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
693 | 712 |
694 const base::TimeDelta long_press_timeout = | 713 const base::TimeDelta long_press_timeout = |
695 GetLongPressTimeout() + GetShowPressTimeout() + kOneMicrosecond; | 714 GetLongPressTimeout() + GetShowPressTimeout() + kOneMicrosecond; |
696 RunTasksAndWait(long_press_timeout); | 715 RunTasksAndWait(long_press_timeout); |
697 | 716 |
698 EXPECT_EQ(ET_GESTURE_LONG_PRESS, GetMostRecentGestureEventType()); | 717 EXPECT_EQ(ET_GESTURE_LONG_PRESS, GetMostRecentGestureEventType()); |
| 718 EXPECT_EQ(1, GetMostRecentGestureEvent().details.touch_points()); |
699 event = ObtainMotionEvent(event_time + long_press_timeout, | 719 event = ObtainMotionEvent(event_time + long_press_timeout, |
700 MotionEvent::ACTION_MOVE, | 720 MotionEvent::ACTION_MOVE, |
701 kFakeCoordX + 100, | 721 kFakeCoordX + 100, |
702 kFakeCoordY + 100); | 722 kFakeCoordY + 100); |
703 gesture_provider_->OnTouchEvent(event); | 723 gesture_provider_->OnTouchEvent(event); |
704 | 724 |
705 EXPECT_EQ(ET_GESTURE_SCROLL_UPDATE, GetMostRecentGestureEventType()); | 725 EXPECT_EQ(ET_GESTURE_SCROLL_UPDATE, GetMostRecentGestureEventType()); |
| 726 EXPECT_EQ(1, GetMostRecentGestureEvent().details.touch_points()); |
706 EXPECT_TRUE(HasReceivedGesture(ET_GESTURE_SCROLL_BEGIN)); | 727 EXPECT_TRUE(HasReceivedGesture(ET_GESTURE_SCROLL_BEGIN)); |
707 | 728 |
708 event = ObtainMotionEvent(event_time + long_press_timeout, | 729 event = ObtainMotionEvent(event_time + long_press_timeout, |
709 MotionEvent::ACTION_UP); | 730 MotionEvent::ACTION_UP); |
710 gesture_provider_->OnTouchEvent(event); | 731 gesture_provider_->OnTouchEvent(event); |
711 EXPECT_FALSE(HasReceivedGesture(ET_GESTURE_LONG_TAP)); | 732 EXPECT_FALSE(HasReceivedGesture(ET_GESTURE_LONG_TAP)); |
712 } | 733 } |
713 | 734 |
714 TEST_F(GestureProviderTest, NoGestureLongPressDuringDoubleTap) { | 735 TEST_F(GestureProviderTest, NoGestureLongPressDuringDoubleTap) { |
715 base::TimeTicks event_time = base::TimeTicks::Now(); | 736 base::TimeTicks event_time = base::TimeTicks::Now(); |
716 int motion_event_id = 0; | 737 int motion_event_id = 0; |
717 | 738 |
718 MockMotionEvent event = ObtainMotionEvent( | 739 MockMotionEvent event = ObtainMotionEvent( |
719 event_time, MotionEvent::ACTION_DOWN, kFakeCoordX, kFakeCoordY); | 740 event_time, MotionEvent::ACTION_DOWN, kFakeCoordX, kFakeCoordY); |
720 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 741 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
721 | 742 |
722 event = ObtainMotionEvent(event_time + kOneMicrosecond, | 743 event = ObtainMotionEvent(event_time + kOneMicrosecond, |
723 MotionEvent::ACTION_UP, | 744 MotionEvent::ACTION_UP, |
724 kFakeCoordX, | 745 kFakeCoordX, |
725 kFakeCoordY); | 746 kFakeCoordY); |
726 gesture_provider_->OnTouchEvent(event); | 747 gesture_provider_->OnTouchEvent(event); |
727 EXPECT_EQ(ET_GESTURE_TAP_UNCONFIRMED, GetMostRecentGestureEventType()); | 748 EXPECT_EQ(ET_GESTURE_TAP_UNCONFIRMED, GetMostRecentGestureEventType()); |
| 749 EXPECT_EQ(1, GetMostRecentGestureEvent().details.touch_points()); |
728 | 750 |
729 event = ObtainMotionEvent(event_time + kOneMicrosecond, | 751 event = ObtainMotionEvent(event_time + kOneMicrosecond, |
730 MotionEvent::ACTION_DOWN, | 752 MotionEvent::ACTION_DOWN, |
731 kFakeCoordX, | 753 kFakeCoordX, |
732 kFakeCoordY); | 754 kFakeCoordY); |
733 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 755 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
734 EXPECT_EQ(ET_GESTURE_TAP_DOWN, GetMostRecentGestureEventType()); | 756 EXPECT_EQ(ET_GESTURE_TAP_DOWN, GetMostRecentGestureEventType()); |
| 757 EXPECT_EQ(1, GetMostRecentGestureEvent().details.touch_points()); |
735 EXPECT_TRUE(gesture_provider_->IsDoubleTapInProgress()); | 758 EXPECT_TRUE(gesture_provider_->IsDoubleTapInProgress()); |
736 | 759 |
737 const base::TimeDelta long_press_timeout = | 760 const base::TimeDelta long_press_timeout = |
738 GetLongPressTimeout() + GetShowPressTimeout() + kOneMicrosecond; | 761 GetLongPressTimeout() + GetShowPressTimeout() + kOneMicrosecond; |
739 RunTasksAndWait(long_press_timeout); | 762 RunTasksAndWait(long_press_timeout); |
740 EXPECT_FALSE(HasReceivedGesture(ET_GESTURE_LONG_PRESS)); | 763 EXPECT_FALSE(HasReceivedGesture(ET_GESTURE_LONG_PRESS)); |
741 | 764 |
742 event = ObtainMotionEvent(event_time + long_press_timeout, | 765 event = ObtainMotionEvent(event_time + long_press_timeout, |
743 MotionEvent::ACTION_MOVE, | 766 MotionEvent::ACTION_MOVE, |
744 kFakeCoordX + 20, | 767 kFakeCoordX + 20, |
745 kFakeCoordY + 20); | 768 kFakeCoordY + 20); |
746 event.SetId(++motion_event_id); | 769 event.SetId(++motion_event_id); |
747 | 770 |
748 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 771 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
749 EXPECT_EQ(ET_GESTURE_PINCH_BEGIN, GetMostRecentGestureEventType()); | 772 EXPECT_EQ(ET_GESTURE_PINCH_BEGIN, GetMostRecentGestureEventType()); |
750 EXPECT_EQ(motion_event_id, GetMostRecentGestureEvent().motion_event_id); | 773 EXPECT_EQ(motion_event_id, GetMostRecentGestureEvent().motion_event_id); |
| 774 EXPECT_EQ(1, GetMostRecentGestureEvent().details.touch_points()); |
751 EXPECT_TRUE(gesture_provider_->IsDoubleTapInProgress()); | 775 EXPECT_TRUE(gesture_provider_->IsDoubleTapInProgress()); |
752 | 776 |
753 event = ObtainMotionEvent(event_time + long_press_timeout + kOneMicrosecond, | 777 event = ObtainMotionEvent(event_time + long_press_timeout + kOneMicrosecond, |
754 MotionEvent::ACTION_UP, | 778 MotionEvent::ACTION_UP, |
755 kFakeCoordX, | 779 kFakeCoordX, |
756 kFakeCoordY + 1); | 780 kFakeCoordY + 1); |
757 event.SetId(++motion_event_id); | 781 event.SetId(++motion_event_id); |
758 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 782 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
759 EXPECT_EQ(ET_GESTURE_SCROLL_END, GetMostRecentGestureEventType()); | 783 EXPECT_EQ(ET_GESTURE_SCROLL_END, GetMostRecentGestureEventType()); |
760 EXPECT_EQ(motion_event_id, GetMostRecentGestureEvent().motion_event_id); | 784 EXPECT_EQ(motion_event_id, GetMostRecentGestureEvent().motion_event_id); |
| 785 EXPECT_EQ(1, GetMostRecentGestureEvent().details.touch_points()); |
761 EXPECT_FALSE(gesture_provider_->IsDoubleTapInProgress()); | 786 EXPECT_FALSE(gesture_provider_->IsDoubleTapInProgress()); |
762 } | 787 } |
763 | 788 |
764 // Verify that the touch slop region is removed from the first scroll delta to | 789 // Verify that the touch slop region is removed from the first scroll delta to |
765 // avoid a jump when starting to scroll. | 790 // avoid a jump when starting to scroll. |
766 TEST_F(GestureProviderTest, TouchSlopRemovedFromScroll) { | 791 TEST_F(GestureProviderTest, TouchSlopRemovedFromScroll) { |
767 const int scaled_touch_slop = GetTouchSlop(); | 792 const int scaled_touch_slop = GetTouchSlop(); |
768 const int scroll_delta = 5; | 793 const int scroll_delta = 5; |
769 | 794 |
770 base::TimeTicks event_time = base::TimeTicks::Now(); | 795 base::TimeTicks event_time = base::TimeTicks::Now(); |
771 | 796 |
772 MockMotionEvent event = | 797 MockMotionEvent event = |
773 ObtainMotionEvent(event_time, MotionEvent::ACTION_DOWN); | 798 ObtainMotionEvent(event_time, MotionEvent::ACTION_DOWN); |
774 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 799 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
775 | 800 |
776 event = ObtainMotionEvent(event_time + kOneMicrosecond * 2, | 801 event = ObtainMotionEvent(event_time + kOneMicrosecond * 2, |
777 MotionEvent::ACTION_MOVE, | 802 MotionEvent::ACTION_MOVE, |
778 kFakeCoordX, | 803 kFakeCoordX, |
779 kFakeCoordY + scaled_touch_slop + scroll_delta); | 804 kFakeCoordY + scaled_touch_slop + scroll_delta); |
780 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 805 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
781 | 806 |
782 EXPECT_EQ(ET_GESTURE_SCROLL_UPDATE, GetMostRecentGestureEventType()); | 807 EXPECT_EQ(ET_GESTURE_SCROLL_UPDATE, GetMostRecentGestureEventType()); |
783 GestureEventData gesture = GetMostRecentGestureEvent(); | 808 GestureEventData gesture = GetMostRecentGestureEvent(); |
784 EXPECT_EQ(0, gesture.details.scroll_x()); | 809 EXPECT_EQ(0, gesture.details.scroll_x()); |
785 EXPECT_EQ(scroll_delta, gesture.details.scroll_y()); | 810 EXPECT_EQ(scroll_delta, gesture.details.scroll_y()); |
| 811 EXPECT_EQ(1, gesture.details.touch_points()); |
786 } | 812 } |
787 | 813 |
788 TEST_F(GestureProviderTest, NoDoubleTapWhenExplicitlyDisabled) { | 814 TEST_F(GestureProviderTest, NoDoubleTapWhenExplicitlyDisabled) { |
789 gesture_provider_->SetDoubleTapSupportForPlatformEnabled(false); | 815 gesture_provider_->SetDoubleTapSupportForPlatformEnabled(false); |
790 | 816 |
791 base::TimeTicks event_time = base::TimeTicks::Now(); | 817 base::TimeTicks event_time = base::TimeTicks::Now(); |
792 MockMotionEvent event = ObtainMotionEvent( | 818 MockMotionEvent event = ObtainMotionEvent( |
793 event_time, MotionEvent::ACTION_DOWN, kFakeCoordX, kFakeCoordY); | 819 event_time, MotionEvent::ACTION_DOWN, kFakeCoordX, kFakeCoordY); |
794 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 820 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
795 EXPECT_EQ(1U, GetReceivedGestureCount()); | 821 EXPECT_EQ(1U, GetReceivedGestureCount()); |
796 EXPECT_EQ(ET_GESTURE_TAP_DOWN, GetMostRecentGestureEventType()); | 822 EXPECT_EQ(ET_GESTURE_TAP_DOWN, GetMostRecentGestureEventType()); |
| 823 EXPECT_EQ(1, GetMostRecentGestureEvent().details.touch_points()); |
797 | 824 |
798 event = ObtainMotionEvent(event_time + kOneMicrosecond, | 825 event = ObtainMotionEvent(event_time + kOneMicrosecond, |
799 MotionEvent::ACTION_UP, | 826 MotionEvent::ACTION_UP, |
800 kFakeCoordX, | 827 kFakeCoordX, |
801 kFakeCoordY); | 828 kFakeCoordY); |
802 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 829 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
803 EXPECT_EQ(ET_GESTURE_TAP, GetMostRecentGestureEventType()); | 830 EXPECT_EQ(ET_GESTURE_TAP, GetMostRecentGestureEventType()); |
| 831 EXPECT_EQ(1, GetMostRecentGestureEvent().details.touch_points()); |
804 | 832 |
805 event = ObtainMotionEvent(event_time + kOneMicrosecond * 2, | 833 event = ObtainMotionEvent(event_time + kOneMicrosecond * 2, |
806 MotionEvent::ACTION_DOWN, | 834 MotionEvent::ACTION_DOWN, |
807 kFakeCoordX, | 835 kFakeCoordX, |
808 kFakeCoordY); | 836 kFakeCoordY); |
809 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 837 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
810 EXPECT_EQ(ET_GESTURE_TAP_DOWN, GetMostRecentGestureEventType()); | 838 EXPECT_EQ(ET_GESTURE_TAP_DOWN, GetMostRecentGestureEventType()); |
| 839 EXPECT_EQ(1, GetMostRecentGestureEvent().details.touch_points()); |
811 | 840 |
812 event = ObtainMotionEvent(event_time + kOneMicrosecond * 3, | 841 event = ObtainMotionEvent(event_time + kOneMicrosecond * 3, |
813 MotionEvent::ACTION_UP, | 842 MotionEvent::ACTION_UP, |
814 kFakeCoordX, | 843 kFakeCoordX, |
815 kFakeCoordY); | 844 kFakeCoordY); |
816 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 845 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
817 EXPECT_EQ(ET_GESTURE_TAP, GetMostRecentGestureEventType()); | 846 EXPECT_EQ(ET_GESTURE_TAP, GetMostRecentGestureEventType()); |
| 847 EXPECT_EQ(1, GetMostRecentGestureEvent().details.touch_points()); |
818 } | 848 } |
819 | 849 |
820 TEST_F(GestureProviderTest, NoDoubleTapDragZoomWhenDisabledOnPlatform) { | 850 TEST_F(GestureProviderTest, NoDoubleTapDragZoomWhenDisabledOnPlatform) { |
821 const base::TimeTicks down_time_1 = TimeTicks::Now(); | 851 const base::TimeTicks down_time_1 = TimeTicks::Now(); |
822 const base::TimeTicks down_time_2 = down_time_1 + kOneMicrosecond * 2; | 852 const base::TimeTicks down_time_2 = down_time_1 + kOneMicrosecond * 2; |
823 | 853 |
824 gesture_provider_->SetDoubleTapSupportForPlatformEnabled(false); | 854 gesture_provider_->SetDoubleTapSupportForPlatformEnabled(false); |
825 | 855 |
826 MockMotionEvent event = | 856 MockMotionEvent event = |
827 ObtainMotionEvent(down_time_1, MotionEvent::ACTION_DOWN); | 857 ObtainMotionEvent(down_time_1, MotionEvent::ACTION_DOWN); |
(...skipping 18 matching lines...) Expand all Loading... |
846 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 876 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
847 EXPECT_TRUE(HasReceivedGesture(ET_GESTURE_SCROLL_BEGIN)); | 877 EXPECT_TRUE(HasReceivedGesture(ET_GESTURE_SCROLL_BEGIN)); |
848 EXPECT_FALSE(HasReceivedGesture(ET_GESTURE_PINCH_BEGIN)); | 878 EXPECT_FALSE(HasReceivedGesture(ET_GESTURE_PINCH_BEGIN)); |
849 | 879 |
850 event = ObtainMotionEvent(down_time_2 + kOneMicrosecond * 2, | 880 event = ObtainMotionEvent(down_time_2 + kOneMicrosecond * 2, |
851 MotionEvent::ACTION_MOVE, | 881 MotionEvent::ACTION_MOVE, |
852 kFakeCoordX, | 882 kFakeCoordX, |
853 kFakeCoordY + 200); | 883 kFakeCoordY + 200); |
854 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 884 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
855 EXPECT_EQ(ET_GESTURE_SCROLL_UPDATE, GetMostRecentGestureEventType()); | 885 EXPECT_EQ(ET_GESTURE_SCROLL_UPDATE, GetMostRecentGestureEventType()); |
| 886 EXPECT_EQ(1, GetMostRecentGestureEvent().details.touch_points()); |
856 EXPECT_EQ(down_time_2 + kOneMicrosecond * 2, | 887 EXPECT_EQ(down_time_2 + kOneMicrosecond * 2, |
857 GetMostRecentGestureEvent().time); | 888 GetMostRecentGestureEvent().time); |
858 EXPECT_FALSE(HasReceivedGesture(ET_GESTURE_PINCH_UPDATE)); | 889 EXPECT_FALSE(HasReceivedGesture(ET_GESTURE_PINCH_UPDATE)); |
859 | 890 |
860 event = ObtainMotionEvent(down_time_2 + kOneMicrosecond * 3, | 891 event = ObtainMotionEvent(down_time_2 + kOneMicrosecond * 3, |
861 MotionEvent::ACTION_UP, | 892 MotionEvent::ACTION_UP, |
862 kFakeCoordX, | 893 kFakeCoordX, |
863 kFakeCoordY + 200); | 894 kFakeCoordY + 200); |
864 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 895 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
865 EXPECT_FALSE(HasReceivedGesture(ET_GESTURE_PINCH_END)); | 896 EXPECT_FALSE(HasReceivedGesture(ET_GESTURE_PINCH_END)); |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
897 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 928 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
898 EXPECT_TRUE(HasReceivedGesture(ET_GESTURE_SCROLL_BEGIN)); | 929 EXPECT_TRUE(HasReceivedGesture(ET_GESTURE_SCROLL_BEGIN)); |
899 EXPECT_FALSE(HasReceivedGesture(ET_GESTURE_PINCH_BEGIN)); | 930 EXPECT_FALSE(HasReceivedGesture(ET_GESTURE_PINCH_BEGIN)); |
900 | 931 |
901 event = ObtainMotionEvent(down_time_2 + kOneMicrosecond * 2, | 932 event = ObtainMotionEvent(down_time_2 + kOneMicrosecond * 2, |
902 MotionEvent::ACTION_MOVE, | 933 MotionEvent::ACTION_MOVE, |
903 kFakeCoordX, | 934 kFakeCoordX, |
904 kFakeCoordY + 200); | 935 kFakeCoordY + 200); |
905 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 936 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
906 EXPECT_EQ(ET_GESTURE_SCROLL_UPDATE, GetMostRecentGestureEventType()); | 937 EXPECT_EQ(ET_GESTURE_SCROLL_UPDATE, GetMostRecentGestureEventType()); |
| 938 EXPECT_EQ(1, GetMostRecentGestureEvent().details.touch_points()); |
907 EXPECT_FALSE(HasReceivedGesture(ET_GESTURE_PINCH_UPDATE)); | 939 EXPECT_FALSE(HasReceivedGesture(ET_GESTURE_PINCH_UPDATE)); |
908 | 940 |
909 event = ObtainMotionEvent(down_time_2 + kOneMicrosecond * 3, | 941 event = ObtainMotionEvent(down_time_2 + kOneMicrosecond * 3, |
910 MotionEvent::ACTION_UP, | 942 MotionEvent::ACTION_UP, |
911 kFakeCoordX, | 943 kFakeCoordX, |
912 kFakeCoordY + 200); | 944 kFakeCoordY + 200); |
913 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 945 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
914 EXPECT_FALSE(HasReceivedGesture(ET_GESTURE_PINCH_END)); | 946 EXPECT_FALSE(HasReceivedGesture(ET_GESTURE_PINCH_END)); |
915 } | 947 } |
916 | 948 |
(...skipping 18 matching lines...) Expand all Loading... |
935 event = ObtainMotionEvent( | 967 event = ObtainMotionEvent( |
936 down_time_2, MotionEvent::ACTION_DOWN, kFakeCoordX, kFakeCoordY); | 968 down_time_2, MotionEvent::ACTION_DOWN, kFakeCoordX, kFakeCoordY); |
937 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 969 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
938 event = ObtainMotionEvent(down_time_2 + kOneMicrosecond, | 970 event = ObtainMotionEvent(down_time_2 + kOneMicrosecond, |
939 MotionEvent::ACTION_MOVE, | 971 MotionEvent::ACTION_MOVE, |
940 kFakeCoordX, | 972 kFakeCoordX, |
941 kFakeCoordY + 100); | 973 kFakeCoordY + 100); |
942 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 974 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
943 EXPECT_TRUE(HasReceivedGesture(ET_GESTURE_SCROLL_BEGIN)); | 975 EXPECT_TRUE(HasReceivedGesture(ET_GESTURE_SCROLL_BEGIN)); |
944 EXPECT_EQ(ET_GESTURE_PINCH_BEGIN, GetMostRecentGestureEventType()); | 976 EXPECT_EQ(ET_GESTURE_PINCH_BEGIN, GetMostRecentGestureEventType()); |
| 977 EXPECT_EQ(1, GetMostRecentGestureEvent().details.touch_points()); |
945 | 978 |
946 // Simulate setting a fixed page scale (or a mobile viewport); | 979 // Simulate setting a fixed page scale (or a mobile viewport); |
947 // this should not disrupt the current double-tap gesture. | 980 // this should not disrupt the current double-tap gesture. |
948 gesture_provider_->SetDoubleTapSupportForPageEnabled(false); | 981 gesture_provider_->SetDoubleTapSupportForPageEnabled(false); |
949 | 982 |
950 // Double tap zoom updates should continue. | 983 // Double tap zoom updates should continue. |
951 event = ObtainMotionEvent(down_time_2 + kOneMicrosecond * 2, | 984 event = ObtainMotionEvent(down_time_2 + kOneMicrosecond * 2, |
952 MotionEvent::ACTION_MOVE, | 985 MotionEvent::ACTION_MOVE, |
953 kFakeCoordX, | 986 kFakeCoordX, |
954 kFakeCoordY + 200); | 987 kFakeCoordY + 200); |
955 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 988 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
956 EXPECT_EQ(ET_GESTURE_PINCH_UPDATE, GetMostRecentGestureEventType()); | 989 EXPECT_EQ(ET_GESTURE_PINCH_UPDATE, GetMostRecentGestureEventType()); |
| 990 EXPECT_EQ(1, GetMostRecentGestureEvent().details.touch_points()); |
957 EXPECT_LT(1.f, GetMostRecentGestureEvent().details.scale()); | 991 EXPECT_LT(1.f, GetMostRecentGestureEvent().details.scale()); |
958 event = ObtainMotionEvent(down_time_2 + kOneMicrosecond * 3, | 992 event = ObtainMotionEvent(down_time_2 + kOneMicrosecond * 3, |
959 MotionEvent::ACTION_UP, | 993 MotionEvent::ACTION_UP, |
960 kFakeCoordX, | 994 kFakeCoordX, |
961 kFakeCoordY + 200); | 995 kFakeCoordY + 200); |
962 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 996 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
963 EXPECT_TRUE(HasReceivedGesture(ET_GESTURE_PINCH_END)); | 997 EXPECT_TRUE(HasReceivedGesture(ET_GESTURE_PINCH_END)); |
964 EXPECT_EQ(ET_GESTURE_SCROLL_END, GetMostRecentGestureEventType()); | 998 EXPECT_EQ(ET_GESTURE_SCROLL_END, GetMostRecentGestureEventType()); |
| 999 EXPECT_EQ(1, GetMostRecentGestureEvent().details.touch_points()); |
965 | 1000 |
966 // The double-tap gesture has finished, but the page scale is fixed. | 1001 // The double-tap gesture has finished, but the page scale is fixed. |
967 // The same event sequence should not generate any double tap getsures. | 1002 // The same event sequence should not generate any double tap getsures. |
968 gestures_.clear(); | 1003 gestures_.clear(); |
969 down_time_1 += kOneMicrosecond * 40; | 1004 down_time_1 += kOneMicrosecond * 40; |
970 down_time_2 += kOneMicrosecond * 40; | 1005 down_time_2 += kOneMicrosecond * 40; |
971 | 1006 |
972 // Start a double-tap drag gesture. | 1007 // Start a double-tap drag gesture. |
973 event = ObtainMotionEvent(down_time_1, MotionEvent::ACTION_DOWN); | 1008 event = ObtainMotionEvent(down_time_1, MotionEvent::ACTION_DOWN); |
974 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 1009 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1016 gesture_provider_->SetMultiTouchSupportEnabled(true); | 1051 gesture_provider_->SetMultiTouchSupportEnabled(true); |
1017 | 1052 |
1018 int secondary_coord_x = kFakeCoordX + 20 * scaled_touch_slop; | 1053 int secondary_coord_x = kFakeCoordX + 20 * scaled_touch_slop; |
1019 int secondary_coord_y = kFakeCoordY + 20 * scaled_touch_slop; | 1054 int secondary_coord_y = kFakeCoordY + 20 * scaled_touch_slop; |
1020 | 1055 |
1021 MockMotionEvent event = | 1056 MockMotionEvent event = |
1022 ObtainMotionEvent(event_time, MotionEvent::ACTION_DOWN); | 1057 ObtainMotionEvent(event_time, MotionEvent::ACTION_DOWN); |
1023 event.SetId(++motion_event_id); | 1058 event.SetId(++motion_event_id); |
1024 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 1059 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
1025 EXPECT_EQ(ET_GESTURE_TAP_DOWN, GetMostRecentGestureEventType()); | 1060 EXPECT_EQ(ET_GESTURE_TAP_DOWN, GetMostRecentGestureEventType()); |
| 1061 EXPECT_EQ(1, GetMostRecentGestureEvent().details.touch_points()); |
1026 | 1062 |
1027 // Toggling double-tap support should not take effect until the next sequence. | 1063 // Toggling double-tap support should not take effect until the next sequence. |
1028 gesture_provider_->SetDoubleTapSupportForPageEnabled(true); | 1064 gesture_provider_->SetDoubleTapSupportForPageEnabled(true); |
1029 | 1065 |
1030 event = ObtainMotionEvent(event_time, | 1066 event = ObtainMotionEvent(event_time, |
1031 MotionEvent::ACTION_POINTER_DOWN, | 1067 MotionEvent::ACTION_POINTER_DOWN, |
1032 kFakeCoordX, | 1068 kFakeCoordX, |
1033 kFakeCoordY, | 1069 kFakeCoordY, |
1034 secondary_coord_x, | 1070 secondary_coord_x, |
1035 secondary_coord_y); | 1071 secondary_coord_y); |
1036 event.SetId(++motion_event_id); | 1072 event.SetId(++motion_event_id); |
1037 | 1073 |
1038 gesture_provider_->OnTouchEvent(event); | 1074 gesture_provider_->OnTouchEvent(event); |
1039 EXPECT_EQ(1U, GetReceivedGestureCount()); | 1075 EXPECT_EQ(1U, GetReceivedGestureCount()); |
| 1076 EXPECT_EQ(1, GetMostRecentGestureEvent().details.touch_points()); |
1040 | 1077 |
1041 secondary_coord_x += 5 * scaled_touch_slop; | 1078 secondary_coord_x += 5 * scaled_touch_slop; |
1042 secondary_coord_y += 5 * scaled_touch_slop; | 1079 secondary_coord_y += 5 * scaled_touch_slop; |
1043 event = ObtainMotionEvent(event_time, | 1080 event = ObtainMotionEvent(event_time, |
1044 MotionEvent::ACTION_MOVE, | 1081 MotionEvent::ACTION_MOVE, |
1045 kFakeCoordX, | 1082 kFakeCoordX, |
1046 kFakeCoordY, | 1083 kFakeCoordY, |
1047 secondary_coord_x, | 1084 secondary_coord_x, |
1048 secondary_coord_y); | 1085 secondary_coord_y); |
1049 event.SetId(++motion_event_id); | 1086 event.SetId(++motion_event_id); |
1050 | 1087 |
1051 // Toggling double-tap support should not take effect until the next sequence. | 1088 // Toggling double-tap support should not take effect until the next sequence. |
1052 gesture_provider_->SetDoubleTapSupportForPageEnabled(false); | 1089 gesture_provider_->SetDoubleTapSupportForPageEnabled(false); |
1053 | 1090 |
1054 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 1091 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
1055 EXPECT_EQ(motion_event_id, GetMostRecentGestureEvent().motion_event_id); | 1092 EXPECT_EQ(motion_event_id, GetMostRecentGestureEvent().motion_event_id); |
| 1093 EXPECT_EQ(2, GetMostRecentGestureEvent().details.touch_points()); |
1056 EXPECT_TRUE(HasReceivedGesture(ET_GESTURE_PINCH_BEGIN)); | 1094 EXPECT_TRUE(HasReceivedGesture(ET_GESTURE_PINCH_BEGIN)); |
1057 EXPECT_TRUE(HasReceivedGesture(ET_GESTURE_SCROLL_BEGIN)); | 1095 EXPECT_TRUE(HasReceivedGesture(ET_GESTURE_SCROLL_BEGIN)); |
1058 EXPECT_TRUE(HasReceivedGesture(ET_GESTURE_SCROLL_UPDATE)); | 1096 EXPECT_TRUE(HasReceivedGesture(ET_GESTURE_SCROLL_UPDATE)); |
1059 | 1097 |
1060 secondary_coord_x += 2 * scaled_touch_slop; | 1098 secondary_coord_x += 2 * scaled_touch_slop; |
1061 secondary_coord_y += 2 * scaled_touch_slop; | 1099 secondary_coord_y += 2 * scaled_touch_slop; |
1062 event = ObtainMotionEvent(event_time, | 1100 event = ObtainMotionEvent(event_time, |
1063 MotionEvent::ACTION_MOVE, | 1101 MotionEvent::ACTION_MOVE, |
1064 kFakeCoordX, | 1102 kFakeCoordX, |
1065 kFakeCoordY, | 1103 kFakeCoordY, |
1066 secondary_coord_x, | 1104 secondary_coord_x, |
1067 secondary_coord_y); | 1105 secondary_coord_y); |
1068 event.SetId(++motion_event_id); | 1106 event.SetId(++motion_event_id); |
1069 | 1107 |
1070 // Toggling double-tap support should not take effect until the next sequence. | 1108 // Toggling double-tap support should not take effect until the next sequence. |
1071 gesture_provider_->SetDoubleTapSupportForPageEnabled(true); | 1109 gesture_provider_->SetDoubleTapSupportForPageEnabled(true); |
1072 | 1110 |
1073 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 1111 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
1074 EXPECT_EQ(motion_event_id, GetMostRecentGestureEvent().motion_event_id); | 1112 EXPECT_EQ(motion_event_id, GetMostRecentGestureEvent().motion_event_id); |
1075 EXPECT_TRUE(HasReceivedGesture(ET_GESTURE_SCROLL_UPDATE)); | 1113 EXPECT_TRUE(HasReceivedGesture(ET_GESTURE_SCROLL_UPDATE)); |
1076 EXPECT_EQ(ET_GESTURE_PINCH_UPDATE, GetMostRecentGestureEventType()); | 1114 EXPECT_EQ(ET_GESTURE_PINCH_UPDATE, GetMostRecentGestureEventType()); |
| 1115 EXPECT_EQ(2, GetMostRecentGestureEvent().details.touch_points()); |
1077 EXPECT_LT(1.f, GetMostRecentGestureEvent().details.scale()); | 1116 EXPECT_LT(1.f, GetMostRecentGestureEvent().details.scale()); |
1078 | 1117 |
1079 event = ObtainMotionEvent(event_time, | 1118 event = ObtainMotionEvent(event_time, |
1080 MotionEvent::ACTION_POINTER_UP, | 1119 MotionEvent::ACTION_POINTER_UP, |
1081 kFakeCoordX, | 1120 kFakeCoordX, |
1082 kFakeCoordY, | 1121 kFakeCoordY, |
1083 secondary_coord_x, | 1122 secondary_coord_x, |
1084 secondary_coord_y); | 1123 secondary_coord_y); |
1085 event.SetId(++motion_event_id); | 1124 event.SetId(++motion_event_id); |
1086 | 1125 |
1087 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 1126 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
1088 EXPECT_EQ(motion_event_id, GetMostRecentGestureEvent().motion_event_id); | 1127 EXPECT_EQ(motion_event_id, GetMostRecentGestureEvent().motion_event_id); |
1089 EXPECT_EQ(ET_GESTURE_PINCH_END, GetMostRecentGestureEventType()); | 1128 EXPECT_EQ(ET_GESTURE_PINCH_END, GetMostRecentGestureEventType()); |
| 1129 EXPECT_EQ(2, GetMostRecentGestureEvent().details.touch_points()); |
1090 EXPECT_FALSE(HasReceivedGesture(ET_GESTURE_SCROLL_END)); | 1130 EXPECT_FALSE(HasReceivedGesture(ET_GESTURE_SCROLL_END)); |
1091 | 1131 |
1092 event = ObtainMotionEvent(event_time, MotionEvent::ACTION_UP); | 1132 event = ObtainMotionEvent(event_time, MotionEvent::ACTION_UP); |
1093 gesture_provider_->OnTouchEvent(event); | 1133 gesture_provider_->OnTouchEvent(event); |
1094 EXPECT_EQ(ET_GESTURE_SCROLL_END, GetMostRecentGestureEventType()); | 1134 EXPECT_EQ(ET_GESTURE_SCROLL_END, GetMostRecentGestureEventType()); |
| 1135 EXPECT_EQ(1, GetMostRecentGestureEvent().details.touch_points()); |
1095 } | 1136 } |
1096 | 1137 |
1097 // Verify that the timer of LONG_PRESS will be cancelled when scrolling begins | 1138 // Verify that the timer of LONG_PRESS will be cancelled when scrolling begins |
1098 // so LONG_PRESS and LONG_TAP won't be triggered. | 1139 // so LONG_PRESS and LONG_TAP won't be triggered. |
1099 TEST_F(GestureProviderTest, GesturesCancelledAfterLongPressCausesLostFocus) { | 1140 TEST_F(GestureProviderTest, GesturesCancelledAfterLongPressCausesLostFocus) { |
1100 base::TimeTicks event_time = base::TimeTicks::Now(); | 1141 base::TimeTicks event_time = base::TimeTicks::Now(); |
1101 | 1142 |
1102 MockMotionEvent event = | 1143 MockMotionEvent event = |
1103 ObtainMotionEvent(event_time, MotionEvent::ACTION_DOWN); | 1144 ObtainMotionEvent(event_time, MotionEvent::ACTION_DOWN); |
1104 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 1145 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
1105 | 1146 |
1106 const base::TimeDelta long_press_timeout = | 1147 const base::TimeDelta long_press_timeout = |
1107 GetLongPressTimeout() + GetShowPressTimeout() + kOneMicrosecond; | 1148 GetLongPressTimeout() + GetShowPressTimeout() + kOneMicrosecond; |
1108 RunTasksAndWait(long_press_timeout); | 1149 RunTasksAndWait(long_press_timeout); |
1109 EXPECT_EQ(ET_GESTURE_LONG_PRESS, GetMostRecentGestureEventType()); | 1150 EXPECT_EQ(ET_GESTURE_LONG_PRESS, GetMostRecentGestureEventType()); |
| 1151 EXPECT_EQ(1, GetMostRecentGestureEvent().details.touch_points()); |
1110 | 1152 |
1111 EXPECT_TRUE(CancelActiveTouchSequence()); | 1153 EXPECT_TRUE(CancelActiveTouchSequence()); |
1112 EXPECT_FALSE(HasDownEvent()); | 1154 EXPECT_FALSE(HasDownEvent()); |
1113 | 1155 |
1114 event = ObtainMotionEvent(event_time + long_press_timeout, | 1156 event = ObtainMotionEvent(event_time + long_press_timeout, |
1115 MotionEvent::ACTION_UP); | 1157 MotionEvent::ACTION_UP); |
1116 gesture_provider_->OnTouchEvent(event); | 1158 gesture_provider_->OnTouchEvent(event); |
1117 EXPECT_FALSE(HasReceivedGesture(ET_GESTURE_LONG_TAP)); | 1159 EXPECT_FALSE(HasReceivedGesture(ET_GESTURE_LONG_TAP)); |
1118 } | 1160 } |
1119 | 1161 |
1120 // Verify that inserting a touch cancel event will trigger proper touch and | 1162 // Verify that inserting a touch cancel event will trigger proper touch and |
1121 // gesture sequence cancellation. | 1163 // gesture sequence cancellation. |
1122 TEST_F(GestureProviderTest, CancelActiveTouchSequence) { | 1164 TEST_F(GestureProviderTest, CancelActiveTouchSequence) { |
1123 base::TimeTicks event_time = base::TimeTicks::Now(); | 1165 base::TimeTicks event_time = base::TimeTicks::Now(); |
1124 int motion_event_id = 0; | 1166 int motion_event_id = 0; |
1125 | 1167 |
1126 EXPECT_FALSE(CancelActiveTouchSequence()); | 1168 EXPECT_FALSE(CancelActiveTouchSequence()); |
1127 EXPECT_EQ(0U, GetReceivedGestureCount()); | 1169 EXPECT_EQ(0U, GetReceivedGestureCount()); |
1128 | 1170 |
1129 MockMotionEvent event = | 1171 MockMotionEvent event = |
1130 ObtainMotionEvent(event_time, MotionEvent::ACTION_DOWN); | 1172 ObtainMotionEvent(event_time, MotionEvent::ACTION_DOWN); |
1131 event.SetId(++motion_event_id); | 1173 event.SetId(++motion_event_id); |
1132 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 1174 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
1133 EXPECT_EQ(ET_GESTURE_TAP_DOWN, GetMostRecentGestureEventType()); | 1175 EXPECT_EQ(ET_GESTURE_TAP_DOWN, GetMostRecentGestureEventType()); |
1134 EXPECT_EQ(motion_event_id, GetMostRecentGestureEvent().motion_event_id); | 1176 EXPECT_EQ(motion_event_id, GetMostRecentGestureEvent().motion_event_id); |
| 1177 EXPECT_EQ(1, GetMostRecentGestureEvent().details.touch_points()); |
1135 | 1178 |
1136 ASSERT_TRUE(CancelActiveTouchSequence()); | 1179 ASSERT_TRUE(CancelActiveTouchSequence()); |
1137 EXPECT_FALSE(HasDownEvent()); | 1180 EXPECT_FALSE(HasDownEvent()); |
1138 EXPECT_EQ(motion_event_id, GetMostRecentGestureEvent().motion_event_id); | |
1139 | 1181 |
1140 // Subsequent MotionEvent's are dropped until ACTION_DOWN. | 1182 // Subsequent MotionEvent's are dropped until ACTION_DOWN. |
1141 event = ObtainMotionEvent(event_time + kOneMicrosecond, | 1183 event = ObtainMotionEvent(event_time + kOneMicrosecond, |
1142 MotionEvent::ACTION_MOVE); | 1184 MotionEvent::ACTION_MOVE); |
1143 EXPECT_FALSE(gesture_provider_->OnTouchEvent(event)); | 1185 EXPECT_FALSE(gesture_provider_->OnTouchEvent(event)); |
1144 | 1186 |
1145 event = ObtainMotionEvent(event_time + kOneMicrosecond * 2, | 1187 event = ObtainMotionEvent(event_time + kOneMicrosecond * 2, |
1146 MotionEvent::ACTION_UP); | 1188 MotionEvent::ACTION_UP); |
1147 EXPECT_FALSE(gesture_provider_->OnTouchEvent(event)); | 1189 EXPECT_FALSE(gesture_provider_->OnTouchEvent(event)); |
1148 | 1190 |
1149 event = ObtainMotionEvent(event_time + kOneMicrosecond * 3, | 1191 event = ObtainMotionEvent(event_time + kOneMicrosecond * 3, |
1150 MotionEvent::ACTION_DOWN); | 1192 MotionEvent::ACTION_DOWN); |
1151 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 1193 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
1152 EXPECT_EQ(ET_GESTURE_TAP_DOWN, GetMostRecentGestureEventType()); | 1194 EXPECT_EQ(ET_GESTURE_TAP_DOWN, GetMostRecentGestureEventType()); |
| 1195 EXPECT_EQ(1, GetMostRecentGestureEvent().details.touch_points()); |
1153 } | 1196 } |
1154 | 1197 |
1155 TEST_F(GestureProviderTest, DoubleTapDragZoomCancelledOnSecondaryPointerDown) { | 1198 TEST_F(GestureProviderTest, DoubleTapDragZoomCancelledOnSecondaryPointerDown) { |
1156 const base::TimeTicks down_time_1 = TimeTicks::Now(); | 1199 const base::TimeTicks down_time_1 = TimeTicks::Now(); |
1157 const base::TimeTicks down_time_2 = down_time_1 + kOneMicrosecond * 2; | 1200 const base::TimeTicks down_time_2 = down_time_1 + kOneMicrosecond * 2; |
1158 | 1201 |
1159 gesture_provider_->SetDoubleTapSupportForPlatformEnabled(true); | 1202 gesture_provider_->SetDoubleTapSupportForPlatformEnabled(true); |
1160 | 1203 |
1161 MockMotionEvent event = | 1204 MockMotionEvent event = |
1162 ObtainMotionEvent(down_time_1, MotionEvent::ACTION_DOWN); | 1205 ObtainMotionEvent(down_time_1, MotionEvent::ACTION_DOWN); |
1163 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 1206 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
1164 EXPECT_EQ(ET_GESTURE_TAP_DOWN, GetMostRecentGestureEventType()); | 1207 EXPECT_EQ(ET_GESTURE_TAP_DOWN, GetMostRecentGestureEventType()); |
| 1208 EXPECT_EQ(1, GetMostRecentGestureEvent().details.touch_points()); |
1165 | 1209 |
1166 event = | 1210 event = |
1167 ObtainMotionEvent(down_time_1 + kOneMicrosecond, MotionEvent::ACTION_UP); | 1211 ObtainMotionEvent(down_time_1 + kOneMicrosecond, MotionEvent::ACTION_UP); |
1168 gesture_provider_->OnTouchEvent(event); | 1212 gesture_provider_->OnTouchEvent(event); |
1169 EXPECT_EQ(ET_GESTURE_TAP_UNCONFIRMED, GetMostRecentGestureEventType()); | 1213 EXPECT_EQ(ET_GESTURE_TAP_UNCONFIRMED, GetMostRecentGestureEventType()); |
| 1214 EXPECT_EQ(1, GetMostRecentGestureEvent().details.touch_points()); |
1170 | 1215 |
1171 event = ObtainMotionEvent(down_time_2, MotionEvent::ACTION_DOWN); | 1216 event = ObtainMotionEvent(down_time_2, MotionEvent::ACTION_DOWN); |
1172 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 1217 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
1173 EXPECT_EQ(ET_GESTURE_TAP_DOWN, GetMostRecentGestureEventType()); | 1218 EXPECT_EQ(ET_GESTURE_TAP_DOWN, GetMostRecentGestureEventType()); |
| 1219 EXPECT_EQ(1, GetMostRecentGestureEvent().details.touch_points()); |
1174 | 1220 |
1175 event = ObtainMotionEvent(down_time_2 + kOneMicrosecond, | 1221 event = ObtainMotionEvent(down_time_2 + kOneMicrosecond, |
1176 MotionEvent::ACTION_MOVE, | 1222 MotionEvent::ACTION_MOVE, |
1177 kFakeCoordX, | 1223 kFakeCoordX, |
1178 kFakeCoordY - 30); | 1224 kFakeCoordY - 30); |
1179 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 1225 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
1180 EXPECT_TRUE(HasReceivedGesture(ET_GESTURE_SCROLL_BEGIN)); | 1226 EXPECT_TRUE(HasReceivedGesture(ET_GESTURE_SCROLL_BEGIN)); |
1181 EXPECT_EQ(ET_GESTURE_PINCH_BEGIN, GetMostRecentGestureEventType()); | 1227 EXPECT_EQ(ET_GESTURE_PINCH_BEGIN, GetMostRecentGestureEventType()); |
| 1228 EXPECT_EQ(1, GetMostRecentGestureEvent().details.touch_points()); |
1182 | 1229 |
1183 event = ObtainMotionEvent(down_time_2 + kOneMicrosecond * 2, | 1230 event = ObtainMotionEvent(down_time_2 + kOneMicrosecond * 2, |
1184 MotionEvent::ACTION_POINTER_DOWN, | 1231 MotionEvent::ACTION_POINTER_DOWN, |
1185 kFakeCoordX, | 1232 kFakeCoordX, |
1186 kFakeCoordY - 30, | 1233 kFakeCoordY - 30, |
1187 kFakeCoordX + 50, | 1234 kFakeCoordX + 50, |
1188 kFakeCoordY + 50); | 1235 kFakeCoordY + 50); |
1189 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 1236 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
1190 EXPECT_EQ(ET_GESTURE_PINCH_END, GetMostRecentGestureEventType()); | 1237 EXPECT_EQ(ET_GESTURE_PINCH_END, GetMostRecentGestureEventType()); |
| 1238 EXPECT_EQ(2, GetMostRecentGestureEvent().details.touch_points()); |
1191 | 1239 |
1192 const size_t gesture_count = GetReceivedGestureCount(); | 1240 const size_t gesture_count = GetReceivedGestureCount(); |
1193 event = ObtainMotionEvent(down_time_2 + kOneMicrosecond * 3, | 1241 event = ObtainMotionEvent(down_time_2 + kOneMicrosecond * 3, |
1194 MotionEvent::ACTION_POINTER_UP, | 1242 MotionEvent::ACTION_POINTER_UP, |
1195 kFakeCoordX, | 1243 kFakeCoordX, |
1196 kFakeCoordY - 30, | 1244 kFakeCoordY - 30, |
1197 kFakeCoordX + 50, | 1245 kFakeCoordX + 50, |
1198 kFakeCoordY + 50); | 1246 kFakeCoordY + 50); |
1199 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 1247 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
1200 EXPECT_EQ(gesture_count, GetReceivedGestureCount()); | 1248 EXPECT_EQ(gesture_count, GetReceivedGestureCount()); |
1201 | 1249 |
1202 event = ObtainMotionEvent(down_time_2 + kOneSecond, | 1250 event = ObtainMotionEvent(down_time_2 + kOneSecond, |
1203 MotionEvent::ACTION_UP); | 1251 MotionEvent::ACTION_UP); |
1204 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 1252 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
1205 EXPECT_EQ(gesture_count + 1, GetReceivedGestureCount()); | 1253 EXPECT_EQ(gesture_count + 1, GetReceivedGestureCount()); |
1206 EXPECT_EQ(ET_GESTURE_SCROLL_END, GetMostRecentGestureEventType()); | 1254 EXPECT_EQ(ET_GESTURE_SCROLL_END, GetMostRecentGestureEventType()); |
| 1255 EXPECT_EQ(1, GetMostRecentGestureEvent().details.touch_points()); |
1207 } | 1256 } |
1208 | 1257 |
1209 // Verify that gesture begin and gesture end events are dispatched correctly. | 1258 // Verify that gesture begin and gesture end events are dispatched correctly. |
1210 TEST_F(GestureProviderTest, GestureBeginAndEnd) { | 1259 TEST_F(GestureProviderTest, GestureBeginAndEnd) { |
1211 SetBeginEndTypesEnabled(true); | 1260 SetBeginEndTypesEnabled(true); |
1212 base::TimeTicks event_time = base::TimeTicks::Now(); | 1261 base::TimeTicks event_time = base::TimeTicks::Now(); |
1213 | 1262 |
1214 EXPECT_EQ(0U, GetReceivedGestureCount()); | 1263 EXPECT_EQ(0U, GetReceivedGestureCount()); |
1215 MockMotionEvent event = | 1264 MockMotionEvent event = |
1216 ObtainMotionEvent(event_time, MotionEvent::ACTION_DOWN); | 1265 ObtainMotionEvent(event_time, MotionEvent::ACTION_DOWN); |
| 1266 event.pointer_count = 1; |
1217 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 1267 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
1218 EXPECT_EQ(ET_GESTURE_BEGIN, GetReceivedGesture(0).type); | 1268 EXPECT_EQ(ET_GESTURE_BEGIN, GetReceivedGesture(0).type); |
1219 EXPECT_EQ(ET_GESTURE_TAP_DOWN, GetMostRecentGestureEventType()); | 1269 EXPECT_EQ(ET_GESTURE_TAP_DOWN, GetMostRecentGestureEventType()); |
1220 EXPECT_EQ(2U, GetReceivedGestureCount()); | 1270 EXPECT_EQ(2U, GetReceivedGestureCount()); |
| 1271 EXPECT_EQ(1, GetMostRecentGestureEvent().details.touch_points()); |
1221 | 1272 |
1222 event = ObtainMotionEvent(event_time, MotionEvent::ACTION_POINTER_DOWN); | 1273 event = ObtainMotionEvent(event_time, MotionEvent::ACTION_POINTER_DOWN); |
| 1274 event.pointer_count = 2; |
1223 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 1275 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
1224 EXPECT_EQ(ET_GESTURE_BEGIN, GetMostRecentGestureEventType()); | 1276 EXPECT_EQ(ET_GESTURE_BEGIN, GetMostRecentGestureEventType()); |
1225 EXPECT_EQ(3U, GetReceivedGestureCount()); | 1277 EXPECT_EQ(3U, GetReceivedGestureCount()); |
| 1278 EXPECT_EQ(2, GetMostRecentGestureEvent().details.touch_points()); |
1226 | 1279 |
1227 event = ObtainMotionEvent(event_time, MotionEvent::ACTION_POINTER_DOWN); | 1280 event = ObtainMotionEvent(event_time, MotionEvent::ACTION_POINTER_DOWN); |
| 1281 event.pointer_count = 3; |
1228 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 1282 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
1229 EXPECT_EQ(ET_GESTURE_BEGIN, GetMostRecentGestureEventType()); | 1283 EXPECT_EQ(ET_GESTURE_BEGIN, GetMostRecentGestureEventType()); |
1230 EXPECT_EQ(4U, GetReceivedGestureCount()); | 1284 EXPECT_EQ(4U, GetReceivedGestureCount()); |
| 1285 EXPECT_EQ(3, GetMostRecentGestureEvent().details.touch_points()); |
1231 | 1286 |
1232 event = ObtainMotionEvent(event_time, MotionEvent::ACTION_POINTER_UP); | 1287 event = ObtainMotionEvent(event_time, MotionEvent::ACTION_POINTER_UP); |
| 1288 event.pointer_count = 2; |
1233 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 1289 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
1234 EXPECT_EQ(ET_GESTURE_END, GetMostRecentGestureEventType()); | 1290 EXPECT_EQ(ET_GESTURE_END, GetMostRecentGestureEventType()); |
1235 EXPECT_EQ(5U, GetReceivedGestureCount()); | 1291 EXPECT_EQ(5U, GetReceivedGestureCount()); |
| 1292 EXPECT_EQ(2, GetMostRecentGestureEvent().details.touch_points()); |
1236 | 1293 |
1237 event = ObtainMotionEvent(event_time, MotionEvent::ACTION_POINTER_DOWN); | 1294 event = ObtainMotionEvent(event_time, MotionEvent::ACTION_POINTER_DOWN); |
| 1295 event.pointer_count = 3; |
1238 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 1296 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
1239 EXPECT_EQ(ET_GESTURE_BEGIN, GetMostRecentGestureEventType()); | 1297 EXPECT_EQ(ET_GESTURE_BEGIN, GetMostRecentGestureEventType()); |
1240 EXPECT_EQ(6U, GetReceivedGestureCount()); | 1298 EXPECT_EQ(6U, GetReceivedGestureCount()); |
| 1299 EXPECT_EQ(3, GetMostRecentGestureEvent().details.touch_points()); |
1241 | 1300 |
1242 event = ObtainMotionEvent(event_time, MotionEvent::ACTION_POINTER_UP); | 1301 event = ObtainMotionEvent(event_time, MotionEvent::ACTION_POINTER_UP); |
| 1302 event.pointer_count = 2; |
1243 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 1303 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
1244 EXPECT_EQ(ET_GESTURE_END, GetMostRecentGestureEventType()); | 1304 EXPECT_EQ(ET_GESTURE_END, GetMostRecentGestureEventType()); |
1245 EXPECT_EQ(7U, GetReceivedGestureCount()); | 1305 EXPECT_EQ(7U, GetReceivedGestureCount()); |
| 1306 EXPECT_EQ(2, GetMostRecentGestureEvent().details.touch_points()); |
1246 | 1307 |
1247 event = ObtainMotionEvent(event_time, MotionEvent::ACTION_POINTER_UP); | 1308 event = ObtainMotionEvent(event_time, MotionEvent::ACTION_POINTER_UP); |
| 1309 event.pointer_count = 1; |
1248 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 1310 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
1249 EXPECT_EQ(ET_GESTURE_END, GetMostRecentGestureEventType()); | 1311 EXPECT_EQ(ET_GESTURE_END, GetMostRecentGestureEventType()); |
1250 EXPECT_EQ(8U, GetReceivedGestureCount()); | 1312 EXPECT_EQ(8U, GetReceivedGestureCount()); |
| 1313 EXPECT_EQ(1, GetMostRecentGestureEvent().details.touch_points()); |
1251 | 1314 |
1252 event = ObtainMotionEvent(event_time, MotionEvent::ACTION_UP); | 1315 event = ObtainMotionEvent(event_time, MotionEvent::ACTION_UP); |
| 1316 event.pointer_count = 1; |
1253 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 1317 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
1254 EXPECT_EQ(ET_GESTURE_END, GetMostRecentGestureEventType()); | 1318 EXPECT_EQ(ET_GESTURE_END, GetMostRecentGestureEventType()); |
1255 EXPECT_EQ(9U, GetReceivedGestureCount()); | 1319 EXPECT_EQ(9U, GetReceivedGestureCount()); |
| 1320 EXPECT_EQ(1, GetMostRecentGestureEvent().details.touch_points()); |
1256 | 1321 |
1257 event = ObtainMotionEvent(event_time, MotionEvent::ACTION_DOWN); | 1322 event = ObtainMotionEvent(event_time, MotionEvent::ACTION_DOWN); |
| 1323 event.pointer_count = 1; |
1258 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 1324 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
1259 EXPECT_EQ(ET_GESTURE_BEGIN, GetReceivedGesture(9).type); | 1325 EXPECT_EQ(ET_GESTURE_BEGIN, GetReceivedGesture(9).type); |
1260 EXPECT_EQ(ET_GESTURE_TAP_DOWN, GetMostRecentGestureEventType()); | 1326 EXPECT_EQ(ET_GESTURE_TAP_DOWN, GetMostRecentGestureEventType()); |
1261 EXPECT_EQ(11U, GetReceivedGestureCount()); | 1327 EXPECT_EQ(11U, GetReceivedGestureCount()); |
| 1328 EXPECT_EQ(1, GetMostRecentGestureEvent().details.touch_points()); |
1262 | 1329 |
1263 event = ObtainMotionEvent(event_time, MotionEvent::ACTION_CANCEL); | 1330 event = ObtainMotionEvent(event_time, MotionEvent::ACTION_CANCEL); |
| 1331 event.pointer_count = 1; |
1264 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 1332 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
1265 EXPECT_EQ(ET_GESTURE_END, GetMostRecentGestureEventType()); | 1333 EXPECT_EQ(ET_GESTURE_END, GetMostRecentGestureEventType()); |
1266 EXPECT_EQ(12U, GetReceivedGestureCount()); | 1334 EXPECT_EQ(12U, GetReceivedGestureCount()); |
1267 | 1335 EXPECT_EQ(1, GetMostRecentGestureEvent().details.touch_points()); |
1268 | |
1269 } | 1336 } |
1270 | 1337 |
1271 } // namespace ui | 1338 } // namespace ui |
OLD | NEW |