| 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 |