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

Side by Side Diff: blimp/net/input_message_unittest.cc

Issue 1426993008: Serialize a subset of WebInputEvents to protobufs. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Removed unused type enum Created 5 years, 1 month 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include <vector>
6
7 #include "base/logging.h"
8 #include "base/memory/scoped_ptr.h"
9 #include "blimp/common/proto/input.pb.h"
10 #include "blimp/net/blimp_message_processor.h"
11 #include "blimp/net/input_message_generator.h"
12 #include "blimp/net/input_message_processor.h"
13 #include "testing/gtest/include/gtest/gtest.h"
14 #include "third_party/WebKit/public/platform/WebGestureDevice.h"
15 #include "third_party/WebKit/public/web/WebInputEvent.h"
16
17 namespace blimp {
18 namespace {
19
20 void ValidateWebInputEventRoundTripping(const blink::WebInputEvent& event) {
21 InputMessageGenerator generator;
22 InputMessageProcessor processor;
23
24 InputMessage proto;
25 EXPECT_TRUE(generator.GenerateMessage(&event, &proto));
26 scoped_ptr<blink::WebInputEvent> new_event = processor.ProcessMessage(proto);
27
28 EXPECT_NE(nullptr, new_event) << "Failure for " << event.type;
29 EXPECT_EQ(event.size, new_event->size) << "Failure for " << event.type;
30 EXPECT_EQ(0, memcmp(&event, new_event.get(), event.size)) << "Failure for "
31 << event.type;
32 }
33
34 } // namespace
35
36 TEST(InputMessageTest, TestWebGestureEvents) {
Wez 2015/11/23 22:41:41 nit: I'd recommend breaking this into individual t
nyquist 2015/11/24 08:12:43 Agreed. That way you can even more easily identify
David Trainor- moved to gerrit 2015/11/24 20:08:28 Done.
37 std::vector<blink::WebGestureEvent> events;
38
39 // Set the custom parameters for each type of event.
40 {
41 blink::WebGestureEvent event;
42 event.type = blink::WebGestureEvent::Type::GestureScrollBegin;
43 event.data.scrollBegin.deltaXHint = 2.34f;
44 event.data.scrollBegin.deltaYHint = 3.45f;
45 event.data.scrollBegin.targetViewport = true;
46 events.push_back(event);
47 }
48
49 {
50 blink::WebGestureEvent event;
51 event.type = blink::WebGestureEvent::Type::GestureScrollEnd;
52 events.push_back(event);
53 }
54
55 {
56 blink::WebGestureEvent event;
57 event.type = blink::WebGestureEvent::Type::GestureScrollUpdate;
58 event.data.scrollUpdate.deltaX = 2.34f;
59 event.data.scrollUpdate.deltaY = 3.45f;
60 event.data.scrollUpdate.velocityX = 4.56f;
61 event.data.scrollUpdate.velocityY = 5.67f;
62 event.data.scrollUpdate.previousUpdateInSequencePrevented = true;
63 event.data.scrollUpdate.preventPropagation = true;
64 event.data.scrollUpdate.inertial = true;
65 events.push_back(event);
66 }
67
68 {
69 blink::WebGestureEvent event;
70 event.type = blink::WebGestureEvent::Type::GestureFlingStart;
71 event.data.flingStart.velocityX = 2.34f;
72 event.data.flingStart.velocityY = 3.45f;
73 event.data.flingStart.targetViewport = true;
74 events.push_back(event);
75 }
76
77 {
78 blink::WebGestureEvent event;
79 event.type = blink::WebGestureEvent::Type::GestureFlingCancel;
80 event.data.flingCancel.preventBoosting = true;
81 events.push_back(event);
82 }
83
84 {
85 blink::WebGestureEvent event;
86 event.type = blink::WebGestureEvent::Type::GestureTap;
87 event.data.tap.tapCount = 3;
88 event.data.tap.width = 2.34f;
89 event.data.tap.height = 3.45f;
90 events.push_back(event);
91 }
92
93 {
94 blink::WebGestureEvent event;
95 event.type = blink::WebGestureEvent::Type::GesturePinchBegin;
96 events.push_back(event);
97 }
98
99 {
100 blink::WebGestureEvent event;
101 event.type = blink::WebGestureEvent::Type::GesturePinchEnd;
102 events.push_back(event);
103 }
104
105 {
106 blink::WebGestureEvent event;
107 event.type = blink::WebGestureEvent::Type::GesturePinchUpdate;
108 event.data.pinchUpdate.zoomDisabled = true;
109 event.data.pinchUpdate.scale = 2.34f;
110 events.push_back(event);
111 }
112
113 for (auto& event : events) {
114 // Set the common parameters.
115 event.timeStampSeconds = 1.23;
116 event.x = 2;
117 event.y = 3;
118 event.globalX = 4;
119 event.globalY = 5;
120 event.sourceDevice = blink::WebGestureDevice::WebGestureDeviceTouchscreen;
121
122 // Validate that the event is the exact same after serialization and
123 // deserialization.
124 ValidateWebInputEventRoundTripping(event);
125 }
126 }
127
128 } // namespace blimp
OLDNEW
« blimp/net/input_message_processor.cc ('K') | « blimp/net/input_message_processor.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698