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

Side by Side Diff: chrome/browser/metrics/metrics_state_manager_unittest.cc

Issue 284293003: [Metrics] Make MetricsStateManager take a callback param to check if UMA is enabled. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 6 years, 7 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 | « chrome/browser/metrics/metrics_state_manager.cc ('k') | chrome/common/chrome_switches.h » ('j') | 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 "chrome/browser/metrics/metrics_state_manager.h" 5 #include "chrome/browser/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/command_line.h" 11 #include "base/command_line.h"
11 #include "base/prefs/testing_pref_service.h" 12 #include "base/prefs/testing_pref_service.h"
12 #include "chrome/common/chrome_switches.h" 13 #include "chrome/common/chrome_switches.h"
13 #include "chrome/common/pref_names.h" 14 #include "chrome/common/pref_names.h"
14 #include "components/variations/caching_permuted_entropy_provider.h" 15 #include "components/variations/caching_permuted_entropy_provider.h"
15 #include "components/variations/pref_names.h" 16 #include "components/variations/pref_names.h"
16 #include "testing/gtest/include/gtest/gtest.h" 17 #include "testing/gtest/include/gtest/gtest.h"
17 18
18 namespace metrics { 19 namespace metrics {
19 20
20 class MetricsStateManagerTest : public testing::Test { 21 class MetricsStateManagerTest : public testing::Test {
21 public: 22 public:
22 MetricsStateManagerTest() { 23 MetricsStateManagerTest() : is_metrics_reporting_enabled_(false) {
23 MetricsStateManager::RegisterPrefs(prefs_.registry()); 24 MetricsStateManager::RegisterPrefs(prefs_.registry());
24 } 25 }
25 26
26 scoped_ptr<MetricsStateManager> CreateStateManager() { 27 scoped_ptr<MetricsStateManager> CreateStateManager() {
27 return MetricsStateManager::Create(&prefs_).Pass(); 28 return MetricsStateManager::Create(
29 &prefs_,
30 base::Bind(&MetricsStateManagerTest::is_metrics_reporting_enabled,
31 base::Unretained(this))).Pass();
32 }
33
34 // Sets metrics reporting as enabled for testing.
35 void EnableMetricsReporting() {
36 is_metrics_reporting_enabled_ = true;
28 } 37 }
29 38
30 protected: 39 protected:
31 TestingPrefServiceSimple prefs_; 40 TestingPrefServiceSimple prefs_;
32 41
33 private: 42 private:
43 bool is_metrics_reporting_enabled() const {
44 return is_metrics_reporting_enabled_;
45 }
46
47 bool is_metrics_reporting_enabled_;
48
34 DISALLOW_COPY_AND_ASSIGN(MetricsStateManagerTest); 49 DISALLOW_COPY_AND_ASSIGN(MetricsStateManagerTest);
35 }; 50 };
36 51
37 // Ensure the ClientId is formatted as expected. 52 // Ensure the ClientId is formatted as expected.
38 TEST_F(MetricsStateManagerTest, ClientIdCorrectlyFormatted) { 53 TEST_F(MetricsStateManagerTest, ClientIdCorrectlyFormatted) {
39 scoped_ptr<MetricsStateManager> state_manager(CreateStateManager()); 54 scoped_ptr<MetricsStateManager> state_manager(CreateStateManager());
40 state_manager->ForceClientIdCreation(); 55 state_manager->ForceClientIdCreation();
41 56
42 const std::string client_id = state_manager->client_id(); 57 const std::string client_id = state_manager->client_id();
43 EXPECT_EQ(36U, client_id.length()); 58 EXPECT_EQ(36U, client_id.length());
44 59
45 for (size_t i = 0; i < client_id.length(); ++i) { 60 for (size_t i = 0; i < client_id.length(); ++i) {
46 char current = client_id[i]; 61 char current = client_id[i];
47 if (i == 8 || i == 13 || i == 18 || i == 23) 62 if (i == 8 || i == 13 || i == 18 || i == 23)
48 EXPECT_EQ('-', current); 63 EXPECT_EQ('-', current);
49 else 64 else
50 EXPECT_TRUE(isxdigit(current)); 65 EXPECT_TRUE(isxdigit(current));
51 } 66 }
52 } 67 }
53 68
54 TEST_F(MetricsStateManagerTest, EntropySourceUsed_Low) { 69 TEST_F(MetricsStateManagerTest, EntropySourceUsed_Low) {
55 scoped_ptr<MetricsStateManager> state_manager(CreateStateManager()); 70 scoped_ptr<MetricsStateManager> state_manager(CreateStateManager());
56 state_manager->CreateEntropyProvider(); 71 state_manager->CreateEntropyProvider();
57 EXPECT_EQ(MetricsStateManager::ENTROPY_SOURCE_LOW, 72 EXPECT_EQ(MetricsStateManager::ENTROPY_SOURCE_LOW,
58 state_manager->entropy_source_returned()); 73 state_manager->entropy_source_returned());
59 } 74 }
60 75
61 TEST_F(MetricsStateManagerTest, EntropySourceUsed_High) { 76 TEST_F(MetricsStateManagerTest, EntropySourceUsed_High) {
62 CommandLine::ForCurrentProcess()->AppendSwitch( 77 EnableMetricsReporting();
63 switches::kEnableMetricsReportingForTesting);
64
65 scoped_ptr<MetricsStateManager> state_manager(CreateStateManager()); 78 scoped_ptr<MetricsStateManager> state_manager(CreateStateManager());
66 state_manager->CreateEntropyProvider(); 79 state_manager->CreateEntropyProvider();
67 EXPECT_EQ(MetricsStateManager::ENTROPY_SOURCE_HIGH, 80 EXPECT_EQ(MetricsStateManager::ENTROPY_SOURCE_HIGH,
68 state_manager->entropy_source_returned()); 81 state_manager->entropy_source_returned());
69 } 82 }
70 83
71 TEST_F(MetricsStateManagerTest, LowEntropySource0NotReset) { 84 TEST_F(MetricsStateManagerTest, LowEntropySource0NotReset) {
72 scoped_ptr<MetricsStateManager> state_manager(CreateStateManager()); 85 scoped_ptr<MetricsStateManager> state_manager(CreateStateManager());
73 86
74 // Get the low entropy source once, to initialize it. 87 // Get the low entropy source once, to initialize it.
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
152 165
153 state_manager->GetLowEntropySource(); 166 state_manager->GetLowEntropySource();
154 167
155 EXPECT_FALSE(prefs_.GetBoolean(::prefs::kMetricsResetIds)); 168 EXPECT_FALSE(prefs_.GetBoolean(::prefs::kMetricsResetIds));
156 } 169 }
157 170
158 EXPECT_NE(kInitialClientId, prefs_.GetString(::prefs::kMetricsClientID)); 171 EXPECT_NE(kInitialClientId, prefs_.GetString(::prefs::kMetricsClientID));
159 } 172 }
160 173
161 } // namespace metrics 174 } // namespace metrics
OLDNEW
« no previous file with comments | « chrome/browser/metrics/metrics_state_manager.cc ('k') | chrome/common/chrome_switches.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698