Index: chrome/browser/metrics/metrics_log_unittest.cc |
diff --git a/chrome/browser/metrics/metrics_log_unittest.cc b/chrome/browser/metrics/metrics_log_unittest.cc |
index 8b69ccd927f7ae0dec6e0a2ee98e2526fc66cb2f..9058534ee3a21e89676d691b2b4fe1d92e47120b 100644 |
--- a/chrome/browser/metrics/metrics_log_unittest.cc |
+++ b/chrome/browser/metrics/metrics_log_unittest.cc |
@@ -129,24 +129,11 @@ class TestMetricsLogChromeOS : public MetricsLogChromeOS { |
class TestMetricsLog : public MetricsLog { |
public: |
- TestMetricsLog(const std::string& client_id, int session_id, LogType log_type) |
- : MetricsLog(client_id, session_id, log_type), |
- prefs_(&scoped_prefs_), |
- brand_for_testing_(kBrandForTesting) { |
-#if defined(OS_CHROMEOS) |
- metrics_log_chromeos_.reset(new TestMetricsLogChromeOS( |
- MetricsLog::uma_proto())); |
-#endif // OS_CHROMEOS |
- chrome::RegisterLocalState(scoped_prefs_.registry()); |
- InitPrefs(); |
- } |
- // Creates a TestMetricsLog that will use |prefs| as the fake local state. |
- // Useful for tests that need to re-use the local state prefs between logs. |
TestMetricsLog(const std::string& client_id, |
int session_id, |
LogType log_type, |
TestingPrefServiceSimple* prefs) |
- : MetricsLog(client_id, session_id, log_type), |
+ : MetricsLog(client_id, session_id, log_type, prefs), |
prefs_(prefs), |
brand_for_testing_(kBrandForTesting) { |
#if defined(OS_CHROMEOS) |
@@ -157,10 +144,6 @@ class TestMetricsLog : public MetricsLog { |
} |
virtual ~TestMetricsLog() {} |
- virtual PrefService* GetPrefService() OVERRIDE { |
- return prefs_; |
- } |
- |
const metrics::ChromeUserMetricsExtension& uma_proto() const { |
return *MetricsLog::uma_proto(); |
} |
@@ -222,6 +205,8 @@ class MetricsLogTest : public testing::Test { |
protected: |
virtual void SetUp() OVERRIDE { |
+ chrome::RegisterLocalState(prefs_.registry()); |
+ |
#if defined(OS_CHROMEOS) |
// Enable multi-profiles. |
CommandLine::ForCurrentProcess()->AppendSwitch(switches::kMultiProfiles); |
@@ -303,6 +288,7 @@ class MetricsLogTest : public testing::Test { |
} |
protected: |
+ TestingPrefServiceSimple prefs_; |
#if defined(OS_CHROMEOS) |
FakeBluetoothAdapterClient* fake_bluetooth_adapter_client_; |
FakeBluetoothDeviceClient* fake_bluetooth_device_client_; |
@@ -315,7 +301,7 @@ class MetricsLogTest : public testing::Test { |
}; |
TEST_F(MetricsLogTest, RecordEnvironment) { |
- TestMetricsLog log(kClientId, kSessionId, MetricsLog::ONGOING_LOG); |
+ TestMetricsLog log(kClientId, kSessionId, MetricsLog::ONGOING_LOG, &prefs_); |
std::vector<content::WebPluginInfo> plugins; |
GoogleUpdateMetrics google_update_metrics; |
@@ -329,9 +315,8 @@ TEST_F(MetricsLogTest, RecordEnvironment) { |
CheckSystemProfile(log.system_profile()); |
// Check that the system profile has also been written to prefs. |
- PrefService* local_state = log.GetPrefService(); |
const std::string base64_system_profile = |
- local_state->GetString(prefs::kStabilitySavedSystemProfile); |
+ prefs_.GetString(prefs::kStabilitySavedSystemProfile); |
EXPECT_FALSE(base64_system_profile.empty()); |
std::string serialied_system_profile; |
EXPECT_TRUE(base::Base64Decode(base64_system_profile, |
@@ -345,39 +330,36 @@ TEST_F(MetricsLogTest, LoadSavedEnvironmentFromPrefs) { |
const char* kSystemProfilePref = prefs::kStabilitySavedSystemProfile; |
const char* kSystemProfileHashPref = prefs::kStabilitySavedSystemProfileHash; |
- TestingPrefServiceSimple prefs; |
- chrome::RegisterLocalState(prefs.registry()); |
- |
// The pref value is empty, so loading it from prefs should fail. |
{ |
- TestMetricsLog log(kClientId, kSessionId, MetricsLog::ONGOING_LOG, &prefs); |
+ TestMetricsLog log(kClientId, kSessionId, MetricsLog::ONGOING_LOG, &prefs_); |
EXPECT_FALSE(log.LoadSavedEnvironmentFromPrefs()); |
} |
// Do a RecordEnvironment() call and check whether the pref is recorded. |
{ |
- TestMetricsLog log(kClientId, kSessionId, MetricsLog::ONGOING_LOG, &prefs); |
+ TestMetricsLog log(kClientId, kSessionId, MetricsLog::ONGOING_LOG, &prefs_); |
log.RecordEnvironment(std::vector<content::WebPluginInfo>(), |
GoogleUpdateMetrics(), |
std::vector<chrome_variations::ActiveGroupId>()); |
- EXPECT_FALSE(prefs.GetString(kSystemProfilePref).empty()); |
- EXPECT_FALSE(prefs.GetString(kSystemProfileHashPref).empty()); |
+ EXPECT_FALSE(prefs_.GetString(kSystemProfilePref).empty()); |
+ EXPECT_FALSE(prefs_.GetString(kSystemProfileHashPref).empty()); |
} |
{ |
- TestMetricsLog log(kClientId, kSessionId, MetricsLog::ONGOING_LOG, &prefs); |
+ TestMetricsLog log(kClientId, kSessionId, MetricsLog::ONGOING_LOG, &prefs_); |
EXPECT_TRUE(log.LoadSavedEnvironmentFromPrefs()); |
// Check some values in the system profile. |
EXPECT_EQ(kInstallDateExpected, log.system_profile().install_date()); |
EXPECT_EQ(kEnabledDateExpected, log.system_profile().uma_enabled_date()); |
// Ensure that the call cleared the prefs. |
- EXPECT_TRUE(prefs.GetString(kSystemProfilePref).empty()); |
- EXPECT_TRUE(prefs.GetString(kSystemProfileHashPref).empty()); |
+ EXPECT_TRUE(prefs_.GetString(kSystemProfilePref).empty()); |
+ EXPECT_TRUE(prefs_.GetString(kSystemProfileHashPref).empty()); |
} |
// Ensure that a non-matching hash results in the pref being invalid. |
{ |
- TestMetricsLog log(kClientId, kSessionId, MetricsLog::ONGOING_LOG, &prefs); |
+ TestMetricsLog log(kClientId, kSessionId, MetricsLog::ONGOING_LOG, &prefs_); |
// Call RecordEnvironment() to record the pref again. |
log.RecordEnvironment(std::vector<content::WebPluginInfo>(), |
GoogleUpdateMetrics(), |
@@ -386,17 +368,18 @@ TEST_F(MetricsLogTest, LoadSavedEnvironmentFromPrefs) { |
{ |
// Set the hash to a bad value. |
- prefs.SetString(kSystemProfileHashPref, "deadbeef"); |
- TestMetricsLog log(kClientId, kSessionId, MetricsLog::ONGOING_LOG, &prefs); |
+ prefs_.SetString(kSystemProfileHashPref, "deadbeef"); |
+ TestMetricsLog log(kClientId, kSessionId, MetricsLog::ONGOING_LOG, &prefs_); |
EXPECT_FALSE(log.LoadSavedEnvironmentFromPrefs()); |
// Ensure that the prefs are cleared, even if the call failed. |
- EXPECT_TRUE(prefs.GetString(kSystemProfilePref).empty()); |
- EXPECT_TRUE(prefs.GetString(kSystemProfileHashPref).empty()); |
+ EXPECT_TRUE(prefs_.GetString(kSystemProfilePref).empty()); |
+ EXPECT_TRUE(prefs_.GetString(kSystemProfileHashPref).empty()); |
} |
} |
TEST_F(MetricsLogTest, InitialLogStabilityMetrics) { |
- TestMetricsLog log(kClientId, kSessionId, MetricsLog::INITIAL_STABILITY_LOG); |
+ TestMetricsLog log( |
+ kClientId, kSessionId, MetricsLog::INITIAL_STABILITY_LOG, &prefs_); |
log.RecordEnvironment(std::vector<content::WebPluginInfo>(), |
GoogleUpdateMetrics(), |
std::vector<chrome_variations::ActiveGroupId>()); |
@@ -415,7 +398,7 @@ TEST_F(MetricsLogTest, InitialLogStabilityMetrics) { |
} |
TEST_F(MetricsLogTest, OngoingLogStabilityMetrics) { |
- TestMetricsLog log(kClientId, kSessionId, MetricsLog::ONGOING_LOG); |
+ TestMetricsLog log(kClientId, kSessionId, MetricsLog::ONGOING_LOG, &prefs_); |
log.RecordEnvironment(std::vector<content::WebPluginInfo>(), |
GoogleUpdateMetrics(), |
std::vector<chrome_variations::ActiveGroupId>()); |
@@ -435,7 +418,7 @@ TEST_F(MetricsLogTest, OngoingLogStabilityMetrics) { |
#if defined(ENABLE_PLUGINS) |
TEST_F(MetricsLogTest, Plugins) { |
- TestMetricsLog log(kClientId, kSessionId, MetricsLog::ONGOING_LOG); |
+ TestMetricsLog log(kClientId, kSessionId, MetricsLog::ONGOING_LOG, &prefs_); |
std::vector<content::WebPluginInfo> plugins; |
plugins.push_back(CreateFakePluginInfo("p1", FILE_PATH_LITERAL("p1.plugin"), |
@@ -464,7 +447,7 @@ TEST_F(MetricsLogTest, Plugins) { |
plugin_dict->SetInteger(prefs::kStabilityPluginInstances, 3); |
plugin_dict->SetInteger(prefs::kStabilityPluginLoadingErrors, 4); |
{ |
- ListPrefUpdate update(log.GetPrefService(), prefs::kStabilityPluginStats); |
+ ListPrefUpdate update(&prefs_, prefs::kStabilityPluginStats); |
update.Get()->Append(plugin_dict.release()); |
} |
@@ -491,7 +474,7 @@ TEST_F(MetricsLogTest, RecordProfilerData) { |
EXPECT_EQ(GG_UINT64_C(1518842999910132863), |
metrics::HashMetricName("birth_thread*")); |
- TestMetricsLog log(kClientId, kSessionId, MetricsLog::ONGOING_LOG); |
+ TestMetricsLog log(kClientId, kSessionId, MetricsLog::ONGOING_LOG, &prefs_); |
EXPECT_EQ(0, log.uma_proto().profiler_event_size()); |
{ |
@@ -652,7 +635,8 @@ TEST_F(MetricsLogTest, RecordProfilerData) { |
} |
TEST_F(MetricsLogTest, ChromeChannelWrittenToProtobuf) { |
- TestMetricsLog log("user@test.com", kSessionId, MetricsLog::ONGOING_LOG); |
+ TestMetricsLog log( |
+ "user@test.com", kSessionId, MetricsLog::ONGOING_LOG, &prefs_); |
EXPECT_TRUE(log.uma_proto().system_profile().has_channel()); |
} |
@@ -672,7 +656,7 @@ TEST_F(MetricsLogTest, MultiProfileUserCount) { |
user_manager->LoginUser(user1); |
user_manager->LoginUser(user3); |
- TestMetricsLog log(kClientId, kSessionId, MetricsLog::ONGOING_LOG); |
+ TestMetricsLog log(kClientId, kSessionId, MetricsLog::ONGOING_LOG, &prefs_); |
std::vector<content::WebPluginInfo> plugins; |
GoogleUpdateMetrics google_update_metrics; |
std::vector<chrome_variations::ActiveGroupId> synthetic_trials; |
@@ -694,7 +678,7 @@ TEST_F(MetricsLogTest, MultiProfileCountInvalidated) { |
user_manager->LoginUser(user1); |
- TestMetricsLog log(kClientId, kSessionId, MetricsLog::ONGOING_LOG); |
+ TestMetricsLog log(kClientId, kSessionId, MetricsLog::ONGOING_LOG, &prefs_); |
EXPECT_EQ(1u, log.system_profile().multi_profile_user_count()); |
user_manager->LoginUser(user2); |
@@ -705,7 +689,7 @@ TEST_F(MetricsLogTest, MultiProfileCountInvalidated) { |
} |
TEST_F(MetricsLogTest, BluetoothHardwareDisabled) { |
- TestMetricsLog log(kClientId, kSessionId, MetricsLog::ONGOING_LOG); |
+ TestMetricsLog log(kClientId, kSessionId, MetricsLog::ONGOING_LOG, &prefs_); |
log.RecordEnvironment(std::vector<content::WebPluginInfo>(), |
GoogleUpdateMetrics(), |
std::vector<chrome_variations::ActiveGroupId>()); |
@@ -723,7 +707,7 @@ TEST_F(MetricsLogTest, BluetoothHardwareEnabled) { |
dbus::ObjectPath(FakeBluetoothAdapterClient::kAdapterPath)); |
properties->powered.ReplaceValue(true); |
- TestMetricsLog log(kClientId, kSessionId, MetricsLog::ONGOING_LOG); |
+ TestMetricsLog log(kClientId, kSessionId, MetricsLog::ONGOING_LOG, &prefs_); |
log.RecordEnvironment(std::vector<content::WebPluginInfo>(), |
GoogleUpdateMetrics(), |
std::vector<chrome_variations::ActiveGroupId>()); |
@@ -753,7 +737,7 @@ TEST_F(MetricsLogTest, BluetoothPairedDevices) { |
dbus::ObjectPath(FakeBluetoothDeviceClient::kConfirmPasskeyPath)); |
properties->paired.ReplaceValue(true); |
- TestMetricsLog log(kClientId, kSessionId, MetricsLog::ONGOING_LOG); |
+ TestMetricsLog log(kClientId, kSessionId, MetricsLog::ONGOING_LOG, &prefs_); |
log.RecordEnvironment(std::vector<content::WebPluginInfo>(), |
GoogleUpdateMetrics(), |
std::vector<chrome_variations::ActiveGroupId>()); |