| Index: chrome/browser/ui/panels/panel_browsertest.cc
|
| diff --git a/chrome/browser/ui/panels/panel_browsertest.cc b/chrome/browser/ui/panels/panel_browsertest.cc
|
| index 13b677ddc93afa3dd7329cf1bf01ff4340b9cc76..12445384c51a4aef6bb3cb8936eea4319cdf6824 100644
|
| --- a/chrome/browser/ui/panels/panel_browsertest.cc
|
| +++ b/chrome/browser/ui/panels/panel_browsertest.cc
|
| @@ -33,6 +33,7 @@
|
| #include "chrome/common/url_constants.h"
|
| #include "chrome/test/base/ui_test_utils.h"
|
| #include "content/public/browser/download_manager.h"
|
| +#include "content/public/browser/native_web_keyboard_event.h"
|
| #include "content/public/browser/notification_service.h"
|
| #include "content/public/browser/web_contents.h"
|
| #include "content/public/common/url_constants.h"
|
| @@ -1578,4 +1579,37 @@ IN_PROC_BROWSER_TEST_F(PanelBrowserTest,
|
| panel->Close();
|
| }
|
|
|
| +#if defined(OS_WIN)
|
| +#define MAYBE_Accelerator Accelerator
|
| +#else
|
| +#define MAYBE_Accelerator DISABLED_Accelerator
|
| +#endif
|
| +IN_PROC_BROWSER_TEST_F(PanelBrowserTest, Accelerator) {
|
| + PanelManager* panel_manager = PanelManager::GetInstance();
|
| +
|
| + // Create a test panel with web contents loaded.
|
| + CreatePanelParams params("1", gfx::Rect(), SHOW_AS_ACTIVE);
|
| + GURL url(ui_test_utils::GetTestUrl(
|
| + FilePath(kTestDir),
|
| + FilePath(FILE_PATH_LITERAL("update-preferred-size.html"))));
|
| + params.url = url;
|
| + Panel* panel = CreatePanelWithParams(params);
|
| + EXPECT_EQ(1, panel_manager->num_panels());
|
| +
|
| + // Close the panel by acclerator.
|
| + content::WindowedNotificationObserver signal(
|
| + chrome::NOTIFICATION_PANEL_CLOSED,
|
| + content::Source<Panel>(panel));
|
| +#if defined(OS_WIN)
|
| + ::MSG key_msg = { NULL, WM_KEYDOWN, ui::VKEY_W, 0 };
|
| + content::NativeWebKeyboardEvent key_event(key_msg);
|
| + key_event.modifiers = content::NativeWebKeyboardEvent::ControlKey;
|
| +#else
|
| + content::NativeWebKeyboardEvent key_event;
|
| +#endif
|
| + panel->HandleKeyboardEvent(key_event);
|
| + signal.Wait();
|
| + EXPECT_EQ(0, panel_manager->num_panels());
|
| +}
|
| +
|
| #endif // OS_WIN || OS_MACOSX
|
|
|