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

Side by Side Diff: chrome/browser/ui/startup/startup_browser_creator_browsertest.cc

Issue 12674028: Report text output and exit code for command-line operations. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Line endings. Created 7 years, 9 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
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"
11 #include "chrome/browser/extensions/extension_system.h" 11 #include "chrome/browser/extensions/extension_system.h"
12 #include "chrome/browser/first_run/first_run.h" 12 #include "chrome/browser/first_run/first_run.h"
13 #include "chrome/browser/infobars/infobar_service.h" 13 #include "chrome/browser/infobars/infobar_service.h"
14 #include "chrome/browser/operation_output.h"
14 #include "chrome/browser/prefs/session_startup_pref.h" 15 #include "chrome/browser/prefs/session_startup_pref.h"
15 #include "chrome/browser/profiles/profile.h" 16 #include "chrome/browser/profiles/profile.h"
16 #include "chrome/browser/profiles/profile_impl.h" 17 #include "chrome/browser/profiles/profile_impl.h"
17 #include "chrome/browser/profiles/profile_manager.h" 18 #include "chrome/browser/profiles/profile_manager.h"
18 #include "chrome/browser/sessions/session_restore.h" 19 #include "chrome/browser/sessions/session_restore.h"
19 #include "chrome/browser/ui/browser.h" 20 #include "chrome/browser/ui/browser.h"
20 #include "chrome/browser/ui/browser_finder.h" 21 #include "chrome/browser/ui/browser_finder.h"
21 #include "chrome/browser/ui/browser_iterator.h" 22 #include "chrome/browser/ui/browser_iterator.h"
22 #include "chrome/browser/ui/browser_list.h" 23 #include "chrome/browser/ui/browser_list.h"
23 #include "chrome/browser/ui/browser_list_observer.h" 24 #include "chrome/browser/ui/browser_list_observer.h"
(...skipping 555 matching lines...) Expand 10 before | Expand all | Expand 10 after
579 SessionStartupPref pref2(SessionStartupPref::URLS); 580 SessionStartupPref pref2(SessionStartupPref::URLS);
580 pref2.urls = urls2; 581 pref2.urls = urls2;
581 SessionStartupPref::SetStartupPref(other_profile, pref2); 582 SessionStartupPref::SetStartupPref(other_profile, pref2);
582 583
583 // Close the browser. 584 // Close the browser.
584 browser()->window()->Close(); 585 browser()->window()->Close();
585 586
586 // Do a simple non-process-startup browser launch. 587 // Do a simple non-process-startup browser launch.
587 CommandLine dummy(CommandLine::NO_PROGRAM); 588 CommandLine dummy(CommandLine::NO_PROGRAM);
588 589
589 int return_code;
590 StartupBrowserCreator browser_creator; 590 StartupBrowserCreator browser_creator;
591 std::vector<Profile*> last_opened_profiles; 591 std::vector<Profile*> last_opened_profiles;
592 last_opened_profiles.push_back(default_profile); 592 last_opened_profiles.push_back(default_profile);
593 last_opened_profiles.push_back(other_profile); 593 last_opened_profiles.push_back(other_profile);
594 browser_creator.Start(dummy, profile_manager->user_data_dir(), 594 browser_creator.Start(dummy, profile_manager->user_data_dir(),
595 default_profile, last_opened_profiles, &return_code); 595 default_profile, last_opened_profiles,
596 scoped_ptr<OperationOutput>());
596 597
597 // urls1 were opened in a browser for default_profile, and urls2 were opened 598 // urls1 were opened in a browser for default_profile, and urls2 were opened
598 // in a browser for other_profile. 599 // in a browser for other_profile.
599 Browser* new_browser = NULL; 600 Browser* new_browser = NULL;
600 // |browser()| is still around at this point, even though we've closed its 601 // |browser()| is still around at this point, even though we've closed its
601 // window. Thus the browser count for default_profile is 2. 602 // window. Thus the browser count for default_profile is 2.
602 ASSERT_EQ(2u, chrome::GetBrowserCount(default_profile, 603 ASSERT_EQ(2u, chrome::GetBrowserCount(default_profile,
603 browser()->host_desktop_type())); 604 browser()->host_desktop_type()));
604 new_browser = FindOneOtherBrowserForProfile(default_profile, browser()); 605 new_browser = FindOneOtherBrowserForProfile(default_profile, browser());
605 ASSERT_TRUE(new_browser); 606 ASSERT_TRUE(new_browser);
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
648 // Set different startup preferences for the 2 profiles. 649 // Set different startup preferences for the 2 profiles.
649 SessionStartupPref pref1(SessionStartupPref::URLS); 650 SessionStartupPref pref1(SessionStartupPref::URLS);
650 pref1.urls = urls1; 651 pref1.urls = urls1;
651 SessionStartupPref::SetStartupPref(profile1, pref1); 652 SessionStartupPref::SetStartupPref(profile1, pref1);
652 SessionStartupPref pref2(SessionStartupPref::URLS); 653 SessionStartupPref pref2(SessionStartupPref::URLS);
653 pref2.urls = urls2; 654 pref2.urls = urls2;
654 SessionStartupPref::SetStartupPref(profile2, pref2); 655 SessionStartupPref::SetStartupPref(profile2, pref2);
655 656
656 // Simulate a launch after a browser update. 657 // Simulate a launch after a browser update.
657 CommandLine dummy(CommandLine::NO_PROGRAM); 658 CommandLine dummy(CommandLine::NO_PROGRAM);
658 int return_code;
659 StartupBrowserCreator browser_creator; 659 StartupBrowserCreator browser_creator;
660 std::vector<Profile*> last_opened_profiles; 660 std::vector<Profile*> last_opened_profiles;
661 last_opened_profiles.push_back(profile1); 661 last_opened_profiles.push_back(profile1);
662 last_opened_profiles.push_back(profile2); 662 last_opened_profiles.push_back(profile2);
663 browser_creator.Start(dummy, profile_manager->user_data_dir(), profile1, 663 browser_creator.Start(dummy, profile_manager->user_data_dir(), profile1,
664 last_opened_profiles, &return_code); 664 last_opened_profiles, scoped_ptr<OperationOutput>());
665 665
666 while (SessionRestore::IsRestoring(profile1) || 666 while (SessionRestore::IsRestoring(profile1) ||
667 SessionRestore::IsRestoring(profile2)) 667 SessionRestore::IsRestoring(profile2))
668 MessageLoop::current()->RunUntilIdle(); 668 MessageLoop::current()->RunUntilIdle();
669 669
670 // The startup URLs are ignored, and instead the last open sessions are 670 // The startup URLs are ignored, and instead the last open sessions are
671 // restored. 671 // restored.
672 EXPECT_TRUE(profile1->restored_last_session()); 672 EXPECT_TRUE(profile1->restored_last_session());
673 EXPECT_TRUE(profile2->restored_last_session()); 673 EXPECT_TRUE(profile2->restored_last_session());
674 674
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
736 SessionStartupPref::SetStartupPref(profile_urls, pref_urls); 736 SessionStartupPref::SetStartupPref(profile_urls, pref_urls);
737 737
738 // Close the browser. 738 // Close the browser.
739 chrome::HostDesktopType original_desktop_type = 739 chrome::HostDesktopType original_desktop_type =
740 browser()->host_desktop_type(); 740 browser()->host_desktop_type();
741 browser()->window()->Close(); 741 browser()->window()->Close();
742 742
743 // Do a simple non-process-startup browser launch. 743 // Do a simple non-process-startup browser launch.
744 CommandLine dummy(CommandLine::NO_PROGRAM); 744 CommandLine dummy(CommandLine::NO_PROGRAM);
745 745
746 int return_code;
747 StartupBrowserCreator browser_creator; 746 StartupBrowserCreator browser_creator;
748 std::vector<Profile*> last_opened_profiles; 747 std::vector<Profile*> last_opened_profiles;
749 last_opened_profiles.push_back(profile_home1); 748 last_opened_profiles.push_back(profile_home1);
750 last_opened_profiles.push_back(profile_home2); 749 last_opened_profiles.push_back(profile_home2);
751 last_opened_profiles.push_back(profile_last); 750 last_opened_profiles.push_back(profile_last);
752 last_opened_profiles.push_back(profile_urls); 751 last_opened_profiles.push_back(profile_urls);
753 browser_creator.Start(dummy, profile_manager->user_data_dir(), profile_home1, 752 browser_creator.Start(dummy, profile_manager->user_data_dir(), profile_home1,
754 last_opened_profiles, &return_code); 753 last_opened_profiles, scoped_ptr<OperationOutput>());
755 754
756 while (SessionRestore::IsRestoring(default_profile) || 755 while (SessionRestore::IsRestoring(default_profile) ||
757 SessionRestore::IsRestoring(profile_home1) || 756 SessionRestore::IsRestoring(profile_home1) ||
758 SessionRestore::IsRestoring(profile_home2) || 757 SessionRestore::IsRestoring(profile_home2) ||
759 SessionRestore::IsRestoring(profile_last) || 758 SessionRestore::IsRestoring(profile_last) ||
760 SessionRestore::IsRestoring(profile_urls)) 759 SessionRestore::IsRestoring(profile_urls))
761 MessageLoop::current()->RunUntilIdle(); 760 MessageLoop::current()->RunUntilIdle();
762 761
763 Browser* new_browser = NULL; 762 Browser* new_browser = NULL;
764 // The last open profile (the profile_home1 in this case) will always be 763 // The last open profile (the profile_home1 in this case) will always be
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
833 browser()->window()->Close(); 832 browser()->window()->Close();
834 static_cast<ProfileImpl*>(profile_home)->last_session_exit_type_ = 833 static_cast<ProfileImpl*>(profile_home)->last_session_exit_type_ =
835 Profile::EXIT_CRASHED; 834 Profile::EXIT_CRASHED;
836 static_cast<ProfileImpl*>(profile_last)->last_session_exit_type_ = 835 static_cast<ProfileImpl*>(profile_last)->last_session_exit_type_ =
837 Profile::EXIT_CRASHED; 836 Profile::EXIT_CRASHED;
838 static_cast<ProfileImpl*>(profile_urls)->last_session_exit_type_ = 837 static_cast<ProfileImpl*>(profile_urls)->last_session_exit_type_ =
839 Profile::EXIT_CRASHED; 838 Profile::EXIT_CRASHED;
840 839
841 CommandLine dummy(CommandLine::NO_PROGRAM); 840 CommandLine dummy(CommandLine::NO_PROGRAM);
842 dummy.AppendSwitchASCII(switches::kTestType, "browser"); 841 dummy.AppendSwitchASCII(switches::kTestType, "browser");
843 int return_code;
844 StartupBrowserCreator browser_creator; 842 StartupBrowserCreator browser_creator;
845 std::vector<Profile*> last_opened_profiles; 843 std::vector<Profile*> last_opened_profiles;
846 last_opened_profiles.push_back(profile_home); 844 last_opened_profiles.push_back(profile_home);
847 last_opened_profiles.push_back(profile_last); 845 last_opened_profiles.push_back(profile_last);
848 last_opened_profiles.push_back(profile_urls); 846 last_opened_profiles.push_back(profile_urls);
849 browser_creator.Start(dummy, profile_manager->user_data_dir(), profile_home, 847 browser_creator.Start(dummy, profile_manager->user_data_dir(), profile_home,
850 last_opened_profiles, &return_code); 848 last_opened_profiles, scoped_ptr<OperationOutput>());
851 849
852 // No profiles are getting restored, since they all display the crash info 850 // No profiles are getting restored, since they all display the crash info
853 // bar. 851 // bar.
854 EXPECT_FALSE(SessionRestore::IsRestoring(profile_home)); 852 EXPECT_FALSE(SessionRestore::IsRestoring(profile_home));
855 EXPECT_FALSE(SessionRestore::IsRestoring(profile_last)); 853 EXPECT_FALSE(SessionRestore::IsRestoring(profile_last));
856 EXPECT_FALSE(SessionRestore::IsRestoring(profile_urls)); 854 EXPECT_FALSE(SessionRestore::IsRestoring(profile_urls));
857 855
858 // The profile which normally opens the home page displays the new tab page. 856 // The profile which normally opens the home page displays the new tab page.
859 Browser* new_browser = NULL; 857 Browser* new_browser = NULL;
860 ASSERT_EQ(1u, chrome::GetBrowserCount(profile_home, 858 ASSERT_EQ(1u, chrome::GetBrowserCount(profile_home,
(...skipping 25 matching lines...) Expand all
886 new_browser = FindOneOtherBrowserForProfile(profile_urls, NULL); 884 new_browser = FindOneOtherBrowserForProfile(profile_urls, NULL);
887 ASSERT_TRUE(new_browser); 885 ASSERT_TRUE(new_browser);
888 tab_strip = new_browser->tab_strip_model(); 886 tab_strip = new_browser->tab_strip_model();
889 ASSERT_EQ(1, tab_strip->count()); 887 ASSERT_EQ(1, tab_strip->count());
890 web_contents = tab_strip->GetWebContentsAt(0); 888 web_contents = tab_strip->GetWebContentsAt(0);
891 EXPECT_EQ(GURL(chrome::kChromeUINewTabURL), web_contents->GetURL()); 889 EXPECT_EQ(GURL(chrome::kChromeUINewTabURL), web_contents->GetURL());
892 EXPECT_EQ(1U, 890 EXPECT_EQ(1U,
893 InfoBarService::FromWebContents(web_contents)->GetInfoBarCount()); 891 InfoBarService::FromWebContents(web_contents)->GetInfoBarCount());
894 } 892 }
895 #endif // !OS_CHROMEOS 893 #endif // !OS_CHROMEOS
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698