summaryrefslogtreecommitdiffstats
path: root/chrome/browser/ui/browser_navigator_browsertest_chromeos.cc
diff options
context:
space:
mode:
authorstevenjb@google.com <stevenjb@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-06-08 19:04:49 +0000
committerstevenjb@google.com <stevenjb@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-06-08 19:04:49 +0000
commit0a5bdc652f3abffeb20d4ef49899550ce8d7093d (patch)
tree3cb76b82790a78f1774acdb9df50c06b9141d391 /chrome/browser/ui/browser_navigator_browsertest_chromeos.cc
parent95d240ffc98df070f46f8d67370117bbf6f478ca (diff)
downloadchromium_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.cc49
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