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

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

Issue 1287103004: Sync ui/events to chromium @ https://codereview.chromium.org/1210203002 (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: rebased 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
« no previous file with comments | « ui/events/gestures/motion_event_impl.cc ('k') | ui/events/input_device_event_observer.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/events/gestures/motion_event_impl_unittest.cc
diff --git a/ui/events/gestures/motion_event_impl_unittest.cc b/ui/events/gestures/motion_event_impl_unittest.cc
index 12c5039c8f548fb1410d0882c728496728dfeb12..03a8dd7fff12e6c33e151fd09ea5d2d136a0a902 100644
--- a/ui/events/gestures/motion_event_impl_unittest.cc
+++ b/ui/events/gestures/motion_event_impl_unittest.cc
@@ -9,7 +9,8 @@
#include "testing/gtest/include/gtest/gtest.h"
#include "ui/events/event.h"
-#include "ui/events/gestures/motion_event_impl.h"
+#include "ui/events/gestures/motion_event_aura.h"
+#include "ui/events/test/motion_event_test_utils.h"
namespace {
@@ -69,29 +70,29 @@ base::TimeTicks MsToTicks(int ms) {
namespace ui {
-TEST(MotionEventImplTest, PointerCountAndIds) {
+TEST(MotionEventAuraTest, PointerCountAndIds) {
// Test that |PointerCount()| returns the correct number of pointers, and ids
// are assigned correctly.
int ids[] = {4, 6, 1};
- MotionEventImpl event;
+ MotionEventAura event;
EXPECT_EQ(0U, event.GetPointerCount());
TouchEvent press0 = TouchWithType(ET_TOUCH_PRESSED, ids[0]);
- event.OnTouch(press0);
+ EXPECT_TRUE(event.OnTouch(press0));
EXPECT_EQ(1U, event.GetPointerCount());
EXPECT_EQ(ids[0], event.GetPointerId(0));
TouchEvent press1 = TouchWithType(ET_TOUCH_PRESSED, ids[1]);
- event.OnTouch(press1);
+ EXPECT_TRUE(event.OnTouch(press1));
EXPECT_EQ(2U, event.GetPointerCount());
EXPECT_EQ(ids[0], event.GetPointerId(0));
EXPECT_EQ(ids[1], event.GetPointerId(1));
TouchEvent press2 = TouchWithType(ET_TOUCH_PRESSED, ids[2]);
- event.OnTouch(press2);
+ EXPECT_TRUE(event.OnTouch(press2));
EXPECT_EQ(3U, event.GetPointerCount());
EXPECT_EQ(ids[0], event.GetPointerId(0));
@@ -99,7 +100,7 @@ TEST(MotionEventImplTest, PointerCountAndIds) {
EXPECT_EQ(ids[2], event.GetPointerId(2));
TouchEvent release1 = TouchWithType(ET_TOUCH_RELEASED, ids[1]);
- event.OnTouch(release1);
+ EXPECT_TRUE(event.OnTouch(release1));
event.CleanupRemovedTouchPoints(release1);
EXPECT_EQ(2U, event.GetPointerCount());
@@ -107,62 +108,66 @@ TEST(MotionEventImplTest, 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));
EXPECT_EQ(ids[2], clone->GetPointerId(1));
+ EXPECT_EQ(event.GetUniqueEventId(), clone->GetUniqueEventId());
+ EXPECT_EQ(test::ToString(event), test::ToString(*clone));
TouchEvent release0 = TouchWithType(ET_TOUCH_RELEASED, ids[0]);
- event.OnTouch(release0);
+ EXPECT_TRUE(event.OnTouch(release0));
event.CleanupRemovedTouchPoints(release0);
EXPECT_EQ(1U, event.GetPointerCount());
EXPECT_EQ(ids[2], event.GetPointerId(0));
TouchEvent release2 = TouchWithType(ET_TOUCH_RELEASED, ids[2]);
- event.OnTouch(release2);
+ EXPECT_TRUE(event.OnTouch(release2));
event.CleanupRemovedTouchPoints(release2);
EXPECT_EQ(0U, event.GetPointerCount());
}
-TEST(MotionEventImplTest, GetActionIndexAfterRemoval) {
+TEST(MotionEventAuraTest, GetActionIndexAfterRemoval) {
// Test that |GetActionIndex()| returns the correct index when points have
// been removed.
int ids[] = {4, 6, 9};
- MotionEventImpl event;
+ MotionEventAura event;
EXPECT_EQ(0U, event.GetPointerCount());
TouchEvent press0 = TouchWithType(ET_TOUCH_PRESSED, ids[0]);
- event.OnTouch(press0);
+ EXPECT_TRUE(event.OnTouch(press0));
TouchEvent press1 = TouchWithType(ET_TOUCH_PRESSED, ids[1]);
- event.OnTouch(press1);
+ EXPECT_TRUE(event.OnTouch(press1));
+ EXPECT_EQ(1, event.GetActionIndex());
TouchEvent press2 = TouchWithType(ET_TOUCH_PRESSED, ids[2]);
- event.OnTouch(press2);
+ EXPECT_TRUE(event.OnTouch(press2));
+ EXPECT_EQ(2, event.GetActionIndex());
EXPECT_EQ(3U, event.GetPointerCount());
TouchEvent release1 = TouchWithType(ET_TOUCH_RELEASED, ids[1]);
- event.OnTouch(release1);
- event.CleanupRemovedTouchPoints(release1);
+ EXPECT_TRUE(event.OnTouch(release1));
EXPECT_EQ(1, event.GetActionIndex());
+ event.CleanupRemovedTouchPoints(release1);
EXPECT_EQ(2U, event.GetPointerCount());
TouchEvent release2 = TouchWithType(ET_TOUCH_RELEASED, ids[0]);
- event.OnTouch(release2);
- event.CleanupRemovedTouchPoints(release2);
+ EXPECT_TRUE(event.OnTouch(release2));
EXPECT_EQ(0, event.GetActionIndex());
+ event.CleanupRemovedTouchPoints(release2);
EXPECT_EQ(1U, event.GetPointerCount());
TouchEvent release0 = TouchWithType(ET_TOUCH_RELEASED, ids[2]);
- event.OnTouch(release0);
+ EXPECT_TRUE(event.OnTouch(release0));
event.CleanupRemovedTouchPoints(release0);
EXPECT_EQ(0U, event.GetPointerCount());
}
-TEST(MotionEventImplTest, PointerLocations) {
+TEST(MotionEventAuraTest, PointerLocations) {
// Test that location information is stored correctly.
- MotionEventImpl event;
+ MotionEventAura event;
const float kRawOffsetX = 11.1f;
const float kRawOffsetY = 13.3f;
@@ -179,7 +184,7 @@ TEST(MotionEventImplTest, PointerLocations) {
raw_y = y + kRawOffsetY;
TouchEvent press0 =
TouchWithPosition(ET_TOUCH_PRESSED, ids[0], x, y, raw_x, raw_y);
- event.OnTouch(press0);
+ EXPECT_TRUE(event.OnTouch(press0));
EXPECT_EQ(1U, event.GetPointerCount());
EXPECT_FLOAT_EQ(x, event.GetX(0));
@@ -193,7 +198,7 @@ TEST(MotionEventImplTest, PointerLocations) {
raw_y = y + kRawOffsetY;
TouchEvent press1 =
TouchWithPosition(ET_TOUCH_PRESSED, ids[1], x, y, raw_x, raw_y);
- event.OnTouch(press1);
+ EXPECT_TRUE(event.OnTouch(press1));
EXPECT_EQ(2U, event.GetPointerCount());
EXPECT_FLOAT_EQ(x, event.GetX(1));
@@ -203,15 +208,13 @@ TEST(MotionEventImplTest, PointerLocations) {
// Test cloning of pointer location information.
scoped_ptr<MotionEvent> clone = event.Clone();
- {
- const MotionEventImpl* raw_clone_aura =
- static_cast<MotionEventImpl*>(clone.get());
- EXPECT_EQ(2U, raw_clone_aura->GetPointerCount());
- EXPECT_FLOAT_EQ(x, raw_clone_aura->GetX(1));
- EXPECT_FLOAT_EQ(y, raw_clone_aura->GetY(1));
- EXPECT_FLOAT_EQ(raw_x, raw_clone_aura->GetRawX(1));
- EXPECT_FLOAT_EQ(raw_y, raw_clone_aura->GetRawY(1));
- }
+ EXPECT_EQ(event.GetUniqueEventId(), clone->GetUniqueEventId());
+ 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;
@@ -219,7 +222,7 @@ TEST(MotionEventImplTest, PointerLocations) {
raw_y = y + kRawOffsetY;
TouchEvent move1 =
TouchWithPosition(ET_TOUCH_MOVED, ids[1], x, y, raw_x, raw_y);
- event.OnTouch(move1);
+ EXPECT_TRUE(event.OnTouch(move1));
EXPECT_FLOAT_EQ(x, event.GetX(1));
EXPECT_FLOAT_EQ(y, event.GetY(1));
@@ -232,7 +235,7 @@ TEST(MotionEventImplTest, PointerLocations) {
raw_y = y + kRawOffsetY;
TouchEvent move0 =
TouchWithPosition(ET_TOUCH_MOVED, ids[0], x, y, raw_x, raw_y);
- event.OnTouch(move0);
+ EXPECT_TRUE(event.OnTouch(move0));
EXPECT_FLOAT_EQ(x, event.GetX(0));
EXPECT_FLOAT_EQ(y, event.GetY(0));
@@ -240,24 +243,25 @@ TEST(MotionEventImplTest, PointerLocations) {
EXPECT_FLOAT_EQ(raw_y, event.GetRawY(0));
}
-TEST(MotionEventImplTest, TapParams) {
+TEST(MotionEventAuraTest, TapParams) {
// Test that touch params are stored correctly.
- MotionEventImpl event;
+ 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;
pressure = 0.123f;
TouchEvent press0 = TouchWithTapParams(
ET_TOUCH_PRESSED, ids[0], radius_x, radius_y, rotation_angle, pressure);
- event.OnTouch(press0);
+ EXPECT_TRUE(event.OnTouch(press0));
EXPECT_EQ(1U, event.GetPointerCount());
EXPECT_FLOAT_EQ(radius_x, event.GetTouchMajor(0) / 2);
@@ -265,13 +269,14 @@ TEST(MotionEventImplTest, 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;
pressure = 0.456f;
TouchEvent press1 = TouchWithTapParams(
ET_TOUCH_PRESSED, ids[1], radius_x, radius_y, rotation_angle, pressure);
- event.OnTouch(press1);
+ EXPECT_TRUE(event.OnTouch(press1));
EXPECT_EQ(2U, event.GetPointerCount());
EXPECT_FLOAT_EQ(radius_y, event.GetTouchMajor(1) / 2);
@@ -280,52 +285,83 @@ TEST(MotionEventImplTest, 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();
- {
- const MotionEventImpl* raw_clone_aura =
- static_cast<MotionEventImpl*>(clone.get());
- EXPECT_EQ(2U, raw_clone_aura->GetPointerCount());
- EXPECT_FLOAT_EQ(radius_y, raw_clone_aura->GetTouchMajor(1) / 2);
- EXPECT_FLOAT_EQ(radius_x, raw_clone_aura->GetTouchMinor(1) / 2);
- EXPECT_FLOAT_EQ(
- rotation_angle, raw_clone_aura->GetOrientation(1) * 180 / M_PI);
- EXPECT_FLOAT_EQ(pressure, raw_clone_aura->GetPressure(1));
- }
+ EXPECT_EQ(event.GetUniqueEventId(), clone->GetUniqueEventId());
+ 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;
pressure = 0.654f;
TouchEvent move1 = TouchWithTapParams(
ET_TOUCH_MOVED, ids[1], radius_x, radius_y, rotation_angle, pressure);
- event.OnTouch(move1);
+ move1.set_location(gfx::Point(20, 21));
+ EXPECT_TRUE(event.OnTouch(move1));
EXPECT_EQ(2U, event.GetPointerCount());
EXPECT_FLOAT_EQ(radius_y, event.GetTouchMajor(1) / 2);
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(MotionEventImplTest, Timestamps) {
+TEST(MotionEventAuraTest, Timestamps) {
// Test that timestamp information is stored and converted correctly.
- MotionEventImpl event;
+ MotionEventAura event;
int ids[] = {7, 13};
int times_in_ms[] = {59436, 60263, 82175};
TouchEvent press0 = TouchWithTime(
ui::ET_TOUCH_PRESSED, ids[0], times_in_ms[0]);
- event.OnTouch(press0);
+ EXPECT_TRUE(event.OnTouch(press0));
EXPECT_EQ(MsToTicks(times_in_ms[0]), event.GetEventTime());
TouchEvent press1 = TouchWithTime(
ui::ET_TOUCH_PRESSED, ids[1], times_in_ms[1]);
- event.OnTouch(press1);
+ EXPECT_TRUE(event.OnTouch(press1));
EXPECT_EQ(MsToTicks(times_in_ms[1]), event.GetEventTime());
TouchEvent move0 = TouchWithTime(
ui::ET_TOUCH_MOVED, ids[0], times_in_ms[2]);
- event.OnTouch(move0);
+ move0.set_location(gfx::PointF(12, 21));
+ EXPECT_TRUE(event.OnTouch(move0));
EXPECT_EQ(MsToTicks(times_in_ms[2]), event.GetEventTime());
// Test cloning of timestamp information.
@@ -333,18 +369,18 @@ TEST(MotionEventImplTest, Timestamps) {
EXPECT_EQ(MsToTicks(times_in_ms[2]), clone->GetEventTime());
}
-TEST(MotionEventImplTest, CachedAction) {
+TEST(MotionEventAuraTest, CachedAction) {
// Test that the cached action and cached action index are correct.
int ids[] = {4, 6};
- MotionEventImpl event;
+ MotionEventAura event;
TouchEvent press0 = TouchWithType(ET_TOUCH_PRESSED, ids[0]);
- event.OnTouch(press0);
+ EXPECT_TRUE(event.OnTouch(press0));
EXPECT_EQ(MotionEvent::ACTION_DOWN, event.GetAction());
EXPECT_EQ(1U, event.GetPointerCount());
TouchEvent press1 = TouchWithType(ET_TOUCH_PRESSED, ids[1]);
- event.OnTouch(press1);
+ EXPECT_TRUE(event.OnTouch(press1));
EXPECT_EQ(MotionEvent::ACTION_POINTER_DOWN, event.GetAction());
EXPECT_EQ(1, event.GetActionIndex());
EXPECT_EQ(2U, event.GetPointerCount());
@@ -355,69 +391,124 @@ TEST(MotionEventImplTest, CachedAction) {
EXPECT_EQ(1, clone->GetActionIndex());
TouchEvent move0 = TouchWithType(ET_TOUCH_MOVED, ids[0]);
- event.OnTouch(move0);
+ move0.set_location(gfx::PointF(10, 12));
+ EXPECT_TRUE(event.OnTouch(move0));
EXPECT_EQ(MotionEvent::ACTION_MOVE, event.GetAction());
EXPECT_EQ(2U, event.GetPointerCount());
TouchEvent release0 = TouchWithType(ET_TOUCH_RELEASED, ids[0]);
- event.OnTouch(release0);
+ EXPECT_TRUE(event.OnTouch(release0));
EXPECT_EQ(MotionEvent::ACTION_POINTER_UP, event.GetAction());
EXPECT_EQ(2U, event.GetPointerCount());
event.CleanupRemovedTouchPoints(release0);
EXPECT_EQ(1U, event.GetPointerCount());
TouchEvent release1 = TouchWithType(ET_TOUCH_RELEASED, ids[1]);
- event.OnTouch(release1);
+ EXPECT_TRUE(event.OnTouch(release1));
EXPECT_EQ(MotionEvent::ACTION_UP, event.GetAction());
EXPECT_EQ(1U, event.GetPointerCount());
event.CleanupRemovedTouchPoints(release1);
EXPECT_EQ(0U, event.GetPointerCount());
}
-TEST(MotionEventImplTest, Cancel) {
+TEST(MotionEventAuraTest, Cancel) {
int ids[] = {4, 6};
- MotionEventImpl event;
+ MotionEventAura event;
TouchEvent press0 = TouchWithType(ET_TOUCH_PRESSED, ids[0]);
- event.OnTouch(press0);
+ EXPECT_TRUE(event.OnTouch(press0));
EXPECT_EQ(MotionEvent::ACTION_DOWN, event.GetAction());
EXPECT_EQ(1U, event.GetPointerCount());
TouchEvent press1 = TouchWithType(ET_TOUCH_PRESSED, ids[1]);
- event.OnTouch(press1);
+ EXPECT_TRUE(event.OnTouch(press1));
EXPECT_EQ(MotionEvent::ACTION_POINTER_DOWN, event.GetAction());
EXPECT_EQ(1, event.GetActionIndex());
EXPECT_EQ(2U, event.GetPointerCount());
scoped_ptr<MotionEvent> cancel = event.Cancel();
EXPECT_EQ(MotionEvent::ACTION_CANCEL, cancel->GetAction());
- EXPECT_EQ(2U, static_cast<MotionEventImpl*>(cancel.get())->GetPointerCount());
+ EXPECT_EQ(2U, cancel->GetPointerCount());
}
-TEST(MotionEventImplTest, ToolType) {
- MotionEventImpl event;
+TEST(MotionEventAuraTest, ToolType) {
+ MotionEventAura event;
// For now, all pointers have an unknown tool type.
// TODO(jdduke): Expand this test when ui::TouchEvent identifies the source
// touch type, crbug.com/404128.
- event.OnTouch(TouchWithType(ET_TOUCH_PRESSED, 7));
+ EXPECT_TRUE(event.OnTouch(TouchWithType(ET_TOUCH_PRESSED, 7)));
ASSERT_EQ(1U, event.GetPointerCount());
EXPECT_EQ(MotionEvent::TOOL_TYPE_UNKNOWN, event.GetToolType(0));
}
-TEST(MotionEventImplTest, Flags) {
+TEST(MotionEventAuraTest, Flags) {
int ids[] = {7, 11};
- MotionEventImpl event;
+ MotionEventAura event;
TouchEvent press0 = TouchWithType(ET_TOUCH_PRESSED, ids[0]);
press0.set_flags(EF_CONTROL_DOWN);
- event.OnTouch(press0);
+ EXPECT_TRUE(event.OnTouch(press0));
EXPECT_EQ(EF_CONTROL_DOWN, event.GetFlags());
TouchEvent press1 = TouchWithType(ET_TOUCH_PRESSED, ids[1]);
press1.set_flags(EF_CONTROL_DOWN | EF_CAPS_LOCK_DOWN);
- event.OnTouch(press1);
+ EXPECT_TRUE(event.OnTouch(press1));
EXPECT_EQ(EF_CONTROL_DOWN | EF_CAPS_LOCK_DOWN, event.GetFlags());
}
+// Once crbug.com/446852 is fixed, we should ignore redundant presses.
+TEST(MotionEventAuraTest, DoesntIgnoreRedundantPresses) {
+ const int id = 7;
+ const int position_1 = 10;
+ const int position_2 = 23;
+
+ MotionEventAura event;
+ TouchEvent press1 = TouchWithPosition(ET_TOUCH_PRESSED, id, position_1,
+ position_1, position_1, position_1);
+ EXPECT_TRUE(event.OnTouch(press1));
+ TouchEvent press2 = TouchWithPosition(ET_TOUCH_PRESSED, id, position_2,
+ position_2, position_2, position_2);
+ EXPECT_TRUE(event.OnTouch(press2));
+
+ EXPECT_EQ(1U, event.GetPointerCount());
+ EXPECT_FLOAT_EQ(position_2, event.GetX(0));
+}
+
+TEST(MotionEventAuraTest, IgnoresEventsWithoutPress) {
+ int id = 7;
+ MotionEventAura event;
+ EXPECT_FALSE(event.OnTouch(TouchWithType(ET_TOUCH_MOVED, id)));
+}
+
+TEST(MotionEventAuraTest, IgnoresStationaryMoves) {
+ int id = 7;
+ MotionEventAura event;
+ EXPECT_TRUE(event.OnTouch(TouchWithType(ET_TOUCH_PRESSED, id)));
+ TouchEvent move0 = TouchWithPosition(ET_TOUCH_PRESSED, id, 10, 20, 10, 20);
+ EXPECT_TRUE(event.OnTouch(move0));
+
+ TouchEvent move1 = TouchWithPosition(ET_TOUCH_MOVED, id, 11, 21, 11, 21);
+ EXPECT_TRUE(event.OnTouch(move1));
+ EXPECT_FALSE(event.OnTouch(move1));
+}
+
+// Test after converting touch events into motion events, motion events should
+// have the same unique_event_id as touch events.
+TEST(MotionEventAuraTest, UniqueEventID) {
+ MotionEventAura event;
+
+ TouchEvent press0 = TouchWithType(ET_TOUCH_PRESSED, 3);
+ EXPECT_TRUE(event.OnTouch(press0));
+ EXPECT_EQ(MotionEvent::ACTION_DOWN, event.GetAction());
+ ASSERT_EQ(1U, event.GetPointerCount());
+ EXPECT_EQ(event.GetUniqueEventId(), press0.unique_event_id());
+
+ TouchEvent press1 = TouchWithType(ET_TOUCH_PRESSED, 6);
+ EXPECT_TRUE(event.OnTouch(press1));
+ EXPECT_EQ(MotionEvent::ACTION_POINTER_DOWN, event.GetAction());
+ EXPECT_EQ(2U, event.GetPointerCount());
+ EXPECT_EQ(event.GetUniqueEventId(), press1.unique_event_id());
+}
+
} // namespace ui
« no previous file with comments | « ui/events/gestures/motion_event_impl.cc ('k') | ui/events/input_device_event_observer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698