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

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

Issue 2111593003: Decouple EventWithLatencyInfo from WebInputEventTraits (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Bug reference + web_contents_impl iwyu to .cc Created 4 years, 5 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
1 // Copyright 2014 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/common/input/web_input_event_traits.h" 5 #include "content/common/input/web_input_event_traits.h"
6 6
7 #include <limits> 7 #include <limits>
8 8
9 #include "content/common/input/event_with_latency_info.h"
9 #include "testing/gtest/include/gtest/gtest.h" 10 #include "testing/gtest/include/gtest/gtest.h"
10 #include "third_party/WebKit/public/web/WebInputEvent.h" 11 #include "third_party/WebKit/public/web/WebInputEvent.h"
11 12
12 using blink::WebGestureEvent; 13 using blink::WebGestureEvent;
13 using blink::WebInputEvent; 14 using blink::WebInputEvent;
14 using blink::WebKeyboardEvent; 15 using blink::WebKeyboardEvent;
15 using blink::WebMouseEvent; 16 using blink::WebMouseEvent;
16 using blink::WebMouseWheelEvent; 17 using blink::WebMouseWheelEvent;
17 using blink::WebTouchEvent; 18 using blink::WebTouchEvent;
18 using blink::WebTouchPoint; 19 using blink::WebTouchPoint;
19 using std::numeric_limits; 20 using std::numeric_limits;
20 21
21 namespace content { 22 namespace content {
22 namespace { 23 namespace {
23 24
25 // TODO(tapted): Move the Coalesce tests to event_with_latency_info_unittest.cc.
26 // Merge this test harness into EventWithLatencyInfoTest.
27 // http://crbug.com/625000.
24 class WebInputEventTraitsTest : public testing::Test { 28 class WebInputEventTraitsTest : public testing::Test {
25 protected: 29 protected:
26 static WebTouchPoint CreateTouchPoint(WebTouchPoint::State state, int id) { 30 static WebTouchPoint CreateTouchPoint(WebTouchPoint::State state, int id) {
27 WebTouchPoint touch; 31 WebTouchPoint touch;
28 touch.state = state; 32 touch.state = state;
29 touch.id = id; 33 touch.id = id;
30 return touch; 34 return touch;
31 } 35 }
32 36
33 static WebTouchEvent CreateTouch(WebInputEvent::Type type) { 37 static TouchEventWithLatencyInfo CreateTouch(WebInputEvent::Type type) {
34 return CreateTouch(type, 1); 38 return CreateTouch(type, 1);
35 } 39 }
36 40
37 static WebTouchEvent CreateTouch(WebInputEvent::Type type, 41 static TouchEventWithLatencyInfo CreateTouch(WebInputEvent::Type type,
38 unsigned touch_count) { 42 unsigned touch_count) {
39 WebTouchEvent event; 43 WebTouchEvent event;
40 event.touchesLength = touch_count; 44 event.touchesLength = touch_count;
41 event.type = type; 45 event.type = type;
42 return event; 46 return TouchEventWithLatencyInfo(event);
43 } 47 }
44 48
45 static WebGestureEvent CreateGesture(WebInputEvent::Type type, 49 static GestureEventWithLatencyInfo CreateGesture(WebInputEvent::Type type,
46 float x, 50 float x,
47 float y) { 51 float y) {
48 WebGestureEvent event; 52 WebGestureEvent event;
49 event.type = type; 53 event.type = type;
50 event.x = x; 54 event.x = x;
51 event.y = y; 55 event.y = y;
52 return event; 56 return GestureEventWithLatencyInfo(event);
53 } 57 }
54 58
55 static WebMouseWheelEvent CreateMouseWheel(float deltaX, float deltaY) { 59 static MouseWheelEventWithLatencyInfo CreateMouseWheel(float deltaX,
60 float deltaY) {
56 WebMouseWheelEvent event; 61 WebMouseWheelEvent event;
57 event.type = WebInputEvent::MouseWheel; 62 event.type = WebInputEvent::MouseWheel;
58 event.deltaX = deltaX; 63 event.deltaX = deltaX;
59 event.deltaY = deltaY; 64 event.deltaY = deltaY;
60 return event; 65 return MouseWheelEventWithLatencyInfo(event);
61 } 66 }
62 }; 67 };
63 68
69 template <class T>
70 bool CanCoalesce(const T& event_to_coalesce, const T& event) {
71 return event.CanCoalesceWith(event_to_coalesce);
72 }
73
74 template <class T>
75 void Coalesce(const T& event_to_coalesce, T* event) {
76 return event->CoalesceWith(event_to_coalesce);
77 }
78
64 TEST_F(WebInputEventTraitsTest, TouchEventCoalescing) { 79 TEST_F(WebInputEventTraitsTest, TouchEventCoalescing) {
65 WebTouchEvent touch0 = CreateTouch(WebInputEvent::TouchStart); 80 TouchEventWithLatencyInfo touch0 = CreateTouch(WebInputEvent::TouchStart);
66 WebTouchEvent touch1 = CreateTouch(WebInputEvent::TouchMove); 81 TouchEventWithLatencyInfo touch1 = CreateTouch(WebInputEvent::TouchMove);
67 82
68 // Non touch-moves won't coalesce. 83 // Non touch-moves won't coalesce.
69 EXPECT_FALSE(WebInputEventTraits::CanCoalesce(touch0, touch0)); 84 EXPECT_FALSE(CanCoalesce(touch0, touch0));
70 85
71 // Touches of different types won't coalesce. 86 // Touches of different types won't coalesce.
72 EXPECT_FALSE(WebInputEventTraits::CanCoalesce(touch0, touch1)); 87 EXPECT_FALSE(CanCoalesce(touch0, touch1));
73 88
74 // Touch moves with idential touch lengths and touch ids should coalesce. 89 // Touch moves with idential touch lengths and touch ids should coalesce.
75 EXPECT_TRUE(WebInputEventTraits::CanCoalesce(touch1, touch1)); 90 EXPECT_TRUE(CanCoalesce(touch1, touch1));
76 91
77 // Touch moves with different touch ids should not coalesce. 92 // Touch moves with different touch ids should not coalesce.
78 touch0 = CreateTouch(WebInputEvent::TouchMove); 93 touch0 = CreateTouch(WebInputEvent::TouchMove);
79 touch1 = CreateTouch(WebInputEvent::TouchMove); 94 touch1 = CreateTouch(WebInputEvent::TouchMove);
80 touch0.touches[0].id = 7; 95 touch0.event.touches[0].id = 7;
81 EXPECT_FALSE(WebInputEventTraits::CanCoalesce(touch0, touch1)); 96 EXPECT_FALSE(CanCoalesce(touch0, touch1));
82 touch0 = CreateTouch(WebInputEvent::TouchMove, 2); 97 touch0 = CreateTouch(WebInputEvent::TouchMove, 2);
83 touch1 = CreateTouch(WebInputEvent::TouchMove, 2); 98 touch1 = CreateTouch(WebInputEvent::TouchMove, 2);
84 touch0.touches[0].id = 1; 99 touch0.event.touches[0].id = 1;
85 touch1.touches[0].id = 0; 100 touch1.event.touches[0].id = 0;
86 EXPECT_FALSE(WebInputEventTraits::CanCoalesce(touch0, touch1)); 101 EXPECT_FALSE(CanCoalesce(touch0, touch1));
87 102
88 // Touch moves with different touch lengths should not coalesce. 103 // Touch moves with different touch lengths should not coalesce.
89 touch0 = CreateTouch(WebInputEvent::TouchMove, 1); 104 touch0 = CreateTouch(WebInputEvent::TouchMove, 1);
90 touch1 = CreateTouch(WebInputEvent::TouchMove, 2); 105 touch1 = CreateTouch(WebInputEvent::TouchMove, 2);
91 EXPECT_FALSE(WebInputEventTraits::CanCoalesce(touch0, touch1)); 106 EXPECT_FALSE(CanCoalesce(touch0, touch1));
92 107
93 // Touch moves with identical touch ids in different orders should coalesce. 108 // Touch moves with identical touch ids in different orders should coalesce.
94 touch0 = CreateTouch(WebInputEvent::TouchMove, 2); 109 touch0 = CreateTouch(WebInputEvent::TouchMove, 2);
95 touch1 = CreateTouch(WebInputEvent::TouchMove, 2); 110 touch1 = CreateTouch(WebInputEvent::TouchMove, 2);
96 touch0.touches[0] = touch1.touches[1] = 111 touch0.event.touches[0] = touch1.event.touches[1] =
97 CreateTouchPoint(WebTouchPoint::StateMoved, 1); 112 CreateTouchPoint(WebTouchPoint::StateMoved, 1);
98 touch0.touches[1] = touch1.touches[0] = 113 touch0.event.touches[1] = touch1.event.touches[0] =
99 CreateTouchPoint(WebTouchPoint::StateMoved, 0); 114 CreateTouchPoint(WebTouchPoint::StateMoved, 0);
100 EXPECT_TRUE(WebInputEventTraits::CanCoalesce(touch0, touch1)); 115 EXPECT_TRUE(CanCoalesce(touch0, touch1));
101 116
102 // Pointers with the same ID's should coalesce. 117 // Pointers with the same ID's should coalesce.
103 touch0 = CreateTouch(WebInputEvent::TouchMove, 2); 118 touch0 = CreateTouch(WebInputEvent::TouchMove, 2);
104 touch1 = CreateTouch(WebInputEvent::TouchMove, 2); 119 touch1 = CreateTouch(WebInputEvent::TouchMove, 2);
105 touch0.touches[0] = touch1.touches[1] = 120 touch0.event.touches[0] = touch1.event.touches[1] =
106 CreateTouchPoint(WebTouchPoint::StateMoved, 1); 121 CreateTouchPoint(WebTouchPoint::StateMoved, 1);
107 WebInputEventTraits::Coalesce(touch0, &touch1); 122 Coalesce(touch0, &touch1);
108 ASSERT_EQ(1, touch1.touches[0].id); 123 ASSERT_EQ(1, touch1.event.touches[0].id);
109 ASSERT_EQ(0, touch1.touches[1].id); 124 ASSERT_EQ(0, touch1.event.touches[1].id);
110 EXPECT_EQ(WebTouchPoint::StateUndefined, touch1.touches[1].state); 125 EXPECT_EQ(WebTouchPoint::StateUndefined, touch1.event.touches[1].state);
111 EXPECT_EQ(WebTouchPoint::StateMoved, touch1.touches[0].state); 126 EXPECT_EQ(WebTouchPoint::StateMoved, touch1.event.touches[0].state);
112 127
113 // Movement from now-stationary pointers should be preserved. 128 // Movement from now-stationary pointers should be preserved.
114 touch0 = touch1 = CreateTouch(WebInputEvent::TouchMove, 2); 129 touch0 = touch1 = CreateTouch(WebInputEvent::TouchMove, 2);
115 touch0.touches[0] = CreateTouchPoint(WebTouchPoint::StateMoved, 1); 130 touch0.event.touches[0] = CreateTouchPoint(WebTouchPoint::StateMoved, 1);
116 touch1.touches[1] = CreateTouchPoint(WebTouchPoint::StateStationary, 1); 131 touch1.event.touches[1] = CreateTouchPoint(WebTouchPoint::StateStationary, 1);
117 touch0.touches[1] = CreateTouchPoint(WebTouchPoint::StateStationary, 0); 132 touch0.event.touches[1] = CreateTouchPoint(WebTouchPoint::StateStationary, 0);
118 touch1.touches[0] = CreateTouchPoint(WebTouchPoint::StateMoved, 0); 133 touch1.event.touches[0] = CreateTouchPoint(WebTouchPoint::StateMoved, 0);
119 WebInputEventTraits::Coalesce(touch0, &touch1); 134 Coalesce(touch0, &touch1);
120 ASSERT_EQ(1, touch1.touches[0].id); 135 ASSERT_EQ(1, touch1.event.touches[0].id);
121 ASSERT_EQ(0, touch1.touches[1].id); 136 ASSERT_EQ(0, touch1.event.touches[1].id);
122 EXPECT_EQ(WebTouchPoint::StateMoved, touch1.touches[0].state); 137 EXPECT_EQ(WebTouchPoint::StateMoved, touch1.event.touches[0].state);
123 EXPECT_EQ(WebTouchPoint::StateMoved, touch1.touches[1].state); 138 EXPECT_EQ(WebTouchPoint::StateMoved, touch1.event.touches[1].state);
124 139
125 // Touch moves with different dispatchTypes coalesce. 140 // Touch moves with different dispatchTypes coalesce.
126 touch0 = CreateTouch(WebInputEvent::TouchMove, 2); 141 touch0 = CreateTouch(WebInputEvent::TouchMove, 2);
127 touch0.dispatchType = WebInputEvent::DispatchType::Blocking; 142 touch0.event.dispatchType = WebInputEvent::DispatchType::Blocking;
128 touch1 = CreateTouch(WebInputEvent::TouchMove, 2); 143 touch1 = CreateTouch(WebInputEvent::TouchMove, 2);
129 touch1.dispatchType = WebInputEvent::DispatchType::EventNonBlocking; 144 touch1.event.dispatchType = WebInputEvent::DispatchType::EventNonBlocking;
130 touch0.touches[0] = touch1.touches[1] = 145 touch0.event.touches[0] = touch1.event.touches[1] =
131 CreateTouchPoint(WebTouchPoint::StateMoved, 1); 146 CreateTouchPoint(WebTouchPoint::StateMoved, 1);
132 touch0.touches[1] = touch1.touches[0] = 147 touch0.event.touches[1] = touch1.event.touches[0] =
133 CreateTouchPoint(WebTouchPoint::StateMoved, 0); 148 CreateTouchPoint(WebTouchPoint::StateMoved, 0);
134 EXPECT_TRUE(WebInputEventTraits::CanCoalesce(touch0, touch1)); 149 EXPECT_TRUE(CanCoalesce(touch0, touch1));
135 WebInputEventTraits::Coalesce(touch0, &touch1); 150 Coalesce(touch0, &touch1);
136 ASSERT_EQ(WebInputEvent::DispatchType::Blocking, touch1.dispatchType); 151 ASSERT_EQ(WebInputEvent::DispatchType::Blocking, touch1.event.dispatchType);
137 152
138 touch0 = CreateTouch(WebInputEvent::TouchMove, 2); 153 touch0 = CreateTouch(WebInputEvent::TouchMove, 2);
139 touch0.dispatchType = 154 touch0.event.dispatchType =
140 WebInputEvent::DispatchType::ListenersForcedNonBlockingPassive; 155 WebInputEvent::DispatchType::ListenersForcedNonBlockingPassive;
141 touch1 = CreateTouch(WebInputEvent::TouchMove, 2); 156 touch1 = CreateTouch(WebInputEvent::TouchMove, 2);
142 touch1.dispatchType = 157 touch1.event.dispatchType =
143 WebInputEvent::DispatchType::ListenersNonBlockingPassive; 158 WebInputEvent::DispatchType::ListenersNonBlockingPassive;
144 touch0.touches[0] = touch1.touches[1] = 159 touch0.event.touches[0] = touch1.event.touches[1] =
145 CreateTouchPoint(WebTouchPoint::StateMoved, 1); 160 CreateTouchPoint(WebTouchPoint::StateMoved, 1);
146 touch0.touches[1] = touch1.touches[0] = 161 touch0.event.touches[1] = touch1.event.touches[0] =
147 CreateTouchPoint(WebTouchPoint::StateMoved, 0); 162 CreateTouchPoint(WebTouchPoint::StateMoved, 0);
148 EXPECT_TRUE(WebInputEventTraits::CanCoalesce(touch0, touch1)); 163 EXPECT_TRUE(CanCoalesce(touch0, touch1));
149 WebInputEventTraits::Coalesce(touch0, &touch1); 164 Coalesce(touch0, &touch1);
150 ASSERT_EQ(WebInputEvent::DispatchType::ListenersNonBlockingPassive, 165 ASSERT_EQ(WebInputEvent::DispatchType::ListenersNonBlockingPassive,
151 touch1.dispatchType); 166 touch1.event.dispatchType);
152 } 167 }
153 168
154 TEST_F(WebInputEventTraitsTest, PinchEventCoalescing) { 169 TEST_F(WebInputEventTraitsTest, PinchEventCoalescing) {
155 WebGestureEvent pinch0 = 170 GestureEventWithLatencyInfo pinch0 =
156 CreateGesture(WebInputEvent::GesturePinchBegin, 1, 1); 171 CreateGesture(WebInputEvent::GesturePinchBegin, 1, 1);
157 WebGestureEvent pinch1 = 172 GestureEventWithLatencyInfo pinch1 =
158 CreateGesture(WebInputEvent::GesturePinchUpdate, 2, 2); 173 CreateGesture(WebInputEvent::GesturePinchUpdate, 2, 2);
159 174
160 // Only GesturePinchUpdate's coalesce. 175 // Only GesturePinchUpdate's coalesce.
161 EXPECT_FALSE(WebInputEventTraits::CanCoalesce(pinch0, pinch0)); 176 EXPECT_FALSE(CanCoalesce(pinch0, pinch0));
162 177
163 // Pinch gestures of different types should not coalesce. 178 // Pinch gestures of different types should not coalesce.
164 EXPECT_FALSE(WebInputEventTraits::CanCoalesce(pinch0, pinch1)); 179 EXPECT_FALSE(CanCoalesce(pinch0, pinch1));
165 180
166 // Pinches with different focal points should not coalesce. 181 // Pinches with different focal points should not coalesce.
167 pinch0 = CreateGesture(WebInputEvent::GesturePinchUpdate, 1, 1); 182 pinch0 = CreateGesture(WebInputEvent::GesturePinchUpdate, 1, 1);
168 pinch1 = CreateGesture(WebInputEvent::GesturePinchUpdate, 2, 2); 183 pinch1 = CreateGesture(WebInputEvent::GesturePinchUpdate, 2, 2);
169 EXPECT_FALSE(WebInputEventTraits::CanCoalesce(pinch0, pinch1)); 184 EXPECT_FALSE(CanCoalesce(pinch0, pinch1));
170 EXPECT_TRUE(WebInputEventTraits::CanCoalesce(pinch0, pinch0)); 185 EXPECT_TRUE(CanCoalesce(pinch0, pinch0));
171 186
172 // Coalesced scales are multiplicative. 187 // Coalesced scales are multiplicative.
173 pinch0 = CreateGesture(WebInputEvent::GesturePinchUpdate, 1, 1); 188 pinch0 = CreateGesture(WebInputEvent::GesturePinchUpdate, 1, 1);
174 pinch0.data.pinchUpdate.scale = 2.f; 189 pinch0.event.data.pinchUpdate.scale = 2.f;
175 pinch1 = CreateGesture(WebInputEvent::GesturePinchUpdate, 1, 1); 190 pinch1 = CreateGesture(WebInputEvent::GesturePinchUpdate, 1, 1);
176 pinch1.data.pinchUpdate.scale = 3.f; 191 pinch1.event.data.pinchUpdate.scale = 3.f;
177 EXPECT_TRUE(WebInputEventTraits::CanCoalesce(pinch0, pinch0)); 192 EXPECT_TRUE(CanCoalesce(pinch0, pinch0));
178 WebInputEventTraits::Coalesce(pinch0, &pinch1); 193 Coalesce(pinch0, &pinch1);
179 EXPECT_EQ(2.f * 3.f, pinch1.data.pinchUpdate.scale); 194 EXPECT_EQ(2.f * 3.f, pinch1.event.data.pinchUpdate.scale);
180 195
181 // Scales have a minimum value and can never reach 0. 196 // Scales have a minimum value and can never reach 0.
182 ASSERT_GT(numeric_limits<float>::min(), 0); 197 ASSERT_GT(numeric_limits<float>::min(), 0);
183 pinch0 = CreateGesture(WebInputEvent::GesturePinchUpdate, 1, 1); 198 pinch0 = CreateGesture(WebInputEvent::GesturePinchUpdate, 1, 1);
184 pinch0.data.pinchUpdate.scale = numeric_limits<float>::min() * 2.0f; 199 pinch0.event.data.pinchUpdate.scale = numeric_limits<float>::min() * 2.0f;
185 pinch1 = CreateGesture(WebInputEvent::GesturePinchUpdate, 1, 1); 200 pinch1 = CreateGesture(WebInputEvent::GesturePinchUpdate, 1, 1);
186 pinch1.data.pinchUpdate.scale = numeric_limits<float>::min() * 5.0f; 201 pinch1.event.data.pinchUpdate.scale = numeric_limits<float>::min() * 5.0f;
187 EXPECT_TRUE(WebInputEventTraits::CanCoalesce(pinch0, pinch1)); 202 EXPECT_TRUE(CanCoalesce(pinch0, pinch1));
188 WebInputEventTraits::Coalesce(pinch0, &pinch1); 203 Coalesce(pinch0, &pinch1);
189 EXPECT_EQ(numeric_limits<float>::min(), pinch1.data.pinchUpdate.scale); 204 EXPECT_EQ(numeric_limits<float>::min(), pinch1.event.data.pinchUpdate.scale);
190 205
191 // Scales have a maximum value and can never reach Infinity. 206 // Scales have a maximum value and can never reach Infinity.
192 pinch0 = CreateGesture(WebInputEvent::GesturePinchUpdate, 1, 1); 207 pinch0 = CreateGesture(WebInputEvent::GesturePinchUpdate, 1, 1);
193 pinch0.data.pinchUpdate.scale = numeric_limits<float>::max() / 2.0f; 208 pinch0.event.data.pinchUpdate.scale = numeric_limits<float>::max() / 2.0f;
194 pinch1 = CreateGesture(WebInputEvent::GesturePinchUpdate, 1, 1); 209 pinch1 = CreateGesture(WebInputEvent::GesturePinchUpdate, 1, 1);
195 pinch1.data.pinchUpdate.scale = 10.0f; 210 pinch1.event.data.pinchUpdate.scale = 10.0f;
196 EXPECT_TRUE(WebInputEventTraits::CanCoalesce(pinch0, pinch1)); 211 EXPECT_TRUE(CanCoalesce(pinch0, pinch1));
197 WebInputEventTraits::Coalesce(pinch0, &pinch1); 212 Coalesce(pinch0, &pinch1);
198 EXPECT_EQ(numeric_limits<float>::max(), pinch1.data.pinchUpdate.scale); 213 EXPECT_EQ(numeric_limits<float>::max(), pinch1.event.data.pinchUpdate.scale);
199 } 214 }
200 215
201 TEST_F(WebInputEventTraitsTest, WebMouseWheelEventCoalescing) { 216 TEST_F(WebInputEventTraitsTest, WebMouseWheelEventCoalescing) {
202 WebMouseWheelEvent mouse_wheel_0 = CreateMouseWheel(1, 1); 217 MouseWheelEventWithLatencyInfo mouse_wheel_0 = CreateMouseWheel(1, 1);
203 WebMouseWheelEvent mouse_wheel_1 = CreateMouseWheel(2, 2); 218 MouseWheelEventWithLatencyInfo mouse_wheel_1 = CreateMouseWheel(2, 2);
204 219
205 // WebMouseWheelEvent objects with same values except different deltaX and 220 // WebMouseWheelEvent objects with same values except different deltaX and
206 // deltaY should coalesce. 221 // deltaY should coalesce.
207 EXPECT_TRUE(WebInputEventTraits::CanCoalesce(mouse_wheel_0, mouse_wheel_1)); 222 EXPECT_TRUE(CanCoalesce(mouse_wheel_0, mouse_wheel_1));
208 223
209 // WebMouseWheelEvent objects with different modifiers should not coalesce. 224 // WebMouseWheelEvent objects with different modifiers should not coalesce.
210 mouse_wheel_0 = CreateMouseWheel(1, 1); 225 mouse_wheel_0 = CreateMouseWheel(1, 1);
211 mouse_wheel_1 = CreateMouseWheel(1, 1); 226 mouse_wheel_1 = CreateMouseWheel(1, 1);
212 mouse_wheel_0.modifiers = blink::WebInputEvent::ControlKey; 227 mouse_wheel_0.event.modifiers = blink::WebInputEvent::ControlKey;
213 mouse_wheel_1.modifiers = blink::WebInputEvent::ShiftKey; 228 mouse_wheel_1.event.modifiers = blink::WebInputEvent::ShiftKey;
214 EXPECT_FALSE(WebInputEventTraits::CanCoalesce(mouse_wheel_0, mouse_wheel_1)); 229 EXPECT_FALSE(CanCoalesce(mouse_wheel_0, mouse_wheel_1));
215 } 230 }
216 231
217 // Coalescing preserves the newer timestamp. 232 // Coalescing preserves the newer timestamp.
218 TEST_F(WebInputEventTraitsTest, TimestampCoalescing) { 233 TEST_F(WebInputEventTraitsTest, TimestampCoalescing) {
219 WebMouseWheelEvent mouse_wheel_0 = CreateMouseWheel(1, 1); 234 MouseWheelEventWithLatencyInfo mouse_wheel_0 = CreateMouseWheel(1, 1);
220 mouse_wheel_0.timeStampSeconds = 5.0; 235 mouse_wheel_0.event.timeStampSeconds = 5.0;
221 WebMouseWheelEvent mouse_wheel_1 = CreateMouseWheel(2, 2); 236 MouseWheelEventWithLatencyInfo mouse_wheel_1 = CreateMouseWheel(2, 2);
222 mouse_wheel_1.timeStampSeconds = 10.0; 237 mouse_wheel_1.event.timeStampSeconds = 10.0;
223 238
224 EXPECT_TRUE(WebInputEventTraits::CanCoalesce(mouse_wheel_0, mouse_wheel_1)); 239 EXPECT_TRUE(CanCoalesce(mouse_wheel_0, mouse_wheel_1));
225 WebInputEventTraits::Coalesce(mouse_wheel_1, &mouse_wheel_0); 240 Coalesce(mouse_wheel_1, &mouse_wheel_0);
226 EXPECT_EQ(10.0, mouse_wheel_0.timeStampSeconds); 241 EXPECT_EQ(10.0, mouse_wheel_0.event.timeStampSeconds);
227 } 242 }
228 243
229 // Very basic smoke test to ensure stringification doesn't explode. 244 // Very basic smoke test to ensure stringification doesn't explode.
230 TEST_F(WebInputEventTraitsTest, ToString) { 245 TEST_F(WebInputEventTraitsTest, ToString) {
231 WebKeyboardEvent key; 246 WebKeyboardEvent key;
232 key.type = WebInputEvent::RawKeyDown; 247 key.type = WebInputEvent::RawKeyDown;
233 EXPECT_FALSE(WebInputEventTraits::ToString(key).empty()); 248 EXPECT_FALSE(WebInputEventTraits::ToString(key).empty());
234 249
235 WebMouseEvent mouse; 250 WebMouseEvent mouse;
236 mouse.type = WebInputEvent::MouseMove; 251 mouse.type = WebInputEvent::MouseMove;
237 EXPECT_FALSE(WebInputEventTraits::ToString(mouse).empty()); 252 EXPECT_FALSE(WebInputEventTraits::ToString(mouse).empty());
238 253
239 WebMouseWheelEvent mouse_wheel; 254 WebMouseWheelEvent mouse_wheel;
240 mouse_wheel.type = WebInputEvent::MouseWheel; 255 mouse_wheel.type = WebInputEvent::MouseWheel;
241 EXPECT_FALSE(WebInputEventTraits::ToString(mouse_wheel).empty()); 256 EXPECT_FALSE(WebInputEventTraits::ToString(mouse_wheel).empty());
242 257
243 WebGestureEvent gesture = 258 WebGestureEvent gesture;
244 CreateGesture(WebInputEvent::GesturePinchBegin, 1, 1); 259 gesture.type = WebInputEvent::GesturePinchBegin;
260 gesture.x = 1;
261 gesture.y = 1;
245 EXPECT_FALSE(WebInputEventTraits::ToString(gesture).empty()); 262 EXPECT_FALSE(WebInputEventTraits::ToString(gesture).empty());
246 263
247 WebTouchEvent touch = CreateTouch(WebInputEvent::TouchStart); 264 WebTouchEvent touch;
265 touch.type = WebInputEvent::TouchStart;
266 touch.touchesLength = 1;
248 EXPECT_FALSE(WebInputEventTraits::ToString(touch).empty()); 267 EXPECT_FALSE(WebInputEventTraits::ToString(touch).empty());
249 } 268 }
250 269
251 } // namespace 270 } // namespace
252 } // namespace content 271 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698