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

Side by Side Diff: blimp/common/input/input_event_conversions_unittest.cc

Issue 1426993008: Serialize a subset of WebInputEvents to protobufs. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased 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 "blimp/common/input/input_event_conversions.h"
6
7 #include "base/logging.h"
8 #include "base/memory/scoped_ptr.h"
9 #include "blimp/common/proto/input.pb.h"
10 #include "testing/gtest/include/gtest/gtest.h"
11 #include "third_party/WebKit/public/platform/WebGestureDevice.h"
12 #include "third_party/WebKit/public/web/WebInputEvent.h"
13
14 namespace blimp {
15 namespace {
16
17 void ValidateWebInputEventSerialization(const blink::WebInputEvent& event) {
Kevin M 2015/11/12 00:53:50 This does more than just serialization... Maybe yo
David Trainor- moved to gerrit 2015/11/12 16:34:28 good idea
18 InputMessage proto;
19 WebInputEventToProto(event, &proto);
20
21 scoped_ptr<blink::WebInputEvent> new_event =
22 ProtoToWebInputEvent(proto);
23
24 EXPECT_NE(nullptr, new_event);
25 EXPECT_EQ(event.size, new_event->size);
26 EXPECT_EQ(0, memcmp(&event, new_event.get(), event.size));
27 }
28
29 blink::WebGestureEvent BuildBasicTestWebGestureEvent() {
30 blink::WebGestureEvent event;
31 event.timeStampSeconds = 1.23;
32 event.x = 2;
33 event.y = 3;
34 event.globalX = 4;
35 event.globalY = 5;
36 event.sourceDevice = blink::WebGestureDevice::WebGestureDeviceTouchpad;
37 return event;
38 }
39
40 } // namespace
41
42 TEST(InputEventConversionsTest, TestWebInputEventTypeSerialization) {
43 for (int type = blink::WebInputEvent::Type::TypeFirst;
44 type != blink::WebInputEvent::Type::TypeLast; type++) {
45 scoped_ptr<blink::WebInputEvent> event;
46 // As more input event types are serialized, add the methods to create those
47 // types of WebInputEvent objects here.
48 if (type >= blink::WebInputEvent::Type::GestureTypeFirst &&
49 type <= blink::WebInputEvent::Type::GestureTypeLast) {
50 event.reset(new blink::WebGestureEvent);
51 } else {
52 continue;
53 }
54 event->type = static_cast<blink::WebInputEvent::Type>(type);
55 ValidateWebInputEventSerialization(*event);
56 }
57 }
58
59 TEST(InputEventConversionsTest, TestWebGestureDeviceSerialization) {
60 blink::WebGestureEvent event;
61 event.type = blink::WebGestureEvent::Type::GestureTap;
62
63 for (int source = blink::WebGestureDevice::WebGestureDeviceUninitialized;
64 source != blink::WebGestureDevice::WebGestureDeviceTouchscreen;
65 source++) {
66 event.sourceDevice = static_cast<blink::WebGestureDevice>(source);
67 ValidateWebInputEventSerialization(event);
68 }
69 }
70
71 TEST(InputEventConversionsTest, TestWebGestureEvents) {
72 {
Kevin M 2015/11/12 00:53:50 I recommend just creating a WebGestureEvent array
David Trainor- moved to gerrit 2015/11/12 16:34:28 Yeah this looks cleaner :).
73 blink::WebGestureEvent src = BuildBasicTestWebGestureEvent();
74 src.type = blink::WebGestureEvent::Type::GestureScrollBegin;
75 src.data.scrollBegin.deltaXHint = 2.34f;
76 src.data.scrollBegin.deltaYHint = 3.45f;
77 src.data.scrollBegin.targetViewport = true;
78 ValidateWebInputEventSerialization(src);
79 }
80
81 {
82 blink::WebGestureEvent src = BuildBasicTestWebGestureEvent();
83 src.type = blink::WebGestureEvent::Type::GestureScrollEnd;
84 ValidateWebInputEventSerialization(src);
85 }
86
87 {
88 blink::WebGestureEvent src = BuildBasicTestWebGestureEvent();
89 src.type = blink::WebGestureEvent::Type::GestureScrollUpdate;
90 src.data.scrollUpdate.deltaX = 2.34f;
91 src.data.scrollUpdate.deltaY = 3.45f;
92 src.data.scrollUpdate.velocityX = 4.56f;
93 src.data.scrollUpdate.velocityY = 5.67f;
94 src.data.scrollUpdate.previousUpdateInSequencePrevented = true;
95 src.data.scrollUpdate.preventPropagation = true;
96 src.data.scrollUpdate.inertial = true;
97 ValidateWebInputEventSerialization(src);
98 }
99
100 {
101 blink::WebGestureEvent src = BuildBasicTestWebGestureEvent();
102 src.type = blink::WebGestureEvent::Type::GestureFlingStart;
103 src.data.flingStart.velocityX = 2.34f;
104 src.data.flingStart.velocityY = 3.45f;
105 src.data.flingStart.targetViewport = true;
106 ValidateWebInputEventSerialization(src);
107 }
108
109 {
110 blink::WebGestureEvent src = BuildBasicTestWebGestureEvent();
111 src.type = blink::WebGestureEvent::Type::GestureFlingCancel;
112 src.data.flingCancel.preventBoosting = true;
113 ValidateWebInputEventSerialization(src);
114 }
115
116 {
117 blink::WebGestureEvent src = BuildBasicTestWebGestureEvent();
118 src.type = blink::WebGestureEvent::Type::GestureShowPress;
119 src.data.showPress.width = 2.34f;
120 src.data.showPress.height = 3.45f;
121 ValidateWebInputEventSerialization(src);
122 }
123
124 {
125 blink::WebGestureEvent src = BuildBasicTestWebGestureEvent();
126 src.type = blink::WebGestureEvent::Type::GestureTap;
127 src.data.tap.tapCount = 3;
128 src.data.tap.width = 2.34f;
129 src.data.tap.height = 3.45f;
130 ValidateWebInputEventSerialization(src);
131 }
132
133 {
134 blink::WebGestureEvent src = BuildBasicTestWebGestureEvent();
135 src.type = blink::WebGestureEvent::Type::GestureTapUnconfirmed;
136 src.data.tap.tapCount = 3;
137 src.data.tap.width = 2.34f;
138 src.data.tap.height = 3.45f;
139 ValidateWebInputEventSerialization(src);
140 }
141
142 {
143 blink::WebGestureEvent src = BuildBasicTestWebGestureEvent();
144 src.type = blink::WebGestureEvent::Type::GestureTapDown;
145 src.data.tapDown.width = 2.34f;
146 src.data.tapDown.height = 3.45f;
147 ValidateWebInputEventSerialization(src);
148 }
149
150 {
151 blink::WebGestureEvent src = BuildBasicTestWebGestureEvent();
152 src.type = blink::WebGestureEvent::Type::GestureTapCancel;
153 ValidateWebInputEventSerialization(src);
154 }
155
156 {
157 blink::WebGestureEvent src = BuildBasicTestWebGestureEvent();
158 src.type = blink::WebGestureEvent::Type::GestureDoubleTap;
159 src.data.tap.tapCount = 3;
160 src.data.tap.width = 2.34f;
161 src.data.tap.height = 3.45f;
162 ValidateWebInputEventSerialization(src);
163 }
164
165 {
166 blink::WebGestureEvent src = BuildBasicTestWebGestureEvent();
167 src.type = blink::WebGestureEvent::Type::GestureTwoFingerTap;
168 src.data.twoFingerTap.firstFingerWidth = 2.34f;
169 src.data.twoFingerTap.firstFingerHeight = 3.45f;
170 ValidateWebInputEventSerialization(src);
171 }
172
173 {
174 blink::WebGestureEvent src = BuildBasicTestWebGestureEvent();
175 src.type = blink::WebGestureEvent::Type::GestureLongPress;
176 src.data.longPress.width = 2.34f;
177 src.data.longPress.height = 3.45f;
178 ValidateWebInputEventSerialization(src);
179 }
180
181 {
182 blink::WebGestureEvent src = BuildBasicTestWebGestureEvent();
183 src.type = blink::WebGestureEvent::Type::GestureLongTap;
184 ValidateWebInputEventSerialization(src);
185 }
186
187 {
188 blink::WebGestureEvent src = BuildBasicTestWebGestureEvent();
189 src.type = blink::WebGestureEvent::Type::GesturePinchBegin;
190 ValidateWebInputEventSerialization(src);
191 }
192
193 {
194 blink::WebGestureEvent src = BuildBasicTestWebGestureEvent();
195 src.type = blink::WebGestureEvent::Type::GesturePinchEnd;
196 src.timeStampSeconds = 1.23;
197 ValidateWebInputEventSerialization(src);
198 }
199
200 {
201 blink::WebGestureEvent src = BuildBasicTestWebGestureEvent();
202 src.type = blink::WebGestureEvent::Type::GesturePinchUpdate;
203 src.data.pinchUpdate.zoomDisabled = true;
204 src.data.pinchUpdate.scale = 2.34f;
205 ValidateWebInputEventSerialization(src);
206 }
207 }
208
209 } // namespace blimp
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698