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

Unified Diff: content/browser/renderer_host/input/synthetic_gesture_controller_unittest.cc

Issue 217163006: Defer synthetic gesture completions until events have been flushed (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Restore browser test Created 6 years, 9 months 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: 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();

Powered by Google App Engine
This is Rietveld 408576698