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

Unified Diff: ui/events/gestures/motion_event_aura_unittest.cc

Issue 800163005: Fixed ui::TouchEvent rotation angle out-of-bound issue. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 11 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/gestures/motion_event_aura.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/events/gestures/motion_event_aura_unittest.cc
diff --git a/ui/events/gestures/motion_event_aura_unittest.cc b/ui/events/gestures/motion_event_aura_unittest.cc
index b1ce02783653352624f428c080a0b9d9a4fad79f..57ee6ce256999471efc89fc6c0fab2af985f0010 100644
--- a/ui/events/gestures/motion_event_aura_unittest.cc
+++ b/ui/events/gestures/motion_event_aura_unittest.cc
@@ -108,7 +108,7 @@ TEST(MotionEventAuraTest, PointerCountAndIds) {
EXPECT_EQ(ids[2], event.GetPointerId(1));
// Test cloning of pointer count and id information.
- // TODO(mustaq): Make a separate clone test
+ // TODO(mustaq): Make a separate clone test, crbug.com/450655
scoped_ptr<MotionEvent> clone = event.Clone();
EXPECT_EQ(2U, clone->GetPointerCount());
EXPECT_EQ(ids[0], clone->GetPointerId(0));
@@ -207,14 +207,12 @@ TEST(MotionEventAuraTest, PointerLocations) {
// Test cloning of pointer location information.
scoped_ptr<MotionEvent> clone = event.Clone();
- {
- EXPECT_EQ(test::ToString(event), test::ToString(*clone));
- EXPECT_EQ(2U, clone->GetPointerCount());
- EXPECT_FLOAT_EQ(x, clone->GetX(1));
- EXPECT_FLOAT_EQ(y, clone->GetY(1));
- EXPECT_FLOAT_EQ(raw_x, clone->GetRawX(1));
- EXPECT_FLOAT_EQ(raw_y, clone->GetRawY(1));
- }
+ EXPECT_EQ(test::ToString(event), test::ToString(*clone));
+ EXPECT_EQ(2U, clone->GetPointerCount());
+ EXPECT_FLOAT_EQ(x, clone->GetX(1));
+ EXPECT_FLOAT_EQ(y, clone->GetY(1));
+ EXPECT_FLOAT_EQ(raw_x, clone->GetRawX(1));
+ EXPECT_FLOAT_EQ(raw_y, clone->GetRawY(1));
x = 27.9f;
y = 22.3f;
@@ -247,13 +245,14 @@ TEST(MotionEventAuraTest, TapParams) {
// Test that touch params are stored correctly.
MotionEventAura event;
- int ids[] = {15, 13};
+ int ids[] = {15, 13, 25, 23};
float radius_x;
float radius_y;
float rotation_angle;
float pressure;
+ // Test case: radius_x > radius_y, rotation_angle < 90
radius_x = 123.45f;
radius_y = 67.89f;
rotation_angle = 23.f;
@@ -268,6 +267,7 @@ TEST(MotionEventAuraTest, TapParams) {
EXPECT_FLOAT_EQ(rotation_angle, event.GetOrientation(0) * 180 / M_PI + 90);
EXPECT_FLOAT_EQ(pressure, event.GetPressure(0));
+ // Test case: radius_x < radius_y, rotation_angle < 90
radius_x = 67.89f;
radius_y = 123.45f;
rotation_angle = 46.f;
@@ -283,16 +283,16 @@ TEST(MotionEventAuraTest, TapParams) {
EXPECT_FLOAT_EQ(pressure, event.GetPressure(1));
// Test cloning of tap params
+ // TODO(mustaq): Make a separate clone test, crbug.com/450655
scoped_ptr<MotionEvent> clone = event.Clone();
- {
- EXPECT_EQ(test::ToString(event), test::ToString(*clone));
- EXPECT_EQ(2U, clone->GetPointerCount());
- EXPECT_FLOAT_EQ(radius_y, clone->GetTouchMajor(1) / 2);
- EXPECT_FLOAT_EQ(radius_x, clone->GetTouchMinor(1) / 2);
- EXPECT_FLOAT_EQ(rotation_angle, clone->GetOrientation(1) * 180 / M_PI);
- EXPECT_FLOAT_EQ(pressure, clone->GetPressure(1));
- }
+ EXPECT_EQ(test::ToString(event), test::ToString(*clone));
+ EXPECT_EQ(2U, clone->GetPointerCount());
+ EXPECT_FLOAT_EQ(radius_y, clone->GetTouchMajor(1) / 2);
+ EXPECT_FLOAT_EQ(radius_x, clone->GetTouchMinor(1) / 2);
+ EXPECT_FLOAT_EQ(rotation_angle, clone->GetOrientation(1) * 180 / M_PI);
+ EXPECT_FLOAT_EQ(pressure, clone->GetPressure(1));
+ // TODO(mustaq): The move test seems out-of-scope here, crbug.com/450655
radius_x = 76.98f;
radius_y = 321.54f;
rotation_angle = 64.f;
@@ -307,6 +307,36 @@ TEST(MotionEventAuraTest, TapParams) {
EXPECT_FLOAT_EQ(radius_x, event.GetTouchMinor(1) / 2);
EXPECT_FLOAT_EQ(rotation_angle, event.GetOrientation(1) * 180 / M_PI);
EXPECT_FLOAT_EQ(pressure, event.GetPressure(1));
+
+ // Test case: radius_x > radius_y, rotation_angle > 90
+ radius_x = 123.45f;
+ radius_y = 67.89f;
+ rotation_angle = 92.f;
+ pressure = 0.789f;
+ TouchEvent press2 = TouchWithTapParams(
+ ET_TOUCH_PRESSED, ids[2], radius_x, radius_y, rotation_angle, pressure);
+ EXPECT_TRUE(event.OnTouch(press2));
+
+ EXPECT_EQ(3U, event.GetPointerCount());
+ EXPECT_FLOAT_EQ(radius_x, event.GetTouchMajor(2) / 2);
+ EXPECT_FLOAT_EQ(radius_y, event.GetTouchMinor(2) / 2);
+ EXPECT_FLOAT_EQ(rotation_angle, event.GetOrientation(2) * 180 / M_PI + 90);
+ EXPECT_FLOAT_EQ(pressure, event.GetPressure(2));
+
+ // Test case: radius_x < radius_y, rotation_angle > 90
+ radius_x = 67.89f;
+ radius_y = 123.45f;
+ rotation_angle = 135.f;
+ pressure = 0.012f;
+ TouchEvent press3 = TouchWithTapParams(
+ ET_TOUCH_PRESSED, ids[3], radius_x, radius_y, rotation_angle, pressure);
+ EXPECT_TRUE(event.OnTouch(press3));
+
+ EXPECT_EQ(4U, event.GetPointerCount());
+ EXPECT_FLOAT_EQ(radius_y, event.GetTouchMajor(3) / 2);
+ EXPECT_FLOAT_EQ(radius_x, event.GetTouchMinor(3) / 2);
+ EXPECT_FLOAT_EQ(rotation_angle, event.GetOrientation(3) * 180 / M_PI + 180);
+ EXPECT_FLOAT_EQ(pressure, event.GetPressure(3));
}
TEST(MotionEventAuraTest, Timestamps) {
« no previous file with comments | « ui/events/gestures/motion_event_aura.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698