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

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

Issue 1068463003: A mouse event created from the same native event will be marked as repeated. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Modified EventsXTest.ClickCount to account for the change. Created 5 years, 8 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
« no previous file with comments | « ui/events/event.cc ('k') | ui/events/x/events_x_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "base/memory/scoped_ptr.h" 5 #include "base/memory/scoped_ptr.h"
6 #include "testing/gtest/include/gtest/gtest.h" 6 #include "testing/gtest/include/gtest/gtest.h"
7 #include "ui/events/event.h" 7 #include "ui/events/event.h"
8 #include "ui/events/event_utils.h" 8 #include "ui/events/event_utils.h"
9 #include "ui/events/keycodes/dom3/dom_code.h" 9 #include "ui/events/keycodes/dom3/dom_code.h"
10 #include "ui/events/keycodes/dom4/keycode_converter.h" 10 #include "ui/events/keycodes/dom4/keycode_converter.h"
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
72 0); 72 0);
73 MouseEvent mouse_ev2(ET_MOUSE_PRESSED, origin, origin, EventTimeForNow(), 0, 73 MouseEvent mouse_ev2(ET_MOUSE_PRESSED, origin, origin, EventTimeForNow(), 0,
74 0); 74 0);
75 LocatedEventTestApi test_ev1(&mouse_ev1); 75 LocatedEventTestApi test_ev1(&mouse_ev1);
76 LocatedEventTestApi test_ev2(&mouse_ev2); 76 LocatedEventTestApi test_ev2(&mouse_ev2);
77 77
78 base::TimeDelta start = base::TimeDelta::FromMilliseconds(0); 78 base::TimeDelta start = base::TimeDelta::FromMilliseconds(0);
79 base::TimeDelta soon = start + base::TimeDelta::FromMilliseconds(1); 79 base::TimeDelta soon = start + base::TimeDelta::FromMilliseconds(1);
80 base::TimeDelta later = start + base::TimeDelta::FromMilliseconds(1000); 80 base::TimeDelta later = start + base::TimeDelta::FromMilliseconds(1000);
81 81
82 // Same event.
83 test_ev1.set_location(gfx::Point(0, 0));
84 test_ev2.set_location(gfx::Point(1, 0));
85 test_ev1.set_time_stamp(start);
86 test_ev2.set_time_stamp(start);
87 EXPECT_FALSE(MouseEvent::IsRepeatedClickEvent(mouse_ev1, mouse_ev2));
88 MouseEvent mouse_ev3(mouse_ev1);
89 EXPECT_FALSE(MouseEvent::IsRepeatedClickEvent(mouse_ev1, mouse_ev3));
90
82 // Close point. 91 // Close point.
83 test_ev1.set_location(gfx::Point(0, 0)); 92 test_ev1.set_location(gfx::Point(0, 0));
84 test_ev2.set_location(gfx::Point(1, 0)); 93 test_ev2.set_location(gfx::Point(1, 0));
85 test_ev1.set_time_stamp(start); 94 test_ev1.set_time_stamp(start);
86 test_ev2.set_time_stamp(soon); 95 test_ev2.set_time_stamp(soon);
87 EXPECT_TRUE(MouseEvent::IsRepeatedClickEvent(mouse_ev1, mouse_ev2)); 96 EXPECT_TRUE(MouseEvent::IsRepeatedClickEvent(mouse_ev1, mouse_ev2));
88 97
89 // Too far. 98 // Too far.
90 test_ev1.set_location(gfx::Point(0, 0)); 99 test_ev1.set_location(gfx::Point(0, 0));
91 test_ev2.set_location(gfx::Point(10, 0)); 100 test_ev2.set_location(gfx::Point(10, 0));
(...skipping 11 matching lines...) Expand all
103 112
104 // Tests that an event only increases the click count and gets marked as a 113 // Tests that an event only increases the click count and gets marked as a
105 // double click if a release event was seen for the previous click. This 114 // double click if a release event was seen for the previous click. This
106 // prevents the same PRESSED event from being processed twice: 115 // prevents the same PRESSED event from being processed twice:
107 // http://crbug.com/389162 116 // http://crbug.com/389162
108 TEST(EventTest, DoubleClickRequiresRelease) { 117 TEST(EventTest, DoubleClickRequiresRelease) {
109 const gfx::Point origin1(0, 0); 118 const gfx::Point origin1(0, 0);
110 const gfx::Point origin2(100, 0); 119 const gfx::Point origin2(100, 0);
111 scoped_ptr<MouseEvent> ev; 120 scoped_ptr<MouseEvent> ev;
112 base::TimeDelta start = base::TimeDelta::FromMilliseconds(0); 121 base::TimeDelta start = base::TimeDelta::FromMilliseconds(0);
122 base::TimeDelta soon = start + base::TimeDelta::FromMilliseconds(1);
113 123
114 ev.reset(new MouseEvent(ET_MOUSE_PRESSED, origin1, origin1, EventTimeForNow(), 124 ev.reset(new MouseEvent(ET_MOUSE_PRESSED, origin1, origin1, EventTimeForNow(),
115 0, 0)); 125 0, 0));
116 ev->set_time_stamp(start); 126 ev->set_time_stamp(start);
117 EXPECT_EQ(1, MouseEvent::GetRepeatCount(*ev)); 127 EXPECT_EQ(1, MouseEvent::GetRepeatCount(*ev));
118 ev.reset(new MouseEvent(ET_MOUSE_PRESSED, origin1, origin1, EventTimeForNow(), 128 ev.reset(new MouseEvent(ET_MOUSE_PRESSED, origin1, origin1, EventTimeForNow(),
119 0, 0)); 129 0, 0));
120 ev->set_time_stamp(start); 130 ev->set_time_stamp(start);
121 EXPECT_EQ(1, MouseEvent::GetRepeatCount(*ev)); 131 EXPECT_EQ(1, MouseEvent::GetRepeatCount(*ev));
122 132
123 ev.reset(new MouseEvent(ET_MOUSE_PRESSED, origin2, origin2, EventTimeForNow(), 133 ev.reset(new MouseEvent(ET_MOUSE_PRESSED, origin2, origin2, EventTimeForNow(),
124 0, 0)); 134 0, 0));
125 ev->set_time_stamp(start); 135 ev->set_time_stamp(start);
126 EXPECT_EQ(1, MouseEvent::GetRepeatCount(*ev)); 136 EXPECT_EQ(1, MouseEvent::GetRepeatCount(*ev));
127 ev.reset(new MouseEvent(ET_MOUSE_RELEASED, origin2, origin2, 137 ev.reset(new MouseEvent(ET_MOUSE_RELEASED, origin2, origin2,
128 EventTimeForNow(), 0, 0)); 138 EventTimeForNow(), 0, 0));
129 ev->set_time_stamp(start); 139 ev->set_time_stamp(start);
130 EXPECT_EQ(1, MouseEvent::GetRepeatCount(*ev)); 140 EXPECT_EQ(1, MouseEvent::GetRepeatCount(*ev));
131 ev.reset(new MouseEvent(ET_MOUSE_PRESSED, origin2, origin2, EventTimeForNow(), 141 ev.reset(new MouseEvent(ET_MOUSE_PRESSED, origin2, origin2, EventTimeForNow(),
132 0, 0)); 142 0, 0));
133 ev->set_time_stamp(start); 143 ev->set_time_stamp(soon);
134 EXPECT_EQ(2, MouseEvent::GetRepeatCount(*ev)); 144 EXPECT_EQ(2, MouseEvent::GetRepeatCount(*ev));
135 ev.reset(new MouseEvent(ET_MOUSE_RELEASED, origin2, origin2, 145 ev.reset(new MouseEvent(ET_MOUSE_RELEASED, origin2, origin2,
136 EventTimeForNow(), 0, 0)); 146 EventTimeForNow(), 0, 0));
137 ev->set_time_stamp(start); 147 ev->set_time_stamp(soon);
138 EXPECT_EQ(2, MouseEvent::GetRepeatCount(*ev)); 148 EXPECT_EQ(2, MouseEvent::GetRepeatCount(*ev));
139 MouseEvent::ResetLastClickForTest(); 149 MouseEvent::ResetLastClickForTest();
140 } 150 }
141 151
142 // Tests that clicking right and then left clicking does not generate a double 152 // Tests that clicking right and then left clicking does not generate a double
143 // click. 153 // click.
144 TEST(EventTest, SingleClickRightLeft) { 154 TEST(EventTest, SingleClickRightLeft) {
145 const gfx::Point origin(0, 0); 155 const gfx::Point origin(0, 0);
146 scoped_ptr<MouseEvent> ev; 156 scoped_ptr<MouseEvent> ev;
147 base::TimeDelta start = base::TimeDelta::FromMilliseconds(0); 157 base::TimeDelta start = base::TimeDelta::FromMilliseconds(0);
158 base::TimeDelta soon = start + base::TimeDelta::FromMilliseconds(1);
148 159
149 ev.reset(new MouseEvent(ET_MOUSE_PRESSED, origin, origin, EventTimeForNow(), 160 ev.reset(new MouseEvent(ET_MOUSE_PRESSED, origin, origin, EventTimeForNow(),
150 ui::EF_RIGHT_MOUSE_BUTTON, 161 ui::EF_RIGHT_MOUSE_BUTTON,
151 ui::EF_RIGHT_MOUSE_BUTTON)); 162 ui::EF_RIGHT_MOUSE_BUTTON));
152 ev->set_time_stamp(start); 163 ev->set_time_stamp(start);
153 EXPECT_EQ(1, MouseEvent::GetRepeatCount(*ev)); 164 EXPECT_EQ(1, MouseEvent::GetRepeatCount(*ev));
154 ev.reset(new MouseEvent(ET_MOUSE_PRESSED, origin, origin, EventTimeForNow(), 165 ev.reset(new MouseEvent(ET_MOUSE_PRESSED, origin, origin, EventTimeForNow(),
155 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON)); 166 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON));
156 ev->set_time_stamp(start); 167 ev->set_time_stamp(start);
157 EXPECT_EQ(1, MouseEvent::GetRepeatCount(*ev)); 168 EXPECT_EQ(1, MouseEvent::GetRepeatCount(*ev));
158 ev.reset(new MouseEvent(ET_MOUSE_RELEASED, origin, origin, EventTimeForNow(), 169 ev.reset(new MouseEvent(ET_MOUSE_RELEASED, origin, origin, EventTimeForNow(),
159 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON)); 170 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON));
160 ev->set_time_stamp(start); 171 ev->set_time_stamp(start);
161 EXPECT_EQ(1, MouseEvent::GetRepeatCount(*ev)); 172 EXPECT_EQ(1, MouseEvent::GetRepeatCount(*ev));
162 ev.reset(new MouseEvent(ET_MOUSE_PRESSED, origin, origin, EventTimeForNow(), 173 ev.reset(new MouseEvent(ET_MOUSE_PRESSED, origin, origin, EventTimeForNow(),
163 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON)); 174 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON));
164 ev->set_time_stamp(start); 175 ev->set_time_stamp(soon);
165 EXPECT_EQ(2, MouseEvent::GetRepeatCount(*ev)); 176 EXPECT_EQ(2, MouseEvent::GetRepeatCount(*ev));
166 MouseEvent::ResetLastClickForTest(); 177 MouseEvent::ResetLastClickForTest();
167 } 178 }
168 179
169 TEST(EventTest, KeyEvent) { 180 TEST(EventTest, KeyEvent) {
170 static const struct { 181 static const struct {
171 KeyboardCode key_code; 182 KeyboardCode key_code;
172 int flags; 183 int flags;
173 uint16 character; 184 uint16 character;
174 } kTestData[] = { 185 } kTestData[] = {
(...skipping 413 matching lines...) Expand 10 before | Expand all | Expand 10 after
588 599
589 { 600 {
590 const float angle_too_big = 400; 601 const float angle_too_big = 400;
591 TouchEvent event(ui::ET_TOUCH_PRESSED, gfx::Point(0, 0), 0, 0, time, 602 TouchEvent event(ui::ET_TOUCH_PRESSED, gfx::Point(0, 0), 0, 0, time,
592 radius_x, radius_y, angle_too_big, 0); 603 radius_x, radius_y, angle_too_big, 0);
593 EXPECT_FLOAT_EQ(400 - 360, event.rotation_angle()); 604 EXPECT_FLOAT_EQ(400 - 360, event.rotation_angle());
594 } 605 }
595 } 606 }
596 607
597 } // namespace ui 608 } // namespace ui
OLDNEW
« no previous file with comments | « ui/events/event.cc ('k') | ui/events/x/events_x_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698