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
3 // found in the LICENSE file.
5 #include "chrome/browser/metrics/chrome_metrics_service_accessor.h"
7 #include "chrome/common/pref_names.h"
8 #include "chrome/test/base/scoped_testing_local_state.h"
9 #include "chrome/test/base/testing_browser_process.h"
10 #include "testing/gtest/include/gtest/gtest.h"
12 class ChromeMetricsServiceAccessorTest
: public testing::Test
{
14 ChromeMetricsServiceAccessorTest()
15 : testing_local_state_(TestingBrowserProcess::GetGlobal()) {
18 PrefService
* GetLocalState() {
19 return testing_local_state_
.Get();
23 ScopedTestingLocalState testing_local_state_
;
25 DISALLOW_COPY_AND_ASSIGN(ChromeMetricsServiceAccessorTest
);
28 TEST_F(ChromeMetricsServiceAccessorTest
, MetricsReportingEnabled
) {
29 #if !defined(OS_CHROMEOS)
30 GetLocalState()->SetBoolean(prefs::kMetricsReportingEnabled
, false);
31 EXPECT_FALSE(ChromeMetricsServiceAccessor::IsMetricsReportingEnabled());
32 GetLocalState()->SetBoolean(prefs::kMetricsReportingEnabled
, true);
33 EXPECT_TRUE(ChromeMetricsServiceAccessor::IsMetricsReportingEnabled());
34 GetLocalState()->ClearPref(prefs::kMetricsReportingEnabled
);
35 EXPECT_FALSE(ChromeMetricsServiceAccessor::IsMetricsReportingEnabled());
37 // ChromeOS does not register prefs::kMetricsReportingEnabled and uses
38 // device settings for metrics reporting.
39 EXPECT_FALSE(ChromeMetricsServiceAccessor::IsMetricsReportingEnabled());
43 TEST_F(ChromeMetricsServiceAccessorTest
, CrashReportingEnabled
) {
44 #if defined(GOOGLE_CHROME_BUILD)
45 // ChromeOS has different device settings for crash reporting.
46 #if !defined(OS_CHROMEOS)
47 #if defined(OS_ANDROID)
48 const char* crash_pref
= prefs::kCrashReportingEnabled
;
50 const char* crash_pref
= prefs::kMetricsReportingEnabled
;
52 GetLocalState()->SetBoolean(crash_pref
, false);
53 EXPECT_FALSE(ChromeMetricsServiceAccessor::IsCrashReportingEnabled());
54 GetLocalState()->SetBoolean(crash_pref
, true);
55 EXPECT_TRUE(ChromeMetricsServiceAccessor::IsCrashReportingEnabled());
56 GetLocalState()->ClearPref(crash_pref
);
57 EXPECT_FALSE(ChromeMetricsServiceAccessor::IsCrashReportingEnabled());
58 #endif // !defined(OS_CHROMEOS)
59 #else // defined(GOOGLE_CHROME_BUILD)
60 // Chromium branded browsers never have crash reporting enabled.
61 EXPECT_FALSE(ChromeMetricsServiceAccessor::IsCrashReportingEnabled());
62 #endif // defined(GOOGLE_CHROME_BUILD)