Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(223)

Side by Side Diff: components/metrics/metrics_state_manager_unittest.cc

Issue 442853002: Fix metrics-reporting-enabled date expectations post metrics IDs reset. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: better checks for other Time::Now() tests Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "components/metrics/metrics_state_manager.h" 5 #include "components/metrics/metrics_state_manager.h"
6 6
7 #include <ctype.h> 7 #include <ctype.h>
8 #include <string> 8 #include <string>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after
213 EXPECT_FALSE(prefs_.GetBoolean(prefs::kMetricsResetIds)); 213 EXPECT_FALSE(prefs_.GetBoolean(prefs::kMetricsResetIds));
214 } 214 }
215 215
216 EXPECT_NE(kInitialClientId, prefs_.GetString(prefs::kMetricsClientID)); 216 EXPECT_NE(kInitialClientId, prefs_.GetString(prefs::kMetricsClientID));
217 } 217 }
218 218
219 TEST_F(MetricsStateManagerTest, ForceClientIdCreation) { 219 TEST_F(MetricsStateManagerTest, ForceClientIdCreation) {
220 const int64 kFakeInstallationDate = 12345; 220 const int64 kFakeInstallationDate = 12345;
221 prefs_.SetInt64(prefs::kInstallDate, kFakeInstallationDate); 221 prefs_.SetInt64(prefs::kInstallDate, kFakeInstallationDate);
222 222
223 const int64 test_begin_time = base::Time::Now().ToTimeT();
224
223 // Holds ClientInfo from previous scoped test for extra checks. 225 // Holds ClientInfo from previous scoped test for extra checks.
224 scoped_ptr<ClientInfo> previous_client_info; 226 scoped_ptr<ClientInfo> previous_client_info;
225 227
226 { 228 {
227 scoped_ptr<MetricsStateManager> state_manager(CreateStateManager()); 229 scoped_ptr<MetricsStateManager> state_manager(CreateStateManager());
228 230
229 // client_id shouldn't be auto-generated if metrics reporting is not 231 // client_id shouldn't be auto-generated if metrics reporting is not
230 // enabled. 232 // enabled.
231 EXPECT_EQ(std::string(), state_manager->client_id()); 233 EXPECT_EQ(std::string(), state_manager->client_id());
232 EXPECT_EQ(0, prefs_.GetInt64(prefs::kMetricsReportingEnabledTimestamp)); 234 EXPECT_EQ(0, prefs_.GetInt64(prefs::kMetricsReportingEnabledTimestamp));
233 235
234 // Confirm that the initial ForceClientIdCreation call creates the client id 236 // Confirm that the initial ForceClientIdCreation call creates the client id
235 // and backs it up via MockStoreClientInfoBackup. 237 // and backs it up via MockStoreClientInfoBackup.
236 EXPECT_FALSE(stored_client_info_backup_); 238 EXPECT_FALSE(stored_client_info_backup_);
237 state_manager->ForceClientIdCreation(); 239 state_manager->ForceClientIdCreation();
238 EXPECT_NE(std::string(), state_manager->client_id()); 240 EXPECT_NE(std::string(), state_manager->client_id());
239 EXPECT_GT(prefs_.GetInt64(prefs::kMetricsReportingEnabledTimestamp), 0); 241 EXPECT_GE(prefs_.GetInt64(prefs::kMetricsReportingEnabledTimestamp),
242 test_begin_time);
240 243
241 ASSERT_TRUE(stored_client_info_backup_); 244 ASSERT_TRUE(stored_client_info_backup_);
242 EXPECT_EQ(state_manager->client_id(), 245 EXPECT_EQ(state_manager->client_id(),
243 stored_client_info_backup_->client_id); 246 stored_client_info_backup_->client_id);
244 EXPECT_EQ(kFakeInstallationDate, 247 EXPECT_EQ(kFakeInstallationDate,
245 stored_client_info_backup_->installation_date); 248 stored_client_info_backup_->installation_date);
246 EXPECT_EQ(prefs_.GetInt64(prefs::kMetricsReportingEnabledTimestamp), 249 EXPECT_EQ(prefs_.GetInt64(prefs::kMetricsReportingEnabledTimestamp),
247 stored_client_info_backup_->reporting_enabled_date); 250 stored_client_info_backup_->reporting_enabled_date);
248 251
249 previous_client_info = stored_client_info_backup_.Pass(); 252 previous_client_info = stored_client_info_backup_.Pass();
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
334 prefs_.ClearPref(prefs::kMetricsReportingEnabledTimestamp); 337 prefs_.ClearPref(prefs::kMetricsReportingEnabledTimestamp);
335 338
336 { 339 {
337 // When running the backup from old-style client ids, dashes should be 340 // When running the backup from old-style client ids, dashes should be
338 // re-added. And missing dates in backup should be replaced by Time::Now(). 341 // re-added. And missing dates in backup should be replaced by Time::Now().
339 342
340 EXPECT_FALSE(stored_client_info_backup_); 343 EXPECT_FALSE(stored_client_info_backup_);
341 344
342 scoped_ptr<MetricsStateManager> state_manager(CreateStateManager()); 345 scoped_ptr<MetricsStateManager> state_manager(CreateStateManager());
343 EXPECT_EQ(kBackupClientId, state_manager->client_id()); 346 EXPECT_EQ(kBackupClientId, state_manager->client_id());
344 EXPECT_GT(prefs_.GetInt64(prefs::kInstallDate), 0); 347 EXPECT_GE(prefs_.GetInt64(prefs::kInstallDate), test_begin_time);
345 EXPECT_GT(prefs_.GetInt64(prefs::kMetricsReportingEnabledTimestamp), 0); 348 EXPECT_GE(prefs_.GetInt64(prefs::kMetricsReportingEnabledTimestamp),
349 test_begin_time);
346 350
347 EXPECT_TRUE(stored_client_info_backup_); 351 EXPECT_TRUE(stored_client_info_backup_);
348 previous_client_info = stored_client_info_backup_.Pass(); 352 previous_client_info = stored_client_info_backup_.Pass();
349 } 353 }
350 354
351 prefs_.SetBoolean(prefs::kMetricsResetIds, true); 355 prefs_.SetBoolean(prefs::kMetricsResetIds, true);
352 356
353 { 357 {
354 // Upon request to reset metrics ids, the existing backup should not be 358 // Upon request to reset metrics ids, the existing backup should not be
355 // restored. 359 // restored.
356 360
357 EXPECT_FALSE(stored_client_info_backup_); 361 EXPECT_FALSE(stored_client_info_backup_);
358 362
359 scoped_ptr<MetricsStateManager> state_manager(CreateStateManager()); 363 scoped_ptr<MetricsStateManager> state_manager(CreateStateManager());
360 364
361 // A brand new client id should have been generated. 365 // A brand new client id should have been generated.
362 EXPECT_NE(std::string(), state_manager->client_id()); 366 EXPECT_NE(std::string(), state_manager->client_id());
363 EXPECT_NE(previous_client_info->client_id, state_manager->client_id()); 367 EXPECT_NE(previous_client_info->client_id, state_manager->client_id());
364 368
365 // Dates should not have been affected. 369 // The installation date should not have been affected.
366 EXPECT_EQ(previous_client_info->installation_date, 370 EXPECT_EQ(previous_client_info->installation_date,
367 prefs_.GetInt64(prefs::kInstallDate)); 371 prefs_.GetInt64(prefs::kInstallDate));
368 EXPECT_EQ(previous_client_info->reporting_enabled_date, 372
369 prefs_.GetInt64(prefs::kMetricsReportingEnabledTimestamp)); 373 // The metrics-reporting-enabled date will be reset to Now().
374 EXPECT_GE(prefs_.GetInt64(prefs::kMetricsReportingEnabledTimestamp),
375 previous_client_info->reporting_enabled_date);
370 376
371 stored_client_info_backup_.reset(); 377 stored_client_info_backup_.reset();
372 } 378 }
373 } 379 }
374 380
375 } // namespace metrics 381 } // namespace metrics
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698