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

Side by Side Diff: ui/events/android/motion_event_android_unittest.cc

Issue 2708613002: Add EventForwarder for routing touch events (Closed)
Patch Set: EventForwarder... Created 3 years, 9 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
« no previous file with comments | « ui/events/android/motion_event_android.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 <android/input.h> 5 #include <android/input.h>
6 #include <stddef.h> 6 #include <stddef.h>
7 7
8 #include "base/android/jni_android.h" 8 #include "base/android/jni_android.h"
9 #include "testing/gtest/include/gtest/gtest.h" 9 #include "testing/gtest/include/gtest/gtest.h"
10 #include "ui/events/android/motion_event_android.h" 10 #include "ui/events/android/motion_event_android.h"
11 #include "ui/events/event_constants.h" 11 #include "ui/events/event_constants.h"
12 #include "ui/events/test/motion_event_test_utils.h" 12 #include "ui/events/test/motion_event_test_utils.h"
13 13
14 namespace ui { 14 namespace ui {
15 class MotionEvent; 15 class MotionEvent;
16 16
17 namespace { 17 namespace {
18 const float kPixToDip = 0.5f; 18 const float kPixToDip = 0.5f;
19 19
20 int kAndroidActionButton = 0;
20 int kAndroidActionDown = AMOTION_EVENT_ACTION_DOWN; 21 int kAndroidActionDown = AMOTION_EVENT_ACTION_DOWN;
21 int kAndroidActionPointerDown = AMOTION_EVENT_ACTION_POINTER_DOWN; 22 int kAndroidActionPointerDown = AMOTION_EVENT_ACTION_POINTER_DOWN;
22 int kAndroidAltKeyDown = AMETA_ALT_ON; 23 int kAndroidAltKeyDown = AMETA_ALT_ON;
23 24
24 // Corresponds to TOOL_TYPE_FINGER, see 25 // Corresponds to TOOL_TYPE_FINGER, see
25 // developer.android.com/reference/android/view/MotionEvent.html 26 // developer.android.com/reference/android/view/MotionEvent.html
26 // #TOOL_TYPE_FINGER. 27 // #TOOL_TYPE_FINGER.
27 int kAndroidToolTypeFinger = 1; 28 int kAndroidToolTypeFinger = 1;
28 29
29 // Corresponds to BUTTON_PRIMARY, see 30 // Corresponds to BUTTON_PRIMARY, see
(...skipping 10 matching lines...) Expand all
40 base::TimeTicks event_time = 41 base::TimeTicks event_time =
41 base::TimeTicks() + base::TimeDelta::FromMilliseconds(event_time_ms); 42 base::TimeTicks() + base::TimeDelta::FromMilliseconds(event_time_ms);
42 MotionEventAndroid::Pointer p0( 43 MotionEventAndroid::Pointer p0(
43 1, 13.7f, -7.13f, 5.3f, 1.2f, 0.1f, 0.2f, kAndroidToolTypeFinger); 44 1, 13.7f, -7.13f, 5.3f, 1.2f, 0.1f, 0.2f, kAndroidToolTypeFinger);
44 MotionEventAndroid::Pointer p1( 45 MotionEventAndroid::Pointer p1(
45 2, -13.7f, 7.13f, 3.5f, 12.1f, -0.1f, -0.4f, kAndroidToolTypeFinger); 46 2, -13.7f, 7.13f, 3.5f, 12.1f, -0.1f, -0.4f, kAndroidToolTypeFinger);
46 float raw_offset = -3.f; 47 float raw_offset = -3.f;
47 int pointer_count = 2; 48 int pointer_count = 2;
48 int history_size = 0; 49 int history_size = 0;
49 int action_index = -1; 50 int action_index = -1;
50 MotionEventAndroid event(kPixToDip, 51 MotionEventAndroid event(
51 base::android::AttachCurrentThread(), 52 kPixToDip, base::android::AttachCurrentThread(), nullptr, event_time_ms,
52 nullptr, 53 kAndroidActionDown, pointer_count, history_size, action_index,
53 event_time_ms, 54 kAndroidActionButton, kAndroidButtonPrimary, kAndroidAltKeyDown,
54 kAndroidActionDown, 55 raw_offset, -raw_offset, &p0, &p1);
55 pointer_count,
56 history_size,
57 action_index,
58 kAndroidButtonPrimary,
59 kAndroidAltKeyDown,
60 raw_offset,
61 -raw_offset,
62 &p0,
63 &p1);
64 56
65 EXPECT_EQ(MotionEvent::ACTION_DOWN, event.GetAction()); 57 EXPECT_EQ(MotionEvent::ACTION_DOWN, event.GetAction());
66 EXPECT_EQ(event_time, event.GetEventTime()); 58 EXPECT_EQ(event_time, event.GetEventTime());
67 EXPECT_EQ(p0.pos_x_pixels * kPixToDip, event.GetX(0)); 59 EXPECT_EQ(p0.pos_x_pixels * kPixToDip, event.GetX(0));
68 EXPECT_EQ(p0.pos_y_pixels * kPixToDip, event.GetY(0)); 60 EXPECT_EQ(p0.pos_y_pixels * kPixToDip, event.GetY(0));
69 EXPECT_EQ(p1.pos_x_pixels * kPixToDip, event.GetX(1)); 61 EXPECT_EQ(p1.pos_x_pixels * kPixToDip, event.GetX(1));
70 EXPECT_EQ(p1.pos_y_pixels * kPixToDip, event.GetY(1)); 62 EXPECT_EQ(p1.pos_y_pixels * kPixToDip, event.GetY(1));
71 EXPECT_FLOAT_EQ((p0.pos_x_pixels + raw_offset) * kPixToDip, event.GetRawX(0)); 63 EXPECT_FLOAT_EQ((p0.pos_x_pixels + raw_offset) * kPixToDip, event.GetRawX(0));
72 EXPECT_FLOAT_EQ((p0.pos_y_pixels - raw_offset) * kPixToDip, event.GetRawY(0)); 64 EXPECT_FLOAT_EQ((p0.pos_y_pixels - raw_offset) * kPixToDip, event.GetRawY(0));
73 EXPECT_FLOAT_EQ((p1.pos_x_pixels + raw_offset) * kPixToDip, event.GetRawX(1)); 65 EXPECT_FLOAT_EQ((p1.pos_x_pixels + raw_offset) * kPixToDip, event.GetRawX(1));
(...skipping 13 matching lines...) Expand all
87 EXPECT_EQ(MotionEvent::BUTTON_PRIMARY, event.GetButtonState()); 79 EXPECT_EQ(MotionEvent::BUTTON_PRIMARY, event.GetButtonState());
88 EXPECT_EQ(ui::EF_ALT_DOWN | ui::EF_LEFT_MOUSE_BUTTON, event.GetFlags()); 80 EXPECT_EQ(ui::EF_ALT_DOWN | ui::EF_LEFT_MOUSE_BUTTON, event.GetFlags());
89 EXPECT_EQ(static_cast<size_t>(pointer_count), event.GetPointerCount()); 81 EXPECT_EQ(static_cast<size_t>(pointer_count), event.GetPointerCount());
90 EXPECT_EQ(static_cast<size_t>(history_size), event.GetHistorySize()); 82 EXPECT_EQ(static_cast<size_t>(history_size), event.GetHistorySize());
91 } 83 }
92 84
93 TEST(MotionEventAndroidTest, Clone) { 85 TEST(MotionEventAndroidTest, Clone) {
94 const int pointer_count = 1; 86 const int pointer_count = 1;
95 MotionEventAndroid::Pointer p0( 87 MotionEventAndroid::Pointer p0(
96 1, 13.7f, -7.13f, 5.3f, 1.2f, 0.1f, 0.2f, kAndroidToolTypeFinger); 88 1, 13.7f, -7.13f, 5.3f, 1.2f, 0.1f, 0.2f, kAndroidToolTypeFinger);
97 MotionEventAndroid event(kPixToDip, 89 MotionEventAndroid event(kPixToDip, base::android::AttachCurrentThread(),
98 base::android::AttachCurrentThread(), 90 nullptr, 0, kAndroidActionDown, pointer_count, 0, 0,
99 nullptr, 91 0, 0, 0, 0, 0, &p0, nullptr);
100 0,
101 kAndroidActionDown,
102 pointer_count,
103 0,
104 0,
105 0,
106 0,
107 0,
108 0,
109 &p0,
110 nullptr);
111 92
112 std::unique_ptr<MotionEvent> clone = event.Clone(); 93 std::unique_ptr<MotionEvent> clone = event.Clone();
113 EXPECT_EQ(ui::test::ToString(event), ui::test::ToString(*clone)); 94 EXPECT_EQ(ui::test::ToString(event), ui::test::ToString(*clone));
114 } 95 }
115 96
116 TEST(MotionEventAndroidTest, Cancel) { 97 TEST(MotionEventAndroidTest, Cancel) {
117 const int event_time_ms = 5; 98 const int event_time_ms = 5;
118 const int pointer_count = 1; 99 const int pointer_count = 1;
119 MotionEventAndroid::Pointer p0( 100 MotionEventAndroid::Pointer p0(
120 1, 13.7f, -7.13f, 5.3f, 1.2f, 0.1f, 0.2f, kAndroidToolTypeFinger); 101 1, 13.7f, -7.13f, 5.3f, 1.2f, 0.1f, 0.2f, kAndroidToolTypeFinger);
121 MotionEventAndroid event(kPixToDip, 102 MotionEventAndroid event(kPixToDip, base::android::AttachCurrentThread(),
122 base::android::AttachCurrentThread(), 103 nullptr, event_time_ms, kAndroidActionDown,
123 nullptr, 104 pointer_count, 0, 0, 0, 0, 0, 0, 0, &p0, nullptr);
124 event_time_ms,
125 kAndroidActionDown,
126 pointer_count,
127 0,
128 0,
129 0,
130 0,
131 0,
132 0,
133 &p0,
134 nullptr);
135 105
136 std::unique_ptr<MotionEvent> cancel_event = event.Cancel(); 106 std::unique_ptr<MotionEvent> cancel_event = event.Cancel();
137 EXPECT_EQ(MotionEvent::ACTION_CANCEL, cancel_event->GetAction()); 107 EXPECT_EQ(MotionEvent::ACTION_CANCEL, cancel_event->GetAction());
138 EXPECT_EQ( 108 EXPECT_EQ(
139 base::TimeTicks() + base::TimeDelta::FromMilliseconds(event_time_ms), 109 base::TimeTicks() + base::TimeDelta::FromMilliseconds(event_time_ms),
140 cancel_event->GetEventTime()); 110 cancel_event->GetEventTime());
141 EXPECT_EQ(p0.pos_x_pixels * kPixToDip, cancel_event->GetX(0)); 111 EXPECT_EQ(p0.pos_x_pixels * kPixToDip, cancel_event->GetX(0));
142 EXPECT_EQ(p0.pos_y_pixels * kPixToDip, cancel_event->GetY(0)); 112 EXPECT_EQ(p0.pos_y_pixels * kPixToDip, cancel_event->GetY(0));
143 EXPECT_EQ(static_cast<size_t>(pointer_count), 113 EXPECT_EQ(static_cast<size_t>(pointer_count),
144 cancel_event->GetPointerCount()); 114 cancel_event->GetPointerCount());
145 EXPECT_EQ(0U, cancel_event->GetHistorySize()); 115 EXPECT_EQ(0U, cancel_event->GetHistorySize());
146 } 116 }
147 117
148 TEST(MotionEventAndroidTest, InvalidOrientationsSanitized) { 118 TEST(MotionEventAndroidTest, InvalidOrientationsSanitized) {
149 int pointer_count = 2; 119 int pointer_count = 2;
150 float orientation0 = 1e10f; 120 float orientation0 = 1e10f;
151 float orientation1 = std::numeric_limits<float>::quiet_NaN(); 121 float orientation1 = std::numeric_limits<float>::quiet_NaN();
152 MotionEventAndroid::Pointer p0(0, 0, 0, 0, 0, orientation0, 0, 0); 122 MotionEventAndroid::Pointer p0(0, 0, 0, 0, 0, orientation0, 0, 0);
153 MotionEventAndroid::Pointer p1(1, 0, 0, 0, 0, orientation1, 0, 0); 123 MotionEventAndroid::Pointer p1(1, 0, 0, 0, 0, orientation1, 0, 0);
154 MotionEventAndroid event(kPixToDip, 124 MotionEventAndroid event(kPixToDip, base::android::AttachCurrentThread(),
155 base::android::AttachCurrentThread(), 125 nullptr, 0, kAndroidActionDown, pointer_count, 0, 0,
156 nullptr, 126 0, 0, 0, 0, 0, &p0, &p1);
157 0,
158 kAndroidActionDown,
159 pointer_count,
160 0,
161 0,
162 0,
163 0,
164 0,
165 0,
166 &p0,
167 &p1);
168 127
169 EXPECT_EQ(0.f, event.GetOrientation(0)); 128 EXPECT_EQ(0.f, event.GetOrientation(0));
170 EXPECT_EQ(0.f, event.GetOrientation(1)); 129 EXPECT_EQ(0.f, event.GetOrientation(1));
171 } 130 }
172 131
173 TEST(MotionEventAndroidTest, NonEmptyHistoryForNonMoveEventsSanitized) { 132 TEST(MotionEventAndroidTest, NonEmptyHistoryForNonMoveEventsSanitized) {
174 int pointer_count = 1; 133 int pointer_count = 1;
175 size_t history_size = 5; 134 size_t history_size = 5;
176 MotionEventAndroid::Pointer p0(0, 0, 0, 0, 0, 0, 0, 0); 135 MotionEventAndroid::Pointer p0(0, 0, 0, 0, 0, 0, 0, 0);
177 MotionEventAndroid event(kPixToDip, 136 MotionEventAndroid event(kPixToDip, base::android::AttachCurrentThread(),
178 base::android::AttachCurrentThread(), 137 nullptr, 0, kAndroidActionDown, pointer_count,
179 nullptr, 138 history_size, 0, 0, 0, 0, 0, 0, &p0, nullptr);
180 0,
181 kAndroidActionDown,
182 pointer_count,
183 history_size,
184 0,
185 0,
186 0,
187 0,
188 0,
189 &p0,
190 nullptr);
191 139
192 EXPECT_EQ(0U, event.GetHistorySize()); 140 EXPECT_EQ(0U, event.GetHistorySize());
193 } 141 }
194 142
195 TEST(MotionEventAndroidTest, ActionIndexForPointerDown) { 143 TEST(MotionEventAndroidTest, ActionIndexForPointerDown) {
196 MotionEventAndroid::Pointer p0( 144 MotionEventAndroid::Pointer p0(
197 1, 13.7f, -7.13f, 5.3f, 1.2f, 0.1f, 0.2f, kAndroidToolTypeFinger); 145 1, 13.7f, -7.13f, 5.3f, 1.2f, 0.1f, 0.2f, kAndroidToolTypeFinger);
198 MotionEventAndroid::Pointer p1( 146 MotionEventAndroid::Pointer p1(
199 2, -13.7f, 7.13f, 3.5f, 12.1f, -0.1f, -0.4f, kAndroidToolTypeFinger); 147 2, -13.7f, 7.13f, 3.5f, 12.1f, -0.1f, -0.4f, kAndroidToolTypeFinger);
200 int pointer_count = 2; 148 int pointer_count = 2;
201 int history_size = 0; 149 int history_size = 0;
202 int action_index = 1; 150 int action_index = 1;
203 MotionEventAndroid event(kPixToDip, 151 MotionEventAndroid event(kPixToDip, base::android::AttachCurrentThread(),
204 base::android::AttachCurrentThread(), 152 nullptr, 0, kAndroidActionPointerDown, pointer_count,
205 nullptr, 153 history_size, action_index, 0, 0, 0, 0, 0, &p0, &p1);
206 0,
207 kAndroidActionPointerDown,
208 pointer_count,
209 history_size,
210 action_index,
211 0,
212 0,
213 0,
214 0,
215 &p0,
216 &p1);
217 154
218 EXPECT_EQ(MotionEvent::ACTION_POINTER_DOWN, event.GetAction()); 155 EXPECT_EQ(MotionEvent::ACTION_POINTER_DOWN, event.GetAction());
219 EXPECT_EQ(action_index, event.GetActionIndex()); 156 EXPECT_EQ(action_index, event.GetActionIndex());
220 } 157 }
221 158
222 } // namespace content 159 } // namespace content
OLDNEW
« no previous file with comments | « ui/events/android/motion_event_android.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698