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

Side by Side Diff: ui/events/event_unittest.cc

Issue 1975533002: Change ui::Event::time_stamp from TimeDelta to TimeTicks (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix gesture recognizer tests Created 4 years, 7 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 (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 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
82 82
83 TEST(EventTest, RepeatedClick) { 83 TEST(EventTest, RepeatedClick) {
84 const gfx::Point origin(0, 0); 84 const gfx::Point origin(0, 0);
85 MouseEvent mouse_ev1(ET_MOUSE_PRESSED, origin, origin, EventTimeForNow(), 0, 85 MouseEvent mouse_ev1(ET_MOUSE_PRESSED, origin, origin, EventTimeForNow(), 0,
86 0); 86 0);
87 MouseEvent mouse_ev2(ET_MOUSE_PRESSED, origin, origin, EventTimeForNow(), 0, 87 MouseEvent mouse_ev2(ET_MOUSE_PRESSED, origin, origin, EventTimeForNow(), 0,
88 0); 88 0);
89 LocatedEventTestApi test_ev1(&mouse_ev1); 89 LocatedEventTestApi test_ev1(&mouse_ev1);
90 LocatedEventTestApi test_ev2(&mouse_ev2); 90 LocatedEventTestApi test_ev2(&mouse_ev2);
91 91
92 base::TimeDelta start = base::TimeDelta::FromMilliseconds(0); 92 base::TimeTicks start = base::TimeTicks();
93 base::TimeDelta soon = start + base::TimeDelta::FromMilliseconds(1); 93 base::TimeTicks soon = start + base::TimeDelta::FromMilliseconds(1);
94 base::TimeDelta later = start + base::TimeDelta::FromMilliseconds(1000); 94 base::TimeTicks later = start + base::TimeDelta::FromMilliseconds(1000);
95 95
96 // Same event. 96 // Same event.
97 test_ev1.set_location(gfx::Point(0, 0)); 97 test_ev1.set_location(gfx::Point(0, 0));
98 test_ev2.set_location(gfx::Point(1, 0)); 98 test_ev2.set_location(gfx::Point(1, 0));
99 test_ev1.set_time_stamp(start); 99 test_ev1.set_time_stamp(start);
100 test_ev2.set_time_stamp(start); 100 test_ev2.set_time_stamp(start);
101 EXPECT_FALSE(MouseEvent::IsRepeatedClickEvent(mouse_ev1, mouse_ev2)); 101 EXPECT_FALSE(MouseEvent::IsRepeatedClickEvent(mouse_ev1, mouse_ev2));
102 MouseEvent mouse_ev3(mouse_ev1); 102 MouseEvent mouse_ev3(mouse_ev1);
103 EXPECT_FALSE(MouseEvent::IsRepeatedClickEvent(mouse_ev1, mouse_ev3)); 103 EXPECT_FALSE(MouseEvent::IsRepeatedClickEvent(mouse_ev1, mouse_ev3));
104 104
(...skipping 20 matching lines...) Expand all
125 } 125 }
126 126
127 // Tests that an event only increases the click count and gets marked as a 127 // Tests that an event only increases the click count and gets marked as a
128 // double click if a release event was seen for the previous click. This 128 // double click if a release event was seen for the previous click. This
129 // prevents the same PRESSED event from being processed twice: 129 // prevents the same PRESSED event from being processed twice:
130 // http://crbug.com/389162 130 // http://crbug.com/389162
131 TEST(EventTest, DoubleClickRequiresRelease) { 131 TEST(EventTest, DoubleClickRequiresRelease) {
132 const gfx::Point origin1(0, 0); 132 const gfx::Point origin1(0, 0);
133 const gfx::Point origin2(100, 0); 133 const gfx::Point origin2(100, 0);
134 std::unique_ptr<MouseEvent> ev; 134 std::unique_ptr<MouseEvent> ev;
135 base::TimeDelta start = base::TimeDelta::FromMilliseconds(0); 135 base::TimeTicks start = base::TimeTicks();
136 base::TimeDelta soon = start + base::TimeDelta::FromMilliseconds(1); 136 base::TimeTicks soon = start + base::TimeDelta::FromMilliseconds(1);
137 137
138 ev.reset(new MouseEvent(ET_MOUSE_PRESSED, origin1, origin1, EventTimeForNow(), 138 ev.reset(new MouseEvent(ET_MOUSE_PRESSED, origin1, origin1, EventTimeForNow(),
139 0, 0)); 139 0, 0));
140 ev->set_time_stamp(start); 140 ev->set_time_stamp(start);
141 EXPECT_EQ(1, MouseEvent::GetRepeatCount(*ev)); 141 EXPECT_EQ(1, MouseEvent::GetRepeatCount(*ev));
142 ev.reset(new MouseEvent(ET_MOUSE_PRESSED, origin1, origin1, EventTimeForNow(), 142 ev.reset(new MouseEvent(ET_MOUSE_PRESSED, origin1, origin1, EventTimeForNow(),
143 0, 0)); 143 0, 0));
144 ev->set_time_stamp(start); 144 ev->set_time_stamp(start);
145 EXPECT_EQ(1, MouseEvent::GetRepeatCount(*ev)); 145 EXPECT_EQ(1, MouseEvent::GetRepeatCount(*ev));
146 146
(...skipping 14 matching lines...) Expand all
161 ev->set_time_stamp(soon); 161 ev->set_time_stamp(soon);
162 EXPECT_EQ(2, MouseEvent::GetRepeatCount(*ev)); 162 EXPECT_EQ(2, MouseEvent::GetRepeatCount(*ev));
163 MouseEvent::ResetLastClickForTest(); 163 MouseEvent::ResetLastClickForTest();
164 } 164 }
165 165
166 // Tests that clicking right and then left clicking does not generate a double 166 // Tests that clicking right and then left clicking does not generate a double
167 // click. 167 // click.
168 TEST(EventTest, SingleClickRightLeft) { 168 TEST(EventTest, SingleClickRightLeft) {
169 const gfx::Point origin(0, 0); 169 const gfx::Point origin(0, 0);
170 std::unique_ptr<MouseEvent> ev; 170 std::unique_ptr<MouseEvent> ev;
171 base::TimeDelta start = base::TimeDelta::FromMilliseconds(0); 171 base::TimeTicks start = base::TimeTicks();
172 base::TimeDelta soon = start + base::TimeDelta::FromMilliseconds(1); 172 base::TimeTicks soon = start + base::TimeDelta::FromMilliseconds(1);
173 173
174 ev.reset(new MouseEvent(ET_MOUSE_PRESSED, origin, origin, EventTimeForNow(), 174 ev.reset(new MouseEvent(ET_MOUSE_PRESSED, origin, origin, EventTimeForNow(),
175 ui::EF_RIGHT_MOUSE_BUTTON, 175 ui::EF_RIGHT_MOUSE_BUTTON,
176 ui::EF_RIGHT_MOUSE_BUTTON)); 176 ui::EF_RIGHT_MOUSE_BUTTON));
177 ev->set_time_stamp(start); 177 ev->set_time_stamp(start);
178 EXPECT_EQ(1, MouseEvent::GetRepeatCount(*ev)); 178 EXPECT_EQ(1, MouseEvent::GetRepeatCount(*ev));
179 ev.reset(new MouseEvent(ET_MOUSE_PRESSED, origin, origin, EventTimeForNow(), 179 ev.reset(new MouseEvent(ET_MOUSE_PRESSED, origin, origin, EventTimeForNow(),
180 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON)); 180 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON));
181 ev->set_time_stamp(start); 181 ev->set_time_stamp(start);
182 EXPECT_EQ(1, MouseEvent::GetRepeatCount(*ev)); 182 EXPECT_EQ(1, MouseEvent::GetRepeatCount(*ev));
(...skipping 377 matching lines...) Expand 10 before | Expand all | Expand 10 after
560 EXPECT_FALSE(key_a1.is_repeat()); 560 EXPECT_FALSE(key_a1.is_repeat());
561 561
562 KeyEvent key_a1_with_same_event(native_event_a_pressed); 562 KeyEvent key_a1_with_same_event(native_event_a_pressed);
563 EXPECT_FALSE(key_a1_with_same_event.is_repeat()); 563 EXPECT_FALSE(key_a1_with_same_event.is_repeat());
564 } 564 }
565 #endif 565 #endif
566 } 566 }
567 #endif // USE_X11 || OS_WIN 567 #endif // USE_X11 || OS_WIN
568 568
569 TEST(EventTest, TouchEventRadiusDefaultsToOtherAxis) { 569 TEST(EventTest, TouchEventRadiusDefaultsToOtherAxis) {
570 const base::TimeDelta time = base::TimeDelta::FromMilliseconds(0); 570 const base::TimeTicks time = base::TimeTicks();
571 const float non_zero_length1 = 30; 571 const float non_zero_length1 = 30;
572 const float non_zero_length2 = 46; 572 const float non_zero_length2 = 46;
573 573
574 TouchEvent event1(ui::ET_TOUCH_PRESSED, gfx::Point(0, 0), 0, 0, time, 574 TouchEvent event1(ui::ET_TOUCH_PRESSED, gfx::Point(0, 0), 0, 0, time,
575 non_zero_length1, 0, 0, 0); 575 non_zero_length1, 0, 0, 0);
576 EXPECT_EQ(non_zero_length1, event1.pointer_details().radius_x); 576 EXPECT_EQ(non_zero_length1, event1.pointer_details().radius_x);
577 EXPECT_EQ(non_zero_length1, event1.pointer_details().radius_y); 577 EXPECT_EQ(non_zero_length1, event1.pointer_details().radius_y);
578 578
579 TouchEvent event2(ui::ET_TOUCH_PRESSED, gfx::Point(0, 0), 0, 0, time, 579 TouchEvent event2(ui::ET_TOUCH_PRESSED, gfx::Point(0, 0), 0, 0, time,
580 0, non_zero_length2, 0, 0); 580 0, non_zero_length2, 0, 0);
581 EXPECT_EQ(non_zero_length2, event2.pointer_details().radius_x); 581 EXPECT_EQ(non_zero_length2, event2.pointer_details().radius_x);
582 EXPECT_EQ(non_zero_length2, event2.pointer_details().radius_y); 582 EXPECT_EQ(non_zero_length2, event2.pointer_details().radius_y);
583 } 583 }
584 584
585 TEST(EventTest, TouchEventRotationAngleFixing) { 585 TEST(EventTest, TouchEventRotationAngleFixing) {
586 const base::TimeDelta time = base::TimeDelta::FromMilliseconds(0); 586 const base::TimeTicks time = base::TimeTicks();
587 const float radius_x = 20; 587 const float radius_x = 20;
588 const float radius_y = 10; 588 const float radius_y = 10;
589 589
590 { 590 {
591 const float angle_in_range = 0; 591 const float angle_in_range = 0;
592 TouchEvent event(ui::ET_TOUCH_PRESSED, gfx::Point(0, 0), 0, 0, time, 592 TouchEvent event(ui::ET_TOUCH_PRESSED, gfx::Point(0, 0), 0, 0, time,
593 radius_x, radius_y, angle_in_range, 0); 593 radius_x, radius_y, angle_in_range, 0);
594 EXPECT_FLOAT_EQ(angle_in_range, event.rotation_angle()); 594 EXPECT_FLOAT_EQ(angle_in_range, event.rotation_angle());
595 } 595 }
596 596
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
726 EXPECT_EQ(-45.0f, touch_event.pointer_details().tilt_y); 726 EXPECT_EQ(-45.0f, touch_event.pointer_details().tilt_y);
727 EXPECT_EQ(5.0f, touch_event.pointer_details().radius_x); 727 EXPECT_EQ(5.0f, touch_event.pointer_details().radius_x);
728 EXPECT_EQ(6.0f, touch_event.pointer_details().radius_y); 728 EXPECT_EQ(6.0f, touch_event.pointer_details().radius_y);
729 729
730 ui::TouchEvent touch_event_copy(touch_event); 730 ui::TouchEvent touch_event_copy(touch_event);
731 EXPECT_EQ(touch_event.pointer_details(), touch_event_copy.pointer_details()); 731 EXPECT_EQ(touch_event.pointer_details(), touch_event_copy.pointer_details());
732 } 732 }
733 733
734 TEST(EventTest, PointerEventCanConvertFrom) { 734 TEST(EventTest, PointerEventCanConvertFrom) {
735 const gfx::Point point; 735 const gfx::Point point;
736 const base::TimeDelta time; 736 const base::TimeTicks time;
737 737
738 // Common mouse events can be converted. 738 // Common mouse events can be converted.
739 const EventType mouse_allowed[] = { 739 const EventType mouse_allowed[] = {
740 ET_MOUSE_PRESSED, 740 ET_MOUSE_PRESSED,
741 ET_MOUSE_DRAGGED, 741 ET_MOUSE_DRAGGED,
742 ET_MOUSE_MOVED, 742 ET_MOUSE_MOVED,
743 ET_MOUSE_ENTERED, 743 ET_MOUSE_ENTERED,
744 ET_MOUSE_EXITED, 744 ET_MOUSE_EXITED,
745 ET_MOUSE_RELEASED 745 ET_MOUSE_RELEASED
746 }; 746 };
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
788 }; 788 };
789 const ui::EventType kTouchTypeMap[][2] = { 789 const ui::EventType kTouchTypeMap[][2] = {
790 {ui::ET_TOUCH_PRESSED, ui::ET_POINTER_DOWN}, 790 {ui::ET_TOUCH_PRESSED, ui::ET_POINTER_DOWN},
791 {ui::ET_TOUCH_MOVED, ui::ET_POINTER_MOVED}, 791 {ui::ET_TOUCH_MOVED, ui::ET_POINTER_MOVED},
792 {ui::ET_TOUCH_RELEASED, ui::ET_POINTER_UP}, 792 {ui::ET_TOUCH_RELEASED, ui::ET_POINTER_UP},
793 {ui::ET_TOUCH_CANCELLED, ui::ET_POINTER_CANCELLED}, 793 {ui::ET_TOUCH_CANCELLED, ui::ET_POINTER_CANCELLED},
794 }; 794 };
795 795
796 for (size_t i = 0; i < arraysize(kMouseTypeMap); i++) { 796 for (size_t i = 0; i < arraysize(kMouseTypeMap); i++) {
797 ui::MouseEvent mouse_event(kMouseTypeMap[i][0], gfx::Point(0, 0), 797 ui::MouseEvent mouse_event(kMouseTypeMap[i][0], gfx::Point(0, 0),
798 gfx::Point(0, 0), base::TimeDelta(), 0, 0); 798 gfx::Point(0, 0), base::TimeTicks(), 0, 0);
799 ui::PointerEvent pointer_event(mouse_event); 799 ui::PointerEvent pointer_event(mouse_event);
800 EXPECT_EQ(kMouseTypeMap[i][1], pointer_event.type()); 800 EXPECT_EQ(kMouseTypeMap[i][1], pointer_event.type());
801 EXPECT_FALSE(pointer_event.IsMouseEvent()); 801 EXPECT_FALSE(pointer_event.IsMouseEvent());
802 EXPECT_FALSE(pointer_event.IsTouchEvent()); 802 EXPECT_FALSE(pointer_event.IsTouchEvent());
803 EXPECT_TRUE(pointer_event.IsPointerEvent()); 803 EXPECT_TRUE(pointer_event.IsPointerEvent());
804 } 804 }
805 805
806 for (size_t i = 0; i < arraysize(kTouchTypeMap); i++) { 806 for (size_t i = 0; i < arraysize(kTouchTypeMap); i++) {
807 ui::TouchEvent touch_event(kTouchTypeMap[i][0], gfx::Point(0, 0), 0, 807 ui::TouchEvent touch_event(kTouchTypeMap[i][0], gfx::Point(0, 0), 0,
808 base::TimeDelta()); 808 base::TimeTicks());
809 ui::PointerEvent pointer_event(touch_event); 809 ui::PointerEvent pointer_event(touch_event);
810 EXPECT_EQ(kTouchTypeMap[i][1], pointer_event.type()); 810 EXPECT_EQ(kTouchTypeMap[i][1], pointer_event.type());
811 EXPECT_FALSE(pointer_event.IsMouseEvent()); 811 EXPECT_FALSE(pointer_event.IsMouseEvent());
812 EXPECT_FALSE(pointer_event.IsTouchEvent()); 812 EXPECT_FALSE(pointer_event.IsTouchEvent());
813 EXPECT_TRUE(pointer_event.IsPointerEvent()); 813 EXPECT_TRUE(pointer_event.IsPointerEvent());
814 } 814 }
815 } 815 }
816 816
817 TEST(EventTest, PointerEventId) { 817 TEST(EventTest, PointerEventId) {
818 { 818 {
819 ui::MouseEvent mouse_event(ui::ET_MOUSE_PRESSED, gfx::Point(0, 0), 819 ui::MouseEvent mouse_event(ui::ET_MOUSE_PRESSED, gfx::Point(0, 0),
820 gfx::Point(0, 0), base::TimeDelta(), 0, 0); 820 gfx::Point(0, 0), base::TimeTicks(), 0, 0);
821 ui::PointerEvent pointer_event(mouse_event); 821 ui::PointerEvent pointer_event(mouse_event);
822 EXPECT_EQ(pointer_event.pointer_id(), ui::PointerEvent::kMousePointerId); 822 EXPECT_EQ(pointer_event.pointer_id(), ui::PointerEvent::kMousePointerId);
823 } 823 }
824 824
825 for (int touch_id = 0; touch_id < 8; touch_id++) { 825 for (int touch_id = 0; touch_id < 8; touch_id++) {
826 ui::TouchEvent touch_event(ui::ET_TOUCH_PRESSED, gfx::Point(0, 0), touch_id, 826 ui::TouchEvent touch_event(ui::ET_TOUCH_PRESSED, gfx::Point(0, 0), touch_id,
827 base::TimeDelta()); 827 base::TimeTicks());
828 ui::PointerEvent pointer_event(touch_event); 828 ui::PointerEvent pointer_event(touch_event);
829 EXPECT_EQ(pointer_event.pointer_id(), touch_id); 829 EXPECT_EQ(pointer_event.pointer_id(), touch_id);
830 } 830 }
831 } 831 }
832 832
833 TEST(EventTest, PointerDetailsPointer) { 833 TEST(EventTest, PointerDetailsPointer) {
834 const float kRadiusX = 10.0f; 834 const float kRadiusX = 10.0f;
835 const float kRadiusY = 5.0f; 835 const float kRadiusY = 5.0f;
836 const float kForce = 15.0f; 836 const float kForce = 15.0f;
837 ui::TouchEvent touch_event(ET_TOUCH_PRESSED, gfx::Point(0, 0), 0, 0, 837 ui::TouchEvent touch_event(ET_TOUCH_PRESSED, gfx::Point(0, 0), 0, 0,
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
880 880
881 EXPECT_EQ(ptr_event.type(), clone_as_ptr->type()); 881 EXPECT_EQ(ptr_event.type(), clone_as_ptr->type());
882 EXPECT_EQ(ptr_event.pointer_id(), clone_as_ptr->pointer_id()); 882 EXPECT_EQ(ptr_event.pointer_id(), clone_as_ptr->pointer_id());
883 EXPECT_EQ(ptr_event.pointer_details(), clone_as_ptr->pointer_details()); 883 EXPECT_EQ(ptr_event.pointer_details(), clone_as_ptr->pointer_details());
884 EXPECT_EQ(ptr_event.location(), clone_as_ptr->location()); 884 EXPECT_EQ(ptr_event.location(), clone_as_ptr->location());
885 EXPECT_EQ(ptr_event.root_location(), clone_as_ptr->root_location()); 885 EXPECT_EQ(ptr_event.root_location(), clone_as_ptr->root_location());
886 } 886 }
887 } 887 }
888 888
889 } // namespace ui 889 } // namespace ui
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698