| OLD | NEW |
| 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" |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 52 nullptr, | 52 nullptr, |
| 53 event_time_ms, | 53 event_time_ms, |
| 54 kAndroidActionDown, | 54 kAndroidActionDown, |
| 55 pointer_count, | 55 pointer_count, |
| 56 history_size, | 56 history_size, |
| 57 action_index, | 57 action_index, |
| 58 kAndroidButtonPrimary, | 58 kAndroidButtonPrimary, |
| 59 kAndroidAltKeyDown, | 59 kAndroidAltKeyDown, |
| 60 raw_offset, | 60 raw_offset, |
| 61 -raw_offset, | 61 -raw_offset, |
| 62 p0, | 62 &p0, |
| 63 p1); | 63 &p1); |
| 64 | 64 |
| 65 EXPECT_EQ(MotionEvent::ACTION_DOWN, event.GetAction()); | 65 EXPECT_EQ(MotionEvent::ACTION_DOWN, event.GetAction()); |
| 66 EXPECT_EQ(event_time, event.GetEventTime()); | 66 EXPECT_EQ(event_time, event.GetEventTime()); |
| 67 EXPECT_EQ(p0.pos_x_pixels * kPixToDip, event.GetX(0)); | 67 EXPECT_EQ(p0.pos_x_pixels * kPixToDip, event.GetX(0)); |
| 68 EXPECT_EQ(p0.pos_y_pixels * kPixToDip, event.GetY(0)); | 68 EXPECT_EQ(p0.pos_y_pixels * kPixToDip, event.GetY(0)); |
| 69 EXPECT_EQ(p1.pos_x_pixels * kPixToDip, event.GetX(1)); | 69 EXPECT_EQ(p1.pos_x_pixels * kPixToDip, event.GetX(1)); |
| 70 EXPECT_EQ(p1.pos_y_pixels * kPixToDip, event.GetY(1)); | 70 EXPECT_EQ(p1.pos_y_pixels * kPixToDip, event.GetY(1)); |
| 71 EXPECT_FLOAT_EQ((p0.pos_x_pixels + raw_offset) * kPixToDip, event.GetRawX(0)); | 71 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)); | 72 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)); | 73 EXPECT_FLOAT_EQ((p1.pos_x_pixels + raw_offset) * kPixToDip, event.GetRawX(1)); |
| 74 EXPECT_FLOAT_EQ((p1.pos_y_pixels - raw_offset) * kPixToDip, event.GetRawY(1)); | 74 EXPECT_FLOAT_EQ((p1.pos_y_pixels - raw_offset) * kPixToDip, event.GetRawY(1)); |
| 75 EXPECT_EQ(p0.touch_major_pixels * kPixToDip, event.GetTouchMajor(0)); | 75 EXPECT_EQ(p0.touch_major_pixels * kPixToDip, event.GetTouchMajor(0)); |
| 76 EXPECT_EQ(p1.touch_major_pixels * kPixToDip, event.GetTouchMajor(1)); | 76 EXPECT_EQ(p1.touch_major_pixels * kPixToDip, event.GetTouchMajor(1)); |
| 77 EXPECT_EQ(p0.touch_minor_pixels * kPixToDip, event.GetTouchMinor(0)); | 77 EXPECT_EQ(p0.touch_minor_pixels * kPixToDip, event.GetTouchMinor(0)); |
| 78 EXPECT_EQ(p1.touch_minor_pixels * kPixToDip, event.GetTouchMinor(1)); | 78 EXPECT_EQ(p1.touch_minor_pixels * kPixToDip, event.GetTouchMinor(1)); |
| 79 EXPECT_EQ(p0.orientation_rad, event.GetOrientation(0)); | 79 EXPECT_EQ(p0.orientation_rad, event.GetOrientation(0)); |
| 80 EXPECT_EQ(p1.orientation_rad, event.GetOrientation(1)); | 80 EXPECT_EQ(p1.orientation_rad, event.GetOrientation(1)); |
| 81 EXPECT_EQ(p0.tilt_rad, event.GetTilt(0)); | 81 EXPECT_EQ(p0.tilt_rad, event.GetTilt(0)); |
| 82 EXPECT_EQ(p1.tilt_rad, event.GetTilt(1)); | 82 EXPECT_EQ(p1.tilt_rad, event.GetTilt(1)); |
| 83 EXPECT_EQ(p0.id, event.GetPointerId(0)); | 83 EXPECT_EQ(p0.id, event.GetPointerId(0)); |
| 84 EXPECT_EQ(p1.id, event.GetPointerId(1)); | 84 EXPECT_EQ(p1.id, event.GetPointerId(1)); |
| 85 EXPECT_EQ(MotionEvent::TOOL_TYPE_FINGER, event.GetToolType(0)); | 85 EXPECT_EQ(MotionEvent::TOOL_TYPE_FINGER, event.GetToolType(0)); |
| 86 EXPECT_EQ(MotionEvent::TOOL_TYPE_FINGER, event.GetToolType(1)); | 86 EXPECT_EQ(MotionEvent::TOOL_TYPE_FINGER, event.GetToolType(1)); |
| 87 EXPECT_EQ(MotionEvent::BUTTON_PRIMARY, event.GetButtonState()); | 87 EXPECT_EQ(MotionEvent::BUTTON_PRIMARY, event.GetButtonState()); |
| 88 EXPECT_EQ(ui::EF_ALT_DOWN, event.GetFlags()); | 88 EXPECT_EQ(ui::EF_ALT_DOWN | ui::EF_LEFT_MOUSE_BUTTON, event.GetFlags()); |
| 89 EXPECT_EQ(static_cast<size_t>(pointer_count), event.GetPointerCount()); | 89 EXPECT_EQ(static_cast<size_t>(pointer_count), event.GetPointerCount()); |
| 90 EXPECT_EQ(static_cast<size_t>(history_size), event.GetHistorySize()); | 90 EXPECT_EQ(static_cast<size_t>(history_size), event.GetHistorySize()); |
| 91 } | 91 } |
| 92 | 92 |
| 93 TEST(MotionEventAndroidTest, Clone) { | 93 TEST(MotionEventAndroidTest, Clone) { |
| 94 const int pointer_count = 1; | 94 const int pointer_count = 1; |
| 95 MotionEventAndroid::Pointer p0( | 95 MotionEventAndroid::Pointer p0( |
| 96 1, 13.7f, -7.13f, 5.3f, 1.2f, 0.1f, 0.2f, kAndroidToolTypeFinger); | 96 1, 13.7f, -7.13f, 5.3f, 1.2f, 0.1f, 0.2f, kAndroidToolTypeFinger); |
| 97 MotionEventAndroid::Pointer p1(0, 0, 0, 0, 0, 0, 0, 0); | |
| 98 MotionEventAndroid event(kPixToDip, | 97 MotionEventAndroid event(kPixToDip, |
| 99 base::android::AttachCurrentThread(), | 98 base::android::AttachCurrentThread(), |
| 100 nullptr, | 99 nullptr, |
| 101 0, | 100 0, |
| 102 kAndroidActionDown, | 101 kAndroidActionDown, |
| 103 pointer_count, | 102 pointer_count, |
| 104 0, | 103 0, |
| 105 0, | 104 0, |
| 106 0, | 105 0, |
| 107 0, | 106 0, |
| 108 0, | 107 0, |
| 109 0, | 108 0, |
| 110 p0, | 109 &p0, |
| 111 p1); | 110 nullptr); |
| 112 | 111 |
| 113 std::unique_ptr<MotionEvent> clone = event.Clone(); | 112 std::unique_ptr<MotionEvent> clone = event.Clone(); |
| 114 EXPECT_EQ(ui::test::ToString(event), ui::test::ToString(*clone)); | 113 EXPECT_EQ(ui::test::ToString(event), ui::test::ToString(*clone)); |
| 115 } | 114 } |
| 116 | 115 |
| 117 TEST(MotionEventAndroidTest, Cancel) { | 116 TEST(MotionEventAndroidTest, Cancel) { |
| 118 const int event_time_ms = 5; | 117 const int event_time_ms = 5; |
| 119 const int pointer_count = 1; | 118 const int pointer_count = 1; |
| 120 MotionEventAndroid::Pointer p0( | 119 MotionEventAndroid::Pointer p0( |
| 121 1, 13.7f, -7.13f, 5.3f, 1.2f, 0.1f, 0.2f, kAndroidToolTypeFinger); | 120 1, 13.7f, -7.13f, 5.3f, 1.2f, 0.1f, 0.2f, kAndroidToolTypeFinger); |
| 122 MotionEventAndroid::Pointer p1(0, 0, 0, 0, 0, 0, 0, 0); | |
| 123 MotionEventAndroid event(kPixToDip, | 121 MotionEventAndroid event(kPixToDip, |
| 124 base::android::AttachCurrentThread(), | 122 base::android::AttachCurrentThread(), |
| 125 nullptr, | 123 nullptr, |
| 126 event_time_ms, | 124 event_time_ms, |
| 127 kAndroidActionDown, | 125 kAndroidActionDown, |
| 128 pointer_count, | 126 pointer_count, |
| 129 0, | 127 0, |
| 130 0, | 128 0, |
| 131 0, | 129 0, |
| 132 0, | 130 0, |
| 133 0, | 131 0, |
| 134 0, | 132 0, |
| 135 p0, | 133 &p0, |
| 136 p1); | 134 nullptr); |
| 137 | 135 |
| 138 std::unique_ptr<MotionEvent> cancel_event = event.Cancel(); | 136 std::unique_ptr<MotionEvent> cancel_event = event.Cancel(); |
| 139 EXPECT_EQ(MotionEvent::ACTION_CANCEL, cancel_event->GetAction()); | 137 EXPECT_EQ(MotionEvent::ACTION_CANCEL, cancel_event->GetAction()); |
| 140 EXPECT_EQ( | 138 EXPECT_EQ( |
| 141 base::TimeTicks() + base::TimeDelta::FromMilliseconds(event_time_ms), | 139 base::TimeTicks() + base::TimeDelta::FromMilliseconds(event_time_ms), |
| 142 cancel_event->GetEventTime()); | 140 cancel_event->GetEventTime()); |
| 143 EXPECT_EQ(p0.pos_x_pixels * kPixToDip, cancel_event->GetX(0)); | 141 EXPECT_EQ(p0.pos_x_pixels * kPixToDip, cancel_event->GetX(0)); |
| 144 EXPECT_EQ(p0.pos_y_pixels * kPixToDip, cancel_event->GetY(0)); | 142 EXPECT_EQ(p0.pos_y_pixels * kPixToDip, cancel_event->GetY(0)); |
| 145 EXPECT_EQ(static_cast<size_t>(pointer_count), | 143 EXPECT_EQ(static_cast<size_t>(pointer_count), |
| 146 cancel_event->GetPointerCount()); | 144 cancel_event->GetPointerCount()); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 158 nullptr, | 156 nullptr, |
| 159 0, | 157 0, |
| 160 kAndroidActionDown, | 158 kAndroidActionDown, |
| 161 pointer_count, | 159 pointer_count, |
| 162 0, | 160 0, |
| 163 0, | 161 0, |
| 164 0, | 162 0, |
| 165 0, | 163 0, |
| 166 0, | 164 0, |
| 167 0, | 165 0, |
| 168 p0, | 166 &p0, |
| 169 p1); | 167 &p1); |
| 170 | 168 |
| 171 EXPECT_EQ(0.f, event.GetOrientation(0)); | 169 EXPECT_EQ(0.f, event.GetOrientation(0)); |
| 172 EXPECT_EQ(0.f, event.GetOrientation(1)); | 170 EXPECT_EQ(0.f, event.GetOrientation(1)); |
| 173 } | 171 } |
| 174 | 172 |
| 175 TEST(MotionEventAndroidTest, NonEmptyHistoryForNonMoveEventsSanitized) { | 173 TEST(MotionEventAndroidTest, NonEmptyHistoryForNonMoveEventsSanitized) { |
| 176 int pointer_count = 1; | 174 int pointer_count = 1; |
| 177 size_t history_size = 5; | 175 size_t history_size = 5; |
| 178 MotionEventAndroid::Pointer p0(0, 0, 0, 0, 0, 0, 0, 0); | 176 MotionEventAndroid::Pointer p0(0, 0, 0, 0, 0, 0, 0, 0); |
| 179 MotionEventAndroid::Pointer p1(0, 0, 0, 0, 0, 0, 0, 0); | |
| 180 MotionEventAndroid event(kPixToDip, | 177 MotionEventAndroid event(kPixToDip, |
| 181 base::android::AttachCurrentThread(), | 178 base::android::AttachCurrentThread(), |
| 182 nullptr, | 179 nullptr, |
| 183 0, | 180 0, |
| 184 kAndroidActionDown, | 181 kAndroidActionDown, |
| 185 pointer_count, | 182 pointer_count, |
| 186 history_size, | 183 history_size, |
| 187 0, | 184 0, |
| 188 0, | 185 0, |
| 189 0, | 186 0, |
| 190 0, | 187 0, |
| 191 0, | 188 0, |
| 192 p0, | 189 &p0, |
| 193 p1); | 190 nullptr); |
| 194 | 191 |
| 195 EXPECT_EQ(0U, event.GetHistorySize()); | 192 EXPECT_EQ(0U, event.GetHistorySize()); |
| 196 } | 193 } |
| 197 | 194 |
| 198 TEST(MotionEventAndroidTest, ActionIndexForPointerDown) { | 195 TEST(MotionEventAndroidTest, ActionIndexForPointerDown) { |
| 199 MotionEventAndroid::Pointer p0( | 196 MotionEventAndroid::Pointer p0( |
| 200 1, 13.7f, -7.13f, 5.3f, 1.2f, 0.1f, 0.2f, kAndroidToolTypeFinger); | 197 1, 13.7f, -7.13f, 5.3f, 1.2f, 0.1f, 0.2f, kAndroidToolTypeFinger); |
| 201 MotionEventAndroid::Pointer p1( | 198 MotionEventAndroid::Pointer p1( |
| 202 2, -13.7f, 7.13f, 3.5f, 12.1f, -0.1f, -0.4f, kAndroidToolTypeFinger); | 199 2, -13.7f, 7.13f, 3.5f, 12.1f, -0.1f, -0.4f, kAndroidToolTypeFinger); |
| 203 int pointer_count = 2; | 200 int pointer_count = 2; |
| 204 int history_size = 0; | 201 int history_size = 0; |
| 205 int action_index = 1; | 202 int action_index = 1; |
| 206 MotionEventAndroid event(kPixToDip, | 203 MotionEventAndroid event(kPixToDip, |
| 207 base::android::AttachCurrentThread(), | 204 base::android::AttachCurrentThread(), |
| 208 nullptr, | 205 nullptr, |
| 209 0, | 206 0, |
| 210 kAndroidActionPointerDown, | 207 kAndroidActionPointerDown, |
| 211 pointer_count, | 208 pointer_count, |
| 212 history_size, | 209 history_size, |
| 213 action_index, | 210 action_index, |
| 214 0, | 211 0, |
| 215 0, | 212 0, |
| 216 0, | 213 0, |
| 217 0, | 214 0, |
| 218 p0, | 215 &p0, |
| 219 p1); | 216 &p1); |
| 220 | 217 |
| 221 EXPECT_EQ(MotionEvent::ACTION_POINTER_DOWN, event.GetAction()); | 218 EXPECT_EQ(MotionEvent::ACTION_POINTER_DOWN, event.GetAction()); |
| 222 EXPECT_EQ(action_index, event.GetActionIndex()); | 219 EXPECT_EQ(action_index, event.GetActionIndex()); |
| 223 } | 220 } |
| 224 | 221 |
| 225 } // namespace content | 222 } // namespace content |
| OLD | NEW |