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

Unified Diff: ui/events/android/motion_event_android_unittest.cc

Issue 2860793003: Pass through tilt_x and tilt_y to blink (Closed)
Patch Set: Pass through tilt_x and tilt_y to blink Created 3 years, 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/events/android/motion_event_android.cc ('k') | ui/events/blink/blink_event_util.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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));
« no previous file with comments | « ui/events/android/motion_event_android.cc ('k') | ui/events/blink/blink_event_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698