summaryrefslogtreecommitdiffstats
path: root/chrome/test/mini_installer_test/test.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/test/mini_installer_test/test.cc')
-rw-r--r--chrome/test/mini_installer_test/test.cc206
1 files changed, 81 insertions, 125 deletions
diff --git a/chrome/test/mini_installer_test/test.cc b/chrome/test/mini_installer_test/test.cc
index 6c93acb..345a24d 100644
--- a/chrome/test/mini_installer_test/test.cc
+++ b/chrome/test/mini_installer_test/test.cc
@@ -1,189 +1,145 @@
// Copyright (c) 2009 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#include "base/command_line.h"
#include "base/platform_thread.h"
+#include "base/scoped_ptr.h"
#include "base/win_util.h"
#include "chrome/installer/util/install_util.h"
#include "chrome/test/mini_installer_test/mini_installer_test_constants.h"
+#include "chrome/test/mini_installer_test/mini_installer_test_util.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "chrome_mini_installer.h"
+// Although the C++ style guide disallows use of namespace directive, use
+// here because this is not only a .cc file, but also a test.
+using namespace mini_installer_constants;
+
namespace {
+
class MiniInstallTest : public testing::Test {
protected:
+ // Whether these tests should be run regardless of our running platform.
+ bool force_tests_;
+
+ // Installers created in test fixture setup for convenience.
+ scoped_ptr<ChromeMiniInstaller> user_inst_, sys_inst_;
+
+ public:
void CleanTheSystem() {
- ChromeMiniInstaller userinstall(mini_installer_constants::kUserInstall);
+ ChromeMiniInstaller userinstall(kUserInstall);
userinstall.UnInstall();
- ChromeMiniInstaller systeminstall(
- mini_installer_constants::kSystemInstall);
- systeminstall.UnInstall();
+ ChromeMiniInstaller systeminstall(kSystemInstall);
+ systeminstall.UnInstall();
}
+
virtual void SetUp() {
- if (win_util::GetWinVersion() < win_util::WINVERSION_VISTA) {
- CleanTheSystem();
- } else {
- printf("These tests don't run on Vista\n");
- exit(0);
- }
- }
- virtual void TearDown() {
- if (win_util::GetWinVersion() < win_util::WINVERSION_VISTA) {
- PlatformThread::Sleep(2000);
+ // Parse test command-line arguments.
+ const CommandLine* cmd = CommandLine::ForCurrentProcess();
+ std::wstring build = cmd->GetSwitchValue(L"build");
+ if (build.empty())
+ build = L"latest";
+
+ force_tests_ = cmd->HasSwitch(L"force");
+
+ if (win_util::GetWinVersion() < win_util::WINVERSION_VISTA ||
+ force_tests_) {
CleanTheSystem();
+ // Separate the test output from cleaning output
+ printf("\nBEGIN test----------------------------------------\n");
+
+ // Create a few differently configured installers that are used in
+ // the tests, for convenience.
+ user_inst_.reset(new ChromeMiniInstaller(kUserInstall));
+ user_inst_->SetBuildUnderTest(build);
+ sys_inst_.reset(new ChromeMiniInstaller(kSystemInstall));
+ sys_inst_->SetBuildUnderTest(build);
+
} else {
- printf("These tests don't run on Vista\n");
- exit(0);
+ printf("These tests don't run on this platform.\n");
+ exit(1);
}
}
};
};
-// TODO(nsylvain): Change this for GOOGLE_CHROME_BUILD when we have the
-// previous installers accessible from our Google Chrome continuous buildbot.
-#if defined(OFFICIAL_BUILD)
-TEST_F(MiniInstallTest, InstallLatestDevFullInstallerTest) {
- ChromeMiniInstaller installer(mini_installer_constants::kUserInstall);
- installer.InstallFullInstaller(false,
- mini_installer_constants::kDevChannelBuild);
-}
+#if defined(GOOGLE_CHROME_BUILD)
+// Could use a parameterized gtest to slim down this list of tests, but since
+// these tests will often be run manually, don't want to have obscure test
+// names.
-TEST_F(MiniInstallTest, InstallLatestDevFullInstallerTestSystemLevel) {
- ChromeMiniInstaller installer(mini_installer_constants::kSystemInstall);
- installer.InstallFullInstaller(false,
- mini_installer_constants::kDevChannelBuild);
+// Install full installer.
+TEST_F(MiniInstallTest, FullInstallerUser) {
+ user_inst_->InstallFullInstaller(false);
}
-
-TEST_F(MiniInstallTest, InstallLatestStableFullInstallerTest) {
- ChromeMiniInstaller installer(mini_installer_constants::kUserInstall);
- installer.InstallFullInstaller(false,
- mini_installer_constants::kStableChannelBuild);
+TEST_F(MiniInstallTest, FullInstallerSys) {
+ sys_inst_->InstallFullInstaller(false);
}
-TEST_F(MiniInstallTest, InstallLatestStableFullInstallerTestSystemLevel) {
- ChromeMiniInstaller installer(mini_installer_constants::kSystemInstall);
- installer.InstallFullInstaller(false,
- mini_installer_constants::kStableChannelBuild);
+// Overinstall full installer.
+TEST_F(MiniInstallTest, FullOverPreviousFullUser) {
+ user_inst_->OverInstallOnFullInstaller(kFullInstall);
}
-
-TEST_F(MiniInstallTest,
- InstallLatestDevFullInstallerOverPreviousFullDevInstaller) {
- ChromeMiniInstaller installer(mini_installer_constants::kUserInstall);
- installer.OverInstallOnFullInstaller(mini_installer_constants::kFullInstall,
- mini_installer_constants::kDevChannelBuild);
-}
-
-TEST_F(MiniInstallTest,
- InstallLatestDevFullInstallerOverPreviousFullDevInstallerSystemLevel) {
- ChromeMiniInstaller installer(mini_installer_constants::kSystemInstall);
- installer.OverInstallOnFullInstaller(mini_installer_constants::kFullInstall,
- mini_installer_constants::kDevChannelBuild);
+TEST_F(MiniInstallTest, FullOverPreviousFullSys) {
+ sys_inst_->OverInstallOnFullInstaller(kFullInstall);
}
-TEST_F(MiniInstallTest,
- InstallLatestDevDiffInstallerOverPreviousFullDevInstaller) {
- ChromeMiniInstaller installer(mini_installer_constants::kUserInstall);
- installer.OverInstallOnFullInstaller(mini_installer_constants::kDiffInstall,
- mini_installer_constants::kDevChannelBuild);
+// Overinstall diff installer.
+TEST_F(MiniInstallTest, DiffOverPreviousFullUser) {
+ user_inst_->OverInstallOnFullInstaller(kDiffInstall);
}
-
-TEST_F(MiniInstallTest,
- InstallLatestDevDiffInstallerOverPreviousFullDevInstallerSystemLevel) {
- ChromeMiniInstaller installer(mini_installer_constants::kSystemInstall);
- installer.OverInstallOnFullInstaller(mini_installer_constants::kDiffInstall,
- mini_installer_constants::kDevChannelBuild);
+TEST_F(MiniInstallTest, DiffOverPreviousFullSys) {
+ sys_inst_->OverInstallOnFullInstaller(kDiffInstall);
}
-TEST_F(MiniInstallTest,
- InstallLatestFullStableInstallerOverPreviousFullStableInstaller) {
- ChromeMiniInstaller installer(mini_installer_constants::kUserInstall);
- installer.OverInstallOnFullInstaller(mini_installer_constants::kFullInstall,
- mini_installer_constants::kStableChannelBuild);
+// Repair version folder.
+TEST_F(MiniInstallTest, RepairFolderOnFullUser) {
+ user_inst_->Repair(ChromeMiniInstaller::VERSION_FOLDER);
}
-
-TEST_F(MiniInstallTest,
- InstallLatestFullStableInstallerOverPreviousFullStableInstallerSystemLevel) {
- ChromeMiniInstaller installer(mini_installer_constants::kSystemInstall);
- installer.OverInstallOnFullInstaller(mini_installer_constants::kFullInstall,
- mini_installer_constants::kStableChannelBuild);
+TEST_F(MiniInstallTest, RepairFolderOnFullSys) {
+ sys_inst_->Repair(ChromeMiniInstaller::VERSION_FOLDER);
}
-TEST_F(MiniInstallTest,
- InstallLatestDiffStableInstallerOverPreviousFullStableInstaller) {
- ChromeMiniInstaller installer(mini_installer_constants::kUserInstall);
- installer.OverInstallOnFullInstaller(mini_installer_constants::kDiffInstall,
- mini_installer_constants::kStableChannelBuild);
+// Repair registry.
+TEST_F(MiniInstallTest, RepairRegistryOnFullUser) {
+ user_inst_->Repair(ChromeMiniInstaller::REGISTRY);
}
-
-TEST_F(MiniInstallTest,
- InstallLatestDiffStableInstallerOverPreviousFullStableInstallerSystemLevel) {
- ChromeMiniInstaller installer(mini_installer_constants::kSystemInstall);
- installer.OverInstallOnFullInstaller(mini_installer_constants::kDiffInstall,
- mini_installer_constants::kStableChannelBuild);
+TEST_F(MiniInstallTest, RepairRegistryOnFullSys) {
+ sys_inst_->Repair(ChromeMiniInstaller::REGISTRY);
}
-TEST_F(MiniInstallTest, StandaloneInstallerTest) {
- ChromeMiniInstaller installer(mini_installer_constants::kUserInstall);
- installer.InstallStandaloneInstaller();
+// Install standalone.
+TEST_F(MiniInstallTest, InstallStandaloneUser) {
+ user_inst_->InstallStandaloneInstaller();
}
// This test doesn't make sense. Disabling for now.
TEST_F(MiniInstallTest, DISABLED_MiniInstallerOverChromeMetaInstallerTest) {
- ChromeMiniInstaller installer(mini_installer_constants::kUserInstall);
- installer.OverInstall(mini_installer_constants::kDevChannelBuild);
+ user_inst_->OverInstall();
}
// Encountering issue 9593. Disabling temporarily.
TEST_F(MiniInstallTest,
DISABLED_InstallLatestStableFullInstallerOverChromeMetaInstaller) {
- ChromeMiniInstaller installer(mini_installer_constants::kUserInstall);
- installer.OverInstall(mini_installer_constants::kStableChannelBuild);
+ user_inst_->OverInstall();
}
// Encountering issue 9593. Disabling temporarily.
TEST_F(MiniInstallTest,
DISABLED_InstallLatestDevFullInstallerOverChromeMetaInstallerTest) {
- ChromeMiniInstaller installer(mini_installer_constants::kUserInstall);
- installer.OverInstall(mini_installer_constants::kDevChannelBuild);
-}
-
-// Repair testcases
-
-TEST_F(MiniInstallTest, RepairFolderTestOnLatestDevFullInstaller) {
- ChromeMiniInstaller installer(mini_installer_constants::kUserInstall);
- installer.Repair(ChromeMiniInstaller::VERSION_FOLDER,
- mini_installer_constants::kDevChannelBuild);
-}
-
-TEST_F(MiniInstallTest, RepairFolderTestOnLatestDevFullInstallerSystemLevel) {
- ChromeMiniInstaller installer(mini_installer_constants::kSystemInstall);
- installer.Repair(ChromeMiniInstaller::VERSION_FOLDER,
- mini_installer_constants::kDevChannelBuild);
-}
-
-TEST_F(MiniInstallTest, RepairRegistryTestOnLatestDevFullInstaller) {
- ChromeMiniInstaller installer(mini_installer_constants::kUserInstall);
- installer.Repair(ChromeMiniInstaller::REGISTRY,
- mini_installer_constants::kDevChannelBuild);
-}
-
-TEST_F(MiniInstallTest, RepairRegistryTestOnLatestDevFullInstallerSystemLevel) {
- ChromeMiniInstaller installer(mini_installer_constants::kSystemInstall);
- installer.Repair(ChromeMiniInstaller::REGISTRY,
- mini_installer_constants::kDevChannelBuild);
+ user_inst_->OverInstall();
}
#endif
-TEST_F(MiniInstallTest, InstallLatestMiniInstallerAtSystemLevel) {
- ChromeMiniInstaller installer(mini_installer_constants::kSystemInstall);
- installer.Install();
+TEST_F(MiniInstallTest, InstallMiniInstallerSys) {
+ sys_inst_->Install();
}
-TEST_F(MiniInstallTest, InstallLatestMiniInstallerAtUserLevel) {
- ChromeMiniInstaller installer(mini_installer_constants::kUserInstall);
- installer.Install();
+TEST_F(MiniInstallTest, InstallMiniInstallerUser) {
+ user_inst_->Install();
}
-TEST(InstallUtilTests, MiniInstallTestValidWindowsVersion) {
+TEST_F(MiniInstallTest, MiniInstallTestValidWindowsVersion) {
// We run the tests on all supported OSes.
// Make sure the code agrees.
EXPECT_TRUE(InstallUtil::IsOSSupported());