OLD | NEW |
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/logging.h" | 6 #include "base/logging.h" |
7 #include "base/memory/scoped_ptr.h" | 7 #include "base/memory/scoped_ptr.h" |
8 #include "base/message_loop/message_loop.h" | 8 #include "base/message_loop/message_loop.h" |
9 #include "content/browser/renderer_host/input/timeout_monitor.h" | 9 #include "content/browser/renderer_host/input/timeout_monitor.h" |
10 #include "content/browser/renderer_host/input/touch_event_queue.h" | 10 #include "content/browser/renderer_host/input/touch_event_queue.h" |
(...skipping 17 matching lines...) Expand all Loading... |
28 TouchEventQueueTest() | 28 TouchEventQueueTest() |
29 : sent_event_count_(0), | 29 : sent_event_count_(0), |
30 acked_event_count_(0), | 30 acked_event_count_(0), |
31 last_acked_event_state_(INPUT_EVENT_ACK_STATE_UNKNOWN) {} | 31 last_acked_event_state_(INPUT_EVENT_ACK_STATE_UNKNOWN) {} |
32 | 32 |
33 virtual ~TouchEventQueueTest() {} | 33 virtual ~TouchEventQueueTest() {} |
34 | 34 |
35 // testing::Test | 35 // testing::Test |
36 virtual void SetUp() OVERRIDE { | 36 virtual void SetUp() OVERRIDE { |
37 queue_.reset(new TouchEventQueue(this)); | 37 queue_.reset(new TouchEventQueue(this)); |
| 38 queue_->OnHasTouchEventHandlers(true); |
38 } | 39 } |
39 | 40 |
40 virtual void TearDown() OVERRIDE { | 41 virtual void TearDown() OVERRIDE { |
41 queue_.reset(); | 42 queue_.reset(); |
42 } | 43 } |
43 | 44 |
44 // TouchEventQueueClient | 45 // TouchEventQueueClient |
45 virtual void SendTouchEventImmediately( | 46 virtual void SendTouchEventImmediately( |
46 const TouchEventWithLatencyInfo& event) OVERRIDE { | 47 const TouchEventWithLatencyInfo& event) OVERRIDE { |
47 ++sent_event_count_; | 48 ++sent_event_count_; |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
138 size_t GetAndResetSentEventCount() { | 139 size_t GetAndResetSentEventCount() { |
139 size_t count = sent_event_count_; | 140 size_t count = sent_event_count_; |
140 sent_event_count_ = 0; | 141 sent_event_count_ = 0; |
141 return count; | 142 return count; |
142 } | 143 } |
143 | 144 |
144 bool IsPendingAckTouchStart() const { | 145 bool IsPendingAckTouchStart() const { |
145 return queue_->IsPendingAckTouchStart(); | 146 return queue_->IsPendingAckTouchStart(); |
146 } | 147 } |
147 | 148 |
148 void Flush() { | 149 void OnHasTouchEventHandlers(bool has_handlers) { |
149 queue_->FlushQueue(); | 150 queue_->OnHasTouchEventHandlers(has_handlers); |
150 } | |
151 | |
152 void SetEnableTouchForwarding(bool enabled) { | |
153 queue_->no_touch_to_renderer_ = !enabled; | |
154 } | 151 } |
155 | 152 |
156 bool WillForwardTouchEvents() { | 153 bool WillForwardTouchEvents() { |
157 return !queue_->no_touch_to_renderer_ && !queue_->HasTimeoutEvent(); | 154 return queue_->has_handlers_ && |
| 155 !queue_->scroll_in_progress_ && |
| 156 !queue_->HasTimeoutEvent(); |
158 } | 157 } |
159 | 158 |
160 bool IsTimeoutRunning() { | 159 bool IsTimeoutRunning() { |
161 return queue_->IsTimeoutRunningForTesting(); | 160 return queue_->IsTimeoutRunningForTesting(); |
162 } | 161 } |
163 | 162 |
164 size_t queued_event_count() const { | 163 size_t queued_event_count() const { |
165 return queue_->size(); | 164 return queue_->size(); |
166 } | 165 } |
167 | 166 |
168 const WebTouchEvent& latest_event() const { | 167 const WebTouchEvent& latest_event() const { |
169 return queue_->GetLatestEventForTesting().event; | 168 return queue_->GetLatestEventForTesting().event; |
170 } | 169 } |
171 | 170 |
172 const WebTouchEvent& acked_event() const { | 171 const WebTouchEvent& acked_event() const { |
173 return last_acked_event_; | 172 return last_acked_event_; |
174 } | 173 } |
175 | 174 |
176 const WebTouchEvent& sent_event() const { | 175 const WebTouchEvent& sent_event() const { |
177 return last_sent_event_; | 176 return last_sent_event_; |
178 } | 177 } |
179 | 178 |
180 InputEventAckState acked_event_state() const { | 179 InputEventAckState acked_event_state() const { |
181 return last_acked_event_state_; | 180 return last_acked_event_state_; |
182 } | 181 } |
183 | 182 |
184 void set_no_touch_to_renderer(bool no_touch) { | |
185 queue_->no_touch_to_renderer_ = no_touch; | |
186 } | |
187 | |
188 bool no_touch_to_renderer() const { | |
189 return queue_->no_touch_to_renderer_; | |
190 } | |
191 | |
192 private: | 183 private: |
193 void SendTouchEvent() { | 184 void SendTouchEvent() { |
194 SendTouchEvent(touch_event_); | 185 SendTouchEvent(touch_event_); |
195 touch_event_.ResetPoints(); | 186 touch_event_.ResetPoints(); |
196 } | 187 } |
197 | 188 |
198 scoped_ptr<TouchEventQueue> queue_; | 189 scoped_ptr<TouchEventQueue> queue_; |
199 size_t sent_event_count_; | 190 size_t sent_event_count_; |
200 size_t acked_event_count_; | 191 size_t acked_event_count_; |
201 WebTouchEvent last_sent_event_; | 192 WebTouchEvent last_sent_event_; |
(...skipping 28 matching lines...) Expand all Loading... |
230 // Receive an ACK for the second touch-event. | 221 // Receive an ACK for the second touch-event. |
231 SendTouchEventACK(INPUT_EVENT_ACK_STATE_CONSUMED); | 222 SendTouchEventACK(INPUT_EVENT_ACK_STATE_CONSUMED); |
232 EXPECT_EQ(0U, queued_event_count()); | 223 EXPECT_EQ(0U, queued_event_count()); |
233 EXPECT_EQ(0U, GetAndResetSentEventCount()); | 224 EXPECT_EQ(0U, GetAndResetSentEventCount()); |
234 EXPECT_EQ(1U, GetAndResetAckedEventCount()); | 225 EXPECT_EQ(1U, GetAndResetAckedEventCount()); |
235 EXPECT_EQ(WebInputEvent::TouchMove, acked_event().type); | 226 EXPECT_EQ(WebInputEvent::TouchMove, acked_event().type); |
236 } | 227 } |
237 | 228 |
238 // Tests that the touch-queue is emptied if a page stops listening for touch | 229 // Tests that the touch-queue is emptied if a page stops listening for touch |
239 // events. | 230 // events. |
240 TEST_F(TouchEventQueueTest, Flush) { | 231 TEST_F(TouchEventQueueTest, QueueFlushedWhenHandlersRemoved) { |
241 Flush(); | 232 OnHasTouchEventHandlers(true); |
242 EXPECT_EQ(0U, queued_event_count()); | 233 EXPECT_EQ(0U, queued_event_count()); |
243 EXPECT_EQ(0U, GetAndResetSentEventCount()); | 234 EXPECT_EQ(0U, GetAndResetSentEventCount()); |
244 | 235 |
245 // Send a touch-press event. | 236 // Send a touch-press event. |
246 PressTouchPoint(1, 1); | 237 PressTouchPoint(1, 1); |
247 EXPECT_EQ(1U, GetAndResetSentEventCount()); | 238 EXPECT_EQ(1U, GetAndResetSentEventCount()); |
248 | 239 |
249 ReleaseTouchPoint(0); | 240 ReleaseTouchPoint(0); |
250 | 241 |
251 // Events will be queued until the first sent event is ack'ed. | 242 // Events will be queued until the first sent event is ack'ed. |
252 for (int i = 5; i < 15; ++i) { | 243 for (int i = 5; i < 15; ++i) { |
253 PressTouchPoint(1, 1); | 244 PressTouchPoint(1, 1); |
254 MoveTouchPoint(0, i, i); | 245 MoveTouchPoint(0, i, i); |
255 ReleaseTouchPoint(0); | 246 ReleaseTouchPoint(0); |
256 } | 247 } |
257 EXPECT_EQ(32U, queued_event_count()); | 248 EXPECT_EQ(32U, queued_event_count()); |
258 EXPECT_EQ(0U, GetAndResetSentEventCount()); | 249 EXPECT_EQ(0U, GetAndResetSentEventCount()); |
259 | 250 |
260 // Receive an ACK for the first touch-event. One of the queued touch-event | 251 // Receive an ACK for the first touch-event. One of the queued touch-event |
261 // should be forwarded. | 252 // should be forwarded. |
262 SendTouchEventACK(INPUT_EVENT_ACK_STATE_CONSUMED); | 253 SendTouchEventACK(INPUT_EVENT_ACK_STATE_CONSUMED); |
263 EXPECT_EQ(31U, queued_event_count()); | 254 EXPECT_EQ(31U, queued_event_count()); |
264 EXPECT_EQ(1U, GetAndResetSentEventCount()); | 255 EXPECT_EQ(1U, GetAndResetSentEventCount()); |
265 EXPECT_EQ(1U, GetAndResetAckedEventCount()); | 256 EXPECT_EQ(1U, GetAndResetAckedEventCount()); |
266 EXPECT_EQ(WebInputEvent::TouchStart, acked_event().type); | 257 EXPECT_EQ(WebInputEvent::TouchStart, acked_event().type); |
267 | 258 |
268 // Flush the queue. The touch-event queue should now be emptied, but none of | 259 // Flush the queue. The touch-event queue should now be emptied, but none of |
269 // the queued touch-events should be sent to the renderer. | 260 // the queued touch-events should be sent to the renderer. |
270 Flush(); | 261 OnHasTouchEventHandlers(false); |
271 EXPECT_EQ(0U, queued_event_count()); | 262 EXPECT_EQ(0U, queued_event_count()); |
272 EXPECT_EQ(0U, GetAndResetSentEventCount()); | 263 EXPECT_EQ(0U, GetAndResetSentEventCount()); |
273 EXPECT_EQ(31U, GetAndResetAckedEventCount()); | 264 EXPECT_EQ(31U, GetAndResetAckedEventCount()); |
274 } | 265 } |
275 | 266 |
| 267 // Tests that removal of a touch handler during a touch sequence will prevent |
| 268 // the remaining sequence from being forwarded, even if another touch handler is |
| 269 // registered during the same touch sequence. |
| 270 TEST_F(TouchEventQueueTest, ActiveSequenceDroppedWhenHandlersRemoved) { |
| 271 // Send a touch-press event. |
| 272 PressTouchPoint(1, 1); |
| 273 EXPECT_EQ(1U, GetAndResetSentEventCount()); |
| 274 EXPECT_EQ(1U, queued_event_count()); |
| 275 |
| 276 // Queue a touch-move event. |
| 277 MoveTouchPoint(0, 5, 5); |
| 278 EXPECT_EQ(2U, queued_event_count()); |
| 279 EXPECT_EQ(0U, GetAndResetAckedEventCount()); |
| 280 EXPECT_EQ(0U, GetAndResetSentEventCount()); |
| 281 |
| 282 // Touch handle deregistration should flush the queue. |
| 283 OnHasTouchEventHandlers(false); |
| 284 EXPECT_EQ(2U, GetAndResetAckedEventCount()); |
| 285 EXPECT_EQ(0U, queued_event_count()); |
| 286 |
| 287 // The ack should be ignored as the touch queue is now empty. |
| 288 SendTouchEventACK(INPUT_EVENT_ACK_STATE_NO_CONSUMER_EXISTS); |
| 289 EXPECT_EQ(0U, GetAndResetAckedEventCount()); |
| 290 EXPECT_EQ(0U, queued_event_count()); |
| 291 |
| 292 // Events should be dropped while there is no touch handler. |
| 293 MoveTouchPoint(0, 10, 10); |
| 294 EXPECT_EQ(0U, queued_event_count()); |
| 295 EXPECT_EQ(1U, GetAndResetAckedEventCount()); |
| 296 EXPECT_EQ(0U, GetAndResetSentEventCount()); |
| 297 |
| 298 // Simulate touch handler registration in the middle of a touch sequence. |
| 299 OnHasTouchEventHandlers(true); |
| 300 |
| 301 // The touch end for the interrupted sequence should be dropped. |
| 302 ReleaseTouchPoint(0); |
| 303 EXPECT_EQ(0U, queued_event_count()); |
| 304 EXPECT_EQ(1U, GetAndResetAckedEventCount()); |
| 305 EXPECT_EQ(0U, GetAndResetSentEventCount()); |
| 306 |
| 307 // A new touch sequence should be forwarded properly. |
| 308 PressTouchPoint(1, 1); |
| 309 EXPECT_EQ(1U, queued_event_count()); |
| 310 EXPECT_EQ(1U, GetAndResetSentEventCount()); |
| 311 } |
| 312 |
276 // Tests that touch-events are coalesced properly in the queue. | 313 // Tests that touch-events are coalesced properly in the queue. |
277 TEST_F(TouchEventQueueTest, Coalesce) { | 314 TEST_F(TouchEventQueueTest, Coalesce) { |
278 // Send a touch-press event. | 315 // Send a touch-press event. |
279 PressTouchPoint(1, 1); | 316 PressTouchPoint(1, 1); |
280 EXPECT_EQ(1U, GetAndResetSentEventCount()); | 317 EXPECT_EQ(1U, GetAndResetSentEventCount()); |
281 | 318 |
282 // Send a few touch-move events, followed by a touch-release event. All the | 319 // Send a few touch-move events, followed by a touch-release event. All the |
283 // touch-move events should be coalesced into a single event. | 320 // touch-move events should be coalesced into a single event. |
284 for (int i = 5; i < 15; ++i) | 321 for (int i = 5; i < 15; ++i) |
285 MoveTouchPoint(0, i, i); | 322 MoveTouchPoint(0, i, i); |
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
386 MoveTouchPoint(0, 10, 10); | 423 MoveTouchPoint(0, 10, 10); |
387 EXPECT_EQ(0U, GetAndResetSentEventCount()); | 424 EXPECT_EQ(0U, GetAndResetSentEventCount()); |
388 EXPECT_EQ(2U, queued_event_count()); | 425 EXPECT_EQ(2U, queued_event_count()); |
389 | 426 |
390 // Receive an ACK for the press. This should cause the queued touch-move to | 427 // Receive an ACK for the press. This should cause the queued touch-move to |
391 // be sent to the renderer. | 428 // be sent to the renderer. |
392 SendTouchEventACK(INPUT_EVENT_ACK_STATE_CONSUMED); | 429 SendTouchEventACK(INPUT_EVENT_ACK_STATE_CONSUMED); |
393 EXPECT_EQ(1U, GetAndResetSentEventCount()); | 430 EXPECT_EQ(1U, GetAndResetSentEventCount()); |
394 EXPECT_EQ(1U, queued_event_count()); | 431 EXPECT_EQ(1U, queued_event_count()); |
395 | 432 |
396 Flush(); | 433 OnHasTouchEventHandlers(false); |
397 EXPECT_EQ(0U, GetAndResetSentEventCount()); | 434 EXPECT_EQ(0U, GetAndResetSentEventCount()); |
398 EXPECT_EQ(0U, queued_event_count()); | 435 EXPECT_EQ(0U, queued_event_count()); |
399 | 436 |
400 // Now receive an ACK for the move. | 437 // Now receive an ACK for the move. |
401 SendTouchEventACK(INPUT_EVENT_ACK_STATE_CONSUMED); | 438 SendTouchEventACK(INPUT_EVENT_ACK_STATE_CONSUMED); |
402 EXPECT_EQ(0U, GetAndResetSentEventCount()); | 439 EXPECT_EQ(0U, GetAndResetSentEventCount()); |
403 EXPECT_EQ(0U, queued_event_count()); | 440 EXPECT_EQ(0U, queued_event_count()); |
404 } | 441 } |
405 | 442 |
406 // Tests that touch-move events are not sent to the renderer if the preceding | 443 // Tests that touch-move events are not sent to the renderer if the preceding |
(...skipping 271 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
678 EXPECT_EQ(1U, queued_event_count()); | 715 EXPECT_EQ(1U, queued_event_count()); |
679 EXPECT_EQ(1U, GetAndResetSentEventCount()); | 716 EXPECT_EQ(1U, GetAndResetSentEventCount()); |
680 EXPECT_EQ(1U, GetAndResetAckedEventCount()); | 717 EXPECT_EQ(1U, GetAndResetAckedEventCount()); |
681 EXPECT_EQ(INPUT_EVENT_ACK_STATE_NO_CONSUMER_EXISTS, acked_event_state()); | 718 EXPECT_EQ(INPUT_EVENT_ACK_STATE_NO_CONSUMER_EXISTS, acked_event_state()); |
682 EXPECT_EQ(WebInputEvent::TouchMove, acked_event().type); | 719 EXPECT_EQ(WebInputEvent::TouchMove, acked_event().type); |
683 } | 720 } |
684 | 721 |
685 // Tests basic TouchEvent forwarding suppression. | 722 // Tests basic TouchEvent forwarding suppression. |
686 TEST_F(TouchEventQueueTest, NoTouchBasic) { | 723 TEST_F(TouchEventQueueTest, NoTouchBasic) { |
687 // Disable TouchEvent forwarding. | 724 // Disable TouchEvent forwarding. |
688 SetEnableTouchForwarding(false); | 725 OnHasTouchEventHandlers(false); |
689 MoveTouchPoint(0, 30, 5); | 726 MoveTouchPoint(0, 30, 5); |
690 EXPECT_EQ(0U, GetAndResetSentEventCount()); | 727 EXPECT_EQ(0U, GetAndResetSentEventCount()); |
691 EXPECT_EQ(1U, GetAndResetAckedEventCount()); | 728 EXPECT_EQ(1U, GetAndResetAckedEventCount()); |
692 | 729 |
693 // TouchMove should not be sent to renderer. | 730 // TouchMove should not be sent to renderer. |
694 MoveTouchPoint(0, 65, 10); | 731 MoveTouchPoint(0, 65, 10); |
695 EXPECT_EQ(0U, GetAndResetSentEventCount()); | 732 EXPECT_EQ(0U, GetAndResetSentEventCount()); |
696 EXPECT_EQ(1U, GetAndResetAckedEventCount()); | 733 EXPECT_EQ(1U, GetAndResetAckedEventCount()); |
697 | 734 |
698 // TouchEnd should not be sent to renderer. | 735 // TouchEnd should not be sent to renderer. |
699 ReleaseTouchPoint(0); | 736 ReleaseTouchPoint(0); |
700 EXPECT_EQ(0U, GetAndResetSentEventCount()); | 737 EXPECT_EQ(0U, GetAndResetSentEventCount()); |
701 EXPECT_EQ(1U, GetAndResetAckedEventCount()); | 738 EXPECT_EQ(1U, GetAndResetAckedEventCount()); |
702 | 739 |
703 // TouchStart should not be sent to renderer. | 740 // TouchStart should not be sent to renderer. |
704 PressTouchPoint(5, 5); | 741 PressTouchPoint(5, 5); |
705 EXPECT_EQ(0U, GetAndResetSentEventCount()); | 742 EXPECT_EQ(0U, GetAndResetSentEventCount()); |
706 EXPECT_EQ(1U, GetAndResetAckedEventCount()); | 743 EXPECT_EQ(1U, GetAndResetAckedEventCount()); |
707 | 744 |
708 // Enable TouchEvent forwarding. | 745 // Enable TouchEvent forwarding. |
709 SetEnableTouchForwarding(true); | 746 OnHasTouchEventHandlers(true); |
710 | 747 |
711 PressTouchPoint(80, 10); | 748 PressTouchPoint(80, 10); |
712 EXPECT_EQ(1U, GetAndResetSentEventCount()); | 749 EXPECT_EQ(1U, GetAndResetSentEventCount()); |
713 SendTouchEventACK(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | 750 SendTouchEventACK(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
714 EXPECT_EQ(1U, GetAndResetAckedEventCount()); | 751 EXPECT_EQ(1U, GetAndResetAckedEventCount()); |
715 | 752 |
716 MoveTouchPoint(0, 80, 20); | 753 MoveTouchPoint(0, 80, 20); |
717 EXPECT_EQ(1U, GetAndResetSentEventCount()); | 754 EXPECT_EQ(1U, GetAndResetSentEventCount()); |
718 SendTouchEventACK(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | 755 SendTouchEventACK(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
719 EXPECT_EQ(1U, GetAndResetAckedEventCount()); | 756 EXPECT_EQ(1U, GetAndResetAckedEventCount()); |
(...skipping 250 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
970 TEST_F(TouchEventQueueTest, NoTouchTimeoutIfAckIsSynchronous) { | 1007 TEST_F(TouchEventQueueTest, NoTouchTimeoutIfAckIsSynchronous) { |
971 SetUpForTimeoutTesting(kDefaultTouchTimeoutDelayMs); | 1008 SetUpForTimeoutTesting(kDefaultTouchTimeoutDelayMs); |
972 | 1009 |
973 // Queue a TouchStart. | 1010 // Queue a TouchStart. |
974 SetSyncAckResult(INPUT_EVENT_ACK_STATE_CONSUMED); | 1011 SetSyncAckResult(INPUT_EVENT_ACK_STATE_CONSUMED); |
975 ASSERT_FALSE(IsTimeoutRunning()); | 1012 ASSERT_FALSE(IsTimeoutRunning()); |
976 PressTouchPoint(0, 1); | 1013 PressTouchPoint(0, 1); |
977 EXPECT_FALSE(IsTimeoutRunning()); | 1014 EXPECT_FALSE(IsTimeoutRunning()); |
978 } | 1015 } |
979 | 1016 |
| 1017 // Tests that the timeout is disabled if the touch handler disappears. |
| 1018 TEST_F(TouchEventQueueTest, TouchTimeoutStoppedIfTouchHandlerRemoved) { |
| 1019 SetUpForTimeoutTesting(kDefaultTouchTimeoutDelayMs); |
| 1020 |
| 1021 // Queue a TouchStart. |
| 1022 PressTouchPoint(0, 1); |
| 1023 ASSERT_TRUE(IsTimeoutRunning()); |
| 1024 |
| 1025 // Unload the touch handler. |
| 1026 OnHasTouchEventHandlers(false); |
| 1027 EXPECT_FALSE(IsTimeoutRunning()); |
| 1028 } |
| 1029 |
980 // Tests that a TouchCancel timeout plays nice when the timed out touch stream | 1030 // Tests that a TouchCancel timeout plays nice when the timed out touch stream |
981 // turns into a scroll gesture sequence. | 1031 // turns into a scroll gesture sequence. |
982 TEST_F(TouchEventQueueTest, TouchTimeoutWithFollowupGesture) { | 1032 TEST_F(TouchEventQueueTest, TouchTimeoutWithFollowupGesture) { |
983 SetUpForTimeoutTesting(kDefaultTouchTimeoutDelayMs); | 1033 SetUpForTimeoutTesting(kDefaultTouchTimeoutDelayMs); |
984 | 1034 |
985 // Queue a TouchStart. | 1035 // Queue a TouchStart. |
986 PressTouchPoint(0, 1); | 1036 PressTouchPoint(0, 1); |
987 EXPECT_TRUE(IsTimeoutRunning()); | 1037 EXPECT_TRUE(IsTimeoutRunning()); |
988 EXPECT_TRUE(WillForwardTouchEvents()); | 1038 EXPECT_TRUE(WillForwardTouchEvents()); |
989 EXPECT_EQ(1U, GetAndResetSentEventCount()); | 1039 EXPECT_EQ(1U, GetAndResetSentEventCount()); |
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1139 EXPECT_TRUE(WillForwardTouchEvents()); | 1189 EXPECT_TRUE(WillForwardTouchEvents()); |
1140 EXPECT_EQ(0U, GetAndResetAckedEventCount()); | 1190 EXPECT_EQ(0U, GetAndResetAckedEventCount()); |
1141 EXPECT_EQ(0U, GetAndResetSentEventCount()); | 1191 EXPECT_EQ(0U, GetAndResetSentEventCount()); |
1142 | 1192 |
1143 // Subsequent events should be handled normally. | 1193 // Subsequent events should be handled normally. |
1144 PressTouchPoint(0, 1); | 1194 PressTouchPoint(0, 1); |
1145 EXPECT_EQ(1U, GetAndResetSentEventCount()); | 1195 EXPECT_EQ(1U, GetAndResetSentEventCount()); |
1146 EXPECT_EQ(0U, GetAndResetAckedEventCount()); | 1196 EXPECT_EQ(0U, GetAndResetAckedEventCount()); |
1147 } | 1197 } |
1148 } // namespace content | 1198 } // namespace content |
OLD | NEW |