| Index: chrome/test/mini_installer_test/test.cc
|
| ===================================================================
|
| --- chrome/test/mini_installer_test/test.cc (revision 29303)
|
| +++ chrome/test/mini_installer_test/test.cc (working copy)
|
| @@ -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) {
|
| + // 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);
|
| }
|
| }
|
| - virtual void TearDown() {
|
| - if (win_util::GetWinVersion() < win_util::WINVERSION_VISTA) {
|
| - PlatformThread::Sleep(2000);
|
| - CleanTheSystem();
|
| - } else {
|
| - printf("These tests don't run on Vista\n");
|
| - exit(0);
|
| - }
|
| - }
|
| };
|
| };
|
|
|
| -// 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, FullOverPreviousFullSys) {
|
| + sys_inst_->OverInstallOnFullInstaller(kFullInstall);
|
| }
|
|
|
| -TEST_F(MiniInstallTest,
|
| - InstallLatestDevFullInstallerOverPreviousFullDevInstallerSystemLevel) {
|
| - ChromeMiniInstaller installer(mini_installer_constants::kSystemInstall);
|
| - installer.OverInstallOnFullInstaller(mini_installer_constants::kFullInstall,
|
| - mini_installer_constants::kDevChannelBuild);
|
| +// Overinstall diff installer.
|
| +TEST_F(MiniInstallTest, DiffOverPreviousFullUser) {
|
| + user_inst_->OverInstallOnFullInstaller(kDiffInstall);
|
| }
|
| -
|
| -TEST_F(MiniInstallTest,
|
| - InstallLatestDevDiffInstallerOverPreviousFullDevInstaller) {
|
| - ChromeMiniInstaller installer(mini_installer_constants::kUserInstall);
|
| - installer.OverInstallOnFullInstaller(mini_installer_constants::kDiffInstall,
|
| - mini_installer_constants::kDevChannelBuild);
|
| +TEST_F(MiniInstallTest, DiffOverPreviousFullSys) {
|
| + sys_inst_->OverInstallOnFullInstaller(kDiffInstall);
|
| }
|
|
|
| -TEST_F(MiniInstallTest,
|
| - InstallLatestDevDiffInstallerOverPreviousFullDevInstallerSystemLevel) {
|
| - ChromeMiniInstaller installer(mini_installer_constants::kSystemInstall);
|
| - installer.OverInstallOnFullInstaller(mini_installer_constants::kDiffInstall,
|
| - mini_installer_constants::kDevChannelBuild);
|
| +// Repair version folder.
|
| +TEST_F(MiniInstallTest, RepairFolderOnFullUser) {
|
| + user_inst_->Repair(ChromeMiniInstaller::VERSION_FOLDER);
|
| }
|
| -
|
| -TEST_F(MiniInstallTest,
|
| - InstallLatestFullStableInstallerOverPreviousFullStableInstaller) {
|
| - ChromeMiniInstaller installer(mini_installer_constants::kUserInstall);
|
| - installer.OverInstallOnFullInstaller(mini_installer_constants::kFullInstall,
|
| - mini_installer_constants::kStableChannelBuild);
|
| +TEST_F(MiniInstallTest, RepairFolderOnFullSys) {
|
| + sys_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);
|
| +// Repair registry.
|
| +TEST_F(MiniInstallTest, RepairRegistryOnFullUser) {
|
| + user_inst_->Repair(ChromeMiniInstaller::REGISTRY);
|
| }
|
| -
|
| -TEST_F(MiniInstallTest,
|
| - InstallLatestDiffStableInstallerOverPreviousFullStableInstaller) {
|
| - ChromeMiniInstaller installer(mini_installer_constants::kUserInstall);
|
| - installer.OverInstallOnFullInstaller(mini_installer_constants::kDiffInstall,
|
| - mini_installer_constants::kStableChannelBuild);
|
| +TEST_F(MiniInstallTest, RepairRegistryOnFullSys) {
|
| + sys_inst_->Repair(ChromeMiniInstaller::REGISTRY);
|
| }
|
|
|
| -TEST_F(MiniInstallTest,
|
| - InstallLatestDiffStableInstallerOverPreviousFullStableInstallerSystemLevel) {
|
| - ChromeMiniInstaller installer(mini_installer_constants::kSystemInstall);
|
| - installer.OverInstallOnFullInstaller(mini_installer_constants::kDiffInstall,
|
| - mini_installer_constants::kStableChannelBuild);
|
| +// Install standalone.
|
| +TEST_F(MiniInstallTest, InstallStandaloneUser) {
|
| + user_inst_->InstallStandaloneInstaller();
|
| }
|
|
|
| -TEST_F(MiniInstallTest, StandaloneInstallerTest) {
|
| - ChromeMiniInstaller installer(mini_installer_constants::kUserInstall);
|
| - installer.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);
|
| + user_inst_->OverInstall();
|
| }
|
| -
|
| -// 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);
|
| -}
|
| #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());
|
|
|