Index: chrome/browser/metrics/metrics_service_unittest.cc |
diff --git a/chrome/browser/metrics/metrics_service_unittest.cc b/chrome/browser/metrics/metrics_service_unittest.cc |
index 3ca255bf0b87af75e7f0db9092d7b085ff36f2d0..736766284a518cd00a94919ebe1eadd71f8454c7 100644 |
--- a/chrome/browser/metrics/metrics_service_unittest.cc |
+++ b/chrome/browser/metrics/metrics_service_unittest.cc |
@@ -374,3 +374,41 @@ TEST_F(MetricsServiceTest, CrashReportingEnabled) { |
EXPECT_FALSE(MetricsServiceHelper::IsCrashReportingEnabled()); |
#endif // defined(GOOGLE_CHROME_BUILD) |
} |
+ |
+TEST_F(MetricsServiceTest, ResetMetricsIDs) { |
+ // Ensuere that the low entropy source and client id have been generated. |
+ { |
+ MetricsService service; |
+ service.ForceClientIdCreation(); |
+ service.GetLowEntropySource(); |
+ } |
+ |
+ std::string old_client_id = |
+ GetLocalState()->GetString(prefs::kMetricsClientID); |
+ int old_low_entropy_value = |
+ GetLocalState()->GetInteger(prefs::kMetricsLowEntropySource); |
+ |
+ // Set the reset pref to cause the IDs to be reset. |
+ GetLocalState()->SetBoolean(prefs::kMetricsResetIds, true); |
+ |
+ // Cause the actual reset to happen. |
+ { |
+ MetricsService service; |
+ service.ForceClientIdCreation(); |
+ EXPECT_TRUE(service.metrics_ids_reset_check_performed_); |
+ EXPECT_NE(old_client_id, service.client_id_); |
+ |
+ service.GetLowEntropySource(); |
+ EXPECT_NE(old_low_entropy_value, service.low_entropy_source_); |
+ |
+ EXPECT_FALSE(GetLocalState()->GetBoolean(prefs::kMetricsResetIds)); |
+ } |
+ |
+ std::string new_client_id = |
+ GetLocalState()->GetString(prefs::kMetricsClientID); |
+ int new_low_entropy_value = |
+ GetLocalState()->GetInteger(prefs::kMetricsLowEntropySource); |
+ |
+ EXPECT_NE(old_client_id, new_client_id); |
+ EXPECT_NE(old_low_entropy_value, new_low_entropy_value); |
+} |