Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "base/command_line.h" | 5 #include "base/command_line.h" |
| 6 #include "base/files/file_path.h" | 6 #include "base/files/file_path.h" |
| 7 #include "base/prefs/pref_service.h" | 7 #include "base/prefs/pref_service.h" |
| 8 #include "chrome/browser/browser_process.h" | 8 #include "chrome/browser/browser_process.h" |
| 9 #include "chrome/browser/extensions/extension_browsertest.h" | 9 #include "chrome/browser/extensions/extension_browsertest.h" |
| 10 #include "chrome/browser/extensions/extension_service.h" | 10 #include "chrome/browser/extensions/extension_service.h" |
| (...skipping 19 matching lines...) Expand all Loading... | |
| 30 #include "chrome/common/chrome_switches.h" | 30 #include "chrome/common/chrome_switches.h" |
| 31 #include "chrome/common/pref_names.h" | 31 #include "chrome/common/pref_names.h" |
| 32 #include "chrome/common/url_constants.h" | 32 #include "chrome/common/url_constants.h" |
| 33 #include "chrome/test/base/in_process_browser_test.h" | 33 #include "chrome/test/base/in_process_browser_test.h" |
| 34 #include "chrome/test/base/ui_test_utils.h" | 34 #include "chrome/test/base/ui_test_utils.h" |
| 35 #include "content/public/browser/web_contents.h" | 35 #include "content/public/browser/web_contents.h" |
| 36 #include "testing/gtest/include/gtest/gtest.h" | 36 #include "testing/gtest/include/gtest/gtest.h" |
| 37 | 37 |
| 38 using extensions::Extension; | 38 using extensions::Extension; |
| 39 | 39 |
| 40 namespace { | |
| 41 | |
| 42 // Check that there are two browsers. Find the one that is not |browser|. | |
| 43 void FindOneOtherBrowser(Browser* browser, Browser** out_other_browser) { | |
|
Bernhard Bauer
2013/04/03 17:55:20
Could you simply return the other browser here?
Sergiu
2013/04/04 09:02:55
Well, there is a comment below that says:
// Hel
Bernhard Bauer
2013/04/04 09:08:40
Well, yeah, an ASSERT expands to something that re
| |
| 44 // There should only be one other browser. | |
| 45 ASSERT_EQ(2u, chrome::GetBrowserCount(browser->profile(), | |
| 46 browser->host_desktop_type())); | |
| 47 | |
| 48 // Find the new browser. | |
| 49 Browser* other_browser = NULL; | |
| 50 for (chrome::BrowserIterator it; !it.done() && !other_browser; it.Next()) { | |
| 51 if (*it != browser) | |
| 52 other_browser = *it; | |
| 53 } | |
| 54 ASSERT_TRUE(other_browser); | |
| 55 ASSERT_TRUE(other_browser != browser); | |
|
Bernhard Bauer
2013/04/03 17:55:20
This check isn't really necessary (that's the exac
Sergiu
2013/04/04 09:02:55
Done.
| |
| 56 *out_other_browser = other_browser; | |
| 57 } | |
| 58 | |
| 59 } // namespace | |
| 60 | |
| 40 class StartupBrowserCreatorTest : public ExtensionBrowserTest { | 61 class StartupBrowserCreatorTest : public ExtensionBrowserTest { |
| 41 protected: | 62 protected: |
| 42 virtual bool SetUpUserDataDirectory() OVERRIDE { | 63 virtual bool SetUpUserDataDirectory() OVERRIDE { |
| 43 // Make sure the first run sentinel file exists before running these tests, | 64 // Make sure the first run sentinel file exists before running these tests, |
| 44 // since some of them customize the session startup pref whose value can | 65 // since some of them customize the session startup pref whose value can |
| 45 // be different than the default during the first run. | 66 // be different than the default during the first run. |
| 46 // TODO(bauerb): set the first run flag instead of creating a sentinel file. | 67 // TODO(bauerb): set the first run flag instead of creating a sentinel file. |
| 47 first_run::CreateSentinel(); | 68 first_run::CreateSentinel(); |
| 48 return ExtensionBrowserTest::SetUpUserDataDirectory(); | 69 return ExtensionBrowserTest::SetUpUserDataDirectory(); |
| 49 } | 70 } |
| (...skipping 27 matching lines...) Expand all Loading... | |
| 77 browser()->host_desktop_type())); | 98 browser()->host_desktop_type())); |
| 78 } | 99 } |
| 79 | 100 |
| 80 void SetAppLaunchPref(const std::string& app_id, | 101 void SetAppLaunchPref(const std::string& app_id, |
| 81 extensions::ExtensionPrefs::LaunchType launch_type) { | 102 extensions::ExtensionPrefs::LaunchType launch_type) { |
| 82 ExtensionService* service = extensions::ExtensionSystem::Get( | 103 ExtensionService* service = extensions::ExtensionSystem::Get( |
| 83 browser()->profile())->extension_service(); | 104 browser()->profile())->extension_service(); |
| 84 service->extension_prefs()->SetLaunchType(app_id, launch_type); | 105 service->extension_prefs()->SetLaunchType(app_id, launch_type); |
| 85 } | 106 } |
| 86 | 107 |
| 87 // Check that there are two browsers. Find the one that is not |browser()|. | |
| 88 void FindOneOtherBrowser(Browser** out_other_browser) { | |
| 89 // There should only be one other browser. | |
| 90 ASSERT_EQ(2u, chrome::GetBrowserCount(browser()->profile(), | |
| 91 browser()->host_desktop_type())); | |
| 92 | |
| 93 // Find the new browser. | |
| 94 Browser* other_browser = NULL; | |
| 95 for (chrome::BrowserIterator it; !it.done() && !other_browser; it.Next()) { | |
| 96 if (*it != browser()) | |
| 97 other_browser = *it; | |
| 98 } | |
| 99 ASSERT_TRUE(other_browser); | |
| 100 ASSERT_TRUE(other_browser != browser()); | |
| 101 *out_other_browser = other_browser; | |
| 102 } | |
| 103 | |
| 104 Browser* FindOneOtherBrowserForProfile(Profile* profile, | 108 Browser* FindOneOtherBrowserForProfile(Profile* profile, |
| 105 Browser* not_this_browser) { | 109 Browser* not_this_browser) { |
| 106 for (chrome::BrowserIterator it; !it.done(); it.Next()) { | 110 for (chrome::BrowserIterator it; !it.done(); it.Next()) { |
| 107 if (*it != not_this_browser && it->profile() == profile) | 111 if (*it != not_this_browser && it->profile() == profile) |
| 108 return *it; | 112 return *it; |
| 109 } | 113 } |
| 110 return NULL; | 114 return NULL; |
| 111 } | 115 } |
| 112 }; | 116 }; |
| 113 | 117 |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 182 // Do a simple non-process-startup browser launch. | 186 // Do a simple non-process-startup browser launch. |
| 183 CommandLine dummy(CommandLine::NO_PROGRAM); | 187 CommandLine dummy(CommandLine::NO_PROGRAM); |
| 184 chrome::startup::IsFirstRun first_run = first_run::IsChromeFirstRun() ? | 188 chrome::startup::IsFirstRun first_run = first_run::IsChromeFirstRun() ? |
| 185 chrome::startup::IS_FIRST_RUN : chrome::startup::IS_NOT_FIRST_RUN; | 189 chrome::startup::IS_FIRST_RUN : chrome::startup::IS_NOT_FIRST_RUN; |
| 186 StartupBrowserCreatorImpl launch(base::FilePath(), dummy, first_run); | 190 StartupBrowserCreatorImpl launch(base::FilePath(), dummy, first_run); |
| 187 ASSERT_TRUE(launch.Launch(browser()->profile(), std::vector<GURL>(), false)); | 191 ASSERT_TRUE(launch.Launch(browser()->profile(), std::vector<GURL>(), false)); |
| 188 | 192 |
| 189 // This should have created a new browser window. |browser()| is still | 193 // This should have created a new browser window. |browser()| is still |
| 190 // around at this point, even though we've closed its window. | 194 // around at this point, even though we've closed its window. |
| 191 Browser* new_browser = NULL; | 195 Browser* new_browser = NULL; |
| 192 ASSERT_NO_FATAL_FAILURE(FindOneOtherBrowser(&new_browser)); | 196 ASSERT_NO_FATAL_FAILURE(FindOneOtherBrowser(browser(), &new_browser)); |
| 193 | 197 |
| 194 // The new browser should have one tab for each URL. | 198 // The new browser should have one tab for each URL. |
| 195 TabStripModel* tab_strip = new_browser->tab_strip_model(); | 199 TabStripModel* tab_strip = new_browser->tab_strip_model(); |
| 196 ASSERT_EQ(static_cast<int>(urls.size()), tab_strip->count()); | 200 ASSERT_EQ(static_cast<int>(urls.size()), tab_strip->count()); |
| 197 for (size_t i=0; i < urls.size(); i++) { | 201 for (size_t i=0; i < urls.size(); i++) { |
| 198 EXPECT_EQ(urls[i], tab_strip->GetWebContentsAt(i)->GetURL()); | 202 EXPECT_EQ(urls[i], tab_strip->GetWebContentsAt(i)->GetURL()); |
| 199 } | 203 } |
| 200 | 204 |
| 201 // The two tabs, despite having the same site, should be in different | 205 // The two tabs, despite having the same site, should be in different |
| 202 // SiteInstances. | 206 // SiteInstances. |
| (...skipping 22 matching lines...) Expand all Loading... | |
| 225 | 229 |
| 226 // Do a simple non-process-startup browser launch. | 230 // Do a simple non-process-startup browser launch. |
| 227 CommandLine dummy(CommandLine::NO_PROGRAM); | 231 CommandLine dummy(CommandLine::NO_PROGRAM); |
| 228 chrome::startup::IsFirstRun first_run = first_run::IsChromeFirstRun() ? | 232 chrome::startup::IsFirstRun first_run = first_run::IsChromeFirstRun() ? |
| 229 chrome::startup::IS_FIRST_RUN : chrome::startup::IS_NOT_FIRST_RUN; | 233 chrome::startup::IS_FIRST_RUN : chrome::startup::IS_NOT_FIRST_RUN; |
| 230 StartupBrowserCreatorImpl launch(base::FilePath(), dummy, first_run); | 234 StartupBrowserCreatorImpl launch(base::FilePath(), dummy, first_run); |
| 231 ASSERT_TRUE(launch.Launch(browser()->profile(), std::vector<GURL>(), false)); | 235 ASSERT_TRUE(launch.Launch(browser()->profile(), std::vector<GURL>(), false)); |
| 232 | 236 |
| 233 // This should have created a new browser window. | 237 // This should have created a new browser window. |
| 234 Browser* new_browser = NULL; | 238 Browser* new_browser = NULL; |
| 235 ASSERT_NO_FATAL_FAILURE(FindOneOtherBrowser(&new_browser)); | 239 ASSERT_NO_FATAL_FAILURE(FindOneOtherBrowser(browser(), &new_browser)); |
| 236 | 240 |
| 237 // The new browser should have exactly one tab (not the startup URLs). | 241 // The new browser should have exactly one tab (not the startup URLs). |
| 238 ASSERT_EQ(1, new_browser->tab_strip_model()->count()); | 242 ASSERT_EQ(1, new_browser->tab_strip_model()->count()); |
| 239 } | 243 } |
| 240 | 244 |
| 241 // App shortcuts are not implemented on mac os. | 245 // App shortcuts are not implemented on mac os. |
| 242 #if !defined(OS_MACOSX) | 246 #if !defined(OS_MACOSX) |
| 243 IN_PROC_BROWSER_TEST_F(StartupBrowserCreatorTest, OpenAppShortcutNoPref) { | 247 IN_PROC_BROWSER_TEST_F(StartupBrowserCreatorTest, OpenAppShortcutNoPref) { |
| 244 // Load an app with launch.container = 'tab'. | 248 // Load an app with launch.container = 'tab'. |
| 245 const Extension* extension_app = NULL; | 249 const Extension* extension_app = NULL; |
| 246 ASSERT_NO_FATAL_FAILURE(LoadApp("app_with_tab_container", &extension_app)); | 250 ASSERT_NO_FATAL_FAILURE(LoadApp("app_with_tab_container", &extension_app)); |
| 247 | 251 |
| 248 // Add --app-id=<extension->id()> to the command line. | 252 // Add --app-id=<extension->id()> to the command line. |
| 249 CommandLine command_line(CommandLine::NO_PROGRAM); | 253 CommandLine command_line(CommandLine::NO_PROGRAM); |
| 250 command_line.AppendSwitchASCII(switches::kAppId, extension_app->id()); | 254 command_line.AppendSwitchASCII(switches::kAppId, extension_app->id()); |
| 251 | 255 |
| 252 chrome::startup::IsFirstRun first_run = first_run::IsChromeFirstRun() ? | 256 chrome::startup::IsFirstRun first_run = first_run::IsChromeFirstRun() ? |
| 253 chrome::startup::IS_FIRST_RUN : chrome::startup::IS_NOT_FIRST_RUN; | 257 chrome::startup::IS_FIRST_RUN : chrome::startup::IS_NOT_FIRST_RUN; |
| 254 StartupBrowserCreatorImpl launch(base::FilePath(), command_line, first_run); | 258 StartupBrowserCreatorImpl launch(base::FilePath(), command_line, first_run); |
| 255 ASSERT_TRUE(launch.Launch(browser()->profile(), std::vector<GURL>(), false)); | 259 ASSERT_TRUE(launch.Launch(browser()->profile(), std::vector<GURL>(), false)); |
| 256 | 260 |
| 257 // No pref was set, so the app should have opened in a window. | 261 // No pref was set, so the app should have opened in a window. |
| 258 // The launch should have created a new browser. | 262 // The launch should have created a new browser. |
| 259 Browser* new_browser = NULL; | 263 Browser* new_browser = NULL; |
| 260 ASSERT_NO_FATAL_FAILURE(FindOneOtherBrowser(&new_browser)); | 264 ASSERT_NO_FATAL_FAILURE(FindOneOtherBrowser(browser(), &new_browser)); |
| 261 | 265 |
| 262 // Expect an app window. | 266 // Expect an app window. |
| 263 EXPECT_TRUE(new_browser->is_app()); | 267 EXPECT_TRUE(new_browser->is_app()); |
| 264 | 268 |
| 265 // The browser's app_name should include the app's ID. | 269 // The browser's app_name should include the app's ID. |
| 266 EXPECT_NE( | 270 EXPECT_NE( |
| 267 new_browser->app_name_.find(extension_app->id()), | 271 new_browser->app_name_.find(extension_app->id()), |
| 268 std::string::npos) << new_browser->app_name_; | 272 std::string::npos) << new_browser->app_name_; |
| 269 } | 273 } |
| 270 | 274 |
| 271 IN_PROC_BROWSER_TEST_F(StartupBrowserCreatorTest, OpenAppShortcutWindowPref) { | 275 IN_PROC_BROWSER_TEST_F(StartupBrowserCreatorTest, OpenAppShortcutWindowPref) { |
| 272 const Extension* extension_app = NULL; | 276 const Extension* extension_app = NULL; |
| 273 ASSERT_NO_FATAL_FAILURE(LoadApp("app_with_tab_container", &extension_app)); | 277 ASSERT_NO_FATAL_FAILURE(LoadApp("app_with_tab_container", &extension_app)); |
| 274 | 278 |
| 275 // Set a pref indicating that the user wants to open this app in a window. | 279 // Set a pref indicating that the user wants to open this app in a window. |
| 276 SetAppLaunchPref(extension_app->id(), | 280 SetAppLaunchPref(extension_app->id(), |
| 277 extensions::ExtensionPrefs::LAUNCH_WINDOW); | 281 extensions::ExtensionPrefs::LAUNCH_WINDOW); |
| 278 | 282 |
| 279 CommandLine command_line(CommandLine::NO_PROGRAM); | 283 CommandLine command_line(CommandLine::NO_PROGRAM); |
| 280 command_line.AppendSwitchASCII(switches::kAppId, extension_app->id()); | 284 command_line.AppendSwitchASCII(switches::kAppId, extension_app->id()); |
| 281 chrome::startup::IsFirstRun first_run = first_run::IsChromeFirstRun() ? | 285 chrome::startup::IsFirstRun first_run = first_run::IsChromeFirstRun() ? |
| 282 chrome::startup::IS_FIRST_RUN : chrome::startup::IS_NOT_FIRST_RUN; | 286 chrome::startup::IS_FIRST_RUN : chrome::startup::IS_NOT_FIRST_RUN; |
| 283 StartupBrowserCreatorImpl launch(base::FilePath(), command_line, first_run); | 287 StartupBrowserCreatorImpl launch(base::FilePath(), command_line, first_run); |
| 284 ASSERT_TRUE(launch.Launch(browser()->profile(), std::vector<GURL>(), false)); | 288 ASSERT_TRUE(launch.Launch(browser()->profile(), std::vector<GURL>(), false)); |
| 285 | 289 |
| 286 // Pref was set to open in a window, so the app should have opened in a | 290 // Pref was set to open in a window, so the app should have opened in a |
| 287 // window. The launch should have created a new browser. Find the new | 291 // window. The launch should have created a new browser. Find the new |
| 288 // browser. | 292 // browser. |
| 289 Browser* new_browser = NULL; | 293 Browser* new_browser = NULL; |
| 290 ASSERT_NO_FATAL_FAILURE(FindOneOtherBrowser(&new_browser)); | 294 ASSERT_NO_FATAL_FAILURE(FindOneOtherBrowser(browser(), &new_browser)); |
| 291 | 295 |
| 292 // Expect an app window. | 296 // Expect an app window. |
| 293 EXPECT_TRUE(new_browser->is_app()); | 297 EXPECT_TRUE(new_browser->is_app()); |
| 294 | 298 |
| 295 // The browser's app_name should include the app's ID. | 299 // The browser's app_name should include the app's ID. |
| 296 EXPECT_NE( | 300 EXPECT_NE( |
| 297 new_browser->app_name_.find(extension_app->id()), | 301 new_browser->app_name_.find(extension_app->id()), |
| 298 std::string::npos) << new_browser->app_name_; | 302 std::string::npos) << new_browser->app_name_; |
| 299 } | 303 } |
| 300 | 304 |
| (...skipping 12 matching lines...) Expand all Loading... | |
| 313 chrome::startup::IS_FIRST_RUN : chrome::startup::IS_NOT_FIRST_RUN; | 317 chrome::startup::IS_FIRST_RUN : chrome::startup::IS_NOT_FIRST_RUN; |
| 314 StartupBrowserCreatorImpl launch(base::FilePath(), command_line, first_run); | 318 StartupBrowserCreatorImpl launch(base::FilePath(), command_line, first_run); |
| 315 ASSERT_TRUE(launch.Launch(browser()->profile(), std::vector<GURL>(), false)); | 319 ASSERT_TRUE(launch.Launch(browser()->profile(), std::vector<GURL>(), false)); |
| 316 | 320 |
| 317 // When an app shortcut is open and the pref indicates a tab should | 321 // When an app shortcut is open and the pref indicates a tab should |
| 318 // open, the tab is open in a new browser window. Expect a new window. | 322 // open, the tab is open in a new browser window. Expect a new window. |
| 319 ASSERT_EQ(2u, chrome::GetBrowserCount(browser()->profile(), | 323 ASSERT_EQ(2u, chrome::GetBrowserCount(browser()->profile(), |
| 320 browser()->host_desktop_type())); | 324 browser()->host_desktop_type())); |
| 321 | 325 |
| 322 Browser* new_browser = NULL; | 326 Browser* new_browser = NULL; |
| 323 ASSERT_NO_FATAL_FAILURE(FindOneOtherBrowser(&new_browser)); | 327 ASSERT_NO_FATAL_FAILURE(FindOneOtherBrowser(browser(), &new_browser)); |
| 324 | 328 |
| 325 // The tab should be in a tabbed window. | 329 // The tab should be in a tabbed window. |
| 326 EXPECT_TRUE(new_browser->is_type_tabbed()); | 330 EXPECT_TRUE(new_browser->is_type_tabbed()); |
| 327 | 331 |
| 328 // The browser's app_name should not include the app's ID: It is in a | 332 // The browser's app_name should not include the app's ID: It is in a |
| 329 // normal browser. | 333 // normal browser. |
| 330 EXPECT_EQ( | 334 EXPECT_EQ( |
| 331 new_browser->app_name_.find(extension_app->id()), | 335 new_browser->app_name_.find(extension_app->id()), |
| 332 std::string::npos) << new_browser->app_name_; | 336 std::string::npos) << new_browser->app_name_; |
| 333 } | 337 } |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 366 browser_creator.AddFirstRunTab(test_server()->GetURL("files/title2.html")); | 370 browser_creator.AddFirstRunTab(test_server()->GetURL("files/title2.html")); |
| 367 | 371 |
| 368 // Do a simple non-process-startup browser launch. | 372 // Do a simple non-process-startup browser launch. |
| 369 CommandLine dummy(CommandLine::NO_PROGRAM); | 373 CommandLine dummy(CommandLine::NO_PROGRAM); |
| 370 StartupBrowserCreatorImpl launch(base::FilePath(), dummy, &browser_creator, | 374 StartupBrowserCreatorImpl launch(base::FilePath(), dummy, &browser_creator, |
| 371 chrome::startup::IS_FIRST_RUN); | 375 chrome::startup::IS_FIRST_RUN); |
| 372 ASSERT_TRUE(launch.Launch(browser()->profile(), std::vector<GURL>(), false)); | 376 ASSERT_TRUE(launch.Launch(browser()->profile(), std::vector<GURL>(), false)); |
| 373 | 377 |
| 374 // This should have created a new browser window. | 378 // This should have created a new browser window. |
| 375 Browser* new_browser = NULL; | 379 Browser* new_browser = NULL; |
| 376 ASSERT_NO_FATAL_FAILURE(FindOneOtherBrowser(&new_browser)); | 380 ASSERT_NO_FATAL_FAILURE(FindOneOtherBrowser(browser(), &new_browser)); |
| 377 | 381 |
| 378 TabStripModel* tab_strip = new_browser->tab_strip_model(); | 382 TabStripModel* tab_strip = new_browser->tab_strip_model(); |
| 379 EXPECT_EQ(2, tab_strip->count()); | 383 EXPECT_EQ(2, tab_strip->count()); |
| 380 | 384 |
| 381 EXPECT_EQ("title1.html", | 385 EXPECT_EQ("title1.html", |
| 382 tab_strip->GetWebContentsAt(0)->GetURL().ExtractFileName()); | 386 tab_strip->GetWebContentsAt(0)->GetURL().ExtractFileName()); |
| 383 EXPECT_EQ("title2.html", | 387 EXPECT_EQ("title2.html", |
| 384 tab_strip->GetWebContentsAt(1)->GetURL().ExtractFileName()); | 388 tab_strip->GetWebContentsAt(1)->GetURL().ExtractFileName()); |
| 385 } | 389 } |
| 386 | 390 |
| 387 // Test hard-coded special first run tabs (defined in | 391 // Test hard-coded special first run tabs (defined in |
| 388 // StartupBrowserCreatorImpl::AddStartupURLs()). | 392 // StartupBrowserCreatorImpl::AddStartupURLs()). |
| 389 IN_PROC_BROWSER_TEST_F(StartupBrowserCreatorTest, AddCustomFirstRunTab) { | 393 IN_PROC_BROWSER_TEST_F(StartupBrowserCreatorTest, AddCustomFirstRunTab) { |
| 390 StartupBrowserCreator browser_creator; | 394 StartupBrowserCreator browser_creator; |
| 391 browser_creator.AddFirstRunTab(test_server()->GetURL("files/title1.html")); | 395 browser_creator.AddFirstRunTab(test_server()->GetURL("files/title1.html")); |
| 392 browser_creator.AddFirstRunTab(GURL("http://new_tab_page")); | 396 browser_creator.AddFirstRunTab(GURL("http://new_tab_page")); |
| 393 browser_creator.AddFirstRunTab(test_server()->GetURL("files/title2.html")); | 397 browser_creator.AddFirstRunTab(test_server()->GetURL("files/title2.html")); |
| 394 browser_creator.AddFirstRunTab(GURL("http://welcome_page")); | 398 browser_creator.AddFirstRunTab(GURL("http://welcome_page")); |
| 395 | 399 |
| 396 // Do a simple non-process-startup browser launch. | 400 // Do a simple non-process-startup browser launch. |
| 397 CommandLine dummy(CommandLine::NO_PROGRAM); | 401 CommandLine dummy(CommandLine::NO_PROGRAM); |
| 398 StartupBrowserCreatorImpl launch(base::FilePath(), dummy, &browser_creator, | 402 StartupBrowserCreatorImpl launch(base::FilePath(), dummy, &browser_creator, |
| 399 chrome::startup::IS_FIRST_RUN); | 403 chrome::startup::IS_FIRST_RUN); |
| 400 ASSERT_TRUE(launch.Launch(browser()->profile(), std::vector<GURL>(), false)); | 404 ASSERT_TRUE(launch.Launch(browser()->profile(), std::vector<GURL>(), false)); |
| 401 | 405 |
| 402 // This should have created a new browser window. | 406 // This should have created a new browser window. |
| 403 Browser* new_browser = NULL; | 407 Browser* new_browser = NULL; |
| 404 ASSERT_NO_FATAL_FAILURE(FindOneOtherBrowser(&new_browser)); | 408 ASSERT_NO_FATAL_FAILURE(FindOneOtherBrowser(browser(), &new_browser)); |
| 405 | 409 |
| 406 TabStripModel* tab_strip = new_browser->tab_strip_model(); | 410 TabStripModel* tab_strip = new_browser->tab_strip_model(); |
| 407 EXPECT_EQ(4, tab_strip->count()); | 411 EXPECT_EQ(4, tab_strip->count()); |
| 408 | 412 |
| 409 EXPECT_EQ("title1.html", | 413 EXPECT_EQ("title1.html", |
| 410 tab_strip->GetWebContentsAt(0)->GetURL().ExtractFileName()); | 414 tab_strip->GetWebContentsAt(0)->GetURL().ExtractFileName()); |
| 411 EXPECT_EQ(GURL(chrome::kChromeUINewTabURL), | 415 EXPECT_EQ(GURL(chrome::kChromeUINewTabURL), |
| 412 tab_strip->GetWebContentsAt(1)->GetURL()); | 416 tab_strip->GetWebContentsAt(1)->GetURL()); |
| 413 EXPECT_EQ("title2.html", | 417 EXPECT_EQ("title2.html", |
| 414 tab_strip->GetWebContentsAt(2)->GetURL().ExtractFileName()); | 418 tab_strip->GetWebContentsAt(2)->GetURL().ExtractFileName()); |
| 415 EXPECT_EQ(internals::GetWelcomePageURL(), | 419 EXPECT_EQ(internals::GetWelcomePageURL(), |
| 416 tab_strip->GetWebContentsAt(3)->GetURL()); | 420 tab_strip->GetWebContentsAt(3)->GetURL()); |
| 417 } | 421 } |
| 418 | 422 |
| 419 IN_PROC_BROWSER_TEST_F(StartupBrowserCreatorTest, SyncPromoNoWelcomePage) { | 423 IN_PROC_BROWSER_TEST_F(StartupBrowserCreatorTest, SyncPromoNoWelcomePage) { |
| 420 // Trick this test into thinking the promo has been shown for this profile; so | 424 // Trick this test into thinking the promo has been shown for this profile; so |
| 421 // that it will show it again (otherwise it skips showing it since | 425 // that it will show it again (otherwise it skips showing it since |
| 422 // --no-first-run is specified in browser tests). | 426 // --no-first-run is specified in browser tests). |
| 423 SyncPromoUI::DidShowSyncPromoAtStartup(browser()->profile()); | 427 SyncPromoUI::DidShowSyncPromoAtStartup(browser()->profile()); |
| 424 | 428 |
| 425 // Do a simple non-process-startup browser launch. | 429 // Do a simple non-process-startup browser launch. |
| 426 CommandLine dummy(CommandLine::NO_PROGRAM); | 430 CommandLine dummy(CommandLine::NO_PROGRAM); |
| 427 StartupBrowserCreatorImpl launch(base::FilePath(), dummy, | 431 StartupBrowserCreatorImpl launch(base::FilePath(), dummy, |
| 428 chrome::startup::IS_FIRST_RUN); | 432 chrome::startup::IS_FIRST_RUN); |
| 429 ASSERT_TRUE(launch.Launch(browser()->profile(), std::vector<GURL>(), false)); | 433 ASSERT_TRUE(launch.Launch(browser()->profile(), std::vector<GURL>(), false)); |
| 430 | 434 |
| 431 // This should have created a new browser window. | 435 // This should have created a new browser window. |
| 432 Browser* new_browser = NULL; | 436 Browser* new_browser = NULL; |
| 433 ASSERT_NO_FATAL_FAILURE(FindOneOtherBrowser(&new_browser)); | 437 ASSERT_NO_FATAL_FAILURE(FindOneOtherBrowser(browser(), &new_browser)); |
| 434 | 438 |
| 435 TabStripModel* tab_strip = new_browser->tab_strip_model(); | 439 TabStripModel* tab_strip = new_browser->tab_strip_model(); |
| 436 EXPECT_EQ(1, tab_strip->count()); | 440 EXPECT_EQ(1, tab_strip->count()); |
| 437 | 441 |
| 438 if (SyncPromoUI::ShouldShowSyncPromoAtStartup(browser()->profile(), true)) { | 442 if (SyncPromoUI::ShouldShowSyncPromoAtStartup(browser()->profile(), true)) { |
| 439 EXPECT_EQ("signin", tab_strip->GetWebContentsAt(0)->GetURL().host()); | 443 EXPECT_EQ("signin", tab_strip->GetWebContentsAt(0)->GetURL().host()); |
| 440 } else { | 444 } else { |
| 441 EXPECT_EQ(GURL(chrome::kChromeUINewTabURL), | 445 EXPECT_EQ(GURL(chrome::kChromeUINewTabURL), |
| 442 tab_strip->GetWebContentsAt(0)->GetURL()); | 446 tab_strip->GetWebContentsAt(0)->GetURL()); |
| 443 } | 447 } |
| 444 } | 448 } |
| 445 | 449 |
| 446 IN_PROC_BROWSER_TEST_F(StartupBrowserCreatorTest, SyncPromoWithWelcomePage) { | 450 IN_PROC_BROWSER_TEST_F(StartupBrowserCreatorTest, SyncPromoWithWelcomePage) { |
| 447 // Trick this test into thinking the promo has been shown for this profile; so | 451 // Trick this test into thinking the promo has been shown for this profile; so |
| 448 // that it will show it again (otherwise it skips showing it since | 452 // that it will show it again (otherwise it skips showing it since |
| 449 // --no-first-run is specified in browser tests). | 453 // --no-first-run is specified in browser tests). |
| 450 SyncPromoUI::DidShowSyncPromoAtStartup(browser()->profile()); | 454 SyncPromoUI::DidShowSyncPromoAtStartup(browser()->profile()); |
| 451 first_run::SetShouldShowWelcomePage(); | 455 first_run::SetShouldShowWelcomePage(); |
| 452 | 456 |
| 453 // Do a simple non-process-startup browser launch. | 457 // Do a simple non-process-startup browser launch. |
| 454 CommandLine dummy(CommandLine::NO_PROGRAM); | 458 CommandLine dummy(CommandLine::NO_PROGRAM); |
| 455 StartupBrowserCreatorImpl launch(base::FilePath(), dummy, | 459 StartupBrowserCreatorImpl launch(base::FilePath(), dummy, |
| 456 chrome::startup::IS_FIRST_RUN); | 460 chrome::startup::IS_FIRST_RUN); |
| 457 ASSERT_TRUE(launch.Launch(browser()->profile(), std::vector<GURL>(), false)); | 461 ASSERT_TRUE(launch.Launch(browser()->profile(), std::vector<GURL>(), false)); |
| 458 | 462 |
| 459 // This should have created a new browser window. | 463 // This should have created a new browser window. |
| 460 Browser* new_browser = NULL; | 464 Browser* new_browser = NULL; |
| 461 ASSERT_NO_FATAL_FAILURE(FindOneOtherBrowser(&new_browser)); | 465 ASSERT_NO_FATAL_FAILURE(FindOneOtherBrowser(browser(), &new_browser)); |
| 462 | 466 |
| 463 TabStripModel* tab_strip = new_browser->tab_strip_model(); | 467 TabStripModel* tab_strip = new_browser->tab_strip_model(); |
| 464 EXPECT_EQ(2, tab_strip->count()); | 468 EXPECT_EQ(2, tab_strip->count()); |
| 465 | 469 |
| 466 if (SyncPromoUI::ShouldShowSyncPromoAtStartup(browser()->profile(), true)) { | 470 if (SyncPromoUI::ShouldShowSyncPromoAtStartup(browser()->profile(), true)) { |
| 467 EXPECT_EQ("signin", tab_strip->GetWebContentsAt(0)->GetURL().host()); | 471 EXPECT_EQ("signin", tab_strip->GetWebContentsAt(0)->GetURL().host()); |
| 468 } else { | 472 } else { |
| 469 EXPECT_EQ(GURL(chrome::kChromeUINewTabURL), | 473 EXPECT_EQ(GURL(chrome::kChromeUINewTabURL), |
| 470 tab_strip->GetWebContentsAt(0)->GetURL()); | 474 tab_strip->GetWebContentsAt(0)->GetURL()); |
| 471 } | 475 } |
| (...skipping 16 matching lines...) Expand all Loading... | |
| 488 first_run::SetShouldShowWelcomePage(); | 492 first_run::SetShouldShowWelcomePage(); |
| 489 | 493 |
| 490 // Do a simple non-process-startup browser launch. | 494 // Do a simple non-process-startup browser launch. |
| 491 CommandLine dummy(CommandLine::NO_PROGRAM); | 495 CommandLine dummy(CommandLine::NO_PROGRAM); |
| 492 StartupBrowserCreatorImpl launch(base::FilePath(), dummy, &browser_creator, | 496 StartupBrowserCreatorImpl launch(base::FilePath(), dummy, &browser_creator, |
| 493 chrome::startup::IS_FIRST_RUN); | 497 chrome::startup::IS_FIRST_RUN); |
| 494 ASSERT_TRUE(launch.Launch(browser()->profile(), std::vector<GURL>(), false)); | 498 ASSERT_TRUE(launch.Launch(browser()->profile(), std::vector<GURL>(), false)); |
| 495 | 499 |
| 496 // This should have created a new browser window. | 500 // This should have created a new browser window. |
| 497 Browser* new_browser = NULL; | 501 Browser* new_browser = NULL; |
| 498 ASSERT_NO_FATAL_FAILURE(FindOneOtherBrowser(&new_browser)); | 502 ASSERT_NO_FATAL_FAILURE(FindOneOtherBrowser(browser(), &new_browser)); |
| 499 | 503 |
| 500 TabStripModel* tab_strip = new_browser->tab_strip_model(); | 504 TabStripModel* tab_strip = new_browser->tab_strip_model(); |
| 501 if (SyncPromoUI::ShouldShowSyncPromoAtStartup(browser()->profile(), true)) { | 505 if (SyncPromoUI::ShouldShowSyncPromoAtStartup(browser()->profile(), true)) { |
| 502 EXPECT_EQ(2, tab_strip->count()); | 506 EXPECT_EQ(2, tab_strip->count()); |
| 503 EXPECT_EQ("signin", tab_strip->GetWebContentsAt(0)->GetURL().host()); | 507 EXPECT_EQ("signin", tab_strip->GetWebContentsAt(0)->GetURL().host()); |
| 504 EXPECT_EQ("title1.html", | 508 EXPECT_EQ("title1.html", |
| 505 tab_strip->GetWebContentsAt(1)->GetURL().ExtractFileName()); | 509 tab_strip->GetWebContentsAt(1)->GetURL().ExtractFileName()); |
| 506 } else { | 510 } else { |
| 507 EXPECT_EQ(1, tab_strip->count()); | 511 EXPECT_EQ(1, tab_strip->count()); |
| 508 EXPECT_EQ("title1.html", | 512 EXPECT_EQ("title1.html", |
| (...skipping 15 matching lines...) Expand all Loading... | |
| 524 SyncPromoUI::DidShowSyncPromoAtStartup(browser()->profile()); | 528 SyncPromoUI::DidShowSyncPromoAtStartup(browser()->profile()); |
| 525 | 529 |
| 526 // Do a simple non-process-startup browser launch. | 530 // Do a simple non-process-startup browser launch. |
| 527 CommandLine dummy(CommandLine::NO_PROGRAM); | 531 CommandLine dummy(CommandLine::NO_PROGRAM); |
| 528 StartupBrowserCreatorImpl launch(base::FilePath(), dummy, &browser_creator, | 532 StartupBrowserCreatorImpl launch(base::FilePath(), dummy, &browser_creator, |
| 529 chrome::startup::IS_FIRST_RUN); | 533 chrome::startup::IS_FIRST_RUN); |
| 530 ASSERT_TRUE(launch.Launch(browser()->profile(), std::vector<GURL>(), false)); | 534 ASSERT_TRUE(launch.Launch(browser()->profile(), std::vector<GURL>(), false)); |
| 531 | 535 |
| 532 // This should have created a new browser window. | 536 // This should have created a new browser window. |
| 533 Browser* new_browser = NULL; | 537 Browser* new_browser = NULL; |
| 534 ASSERT_NO_FATAL_FAILURE(FindOneOtherBrowser(&new_browser)); | 538 ASSERT_NO_FATAL_FAILURE(FindOneOtherBrowser(browser(), &new_browser)); |
| 535 | 539 |
| 536 TabStripModel* tab_strip = new_browser->tab_strip_model(); | 540 TabStripModel* tab_strip = new_browser->tab_strip_model(); |
| 537 if (SyncPromoUI::ShouldShowSyncPromoAtStartup(browser()->profile(), true)) { | 541 if (SyncPromoUI::ShouldShowSyncPromoAtStartup(browser()->profile(), true)) { |
| 538 EXPECT_EQ(3, tab_strip->count()); | 542 EXPECT_EQ(3, tab_strip->count()); |
| 539 EXPECT_EQ("signin", tab_strip->GetWebContentsAt(0)->GetURL().host()); | 543 EXPECT_EQ("signin", tab_strip->GetWebContentsAt(0)->GetURL().host()); |
| 540 EXPECT_EQ("title1.html", | 544 EXPECT_EQ("title1.html", |
| 541 tab_strip->GetWebContentsAt(1)->GetURL().ExtractFileName()); | 545 tab_strip->GetWebContentsAt(1)->GetURL().ExtractFileName()); |
| 542 EXPECT_EQ(internals::GetWelcomePageURL(), | 546 EXPECT_EQ(internals::GetWelcomePageURL(), |
| 543 tab_strip->GetWebContentsAt(2)->GetURL()); | 547 tab_strip->GetWebContentsAt(2)->GetURL()); |
| 544 } else { | 548 } else { |
| (...skipping 340 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 885 browser()->host_desktop_type())); | 889 browser()->host_desktop_type())); |
| 886 new_browser = FindOneOtherBrowserForProfile(profile_urls, NULL); | 890 new_browser = FindOneOtherBrowserForProfile(profile_urls, NULL); |
| 887 ASSERT_TRUE(new_browser); | 891 ASSERT_TRUE(new_browser); |
| 888 tab_strip = new_browser->tab_strip_model(); | 892 tab_strip = new_browser->tab_strip_model(); |
| 889 ASSERT_EQ(1, tab_strip->count()); | 893 ASSERT_EQ(1, tab_strip->count()); |
| 890 web_contents = tab_strip->GetWebContentsAt(0); | 894 web_contents = tab_strip->GetWebContentsAt(0); |
| 891 EXPECT_EQ(GURL(chrome::kChromeUINewTabURL), web_contents->GetURL()); | 895 EXPECT_EQ(GURL(chrome::kChromeUINewTabURL), web_contents->GetURL()); |
| 892 EXPECT_EQ(1U, | 896 EXPECT_EQ(1U, |
| 893 InfoBarService::FromWebContents(web_contents)->GetInfoBarCount()); | 897 InfoBarService::FromWebContents(web_contents)->GetInfoBarCount()); |
| 894 } | 898 } |
| 899 | |
| 900 class ManagedModeBrowserCreatorTest : public InProcessBrowserTest { | |
| 901 protected: | |
| 902 virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE { | |
| 903 InProcessBrowserTest::SetUpCommandLine(command_line); | |
| 904 command_line->AppendSwitch(switches::kEnableManagedUsers); | |
| 905 } | |
| 906 }; | |
| 907 | |
| 908 IN_PROC_BROWSER_TEST_F(ManagedModeBrowserCreatorTest, | |
| 909 StartupManagedModeProfile) { | |
| 910 // Make this a managed profile. | |
| 911 browser()->profile()->GetPrefs()->SetBoolean(prefs::kProfileIsManaged, true); | |
| 912 StartupBrowserCreator browser_creator; | |
| 913 | |
| 914 // Do a simple non-process-startup browser launch. | |
| 915 CommandLine dummy(CommandLine::NO_PROGRAM); | |
| 916 StartupBrowserCreatorImpl launch(base::FilePath(), dummy, &browser_creator, | |
| 917 chrome::startup::IS_FIRST_RUN); | |
| 918 ASSERT_TRUE(launch.Launch(browser()->profile(), std::vector<GURL>(), false)); | |
| 919 | |
| 920 // This should have created a new browser window. | |
| 921 Browser* new_browser = NULL; | |
| 922 ASSERT_NO_FATAL_FAILURE(FindOneOtherBrowser(browser(), &new_browser)); | |
| 923 | |
| 924 TabStripModel* tab_strip = new_browser->tab_strip_model(); | |
| 925 // There should be only one tab. | |
| 926 EXPECT_EQ(1, tab_strip->count()); | |
| 927 | |
| 928 // And it should point to the managed user settings page. | |
| 929 content::WebContents* web_contents = tab_strip->GetWebContentsAt(0); | |
| 930 GURL expected(GURL(std::string(chrome::kChromeUISettingsURL) + | |
| 931 chrome::kManagedUserSettingsSubPage)); | |
| 932 EXPECT_EQ(GURL(expected), web_contents->GetURL()); | |
| 933 } | |
|
Bernhard Bauer
2013/04/03 17:55:20
Nit: a newline after this line would be nice.
Sergiu
2013/04/04 09:02:55
Done.
| |
| 895 #endif // !OS_CHROMEOS | 934 #endif // !OS_CHROMEOS |
| OLD | NEW |