| Index: chrome/installer/setup/install_worker_unittest.cc
|
| diff --git a/chrome/installer/setup/install_worker_unittest.cc b/chrome/installer/setup/install_worker_unittest.cc
|
| index 9a09805a9ea383d555518ec3d7cee139d89c8dff..1a9b8cadc134765de09fca4d0c7cb89b6e7de3cb 100644
|
| --- a/chrome/installer/setup/install_worker_unittest.cc
|
| +++ b/chrome/installer/setup/install_worker_unittest.cc
|
| @@ -191,6 +191,21 @@ class InstallWorkerTest : public testing::Test {
|
| system_level, BrowserDistribution::CHROME_BINARIES) == NULL) {
|
| MockProductState product_state;
|
| product_state.set_version(new Version(*current_version_));
|
| + product_state.set_brand(L"TEST");
|
| + product_state.set_multi_install(true);
|
| + BrowserDistribution* dist =
|
| + BrowserDistribution::GetSpecificDistribution(
|
| + BrowserDistribution::CHROME_BINARIES);
|
| + FilePath install_path =
|
| + installer::GetChromeInstallPath(system_level, dist);
|
| + product_state.SetUninstallProgram(
|
| + install_path.AppendASCII(current_version_->GetString())
|
| + .Append(installer::kInstallerDir)
|
| + .Append(installer::kSetupExe));
|
| + product_state.AddUninstallSwitch(installer::switches::kUninstall);
|
| + product_state.AddUninstallSwitch(installer::switches::kMultiInstall);
|
| + if (system_level)
|
| + product_state.AddUninstallSwitch(installer::switches::kSystemLevel);
|
| installation_state->SetProductState(system_level,
|
| BrowserDistribution::CHROME_BINARIES,
|
| product_state);
|
| @@ -302,6 +317,33 @@ class InstallWorkerTest : public testing::Test {
|
| return installer_state.release();
|
| }
|
|
|
| + static void AddChromeBinariesToInstallerState(
|
| + const InstallationState& machine_state,
|
| + MockInstallerState* installer_state) {
|
| + if (!installer_state->is_multi_install()) {
|
| + NOTREACHED();
|
| + return;
|
| + }
|
| + if (installer_state->FindProduct(BrowserDistribution::CHROME_BINARIES))
|
| + return;
|
| +
|
| + // Fresh install or upgrade?
|
| + const ProductState* chrome_binaries =
|
| + machine_state.GetProductState(installer_state->system_install(),
|
| + BrowserDistribution::CHROME_BINARIES);
|
| + if (chrome_binaries != NULL) {
|
| + installer_state->AddProductFromState(BrowserDistribution::CHROME_BINARIES,
|
| + *chrome_binaries);
|
| + } else {
|
| + BrowserDistribution* dist =
|
| + BrowserDistribution::GetSpecificDistribution(
|
| + BrowserDistribution::CHROME_BINARIES);
|
| + scoped_ptr<Product> product(new Product(dist));
|
| + product->SetOption(installer::kOptionMultiInstall, true);
|
| + installer_state->AddProduct(&product);
|
| + }
|
| + }
|
| +
|
| static void AddChromeToInstallerState(
|
| const InstallationState& machine_state,
|
| MockInstallerState* installer_state) {
|
| @@ -357,6 +399,8 @@ class InstallWorkerTest : public testing::Test {
|
| scoped_ptr<MockInstallerState> installer_state(
|
| BuildBasicInstallerState(system_install, multi_install, machine_state,
|
| operation));
|
| + if (multi_install)
|
| + AddChromeBinariesToInstallerState(machine_state, installer_state.get());
|
| AddChromeToInstallerState(machine_state, installer_state.get());
|
| return installer_state.release();
|
| }
|
| @@ -367,9 +411,13 @@ class InstallWorkerTest : public testing::Test {
|
| bool ready_mode,
|
| const InstallationState& machine_state,
|
| InstallerState::Operation operation) {
|
| + // This method only works for installation/upgrade.
|
| + DCHECK(operation != InstallerState::UNINSTALL);
|
| scoped_ptr<MockInstallerState> installer_state(
|
| BuildBasicInstallerState(system_install, multi_install, machine_state,
|
| operation));
|
| + if (multi_install)
|
| + AddChromeBinariesToInstallerState(machine_state, installer_state.get());
|
| AddChromeFrameToInstallerState(machine_state, ready_mode,
|
| installer_state.get());
|
| return installer_state.release();
|
| @@ -451,6 +499,9 @@ class OldIELowRightsTests : public InstallWorkerTest,
|
| system_level_, multi_install_, *installation_state_,
|
| multi_install_ ? InstallerState::MULTI_UPDATE :
|
| InstallerState::SINGLE_INSTALL_OR_UPDATE));
|
| + if (multi_install_)
|
| + AddChromeBinariesToInstallerState(*installation_state_,
|
| + installer_state_.get());
|
| AddChromeFrameToInstallerState(*installation_state_, false,
|
| installer_state_.get());
|
| }
|
| @@ -671,8 +722,11 @@ TEST_F(QuickEnableAbsentTest, CleanInstallSingleChrome) {
|
| scoped_ptr<MockInstallerState> installer_state(
|
| BuildChromeInstallerState(system_level_, false, *machine_state_,
|
| InstallerState::SINGLE_INSTALL_OR_UPDATE));
|
| - AddQuickEnableWorkItems(*installer_state, *machine_state_, &setup_path_,
|
| - new_version_.get(), &work_item_list_);
|
| + AddQuickEnableChromeFrameWorkItems(*installer_state,
|
| + *machine_state_,
|
| + &setup_path_,
|
| + new_version_.get(),
|
| + &work_item_list_);
|
| }
|
|
|
| TEST_F(QuickEnableAbsentTest, CleanInstallSingleChromeFrame) {
|
| @@ -681,8 +735,11 @@ TEST_F(QuickEnableAbsentTest, CleanInstallSingleChromeFrame) {
|
| BuildChromeFrameInstallerState(system_level_, false, false,
|
| *machine_state_,
|
| InstallerState::SINGLE_INSTALL_OR_UPDATE));
|
| - AddQuickEnableWorkItems(*installer_state, *machine_state_, &setup_path_,
|
| - new_version_.get(), &work_item_list_);
|
| + AddQuickEnableChromeFrameWorkItems(*installer_state,
|
| + *machine_state_,
|
| + &setup_path_,
|
| + new_version_.get(),
|
| + &work_item_list_);
|
| }
|
|
|
| TEST_F(QuickEnableAbsentTest, CleanInstallMultiChromeFrame) {
|
| @@ -691,8 +748,11 @@ TEST_F(QuickEnableAbsentTest, CleanInstallMultiChromeFrame) {
|
| BuildChromeFrameInstallerState(system_level_, true, false,
|
| *machine_state_,
|
| InstallerState::MULTI_INSTALL));
|
| - AddQuickEnableWorkItems(*installer_state, *machine_state_, &setup_path_,
|
| - new_version_.get(), &work_item_list_);
|
| + AddQuickEnableChromeFrameWorkItems(*installer_state,
|
| + *machine_state_,
|
| + &setup_path_,
|
| + new_version_.get(),
|
| + &work_item_list_);
|
| }
|
|
|
| TEST_F(QuickEnableAbsentTest, CleanInstallMultiChromeChromeFrame) {
|
| @@ -700,11 +760,15 @@ TEST_F(QuickEnableAbsentTest, CleanInstallMultiChromeChromeFrame) {
|
| scoped_ptr<MockInstallerState> installer_state(
|
| BuildBasicInstallerState(system_level_, true, *machine_state_,
|
| InstallerState::MULTI_INSTALL));
|
| + AddChromeBinariesToInstallerState(*machine_state_, installer_state.get());
|
| AddChromeToInstallerState(*machine_state_, installer_state.get());
|
| AddChromeFrameToInstallerState(*machine_state_, false,
|
| installer_state.get());
|
| - AddQuickEnableWorkItems(*installer_state, *machine_state_, &setup_path_,
|
| - new_version_.get(), &work_item_list_);
|
| + AddQuickEnableChromeFrameWorkItems(*installer_state,
|
| + *machine_state_,
|
| + &setup_path_,
|
| + new_version_.get(),
|
| + &work_item_list_);
|
| }
|
|
|
| TEST_F(QuickEnableAbsentTest, UninstallMultiChromeLeaveMultiChromeFrame) {
|
| @@ -717,8 +781,11 @@ TEST_F(QuickEnableAbsentTest, UninstallMultiChromeLeaveMultiChromeFrame) {
|
| BuildBasicInstallerState(system_level_, true, *machine_state_,
|
| InstallerState::UNINSTALL));
|
| AddChromeToInstallerState(*machine_state_, installer_state.get());
|
| - AddQuickEnableWorkItems(*installer_state, *machine_state_, &setup_path_,
|
| - new_version_.get(), &work_item_list_);
|
| + AddQuickEnableChromeFrameWorkItems(*installer_state,
|
| + *machine_state_,
|
| + &setup_path_,
|
| + new_version_.get(),
|
| + &work_item_list_);
|
| }
|
|
|
| TEST_F(QuickEnableAbsentTest, UninstallMultiChromeLeaveSingleChromeFrame) {
|
| @@ -731,8 +798,12 @@ TEST_F(QuickEnableAbsentTest, UninstallMultiChromeLeaveSingleChromeFrame) {
|
| BuildBasicInstallerState(system_level_, true, *machine_state_,
|
| InstallerState::UNINSTALL));
|
| AddChromeToInstallerState(*machine_state_, installer_state.get());
|
| - AddQuickEnableWorkItems(*installer_state, *machine_state_, &setup_path_,
|
| - new_version_.get(), &work_item_list_);
|
| + AddChromeBinariesToInstallerState(*machine_state_, installer_state.get());
|
| + AddQuickEnableChromeFrameWorkItems(*installer_state,
|
| + *machine_state_,
|
| + &setup_path_,
|
| + new_version_.get(),
|
| + &work_item_list_);
|
| }
|
|
|
| TEST_F(QuickEnableAbsentTest, AcceptReadyMode) {
|
| @@ -746,8 +817,12 @@ TEST_F(QuickEnableAbsentTest, AcceptReadyMode) {
|
| InstallerState::UNINSTALL));
|
| AddChromeToInstallerState(*machine_state_, installer_state.get());
|
| AddChromeFrameToInstallerState(*machine_state_, false, installer_state.get());
|
| - AddQuickEnableWorkItems(*installer_state, *machine_state_, &setup_path_,
|
| - new_version_.get(), &work_item_list_);
|
| + AddChromeBinariesToInstallerState(*machine_state_, installer_state.get());
|
| + AddQuickEnableChromeFrameWorkItems(*installer_state,
|
| + *machine_state_,
|
| + &setup_path_,
|
| + new_version_.get(),
|
| + &work_item_list_);
|
| }
|
|
|
| // Test scenarios under which the quick-enable-cf command should exist after the
|
| @@ -808,8 +883,11 @@ TEST_F(QuickEnablePresentTest, CleanInstallMultiChrome) {
|
| scoped_ptr<MockInstallerState> installer_state(
|
| BuildChromeInstallerState(system_level_, true, *machine_state_,
|
| InstallerState::MULTI_INSTALL));
|
| - AddQuickEnableWorkItems(*installer_state, *machine_state_, &setup_path_,
|
| - new_version_.get(), &work_item_list_);
|
| + AddQuickEnableChromeFrameWorkItems(*installer_state,
|
| + *machine_state_,
|
| + &setup_path_,
|
| + new_version_.get(),
|
| + &work_item_list_);
|
| }
|
|
|
| TEST_F(QuickEnablePresentTest, CleanInstallMultiChromeReadyMode) {
|
| @@ -817,11 +895,15 @@ TEST_F(QuickEnablePresentTest, CleanInstallMultiChromeReadyMode) {
|
| scoped_ptr<MockInstallerState> installer_state(
|
| BuildBasicInstallerState(system_level_, true, *machine_state_,
|
| InstallerState::MULTI_INSTALL));
|
| + AddChromeBinariesToInstallerState(*machine_state_, installer_state.get());
|
| AddChromeToInstallerState(*machine_state_, installer_state.get());
|
| AddChromeFrameToInstallerState(*machine_state_, true,
|
| installer_state.get());
|
| - AddQuickEnableWorkItems(*installer_state, *machine_state_, &setup_path_,
|
| - new_version_.get(), &work_item_list_);
|
| + AddQuickEnableChromeFrameWorkItems(*installer_state,
|
| + *machine_state_,
|
| + &setup_path_,
|
| + new_version_.get(),
|
| + &work_item_list_);
|
| }
|
|
|
| TEST_F(QuickEnablePresentTest, UninstallSingleChromeFrame) {
|
| @@ -834,8 +916,11 @@ TEST_F(QuickEnablePresentTest, UninstallSingleChromeFrame) {
|
| BuildBasicInstallerState(system_level_, false, *machine_state_,
|
| InstallerState::UNINSTALL));
|
| AddChromeFrameToInstallerState(*machine_state_, false, installer_state.get());
|
| - AddQuickEnableWorkItems(*installer_state, *machine_state_, &setup_path_,
|
| - new_version_.get(), &work_item_list_);
|
| + AddQuickEnableChromeFrameWorkItems(*installer_state,
|
| + *machine_state_,
|
| + &setup_path_,
|
| + new_version_.get(),
|
| + &work_item_list_);
|
| }
|
|
|
| TEST_F(QuickEnablePresentTest, UninstallMultiChromeFrame) {
|
| @@ -848,8 +933,11 @@ TEST_F(QuickEnablePresentTest, UninstallMultiChromeFrame) {
|
| BuildBasicInstallerState(system_level_, true, *machine_state_,
|
| InstallerState::UNINSTALL));
|
| AddChromeFrameToInstallerState(*machine_state_, false, installer_state.get());
|
| - AddQuickEnableWorkItems(*installer_state, *machine_state_, &setup_path_,
|
| - new_version_.get(), &work_item_list_);
|
| + AddQuickEnableChromeFrameWorkItems(*installer_state,
|
| + *machine_state_,
|
| + &setup_path_,
|
| + new_version_.get(),
|
| + &work_item_list_);
|
| }
|
|
|
| #endif // defined(GOOGLE_CHROME_BUILD)
|
|
|