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

Side by Side Diff: content/browser/renderer_host/input/web_input_event_util_unittest.cc

Issue 1417803002: Pass MotionEvent tilt angles to Blink on Android. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Bug reference 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
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 // Needed on Windows to get |M_PI| from <cmath>. 5 // Needed on Windows to get |M_PI| from <cmath>.
6 #ifdef _WIN32 6 #ifdef _WIN32
7 #define _USE_MATH_DEFINES 7 #define _USE_MATH_DEFINES
8 #endif 8 #endif
9 9
10 #include <cmath> 10 #include <cmath>
11 11
12 #include "content/browser/renderer_host/input/web_input_event_util.h" 12 #include "content/browser/renderer_host/input/web_input_event_util.h"
13 #include "content/common/input/web_input_event_traits.h" 13 #include "content/common/input/web_input_event_traits.h"
14 #include "testing/gtest/include/gtest/gtest.h" 14 #include "testing/gtest/include/gtest/gtest.h"
15 #include "ui/events/blink/blink_event_util.h" 15 #include "ui/events/blink/blink_event_util.h"
16 #include "ui/events/event_constants.h" 16 #include "ui/events/event_constants.h"
17 #include "ui/events/gesture_detection/gesture_event_data.h" 17 #include "ui/events/gesture_detection/gesture_event_data.h"
18 #include "ui/events/gesture_detection/motion_event_generic.h" 18 #include "ui/events/gesture_detection/motion_event_generic.h"
19 #include "ui/events/gesture_event_details.h" 19 #include "ui/events/gesture_event_details.h"
20 #include "ui/gfx/geometry/safe_integer_conversions.h" 20 #include "ui/gfx/geometry/safe_integer_conversions.h"
21 21
22 using blink::WebInputEvent; 22 using blink::WebInputEvent;
23 using blink::WebTouchEvent; 23 using blink::WebTouchEvent;
24 using blink::WebTouchPoint; 24 using blink::WebTouchPoint;
25 using ui::MotionEvent; 25 using ui::MotionEvent;
26 using ui::MotionEventGeneric; 26 using ui::MotionEventGeneric;
27 27
28 namespace content { 28 namespace content {
tdresser 2015/11/02 14:44:07 Leave space after namespace.
e_hakkinen 2015/11/02 16:27:16 Done.
29 TEST(WebInputEventUtilTest, MotionEventConversion) {
29 30
30 TEST(WebInputEventUtilTest, MotionEventConversion) { 31 const MotionEvent::ToolType tool_types[] = {MotionEvent::TOOL_TYPE_FINGER,
32 MotionEvent::TOOL_TYPE_STYLUS,
33 MotionEvent::TOOL_TYPE_MOUSE};
31 ui::PointerProperties pointer(5, 10, 40); 34 ui::PointerProperties pointer(5, 10, 40);
32 pointer.id = 15; 35 pointer.id = 15;
33 pointer.raw_x = 20; 36 pointer.raw_x = 20;
34 pointer.raw_y = 25; 37 pointer.raw_y = 25;
35 pointer.pressure = 30; 38 pointer.pressure = 30;
36 pointer.touch_minor = 35; 39 pointer.touch_minor = 35;
37 pointer.orientation = static_cast<float>(-M_PI / 2); 40 pointer.orientation = static_cast<float>(-M_PI / 2);
38 MotionEventGeneric event( 41 pointer.tilt = static_cast<float>(-M_PI / 3);
39 MotionEvent::ACTION_DOWN, base::TimeTicks::Now(), pointer); 42 for (MotionEvent::ToolType tool_type : tool_types) {
40 event.set_flags(ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); 43 pointer.tool_type = tool_type;
41 event.set_unique_event_id(123456U); 44 MotionEventGeneric event(
45 MotionEvent::ACTION_DOWN, base::TimeTicks::Now(), pointer);
46 event.set_flags(ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN);
47 event.set_unique_event_id(123456U);
42 48
43 WebTouchEvent expected_event; 49 WebTouchEvent expected_event;
44 expected_event.type = WebInputEvent::TouchStart; 50 expected_event.type = WebInputEvent::TouchStart;
45 expected_event.touchesLength = 1; 51 expected_event.touchesLength = 1;
46 expected_event.timeStampSeconds = 52 expected_event.timeStampSeconds =
47 (event.GetEventTime() - base::TimeTicks()).InSecondsF(); 53 (event.GetEventTime() - base::TimeTicks()).InSecondsF();
48 expected_event.modifiers = WebInputEvent::ShiftKey | WebInputEvent::AltKey; 54 expected_event.modifiers = WebInputEvent::ShiftKey | WebInputEvent::AltKey;
49 WebTouchPoint expected_pointer; 55 WebTouchPoint expected_pointer;
50 expected_pointer.id = pointer.id; 56 expected_pointer.id = pointer.id;
51 expected_pointer.state = WebTouchPoint::StatePressed; 57 expected_pointer.state = WebTouchPoint::StatePressed;
52 expected_pointer.position = blink::WebFloatPoint(pointer.x, pointer.y); 58 expected_pointer.position = blink::WebFloatPoint(pointer.x, pointer.y);
53 expected_pointer.screenPosition = 59 expected_pointer.screenPosition =
54 blink::WebFloatPoint(pointer.raw_x, pointer.raw_y); 60 blink::WebFloatPoint(pointer.raw_x, pointer.raw_y);
55 expected_pointer.radiusX = pointer.touch_major / 2.f; 61 expected_pointer.radiusX = pointer.touch_major / 2.f;
56 expected_pointer.radiusY = pointer.touch_minor / 2.f; 62 expected_pointer.radiusY = pointer.touch_minor / 2.f;
57 expected_pointer.rotationAngle = 0.f; 63 expected_pointer.rotationAngle = 0.f;
58 expected_pointer.force = pointer.pressure; 64 expected_pointer.force = pointer.pressure;
59 expected_event.touches[0] = expected_pointer; 65 if (tool_type == MotionEvent::TOOL_TYPE_STYLUS) {
60 expected_event.uniqueTouchEventId = 123456U; 66 expected_pointer.tiltX = -60;
67 expected_pointer.tiltY = 0;
68 } else {
69 expected_pointer.tiltX = 0;
70 expected_pointer.tiltY = 0;
71 }
72 expected_event.touches[0] = expected_pointer;
73 expected_event.uniqueTouchEventId = 123456U;
61 74
62 WebTouchEvent actual_event = 75 WebTouchEvent actual_event =
63 ui::CreateWebTouchEventFromMotionEvent(event, false); 76 ui::CreateWebTouchEventFromMotionEvent(event, false);
64 EXPECT_EQ(WebInputEventTraits::ToString(expected_event), 77 EXPECT_EQ(WebInputEventTraits::ToString(expected_event),
65 WebInputEventTraits::ToString(actual_event)); 78 WebInputEventTraits::ToString(actual_event));
79 }
66 } 80 }
67 81
68 TEST(WebInputEventUtilTest, ScrollUpdateConversion) { 82 TEST(WebInputEventUtilTest, ScrollUpdateConversion) {
69 int motion_event_id = 0; 83 int motion_event_id = 0;
70 MotionEvent::ToolType tool_type = MotionEvent::TOOL_TYPE_UNKNOWN; 84 MotionEvent::ToolType tool_type = MotionEvent::TOOL_TYPE_UNKNOWN;
71 base::TimeTicks timestamp = base::TimeTicks::Now(); 85 base::TimeTicks timestamp = base::TimeTicks::Now();
72 gfx::Vector2dF delta(-5.f, 10.f); 86 gfx::Vector2dF delta(-5.f, 10.f);
73 gfx::PointF pos(1.f, 2.f); 87 gfx::PointF pos(1.f, 2.f);
74 gfx::PointF raw_pos(11.f, 12.f); 88 gfx::PointF raw_pos(11.f, 12.f);
75 size_t touch_points = 1; 89 size_t touch_points = 1;
(...skipping 25 matching lines...) Expand all
101 EXPECT_EQ(gfx::ToFlooredInt(pos.y()), web_event.y); 115 EXPECT_EQ(gfx::ToFlooredInt(pos.y()), web_event.y);
102 EXPECT_EQ(gfx::ToFlooredInt(raw_pos.x()), web_event.globalX); 116 EXPECT_EQ(gfx::ToFlooredInt(raw_pos.x()), web_event.globalX);
103 EXPECT_EQ(gfx::ToFlooredInt(raw_pos.y()), web_event.globalY); 117 EXPECT_EQ(gfx::ToFlooredInt(raw_pos.y()), web_event.globalY);
104 EXPECT_EQ(blink::WebGestureDeviceTouchscreen, web_event.sourceDevice); 118 EXPECT_EQ(blink::WebGestureDeviceTouchscreen, web_event.sourceDevice);
105 EXPECT_EQ(delta.x(), web_event.data.scrollUpdate.deltaX); 119 EXPECT_EQ(delta.x(), web_event.data.scrollUpdate.deltaX);
106 EXPECT_EQ(delta.y(), web_event.data.scrollUpdate.deltaY); 120 EXPECT_EQ(delta.y(), web_event.data.scrollUpdate.deltaY);
107 EXPECT_TRUE(web_event.data.scrollUpdate.previousUpdateInSequencePrevented); 121 EXPECT_TRUE(web_event.data.scrollUpdate.previousUpdateInSequencePrevented);
108 } 122 }
109 123
110 } // namespace content 124 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698