Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(7904)

Unified Diff: chrome/browser/ui/startup/startup_browser_creator_impl_unittest.cc

Issue 2469363002: Tech Debt Repayment for StartupBrowserCreatorImpl Refactor (Closed)
Patch Set: Session restore formatting Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/startup/startup_browser_creator_impl_unittest.cc
diff --git a/chrome/browser/ui/startup/startup_browser_creator_impl_unittest.cc b/chrome/browser/ui/startup/startup_browser_creator_impl_unittest.cc
index d36c3a515a75c651685ff12e780211360e80ccc8..f1c47d597ec92b9d1a9793f26768891b4275dbfb 100644
--- a/chrome/browser/ui/startup/startup_browser_creator_impl_unittest.cc
+++ b/chrome/browser/ui/startup/startup_browser_creator_impl_unittest.cc
@@ -186,3 +186,126 @@ TEST(StartupBrowserCreatorImplTest, DetermineStartupTabs_NewTabPage) {
EXPECT_EQ("new-tab", output[1].url.host());
EXPECT_EQ("pinned", output[2].url.host());
}
+
+TEST(StartupBrowserCreatorImplTest, DetermineBrowserOpenBehavior_Startup) {
+ SessionStartupPref pref_default(SessionStartupPref::Type::DEFAULT);
+ SessionStartupPref pref_last(SessionStartupPref::Type::LAST);
+ SessionStartupPref pref_urls(SessionStartupPref::Type::URLS);
+
+ // The most typical case: startup, not recovering from a crash, no switches.
+ // Test each pref with and without command-line tabs.
+ StartupBrowserCreatorImpl::BrowserOpenBehavior output =
+ StartupBrowserCreatorImpl::DetermineBrowserOpenBehavior(
+ pref_default, StartupBrowserCreatorImpl::PROCESS_STARTUP);
+
+ ASSERT_EQ(StartupBrowserCreatorImpl::BrowserOpenBehavior::NEW, output);
+
+ output = StartupBrowserCreatorImpl::DetermineBrowserOpenBehavior(
+ pref_default, StartupBrowserCreatorImpl::PROCESS_STARTUP |
+ StartupBrowserCreatorImpl::HAS_CMD_LINE_TABS);
+
+ ASSERT_EQ(StartupBrowserCreatorImpl::BrowserOpenBehavior::NEW, output);
+
+ output = StartupBrowserCreatorImpl::DetermineBrowserOpenBehavior(
+ pref_urls, StartupBrowserCreatorImpl::PROCESS_STARTUP);
+
+ ASSERT_EQ(StartupBrowserCreatorImpl::BrowserOpenBehavior::NEW, output);
+
+ output = StartupBrowserCreatorImpl::DetermineBrowserOpenBehavior(
+ pref_urls, StartupBrowserCreatorImpl::PROCESS_STARTUP |
+ StartupBrowserCreatorImpl::HAS_CMD_LINE_TABS);
+
+ ASSERT_EQ(StartupBrowserCreatorImpl::BrowserOpenBehavior::NEW, output);
+
+ output = StartupBrowserCreatorImpl::DetermineBrowserOpenBehavior(
+ pref_last, StartupBrowserCreatorImpl::PROCESS_STARTUP);
+
+ ASSERT_EQ(StartupBrowserCreatorImpl::BrowserOpenBehavior::SYNCHRONOUS_RESTORE,
+ output);
+
+ output = StartupBrowserCreatorImpl::DetermineBrowserOpenBehavior(
+ pref_last, StartupBrowserCreatorImpl::PROCESS_STARTUP |
+ StartupBrowserCreatorImpl::HAS_CMD_LINE_TABS);
+
+ ASSERT_EQ(StartupBrowserCreatorImpl::BrowserOpenBehavior::SYNCHRONOUS_RESTORE,
+ output);
+}
+
+TEST(StartupBrowserCreatorImplTest, DetermineBrowserOpenBehavior_CmdLineTabs) {
+ SessionStartupPref pref_default(SessionStartupPref::Type::DEFAULT);
+ SessionStartupPref pref_last(SessionStartupPref::Type::LAST);
+ SessionStartupPref pref_urls(SessionStartupPref::Type::URLS);
+
+ // Command line tabs after startup should prompt use of existing window,
+ // regardless of pref.
+ StartupBrowserCreatorImpl::BrowserOpenBehavior output =
+ StartupBrowserCreatorImpl::DetermineBrowserOpenBehavior(
+ pref_default, StartupBrowserCreatorImpl::HAS_CMD_LINE_TABS);
+
+ ASSERT_EQ(StartupBrowserCreatorImpl::BrowserOpenBehavior::USE_EXISTING,
+ output);
+
+ output = StartupBrowserCreatorImpl::DetermineBrowserOpenBehavior(
+ pref_urls, StartupBrowserCreatorImpl::HAS_CMD_LINE_TABS);
+
+ ASSERT_EQ(StartupBrowserCreatorImpl::BrowserOpenBehavior::USE_EXISTING,
+ output);
+
+ output = StartupBrowserCreatorImpl::DetermineBrowserOpenBehavior(
+ pref_last, StartupBrowserCreatorImpl::HAS_CMD_LINE_TABS);
+
+ ASSERT_EQ(StartupBrowserCreatorImpl::BrowserOpenBehavior::USE_EXISTING,
+ output);
+
+ // Exception: this can be overridden by switch.
+ output = StartupBrowserCreatorImpl::DetermineBrowserOpenBehavior(
+ pref_urls, StartupBrowserCreatorImpl::HAS_NEW_WINDOW_SWITCH |
+ StartupBrowserCreatorImpl::HAS_CMD_LINE_TABS);
+
+ ASSERT_EQ(StartupBrowserCreatorImpl::BrowserOpenBehavior::NEW, output);
+}
+
+TEST(StartupBrowserCreatorImplTest, DetermineBrowserOpenBehavior_PostCrash) {
+ SessionStartupPref pref_last(SessionStartupPref::Type::LAST);
+
+ // Launching after crash should block session restore.
+ StartupBrowserCreatorImpl::BrowserOpenBehavior output =
+ StartupBrowserCreatorImpl::DetermineBrowserOpenBehavior(
+ pref_last, StartupBrowserCreatorImpl::PROCESS_STARTUP |
+ StartupBrowserCreatorImpl::IS_POST_CRASH_LAUNCH);
+
+ ASSERT_EQ(StartupBrowserCreatorImpl::BrowserOpenBehavior::NEW, output);
+
+ // Exception: this can be overridden by switch.
+
+ output = StartupBrowserCreatorImpl::DetermineBrowserOpenBehavior(
+ pref_last, StartupBrowserCreatorImpl::PROCESS_STARTUP |
+ StartupBrowserCreatorImpl::IS_POST_CRASH_LAUNCH |
+ StartupBrowserCreatorImpl::HAS_RESTORE_SWITCH);
+
+ ASSERT_EQ(StartupBrowserCreatorImpl::BrowserOpenBehavior::SYNCHRONOUS_RESTORE,
+ output);
+}
+
+TEST(StartupBrowserCreatorImplTest, DetermineBrowserOpenBehavior_NotStartup) {
+ SessionStartupPref pref_default(SessionStartupPref::Type::DEFAULT);
+ SessionStartupPref pref_last(SessionStartupPref::Type::LAST);
+ SessionStartupPref pref_urls(SessionStartupPref::Type::URLS);
+
+ // Launch after startup without command-line tabs should always create a new
+ // window.
+ StartupBrowserCreatorImpl::BrowserOpenBehavior output =
+ StartupBrowserCreatorImpl::DetermineBrowserOpenBehavior(pref_default, 0);
+
+ ASSERT_EQ(StartupBrowserCreatorImpl::BrowserOpenBehavior::NEW, output);
+
+ output =
+ StartupBrowserCreatorImpl::DetermineBrowserOpenBehavior(pref_last, 0);
+
+ ASSERT_EQ(StartupBrowserCreatorImpl::BrowserOpenBehavior::NEW, output);
+
+ output =
+ StartupBrowserCreatorImpl::DetermineBrowserOpenBehavior(pref_urls, 0);
+
+ ASSERT_EQ(StartupBrowserCreatorImpl::BrowserOpenBehavior::NEW, output);
+}

Powered by Google App Engine
This is Rietveld 408576698