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

Side by Side Diff: chrome/test/mini_installer_test/test.cc

Issue 269016: Adds a command-line option for specifying a particular build to test and for ... (Closed) Base URL: http://src.chromium.org/svn/trunk/src/
Patch Set: '' Created 11 years, 2 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
« no previous file with comments | « chrome/test/mini_installer_test/run_all_unittests.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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 #include "base/command_line.h"
4 #include "base/platform_thread.h" 5 #include "base/platform_thread.h"
6 #include "base/scoped_ptr.h"
5 #include "base/win_util.h" 7 #include "base/win_util.h"
6 #include "chrome/installer/util/install_util.h" 8 #include "chrome/installer/util/install_util.h"
7 #include "chrome/test/mini_installer_test/mini_installer_test_constants.h" 9 #include "chrome/test/mini_installer_test/mini_installer_test_constants.h"
10 #include "chrome/test/mini_installer_test/mini_installer_test_util.h"
8 #include "testing/gtest/include/gtest/gtest.h" 11 #include "testing/gtest/include/gtest/gtest.h"
9 12
10 #include "chrome_mini_installer.h" 13 #include "chrome_mini_installer.h"
11 14
15 // Although the C++ style guide disallows use of namespace directive, use
16 // here because this is not only a .cc file, but also a test.
17 using namespace mini_installer_constants;
18
12 namespace { 19 namespace {
20
13 class MiniInstallTest : public testing::Test { 21 class MiniInstallTest : public testing::Test {
14 protected: 22 protected:
23 // Whether these tests should be run regardless of our running platform.
24 bool force_tests_;
25
26 // Installers created in test fixture setup for convenience.
27 scoped_ptr<ChromeMiniInstaller> user_inst_, sys_inst_;
28
29 public:
15 void CleanTheSystem() { 30 void CleanTheSystem() {
16 ChromeMiniInstaller userinstall(mini_installer_constants::kUserInstall); 31 ChromeMiniInstaller userinstall(kUserInstall);
17 userinstall.UnInstall(); 32 userinstall.UnInstall();
18 ChromeMiniInstaller systeminstall( 33 ChromeMiniInstaller systeminstall(kSystemInstall);
19 mini_installer_constants::kSystemInstall); 34 systeminstall.UnInstall();
20 systeminstall.UnInstall();
21 } 35 }
36
22 virtual void SetUp() { 37 virtual void SetUp() {
23 if (win_util::GetWinVersion() < win_util::WINVERSION_VISTA) { 38 // Parse test command-line arguments.
39 const CommandLine* cmd = CommandLine::ForCurrentProcess();
40 std::wstring build = cmd->GetSwitchValue(L"build");
41 if (build.empty())
42 build = L"latest";
43
44 force_tests_ = cmd->HasSwitch(L"force");
45
46 if (win_util::GetWinVersion() < win_util::WINVERSION_VISTA ||
47 force_tests_) {
24 CleanTheSystem(); 48 CleanTheSystem();
49 // Separate the test output from cleaning output
50 printf("\nBEGIN test----------------------------------------\n");
51
52 // Create a few differently configured installers that are used in
53 // the tests, for convenience.
54 user_inst_.reset(new ChromeMiniInstaller(kUserInstall));
55 user_inst_->SetBuildUnderTest(build);
56 sys_inst_.reset(new ChromeMiniInstaller(kSystemInstall));
57 sys_inst_->SetBuildUnderTest(build);
58
25 } else { 59 } else {
26 printf("These tests don't run on Vista\n"); 60 printf("These tests don't run on this platform.\n");
27 exit(0); 61 exit(1);
28 }
29 }
30 virtual void TearDown() {
31 if (win_util::GetWinVersion() < win_util::WINVERSION_VISTA) {
32 PlatformThread::Sleep(2000);
33 CleanTheSystem();
34 } else {
35 printf("These tests don't run on Vista\n");
36 exit(0);
37 } 62 }
38 } 63 }
39 }; 64 };
40 }; 65 };
41 66
42 // TODO(nsylvain): Change this for GOOGLE_CHROME_BUILD when we have the 67 #if defined(GOOGLE_CHROME_BUILD)
43 // previous installers accessible from our Google Chrome continuous buildbot. 68 // Could use a parameterized gtest to slim down this list of tests, but since
44 #if defined(OFFICIAL_BUILD) 69 // these tests will often be run manually, don't want to have obscure test
45 TEST_F(MiniInstallTest, InstallLatestDevFullInstallerTest) { 70 // names.
46 ChromeMiniInstaller installer(mini_installer_constants::kUserInstall); 71
47 installer.InstallFullInstaller(false, 72 // Install full installer.
48 mini_installer_constants::kDevChannelBuild); 73 TEST_F(MiniInstallTest, FullInstallerUser) {
74 user_inst_->InstallFullInstaller(false);
75 }
76 TEST_F(MiniInstallTest, FullInstallerSys) {
77 sys_inst_->InstallFullInstaller(false);
49 } 78 }
50 79
51 TEST_F(MiniInstallTest, InstallLatestDevFullInstallerTestSystemLevel) { 80 // Overinstall full installer.
52 ChromeMiniInstaller installer(mini_installer_constants::kSystemInstall); 81 TEST_F(MiniInstallTest, FullOverPreviousFullUser) {
53 installer.InstallFullInstaller(false, 82 user_inst_->OverInstallOnFullInstaller(kFullInstall);
54 mini_installer_constants::kDevChannelBuild); 83 }
84 TEST_F(MiniInstallTest, FullOverPreviousFullSys) {
85 sys_inst_->OverInstallOnFullInstaller(kFullInstall);
55 } 86 }
56 87
57 TEST_F(MiniInstallTest, InstallLatestStableFullInstallerTest) { 88 // Overinstall diff installer.
58 ChromeMiniInstaller installer(mini_installer_constants::kUserInstall); 89 TEST_F(MiniInstallTest, DiffOverPreviousFullUser) {
59 installer.InstallFullInstaller(false, 90 user_inst_->OverInstallOnFullInstaller(kDiffInstall);
60 mini_installer_constants::kStableChannelBuild); 91 }
92 TEST_F(MiniInstallTest, DiffOverPreviousFullSys) {
93 sys_inst_->OverInstallOnFullInstaller(kDiffInstall);
61 } 94 }
62 95
63 TEST_F(MiniInstallTest, InstallLatestStableFullInstallerTestSystemLevel) { 96 // Repair version folder.
64 ChromeMiniInstaller installer(mini_installer_constants::kSystemInstall); 97 TEST_F(MiniInstallTest, RepairFolderOnFullUser) {
65 installer.InstallFullInstaller(false, 98 user_inst_->Repair(ChromeMiniInstaller::VERSION_FOLDER);
66 mini_installer_constants::kStableChannelBuild); 99 }
100 TEST_F(MiniInstallTest, RepairFolderOnFullSys) {
101 sys_inst_->Repair(ChromeMiniInstaller::VERSION_FOLDER);
67 } 102 }
68 103
69 TEST_F(MiniInstallTest, 104 // Repair registry.
70 InstallLatestDevFullInstallerOverPreviousFullDevInstaller) { 105 TEST_F(MiniInstallTest, RepairRegistryOnFullUser) {
71 ChromeMiniInstaller installer(mini_installer_constants::kUserInstall); 106 user_inst_->Repair(ChromeMiniInstaller::REGISTRY);
72 installer.OverInstallOnFullInstaller(mini_installer_constants::kFullInstall, 107 }
73 mini_installer_constants::kDevChannelBuild); 108 TEST_F(MiniInstallTest, RepairRegistryOnFullSys) {
109 sys_inst_->Repair(ChromeMiniInstaller::REGISTRY);
74 } 110 }
75 111
76 TEST_F(MiniInstallTest, 112 // Install standalone.
77 InstallLatestDevFullInstallerOverPreviousFullDevInstallerSystemLevel) { 113 TEST_F(MiniInstallTest, InstallStandaloneUser) {
78 ChromeMiniInstaller installer(mini_installer_constants::kSystemInstall); 114 user_inst_->InstallStandaloneInstaller();
79 installer.OverInstallOnFullInstaller(mini_installer_constants::kFullInstall,
80 mini_installer_constants::kDevChannelBuild);
81 }
82
83 TEST_F(MiniInstallTest,
84 InstallLatestDevDiffInstallerOverPreviousFullDevInstaller) {
85 ChromeMiniInstaller installer(mini_installer_constants::kUserInstall);
86 installer.OverInstallOnFullInstaller(mini_installer_constants::kDiffInstall,
87 mini_installer_constants::kDevChannelBuild);
88 }
89
90 TEST_F(MiniInstallTest,
91 InstallLatestDevDiffInstallerOverPreviousFullDevInstallerSystemLevel) {
92 ChromeMiniInstaller installer(mini_installer_constants::kSystemInstall);
93 installer.OverInstallOnFullInstaller(mini_installer_constants::kDiffInstall,
94 mini_installer_constants::kDevChannelBuild);
95 }
96
97 TEST_F(MiniInstallTest,
98 InstallLatestFullStableInstallerOverPreviousFullStableInstaller) {
99 ChromeMiniInstaller installer(mini_installer_constants::kUserInstall);
100 installer.OverInstallOnFullInstaller(mini_installer_constants::kFullInstall,
101 mini_installer_constants::kStableChannelBuild);
102 }
103
104 TEST_F(MiniInstallTest,
105 InstallLatestFullStableInstallerOverPreviousFullStableInstallerSystemLevel) {
106 ChromeMiniInstaller installer(mini_installer_constants::kSystemInstall);
107 installer.OverInstallOnFullInstaller(mini_installer_constants::kFullInstall,
108 mini_installer_constants::kStableChannelBuild);
109 }
110
111 TEST_F(MiniInstallTest,
112 InstallLatestDiffStableInstallerOverPreviousFullStableInstaller) {
113 ChromeMiniInstaller installer(mini_installer_constants::kUserInstall);
114 installer.OverInstallOnFullInstaller(mini_installer_constants::kDiffInstall,
115 mini_installer_constants::kStableChannelBuild);
116 }
117
118 TEST_F(MiniInstallTest,
119 InstallLatestDiffStableInstallerOverPreviousFullStableInstallerSystemLevel) {
120 ChromeMiniInstaller installer(mini_installer_constants::kSystemInstall);
121 installer.OverInstallOnFullInstaller(mini_installer_constants::kDiffInstall,
122 mini_installer_constants::kStableChannelBuild);
123 }
124
125 TEST_F(MiniInstallTest, StandaloneInstallerTest) {
126 ChromeMiniInstaller installer(mini_installer_constants::kUserInstall);
127 installer.InstallStandaloneInstaller();
128 } 115 }
129 116
130 // This test doesn't make sense. Disabling for now. 117 // This test doesn't make sense. Disabling for now.
131 TEST_F(MiniInstallTest, DISABLED_MiniInstallerOverChromeMetaInstallerTest) { 118 TEST_F(MiniInstallTest, DISABLED_MiniInstallerOverChromeMetaInstallerTest) {
132 ChromeMiniInstaller installer(mini_installer_constants::kUserInstall); 119 user_inst_->OverInstall();
133 installer.OverInstall(mini_installer_constants::kDevChannelBuild);
134 } 120 }
135 121
136 // Encountering issue 9593. Disabling temporarily. 122 // Encountering issue 9593. Disabling temporarily.
137 TEST_F(MiniInstallTest, 123 TEST_F(MiniInstallTest,
138 DISABLED_InstallLatestStableFullInstallerOverChromeMetaInstaller) { 124 DISABLED_InstallLatestStableFullInstallerOverChromeMetaInstaller) {
139 ChromeMiniInstaller installer(mini_installer_constants::kUserInstall); 125 user_inst_->OverInstall();
140 installer.OverInstall(mini_installer_constants::kStableChannelBuild);
141 } 126 }
142 // Encountering issue 9593. Disabling temporarily. 127 // Encountering issue 9593. Disabling temporarily.
143 TEST_F(MiniInstallTest, 128 TEST_F(MiniInstallTest,
144 DISABLED_InstallLatestDevFullInstallerOverChromeMetaInstallerTest) { 129 DISABLED_InstallLatestDevFullInstallerOverChromeMetaInstallerTest) {
145 ChromeMiniInstaller installer(mini_installer_constants::kUserInstall); 130 user_inst_->OverInstall();
146 installer.OverInstall(mini_installer_constants::kDevChannelBuild);
147 }
148
149 // Repair testcases
150
151 TEST_F(MiniInstallTest, RepairFolderTestOnLatestDevFullInstaller) {
152 ChromeMiniInstaller installer(mini_installer_constants::kUserInstall);
153 installer.Repair(ChromeMiniInstaller::VERSION_FOLDER,
154 mini_installer_constants::kDevChannelBuild);
155 }
156
157 TEST_F(MiniInstallTest, RepairFolderTestOnLatestDevFullInstallerSystemLevel) {
158 ChromeMiniInstaller installer(mini_installer_constants::kSystemInstall);
159 installer.Repair(ChromeMiniInstaller::VERSION_FOLDER,
160 mini_installer_constants::kDevChannelBuild);
161 }
162
163 TEST_F(MiniInstallTest, RepairRegistryTestOnLatestDevFullInstaller) {
164 ChromeMiniInstaller installer(mini_installer_constants::kUserInstall);
165 installer.Repair(ChromeMiniInstaller::REGISTRY,
166 mini_installer_constants::kDevChannelBuild);
167 }
168
169 TEST_F(MiniInstallTest, RepairRegistryTestOnLatestDevFullInstallerSystemLevel) {
170 ChromeMiniInstaller installer(mini_installer_constants::kSystemInstall);
171 installer.Repair(ChromeMiniInstaller::REGISTRY,
172 mini_installer_constants::kDevChannelBuild);
173 } 131 }
174 #endif 132 #endif
175 133
176 TEST_F(MiniInstallTest, InstallLatestMiniInstallerAtSystemLevel) { 134 TEST_F(MiniInstallTest, InstallMiniInstallerSys) {
177 ChromeMiniInstaller installer(mini_installer_constants::kSystemInstall); 135 sys_inst_->Install();
178 installer.Install();
179 } 136 }
180 137
181 TEST_F(MiniInstallTest, InstallLatestMiniInstallerAtUserLevel) { 138 TEST_F(MiniInstallTest, InstallMiniInstallerUser) {
182 ChromeMiniInstaller installer(mini_installer_constants::kUserInstall); 139 user_inst_->Install();
183 installer.Install();
184 } 140 }
185 141
186 TEST(InstallUtilTests, MiniInstallTestValidWindowsVersion) { 142 TEST_F(MiniInstallTest, MiniInstallTestValidWindowsVersion) {
187 // We run the tests on all supported OSes. 143 // We run the tests on all supported OSes.
188 // Make sure the code agrees. 144 // Make sure the code agrees.
189 EXPECT_TRUE(InstallUtil::IsOSSupported()); 145 EXPECT_TRUE(InstallUtil::IsOSSupported());
190 } 146 }
OLDNEW
« no previous file with comments | « chrome/test/mini_installer_test/run_all_unittests.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698