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

Unified Diff: ui/events/event_unittest.cc

Issue 1260453006: ui: events: Add a class to hold common touch and stylus properties (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address build problems, add accessor and unit tests. Created 5 years, 4 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 38ad283b5a9b6923cea437c51502563f772e6b92..dd2f899197ca9da6a20e17ffa7a27112b11ba497 100644
--- a/ui/events/event_unittest.cc
+++ b/ui/events/event_unittest.cc
@@ -59,7 +59,9 @@ TEST(EventTest, GetCharacter) {
TEST(EventTest, ClickCount) {
const gfx::Point origin(0, 0);
- MouseEvent mouseev(ET_MOUSE_PRESSED, origin, origin, EventTimeForNow(), 0, 0);
+ MouseEvent mouseev(
+ ET_MOUSE_PRESSED, origin, origin, EventTimeForNow(), 0, 0,
+ ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE));
for (int i = 1; i <=3 ; ++i) {
mouseev.SetClickCount(i);
EXPECT_EQ(i, mouseev.GetClickCount());
@@ -68,10 +70,12 @@ TEST(EventTest, ClickCount) {
TEST(EventTest, RepeatedClick) {
const gfx::Point origin(0, 0);
- MouseEvent mouse_ev1(ET_MOUSE_PRESSED, origin, origin, EventTimeForNow(), 0,
- 0);
- MouseEvent mouse_ev2(ET_MOUSE_PRESSED, origin, origin, EventTimeForNow(), 0,
- 0);
+ MouseEvent mouse_ev1(
+ ET_MOUSE_PRESSED, origin, origin, EventTimeForNow(), 0, 0,
+ ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE));
+ MouseEvent mouse_ev2(
+ ET_MOUSE_PRESSED, origin, origin, EventTimeForNow(), 0, 0,
+ ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE));
LocatedEventTestApi test_ev1(&mouse_ev1);
LocatedEventTestApi test_ev2(&mouse_ev2);
@@ -121,29 +125,35 @@ TEST(EventTest, DoubleClickRequiresRelease) {
base::TimeDelta start = base::TimeDelta::FromMilliseconds(0);
base::TimeDelta soon = start + base::TimeDelta::FromMilliseconds(1);
- ev.reset(new MouseEvent(ET_MOUSE_PRESSED, origin1, origin1, EventTimeForNow(),
- 0, 0));
+ ev.reset(new MouseEvent(
+ ET_MOUSE_PRESSED, origin1, origin1, EventTimeForNow(), 0, 0,
+ ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)));
ev->set_time_stamp(start);
EXPECT_EQ(1, MouseEvent::GetRepeatCount(*ev));
- ev.reset(new MouseEvent(ET_MOUSE_PRESSED, origin1, origin1, EventTimeForNow(),
- 0, 0));
+ ev.reset(new MouseEvent(
+ ET_MOUSE_PRESSED, origin1, origin1, EventTimeForNow(), 0, 0,
+ ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)));
ev->set_time_stamp(start);
EXPECT_EQ(1, MouseEvent::GetRepeatCount(*ev));
- ev.reset(new MouseEvent(ET_MOUSE_PRESSED, origin2, origin2, EventTimeForNow(),
- 0, 0));
+ ev.reset(new MouseEvent(
+ ET_MOUSE_PRESSED, origin2, origin2, EventTimeForNow(), 0, 0,
+ ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)));
ev->set_time_stamp(start);
EXPECT_EQ(1, MouseEvent::GetRepeatCount(*ev));
- ev.reset(new MouseEvent(ET_MOUSE_RELEASED, origin2, origin2,
- EventTimeForNow(), 0, 0));
+ ev.reset(new MouseEvent(
+ ET_MOUSE_RELEASED, origin2, origin2, EventTimeForNow(), 0, 0,
+ ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)));
ev->set_time_stamp(start);
EXPECT_EQ(1, MouseEvent::GetRepeatCount(*ev));
- ev.reset(new MouseEvent(ET_MOUSE_PRESSED, origin2, origin2, EventTimeForNow(),
- 0, 0));
+ ev.reset(new MouseEvent(
+ ET_MOUSE_PRESSED, origin2, origin2, EventTimeForNow(), 0, 0,
+ ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)));
ev->set_time_stamp(soon);
EXPECT_EQ(2, MouseEvent::GetRepeatCount(*ev));
- ev.reset(new MouseEvent(ET_MOUSE_RELEASED, origin2, origin2,
- EventTimeForNow(), 0, 0));
+ ev.reset(new MouseEvent(
+ ET_MOUSE_RELEASED, origin2, origin2, EventTimeForNow(), 0, 0,
+ ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)));
ev->set_time_stamp(soon);
EXPECT_EQ(2, MouseEvent::GetRepeatCount(*ev));
MouseEvent::ResetLastClickForTest();
@@ -157,21 +167,28 @@ TEST(EventTest, SingleClickRightLeft) {
base::TimeDelta start = base::TimeDelta::FromMilliseconds(0);
base::TimeDelta soon = start + base::TimeDelta::FromMilliseconds(1);
- ev.reset(new MouseEvent(ET_MOUSE_PRESSED, origin, origin, EventTimeForNow(),
- ui::EF_RIGHT_MOUSE_BUTTON,
- ui::EF_RIGHT_MOUSE_BUTTON));
+ ev.reset(new MouseEvent(
+ ET_MOUSE_PRESSED, origin, origin, EventTimeForNow(),
+ ui::EF_RIGHT_MOUSE_BUTTON, ui::EF_RIGHT_MOUSE_BUTTON,
+ ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)));
ev->set_time_stamp(start);
EXPECT_EQ(1, MouseEvent::GetRepeatCount(*ev));
- ev.reset(new MouseEvent(ET_MOUSE_PRESSED, origin, origin, EventTimeForNow(),
- ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON));
+ ev.reset(new MouseEvent(
+ ET_MOUSE_PRESSED, origin, origin, EventTimeForNow(),
+ ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON,
+ ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)));
ev->set_time_stamp(start);
EXPECT_EQ(1, MouseEvent::GetRepeatCount(*ev));
- ev.reset(new MouseEvent(ET_MOUSE_RELEASED, origin, origin, EventTimeForNow(),
- ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON));
+ ev.reset(new MouseEvent(
+ ET_MOUSE_RELEASED, origin, origin, EventTimeForNow(),
+ ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON,
+ ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)));
ev->set_time_stamp(start);
EXPECT_EQ(1, MouseEvent::GetRepeatCount(*ev));
- ev.reset(new MouseEvent(ET_MOUSE_PRESSED, origin, origin, EventTimeForNow(),
- ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON));
+ ev.reset(new MouseEvent(
+ ET_MOUSE_PRESSED, origin, origin, EventTimeForNow(),
+ ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON,
+ ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)));
ev->set_time_stamp(soon);
EXPECT_EQ(2, MouseEvent::GetRepeatCount(*ev));
MouseEvent::ResetLastClickForTest();
@@ -547,13 +564,15 @@ TEST(EventTest, TouchEventRadiusDefaultsToOtherAxis) {
const float non_zero_length1 = 30;
const float non_zero_length2 = 46;
- TouchEvent event1(ui::ET_TOUCH_PRESSED, gfx::Point(0, 0), 0, 0, time,
- non_zero_length1, 0, 0, 0);
+ TouchEvent event1(ui::ET_TOUCH_PRESSED, gfx::Point(0, 0), 0, 0, time, 0,
+ PointerEventDetails(EventPointerType::POINTER_TYPE_TOUCH,
+ non_zero_length1, 0, 0, 0, 0));
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);
+ TouchEvent event2(ui::ET_TOUCH_PRESSED, gfx::Point(0, 0), 0, 0, time, 0,
+ PointerEventDetails(EventPointerType::POINTER_TYPE_TOUCH, 0,
+ non_zero_length2, 0, 0, 0));
EXPECT_EQ(non_zero_length2, event2.radius_x());
EXPECT_EQ(non_zero_length2, event2.radius_y());
}
@@ -566,44 +585,149 @@ TEST(EventTest, TouchEventRotationAngleFixing) {
{
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);
+ angle_in_range,
+ PointerEventDetails(EventPointerType::POINTER_TYPE_TOUCH,
+ radius_x, radius_y, 0, 0, 0));
EXPECT_FLOAT_EQ(angle_in_range, event.rotation_angle());
}
{
const float angle_in_range = 179.9f;
TouchEvent event(ui::ET_TOUCH_PRESSED, gfx::Point(0, 0), 0, 0, time,
- radius_x, radius_y, angle_in_range, 0);
+ angle_in_range,
+ PointerEventDetails(EventPointerType::POINTER_TYPE_TOUCH,
+ radius_x, radius_y, 0, 0, 0));
EXPECT_FLOAT_EQ(angle_in_range, event.rotation_angle());
}
{
const float angle_negative = -0.1f;
TouchEvent event(ui::ET_TOUCH_PRESSED, gfx::Point(0, 0), 0, 0, time,
- radius_x, radius_y, angle_negative, 0);
+ angle_negative,
+ PointerEventDetails(EventPointerType::POINTER_TYPE_TOUCH,
+ radius_x, radius_y, 0, 0, 0));
EXPECT_FLOAT_EQ(180 - 0.1f, 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);
+ angle_negative,
+ PointerEventDetails(EventPointerType::POINTER_TYPE_TOUCH,
+ radius_x, radius_y, 0, 0, 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);
+ angle_too_big,
+ PointerEventDetails(EventPointerType::POINTER_TYPE_TOUCH,
+ radius_x, radius_y, 0, 0, 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);
+ angle_too_big,
+ PointerEventDetails(EventPointerType::POINTER_TYPE_TOUCH,
+ radius_x, radius_y, 0, 0, 0));
EXPECT_FLOAT_EQ(400 - 360, event.rotation_angle());
}
}
+TEST(EventTest, PointerEventDetailsTouch) {
+ ui::TouchEvent touch_event_plain(
+ ET_TOUCH_PRESSED, gfx::Point(0, 0), 0, 0, ui::EventTimeForNow(), 0.0f,
+ PointerEventDetails(EventPointerType::POINTER_TYPE_TOUCH));
+
+ EXPECT_EQ(EventPointerType::POINTER_TYPE_TOUCH,
+ touch_event_plain.pointer_details().pointer_type());
+ EXPECT_EQ(0.0f, touch_event_plain.pointer_details().radius_x());
+ EXPECT_EQ(0.0f, touch_event_plain.pointer_details().radius_y());
+ EXPECT_EQ(0.0f, touch_event_plain.pointer_details().force());
+ EXPECT_EQ(0.0f, touch_event_plain.pointer_details().tilt_x());
+ EXPECT_EQ(0.0f, touch_event_plain.pointer_details().tilt_y());
+
+ EXPECT_EQ(0.0f, touch_event_plain.radius_x());
+ EXPECT_EQ(0.0f, touch_event_plain.radius_y());
+ EXPECT_EQ(0.0f, touch_event_plain.force());
+
+ ui::TouchEvent touch_event_with_details(
+ ET_TOUCH_PRESSED, gfx::Point(0, 0), 0, 0, ui::EventTimeForNow(), 0.0f,
+ PointerEventDetails(EventPointerType::POINTER_TYPE_TOUCH, 10.0f, 5.0f,
+ 15.0f, 90.0f, -90.0f));
+
+ EXPECT_EQ(EventPointerType::POINTER_TYPE_TOUCH,
+ touch_event_with_details.pointer_details().pointer_type());
+ EXPECT_EQ(10.0f, touch_event_with_details.pointer_details().radius_x());
+ EXPECT_EQ(5.0f, touch_event_with_details.pointer_details().radius_y());
+ EXPECT_EQ(15.0f, touch_event_with_details.pointer_details().force());
+ EXPECT_EQ(90.0f, touch_event_with_details.pointer_details().tilt_x());
+ EXPECT_EQ(-90.0f, touch_event_with_details.pointer_details().tilt_y());
+
+ EXPECT_EQ(10.0f, touch_event_with_details.radius_x());
+ EXPECT_EQ(5.0f, touch_event_with_details.radius_y());
+ EXPECT_EQ(15.0f, touch_event_with_details.force());
+
+ ui::TouchEvent touch_event_copy(touch_event_with_details);
+ EXPECT_EQ(EventPointerType::POINTER_TYPE_TOUCH,
+ touch_event_copy.pointer_details().pointer_type());
+ EXPECT_EQ(10.0f, touch_event_copy.pointer_details().radius_x());
+ EXPECT_EQ(5.0f, touch_event_copy.pointer_details().radius_y());
+ EXPECT_EQ(15.0f, touch_event_copy.pointer_details().force());
+ EXPECT_EQ(90.0f, touch_event_copy.pointer_details().tilt_x());
+ EXPECT_EQ(-90.0f, touch_event_copy.pointer_details().tilt_y());
+}
+
+TEST(EventTest, PointerEventDetailsMouse) {
+ ui::MouseEvent mouse_event(
+ ET_MOUSE_PRESSED, gfx::PointF(0, 0), gfx::PointF(0, 0),
+ ui::EventTimeForNow(), 0, 0,
+ PointerEventDetails(EventPointerType::POINTER_TYPE_MOUSE));
+
+ EXPECT_EQ(EventPointerType::POINTER_TYPE_MOUSE,
+ mouse_event.pointer_details().pointer_type());
+ EXPECT_EQ(0.0f, mouse_event.pointer_details().radius_x());
+ EXPECT_EQ(0.0f, mouse_event.pointer_details().radius_y());
+ EXPECT_EQ(0.0f, mouse_event.pointer_details().force());
+ EXPECT_EQ(0.0f, mouse_event.pointer_details().tilt_x());
+ EXPECT_EQ(0.0f, mouse_event.pointer_details().tilt_y());
+
+ ui::MouseEvent mouse_event_copy(mouse_event);
+ EXPECT_EQ(EventPointerType::POINTER_TYPE_MOUSE,
+ mouse_event_copy.pointer_details().pointer_type());
+ EXPECT_EQ(0.0f, mouse_event_copy.pointer_details().radius_x());
+ EXPECT_EQ(0.0f, mouse_event_copy.pointer_details().radius_y());
+ EXPECT_EQ(0.0f, mouse_event_copy.pointer_details().force());
+ EXPECT_EQ(0.0f, mouse_event_copy.pointer_details().tilt_x());
+ EXPECT_EQ(0.0f, mouse_event_copy.pointer_details().tilt_y());
+}
+
+TEST(EventTest, PointerEventDetailsStylus) {
+ ui::MouseEvent stylus_event(
+ ET_MOUSE_PRESSED, gfx::PointF(0, 0), gfx::PointF(0, 0),
+ ui::EventTimeForNow(), 0, 0,
+ PointerEventDetails(EventPointerType::POINTER_TYPE_PEN, 5.0f, 5.0f, 10.0f,
+ -90.0f, 90.0f));
+
+ EXPECT_EQ(EventPointerType::POINTER_TYPE_PEN,
+ stylus_event.pointer_details().pointer_type());
+ EXPECT_EQ(5.0f, stylus_event.pointer_details().radius_x());
+ EXPECT_EQ(5.0f, stylus_event.pointer_details().radius_y());
+ EXPECT_EQ(10.0f, stylus_event.pointer_details().force());
+ EXPECT_EQ(-90.0f, stylus_event.pointer_details().tilt_x());
+ EXPECT_EQ(90.0f, stylus_event.pointer_details().tilt_y());
+
+ ui::MouseEvent stylus_event_copy(stylus_event);
+ EXPECT_EQ(EventPointerType::POINTER_TYPE_PEN,
+ stylus_event_copy.pointer_details().pointer_type());
+ EXPECT_EQ(5.0f, stylus_event_copy.pointer_details().radius_x());
+ EXPECT_EQ(5.0f, stylus_event_copy.pointer_details().radius_y());
+ EXPECT_EQ(10.0f, stylus_event_copy.pointer_details().force());
+ EXPECT_EQ(-90.0f, stylus_event_copy.pointer_details().tilt_x());
+ EXPECT_EQ(90.0f, stylus_event_copy.pointer_details().tilt_y());
+}
+
} // namespace ui

Powered by Google App Engine
This is Rietveld 408576698