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

Side by Side Diff: chrome/browser/chromeos/settings/device_settings_service_unittest.cc

Issue 769703003: SetManagementSettings() is moved to OwnerSettingsServiceChromeOS. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Failing test fixed. Created 6 years 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
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/settings/device_settings_service.h" 5 #include "chrome/browser/chromeos/settings/device_settings_service.h"
6 6
7 #include "base/basictypes.h" 7 #include "base/basictypes.h"
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/bind_helpers.h" 9 #include "base/bind_helpers.h"
10 #include "base/compiler_specific.h" 10 #include "base/compiler_specific.h"
11 #include "base/time/time.h" 11 #include "base/time/time.h"
12 #include "chrome/browser/chromeos/ownership/owner_settings_service_chromeos.h" 12 #include "chrome/browser/chromeos/ownership/owner_settings_service_chromeos.h"
13 #include "chrome/browser/chromeos/ownership/owner_settings_service_chromeos.h"
14 #include "chrome/browser/chromeos/ownership/owner_settings_service_chromeos_fact ory.h"
13 #include "chrome/browser/chromeos/ownership/owner_settings_service_chromeos_fact ory.h" 15 #include "chrome/browser/chromeos/ownership/owner_settings_service_chromeos_fact ory.h"
14 #include "chrome/browser/chromeos/policy/proto/chrome_device_policy.pb.h" 16 #include "chrome/browser/chromeos/policy/proto/chrome_device_policy.pb.h"
15 #include "chrome/browser/chromeos/settings/device_settings_test_helper.h" 17 #include "chrome/browser/chromeos/settings/device_settings_test_helper.h"
16 #include "chrome/test/base/testing_profile.h" 18 #include "chrome/test/base/testing_profile.h"
17 #include "components/policy/core/common/cloud/cloud_policy_constants.h" 19 #include "components/policy/core/common/cloud/cloud_policy_constants.h"
18 #include "policy/proto/device_management_backend.pb.h" 20 #include "policy/proto/device_management_backend.pb.h"
19 #include "testing/gmock/include/gmock/gmock.h" 21 #include "testing/gmock/include/gmock/gmock.h"
20 #include "testing/gtest/include/gtest/gtest.h" 22 #include "testing/gtest/include/gtest/gtest.h"
21 23
22 namespace em = enterprise_management; 24 namespace em = enterprise_management;
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
135 } 137 }
136 138
137 TEST_F(DeviceSettingsServiceTest, LoadSuccess) { 139 TEST_F(DeviceSettingsServiceTest, LoadSuccess) {
138 ReloadDeviceSettings(); 140 ReloadDeviceSettings();
139 141
140 EXPECT_EQ(DeviceSettingsService::STORE_SUCCESS, 142 EXPECT_EQ(DeviceSettingsService::STORE_SUCCESS,
141 device_settings_service_.status()); 143 device_settings_service_.status());
142 CheckPolicy(); 144 CheckPolicy();
143 } 145 }
144 146
145 TEST_F(DeviceSettingsServiceTest, SetManagementSettingsModeTransition) {
146 ReloadDeviceSettings();
147 EXPECT_EQ(DeviceSettingsService::STORE_SUCCESS,
148 device_settings_service_.status());
149
150 owner_key_util_->SetPrivateKey(device_policy_.GetSigningKey());
151 InitOwner(device_policy_.policy_data().username(), true);
152 FlushDeviceSettings();
153
154 // The initial management mode should be LOCAL_OWNER.
155 EXPECT_EQ(em::PolicyData::LOCAL_OWNER,
156 device_settings_service_.policy_data()->management_mode());
157
158 // LOCAL_OWNER -> CONSUMER_MANAGED: Okay.
159 device_settings_service_.SetManagementSettings(
160 em::PolicyData::CONSUMER_MANAGED,
161 "fake_request_token",
162 "fake_device_id",
163 base::Bind(&DeviceSettingsServiceTest::SetOperationCompleted,
164 base::Unretained(this)));
165 FlushDeviceSettings();
166
167 EXPECT_TRUE(operation_completed_);
168 EXPECT_EQ(DeviceSettingsService::STORE_SUCCESS,
169 device_settings_service_.status());
170 EXPECT_EQ(em::PolicyData::CONSUMER_MANAGED,
171 device_settings_service_.policy_data()->management_mode());
172
173 // CONSUMER_MANAGED -> ENTERPRISE_MANAGED: Invalid.
174 device_settings_service_.SetManagementSettings(
175 em::PolicyData::ENTERPRISE_MANAGED,
176 "fake_request_token",
177 "fake_device_id",
178 base::Bind(&DeviceSettingsServiceTest::SetOperationCompleted,
179 base::Unretained(this)));
180 FlushDeviceSettings();
181
182 EXPECT_TRUE(operation_completed_);
183 EXPECT_EQ(DeviceSettingsService::STORE_POLICY_ERROR,
184 device_settings_service_.status());
185 EXPECT_EQ(em::PolicyData::CONSUMER_MANAGED,
186 device_settings_service_.policy_data()->management_mode());
187
188 // CONSUMER_MANAGED -> LOCAL_OWNER: Okay.
189 device_settings_service_.SetManagementSettings(
190 em::PolicyData::LOCAL_OWNER,
191 "fake_request_token",
192 "fake_device_id",
193 base::Bind(&DeviceSettingsServiceTest::SetOperationCompleted,
194 base::Unretained(this)));
195 FlushDeviceSettings();
196
197 EXPECT_TRUE(operation_completed_);
198 EXPECT_EQ(DeviceSettingsService::STORE_SUCCESS,
199 device_settings_service_.status());
200 EXPECT_EQ(em::PolicyData::LOCAL_OWNER,
201 device_settings_service_.policy_data()->management_mode());
202
203 // LOCAL_OWNER -> ENTERPRISE_MANAGED: Invalid.
204 device_settings_service_.SetManagementSettings(
205 em::PolicyData::ENTERPRISE_MANAGED,
206 "fake_request_token",
207 "fake_device_id",
208 base::Bind(&DeviceSettingsServiceTest::SetOperationCompleted,
209 base::Unretained(this)));
210 FlushDeviceSettings();
211
212 EXPECT_TRUE(operation_completed_);
213 EXPECT_EQ(DeviceSettingsService::STORE_POLICY_ERROR,
214 device_settings_service_.status());
215 EXPECT_EQ(em::PolicyData::LOCAL_OWNER,
216 device_settings_service_.policy_data()->management_mode());
217
218 // Inject a policy data with management mode set to ENTERPRISE_MANAGED.
219 device_policy_.policy_data().set_management_mode(
220 em::PolicyData::ENTERPRISE_MANAGED);
221 device_policy_.Build();
222 device_settings_test_helper_.set_policy_blob(device_policy_.GetBlob());
223 ReloadDeviceSettings();
224 EXPECT_EQ(em::PolicyData::ENTERPRISE_MANAGED,
225 device_settings_service_.policy_data()->management_mode());
226
227 // ENTERPRISE_MANAGED -> LOCAL_OWNER: Invalid.
228 device_settings_service_.SetManagementSettings(
229 em::PolicyData::LOCAL_OWNER,
230 "fake_request_token",
231 "fake_device_id",
232 base::Bind(&DeviceSettingsServiceTest::SetOperationCompleted,
233 base::Unretained(this)));
234 FlushDeviceSettings();
235
236 EXPECT_TRUE(operation_completed_);
237 EXPECT_EQ(DeviceSettingsService::STORE_POLICY_ERROR,
238 device_settings_service_.status());
239 EXPECT_EQ(em::PolicyData::ENTERPRISE_MANAGED,
240 device_settings_service_.policy_data()->management_mode());
241
242 // ENTERPRISE_MANAGED -> CONSUMER_MANAGED: Invalid.
243 device_settings_service_.SetManagementSettings(
244 em::PolicyData::CONSUMER_MANAGED,
245 "fake_request_token",
246 "fake_device_id",
247 base::Bind(&DeviceSettingsServiceTest::SetOperationCompleted,
248 base::Unretained(this)));
249 FlushDeviceSettings();
250
251 EXPECT_TRUE(operation_completed_);
252 EXPECT_EQ(DeviceSettingsService::STORE_POLICY_ERROR,
253 device_settings_service_.status());
254 EXPECT_EQ(em::PolicyData::ENTERPRISE_MANAGED,
255 device_settings_service_.policy_data()->management_mode());
256
257 }
258
259 TEST_F(DeviceSettingsServiceTest, SetManagementSettingsSuccess) {
260 ReloadDeviceSettings();
261 EXPECT_EQ(DeviceSettingsService::STORE_SUCCESS,
262 device_settings_service_.status());
263
264 owner_key_util_->SetPrivateKey(device_policy_.GetSigningKey());
265 InitOwner(device_policy_.policy_data().username(), true);
266 FlushDeviceSettings();
267
268 device_settings_service_.SetManagementSettings(
269 em::PolicyData::CONSUMER_MANAGED,
270 "fake_request_token",
271 "fake_device_id",
272 base::Bind(&DeviceSettingsServiceTest::SetOperationCompleted,
273 base::Unretained(this)));
274 FlushDeviceSettings();
275
276 EXPECT_TRUE(operation_completed_);
277 EXPECT_EQ(DeviceSettingsService::STORE_SUCCESS,
278 device_settings_service_.status());
279 ASSERT_TRUE(device_settings_service_.device_settings());
280
281 // Check that the loaded policy_data contains the expected values.
282 const em::PolicyData* policy_data = device_settings_service_.policy_data();
283 EXPECT_EQ(policy::dm_protocol::kChromeDevicePolicyType,
284 policy_data->policy_type());
285 EXPECT_EQ(device_settings_service_.GetUsername(),
286 policy_data->username());
287 EXPECT_EQ(em::PolicyData::CONSUMER_MANAGED, policy_data->management_mode());
288 EXPECT_EQ("fake_request_token", policy_data->request_token());
289 EXPECT_EQ("fake_device_id", policy_data->device_id());
290 }
291
292 TEST_F(DeviceSettingsServiceTest, StoreFailure) { 147 TEST_F(DeviceSettingsServiceTest, StoreFailure) {
293 owner_key_util_->Clear(); 148 owner_key_util_->Clear();
294 device_settings_test_helper_.set_policy_blob(std::string()); 149 device_settings_test_helper_.set_policy_blob(std::string());
295 ReloadDeviceSettings(); 150 ReloadDeviceSettings();
296 EXPECT_EQ(DeviceSettingsService::STORE_KEY_UNAVAILABLE, 151 EXPECT_EQ(DeviceSettingsService::STORE_KEY_UNAVAILABLE,
297 device_settings_service_.status()); 152 device_settings_service_.status());
298 153
299 device_settings_test_helper_.set_store_result(false); 154 device_settings_test_helper_.set_store_result(false);
300 device_settings_service_.Store( 155 device_settings_service_.Store(
301 device_policy_.GetCopy(), 156 device_policy_.GetCopy(),
(...skipping 294 matching lines...) Expand 10 before | Expand all | Expand 10 after
596 EXPECT_CALL(observer_, OwnershipStatusChanged()).Times(0); 451 EXPECT_CALL(observer_, OwnershipStatusChanged()).Times(0);
597 EXPECT_CALL(observer_, DeviceSettingsUpdated()).Times(1); 452 EXPECT_CALL(observer_, DeviceSettingsUpdated()).Times(1);
598 device_settings_service_.PropertyChangeComplete(true); 453 device_settings_service_.PropertyChangeComplete(true);
599 FlushDeviceSettings(); 454 FlushDeviceSettings();
600 Mock::VerifyAndClearExpectations(&observer_); 455 Mock::VerifyAndClearExpectations(&observer_);
601 456
602 device_settings_service_.RemoveObserver(&observer_); 457 device_settings_service_.RemoveObserver(&observer_);
603 } 458 }
604 459
605 } // namespace chromeos 460 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698