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 <new> | 5 #include <new> |
6 #include <utility> | 6 #include <utility> |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/message_loop/message_loop.h" | 10 #include "base/message_loop/message_loop.h" |
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
171 AddEventsToFilter(filter_.get(), kEvents, arraysize(kEvents)); | 171 AddEventsToFilter(filter_.get(), kEvents, arraysize(kEvents)); |
172 ASSERT_EQ(arraysize(kEvents), ipc_sink_.message_count()); | 172 ASSERT_EQ(arraysize(kEvents), ipc_sink_.message_count()); |
173 ASSERT_EQ(arraysize(kEvents), event_recorder_.record_count()); | 173 ASSERT_EQ(arraysize(kEvents), event_recorder_.record_count()); |
174 EXPECT_EQ(0U, message_recorder_.message_count()); | 174 EXPECT_EQ(0U, message_recorder_.message_count()); |
175 | 175 |
176 for (size_t i = 0; i < arraysize(kEvents); ++i) { | 176 for (size_t i = 0; i < arraysize(kEvents); ++i) { |
177 const IPC::Message* message = ipc_sink_.GetMessageAt(i); | 177 const IPC::Message* message = ipc_sink_.GetMessageAt(i); |
178 EXPECT_EQ(kTestRoutingID, message->routing_id()); | 178 EXPECT_EQ(kTestRoutingID, message->routing_id()); |
179 EXPECT_EQ(InputHostMsg_HandleInputEvent_ACK::ID, message->type()); | 179 EXPECT_EQ(InputHostMsg_HandleInputEvent_ACK::ID, message->type()); |
180 | 180 |
181 WebInputEvent::Type event_type = WebInputEvent::Undefined; | 181 InputHostMsg_HandleInputEvent_ACK::Param params; |
182 InputEventAckState ack_result = INPUT_EVENT_ACK_STATE_NOT_CONSUMED; | 182 EXPECT_TRUE(InputHostMsg_HandleInputEvent_ACK::Read(message, ¶ms)); |
183 ui::LatencyInfo latency_info; | 183 WebInputEvent::Type event_type = params.a; |
184 EXPECT_TRUE(InputHostMsg_HandleInputEvent_ACK::Read(message, | 184 InputEventAckState ack_result = params.b; |
185 &event_type, | 185 |
186 &ack_result, | |
187 &latency_info)); | |
188 EXPECT_EQ(kEvents[i].type, event_type); | 186 EXPECT_EQ(kEvents[i].type, event_type); |
189 EXPECT_EQ(ack_result, INPUT_EVENT_ACK_STATE_NO_CONSUMER_EXISTS); | 187 EXPECT_EQ(ack_result, INPUT_EVENT_ACK_STATE_NO_CONSUMER_EXISTS); |
190 | 188 |
191 const WebInputEvent* event = event_recorder_.record_at(i); | 189 const WebInputEvent* event = event_recorder_.record_at(i); |
192 ASSERT_TRUE(event); | 190 ASSERT_TRUE(event); |
193 | 191 |
194 EXPECT_EQ(kEvents[i].size, event->size); | 192 EXPECT_EQ(kEvents[i].size, event->size); |
195 EXPECT_TRUE(memcmp(&kEvents[i], event, event->size) == 0); | 193 EXPECT_TRUE(memcmp(&kEvents[i], event, event->size) == 0); |
196 } | 194 } |
197 | 195 |
198 event_recorder_.set_send_to_widget(true); | 196 event_recorder_.set_send_to_widget(true); |
199 | 197 |
200 AddEventsToFilter(filter_.get(), kEvents, arraysize(kEvents)); | 198 AddEventsToFilter(filter_.get(), kEvents, arraysize(kEvents)); |
201 EXPECT_EQ(arraysize(kEvents), ipc_sink_.message_count()); | 199 EXPECT_EQ(arraysize(kEvents), ipc_sink_.message_count()); |
202 EXPECT_EQ(2 * arraysize(kEvents), event_recorder_.record_count()); | 200 EXPECT_EQ(2 * arraysize(kEvents), event_recorder_.record_count()); |
203 EXPECT_EQ(arraysize(kEvents), message_recorder_.message_count()); | 201 EXPECT_EQ(arraysize(kEvents), message_recorder_.message_count()); |
204 | 202 |
205 for (size_t i = 0; i < arraysize(kEvents); ++i) { | 203 for (size_t i = 0; i < arraysize(kEvents); ++i) { |
206 const IPC::Message& message = message_recorder_.message_at(i); | 204 const IPC::Message& message = message_recorder_.message_at(i); |
207 | 205 |
208 ASSERT_EQ(InputMsg_HandleInputEvent::ID, message.type()); | 206 ASSERT_EQ(InputMsg_HandleInputEvent::ID, message.type()); |
209 const WebInputEvent* event = NULL; | 207 InputMsg_HandleInputEvent::Param params; |
210 ui::LatencyInfo latency_info; | 208 EXPECT_TRUE(InputMsg_HandleInputEvent::Read(&message, ¶ms)); |
211 bool is_kbd_shortcut; | 209 const WebInputEvent* event = params.a; |
212 EXPECT_TRUE(InputMsg_HandleInputEvent::Read( | |
213 &message, &event, &latency_info, &is_kbd_shortcut)); | |
214 | 210 |
215 EXPECT_EQ(kEvents[i].size, event->size); | 211 EXPECT_EQ(kEvents[i].size, event->size); |
216 EXPECT_TRUE(memcmp(&kEvents[i], event, event->size) == 0); | 212 EXPECT_TRUE(memcmp(&kEvents[i], event, event->size) == 0); |
217 } | 213 } |
218 | 214 |
219 // Now reset everything, and test that DidHandleInputEvent is called. | 215 // Now reset everything, and test that DidHandleInputEvent is called. |
220 | 216 |
221 ipc_sink_.ClearMessages(); | 217 ipc_sink_.ClearMessages(); |
222 event_recorder_.Clear(); | 218 event_recorder_.Clear(); |
223 message_recorder_.Clear(); | 219 message_recorder_.Clear(); |
224 | 220 |
225 event_recorder_.set_handle_events(true); | 221 event_recorder_.set_handle_events(true); |
226 | 222 |
227 AddEventsToFilter(filter_.get(), kEvents, arraysize(kEvents)); | 223 AddEventsToFilter(filter_.get(), kEvents, arraysize(kEvents)); |
228 EXPECT_EQ(arraysize(kEvents), ipc_sink_.message_count()); | 224 EXPECT_EQ(arraysize(kEvents), ipc_sink_.message_count()); |
229 EXPECT_EQ(arraysize(kEvents), event_recorder_.record_count()); | 225 EXPECT_EQ(arraysize(kEvents), event_recorder_.record_count()); |
230 EXPECT_EQ(0U, message_recorder_.message_count()); | 226 EXPECT_EQ(0U, message_recorder_.message_count()); |
231 | 227 |
232 for (size_t i = 0; i < arraysize(kEvents); ++i) { | 228 for (size_t i = 0; i < arraysize(kEvents); ++i) { |
233 const IPC::Message* message = ipc_sink_.GetMessageAt(i); | 229 const IPC::Message* message = ipc_sink_.GetMessageAt(i); |
234 EXPECT_EQ(kTestRoutingID, message->routing_id()); | 230 EXPECT_EQ(kTestRoutingID, message->routing_id()); |
235 EXPECT_EQ(InputHostMsg_HandleInputEvent_ACK::ID, message->type()); | 231 EXPECT_EQ(InputHostMsg_HandleInputEvent_ACK::ID, message->type()); |
236 | 232 |
237 WebInputEvent::Type event_type = WebInputEvent::Undefined; | 233 InputHostMsg_HandleInputEvent_ACK::Param params; |
238 InputEventAckState ack_result = INPUT_EVENT_ACK_STATE_NOT_CONSUMED; | 234 EXPECT_TRUE(InputHostMsg_HandleInputEvent_ACK::Read(message, ¶ms)); |
239 ui::LatencyInfo latency_info; | 235 WebInputEvent::Type event_type = params.a; |
240 EXPECT_TRUE(InputHostMsg_HandleInputEvent_ACK::Read(message, | 236 InputEventAckState ack_result = params.b; |
241 &event_type, | |
242 &ack_result, | |
243 &latency_info)); | |
244 EXPECT_EQ(kEvents[i].type, event_type); | 237 EXPECT_EQ(kEvents[i].type, event_type); |
245 EXPECT_EQ(ack_result, INPUT_EVENT_ACK_STATE_CONSUMED); | 238 EXPECT_EQ(ack_result, INPUT_EVENT_ACK_STATE_CONSUMED); |
246 } | 239 } |
247 | 240 |
248 filter_->OnFilterRemoved(); | 241 filter_->OnFilterRemoved(); |
249 } | 242 } |
250 | 243 |
251 TEST_F(InputEventFilterTest, PreserveRelativeOrder) { | 244 TEST_F(InputEventFilterTest, PreserveRelativeOrder) { |
252 filter_->DidAddInputHandler(kTestRoutingID, NULL); | 245 filter_->DidAddInputHandler(kTestRoutingID, NULL); |
253 event_recorder_.set_send_to_widget(true); | 246 event_recorder_.set_send_to_widget(true); |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
296 | 289 |
297 // We should have sent all messages back to the main thread and preserved | 290 // We should have sent all messages back to the main thread and preserved |
298 // their relative order. | 291 // their relative order. |
299 ASSERT_EQ(message_recorder_.message_count(), messages.size()); | 292 ASSERT_EQ(message_recorder_.message_count(), messages.size()); |
300 for (size_t i = 0; i < messages.size(); ++i) { | 293 for (size_t i = 0; i < messages.size(); ++i) { |
301 EXPECT_EQ(message_recorder_.message_at(i).type(), messages[i].type()) << i; | 294 EXPECT_EQ(message_recorder_.message_at(i).type(), messages[i].type()) << i; |
302 } | 295 } |
303 } | 296 } |
304 | 297 |
305 } // namespace content | 298 } // namespace content |
OLD | NEW |