| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/event.h" | 5 #include "ui/events/event.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 | 9 |
| 10 #include <memory> | 10 #include <memory> |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 67 // Check if expected Unicode character was returned for a key combination | 67 // Check if expected Unicode character was returned for a key combination |
| 68 // contains Control. | 68 // contains Control. |
| 69 // e.g. Control+Shift+2 produces U+200C on "Persian" keyboard. | 69 // e.g. Control+Shift+2 produces U+200C on "Persian" keyboard. |
| 70 // http://crbug.com/582453 | 70 // http://crbug.com/582453 |
| 71 KeyEvent keyev5(0x200C, VKEY_UNKNOWN, EF_CONTROL_DOWN | EF_SHIFT_DOWN); | 71 KeyEvent keyev5(0x200C, VKEY_UNKNOWN, EF_CONTROL_DOWN | EF_SHIFT_DOWN); |
| 72 EXPECT_EQ(0x200C, keyev5.GetCharacter()); | 72 EXPECT_EQ(0x200C, keyev5.GetCharacter()); |
| 73 } | 73 } |
| 74 | 74 |
| 75 TEST(EventTest, ClickCount) { | 75 TEST(EventTest, ClickCount) { |
| 76 const gfx::Point origin(0, 0); | 76 const gfx::Point origin(0, 0); |
| 77 MouseEvent mouseev(ET_MOUSE_PRESSED, origin, origin, EventTimeForNow(), 0, 0); | 77 MouseEvent mouseev( |
| 78 ET_MOUSE_PRESSED, origin, origin, EventTimeForNow(), 0, 0, |
| 79 ui::PointerDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)); |
| 78 for (int i = 1; i <=3 ; ++i) { | 80 for (int i = 1; i <=3 ; ++i) { |
| 79 mouseev.SetClickCount(i); | 81 mouseev.SetClickCount(i); |
| 80 EXPECT_EQ(i, mouseev.GetClickCount()); | 82 EXPECT_EQ(i, mouseev.GetClickCount()); |
| 81 } | 83 } |
| 82 } | 84 } |
| 83 | 85 |
| 84 TEST(EventTest, RepeatedClick) { | 86 TEST(EventTest, RepeatedClick) { |
| 85 const gfx::Point origin(0, 0); | 87 const gfx::Point origin(0, 0); |
| 86 MouseEvent mouse_ev1(ET_MOUSE_PRESSED, origin, origin, EventTimeForNow(), 0, | 88 MouseEvent mouse_ev1( |
| 87 0); | 89 ET_MOUSE_PRESSED, origin, origin, EventTimeForNow(), 0, 0, |
| 88 MouseEvent mouse_ev2(ET_MOUSE_PRESSED, origin, origin, EventTimeForNow(), 0, | 90 ui::PointerDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)); |
| 89 0); | 91 MouseEvent mouse_ev2( |
| 92 ET_MOUSE_PRESSED, origin, origin, EventTimeForNow(), 0, 0, |
| 93 ui::PointerDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)); |
| 90 LocatedEventTestApi test_ev1(&mouse_ev1); | 94 LocatedEventTestApi test_ev1(&mouse_ev1); |
| 91 LocatedEventTestApi test_ev2(&mouse_ev2); | 95 LocatedEventTestApi test_ev2(&mouse_ev2); |
| 92 | 96 |
| 93 base::TimeTicks start = base::TimeTicks(); | 97 base::TimeTicks start = base::TimeTicks(); |
| 94 base::TimeTicks soon = start + base::TimeDelta::FromMilliseconds(1); | 98 base::TimeTicks soon = start + base::TimeDelta::FromMilliseconds(1); |
| 95 base::TimeTicks later = start + base::TimeDelta::FromMilliseconds(1000); | 99 base::TimeTicks later = start + base::TimeDelta::FromMilliseconds(1000); |
| 96 | 100 |
| 97 // Same event. | 101 // Same event. |
| 98 test_ev1.set_location(gfx::Point(0, 0)); | 102 test_ev1.set_location(gfx::Point(0, 0)); |
| 99 test_ev2.set_location(gfx::Point(1, 0)); | 103 test_ev2.set_location(gfx::Point(1, 0)); |
| (...skipping 29 matching lines...) Expand all Loading... |
| 129 // double click if a release event was seen for the previous click. This | 133 // double click if a release event was seen for the previous click. This |
| 130 // prevents the same PRESSED event from being processed twice: | 134 // prevents the same PRESSED event from being processed twice: |
| 131 // http://crbug.com/389162 | 135 // http://crbug.com/389162 |
| 132 TEST(EventTest, DoubleClickRequiresRelease) { | 136 TEST(EventTest, DoubleClickRequiresRelease) { |
| 133 const gfx::Point origin1(0, 0); | 137 const gfx::Point origin1(0, 0); |
| 134 const gfx::Point origin2(100, 0); | 138 const gfx::Point origin2(100, 0); |
| 135 std::unique_ptr<MouseEvent> ev; | 139 std::unique_ptr<MouseEvent> ev; |
| 136 base::TimeTicks start = base::TimeTicks(); | 140 base::TimeTicks start = base::TimeTicks(); |
| 137 base::TimeTicks soon = start + base::TimeDelta::FromMilliseconds(1); | 141 base::TimeTicks soon = start + base::TimeDelta::FromMilliseconds(1); |
| 138 | 142 |
| 139 ev.reset(new MouseEvent(ET_MOUSE_PRESSED, origin1, origin1, EventTimeForNow(), | 143 ev.reset(new MouseEvent( |
| 140 0, 0)); | 144 ET_MOUSE_PRESSED, origin1, origin1, EventTimeForNow(), 0, 0, |
| 145 ui::PointerDetails(ui::EventPointerType::POINTER_TYPE_MOUSE))); |
| 141 ev->set_time_stamp(start); | 146 ev->set_time_stamp(start); |
| 142 EXPECT_EQ(1, MouseEvent::GetRepeatCount(*ev)); | 147 EXPECT_EQ(1, MouseEvent::GetRepeatCount(*ev)); |
| 143 ev.reset(new MouseEvent(ET_MOUSE_PRESSED, origin1, origin1, EventTimeForNow(), | 148 ev.reset(new MouseEvent( |
| 144 0, 0)); | 149 ET_MOUSE_PRESSED, origin1, origin1, EventTimeForNow(), 0, 0, |
| 150 ui::PointerDetails(ui::EventPointerType::POINTER_TYPE_MOUSE))); |
| 145 ev->set_time_stamp(start); | 151 ev->set_time_stamp(start); |
| 146 EXPECT_EQ(1, MouseEvent::GetRepeatCount(*ev)); | 152 EXPECT_EQ(1, MouseEvent::GetRepeatCount(*ev)); |
| 147 | 153 |
| 148 ev.reset(new MouseEvent(ET_MOUSE_PRESSED, origin2, origin2, EventTimeForNow(), | 154 ev.reset(new MouseEvent( |
| 149 0, 0)); | 155 ET_MOUSE_PRESSED, origin2, origin2, EventTimeForNow(), 0, 0, |
| 156 ui::PointerDetails(ui::EventPointerType::POINTER_TYPE_MOUSE))); |
| 150 ev->set_time_stamp(start); | 157 ev->set_time_stamp(start); |
| 151 EXPECT_EQ(1, MouseEvent::GetRepeatCount(*ev)); | 158 EXPECT_EQ(1, MouseEvent::GetRepeatCount(*ev)); |
| 152 ev.reset(new MouseEvent(ET_MOUSE_RELEASED, origin2, origin2, | 159 ev.reset(new MouseEvent( |
| 153 EventTimeForNow(), 0, 0)); | 160 ET_MOUSE_RELEASED, origin2, origin2, EventTimeForNow(), 0, 0, |
| 161 ui::PointerDetails(ui::EventPointerType::POINTER_TYPE_MOUSE))); |
| 154 ev->set_time_stamp(start); | 162 ev->set_time_stamp(start); |
| 155 EXPECT_EQ(1, MouseEvent::GetRepeatCount(*ev)); | 163 EXPECT_EQ(1, MouseEvent::GetRepeatCount(*ev)); |
| 156 ev.reset(new MouseEvent(ET_MOUSE_PRESSED, origin2, origin2, EventTimeForNow(), | 164 ev.reset(new MouseEvent( |
| 157 0, 0)); | 165 ET_MOUSE_PRESSED, origin2, origin2, EventTimeForNow(), 0, 0, |
| 166 ui::PointerDetails(ui::EventPointerType::POINTER_TYPE_MOUSE))); |
| 158 ev->set_time_stamp(soon); | 167 ev->set_time_stamp(soon); |
| 159 EXPECT_EQ(2, MouseEvent::GetRepeatCount(*ev)); | 168 EXPECT_EQ(2, MouseEvent::GetRepeatCount(*ev)); |
| 160 ev.reset(new MouseEvent(ET_MOUSE_RELEASED, origin2, origin2, | 169 ev.reset(new MouseEvent( |
| 161 EventTimeForNow(), 0, 0)); | 170 ET_MOUSE_RELEASED, origin2, origin2, EventTimeForNow(), 0, 0, |
| 171 ui::PointerDetails(ui::EventPointerType::POINTER_TYPE_MOUSE))); |
| 162 ev->set_time_stamp(soon); | 172 ev->set_time_stamp(soon); |
| 163 EXPECT_EQ(2, MouseEvent::GetRepeatCount(*ev)); | 173 EXPECT_EQ(2, MouseEvent::GetRepeatCount(*ev)); |
| 164 MouseEvent::ResetLastClickForTest(); | 174 MouseEvent::ResetLastClickForTest(); |
| 165 } | 175 } |
| 166 | 176 |
| 167 // Tests that clicking right and then left clicking does not generate a double | 177 // Tests that clicking right and then left clicking does not generate a double |
| 168 // click. | 178 // click. |
| 169 TEST(EventTest, SingleClickRightLeft) { | 179 TEST(EventTest, SingleClickRightLeft) { |
| 170 const gfx::Point origin(0, 0); | 180 const gfx::Point origin(0, 0); |
| 171 std::unique_ptr<MouseEvent> ev; | 181 std::unique_ptr<MouseEvent> ev; |
| 172 base::TimeTicks start = base::TimeTicks(); | 182 base::TimeTicks start = base::TimeTicks(); |
| 173 base::TimeTicks soon = start + base::TimeDelta::FromMilliseconds(1); | 183 base::TimeTicks soon = start + base::TimeDelta::FromMilliseconds(1); |
| 174 | 184 |
| 175 ev.reset(new MouseEvent(ET_MOUSE_PRESSED, origin, origin, EventTimeForNow(), | 185 ev.reset(new MouseEvent( |
| 176 ui::EF_RIGHT_MOUSE_BUTTON, | 186 ET_MOUSE_PRESSED, origin, origin, EventTimeForNow(), |
| 177 ui::EF_RIGHT_MOUSE_BUTTON)); | 187 ui::EF_RIGHT_MOUSE_BUTTON, ui::EF_RIGHT_MOUSE_BUTTON, |
| 188 ui::PointerDetails(ui::EventPointerType::POINTER_TYPE_MOUSE))); |
| 178 ev->set_time_stamp(start); | 189 ev->set_time_stamp(start); |
| 179 EXPECT_EQ(1, MouseEvent::GetRepeatCount(*ev)); | 190 EXPECT_EQ(1, MouseEvent::GetRepeatCount(*ev)); |
| 180 ev.reset(new MouseEvent(ET_MOUSE_PRESSED, origin, origin, EventTimeForNow(), | 191 ev.reset(new MouseEvent( |
| 181 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON)); | 192 ET_MOUSE_PRESSED, origin, origin, EventTimeForNow(), |
| 193 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON, |
| 194 ui::PointerDetails(ui::EventPointerType::POINTER_TYPE_MOUSE))); |
| 182 ev->set_time_stamp(start); | 195 ev->set_time_stamp(start); |
| 183 EXPECT_EQ(1, MouseEvent::GetRepeatCount(*ev)); | 196 EXPECT_EQ(1, MouseEvent::GetRepeatCount(*ev)); |
| 184 ev.reset(new MouseEvent(ET_MOUSE_RELEASED, origin, origin, EventTimeForNow(), | 197 ev.reset(new MouseEvent( |
| 185 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON)); | 198 ET_MOUSE_RELEASED, origin, origin, EventTimeForNow(), |
| 199 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON, |
| 200 ui::PointerDetails(ui::EventPointerType::POINTER_TYPE_MOUSE))); |
| 186 ev->set_time_stamp(start); | 201 ev->set_time_stamp(start); |
| 187 EXPECT_EQ(1, MouseEvent::GetRepeatCount(*ev)); | 202 EXPECT_EQ(1, MouseEvent::GetRepeatCount(*ev)); |
| 188 ev.reset(new MouseEvent(ET_MOUSE_PRESSED, origin, origin, EventTimeForNow(), | 203 ev.reset(new MouseEvent( |
| 189 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON)); | 204 ET_MOUSE_PRESSED, origin, origin, EventTimeForNow(), |
| 205 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON, |
| 206 ui::PointerDetails(ui::EventPointerType::POINTER_TYPE_MOUSE))); |
| 190 ev->set_time_stamp(soon); | 207 ev->set_time_stamp(soon); |
| 191 EXPECT_EQ(2, MouseEvent::GetRepeatCount(*ev)); | 208 EXPECT_EQ(2, MouseEvent::GetRepeatCount(*ev)); |
| 192 MouseEvent::ResetLastClickForTest(); | 209 MouseEvent::ResetLastClickForTest(); |
| 193 } | 210 } |
| 194 | 211 |
| 195 TEST(EventTest, KeyEvent) { | 212 TEST(EventTest, KeyEvent) { |
| 196 static const struct { | 213 static const struct { |
| 197 KeyboardCode key_code; | 214 KeyboardCode key_code; |
| 198 int flags; | 215 int flags; |
| 199 uint16_t character; | 216 uint16_t character; |
| (...skipping 485 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 685 EXPECT_EQ(15.0f, touch_event_with_details.pointer_details().force); | 702 EXPECT_EQ(15.0f, touch_event_with_details.pointer_details().force); |
| 686 EXPECT_EQ(0.0f, touch_event_with_details.pointer_details().tilt_x); | 703 EXPECT_EQ(0.0f, touch_event_with_details.pointer_details().tilt_x); |
| 687 EXPECT_EQ(0.0f, touch_event_with_details.pointer_details().tilt_y); | 704 EXPECT_EQ(0.0f, touch_event_with_details.pointer_details().tilt_y); |
| 688 | 705 |
| 689 ui::TouchEvent touch_event_copy(touch_event_with_details); | 706 ui::TouchEvent touch_event_copy(touch_event_with_details); |
| 690 EXPECT_EQ(touch_event_with_details.pointer_details(), | 707 EXPECT_EQ(touch_event_with_details.pointer_details(), |
| 691 touch_event_copy.pointer_details()); | 708 touch_event_copy.pointer_details()); |
| 692 } | 709 } |
| 693 | 710 |
| 694 TEST(EventTest, PointerDetailsMouse) { | 711 TEST(EventTest, PointerDetailsMouse) { |
| 695 ui::MouseEvent mouse_event(ET_MOUSE_PRESSED, gfx::Point(0, 0), | 712 ui::MouseEvent mouse_event( |
| 696 gfx::Point(0, 0), ui::EventTimeForNow(), 0, 0); | 713 ET_MOUSE_PRESSED, gfx::Point(0, 0), gfx::Point(0, 0), |
| 714 ui::EventTimeForNow(), 0, 0, |
| 715 ui::PointerDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)); |
| 697 | 716 |
| 698 EXPECT_EQ(EventPointerType::POINTER_TYPE_MOUSE, | 717 EXPECT_EQ(EventPointerType::POINTER_TYPE_MOUSE, |
| 699 mouse_event.pointer_details().pointer_type); | 718 mouse_event.pointer_details().pointer_type); |
| 700 EXPECT_EQ(0.0f, mouse_event.pointer_details().radius_x); | 719 EXPECT_EQ(0.0f, mouse_event.pointer_details().radius_x); |
| 701 EXPECT_EQ(0.0f, mouse_event.pointer_details().radius_y); | 720 EXPECT_EQ(0.0f, mouse_event.pointer_details().radius_y); |
| 702 EXPECT_TRUE(std::isnan(mouse_event.pointer_details().force)); | 721 EXPECT_TRUE(std::isnan(mouse_event.pointer_details().force)); |
| 703 EXPECT_EQ(0.0f, mouse_event.pointer_details().tilt_x); | 722 EXPECT_EQ(0.0f, mouse_event.pointer_details().tilt_x); |
| 704 EXPECT_EQ(0.0f, mouse_event.pointer_details().tilt_y); | 723 EXPECT_EQ(0.0f, mouse_event.pointer_details().tilt_y); |
| 705 | 724 |
| 706 ui::MouseEvent mouse_event_copy(mouse_event); | 725 ui::MouseEvent mouse_event_copy(mouse_event); |
| 707 EXPECT_EQ(mouse_event.pointer_details(), mouse_event_copy.pointer_details()); | 726 EXPECT_EQ(mouse_event.pointer_details(), mouse_event_copy.pointer_details()); |
| 708 } | 727 } |
| 709 | 728 |
| 710 TEST(EventTest, PointerDetailsStylus) { | 729 TEST(EventTest, PointerDetailsStylus) { |
| 711 ui::MouseEvent stylus_event(ET_MOUSE_PRESSED, gfx::Point(0, 0), | 730 ui::MouseEvent stylus_event( |
| 712 gfx::Point(0, 0), ui::EventTimeForNow(), 0, 0); | 731 ET_MOUSE_PRESSED, gfx::Point(0, 0), gfx::Point(0, 0), |
| 732 ui::EventTimeForNow(), 0, 0, |
| 733 ui::PointerDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)); |
| 713 ui::PointerDetails pointer_details(EventPointerType::POINTER_TYPE_PEN, | 734 ui::PointerDetails pointer_details(EventPointerType::POINTER_TYPE_PEN, |
| 714 /* pointer_id*/ 0, | 735 /* pointer_id*/ 0, |
| 715 /* radius_x */ 0.0f, | 736 /* radius_x */ 0.0f, |
| 716 /* radius_y */ 0.0f, | 737 /* radius_y */ 0.0f, |
| 717 /* force */ 21.0f, | 738 /* force */ 21.0f, |
| 718 /* tilt_x */ 45.0f, | 739 /* tilt_x */ 45.0f, |
| 719 /* tilt_y */ -45.0f, | 740 /* tilt_y */ -45.0f, |
| 720 /* tangential_pressure */ 0.7f, | 741 /* tangential_pressure */ 0.7f, |
| 721 /* twist */ 196); | 742 /* twist */ 196); |
| 722 | 743 |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 778 const gfx::Point point; | 799 const gfx::Point point; |
| 779 const base::TimeTicks time; | 800 const base::TimeTicks time; |
| 780 | 801 |
| 781 // Common mouse events can be converted. | 802 // Common mouse events can be converted. |
| 782 const EventType mouse_allowed[] = { | 803 const EventType mouse_allowed[] = { |
| 783 ET_MOUSE_PRESSED, ET_MOUSE_DRAGGED, ET_MOUSE_MOVED, | 804 ET_MOUSE_PRESSED, ET_MOUSE_DRAGGED, ET_MOUSE_MOVED, |
| 784 ET_MOUSE_ENTERED, ET_MOUSE_EXITED, ET_MOUSE_RELEASED, | 805 ET_MOUSE_ENTERED, ET_MOUSE_EXITED, ET_MOUSE_RELEASED, |
| 785 ET_MOUSE_CAPTURE_CHANGED, | 806 ET_MOUSE_CAPTURE_CHANGED, |
| 786 }; | 807 }; |
| 787 for (size_t i = 0; i < arraysize(mouse_allowed); i++) { | 808 for (size_t i = 0; i < arraysize(mouse_allowed); i++) { |
| 788 MouseEvent event(mouse_allowed[i], point, point, time, 0, 0); | 809 MouseEvent event( |
| 810 mouse_allowed[i], point, point, time, 0, 0, |
| 811 ui::PointerDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)); |
| 789 EXPECT_TRUE(PointerEvent::CanConvertFrom(event)); | 812 EXPECT_TRUE(PointerEvent::CanConvertFrom(event)); |
| 790 } | 813 } |
| 791 // Mouse wheel events can be converted. | 814 // Mouse wheel events can be converted. |
| 792 MouseWheelEvent event(gfx::Vector2d(), point, point, time, 0, 0); | 815 MouseWheelEvent event(gfx::Vector2d(), point, point, time, 0, 0); |
| 793 EXPECT_TRUE(PointerEvent::CanConvertFrom(event)); | 816 EXPECT_TRUE(PointerEvent::CanConvertFrom(event)); |
| 794 | 817 |
| 795 // Common touch events can be converted. | 818 // Common touch events can be converted. |
| 796 const EventType touch_allowed[] = { | 819 const EventType touch_allowed[] = { |
| 797 ET_TOUCH_PRESSED, | 820 ET_TOUCH_PRESSED, |
| 798 ET_TOUCH_MOVED, | 821 ET_TOUCH_MOVED, |
| (...skipping 23 matching lines...) Expand all Loading... |
| 822 {ui::ET_MOUSE_RELEASED, ui::ET_POINTER_UP}, | 845 {ui::ET_MOUSE_RELEASED, ui::ET_POINTER_UP}, |
| 823 }; | 846 }; |
| 824 const ui::EventType kTouchTypeMap[][2] = { | 847 const ui::EventType kTouchTypeMap[][2] = { |
| 825 {ui::ET_TOUCH_PRESSED, ui::ET_POINTER_DOWN}, | 848 {ui::ET_TOUCH_PRESSED, ui::ET_POINTER_DOWN}, |
| 826 {ui::ET_TOUCH_MOVED, ui::ET_POINTER_MOVED}, | 849 {ui::ET_TOUCH_MOVED, ui::ET_POINTER_MOVED}, |
| 827 {ui::ET_TOUCH_RELEASED, ui::ET_POINTER_UP}, | 850 {ui::ET_TOUCH_RELEASED, ui::ET_POINTER_UP}, |
| 828 {ui::ET_TOUCH_CANCELLED, ui::ET_POINTER_CANCELLED}, | 851 {ui::ET_TOUCH_CANCELLED, ui::ET_POINTER_CANCELLED}, |
| 829 }; | 852 }; |
| 830 | 853 |
| 831 for (size_t i = 0; i < arraysize(kMouseTypeMap); i++) { | 854 for (size_t i = 0; i < arraysize(kMouseTypeMap); i++) { |
| 832 ui::MouseEvent mouse_event(kMouseTypeMap[i][0], gfx::Point(0, 0), | 855 ui::MouseEvent mouse_event( |
| 833 gfx::Point(0, 0), base::TimeTicks(), 0, 0); | 856 kMouseTypeMap[i][0], gfx::Point(0, 0), gfx::Point(0, 0), |
| 857 base::TimeTicks(), 0, 0, |
| 858 ui::PointerDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)); |
| 834 ui::PointerEvent pointer_event(mouse_event); | 859 ui::PointerEvent pointer_event(mouse_event); |
| 835 EXPECT_EQ(kMouseTypeMap[i][1], pointer_event.type()); | 860 EXPECT_EQ(kMouseTypeMap[i][1], pointer_event.type()); |
| 836 EXPECT_FALSE(pointer_event.IsMouseEvent()); | 861 EXPECT_FALSE(pointer_event.IsMouseEvent()); |
| 837 EXPECT_FALSE(pointer_event.IsTouchEvent()); | 862 EXPECT_FALSE(pointer_event.IsTouchEvent()); |
| 838 EXPECT_TRUE(pointer_event.IsPointerEvent()); | 863 EXPECT_TRUE(pointer_event.IsPointerEvent()); |
| 839 } | 864 } |
| 840 | 865 |
| 841 for (size_t i = 0; i < arraysize(kTouchTypeMap); i++) { | 866 for (size_t i = 0; i < arraysize(kTouchTypeMap); i++) { |
| 842 ui::TouchEvent touch_event( | 867 ui::TouchEvent touch_event( |
| 843 kTouchTypeMap[i][0], gfx::Point(0, 0), base::TimeTicks(), | 868 kTouchTypeMap[i][0], gfx::Point(0, 0), base::TimeTicks(), |
| 844 PointerDetails(ui::EventPointerType::POINTER_TYPE_TOUCH, 0)); | 869 PointerDetails(ui::EventPointerType::POINTER_TYPE_TOUCH, 0)); |
| 845 ui::PointerEvent pointer_event(touch_event); | 870 ui::PointerEvent pointer_event(touch_event); |
| 846 EXPECT_EQ(kTouchTypeMap[i][1], pointer_event.type()); | 871 EXPECT_EQ(kTouchTypeMap[i][1], pointer_event.type()); |
| 847 EXPECT_FALSE(pointer_event.IsMouseEvent()); | 872 EXPECT_FALSE(pointer_event.IsMouseEvent()); |
| 848 EXPECT_FALSE(pointer_event.IsTouchEvent()); | 873 EXPECT_FALSE(pointer_event.IsTouchEvent()); |
| 849 EXPECT_TRUE(pointer_event.IsPointerEvent()); | 874 EXPECT_TRUE(pointer_event.IsPointerEvent()); |
| 850 } | 875 } |
| 851 } | 876 } |
| 852 | 877 |
| 853 TEST(EventTest, PointerEventId) { | 878 TEST(EventTest, PointerEventId) { |
| 854 { | 879 { |
| 855 ui::MouseEvent mouse_event(ui::ET_MOUSE_PRESSED, gfx::Point(0, 0), | 880 ui::MouseEvent mouse_event( |
| 856 gfx::Point(0, 0), base::TimeTicks(), 0, 0); | 881 ui::ET_MOUSE_PRESSED, gfx::Point(0, 0), gfx::Point(0, 0), |
| 882 base::TimeTicks(), 0, 0, |
| 883 ui::PointerDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)); |
| 857 ui::PointerEvent pointer_event(mouse_event); | 884 ui::PointerEvent pointer_event(mouse_event); |
| 858 EXPECT_EQ(pointer_event.pointer_details().id, | 885 EXPECT_EQ(pointer_event.pointer_details().id, |
| 859 ui::PointerEvent::kMousePointerId); | 886 ui::PointerEvent::kMousePointerId); |
| 860 } | 887 } |
| 861 | 888 |
| 862 for (int touch_id = 0; touch_id < 8; touch_id++) { | 889 for (int touch_id = 0; touch_id < 8; touch_id++) { |
| 863 ui::TouchEvent touch_event( | 890 ui::TouchEvent touch_event( |
| 864 ui::ET_TOUCH_PRESSED, gfx::Point(0, 0), base::TimeTicks(), | 891 ui::ET_TOUCH_PRESSED, gfx::Point(0, 0), base::TimeTicks(), |
| 865 PointerDetails(ui::EventPointerType::POINTER_TYPE_TOUCH, touch_id)); | 892 PointerDetails(ui::EventPointerType::POINTER_TYPE_TOUCH, touch_id)); |
| 866 ui::PointerEvent pointer_event(touch_event); | 893 ui::PointerEvent pointer_event(touch_event); |
| (...skipping 15 matching lines...) Expand all Loading... |
| 882 ui::PointerEvent pointer_event_from_touch(touch_event); | 909 ui::PointerEvent pointer_event_from_touch(touch_event); |
| 883 EXPECT_EQ(kRadiusX, pointer_event_from_touch.pointer_details().radius_x); | 910 EXPECT_EQ(kRadiusX, pointer_event_from_touch.pointer_details().radius_x); |
| 884 EXPECT_EQ(kRadiusY, pointer_event_from_touch.pointer_details().radius_y); | 911 EXPECT_EQ(kRadiusY, pointer_event_from_touch.pointer_details().radius_y); |
| 885 EXPECT_EQ(kForce, pointer_event_from_touch.pointer_details().force); | 912 EXPECT_EQ(kForce, pointer_event_from_touch.pointer_details().force); |
| 886 EXPECT_EQ(kRadiusX, pointer_event_from_touch.pointer_details().radius_x); | 913 EXPECT_EQ(kRadiusX, pointer_event_from_touch.pointer_details().radius_x); |
| 887 EXPECT_EQ(0.0f, pointer_event_from_touch.pointer_details().tilt_x); | 914 EXPECT_EQ(0.0f, pointer_event_from_touch.pointer_details().tilt_x); |
| 888 EXPECT_EQ(0.0f, pointer_event_from_touch.pointer_details().tilt_y); | 915 EXPECT_EQ(0.0f, pointer_event_from_touch.pointer_details().tilt_y); |
| 889 EXPECT_EQ(EventPointerType::POINTER_TYPE_TOUCH, | 916 EXPECT_EQ(EventPointerType::POINTER_TYPE_TOUCH, |
| 890 pointer_event_from_touch.pointer_details().pointer_type); | 917 pointer_event_from_touch.pointer_details().pointer_type); |
| 891 | 918 |
| 892 ui::MouseEvent mouse_event(ET_MOUSE_PRESSED, gfx::Point(0, 0), | 919 ui::MouseEvent mouse_event( |
| 893 gfx::Point(0, 0), ui::EventTimeForNow(), 0, 0); | 920 ET_MOUSE_PRESSED, gfx::Point(0, 0), gfx::Point(0, 0), |
| 921 ui::EventTimeForNow(), 0, 0, |
| 922 ui::PointerDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)); |
| 894 ui::PointerEvent pointer_event_from_mouse(mouse_event); | 923 ui::PointerEvent pointer_event_from_mouse(mouse_event); |
| 895 EXPECT_EQ(mouse_event.pointer_details(), | 924 EXPECT_EQ(mouse_event.pointer_details(), |
| 896 pointer_event_from_mouse.pointer_details()); | 925 pointer_event_from_mouse.pointer_details()); |
| 897 } | 926 } |
| 898 | 927 |
| 899 TEST(EventTest, PointerEventClone) { | 928 TEST(EventTest, PointerEventClone) { |
| 900 { | 929 { |
| 901 ui::PointerEvent ptr_event(ui::TouchEvent( | 930 ui::PointerEvent ptr_event(ui::TouchEvent( |
| 902 ET_TOUCH_PRESSED, gfx::Point(0, 0), ui::EventTimeForNow(), | 931 ET_TOUCH_PRESSED, gfx::Point(0, 0), ui::EventTimeForNow(), |
| 903 PointerDetails(ui::EventPointerType::POINTER_TYPE_TOUCH, | 932 PointerDetails(ui::EventPointerType::POINTER_TYPE_TOUCH, |
| 904 /* pointer_id*/ 0, | 933 /* pointer_id*/ 0, |
| 905 /* radius_x */ 10.0f, | 934 /* radius_x */ 10.0f, |
| 906 /* radius_y */ 5.0f, | 935 /* radius_y */ 5.0f, |
| 907 /* force */ 15.0f))); | 936 /* force */ 15.0f))); |
| 908 std::unique_ptr<ui::Event> clone(ui::Event::Clone(ptr_event)); | 937 std::unique_ptr<ui::Event> clone(ui::Event::Clone(ptr_event)); |
| 909 EXPECT_TRUE(clone->IsPointerEvent()); | 938 EXPECT_TRUE(clone->IsPointerEvent()); |
| 910 ui::PointerEvent* clone_as_ptr = clone->AsPointerEvent(); | 939 ui::PointerEvent* clone_as_ptr = clone->AsPointerEvent(); |
| 911 | 940 |
| 912 EXPECT_EQ(ptr_event.type(), clone_as_ptr->type()); | 941 EXPECT_EQ(ptr_event.type(), clone_as_ptr->type()); |
| 913 EXPECT_EQ(ptr_event.pointer_details().id, | 942 EXPECT_EQ(ptr_event.pointer_details().id, |
| 914 clone_as_ptr->pointer_details().id); | 943 clone_as_ptr->pointer_details().id); |
| 915 EXPECT_EQ(ptr_event.pointer_details(), clone_as_ptr->pointer_details()); | 944 EXPECT_EQ(ptr_event.pointer_details(), clone_as_ptr->pointer_details()); |
| 916 EXPECT_EQ(ptr_event.location(), clone_as_ptr->location()); | 945 EXPECT_EQ(ptr_event.location(), clone_as_ptr->location()); |
| 917 EXPECT_EQ(ptr_event.root_location(), clone_as_ptr->root_location()); | 946 EXPECT_EQ(ptr_event.root_location(), clone_as_ptr->root_location()); |
| 918 } | 947 } |
| 919 | 948 |
| 920 { | 949 { |
| 921 ui::PointerEvent ptr_event( | 950 ui::PointerEvent ptr_event(ui::MouseEvent( |
| 922 ui::MouseEvent(ET_MOUSE_PRESSED, gfx::Point(0, 0), gfx::Point(0, 0), | 951 ET_MOUSE_PRESSED, gfx::Point(0, 0), gfx::Point(0, 0), |
| 923 ui::EventTimeForNow(), 0, 0)); | 952 ui::EventTimeForNow(), 0, 0, |
| 953 ui::PointerDetails(ui::EventPointerType::POINTER_TYPE_MOUSE))); |
| 924 std::unique_ptr<ui::Event> clone(ui::Event::Clone(ptr_event)); | 954 std::unique_ptr<ui::Event> clone(ui::Event::Clone(ptr_event)); |
| 925 EXPECT_TRUE(clone->IsPointerEvent()); | 955 EXPECT_TRUE(clone->IsPointerEvent()); |
| 926 ui::PointerEvent* clone_as_ptr = clone->AsPointerEvent(); | 956 ui::PointerEvent* clone_as_ptr = clone->AsPointerEvent(); |
| 927 | 957 |
| 928 EXPECT_EQ(ptr_event.type(), clone_as_ptr->type()); | 958 EXPECT_EQ(ptr_event.type(), clone_as_ptr->type()); |
| 929 EXPECT_EQ(ptr_event.pointer_details().id, | 959 EXPECT_EQ(ptr_event.pointer_details().id, |
| 930 clone_as_ptr->pointer_details().id); | 960 clone_as_ptr->pointer_details().id); |
| 931 EXPECT_EQ(ptr_event.pointer_details(), clone_as_ptr->pointer_details()); | 961 EXPECT_EQ(ptr_event.pointer_details(), clone_as_ptr->pointer_details()); |
| 932 EXPECT_EQ(ptr_event.location(), clone_as_ptr->location()); | 962 EXPECT_EQ(ptr_event.location(), clone_as_ptr->location()); |
| 933 EXPECT_EQ(ptr_event.root_location(), clone_as_ptr->root_location()); | 963 EXPECT_EQ(ptr_event.root_location(), clone_as_ptr->root_location()); |
| 934 } | 964 } |
| 935 } | 965 } |
| 936 | 966 |
| 937 TEST(EventTest, MouseEventLatencyUIComponentExists) { | 967 TEST(EventTest, MouseEventLatencyUIComponentExists) { |
| 938 const gfx::Point origin(0, 0); | 968 const gfx::Point origin(0, 0); |
| 939 MouseEvent mouseev(ET_MOUSE_PRESSED, origin, origin, EventTimeForNow(), 0, 0); | 969 MouseEvent mouseev( |
| 970 ET_MOUSE_PRESSED, origin, origin, EventTimeForNow(), 0, 0, |
| 971 ui::PointerDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)); |
| 940 EXPECT_TRUE(mouseev.latency()->FindLatency( | 972 EXPECT_TRUE(mouseev.latency()->FindLatency( |
| 941 ui::INPUT_EVENT_LATENCY_UI_COMPONENT, 0, nullptr)); | 973 ui::INPUT_EVENT_LATENCY_UI_COMPONENT, 0, nullptr)); |
| 942 } | 974 } |
| 943 | 975 |
| 944 TEST(EventTest, MouseWheelEventLatencyUIComponentExists) { | 976 TEST(EventTest, MouseWheelEventLatencyUIComponentExists) { |
| 945 const gfx::Point origin(0, 0); | 977 const gfx::Point origin(0, 0); |
| 946 MouseWheelEvent mouseWheelev(gfx::Vector2d(), origin, origin, | 978 MouseWheelEvent mouseWheelev(gfx::Vector2d(), origin, origin, |
| 947 EventTimeForNow(), 0, 0); | 979 EventTimeForNow(), 0, 0); |
| 948 EXPECT_TRUE(mouseWheelev.latency()->FindLatency( | 980 EXPECT_TRUE(mouseWheelev.latency()->FindLatency( |
| 949 ui::INPUT_EVENT_LATENCY_UI_COMPONENT, 0, nullptr)); | 981 ui::INPUT_EVENT_LATENCY_UI_COMPONENT, 0, nullptr)); |
| (...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1092 XButtonEvent* button_event = &(native_event.xbutton); | 1124 XButtonEvent* button_event = &(native_event.xbutton); |
| 1093 button_event->type = ButtonPress; | 1125 button_event->type = ButtonPress; |
| 1094 button_event->button = 4; // A valid wheel button number between min and max. | 1126 button_event->button = 4; // A valid wheel button number between min and max. |
| 1095 MouseWheelEvent mouse_ev(&native_event); | 1127 MouseWheelEvent mouse_ev(&native_event); |
| 1096 | 1128 |
| 1097 histogram_tester.ExpectTotalCount("Event.Latency.OS.MOUSE_WHEEL", 1); | 1129 histogram_tester.ExpectTotalCount("Event.Latency.OS.MOUSE_WHEEL", 1); |
| 1098 #endif | 1130 #endif |
| 1099 } | 1131 } |
| 1100 | 1132 |
| 1101 } // namespace ui | 1133 } // namespace ui |
| OLD | NEW |