Chromium Code Reviews| Index: chrome/browser/extensions/api/extension_action/browser_action_apitest.cc |
| diff --git a/chrome/browser/extensions/api/extension_action/browser_action_apitest.cc b/chrome/browser/extensions/api/extension_action/browser_action_apitest.cc |
| index c8ab70f6f7ad999a2fc9ebda6c5df632bb367776..1545e80c0e39fb9aa4e83d372815f26fa3218883 100644 |
| --- a/chrome/browser/extensions/api/extension_action/browser_action_apitest.cc |
| +++ b/chrome/browser/extensions/api/extension_action/browser_action_apitest.cc |
| @@ -17,6 +17,8 @@ |
| #include "chrome/browser/profiles/profile.h" |
| #include "chrome/browser/ui/browser.h" |
| #include "chrome/browser/ui/browser_commands.h" |
| +#include "chrome/browser/ui/browser_finder.h" |
| +#include "chrome/browser/ui/browser_navigator_params.h" |
| #include "chrome/browser/ui/browser_window.h" |
| #include "chrome/browser/ui/tabs/tab_strip_model.h" |
| #include "chrome/common/url_constants.h" |
| @@ -750,5 +752,36 @@ IN_PROC_BROWSER_TEST_F(BrowserActionApiTest, BrowserActionWithRectangularIcon) { |
| EXPECT_FALSE(gfx::test::AreImagesEqual(first_icon, next_icon)); |
| } |
| +// Test that we don't try and show a popup with browserAction.openPopup if there |
| +// is no toolbar (e.g., for popup windows). |
|
lazyboy
2016/02/09 00:06:10
Took me a while to figure this one out.
Too many
Devlin
2016/02/09 01:19:52
Done.
|
| +// Regression test for crbug.com/584747. |
| +IN_PROC_BROWSER_TEST_F(BrowserActionApiTest, BrowserActionOpenPopupOnPopup) { |
| + // Open a new popup. |
| + chrome::NavigateParams params(browser(), GURL("http://www.google.com/"), |
| + ui::PAGE_TRANSITION_LINK); |
| + params.disposition = NEW_POPUP; |
| + params.window_action = chrome::NavigateParams::SHOW_WINDOW; |
| + ui_test_utils::NavigateToURL(¶ms); |
| + Browser* popup_browser = params.browser; |
| + // Verify it is a popup, and it is the active window. |
| + ASSERT_TRUE(popup_browser); |
| + EXPECT_TRUE(popup_browser->window()->IsActive()); |
| + EXPECT_FALSE(browser()->window()->IsActive()); |
| + EXPECT_FALSE(popup_browser->SupportsWindowFeature(Browser::FEATURE_TOOLBAR)); |
| + EXPECT_EQ(popup_browser, |
| + chrome::FindLastActiveWithProfile(browser()->profile())); |
| + |
| + // Load up the extension, which will call chrome.browserAction.openPopup |
| + // when it is loaded and verify that the popup didn't open. |
| + ExtensionTestMessageListener listener("ready", true); |
| + EXPECT_TRUE(LoadExtension( |
| + test_data_dir_.AppendASCII("browser_action/open_popup_on_reply"))); |
| + EXPECT_TRUE(listener.WaitUntilSatisfied()); |
| + |
| + ResultCatcher catcher; |
| + listener.Reply(std::string()); |
| + EXPECT_TRUE(catcher.GetNextResult()) << message_; |
| +} |
| + |
| } // namespace |
| } // namespace extensions |