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 |