| 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 228 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 239 KEY_SET_VALUE) == ERROR_SUCCESS) { | 239 KEY_SET_VALUE) == ERROR_SUCCESS) { |
| 240 base::string16 app_update_override( | 240 base::string16 app_update_override( |
| 241 GoogleUpdateSettings::kUpdateOverrideValuePrefix); | 241 GoogleUpdateSettings::kUpdateOverrideValuePrefix); |
| 242 app_update_override.append(app_guid); | 242 app_update_override.append(app_guid); |
| 243 return policy_key.WriteValue(app_update_override.c_str(), | 243 return policy_key.WriteValue(app_update_override.c_str(), |
| 244 static_cast<DWORD>(policy)) == ERROR_SUCCESS; | 244 static_cast<DWORD>(policy)) == ERROR_SUCCESS; |
| 245 } | 245 } |
| 246 return false; | 246 return false; |
| 247 } | 247 } |
| 248 | 248 |
| 249 DWORD GetUpdatePolicyForAppGuid(const base::string16& app_guid) { | 249 GoogleUpdateSettings::UpdatePolicy GetUpdatePolicyForAppGuid( |
| 250 const base::string16& app_guid) { |
| 250 RegKey policy_key; | 251 RegKey policy_key; |
| 251 if (policy_key.Create(HKEY_LOCAL_MACHINE, | 252 if (policy_key.Create(HKEY_LOCAL_MACHINE, |
| 252 GoogleUpdateSettings::kPoliciesKey, | 253 GoogleUpdateSettings::kPoliciesKey, |
| 253 KEY_QUERY_VALUE) == ERROR_SUCCESS) { | 254 KEY_QUERY_VALUE) == ERROR_SUCCESS) { |
| 254 base::string16 app_update_override( | 255 base::string16 app_update_override( |
| 255 GoogleUpdateSettings::kUpdateOverrideValuePrefix); | 256 GoogleUpdateSettings::kUpdateOverrideValuePrefix); |
| 256 app_update_override.append(app_guid); | 257 app_update_override.append(app_guid); |
| 257 | 258 |
| 258 DWORD value = -1; | 259 DWORD value; |
| 259 if (policy_key.ReadValueDW(app_update_override.c_str(), | 260 if (policy_key.ReadValueDW(app_update_override.c_str(), |
| 260 &value) == ERROR_SUCCESS) { | 261 &value) == ERROR_SUCCESS) { |
| 261 return value; | 262 return static_cast<GoogleUpdateSettings::UpdatePolicy>(value); |
| 262 } | 263 } |
| 263 } | 264 } |
| 264 return -1; | 265 return GoogleUpdateSettings::UPDATE_POLICIES_COUNT; |
| 265 } | 266 } |
| 266 | 267 |
| 267 bool SetGlobalUpdatePolicy(GoogleUpdateSettings::UpdatePolicy policy) { | 268 bool SetGlobalUpdatePolicy(GoogleUpdateSettings::UpdatePolicy policy) { |
| 268 RegKey policy_key; | 269 RegKey policy_key; |
| 269 return policy_key.Create(HKEY_LOCAL_MACHINE, | 270 return policy_key.Create(HKEY_LOCAL_MACHINE, |
| 270 GoogleUpdateSettings::kPoliciesKey, | 271 GoogleUpdateSettings::kPoliciesKey, |
| 271 KEY_SET_VALUE) == ERROR_SUCCESS && | 272 KEY_SET_VALUE) == ERROR_SUCCESS && |
| 272 policy_key.WriteValue(GoogleUpdateSettings::kUpdatePolicyValue, | 273 policy_key.WriteValue(GoogleUpdateSettings::kUpdatePolicyValue, |
| 273 static_cast<DWORD>(policy)) == ERROR_SUCCESS; | 274 static_cast<DWORD>(policy)) == ERROR_SUCCESS; |
| 274 } | 275 } |
| 275 | 276 |
| 276 DWORD GetGlobalUpdatePolicy() { | 277 GoogleUpdateSettings::UpdatePolicy GetGlobalUpdatePolicy() { |
| 277 RegKey policy_key; | 278 RegKey policy_key; |
| 278 DWORD value = -1; | 279 DWORD value; |
| 279 return (policy_key.Create(HKEY_LOCAL_MACHINE, | 280 return (policy_key.Create(HKEY_LOCAL_MACHINE, |
| 280 GoogleUpdateSettings::kPoliciesKey, | 281 GoogleUpdateSettings::kPoliciesKey, |
| 281 KEY_QUERY_VALUE) == ERROR_SUCCESS && | 282 KEY_QUERY_VALUE) == ERROR_SUCCESS && |
| 282 policy_key.ReadValueDW(GoogleUpdateSettings::kUpdatePolicyValue, | 283 policy_key.ReadValueDW(GoogleUpdateSettings::kUpdatePolicyValue, |
| 283 &value) == ERROR_SUCCESS) ? value : -1; | 284 &value) == ERROR_SUCCESS) ? |
| 285 static_cast<GoogleUpdateSettings::UpdatePolicy>(value) : |
| 286 GoogleUpdateSettings::UPDATE_POLICIES_COUNT; |
| 284 } | 287 } |
| 285 | 288 |
| 286 bool SetUpdateTimeoutOverride(DWORD time_in_minutes) { | 289 bool SetUpdateTimeoutOverride(DWORD time_in_minutes) { |
| 287 RegKey policy_key; | 290 RegKey policy_key; |
| 288 return policy_key.Create(HKEY_LOCAL_MACHINE, | 291 return policy_key.Create(HKEY_LOCAL_MACHINE, |
| 289 GoogleUpdateSettings::kPoliciesKey, | 292 GoogleUpdateSettings::kPoliciesKey, |
| 290 KEY_SET_VALUE) == ERROR_SUCCESS && | 293 KEY_SET_VALUE) == ERROR_SUCCESS && |
| 291 policy_key.WriteValue( | 294 policy_key.WriteValue( |
| 292 GoogleUpdateSettings::kCheckPeriodOverrideMinutes, | 295 GoogleUpdateSettings::kCheckPeriodOverrideMinutes, |
| 293 time_in_minutes) == ERROR_SUCCESS; | 296 time_in_minutes) == ERROR_SUCCESS; |
| (...skipping 490 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 784 SetUpdatePolicyForAppGuid(kTestProductGuid, | 787 SetUpdatePolicyForAppGuid(kTestProductGuid, |
| 785 GoogleUpdateSettings::AUTOMATIC_UPDATES)); | 788 GoogleUpdateSettings::AUTOMATIC_UPDATES)); |
| 786 EXPECT_TRUE(SetGlobalUpdatePolicy(GoogleUpdateSettings::UPDATES_DISABLED)); | 789 EXPECT_TRUE(SetGlobalUpdatePolicy(GoogleUpdateSettings::UPDATES_DISABLED)); |
| 787 | 790 |
| 788 // Make sure we read this as still having updates enabled. | 791 // Make sure we read this as still having updates enabled. |
| 789 EXPECT_TRUE(GoogleUpdateSettings::AreAutoupdatesEnabled(kTestProductGuid)); | 792 EXPECT_TRUE(GoogleUpdateSettings::AreAutoupdatesEnabled(kTestProductGuid)); |
| 790 | 793 |
| 791 // Make sure that the reset action returns true and is a no-op. | 794 // Make sure that the reset action returns true and is a no-op. |
| 792 EXPECT_TRUE( | 795 EXPECT_TRUE( |
| 793 GoogleUpdateSettings::ReenableAutoupdatesForApp(kTestProductGuid)); | 796 GoogleUpdateSettings::ReenableAutoupdatesForApp(kTestProductGuid)); |
| 794 EXPECT_EQ(static_cast<DWORD>(GoogleUpdateSettings::AUTOMATIC_UPDATES), | 797 EXPECT_EQ(GoogleUpdateSettings::AUTOMATIC_UPDATES, |
| 795 GetUpdatePolicyForAppGuid(kTestProductGuid)); | 798 GetUpdatePolicyForAppGuid(kTestProductGuid)); |
| 796 EXPECT_EQ(static_cast<DWORD>(GoogleUpdateSettings::UPDATES_DISABLED), | 799 EXPECT_EQ(GoogleUpdateSettings::UPDATES_DISABLED, GetGlobalUpdatePolicy()); |
| 797 GetGlobalUpdatePolicy()); | |
| 798 } | 800 } |
| 799 | 801 |
| 800 TEST_F(GoogleUpdateSettingsTest, GlobalUpdatesDisabledByPolicy) { | 802 TEST_F(GoogleUpdateSettingsTest, GlobalUpdatesDisabledByPolicy) { |
| 801 EXPECT_TRUE(SetGlobalUpdatePolicy(GoogleUpdateSettings::UPDATES_DISABLED)); | 803 EXPECT_TRUE(SetGlobalUpdatePolicy(GoogleUpdateSettings::UPDATES_DISABLED)); |
| 802 bool is_overridden = false; | 804 bool is_overridden = false; |
| 803 | 805 |
| 804 // The contract for GetAppUpdatePolicy states that |is_overridden| should be | 806 // The contract for GetAppUpdatePolicy states that |is_overridden| should be |
| 805 // set to false when updates are disabled on a non-app-specific basis. | 807 // set to false when updates are disabled on a non-app-specific basis. |
| 806 GoogleUpdateSettings::UpdatePolicy update_policy = | 808 GoogleUpdateSettings::UpdatePolicy update_policy = |
| 807 GoogleUpdateSettings::GetAppUpdatePolicy(kTestProductGuid, | 809 GoogleUpdateSettings::GetAppUpdatePolicy(kTestProductGuid, |
| (...skipping 415 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1223 StatsState(StatsState::kSystemLevel, StatsState::MULTI_INSTALL, | 1225 StatsState(StatsState::kSystemLevel, StatsState::MULTI_INSTALL, |
| 1224 StatsState::FALSE_SETTING, StatsState::FALSE_SETTING), | 1226 StatsState::FALSE_SETTING, StatsState::FALSE_SETTING), |
| 1225 StatsState(StatsState::kSystemLevel, StatsState::MULTI_INSTALL, | 1227 StatsState(StatsState::kSystemLevel, StatsState::MULTI_INSTALL, |
| 1226 StatsState::FALSE_SETTING, StatsState::TRUE_SETTING), | 1228 StatsState::FALSE_SETTING, StatsState::TRUE_SETTING), |
| 1227 StatsState(StatsState::kSystemLevel, StatsState::MULTI_INSTALL, | 1229 StatsState(StatsState::kSystemLevel, StatsState::MULTI_INSTALL, |
| 1228 StatsState::TRUE_SETTING, StatsState::NO_SETTING), | 1230 StatsState::TRUE_SETTING, StatsState::NO_SETTING), |
| 1229 StatsState(StatsState::kSystemLevel, StatsState::MULTI_INSTALL, | 1231 StatsState(StatsState::kSystemLevel, StatsState::MULTI_INSTALL, |
| 1230 StatsState::TRUE_SETTING, StatsState::FALSE_SETTING), | 1232 StatsState::TRUE_SETTING, StatsState::FALSE_SETTING), |
| 1231 StatsState(StatsState::kSystemLevel, StatsState::MULTI_INSTALL, | 1233 StatsState(StatsState::kSystemLevel, StatsState::MULTI_INSTALL, |
| 1232 StatsState::TRUE_SETTING, StatsState::TRUE_SETTING))); | 1234 StatsState::TRUE_SETTING, StatsState::TRUE_SETTING))); |
| OLD | NEW |