OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/input_param_traits.h" | 5 #include "content/common/input/input_param_traits.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 |
| 9 #include <memory> |
8 #include <utility> | 10 #include <utility> |
| 11 #include <vector> |
9 | 12 |
10 #include "base/memory/ptr_util.h" | 13 #include "base/memory/ptr_util.h" |
11 #include "content/common/input/input_event.h" | 14 #include "content/common/input/input_event.h" |
12 #include "content/common/input/synthetic_gesture_params.h" | 15 #include "content/common/input/synthetic_gesture_params.h" |
13 #include "content/common/input/synthetic_pinch_gesture_params.h" | 16 #include "content/common/input/synthetic_pinch_gesture_params.h" |
14 #include "content/common/input/synthetic_pointer_action_list_params.h" | 17 #include "content/common/input/synthetic_pointer_action_list_params.h" |
15 #include "content/common/input/synthetic_pointer_action_params.h" | 18 #include "content/common/input/synthetic_pointer_action_params.h" |
16 #include "content/common/input/synthetic_smooth_drag_gesture_params.h" | 19 #include "content/common/input/synthetic_smooth_drag_gesture_params.h" |
17 #include "content/common/input/synthetic_smooth_scroll_gesture_params.h" | 20 #include "content/common/input/synthetic_smooth_scroll_gesture_params.h" |
18 #include "content/common/input_messages.h" | 21 #include "content/common/input_messages.h" |
19 #include "ipc/ipc_message.h" | 22 #include "ipc/ipc_message.h" |
20 #include "testing/gtest/include/gtest/gtest.h" | 23 #include "testing/gtest/include/gtest/gtest.h" |
21 #include "third_party/WebKit/public/platform/WebGestureEvent.h" | 24 #include "third_party/WebKit/public/platform/WebGestureEvent.h" |
22 #include "third_party/WebKit/public/platform/WebInputEvent.h" | 25 #include "third_party/WebKit/public/platform/WebInputEvent.h" |
23 #include "third_party/WebKit/public/platform/WebKeyboardEvent.h" | 26 #include "third_party/WebKit/public/platform/WebKeyboardEvent.h" |
24 #include "third_party/WebKit/public/platform/WebMouseWheelEvent.h" | 27 #include "third_party/WebKit/public/platform/WebMouseWheelEvent.h" |
25 #include "third_party/WebKit/public/platform/WebTouchEvent.h" | 28 #include "third_party/WebKit/public/platform/WebTouchEvent.h" |
26 | 29 |
27 namespace content { | 30 namespace content { |
28 namespace { | 31 namespace { |
29 | 32 |
30 typedef ScopedVector<InputEvent> InputEvents; | 33 typedef std::vector<std::unique_ptr<InputEvent>> InputEvents; |
31 | 34 |
32 class InputParamTraitsTest : public testing::Test { | 35 class InputParamTraitsTest : public testing::Test { |
33 protected: | 36 protected: |
34 static void Compare(const InputEvent* a, const InputEvent* b) { | 37 static void Compare(const InputEvent* a, const InputEvent* b) { |
35 EXPECT_EQ(!!a->web_event, !!b->web_event); | 38 EXPECT_EQ(!!a->web_event, !!b->web_event); |
36 if (a->web_event && b->web_event) { | 39 if (a->web_event && b->web_event) { |
37 const size_t a_size = a->web_event->size(); | 40 const size_t a_size = a->web_event->size(); |
38 ASSERT_EQ(a_size, b->web_event->size()); | 41 ASSERT_EQ(a_size, b->web_event->size()); |
39 EXPECT_EQ(0, memcmp(a->web_event.get(), b->web_event.get(), a_size)); | 42 EXPECT_EQ(0, memcmp(a->web_event.get(), b->web_event.get(), a_size)); |
40 } | 43 } |
41 EXPECT_EQ(a->latency_info.latency_components().size(), | 44 EXPECT_EQ(a->latency_info.latency_components().size(), |
42 b->latency_info.latency_components().size()); | 45 b->latency_info.latency_components().size()); |
43 } | 46 } |
44 | 47 |
45 static void Compare(const InputEvents* a, const InputEvents* b) { | 48 static void Compare(const InputEvents* a, const InputEvents* b) { |
46 for (size_t i = 0; i < a->size(); ++i) | 49 for (size_t i = 0; i < a->size(); ++i) |
47 Compare((*a)[i], (*b)[i]); | 50 Compare((*a)[i].get(), (*b)[i].get()); |
48 } | 51 } |
49 | 52 |
50 static void Compare(const SyntheticSmoothScrollGestureParams* a, | 53 static void Compare(const SyntheticSmoothScrollGestureParams* a, |
51 const SyntheticSmoothScrollGestureParams* b) { | 54 const SyntheticSmoothScrollGestureParams* b) { |
52 EXPECT_EQ(a->gesture_source_type, b->gesture_source_type); | 55 EXPECT_EQ(a->gesture_source_type, b->gesture_source_type); |
53 EXPECT_EQ(a->anchor, b->anchor); | 56 EXPECT_EQ(a->anchor, b->anchor); |
54 EXPECT_EQ(a->distances.size(), b->distances.size()); | 57 EXPECT_EQ(a->distances.size(), b->distances.size()); |
55 for (size_t i = 0; i < a->distances.size(); i++) | 58 for (size_t i = 0; i < a->distances.size(); i++) |
56 EXPECT_EQ(a->distances[i], b->distances[i]); | 59 EXPECT_EQ(a->distances[i], b->distances[i]); |
57 EXPECT_EQ(a->prevent_fling, b->prevent_fling); | 60 EXPECT_EQ(a->prevent_fling, b->prevent_fling); |
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
194 | 197 |
195 TEST_F(InputParamTraitsTest, InitializedEvents) { | 198 TEST_F(InputParamTraitsTest, InitializedEvents) { |
196 InputEvents events; | 199 InputEvents events; |
197 | 200 |
198 ui::LatencyInfo latency; | 201 ui::LatencyInfo latency; |
199 | 202 |
200 blink::WebKeyboardEvent key_event(blink::WebInputEvent::RawKeyDown, | 203 blink::WebKeyboardEvent key_event(blink::WebInputEvent::RawKeyDown, |
201 blink::WebInputEvent::NoModifiers, | 204 blink::WebInputEvent::NoModifiers, |
202 blink::WebInputEvent::TimeStampForTesting); | 205 blink::WebInputEvent::TimeStampForTesting); |
203 key_event.nativeKeyCode = 5; | 206 key_event.nativeKeyCode = 5; |
204 events.push_back(new InputEvent(key_event, latency)); | 207 events.push_back(base::MakeUnique<InputEvent>(key_event, latency)); |
205 | 208 |
206 blink::WebMouseWheelEvent wheel_event( | 209 blink::WebMouseWheelEvent wheel_event( |
207 blink::WebInputEvent::MouseWheel, blink::WebInputEvent::NoModifiers, | 210 blink::WebInputEvent::MouseWheel, blink::WebInputEvent::NoModifiers, |
208 blink::WebInputEvent::TimeStampForTesting); | 211 blink::WebInputEvent::TimeStampForTesting); |
209 wheel_event.deltaX = 10; | 212 wheel_event.deltaX = 10; |
210 latency.AddLatencyNumber(ui::INPUT_EVENT_LATENCY_BEGIN_RWH_COMPONENT, 1, 1); | 213 latency.AddLatencyNumber(ui::INPUT_EVENT_LATENCY_BEGIN_RWH_COMPONENT, 1, 1); |
211 events.push_back(new InputEvent(wheel_event, latency)); | 214 events.push_back(base::MakeUnique<InputEvent>(wheel_event, latency)); |
212 | 215 |
213 blink::WebMouseEvent mouse_event(blink::WebInputEvent::MouseDown, | 216 blink::WebMouseEvent mouse_event(blink::WebInputEvent::MouseDown, |
214 blink::WebInputEvent::NoModifiers, | 217 blink::WebInputEvent::NoModifiers, |
215 blink::WebInputEvent::TimeStampForTesting); | 218 blink::WebInputEvent::TimeStampForTesting); |
216 mouse_event.x = 10; | 219 mouse_event.x = 10; |
217 latency.AddLatencyNumber(ui::INPUT_EVENT_LATENCY_UI_COMPONENT, 2, 2); | 220 latency.AddLatencyNumber(ui::INPUT_EVENT_LATENCY_UI_COMPONENT, 2, 2); |
218 events.push_back(new InputEvent(mouse_event, latency)); | 221 events.push_back(base::MakeUnique<InputEvent>(mouse_event, latency)); |
219 | 222 |
220 blink::WebGestureEvent gesture_event( | 223 blink::WebGestureEvent gesture_event( |
221 blink::WebInputEvent::GestureScrollBegin, | 224 blink::WebInputEvent::GestureScrollBegin, |
222 blink::WebInputEvent::NoModifiers, | 225 blink::WebInputEvent::NoModifiers, |
223 blink::WebInputEvent::TimeStampForTesting); | 226 blink::WebInputEvent::TimeStampForTesting); |
224 gesture_event.x = -1; | 227 gesture_event.x = -1; |
225 events.push_back(new InputEvent(gesture_event, latency)); | 228 events.push_back(base::MakeUnique<InputEvent>(gesture_event, latency)); |
226 | 229 |
227 blink::WebTouchEvent touch_event(blink::WebInputEvent::TouchStart, | 230 blink::WebTouchEvent touch_event(blink::WebInputEvent::TouchStart, |
228 blink::WebInputEvent::NoModifiers, | 231 blink::WebInputEvent::NoModifiers, |
229 blink::WebInputEvent::TimeStampForTesting); | 232 blink::WebInputEvent::TimeStampForTesting); |
230 touch_event.touchesLength = 1; | 233 touch_event.touchesLength = 1; |
231 touch_event.touches[0].radiusX = 1; | 234 touch_event.touches[0].radiusX = 1; |
232 events.push_back(new InputEvent(touch_event, latency)); | 235 events.push_back(base::MakeUnique<InputEvent>(touch_event, latency)); |
233 | 236 |
234 Verify(events); | 237 Verify(events); |
235 } | 238 } |
236 | 239 |
237 TEST_F(InputParamTraitsTest, InvalidSyntheticGestureParams) { | 240 TEST_F(InputParamTraitsTest, InvalidSyntheticGestureParams) { |
238 IPC::Message msg; | 241 IPC::Message msg; |
239 // Write invalid value for SyntheticGestureParams::GestureType. | 242 // Write invalid value for SyntheticGestureParams::GestureType. |
240 WriteParam(&msg, -3); | 243 WriteParam(&msg, -3); |
241 | 244 |
242 SyntheticGesturePacket packet_out; | 245 SyntheticGesturePacket packet_out; |
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
357 | 360 |
358 ASSERT_EQ(SyntheticGestureParams::POINTER_ACTION_LIST, | 361 ASSERT_EQ(SyntheticGestureParams::POINTER_ACTION_LIST, |
359 gesture_params->GetGestureType()); | 362 gesture_params->GetGestureType()); |
360 SyntheticGesturePacket packet_in; | 363 SyntheticGesturePacket packet_in; |
361 packet_in.set_gesture_params(std::move(gesture_params)); | 364 packet_in.set_gesture_params(std::move(gesture_params)); |
362 Verify(packet_in); | 365 Verify(packet_in); |
363 } | 366 } |
364 | 367 |
365 } // namespace | 368 } // namespace |
366 } // namespace content | 369 } // namespace content |
OLD | NEW |