diff options
author | stevenjb@google.com <stevenjb@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-06-08 19:04:49 +0000 |
---|---|---|
committer | stevenjb@google.com <stevenjb@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-06-08 19:04:49 +0000 |
commit | 0a5bdc652f3abffeb20d4ef49899550ce8d7093d (patch) | |
tree | 3cb76b82790a78f1774acdb9df50c06b9141d391 /chrome/browser/ui/browser_navigator_browsertest_chromeos.cc | |
parent | 95d240ffc98df070f46f8d67370117bbf6f478ca (diff) | |
download | chromium_src-0a5bdc652f3abffeb20d4ef49899550ce8d7093d.zip chromium_src-0a5bdc652f3abffeb20d4ef49899550ce8d7093d.tar.gz chromium_src-0a5bdc652f3abffeb20d4ef49899550ce8d7093d.tar.bz2 |
Fix window.open() from panels in ChromeOS.
This is a regression caused by http://codereview.chromium.org/6881073/
BUG=chromium-os:15598
TEST=Opening a large window using JS window.open from a panel should open a new tab in the parent browser. See issue for repro.
Review URL: http://codereview.chromium.org/7101008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@88373 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/ui/browser_navigator_browsertest_chromeos.cc')
-rw-r--r-- | chrome/browser/ui/browser_navigator_browsertest_chromeos.cc | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/chrome/browser/ui/browser_navigator_browsertest_chromeos.cc b/chrome/browser/ui/browser_navigator_browsertest_chromeos.cc index d70599f..22d99c6 100644 --- a/chrome/browser/ui/browser_navigator_browsertest_chromeos.cc +++ b/chrome/browser/ui/browser_navigator_browsertest_chromeos.cc @@ -10,6 +10,7 @@ #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser_list.h" #include "chrome/browser/ui/browser_navigator.h" +#include "chrome/test/ui_test_utils.h" #include "content/browser/tab_contents/tab_contents.h" namespace { @@ -52,4 +53,52 @@ IN_PROC_BROWSER_TEST_F(BrowserGuestSessionNavigatorTest, incognito_browser->GetSelectedTabContents()->GetURL()); } +// This test verifies that navigating to a large window with +// WindowOpenDisposition = NEW_POPUP from a normal Browser results in a new tab. +IN_PROC_BROWSER_TEST_F(BrowserNavigatorTest, Disposition_LargePopup) { + browser::NavigateParams p(MakeNavigateParams()); + p.disposition = NEW_POPUP; + p.window_bounds = gfx::Rect(0, 0, 10000, 10000); + browser::Navigate(&p); + // Wait for page to load. + ui_test_utils::WaitForNavigationInCurrentTab(p.browser); + + // Navigate() should have opened a new tab. + EXPECT_EQ(browser(), p.browser); + + // We should have one window with two tabs. + EXPECT_EQ(1u, BrowserList::size()); + EXPECT_EQ(2, browser()->tab_count()); +} + +// This test verifies that navigating to a large window with +// WindowOpenDisposition = NEW_POPUP from a popup window results in a new tab +// in the parent browser. +IN_PROC_BROWSER_TEST_F(BrowserNavigatorTest, Disposition_LargePopupFromPopup) { + // Open a popup. + browser::NavigateParams p1(MakeNavigateParams()); + p1.disposition = NEW_POPUP; + p1.window_bounds = gfx::Rect(0, 0, 200, 200); + browser::Navigate(&p1); + + // Wait for page to load. + ui_test_utils::WaitForNavigationInCurrentTab(p1.browser); + + // Open a large popup from the popup. + browser::NavigateParams p2(MakeNavigateParams(p1.browser)); + p2.disposition = NEW_POPUP; + p2.window_bounds = gfx::Rect(0, 0, 10000, 10000); + browser::Navigate(&p2); + + // Wait for page to load. + ui_test_utils::WaitForNavigationInCurrentTab(p2.browser); + + // Navigate() should have opened a new tab in the primary browser. + EXPECT_EQ(browser(), p2.browser); + + // We should have two windows. browser() should have two tabs. + EXPECT_EQ(2u, BrowserList::size()); + EXPECT_EQ(2, browser()->tab_count()); +} + } // namespace |