Chromium Code Reviews| Index: chrome/browser/global_keyboard_shortcuts_mac_browsertest.mm |
| diff --git a/chrome/browser/global_keyboard_shortcuts_mac_browsertest.mm b/chrome/browser/global_keyboard_shortcuts_mac_browsertest.mm |
| index 3e6b7f2dad86366f93d7a8c970122aef7a4d6bb9..b0f155cb1e388e9688da2f869cac5e04addb7b25 100644 |
| --- a/chrome/browser/global_keyboard_shortcuts_mac_browsertest.mm |
| +++ b/chrome/browser/global_keyboard_shortcuts_mac_browsertest.mm |
| @@ -12,12 +12,25 @@ |
| #include "chrome/browser/ui/browser_commands.h" |
| #include "chrome/browser/ui/browser_window.h" |
| #include "chrome/browser/ui/tabs/tab_strip_model.h" |
| +#include "ui/base/accelerators/accelerator.h" |
| #import "ui/events/test/cocoa_test_event_utils.h" |
| +#include "ui/events/test/event_generator.h" |
| +#include "ui/views/test/event_generator_delegate_mac.h" |
|
tapted
2016/11/28 08:14:18
I've been trying to avoid introducing ui/views dep
themblsha
2016/11/30 12:35:33
I thought about doing a local function that does p
|
| using cocoa_test_event_utils::SynthesizeKeyEvent; |
| using GlobalKeyboardShortcutsTest = ExtensionBrowserTest; |
| +namespace { |
| + |
| +void PressAccelerator(ui::test::EventGenerator* event_generator, |
| + const ui::Accelerator& accelerator) { |
| + event_generator->PressKey(accelerator.key_code(), accelerator.modifiers()); |
| + event_generator->ReleaseKey(accelerator.key_code(), accelerator.modifiers()); |
| +} |
| + |
| +} // namespace |
| + |
| // Test that global keyboard shortcuts are handled by the native window. |
| IN_PROC_BROWSER_TEST_F(GlobalKeyboardShortcutsTest, SwitchTabsMac) { |
| NSWindow* ns_window = browser()->window()->GetNativeWindow(); |
| @@ -28,18 +41,23 @@ IN_PROC_BROWSER_TEST_F(GlobalKeyboardShortcutsTest, SwitchTabsMac) { |
| EXPECT_EQ(2, tab_strip->count()); |
| EXPECT_TRUE(tab_strip->IsTabSelected(1)); |
| + views::test::InitializeMacEventGeneratorDelegate(); |
| + ui::test::EventGenerator event_generator(ns_window); |
| + event_generator.set_target(ui::test::EventGenerator::Target::WINDOW); |
| + |
| // Ctrl+Tab goes to the next tab, which loops back to the first tab. |
| - [ns_window performKeyEquivalent:SynthesizeKeyEvent( |
| - ns_window, true, ui::VKEY_TAB, NSControlKeyMask)]; |
| + PressAccelerator(&event_generator, |
| + ui::Accelerator(ui::VKEY_TAB, ui::EF_CONTROL_DOWN)); |
| EXPECT_TRUE(tab_strip->IsTabSelected(0)); |
| // Cmd+2 goes to the second tab. |
| - [ns_window performKeyEquivalent:SynthesizeKeyEvent( |
| - ns_window, true, ui::VKEY_2, NSCommandKeyMask)]; |
| + PressAccelerator(&event_generator, |
| + ui::Accelerator(ui::VKEY_2, ui::EF_COMMAND_DOWN)); |
| EXPECT_TRUE(tab_strip->IsTabSelected(1)); |
| // Cmd+{ goes to the previous tab. |
| - [ns_window performKeyEquivalent:SynthesizeKeyEvent( |
| - ns_window, true, ui::VKEY_OEM_4, NSShiftKeyMask | NSCommandKeyMask)]; |
| + PressAccelerator( |
| + &event_generator, |
| + ui::Accelerator(ui::VKEY_OEM_4, ui::EF_SHIFT_DOWN | ui::EF_COMMAND_DOWN)); |
| EXPECT_TRUE(tab_strip->IsTabSelected(0)); |
| } |