Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/ui/startup/startup_browser_creator_impl.h" | 5 #include "chrome/browser/ui/startup/startup_browser_creator_impl.h" |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "chrome/browser/ui/startup/startup_tab_provider.h" | 8 #include "chrome/browser/ui/startup/startup_tab_provider.h" |
| 9 #include "chrome/common/url_constants.cc" | 9 #include "chrome/common/url_constants.cc" |
| 10 #include "testing/gtest/include/gtest/gtest.h" | 10 #include "testing/gtest/include/gtest/gtest.h" |
| (...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 179 base::FilePath(), base::CommandLine(base::CommandLine::NO_PROGRAM), | 179 base::FilePath(), base::CommandLine(base::CommandLine::NO_PROGRAM), |
| 180 chrome::startup::IS_FIRST_RUN); | 180 chrome::startup::IS_FIRST_RUN); |
| 181 | 181 |
| 182 StartupTabs output = impl.DetermineStartupTabs(provider_allows_ntp, | 182 StartupTabs output = impl.DetermineStartupTabs(provider_allows_ntp, |
| 183 StartupTabs(), false, false); | 183 StartupTabs(), false, false); |
| 184 ASSERT_EQ(3U, output.size()); | 184 ASSERT_EQ(3U, output.size()); |
| 185 EXPECT_EQ("reset-trigger", output[0].url.host()); | 185 EXPECT_EQ("reset-trigger", output[0].url.host()); |
| 186 EXPECT_EQ("new-tab", output[1].url.host()); | 186 EXPECT_EQ("new-tab", output[1].url.host()); |
| 187 EXPECT_EQ("pinned", output[2].url.host()); | 187 EXPECT_EQ("pinned", output[2].url.host()); |
| 188 } | 188 } |
| 189 | |
| 190 TEST(StartupBrowserCreatorImplTest, DetermineBrowserOpenBehavior_Startup) { | |
| 191 SessionStartupPref pref_default(SessionStartupPref::Type::DEFAULT); | |
| 192 SessionStartupPref pref_last(SessionStartupPref::Type::LAST); | |
| 193 SessionStartupPref pref_urls(SessionStartupPref::Type::URLS); | |
| 194 | |
| 195 // The most typical case: startup, not recovering from a crash, no switches. | |
| 196 // Test each pref with and without command-line tabs. | |
| 197 StartupBrowserCreatorImpl::BrowserOpenBehavior output = | |
|
Peter Kasting
2017/02/06 23:26:40
Nit: This file is really verbose because of how lo
| |
| 198 StartupBrowserCreatorImpl::DetermineBrowserOpenBehavior( | |
| 199 pref_default, StartupBrowserCreatorImpl::PROCESS_STARTUP); | |
| 200 | |
|
Peter Kasting
2017/02/06 23:26:40
Nit: Why a blank line between setting and checking
| |
| 201 ASSERT_EQ(StartupBrowserCreatorImpl::BrowserOpenBehavior::NEW, output); | |
|
Peter Kasting
2017/02/06 23:26:40
Nit: Should probably be EXPECT (several places)
| |
| 202 | |
| 203 output = StartupBrowserCreatorImpl::DetermineBrowserOpenBehavior( | |
| 204 pref_default, StartupBrowserCreatorImpl::PROCESS_STARTUP | | |
| 205 StartupBrowserCreatorImpl::HAS_CMD_LINE_TABS); | |
| 206 | |
| 207 ASSERT_EQ(StartupBrowserCreatorImpl::BrowserOpenBehavior::NEW, output); | |
| 208 | |
| 209 output = StartupBrowserCreatorImpl::DetermineBrowserOpenBehavior( | |
| 210 pref_urls, StartupBrowserCreatorImpl::PROCESS_STARTUP); | |
| 211 | |
| 212 ASSERT_EQ(StartupBrowserCreatorImpl::BrowserOpenBehavior::NEW, output); | |
| 213 | |
| 214 output = StartupBrowserCreatorImpl::DetermineBrowserOpenBehavior( | |
| 215 pref_urls, StartupBrowserCreatorImpl::PROCESS_STARTUP | | |
| 216 StartupBrowserCreatorImpl::HAS_CMD_LINE_TABS); | |
| 217 | |
| 218 ASSERT_EQ(StartupBrowserCreatorImpl::BrowserOpenBehavior::NEW, output); | |
| 219 | |
| 220 output = StartupBrowserCreatorImpl::DetermineBrowserOpenBehavior( | |
| 221 pref_last, StartupBrowserCreatorImpl::PROCESS_STARTUP); | |
| 222 | |
| 223 ASSERT_EQ(StartupBrowserCreatorImpl::BrowserOpenBehavior::SYNCHRONOUS_RESTORE, | |
| 224 output); | |
| 225 | |
| 226 output = StartupBrowserCreatorImpl::DetermineBrowserOpenBehavior( | |
| 227 pref_last, StartupBrowserCreatorImpl::PROCESS_STARTUP | | |
| 228 StartupBrowserCreatorImpl::HAS_CMD_LINE_TABS); | |
| 229 | |
| 230 ASSERT_EQ(StartupBrowserCreatorImpl::BrowserOpenBehavior::SYNCHRONOUS_RESTORE, | |
| 231 output); | |
| 232 } | |
| 233 | |
| 234 TEST(StartupBrowserCreatorImplTest, DetermineBrowserOpenBehavior_CmdLineTabs) { | |
| 235 SessionStartupPref pref_default(SessionStartupPref::Type::DEFAULT); | |
| 236 SessionStartupPref pref_last(SessionStartupPref::Type::LAST); | |
| 237 SessionStartupPref pref_urls(SessionStartupPref::Type::URLS); | |
| 238 | |
| 239 // Command line tabs after startup should prompt use of existing window, | |
| 240 // regardless of pref. | |
| 241 StartupBrowserCreatorImpl::BrowserOpenBehavior output = | |
| 242 StartupBrowserCreatorImpl::DetermineBrowserOpenBehavior( | |
| 243 pref_default, StartupBrowserCreatorImpl::HAS_CMD_LINE_TABS); | |
| 244 | |
| 245 ASSERT_EQ(StartupBrowserCreatorImpl::BrowserOpenBehavior::USE_EXISTING, | |
| 246 output); | |
| 247 | |
| 248 output = StartupBrowserCreatorImpl::DetermineBrowserOpenBehavior( | |
| 249 pref_urls, StartupBrowserCreatorImpl::HAS_CMD_LINE_TABS); | |
| 250 | |
| 251 ASSERT_EQ(StartupBrowserCreatorImpl::BrowserOpenBehavior::USE_EXISTING, | |
| 252 output); | |
| 253 | |
| 254 output = StartupBrowserCreatorImpl::DetermineBrowserOpenBehavior( | |
| 255 pref_last, StartupBrowserCreatorImpl::HAS_CMD_LINE_TABS); | |
| 256 | |
| 257 ASSERT_EQ(StartupBrowserCreatorImpl::BrowserOpenBehavior::USE_EXISTING, | |
| 258 output); | |
| 259 | |
| 260 // Exception: this can be overridden by switch. | |
|
Peter Kasting
2017/02/06 23:26:40
Nit: switch -> passing a switch (2 places)
| |
| 261 output = StartupBrowserCreatorImpl::DetermineBrowserOpenBehavior( | |
| 262 pref_urls, StartupBrowserCreatorImpl::HAS_NEW_WINDOW_SWITCH | | |
| 263 StartupBrowserCreatorImpl::HAS_CMD_LINE_TABS); | |
| 264 | |
| 265 ASSERT_EQ(StartupBrowserCreatorImpl::BrowserOpenBehavior::NEW, output); | |
| 266 } | |
| 267 | |
| 268 TEST(StartupBrowserCreatorImplTest, DetermineBrowserOpenBehavior_PostCrash) { | |
| 269 SessionStartupPref pref_last(SessionStartupPref::Type::LAST); | |
| 270 | |
| 271 // Launching after crash should block session restore. | |
| 272 StartupBrowserCreatorImpl::BrowserOpenBehavior output = | |
| 273 StartupBrowserCreatorImpl::DetermineBrowserOpenBehavior( | |
| 274 pref_last, StartupBrowserCreatorImpl::PROCESS_STARTUP | | |
| 275 StartupBrowserCreatorImpl::IS_POST_CRASH_LAUNCH); | |
| 276 | |
| 277 ASSERT_EQ(StartupBrowserCreatorImpl::BrowserOpenBehavior::NEW, output); | |
| 278 | |
| 279 // Exception: this can be overridden by switch. | |
| 280 | |
|
Peter Kasting
2017/02/06 23:26:40
Nit: No blank line
| |
| 281 output = StartupBrowserCreatorImpl::DetermineBrowserOpenBehavior( | |
| 282 pref_last, StartupBrowserCreatorImpl::PROCESS_STARTUP | | |
| 283 StartupBrowserCreatorImpl::IS_POST_CRASH_LAUNCH | | |
| 284 StartupBrowserCreatorImpl::HAS_RESTORE_SWITCH); | |
| 285 | |
| 286 ASSERT_EQ(StartupBrowserCreatorImpl::BrowserOpenBehavior::SYNCHRONOUS_RESTORE, | |
| 287 output); | |
| 288 } | |
| 289 | |
| 290 TEST(StartupBrowserCreatorImplTest, DetermineBrowserOpenBehavior_NotStartup) { | |
| 291 SessionStartupPref pref_default(SessionStartupPref::Type::DEFAULT); | |
| 292 SessionStartupPref pref_last(SessionStartupPref::Type::LAST); | |
| 293 SessionStartupPref pref_urls(SessionStartupPref::Type::URLS); | |
| 294 | |
| 295 // Launch after startup without command-line tabs should always create a new | |
| 296 // window. | |
| 297 StartupBrowserCreatorImpl::BrowserOpenBehavior output = | |
| 298 StartupBrowserCreatorImpl::DetermineBrowserOpenBehavior(pref_default, 0); | |
| 299 | |
| 300 ASSERT_EQ(StartupBrowserCreatorImpl::BrowserOpenBehavior::NEW, output); | |
| 301 | |
| 302 output = | |
| 303 StartupBrowserCreatorImpl::DetermineBrowserOpenBehavior(pref_last, 0); | |
| 304 | |
| 305 ASSERT_EQ(StartupBrowserCreatorImpl::BrowserOpenBehavior::NEW, output); | |
| 306 | |
| 307 output = | |
| 308 StartupBrowserCreatorImpl::DetermineBrowserOpenBehavior(pref_urls, 0); | |
| 309 | |
| 310 ASSERT_EQ(StartupBrowserCreatorImpl::BrowserOpenBehavior::NEW, output); | |
| 311 } | |
| OLD | NEW |