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 eb77e64859b1f21aa3c89c3fd1afaae85e188e85..1452caa1922e55c28327ed361bd3999fab7ffbfe 100644 |
--- a/ui/events/gesture_detection/touch_disposition_gesture_filter_unittest.cc |
+++ b/ui/events/gesture_detection/touch_disposition_gesture_filter_unittest.cc |
@@ -42,7 +42,7 @@ class TouchDispositionGestureFilterTest |
show_press_bounding_box_ = event.details.bounding_box(); |
if (cancel_after_next_gesture_) { |
cancel_after_next_gesture_ = false; |
- CancelTouchPoint(); |
+ SendPacket(CancelTouchPoint(), NoGestures()); |
SendTouchNotConsumedAck(); |
} |
} |
@@ -71,6 +71,8 @@ class TouchDispositionGestureFilterTest |
return ::testing::AssertionSuccess(); |
} |
+ GestureList NoGestures() { return GestureList(0); } |
+ |
GestureList Gestures(EventType type) { |
return GestureList(1, type); |
} |
@@ -104,14 +106,6 @@ class TouchDispositionGestureFilterTest |
return gestures; |
} |
- void SendTouchGestures() { |
- touch_event_.set_event_time(base::TimeTicks::Now()); |
- EXPECT_EQ(TouchDispositionGestureFilter::SUCCESS, |
- SendTouchGestures(touch_event_, pending_gesture_packet_)); |
- GestureEventDataPacket gesture_packet; |
- std::swap(gesture_packet, pending_gesture_packet_); |
- } |
- |
TouchDispositionGestureFilter::PacketResult |
SendTouchGestures(const MotionEvent& touch, |
const GestureEventDataPacket& packet) { |
@@ -141,41 +135,50 @@ class TouchDispositionGestureFilterTest |
void SendTouchNotConsumedAck() { SendTouchEventAck(false); } |
- void PushGesture(EventType type) { |
- pending_gesture_packet_.Push(CreateGesture(type)); |
- } |
- |
- void PushGesture(EventType type, float x, float y, float diameter) { |
- pending_gesture_packet_.Push(CreateGesture(type, x, y, diameter)); |
- } |
- |
- void PressTouchPoint(int x, int y) { |
+ const MockMotionEvent& PressTouchPoint(float x, float y) { |
touch_event_.PressPoint(x, y); |
touch_event_.SetRawOffset(raw_offset_.x(), raw_offset_.y()); |
- SendTouchGestures(); |
+ return touch_event_; |
} |
- void MoveTouchPoint(size_t index, int x, int y) { |
- touch_event_.MovePoint(index, x, y); |
- touch_event_.SetRawOffset(raw_offset_.x(), raw_offset_.y()); |
- SendTouchGestures(); |
+ const MockMotionEvent& PressTouchPoint() { return PressTouchPoint(0, 0); } |
+ |
+ const MockMotionEvent& MoveTouchPoint() { |
+ touch_event_.MovePoint(0, 0, 0); |
+ touch_event_.set_event_time(base::TimeTicks::Now()); |
+ return touch_event_; |
} |
- void ReleaseTouchPoint() { |
+ const MockMotionEvent& ReleaseTouchPoint() { |
touch_event_.ReleasePoint(); |
- SendTouchGestures(); |
+ touch_event_.set_event_time(base::TimeTicks::Now()); |
+ return touch_event_; |
} |
- void CancelTouchPoint() { |
+ const MockMotionEvent& CancelTouchPoint() { |
touch_event_.CancelPoint(); |
- SendTouchGestures(); |
+ touch_event_.set_event_time(base::TimeTicks::Now()); |
+ return touch_event_; |
+ } |
+ |
+ void SendPacket(const MockMotionEvent& touch_event, |
+ GestureList gesture_list) { |
+ GestureEventDataPacket gesture_packet; |
+ for (EventType type : gesture_list) |
+ gesture_packet.Push(CreateGesture(type)); |
+ |
+ EXPECT_EQ(TouchDispositionGestureFilter::SUCCESS, |
+ SendTouchGestures(touch_event, gesture_packet)); |
} |
void SetRawTouchOffset(const gfx::Vector2dF& raw_offset) { |
raw_offset_ = raw_offset; |
} |
- void ResetTouchPoints() { touch_event_ = MockMotionEvent(); } |
+ const MockMotionEvent& ResetTouchPoints() { |
+ touch_event_ = MockMotionEvent(); |
+ return touch_event_; |
+ } |
bool GesturesSent() const { return !sent_gestures_.empty(); } |
@@ -229,15 +232,8 @@ class TouchDispositionGestureFilterTest |
float y, |
float diameter) { |
return GestureEventData( |
- GestureEventDetails(type), |
- 0, |
- MotionEvent::TOOL_TYPE_FINGER, |
- base::TimeTicks(), |
- touch_event_.GetX(0), |
- touch_event_.GetY(0), |
- touch_event_.GetRawX(0), |
- touch_event_.GetRawY(0), |
- 1, |
+ GestureEventDetails(type), 0, MotionEvent::TOOL_TYPE_FINGER, |
+ base::TimeTicks(), x, y, 0, 0, 1, |
gfx::RectF(x - diameter / 2, y - diameter / 2, diameter, diameter), |
kDefaultEventFlags); |
} |
@@ -255,10 +251,10 @@ class TouchDispositionGestureFilterTest |
}; |
TEST_F(TouchDispositionGestureFilterTest, BasicNoGestures) { |
- PressTouchPoint(1, 1); |
+ PressTouchPoint(); |
EXPECT_FALSE(GesturesSent()); |
- MoveTouchPoint(0, 2, 2); |
+ MoveTouchPoint(); |
EXPECT_FALSE(GesturesSent()); |
// No gestures should be dispatched by the ack, as the queued packets |
@@ -274,99 +270,83 @@ TEST_F(TouchDispositionGestureFilterTest, BasicNoGestures) { |
} |
TEST_F(TouchDispositionGestureFilterTest, BasicGestures) { |
+ GestureList press_gestures = |
+ Gestures(ET_GESTURE_BEGIN, ET_GESTURE_SCROLL_BEGIN); |
// An unconsumed touch's gesture should be sent. |
- PushGesture(ET_GESTURE_BEGIN); |
- PushGesture(ET_GESTURE_SCROLL_BEGIN); |
- PressTouchPoint(1, 1); |
+ SendPacket(PressTouchPoint(), press_gestures); |
EXPECT_FALSE(GesturesSent()); |
SendTouchNotConsumedAck(); |
- EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_BEGIN, ET_GESTURE_SCROLL_BEGIN), |
- GetAndResetSentGestures())); |
+ EXPECT_TRUE(GesturesMatch(press_gestures, GetAndResetSentGestures())); |
// Multiple gestures can be queued for a single event. |
- PushGesture(ET_SCROLL_FLING_START); |
- PushGesture(ET_SCROLL_FLING_CANCEL); |
- PushGesture(ET_GESTURE_END); |
- ReleaseTouchPoint(); |
+ GestureList release_gestures = |
+ Gestures(ET_SCROLL_FLING_START, ET_SCROLL_FLING_CANCEL, ET_GESTURE_END); |
+ SendPacket(ReleaseTouchPoint(), release_gestures); |
EXPECT_FALSE(GesturesSent()); |
SendTouchNotConsumedAck(); |
- EXPECT_TRUE(GesturesMatch(Gestures(ET_SCROLL_FLING_START, |
- ET_SCROLL_FLING_CANCEL, |
- ET_GESTURE_END), |
- GetAndResetSentGestures())); |
+ EXPECT_TRUE(GesturesMatch(release_gestures, GetAndResetSentGestures())); |
} |
TEST_F(TouchDispositionGestureFilterTest, BasicGesturesConsumed) { |
// A consumed touch's gesture should not be sent. |
- PushGesture(ET_GESTURE_BEGIN); |
- PushGesture(ET_GESTURE_SCROLL_BEGIN); |
- PressTouchPoint(1, 1); |
+ SendPacket(PressTouchPoint(), |
+ Gestures(ET_GESTURE_BEGIN, ET_GESTURE_SCROLL_BEGIN)); |
SendTouchConsumedAck(); |
EXPECT_FALSE(GesturesSent()); |
- PushGesture(ET_GESTURE_SCROLL_UPDATE); |
- MoveTouchPoint(0, 2, 2); |
+ SendPacket(MoveTouchPoint(), Gestures(ET_GESTURE_SCROLL_UPDATE)); |
SendTouchConsumedAck(); |
EXPECT_FALSE(GesturesSent()); |
- PushGesture(ET_SCROLL_FLING_START); |
- PushGesture(ET_SCROLL_FLING_CANCEL); |
- PushGesture(ET_GESTURE_END); |
- ReleaseTouchPoint(); |
+ SendPacket( |
+ ReleaseTouchPoint(), |
+ Gestures(ET_SCROLL_FLING_START, ET_SCROLL_FLING_CANCEL, ET_GESTURE_END)); |
SendTouchConsumedAck(); |
EXPECT_FALSE(GesturesSent()); |
} |
TEST_F(TouchDispositionGestureFilterTest, ConsumedThenNotConsumed) { |
// A consumed touch's gesture should not be sent. |
- PushGesture(ET_GESTURE_SCROLL_BEGIN); |
- PressTouchPoint(1, 1); |
+ SendPacket(PressTouchPoint(), Gestures(ET_GESTURE_SCROLL_BEGIN)); |
SendTouchConsumedAck(); |
EXPECT_FALSE(GesturesSent()); |
// Even if the subsequent touch is not consumed, continue dropping gestures. |
- PushGesture(ET_GESTURE_SCROLL_UPDATE); |
- MoveTouchPoint(0, 2, 2); |
+ SendPacket(MoveTouchPoint(), Gestures(ET_GESTURE_SCROLL_UPDATE)); |
SendTouchNotConsumedAck(); |
EXPECT_FALSE(GesturesSent()); |
// Even if the subsequent touch had no consumer, continue dropping gestures. |
- PushGesture(ET_SCROLL_FLING_START); |
- ReleaseTouchPoint(); |
+ SendPacket(ReleaseTouchPoint(), Gestures(ET_SCROLL_FLING_START)); |
SendTouchNotConsumedAck(); |
EXPECT_FALSE(GesturesSent()); |
} |
TEST_F(TouchDispositionGestureFilterTest, NotConsumedThenConsumed) { |
// A not consumed touch's gesture should be sent. |
- PushGesture(ET_GESTURE_SCROLL_BEGIN); |
- PressTouchPoint(1, 1); |
+ SendPacket(PressTouchPoint(), Gestures(ET_GESTURE_SCROLL_BEGIN)); |
SendTouchNotConsumedAck(); |
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_SCROLL_BEGIN), |
GetAndResetSentGestures())); |
// A newly consumed gesture should not be sent. |
- PushGesture(ET_GESTURE_PINCH_BEGIN); |
- PressTouchPoint(10, 10); |
+ SendPacket(PressTouchPoint(), Gestures(ET_GESTURE_PINCH_BEGIN)); |
SendTouchConsumedAck(); |
EXPECT_FALSE(GesturesSent()); |
// And subsequent non-consumed pinch updates should not be sent. |
- PushGesture(ET_GESTURE_SCROLL_UPDATE); |
- PushGesture(ET_GESTURE_PINCH_UPDATE); |
- MoveTouchPoint(0, 2, 2); |
+ SendPacket(MoveTouchPoint(), |
+ Gestures(ET_GESTURE_SCROLL_UPDATE, ET_GESTURE_PINCH_UPDATE)); |
SendTouchNotConsumedAck(); |
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_SCROLL_UPDATE), |
GetAndResetSentGestures())); |
// End events dispatched only when their start events were. |
- PushGesture(ET_GESTURE_PINCH_END); |
- ReleaseTouchPoint(); |
+ SendPacket(ReleaseTouchPoint(), Gestures(ET_GESTURE_PINCH_END)); |
SendTouchNotConsumedAck(); |
EXPECT_FALSE(GesturesSent()); |
- PushGesture(ET_GESTURE_SCROLL_END); |
- ReleaseTouchPoint(); |
+ SendPacket(ReleaseTouchPoint(), Gestures(ET_GESTURE_SCROLL_END)); |
SendTouchConsumedAck(); |
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_SCROLL_END), |
GetAndResetSentGestures())); |
@@ -374,27 +354,23 @@ TEST_F(TouchDispositionGestureFilterTest, NotConsumedThenConsumed) { |
TEST_F(TouchDispositionGestureFilterTest, ScrollAlternatelyConsumed) { |
// A consumed touch's gesture should not be sent. |
- PushGesture(ET_GESTURE_SCROLL_BEGIN); |
- PressTouchPoint(1, 1); |
+ SendPacket(PressTouchPoint(), Gestures(ET_GESTURE_SCROLL_BEGIN)); |
SendTouchNotConsumedAck(); |
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_SCROLL_BEGIN), |
GetAndResetSentGestures())); |
for (size_t i = 0; i < 3; ++i) { |
- PushGesture(ET_GESTURE_SCROLL_UPDATE); |
- MoveTouchPoint(0, 2, 2); |
+ SendPacket(MoveTouchPoint(), Gestures(ET_GESTURE_SCROLL_UPDATE)); |
SendTouchConsumedAck(); |
EXPECT_FALSE(GesturesSent()); |
- PushGesture(ET_GESTURE_SCROLL_UPDATE); |
- MoveTouchPoint(0, 3, 3); |
+ SendPacket(MoveTouchPoint(), Gestures(ET_GESTURE_SCROLL_UPDATE)); |
SendTouchNotConsumedAck(); |
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_SCROLL_UPDATE), |
GetAndResetSentGestures())); |
} |
- PushGesture(ET_GESTURE_SCROLL_END); |
- ReleaseTouchPoint(); |
+ SendPacket(ReleaseTouchPoint(), Gestures(ET_GESTURE_SCROLL_END)); |
SendTouchConsumedAck(); |
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_SCROLL_END), |
GetAndResetSentGestures())); |
@@ -402,73 +378,63 @@ TEST_F(TouchDispositionGestureFilterTest, ScrollAlternatelyConsumed) { |
TEST_F(TouchDispositionGestureFilterTest, NotConsumedThenNoConsumer) { |
// An unconsumed touch's gesture should be sent. |
- PushGesture(ET_GESTURE_SCROLL_BEGIN); |
- PressTouchPoint(1, 1); |
+ SendPacket(PressTouchPoint(), Gestures(ET_GESTURE_SCROLL_BEGIN)); |
SendTouchNotConsumedAck(); |
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_SCROLL_BEGIN), |
GetAndResetSentGestures())); |
// If the subsequent touch has no consumer (e.g., a secondary pointer is |
// pressed but not on a touch handling rect), send the gesture. |
- PushGesture(ET_GESTURE_PINCH_BEGIN); |
- PressTouchPoint(2, 2); |
+ SendPacket(PressTouchPoint(), Gestures(ET_GESTURE_PINCH_BEGIN)); |
SendTouchNotConsumedAck(); |
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_PINCH_BEGIN), |
GetAndResetSentGestures())); |
// End events should be dispatched when their start events were, independent |
// of the ack state. |
- PushGesture(ET_GESTURE_PINCH_END); |
- ReleaseTouchPoint(); |
+ SendPacket(ReleaseTouchPoint(), Gestures(ET_GESTURE_PINCH_END)); |
SendTouchConsumedAck(); |
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_PINCH_END), |
GetAndResetSentGestures())); |
- PushGesture(ET_GESTURE_SCROLL_END); |
- ReleaseTouchPoint(); |
+ SendPacket(ReleaseTouchPoint(), Gestures(ET_GESTURE_SCROLL_END)); |
SendTouchConsumedAck(); |
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_SCROLL_END), |
GetAndResetSentGestures())); |
} |
TEST_F(TouchDispositionGestureFilterTest, EndingEventsSent) { |
- PushGesture(ET_GESTURE_SCROLL_BEGIN); |
- PressTouchPoint(1, 1); |
+ SendPacket(PressTouchPoint(), Gestures(ET_GESTURE_SCROLL_BEGIN)); |
SendTouchNotConsumedAck(); |
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_SCROLL_BEGIN), |
GetAndResetSentGestures())); |
- PushGesture(ET_GESTURE_PINCH_BEGIN); |
- PressTouchPoint(2, 2); |
+ SendPacket(PressTouchPoint(), Gestures(ET_GESTURE_PINCH_BEGIN)); |
SendTouchNotConsumedAck(); |
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_PINCH_BEGIN), |
GetAndResetSentGestures())); |
// Consuming the touchend event can't suppress the match end gesture. |
- PushGesture(ET_GESTURE_PINCH_END); |
- ReleaseTouchPoint(); |
+ SendPacket(ReleaseTouchPoint(), Gestures(ET_GESTURE_PINCH_END)); |
SendTouchConsumedAck(); |
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_PINCH_END), |
GetAndResetSentGestures())); |
// But other events in the same packet are still suppressed. |
- PushGesture(ET_GESTURE_SCROLL_UPDATE); |
- PushGesture(ET_GESTURE_SCROLL_END); |
- ReleaseTouchPoint(); |
+ SendPacket(ReleaseTouchPoint(), |
+ Gestures(ET_GESTURE_SCROLL_UPDATE, ET_GESTURE_SCROLL_END)); |
SendTouchConsumedAck(); |
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_SCROLL_END), |
GetAndResetSentGestures())); |
// ET_GESTURE_SCROLL_END and ET_SCROLL_FLING_START behave the same in this |
// regard. |
- PushGesture(ET_GESTURE_SCROLL_BEGIN); |
- PressTouchPoint(1, 1); |
+ SendPacket(PressTouchPoint(), Gestures(ET_GESTURE_SCROLL_BEGIN)); |
SendTouchNotConsumedAck(); |
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_SCROLL_BEGIN), |
GetAndResetSentGestures())); |
- PushGesture(ET_SCROLL_FLING_START); |
- ReleaseTouchPoint(); |
+ SendPacket(ReleaseTouchPoint(), Gestures(ET_SCROLL_FLING_START)); |
SendTouchConsumedAck(); |
EXPECT_TRUE(GesturesMatch(Gestures(ET_SCROLL_FLING_START), |
GetAndResetSentGestures())); |
@@ -476,121 +442,99 @@ TEST_F(TouchDispositionGestureFilterTest, EndingEventsSent) { |
TEST_F(TouchDispositionGestureFilterTest, EndingEventsNotSent) { |
// Consuming a begin event ensures no end events are sent. |
- PushGesture(ET_GESTURE_SCROLL_BEGIN); |
- PressTouchPoint(1, 1); |
+ SendPacket(PressTouchPoint(), Gestures(ET_GESTURE_SCROLL_BEGIN)); |
SendTouchConsumedAck(); |
EXPECT_FALSE(GesturesSent()); |
- PushGesture(ET_GESTURE_PINCH_BEGIN); |
- PressTouchPoint(2, 2); |
+ SendPacket(PressTouchPoint(), Gestures(ET_GESTURE_PINCH_BEGIN)); |
SendTouchNotConsumedAck(); |
EXPECT_FALSE(GesturesSent()); |
- PushGesture(ET_GESTURE_PINCH_END); |
- ReleaseTouchPoint(); |
+ SendPacket(ReleaseTouchPoint(), Gestures(ET_GESTURE_PINCH_END)); |
SendTouchNotConsumedAck(); |
EXPECT_FALSE(GesturesSent()); |
- PushGesture(ET_GESTURE_SCROLL_END); |
- ReleaseTouchPoint(); |
+ SendPacket(ReleaseTouchPoint(), Gestures(ET_GESTURE_SCROLL_END)); |
SendTouchNotConsumedAck(); |
EXPECT_FALSE(GesturesSent()); |
} |
TEST_F(TouchDispositionGestureFilterTest, UpdateEventsSuppressedPerEvent) { |
- PushGesture(ET_GESTURE_SCROLL_BEGIN); |
- PressTouchPoint(1, 1); |
+ SendPacket(PressTouchPoint(), Gestures(ET_GESTURE_SCROLL_BEGIN)); |
SendTouchNotConsumedAck(); |
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_SCROLL_BEGIN), |
GetAndResetSentGestures())); |
// Consuming a single scroll or pinch update should suppress only that event. |
- PushGesture(ET_GESTURE_SCROLL_UPDATE); |
- MoveTouchPoint(0, 2, 2); |
+ SendPacket(MoveTouchPoint(), Gestures(ET_GESTURE_SCROLL_UPDATE)); |
SendTouchConsumedAck(); |
EXPECT_FALSE(GesturesSent()); |
- PushGesture(ET_GESTURE_PINCH_BEGIN); |
- PressTouchPoint(2, 2); |
+ SendPacket(PressTouchPoint(), Gestures(ET_GESTURE_PINCH_BEGIN)); |
SendTouchNotConsumedAck(); |
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_PINCH_BEGIN), |
GetAndResetSentGestures())); |
- PushGesture(ET_GESTURE_PINCH_UPDATE); |
- MoveTouchPoint(1, 2, 3); |
+ SendPacket(MoveTouchPoint(), Gestures(ET_GESTURE_PINCH_UPDATE)); |
SendTouchConsumedAck(); |
EXPECT_FALSE(GesturesSent()); |
// Subsequent updates should not be affected. |
- PushGesture(ET_GESTURE_SCROLL_UPDATE); |
- MoveTouchPoint(0, 4, 4); |
+ SendPacket(MoveTouchPoint(), Gestures(ET_GESTURE_SCROLL_UPDATE)); |
SendTouchNotConsumedAck(); |
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_SCROLL_UPDATE), |
GetAndResetSentGestures())); |
- PushGesture(ET_GESTURE_PINCH_UPDATE); |
- MoveTouchPoint(0, 4, 5); |
+ SendPacket(MoveTouchPoint(), Gestures(ET_GESTURE_PINCH_UPDATE)); |
SendTouchNotConsumedAck(); |
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_PINCH_UPDATE), |
GetAndResetSentGestures())); |
- PushGesture(ET_GESTURE_PINCH_END); |
- ReleaseTouchPoint(); |
+ SendPacket(ReleaseTouchPoint(), Gestures(ET_GESTURE_PINCH_END)); |
SendTouchConsumedAck(); |
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_PINCH_END), |
GetAndResetSentGestures())); |
- PushGesture(ET_GESTURE_SCROLL_END); |
- ReleaseTouchPoint(); |
+ SendPacket(ReleaseTouchPoint(), Gestures(ET_GESTURE_SCROLL_END)); |
SendTouchConsumedAck(); |
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_SCROLL_END), |
GetAndResetSentGestures())); |
} |
TEST_F(TouchDispositionGestureFilterTest, UpdateEventsDependOnBeginEvents) { |
- PushGesture(ET_GESTURE_SCROLL_BEGIN); |
- PressTouchPoint(1, 1); |
+ SendPacket(PressTouchPoint(), Gestures(ET_GESTURE_SCROLL_BEGIN)); |
SendTouchConsumedAck(); |
EXPECT_FALSE(GesturesSent()); |
// Scroll and pinch gestures depend on the scroll begin gesture being |
// dispatched. |
- PushGesture(ET_GESTURE_SCROLL_UPDATE); |
- MoveTouchPoint(0, 2, 2); |
+ SendPacket(MoveTouchPoint(), Gestures(ET_GESTURE_SCROLL_UPDATE)); |
SendTouchNotConsumedAck(); |
EXPECT_FALSE(GesturesSent()); |
- PushGesture(ET_GESTURE_PINCH_BEGIN); |
- PressTouchPoint(2, 2); |
+ SendPacket(PressTouchPoint(), Gestures(ET_GESTURE_PINCH_BEGIN)); |
SendTouchNotConsumedAck(); |
EXPECT_FALSE(GesturesSent()); |
- PushGesture(ET_GESTURE_PINCH_UPDATE); |
- MoveTouchPoint(1, 2, 3); |
+ SendPacket(MoveTouchPoint(), Gestures(ET_GESTURE_PINCH_UPDATE)); |
SendTouchConsumedAck(); |
EXPECT_FALSE(GesturesSent()); |
- PushGesture(ET_GESTURE_PINCH_END); |
- ReleaseTouchPoint(); |
+ SendPacket(ReleaseTouchPoint(), Gestures(ET_GESTURE_PINCH_END)); |
SendTouchNotConsumedAck(); |
EXPECT_FALSE(GesturesSent()); |
- PushGesture(ET_GESTURE_SCROLL_END); |
- ReleaseTouchPoint(); |
+ SendPacket(ReleaseTouchPoint(), Gestures(ET_GESTURE_SCROLL_END)); |
SendTouchNotConsumedAck(); |
EXPECT_FALSE(GesturesSent()); |
} |
TEST_F(TouchDispositionGestureFilterTest, MultipleTouchSequences) { |
// Queue two touch-to-gestures sequences. |
- PushGesture(ET_GESTURE_TAP_DOWN); |
- PressTouchPoint(1, 1); |
- PushGesture(ET_GESTURE_TAP); |
- ReleaseTouchPoint(); |
- PushGesture(ET_GESTURE_SCROLL_BEGIN); |
- PressTouchPoint(1, 1); |
- PushGesture(ET_GESTURE_SCROLL_END); |
- ReleaseTouchPoint(); |
+ SendPacket(PressTouchPoint(), Gestures(ET_GESTURE_TAP_DOWN)); |
+ SendPacket(ReleaseTouchPoint(), Gestures(ET_GESTURE_TAP)); |
+ SendPacket(PressTouchPoint(), Gestures(ET_GESTURE_SCROLL_BEGIN)); |
+ SendPacket(ReleaseTouchPoint(), Gestures(ET_GESTURE_SCROLL_END)); |
// The first gesture sequence should not be allowed. |
SendTouchConsumedAck(); |
@@ -610,56 +554,53 @@ TEST_F(TouchDispositionGestureFilterTest, FlingCancelledOnNewTouchSequence) { |
SetRawTouchOffset(raw_offset); |
// Simulate a fling. |
- PushGesture(ET_GESTURE_TAP_DOWN); |
- PushGesture(ET_GESTURE_SCROLL_BEGIN); |
- PressTouchPoint(1, 1); |
+ SendPacket(PressTouchPoint(), |
+ Gestures(ET_GESTURE_TAP_DOWN, ET_GESTURE_SCROLL_BEGIN)); |
SendTouchNotConsumedAck(); |
EXPECT_TRUE(GesturesMatch( |
Gestures( |
ET_GESTURE_TAP_DOWN, ET_GESTURE_TAP_CANCEL, ET_GESTURE_SCROLL_BEGIN), |
GetAndResetSentGestures())); |
- PushGesture(ET_SCROLL_FLING_START); |
- ReleaseTouchPoint(); |
+ SendPacket(ReleaseTouchPoint(), Gestures(ET_SCROLL_FLING_START)); |
SendTouchNotConsumedAck(); |
EXPECT_TRUE(GesturesMatch(Gestures(ET_SCROLL_FLING_START), |
GetAndResetSentGestures())); |
// A new touch sequence should cancel the outstanding fling. |
- PressTouchPoint(1, 1); |
+ SendPacket(PressTouchPoint(1, 1), NoGestures()); |
SendTouchNotConsumedAck(); |
EXPECT_TRUE(GesturesMatch(Gestures(ET_SCROLL_FLING_CANCEL), |
GetAndResetSentGestures())); |
EXPECT_EQ(CurrentTouchTime(), LastSentGestureTime()); |
EXPECT_EQ(LastSentGestureLocation(), gfx::PointF(1, 1)); |
EXPECT_EQ(LastSentGestureRawLocation(), gfx::PointF(1, 1) + raw_offset); |
- ReleaseTouchPoint(); |
+ SendPacket(ReleaseTouchPoint(), NoGestures()); |
SendTouchNotConsumedAck(); |
EXPECT_FALSE(GesturesSent()); |
} |
TEST_F(TouchDispositionGestureFilterTest, ScrollEndedOnTouchReleaseIfNoFling) { |
// Simulate a scroll. |
- PushGesture(ET_GESTURE_TAP_DOWN); |
- PushGesture(ET_GESTURE_SCROLL_BEGIN); |
- PressTouchPoint(1, 1); |
+ // Touch position will be used for synthesized scroll end gesture. |
+ SendPacket(PressTouchPoint(2, 3), |
+ Gestures(ET_GESTURE_TAP_DOWN, ET_GESTURE_SCROLL_BEGIN)); |
SendTouchNotConsumedAck(); |
EXPECT_TRUE(GesturesMatch( |
Gestures( |
ET_GESTURE_TAP_DOWN, ET_GESTURE_TAP_CANCEL, ET_GESTURE_SCROLL_BEGIN), |
GetAndResetSentGestures())); |
- ReleaseTouchPoint(); |
+ SendPacket(ReleaseTouchPoint(), NoGestures()); |
SendTouchNotConsumedAck(); |
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_SCROLL_END), |
GetAndResetSentGestures())); |
EXPECT_EQ(CurrentTouchTime(), LastSentGestureTime()); |
- EXPECT_EQ(LastSentGestureLocation(), gfx::PointF(1, 1)); |
+ EXPECT_EQ(LastSentGestureLocation(), gfx::PointF(2, 3)); |
} |
TEST_F(TouchDispositionGestureFilterTest, ScrollEndedOnNewTouchSequence) { |
// Simulate a scroll. |
- PushGesture(ET_GESTURE_TAP_DOWN); |
- PushGesture(ET_GESTURE_SCROLL_BEGIN); |
- PressTouchPoint(1, 1); |
+ SendPacket(PressTouchPoint(), |
+ Gestures(ET_GESTURE_TAP_DOWN, ET_GESTURE_SCROLL_BEGIN)); |
SendTouchNotConsumedAck(); |
EXPECT_TRUE(GesturesMatch( |
Gestures( |
@@ -668,7 +609,9 @@ TEST_F(TouchDispositionGestureFilterTest, ScrollEndedOnNewTouchSequence) { |
// A new touch sequence should end the outstanding scroll. |
ResetTouchPoints(); |
- PressTouchPoint(2, 3); |
+ |
+ // Touch position will be used for synthesized scroll end gesture. |
+ SendPacket(PressTouchPoint(2, 3), NoGestures()); |
SendTouchConsumedAck(); |
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_SCROLL_END), |
GetAndResetSentGestures())); |
@@ -678,10 +621,9 @@ TEST_F(TouchDispositionGestureFilterTest, ScrollEndedOnNewTouchSequence) { |
TEST_F(TouchDispositionGestureFilterTest, FlingCancelledOnScrollBegin) { |
// Simulate a fling sequence. |
- PushGesture(ET_GESTURE_TAP_DOWN); |
- PushGesture(ET_GESTURE_SCROLL_BEGIN); |
- PushGesture(ET_SCROLL_FLING_START); |
- PressTouchPoint(1, 1); |
+ SendPacket(PressTouchPoint(), |
+ Gestures(ET_GESTURE_TAP_DOWN, ET_GESTURE_SCROLL_BEGIN, |
+ ET_SCROLL_FLING_START)); |
SendTouchNotConsumedAck(); |
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_TAP_DOWN, |
ET_GESTURE_TAP_CANCEL, |
@@ -690,9 +632,8 @@ TEST_F(TouchDispositionGestureFilterTest, FlingCancelledOnScrollBegin) { |
GetAndResetSentGestures())); |
// The new fling should cancel the preceding one. |
- PushGesture(ET_GESTURE_SCROLL_BEGIN); |
- PushGesture(ET_SCROLL_FLING_START); |
- ReleaseTouchPoint(); |
+ SendPacket(ReleaseTouchPoint(), |
+ Gestures(ET_GESTURE_SCROLL_BEGIN, ET_SCROLL_FLING_START)); |
SendTouchNotConsumedAck(); |
EXPECT_TRUE(GesturesMatch(Gestures(ET_SCROLL_FLING_CANCEL, |
ET_GESTURE_SCROLL_BEGIN, |
@@ -702,14 +643,13 @@ TEST_F(TouchDispositionGestureFilterTest, FlingCancelledOnScrollBegin) { |
TEST_F(TouchDispositionGestureFilterTest, FlingNotCancelledIfGFCEventReceived) { |
// Simulate a fling that is started then cancelled. |
- PushGesture(ET_GESTURE_SCROLL_BEGIN); |
- PressTouchPoint(1, 1); |
+ SendPacket(PressTouchPoint(), Gestures(ET_GESTURE_SCROLL_BEGIN)); |
SendTouchNotConsumedAck(); |
- PushGesture(ET_SCROLL_FLING_START); |
- MoveTouchPoint(0, 2, 3); |
+ SendPacket(MoveTouchPoint(), Gestures(ET_SCROLL_FLING_START)); |
SendTouchNotConsumedAck(); |
- PushGesture(ET_SCROLL_FLING_CANCEL); |
- ReleaseTouchPoint(); |
+ GestureEventDataPacket packet; |
+ packet.Push(CreateGesture(ET_SCROLL_FLING_CANCEL, 2, 3, 0)); |
+ SendTouchGestures(ReleaseTouchPoint(), packet); |
SendTouchNotConsumedAck(); |
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_SCROLL_BEGIN, |
ET_SCROLL_FLING_START, |
@@ -719,23 +659,21 @@ TEST_F(TouchDispositionGestureFilterTest, FlingNotCancelledIfGFCEventReceived) { |
// A new touch sequence will not inject a ET_SCROLL_FLING_CANCEL, as the fling |
// has already been cancelled. |
- PressTouchPoint(1, 1); |
+ SendPacket(PressTouchPoint(), NoGestures()); |
SendTouchNotConsumedAck(); |
- ReleaseTouchPoint(); |
+ SendPacket(ReleaseTouchPoint(), NoGestures()); |
SendTouchNotConsumedAck(); |
EXPECT_FALSE(GesturesSent()); |
} |
TEST_F(TouchDispositionGestureFilterTest, TapCancelledWhenScrollBegins) { |
- PushGesture(ET_GESTURE_TAP_DOWN); |
- PressTouchPoint(1, 1); |
+ SendPacket(PressTouchPoint(), Gestures(ET_GESTURE_TAP_DOWN)); |
SendTouchNotConsumedAck(); |
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_TAP_DOWN), |
GetAndResetSentGestures())); |
// If the subsequent touch turns into a scroll, the tap should be cancelled. |
- PushGesture(ET_GESTURE_SCROLL_BEGIN); |
- MoveTouchPoint(0, 2, 2); |
+ SendPacket(MoveTouchPoint(), Gestures(ET_GESTURE_SCROLL_BEGIN)); |
SendTouchNotConsumedAck(); |
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_TAP_CANCEL, |
ET_GESTURE_SCROLL_BEGIN), |
@@ -743,38 +681,37 @@ TEST_F(TouchDispositionGestureFilterTest, TapCancelledWhenScrollBegins) { |
} |
TEST_F(TouchDispositionGestureFilterTest, TapCancelledWhenTouchConsumed) { |
- PushGesture(ET_GESTURE_TAP_DOWN); |
- PressTouchPoint(1, 1); |
+ SendPacket(PressTouchPoint(), Gestures(ET_GESTURE_TAP_DOWN)); |
SendTouchNotConsumedAck(); |
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_TAP_DOWN), |
GetAndResetSentGestures())); |
// If the subsequent touch is consumed, the tap should be cancelled. |
- PushGesture(ET_GESTURE_SCROLL_BEGIN); |
- MoveTouchPoint(0, 2, 2); |
+ GestureEventDataPacket packet; |
+ packet.Push(CreateGesture(ET_GESTURE_SCROLL_BEGIN, 2, 3, 0)); |
+ SendTouchGestures(MoveTouchPoint(), packet); |
+ |
SendTouchConsumedAck(); |
EXPECT_TRUE( |
GesturesMatch(Gestures(ET_GESTURE_TAP_CANCEL, ET_GESTURE_SCROLL_BEGIN), |
GetAndResetSentGestures())); |
- EXPECT_EQ(LastSentGestureLocation(), gfx::PointF(1, 1)); |
+ EXPECT_EQ(LastSentGestureLocation(), gfx::PointF(2, 3)); |
} |
TEST_F(TouchDispositionGestureFilterTest, |
TapNotCancelledIfTapEndingEventReceived) { |
- PushGesture(ET_GESTURE_TAP_DOWN); |
- PressTouchPoint(1, 1); |
+ SendPacket(PressTouchPoint(), Gestures(ET_GESTURE_TAP_DOWN)); |
SendTouchNotConsumedAck(); |
EXPECT_TRUE( |
GesturesMatch(Gestures(ET_GESTURE_TAP_DOWN), GetAndResetSentGestures())); |
- PushGesture(ET_GESTURE_TAP); |
- ReleaseTouchPoint(); |
+ SendPacket(ReleaseTouchPoint(), Gestures(ET_GESTURE_TAP)); |
SendTouchNotConsumedAck(); |
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_SHOW_PRESS, ET_GESTURE_TAP), |
GetAndResetSentGestures())); |
// The tap should not be cancelled as it was terminated by a |ET_GESTURE_TAP|. |
- PressTouchPoint(2, 2); |
+ SendPacket(PressTouchPoint(), NoGestures()); |
SendTouchConsumedAck(); |
EXPECT_FALSE(GesturesSent()); |
} |
@@ -782,8 +719,7 @@ TEST_F(TouchDispositionGestureFilterTest, |
TEST_F(TouchDispositionGestureFilterTest, TimeoutGestures) { |
// If the sequence is allowed, and there are no preceding gestures, the |
// timeout gestures should be forwarded immediately. |
- PushGesture(ET_GESTURE_TAP_DOWN); |
- PressTouchPoint(1, 1); |
+ SendPacket(PressTouchPoint(), Gestures(ET_GESTURE_TAP_DOWN)); |
SendTouchNotConsumedAck(); |
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_TAP_DOWN), |
GetAndResetSentGestures())); |
@@ -796,8 +732,7 @@ TEST_F(TouchDispositionGestureFilterTest, TimeoutGestures) { |
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_LONG_PRESS), |
GetAndResetSentGestures())); |
- PushGesture(ET_GESTURE_LONG_TAP); |
- ReleaseTouchPoint(); |
+ SendPacket(ReleaseTouchPoint(), Gestures(ET_GESTURE_LONG_TAP)); |
SendTouchNotConsumedAck(); |
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_TAP_CANCEL, |
ET_GESTURE_LONG_TAP), |
@@ -805,20 +740,18 @@ TEST_F(TouchDispositionGestureFilterTest, TimeoutGestures) { |
// If the sequence is disallowed, and there are no preceding gestures, the |
// timeout gestures should be dropped immediately. |
- PushGesture(ET_GESTURE_TAP_DOWN); |
- PressTouchPoint(1, 1); |
+ SendPacket(PressTouchPoint(), Gestures(ET_GESTURE_TAP_DOWN)); |
SendTouchConsumedAck(); |
EXPECT_FALSE(GesturesSent()); |
SendTimeoutGesture(ET_GESTURE_SHOW_PRESS); |
EXPECT_FALSE(GesturesSent()); |
- ReleaseTouchPoint(); |
+ SendPacket(ReleaseTouchPoint(), NoGestures()); |
SendTouchNotConsumedAck(); |
// If the sequence has a pending ack, the timeout gestures should |
// remain queued until the ack is received. |
- PushGesture(ET_GESTURE_TAP_DOWN); |
- PressTouchPoint(1, 1); |
+ SendPacket(PressTouchPoint(), Gestures(ET_GESTURE_TAP_DOWN)); |
EXPECT_FALSE(GesturesSent()); |
SendTimeoutGesture(ET_GESTURE_LONG_PRESS); |
@@ -836,10 +769,8 @@ TEST_F(TouchDispositionGestureFilterTest, SpuriousAcksIgnored) { |
SendTouchConsumedAck(); |
EXPECT_FALSE(GesturesSent()); |
- PushGesture(ET_GESTURE_SCROLL_BEGIN); |
- PressTouchPoint(1, 1); |
- PushGesture(ET_GESTURE_SCROLL_UPDATE); |
- MoveTouchPoint(0, 3,3); |
+ SendPacket(PressTouchPoint(), Gestures(ET_GESTURE_SCROLL_BEGIN)); |
+ SendPacket(MoveTouchPoint(), Gestures(ET_GESTURE_SCROLL_UPDATE)); |
SendTouchNotConsumedAck(); |
SendTouchNotConsumedAck(); |
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_SCROLL_BEGIN, |
@@ -869,16 +800,14 @@ TEST_F(TouchDispositionGestureFilterTest, PacketsWithInvalidOrderIgnored) { |
TEST_F(TouchDispositionGestureFilterTest, ConsumedTouchCancel) { |
// An unconsumed touch's gesture should be sent. |
- PushGesture(ET_GESTURE_TAP_DOWN); |
- PressTouchPoint(1, 1); |
+ SendPacket(PressTouchPoint(), Gestures(ET_GESTURE_TAP_DOWN)); |
EXPECT_FALSE(GesturesSent()); |
SendTouchNotConsumedAck(); |
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_TAP_DOWN), |
GetAndResetSentGestures())); |
- PushGesture(ET_GESTURE_TAP_CANCEL); |
- PushGesture(ET_GESTURE_SCROLL_END); |
- CancelTouchPoint(); |
+ SendPacket(CancelTouchPoint(), |
+ Gestures(ET_GESTURE_TAP_CANCEL, ET_GESTURE_SCROLL_END)); |
EXPECT_FALSE(GesturesSent()); |
SendTouchConsumedAck(); |
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_TAP_CANCEL, |
@@ -887,12 +816,11 @@ TEST_F(TouchDispositionGestureFilterTest, ConsumedTouchCancel) { |
} |
TEST_F(TouchDispositionGestureFilterTest, TimeoutEventAfterRelease) { |
- PressTouchPoint(1, 1); |
+ SendPacket(PressTouchPoint(), NoGestures()); |
SendTouchNotConsumedAck(); |
EXPECT_FALSE(GesturesSent()); |
- PushGesture(ET_GESTURE_TAP_DOWN); |
- PushGesture(ET_GESTURE_TAP_UNCONFIRMED); |
- ReleaseTouchPoint(); |
+ SendPacket(ReleaseTouchPoint(), |
+ Gestures(ET_GESTURE_TAP_DOWN, ET_GESTURE_TAP_UNCONFIRMED)); |
SendTouchNotConsumedAck(); |
EXPECT_TRUE( |
GesturesMatch(Gestures(ET_GESTURE_TAP_DOWN, ET_GESTURE_TAP_UNCONFIRMED), |
@@ -904,8 +832,7 @@ TEST_F(TouchDispositionGestureFilterTest, TimeoutEventAfterRelease) { |
} |
TEST_F(TouchDispositionGestureFilterTest, ShowPressInsertedBeforeTap) { |
- PushGesture(ET_GESTURE_TAP_DOWN); |
- PressTouchPoint(1, 1); |
+ SendPacket(PressTouchPoint(), Gestures(ET_GESTURE_TAP_DOWN)); |
SendTouchNotConsumedAck(); |
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_TAP_DOWN), |
GetAndResetSentGestures())); |
@@ -914,8 +841,7 @@ TEST_F(TouchDispositionGestureFilterTest, ShowPressInsertedBeforeTap) { |
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_TAP_UNCONFIRMED), |
GetAndResetSentGestures())); |
- PushGesture(ET_GESTURE_TAP); |
- ReleaseTouchPoint(); |
+ SendPacket(ReleaseTouchPoint(), Gestures(ET_GESTURE_TAP)); |
SendTouchNotConsumedAck(); |
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_SHOW_PRESS, |
ET_GESTURE_TAP), |
@@ -923,8 +849,7 @@ TEST_F(TouchDispositionGestureFilterTest, ShowPressInsertedBeforeTap) { |
} |
TEST_F(TouchDispositionGestureFilterTest, ShowPressNotInsertedIfAlreadySent) { |
- PushGesture(ET_GESTURE_TAP_DOWN); |
- PressTouchPoint(1, 1); |
+ SendPacket(PressTouchPoint(), Gestures(ET_GESTURE_TAP_DOWN)); |
SendTouchNotConsumedAck(); |
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_TAP_DOWN), |
GetAndResetSentGestures())); |
@@ -933,8 +858,7 @@ TEST_F(TouchDispositionGestureFilterTest, ShowPressNotInsertedIfAlreadySent) { |
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_SHOW_PRESS), |
GetAndResetSentGestures())); |
- PushGesture(ET_GESTURE_TAP); |
- ReleaseTouchPoint(); |
+ SendPacket(ReleaseTouchPoint(), Gestures(ET_GESTURE_TAP)); |
SendTouchNotConsumedAck(); |
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_TAP), |
GetAndResetSentGestures())); |
@@ -944,14 +868,13 @@ TEST_F(TouchDispositionGestureFilterTest, TapAndScrollCancelledOnTouchCancel) { |
const gfx::Vector2dF raw_offset(1.3f, 3.7f); |
SetRawTouchOffset(raw_offset); |
- PushGesture(ET_GESTURE_TAP_DOWN); |
- PressTouchPoint(1, 1); |
+ SendPacket(PressTouchPoint(1, 1), Gestures(ET_GESTURE_TAP_DOWN)); |
SendTouchNotConsumedAck(); |
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_TAP_DOWN), |
GetAndResetSentGestures())); |
// A cancellation motion event should cancel the tap. |
- CancelTouchPoint(); |
+ SendPacket(CancelTouchPoint(), NoGestures()); |
SendTouchNotConsumedAck(); |
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_TAP_CANCEL), |
GetAndResetSentGestures())); |
@@ -959,15 +882,14 @@ TEST_F(TouchDispositionGestureFilterTest, TapAndScrollCancelledOnTouchCancel) { |
EXPECT_EQ(LastSentGestureLocation(), gfx::PointF(1, 1)); |
EXPECT_EQ(LastSentGestureRawLocation(), gfx::PointF(1, 1) + raw_offset); |
- PushGesture(ET_GESTURE_SCROLL_BEGIN); |
- PressTouchPoint(1, 1); |
+ SendPacket(PressTouchPoint(1, 1), Gestures(ET_GESTURE_SCROLL_BEGIN)); |
SendTouchNotConsumedAck(); |
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_SCROLL_BEGIN), |
GetAndResetSentGestures())); |
// A cancellation motion event should end the scroll, even if the touch was |
// consumed. |
- CancelTouchPoint(); |
+ SendPacket(CancelTouchPoint(), NoGestures()); |
SendTouchConsumedAck(); |
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_SCROLL_END), |
GetAndResetSentGestures())); |
@@ -979,59 +901,58 @@ TEST_F(TouchDispositionGestureFilterTest, TapAndScrollCancelledOnTouchCancel) { |
TEST_F(TouchDispositionGestureFilterTest, |
ConsumedScrollUpdateMakesFlingScrollEnd) { |
// A consumed touch's gesture should not be sent. |
- PushGesture(ET_GESTURE_BEGIN); |
- PushGesture(ET_GESTURE_SCROLL_BEGIN); |
- PressTouchPoint(1, 1); |
+ SendPacket(PressTouchPoint(), |
+ Gestures(ET_GESTURE_BEGIN, ET_GESTURE_SCROLL_BEGIN)); |
SendTouchNotConsumedAck(); |
EXPECT_TRUE( |
GesturesMatch(Gestures(ET_GESTURE_BEGIN, ET_GESTURE_SCROLL_BEGIN), |
GetAndResetSentGestures())); |
- PushGesture(ET_GESTURE_SCROLL_UPDATE); |
- MoveTouchPoint(0, 2, 2); |
+ SendPacket(MoveTouchPoint(), Gestures(ET_GESTURE_SCROLL_UPDATE)); |
SendTouchConsumedAck(); |
EXPECT_FALSE(GesturesSent()); |
- PushGesture(ET_SCROLL_FLING_START); |
- PushGesture(ET_SCROLL_FLING_CANCEL); |
- PushGesture(ET_GESTURE_END); |
- ReleaseTouchPoint(); |
+ GestureEventDataPacket packet; |
+ packet.Push(CreateGesture(ET_SCROLL_FLING_START)); |
+ packet.Push(CreateGesture(ET_SCROLL_FLING_CANCEL)); |
+ packet.Push(CreateGesture(ET_GESTURE_END, 2, 3, 0)); |
+ SendTouchGestures(ReleaseTouchPoint(), packet); |
+ |
SendTouchNotConsumedAck(); |
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_SCROLL_END, ET_GESTURE_END), |
GetAndResetSentGestures())); |
- EXPECT_EQ(LastSentGestureLocation(), gfx::PointF(2, 2)); |
+ EXPECT_EQ(LastSentGestureLocation(), gfx::PointF(2, 3)); |
- PushGesture(ET_GESTURE_BEGIN); |
- PushGesture(ET_GESTURE_SCROLL_BEGIN); |
- PressTouchPoint(1, 1); |
+ SendPacket(PressTouchPoint(), |
+ Gestures(ET_GESTURE_BEGIN, ET_GESTURE_SCROLL_BEGIN)); |
SendTouchNotConsumedAck(); |
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_BEGIN, ET_GESTURE_SCROLL_BEGIN), |
GetAndResetSentGestures())); |
} |
TEST_F(TouchDispositionGestureFilterTest, TapCancelledOnTouchCancel) { |
- PushGesture(ET_GESTURE_TAP_DOWN); |
- PressTouchPoint(1, 1); |
+ // Touch position is used for synthesized tap cancel. |
+ SendPacket(PressTouchPoint(2, 3), Gestures(ET_GESTURE_TAP_DOWN)); |
SendTouchNotConsumedAck(); |
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_TAP_DOWN), |
GetAndResetSentGestures())); |
// A cancellation motion event should cancel the tap. |
- CancelTouchPoint(); |
+ SendPacket(CancelTouchPoint(), NoGestures()); |
SendTouchNotConsumedAck(); |
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_TAP_CANCEL), |
GetAndResetSentGestures())); |
EXPECT_EQ(CurrentTouchTime(), LastSentGestureTime()); |
- EXPECT_EQ(LastSentGestureLocation(), gfx::PointF(1, 1)); |
+ EXPECT_EQ(LastSentGestureLocation(), gfx::PointF(2, 3)); |
} |
// Test that a GestureEvent whose dispatch causes a cancel event to be fired |
// won't cause a crash. |
TEST_F(TouchDispositionGestureFilterTest, TestCancelMidGesture) { |
SetCancelAfterNextGesture(true); |
- PushGesture(ET_GESTURE_TAP_DOWN); |
- PressTouchPoint(1, 1); |
+ // Synthesized tap cancel uses touch position. |
+ SendPacket(PressTouchPoint(1, 1), Gestures(ET_GESTURE_TAP_DOWN)); |
SendTouchNotConsumedAck(); |
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_TAP_DOWN, |
ET_GESTURE_TAP_CANCEL), |
@@ -1041,20 +962,17 @@ TEST_F(TouchDispositionGestureFilterTest, TestCancelMidGesture) { |
// Test that a MultiFingerSwipe event is dispatched when appropriate. |
TEST_F(TouchDispositionGestureFilterTest, TestAllowedMultiFingerSwipe) { |
- PushGesture(ET_GESTURE_SCROLL_BEGIN); |
- PressTouchPoint(1, 1); |
+ SendPacket(PressTouchPoint(), Gestures(ET_GESTURE_SCROLL_BEGIN)); |
SendTouchNotConsumedAck(); |
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_SCROLL_BEGIN), |
GetAndResetSentGestures())); |
- PushGesture(ET_GESTURE_PINCH_BEGIN); |
- PressTouchPoint(1, 1); |
+ SendPacket(PressTouchPoint(), Gestures(ET_GESTURE_PINCH_BEGIN)); |
SendTouchNotConsumedAck(); |
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_PINCH_BEGIN), |
GetAndResetSentGestures())); |
- PushGesture(ET_GESTURE_SWIPE); |
- PressTouchPoint(1, 1); |
+ SendPacket(PressTouchPoint(), Gestures(ET_GESTURE_SWIPE)); |
SendTouchNotConsumedAck(); |
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_SWIPE), |
GetAndResetSentGestures())); |
@@ -1062,49 +980,49 @@ TEST_F(TouchDispositionGestureFilterTest, TestAllowedMultiFingerSwipe) { |
// Test that a MultiFingerSwipe event is dispatched when appropriate. |
TEST_F(TouchDispositionGestureFilterTest, TestDisallowedMultiFingerSwipe) { |
- PressTouchPoint(1, 1); |
+ SendPacket(PressTouchPoint(), NoGestures()); |
SendTouchNotConsumedAck(); |
- PushGesture(ET_GESTURE_SCROLL_BEGIN); |
- MoveTouchPoint(0, 0, 0); |
+ SendPacket(MoveTouchPoint(), Gestures(ET_GESTURE_SCROLL_BEGIN)); |
SendTouchConsumedAck(); |
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_SCROLL_BEGIN), |
GetAndResetSentGestures())); |
- PushGesture(ET_GESTURE_PINCH_BEGIN); |
- PressTouchPoint(1, 1); |
+ SendPacket(PressTouchPoint(), Gestures(ET_GESTURE_PINCH_BEGIN)); |
SendTouchNotConsumedAck(); |
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_PINCH_BEGIN), |
GetAndResetSentGestures())); |
- PushGesture(ET_GESTURE_SWIPE); |
- PressTouchPoint(1, 1); |
+ SendPacket(PressTouchPoint(), Gestures(ET_GESTURE_SWIPE)); |
SendTouchConsumedAck(); |
EXPECT_FALSE(GesturesSent()); |
} |
TEST_F(TouchDispositionGestureFilterTest, TapCancelOnSecondFingerDown) { |
- PushGesture(ET_GESTURE_TAP_DOWN); |
- PressTouchPoint(1, 1); |
+ SendPacket(PressTouchPoint(), Gestures(ET_GESTURE_TAP_DOWN)); |
SendTouchNotConsumedAck(); |
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_TAP_DOWN), |
GetAndResetSentGestures())); |
- PressTouchPoint(1, 1); |
+ SendPacket(PressTouchPoint(), NoGestures()); |
SendTouchNotConsumedAck(); |
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_TAP_CANCEL), |
GetAndResetSentGestures())); |
} |
TEST_F(TouchDispositionGestureFilterTest, ShowPressBoundingBox) { |
- PushGesture(ET_GESTURE_TAP_DOWN, 9, 9, 8); |
- PressTouchPoint(9, 9); |
+ GestureEventDataPacket press_packet; |
+ press_packet.Push(CreateGesture(ET_GESTURE_TAP_DOWN, 9, 9, 8)); |
+ SendTouchGestures(PressTouchPoint(), press_packet); |
+ |
SendTouchNotConsumedAck(); |
EXPECT_TRUE( |
GesturesMatch(Gestures(ET_GESTURE_TAP_DOWN), GetAndResetSentGestures())); |
- PushGesture(ET_GESTURE_TAP, 10, 10, 10); |
- ReleaseTouchPoint(); |
+ GestureEventDataPacket release_packet; |
+ release_packet.Push(CreateGesture(ET_GESTURE_TAP, 10, 10, 10)); |
+ SendTouchGestures(ReleaseTouchPoint(), release_packet); |
+ |
SendTouchNotConsumedAck(); |
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_SHOW_PRESS, ET_GESTURE_TAP), |
GetAndResetSentGestures())); |
@@ -1112,9 +1030,8 @@ TEST_F(TouchDispositionGestureFilterTest, ShowPressBoundingBox) { |
} |
TEST_F(TouchDispositionGestureFilterTest, TapCancelledBeforeGestureEnd) { |
- PushGesture(ET_GESTURE_BEGIN); |
- PushGesture(ET_GESTURE_TAP_DOWN); |
- PressTouchPoint(1, 1); |
+ SendPacket(PressTouchPoint(), |
+ Gestures(ET_GESTURE_BEGIN, ET_GESTURE_TAP_DOWN)); |
SendTouchNotConsumedAck(); |
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_BEGIN, ET_GESTURE_TAP_DOWN), |
GetAndResetSentGestures())); |
@@ -1125,8 +1042,7 @@ TEST_F(TouchDispositionGestureFilterTest, TapCancelledBeforeGestureEnd) { |
SendTimeoutGesture(ET_GESTURE_LONG_PRESS); |
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_LONG_PRESS), |
GetAndResetSentGestures())); |
- PushGesture(ET_GESTURE_END); |
- CancelTouchPoint(); |
+ SendPacket(CancelTouchPoint(), Gestures(ET_GESTURE_END)); |
SendTouchNotConsumedAck(); |
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_TAP_CANCEL, ET_GESTURE_END), |
GetAndResetSentGestures())); |
@@ -1134,15 +1050,14 @@ TEST_F(TouchDispositionGestureFilterTest, TapCancelledBeforeGestureEnd) { |
TEST_F(TouchDispositionGestureFilterTest, EventFlagPropagation) { |
// Real gestures should propagate flags from their causal touches. |
- PushGesture(ET_GESTURE_TAP_DOWN); |
- PressTouchPoint(1, 1); |
+ SendPacket(PressTouchPoint(), Gestures(ET_GESTURE_TAP_DOWN)); |
SendTouchNotConsumedAck(); |
EXPECT_TRUE( |
GesturesMatch(Gestures(ET_GESTURE_TAP_DOWN), GetAndResetSentGestures())); |
EXPECT_EQ(kDefaultEventFlags, LastSentGestureFlags()); |
// Synthetic gestures lack flags. |
- PressTouchPoint(1, 1); |
+ SendPacket(PressTouchPoint(), NoGestures()); |
SendTouchNotConsumedAck(); |
EXPECT_TRUE(GesturesMatch(Gestures(ET_GESTURE_TAP_CANCEL), |
GetAndResetSentGestures())); |
@@ -1151,8 +1066,7 @@ TEST_F(TouchDispositionGestureFilterTest, EventFlagPropagation) { |
TEST_F(TouchDispositionGestureFilterTest, PreviousScrollPrevented) { |
- PushGesture(ET_GESTURE_BEGIN); |
- PressTouchPoint(1, 1); |
+ SendPacket(PressTouchPoint(), Gestures(ET_GESTURE_BEGIN)); |
EXPECT_FALSE(GesturesSent()); |
SendTouchNotConsumedAck(); |
EXPECT_TRUE( |
@@ -1160,29 +1074,25 @@ TEST_F(TouchDispositionGestureFilterTest, PreviousScrollPrevented) { |
// The sent scroll update should always reflect whether any preceding scroll |
// update has been dropped. |
- PushGesture(ET_GESTURE_SCROLL_UPDATE); |
- MoveTouchPoint(0, 2, 2); |
+ SendPacket(MoveTouchPoint(), Gestures(ET_GESTURE_SCROLL_UPDATE)); |
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); |
+ SendPacket(MoveTouchPoint(), Gestures(ET_GESTURE_SCROLL_UPDATE)); |
SendTouchConsumedAck(); |
EXPECT_FALSE(GesturesSent()); |
- PushGesture(ET_GESTURE_SCROLL_UPDATE); |
- MoveTouchPoint(0, 2, 2); |
+ SendPacket(MoveTouchPoint(), Gestures(ET_GESTURE_SCROLL_UPDATE)); |
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); |
+ SendPacket(MoveTouchPoint(), Gestures(ET_GESTURE_SCROLL_UPDATE)); |
SendTouchNotConsumedAck(); |
ASSERT_TRUE(GesturesSent()); |
EXPECT_TRUE(last_sent_gesture() |