| OLD | NEW |
| 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 <windows.h> | 5 #include <windows.h> |
| 6 #include <shlwapi.h> // For SHDeleteKey. | 6 #include <shlwapi.h> // For SHDeleteKey. |
| 7 | 7 |
| 8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
| 9 #include "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
| 10 #include "base/test/test_reg_util_win.h" | 10 #include "base/test/test_reg_util_win.h" |
| (...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 156 EXPECT_FALSE(GoogleUpdateSettings::ReadExperimentLabels( | 156 EXPECT_FALSE(GoogleUpdateSettings::ReadExperimentLabels( |
| 157 install == SYSTEM_INSTALL, &value)); | 157 install == SYSTEM_INSTALL, &value)); |
| 158 #endif // GOOGLE_CHROME_BUILD | 158 #endif // GOOGLE_CHROME_BUILD |
| 159 } | 159 } |
| 160 | 160 |
| 161 // Creates "ap" key with the value given as parameter. Also adds work | 161 // Creates "ap" key with the value given as parameter. Also adds work |
| 162 // items to work_item_list given so that they can be rolled back later. | 162 // items to work_item_list given so that they can be rolled back later. |
| 163 bool CreateApKey(WorkItemList* work_item_list, const std::wstring& value) { | 163 bool CreateApKey(WorkItemList* work_item_list, const std::wstring& value) { |
| 164 HKEY reg_root = HKEY_CURRENT_USER; | 164 HKEY reg_root = HKEY_CURRENT_USER; |
| 165 std::wstring reg_key = GetApKeyPath(); | 165 std::wstring reg_key = GetApKeyPath(); |
| 166 work_item_list->AddCreateRegKeyWorkItem(reg_root, reg_key); | 166 work_item_list->AddCreateRegKeyWorkItem( |
| 167 work_item_list->AddSetRegValueWorkItem(reg_root, reg_key, | 167 reg_root, reg_key, WorkItem::kWow64Default); |
| 168 google_update::kRegApField, value.c_str(), true); | 168 work_item_list->AddSetRegValueWorkItem(reg_root, |
| 169 reg_key, |
| 170 WorkItem::kWow64Default, |
| 171 google_update::kRegApField, |
| 172 value.c_str(), |
| 173 true); |
| 169 if (!work_item_list->Do()) { | 174 if (!work_item_list->Do()) { |
| 170 work_item_list->Rollback(); | 175 work_item_list->Rollback(); |
| 171 return false; | 176 return false; |
| 172 } | 177 } |
| 173 return true; | 178 return true; |
| 174 } | 179 } |
| 175 | 180 |
| 176 // Returns the key path of "ap" key, e.g.: | 181 // Returns the key path of "ap" key, e.g.: |
| 177 // Google\Update\ClientState\<kTestProductGuid> | 182 // Google\Update\ClientState\<kTestProductGuid> |
| 178 std::wstring GetApKeyPath() { | 183 std::wstring GetApKeyPath() { |
| (...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 460 | 465 |
| 461 work_item_list.reset(WorkItem::CreateWorkItemList()); | 466 work_item_list.reset(WorkItem::CreateWorkItemList()); |
| 462 // Test the case of when "ap" key doesnt exist at all | 467 // Test the case of when "ap" key doesnt exist at all |
| 463 std::wstring ap_key_value = ReadApKeyValue(); | 468 std::wstring ap_key_value = ReadApKeyValue(); |
| 464 std::wstring reg_key = GetApKeyPath(); | 469 std::wstring reg_key = GetApKeyPath(); |
| 465 HKEY reg_root = HKEY_CURRENT_USER; | 470 HKEY reg_root = HKEY_CURRENT_USER; |
| 466 bool ap_key_deleted = false; | 471 bool ap_key_deleted = false; |
| 467 RegKey key; | 472 RegKey key; |
| 468 if (key.Open(HKEY_CURRENT_USER, reg_key.c_str(), KEY_ALL_ACCESS) != | 473 if (key.Open(HKEY_CURRENT_USER, reg_key.c_str(), KEY_ALL_ACCESS) != |
| 469 ERROR_SUCCESS) { | 474 ERROR_SUCCESS) { |
| 470 work_item_list->AddCreateRegKeyWorkItem(reg_root, reg_key); | 475 work_item_list->AddCreateRegKeyWorkItem( |
| 476 reg_root, reg_key, WorkItem::kWow64Default); |
| 471 ASSERT_TRUE(work_item_list->Do()) << "Failed to create ClientState key."; | 477 ASSERT_TRUE(work_item_list->Do()) << "Failed to create ClientState key."; |
| 472 } else if (key.DeleteValue(google_update::kRegApField) == ERROR_SUCCESS) { | 478 } else if (key.DeleteValue(google_update::kRegApField) == ERROR_SUCCESS) { |
| 473 ap_key_deleted = true; | 479 ap_key_deleted = true; |
| 474 } | 480 } |
| 475 // try differential installer | 481 // try differential installer |
| 476 GoogleUpdateSettings::UpdateInstallStatus(false, | 482 GoogleUpdateSettings::UpdateInstallStatus(false, |
| 477 installer::INCREMENTAL_ARCHIVE_TYPE, | 483 installer::INCREMENTAL_ARCHIVE_TYPE, |
| 478 installer::INSTALL_FAILED, | 484 installer::INSTALL_FAILED, |
| 479 kTestProductGuid); | 485 kTestProductGuid); |
| 480 EXPECT_STREQ(ReadApKeyValue().c_str(), L"-full"); | 486 EXPECT_STREQ(ReadApKeyValue().c_str(), L"-full"); |
| (...skipping 682 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1163 StatsState(StatsState::kSystemLevel, StatsState::MULTI_INSTALL, | 1169 StatsState(StatsState::kSystemLevel, StatsState::MULTI_INSTALL, |
| 1164 StatsState::FALSE_SETTING, StatsState::FALSE_SETTING), | 1170 StatsState::FALSE_SETTING, StatsState::FALSE_SETTING), |
| 1165 StatsState(StatsState::kSystemLevel, StatsState::MULTI_INSTALL, | 1171 StatsState(StatsState::kSystemLevel, StatsState::MULTI_INSTALL, |
| 1166 StatsState::FALSE_SETTING, StatsState::TRUE_SETTING), | 1172 StatsState::FALSE_SETTING, StatsState::TRUE_SETTING), |
| 1167 StatsState(StatsState::kSystemLevel, StatsState::MULTI_INSTALL, | 1173 StatsState(StatsState::kSystemLevel, StatsState::MULTI_INSTALL, |
| 1168 StatsState::TRUE_SETTING, StatsState::NO_SETTING), | 1174 StatsState::TRUE_SETTING, StatsState::NO_SETTING), |
| 1169 StatsState(StatsState::kSystemLevel, StatsState::MULTI_INSTALL, | 1175 StatsState(StatsState::kSystemLevel, StatsState::MULTI_INSTALL, |
| 1170 StatsState::TRUE_SETTING, StatsState::FALSE_SETTING), | 1176 StatsState::TRUE_SETTING, StatsState::FALSE_SETTING), |
| 1171 StatsState(StatsState::kSystemLevel, StatsState::MULTI_INSTALL, | 1177 StatsState(StatsState::kSystemLevel, StatsState::MULTI_INSTALL, |
| 1172 StatsState::TRUE_SETTING, StatsState::TRUE_SETTING))); | 1178 StatsState::TRUE_SETTING, StatsState::TRUE_SETTING))); |
| OLD | NEW |