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

Side by Side Diff: content/browser/renderer_host/web_input_event_aura_unittest.cc

Issue 1266643002: content: Populate WebPointerProperties with stylus details from ui::MouseEvent (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@experimental-pointer-events
Patch Set: Fix windows floating point conversion Created 5 years, 3 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 "content/browser/renderer_host/web_input_event_aura.h" 5 #include "content/browser/renderer_host/web_input_event_aura.h"
6 6
7 #include "base/basictypes.h" 7 #include "base/basictypes.h"
8 #include "testing/gtest/include/gtest/gtest.h" 8 #include "testing/gtest/include/gtest/gtest.h"
9 #include "ui/events/blink/blink_event_util.h"
9 #include "ui/events/event.h" 10 #include "ui/events/event.h"
10 #include "ui/events/event_utils.h" 11 #include "ui/events/event_utils.h"
11 #include "ui/events/keycodes/dom/dom_code.h" 12 #include "ui/events/keycodes/dom/dom_code.h"
12 #include "ui/events/keycodes/dom/dom_key.h" 13 #include "ui/events/keycodes/dom/dom_key.h"
13 #include "ui/events/keycodes/dom/keycode_converter.h" 14 #include "ui/events/keycodes/dom/keycode_converter.h"
14 15
15 #if defined(USE_X11) 16 #if defined(USE_X11)
16 #include <X11/keysym.h> 17 #include <X11/keysym.h>
17 #include <X11/Xlib.h> 18 #include <X11/Xlib.h>
18 #include "ui/events/test/events_test_utils_x11.h" 19 #include "ui/events/test/events_test_utils_x11.h"
(...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after
239 << "Failed in " << i << "th test case: " 240 << "Failed in " << i << "th test case: "
240 << "{dom_code:" 241 << "{dom_code:"
241 << ui::KeycodeConverter::DomCodeToCodeString(test_case.dom_code) 242 << ui::KeycodeConverter::DomCodeToCodeString(test_case.dom_code)
242 << ", ui_keycode:" << test_case.ui_keycode 243 << ", ui_keycode:" << test_case.ui_keycode
243 << ", x_keysym:" << test_case.x_keysym 244 << ", x_keysym:" << test_case.x_keysym
244 << "}, expect: " << test_case.expected_result; 245 << "}, expect: " << test_case.expected_result;
245 } 246 }
246 #endif 247 #endif
247 } 248 }
248 249
250 // MakeWebMouseEventFromAuraEvent does not use position information.
251 TEST(WebInputEventAuraTest, TestMakeWebMouseEventAura) {
252 {
253 // Left pressed.
254 base::TimeDelta timestamp = ui::EventTimeForNow();
255 ui::MouseEvent aura_event(ui::ET_MOUSE_PRESSED, gfx::PointF(123.0, 321.0),
256 gfx::PointF(123.0, 321.0), timestamp,
257 ui::EF_LEFT_MOUSE_BUTTON,
258 ui::EF_LEFT_MOUSE_BUTTON);
259 blink::WebMouseEvent webkit_event =
260 MakeWebMouseEventFromAuraEvent(aura_event);
261 EXPECT_EQ(ui::EventFlagsToWebEventModifiers(aura_event.flags()),
262 webkit_event.modifiers);
263 EXPECT_FLOAT_EQ(timestamp.InSecondsF(), webkit_event.timeStampSeconds);
264 EXPECT_EQ(blink::WebMouseEvent::ButtonLeft, webkit_event.button);
265 EXPECT_EQ(blink::WebInputEvent::MouseDown, webkit_event.type);
266 EXPECT_EQ(aura_event.GetClickCount(), webkit_event.clickCount);
267 }
268 {
269 // Left released.
270 base::TimeDelta timestamp = ui::EventTimeForNow();
271 ui::MouseEvent aura_event(ui::ET_MOUSE_RELEASED, gfx::PointF(123.0, 321.0),
272 gfx::PointF(123.0, 321.0), timestamp, 0,
273 ui::EF_LEFT_MOUSE_BUTTON);
274 blink::WebMouseEvent webkit_event =
275 MakeWebMouseEventFromAuraEvent(aura_event);
276 EXPECT_EQ(ui::EventFlagsToWebEventModifiers(aura_event.flags()),
277 webkit_event.modifiers);
278 EXPECT_FLOAT_EQ(timestamp.InSecondsF(), webkit_event.timeStampSeconds);
279 EXPECT_EQ(blink::WebMouseEvent::ButtonLeft, webkit_event.button);
280 EXPECT_EQ(blink::WebInputEvent::MouseUp, webkit_event.type);
281 EXPECT_EQ(aura_event.GetClickCount(), webkit_event.clickCount);
282 }
283 {
284 // Middle pressed.
285 base::TimeDelta timestamp = ui::EventTimeForNow();
286 ui::MouseEvent aura_event(ui::ET_MOUSE_PRESSED, gfx::PointF(123.0, 321.0),
287 gfx::PointF(123.0, 321.0), timestamp,
288 ui::EF_MIDDLE_MOUSE_BUTTON,
289 ui::EF_MIDDLE_MOUSE_BUTTON);
290 blink::WebMouseEvent webkit_event =
291 MakeWebMouseEventFromAuraEvent(aura_event);
292 EXPECT_EQ(ui::EventFlagsToWebEventModifiers(aura_event.flags()),
293 webkit_event.modifiers);
294 EXPECT_FLOAT_EQ(timestamp.InSecondsF(), webkit_event.timeStampSeconds);
295 EXPECT_EQ(blink::WebMouseEvent::ButtonMiddle, webkit_event.button);
296 EXPECT_EQ(blink::WebInputEvent::MouseDown, webkit_event.type);
297 EXPECT_EQ(aura_event.GetClickCount(), webkit_event.clickCount);
298 }
299 {
300 // Middle released.
301 base::TimeDelta timestamp = ui::EventTimeForNow();
302 ui::MouseEvent aura_event(ui::ET_MOUSE_RELEASED, gfx::PointF(123.0, 321.0),
303 gfx::PointF(123.0, 321.0), timestamp, 0,
304 ui::EF_MIDDLE_MOUSE_BUTTON);
305 blink::WebMouseEvent webkit_event =
306 MakeWebMouseEventFromAuraEvent(aura_event);
307 EXPECT_EQ(ui::EventFlagsToWebEventModifiers(aura_event.flags()),
308 webkit_event.modifiers);
309 EXPECT_FLOAT_EQ(timestamp.InSecondsF(), webkit_event.timeStampSeconds);
310 EXPECT_EQ(blink::WebMouseEvent::ButtonMiddle, webkit_event.button);
311 EXPECT_EQ(blink::WebInputEvent::MouseUp, webkit_event.type);
312 EXPECT_EQ(aura_event.GetClickCount(), webkit_event.clickCount);
313 }
314 {
315 // Right pressed.
316 base::TimeDelta timestamp = ui::EventTimeForNow();
317 ui::MouseEvent aura_event(ui::ET_MOUSE_PRESSED, gfx::PointF(123.0, 321.0),
318 gfx::PointF(123.0, 321.0), timestamp,
319 ui::EF_RIGHT_MOUSE_BUTTON,
320 ui::EF_RIGHT_MOUSE_BUTTON);
321 blink::WebMouseEvent webkit_event =
322 MakeWebMouseEventFromAuraEvent(aura_event);
323 EXPECT_EQ(ui::EventFlagsToWebEventModifiers(aura_event.flags()),
324 webkit_event.modifiers);
325 EXPECT_FLOAT_EQ(timestamp.InSecondsF(), webkit_event.timeStampSeconds);
326 EXPECT_EQ(blink::WebMouseEvent::ButtonRight, webkit_event.button);
327 EXPECT_EQ(blink::WebInputEvent::MouseDown, webkit_event.type);
328 EXPECT_EQ(aura_event.GetClickCount(), webkit_event.clickCount);
329 }
330 {
331 // Right released.
332 base::TimeDelta timestamp = ui::EventTimeForNow();
333 ui::MouseEvent aura_event(ui::ET_MOUSE_RELEASED, gfx::PointF(123.0, 321.0),
334 gfx::PointF(123.0, 321.0), timestamp, 0,
335 ui::EF_RIGHT_MOUSE_BUTTON);
336 blink::WebMouseEvent webkit_event =
337 MakeWebMouseEventFromAuraEvent(aura_event);
338 EXPECT_EQ(ui::EventFlagsToWebEventModifiers(aura_event.flags()),
339 webkit_event.modifiers);
340 EXPECT_FLOAT_EQ(timestamp.InSecondsF(), webkit_event.timeStampSeconds);
341 EXPECT_EQ(blink::WebMouseEvent::ButtonRight, webkit_event.button);
342 EXPECT_EQ(blink::WebInputEvent::MouseUp, webkit_event.type);
343 EXPECT_EQ(aura_event.GetClickCount(), webkit_event.clickCount);
344 }
345 {
346 // Moved
347 base::TimeDelta timestamp = ui::EventTimeForNow();
348 ui::MouseEvent aura_event(ui::ET_MOUSE_MOVED, gfx::PointF(123.0, 321.0),
349 gfx::PointF(123.0, 321.0), timestamp, 0, 0);
350 blink::WebMouseEvent webkit_event =
351 MakeWebMouseEventFromAuraEvent(aura_event);
352 EXPECT_EQ(ui::EventFlagsToWebEventModifiers(aura_event.flags()),
353 webkit_event.modifiers);
354 EXPECT_FLOAT_EQ(timestamp.InSecondsF(), webkit_event.timeStampSeconds);
355 EXPECT_EQ(blink::WebMouseEvent::ButtonNone, webkit_event.button);
356 EXPECT_EQ(blink::WebInputEvent::MouseMove, webkit_event.type);
357 EXPECT_EQ(aura_event.GetClickCount(), webkit_event.clickCount);
358 }
359 {
360 // Moved with left down
361 base::TimeDelta timestamp = ui::EventTimeForNow();
362 ui::MouseEvent aura_event(ui::ET_MOUSE_MOVED, gfx::PointF(123.0, 321.0),
363 gfx::PointF(123.0, 321.0), timestamp,
364 ui::EF_LEFT_MOUSE_BUTTON, 0);
365 blink::WebMouseEvent webkit_event =
366 MakeWebMouseEventFromAuraEvent(aura_event);
367 EXPECT_EQ(ui::EventFlagsToWebEventModifiers(aura_event.flags()),
368 webkit_event.modifiers);
369 EXPECT_FLOAT_EQ(timestamp.InSecondsF(), webkit_event.timeStampSeconds);
370 EXPECT_EQ(blink::WebMouseEvent::ButtonLeft, webkit_event.button);
371 EXPECT_EQ(blink::WebInputEvent::MouseMove, webkit_event.type);
372 EXPECT_EQ(aura_event.GetClickCount(), webkit_event.clickCount);
373 }
374 {
375 // Left with shift pressed.
376 base::TimeDelta timestamp = ui::EventTimeForNow();
377 ui::MouseEvent aura_event(ui::ET_MOUSE_PRESSED, gfx::PointF(123.0, 321.0),
378 gfx::PointF(123.0, 321.0), timestamp,
379 ui::EF_LEFT_MOUSE_BUTTON | ui::EF_SHIFT_DOWN,
380 ui::EF_LEFT_MOUSE_BUTTON);
381 blink::WebMouseEvent webkit_event =
382 MakeWebMouseEventFromAuraEvent(aura_event);
383 EXPECT_EQ(ui::EventFlagsToWebEventModifiers(aura_event.flags()),
384 webkit_event.modifiers);
385 EXPECT_FLOAT_EQ(timestamp.InSecondsF(), webkit_event.timeStampSeconds);
386 EXPECT_EQ(blink::WebMouseEvent::ButtonLeft, webkit_event.button);
387 EXPECT_EQ(blink::WebInputEvent::MouseDown, webkit_event.type);
388 EXPECT_EQ(aura_event.GetClickCount(), webkit_event.clickCount);
389 }
390
391 {
392 // Default values for PointerDetails.
393 base::TimeDelta timestamp = ui::EventTimeForNow();
394 ui::MouseEvent aura_event(ui::ET_MOUSE_PRESSED, gfx::PointF(123.0, 321.0),
395 gfx::PointF(123.0, 321.0), timestamp,
396 ui::EF_LEFT_MOUSE_BUTTON,
397 ui::EF_LEFT_MOUSE_BUTTON);
398 blink::WebMouseEvent webkit_event =
399 MakeWebMouseEventFromAuraEvent(aura_event);
400
401 EXPECT_EQ(blink::WebPointerProperties::PointerType::PointerTypeMouse,
402 webkit_event.pointerType);
403 EXPECT_EQ(0, webkit_event.tiltX);
404 EXPECT_EQ(0, webkit_event.tiltY);
405 EXPECT_FLOAT_EQ(0.0f, webkit_event.force);
406 }
407 {
408 // Stylus values for PointerDetails.
409 base::TimeDelta timestamp = ui::EventTimeForNow();
410 ui::MouseEvent aura_event(ui::ET_MOUSE_PRESSED, gfx::PointF(123.0, 321.0),
411 gfx::PointF(123.0, 321.0), timestamp,
412 ui::EF_LEFT_MOUSE_BUTTON,
413 ui::EF_LEFT_MOUSE_BUTTON);
414 aura_event.set_pointer_details(
415 ui::PointerDetails(ui::EventPointerType::POINTER_TYPE_PEN,
416 /* radius_x */ 0.0f,
417 /* radius_y */ 0.0f,
418 /* force */ 0.8f,
419 /* tilt_x */ 89.5f,
420 /* tilt_y */ -89.5f));
421 blink::WebMouseEvent webkit_event =
422 MakeWebMouseEventFromAuraEvent(aura_event);
423
424 EXPECT_EQ(blink::WebPointerProperties::PointerType::PointerTypePen,
425 webkit_event.pointerType);
426 EXPECT_EQ(90, webkit_event.tiltX);
427 EXPECT_EQ(-90, webkit_event.tiltY);
428 EXPECT_FLOAT_EQ(0.8f, webkit_event.force);
429 }
430 }
431
432 TEST(WebInputEventAuraTest, TestMakeWebMouseWheelEventAura) {
433 {
434 // Mouse wheel.
435 base::TimeDelta timestamp = ui::EventTimeForNow();
436 ui::MouseWheelEvent aura_event(
437 gfx::Vector2d(ui::MouseWheelEvent::kWheelDelta * 2,
438 -ui::MouseWheelEvent::kWheelDelta * 2),
439 gfx::PointF(123.0, 321.0), gfx::PointF(123.0, 321.0), timestamp, 0, 0);
440 blink::WebMouseWheelEvent webkit_event =
441 MakeWebMouseWheelEventFromAuraEvent(aura_event);
442 EXPECT_EQ(ui::EventFlagsToWebEventModifiers(aura_event.flags()),
443 webkit_event.modifiers);
444 EXPECT_FLOAT_EQ(timestamp.InSecondsF(), webkit_event.timeStampSeconds);
445 EXPECT_EQ(blink::WebMouseEvent::ButtonNone, webkit_event.button);
446 EXPECT_EQ(blink::WebInputEvent::MouseWheel, webkit_event.type);
447 EXPECT_FLOAT_EQ(aura_event.x_offset() / 53.0f, webkit_event.wheelTicksX);
448 EXPECT_FLOAT_EQ(aura_event.y_offset() / 53.0f, webkit_event.wheelTicksY);
449 EXPECT_EQ(blink::WebPointerProperties::PointerType::PointerTypeMouse,
450 webkit_event.pointerType);
451 EXPECT_EQ(0, webkit_event.tiltX);
452 EXPECT_EQ(0, webkit_event.tiltY);
453 EXPECT_FLOAT_EQ(0.0f, webkit_event.force);
454 }
455 {
456 // Mouse wheel with shift and no x offset.
457 base::TimeDelta timestamp = ui::EventTimeForNow();
458 ui::MouseWheelEvent aura_event(
459 gfx::Vector2d(0, -ui::MouseWheelEvent::kWheelDelta * 2),
460 gfx::PointF(123.0, 321.0), gfx::PointF(123.0, 321.0), timestamp,
461 ui::EF_SHIFT_DOWN, 0);
462 blink::WebMouseWheelEvent webkit_event =
463 MakeWebMouseWheelEventFromAuraEvent(aura_event);
464 EXPECT_EQ(ui::EventFlagsToWebEventModifiers(aura_event.flags()),
465 webkit_event.modifiers);
466 EXPECT_FLOAT_EQ(timestamp.InSecondsF(), webkit_event.timeStampSeconds);
467 EXPECT_EQ(blink::WebMouseEvent::ButtonNone, webkit_event.button);
468 EXPECT_EQ(blink::WebInputEvent::MouseWheel, webkit_event.type);
469 EXPECT_FLOAT_EQ(aura_event.y_offset() / 53.0f, webkit_event.wheelTicksX);
470 EXPECT_FLOAT_EQ(0, webkit_event.wheelTicksY);
471 EXPECT_EQ(blink::WebPointerProperties::PointerType::PointerTypeMouse,
472 webkit_event.pointerType);
473 EXPECT_EQ(0, webkit_event.tiltX);
474 EXPECT_EQ(0, webkit_event.tiltY);
475 EXPECT_FLOAT_EQ(0.0f, webkit_event.force);
476 }
477 }
478
249 } // namespace content 479 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698