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

Side by Side Diff: chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos_unittest.cc

Issue 14200028: Make CrosSettings and DeviceSettingsService non Lazy instances (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 7 years, 8 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/chromeos/policy/device_cloud_policy_manager_chromeos.h" 5 #include "chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos.h"
6 6
7 #include "base/basictypes.h" 7 #include "base/basictypes.h"
8 #include "base/compiler_specific.h" 8 #include "base/compiler_specific.h"
9 #include "base/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "base/prefs/pref_registry_simple.h" 10 #include "base/prefs/pref_registry_simple.h"
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
48 : public chromeos::DeviceSettingsTestBase { 48 : public chromeos::DeviceSettingsTestBase {
49 protected: 49 protected:
50 DeviceCloudPolicyManagerChromeOSTest() 50 DeviceCloudPolicyManagerChromeOSTest()
51 : cryptohome_library_(chromeos::CryptohomeLibrary::GetImpl(true)), 51 : cryptohome_library_(chromeos::CryptohomeLibrary::GetImpl(true)),
52 stub_cryptohome_client_(chromeos::CryptohomeClient::Create( 52 stub_cryptohome_client_(chromeos::CryptohomeClient::Create(
53 chromeos::STUB_DBUS_CLIENT_IMPLEMENTATION, NULL)), 53 chromeos::STUB_DBUS_CLIENT_IMPLEMENTATION, NULL)),
54 install_attributes_(cryptohome_library_.get(), 54 install_attributes_(cryptohome_library_.get(),
55 stub_cryptohome_client_.get()), 55 stub_cryptohome_client_.get()),
56 store_(new DeviceCloudPolicyStoreChromeOS(&device_settings_service_, 56 store_(new DeviceCloudPolicyStoreChromeOS(&device_settings_service_,
57 &install_attributes_)), 57 &install_attributes_)),
58 manager_(make_scoped_ptr(store_), &install_attributes_) {} 58 manager_(new DeviceCloudPolicyManagerChromeOS(make_scoped_ptr(store_),
59 &install_attributes_)) {
60 }
59 61
60 virtual void SetUp() OVERRIDE { 62 virtual void SetUp() OVERRIDE {
61 DeviceSettingsTestBase::SetUp(); 63 DeviceSettingsTestBase::SetUp();
62 chrome::RegisterLocalState(local_state_.registry()); 64 chrome::RegisterLocalState(local_state_.registry());
63 manager_.Init(); 65 manager_->Init();
64 } 66 }
65 67
66 virtual void TearDown() OVERRIDE { 68 virtual void TearDown() OVERRIDE {
67 manager_.Shutdown(); 69 manager_->Shutdown();
70 manager_.reset();
68 DeviceSettingsTestBase::TearDown(); 71 DeviceSettingsTestBase::TearDown();
69 } 72 }
70 73
71 scoped_ptr<chromeos::CryptohomeLibrary> cryptohome_library_; 74 scoped_ptr<chromeos::CryptohomeLibrary> cryptohome_library_;
72 scoped_ptr<chromeos::CryptohomeClient> stub_cryptohome_client_; 75 scoped_ptr<chromeos::CryptohomeClient> stub_cryptohome_client_;
73 EnterpriseInstallAttributes install_attributes_; 76 EnterpriseInstallAttributes install_attributes_;
74 77
75 TestingPrefServiceSimple local_state_; 78 TestingPrefServiceSimple local_state_;
76 MockDeviceManagementService device_management_service_; 79 MockDeviceManagementService device_management_service_;
77 80
78 DeviceCloudPolicyStoreChromeOS* store_; 81 DeviceCloudPolicyStoreChromeOS* store_;
79 DeviceCloudPolicyManagerChromeOS manager_; 82 scoped_ptr<DeviceCloudPolicyManagerChromeOS> manager_;
Mattias Nissler (ping if slow) 2013/04/17 13:10:30 Any reason this still needs to be wrapped in a sco
stevenjb 2013/04/17 16:27:12 With the changes to DeviceSettingsTestBase I can r
80 83
81 private: 84 private:
82 DISALLOW_COPY_AND_ASSIGN(DeviceCloudPolicyManagerChromeOSTest); 85 DISALLOW_COPY_AND_ASSIGN(DeviceCloudPolicyManagerChromeOSTest);
83 }; 86 };
84 87
85 TEST_F(DeviceCloudPolicyManagerChromeOSTest, FreshDevice) { 88 TEST_F(DeviceCloudPolicyManagerChromeOSTest, FreshDevice) {
86 owner_key_util_->Clear(); 89 owner_key_util_->Clear();
87 FlushDeviceSettings(); 90 FlushDeviceSettings();
88 EXPECT_TRUE(manager_.IsInitializationComplete(POLICY_DOMAIN_CHROME)); 91 EXPECT_TRUE(manager_->IsInitializationComplete(POLICY_DOMAIN_CHROME));
89 92
90 manager_.Connect(&local_state_, &device_management_service_, 93 manager_->Connect(&local_state_, &device_management_service_,
91 scoped_ptr<CloudPolicyClient::StatusProvider>(NULL)); 94 scoped_ptr<CloudPolicyClient::StatusProvider>(NULL));
92 95
93 PolicyBundle bundle; 96 PolicyBundle bundle;
94 EXPECT_TRUE(manager_.policies().Equals(bundle)); 97 EXPECT_TRUE(manager_->policies().Equals(bundle));
95 } 98 }
96 99
97 TEST_F(DeviceCloudPolicyManagerChromeOSTest, EnrolledDevice) { 100 TEST_F(DeviceCloudPolicyManagerChromeOSTest, EnrolledDevice) {
98 base::RunLoop loop; 101 base::RunLoop loop;
99 EnterpriseInstallAttributes::LockResult result; 102 EnterpriseInstallAttributes::LockResult result;
100 install_attributes_.LockDevice(PolicyBuilder::kFakeUsername, 103 install_attributes_.LockDevice(PolicyBuilder::kFakeUsername,
101 DEVICE_MODE_ENTERPRISE, 104 DEVICE_MODE_ENTERPRISE,
102 PolicyBuilder::kFakeDeviceId, 105 PolicyBuilder::kFakeDeviceId,
103 base::Bind(&CopyLockResult, &loop, &result)); 106 base::Bind(&CopyLockResult, &loop, &result));
104 loop.Run(); 107 loop.Run();
105 ASSERT_EQ(EnterpriseInstallAttributes::LOCK_SUCCESS, result); 108 ASSERT_EQ(EnterpriseInstallAttributes::LOCK_SUCCESS, result);
106 109
107 FlushDeviceSettings(); 110 FlushDeviceSettings();
108 EXPECT_EQ(CloudPolicyStore::STATUS_OK, store_->status()); 111 EXPECT_EQ(CloudPolicyStore::STATUS_OK, store_->status());
109 EXPECT_TRUE(manager_.IsInitializationComplete(POLICY_DOMAIN_CHROME)); 112 EXPECT_TRUE(manager_->IsInitializationComplete(POLICY_DOMAIN_CHROME));
110 113
111 PolicyBundle bundle; 114 PolicyBundle bundle;
112 bundle.Get(PolicyNamespace(POLICY_DOMAIN_CHROME, std::string())) 115 bundle.Get(PolicyNamespace(POLICY_DOMAIN_CHROME, std::string()))
113 .Set(key::kDeviceMetricsReportingEnabled, 116 .Set(key::kDeviceMetricsReportingEnabled,
114 POLICY_LEVEL_MANDATORY, 117 POLICY_LEVEL_MANDATORY,
115 POLICY_SCOPE_MACHINE, 118 POLICY_SCOPE_MACHINE,
116 Value::CreateBooleanValue(false)); 119 Value::CreateBooleanValue(false));
117 EXPECT_TRUE(manager_.policies().Equals(bundle)); 120 EXPECT_TRUE(manager_->policies().Equals(bundle));
118 121
119 manager_.Connect(&local_state_, &device_management_service_, 122 manager_->Connect(&local_state_, &device_management_service_,
120 scoped_ptr<CloudPolicyClient::StatusProvider>(NULL)); 123 scoped_ptr<CloudPolicyClient::StatusProvider>(NULL));
121 EXPECT_TRUE(manager_.policies().Equals(bundle)); 124 EXPECT_TRUE(manager_->policies().Equals(bundle));
122 125
123 manager_.Shutdown(); 126 manager_->Shutdown();
124 EXPECT_TRUE(manager_.policies().Equals(bundle)); 127 EXPECT_TRUE(manager_->policies().Equals(bundle));
125 } 128 }
126 129
127 TEST_F(DeviceCloudPolicyManagerChromeOSTest, ConsumerDevice) { 130 TEST_F(DeviceCloudPolicyManagerChromeOSTest, ConsumerDevice) {
128 FlushDeviceSettings(); 131 FlushDeviceSettings();
129 EXPECT_EQ(CloudPolicyStore::STATUS_BAD_STATE, store_->status()); 132 EXPECT_EQ(CloudPolicyStore::STATUS_BAD_STATE, store_->status());
130 EXPECT_TRUE(manager_.IsInitializationComplete(POLICY_DOMAIN_CHROME)); 133 EXPECT_TRUE(manager_->IsInitializationComplete(POLICY_DOMAIN_CHROME));
131 134
132 PolicyBundle bundle; 135 PolicyBundle bundle;
133 EXPECT_TRUE(manager_.policies().Equals(bundle)); 136 EXPECT_TRUE(manager_->policies().Equals(bundle));
134 137
135 manager_.Connect(&local_state_, &device_management_service_, 138 manager_->Connect(&local_state_, &device_management_service_,
136 scoped_ptr<CloudPolicyClient::StatusProvider>(NULL)); 139 scoped_ptr<CloudPolicyClient::StatusProvider>(NULL));
137 EXPECT_TRUE(manager_.policies().Equals(bundle)); 140 EXPECT_TRUE(manager_->policies().Equals(bundle));
138 141
139 manager_.Shutdown(); 142 manager_->Shutdown();
140 EXPECT_TRUE(manager_.policies().Equals(bundle)); 143 EXPECT_TRUE(manager_->policies().Equals(bundle));
141 } 144 }
142 145
143 class DeviceCloudPolicyManagerChromeOSEnrollmentTest 146 class DeviceCloudPolicyManagerChromeOSEnrollmentTest
144 : public DeviceCloudPolicyManagerChromeOSTest { 147 : public DeviceCloudPolicyManagerChromeOSTest {
145 public: 148 public:
146 void Done(EnrollmentStatus status) { 149 void Done(EnrollmentStatus status) {
147 status_ = status; 150 status_ = status;
148 done_ = true; 151 done_ = true;
149 } 152 }
150 153
(...skipping 19 matching lines...) Expand all
170 173
171 register_response_.mutable_register_response()->set_device_management_token( 174 register_response_.mutable_register_response()->set_device_management_token(
172 PolicyBuilder::kFakeToken); 175 PolicyBuilder::kFakeToken);
173 fetch_response_.mutable_policy_response()->add_response()->CopyFrom( 176 fetch_response_.mutable_policy_response()->add_response()->CopyFrom(
174 device_policy_.policy()); 177 device_policy_.policy());
175 loaded_blob_ = device_policy_.GetBlob(); 178 loaded_blob_ = device_policy_.GetBlob();
176 179
177 // Initialize the manager. 180 // Initialize the manager.
178 FlushDeviceSettings(); 181 FlushDeviceSettings();
179 EXPECT_EQ(CloudPolicyStore::STATUS_BAD_STATE, store_->status()); 182 EXPECT_EQ(CloudPolicyStore::STATUS_BAD_STATE, store_->status());
180 EXPECT_TRUE(manager_.IsInitializationComplete(POLICY_DOMAIN_CHROME)); 183 EXPECT_TRUE(manager_->IsInitializationComplete(POLICY_DOMAIN_CHROME));
181 184
182 PolicyBundle bundle; 185 PolicyBundle bundle;
183 EXPECT_TRUE(manager_.policies().Equals(bundle)); 186 EXPECT_TRUE(manager_->policies().Equals(bundle));
184 187
185 manager_.Connect(&local_state_, &device_management_service_, 188 manager_->Connect(&local_state_, &device_management_service_,
186 scoped_ptr<CloudPolicyClient::StatusProvider>(NULL)); 189 scoped_ptr<CloudPolicyClient::StatusProvider>(NULL));
187 } 190 }
188 191
189 void ExpectFailedEnrollment(EnrollmentStatus::Status status) { 192 void ExpectFailedEnrollment(EnrollmentStatus::Status status) {
190 EXPECT_EQ(status, status_.status()); 193 EXPECT_EQ(status, status_.status());
191 EXPECT_FALSE(store_->is_managed()); 194 EXPECT_FALSE(store_->is_managed());
192 PolicyBundle empty_bundle; 195 PolicyBundle empty_bundle;
193 EXPECT_TRUE(manager_.policies().Equals(empty_bundle)); 196 EXPECT_TRUE(manager_->policies().Equals(empty_bundle));
194 } 197 }
195 198
196 void ExpectSuccessfulEnrollment() { 199 void ExpectSuccessfulEnrollment() {
197 EXPECT_EQ(EnrollmentStatus::STATUS_SUCCESS, status_.status()); 200 EXPECT_EQ(EnrollmentStatus::STATUS_SUCCESS, status_.status());
198 EXPECT_EQ(DEVICE_MODE_ENTERPRISE, install_attributes_.GetMode()); 201 EXPECT_EQ(DEVICE_MODE_ENTERPRISE, install_attributes_.GetMode());
199 EXPECT_TRUE(store_->has_policy()); 202 EXPECT_TRUE(store_->has_policy());
200 EXPECT_TRUE(store_->is_managed()); 203 EXPECT_TRUE(store_->is_managed());
201 ASSERT_TRUE(manager_.core()->client()); 204 ASSERT_TRUE(manager_->core()->client());
202 EXPECT_TRUE(manager_.core()->client()->is_registered()); 205 EXPECT_TRUE(manager_->core()->client()->is_registered());
203 206
204 PolicyBundle bundle; 207 PolicyBundle bundle;
205 bundle.Get(PolicyNamespace(POLICY_DOMAIN_CHROME, std::string())) 208 bundle.Get(PolicyNamespace(POLICY_DOMAIN_CHROME, std::string()))
206 .Set(key::kDeviceMetricsReportingEnabled, 209 .Set(key::kDeviceMetricsReportingEnabled,
207 POLICY_LEVEL_MANDATORY, 210 POLICY_LEVEL_MANDATORY,
208 POLICY_SCOPE_MACHINE, 211 POLICY_SCOPE_MACHINE,
209 Value::CreateBooleanValue(false)); 212 Value::CreateBooleanValue(false));
210 EXPECT_TRUE(manager_.policies().Equals(bundle)); 213 EXPECT_TRUE(manager_->policies().Equals(bundle));
211 } 214 }
212 215
213 void RunTest() { 216 void RunTest() {
214 // Trigger enrollment. 217 // Trigger enrollment.
215 MockDeviceManagementJob* register_job = NULL; 218 MockDeviceManagementJob* register_job = NULL;
216 EXPECT_CALL(device_management_service_, 219 EXPECT_CALL(device_management_service_,
217 CreateJob(DeviceManagementRequestJob::TYPE_REGISTRATION)) 220 CreateJob(DeviceManagementRequestJob::TYPE_REGISTRATION))
218 .Times(AtMost(1)) 221 .Times(AtMost(1))
219 .WillOnce(device_management_service_.CreateAsyncJob(&register_job)); 222 .WillOnce(device_management_service_.CreateAsyncJob(&register_job));
220 EXPECT_CALL(device_management_service_, StartJob(_, _, _, _, _, _, _)) 223 EXPECT_CALL(device_management_service_, StartJob(_, _, _, _, _, _, _))
221 .Times(AtMost(1)) 224 .Times(AtMost(1))
222 .WillOnce(DoAll(SaveArg<5>(&client_id_), 225 .WillOnce(DoAll(SaveArg<5>(&client_id_),
223 SaveArg<6>(&register_request_))); 226 SaveArg<6>(&register_request_)));
224 DeviceCloudPolicyManagerChromeOS::AllowedDeviceModes modes; 227 DeviceCloudPolicyManagerChromeOS::AllowedDeviceModes modes;
225 modes[DEVICE_MODE_ENTERPRISE] = true; 228 modes[DEVICE_MODE_ENTERPRISE] = true;
226 manager_.StartEnrollment( 229 manager_->StartEnrollment(
227 "auth token", is_auto_enrollment_, modes, 230 "auth token", is_auto_enrollment_, modes,
228 base::Bind(&DeviceCloudPolicyManagerChromeOSEnrollmentTest::Done, 231 base::Bind(&DeviceCloudPolicyManagerChromeOSEnrollmentTest::Done,
229 base::Unretained(this))); 232 base::Unretained(this)));
230 Mock::VerifyAndClearExpectations(&device_management_service_); 233 Mock::VerifyAndClearExpectations(&device_management_service_);
231 234
232 if (done_) 235 if (done_)
233 return; 236 return;
234 237
235 // Process registration. 238 // Process registration.
236 ASSERT_TRUE(register_job); 239 ASSERT_TRUE(register_job);
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
361 TEST_F(DeviceCloudPolicyManagerChromeOSEnrollmentTest, LoadError) { 364 TEST_F(DeviceCloudPolicyManagerChromeOSEnrollmentTest, LoadError) {
362 loaded_blob_.clear(); 365 loaded_blob_.clear();
363 RunTest(); 366 RunTest();
364 ExpectFailedEnrollment(EnrollmentStatus::STATUS_STORE_ERROR); 367 ExpectFailedEnrollment(EnrollmentStatus::STATUS_STORE_ERROR);
365 EXPECT_EQ(CloudPolicyStore::STATUS_LOAD_ERROR, 368 EXPECT_EQ(CloudPolicyStore::STATUS_LOAD_ERROR,
366 status_.store_status()); 369 status_.store_status());
367 } 370 }
368 371
369 } // namespace 372 } // namespace
370 } // namespace policy 373 } // namespace policy
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698