Index: content/browser/renderer_host/input/synthetic_gesture_controller_unittest.cc |
diff --git a/content/browser/renderer_host/input/synthetic_gesture_controller_unittest.cc b/content/browser/renderer_host/input/synthetic_gesture_controller_unittest.cc |
index e7a9f9dc5b6a451540e325200803fc1dc27d3c9c..550e5a26edfe629ed160558bf794e99862080efe 100644 |
--- a/content/browser/renderer_host/input/synthetic_gesture_controller_unittest.cc |
+++ b/content/browser/renderer_host/input/synthetic_gesture_controller_unittest.cc |
@@ -385,9 +385,12 @@ class SyntheticGestureControllerTest : public testing::Test { |
void FlushInputUntilComplete() { |
while (target_->flush_requested()) { |
- target_->ClearFlushRequest(); |
- time_ += base::TimeDelta::FromMilliseconds(kFlushInputRateInMs); |
- controller_->Flush(time_); |
+ while (target_->flush_requested()) { |
+ target_->ClearFlushRequest(); |
+ time_ += base::TimeDelta::FromMilliseconds(kFlushInputRateInMs); |
+ controller_->Flush(time_); |
+ } |
+ controller_->OnDidFlushInput(); |
} |
} |
@@ -483,6 +486,37 @@ TEST_F(SyntheticGestureControllerTest, TwoGesturesInFlight) { |
EXPECT_EQ(0, num_failure_); |
} |
+TEST_F(SyntheticGestureControllerTest, GestureCompletedOnDidFlushInput) { |
+ CreateControllerAndTarget<MockSyntheticGestureTarget>(); |
+ |
+ bool finished_1, finished_2; |
+ scoped_ptr<MockSyntheticGesture> gesture_1( |
+ new MockSyntheticGesture(&finished_1, 2)); |
+ scoped_ptr<MockSyntheticGesture> gesture_2( |
+ new MockSyntheticGesture(&finished_2, 4)); |
+ |
+ QueueSyntheticGesture(gesture_1.PassAs<SyntheticGesture>()); |
+ QueueSyntheticGesture(gesture_2.PassAs<SyntheticGesture>()); |
+ |
+ while (target_->flush_requested()) { |
+ target_->ClearFlushRequest(); |
+ time_ += base::TimeDelta::FromMilliseconds(kFlushInputRateInMs); |
+ controller_->Flush(time_); |
+ } |
+ EXPECT_EQ(0, num_success_); |
+ controller_->OnDidFlushInput(); |
+ EXPECT_EQ(1, num_success_); |
+ |
+ while (target_->flush_requested()) { |
+ target_->ClearFlushRequest(); |
+ time_ += base::TimeDelta::FromMilliseconds(kFlushInputRateInMs); |
+ controller_->Flush(time_); |
+ } |
+ EXPECT_EQ(1, num_success_); |
+ controller_->OnDidFlushInput(); |
+ EXPECT_EQ(2, num_success_); |
+} |
+ |
gfx::Vector2d AddTouchSlopToVector(const gfx::Vector2d& vector, |
SyntheticGestureTarget* target) { |
const int kTouchSlop = target->GetTouchSlopInDips(); |