diff options
Diffstat (limited to 'chromium/content/renderer/input/input_event_filter_unittest.cc')
-rw-r--r-- | chromium/content/renderer/input/input_event_filter_unittest.cc | 66 |
1 files changed, 26 insertions, 40 deletions
diff --git a/chromium/content/renderer/input/input_event_filter_unittest.cc b/chromium/content/renderer/input/input_event_filter_unittest.cc index a131ceb47dc..a234e793fdc 100644 --- a/chromium/content/renderer/input/input_event_filter_unittest.cc +++ b/chromium/content/renderer/input/input_event_filter_unittest.cc @@ -8,10 +8,13 @@ #include "base/bind.h" #include "base/message_loop/message_loop.h" +#include "content/common/input/synthetic_web_input_event_builders.h" #include "content/common/input_messages.h" #include "content/common/view_messages.h" #include "content/renderer/input/input_event_filter.h" +#include "ipc/ipc_listener.h" #include "ipc/ipc_test_sink.h" +#include "ipc/message_filter.h" #include "testing/gtest/include/gtest/gtest.h" using blink::WebInputEvent; @@ -96,18 +99,7 @@ class IPCMessageRecorder : public IPC::Listener { std::vector<IPC::Message> messages_; }; -void InitMouseEvent(WebMouseEvent* event, WebInputEvent::Type type, - int x, int y) { - // Avoid valgrind false positives by initializing memory completely. - memset(event, 0, sizeof(*event)); - - new (event) WebMouseEvent(); - event->type = type; - event->x = x; - event->y = y; -} - -void AddMessagesToFilter(IPC::ChannelProxy::MessageFilter* message_filter, +void AddMessagesToFilter(IPC::MessageFilter* message_filter, const std::vector<IPC::Message>& events) { for (size_t i = 0; i < events.size(); ++i) { message_filter->OnMessageReceived(events[i]); @@ -116,7 +108,7 @@ void AddMessagesToFilter(IPC::ChannelProxy::MessageFilter* message_filter, base::MessageLoop::current()->RunUntilIdle(); } -void AddEventsToFilter(IPC::ChannelProxy::MessageFilter* message_filter, +void AddEventsToFilter(IPC::MessageFilter* message_filter, const WebMouseEvent events[], size_t count) { std::vector<IPC::Message> messages; @@ -163,10 +155,11 @@ class InputEventFilterTest : public testing::Test { }; TEST_F(InputEventFilterTest, Basic) { - WebMouseEvent kEvents[3]; - InitMouseEvent(&kEvents[0], WebInputEvent::MouseDown, 10, 10); - InitMouseEvent(&kEvents[1], WebInputEvent::MouseMove, 20, 20); - InitMouseEvent(&kEvents[2], WebInputEvent::MouseUp, 30, 30); + WebMouseEvent kEvents[3] = { + SyntheticWebMouseEventBuilder::Build(WebMouseEvent::MouseMove, 10, 10, 0), + SyntheticWebMouseEventBuilder::Build(WebMouseEvent::MouseMove, 20, 20, 0), + SyntheticWebMouseEventBuilder::Build(WebMouseEvent::MouseMove, 30, 30, 0) + }; AddEventsToFilter(filter_.get(), kEvents, arraysize(kEvents)); EXPECT_EQ(0U, ipc_sink_.message_count()); @@ -185,13 +178,11 @@ TEST_F(InputEventFilterTest, Basic) { EXPECT_EQ(kTestRoutingID, message->routing_id()); EXPECT_EQ(InputHostMsg_HandleInputEvent_ACK::ID, message->type()); - WebInputEvent::Type event_type = WebInputEvent::Undefined; - InputEventAckState ack_result = INPUT_EVENT_ACK_STATE_NOT_CONSUMED; - ui::LatencyInfo latency_info; - EXPECT_TRUE(InputHostMsg_HandleInputEvent_ACK::Read(message, - &event_type, - &ack_result, - &latency_info)); + InputHostMsg_HandleInputEvent_ACK::Param params; + EXPECT_TRUE(InputHostMsg_HandleInputEvent_ACK::Read(message, ¶ms)); + WebInputEvent::Type event_type = params.a.type; + InputEventAckState ack_result = params.a.state; + EXPECT_EQ(kEvents[i].type, event_type); EXPECT_EQ(ack_result, INPUT_EVENT_ACK_STATE_NO_CONSUMER_EXISTS); @@ -213,11 +204,9 @@ TEST_F(InputEventFilterTest, Basic) { const IPC::Message& message = message_recorder_.message_at(i); ASSERT_EQ(InputMsg_HandleInputEvent::ID, message.type()); - const WebInputEvent* event = NULL; - ui::LatencyInfo latency_info; - bool is_kbd_shortcut; - EXPECT_TRUE(InputMsg_HandleInputEvent::Read( - &message, &event, &latency_info, &is_kbd_shortcut)); + InputMsg_HandleInputEvent::Param params; + EXPECT_TRUE(InputMsg_HandleInputEvent::Read(&message, ¶ms)); + const WebInputEvent* event = params.a; EXPECT_EQ(kEvents[i].size, event->size); EXPECT_TRUE(memcmp(&kEvents[i], event, event->size) == 0); @@ -241,13 +230,10 @@ TEST_F(InputEventFilterTest, Basic) { EXPECT_EQ(kTestRoutingID, message->routing_id()); EXPECT_EQ(InputHostMsg_HandleInputEvent_ACK::ID, message->type()); - WebInputEvent::Type event_type = WebInputEvent::Undefined; - InputEventAckState ack_result = INPUT_EVENT_ACK_STATE_NOT_CONSUMED; - ui::LatencyInfo latency_info; - EXPECT_TRUE(InputHostMsg_HandleInputEvent_ACK::Read(message, - &event_type, - &ack_result, - &latency_info)); + InputHostMsg_HandleInputEvent_ACK::Param params; + EXPECT_TRUE(InputHostMsg_HandleInputEvent_ACK::Read(message, ¶ms)); + WebInputEvent::Type event_type = params.a.type; + InputEventAckState ack_result = params.a.state; EXPECT_EQ(kEvents[i].type, event_type); EXPECT_EQ(ack_result, INPUT_EVENT_ACK_STATE_CONSUMED); } @@ -260,10 +246,10 @@ TEST_F(InputEventFilterTest, PreserveRelativeOrder) { event_recorder_.set_send_to_widget(true); - WebMouseEvent mouse_down; - mouse_down.type = WebMouseEvent::MouseDown; - WebMouseEvent mouse_up; - mouse_up.type = WebMouseEvent::MouseUp; + WebMouseEvent mouse_down = + SyntheticWebMouseEventBuilder::Build(WebMouseEvent::MouseDown); + WebMouseEvent mouse_up = + SyntheticWebMouseEventBuilder::Build(WebMouseEvent::MouseUp); std::vector<IPC::Message> messages; messages.push_back(InputMsg_HandleInputEvent(kTestRoutingID, |