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

Side by Side Diff: content/common/input/gesture_event_stream_validator_unittest.cc

Issue 537733003: [Android] Enable input event stream validation (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: git cl format Created 6 years, 3 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2014 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 "content/common/input/gesture_event_stream_validator.h"
6
7 #include "content/common/input/synthetic_web_input_event_builders.h"
8 #include "testing/gtest/include/gtest/gtest.h"
9
10 using blink::WebInputEvent;
11 using blink::WebGestureEvent;
12
13 namespace content {
14 namespace {
15
16 const blink::WebGestureDevice kDefaultGestureDevice =
17 blink::WebGestureDeviceTouchscreen;
18
19 blink::WebGestureEvent Build(WebInputEvent::Type type) {
20 return SyntheticWebGestureEventBuilder::Build(type, kDefaultGestureDevice);
21 }
22
23 } // namespace
24
25 TEST(GestureEventStreamValidator, ValidScroll) {
26 GestureEventStreamValidator validator;
27 std::string error_msg;
28 WebGestureEvent event;
29
30 event = Build(WebInputEvent::GestureScrollBegin);
31 EXPECT_TRUE(validator.Validate(event, &error_msg));
32 EXPECT_TRUE(error_msg.empty());
33
34 event = Build(WebInputEvent::GestureScrollUpdate);
35 EXPECT_TRUE(validator.Validate(event, &error_msg));
36 EXPECT_TRUE(error_msg.empty());
37
38 event = Build(WebInputEvent::GestureScrollEnd);
39 EXPECT_TRUE(validator.Validate(event, &error_msg));
40 EXPECT_TRUE(error_msg.empty());
41 }
42
43 TEST(GestureEventStreamValidator, InvalidScroll) {
44 GestureEventStreamValidator validator;
45 std::string error_msg;
46 WebGestureEvent event;
47
48 // No preceding ScrollBegin.
49 event = Build(WebInputEvent::GestureScrollUpdate);
50 EXPECT_FALSE(validator.Validate(event, &error_msg));
51 EXPECT_FALSE(error_msg.empty());
52
53 // No preceding ScrollBegin.
54 event = Build(WebInputEvent::GestureScrollEnd);
55 EXPECT_FALSE(validator.Validate(event, &error_msg));
56 EXPECT_FALSE(error_msg.empty());
57
58 event = Build(WebInputEvent::GestureScrollBegin);
59 EXPECT_TRUE(validator.Validate(event, &error_msg));
60 EXPECT_TRUE(error_msg.empty());
61
62 // Already scrolling.
63 event = Build(WebInputEvent::GestureScrollBegin);
64 EXPECT_FALSE(validator.Validate(event, &error_msg));
65 EXPECT_FALSE(error_msg.empty());
66
67 event = Build(WebInputEvent::GestureScrollEnd);
68 EXPECT_TRUE(validator.Validate(event, &error_msg));
69 EXPECT_TRUE(error_msg.empty());
70
71 // Scroll already ended.
72 event = Build(WebInputEvent::GestureScrollEnd);
73 EXPECT_FALSE(validator.Validate(event, &error_msg));
74 EXPECT_FALSE(error_msg.empty());
75 }
76
77 TEST(GestureEventStreamValidator, ValidFling) {
78 GestureEventStreamValidator validator;
79 std::string error_msg;
80 WebGestureEvent event;
81
82 event = Build(WebInputEvent::GestureScrollBegin);
83 EXPECT_TRUE(validator.Validate(event, &error_msg));
84 EXPECT_TRUE(error_msg.empty());
85
86 event = Build(WebInputEvent::GestureFlingStart);
87 EXPECT_TRUE(validator.Validate(event, &error_msg));
88 EXPECT_TRUE(error_msg.empty());
89 }
90
91 TEST(GestureEventStreamValidator, InvalidFling) {
92 GestureEventStreamValidator validator;
93 std::string error_msg;
94 WebGestureEvent event;
95
96 // No preceding ScrollBegin.
97 event = Build(WebInputEvent::GestureFlingStart);
98 EXPECT_FALSE(validator.Validate(event, &error_msg));
99 EXPECT_FALSE(error_msg.empty());
100 }
101
102 TEST(GestureEventStreamValidator, ValidPinch) {
103 GestureEventStreamValidator validator;
104 std::string error_msg;
105 WebGestureEvent event;
106
107 event = Build(WebInputEvent::GestureScrollBegin);
108 EXPECT_TRUE(validator.Validate(event, &error_msg));
109 EXPECT_TRUE(error_msg.empty());
110
111 event = Build(WebInputEvent::GesturePinchBegin);
112 EXPECT_TRUE(validator.Validate(event, &error_msg));
113 EXPECT_TRUE(error_msg.empty());
114
115 event = Build(WebInputEvent::GesturePinchUpdate);
116 EXPECT_TRUE(validator.Validate(event, &error_msg));
117 EXPECT_TRUE(error_msg.empty());
118
119 event = Build(WebInputEvent::GesturePinchEnd);
120 EXPECT_TRUE(validator.Validate(event, &error_msg));
121 EXPECT_TRUE(error_msg.empty());
122
123 event = Build(WebInputEvent::GestureScrollEnd);
124 EXPECT_TRUE(validator.Validate(event, &error_msg));
125 EXPECT_TRUE(error_msg.empty());
126 }
127
128 TEST(GestureEventStreamValidator, InvalidPinch) {
129 GestureEventStreamValidator validator;
130 std::string error_msg;
131 WebGestureEvent event;
132
133 // No preceding ScrollBegin.
134 event = Build(WebInputEvent::GesturePinchBegin);
135 EXPECT_FALSE(validator.Validate(event, &error_msg));
136 EXPECT_FALSE(error_msg.empty());
137
138 event = Build(WebInputEvent::GesturePinchEnd);
139 EXPECT_FALSE(validator.Validate(event, &error_msg));
140 EXPECT_FALSE(error_msg.empty());
141
142 event = Build(WebInputEvent::GestureScrollBegin);
143 EXPECT_TRUE(validator.Validate(event, &error_msg));
tdresser 2014/09/04 21:25:00 This is one of very few places where you don't che
jdduke (slow) 2014/09/04 22:48:56 Done.
144
145 // No preceding PinchBegin.
146 event = Build(WebInputEvent::GesturePinchUpdate);
147 EXPECT_FALSE(validator.Validate(event, &error_msg));
148 EXPECT_FALSE(error_msg.empty());
149
150 // Already scrolling.
151 event = Build(WebInputEvent::GestureScrollBegin);
152 EXPECT_FALSE(validator.Validate(event, &error_msg));
tdresser 2014/09/04 21:25:00 ditto
jdduke (slow) 2014/09/04 22:48:56 Done.
153
154 // No preceding PinchBegin.
155 event = Build(WebInputEvent::GesturePinchEnd);
156 EXPECT_FALSE(validator.Validate(event, &error_msg));
157 EXPECT_FALSE(error_msg.empty());
158 }
159
160 TEST(GestureEventStreamValidator, ValidTap) {
161 GestureEventStreamValidator validator;
162 std::string error_msg;
163 WebGestureEvent event;
164
165 event = Build(WebInputEvent::GestureTapDown);
166 EXPECT_TRUE(validator.Validate(event, &error_msg));
167 EXPECT_TRUE(error_msg.empty());
168
169 event = Build(WebInputEvent::GestureTap);
170 EXPECT_TRUE(validator.Validate(event, &error_msg));
171 EXPECT_TRUE(error_msg.empty());
172
173 event = Build(WebInputEvent::GestureTapDown);
174 EXPECT_TRUE(validator.Validate(event, &error_msg));
175 EXPECT_TRUE(error_msg.empty());
176
177 event = Build(WebInputEvent::GestureTapCancel);
178 EXPECT_TRUE(validator.Validate(event, &error_msg));
179 EXPECT_TRUE(error_msg.empty());
180
181 event = Build(WebInputEvent::GestureTapDown);
182 EXPECT_TRUE(validator.Validate(event, &error_msg));
183 EXPECT_TRUE(error_msg.empty());
184
185 event = Build(WebInputEvent::GestureDoubleTap);
186 EXPECT_TRUE(validator.Validate(event, &error_msg));
187 EXPECT_TRUE(error_msg.empty());
188 }
189
190 TEST(GestureEventStreamValidator, InvalidTap) {
191 GestureEventStreamValidator validator;
192 std::string error_msg;
193 WebGestureEvent event;
194
195 // No preceding TapDown.
196 event = Build(WebInputEvent::GestureTap);
197 EXPECT_FALSE(validator.Validate(event, &error_msg));
198 EXPECT_FALSE(error_msg.empty());
199
200 event = Build(WebInputEvent::GestureTapCancel);
201 EXPECT_FALSE(validator.Validate(event, &error_msg));
202 EXPECT_FALSE(error_msg.empty());
203
204 event = Build(WebInputEvent::GestureDoubleTap);
205 EXPECT_FALSE(validator.Validate(event, &error_msg));
206 EXPECT_FALSE(error_msg.empty());
207
208 // TapDown already terminated.
209 event = Build(WebInputEvent::GestureTapDown);
210 EXPECT_TRUE(validator.Validate(event, &error_msg));
211 EXPECT_TRUE(error_msg.empty());
212
213 event = Build(WebInputEvent::GestureDoubleTap);
214 EXPECT_TRUE(validator.Validate(event, &error_msg));
215 EXPECT_TRUE(error_msg.empty());
216
217 event = Build(WebInputEvent::GestureDoubleTap);
218 EXPECT_FALSE(validator.Validate(event, &error_msg));
219 EXPECT_FALSE(error_msg.empty());
220 }
221
222 } // namespace content
OLDNEW
« no previous file with comments | « content/common/input/gesture_event_stream_validator.h ('k') | content/common/input/touch_event_stream_validator.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698