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

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: Flattened nested ifs, fixed a special case 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>
(...skipping 10 matching lines...) Expand all
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 {
29 29
30 TEST(WebInputEventUtilTest, MotionEventConversion) { 30 TEST(WebInputEventUtilTest, MotionEventConversion) {
31
32 const MotionEvent::ToolType tool_types[] = {MotionEvent::TOOL_TYPE_FINGER,
33 MotionEvent::TOOL_TYPE_STYLUS,
34 MotionEvent::TOOL_TYPE_MOUSE};
31 ui::PointerProperties pointer(5, 10, 40); 35 ui::PointerProperties pointer(5, 10, 40);
32 pointer.id = 15; 36 pointer.id = 15;
33 pointer.raw_x = 20; 37 pointer.raw_x = 20;
34 pointer.raw_y = 25; 38 pointer.raw_y = 25;
35 pointer.pressure = 30; 39 pointer.pressure = 30;
36 pointer.touch_minor = 35; 40 pointer.touch_minor = 35;
37 pointer.orientation = static_cast<float>(-M_PI / 2); 41 pointer.orientation = static_cast<float>(-M_PI / 2);
38 MotionEventGeneric event( 42 pointer.tilt = static_cast<float>(-M_PI / 3);
39 MotionEvent::ACTION_DOWN, base::TimeTicks::Now(), pointer); 43 for (MotionEvent::ToolType tool_type : tool_types) {
40 event.set_flags(ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); 44 pointer.tool_type = tool_type;
41 event.set_unique_event_id(123456U); 45 MotionEventGeneric event(
46 MotionEvent::ACTION_DOWN, base::TimeTicks::Now(), pointer);
47 event.set_flags(ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN);
48 event.set_unique_event_id(123456U);
42 49
43 WebTouchEvent expected_event; 50 WebTouchEvent expected_event;
44 expected_event.type = WebInputEvent::TouchStart; 51 expected_event.type = WebInputEvent::TouchStart;
45 expected_event.touchesLength = 1; 52 expected_event.touchesLength = 1;
46 expected_event.timeStampSeconds = 53 expected_event.timeStampSeconds =
47 (event.GetEventTime() - base::TimeTicks()).InSecondsF(); 54 (event.GetEventTime() - base::TimeTicks()).InSecondsF();
48 expected_event.modifiers = WebInputEvent::ShiftKey | WebInputEvent::AltKey; 55 expected_event.modifiers = WebInputEvent::ShiftKey | WebInputEvent::AltKey;
49 WebTouchPoint expected_pointer; 56 WebTouchPoint expected_pointer;
50 expected_pointer.id = pointer.id; 57 expected_pointer.id = pointer.id;
51 expected_pointer.state = WebTouchPoint::StatePressed; 58 expected_pointer.state = WebTouchPoint::StatePressed;
52 expected_pointer.position = blink::WebFloatPoint(pointer.x, pointer.y); 59 expected_pointer.position = blink::WebFloatPoint(pointer.x, pointer.y);
53 expected_pointer.screenPosition = 60 expected_pointer.screenPosition =
54 blink::WebFloatPoint(pointer.raw_x, pointer.raw_y); 61 blink::WebFloatPoint(pointer.raw_x, pointer.raw_y);
55 expected_pointer.radiusX = pointer.touch_major / 2.f; 62 expected_pointer.radiusX = pointer.touch_major / 2.f;
56 expected_pointer.radiusY = pointer.touch_minor / 2.f; 63 expected_pointer.radiusY = pointer.touch_minor / 2.f;
57 expected_pointer.rotationAngle = 0.f; 64 expected_pointer.rotationAngle = 0.f;
58 expected_pointer.force = pointer.pressure; 65 expected_pointer.force = pointer.pressure;
59 expected_event.touches[0] = expected_pointer; 66 if (tool_type == MotionEvent::TOOL_TYPE_STYLUS) {
60 expected_event.uniqueTouchEventId = 123456U; 67 expected_pointer.tiltX = -60;
68 expected_pointer.tiltY = 0;
69 } else {
70 expected_pointer.tiltX = 0;
71 expected_pointer.tiltY = 0;
72 }
73 expected_event.touches[0] = expected_pointer;
74 expected_event.uniqueTouchEventId = 123456U;
61 75
62 WebTouchEvent actual_event = 76 WebTouchEvent actual_event =
63 ui::CreateWebTouchEventFromMotionEvent(event, false); 77 ui::CreateWebTouchEventFromMotionEvent(event, false);
64 EXPECT_EQ(WebInputEventTraits::ToString(expected_event), 78 EXPECT_EQ(WebInputEventTraits::ToString(expected_event),
65 WebInputEventTraits::ToString(actual_event)); 79 WebInputEventTraits::ToString(actual_event));
80 }
66 } 81 }
67 82
68 TEST(WebInputEventUtilTest, ScrollUpdateConversion) { 83 TEST(WebInputEventUtilTest, ScrollUpdateConversion) {
69 int motion_event_id = 0; 84 int motion_event_id = 0;
70 MotionEvent::ToolType tool_type = MotionEvent::TOOL_TYPE_UNKNOWN; 85 MotionEvent::ToolType tool_type = MotionEvent::TOOL_TYPE_UNKNOWN;
71 base::TimeTicks timestamp = base::TimeTicks::Now(); 86 base::TimeTicks timestamp = base::TimeTicks::Now();
72 gfx::Vector2dF delta(-5.f, 10.f); 87 gfx::Vector2dF delta(-5.f, 10.f);
73 gfx::PointF pos(1.f, 2.f); 88 gfx::PointF pos(1.f, 2.f);
74 gfx::PointF raw_pos(11.f, 12.f); 89 gfx::PointF raw_pos(11.f, 12.f);
75 size_t touch_points = 1; 90 size_t touch_points = 1;
(...skipping 25 matching lines...) Expand all
101 EXPECT_EQ(gfx::ToFlooredInt(pos.y()), web_event.y); 116 EXPECT_EQ(gfx::ToFlooredInt(pos.y()), web_event.y);
102 EXPECT_EQ(gfx::ToFlooredInt(raw_pos.x()), web_event.globalX); 117 EXPECT_EQ(gfx::ToFlooredInt(raw_pos.x()), web_event.globalX);
103 EXPECT_EQ(gfx::ToFlooredInt(raw_pos.y()), web_event.globalY); 118 EXPECT_EQ(gfx::ToFlooredInt(raw_pos.y()), web_event.globalY);
104 EXPECT_EQ(blink::WebGestureDeviceTouchscreen, web_event.sourceDevice); 119 EXPECT_EQ(blink::WebGestureDeviceTouchscreen, web_event.sourceDevice);
105 EXPECT_EQ(delta.x(), web_event.data.scrollUpdate.deltaX); 120 EXPECT_EQ(delta.x(), web_event.data.scrollUpdate.deltaX);
106 EXPECT_EQ(delta.y(), web_event.data.scrollUpdate.deltaY); 121 EXPECT_EQ(delta.y(), web_event.data.scrollUpdate.deltaY);
107 EXPECT_TRUE(web_event.data.scrollUpdate.previousUpdateInSequencePrevented); 122 EXPECT_TRUE(web_event.data.scrollUpdate.previousUpdateInSequencePrevented);
108 } 123 }
109 124
110 } // namespace content 125 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/renderer_host/input/touch_event_queue.cc ('k') | content/common/input/synthetic_web_input_event_builders.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698