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

Side by Side Diff: components/metrics/metrics_state_manager_unittest.cc

Issue 372473004: Retrieve client_id from GoogleUpdateSettings when its missing from Local State. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: +member comments Created 6 years, 5 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 "components/metrics/metrics_state_manager.h" 5 #include "components/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/bind.h"
11 #include "base/command_line.h" 11 #include "base/command_line.h"
12 #include "base/prefs/testing_pref_service.h" 12 #include "base/prefs/testing_pref_service.h"
13 #include "components/metrics/client_info.h"
13 #include "components/metrics/metrics_pref_names.h" 14 #include "components/metrics/metrics_pref_names.h"
14 #include "components/metrics/metrics_switches.h" 15 #include "components/metrics/metrics_switches.h"
15 #include "components/variations/caching_permuted_entropy_provider.h" 16 #include "components/variations/caching_permuted_entropy_provider.h"
16 #include "components/variations/pref_names.h" 17 #include "components/variations/pref_names.h"
17 #include "testing/gtest/include/gtest/gtest.h" 18 #include "testing/gtest/include/gtest/gtest.h"
18 19
19 namespace metrics { 20 namespace metrics {
20 21
21 class MetricsStateManagerTest : public testing::Test { 22 class MetricsStateManagerTest : public testing::Test {
22 public: 23 public:
23 MetricsStateManagerTest() : is_metrics_reporting_enabled_(false) { 24 MetricsStateManagerTest() : is_metrics_reporting_enabled_(false) {
24 MetricsStateManager::RegisterPrefs(prefs_.registry()); 25 MetricsStateManager::RegisterPrefs(prefs_.registry());
25 } 26 }
26 27
27 scoped_ptr<MetricsStateManager> CreateStateManager() { 28 scoped_ptr<MetricsStateManager> CreateStateManager() {
28 return MetricsStateManager::Create( 29 return MetricsStateManager::Create(
29 &prefs_, 30 &prefs_,
30 base::Bind(&MetricsStateManagerTest::is_metrics_reporting_enabled, 31 base::Bind(&MetricsStateManagerTest::is_metrics_reporting_enabled,
32 base::Unretained(this)),
33 base::Bind(&MetricsStateManagerTest::MockStoreClientInfoBackup,
34 base::Unretained(this)),
35 base::Bind(&MetricsStateManagerTest::LoadFakeClientInfoBackup,
31 base::Unretained(this))).Pass(); 36 base::Unretained(this))).Pass();
32 } 37 }
33 38
34 // Sets metrics reporting as enabled for testing. 39 // Sets metrics reporting as enabled for testing.
35 void EnableMetricsReporting() { 40 void EnableMetricsReporting() {
36 is_metrics_reporting_enabled_ = true; 41 is_metrics_reporting_enabled_ = true;
37 } 42 }
38 43
39 protected: 44 protected:
40 TestingPrefServiceSimple prefs_; 45 TestingPrefServiceSimple prefs_;
41 46
42 private: 47 private:
43 bool is_metrics_reporting_enabled() const { 48 bool is_metrics_reporting_enabled() const {
44 return is_metrics_reporting_enabled_; 49 return is_metrics_reporting_enabled_;
45 } 50 }
46 51
52 // Stores the |client_info| in |stored_client_info_backup_| for verification
53 // by the tests later.
54 void MockStoreClientInfoBackup(const ClientInfo& client_info) {
55 stored_client_info_backup_.reset(new ClientInfo);
56 stored_client_info_backup_->client_id = client_info.client_id;
57 stored_client_info_backup_->installation_date =
58 client_info.installation_date;
59 stored_client_info_backup_->reporting_enabled_date =
60 client_info.reporting_enabled_date;
61 }
62
63 // Hands off |fake_client_info_backup_| if it was set.
64 scoped_ptr<ClientInfo> LoadFakeClientInfoBackup() {
65 return fake_client_info_backup_.Pass();
66 }
67
47 bool is_metrics_reporting_enabled_; 68 bool is_metrics_reporting_enabled_;
48 69
70 // Last ClientInfo store via MockStoreClientInfoBackup by the
71 // MetricsStateManager.
72 scoped_ptr<ClientInfo> stored_client_info_backup_;
73
74 // If set, will be returned via LoadFakeClientInfoBackup if requested by the
75 // MetricsStateManager.
76 scoped_ptr<ClientInfo> fake_client_info_backup_;
77
49 DISALLOW_COPY_AND_ASSIGN(MetricsStateManagerTest); 78 DISALLOW_COPY_AND_ASSIGN(MetricsStateManagerTest);
50 }; 79 };
51 80
52 // Ensure the ClientId is formatted as expected. 81 // Ensure the ClientId is formatted as expected.
53 TEST_F(MetricsStateManagerTest, ClientIdCorrectlyFormatted) { 82 TEST_F(MetricsStateManagerTest, ClientIdCorrectlyFormatted) {
54 scoped_ptr<MetricsStateManager> state_manager(CreateStateManager()); 83 scoped_ptr<MetricsStateManager> state_manager(CreateStateManager());
55 state_manager->ForceClientIdCreation(); 84 state_manager->ForceClientIdCreation();
56 85
57 const std::string client_id = state_manager->client_id(); 86 const std::string client_id = state_manager->client_id();
58 EXPECT_EQ(36U, client_id.length()); 87 EXPECT_EQ(36U, client_id.length());
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
165 194
166 state_manager->GetLowEntropySource(); 195 state_manager->GetLowEntropySource();
167 196
168 EXPECT_FALSE(prefs_.GetBoolean(prefs::kMetricsResetIds)); 197 EXPECT_FALSE(prefs_.GetBoolean(prefs::kMetricsResetIds));
169 } 198 }
170 199
171 EXPECT_NE(kInitialClientId, prefs_.GetString(prefs::kMetricsClientID)); 200 EXPECT_NE(kInitialClientId, prefs_.GetString(prefs::kMetricsClientID));
172 } 201 }
173 202
174 } // namespace metrics 203 } // namespace metrics
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698