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

Side by Side Diff: content/browser/renderer_host/input/tap_suppression_controller_unittest.cc

Issue 235003005: Consolidate all touch/gesture related constants in content (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Cleanup Created 6 years, 7 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 unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/basictypes.h" 5 #include "base/basictypes.h"
6 #include "base/memory/scoped_ptr.h" 6 #include "base/memory/scoped_ptr.h"
7 #include "content/browser/renderer_host/input/tap_suppression_controller.h" 7 #include "content/browser/renderer_host/input/tap_suppression_controller.h"
8 #include "content/browser/renderer_host/input/tap_suppression_controller_client. h" 8 #include "content/browser/renderer_host/input/tap_suppression_controller_client. h"
9 #include "testing/gtest/include/gtest/gtest.h" 9 #include "testing/gtest/include/gtest/gtest.h"
10 10
11 using base::TimeDelta; 11 using base::TimeDelta;
12 12
13 namespace content { 13 namespace content {
14 14
15 class MockTapSuppressionController : public TapSuppressionController, 15 class MockTapSuppressionController : public TapSuppressionController,
16 public TapSuppressionControllerClient { 16 public TapSuppressionControllerClient {
17 public: 17 public:
18 using TapSuppressionController::DISABLED;
18 using TapSuppressionController::NOTHING; 19 using TapSuppressionController::NOTHING;
19 using TapSuppressionController::GFC_IN_PROGRESS; 20 using TapSuppressionController::GFC_IN_PROGRESS;
20 using TapSuppressionController::TAP_DOWN_STASHED; 21 using TapSuppressionController::TAP_DOWN_STASHED;
21 using TapSuppressionController::LAST_CANCEL_STOPPED_FLING; 22 using TapSuppressionController::LAST_CANCEL_STOPPED_FLING;
22 23
23 enum Action { 24 enum Action {
24 NONE = 0, 25 NONE = 0,
25 TAP_DOWN_DEFERRED = 1 << 0, 26 TAP_DOWN_DEFERRED = 1 << 0,
26 TAP_DOWN_FORWARDED = 1 << 1, 27 TAP_DOWN_FORWARDED = 1 << 1,
27 TAP_DOWN_DROPPED = 1 << 2, 28 TAP_DOWN_DROPPED = 1 << 2,
28 TAP_UP_SUPPRESSED = 1 << 3, 29 TAP_UP_SUPPRESSED = 1 << 3,
29 TAP_UP_FORWARDED = 1 << 4, 30 TAP_UP_FORWARDED = 1 << 4,
30 TAP_CANCEL_SUPPRESSED = 1 << 5, 31 TAP_CANCEL_SUPPRESSED = 1 << 5,
31 TAP_CANCEL_FORWARDED = 1 << 6, 32 TAP_CANCEL_FORWARDED = 1 << 6,
32 STASHED_TAP_DOWN_FORWARDED = 1 << 7, 33 STASHED_TAP_DOWN_FORWARDED = 1 << 7,
33 }; 34 };
34 35
35 MockTapSuppressionController() 36 MockTapSuppressionController(const TapSuppressionController::Config& config)
36 : TapSuppressionController(this), 37 : TapSuppressionController(this, config),
37 max_cancel_to_down_time_in_ms_(1),
38 max_tap_gap_time_in_ms_(1),
39 last_actions_(NONE), 38 last_actions_(NONE),
40 time_(), 39 time_(),
41 timer_started_(false) { 40 timer_started_(false) {
42 } 41 }
43 42
44 virtual ~MockTapSuppressionController() {} 43 virtual ~MockTapSuppressionController() {}
45 44
46 void SendGestureFlingCancel() { 45 void SendGestureFlingCancel() {
47 last_actions_ = NONE; 46 last_actions_ = NONE;
48 GestureFlingCancel(); 47 GestureFlingCancel();
(...skipping 30 matching lines...) Expand all
79 78
80 void AdvanceTime(const base::TimeDelta& delta) { 79 void AdvanceTime(const base::TimeDelta& delta) {
81 last_actions_ = NONE; 80 last_actions_ = NONE;
82 time_ += delta; 81 time_ += delta;
83 if (timer_started_ && time_ >= timer_expiry_time_) { 82 if (timer_started_ && time_ >= timer_expiry_time_) {
84 timer_started_ = false; 83 timer_started_ = false;
85 TapDownTimerExpired(); 84 TapDownTimerExpired();
86 } 85 }
87 } 86 }
88 87
89 void set_max_cancel_to_down_time_in_ms(int val) {
90 max_cancel_to_down_time_in_ms_ = val;
91 }
92
93 void set_max_tap_gap_time_in_ms(int val) {
94 max_tap_gap_time_in_ms_ = val;
95 }
96
97 State state() { return state_; } 88 State state() { return state_; }
98 89
99 int last_actions() { return last_actions_; } 90 int last_actions() { return last_actions_; }
100 91
101 protected: 92 protected:
102 virtual base::TimeTicks Now() OVERRIDE { 93 virtual base::TimeTicks Now() OVERRIDE {
103 return time_; 94 return time_;
104 } 95 }
105 96
106 virtual void StartTapDownTimer(const base::TimeDelta& delay) OVERRIDE { 97 virtual void StartTapDownTimer(const base::TimeDelta& delay) OVERRIDE {
107 timer_expiry_time_ = time_ + delay; 98 timer_expiry_time_ = time_ + delay;
108 timer_started_ = true; 99 timer_started_ = true;
109 } 100 }
110 101
111 virtual void StopTapDownTimer() OVERRIDE { 102 virtual void StopTapDownTimer() OVERRIDE {
112 timer_started_ = false; 103 timer_started_ = false;
113 } 104 }
114 105
115 private: 106 private:
116 // TapSuppressionControllerClient implementation 107 // TapSuppressionControllerClient implementation
117 virtual int MaxCancelToDownTimeInMs() OVERRIDE {
118 return max_cancel_to_down_time_in_ms_;
119 }
120
121 virtual int MaxTapGapTimeInMs() OVERRIDE {
122 return max_tap_gap_time_in_ms_;
123 }
124
125 virtual void DropStashedTapDown() OVERRIDE { 108 virtual void DropStashedTapDown() OVERRIDE {
126 last_actions_ |= TAP_DOWN_DROPPED; 109 last_actions_ |= TAP_DOWN_DROPPED;
127 } 110 }
128 111
129 virtual void ForwardStashedTapDown() OVERRIDE { 112 virtual void ForwardStashedTapDown() OVERRIDE {
130 last_actions_ |= STASHED_TAP_DOWN_FORWARDED; 113 last_actions_ |= STASHED_TAP_DOWN_FORWARDED;
131 } 114 }
132 115
133 // Hiding some derived public methods 116 // Hiding some derived public methods
134 using TapSuppressionController::GestureFlingCancel; 117 using TapSuppressionController::GestureFlingCancel;
135 using TapSuppressionController::GestureFlingCancelAck; 118 using TapSuppressionController::GestureFlingCancelAck;
136 using TapSuppressionController::ShouldDeferTapDown; 119 using TapSuppressionController::ShouldDeferTapDown;
137 using TapSuppressionController::ShouldSuppressTapEnd; 120 using TapSuppressionController::ShouldSuppressTapEnd;
138 121
139 int max_cancel_to_down_time_in_ms_;
140 int max_tap_gap_time_in_ms_;
141
142 int last_actions_; 122 int last_actions_;
143 123
144 base::TimeTicks time_; 124 base::TimeTicks time_;
145 bool timer_started_; 125 bool timer_started_;
146 base::TimeTicks timer_expiry_time_; 126 base::TimeTicks timer_expiry_time_;
147 127
148 DISALLOW_COPY_AND_ASSIGN(MockTapSuppressionController); 128 DISALLOW_COPY_AND_ASSIGN(MockTapSuppressionController);
149 }; 129 };
150 130
151 class TapSuppressionControllerTest : public testing::Test { 131 class TapSuppressionControllerTest : public testing::Test {
152 public: 132 public:
153 TapSuppressionControllerTest() { 133 TapSuppressionControllerTest() {
154 } 134 }
155 virtual ~TapSuppressionControllerTest() { 135 virtual ~TapSuppressionControllerTest() {
156 } 136 }
157 137
158 protected: 138 protected:
159 // testing::Test 139 // testing::Test
160 virtual void SetUp() { 140 virtual void SetUp() {
161 tap_suppression_controller_.reset(new MockTapSuppressionController()); 141 tap_suppression_controller_.reset(
142 new MockTapSuppressionController(GetConfig()));
162 } 143 }
163 144
164 virtual void TearDown() { 145 virtual void TearDown() {
165 tap_suppression_controller_.reset(); 146 tap_suppression_controller_.reset();
166 } 147 }
167 148
149 static TapSuppressionController::Config GetConfig() {
150 TapSuppressionController::Config config;
151 config.enabled = true;
152 config.max_cancel_to_down_time = base::TimeDelta::FromMilliseconds(10);
153 config.max_tap_gap_time = base::TimeDelta::FromMilliseconds(10);
154 return config;
155 }
156
168 scoped_ptr<MockTapSuppressionController> tap_suppression_controller_; 157 scoped_ptr<MockTapSuppressionController> tap_suppression_controller_;
169 }; 158 };
170 159
171 // Test TapSuppressionController for when GestureFlingCancel Ack comes before 160 // Test TapSuppressionController for when GestureFlingCancel Ack comes before
172 // TapDown and everything happens without any delays. 161 // TapDown and everything happens without any delays.
173 TEST_F(TapSuppressionControllerTest, GFCAckBeforeTapFast) { 162 TEST_F(TapSuppressionControllerTest, GFCAckBeforeTapFast) {
174 tap_suppression_controller_->set_max_cancel_to_down_time_in_ms(10);
175 tap_suppression_controller_->set_max_tap_gap_time_in_ms(10);
176
177 // Send GestureFlingCancel. 163 // Send GestureFlingCancel.
178 tap_suppression_controller_->SendGestureFlingCancel(); 164 tap_suppression_controller_->SendGestureFlingCancel();
179 EXPECT_EQ(MockTapSuppressionController::NONE, 165 EXPECT_EQ(MockTapSuppressionController::NONE,
180 tap_suppression_controller_->last_actions()); 166 tap_suppression_controller_->last_actions());
181 EXPECT_EQ(MockTapSuppressionController::GFC_IN_PROGRESS, 167 EXPECT_EQ(MockTapSuppressionController::GFC_IN_PROGRESS,
182 tap_suppression_controller_->state()); 168 tap_suppression_controller_->state());
183 169
184 // Send GestureFlingCancel Ack. 170 // Send GestureFlingCancel Ack.
185 tap_suppression_controller_->SendGestureFlingCancelAck(true); 171 tap_suppression_controller_->SendGestureFlingCancelAck(true);
186 EXPECT_EQ(MockTapSuppressionController::NONE, 172 EXPECT_EQ(MockTapSuppressionController::NONE,
(...skipping 13 matching lines...) Expand all
200 EXPECT_EQ(MockTapSuppressionController::TAP_UP_SUPPRESSED | 186 EXPECT_EQ(MockTapSuppressionController::TAP_UP_SUPPRESSED |
201 MockTapSuppressionController::TAP_DOWN_DROPPED, 187 MockTapSuppressionController::TAP_DOWN_DROPPED,
202 tap_suppression_controller_->last_actions()); 188 tap_suppression_controller_->last_actions());
203 EXPECT_EQ(MockTapSuppressionController::NOTHING, 189 EXPECT_EQ(MockTapSuppressionController::NOTHING,
204 tap_suppression_controller_->state()); 190 tap_suppression_controller_->state());
205 } 191 }
206 192
207 // Test TapSuppressionController for when GestureFlingCancel Ack comes before 193 // Test TapSuppressionController for when GestureFlingCancel Ack comes before
208 // TapDown, but there is a small delay between TapDown and TapUp. 194 // TapDown, but there is a small delay between TapDown and TapUp.
209 TEST_F(TapSuppressionControllerTest, GFCAckBeforeTapInsufficientlyLateTapUp) { 195 TEST_F(TapSuppressionControllerTest, GFCAckBeforeTapInsufficientlyLateTapUp) {
210 tap_suppression_controller_->set_max_cancel_to_down_time_in_ms(10);
211 tap_suppression_controller_->set_max_tap_gap_time_in_ms(10);
212
213 // Send GestureFlingCancel. 196 // Send GestureFlingCancel.
214 tap_suppression_controller_->SendGestureFlingCancel(); 197 tap_suppression_controller_->SendGestureFlingCancel();
215 EXPECT_EQ(MockTapSuppressionController::NONE, 198 EXPECT_EQ(MockTapSuppressionController::NONE,
216 tap_suppression_controller_->last_actions()); 199 tap_suppression_controller_->last_actions());
217 EXPECT_EQ(MockTapSuppressionController::GFC_IN_PROGRESS, 200 EXPECT_EQ(MockTapSuppressionController::GFC_IN_PROGRESS,
218 tap_suppression_controller_->state()); 201 tap_suppression_controller_->state());
219 202
220 // Send GestureFlingCancel Ack. 203 // Send GestureFlingCancel Ack.
221 tap_suppression_controller_->SendGestureFlingCancelAck(true); 204 tap_suppression_controller_->SendGestureFlingCancelAck(true);
222 EXPECT_EQ(MockTapSuppressionController::NONE, 205 EXPECT_EQ(MockTapSuppressionController::NONE,
(...skipping 21 matching lines...) Expand all
244 EXPECT_EQ(MockTapSuppressionController::TAP_UP_SUPPRESSED | 227 EXPECT_EQ(MockTapSuppressionController::TAP_UP_SUPPRESSED |
245 MockTapSuppressionController::TAP_DOWN_DROPPED, 228 MockTapSuppressionController::TAP_DOWN_DROPPED,
246 tap_suppression_controller_->last_actions()); 229 tap_suppression_controller_->last_actions());
247 EXPECT_EQ(MockTapSuppressionController::NOTHING, 230 EXPECT_EQ(MockTapSuppressionController::NOTHING,
248 tap_suppression_controller_->state()); 231 tap_suppression_controller_->state());
249 } 232 }
250 233
251 // Test TapSuppressionController for when GestureFlingCancel Ack comes before 234 // Test TapSuppressionController for when GestureFlingCancel Ack comes before
252 // TapDown, but there is a long delay between TapDown and TapUp. 235 // TapDown, but there is a long delay between TapDown and TapUp.
253 TEST_F(TapSuppressionControllerTest, GFCAckBeforeTapSufficientlyLateTapUp) { 236 TEST_F(TapSuppressionControllerTest, GFCAckBeforeTapSufficientlyLateTapUp) {
254 tap_suppression_controller_->set_max_cancel_to_down_time_in_ms(10);
255 tap_suppression_controller_->set_max_tap_gap_time_in_ms(10);
256
257 // Send GestureFlingCancel. 237 // Send GestureFlingCancel.
258 tap_suppression_controller_->SendGestureFlingCancel(); 238 tap_suppression_controller_->SendGestureFlingCancel();
259 EXPECT_EQ(MockTapSuppressionController::NONE, 239 EXPECT_EQ(MockTapSuppressionController::NONE,
260 tap_suppression_controller_->last_actions()); 240 tap_suppression_controller_->last_actions());
261 EXPECT_EQ(MockTapSuppressionController::GFC_IN_PROGRESS, 241 EXPECT_EQ(MockTapSuppressionController::GFC_IN_PROGRESS,
262 tap_suppression_controller_->state()); 242 tap_suppression_controller_->state());
263 243
264 // Send processed GestureFlingCancel Ack. 244 // Send processed GestureFlingCancel Ack.
265 tap_suppression_controller_->SendGestureFlingCancelAck(true); 245 tap_suppression_controller_->SendGestureFlingCancelAck(true);
266 EXPECT_EQ(MockTapSuppressionController::NONE, 246 EXPECT_EQ(MockTapSuppressionController::NONE,
(...skipping 20 matching lines...) Expand all
287 tap_suppression_controller_->SendTapUp(); 267 tap_suppression_controller_->SendTapUp();
288 EXPECT_EQ(MockTapSuppressionController::TAP_UP_FORWARDED, 268 EXPECT_EQ(MockTapSuppressionController::TAP_UP_FORWARDED,
289 tap_suppression_controller_->last_actions()); 269 tap_suppression_controller_->last_actions());
290 EXPECT_EQ(MockTapSuppressionController::NOTHING, 270 EXPECT_EQ(MockTapSuppressionController::NOTHING,
291 tap_suppression_controller_->state()); 271 tap_suppression_controller_->state());
292 } 272 }
293 273
294 // Test TapSuppressionController for when GestureFlingCancel Ack comes before 274 // Test TapSuppressionController for when GestureFlingCancel Ack comes before
295 // TapDown, but there is a small delay between the Ack and TapDown. 275 // TapDown, but there is a small delay between the Ack and TapDown.
296 TEST_F(TapSuppressionControllerTest, GFCAckBeforeTapInsufficientlyLateTapDown) { 276 TEST_F(TapSuppressionControllerTest, GFCAckBeforeTapInsufficientlyLateTapDown) {
297 tap_suppression_controller_->set_max_cancel_to_down_time_in_ms(10);
298 tap_suppression_controller_->set_max_tap_gap_time_in_ms(10);
299
300 // Send GestureFlingCancel. 277 // Send GestureFlingCancel.
301 tap_suppression_controller_->SendGestureFlingCancel(); 278 tap_suppression_controller_->SendGestureFlingCancel();
302 EXPECT_EQ(MockTapSuppressionController::NONE, 279 EXPECT_EQ(MockTapSuppressionController::NONE,
303 tap_suppression_controller_->last_actions()); 280 tap_suppression_controller_->last_actions());
304 EXPECT_EQ(MockTapSuppressionController::GFC_IN_PROGRESS, 281 EXPECT_EQ(MockTapSuppressionController::GFC_IN_PROGRESS,
305 tap_suppression_controller_->state()); 282 tap_suppression_controller_->state());
306 283
307 // Send GestureFlingCancel Ack. 284 // Send GestureFlingCancel Ack.
308 tap_suppression_controller_->SendGestureFlingCancelAck(true); 285 tap_suppression_controller_->SendGestureFlingCancelAck(true);
309 EXPECT_EQ(MockTapSuppressionController::NONE, 286 EXPECT_EQ(MockTapSuppressionController::NONE,
(...skipping 21 matching lines...) Expand all
331 EXPECT_EQ(MockTapSuppressionController::TAP_UP_SUPPRESSED | 308 EXPECT_EQ(MockTapSuppressionController::TAP_UP_SUPPRESSED |
332 MockTapSuppressionController::TAP_DOWN_DROPPED, 309 MockTapSuppressionController::TAP_DOWN_DROPPED,
333 tap_suppression_controller_->last_actions()); 310 tap_suppression_controller_->last_actions());
334 EXPECT_EQ(MockTapSuppressionController::NOTHING, 311 EXPECT_EQ(MockTapSuppressionController::NOTHING,
335 tap_suppression_controller_->state()); 312 tap_suppression_controller_->state());
336 } 313 }
337 314
338 // Test TapSuppressionController for when GestureFlingCancel Ack comes before 315 // Test TapSuppressionController for when GestureFlingCancel Ack comes before
339 // TapDown, but there is a long delay between the Ack and TapDown. 316 // TapDown, but there is a long delay between the Ack and TapDown.
340 TEST_F(TapSuppressionControllerTest, GFCAckBeforeTapSufficientlyLateTapDown) { 317 TEST_F(TapSuppressionControllerTest, GFCAckBeforeTapSufficientlyLateTapDown) {
341 tap_suppression_controller_->set_max_cancel_to_down_time_in_ms(10);
342 tap_suppression_controller_->set_max_tap_gap_time_in_ms(10);
343
344 // Send GestureFlingCancel. 318 // Send GestureFlingCancel.
345 tap_suppression_controller_->SendGestureFlingCancel(); 319 tap_suppression_controller_->SendGestureFlingCancel();
346 EXPECT_EQ(MockTapSuppressionController::NONE, 320 EXPECT_EQ(MockTapSuppressionController::NONE,
347 tap_suppression_controller_->last_actions()); 321 tap_suppression_controller_->last_actions());
348 EXPECT_EQ(MockTapSuppressionController::GFC_IN_PROGRESS, 322 EXPECT_EQ(MockTapSuppressionController::GFC_IN_PROGRESS,
349 tap_suppression_controller_->state()); 323 tap_suppression_controller_->state());
350 324
351 // Send GestureFlingCancel Ack. 325 // Send GestureFlingCancel Ack.
352 tap_suppression_controller_->SendGestureFlingCancelAck(true); 326 tap_suppression_controller_->SendGestureFlingCancelAck(true);
353 EXPECT_EQ(MockTapSuppressionController::NONE, 327 EXPECT_EQ(MockTapSuppressionController::NONE,
(...skipping 20 matching lines...) Expand all
374 tap_suppression_controller_->SendTapUp(); 348 tap_suppression_controller_->SendTapUp();
375 EXPECT_EQ(MockTapSuppressionController::TAP_UP_FORWARDED, 349 EXPECT_EQ(MockTapSuppressionController::TAP_UP_FORWARDED,
376 tap_suppression_controller_->last_actions()); 350 tap_suppression_controller_->last_actions());
377 EXPECT_EQ(MockTapSuppressionController::NOTHING, 351 EXPECT_EQ(MockTapSuppressionController::NOTHING,
378 tap_suppression_controller_->state()); 352 tap_suppression_controller_->state());
379 } 353 }
380 354
381 // Test TapSuppressionController for when unprocessed GestureFlingCancel Ack 355 // Test TapSuppressionController for when unprocessed GestureFlingCancel Ack
382 // comes after TapDown and everything happens without any delay. 356 // comes after TapDown and everything happens without any delay.
383 TEST_F(TapSuppressionControllerTest, GFCAckUnprocessedAfterTapFast) { 357 TEST_F(TapSuppressionControllerTest, GFCAckUnprocessedAfterTapFast) {
384 tap_suppression_controller_->set_max_cancel_to_down_time_in_ms(10);
385 tap_suppression_controller_->set_max_tap_gap_time_in_ms(10);
386
387 // Send GestureFlingCancel. 358 // Send GestureFlingCancel.
388 tap_suppression_controller_->SendGestureFlingCancel(); 359 tap_suppression_controller_->SendGestureFlingCancel();
389 EXPECT_EQ(MockTapSuppressionController::NONE, 360 EXPECT_EQ(MockTapSuppressionController::NONE,
390 tap_suppression_controller_->last_actions()); 361 tap_suppression_controller_->last_actions());
391 EXPECT_EQ(MockTapSuppressionController::GFC_IN_PROGRESS, 362 EXPECT_EQ(MockTapSuppressionController::GFC_IN_PROGRESS,
392 tap_suppression_controller_->state()); 363 tap_suppression_controller_->state());
393 364
394 // Send TapDown. This TapDown should be suppressed, for now. 365 // Send TapDown. This TapDown should be suppressed, for now.
395 tap_suppression_controller_->SendTapDown(); 366 tap_suppression_controller_->SendTapDown();
396 EXPECT_EQ(MockTapSuppressionController::TAP_DOWN_DEFERRED, 367 EXPECT_EQ(MockTapSuppressionController::TAP_DOWN_DEFERRED,
(...skipping 13 matching lines...) Expand all
410 tap_suppression_controller_->SendTapUp(); 381 tap_suppression_controller_->SendTapUp();
411 EXPECT_EQ(MockTapSuppressionController::TAP_UP_FORWARDED, 382 EXPECT_EQ(MockTapSuppressionController::TAP_UP_FORWARDED,
412 tap_suppression_controller_->last_actions()); 383 tap_suppression_controller_->last_actions());
413 EXPECT_EQ(MockTapSuppressionController::NOTHING, 384 EXPECT_EQ(MockTapSuppressionController::NOTHING,
414 tap_suppression_controller_->state()); 385 tap_suppression_controller_->state());
415 } 386 }
416 387
417 // Test TapSuppressionController for when processed GestureFlingCancel Ack comes 388 // Test TapSuppressionController for when processed GestureFlingCancel Ack comes
418 // after TapDown and everything happens without any delay. 389 // after TapDown and everything happens without any delay.
419 TEST_F(TapSuppressionControllerTest, GFCAckProcessedAfterTapFast) { 390 TEST_F(TapSuppressionControllerTest, GFCAckProcessedAfterTapFast) {
420 tap_suppression_controller_->set_max_cancel_to_down_time_in_ms(10);
421 tap_suppression_controller_->set_max_tap_gap_time_in_ms(10);
422
423 // Send GestureFlingCancel. 391 // Send GestureFlingCancel.
424 tap_suppression_controller_->SendGestureFlingCancel(); 392 tap_suppression_controller_->SendGestureFlingCancel();
425 EXPECT_EQ(MockTapSuppressionController::NONE, 393 EXPECT_EQ(MockTapSuppressionController::NONE,
426 tap_suppression_controller_->last_actions()); 394 tap_suppression_controller_->last_actions());
427 EXPECT_EQ(MockTapSuppressionController::GFC_IN_PROGRESS, 395 EXPECT_EQ(MockTapSuppressionController::GFC_IN_PROGRESS,
428 tap_suppression_controller_->state()); 396 tap_suppression_controller_->state());
429 397
430 // Send TapDown. This TapDown should be suppressed. 398 // Send TapDown. This TapDown should be suppressed.
431 tap_suppression_controller_->SendTapDown(); 399 tap_suppression_controller_->SendTapDown();
432 EXPECT_EQ(MockTapSuppressionController::TAP_DOWN_DEFERRED, 400 EXPECT_EQ(MockTapSuppressionController::TAP_DOWN_DEFERRED,
(...skipping 13 matching lines...) Expand all
446 EXPECT_EQ(MockTapSuppressionController::TAP_UP_SUPPRESSED | 414 EXPECT_EQ(MockTapSuppressionController::TAP_UP_SUPPRESSED |
447 MockTapSuppressionController::TAP_DOWN_DROPPED, 415 MockTapSuppressionController::TAP_DOWN_DROPPED,
448 tap_suppression_controller_->last_actions()); 416 tap_suppression_controller_->last_actions());
449 EXPECT_EQ(MockTapSuppressionController::NOTHING, 417 EXPECT_EQ(MockTapSuppressionController::NOTHING,
450 tap_suppression_controller_->state()); 418 tap_suppression_controller_->state());
451 } 419 }
452 420
453 // Test TapSuppressionController for when GestureFlingCancel Ack comes after 421 // Test TapSuppressionController for when GestureFlingCancel Ack comes after
454 // TapDown and there is a small delay between the Ack and TapUp. 422 // TapDown and there is a small delay between the Ack and TapUp.
455 TEST_F(TapSuppressionControllerTest, GFCAckAfterTapInsufficientlyLateTapUp) { 423 TEST_F(TapSuppressionControllerTest, GFCAckAfterTapInsufficientlyLateTapUp) {
456 tap_suppression_controller_->set_max_cancel_to_down_time_in_ms(10);
457 tap_suppression_controller_->set_max_tap_gap_time_in_ms(10);
458
459 // Send GestureFlingCancel. 424 // Send GestureFlingCancel.
460 tap_suppression_controller_->SendGestureFlingCancel(); 425 tap_suppression_controller_->SendGestureFlingCancel();
461 EXPECT_EQ(MockTapSuppressionController::NONE, 426 EXPECT_EQ(MockTapSuppressionController::NONE,
462 tap_suppression_controller_->last_actions()); 427 tap_suppression_controller_->last_actions());
463 EXPECT_EQ(MockTapSuppressionController::GFC_IN_PROGRESS, 428 EXPECT_EQ(MockTapSuppressionController::GFC_IN_PROGRESS,
464 tap_suppression_controller_->state()); 429 tap_suppression_controller_->state());
465 430
466 // Send TapDown. This TapDown should be suppressed. 431 // Send TapDown. This TapDown should be suppressed.
467 tap_suppression_controller_->SendTapDown(); 432 tap_suppression_controller_->SendTapDown();
468 EXPECT_EQ(MockTapSuppressionController::TAP_DOWN_DEFERRED, 433 EXPECT_EQ(MockTapSuppressionController::TAP_DOWN_DEFERRED,
(...skipping 21 matching lines...) Expand all
490 EXPECT_EQ(MockTapSuppressionController::TAP_UP_SUPPRESSED | 455 EXPECT_EQ(MockTapSuppressionController::TAP_UP_SUPPRESSED |
491 MockTapSuppressionController::TAP_DOWN_DROPPED, 456 MockTapSuppressionController::TAP_DOWN_DROPPED,
492 tap_suppression_controller_->last_actions()); 457 tap_suppression_controller_->last_actions());
493 EXPECT_EQ(MockTapSuppressionController::NOTHING, 458 EXPECT_EQ(MockTapSuppressionController::NOTHING,
494 tap_suppression_controller_->state()); 459 tap_suppression_controller_->state());
495 } 460 }
496 461
497 // Test TapSuppressionController for when GestureFlingCancel Ack comes after 462 // Test TapSuppressionController for when GestureFlingCancel Ack comes after
498 // TapDown and there is a long delay between the Ack and TapUp. 463 // TapDown and there is a long delay between the Ack and TapUp.
499 TEST_F(TapSuppressionControllerTest, GFCAckAfterTapSufficientlyLateTapUp) { 464 TEST_F(TapSuppressionControllerTest, GFCAckAfterTapSufficientlyLateTapUp) {
500 tap_suppression_controller_->set_max_cancel_to_down_time_in_ms(10);
501 tap_suppression_controller_->set_max_tap_gap_time_in_ms(10);
502
503 // Send GestureFlingCancel. 465 // Send GestureFlingCancel.
504 tap_suppression_controller_->SendGestureFlingCancel(); 466 tap_suppression_controller_->SendGestureFlingCancel();
505 EXPECT_EQ(MockTapSuppressionController::NONE, 467 EXPECT_EQ(MockTapSuppressionController::NONE,
506 tap_suppression_controller_->last_actions()); 468 tap_suppression_controller_->last_actions());
507 EXPECT_EQ(MockTapSuppressionController::GFC_IN_PROGRESS, 469 EXPECT_EQ(MockTapSuppressionController::GFC_IN_PROGRESS,
508 tap_suppression_controller_->state()); 470 tap_suppression_controller_->state());
509 471
510 // Send TapDown. This TapDown should be suppressed, for now. 472 // Send TapDown. This TapDown should be suppressed, for now.
511 tap_suppression_controller_->SendTapDown(); 473 tap_suppression_controller_->SendTapDown();
512 EXPECT_EQ(MockTapSuppressionController::TAP_DOWN_DEFERRED, 474 EXPECT_EQ(MockTapSuppressionController::TAP_DOWN_DEFERRED,
(...skipping 17 matching lines...) Expand all
530 tap_suppression_controller_->state()); 492 tap_suppression_controller_->state());
531 493
532 // Send TapUp. This TapUp should not be suppressed. 494 // Send TapUp. This TapUp should not be suppressed.
533 tap_suppression_controller_->SendTapUp(); 495 tap_suppression_controller_->SendTapUp();
534 EXPECT_EQ(MockTapSuppressionController::TAP_UP_FORWARDED, 496 EXPECT_EQ(MockTapSuppressionController::TAP_UP_FORWARDED,
535 tap_suppression_controller_->last_actions()); 497 tap_suppression_controller_->last_actions());
536 EXPECT_EQ(MockTapSuppressionController::NOTHING, 498 EXPECT_EQ(MockTapSuppressionController::NOTHING,
537 tap_suppression_controller_->state()); 499 tap_suppression_controller_->state());
538 } 500 }
539 501
502 // Test that no suppression occurs if the TapSuppressionController is disabled.
503 TEST_F(TapSuppressionControllerTest, NoSuppressionIfDisabled) {
504 TapSuppressionController::Config disabled_config;
505 disabled_config.enabled = false;
506 tap_suppression_controller_.reset(
507 new MockTapSuppressionController(disabled_config));
508
509 // Send GestureFlingCancel.
510 tap_suppression_controller_->SendGestureFlingCancel();
511 EXPECT_EQ(MockTapSuppressionController::NONE,
512 tap_suppression_controller_->last_actions());
513 EXPECT_EQ(MockTapSuppressionController::DISABLED,
514 tap_suppression_controller_->state());
515
516 // Send GestureFlingCancel Ack.
517 tap_suppression_controller_->SendGestureFlingCancelAck(true);
518 EXPECT_EQ(MockTapSuppressionController::NONE,
519 tap_suppression_controller_->last_actions());
520 EXPECT_EQ(MockTapSuppressionController::DISABLED,
521 tap_suppression_controller_->state());
522
523 // Send TapDown. This TapDown should not be suppressed.
524 tap_suppression_controller_->SendTapDown();
525 EXPECT_EQ(MockTapSuppressionController::TAP_DOWN_FORWARDED,
526 tap_suppression_controller_->last_actions());
527 EXPECT_EQ(MockTapSuppressionController::DISABLED,
528 tap_suppression_controller_->state());
529
530 // Send TapUp. This TapUp should not be suppressed.
531 tap_suppression_controller_->SendTapUp();
532 EXPECT_EQ(MockTapSuppressionController::TAP_UP_FORWARDED,
533 tap_suppression_controller_->last_actions());
534 EXPECT_EQ(MockTapSuppressionController::DISABLED,
535 tap_suppression_controller_->state());
536 }
537
538
540 } // namespace content 539 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698