| 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 |