| 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 |