| Index: ui/events/android/motion_event_android_unittest.cc
|
| diff --git a/ui/events/android/motion_event_android_unittest.cc b/ui/events/android/motion_event_android_unittest.cc
|
| index 0df61228edcbc57726c2282ea9f6dbab529897da..8c67a9d8674468caa94ceb40328e3f7881b0e851 100644
|
| --- a/ui/events/android/motion_event_android_unittest.cc
|
| +++ b/ui/events/android/motion_event_android_unittest.cc
|
| @@ -4,6 +4,7 @@
|
|
|
| #include <android/input.h>
|
| #include <stddef.h>
|
| +#include <cmath>
|
|
|
| #include "base/android/jni_android.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
| @@ -31,8 +32,21 @@ int kAndroidToolTypeFinger = 1;
|
| // developer.android.com/reference/android/view/MotionEvent.html#BUTTON_PRIMARY.
|
| int kAndroidButtonPrimary = 1;
|
|
|
| +// This function convert tilt_x and tilt_y back to tilt_rad.
|
| +float ConvertToTiltRad(float tilt_x, float tilt_y) {
|
| + float tilt_x_r = sin(tilt_x * M_PI / 180.f);
|
| + float tilt_x_z = cos(tilt_x * M_PI / 180.f);
|
| + float tilt_y_r = sin(tilt_y * M_PI / 180.f);
|
| + float tilt_y_z = cos(tilt_y * M_PI / 180.f);
|
| + float r_x = tilt_x_r * tilt_y_z;
|
| + float r_y = tilt_y_r * tilt_x_z;
|
| + float r = sqrt(r_x * r_x + r_y * r_y);
|
| + float z = tilt_x_z * tilt_y_z;
|
| + return atan2(r, z);
|
| +}
|
| } // namespace
|
|
|
| +constexpr float float_error = 0.0001f;
|
| // Note that these tests avoid creating a Java instance of the MotionEvent, as
|
| // we're primarily testing caching behavior, and the code necessary to
|
| // construct a Java-backed MotionEvent itself adds unnecessary complexity.
|
| @@ -42,8 +56,8 @@ TEST(MotionEventAndroidTest, Constructor) {
|
| base::TimeTicks() + base::TimeDelta::FromMilliseconds(event_time_ms);
|
| MotionEventAndroid::Pointer p0(
|
| 1, 13.7f, -7.13f, 5.3f, 1.2f, 0.1f, 0.2f, kAndroidToolTypeFinger);
|
| - MotionEventAndroid::Pointer p1(
|
| - 2, -13.7f, 7.13f, 3.5f, 12.1f, -0.1f, -0.4f, kAndroidToolTypeFinger);
|
| + MotionEventAndroid::Pointer p1(2, -13.7f, 7.13f, 3.5f, 12.1f, -0.1f, 0.4f,
|
| + kAndroidToolTypeFinger);
|
| float raw_offset = -3.f;
|
| int pointer_count = 2;
|
| int history_size = 0;
|
| @@ -70,8 +84,12 @@ TEST(MotionEventAndroidTest, Constructor) {
|
| EXPECT_EQ(p1.touch_minor_pixels * kPixToDip, event.GetTouchMinor(1));
|
| EXPECT_EQ(p0.orientation_rad, event.GetOrientation(0));
|
| EXPECT_EQ(p1.orientation_rad, event.GetOrientation(1));
|
| - EXPECT_EQ(p0.tilt_rad, event.GetTilt(0));
|
| - EXPECT_EQ(p1.tilt_rad, event.GetTilt(1));
|
| + EXPECT_NEAR(p0.tilt_rad,
|
| + ConvertToTiltRad(event.GetTiltX(0), event.GetTiltY(0)),
|
| + float_error);
|
| + EXPECT_NEAR(p1.tilt_rad,
|
| + ConvertToTiltRad(event.GetTiltX(1), event.GetTiltY(1)),
|
| + float_error);
|
| EXPECT_EQ(p0.id, event.GetPointerId(0));
|
| EXPECT_EQ(p1.id, event.GetPointerId(1));
|
| EXPECT_EQ(MotionEvent::TOOL_TYPE_FINGER, event.GetToolType(0));
|
|
|