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

Side by Side Diff: ui/events/gesture_detection/motion_event_generic_unittest.cc

Issue 502993004: Remove abstract Clone and Cancel methods from MotionEvent (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 6 years, 2 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "testing/gtest/include/gtest/gtest.h" 5 #include "testing/gtest/include/gtest/gtest.h"
6 #include "ui/events/event_constants.h" 6 #include "ui/events/event_constants.h"
7 #include "ui/events/gesture_detection/motion_event_generic.h" 7 #include "ui/events/gesture_detection/motion_event_generic.h"
8 8
9 namespace ui { 9 namespace ui {
10 10
11 TEST(MotionEventGenericTest, Basic) { 11 TEST(MotionEventGenericTest, Basic) {
12 base::TimeTicks event_time = base::TimeTicks::Now(); 12 base::TimeTicks event_time = base::TimeTicks::Now();
13 MotionEventGeneric event( 13 MotionEventGeneric event(
14 MotionEvent::ACTION_DOWN, event_time, PointerProperties()); 14 MotionEvent::ACTION_DOWN, event_time, PointerProperties());
15 EXPECT_EQ(1U, event.GetPointerCount()); 15 EXPECT_EQ(1U, event.GetPointerCount());
16 EXPECT_EQ(0U, event.GetHistorySize()); 16 EXPECT_EQ(0U, event.GetHistorySize());
17 EXPECT_EQ(event_time, event.GetEventTime()); 17 EXPECT_EQ(event_time, event.GetEventTime());
18 18
19 event.PushPointer(PointerProperties(8.3f, 4.7f)); 19 event.PushPointer(PointerProperties(8.3f, 4.7f, 0.9f));
20 ASSERT_EQ(2U, event.GetPointerCount()); 20 ASSERT_EQ(2U, event.GetPointerCount());
21 EXPECT_EQ(8.3f, event.GetX(1)); 21 EXPECT_EQ(8.3f, event.GetX(1));
22 EXPECT_EQ(4.7f, event.GetY(1)); 22 EXPECT_EQ(4.7f, event.GetY(1));
23 23
24 event.PushPointer(PointerProperties(2.3f, -3.7f)); 24 event.PushPointer(PointerProperties(2.3f, -3.7f, 5.8f));
25 ASSERT_EQ(3U, event.GetPointerCount()); 25 ASSERT_EQ(3U, event.GetPointerCount());
26 EXPECT_EQ(2.3f, event.GetX(2)); 26 EXPECT_EQ(2.3f, event.GetX(2));
27 EXPECT_EQ(-3.7f, event.GetY(2)); 27 EXPECT_EQ(-3.7f, event.GetY(2));
28 28
29 event.set_id(1); 29 event.set_id(1);
30 EXPECT_EQ(1, event.GetId()); 30 EXPECT_EQ(1, event.GetId());
31 31
32 event.set_action(MotionEvent::ACTION_POINTER_DOWN); 32 event.set_action(MotionEvent::ACTION_POINTER_DOWN);
33 EXPECT_EQ(MotionEvent::ACTION_POINTER_DOWN, event.GetAction()); 33 EXPECT_EQ(MotionEvent::ACTION_POINTER_DOWN, event.GetAction());
34 34
35 event_time += base::TimeDelta::FromMilliseconds(5); 35 event_time += base::TimeDelta::FromMilliseconds(5);
36 event.set_event_time(event_time); 36 event.set_event_time(event_time);
37 EXPECT_EQ(event_time, event.GetEventTime()); 37 EXPECT_EQ(event_time, event.GetEventTime());
38 38
39 event.set_button_state(MotionEvent::BUTTON_PRIMARY); 39 event.set_button_state(MotionEvent::BUTTON_PRIMARY);
40 EXPECT_EQ(MotionEvent::BUTTON_PRIMARY, event.GetButtonState()); 40 EXPECT_EQ(MotionEvent::BUTTON_PRIMARY, event.GetButtonState());
41 41
42 event.set_flags(EF_ALT_DOWN | EF_SHIFT_DOWN); 42 event.set_flags(EF_ALT_DOWN | EF_SHIFT_DOWN);
43 EXPECT_EQ(EF_ALT_DOWN | EF_SHIFT_DOWN, event.GetFlags()); 43 EXPECT_EQ(EF_ALT_DOWN | EF_SHIFT_DOWN, event.GetFlags());
44 44
45 event.set_action_index(1); 45 event.set_action_index(1);
46 EXPECT_EQ(1, event.GetActionIndex()); 46 EXPECT_EQ(1, event.GetActionIndex());
47
48 event.set_action(MotionEvent::ACTION_MOVE);
49 EXPECT_EQ(MotionEvent::ACTION_MOVE, event.GetAction());
50
51 PointerProperties historical_pointer0(1.2f, 2.4f, 1.f);
52 PointerProperties historical_pointer1(2.4f, 4.8f, 2.f);
53 PointerProperties historical_pointer2(4.8f, 9.6f, 3.f);
54 MotionEventGeneric historical_event(
55 MotionEvent::ACTION_MOVE,
56 event_time - base::TimeDelta::FromMilliseconds(5),
57 historical_pointer0);
58 historical_event.PushPointer(historical_pointer1);
59 historical_event.PushPointer(historical_pointer2);
60
61 event.PushHistoricalEvent(historical_event.Clone());
62 EXPECT_EQ(1U, event.GetHistorySize());
63 EXPECT_EQ(event_time - base::TimeDelta::FromMilliseconds(5),
64 event.GetHistoricalEventTime(0));
65 EXPECT_EQ(1.2f, event.GetHistoricalX(0, 0));
66 EXPECT_EQ(2.4f, event.GetHistoricalY(0, 0));
67 EXPECT_EQ(1.f, event.GetHistoricalTouchMajor(0, 0));
68 EXPECT_EQ(2.4f, event.GetHistoricalX(1, 0));
69 EXPECT_EQ(4.8f, event.GetHistoricalY(1, 0));
70 EXPECT_EQ(2.f, event.GetHistoricalTouchMajor(1, 0));
71 EXPECT_EQ(4.8f, event.GetHistoricalX(2, 0));
72 EXPECT_EQ(9.6f, event.GetHistoricalY(2, 0));
73 EXPECT_EQ(3.f, event.GetHistoricalTouchMajor(2, 0));
47 } 74 }
48 75
49 TEST(MotionEventGenericTest, Clone) { 76 TEST(MotionEventGenericTest, Clone) {
50 MotionEventGeneric event(MotionEvent::ACTION_DOWN, 77 MotionEventGeneric event(MotionEvent::ACTION_DOWN,
51 base::TimeTicks::Now(), 78 base::TimeTicks::Now(),
52 PointerProperties(8.3f, 4.7f)); 79 PointerProperties(8.3f, 4.7f, 2.f));
53 event.set_id(1); 80 event.set_id(1);
54 event.set_button_state(MotionEvent::BUTTON_PRIMARY); 81 event.set_button_state(MotionEvent::BUTTON_PRIMARY);
55 82
56 scoped_ptr<MotionEvent> clone = event.Clone(); 83 scoped_ptr<MotionEvent> clone = event.Clone();
57 ASSERT_TRUE(clone); 84 ASSERT_TRUE(clone);
58 EXPECT_EQ(event, *clone); 85 EXPECT_EQ(event.ToString(), clone->ToString());
86 }
87
88 TEST(MotionEventGenericTest, CloneWithHistory) {
89 base::TimeTicks event_time = base::TimeTicks::Now();
90 base::TimeTicks historical_event_time =
91 event_time - base::TimeDelta::FromMilliseconds(5);
92
93 PointerProperties pointer(8.3f, 4.7f, 10.1f);
94 MotionEventGeneric event(MotionEvent::ACTION_MOVE, event_time, pointer);
95
96 PointerProperties historical_pointer(3.4f, -4.3f, 11.5);
97 scoped_ptr<MotionEvent> historical_event(new MotionEventGeneric(
98 MotionEvent::ACTION_MOVE, historical_event_time, historical_pointer));
99
100 event.PushHistoricalEvent(historical_event.Pass());
101 EXPECT_EQ(1U, event.GetHistorySize());
102
103 scoped_ptr<MotionEvent> clone = event.Clone();
104 ASSERT_TRUE(clone);
105 EXPECT_EQ(event.ToString(), clone->ToString());
59 } 106 }
60 107
61 TEST(MotionEventGenericTest, Cancel) { 108 TEST(MotionEventGenericTest, Cancel) {
62 MotionEventGeneric event(MotionEvent::ACTION_UP, 109 MotionEventGeneric event(MotionEvent::ACTION_UP,
63 base::TimeTicks::Now(), 110 base::TimeTicks::Now(),
64 PointerProperties(8.7f, 4.3f)); 111 PointerProperties(8.7f, 4.3f, 1.f));
65 event.set_id(2); 112 event.set_id(2);
66 event.set_button_state(MotionEvent::BUTTON_SECONDARY); 113 event.set_button_state(MotionEvent::BUTTON_SECONDARY);
67 114
68 scoped_ptr<MotionEvent> cancel = event.Cancel(); 115 scoped_ptr<MotionEvent> cancel = event.Cancel();
69 event.set_action(MotionEvent::ACTION_CANCEL); 116 event.set_action(MotionEvent::ACTION_CANCEL);
70 ASSERT_TRUE(cancel); 117 ASSERT_TRUE(cancel);
71 EXPECT_EQ(event, *cancel); 118 EXPECT_EQ(event.ToString(), cancel->ToString());
tdresser 2014/10/20 15:19:15 Is this ToString method just to make debugging fai
jdduke (slow) 2014/10/21 22:19:58 Yeah, good call. I factored out operator<< and ope
72 } 119 }
73 120
74 TEST(MotionEventGenericTest, FindPointerIndexOfId) { 121 TEST(MotionEventGenericTest, FindPointerIndexOfId) {
75 base::TimeTicks event_time = base::TimeTicks::Now(); 122 base::TimeTicks event_time = base::TimeTicks::Now();
76 PointerProperties pointer; 123 PointerProperties pointer;
77 pointer.id = 0; 124 pointer.id = 0;
78 MotionEventGeneric event0(MotionEvent::ACTION_DOWN, event_time, pointer); 125 MotionEventGeneric event0(MotionEvent::ACTION_DOWN, event_time, pointer);
79 EXPECT_EQ(0, event0.FindPointerIndexOfId(0)); 126 EXPECT_EQ(0, event0.FindPointerIndexOfId(0));
80 EXPECT_EQ(-1, event0.FindPointerIndexOfId(1)); 127 EXPECT_EQ(-1, event0.FindPointerIndexOfId(1));
81 EXPECT_EQ(-1, event0.FindPointerIndexOfId(-1)); 128 EXPECT_EQ(-1, event0.FindPointerIndexOfId(-1));
82 129
83 MotionEventGeneric event1(event0); 130 MotionEventGeneric event1(event0);
84 pointer.id = 7; 131 pointer.id = 7;
85 event1.PushPointer(pointer); 132 event1.PushPointer(pointer);
86 EXPECT_EQ(0, event1.FindPointerIndexOfId(0)); 133 EXPECT_EQ(0, event1.FindPointerIndexOfId(0));
87 EXPECT_EQ(1, event1.FindPointerIndexOfId(7)); 134 EXPECT_EQ(1, event1.FindPointerIndexOfId(7));
88 EXPECT_EQ(-1, event1.FindPointerIndexOfId(6)); 135 EXPECT_EQ(-1, event1.FindPointerIndexOfId(6));
89 EXPECT_EQ(-1, event1.FindPointerIndexOfId(1)); 136 EXPECT_EQ(-1, event1.FindPointerIndexOfId(1));
90 137
91 MotionEventGeneric event2(event1); 138 MotionEventGeneric event2(event1);
92 pointer.id = 3; 139 pointer.id = 3;
93 event2.PushPointer(pointer); 140 event2.PushPointer(pointer);
94 EXPECT_EQ(0, event2.FindPointerIndexOfId(0)); 141 EXPECT_EQ(0, event2.FindPointerIndexOfId(0));
95 EXPECT_EQ(1, event2.FindPointerIndexOfId(7)); 142 EXPECT_EQ(1, event2.FindPointerIndexOfId(7));
96 EXPECT_EQ(2, event2.FindPointerIndexOfId(3)); 143 EXPECT_EQ(2, event2.FindPointerIndexOfId(3));
97 EXPECT_EQ(-1, event2.FindPointerIndexOfId(1)); 144 EXPECT_EQ(-1, event2.FindPointerIndexOfId(1));
98 EXPECT_EQ(-1, event2.FindPointerIndexOfId(2)); 145 EXPECT_EQ(-1, event2.FindPointerIndexOfId(2));
99 } 146 }
100 147
148 TEST(MotionEventGenericTest, ToString) {
149 base::TimeTicks event_time = base::TimeTicks::Now();
150 base::TimeTicks historical_event_time0 =
151 event_time - base::TimeDelta::FromMilliseconds(10);
152 base::TimeTicks historical_event_time1 =
153 event_time - base::TimeDelta::FromMilliseconds(5);
154
155 PointerProperties pointer0(1, 2, 3);
156 pointer0.id = 7;
157 pointer0.pressure = 10;
158 pointer0.touch_minor = 15;
159 pointer0.touch_major = 20;
160 pointer0.orientation = 1;
161
162 PointerProperties pointer1(4, 5, 6);
163 pointer1.id = 3;
164 pointer0.pressure = 25;
165 pointer0.touch_minor = 30;
166 pointer0.touch_major = 35;
167 pointer0.orientation = -1;
168
169 MotionEventGeneric event(MotionEvent::ACTION_MOVE, event_time, pointer0);
170 event.PushPointer(pointer1);
171
172 pointer0.x += 50;
173 pointer1.x -= 50;
174 scoped_ptr<MotionEventGeneric> historical_event0(new MotionEventGeneric(
175 MotionEvent::ACTION_MOVE, historical_event_time0, pointer0));
176 historical_event0->PushPointer(pointer1);
177
178 pointer0.x += 100;
179 pointer1.x -= 100;
180 scoped_ptr<MotionEventGeneric> historical_event1(new MotionEventGeneric(
181 MotionEvent::ACTION_MOVE, historical_event_time1, pointer0));
182 historical_event1->PushPointer(pointer1);
183
184 event.PushHistoricalEvent(historical_event0.PassAs<MotionEvent>());
185 event.PushHistoricalEvent(historical_event1.PassAs<MotionEvent>());
186 ASSERT_EQ(2U, event.GetHistorySize());
187 ASSERT_EQ(2U, event.GetPointerCount());
188 std::string event_string = event.ToString();
189 EXPECT_FALSE(event_string.empty());
190 EXPECT_EQ(event_string, event.ToString());
191 }
192
101 } // namespace ui 193 } // namespace ui
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698