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

Unified Diff: ui/events/gesture_detection/touch_disposition_gesture_filter_unittest.cc

Issue 712133003: Track whether a scroll sequence has been partially prevented (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Filter swipe explicitly Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ui/events/gesture_detection/touch_disposition_gesture_filter_unittest.cc
diff --git a/ui/events/gesture_detection/touch_disposition_gesture_filter_unittest.cc b/ui/events/gesture_detection/touch_disposition_gesture_filter_unittest.cc
index 5d823b72d3f26abe1c23876d5177834e190fc5e5..eb77e64859b1f21aa3c89c3fd1afaae85e188e85 100644
--- a/ui/events/gesture_detection/touch_disposition_gesture_filter_unittest.cc
+++ b/ui/events/gesture_detection/touch_disposition_gesture_filter_unittest.cc
@@ -179,9 +179,13 @@ class TouchDispositionGestureFilterTest
bool GesturesSent() const { return !sent_gestures_.empty(); }
- base::TimeTicks LastSentGestureTime() const {
+ const GestureEventData& last_sent_gesture() const {
CHECK(last_sent_gesture_);
- return last_sent_gesture_->time;
+ return *last_sent_gesture_;
+ }
+
+ base::TimeTicks LastSentGestureTime() const {
+ return last_sent_gesture().time;
}
base::TimeTicks CurrentTouchTime() const {
@@ -197,18 +201,15 @@ class TouchDispositionGestureFilterTest
}
gfx::PointF LastSentGestureLocation() const {
- CHECK(last_sent_gesture_);
- return gfx::PointF(last_sent_gesture_->x, last_sent_gesture_->y);
+ return gfx::PointF(last_sent_gesture().x, last_sent_gesture().y);
}
gfx::PointF LastSentGestureRawLocation() const {
- CHECK(last_sent_gesture_);
- return gfx::PointF(last_sent_gesture_->raw_x, last_sent_gesture_->raw_y);
+ return gfx::PointF(last_sent_gesture().raw_x, last_sent_gesture().raw_y);
}
int LastSentGestureFlags() const {
- CHECK(last_sent_gesture_);
- return last_sent_gesture_->flags;
+ return last_sent_gesture().flags;
}
const gfx::RectF& ShowPressBoundingBox() const {
@@ -1148,4 +1149,44 @@ TEST_F(TouchDispositionGestureFilterTest, EventFlagPropagation) {
EXPECT_EQ(0, LastSentGestureFlags());
}
+
+TEST_F(TouchDispositionGestureFilterTest, PreviousScrollPrevented) {
+ PushGesture(ET_GESTURE_BEGIN);
+ PressTouchPoint(1, 1);
+ EXPECT_FALSE(GesturesSent());
+ SendTouchNotConsumedAck();
+ EXPECT_TRUE(
+ GesturesMatch(Gestures(ET_GESTURE_BEGIN), GetAndResetSentGestures()));
+
+ // The sent scroll update should always reflect whether any preceding scroll
+ // update has been dropped.
+ PushGesture(ET_GESTURE_SCROLL_UPDATE);
+ MoveTouchPoint(0, 2, 2);
+ SendTouchNotConsumedAck();
+ ASSERT_TRUE(GesturesSent());
+ EXPECT_FALSE(last_sent_gesture()
+ .details.previous_scroll_update_in_sequence_prevented());
+ GetAndResetSentGestures();
+
+ PushGesture(ET_GESTURE_SCROLL_UPDATE);
+ MoveTouchPoint(0, -2, -2);
+ SendTouchConsumedAck();
+ EXPECT_FALSE(GesturesSent());
+
+ PushGesture(ET_GESTURE_SCROLL_UPDATE);
+ MoveTouchPoint(0, 2, 2);
+ SendTouchNotConsumedAck();
+ ASSERT_TRUE(GesturesSent());
+ EXPECT_TRUE(last_sent_gesture()
+ .details.previous_scroll_update_in_sequence_prevented());
+ GetAndResetSentGestures();
+
+ PushGesture(ET_GESTURE_SCROLL_UPDATE);
+ MoveTouchPoint(0, 2, 2);
+ SendTouchNotConsumedAck();
+ ASSERT_TRUE(GesturesSent());
+ EXPECT_TRUE(last_sent_gesture()
+ .details.previous_scroll_update_in_sequence_prevented());
+}
+
} // namespace ui

Powered by Google App Engine
This is Rietveld 408576698