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

Unified Diff: ui/events/event_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
Index: ui/events/event_unittest.cc
diff --git a/ui/events/event_unittest.cc b/ui/events/event_unittest.cc
index 11913e1f8333ce5e934b4a6c65df606cb62a7990..5a99331db90587ba889e8378ac497d962c55b504 100644
--- a/ui/events/event_unittest.cc
+++ b/ui/events/event_unittest.cc
@@ -505,13 +505,61 @@ TEST(EventTest, TouchEventRadiusDefaultsToOtherAxis) {
TouchEvent event1(ui::ET_TOUCH_PRESSED, gfx::Point(0, 0), 0, 0, time,
non_zero_length1, 0, 0, 0);
- DCHECK_EQ(non_zero_length1, event1.radius_x());
- DCHECK_EQ(non_zero_length1, event1.radius_y());
+ EXPECT_EQ(non_zero_length1, event1.radius_x());
+ EXPECT_EQ(non_zero_length1, event1.radius_y());
TouchEvent event2(ui::ET_TOUCH_PRESSED, gfx::Point(0, 0), 0, 0, time,
0, non_zero_length2, 0, 0);
- DCHECK_EQ(non_zero_length2, event2.radius_x());
- DCHECK_EQ(non_zero_length2, event2.radius_y());
+ EXPECT_EQ(non_zero_length2, event2.radius_x());
+ EXPECT_EQ(non_zero_length2, event2.radius_y());
+}
+
+TEST(EventTest, TouchEventRotationAngleFixing) {
+ const base::TimeDelta time = base::TimeDelta::FromMilliseconds(0);
+ const float radius_x = 20;
+ const float radius_y = 10;
+
+ {
+ const float angle_in_range = 0;
+ TouchEvent event(ui::ET_TOUCH_PRESSED, gfx::Point(0, 0), 0, 0, time,
+ radius_x, radius_y, angle_in_range, 0);
+ EXPECT_FLOAT_EQ(angle_in_range, event.rotation_angle());
+ }
+
+ {
+ const float angle_in_range = 179.9;
+ TouchEvent event(ui::ET_TOUCH_PRESSED, gfx::Point(0, 0), 0, 0, time,
+ radius_x, radius_y, angle_in_range, 0);
+ EXPECT_FLOAT_EQ(angle_in_range, event.rotation_angle());
+ }
+
+ {
+ const float angle_negative = -0.1;
+ TouchEvent event(ui::ET_TOUCH_PRESSED, gfx::Point(0, 0), 0, 0, time,
+ radius_x, radius_y, angle_negative, 0);
+ EXPECT_FLOAT_EQ(180 - 0.1, event.rotation_angle());
+ }
+
+ {
+ const float angle_negative = -200;
+ TouchEvent event(ui::ET_TOUCH_PRESSED, gfx::Point(0, 0), 0, 0, time,
+ radius_x, radius_y, angle_negative, 0);
+ EXPECT_FLOAT_EQ(360 - 200, event.rotation_angle());
+ }
+
+ {
+ const float angle_too_big = 180;
+ TouchEvent event(ui::ET_TOUCH_PRESSED, gfx::Point(0, 0), 0, 0, time,
+ radius_x, radius_y, angle_too_big, 0);
+ EXPECT_FLOAT_EQ(0, event.rotation_angle());
+ }
+
+ {
+ const float angle_too_big = 400;
+ TouchEvent event(ui::ET_TOUCH_PRESSED, gfx::Point(0, 0), 0, 0, time,
+ radius_x, radius_y, angle_too_big, 0);
+ EXPECT_FLOAT_EQ(40, event.rotation_angle());
+ }
}
} // namespace ui

Powered by Google App Engine
This is Rietveld 408576698