| OLD | NEW |
| 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 591 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 602 EXPECT_EQ(1u, size()); | 602 EXPECT_EQ(1u, size()); |
| 603 | 603 |
| 604 ui::TouchEventParams ev1 = dispatched_touch_event(0); | 604 ui::TouchEventParams ev1 = dispatched_touch_event(0); |
| 605 EXPECT_EQ(ET_TOUCH_PRESSED, ev1.type); | 605 EXPECT_EQ(ET_TOUCH_PRESSED, ev1.type); |
| 606 EXPECT_EQ(0, ev1.slot); | 606 EXPECT_EQ(0, ev1.slot); |
| 607 | 607 |
| 608 DestroyDevice(); | 608 DestroyDevice(); |
| 609 EXPECT_EQ(2u, size()); | 609 EXPECT_EQ(2u, size()); |
| 610 | 610 |
| 611 ui::TouchEventParams ev2 = dispatched_touch_event(1); | 611 ui::TouchEventParams ev2 = dispatched_touch_event(1); |
| 612 EXPECT_EQ(ET_TOUCH_RELEASED, ev2.type); | 612 EXPECT_EQ(ET_TOUCH_CANCELLED, ev2.type); |
| 613 EXPECT_EQ(0, ev2.slot); | 613 EXPECT_EQ(0, ev2.slot); |
| 614 } | 614 } |
| 615 | 615 |
| 616 TEST_F(TouchEventConverterEvdevTest, ShouldRemoveContactsWhenDisabled) { | 616 TEST_F(TouchEventConverterEvdevTest, ShouldRemoveContactsWhenDisabled) { |
| 617 ui::MockTouchEventConverterEvdev* dev = device(); | 617 ui::MockTouchEventConverterEvdev* dev = device(); |
| 618 | 618 |
| 619 EventDeviceInfo devinfo; | 619 EventDeviceInfo devinfo; |
| 620 EXPECT_TRUE(CapabilitiesToDeviceInfo(kLinkTouchscreen, &devinfo)); | 620 EXPECT_TRUE(CapabilitiesToDeviceInfo(kLinkTouchscreen, &devinfo)); |
| 621 | 621 |
| 622 // Captured from Chromebook Pixel (Link). | 622 // Captured from Chromebook Pixel (Link). |
| (...skipping 24 matching lines...) Expand all Loading... |
| 647 EXPECT_EQ(ET_TOUCH_PRESSED, ev1.type); | 647 EXPECT_EQ(ET_TOUCH_PRESSED, ev1.type); |
| 648 EXPECT_EQ(0, ev1.slot); | 648 EXPECT_EQ(0, ev1.slot); |
| 649 EXPECT_EQ(1003, ev1.location.x()); | 649 EXPECT_EQ(1003, ev1.location.x()); |
| 650 EXPECT_EQ(749, ev1.location.y()); | 650 EXPECT_EQ(749, ev1.location.y()); |
| 651 | 651 |
| 652 // Disable the device (should release the contact). | 652 // Disable the device (should release the contact). |
| 653 dev->SetEnabled(false); | 653 dev->SetEnabled(false); |
| 654 EXPECT_EQ(2u, size()); | 654 EXPECT_EQ(2u, size()); |
| 655 | 655 |
| 656 ui::TouchEventParams ev2 = dispatched_touch_event(1); | 656 ui::TouchEventParams ev2 = dispatched_touch_event(1); |
| 657 EXPECT_EQ(ET_TOUCH_RELEASED, ev2.type); | 657 EXPECT_EQ(ET_TOUCH_CANCELLED, ev2.type); |
| 658 EXPECT_EQ(0, ev2.slot); | 658 EXPECT_EQ(0, ev2.slot); |
| 659 | 659 |
| 660 // Set up the previous contact in slot 0. | 660 // Set up the previous contact in slot 0. |
| 661 devinfo.SetAbsMtSlot(ABS_MT_TRACKING_ID, 0, 0); | 661 devinfo.SetAbsMtSlot(ABS_MT_TRACKING_ID, 0, 0); |
| 662 devinfo.SetAbsMtSlot(ABS_MT_TOUCH_MAJOR, 0, 116); | 662 devinfo.SetAbsMtSlot(ABS_MT_TOUCH_MAJOR, 0, 116); |
| 663 devinfo.SetAbsMtSlot(ABS_MT_POSITION_X, 0, 1003); | 663 devinfo.SetAbsMtSlot(ABS_MT_POSITION_X, 0, 1003); |
| 664 devinfo.SetAbsMtSlot(ABS_MT_POSITION_Y, 0, 749); | 664 devinfo.SetAbsMtSlot(ABS_MT_POSITION_Y, 0, 749); |
| 665 devinfo.SetAbsMtSlot(ABS_MT_PRESSURE, 0, 50); | 665 devinfo.SetAbsMtSlot(ABS_MT_PRESSURE, 0, 50); |
| 666 | 666 |
| 667 // Re-enable the device (should re-apply the contact). | 667 // Re-enable the device (touch is cancelled, should not come back) |
| 668 dev->SimulateReinitialize(devinfo); | 668 dev->SimulateReinitialize(devinfo); |
| 669 dev->SetEnabled(true); | 669 dev->SetEnabled(true); |
| 670 EXPECT_EQ(3u, size()); | 670 EXPECT_EQ(2u, size()); |
| 671 | 671 |
| 672 ui::TouchEventParams ev3 = dispatched_touch_event(2); | 672 // Send updates to touch (touch is cancelled, should not come back) |
| 673 EXPECT_EQ(ET_TOUCH_PRESSED, ev3.type); | 673 dev->ConfigureReadMock(mock_kernel_queue_press, |
| 674 EXPECT_EQ(0, ev3.slot); | 674 arraysize(mock_kernel_queue_press), 0); |
| 675 EXPECT_EQ(1003, ev3.location.x()); | 675 dev->ReadNow(); |
| 676 EXPECT_EQ(749, ev3.location.y()); | 676 EXPECT_EQ(2u, size()); |
| 677 } | 677 } |
| 678 | 678 |
| 679 // crbug.com/477695 | 679 // crbug.com/477695 |
| 680 TEST_F(TouchEventConverterEvdevTest, ShouldUseLeftButtonIfNoTouchButton) { | 680 TEST_F(TouchEventConverterEvdevTest, ShouldUseLeftButtonIfNoTouchButton) { |
| 681 ui::MockTouchEventConverterEvdev* dev = device(); | 681 ui::MockTouchEventConverterEvdev* dev = device(); |
| 682 | 682 |
| 683 InitEloTouchscreen(dev); | 683 InitEloTouchscreen(dev); |
| 684 | 684 |
| 685 // Captured from Elo TouchSystems 2700. | 685 // Captured from Elo TouchSystems 2700. |
| 686 timeval time; | 686 timeval time; |
| (...skipping 453 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1140 | 1140 |
| 1141 event = dispatched_mouse_move_event(6); | 1141 event = dispatched_mouse_move_event(6); |
| 1142 EXPECT_EQ(8930, event.location.x()); | 1142 EXPECT_EQ(8930, event.location.x()); |
| 1143 EXPECT_EQ(980, event.location.y()); | 1143 EXPECT_EQ(980, event.location.y()); |
| 1144 EXPECT_EQ(EventPointerType::POINTER_TYPE_PEN, | 1144 EXPECT_EQ(EventPointerType::POINTER_TYPE_PEN, |
| 1145 event.pointer_details.pointer_type); | 1145 event.pointer_details.pointer_type); |
| 1146 EXPECT_EQ(0.f / 1024, event.pointer_details.force); | 1146 EXPECT_EQ(0.f / 1024, event.pointer_details.force); |
| 1147 } | 1147 } |
| 1148 | 1148 |
| 1149 } // namespace ui | 1149 } // namespace ui |
| OLD | NEW |