Chromium Code Reviews| Index: content/browser/renderer_host/input/web_input_event_builders_mac_unittest.mm |
| diff --git a/content/browser/renderer_host/input/web_input_event_builders_mac_unittest.mm b/content/browser/renderer_host/input/web_input_event_builders_mac_unittest.mm |
| index 9b6500a27a5d56df3c4f1d98fc6a1b183f573ea2..0a87865607f979b1f52502af99d780326af0b148 100644 |
| --- a/content/browser/renderer_host/input/web_input_event_builders_mac_unittest.mm |
| +++ b/content/browser/renderer_host/input/web_input_event_builders_mac_unittest.mm |
| @@ -10,9 +10,12 @@ |
| #include "base/macros.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| +#import "ui/events/cocoa/cocoa_event_utils.h" |
| +#include "ui/events/event.h" |
| #include "ui/events/keycodes/dom/dom_code.h" |
| #include "ui/events/keycodes/dom/dom_key.h" |
| #include "ui/events/keycodes/keyboard_codes.h" |
| +#import "ui/events/test/cocoa_test_event_utils.h" |
| using blink::WebKeyboardEvent; |
| using blink::WebInputEvent; |
| @@ -559,3 +562,41 @@ TEST(WebInputEventBuilderMacTest, DomKeyFlagsChanged) { |
| EXPECT_EQ(entry.dom_key, web_event.domKey) << entry.mac_key_code; |
| } |
| } |
| + |
| +// Test that a ui::Event and blink::WebInputEvent made from the same NSEvent |
| +// have the same values for comparable fields. |
| +TEST(WebInputEventBuilderMacTest, ScrollWheelMatchesUIEvent) { |
| + CGFloat delta_x = 123; |
| + CGFloat delta_y = 321; |
| + NSPoint location = NSMakePoint(11, 22); |
| + |
| + // WebMouseWheelEventBuilder requires a non-nil view to map coordinates. So |
| + // create a dummy window, but don't show it. It will be released when closed. |
| + NSWindow* window = |
| + [[NSWindow alloc] initWithContentRect:NSMakeRect(0, 0, 100, 100) |
| + styleMask:NSBorderlessWindowMask |
| + backing:NSBackingStoreBuffered |
| + defer:NO]; |
| + |
| + NSEvent* mac_event = cocoa_test_event_utils::TestScrollEvent( |
| + location, window, delta_x, delta_y); |
| + |
| + blink::WebMouseWheelEvent web_event = |
| + content::WebMouseWheelEventBuilder::Build(mac_event, [window contentView], |
| + false, false); |
|
tapted
2016/08/11 04:25:22
bleh - web_input_event_builders_mac.h doesn't chan
|
| + ui::MouseWheelEvent ui_event(mac_event); |
| + |
| + EXPECT_EQ(delta_x * ui::kScrollbarPixelsPerCocoaTick, web_event.deltaX); |
| + EXPECT_EQ(web_event.deltaX, ui_event.x_offset()); |
| + |
| + EXPECT_EQ(delta_y * ui::kScrollbarPixelsPerCocoaTick, web_event.deltaY); |
| + EXPECT_EQ(web_event.deltaY, ui_event.y_offset()); |
| + |
| + EXPECT_EQ(11, web_event.x); |
| + EXPECT_EQ(web_event.x, ui_event.x()); |
| + |
| + // Both ui:: and blink:: events use an origin at the top-left. |
| + EXPECT_EQ(100 - 22, web_event.y); |
| + EXPECT_EQ(web_event.y, ui_event.y()); |
| + [window close]; |
| +} |