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

Side by Side Diff: ui/events/blink/web_input_event_unittest.cc

Issue 2573073003: Collapse the API surface on WebInputEvent via accessor functions. (Closed)
Patch Set: Fix nits Created 3 years, 11 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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/blink/web_input_event.h" 5 #include "ui/events/blink/web_input_event.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 28 matching lines...) Expand all
39 // Checks that MakeWebKeyboardEvent makes a DOM3 spec compliant key event. 39 // Checks that MakeWebKeyboardEvent makes a DOM3 spec compliant key event.
40 // crbug.com/127142 40 // crbug.com/127142
41 TEST(WebInputEventTest, TestMakeWebKeyboardEvent) { 41 TEST(WebInputEventTest, TestMakeWebKeyboardEvent) {
42 { 42 {
43 // Press left Ctrl. 43 // Press left Ctrl.
44 KeyEvent event(ET_KEY_PRESSED, VKEY_CONTROL, DomCode::CONTROL_LEFT, 44 KeyEvent event(ET_KEY_PRESSED, VKEY_CONTROL, DomCode::CONTROL_LEFT,
45 EF_CONTROL_DOWN); 45 EF_CONTROL_DOWN);
46 blink::WebKeyboardEvent webkit_event = MakeWebKeyboardEvent(event); 46 blink::WebKeyboardEvent webkit_event = MakeWebKeyboardEvent(event);
47 // However, modifier bit for Control in |webkit_event| should be set. 47 // However, modifier bit for Control in |webkit_event| should be set.
48 EXPECT_EQ(blink::WebInputEvent::ControlKey | blink::WebInputEvent::IsLeft, 48 EXPECT_EQ(blink::WebInputEvent::ControlKey | blink::WebInputEvent::IsLeft,
49 webkit_event.modifiers); 49 webkit_event.modifiers());
50 EXPECT_EQ(static_cast<int>(DomCode::CONTROL_LEFT), webkit_event.domCode); 50 EXPECT_EQ(static_cast<int>(DomCode::CONTROL_LEFT), webkit_event.domCode);
51 EXPECT_EQ(static_cast<int>(DomKey::CONTROL), webkit_event.domKey); 51 EXPECT_EQ(static_cast<int>(DomKey::CONTROL), webkit_event.domKey);
52 } 52 }
53 { 53 {
54 // Release left Ctrl. 54 // Release left Ctrl.
55 KeyEvent event(ET_KEY_RELEASED, VKEY_CONTROL, DomCode::CONTROL_LEFT, 55 KeyEvent event(ET_KEY_RELEASED, VKEY_CONTROL, DomCode::CONTROL_LEFT,
56 EF_NONE); 56 EF_NONE);
57 blink::WebKeyboardEvent webkit_event = MakeWebKeyboardEvent(event); 57 blink::WebKeyboardEvent webkit_event = MakeWebKeyboardEvent(event);
58 // However, modifier bit for Control in |webkit_event| shouldn't be set. 58 // However, modifier bit for Control in |webkit_event| shouldn't be set.
59 EXPECT_EQ(blink::WebInputEvent::IsLeft, webkit_event.modifiers); 59 EXPECT_EQ(blink::WebInputEvent::IsLeft, webkit_event.modifiers());
60 EXPECT_EQ(static_cast<int>(DomCode::CONTROL_LEFT), webkit_event.domCode); 60 EXPECT_EQ(static_cast<int>(DomCode::CONTROL_LEFT), webkit_event.domCode);
61 EXPECT_EQ(static_cast<int>(DomKey::CONTROL), webkit_event.domKey); 61 EXPECT_EQ(static_cast<int>(DomKey::CONTROL), webkit_event.domKey);
62 } 62 }
63 { 63 {
64 // Press right Ctrl. 64 // Press right Ctrl.
65 KeyEvent event(ET_KEY_PRESSED, VKEY_CONTROL, DomCode::CONTROL_RIGHT, 65 KeyEvent event(ET_KEY_PRESSED, VKEY_CONTROL, DomCode::CONTROL_RIGHT,
66 EF_CONTROL_DOWN); 66 EF_CONTROL_DOWN);
67 blink::WebKeyboardEvent webkit_event = MakeWebKeyboardEvent(event); 67 blink::WebKeyboardEvent webkit_event = MakeWebKeyboardEvent(event);
68 // However, modifier bit for Control in |webkit_event| should be set. 68 // However, modifier bit for Control in |webkit_event| should be set.
69 EXPECT_EQ(blink::WebInputEvent::ControlKey | blink::WebInputEvent::IsRight, 69 EXPECT_EQ(blink::WebInputEvent::ControlKey | blink::WebInputEvent::IsRight,
70 webkit_event.modifiers); 70 webkit_event.modifiers());
71 EXPECT_EQ(static_cast<int>(DomCode::CONTROL_RIGHT), webkit_event.domCode); 71 EXPECT_EQ(static_cast<int>(DomCode::CONTROL_RIGHT), webkit_event.domCode);
72 } 72 }
73 { 73 {
74 // Release right Ctrl. 74 // Release right Ctrl.
75 KeyEvent event(ET_KEY_RELEASED, VKEY_CONTROL, DomCode::CONTROL_RIGHT, 75 KeyEvent event(ET_KEY_RELEASED, VKEY_CONTROL, DomCode::CONTROL_RIGHT,
76 EF_NONE); 76 EF_NONE);
77 blink::WebKeyboardEvent webkit_event = MakeWebKeyboardEvent(event); 77 blink::WebKeyboardEvent webkit_event = MakeWebKeyboardEvent(event);
78 // However, modifier bit for Control in |webkit_event| shouldn't be set. 78 // However, modifier bit for Control in |webkit_event| shouldn't be set.
79 EXPECT_EQ(blink::WebInputEvent::IsRight, webkit_event.modifiers); 79 EXPECT_EQ(blink::WebInputEvent::IsRight, webkit_event.modifiers());
80 EXPECT_EQ(static_cast<int>(DomCode::CONTROL_RIGHT), webkit_event.domCode); 80 EXPECT_EQ(static_cast<int>(DomCode::CONTROL_RIGHT), webkit_event.domCode);
81 EXPECT_EQ(static_cast<int>(DomKey::CONTROL), webkit_event.domKey); 81 EXPECT_EQ(static_cast<int>(DomKey::CONTROL), webkit_event.domKey);
82 } 82 }
83 #if defined(USE_X11) 83 #if defined(USE_X11)
84 const int kLocationModifiers = 84 const int kLocationModifiers =
85 blink::WebInputEvent::IsLeft | blink::WebInputEvent::IsRight; 85 blink::WebInputEvent::IsLeft | blink::WebInputEvent::IsRight;
86 ScopedXI2Event xev; 86 ScopedXI2Event xev;
87 { 87 {
88 // Press Ctrl. 88 // Press Ctrl.
89 xev.InitKeyEvent(ET_KEY_PRESSED, VKEY_CONTROL, 0); 89 xev.InitKeyEvent(ET_KEY_PRESSED, VKEY_CONTROL, 0);
90 KeyEvent event(xev); 90 KeyEvent event(xev);
91 blink::WebKeyboardEvent webkit_event = MakeWebKeyboardEvent(event); 91 blink::WebKeyboardEvent webkit_event = MakeWebKeyboardEvent(event);
92 // However, modifier bit for Control in |webkit_event| should be set. 92 // However, modifier bit for Control in |webkit_event| should be set.
93 EXPECT_EQ(blink::WebInputEvent::ControlKey, 93 EXPECT_EQ(blink::WebInputEvent::ControlKey,
94 webkit_event.modifiers & ~kLocationModifiers); 94 webkit_event.modifiers() & ~kLocationModifiers);
95 } 95 }
96 { 96 {
97 // Release Ctrl. 97 // Release Ctrl.
98 xev.InitKeyEvent(ET_KEY_RELEASED, VKEY_CONTROL, ControlMask); 98 xev.InitKeyEvent(ET_KEY_RELEASED, VKEY_CONTROL, ControlMask);
99 KeyEvent event(xev); 99 KeyEvent event(xev);
100 blink::WebKeyboardEvent webkit_event = MakeWebKeyboardEvent(event); 100 blink::WebKeyboardEvent webkit_event = MakeWebKeyboardEvent(event);
101 // However, modifier bit for Control in |webkit_event| shouldn't be set. 101 // However, modifier bit for Control in |webkit_event| shouldn't be set.
102 EXPECT_EQ(0, webkit_event.modifiers & ~kLocationModifiers); 102 EXPECT_EQ(0, webkit_event.modifiers() & ~kLocationModifiers);
103 } 103 }
104 #endif 104 #endif
105 } 105 }
106 106
107 TEST(WebInputEventTest, TestMakeWebKeyboardEventWindowsKeyCode) { 107 TEST(WebInputEventTest, TestMakeWebKeyboardEventWindowsKeyCode) {
108 #if defined(USE_X11) 108 #if defined(USE_X11)
109 ScopedXI2Event xev; 109 ScopedXI2Event xev;
110 { 110 {
111 // Press left Ctrl. 111 // Press left Ctrl.
112 xev.InitKeyEvent(ET_KEY_PRESSED, VKEY_CONTROL, 0); 112 xev.InitKeyEvent(ET_KEY_PRESSED, VKEY_CONTROL, 0);
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
199 {DomCode::NUMPAD6, VKEY_RIGHT, XK(KP_Right), true}, 199 {DomCode::NUMPAD6, VKEY_RIGHT, XK(KP_Right), true},
200 {DomCode::NUMPAD7, VKEY_HOME, XK(KP_Home), true}, 200 {DomCode::NUMPAD7, VKEY_HOME, XK(KP_Home), true},
201 {DomCode::NUMPAD8, VKEY_UP, XK(KP_Up), true}, 201 {DomCode::NUMPAD8, VKEY_UP, XK(KP_Up), true},
202 {DomCode::NUMPAD9, VKEY_PRIOR, XK(KP_Page_Up), true}, 202 {DomCode::NUMPAD9, VKEY_PRIOR, XK(KP_Page_Up), true},
203 }; 203 };
204 for (const auto& test_case : kTesCases) { 204 for (const auto& test_case : kTesCases) {
205 KeyEvent event(ET_KEY_PRESSED, test_case.ui_keycode, test_case.dom_code, 205 KeyEvent event(ET_KEY_PRESSED, test_case.ui_keycode, test_case.dom_code,
206 EF_NONE); 206 EF_NONE);
207 blink::WebKeyboardEvent webkit_event = MakeWebKeyboardEvent(event); 207 blink::WebKeyboardEvent webkit_event = MakeWebKeyboardEvent(event);
208 EXPECT_EQ(test_case.expected_result, 208 EXPECT_EQ(test_case.expected_result,
209 (webkit_event.modifiers & blink::WebInputEvent::IsKeyPad) != 0) 209 (webkit_event.modifiers() & blink::WebInputEvent::IsKeyPad) != 0)
210 << "Failed in " 210 << "Failed in "
211 << "{dom_code:" 211 << "{dom_code:"
212 << KeycodeConverter::DomCodeToCodeString(test_case.dom_code) 212 << KeycodeConverter::DomCodeToCodeString(test_case.dom_code)
213 << ", ui_keycode:" << test_case.ui_keycode 213 << ", ui_keycode:" << test_case.ui_keycode
214 << "}, expect: " << test_case.expected_result; 214 << "}, expect: " << test_case.expected_result;
215 } 215 }
216 #if defined(USE_X11) 216 #if defined(USE_X11)
217 ScopedXI2Event xev; 217 ScopedXI2Event xev;
218 for (size_t i = 0; i < arraysize(kTesCases); ++i) { 218 for (size_t i = 0; i < arraysize(kTesCases); ++i) {
219 const TestCase& test_case = kTesCases[i]; 219 const TestCase& test_case = kTesCases[i];
220 220
221 // TODO: re-enable the two cases excluded here once all trybots 221 // TODO: re-enable the two cases excluded here once all trybots
222 // are sufficiently up to date to round-trip the associated keys. 222 // are sufficiently up to date to round-trip the associated keys.
223 if ((test_case.x_keysym == XK_KP_Divide) || 223 if ((test_case.x_keysym == XK_KP_Divide) ||
224 (test_case.x_keysym == XK_KP_Decimal)) 224 (test_case.x_keysym == XK_KP_Decimal))
225 continue; 225 continue;
226 226
227 xev.InitKeyEvent(ET_KEY_PRESSED, test_case.ui_keycode, EF_NONE); 227 xev.InitKeyEvent(ET_KEY_PRESSED, test_case.ui_keycode, EF_NONE);
228 XEvent* xevent = xev; 228 XEvent* xevent = xev;
229 xevent->xkey.keycode = 229 xevent->xkey.keycode =
230 XKeysymToKeycode(gfx::GetXDisplay(), test_case.x_keysym); 230 XKeysymToKeycode(gfx::GetXDisplay(), test_case.x_keysym);
231 if (!xevent->xkey.keycode) 231 if (!xevent->xkey.keycode)
232 continue; 232 continue;
233 KeyEvent event(xev); 233 KeyEvent event(xev);
234 blink::WebKeyboardEvent webkit_event = MakeWebKeyboardEvent(event); 234 blink::WebKeyboardEvent webkit_event = MakeWebKeyboardEvent(event);
235 EXPECT_EQ(test_case.expected_result, 235 EXPECT_EQ(test_case.expected_result,
236 (webkit_event.modifiers & blink::WebInputEvent::IsKeyPad) != 0) 236 (webkit_event.modifiers() & blink::WebInputEvent::IsKeyPad) != 0)
237 << "Failed in " << i << "th test case: " 237 << "Failed in " << i << "th test case: "
238 << "{dom_code:" 238 << "{dom_code:"
239 << KeycodeConverter::DomCodeToCodeString(test_case.dom_code) 239 << KeycodeConverter::DomCodeToCodeString(test_case.dom_code)
240 << ", ui_keycode:" << test_case.ui_keycode 240 << ", ui_keycode:" << test_case.ui_keycode
241 << ", x_keysym:" << test_case.x_keysym 241 << ", x_keysym:" << test_case.x_keysym
242 << "}, expect: " << test_case.expected_result; 242 << "}, expect: " << test_case.expected_result;
243 } 243 }
244 #endif 244 #endif
245 } 245 }
246 246
247 TEST(WebInputEventTest, TestMakeWebMouseEvent) { 247 TEST(WebInputEventTest, TestMakeWebMouseEvent) {
248 { 248 {
249 // Left pressed. 249 // Left pressed.
250 base::TimeTicks timestamp = EventTimeForNow(); 250 base::TimeTicks timestamp = EventTimeForNow();
251 MouseEvent ui_event(ET_MOUSE_PRESSED, gfx::Point(123, 321), 251 MouseEvent ui_event(ET_MOUSE_PRESSED, gfx::Point(123, 321),
252 gfx::Point(123, 321), timestamp, EF_LEFT_MOUSE_BUTTON, 252 gfx::Point(123, 321), timestamp, EF_LEFT_MOUSE_BUTTON,
253 EF_LEFT_MOUSE_BUTTON); 253 EF_LEFT_MOUSE_BUTTON);
254 blink::WebMouseEvent webkit_event = 254 blink::WebMouseEvent webkit_event =
255 MakeWebMouseEvent(ui_event, base::Bind(&GetScreenLocationFromEvent)); 255 MakeWebMouseEvent(ui_event, base::Bind(&GetScreenLocationFromEvent));
256 EXPECT_EQ(EventFlagsToWebEventModifiers(ui_event.flags()), 256 EXPECT_EQ(EventFlagsToWebEventModifiers(ui_event.flags()),
257 webkit_event.modifiers); 257 webkit_event.modifiers());
258 EXPECT_FLOAT_EQ(EventTimeStampToSeconds(timestamp), 258 EXPECT_FLOAT_EQ(EventTimeStampToSeconds(timestamp),
259 webkit_event.timeStampSeconds); 259 webkit_event.timeStampSeconds());
260 EXPECT_EQ(blink::WebMouseEvent::Button::Left, webkit_event.button); 260 EXPECT_EQ(blink::WebMouseEvent::Button::Left, webkit_event.button);
261 EXPECT_EQ(blink::WebInputEvent::MouseDown, webkit_event.type); 261 EXPECT_EQ(blink::WebInputEvent::MouseDown, webkit_event.type());
262 EXPECT_EQ(ui_event.GetClickCount(), webkit_event.clickCount); 262 EXPECT_EQ(ui_event.GetClickCount(), webkit_event.clickCount);
263 EXPECT_EQ(123, webkit_event.x); 263 EXPECT_EQ(123, webkit_event.x);
264 EXPECT_EQ(123, webkit_event.windowX); 264 EXPECT_EQ(123, webkit_event.windowX);
265 EXPECT_EQ(321, webkit_event.y); 265 EXPECT_EQ(321, webkit_event.y);
266 EXPECT_EQ(321, webkit_event.windowY); 266 EXPECT_EQ(321, webkit_event.windowY);
267 } 267 }
268 { 268 {
269 // Left released. 269 // Left released.
270 base::TimeTicks timestamp = EventTimeForNow(); 270 base::TimeTicks timestamp = EventTimeForNow();
271 MouseEvent ui_event(ET_MOUSE_RELEASED, gfx::Point(123, 321), 271 MouseEvent ui_event(ET_MOUSE_RELEASED, gfx::Point(123, 321),
272 gfx::Point(123, 321), timestamp, 0, 272 gfx::Point(123, 321), timestamp, 0,
273 EF_LEFT_MOUSE_BUTTON); 273 EF_LEFT_MOUSE_BUTTON);
274 blink::WebMouseEvent webkit_event = 274 blink::WebMouseEvent webkit_event =
275 MakeWebMouseEvent(ui_event, base::Bind(&GetScreenLocationFromEvent)); 275 MakeWebMouseEvent(ui_event, base::Bind(&GetScreenLocationFromEvent));
276 EXPECT_EQ(EventFlagsToWebEventModifiers(ui_event.flags()), 276 EXPECT_EQ(EventFlagsToWebEventModifiers(ui_event.flags()),
277 webkit_event.modifiers); 277 webkit_event.modifiers());
278 EXPECT_FLOAT_EQ(EventTimeStampToSeconds(timestamp), 278 EXPECT_FLOAT_EQ(EventTimeStampToSeconds(timestamp),
279 webkit_event.timeStampSeconds); 279 webkit_event.timeStampSeconds());
280 EXPECT_EQ(blink::WebMouseEvent::Button::Left, webkit_event.button); 280 EXPECT_EQ(blink::WebMouseEvent::Button::Left, webkit_event.button);
281 EXPECT_EQ(blink::WebInputEvent::MouseUp, webkit_event.type); 281 EXPECT_EQ(blink::WebInputEvent::MouseUp, webkit_event.type());
282 EXPECT_EQ(ui_event.GetClickCount(), webkit_event.clickCount); 282 EXPECT_EQ(ui_event.GetClickCount(), webkit_event.clickCount);
283 EXPECT_EQ(123, webkit_event.x); 283 EXPECT_EQ(123, webkit_event.x);
284 EXPECT_EQ(123, webkit_event.windowX); 284 EXPECT_EQ(123, webkit_event.windowX);
285 EXPECT_EQ(321, webkit_event.y); 285 EXPECT_EQ(321, webkit_event.y);
286 EXPECT_EQ(321, webkit_event.windowY); 286 EXPECT_EQ(321, webkit_event.windowY);
287 } 287 }
288 { 288 {
289 // Middle pressed. 289 // Middle pressed.
290 base::TimeTicks timestamp = EventTimeForNow(); 290 base::TimeTicks timestamp = EventTimeForNow();
291 MouseEvent ui_event(ET_MOUSE_PRESSED, gfx::Point(123, 321), 291 MouseEvent ui_event(ET_MOUSE_PRESSED, gfx::Point(123, 321),
292 gfx::Point(123, 321), timestamp, EF_MIDDLE_MOUSE_BUTTON, 292 gfx::Point(123, 321), timestamp, EF_MIDDLE_MOUSE_BUTTON,
293 EF_MIDDLE_MOUSE_BUTTON); 293 EF_MIDDLE_MOUSE_BUTTON);
294 blink::WebMouseEvent webkit_event = 294 blink::WebMouseEvent webkit_event =
295 MakeWebMouseEvent(ui_event, base::Bind(&GetScreenLocationFromEvent)); 295 MakeWebMouseEvent(ui_event, base::Bind(&GetScreenLocationFromEvent));
296 EXPECT_EQ(EventFlagsToWebEventModifiers(ui_event.flags()), 296 EXPECT_EQ(EventFlagsToWebEventModifiers(ui_event.flags()),
297 webkit_event.modifiers); 297 webkit_event.modifiers());
298 EXPECT_FLOAT_EQ(EventTimeStampToSeconds(timestamp), 298 EXPECT_FLOAT_EQ(EventTimeStampToSeconds(timestamp),
299 webkit_event.timeStampSeconds); 299 webkit_event.timeStampSeconds());
300 EXPECT_EQ(blink::WebMouseEvent::Button::Middle, webkit_event.button); 300 EXPECT_EQ(blink::WebMouseEvent::Button::Middle, webkit_event.button);
301 EXPECT_EQ(blink::WebInputEvent::MouseDown, webkit_event.type); 301 EXPECT_EQ(blink::WebInputEvent::MouseDown, webkit_event.type());
302 EXPECT_EQ(ui_event.GetClickCount(), webkit_event.clickCount); 302 EXPECT_EQ(ui_event.GetClickCount(), webkit_event.clickCount);
303 EXPECT_EQ(123, webkit_event.x); 303 EXPECT_EQ(123, webkit_event.x);
304 EXPECT_EQ(123, webkit_event.windowX); 304 EXPECT_EQ(123, webkit_event.windowX);
305 EXPECT_EQ(321, webkit_event.y); 305 EXPECT_EQ(321, webkit_event.y);
306 EXPECT_EQ(321, webkit_event.windowY); 306 EXPECT_EQ(321, webkit_event.windowY);
307 } 307 }
308 { 308 {
309 // Middle released. 309 // Middle released.
310 base::TimeTicks timestamp = EventTimeForNow(); 310 base::TimeTicks timestamp = EventTimeForNow();
311 MouseEvent ui_event(ET_MOUSE_RELEASED, gfx::Point(123, 321), 311 MouseEvent ui_event(ET_MOUSE_RELEASED, gfx::Point(123, 321),
312 gfx::Point(123, 321), timestamp, 0, 312 gfx::Point(123, 321), timestamp, 0,
313 EF_MIDDLE_MOUSE_BUTTON); 313 EF_MIDDLE_MOUSE_BUTTON);
314 blink::WebMouseEvent webkit_event = 314 blink::WebMouseEvent webkit_event =
315 MakeWebMouseEvent(ui_event, base::Bind(&GetScreenLocationFromEvent)); 315 MakeWebMouseEvent(ui_event, base::Bind(&GetScreenLocationFromEvent));
316 EXPECT_EQ(EventFlagsToWebEventModifiers(ui_event.flags()), 316 EXPECT_EQ(EventFlagsToWebEventModifiers(ui_event.flags()),
317 webkit_event.modifiers); 317 webkit_event.modifiers());
318 EXPECT_FLOAT_EQ(EventTimeStampToSeconds(timestamp), 318 EXPECT_FLOAT_EQ(EventTimeStampToSeconds(timestamp),
319 webkit_event.timeStampSeconds); 319 webkit_event.timeStampSeconds());
320 EXPECT_EQ(blink::WebMouseEvent::Button::Middle, webkit_event.button); 320 EXPECT_EQ(blink::WebMouseEvent::Button::Middle, webkit_event.button);
321 EXPECT_EQ(blink::WebInputEvent::MouseUp, webkit_event.type); 321 EXPECT_EQ(blink::WebInputEvent::MouseUp, webkit_event.type());
322 EXPECT_EQ(ui_event.GetClickCount(), webkit_event.clickCount); 322 EXPECT_EQ(ui_event.GetClickCount(), webkit_event.clickCount);
323 EXPECT_EQ(123, webkit_event.x); 323 EXPECT_EQ(123, webkit_event.x);
324 EXPECT_EQ(123, webkit_event.windowX); 324 EXPECT_EQ(123, webkit_event.windowX);
325 EXPECT_EQ(321, webkit_event.y); 325 EXPECT_EQ(321, webkit_event.y);
326 EXPECT_EQ(321, webkit_event.windowY); 326 EXPECT_EQ(321, webkit_event.windowY);
327 } 327 }
328 { 328 {
329 // Right pressed. 329 // Right pressed.
330 base::TimeTicks timestamp = EventTimeForNow(); 330 base::TimeTicks timestamp = EventTimeForNow();
331 MouseEvent ui_event(ET_MOUSE_PRESSED, gfx::Point(123, 321), 331 MouseEvent ui_event(ET_MOUSE_PRESSED, gfx::Point(123, 321),
332 gfx::Point(123, 321), timestamp, EF_RIGHT_MOUSE_BUTTON, 332 gfx::Point(123, 321), timestamp, EF_RIGHT_MOUSE_BUTTON,
333 EF_RIGHT_MOUSE_BUTTON); 333 EF_RIGHT_MOUSE_BUTTON);
334 blink::WebMouseEvent webkit_event = 334 blink::WebMouseEvent webkit_event =
335 MakeWebMouseEvent(ui_event, base::Bind(&GetScreenLocationFromEvent)); 335 MakeWebMouseEvent(ui_event, base::Bind(&GetScreenLocationFromEvent));
336 EXPECT_EQ(EventFlagsToWebEventModifiers(ui_event.flags()), 336 EXPECT_EQ(EventFlagsToWebEventModifiers(ui_event.flags()),
337 webkit_event.modifiers); 337 webkit_event.modifiers());
338 EXPECT_FLOAT_EQ(EventTimeStampToSeconds(timestamp), 338 EXPECT_FLOAT_EQ(EventTimeStampToSeconds(timestamp),
339 webkit_event.timeStampSeconds); 339 webkit_event.timeStampSeconds());
340 EXPECT_EQ(blink::WebMouseEvent::Button::Right, webkit_event.button); 340 EXPECT_EQ(blink::WebMouseEvent::Button::Right, webkit_event.button);
341 EXPECT_EQ(blink::WebInputEvent::MouseDown, webkit_event.type); 341 EXPECT_EQ(blink::WebInputEvent::MouseDown, webkit_event.type());
342 EXPECT_EQ(ui_event.GetClickCount(), webkit_event.clickCount); 342 EXPECT_EQ(ui_event.GetClickCount(), webkit_event.clickCount);
343 EXPECT_EQ(123, webkit_event.x); 343 EXPECT_EQ(123, webkit_event.x);
344 EXPECT_EQ(123, webkit_event.windowX); 344 EXPECT_EQ(123, webkit_event.windowX);
345 EXPECT_EQ(321, webkit_event.y); 345 EXPECT_EQ(321, webkit_event.y);
346 EXPECT_EQ(321, webkit_event.windowY); 346 EXPECT_EQ(321, webkit_event.windowY);
347 } 347 }
348 { 348 {
349 // Right released. 349 // Right released.
350 base::TimeTicks timestamp = EventTimeForNow(); 350 base::TimeTicks timestamp = EventTimeForNow();
351 MouseEvent ui_event(ET_MOUSE_RELEASED, gfx::Point(123, 321), 351 MouseEvent ui_event(ET_MOUSE_RELEASED, gfx::Point(123, 321),
352 gfx::Point(123, 321), timestamp, 0, 352 gfx::Point(123, 321), timestamp, 0,
353 EF_RIGHT_MOUSE_BUTTON); 353 EF_RIGHT_MOUSE_BUTTON);
354 blink::WebMouseEvent webkit_event = 354 blink::WebMouseEvent webkit_event =
355 MakeWebMouseEvent(ui_event, base::Bind(&GetScreenLocationFromEvent)); 355 MakeWebMouseEvent(ui_event, base::Bind(&GetScreenLocationFromEvent));
356 EXPECT_EQ(EventFlagsToWebEventModifiers(ui_event.flags()), 356 EXPECT_EQ(EventFlagsToWebEventModifiers(ui_event.flags()),
357 webkit_event.modifiers); 357 webkit_event.modifiers());
358 EXPECT_FLOAT_EQ(EventTimeStampToSeconds(timestamp), 358 EXPECT_FLOAT_EQ(EventTimeStampToSeconds(timestamp),
359 webkit_event.timeStampSeconds); 359 webkit_event.timeStampSeconds());
360 EXPECT_EQ(blink::WebMouseEvent::Button::Right, webkit_event.button); 360 EXPECT_EQ(blink::WebMouseEvent::Button::Right, webkit_event.button);
361 EXPECT_EQ(blink::WebInputEvent::MouseUp, webkit_event.type); 361 EXPECT_EQ(blink::WebInputEvent::MouseUp, webkit_event.type());
362 EXPECT_EQ(ui_event.GetClickCount(), webkit_event.clickCount); 362 EXPECT_EQ(ui_event.GetClickCount(), webkit_event.clickCount);
363 EXPECT_EQ(123, webkit_event.x); 363 EXPECT_EQ(123, webkit_event.x);
364 EXPECT_EQ(123, webkit_event.windowX); 364 EXPECT_EQ(123, webkit_event.windowX);
365 EXPECT_EQ(321, webkit_event.y); 365 EXPECT_EQ(321, webkit_event.y);
366 EXPECT_EQ(321, webkit_event.windowY); 366 EXPECT_EQ(321, webkit_event.windowY);
367 } 367 }
368 { 368 {
369 // Moved 369 // Moved
370 base::TimeTicks timestamp = EventTimeForNow(); 370 base::TimeTicks timestamp = EventTimeForNow();
371 MouseEvent ui_event(ET_MOUSE_MOVED, gfx::Point(123, 321), 371 MouseEvent ui_event(ET_MOUSE_MOVED, gfx::Point(123, 321),
372 gfx::Point(123, 321), timestamp, 0, 0); 372 gfx::Point(123, 321), timestamp, 0, 0);
373 blink::WebMouseEvent webkit_event = 373 blink::WebMouseEvent webkit_event =
374 MakeWebMouseEvent(ui_event, base::Bind(&GetScreenLocationFromEvent)); 374 MakeWebMouseEvent(ui_event, base::Bind(&GetScreenLocationFromEvent));
375 EXPECT_EQ(EventFlagsToWebEventModifiers(ui_event.flags()), 375 EXPECT_EQ(EventFlagsToWebEventModifiers(ui_event.flags()),
376 webkit_event.modifiers); 376 webkit_event.modifiers());
377 EXPECT_FLOAT_EQ(EventTimeStampToSeconds(timestamp), 377 EXPECT_FLOAT_EQ(EventTimeStampToSeconds(timestamp),
378 webkit_event.timeStampSeconds); 378 webkit_event.timeStampSeconds());
379 EXPECT_EQ(blink::WebMouseEvent::Button::NoButton, webkit_event.button); 379 EXPECT_EQ(blink::WebMouseEvent::Button::NoButton, webkit_event.button);
380 EXPECT_EQ(blink::WebInputEvent::MouseMove, webkit_event.type); 380 EXPECT_EQ(blink::WebInputEvent::MouseMove, webkit_event.type());
381 EXPECT_EQ(ui_event.GetClickCount(), webkit_event.clickCount); 381 EXPECT_EQ(ui_event.GetClickCount(), webkit_event.clickCount);
382 EXPECT_EQ(123, webkit_event.x); 382 EXPECT_EQ(123, webkit_event.x);
383 EXPECT_EQ(123, webkit_event.windowX); 383 EXPECT_EQ(123, webkit_event.windowX);
384 EXPECT_EQ(321, webkit_event.y); 384 EXPECT_EQ(321, webkit_event.y);
385 EXPECT_EQ(321, webkit_event.windowY); 385 EXPECT_EQ(321, webkit_event.windowY);
386 } 386 }
387 { 387 {
388 // Moved with left down 388 // Moved with left down
389 base::TimeTicks timestamp = EventTimeForNow(); 389 base::TimeTicks timestamp = EventTimeForNow();
390 MouseEvent ui_event(ET_MOUSE_MOVED, gfx::Point(123, 321), 390 MouseEvent ui_event(ET_MOUSE_MOVED, gfx::Point(123, 321),
391 gfx::Point(123, 321), timestamp, EF_LEFT_MOUSE_BUTTON, 391 gfx::Point(123, 321), timestamp, EF_LEFT_MOUSE_BUTTON,
392 0); 392 0);
393 blink::WebMouseEvent webkit_event = 393 blink::WebMouseEvent webkit_event =
394 MakeWebMouseEvent(ui_event, base::Bind(&GetScreenLocationFromEvent)); 394 MakeWebMouseEvent(ui_event, base::Bind(&GetScreenLocationFromEvent));
395 EXPECT_EQ(EventFlagsToWebEventModifiers(ui_event.flags()), 395 EXPECT_EQ(EventFlagsToWebEventModifiers(ui_event.flags()),
396 webkit_event.modifiers); 396 webkit_event.modifiers());
397 EXPECT_FLOAT_EQ(EventTimeStampToSeconds(timestamp), 397 EXPECT_FLOAT_EQ(EventTimeStampToSeconds(timestamp),
398 webkit_event.timeStampSeconds); 398 webkit_event.timeStampSeconds());
399 EXPECT_EQ(blink::WebMouseEvent::Button::Left, webkit_event.button); 399 EXPECT_EQ(blink::WebMouseEvent::Button::Left, webkit_event.button);
400 EXPECT_EQ(blink::WebInputEvent::MouseMove, webkit_event.type); 400 EXPECT_EQ(blink::WebInputEvent::MouseMove, webkit_event.type());
401 EXPECT_EQ(ui_event.GetClickCount(), webkit_event.clickCount); 401 EXPECT_EQ(ui_event.GetClickCount(), webkit_event.clickCount);
402 EXPECT_EQ(123, webkit_event.x); 402 EXPECT_EQ(123, webkit_event.x);
403 EXPECT_EQ(123, webkit_event.windowX); 403 EXPECT_EQ(123, webkit_event.windowX);
404 EXPECT_EQ(321, webkit_event.y); 404 EXPECT_EQ(321, webkit_event.y);
405 EXPECT_EQ(321, webkit_event.windowY); 405 EXPECT_EQ(321, webkit_event.windowY);
406 } 406 }
407 { 407 {
408 // Left with shift pressed. 408 // Left with shift pressed.
409 base::TimeTicks timestamp = EventTimeForNow(); 409 base::TimeTicks timestamp = EventTimeForNow();
410 MouseEvent ui_event( 410 MouseEvent ui_event(
411 ET_MOUSE_PRESSED, gfx::Point(123, 321), gfx::Point(123, 321), timestamp, 411 ET_MOUSE_PRESSED, gfx::Point(123, 321), gfx::Point(123, 321), timestamp,
412 EF_LEFT_MOUSE_BUTTON | EF_SHIFT_DOWN, EF_LEFT_MOUSE_BUTTON); 412 EF_LEFT_MOUSE_BUTTON | EF_SHIFT_DOWN, EF_LEFT_MOUSE_BUTTON);
413 blink::WebMouseEvent webkit_event = 413 blink::WebMouseEvent webkit_event =
414 MakeWebMouseEvent(ui_event, base::Bind(&GetScreenLocationFromEvent)); 414 MakeWebMouseEvent(ui_event, base::Bind(&GetScreenLocationFromEvent));
415 EXPECT_EQ(EventFlagsToWebEventModifiers(ui_event.flags()), 415 EXPECT_EQ(EventFlagsToWebEventModifiers(ui_event.flags()),
416 webkit_event.modifiers); 416 webkit_event.modifiers());
417 EXPECT_FLOAT_EQ(EventTimeStampToSeconds(timestamp), 417 EXPECT_FLOAT_EQ(EventTimeStampToSeconds(timestamp),
418 webkit_event.timeStampSeconds); 418 webkit_event.timeStampSeconds());
419 EXPECT_EQ(blink::WebMouseEvent::Button::Left, webkit_event.button); 419 EXPECT_EQ(blink::WebMouseEvent::Button::Left, webkit_event.button);
420 EXPECT_EQ(blink::WebInputEvent::MouseDown, webkit_event.type); 420 EXPECT_EQ(blink::WebInputEvent::MouseDown, webkit_event.type());
421 EXPECT_EQ(ui_event.GetClickCount(), webkit_event.clickCount); 421 EXPECT_EQ(ui_event.GetClickCount(), webkit_event.clickCount);
422 EXPECT_EQ(123, webkit_event.x); 422 EXPECT_EQ(123, webkit_event.x);
423 EXPECT_EQ(123, webkit_event.windowX); 423 EXPECT_EQ(123, webkit_event.windowX);
424 EXPECT_EQ(321, webkit_event.y); 424 EXPECT_EQ(321, webkit_event.y);
425 EXPECT_EQ(321, webkit_event.windowY); 425 EXPECT_EQ(321, webkit_event.windowY);
426 } 426 }
427 { 427 {
428 // Default values for PointerDetails. 428 // Default values for PointerDetails.
429 base::TimeTicks timestamp = EventTimeForNow(); 429 base::TimeTicks timestamp = EventTimeForNow();
430 MouseEvent ui_event(ET_MOUSE_PRESSED, gfx::Point(123, 321), 430 MouseEvent ui_event(ET_MOUSE_PRESSED, gfx::Point(123, 321),
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
475 { 475 {
476 // Mouse wheel. 476 // Mouse wheel.
477 base::TimeTicks timestamp = EventTimeForNow(); 477 base::TimeTicks timestamp = EventTimeForNow();
478 MouseWheelEvent ui_event(gfx::Vector2d(MouseWheelEvent::kWheelDelta * 2, 478 MouseWheelEvent ui_event(gfx::Vector2d(MouseWheelEvent::kWheelDelta * 2,
479 -MouseWheelEvent::kWheelDelta * 2), 479 -MouseWheelEvent::kWheelDelta * 2),
480 gfx::Point(123, 321), gfx::Point(123, 321), 480 gfx::Point(123, 321), gfx::Point(123, 321),
481 timestamp, 0, 0); 481 timestamp, 0, 0);
482 blink::WebMouseWheelEvent webkit_event = MakeWebMouseWheelEvent( 482 blink::WebMouseWheelEvent webkit_event = MakeWebMouseWheelEvent(
483 ui_event, base::Bind(&GetScreenLocationFromEvent)); 483 ui_event, base::Bind(&GetScreenLocationFromEvent));
484 EXPECT_EQ(EventFlagsToWebEventModifiers(ui_event.flags()), 484 EXPECT_EQ(EventFlagsToWebEventModifiers(ui_event.flags()),
485 webkit_event.modifiers); 485 webkit_event.modifiers());
486 EXPECT_FLOAT_EQ(EventTimeStampToSeconds(timestamp), 486 EXPECT_FLOAT_EQ(EventTimeStampToSeconds(timestamp),
487 webkit_event.timeStampSeconds); 487 webkit_event.timeStampSeconds());
488 EXPECT_EQ(blink::WebMouseEvent::Button::NoButton, webkit_event.button); 488 EXPECT_EQ(blink::WebMouseEvent::Button::NoButton, webkit_event.button);
489 EXPECT_EQ(blink::WebInputEvent::MouseWheel, webkit_event.type); 489 EXPECT_EQ(blink::WebInputEvent::MouseWheel, webkit_event.type());
490 EXPECT_FLOAT_EQ(ui_event.x_offset() / MouseWheelEvent::kWheelDelta, 490 EXPECT_FLOAT_EQ(ui_event.x_offset() / MouseWheelEvent::kWheelDelta,
491 webkit_event.wheelTicksX); 491 webkit_event.wheelTicksX);
492 EXPECT_FLOAT_EQ(ui_event.y_offset() / MouseWheelEvent::kWheelDelta, 492 EXPECT_FLOAT_EQ(ui_event.y_offset() / MouseWheelEvent::kWheelDelta,
493 webkit_event.wheelTicksY); 493 webkit_event.wheelTicksY);
494 EXPECT_EQ(blink::WebPointerProperties::PointerType::Mouse, 494 EXPECT_EQ(blink::WebPointerProperties::PointerType::Mouse,
495 webkit_event.pointerType); 495 webkit_event.pointerType);
496 EXPECT_EQ(0, webkit_event.tiltX); 496 EXPECT_EQ(0, webkit_event.tiltX);
497 EXPECT_EQ(0, webkit_event.tiltY); 497 EXPECT_EQ(0, webkit_event.tiltY);
498 EXPECT_TRUE(std::isnan(webkit_event.force)); 498 EXPECT_TRUE(std::isnan(webkit_event.force));
499 EXPECT_EQ(123, webkit_event.x); 499 EXPECT_EQ(123, webkit_event.x);
(...skipping 12 matching lines...) Expand all
512 {ui::KeyEvent(ui::ET_KEY_PRESSED, ui::VKEY_A, ui::EF_NONE), 512 {ui::KeyEvent(ui::ET_KEY_PRESSED, ui::VKEY_A, ui::EF_NONE),
513 blink::WebInputEvent::RawKeyDown, 0x0}, 513 blink::WebInputEvent::RawKeyDown, 0x0},
514 {ui::KeyEvent(L'B', ui::VKEY_B, ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN), 514 {ui::KeyEvent(L'B', ui::VKEY_B, ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN),
515 blink::WebInputEvent::Char, 515 blink::WebInputEvent::Char,
516 blink::WebInputEvent::ShiftKey | blink::WebInputEvent::ControlKey}, 516 blink::WebInputEvent::ShiftKey | blink::WebInputEvent::ControlKey},
517 {ui::KeyEvent(ui::ET_KEY_RELEASED, ui::VKEY_C, ui::EF_ALT_DOWN), 517 {ui::KeyEvent(ui::ET_KEY_RELEASED, ui::VKEY_C, ui::EF_ALT_DOWN),
518 blink::WebInputEvent::KeyUp, blink::WebInputEvent::AltKey}}; 518 blink::WebInputEvent::KeyUp, blink::WebInputEvent::AltKey}};
519 519
520 for (size_t i = 0; i < arraysize(tests); i++) { 520 for (size_t i = 0; i < arraysize(tests); i++) {
521 blink::WebKeyboardEvent web_event = MakeWebKeyboardEvent(tests[i].event); 521 blink::WebKeyboardEvent web_event = MakeWebKeyboardEvent(tests[i].event);
522 ASSERT_TRUE(blink::WebInputEvent::isKeyboardEventType(web_event.type)); 522 ASSERT_TRUE(blink::WebInputEvent::isKeyboardEventType(web_event.type()));
523 ASSERT_EQ(tests[i].web_type, web_event.type); 523 ASSERT_EQ(tests[i].web_type, web_event.type());
524 ASSERT_EQ(tests[i].web_modifiers, web_event.modifiers); 524 ASSERT_EQ(tests[i].web_modifiers, web_event.modifiers());
525 ASSERT_EQ(static_cast<int>(tests[i].event.GetLocatedWindowsKeyboardCode()), 525 ASSERT_EQ(static_cast<int>(tests[i].event.GetLocatedWindowsKeyboardCode()),
526 web_event.windowsKeyCode); 526 web_event.windowsKeyCode);
527 } 527 }
528 } 528 }
529 529
530 TEST(WebInputEventTest, WheelEvent) { 530 TEST(WebInputEventTest, WheelEvent) {
531 const int kDeltaX = 14; 531 const int kDeltaX = 14;
532 const int kDeltaY = -3; 532 const int kDeltaY = -3;
533 ui::MouseWheelEvent ui_event( 533 ui::MouseWheelEvent ui_event(
534 ui::MouseEvent(ui::ET_UNKNOWN, gfx::Point(), gfx::Point(), 534 ui::MouseEvent(ui::ET_UNKNOWN, gfx::Point(), gfx::Point(),
535 base::TimeTicks(), 0, 0), 535 base::TimeTicks(), 0, 0),
536 kDeltaX, kDeltaY); 536 kDeltaX, kDeltaY);
537 blink::WebMouseWheelEvent web_event = 537 blink::WebMouseWheelEvent web_event =
538 MakeWebMouseWheelEvent(ui_event, base::Bind(&GetScreenLocationFromEvent)); 538 MakeWebMouseWheelEvent(ui_event, base::Bind(&GetScreenLocationFromEvent));
539 ASSERT_EQ(blink::WebInputEvent::MouseWheel, web_event.type); 539 ASSERT_EQ(blink::WebInputEvent::MouseWheel, web_event.type());
540 ASSERT_EQ(0, web_event.modifiers); 540 ASSERT_EQ(0, web_event.modifiers());
541 ASSERT_EQ(kDeltaX, web_event.deltaX); 541 ASSERT_EQ(kDeltaX, web_event.deltaX);
542 ASSERT_EQ(kDeltaY, web_event.deltaY); 542 ASSERT_EQ(kDeltaY, web_event.deltaY);
543 } 543 }
544 544
545 TEST(WebInputEventTest, MousePointerEvent) { 545 TEST(WebInputEventTest, MousePointerEvent) {
546 struct { 546 struct {
547 ui::EventType ui_type; 547 ui::EventType ui_type;
548 blink::WebInputEvent::Type web_type; 548 blink::WebInputEvent::Type web_type;
549 int ui_modifiers; 549 int ui_modifiers;
550 int web_modifiers; 550 int web_modifiers;
(...skipping 11 matching lines...) Expand all
562 blink::WebInputEvent::RightButtonDown, 562 blink::WebInputEvent::RightButtonDown,
563 gfx::Point(13, 3), gfx::Point(53, 3)}, 563 gfx::Point(13, 3), gfx::Point(53, 3)},
564 }; 564 };
565 565
566 for (size_t i = 0; i < arraysize(tests); i++) { 566 for (size_t i = 0; i < arraysize(tests); i++) {
567 ui::MouseEvent ui_event(tests[i].ui_type, tests[i].location, 567 ui::MouseEvent ui_event(tests[i].ui_type, tests[i].location,
568 tests[i].screen_location, base::TimeTicks(), 568 tests[i].screen_location, base::TimeTicks(),
569 tests[i].ui_modifiers, 0); 569 tests[i].ui_modifiers, 0);
570 blink::WebMouseEvent web_event = 570 blink::WebMouseEvent web_event =
571 MakeWebMouseEvent(ui_event, base::Bind(&GetScreenLocationFromEvent)); 571 MakeWebMouseEvent(ui_event, base::Bind(&GetScreenLocationFromEvent));
572 ASSERT_TRUE(blink::WebInputEvent::isMouseEventType(web_event.type)); 572 ASSERT_TRUE(blink::WebInputEvent::isMouseEventType(web_event.type()));
573 ASSERT_EQ(tests[i].web_type, web_event.type); 573 ASSERT_EQ(tests[i].web_type, web_event.type());
574 ASSERT_EQ(tests[i].web_modifiers, web_event.modifiers); 574 ASSERT_EQ(tests[i].web_modifiers, web_event.modifiers());
575 ASSERT_EQ(tests[i].location.x(), web_event.x); 575 ASSERT_EQ(tests[i].location.x(), web_event.x);
576 ASSERT_EQ(tests[i].location.y(), web_event.y); 576 ASSERT_EQ(tests[i].location.y(), web_event.y);
577 ASSERT_EQ(tests[i].screen_location.x(), web_event.globalX); 577 ASSERT_EQ(tests[i].screen_location.x(), web_event.globalX);
578 ASSERT_EQ(tests[i].screen_location.y(), web_event.globalY); 578 ASSERT_EQ(tests[i].screen_location.y(), web_event.globalY);
579 } 579 }
580 } 580 }
581 581
582 } // namespace ui 582 } // namespace ui
OLDNEW
« no previous file with comments | « ui/events/blink/web_input_event_traits.cc ('k') | ui/views/controls/webview/unhandled_keyboard_event_handler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698