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

Side by Side Diff: ui/events/ozone/evdev/touch_event_converter_evdev_unittest.cc

Issue 2248933002: Support pen in TouchEventConverterEvdev (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: nit Created 4 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 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 "ui/events/ozone/evdev/touch_event_converter_evdev.h" 5 #include "ui/events/ozone/evdev/touch_event_converter_evdev.h"
6 6
7 #include <errno.h> 7 #include <errno.h>
8 #include <linux/input.h> 8 #include <linux/input.h>
9 #include <stddef.h> 9 #include <stddef.h>
10 #include <unistd.h> 10 #include <unistd.h>
(...skipping 30 matching lines...) Expand all
41 EXPECT_TRUE(CapabilitiesToDeviceInfo(kLinkTouchscreen, &devinfo)); 41 EXPECT_TRUE(CapabilitiesToDeviceInfo(kLinkTouchscreen, &devinfo));
42 device->Initialize(devinfo); 42 device->Initialize(devinfo);
43 } 43 }
44 44
45 void InitEloTouchscreen(TouchEventConverterEvdev* device) { 45 void InitEloTouchscreen(TouchEventConverterEvdev* device) {
46 EventDeviceInfo devinfo; 46 EventDeviceInfo devinfo;
47 EXPECT_TRUE(CapabilitiesToDeviceInfo(kElo_TouchSystems_2700, &devinfo)); 47 EXPECT_TRUE(CapabilitiesToDeviceInfo(kElo_TouchSystems_2700, &devinfo));
48 device->Initialize(devinfo); 48 device->Initialize(devinfo);
49 } 49 }
50 50
51 enum class GenericEventParamsType { MOUSE_MOVE, MOUSE_BUTTON, TOUCH };
52
53 struct GenericEventParams {
54 GenericEventParams() {}
55 GenericEventParams(const GenericEventParams& other) {
56 type = other.type;
57 switch (type) {
58 case GenericEventParamsType::MOUSE_MOVE:
59 mouse_move = other.mouse_move;
60 break;
61 case GenericEventParamsType::MOUSE_BUTTON:
62 mouse_button = other.mouse_button;
63 break;
64 case GenericEventParamsType::TOUCH:
65 touch = other.touch;
66 break;
67 }
68 }
69 ~GenericEventParams() {}
70
71 GenericEventParamsType type;
72 union {
73 MouseMoveEventParams mouse_move;
74 MouseButtonEventParams mouse_button;
75 TouchEventParams touch;
76 };
77 };
78
51 } // namespace 79 } // namespace
52 80
53 class MockTouchEventConverterEvdev : public TouchEventConverterEvdev { 81 class MockTouchEventConverterEvdev : public TouchEventConverterEvdev {
54 public: 82 public:
55 MockTouchEventConverterEvdev(int fd, 83 MockTouchEventConverterEvdev(int fd,
56 base::FilePath path, 84 base::FilePath path,
57 const EventDeviceInfo& devinfo, 85 const EventDeviceInfo& devinfo,
58 DeviceEventDispatcherEvdev* dispatcher); 86 DeviceEventDispatcherEvdev* dispatcher);
59 ~MockTouchEventConverterEvdev() override; 87 ~MockTouchEventConverterEvdev() override;
60 88
(...skipping 18 matching lines...) Expand all
79 private: 107 private:
80 int read_pipe_; 108 int read_pipe_;
81 int write_pipe_; 109 int write_pipe_;
82 110
83 DISALLOW_COPY_AND_ASSIGN(MockTouchEventConverterEvdev); 111 DISALLOW_COPY_AND_ASSIGN(MockTouchEventConverterEvdev);
84 }; 112 };
85 113
86 class MockDeviceEventDispatcherEvdev : public DeviceEventDispatcherEvdev { 114 class MockDeviceEventDispatcherEvdev : public DeviceEventDispatcherEvdev {
87 public: 115 public:
88 MockDeviceEventDispatcherEvdev( 116 MockDeviceEventDispatcherEvdev(
89 const base::Callback<void(const TouchEventParams& params)>& callback) 117 const base::Callback<void(const GenericEventParams& params)>& callback)
90 : callback_(callback) {} 118 : callback_(callback) {}
91 ~MockDeviceEventDispatcherEvdev() override {} 119 ~MockDeviceEventDispatcherEvdev() override {}
92 120
93 // DeviceEventDispatcherEvdev: 121 // DeviceEventDispatcherEvdev:
94 void DispatchKeyEvent(const KeyEventParams& params) override {} 122 void DispatchKeyEvent(const KeyEventParams& params) override {}
95 void DispatchMouseMoveEvent(const MouseMoveEventParams& params) override {} 123 void DispatchMouseMoveEvent(const MouseMoveEventParams& params) override {
124 GenericEventParams generic;
125 generic.type = GenericEventParamsType::MOUSE_MOVE;
126 generic.mouse_move = params;
127 callback_.Run(generic);
128 }
96 void DispatchMouseButtonEvent(const MouseButtonEventParams& params) override { 129 void DispatchMouseButtonEvent(const MouseButtonEventParams& params) override {
130 GenericEventParams generic;
131 generic.type = GenericEventParamsType::MOUSE_BUTTON;
132 generic.mouse_button = params;
133 callback_.Run(generic);
97 } 134 }
98 void DispatchMouseWheelEvent(const MouseWheelEventParams& params) override {} 135 void DispatchMouseWheelEvent(const MouseWheelEventParams& params) override {}
99 void DispatchPinchEvent(const PinchEventParams& params) override {} 136 void DispatchPinchEvent(const PinchEventParams& params) override {}
100 void DispatchScrollEvent(const ScrollEventParams& params) override {} 137 void DispatchScrollEvent(const ScrollEventParams& params) override {}
101 void DispatchTouchEvent(const TouchEventParams& params) override { 138 void DispatchTouchEvent(const TouchEventParams& params) override {
102 callback_.Run(params); 139 GenericEventParams generic;
140 generic.type = GenericEventParamsType::TOUCH;
141 generic.touch = params;
142 callback_.Run(generic);
103 } 143 }
104 144
105 void DispatchKeyboardDevicesUpdated( 145 void DispatchKeyboardDevicesUpdated(
106 const std::vector<InputDevice>& devices) override {} 146 const std::vector<InputDevice>& devices) override {}
107 void DispatchTouchscreenDevicesUpdated( 147 void DispatchTouchscreenDevicesUpdated(
108 const std::vector<TouchscreenDevice>& devices) override {} 148 const std::vector<TouchscreenDevice>& devices) override {}
109 void DispatchMouseDevicesUpdated( 149 void DispatchMouseDevicesUpdated(
110 const std::vector<InputDevice>& devices) override {} 150 const std::vector<InputDevice>& devices) override {}
111 void DispatchTouchpadDevicesUpdated( 151 void DispatchTouchpadDevicesUpdated(
112 const std::vector<InputDevice>& devices) override {} 152 const std::vector<InputDevice>& devices) override {}
113 void DispatchDeviceListsComplete() override {} 153 void DispatchDeviceListsComplete() override {}
114 154
115 private: 155 private:
116 base::Callback<void(const TouchEventParams& params)> callback_; 156 base::Callback<void(const GenericEventParams& params)> callback_;
117 }; 157 };
118 158
119 MockTouchEventConverterEvdev::MockTouchEventConverterEvdev( 159 MockTouchEventConverterEvdev::MockTouchEventConverterEvdev(
120 int fd, 160 int fd,
121 base::FilePath path, 161 base::FilePath path,
122 const EventDeviceInfo& devinfo, 162 const EventDeviceInfo& devinfo,
123 DeviceEventDispatcherEvdev* dispatcher) 163 DeviceEventDispatcherEvdev* dispatcher)
124 : TouchEventConverterEvdev(fd, 164 : TouchEventConverterEvdev(fd,
125 path, 165 path,
126 1, 166 1,
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
189 } 229 }
190 230
191 void TearDown() override { 231 void TearDown() override {
192 device_.reset(); 232 device_.reset();
193 delete loop_; 233 delete loop_;
194 } 234 }
195 235
196 ui::MockTouchEventConverterEvdev* device() { return device_.get(); } 236 ui::MockTouchEventConverterEvdev* device() { return device_.get(); }
197 237
198 unsigned size() { return dispatched_events_.size(); } 238 unsigned size() { return dispatched_events_.size(); }
199 const ui::TouchEventParams& dispatched_event(unsigned index) { 239 const ui::TouchEventParams& dispatched_touch_event(unsigned index) {
200 DCHECK_GT(dispatched_events_.size(), index); 240 DCHECK_GT(dispatched_events_.size(), index);
201 return dispatched_events_[index]; 241 EXPECT_EQ(GenericEventParamsType::TOUCH, dispatched_events_[index].type);
242 return dispatched_events_[index].touch;
202 } 243 }
203 244 const ui::MouseMoveEventParams& dispatched_mouse_move_event(unsigned index) {
245 DCHECK_GT(dispatched_events_.size(), index);
246 EXPECT_EQ(GenericEventParamsType::MOUSE_MOVE,
247 dispatched_events_[index].type);
248 return dispatched_events_[index].mouse_move;
249 }
250 const ui::MouseButtonEventParams& dispatched_mouse_button_event(
251 unsigned index) {
252 DCHECK_GT(dispatched_events_.size(), index);
253 EXPECT_EQ(GenericEventParamsType::MOUSE_BUTTON,
254 dispatched_events_[index].type);
255 return dispatched_events_[index].mouse_button;
256 }
204 void ClearDispatchedEvents() { dispatched_events_.clear(); } 257 void ClearDispatchedEvents() { dispatched_events_.clear(); }
205 258
206 void DestroyDevice() { device_.reset(); } 259 void DestroyDevice() { device_.reset(); }
207 260
208 private: 261 private:
209 base::MessageLoop* loop_; 262 base::MessageLoop* loop_;
210 std::unique_ptr<ui::MockTouchEventConverterEvdev> device_; 263 std::unique_ptr<ui::MockTouchEventConverterEvdev> device_;
211 std::unique_ptr<ui::MockDeviceEventDispatcherEvdev> dispatcher_; 264 std::unique_ptr<ui::MockDeviceEventDispatcherEvdev> dispatcher_;
212 265
213 int events_out_; 266 int events_out_;
214 int events_in_; 267 int events_in_;
215 268
216 void DispatchCallback(const ui::TouchEventParams& params) { 269 void DispatchCallback(const GenericEventParams& params) {
217 dispatched_events_.push_back(params); 270 dispatched_events_.push_back(params);
218 } 271 }
219 std::vector<ui::TouchEventParams> dispatched_events_; 272 std::vector<GenericEventParams> dispatched_events_;
220 273
221 DISALLOW_COPY_AND_ASSIGN(TouchEventConverterEvdevTest); 274 DISALLOW_COPY_AND_ASSIGN(TouchEventConverterEvdevTest);
222 }; 275 };
223 276
224 TEST_F(TouchEventConverterEvdevTest, NoEvents) { 277 TEST_F(TouchEventConverterEvdevTest, NoEvents) {
225 ui::MockTouchEventConverterEvdev* dev = device(); 278 ui::MockTouchEventConverterEvdev* dev = device();
226 dev->ConfigureReadMock(NULL, 0, 0); 279 dev->ConfigureReadMock(NULL, 0, 0);
227 EXPECT_EQ(0u, size()); 280 EXPECT_EQ(0u, size());
228 } 281 }
229 282
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
264 {time, EV_KEY, BTN_TOUCH, 0}, 317 {time, EV_KEY, BTN_TOUCH, 0},
265 {time, EV_ABS, ABS_PRESSURE, 0}, 318 {time, EV_ABS, ABS_PRESSURE, 0},
266 {time, EV_SYN, SYN_REPORT, 0}, 319 {time, EV_SYN, SYN_REPORT, 0},
267 }; 320 };
268 321
269 // Press. 322 // Press.
270 dev->ConfigureReadMock(mock_kernel_queue_press, 323 dev->ConfigureReadMock(mock_kernel_queue_press,
271 arraysize(mock_kernel_queue_press), 0); 324 arraysize(mock_kernel_queue_press), 0);
272 dev->ReadNow(); 325 dev->ReadNow();
273 EXPECT_EQ(1u, size()); 326 EXPECT_EQ(1u, size());
274 ui::TouchEventParams event = dispatched_event(0); 327 ui::TouchEventParams event = dispatched_touch_event(0);
275 EXPECT_EQ(ui::ET_TOUCH_PRESSED, event.type); 328 EXPECT_EQ(ui::ET_TOUCH_PRESSED, event.type);
276 EXPECT_EQ(base::TimeTicks::FromInternalValue(1427323282019203), 329 EXPECT_EQ(base::TimeTicks::FromInternalValue(1427323282019203),
277 event.timestamp); 330 event.timestamp);
278 EXPECT_EQ(295, event.location.x()); 331 EXPECT_EQ(295, event.location.x());
279 EXPECT_EQ(421, event.location.y()); 332 EXPECT_EQ(421, event.location.y());
280 EXPECT_EQ(0, event.slot); 333 EXPECT_EQ(0, event.slot);
281 EXPECT_EQ(EventPointerType::POINTER_TYPE_TOUCH, 334 EXPECT_EQ(EventPointerType::POINTER_TYPE_TOUCH,
282 event.pointer_details.pointer_type); 335 event.pointer_details.pointer_type);
283 EXPECT_FLOAT_EQ(58.f, event.pointer_details.radius_x); 336 EXPECT_FLOAT_EQ(58.f, event.pointer_details.radius_x);
284 EXPECT_FLOAT_EQ(0.13333334f, event.pointer_details.force); 337 EXPECT_FLOAT_EQ(0.13333334f, event.pointer_details.force);
285 338
286 // Move. 339 // Move.
287 dev->ConfigureReadMock(mock_kernel_queue_move, 340 dev->ConfigureReadMock(mock_kernel_queue_move,
288 arraysize(mock_kernel_queue_move), 0); 341 arraysize(mock_kernel_queue_move), 0);
289 dev->ReadNow(); 342 dev->ReadNow();
290 EXPECT_EQ(2u, size()); 343 EXPECT_EQ(2u, size());
291 event = dispatched_event(1); 344 event = dispatched_touch_event(1);
292 EXPECT_EQ(ui::ET_TOUCH_MOVED, event.type); 345 EXPECT_EQ(ui::ET_TOUCH_MOVED, event.type);
293 EXPECT_EQ(base::TimeTicks::FromInternalValue(1427323282034693), 346 EXPECT_EQ(base::TimeTicks::FromInternalValue(1427323282034693),
294 event.timestamp); 347 event.timestamp);
295 EXPECT_EQ(312, event.location.x()); 348 EXPECT_EQ(312, event.location.x());
296 EXPECT_EQ(432, event.location.y()); 349 EXPECT_EQ(432, event.location.y());
297 EXPECT_EQ(0, event.slot); 350 EXPECT_EQ(0, event.slot);
298 EXPECT_EQ(EventPointerType::POINTER_TYPE_TOUCH, 351 EXPECT_EQ(EventPointerType::POINTER_TYPE_TOUCH,
299 event.pointer_details.pointer_type); 352 event.pointer_details.pointer_type);
300 EXPECT_FLOAT_EQ(50.f, event.pointer_details.radius_x); 353 EXPECT_FLOAT_EQ(50.f, event.pointer_details.radius_x);
301 EXPECT_FLOAT_EQ(0.16862745f, event.pointer_details.force); 354 EXPECT_FLOAT_EQ(0.16862745f, event.pointer_details.force);
302 355
303 // Release. 356 // Release.
304 dev->ConfigureReadMock(mock_kernel_queue_release, 357 dev->ConfigureReadMock(mock_kernel_queue_release,
305 arraysize(mock_kernel_queue_release), 0); 358 arraysize(mock_kernel_queue_release), 0);
306 dev->ReadNow(); 359 dev->ReadNow();
307 EXPECT_EQ(3u, size()); 360 EXPECT_EQ(3u, size());
308 event = dispatched_event(2); 361 event = dispatched_touch_event(2);
309 EXPECT_EQ(ui::ET_TOUCH_RELEASED, event.type); 362 EXPECT_EQ(ui::ET_TOUCH_RELEASED, event.type);
310 EXPECT_EQ(base::TimeTicks::FromInternalValue(1427323282144540), 363 EXPECT_EQ(base::TimeTicks::FromInternalValue(1427323282144540),
311 event.timestamp); 364 event.timestamp);
312 EXPECT_EQ(312, event.location.x()); 365 EXPECT_EQ(312, event.location.x());
313 EXPECT_EQ(432, event.location.y()); 366 EXPECT_EQ(432, event.location.y());
314 EXPECT_EQ(0, event.slot); 367 EXPECT_EQ(0, event.slot);
315 EXPECT_EQ(EventPointerType::POINTER_TYPE_TOUCH, 368 EXPECT_EQ(EventPointerType::POINTER_TYPE_TOUCH,
316 event.pointer_details.pointer_type); 369 event.pointer_details.pointer_type);
317 EXPECT_FLOAT_EQ(50.f, event.pointer_details.radius_x); 370 EXPECT_FLOAT_EQ(50.f, event.pointer_details.radius_x);
318 EXPECT_FLOAT_EQ(0.16862745f, event.pointer_details.force); 371 EXPECT_FLOAT_EQ(0.16862745f, event.pointer_details.force);
(...skipping 29 matching lines...) Expand all
348 {{0, 0}, EV_ABS, ABS_MT_SLOT, 1}, {{0, 0}, EV_ABS, ABS_MT_TRACKING_ID, 686}, 401 {{0, 0}, EV_ABS, ABS_MT_SLOT, 1}, {{0, 0}, EV_ABS, ABS_MT_TRACKING_ID, 686},
349 {{0, 0}, EV_ABS, ABS_MT_TOUCH_MAJOR, 3}, 402 {{0, 0}, EV_ABS, ABS_MT_TOUCH_MAJOR, 3},
350 {{0, 0}, EV_ABS, ABS_MT_PRESSURE, 45}, 403 {{0, 0}, EV_ABS, ABS_MT_PRESSURE, 45},
351 {{0, 0}, EV_ABS, ABS_MT_POSITION_X, 101}, 404 {{0, 0}, EV_ABS, ABS_MT_POSITION_X, 101},
352 {{0, 0}, EV_ABS, ABS_MT_POSITION_Y, 102}, {{0, 0}, EV_SYN, SYN_REPORT, 0} 405 {{0, 0}, EV_ABS, ABS_MT_POSITION_Y, 102}, {{0, 0}, EV_SYN, SYN_REPORT, 0}
353 }; 406 };
354 // Move on 0, press on 1. 407 // Move on 0, press on 1.
355 dev->ConfigureReadMock(mock_kernel_queue_move0press1, 9, 0); 408 dev->ConfigureReadMock(mock_kernel_queue_move0press1, 9, 0);
356 dev->ReadNow(); 409 dev->ReadNow();
357 EXPECT_EQ(4u, size()); 410 EXPECT_EQ(4u, size());
358 ui::TouchEventParams ev0 = dispatched_event(2); 411 ui::TouchEventParams ev0 = dispatched_touch_event(2);
359 ui::TouchEventParams ev1 = dispatched_event(3); 412 ui::TouchEventParams ev1 = dispatched_touch_event(3);
360 413
361 // Move 414 // Move
362 EXPECT_EQ(ui::ET_TOUCH_MOVED, ev0.type); 415 EXPECT_EQ(ui::ET_TOUCH_MOVED, ev0.type);
363 EXPECT_EQ(base::TimeTicks::FromInternalValue(0), ev0.timestamp); 416 EXPECT_EQ(base::TimeTicks::FromInternalValue(0), ev0.timestamp);
364 EXPECT_EQ(40, ev0.location.x()); 417 EXPECT_EQ(40, ev0.location.x());
365 EXPECT_EQ(51, ev0.location.y()); 418 EXPECT_EQ(51, ev0.location.y());
366 EXPECT_EQ(0, ev0.slot); 419 EXPECT_EQ(0, ev0.slot);
367 EXPECT_FLOAT_EQ(0.17647059f, ev0.pointer_details.force); 420 EXPECT_FLOAT_EQ(0.17647059f, ev0.pointer_details.force);
368 421
369 // Press 422 // Press
370 EXPECT_EQ(ui::ET_TOUCH_PRESSED, ev1.type); 423 EXPECT_EQ(ui::ET_TOUCH_PRESSED, ev1.type);
371 EXPECT_EQ(base::TimeTicks::FromInternalValue(0), ev1.timestamp); 424 EXPECT_EQ(base::TimeTicks::FromInternalValue(0), ev1.timestamp);
372 EXPECT_EQ(101, ev1.location.x()); 425 EXPECT_EQ(101, ev1.location.x());
373 EXPECT_EQ(102, ev1.location.y()); 426 EXPECT_EQ(102, ev1.location.y());
374 EXPECT_EQ(1, ev1.slot); 427 EXPECT_EQ(1, ev1.slot);
375 EXPECT_FLOAT_EQ(0.17647059f, ev1.pointer_details.force); 428 EXPECT_FLOAT_EQ(0.17647059f, ev1.pointer_details.force);
376 429
377 // Stationary 0, Moves 1. 430 // Stationary 0, Moves 1.
378 struct input_event mock_kernel_queue_stationary0_move1[] = { 431 struct input_event mock_kernel_queue_stationary0_move1[] = {
379 {{0, 0}, EV_ABS, ABS_MT_POSITION_X, 40}, {{0, 0}, EV_SYN, SYN_REPORT, 0} 432 {{0, 0}, EV_ABS, ABS_MT_POSITION_X, 40}, {{0, 0}, EV_SYN, SYN_REPORT, 0}
380 }; 433 };
381 dev->ConfigureReadMock(mock_kernel_queue_stationary0_move1, 2, 0); 434 dev->ConfigureReadMock(mock_kernel_queue_stationary0_move1, 2, 0);
382 dev->ReadNow(); 435 dev->ReadNow();
383 EXPECT_EQ(5u, size()); 436 EXPECT_EQ(5u, size());
384 ev1 = dispatched_event(4); 437 ev1 = dispatched_touch_event(4);
385 438
386 EXPECT_EQ(ui::ET_TOUCH_MOVED, ev1.type); 439 EXPECT_EQ(ui::ET_TOUCH_MOVED, ev1.type);
387 EXPECT_EQ(base::TimeTicks::FromInternalValue(0), ev1.timestamp); 440 EXPECT_EQ(base::TimeTicks::FromInternalValue(0), ev1.timestamp);
388 EXPECT_EQ(40, ev1.location.x()); 441 EXPECT_EQ(40, ev1.location.x());
389 EXPECT_EQ(102, ev1.location.y()); 442 EXPECT_EQ(102, ev1.location.y());
390 EXPECT_EQ(1, ev1.slot); 443 EXPECT_EQ(1, ev1.slot);
391 EXPECT_FLOAT_EQ(0.17647059f, ev1.pointer_details.force); 444 EXPECT_FLOAT_EQ(0.17647059f, ev1.pointer_details.force);
392 445
393 // Move 0, stationary 1. 446 // Move 0, stationary 1.
394 struct input_event mock_kernel_queue_move0_stationary1[] = { 447 struct input_event mock_kernel_queue_move0_stationary1[] = {
395 {{0, 0}, EV_ABS, ABS_MT_SLOT, 0}, {{0, 0}, EV_ABS, ABS_MT_POSITION_X, 39}, 448 {{0, 0}, EV_ABS, ABS_MT_SLOT, 0}, {{0, 0}, EV_ABS, ABS_MT_POSITION_X, 39},
396 {{0, 0}, EV_SYN, SYN_REPORT, 0} 449 {{0, 0}, EV_SYN, SYN_REPORT, 0}
397 }; 450 };
398 dev->ConfigureReadMock(mock_kernel_queue_move0_stationary1, 3, 0); 451 dev->ConfigureReadMock(mock_kernel_queue_move0_stationary1, 3, 0);
399 dev->ReadNow(); 452 dev->ReadNow();
400 EXPECT_EQ(6u, size()); 453 EXPECT_EQ(6u, size());
401 ev0 = dispatched_event(5); 454 ev0 = dispatched_touch_event(5);
402 455
403 EXPECT_EQ(ui::ET_TOUCH_MOVED, ev0.type); 456 EXPECT_EQ(ui::ET_TOUCH_MOVED, ev0.type);
404 EXPECT_EQ(base::TimeTicks::FromInternalValue(0), ev0.timestamp); 457 EXPECT_EQ(base::TimeTicks::FromInternalValue(0), ev0.timestamp);
405 EXPECT_EQ(39, ev0.location.x()); 458 EXPECT_EQ(39, ev0.location.x());
406 EXPECT_EQ(51, ev0.location.y()); 459 EXPECT_EQ(51, ev0.location.y());
407 EXPECT_EQ(0, ev0.slot); 460 EXPECT_EQ(0, ev0.slot);
408 EXPECT_FLOAT_EQ(0.17647059f, ev0.pointer_details.force); 461 EXPECT_FLOAT_EQ(0.17647059f, ev0.pointer_details.force);
409 462
410 // Release 0, move 1. 463 // Release 0, move 1.
411 struct input_event mock_kernel_queue_release0_move1[] = { 464 struct input_event mock_kernel_queue_release0_move1[] = {
412 {{0, 0}, EV_ABS, ABS_MT_TRACKING_ID, -1}, {{0, 0}, EV_ABS, ABS_MT_SLOT, 1}, 465 {{0, 0}, EV_ABS, ABS_MT_TRACKING_ID, -1}, {{0, 0}, EV_ABS, ABS_MT_SLOT, 1},
413 {{0, 0}, EV_ABS, ABS_MT_POSITION_X, 38}, {{0, 0}, EV_SYN, SYN_REPORT, 0} 466 {{0, 0}, EV_ABS, ABS_MT_POSITION_X, 38}, {{0, 0}, EV_SYN, SYN_REPORT, 0}
414 }; 467 };
415 dev->ConfigureReadMock(mock_kernel_queue_release0_move1, 4, 0); 468 dev->ConfigureReadMock(mock_kernel_queue_release0_move1, 4, 0);
416 dev->ReadNow(); 469 dev->ReadNow();
417 EXPECT_EQ(8u, size()); 470 EXPECT_EQ(8u, size());
418 ev0 = dispatched_event(6); 471 ev0 = dispatched_touch_event(6);
419 ev1 = dispatched_event(7); 472 ev1 = dispatched_touch_event(7);
420 473
421 EXPECT_EQ(ui::ET_TOUCH_RELEASED, ev0.type); 474 EXPECT_EQ(ui::ET_TOUCH_RELEASED, ev0.type);
422 EXPECT_EQ(base::TimeTicks::FromInternalValue(0), ev0.timestamp); 475 EXPECT_EQ(base::TimeTicks::FromInternalValue(0), ev0.timestamp);
423 EXPECT_EQ(39, ev0.location.x()); 476 EXPECT_EQ(39, ev0.location.x());
424 EXPECT_EQ(51, ev0.location.y()); 477 EXPECT_EQ(51, ev0.location.y());
425 EXPECT_EQ(0, ev0.slot); 478 EXPECT_EQ(0, ev0.slot);
426 EXPECT_FLOAT_EQ(0.17647059f, ev0.pointer_details.force); 479 EXPECT_FLOAT_EQ(0.17647059f, ev0.pointer_details.force);
427 480
428 EXPECT_EQ(ui::ET_TOUCH_MOVED, ev1.type); 481 EXPECT_EQ(ui::ET_TOUCH_MOVED, ev1.type);
429 EXPECT_EQ(base::TimeTicks::FromInternalValue(0), ev1.timestamp); 482 EXPECT_EQ(base::TimeTicks::FromInternalValue(0), ev1.timestamp);
430 EXPECT_EQ(38, ev1.location.x()); 483 EXPECT_EQ(38, ev1.location.x());
431 EXPECT_EQ(102, ev1.location.y()); 484 EXPECT_EQ(102, ev1.location.y());
432 EXPECT_EQ(1, ev1.slot); 485 EXPECT_EQ(1, ev1.slot);
433 EXPECT_FLOAT_EQ(0.17647059f, ev1.pointer_details.force); 486 EXPECT_FLOAT_EQ(0.17647059f, ev1.pointer_details.force);
434 487
435 // Release 1. 488 // Release 1.
436 struct input_event mock_kernel_queue_release1[] = { 489 struct input_event mock_kernel_queue_release1[] = {
437 {{0, 0}, EV_ABS, ABS_MT_TRACKING_ID, -1}, {{0, 0}, EV_SYN, SYN_REPORT, 0}, 490 {{0, 0}, EV_ABS, ABS_MT_TRACKING_ID, -1}, {{0, 0}, EV_SYN, SYN_REPORT, 0},
438 }; 491 };
439 dev->ConfigureReadMock(mock_kernel_queue_release1, 2, 0); 492 dev->ConfigureReadMock(mock_kernel_queue_release1, 2, 0);
440 dev->ReadNow(); 493 dev->ReadNow();
441 EXPECT_EQ(9u, size()); 494 EXPECT_EQ(9u, size());
442 ev1 = dispatched_event(8); 495 ev1 = dispatched_touch_event(8);
443 496
444 EXPECT_EQ(ui::ET_TOUCH_RELEASED, ev1.type); 497 EXPECT_EQ(ui::ET_TOUCH_RELEASED, ev1.type);
445 EXPECT_EQ(base::TimeTicks::FromInternalValue(0), ev1.timestamp); 498 EXPECT_EQ(base::TimeTicks::FromInternalValue(0), ev1.timestamp);
446 EXPECT_EQ(38, ev1.location.x()); 499 EXPECT_EQ(38, ev1.location.x());
447 EXPECT_EQ(102, ev1.location.y()); 500 EXPECT_EQ(102, ev1.location.y());
448 EXPECT_EQ(1, ev1.slot); 501 EXPECT_EQ(1, ev1.slot);
449 EXPECT_FLOAT_EQ(0.17647059f, ev1.pointer_details.force); 502 EXPECT_FLOAT_EQ(0.17647059f, ev1.pointer_details.force);
450 } 503 }
451 504
452 TEST_F(TouchEventConverterEvdevTest, Unsync) { 505 TEST_F(TouchEventConverterEvdevTest, Unsync) {
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
506 // Any report should suffice to dispatch the update.. do an empty one. 559 // Any report should suffice to dispatch the update.. do an empty one.
507 struct input_event mock_kernel_queue_empty_report[] = { 560 struct input_event mock_kernel_queue_empty_report[] = {
508 {{0, 0}, EV_SYN, SYN_REPORT, 0}, 561 {{0, 0}, EV_SYN, SYN_REPORT, 0},
509 }; 562 };
510 563
511 dev->ConfigureReadMock(mock_kernel_queue_empty_report, 564 dev->ConfigureReadMock(mock_kernel_queue_empty_report,
512 arraysize(mock_kernel_queue_empty_report), 0); 565 arraysize(mock_kernel_queue_empty_report), 0);
513 dev->ReadNow(); 566 dev->ReadNow();
514 EXPECT_EQ(1u, size()); 567 EXPECT_EQ(1u, size());
515 568
516 ui::TouchEventParams ev = dispatched_event(0); 569 ui::TouchEventParams ev = dispatched_touch_event(0);
517 EXPECT_EQ(ET_TOUCH_PRESSED, ev.type); 570 EXPECT_EQ(ET_TOUCH_PRESSED, ev.type);
518 EXPECT_EQ(0, ev.slot); 571 EXPECT_EQ(0, ev.slot);
519 EXPECT_FLOAT_EQ(50.f, ev.pointer_details.radius_x); 572 EXPECT_FLOAT_EQ(50.f, ev.pointer_details.radius_x);
520 EXPECT_FLOAT_EQ(50.f, ev.pointer_details.radius_y); 573 EXPECT_FLOAT_EQ(50.f, ev.pointer_details.radius_y);
521 EXPECT_FLOAT_EQ(0.50196081f, ev.pointer_details.force); 574 EXPECT_FLOAT_EQ(0.50196081f, ev.pointer_details.force);
522 } 575 }
523 576
524 TEST_F(TouchEventConverterEvdevTest, ShouldReleaseContactsOnStop) { 577 TEST_F(TouchEventConverterEvdevTest, ShouldReleaseContactsOnStop) {
525 ui::MockTouchEventConverterEvdev* dev = device(); 578 ui::MockTouchEventConverterEvdev* dev = device();
526 579
(...skipping 13 matching lines...) Expand all
540 {time, EV_ABS, ABS_Y, 749}, 593 {time, EV_ABS, ABS_Y, 749},
541 {time, EV_ABS, ABS_PRESSURE, 50}, 594 {time, EV_ABS, ABS_PRESSURE, 50},
542 {time, EV_SYN, SYN_REPORT, 0}, 595 {time, EV_SYN, SYN_REPORT, 0},
543 }; 596 };
544 597
545 dev->ConfigureReadMock(mock_kernel_queue_press, 598 dev->ConfigureReadMock(mock_kernel_queue_press,
546 arraysize(mock_kernel_queue_press), 0); 599 arraysize(mock_kernel_queue_press), 0);
547 dev->ReadNow(); 600 dev->ReadNow();
548 EXPECT_EQ(1u, size()); 601 EXPECT_EQ(1u, size());
549 602
550 ui::TouchEventParams ev1 = dispatched_event(0); 603 ui::TouchEventParams ev1 = dispatched_touch_event(0);
551 EXPECT_EQ(ET_TOUCH_PRESSED, ev1.type); 604 EXPECT_EQ(ET_TOUCH_PRESSED, ev1.type);
552 EXPECT_EQ(0, ev1.slot); 605 EXPECT_EQ(0, ev1.slot);
553 606
554 DestroyDevice(); 607 DestroyDevice();
555 EXPECT_EQ(2u, size()); 608 EXPECT_EQ(2u, size());
556 609
557 ui::TouchEventParams ev2 = dispatched_event(1); 610 ui::TouchEventParams ev2 = dispatched_touch_event(1);
558 EXPECT_EQ(ET_TOUCH_RELEASED, ev2.type); 611 EXPECT_EQ(ET_TOUCH_RELEASED, ev2.type);
559 EXPECT_EQ(0, ev2.slot); 612 EXPECT_EQ(0, ev2.slot);
560 } 613 }
561 614
562 TEST_F(TouchEventConverterEvdevTest, ShouldRemoveContactsWhenDisabled) { 615 TEST_F(TouchEventConverterEvdevTest, ShouldRemoveContactsWhenDisabled) {
563 ui::MockTouchEventConverterEvdev* dev = device(); 616 ui::MockTouchEventConverterEvdev* dev = device();
564 617
565 EventDeviceInfo devinfo; 618 EventDeviceInfo devinfo;
566 EXPECT_TRUE(CapabilitiesToDeviceInfo(kLinkTouchscreen, &devinfo)); 619 EXPECT_TRUE(CapabilitiesToDeviceInfo(kLinkTouchscreen, &devinfo));
567 620
(...skipping 14 matching lines...) Expand all
582 }; 635 };
583 636
584 // Initialize the device. 637 // Initialize the device.
585 dev->Initialize(devinfo); 638 dev->Initialize(devinfo);
586 639
587 dev->ConfigureReadMock(mock_kernel_queue_press, 640 dev->ConfigureReadMock(mock_kernel_queue_press,
588 arraysize(mock_kernel_queue_press), 0); 641 arraysize(mock_kernel_queue_press), 0);
589 dev->ReadNow(); 642 dev->ReadNow();
590 EXPECT_EQ(1u, size()); 643 EXPECT_EQ(1u, size());
591 644
592 ui::TouchEventParams ev1 = dispatched_event(0); 645 ui::TouchEventParams ev1 = dispatched_touch_event(0);
593 EXPECT_EQ(ET_TOUCH_PRESSED, ev1.type); 646 EXPECT_EQ(ET_TOUCH_PRESSED, ev1.type);
594 EXPECT_EQ(0, ev1.slot); 647 EXPECT_EQ(0, ev1.slot);
595 EXPECT_EQ(1003, ev1.location.x()); 648 EXPECT_EQ(1003, ev1.location.x());
596 EXPECT_EQ(749, ev1.location.y()); 649 EXPECT_EQ(749, ev1.location.y());
597 650
598 // Disable the device (should release the contact). 651 // Disable the device (should release the contact).
599 dev->SetEnabled(false); 652 dev->SetEnabled(false);
600 EXPECT_EQ(2u, size()); 653 EXPECT_EQ(2u, size());
601 654
602 ui::TouchEventParams ev2 = dispatched_event(1); 655 ui::TouchEventParams ev2 = dispatched_touch_event(1);
603 EXPECT_EQ(ET_TOUCH_RELEASED, ev2.type); 656 EXPECT_EQ(ET_TOUCH_RELEASED, ev2.type);
604 EXPECT_EQ(0, ev2.slot); 657 EXPECT_EQ(0, ev2.slot);
605 658
606 // Set up the previous contact in slot 0. 659 // Set up the previous contact in slot 0.
607 devinfo.SetAbsMtSlot(ABS_MT_TRACKING_ID, 0, 0); 660 devinfo.SetAbsMtSlot(ABS_MT_TRACKING_ID, 0, 0);
608 devinfo.SetAbsMtSlot(ABS_MT_TOUCH_MAJOR, 0, 116); 661 devinfo.SetAbsMtSlot(ABS_MT_TOUCH_MAJOR, 0, 116);
609 devinfo.SetAbsMtSlot(ABS_MT_POSITION_X, 0, 1003); 662 devinfo.SetAbsMtSlot(ABS_MT_POSITION_X, 0, 1003);
610 devinfo.SetAbsMtSlot(ABS_MT_POSITION_Y, 0, 749); 663 devinfo.SetAbsMtSlot(ABS_MT_POSITION_Y, 0, 749);
611 devinfo.SetAbsMtSlot(ABS_MT_PRESSURE, 0, 50); 664 devinfo.SetAbsMtSlot(ABS_MT_PRESSURE, 0, 50);
612 665
613 // Re-enable the device (should re-apply the contact). 666 // Re-enable the device (should re-apply the contact).
614 dev->SimulateReinitialize(devinfo); 667 dev->SimulateReinitialize(devinfo);
615 dev->SetEnabled(true); 668 dev->SetEnabled(true);
616 EXPECT_EQ(3u, size()); 669 EXPECT_EQ(3u, size());
617 670
618 ui::TouchEventParams ev3 = dispatched_event(2); 671 ui::TouchEventParams ev3 = dispatched_touch_event(2);
619 EXPECT_EQ(ET_TOUCH_PRESSED, ev3.type); 672 EXPECT_EQ(ET_TOUCH_PRESSED, ev3.type);
620 EXPECT_EQ(0, ev3.slot); 673 EXPECT_EQ(0, ev3.slot);
621 EXPECT_EQ(1003, ev3.location.x()); 674 EXPECT_EQ(1003, ev3.location.x());
622 EXPECT_EQ(749, ev3.location.y()); 675 EXPECT_EQ(749, ev3.location.y());
623 } 676 }
624 677
625 // crbug.com/477695 678 // crbug.com/477695
626 TEST_F(TouchEventConverterEvdevTest, ShouldUseLeftButtonIfNoTouchButton) { 679 TEST_F(TouchEventConverterEvdevTest, ShouldUseLeftButtonIfNoTouchButton) {
627 ui::MockTouchEventConverterEvdev* dev = device(); 680 ui::MockTouchEventConverterEvdev* dev = device();
628 681
(...skipping 27 matching lines...) Expand all
656 {time, EV_KEY, BTN_LEFT, 0}, 709 {time, EV_KEY, BTN_LEFT, 0},
657 {time, EV_ABS, ABS_MISC, 0}, 710 {time, EV_ABS, ABS_MISC, 0},
658 {time, EV_SYN, SYN_REPORT, 0}, 711 {time, EV_SYN, SYN_REPORT, 0},
659 }; 712 };
660 713
661 // Press. 714 // Press.
662 dev->ConfigureReadMock(mock_kernel_queue_press, 715 dev->ConfigureReadMock(mock_kernel_queue_press,
663 arraysize(mock_kernel_queue_press), 0); 716 arraysize(mock_kernel_queue_press), 0);
664 dev->ReadNow(); 717 dev->ReadNow();
665 EXPECT_EQ(1u, size()); 718 EXPECT_EQ(1u, size());
666 ui::TouchEventParams event = dispatched_event(0); 719 ui::TouchEventParams event = dispatched_touch_event(0);
667 EXPECT_EQ(ui::ET_TOUCH_PRESSED, event.type); 720 EXPECT_EQ(ui::ET_TOUCH_PRESSED, event.type);
668 EXPECT_EQ(base::TimeTicks::FromInternalValue(1433965490837958), 721 EXPECT_EQ(base::TimeTicks::FromInternalValue(1433965490837958),
669 event.timestamp); 722 event.timestamp);
670 EXPECT_EQ(3654, event.location.x()); 723 EXPECT_EQ(3654, event.location.x());
671 EXPECT_EQ(1055, event.location.y()); 724 EXPECT_EQ(1055, event.location.y());
672 EXPECT_EQ(0, event.slot); 725 EXPECT_EQ(0, event.slot);
673 EXPECT_FLOAT_EQ(0.f, event.pointer_details.radius_x); 726 EXPECT_FLOAT_EQ(0.f, event.pointer_details.radius_x);
674 EXPECT_FLOAT_EQ(0.f, event.pointer_details.force); 727 EXPECT_FLOAT_EQ(0.f, event.pointer_details.force);
675 728
676 // Move. 729 // Move.
677 dev->ConfigureReadMock(mock_kernel_queue_move, 730 dev->ConfigureReadMock(mock_kernel_queue_move,
678 arraysize(mock_kernel_queue_move), 0); 731 arraysize(mock_kernel_queue_move), 0);
679 dev->ReadNow(); 732 dev->ReadNow();
680 EXPECT_EQ(2u, size()); 733 EXPECT_EQ(2u, size());
681 event = dispatched_event(1); 734 event = dispatched_touch_event(1);
682 EXPECT_EQ(ui::ET_TOUCH_MOVED, event.type); 735 EXPECT_EQ(ui::ET_TOUCH_MOVED, event.type);
683 EXPECT_EQ(base::TimeTicks::FromInternalValue(1433965491001953), 736 EXPECT_EQ(base::TimeTicks::FromInternalValue(1433965491001953),
684 event.timestamp); 737 event.timestamp);
685 EXPECT_EQ(3644, event.location.x()); 738 EXPECT_EQ(3644, event.location.x());
686 EXPECT_EQ(1059, event.location.y()); 739 EXPECT_EQ(1059, event.location.y());
687 EXPECT_EQ(0, event.slot); 740 EXPECT_EQ(0, event.slot);
688 EXPECT_FLOAT_EQ(0.f, event.pointer_details.radius_x); 741 EXPECT_FLOAT_EQ(0.f, event.pointer_details.radius_x);
689 EXPECT_FLOAT_EQ(0.f, event.pointer_details.force); 742 EXPECT_FLOAT_EQ(0.f, event.pointer_details.force);
690 743
691 // Release. 744 // Release.
692 dev->ConfigureReadMock(mock_kernel_queue_release, 745 dev->ConfigureReadMock(mock_kernel_queue_release,
693 arraysize(mock_kernel_queue_release), 0); 746 arraysize(mock_kernel_queue_release), 0);
694 dev->ReadNow(); 747 dev->ReadNow();
695 EXPECT_EQ(3u, size()); 748 EXPECT_EQ(3u, size());
696 event = dispatched_event(2); 749 event = dispatched_touch_event(2);
697 EXPECT_EQ(ui::ET_TOUCH_RELEASED, event.type); 750 EXPECT_EQ(ui::ET_TOUCH_RELEASED, event.type);
698 EXPECT_EQ(base::TimeTicks::FromInternalValue(1433965491225959), 751 EXPECT_EQ(base::TimeTicks::FromInternalValue(1433965491225959),
699 event.timestamp); 752 event.timestamp);
700 EXPECT_EQ(3644, event.location.x()); 753 EXPECT_EQ(3644, event.location.x());
701 EXPECT_EQ(1059, event.location.y()); 754 EXPECT_EQ(1059, event.location.y());
702 EXPECT_EQ(0, event.slot); 755 EXPECT_EQ(0, event.slot);
703 EXPECT_FLOAT_EQ(0.f, event.pointer_details.radius_x); 756 EXPECT_FLOAT_EQ(0.f, event.pointer_details.radius_x);
704 EXPECT_FLOAT_EQ(0.f, event.pointer_details.force); 757 EXPECT_FLOAT_EQ(0.f, event.pointer_details.force);
705 758
706 // No dispatch on destruction. 759 // No dispatch on destruction.
(...skipping 27 matching lines...) Expand all
734 787
735 // Check that two events are generated. 788 // Check that two events are generated.
736 dev->ConfigureReadMock(mock_kernel_queue, arraysize(mock_kernel_queue), 0); 789 dev->ConfigureReadMock(mock_kernel_queue, arraysize(mock_kernel_queue), 0);
737 dev->ReadNow(); 790 dev->ReadNow();
738 791
739 const unsigned int kExpectedEventCount = 2; 792 const unsigned int kExpectedEventCount = 2;
740 EXPECT_EQ(kExpectedEventCount, size()); 793 EXPECT_EQ(kExpectedEventCount, size());
741 if (kExpectedEventCount != size()) 794 if (kExpectedEventCount != size())
742 return; 795 return;
743 796
744 ui::TouchEventParams ev0 = dispatched_event(0); 797 ui::TouchEventParams ev0 = dispatched_touch_event(0);
745 ui::TouchEventParams ev1 = dispatched_event(1); 798 ui::TouchEventParams ev1 = dispatched_touch_event(1);
746 799
747 EXPECT_EQ(0, ev0.slot); 800 EXPECT_EQ(0, ev0.slot);
748 EXPECT_EQ(999, ev0.location.x()); 801 EXPECT_EQ(999, ev0.location.x());
749 EXPECT_EQ(888, ev0.location.y()); 802 EXPECT_EQ(888, ev0.location.y());
750 EXPECT_FLOAT_EQ(0.21568628f, ev0.pointer_details.force); 803 EXPECT_FLOAT_EQ(0.21568628f, ev0.pointer_details.force);
751 804
752 EXPECT_EQ(1, ev1.slot); 805 EXPECT_EQ(1, ev1.slot);
753 EXPECT_EQ(777, ev1.location.x()); 806 EXPECT_EQ(777, ev1.location.x());
754 EXPECT_EQ(666, ev1.location.y()); 807 EXPECT_EQ(666, ev1.location.y());
755 EXPECT_FLOAT_EQ(0.17254902f, ev1.pointer_details.force); 808 EXPECT_FLOAT_EQ(0.17254902f, ev1.pointer_details.force);
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
876 dev->ConfigureReadMock(mock_kernel_queue, arraysize(mock_kernel_queue), 0); 929 dev->ConfigureReadMock(mock_kernel_queue, arraysize(mock_kernel_queue), 0);
877 dev->ReadNow(); 930 dev->ReadNow();
878 ASSERT_EQ(0u, size()); 931 ASSERT_EQ(0u, size());
879 932
880 ClearDispatchedEvents(); 933 ClearDispatchedEvents();
881 SetTouchNoiseFilter(std::unique_ptr<TouchNoiseFilter>( 934 SetTouchNoiseFilter(std::unique_ptr<TouchNoiseFilter>(
882 new EventTypeTouchNoiseFilter(ET_TOUCH_MOVED))); 935 new EventTypeTouchNoiseFilter(ET_TOUCH_MOVED)));
883 dev->ConfigureReadMock(mock_kernel_queue, arraysize(mock_kernel_queue), 0); 936 dev->ConfigureReadMock(mock_kernel_queue, arraysize(mock_kernel_queue), 0);
884 dev->ReadNow(); 937 dev->ReadNow();
885 ASSERT_EQ(2u, size()); 938 ASSERT_EQ(2u, size());
886 TouchEventParams event0 = dispatched_event(0); 939 TouchEventParams event0 = dispatched_touch_event(0);
887 EXPECT_EQ(ET_TOUCH_PRESSED, event0.type); 940 EXPECT_EQ(ET_TOUCH_PRESSED, event0.type);
888 EXPECT_EQ(40, event0.location.x()); 941 EXPECT_EQ(40, event0.location.x());
889 EXPECT_EQ(41, event0.location.y()); 942 EXPECT_EQ(41, event0.location.y());
890 EXPECT_EQ(ET_TOUCH_CANCELLED, dispatched_event(1).type); 943 EXPECT_EQ(ET_TOUCH_CANCELLED, dispatched_touch_event(1).type);
891 944
892 ClearDispatchedEvents(); 945 ClearDispatchedEvents();
893 SetTouchNoiseFilter(std::unique_ptr<TouchNoiseFilter>( 946 SetTouchNoiseFilter(std::unique_ptr<TouchNoiseFilter>(
894 new EventTypeTouchNoiseFilter(ET_TOUCH_RELEASED))); 947 new EventTypeTouchNoiseFilter(ET_TOUCH_RELEASED)));
895 dev->ConfigureReadMock(mock_kernel_queue, arraysize(mock_kernel_queue), 0); 948 dev->ConfigureReadMock(mock_kernel_queue, arraysize(mock_kernel_queue), 0);
896 dev->ReadNow(); 949 dev->ReadNow();
897 ASSERT_EQ(3u, size()); 950 ASSERT_EQ(3u, size());
898 event0 = dispatched_event(0); 951 event0 = dispatched_touch_event(0);
899 EXPECT_EQ(ET_TOUCH_PRESSED, event0.type); 952 EXPECT_EQ(ET_TOUCH_PRESSED, event0.type);
900 EXPECT_EQ(40, event0.location.x()); 953 EXPECT_EQ(40, event0.location.x());
901 EXPECT_EQ(41, event0.location.y()); 954 EXPECT_EQ(41, event0.location.y());
902 TouchEventParams event1 = dispatched_event(1); 955 TouchEventParams event1 = dispatched_touch_event(1);
903 EXPECT_EQ(ET_TOUCH_MOVED, event1.type); 956 EXPECT_EQ(ET_TOUCH_MOVED, event1.type);
904 EXPECT_EQ(42, event1.location.x()); 957 EXPECT_EQ(42, event1.location.x());
905 EXPECT_EQ(43, event1.location.y()); 958 EXPECT_EQ(43, event1.location.y());
906 EXPECT_EQ(ET_TOUCH_CANCELLED, dispatched_event(2).type); 959 EXPECT_EQ(ET_TOUCH_CANCELLED, dispatched_touch_event(2).type);
907 } 960 }
908 961
909 // Test that TouchEventConverterEvdev keeps sending events to 962 // Test that TouchEventConverterEvdev keeps sending events to
910 // TouchNoiseFinder after the touch is canceled. 963 // TouchNoiseFinder after the touch is canceled.
911 TEST_F(TouchEventConverterEvdevTouchNoiseTest, 964 TEST_F(TouchEventConverterEvdevTouchNoiseTest,
912 DoNotSendTouchCancelsToTouchNoiseFinder) { 965 DoNotSendTouchCancelsToTouchNoiseFinder) {
913 struct input_event mock_kernel_queue[] = { 966 struct input_event mock_kernel_queue[] = {
914 {{0, 0}, EV_ABS, ABS_MT_TRACKING_ID, 684}, 967 {{0, 0}, EV_ABS, ABS_MT_TRACKING_ID, 684},
915 {{0, 0}, EV_ABS, ABS_MT_POSITION_X, 40}, 968 {{0, 0}, EV_ABS, ABS_MT_POSITION_X, 40},
916 {{0, 0}, EV_ABS, ABS_MT_POSITION_Y, 41}, 969 {{0, 0}, EV_ABS, ABS_MT_POSITION_Y, 41},
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
960 {{0, 0}, EV_ABS, ABS_X, 9173}, 1013 {{0, 0}, EV_ABS, ABS_X, 9173},
961 {{0, 0}, EV_ABS, ABS_Y, 3906}, 1014 {{0, 0}, EV_ABS, ABS_Y, 3906},
962 {{0, 0}, EV_ABS, ABS_PRESSURE, 0}, 1015 {{0, 0}, EV_ABS, ABS_PRESSURE, 0},
963 {{0, 0}, EV_SYN, SYN_REPORT, 0}, 1016 {{0, 0}, EV_SYN, SYN_REPORT, 0},
964 {{0, 0}, EV_KEY, BTN_TOOL_PEN, 0}, 1017 {{0, 0}, EV_KEY, BTN_TOOL_PEN, 0},
965 {{0, 0}, EV_SYN, SYN_REPORT, 0}, 1018 {{0, 0}, EV_SYN, SYN_REPORT, 0},
966 }; 1019 };
967 1020
968 dev->ConfigureReadMock(mock_kernel_queue, arraysize(mock_kernel_queue), 0); 1021 dev->ConfigureReadMock(mock_kernel_queue, arraysize(mock_kernel_queue), 0);
969 dev->ReadNow(); 1022 dev->ReadNow();
970 EXPECT_EQ(2u, size()); 1023 EXPECT_EQ(5u, size());
971 1024
972 ui::TouchEventParams event = dispatched_event(0); 1025 ui::MouseMoveEventParams move_event = dispatched_mouse_move_event(0);
973 EXPECT_EQ(ui::ET_TOUCH_PRESSED, event.type); 1026 EXPECT_EQ(9170, move_event.location.x());
974 EXPECT_EQ(9170, event.location.x()); 1027 EXPECT_EQ(3658, move_event.location.y());
975 EXPECT_EQ(3658, event.location.y()); 1028 EXPECT_EQ(EventPointerType::POINTER_TYPE_PEN,
976 EXPECT_EQ(60.f / 1024, event.pointer_details.force); 1029 move_event.pointer_details.pointer_type);
977 1030
978 event = dispatched_event(1); 1031 ui::MouseButtonEventParams button_event = dispatched_mouse_button_event(1);
979 EXPECT_EQ(ui::ET_TOUCH_RELEASED, event.type); 1032 EXPECT_EQ(9170, button_event.location.x());
980 EXPECT_EQ(9173, event.location.x()); 1033 EXPECT_EQ(3658, button_event.location.y());
981 EXPECT_EQ(3906, event.location.y()); 1034 EXPECT_EQ(EventPointerType::POINTER_TYPE_PEN,
982 EXPECT_EQ(0.f / 1024, event.pointer_details.force); 1035 button_event.pointer_details.pointer_type);
1036 EXPECT_EQ(60.f / 1024, button_event.pointer_details.force);
1037 EXPECT_EQ(button_event.button, static_cast<unsigned int>(BTN_LEFT));
1038 EXPECT_EQ(button_event.down, true);
1039
1040 move_event = dispatched_mouse_move_event(2);
1041 EXPECT_EQ(9170, move_event.location.x());
1042 EXPECT_EQ(3658, move_event.location.y());
1043 EXPECT_EQ(EventPointerType::POINTER_TYPE_PEN,
1044 move_event.pointer_details.pointer_type);
1045 EXPECT_EQ(60.f / 1024, move_event.pointer_details.force);
1046
1047 button_event = dispatched_mouse_button_event(3);
1048 EXPECT_EQ(9173, button_event.location.x());
1049 EXPECT_EQ(3906, button_event.location.y());
1050 EXPECT_EQ(EventPointerType::POINTER_TYPE_PEN,
1051 button_event.pointer_details.pointer_type);
1052 EXPECT_EQ(button_event.button, static_cast<unsigned int>(BTN_LEFT));
1053 EXPECT_EQ(button_event.down, false);
1054
1055 move_event = dispatched_mouse_move_event(4);
1056 EXPECT_EQ(9173, move_event.location.x());
1057 EXPECT_EQ(3906, move_event.location.y());
1058 EXPECT_EQ(EventPointerType::POINTER_TYPE_PEN,
1059 move_event.pointer_details.pointer_type);
983 } 1060 }
984 1061
985 TEST_F(TouchEventConverterEvdevTest, ActiveStylusMotion) { 1062 TEST_F(TouchEventConverterEvdevTest, ActiveStylusMotion) {
986 ui::MockTouchEventConverterEvdev* dev = device(); 1063 ui::MockTouchEventConverterEvdev* dev = device();
987 EventDeviceInfo devinfo; 1064 EventDeviceInfo devinfo;
988 EXPECT_TRUE(CapabilitiesToDeviceInfo(kWilsonBeachActiveStylus, &devinfo)); 1065 EXPECT_TRUE(CapabilitiesToDeviceInfo(kWilsonBeachActiveStylus, &devinfo));
989 dev->Initialize(devinfo); 1066 dev->Initialize(devinfo);
990 1067
991 struct input_event mock_kernel_queue[]{ 1068 struct input_event mock_kernel_queue[]{
992 {{0, 0}, EV_KEY, BTN_TOOL_PEN, 1}, 1069 {{0, 0}, EV_KEY, BTN_TOOL_PEN, 1},
(...skipping 13 matching lines...) Expand all
1006 {{0, 0}, EV_SYN, SYN_REPORT, 0}, 1083 {{0, 0}, EV_SYN, SYN_REPORT, 0},
1007 {{0, 0}, EV_KEY, BTN_TOUCH, 0}, 1084 {{0, 0}, EV_KEY, BTN_TOUCH, 0},
1008 {{0, 0}, EV_ABS, ABS_PRESSURE, 0}, 1085 {{0, 0}, EV_ABS, ABS_PRESSURE, 0},
1009 {{0, 0}, EV_SYN, SYN_REPORT, 0}, 1086 {{0, 0}, EV_SYN, SYN_REPORT, 0},
1010 {{0, 0}, EV_KEY, BTN_TOOL_PEN, 0}, 1087 {{0, 0}, EV_KEY, BTN_TOOL_PEN, 0},
1011 {{0, 0}, EV_SYN, SYN_REPORT, 0}, 1088 {{0, 0}, EV_SYN, SYN_REPORT, 0},
1012 }; 1089 };
1013 1090
1014 dev->ConfigureReadMock(mock_kernel_queue, arraysize(mock_kernel_queue), 0); 1091 dev->ConfigureReadMock(mock_kernel_queue, arraysize(mock_kernel_queue), 0);
1015 dev->ReadNow(); 1092 dev->ReadNow();
1016 EXPECT_EQ(4u, size()); 1093 EXPECT_EQ(7u, size());
1017 1094
1018 ui::TouchEventParams event = dispatched_event(0); 1095 ui::MouseMoveEventParams event = dispatched_mouse_move_event(0);
1019 EXPECT_EQ(ui::ET_TOUCH_PRESSED, event.type); 1096 EXPECT_EQ(8921, event.location.x());
1097 EXPECT_EQ(1072, event.location.y());
1098 EXPECT_EQ(EventPointerType::POINTER_TYPE_PEN,
1099 event.pointer_details.pointer_type);
1100 EXPECT_EQ(0.f / 1024, event.pointer_details.force);
1101
1102 ui::MouseButtonEventParams button_event = dispatched_mouse_button_event(1);
1103 EXPECT_EQ(8921, button_event.location.x());
1104 EXPECT_EQ(1072, button_event.location.y());
1105 EXPECT_EQ(EventPointerType::POINTER_TYPE_PEN,
1106 button_event.pointer_details.pointer_type);
1107 EXPECT_EQ(35.f / 1024, button_event.pointer_details.force);
1108 EXPECT_EQ(button_event.button, static_cast<unsigned int>(BTN_LEFT));
1109 EXPECT_EQ(button_event.down, true);
1110
1111 event = dispatched_mouse_move_event(2);
1020 EXPECT_EQ(8921, event.location.x()); 1112 EXPECT_EQ(8921, event.location.x());
1021 EXPECT_EQ(1072, event.location.y()); 1113 EXPECT_EQ(1072, event.location.y());
1022 EXPECT_EQ(EventPointerType::POINTER_TYPE_PEN, 1114 EXPECT_EQ(EventPointerType::POINTER_TYPE_PEN,
1023 event.pointer_details.pointer_type); 1115 event.pointer_details.pointer_type);
1024 EXPECT_EQ(35.f / 1024, event.pointer_details.force); 1116 EXPECT_EQ(35.f / 1024, event.pointer_details.force);
1025 1117
1026 event = dispatched_event(1); 1118 event = dispatched_mouse_move_event(3);
1027 EXPECT_EQ(ui::ET_TOUCH_MOVED, event.type);
1028 EXPECT_EQ(8934, event.location.x()); 1119 EXPECT_EQ(8934, event.location.x());
1029 EXPECT_EQ(981, event.location.y()); 1120 EXPECT_EQ(981, event.location.y());
1030 EXPECT_EQ(EventPointerType::POINTER_TYPE_PEN, 1121 EXPECT_EQ(EventPointerType::POINTER_TYPE_PEN,
1031 event.pointer_details.pointer_type); 1122 event.pointer_details.pointer_type);
1032 EXPECT_EQ(184.f / 1024, event.pointer_details.force); 1123 EXPECT_EQ(184.f / 1024, event.pointer_details.force);
1033 1124
1034 event = dispatched_event(2); 1125 event = dispatched_mouse_move_event(4);
1035 EXPECT_EQ(ui::ET_TOUCH_MOVED, event.type);
1036 EXPECT_EQ(8930, event.location.x()); 1126 EXPECT_EQ(8930, event.location.x());
1037 EXPECT_EQ(980, event.location.y()); 1127 EXPECT_EQ(980, event.location.y());
1038 EXPECT_EQ(EventPointerType::POINTER_TYPE_PEN, 1128 EXPECT_EQ(EventPointerType::POINTER_TYPE_PEN,
1039 event.pointer_details.pointer_type); 1129 event.pointer_details.pointer_type);
1040 EXPECT_EQ(348.f / 1024, event.pointer_details.force); 1130 EXPECT_EQ(348.f / 1024, event.pointer_details.force);
1041 1131
1042 event = dispatched_event(3); 1132 button_event = dispatched_mouse_button_event(5);
1043 EXPECT_EQ(ui::ET_TOUCH_RELEASED, event.type); 1133 EXPECT_EQ(8930, button_event.location.x());
1134 EXPECT_EQ(980, button_event.location.y());
1135 EXPECT_EQ(EventPointerType::POINTER_TYPE_PEN,
1136 button_event.pointer_details.pointer_type);
1137 EXPECT_EQ(button_event.button, static_cast<unsigned int>(BTN_LEFT));
1138 EXPECT_EQ(button_event.down, false);
1139
1140 event = dispatched_mouse_move_event(6);
1044 EXPECT_EQ(8930, event.location.x()); 1141 EXPECT_EQ(8930, event.location.x());
1045 EXPECT_EQ(980, event.location.y()); 1142 EXPECT_EQ(980, event.location.y());
1046 EXPECT_EQ(EventPointerType::POINTER_TYPE_PEN, 1143 EXPECT_EQ(EventPointerType::POINTER_TYPE_PEN,
1047 event.pointer_details.pointer_type); 1144 event.pointer_details.pointer_type);
1048 EXPECT_EQ(0.f / 1024, event.pointer_details.force); 1145 EXPECT_EQ(0.f / 1024, event.pointer_details.force);
1049 } 1146 }
1050 1147
1051 } // namespace ui 1148 } // namespace ui
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698