OLD | NEW |
---|---|
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 "content/browser/renderer_host/input/mouse_wheel_event_queue.h" | 5 #include "content/browser/renderer_host/input/mouse_wheel_event_queue.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 #include <utility> | 8 #include <utility> |
9 | 9 |
10 #include "base/location.h" | 10 #include "base/location.h" |
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
118 static void RunTasksAndWait(base::TimeDelta delay) { | 118 static void RunTasksAndWait(base::TimeDelta delay) { |
119 base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( | 119 base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( |
120 FROM_HERE, base::MessageLoop::QuitWhenIdleClosure(), delay); | 120 FROM_HERE, base::MessageLoop::QuitWhenIdleClosure(), delay); |
121 base::MessageLoop::current()->Run(); | 121 base::MessageLoop::current()->Run(); |
122 } | 122 } |
123 | 123 |
124 void GestureSendingTest(bool high_precision) { | 124 void GestureSendingTest(bool high_precision) { |
125 const WebGestureEvent::ScrollUnits scroll_units = | 125 const WebGestureEvent::ScrollUnits scroll_units = |
126 high_precision ? WebGestureEvent::PrecisePixels | 126 high_precision ? WebGestureEvent::PrecisePixels |
127 : WebGestureEvent::Pixels; | 127 : WebGestureEvent::Pixels; |
128 SendMouseWheel(10, 10, 1, 1, 0, high_precision); | 128 SendMouseWheel(10, 12, 1, 1, 0, high_precision); |
129 EXPECT_EQ(0U, queued_event_count()); | 129 EXPECT_EQ(0U, queued_event_count()); |
130 EXPECT_TRUE(event_in_flight()); | 130 EXPECT_TRUE(event_in_flight()); |
131 EXPECT_EQ(1U, GetAndResetSentEventCount()); | 131 EXPECT_EQ(1U, GetAndResetSentEventCount()); |
132 | 132 |
133 // The second mouse wheel should not be sent since one is already in queue. | 133 // The second mouse wheel should not be sent since one is already in queue. |
134 SendMouseWheel(10, 10, 5, 5, 0, high_precision); | 134 SendMouseWheel(10, 12, 5, 5, 0, high_precision); |
135 EXPECT_EQ(1U, queued_event_count()); | 135 EXPECT_EQ(1U, queued_event_count()); |
136 EXPECT_TRUE(event_in_flight()); | 136 EXPECT_TRUE(event_in_flight()); |
137 EXPECT_EQ(0U, GetAndResetSentEventCount()); | 137 EXPECT_EQ(0U, GetAndResetSentEventCount()); |
138 | 138 |
139 // Receive an ACK for the mouse wheel event and release the next | 139 // Receive an ACK for the mouse wheel event and release the next |
140 // mouse wheel event. | 140 // mouse wheel event. |
141 SendMouseWheelEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | 141 SendMouseWheelEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
142 EXPECT_EQ(0U, queued_event_count()); | 142 EXPECT_EQ(0U, queued_event_count()); |
143 EXPECT_TRUE(event_in_flight()); | 143 EXPECT_TRUE(event_in_flight()); |
144 EXPECT_EQ(WebInputEvent::MouseWheel, acked_event().type); | 144 EXPECT_EQ(WebInputEvent::MouseWheel, acked_event().type); |
145 EXPECT_EQ(1U, GetAndResetAckedEventCount()); | 145 EXPECT_EQ(1U, GetAndResetAckedEventCount()); |
146 EXPECT_EQ(3U, all_sent_events().size()); | 146 EXPECT_EQ(3U, all_sent_events().size()); |
147 EXPECT_EQ(WebInputEvent::GestureScrollBegin, all_sent_events()[0].type); | 147 EXPECT_EQ(WebInputEvent::GestureScrollBegin, all_sent_events()[0].type); |
148 EXPECT_EQ(scroll_units, | 148 EXPECT_EQ(scroll_units, |
149 sent_gesture_events()[0].data.scrollBegin.deltaHintUnits); | 149 sent_gesture_events()[0].data.scrollBegin.deltaHintUnits); |
150 EXPECT_EQ(10, sent_gesture_events()[0].x); | |
151 EXPECT_EQ(12, sent_gesture_events()[0].y); | |
tdresser
2016/02/22 19:58:48
Let's check globalX/globalY somewhere at least.
dtapuska
2016/02/22 20:28:46
Done.
| |
150 EXPECT_EQ(WebInputEvent::GestureScrollUpdate, all_sent_events()[1].type); | 152 EXPECT_EQ(WebInputEvent::GestureScrollUpdate, all_sent_events()[1].type); |
151 EXPECT_EQ(scroll_units, | 153 EXPECT_EQ(scroll_units, |
152 sent_gesture_events()[1].data.scrollUpdate.deltaUnits); | 154 sent_gesture_events()[1].data.scrollUpdate.deltaUnits); |
155 EXPECT_EQ(10, sent_gesture_events()[1].x); | |
156 EXPECT_EQ(12, sent_gesture_events()[1].y); | |
153 EXPECT_EQ(WebInputEvent::MouseWheel, all_sent_events()[2].type); | 157 EXPECT_EQ(WebInputEvent::MouseWheel, all_sent_events()[2].type); |
154 EXPECT_EQ(3U, GetAndResetSentEventCount()); | 158 EXPECT_EQ(3U, GetAndResetSentEventCount()); |
155 | 159 |
156 RunTasksAndWait(DefaultScrollEndTimeoutDelay() * 2); | 160 RunTasksAndWait(DefaultScrollEndTimeoutDelay() * 2); |
157 EXPECT_EQ(1U, all_sent_events().size()); | 161 EXPECT_EQ(1U, all_sent_events().size()); |
158 EXPECT_EQ(WebInputEvent::GestureScrollEnd, all_sent_events()[0].type); | 162 EXPECT_EQ(WebInputEvent::GestureScrollEnd, all_sent_events()[0].type); |
159 EXPECT_EQ(scroll_units, sent_gesture_events()[0].data.scrollEnd.deltaUnits); | 163 EXPECT_EQ(scroll_units, sent_gesture_events()[0].data.scrollEnd.deltaUnits); |
164 EXPECT_EQ(10, sent_gesture_events()[0].x); | |
165 EXPECT_EQ(12, sent_gesture_events()[0].y); | |
160 } | 166 } |
161 | 167 |
162 scoped_ptr<MouseWheelEventQueue> queue_; | 168 scoped_ptr<MouseWheelEventQueue> queue_; |
163 std::vector<WebInputEvent> sent_events_; | 169 std::vector<WebInputEvent> sent_events_; |
164 std::vector<WebGestureEvent> sent_gesture_events_; | 170 std::vector<WebGestureEvent> sent_gesture_events_; |
165 size_t acked_event_count_; | 171 size_t acked_event_count_; |
166 InputEventAckState last_acked_event_state_; | 172 InputEventAckState last_acked_event_state_; |
167 base::MessageLoopForUI message_loop_; | 173 base::MessageLoopForUI message_loop_; |
168 WebMouseWheelEvent last_acked_event_; | 174 WebMouseWheelEvent last_acked_event_; |
169 }; | 175 }; |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
260 EXPECT_FALSE(event_in_flight()); | 266 EXPECT_FALSE(event_in_flight()); |
261 EXPECT_EQ(WebInputEvent::MouseWheel, acked_event().type); | 267 EXPECT_EQ(WebInputEvent::MouseWheel, acked_event().type); |
262 EXPECT_EQ(1U, GetAndResetAckedEventCount()); | 268 EXPECT_EQ(1U, GetAndResetAckedEventCount()); |
263 EXPECT_EQ(2U, all_sent_events().size()); | 269 EXPECT_EQ(2U, all_sent_events().size()); |
264 EXPECT_EQ(WebInputEvent::GestureScrollBegin, all_sent_events()[0].type); | 270 EXPECT_EQ(WebInputEvent::GestureScrollBegin, all_sent_events()[0].type); |
265 EXPECT_EQ(WebInputEvent::GestureScrollUpdate, all_sent_events()[1].type); | 271 EXPECT_EQ(WebInputEvent::GestureScrollUpdate, all_sent_events()[1].type); |
266 EXPECT_EQ(2U, GetAndResetSentEventCount()); | 272 EXPECT_EQ(2U, GetAndResetSentEventCount()); |
267 } | 273 } |
268 | 274 |
269 } // namespace content | 275 } // namespace content |
OLD | NEW |