Index: content/browser/renderer_host/input/gesture_event_queue_unittest.cc |
diff --git a/content/browser/renderer_host/input/gesture_event_queue_unittest.cc b/content/browser/renderer_host/input/gesture_event_queue_unittest.cc |
index a0ebb1a6184407607b353ca4c85dc1565951835d..0bc3879a367c762ab69411af906855cdab8d7bb2 100644 |
--- a/content/browser/renderer_host/input/gesture_event_queue_unittest.cc |
+++ b/content/browser/renderer_host/input/gesture_event_queue_unittest.cc |
@@ -173,9 +173,7 @@ class GestureEventQueueTest : public testing::Test, |
return queue()->scrolling_in_progress_; |
} |
- bool FlingInProgress() { |
- return queue()->fling_in_progress_; |
- } |
+ int ActiveFlingCount() { return queue()->active_fling_count_; } |
bool WillIgnoreNextACK() { |
return queue()->ignore_next_ack_; |
@@ -962,15 +960,43 @@ TEST_P(GestureEventQueueWithSourceTest, GestureFlingCancelsFiltered) { |
EXPECT_EQ(0U, GetAndResetSentGestureEventCount()); |
EXPECT_EQ(0U, GestureEventQueueSize()); |
+ // GFC after unconsumed fling is dropped. |
+ SimulateGestureEvent(WebInputEvent::GestureFlingStart, source_device); |
+ SendInputEventACK(WebInputEvent::GestureFlingStart, |
+ INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
+ EXPECT_EQ(1U, GetAndResetSentGestureEventCount()); |
+ EXPECT_EQ(1U, GetAndResetAckedGestureEventCount()); |
+ EXPECT_EQ(0U, GestureEventQueueSize()); |
+ SimulateGestureEvent(WebInputEvent::GestureFlingCancel, source_device); |
+ EXPECT_EQ(0U, GetAndResetSentGestureEventCount()); |
+ EXPECT_EQ(0U, GestureEventQueueSize()); |
+ |
+ // GFC after fling has ended is dropped. |
+ SimulateGestureEvent(WebInputEvent::GestureFlingStart, source_device); |
+ SendInputEventACK(WebInputEvent::GestureFlingStart, |
+ INPUT_EVENT_ACK_STATE_CONSUMED); |
+ EXPECT_EQ(1U, GetAndResetSentGestureEventCount()); |
+ EXPECT_EQ(0U, GestureEventQueueSize()); |
+ EXPECT_EQ(1U, GetAndResetAckedGestureEventCount()); |
+ |
+ EXPECT_EQ(1, ActiveFlingCount()); |
+ queue()->DidStopFlinging(); |
+ EXPECT_EQ(0, ActiveFlingCount()); |
+ |
+ SimulateGestureEvent(WebInputEvent::GestureFlingCancel, source_device); |
+ EXPECT_EQ(0U, GetAndResetSentGestureEventCount()); |
+ EXPECT_EQ(0U, GestureEventQueueSize()); |
+ |
// GFC after previous GFS is dispatched and acked. |
SimulateGestureFlingStartEvent(0, -10, source_device); |
- EXPECT_TRUE(FlingInProgress()); |
SendInputEventACK(WebInputEvent::GestureFlingStart, |
INPUT_EVENT_ACK_STATE_CONSUMED); |
+ EXPECT_EQ(1, ActiveFlingCount()); |
RunUntilIdle(); |
EXPECT_EQ(1U, GetAndResetAckedGestureEventCount()); |
SimulateGestureEvent(WebInputEvent::GestureFlingCancel, source_device); |
- EXPECT_FALSE(FlingInProgress()); |
+ queue()->DidStopFlinging(); |
+ EXPECT_EQ(0, ActiveFlingCount()); |
EXPECT_EQ(2U, GetAndResetSentGestureEventCount()); |
SendInputEventACK(WebInputEvent::GestureFlingCancel, |
INPUT_EVENT_ACK_STATE_CONSUMED); |
@@ -980,9 +1006,7 @@ TEST_P(GestureEventQueueWithSourceTest, GestureFlingCancelsFiltered) { |
// GFC before previous GFS is acked. |
SimulateGestureFlingStartEvent(0, -10, source_device); |
- EXPECT_TRUE(FlingInProgress()); |
SimulateGestureEvent(WebInputEvent::GestureFlingCancel, source_device); |
- EXPECT_FALSE(FlingInProgress()); |
EXPECT_EQ(1U, GetAndResetSentGestureEventCount()); |
EXPECT_EQ(2U, GestureEventQueueSize()); |
@@ -1005,40 +1029,34 @@ TEST_P(GestureEventQueueWithSourceTest, GestureFlingCancelsFiltered) { |
EXPECT_EQ(1U, GetAndResetSentGestureEventCount()); |
WebGestureEvent merged_event = GestureEventLastQueueEvent(); |
EXPECT_EQ(WebInputEvent::GestureFlingStart, merged_event.type); |
- EXPECT_TRUE(FlingInProgress()); |
EXPECT_EQ(2U, GestureEventQueueSize()); |
// GFS in queue means that a GFC is added to the queue |
SimulateGestureEvent(WebInputEvent::GestureFlingCancel, source_device); |
merged_event =GestureEventLastQueueEvent(); |
EXPECT_EQ(WebInputEvent::GestureFlingCancel, merged_event.type); |
- EXPECT_FALSE(FlingInProgress()); |
EXPECT_EQ(3U, GestureEventQueueSize()); |
// Adding a second GFC is dropped. |
SimulateGestureEvent(WebInputEvent::GestureFlingCancel, source_device); |
- EXPECT_FALSE(FlingInProgress()); |
EXPECT_EQ(3U, GestureEventQueueSize()); |
// Adding another GFS will add it to the queue. |
SimulateGestureFlingStartEvent(0, -10, source_device); |
merged_event = GestureEventLastQueueEvent(); |
EXPECT_EQ(WebInputEvent::GestureFlingStart, merged_event.type); |
- EXPECT_TRUE(FlingInProgress()); |
EXPECT_EQ(4U, GestureEventQueueSize()); |
// GFS in queue means that a GFC is added to the queue |
SimulateGestureEvent(WebInputEvent::GestureFlingCancel, source_device); |
merged_event = GestureEventLastQueueEvent(); |
EXPECT_EQ(WebInputEvent::GestureFlingCancel, merged_event.type); |
- EXPECT_FALSE(FlingInProgress()); |
EXPECT_EQ(5U, GestureEventQueueSize()); |
// Adding another GFC with a GFC already there is dropped. |
SimulateGestureEvent(WebInputEvent::GestureFlingCancel, source_device); |
merged_event = GestureEventLastQueueEvent(); |
EXPECT_EQ(WebInputEvent::GestureFlingCancel, merged_event.type); |
- EXPECT_FALSE(FlingInProgress()); |
EXPECT_EQ(5U, GestureEventQueueSize()); |
} |