| Index: chrome/browser/sessions/session_restore_uitest.cc
|
| ===================================================================
|
| --- chrome/browser/sessions/session_restore_uitest.cc (revision 30060)
|
| +++ chrome/browser/sessions/session_restore_uitest.cc (working copy)
|
| @@ -7,6 +7,7 @@
|
| #include "base/scoped_ptr.h"
|
| #include "base/string_util.h"
|
| #include "chrome/app/chrome_dll_resource.h"
|
| +#include "chrome/browser/defaults.h"
|
| #include "chrome/common/chrome_paths.h"
|
| #include "chrome/common/chrome_switches.h"
|
| #include "chrome/test/automation/tab_proxy.h"
|
| @@ -253,6 +254,54 @@
|
| ASSERT_TRUE(GetActiveTabURL() == url1_);
|
| }
|
|
|
| +// Creates a tabbed browser and popup and makes sure we restore both.
|
| +TEST_F(SessionRestoreUITest, NormalAndPopup) {
|
| + if (!browser_defaults::kRestorePopups)
|
| + return; // Test only applicable if restoring popups.
|
| +
|
| + NavigateToURL(url1_);
|
| +
|
| + // Make sure we have one window.
|
| + int window_count;
|
| + ASSERT_TRUE(automation()->GetBrowserWindowCount(&window_count));
|
| + ASSERT_EQ(1, window_count);
|
| +
|
| + // Open a popup.
|
| + ASSERT_TRUE(automation()->OpenNewBrowserWindow(BrowserProxy::TYPE_POPUP,
|
| + true));
|
| + ASSERT_TRUE(automation()->GetBrowserWindowCount(&window_count));
|
| + ASSERT_EQ(2, window_count);
|
| +
|
| + // Restart and make sure we have only one window with one tab and the url
|
| + // is url1_.
|
| + QuitBrowserAndRestore(1);
|
| +
|
| + ASSERT_TRUE(automation()->GetBrowserWindowCount(&window_count));
|
| + ASSERT_EQ(2, window_count);
|
| +
|
| + scoped_refptr<BrowserProxy> browser_proxy1(
|
| + automation()->GetBrowserWindow(0));
|
| + ASSERT_TRUE(browser_proxy1.get());
|
| +
|
| + scoped_refptr<BrowserProxy> browser_proxy2(
|
| + automation()->GetBrowserWindow(1));
|
| + ASSERT_TRUE(browser_proxy2.get());
|
| +
|
| + BrowserProxy::Type type1, type2;
|
| + ASSERT_TRUE(browser_proxy1->GetType(&type1));
|
| + ASSERT_TRUE(browser_proxy2->GetType(&type2));
|
| +
|
| + // The order of whether the normal window or popup is first depends upon
|
| + // activation order, which is not necessarily consistant across runs.
|
| + if (type1 == BrowserProxy::TYPE_NORMAL) {
|
| + EXPECT_EQ(type2, BrowserProxy::TYPE_POPUP);
|
| + } else {
|
| + EXPECT_EQ(type1, BrowserProxy::TYPE_POPUP);
|
| + EXPECT_EQ(type2, BrowserProxy::TYPE_NORMAL);
|
| + }
|
| +}
|
| +
|
| +
|
| #if defined(OS_WIN)
|
| // Creates a browser, goes incognito, closes browser, launches and make sure
|
| // we don't restore.
|
| @@ -308,7 +357,8 @@
|
| ASSERT_EQ(1, window_count);
|
|
|
| // Open a second window.
|
| - ASSERT_TRUE(automation()->OpenNewBrowserWindow(true));
|
| + ASSERT_TRUE(automation()->OpenNewBrowserWindow(BrowserProxy::TYPE_NORMAL,
|
| + true));
|
| ASSERT_TRUE(automation()->GetBrowserWindowCount(&window_count));
|
| ASSERT_EQ(2, window_count);
|
|
|
|
|