| OLD | NEW |
| 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 469 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 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() / 53.0f, webkit_event.wheelTicksX); | 490 EXPECT_FLOAT_EQ(ui_event.x_offset() / MouseWheelEvent::kWheelDelta, |
| 491 EXPECT_FLOAT_EQ(ui_event.y_offset() / 53.0f, webkit_event.wheelTicksY); | 491 webkit_event.wheelTicksX); |
| 492 EXPECT_FLOAT_EQ(ui_event.y_offset() / MouseWheelEvent::kWheelDelta, |
| 493 webkit_event.wheelTicksY); |
| 492 EXPECT_EQ(blink::WebPointerProperties::PointerType::Mouse, | 494 EXPECT_EQ(blink::WebPointerProperties::PointerType::Mouse, |
| 493 webkit_event.pointerType); | 495 webkit_event.pointerType); |
| 494 EXPECT_EQ(0, webkit_event.tiltX); | 496 EXPECT_EQ(0, webkit_event.tiltX); |
| 495 EXPECT_EQ(0, webkit_event.tiltY); | 497 EXPECT_EQ(0, webkit_event.tiltY); |
| 496 EXPECT_TRUE(std::isnan(webkit_event.force)); | 498 EXPECT_TRUE(std::isnan(webkit_event.force)); |
| 497 EXPECT_EQ(123, webkit_event.x); | 499 EXPECT_EQ(123, webkit_event.x); |
| 498 EXPECT_EQ(123, webkit_event.windowX); | 500 EXPECT_EQ(123, webkit_event.windowX); |
| 499 EXPECT_EQ(321, webkit_event.y); | 501 EXPECT_EQ(321, webkit_event.y); |
| 500 EXPECT_EQ(321, webkit_event.windowY); | 502 EXPECT_EQ(321, webkit_event.windowY); |
| 501 } | 503 } |
| 502 { | 504 { |
| 503 // Mouse wheel with shift and no x offset. | 505 // Mouse wheel with shift and no x offset. |
| 504 base::TimeTicks timestamp = EventTimeForNow(); | 506 base::TimeTicks timestamp = EventTimeForNow(); |
| 505 MouseWheelEvent ui_event( | 507 MouseWheelEvent ui_event( |
| 506 gfx::Vector2d(0, -MouseWheelEvent::kWheelDelta * 2), | 508 gfx::Vector2d(0, -MouseWheelEvent::kWheelDelta * 2), |
| 507 gfx::Point(123, 321), gfx::Point(123, 321), timestamp, EF_SHIFT_DOWN, | 509 gfx::Point(123, 321), gfx::Point(123, 321), timestamp, EF_SHIFT_DOWN, |
| 508 0); | 510 0); |
| 509 blink::WebMouseWheelEvent webkit_event = MakeWebMouseWheelEvent( | 511 blink::WebMouseWheelEvent webkit_event = MakeWebMouseWheelEvent( |
| 510 ui_event, base::Bind(&GetScreenLocationFromEvent)); | 512 ui_event, base::Bind(&GetScreenLocationFromEvent)); |
| 511 EXPECT_EQ(EventFlagsToWebEventModifiers(ui_event.flags()), | 513 EXPECT_EQ(EventFlagsToWebEventModifiers(ui_event.flags()), |
| 512 webkit_event.modifiers); | 514 webkit_event.modifiers); |
| 513 EXPECT_FLOAT_EQ(EventTimeStampToSeconds(timestamp), | 515 EXPECT_FLOAT_EQ(EventTimeStampToSeconds(timestamp), |
| 514 webkit_event.timeStampSeconds); | 516 webkit_event.timeStampSeconds); |
| 515 EXPECT_EQ(blink::WebMouseEvent::Button::NoButton, webkit_event.button); | 517 EXPECT_EQ(blink::WebMouseEvent::Button::NoButton, webkit_event.button); |
| 516 EXPECT_EQ(blink::WebInputEvent::MouseWheel, webkit_event.type); | 518 EXPECT_EQ(blink::WebInputEvent::MouseWheel, webkit_event.type); |
| 517 EXPECT_FLOAT_EQ(ui_event.y_offset() / 53.0f, webkit_event.wheelTicksX); | 519 EXPECT_FLOAT_EQ(ui_event.y_offset() / MouseWheelEvent::kWheelDelta, |
| 520 webkit_event.wheelTicksX); |
| 518 EXPECT_FLOAT_EQ(0, webkit_event.wheelTicksY); | 521 EXPECT_FLOAT_EQ(0, webkit_event.wheelTicksY); |
| 519 EXPECT_EQ(blink::WebPointerProperties::PointerType::Mouse, | 522 EXPECT_EQ(blink::WebPointerProperties::PointerType::Mouse, |
| 520 webkit_event.pointerType); | 523 webkit_event.pointerType); |
| 521 EXPECT_EQ(0, webkit_event.tiltX); | 524 EXPECT_EQ(0, webkit_event.tiltX); |
| 522 EXPECT_EQ(0, webkit_event.tiltY); | 525 EXPECT_EQ(0, webkit_event.tiltY); |
| 523 EXPECT_TRUE(std::isnan(webkit_event.force)); | 526 EXPECT_TRUE(std::isnan(webkit_event.force)); |
| 524 EXPECT_EQ(123, webkit_event.x); | 527 EXPECT_EQ(123, webkit_event.x); |
| 525 EXPECT_EQ(123, webkit_event.windowX); | 528 EXPECT_EQ(123, webkit_event.windowX); |
| 526 EXPECT_EQ(321, webkit_event.y); | 529 EXPECT_EQ(321, webkit_event.y); |
| 527 EXPECT_EQ(321, webkit_event.windowY); | 530 EXPECT_EQ(321, webkit_event.windowY); |
| 528 } | 531 } |
| 529 } | 532 } |
| 530 | 533 |
| 534 TEST(WebInputEventTest, KeyEvent) { |
| 535 struct { |
| 536 ui::KeyEvent event; |
| 537 blink::WebInputEvent::Type web_type; |
| 538 int web_modifiers; |
| 539 } tests[] = { |
| 540 {ui::KeyEvent(ui::ET_KEY_PRESSED, ui::VKEY_A, ui::EF_NONE), |
| 541 blink::WebInputEvent::RawKeyDown, 0x0}, |
| 542 {ui::KeyEvent(L'B', ui::VKEY_B, ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN), |
| 543 blink::WebInputEvent::Char, |
| 544 blink::WebInputEvent::ShiftKey | blink::WebInputEvent::ControlKey}, |
| 545 {ui::KeyEvent(ui::ET_KEY_RELEASED, ui::VKEY_C, ui::EF_ALT_DOWN), |
| 546 blink::WebInputEvent::KeyUp, blink::WebInputEvent::AltKey}}; |
| 547 |
| 548 for (size_t i = 0; i < arraysize(tests); i++) { |
| 549 blink::WebKeyboardEvent web_event = MakeWebKeyboardEvent(tests[i].event); |
| 550 ASSERT_TRUE(blink::WebInputEvent::isKeyboardEventType(web_event.type)); |
| 551 ASSERT_EQ(tests[i].web_type, web_event.type); |
| 552 ASSERT_EQ(tests[i].web_modifiers, web_event.modifiers); |
| 553 ASSERT_EQ(static_cast<int>(tests[i].event.GetLocatedWindowsKeyboardCode()), |
| 554 web_event.windowsKeyCode); |
| 555 } |
| 556 } |
| 557 |
| 558 TEST(WebInputEventTest, WheelEvent) { |
| 559 const int kDeltaX = 14; |
| 560 const int kDeltaY = -3; |
| 561 ui::MouseWheelEvent ui_event( |
| 562 ui::MouseEvent(ui::ET_UNKNOWN, gfx::Point(), gfx::Point(), |
| 563 base::TimeTicks(), 0, 0), |
| 564 kDeltaX, kDeltaY); |
| 565 blink::WebMouseWheelEvent web_event = |
| 566 MakeWebMouseWheelEvent(ui_event, base::Bind(&GetScreenLocationFromEvent)); |
| 567 ASSERT_EQ(blink::WebInputEvent::MouseWheel, web_event.type); |
| 568 ASSERT_EQ(0, web_event.modifiers); |
| 569 ASSERT_EQ(kDeltaX, web_event.deltaX); |
| 570 ASSERT_EQ(kDeltaY, web_event.deltaY); |
| 571 } |
| 572 |
| 573 TEST(WebInputEventTest, MousePointerEvent) { |
| 574 struct { |
| 575 ui::EventType ui_type; |
| 576 blink::WebInputEvent::Type web_type; |
| 577 int ui_modifiers; |
| 578 int web_modifiers; |
| 579 gfx::Point location; |
| 580 gfx::Point screen_location; |
| 581 } tests[] = { |
| 582 {ui::ET_MOUSE_PRESSED, blink::WebInputEvent::MouseDown, 0x0, 0x0, |
| 583 gfx::Point(3, 5), gfx::Point(113, 125)}, |
| 584 {ui::ET_MOUSE_RELEASED, blink::WebInputEvent::MouseUp, |
| 585 ui::EF_LEFT_MOUSE_BUTTON, blink::WebInputEvent::LeftButtonDown, |
| 586 gfx::Point(100, 1), gfx::Point(50, 1)}, |
| 587 {ui::ET_MOUSE_MOVED, blink::WebInputEvent::MouseMove, |
| 588 ui::EF_MIDDLE_MOUSE_BUTTON | ui::EF_RIGHT_MOUSE_BUTTON, |
| 589 blink::WebInputEvent::MiddleButtonDown | |
| 590 blink::WebInputEvent::RightButtonDown, |
| 591 gfx::Point(13, 3), gfx::Point(53, 3)}, |
| 592 }; |
| 593 |
| 594 for (size_t i = 0; i < arraysize(tests); i++) { |
| 595 ui::MouseEvent ui_event(tests[i].ui_type, tests[i].location, |
| 596 tests[i].screen_location, base::TimeTicks(), |
| 597 tests[i].ui_modifiers, 0); |
| 598 blink::WebMouseEvent web_event = |
| 599 MakeWebMouseEvent(ui_event, base::Bind(&GetScreenLocationFromEvent)); |
| 600 ASSERT_TRUE(blink::WebInputEvent::isMouseEventType(web_event.type)); |
| 601 ASSERT_EQ(tests[i].web_type, web_event.type); |
| 602 ASSERT_EQ(tests[i].web_modifiers, web_event.modifiers); |
| 603 ASSERT_EQ(tests[i].location.x(), web_event.x); |
| 604 ASSERT_EQ(tests[i].location.y(), web_event.y); |
| 605 ASSERT_EQ(tests[i].screen_location.x(), web_event.globalX); |
| 606 ASSERT_EQ(tests[i].screen_location.y(), web_event.globalY); |
| 607 } |
| 608 } |
| 609 |
| 531 } // namespace ui | 610 } // namespace ui |
| OLD | NEW |