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 "chrome/installer/util/google_update_settings.h" | 5 #include "chrome/installer/util/google_update_settings.h" |
6 | 6 |
7 #include <windows.h> | 7 #include <windows.h> |
8 #include <shlwapi.h> // For SHDeleteKey. | 8 #include <shlwapi.h> // For SHDeleteKey. |
9 #include <stddef.h> | 9 #include <stddef.h> |
10 | 10 |
(...skipping 1253 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1264 void CollectStatsConsent::TearDownTestCase() { | 1264 void CollectStatsConsent::TearDownTestCase() { |
1265 delete chrome_version_key_; | 1265 delete chrome_version_key_; |
1266 delete chrome_state_key_; | 1266 delete chrome_state_key_; |
1267 delete chrome_state_medium_key_; | 1267 delete chrome_state_medium_key_; |
1268 delete binaries_state_key_; | 1268 delete binaries_state_key_; |
1269 delete binaries_state_medium_key_; | 1269 delete binaries_state_medium_key_; |
1270 } | 1270 } |
1271 | 1271 |
1272 // Install the registry override and apply the settings to the registry. | 1272 // Install the registry override and apply the settings to the registry. |
1273 void CollectStatsConsent::SetUp() { | 1273 void CollectStatsConsent::SetUp() { |
| 1274 // Override both HKLM and HKCU as tests may touch either/both. |
| 1275 override_manager_.OverrideRegistry(HKEY_LOCAL_MACHINE); |
| 1276 override_manager_.OverrideRegistry(HKEY_CURRENT_USER); |
| 1277 |
1274 const StatsState& stats_state = GetParam(); | 1278 const StatsState& stats_state = GetParam(); |
1275 const HKEY root_key = stats_state.root_key(); | 1279 const HKEY root_key = stats_state.root_key(); |
1276 base::string16 reg_temp_name( | |
1277 stats_state.system_level() ? L"HKLM_" : L"HKCU_"); | |
1278 reg_temp_name += L"CollectStatsConsent"; | |
1279 override_manager_.OverrideRegistry(root_key); | |
1280 | |
1281 if (stats_state.multi_install()) { | 1280 if (stats_state.multi_install()) { |
1282 MakeChromeMultiInstall(root_key); | 1281 MakeChromeMultiInstall(root_key); |
1283 ApplySetting(stats_state.state_value(), root_key, *binaries_state_key_); | 1282 ApplySetting(stats_state.state_value(), root_key, *binaries_state_key_); |
1284 ApplySetting(stats_state.state_medium_value(), root_key, | 1283 ApplySetting(stats_state.state_medium_value(), root_key, |
1285 *binaries_state_medium_key_); | 1284 *binaries_state_medium_key_); |
1286 } else { | 1285 } else { |
1287 ApplySetting(stats_state.state_value(), root_key, *chrome_state_key_); | 1286 ApplySetting(stats_state.state_value(), root_key, *chrome_state_key_); |
1288 ApplySetting(stats_state.state_medium_value(), root_key, | 1287 ApplySetting(stats_state.state_medium_value(), root_key, |
1289 *chrome_state_medium_key_); | 1288 *chrome_state_medium_key_); |
1290 } | 1289 } |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1326 GetParam().system_level())); | 1325 GetParam().system_level())); |
1327 } else { | 1326 } else { |
1328 EXPECT_FALSE(GoogleUpdateSettings::GetCollectStatsConsentAtLevel( | 1327 EXPECT_FALSE(GoogleUpdateSettings::GetCollectStatsConsentAtLevel( |
1329 GetParam().system_level())); | 1328 GetParam().system_level())); |
1330 } | 1329 } |
1331 } | 1330 } |
1332 | 1331 |
1333 // Test that stats consent can be flipped to the opposite setting, that the new | 1332 // Test that stats consent can be flipped to the opposite setting, that the new |
1334 // setting takes affect, and that the correct registry location is modified. | 1333 // setting takes affect, and that the correct registry location is modified. |
1335 TEST_P(CollectStatsConsent, SetCollectStatsConsentAtLevel) { | 1334 TEST_P(CollectStatsConsent, SetCollectStatsConsentAtLevel) { |
| 1335 // When testing revoking consent, verify that backup client info is cleared. |
| 1336 // To do so, first add some backup client info. |
| 1337 if (GetParam().is_consent_granted()) { |
| 1338 metrics::ClientInfo client_info; |
| 1339 client_info.client_id = "01234567-89ab-cdef-fedc-ba9876543210"; |
| 1340 client_info.installation_date = 123; |
| 1341 client_info.reporting_enabled_date = 345; |
| 1342 GoogleUpdateSettings::StoreMetricsClientInfo(client_info); |
| 1343 } |
| 1344 |
1336 EXPECT_TRUE(GoogleUpdateSettings::SetCollectStatsConsentAtLevel( | 1345 EXPECT_TRUE(GoogleUpdateSettings::SetCollectStatsConsentAtLevel( |
1337 GetParam().system_level(), | 1346 GetParam().system_level(), |
1338 !GetParam().is_consent_granted())); | 1347 !GetParam().is_consent_granted())); |
| 1348 |
1339 const base::string16* const reg_keys[] = { | 1349 const base::string16* const reg_keys[] = { |
1340 chrome_state_key_, | 1350 chrome_state_key_, |
1341 chrome_state_medium_key_, | 1351 chrome_state_medium_key_, |
1342 binaries_state_key_, | 1352 binaries_state_key_, |
1343 binaries_state_medium_key_, | 1353 binaries_state_medium_key_, |
1344 }; | 1354 }; |
1345 int key_index = ((GetParam().system_level() ? 1 : 0) + | 1355 int key_index = ((GetParam().system_level() ? 1 : 0) + |
1346 (GetParam().multi_install() ? 2 : 0)); | 1356 (GetParam().multi_install() ? 2 : 0)); |
1347 const base::string16& reg_key = *reg_keys[key_index]; | 1357 const base::string16& reg_key = *reg_keys[key_index]; |
1348 DWORD value = 0; | 1358 DWORD value = 0; |
1349 EXPECT_EQ( | 1359 EXPECT_EQ( |
1350 ERROR_SUCCESS, | 1360 ERROR_SUCCESS, |
1351 RegKey(GetParam().root_key(), reg_key.c_str(), | 1361 RegKey(GetParam().root_key(), reg_key.c_str(), |
1352 KEY_QUERY_VALUE).ReadValueDW(google_update::kRegUsageStatsField, | 1362 KEY_QUERY_VALUE).ReadValueDW(google_update::kRegUsageStatsField, |
1353 &value)); | 1363 &value)); |
1354 if (GetParam().is_consent_granted()) { | 1364 if (GetParam().is_consent_granted()) { |
1355 EXPECT_FALSE(GoogleUpdateSettings::GetCollectStatsConsentAtLevel( | 1365 EXPECT_FALSE(GoogleUpdateSettings::GetCollectStatsConsentAtLevel( |
1356 GetParam().system_level())); | 1366 GetParam().system_level())); |
1357 EXPECT_EQ(0UL, value); | 1367 EXPECT_EQ(0UL, value); |
1358 } else { | 1368 } else { |
1359 EXPECT_TRUE(GoogleUpdateSettings::GetCollectStatsConsentAtLevel( | 1369 EXPECT_TRUE(GoogleUpdateSettings::GetCollectStatsConsentAtLevel( |
1360 GetParam().system_level())); | 1370 GetParam().system_level())); |
1361 EXPECT_EQ(1UL, value); | 1371 EXPECT_EQ(1UL, value); |
| 1372 // Verify that backup client info has been cleared. |
| 1373 EXPECT_FALSE(GoogleUpdateSettings::LoadMetricsClientInfo()); |
1362 } | 1374 } |
1363 } | 1375 } |
1364 | 1376 |
1365 INSTANTIATE_TEST_CASE_P( | 1377 INSTANTIATE_TEST_CASE_P( |
1366 UserLevelSingleInstall, | 1378 UserLevelSingleInstall, |
1367 CollectStatsConsent, | 1379 CollectStatsConsent, |
1368 ::testing::Values( | 1380 ::testing::Values( |
1369 StatsState(StatsState::kUserLevel, StatsState::SINGLE_INSTALL, | 1381 StatsState(StatsState::kUserLevel, StatsState::SINGLE_INSTALL, |
1370 StatsState::NO_SETTING), | 1382 StatsState::NO_SETTING), |
1371 StatsState(StatsState::kUserLevel, StatsState::SINGLE_INSTALL, | 1383 StatsState(StatsState::kUserLevel, StatsState::SINGLE_INSTALL, |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1419 StatsState(StatsState::kSystemLevel, StatsState::MULTI_INSTALL, | 1431 StatsState(StatsState::kSystemLevel, StatsState::MULTI_INSTALL, |
1420 StatsState::FALSE_SETTING, StatsState::FALSE_SETTING), | 1432 StatsState::FALSE_SETTING, StatsState::FALSE_SETTING), |
1421 StatsState(StatsState::kSystemLevel, StatsState::MULTI_INSTALL, | 1433 StatsState(StatsState::kSystemLevel, StatsState::MULTI_INSTALL, |
1422 StatsState::FALSE_SETTING, StatsState::TRUE_SETTING), | 1434 StatsState::FALSE_SETTING, StatsState::TRUE_SETTING), |
1423 StatsState(StatsState::kSystemLevel, StatsState::MULTI_INSTALL, | 1435 StatsState(StatsState::kSystemLevel, StatsState::MULTI_INSTALL, |
1424 StatsState::TRUE_SETTING, StatsState::NO_SETTING), | 1436 StatsState::TRUE_SETTING, StatsState::NO_SETTING), |
1425 StatsState(StatsState::kSystemLevel, StatsState::MULTI_INSTALL, | 1437 StatsState(StatsState::kSystemLevel, StatsState::MULTI_INSTALL, |
1426 StatsState::TRUE_SETTING, StatsState::FALSE_SETTING), | 1438 StatsState::TRUE_SETTING, StatsState::FALSE_SETTING), |
1427 StatsState(StatsState::kSystemLevel, StatsState::MULTI_INSTALL, | 1439 StatsState(StatsState::kSystemLevel, StatsState::MULTI_INSTALL, |
1428 StatsState::TRUE_SETTING, StatsState::TRUE_SETTING))); | 1440 StatsState::TRUE_SETTING, StatsState::TRUE_SETTING))); |
OLD | NEW |