| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/input/web_input_event_builders_mac.h" | 5 #include "content/browser/renderer_host/input/web_input_event_builders_mac.h" |
| 6 | 6 |
| 7 #include <Carbon/Carbon.h> | 7 #include <Carbon/Carbon.h> |
| 8 #import <Cocoa/Cocoa.h> | 8 #import <Cocoa/Cocoa.h> |
| 9 #include <stddef.h> | 9 #include <stddef.h> |
| 10 | 10 |
| (...skipping 558 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 569 | 569 |
| 570 const NSEventType kEventTypeToTest[] = {NSKeyDown, NSKeyUp}; | 570 const NSEventType kEventTypeToTest[] = {NSKeyDown, NSKeyUp}; |
| 571 for (auto flags : kEventTypeToTest) { | 571 for (auto flags : kEventTypeToTest) { |
| 572 NSEvent* mac_event = BuildFakeKeyEvent(kVK_ContextMenu, 0, 0, flags); | 572 NSEvent* mac_event = BuildFakeKeyEvent(kVK_ContextMenu, 0, 0, flags); |
| 573 WebKeyboardEvent web_event = WebKeyboardEventBuilder::Build(mac_event); | 573 WebKeyboardEvent web_event = WebKeyboardEventBuilder::Build(mac_event); |
| 574 EXPECT_EQ(ui::DomKey::CONTEXT_MENU, web_event.domKey); | 574 EXPECT_EQ(ui::DomKey::CONTEXT_MENU, web_event.domKey); |
| 575 EXPECT_EQ(ui::VKEY_APPS, web_event.windowsKeyCode); | 575 EXPECT_EQ(ui::VKEY_APPS, web_event.windowsKeyCode); |
| 576 } | 576 } |
| 577 } | 577 } |
| 578 | 578 |
| 579 // Flaky - https://crbug.com/640457 | |
| 580 // Test that a ui::Event and blink::WebInputEvent made from the same NSEvent | 579 // Test that a ui::Event and blink::WebInputEvent made from the same NSEvent |
| 581 // have the same values for comparable fields. | 580 // have the same values for comparable fields. |
| 582 TEST(WebInputEventBuilderMacTest, DISABLED_ScrollWheelMatchesUIEvent) { | 581 TEST(WebInputEventBuilderMacTest, ScrollWheelMatchesUIEvent) { |
| 582 bool precise = false; |
| 583 CGFloat delta_x = 123; | 583 CGFloat delta_x = 123; |
| 584 CGFloat delta_y = 321; | 584 CGFloat delta_y = 321; |
| 585 NSPoint location = NSMakePoint(11, 22); | 585 NSPoint location = NSMakePoint(11, 22); |
| 586 | 586 |
| 587 // WebMouseWheelEventBuilder requires a non-nil view to map coordinates. So | 587 // WebMouseWheelEventBuilder requires a non-nil view to map coordinates. So |
| 588 // create a dummy window, but don't show it. It will be released when closed. | 588 // create a dummy window, but don't show it. It will be released when closed. |
| 589 NSWindow* window = | 589 NSWindow* window = |
| 590 [[NSWindow alloc] initWithContentRect:NSMakeRect(0, 0, 100, 100) | 590 [[NSWindow alloc] initWithContentRect:NSMakeRect(0, 0, 100, 100) |
| 591 styleMask:NSBorderlessWindowMask | 591 styleMask:NSBorderlessWindowMask |
| 592 backing:NSBackingStoreBuffered | 592 backing:NSBackingStoreBuffered |
| 593 defer:NO]; | 593 defer:NO]; |
| 594 | 594 |
| 595 NSEvent* mac_event = cocoa_test_event_utils::TestScrollEvent( | 595 NSEvent* mac_event = cocoa_test_event_utils::TestScrollEvent( |
| 596 location, window, delta_x, delta_y); | 596 location, window, delta_x, delta_y, precise, NSEventPhaseNone, |
| 597 NSEventPhaseNone); |
| 598 EXPECT_EQ(delta_x, [mac_event deltaX]); |
| 599 EXPECT_EQ(delta_y, [mac_event deltaY]); |
| 597 | 600 |
| 598 blink::WebMouseWheelEvent web_event = | 601 blink::WebMouseWheelEvent web_event = |
| 599 content::WebMouseWheelEventBuilder::Build(mac_event, | 602 content::WebMouseWheelEventBuilder::Build(mac_event, |
| 600 [window contentView]); | 603 [window contentView]); |
| 601 ui::MouseWheelEvent ui_event(mac_event); | 604 ui::MouseWheelEvent ui_event(mac_event); |
| 602 | 605 |
| 603 EXPECT_EQ(delta_x * ui::kScrollbarPixelsPerCocoaTick, web_event.deltaX); | 606 EXPECT_EQ(delta_x * ui::kScrollbarPixelsPerCocoaTick, web_event.deltaX); |
| 604 EXPECT_EQ(web_event.deltaX, ui_event.x_offset()); | 607 EXPECT_EQ(web_event.deltaX, ui_event.x_offset()); |
| 605 | 608 |
| 606 EXPECT_EQ(delta_y * ui::kScrollbarPixelsPerCocoaTick, web_event.deltaY); | 609 EXPECT_EQ(delta_y * ui::kScrollbarPixelsPerCocoaTick, web_event.deltaY); |
| 607 EXPECT_EQ(web_event.deltaY, ui_event.y_offset()); | 610 EXPECT_EQ(web_event.deltaY, ui_event.y_offset()); |
| 608 | 611 |
| 609 EXPECT_EQ(11, web_event.x); | 612 EXPECT_EQ(11, web_event.x); |
| 610 EXPECT_EQ(web_event.x, ui_event.x()); | 613 EXPECT_EQ(web_event.x, ui_event.x()); |
| 611 | 614 |
| 612 // Both ui:: and blink:: events use an origin at the top-left. | 615 // Both ui:: and blink:: events use an origin at the top-left. |
| 613 EXPECT_EQ(100 - 22, web_event.y); | 616 EXPECT_EQ(100 - 22, web_event.y); |
| 614 EXPECT_EQ(web_event.y, ui_event.y()); | 617 EXPECT_EQ(web_event.y, ui_event.y()); |
| 615 [window close]; | 618 [window close]; |
| 616 } | 619 } |
| OLD | NEW |