Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1589)

Unified Diff: content/renderer/input/input_event_filter_unittest.cc

Issue 999423003: Set the unique_event_id when converting from TouchEvent to WebTouchEvent (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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, &params));
+ 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

Powered by Google App Engine
This is Rietveld 408576698