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

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

Issue 2469363002: Tech Debt Repayment for StartupBrowserCreatorImpl Refactor (Closed)
Patch Set: sky comments 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..5424ca20bd2a101f7e9aa0cfe02f4a01ff4b3487 100644
--- a/chrome/browser/ui/startup/startup_browser_creator_impl_unittest.cc
+++ b/chrome/browser/ui/startup/startup_browser_creator_impl_unittest.cc
@@ -9,6 +9,8 @@
#include "chrome/common/url_constants.cc"
#include "testing/gtest/include/gtest/gtest.h"
+using Creator = StartupBrowserCreatorImpl;
+
namespace {
// Bits for FakeStartupTabProvider options.
@@ -84,9 +86,9 @@ TEST(StartupBrowserCreatorImplTest, DetermineStartupTabs) {
FakeStartupTabProvider provider(kOnboardingTabs | kResetTriggerTabs |
kPinnedTabs | kPreferencesTabs |
kNewTabPageTabs);
- StartupBrowserCreatorImpl impl(
- base::FilePath(), base::CommandLine(base::CommandLine::NO_PROGRAM),
- chrome::startup::IS_FIRST_RUN);
+ Creator impl(base::FilePath(),
+ base::CommandLine(base::CommandLine::NO_PROGRAM),
+ chrome::startup::IS_FIRST_RUN);
StartupTabs output =
impl.DetermineStartupTabs(provider, StartupTabs(), false, false);
@@ -103,9 +105,9 @@ TEST(StartupBrowserCreatorImplTest, DetermineStartupTabs_IncognitoOrCrash) {
FakeStartupTabProvider provider(kOnboardingTabs | kDistributionFirstRunTabs |
kResetTriggerTabs | kPinnedTabs |
kPreferencesTabs | kNewTabPageTabs);
- StartupBrowserCreatorImpl impl(
- base::FilePath(), base::CommandLine(base::CommandLine::NO_PROGRAM),
- chrome::startup::IS_FIRST_RUN);
+ Creator impl(base::FilePath(),
+ base::CommandLine(base::CommandLine::NO_PROGRAM),
+ chrome::startup::IS_FIRST_RUN);
// Incognito case:
StartupTabs output =
@@ -128,9 +130,9 @@ TEST(StartupBrowserCreatorImplTest, DetermineStartupTabs_MasterPrefs) {
FakeStartupTabProvider provider(kOnboardingTabs | kDistributionFirstRunTabs |
kResetTriggerTabs | kPinnedTabs |
kPreferencesTabs | kNewTabPageTabs);
- StartupBrowserCreatorImpl impl(
- base::FilePath(), base::CommandLine(base::CommandLine::NO_PROGRAM),
- chrome::startup::IS_FIRST_RUN);
+ Creator impl(base::FilePath(),
+ base::CommandLine(base::CommandLine::NO_PROGRAM),
+ chrome::startup::IS_FIRST_RUN);
StartupTabs output =
impl.DetermineStartupTabs(provider, StartupTabs(), false, false);
@@ -144,9 +146,9 @@ TEST(StartupBrowserCreatorImplTest, DetermineStartupTabs_CommandLine) {
FakeStartupTabProvider provider(kOnboardingTabs | kDistributionFirstRunTabs |
kResetTriggerTabs | kPinnedTabs |
kPreferencesTabs | kNewTabPageTabs);
- StartupBrowserCreatorImpl impl(
- base::FilePath(), base::CommandLine(base::CommandLine::NO_PROGRAM),
- chrome::startup::IS_FIRST_RUN);
+ Creator impl(base::FilePath(),
+ base::CommandLine(base::CommandLine::NO_PROGRAM),
+ chrome::startup::IS_FIRST_RUN);
StartupTabs cmd_line_tabs = {StartupTab(GURL("https://cmd-line"), false)};
@@ -175,9 +177,9 @@ TEST(StartupBrowserCreatorImplTest, DetermineStartupTabs_CommandLine) {
TEST(StartupBrowserCreatorImplTest, DetermineStartupTabs_NewTabPage) {
FakeStartupTabProvider provider_allows_ntp(kPinnedTabs | kResetTriggerTabs |
kNewTabPageTabs);
- StartupBrowserCreatorImpl impl(
- base::FilePath(), base::CommandLine(base::CommandLine::NO_PROGRAM),
- chrome::startup::IS_FIRST_RUN);
+ Creator impl(base::FilePath(),
+ base::CommandLine(base::CommandLine::NO_PROGRAM),
+ chrome::startup::IS_FIRST_RUN);
StartupTabs output = impl.DetermineStartupTabs(provider_allows_ntp,
StartupTabs(), false, false);
@@ -186,3 +188,93 @@ 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.
+ Creator::BrowserOpenBehavior output = Creator::DetermineBrowserOpenBehavior(
+ pref_default, Creator::PROCESS_STARTUP);
+ EXPECT_EQ(Creator::BrowserOpenBehavior::NEW, output);
+
+ output = Creator::DetermineBrowserOpenBehavior(
+ pref_default, Creator::PROCESS_STARTUP | Creator::HAS_CMD_LINE_TABS);
+ EXPECT_EQ(Creator::BrowserOpenBehavior::NEW, output);
+
+ output = Creator::DetermineBrowserOpenBehavior(pref_urls,
+ Creator::PROCESS_STARTUP);
+ EXPECT_EQ(Creator::BrowserOpenBehavior::NEW, output);
+
+ output = Creator::DetermineBrowserOpenBehavior(
+ pref_urls, Creator::PROCESS_STARTUP | Creator::HAS_CMD_LINE_TABS);
+ EXPECT_EQ(Creator::BrowserOpenBehavior::NEW, output);
+
+ output = Creator::DetermineBrowserOpenBehavior(pref_last,
+ Creator::PROCESS_STARTUP);
+ EXPECT_EQ(Creator::BrowserOpenBehavior::SYNCHRONOUS_RESTORE, output);
+
+ output = Creator::DetermineBrowserOpenBehavior(
+ pref_last, Creator::PROCESS_STARTUP | Creator::HAS_CMD_LINE_TABS);
+ EXPECT_EQ(Creator::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.
+ Creator::BrowserOpenBehavior output = Creator::DetermineBrowserOpenBehavior(
+ pref_default, Creator::HAS_CMD_LINE_TABS);
+ EXPECT_EQ(Creator::BrowserOpenBehavior::USE_EXISTING, output);
+
+ output = Creator::DetermineBrowserOpenBehavior(pref_urls,
+ Creator::HAS_CMD_LINE_TABS);
+ EXPECT_EQ(Creator::BrowserOpenBehavior::USE_EXISTING, output);
+
+ output = Creator::DetermineBrowserOpenBehavior(pref_last,
+ Creator::HAS_CMD_LINE_TABS);
+ EXPECT_EQ(Creator::BrowserOpenBehavior::USE_EXISTING, output);
+
+ // Exception: this can be overridden by passing a switch.
+ output = Creator::DetermineBrowserOpenBehavior(
+ pref_urls, Creator::HAS_NEW_WINDOW_SWITCH | Creator::HAS_CMD_LINE_TABS);
+ EXPECT_EQ(Creator::BrowserOpenBehavior::NEW, output);
+}
+
+TEST(StartupBrowserCreatorImplTest, DetermineBrowserOpenBehavior_PostCrash) {
+ SessionStartupPref pref_last(SessionStartupPref::Type::LAST);
+
+ // Launching after crash should block session restore.
+ Creator::BrowserOpenBehavior output = Creator::DetermineBrowserOpenBehavior(
+ pref_last, Creator::PROCESS_STARTUP | Creator::IS_POST_CRASH_LAUNCH);
+ EXPECT_EQ(Creator::BrowserOpenBehavior::NEW, output);
+
+ // Exception: this can be overridden by passing a switch.
+ output = Creator::DetermineBrowserOpenBehavior(
+ pref_last, Creator::PROCESS_STARTUP | Creator::IS_POST_CRASH_LAUNCH |
+ Creator::HAS_RESTORE_SWITCH);
+ EXPECT_EQ(Creator::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.
+ Creator::BrowserOpenBehavior output =
+ Creator::DetermineBrowserOpenBehavior(pref_default, 0);
+ EXPECT_EQ(Creator::BrowserOpenBehavior::NEW, output);
+
+ output = Creator::DetermineBrowserOpenBehavior(pref_last, 0);
+ EXPECT_EQ(Creator::BrowserOpenBehavior::NEW, output);
+
+ output = Creator::DetermineBrowserOpenBehavior(pref_urls, 0);
+ EXPECT_EQ(Creator::BrowserOpenBehavior::NEW, output);
+}
« no previous file with comments | « chrome/browser/ui/startup/startup_browser_creator_impl.cc ('k') | chrome/browser/ui/startup/startup_tab_provider.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698