Index: ui/events/gesture_detection/gesture_provider_unittest.cc |
diff --git a/ui/events/gesture_detection/gesture_provider_unittest.cc b/ui/events/gesture_detection/gesture_provider_unittest.cc |
index 1be9ec7fec30c6abbc50c8a0ff020d926f58e5a4..2e4f89c730f4a30abe363b23fab2f1bd227423f1 100644 |
--- a/ui/events/gesture_detection/gesture_provider_unittest.cc |
+++ b/ui/events/gesture_detection/gesture_provider_unittest.cc |
@@ -1094,4 +1094,59 @@ TEST_F(GestureProviderTest, CancelActiveTouchSequence) { |
EXPECT_EQ(ET_GESTURE_TAP_DOWN, GetMostRecentGestureEventType()); |
} |
+// Verify that gesture begin and gesture end events are dispatched correctly. |
+TEST_F(GestureProviderTest, GestureBeginAndEnd) { |
+ gesture_provider_->SetBeginEndTypesEnabled(true); |
jdduke (slow)
2014/04/03 22:03:28
If possible, I'd prefer not to expose this flag ex
tdresser
2014/04/04 16:39:31
Done.
|
+ base::TimeTicks event_time = base::TimeTicks::Now(); |
+ |
+ EXPECT_EQ(0U, GetReceivedGestureCount()); |
+ MockMotionEvent event = |
+ ObtainMotionEvent(event_time, MotionEvent::ACTION_DOWN); |
+ EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
+ EXPECT_EQ(ET_GESTURE_BEGIN, GetReceivedGesture(0).type); |
+ EXPECT_EQ(ET_GESTURE_TAP_DOWN, GetMostRecentGestureEventType()); |
+ EXPECT_EQ(2U, GetReceivedGestureCount()); |
+ |
+ event = ObtainMotionEvent(event_time, MotionEvent::ACTION_POINTER_DOWN); |
+ EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
+ EXPECT_EQ(ET_GESTURE_BEGIN, GetMostRecentGestureEventType()); |
+ EXPECT_EQ(3U, GetReceivedGestureCount()); |
+ |
+ event = ObtainMotionEvent(event_time, MotionEvent::ACTION_POINTER_DOWN); |
+ EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
+ EXPECT_EQ(ET_GESTURE_BEGIN, GetMostRecentGestureEventType()); |
+ EXPECT_EQ(4U, GetReceivedGestureCount()); |
+ |
+ event = ObtainMotionEvent(event_time, MotionEvent::ACTION_POINTER_UP); |
+ EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
+ EXPECT_EQ(ET_GESTURE_END, GetMostRecentGestureEventType()); |
+ EXPECT_EQ(5U, GetReceivedGestureCount()); |
+ |
+ event = ObtainMotionEvent(event_time, MotionEvent::ACTION_POINTER_DOWN); |
+ EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
+ EXPECT_EQ(ET_GESTURE_BEGIN, GetMostRecentGestureEventType()); |
+ EXPECT_EQ(6U, GetReceivedGestureCount()); |
+ |
+ event = ObtainMotionEvent(event_time, MotionEvent::ACTION_POINTER_UP); |
+ EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
+ EXPECT_EQ(ET_GESTURE_END, GetMostRecentGestureEventType()); |
+ EXPECT_EQ(7U, GetReceivedGestureCount()); |
+ |
+ event = ObtainMotionEvent(event_time, MotionEvent::ACTION_POINTER_UP); |
+ EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
+ EXPECT_EQ(ET_GESTURE_END, GetMostRecentGestureEventType()); |
+ EXPECT_EQ(8U, GetReceivedGestureCount()); |
+ |
+ event = ObtainMotionEvent(event_time, MotionEvent::ACTION_POINTER_UP); |
+ EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
+ EXPECT_EQ(ET_GESTURE_END, GetMostRecentGestureEventType()); |
+ EXPECT_EQ(9U, GetReceivedGestureCount()); |
+ |
+ event = ObtainMotionEvent(event_time, MotionEvent::ACTION_POINTER_DOWN); |
+ EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
+ EXPECT_EQ(ET_GESTURE_BEGIN, GetMostRecentGestureEventType()); |
+ EXPECT_EQ(10U, GetReceivedGestureCount()); |
+ |
jdduke (slow)
2014/04/03 22:03:28
I guess add an ACTION_CANCEL in here somewhere for
tdresser
2014/04/04 16:39:31
Done.
|
+} |
+ |
} // namespace ui |