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 ba518cbbef99bec710fafc52768f093659703679..ddeb191ed250e3c932cd873d3e0d879e9fd593ed 100644 |
--- a/ui/events/gesture_detection/gesture_provider_unittest.cc |
+++ b/ui/events/gesture_detection/gesture_provider_unittest.cc |
@@ -72,6 +72,13 @@ class GestureProviderTest : public testing::Test, public GestureProviderClient { |
gestures_.push_back(gesture); |
} |
+ bool CancelActiveTouchSequence() { |
+ if (!gesture_provider_->current_down_event()) |
+ return false; |
+ return gesture_provider_->OnTouchEvent( |
+ *gesture_provider_->current_down_event()->Cancel()); |
+ } |
+ |
bool HasReceivedGesture(EventType type) const { |
for (size_t i = 0; i < gestures_.size(); ++i) { |
if (gestures_[i].type == type) |
@@ -302,7 +309,7 @@ TEST_F(GestureProviderTest, TapCancelledWhenWindowFocusLost) { |
EXPECT_EQ(ET_GESTURE_LONG_PRESS, GetMostRecentGestureEventType()); |
// The long press triggers window focus loss by opening a context menu |
- gesture_provider_->CancelActiveTouchSequence(); |
+ EXPECT_TRUE(CancelActiveTouchSequence()); |
EXPECT_EQ(ET_GESTURE_TAP_CANCEL, GetMostRecentGestureEventType()); |
} |
@@ -971,7 +978,7 @@ TEST_F(GestureProviderTest, GesturesCancelledAfterLongPressCausesLostFocus) { |
Wait(long_press_timeout); |
EXPECT_EQ(ET_GESTURE_LONG_PRESS, GetMostRecentGestureEventType()); |
- gesture_provider_->CancelActiveTouchSequence(); |
+ EXPECT_TRUE(CancelActiveTouchSequence()); |
EXPECT_EQ(ET_GESTURE_TAP_CANCEL, GetMostRecentGestureEventType()); |
event = ObtainMotionEvent(event_time + long_press_timeout, |
@@ -980,12 +987,12 @@ TEST_F(GestureProviderTest, GesturesCancelledAfterLongPressCausesLostFocus) { |
EXPECT_FALSE(HasReceivedGesture(ET_GESTURE_LONG_TAP)); |
} |
-// Verify that ignoring the remaining touch sequence triggers proper touch and |
-// gesture cancellation. |
+// Verify that inserting a touch cancel event will trigger proper touch and |
+// gesture sequence cancellation. |
TEST_F(GestureProviderTest, CancelActiveTouchSequence) { |
base::TimeTicks event_time = base::TimeTicks::Now(); |
- gesture_provider_->CancelActiveTouchSequence(); |
+ EXPECT_FALSE(CancelActiveTouchSequence()); |
EXPECT_EQ(0U, GetReceivedGestureCount()); |
MockMotionEvent event = |
@@ -993,7 +1000,7 @@ TEST_F(GestureProviderTest, CancelActiveTouchSequence) { |
EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
EXPECT_EQ(ET_GESTURE_TAP_DOWN, GetMostRecentGestureEventType()); |
- gesture_provider_->CancelActiveTouchSequence(); |
+ ASSERT_TRUE(CancelActiveTouchSequence()); |
EXPECT_EQ(ET_GESTURE_TAP_CANCEL, GetMostRecentGestureEventType()); |
// Subsequent MotionEvent's are dropped until ACTION_DOWN. |