| Index: content/renderer/input/input_event_filter_unittest.cc
|
| diff --git a/content/renderer/input/input_event_filter_unittest.cc b/content/renderer/input/input_event_filter_unittest.cc
|
| index 79cb66c803a5fed9aaf6a3ba26152a0ec972e971..8871a990056d9e2789521a210feb023ae0906d32 100644
|
| --- a/content/renderer/input/input_event_filter_unittest.cc
|
| +++ b/content/renderer/input/input_event_filter_unittest.cc
|
| @@ -19,6 +19,7 @@
|
|
|
| using blink::WebInputEvent;
|
| using blink::WebMouseEvent;
|
| +using blink::WebTouchEvent;
|
|
|
| namespace content {
|
| namespace {
|
| @@ -108,8 +109,9 @@ void AddMessagesToFilter(IPC::MessageFilter* message_filter,
|
| base::MessageLoop::current()->RunUntilIdle();
|
| }
|
|
|
| +template <typename T>
|
| void AddEventsToFilter(IPC::MessageFilter* message_filter,
|
| - const WebMouseEvent events[],
|
| + const T events[],
|
| size_t count) {
|
| std::vector<IPC::Message> messages;
|
| for (size_t i = 0; i < count; ++i) {
|
| @@ -294,4 +296,44 @@ TEST_F(InputEventFilterTest, PreserveRelativeOrder) {
|
| }
|
| }
|
|
|
| +// Test once we receive the inputevent_acks, they still have the same
|
| +// unique_event_id as the webtouchevent.
|
| +TEST_F(InputEventFilterTest, WebTouchEventAck) {
|
| + WebTouchEvent touch1;
|
| + touch1.type = WebInputEvent::TouchStart;
|
| + touch1.uniqueTouchEventId = 123456;
|
| +
|
| + WebTouchEvent touch2;
|
| + touch2.type = WebInputEvent::TouchMove;
|
| + touch2.uniqueTouchEventId = 234567;
|
| +
|
| + WebTouchEvent kEvents[2] = {touch1, touch2};
|
| +
|
| + AddEventsToFilter(filter_.get(), kEvents, arraysize(kEvents));
|
| + EXPECT_EQ(0U, ipc_sink_.message_count());
|
| + EXPECT_EQ(0U, event_recorder_.record_count());
|
| + EXPECT_EQ(0U, message_recorder_.message_count());
|
| +
|
| + filter_->DidAddInputHandler(kTestRoutingID, NULL);
|
| +
|
| + AddEventsToFilter(filter_.get(), kEvents, arraysize(kEvents));
|
| + ASSERT_EQ(arraysize(kEvents), ipc_sink_.message_count());
|
| + ASSERT_EQ(arraysize(kEvents), event_recorder_.record_count());
|
| + EXPECT_EQ(0U, message_recorder_.message_count());
|
| +
|
| + for (size_t i = 0; i < arraysize(kEvents); ++i) {
|
| + const IPC::Message* message = ipc_sink_.GetMessageAt(i);
|
| + EXPECT_EQ(kTestRoutingID, message->routing_id());
|
| + EXPECT_EQ(InputHostMsg_HandleInputEvent_ACK::ID, message->type());
|
| +
|
| + InputHostMsg_HandleInputEvent_ACK::Param params;
|
| + EXPECT_TRUE(InputHostMsg_HandleInputEvent_ACK::Read(message, ¶ms));
|
| + WebInputEvent::Type event_type = get<0>(params).type;
|
| + uint64 unique_event_id = get<0>(params).unique_touch_event_id;
|
| +
|
| + EXPECT_EQ(kEvents[i].type, event_type);
|
| + EXPECT_EQ(kEvents[i].uniqueTouchEventId, unique_event_id);
|
| + }
|
| +}
|
| +
|
| } // namespace content
|
|
|