| OLD | NEW |
| 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_log.h" | 5 #include "components/metrics/metrics_log.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 | 9 |
| 10 #include <string> | 10 #include <string> |
| (...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 269 EXPECT_TRUE(decoded_system_profile.ParseFromString(serialied_system_profile)); | 269 EXPECT_TRUE(decoded_system_profile.ParseFromString(serialied_system_profile)); |
| 270 CheckSystemProfile(decoded_system_profile); | 270 CheckSystemProfile(decoded_system_profile); |
| 271 } | 271 } |
| 272 | 272 |
| 273 TEST_F(MetricsLogTest, LoadSavedEnvironmentFromPrefs) { | 273 TEST_F(MetricsLogTest, LoadSavedEnvironmentFromPrefs) { |
| 274 const char* kSystemProfilePref = prefs::kStabilitySavedSystemProfile; | 274 const char* kSystemProfilePref = prefs::kStabilitySavedSystemProfile; |
| 275 const char* kSystemProfileHashPref = | 275 const char* kSystemProfileHashPref = |
| 276 prefs::kStabilitySavedSystemProfileHash; | 276 prefs::kStabilitySavedSystemProfileHash; |
| 277 | 277 |
| 278 TestMetricsServiceClient client; | 278 TestMetricsServiceClient client; |
| 279 client.set_version_string("bogus version"); |
| 279 | 280 |
| 280 // The pref value is empty, so loading it from prefs should fail. | 281 // The pref value is empty, so loading it from prefs should fail. |
| 281 { | 282 { |
| 282 TestMetricsLog log( | 283 TestMetricsLog log( |
| 283 kClientId, kSessionId, MetricsLog::ONGOING_LOG, &client, &prefs_); | 284 kClientId, kSessionId, MetricsLog::ONGOING_LOG, &client, &prefs_); |
| 284 EXPECT_FALSE(log.LoadSavedEnvironmentFromPrefs()); | 285 std::string app_version; |
| 286 EXPECT_FALSE(log.LoadSavedEnvironmentFromPrefs(&app_version)); |
| 287 EXPECT_TRUE(app_version.empty()); |
| 285 } | 288 } |
| 286 | 289 |
| 287 // Do a RecordEnvironment() call and check whether the pref is recorded. | 290 // Do a RecordEnvironment() call and check whether the pref is recorded. |
| 288 { | 291 { |
| 289 TestMetricsLog log( | 292 TestMetricsLog log( |
| 290 kClientId, kSessionId, MetricsLog::ONGOING_LOG, &client, &prefs_); | 293 kClientId, kSessionId, MetricsLog::ONGOING_LOG, &client, &prefs_); |
| 291 log.RecordEnvironment(std::vector<MetricsProvider*>(), | 294 log.RecordEnvironment(std::vector<MetricsProvider*>(), |
| 292 std::vector<variations::ActiveGroupId>(), | 295 std::vector<variations::ActiveGroupId>(), |
| 293 kInstallDate, kEnabledDate); | 296 kInstallDate, kEnabledDate); |
| 294 EXPECT_FALSE(prefs_.GetString(kSystemProfilePref).empty()); | 297 EXPECT_FALSE(prefs_.GetString(kSystemProfilePref).empty()); |
| 295 EXPECT_FALSE(prefs_.GetString(kSystemProfileHashPref).empty()); | 298 EXPECT_FALSE(prefs_.GetString(kSystemProfileHashPref).empty()); |
| 296 } | 299 } |
| 297 | 300 |
| 298 { | 301 { |
| 299 TestMetricsLog log( | 302 TestMetricsLog log( |
| 300 kClientId, kSessionId, MetricsLog::ONGOING_LOG, &client, &prefs_); | 303 kClientId, kSessionId, MetricsLog::ONGOING_LOG, &client, &prefs_); |
| 301 EXPECT_TRUE(log.LoadSavedEnvironmentFromPrefs()); | 304 std::string app_version; |
| 305 EXPECT_TRUE(log.LoadSavedEnvironmentFromPrefs(&app_version)); |
| 306 EXPECT_EQ("bogus version", app_version); |
| 302 // Check some values in the system profile. | 307 // Check some values in the system profile. |
| 303 EXPECT_EQ(kInstallDateExpected, log.system_profile().install_date()); | 308 EXPECT_EQ(kInstallDateExpected, log.system_profile().install_date()); |
| 304 EXPECT_EQ(kEnabledDateExpected, log.system_profile().uma_enabled_date()); | 309 EXPECT_EQ(kEnabledDateExpected, log.system_profile().uma_enabled_date()); |
| 305 // Ensure that the call cleared the prefs. | 310 // Ensure that the call cleared the prefs. |
| 306 EXPECT_TRUE(prefs_.GetString(kSystemProfilePref).empty()); | 311 EXPECT_TRUE(prefs_.GetString(kSystemProfilePref).empty()); |
| 307 EXPECT_TRUE(prefs_.GetString(kSystemProfileHashPref).empty()); | 312 EXPECT_TRUE(prefs_.GetString(kSystemProfileHashPref).empty()); |
| 308 } | 313 } |
| 309 | 314 |
| 310 // Ensure that a non-matching hash results in the pref being invalid. | 315 // Ensure that a non-matching hash results in the pref being invalid. |
| 311 { | 316 { |
| 312 TestMetricsLog log( | 317 TestMetricsLog log( |
| 313 kClientId, kSessionId, MetricsLog::ONGOING_LOG, &client, &prefs_); | 318 kClientId, kSessionId, MetricsLog::ONGOING_LOG, &client, &prefs_); |
| 314 // Call RecordEnvironment() to record the pref again. | 319 // Call RecordEnvironment() to record the pref again. |
| 315 log.RecordEnvironment(std::vector<MetricsProvider*>(), | 320 log.RecordEnvironment(std::vector<MetricsProvider*>(), |
| 316 std::vector<variations::ActiveGroupId>(), | 321 std::vector<variations::ActiveGroupId>(), |
| 317 kInstallDate, kEnabledDate); | 322 kInstallDate, kEnabledDate); |
| 318 } | 323 } |
| 319 | 324 |
| 320 { | 325 { |
| 321 // Set the hash to a bad value. | 326 // Set the hash to a bad value. |
| 322 prefs_.SetString(kSystemProfileHashPref, "deadbeef"); | 327 prefs_.SetString(kSystemProfileHashPref, "deadbeef"); |
| 323 TestMetricsLog log( | 328 TestMetricsLog log( |
| 324 kClientId, kSessionId, MetricsLog::ONGOING_LOG, &client, &prefs_); | 329 kClientId, kSessionId, MetricsLog::ONGOING_LOG, &client, &prefs_); |
| 325 EXPECT_FALSE(log.LoadSavedEnvironmentFromPrefs()); | 330 std::string app_version; |
| 331 EXPECT_FALSE(log.LoadSavedEnvironmentFromPrefs(&app_version)); |
| 332 EXPECT_TRUE(app_version.empty()); |
| 326 // Ensure that the prefs are cleared, even if the call failed. | 333 // Ensure that the prefs are cleared, even if the call failed. |
| 327 EXPECT_TRUE(prefs_.GetString(kSystemProfilePref).empty()); | 334 EXPECT_TRUE(prefs_.GetString(kSystemProfilePref).empty()); |
| 328 EXPECT_TRUE(prefs_.GetString(kSystemProfileHashPref).empty()); | 335 EXPECT_TRUE(prefs_.GetString(kSystemProfileHashPref).empty()); |
| 329 } | 336 } |
| 330 } | 337 } |
| 331 | 338 |
| 332 TEST_F(MetricsLogTest, RecordEnvironmentEnableDefault) { | 339 TEST_F(MetricsLogTest, RecordEnvironmentEnableDefault) { |
| 333 TestMetricsServiceClient client; | 340 TestMetricsServiceClient client; |
| 334 TestMetricsLog log_unknown(kClientId, kSessionId, MetricsLog::ONGOING_LOG, | 341 TestMetricsLog log_unknown(kClientId, kSessionId, MetricsLog::ONGOING_LOG, |
| 335 &client, &prefs_); | 342 &client, &prefs_); |
| (...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 456 TestMetricsServiceClient client; | 463 TestMetricsServiceClient client; |
| 457 client.set_product(kTestProduct); | 464 client.set_product(kTestProduct); |
| 458 TestMetricsLog log( | 465 TestMetricsLog log( |
| 459 kClientId, kSessionId, MetricsLog::ONGOING_LOG, &client, &prefs_); | 466 kClientId, kSessionId, MetricsLog::ONGOING_LOG, &client, &prefs_); |
| 460 // Check that the product is set to |kTestProduct|. | 467 // Check that the product is set to |kTestProduct|. |
| 461 EXPECT_TRUE(log.uma_proto().has_product()); | 468 EXPECT_TRUE(log.uma_proto().has_product()); |
| 462 EXPECT_EQ(kTestProduct, log.uma_proto().product()); | 469 EXPECT_EQ(kTestProduct, log.uma_proto().product()); |
| 463 } | 470 } |
| 464 | 471 |
| 465 } // namespace metrics | 472 } // namespace metrics |
| OLD | NEW |