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 |