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

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

Issue 494833003: Completed webkit radiusX, radiusY and rotationAngle handling. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Tweaked NaN checks Created 6 years, 3 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 "base/android/jni_android.h" 5 #include "base/android/jni_android.h"
6 #include "base/float_util.h"
6 #include "content/browser/renderer_host/input/motion_event_android.h" 7 #include "content/browser/renderer_host/input/motion_event_android.h"
7 #include "testing/gtest/include/gtest/gtest.h" 8 #include "testing/gtest/include/gtest/gtest.h"
8 9
9 using ui::MotionEvent; 10 using ui::MotionEvent;
10 11
11 namespace content { 12 namespace content {
12 namespace { 13 namespace {
13 const float kPixToDip = 0.5f; 14 const float kPixToDip = 0.5f;
14 15
15 // Corresponds to ACTION_DOWN, see 16 // Corresponds to ACTION_DOWN, see
16 // developer.android.com/reference/android/view/MotionEvent.html#ACTION_DOWN. 17 // developer.android.com/reference/android/view/MotionEvent.html#ACTION_DOWN.
17 int kAndroidActionDown = 0; 18 int kAndroidActionDown = 0;
18 19
19 // Corresponds to TOOL_TYPE_FINGER, see 20 // Corresponds to TOOL_TYPE_FINGER, see
20 // developer.android.com/reference/android/view/MotionEvent.html 21 // developer.android.com/reference/android/view/MotionEvent.html
21 // #TOOL_TYPE_FINGER. 22 // #TOOL_TYPE_FINGER.
22 int kAndroidToolTypeFinger = 1; 23 int kAndroidToolTypeFinger = 1;
23 24
24 // Corresponds to BUTTON_PRIMARY, see 25 // Corresponds to BUTTON_PRIMARY, see
25 // developer.android.com/reference/android/view/MotionEvent.html#BUTTON_PRIMARY. 26 // developer.android.com/reference/android/view/MotionEvent.html#BUTTON_PRIMARY.
26 int kAndroidButtonPrimary = 1; 27 int kAndroidButtonPrimary = 1;
27 28
28 } // namespace 29 } // namespace
29 30
30 TEST(MotionEventAndroidTest, Constructor) { 31 TEST(MotionEventAndroidTest, Constructor) {
31 int event_time_ms = 5; 32 int event_time_ms = 5;
32 base::TimeTicks event_time = 33 base::TimeTicks event_time =
33 base::TimeTicks() + base::TimeDelta::FromMilliseconds(event_time_ms); 34 base::TimeTicks() + base::TimeDelta::FromMilliseconds(event_time_ms);
34 float x0 = 13.7; 35 float x0 = 13.7f;
35 float y0 = -7.13; 36 float y0 = -7.13f;
36 float x1 = -13.7; 37 float x1 = -13.7f;
37 float y1 = 7.13; 38 float y1 = 7.13f;
38 float raw_offset = 10.1f; 39 float raw_offset = 10.1f;
39 float touch_major0 = 5.3f; 40 float touch_major0 = 5.3f;
40 float touch_major1 = 3.5f; 41 float touch_major1 = 3.5f;
42 float touch_minor0 = 1.2f;
43 float touch_minor1 = 2.1f;
44 float orientation0 = 0.1f;
45 float orientation1 = std::numeric_limits<float>::quiet_NaN();
jdduke (slow) 2014/08/29 16:45:08 Thanks.
41 int p0 = 1; 46 int p0 = 1;
42 int p1 = 2; 47 int p1 = 2;
43 int pointer_count = 2; 48 int pointer_count = 2;
44 int history_size = 0; 49 int history_size = 0;
45 int action_index = -1; 50 int action_index = -1;
46 base::android::ScopedJavaLocalRef<jobject> base_event_obj = 51 base::android::ScopedJavaLocalRef<jobject> base_event_obj =
47 MotionEventAndroid::Obtain( 52 MotionEventAndroid::Obtain(
48 event_time, event_time, MotionEvent::ACTION_DOWN, x0, y0); 53 event_time, event_time, MotionEvent::ACTION_DOWN, x0, y0);
49 ASSERT_TRUE(base_event_obj.obj()); 54 ASSERT_TRUE(base_event_obj.obj());
50 55
51 MotionEventAndroid event(kPixToDip, 56 MotionEventAndroid event(kPixToDip,
52 base::android::AttachCurrentThread(), 57 base::android::AttachCurrentThread(),
53 base_event_obj.obj(), 58 base_event_obj.obj(),
54 event_time_ms, 59 event_time_ms,
55 kAndroidActionDown, 60 kAndroidActionDown,
56 pointer_count, 61 pointer_count,
57 history_size, 62 history_size,
58 action_index, 63 action_index,
59 x0, 64 x0,
60 y0, 65 y0,
61 x1, 66 x1,
62 y1, 67 y1,
63 p0, 68 p0,
64 p1, 69 p1,
65 touch_major0, 70 touch_major0,
66 touch_major1, 71 touch_major1,
72 touch_minor0,
73 touch_minor1,
74 orientation0,
75 orientation1,
67 x0 + raw_offset, 76 x0 + raw_offset,
68 y0 - raw_offset, 77 y0 - raw_offset,
69 kAndroidToolTypeFinger, 78 kAndroidToolTypeFinger,
70 kAndroidToolTypeFinger, 79 kAndroidToolTypeFinger,
71 kAndroidButtonPrimary); 80 kAndroidButtonPrimary);
72 81
73 EXPECT_EQ(MotionEvent::ACTION_DOWN, event.GetAction()); 82 EXPECT_EQ(MotionEvent::ACTION_DOWN, event.GetAction());
74 EXPECT_EQ(event_time, event.GetEventTime()); 83 EXPECT_EQ(event_time, event.GetEventTime());
75 EXPECT_EQ(x0 * kPixToDip, event.GetX(0)); 84 EXPECT_EQ(x0 * kPixToDip, event.GetX(0));
76 EXPECT_EQ(y0 * kPixToDip, event.GetY(0)); 85 EXPECT_EQ(y0 * kPixToDip, event.GetY(0));
77 EXPECT_EQ(x1 * kPixToDip, event.GetX(1)); 86 EXPECT_EQ(x1 * kPixToDip, event.GetX(1));
78 EXPECT_EQ(y1 * kPixToDip, event.GetY(1)); 87 EXPECT_EQ(y1 * kPixToDip, event.GetY(1));
79 EXPECT_FLOAT_EQ((x0 + raw_offset) * kPixToDip, event.GetRawX(0)); 88 EXPECT_FLOAT_EQ((x0 + raw_offset) * kPixToDip, event.GetRawX(0));
80 EXPECT_FLOAT_EQ((y0 - raw_offset) * kPixToDip, event.GetRawY(0)); 89 EXPECT_FLOAT_EQ((y0 - raw_offset) * kPixToDip, event.GetRawY(0));
81 EXPECT_FLOAT_EQ((x1 + raw_offset) * kPixToDip, event.GetRawX(1)); 90 EXPECT_FLOAT_EQ((x1 + raw_offset) * kPixToDip, event.GetRawX(1));
82 EXPECT_FLOAT_EQ((y1 - raw_offset) * kPixToDip, event.GetRawY(1)); 91 EXPECT_FLOAT_EQ((y1 - raw_offset) * kPixToDip, event.GetRawY(1));
83 EXPECT_EQ(touch_major0 * kPixToDip, event.GetTouchMajor(0)); 92 EXPECT_EQ(touch_major0 * kPixToDip, event.GetTouchMajor(0));
84 EXPECT_EQ(touch_major1 * kPixToDip, event.GetTouchMajor(1)); 93 EXPECT_EQ(touch_major1 * kPixToDip, event.GetTouchMajor(1));
94 EXPECT_EQ(touch_minor0 * kPixToDip, event.GetTouchMinor(0));
95 EXPECT_EQ(touch_minor1 * kPixToDip, event.GetTouchMinor(1));
96 EXPECT_EQ(orientation0, event.GetOrientation(0));
97 EXPECT_EQ(0.f, event.GetOrientation(1));
85 EXPECT_EQ(p0, event.GetPointerId(0)); 98 EXPECT_EQ(p0, event.GetPointerId(0));
86 EXPECT_EQ(p1, event.GetPointerId(1)); 99 EXPECT_EQ(p1, event.GetPointerId(1));
87 EXPECT_EQ(MotionEvent::TOOL_TYPE_FINGER, event.GetToolType(0)); 100 EXPECT_EQ(MotionEvent::TOOL_TYPE_FINGER, event.GetToolType(0));
88 EXPECT_EQ(MotionEvent::TOOL_TYPE_FINGER, event.GetToolType(1)); 101 EXPECT_EQ(MotionEvent::TOOL_TYPE_FINGER, event.GetToolType(1));
89 EXPECT_EQ(MotionEvent::BUTTON_PRIMARY, event.GetButtonState()); 102 EXPECT_EQ(MotionEvent::BUTTON_PRIMARY, event.GetButtonState());
90 EXPECT_EQ(static_cast<size_t>(pointer_count), event.GetPointerCount()); 103 EXPECT_EQ(static_cast<size_t>(pointer_count), event.GetPointerCount());
91 EXPECT_EQ(static_cast<size_t>(history_size), event.GetHistorySize()); 104 EXPECT_EQ(static_cast<size_t>(history_size), event.GetHistorySize());
92 EXPECT_EQ(action_index, event.GetActionIndex()); 105 EXPECT_EQ(action_index, event.GetActionIndex());
93 } 106 }
94 107
95 TEST(MotionEventAndroidTest, Clone) { 108 TEST(MotionEventAndroidTest, Clone) {
96 int event_time_ms = 5; 109 int event_time_ms = 5;
97 base::TimeTicks event_time = 110 base::TimeTicks event_time =
98 base::TimeTicks() + base::TimeDelta::FromMilliseconds(event_time_ms); 111 base::TimeTicks() + base::TimeDelta::FromMilliseconds(event_time_ms);
99 float x = 13.7; 112 float x = 13.7f;
100 float y = -7.13; 113 float y = -7.13f;
101 float touch_major = 5.3f; 114 float touch_major = 5.3f;
115 float touch_minor = 3.5f;
116 float orientation = 0.2f;
102 int pointer_count = 1; 117 int pointer_count = 1;
103 int pointer_id = 1; 118 int pointer_id = 1;
104 base::android::ScopedJavaLocalRef<jobject> event_obj = 119 base::android::ScopedJavaLocalRef<jobject> event_obj =
105 MotionEventAndroid::Obtain( 120 MotionEventAndroid::Obtain(
106 event_time, event_time, MotionEvent::ACTION_DOWN, x, y); 121 event_time, event_time, MotionEvent::ACTION_DOWN, x, y);
107 ASSERT_TRUE(event_obj.obj()); 122 ASSERT_TRUE(event_obj.obj());
108 123
109 MotionEventAndroid event(kPixToDip, 124 MotionEventAndroid event(kPixToDip,
110 base::android::AttachCurrentThread(), 125 base::android::AttachCurrentThread(),
111 event_obj.obj(), 126 event_obj.obj(),
112 event_time_ms, 127 event_time_ms,
113 kAndroidActionDown, 128 kAndroidActionDown,
114 pointer_count, 129 pointer_count,
115 0, 130 0,
116 0, 131 0,
117 x, 132 x,
118 y, 133 y,
119 0, 134 0,
120 0, 135 0,
121 pointer_id, 136 pointer_id,
122 0, 137 0,
123 touch_major, 138 touch_major,
124 0.f, 139 0.f,
140 touch_minor,
141 0.f,
142 orientation,
143 0.f,
125 x, 144 x,
126 y, 145 y,
127 0, 146 0,
128 0, 147 0,
129 0); 148 0);
130 149
131 scoped_ptr<MotionEvent> clone = event.Clone(); 150 scoped_ptr<MotionEvent> clone = event.Clone();
132 EXPECT_EQ(event, *clone); 151 EXPECT_EQ(event, *clone);
133 } 152 }
134 153
135 TEST(MotionEventAndroidTest, Cancel) { 154 TEST(MotionEventAndroidTest, Cancel) {
136 int event_time_ms = 5; 155 int event_time_ms = 5;
137 base::TimeTicks event_time = 156 base::TimeTicks event_time =
138 base::TimeTicks() + base::TimeDelta::FromMilliseconds(event_time_ms); 157 base::TimeTicks() + base::TimeDelta::FromMilliseconds(event_time_ms);
139 int pointer_count = 1; 158 int pointer_count = 1;
140 float x = 13.7; 159 float x = 13.7f;
141 float y = -7.13; 160 float y = -7.13f;
142 base::android::ScopedJavaLocalRef<jobject> event_obj = 161 base::android::ScopedJavaLocalRef<jobject> event_obj =
143 MotionEventAndroid::Obtain( 162 MotionEventAndroid::Obtain(
144 event_time, event_time, MotionEvent::ACTION_DOWN, x, y); 163 event_time, event_time, MotionEvent::ACTION_DOWN, x, y);
145 ASSERT_TRUE(event_obj.obj()); 164 ASSERT_TRUE(event_obj.obj());
146 165
147 MotionEventAndroid event(kPixToDip, 166 MotionEventAndroid event(kPixToDip,
148 base::android::AttachCurrentThread(), 167 base::android::AttachCurrentThread(),
149 event_obj.obj(), 168 event_obj.obj(),
150 event_time_ms, 169 event_time_ms,
151 kAndroidActionDown, 170 kAndroidActionDown,
152 pointer_count, 171 pointer_count,
153 0, 172 0,
154 0, 173 0,
155 x, 174 x,
156 y, 175 y,
157 0, 176 0,
158 0, 177 0,
159 0, 178 0,
160 0, 179 0,
161 0.f, 180 0.f,
162 0.f, 181 0.f,
182 0.f,
183 0.f,
184 0.f,
185 0.f,
163 x, 186 x,
164 y, 187 y,
165 0, 188 0,
166 0, 189 0,
167 0); 190 0);
168 191
169 scoped_ptr<MotionEvent> cancel_event = event.Cancel(); 192 scoped_ptr<MotionEvent> cancel_event = event.Cancel();
170 EXPECT_EQ(MotionEvent::ACTION_CANCEL, cancel_event->GetAction()); 193 EXPECT_EQ(MotionEvent::ACTION_CANCEL, cancel_event->GetAction());
171 EXPECT_EQ(event_time, cancel_event->GetEventTime()); 194 EXPECT_EQ(event_time, cancel_event->GetEventTime());
172 EXPECT_EQ(x * kPixToDip, cancel_event->GetX(0)); 195 EXPECT_EQ(x * kPixToDip, cancel_event->GetX(0));
173 EXPECT_EQ(y * kPixToDip, cancel_event->GetY(0)); 196 EXPECT_EQ(y * kPixToDip, cancel_event->GetY(0));
174 EXPECT_EQ(static_cast<size_t>(pointer_count), 197 EXPECT_EQ(static_cast<size_t>(pointer_count),
175 cancel_event->GetPointerCount()); 198 cancel_event->GetPointerCount());
176 EXPECT_EQ(0U, cancel_event->GetHistorySize()); 199 EXPECT_EQ(0U, cancel_event->GetHistorySize());
177 } 200 }
178 201
179 } // namespace content 202 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698