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

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

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

Powered by Google App Engine
This is Rietveld 408576698