summaryrefslogtreecommitdiffstats
path: root/chrome/browser/ui/panels/panel_browser_window_cocoa_unittest.mm
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/ui/panels/panel_browser_window_cocoa_unittest.mm')
-rw-r--r--chrome/browser/ui/panels/panel_browser_window_cocoa_unittest.mm28
1 files changed, 28 insertions, 0 deletions
diff --git a/chrome/browser/ui/panels/panel_browser_window_cocoa_unittest.mm b/chrome/browser/ui/panels/panel_browser_window_cocoa_unittest.mm
index 814f448..682911f 100644
--- a/chrome/browser/ui/panels/panel_browser_window_cocoa_unittest.mm
+++ b/chrome/browser/ui/panels/panel_browser_window_cocoa_unittest.mm
@@ -376,3 +376,31 @@ TEST_F(PanelBrowserWindowCocoaTest, SetTitle) {
EXPECT_NSNE([[native_window->controller_ window] title], previousTitle);
ClosePanelAndWait(panel->browser());
}
+
+TEST_F(PanelBrowserWindowCocoaTest, ActivatePanel) {
+ Panel* panel = CreateTestPanel("Test Panel");
+ Panel* panel2 = CreateTestPanel("Test Panel 2");
+ ASSERT_TRUE(panel);
+ ASSERT_TRUE(panel2);
+
+ PanelBrowserWindowCocoa* native_window =
+ static_cast<PanelBrowserWindowCocoa*>(panel->native_panel());
+ ASSERT_TRUE(native_window);
+ PanelBrowserWindowCocoa* native_window2 =
+ static_cast<PanelBrowserWindowCocoa*>(panel2->native_panel());
+ ASSERT_TRUE(native_window2);
+
+ // No one has a good answer why but apparently windows can't take keyboard
+ // focus outside of interactive UI tests. BrowserWindowController uses the
+ // same way of testing this.
+ native_window->ActivatePanel();
+ NSWindow* frontmostWindow = [[NSApp orderedWindows] objectAtIndex:0];
+ EXPECT_NSEQ(frontmostWindow, [native_window->controller_ window]);
+
+ native_window2->ActivatePanel();
+ frontmostWindow = [[NSApp orderedWindows] objectAtIndex:0];
+ EXPECT_NSEQ(frontmostWindow, [native_window2->controller_ window]);
+
+ ClosePanelAndWait(panel->browser());
+ ClosePanelAndWait(panel2->browser());
+}