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

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: Cleanup. 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 14 matching lines...) Expand all
37 }; 39 };
38 40
39 } // namespace 41 } // namespace
40 42
41 class DeviceSettingsServiceTest : public DeviceSettingsTestBase { 43 class DeviceSettingsServiceTest : public DeviceSettingsTestBase {
42 public: 44 public:
43 void SetOperationCompleted() { 45 void SetOperationCompleted() {
44 operation_completed_ = true; 46 operation_completed_ = true;
45 } 47 }
46 48
49 void OnManagementSettingsSet(bool success) {
50 management_settings_set_ = success;
51 SetOperationCompleted();
52 }
53
47 void SetOwnershipStatus( 54 void SetOwnershipStatus(
48 DeviceSettingsService::OwnershipStatus ownership_status) { 55 DeviceSettingsService::OwnershipStatus ownership_status) {
49 ownership_status_ = ownership_status; 56 ownership_status_ = ownership_status;
50 } 57 }
51 58
52 void OnIsOwner(bool is_owner) { 59 void OnIsOwner(bool is_owner) {
53 is_owner_ = is_owner; 60 is_owner_ = is_owner;
54 is_owner_set_ = true; 61 is_owner_set_ = true;
55 } 62 }
56 63
57 protected: 64 protected:
58 DeviceSettingsServiceTest() 65 DeviceSettingsServiceTest()
59 : operation_completed_(false), 66 : operation_completed_(false),
67 management_settings_set_(false),
60 is_owner_(true), 68 is_owner_(true),
61 is_owner_set_(false), 69 is_owner_set_(false),
62 ownership_status_(DeviceSettingsService::OWNERSHIP_UNKNOWN) {} 70 ownership_status_(DeviceSettingsService::OWNERSHIP_UNKNOWN) {}
63 71
64 virtual void SetUp() override { 72 virtual void SetUp() override {
65 device_policy_.payload().mutable_device_policy_refresh_rate()-> 73 device_policy_.payload().mutable_device_policy_refresh_rate()->
66 set_device_policy_refresh_rate(120); 74 set_device_policy_refresh_rate(120);
67 DeviceSettingsTestBase::SetUp(); 75 DeviceSettingsTestBase::SetUp();
68 } 76 }
69 77
70 void CheckPolicy() { 78 void CheckPolicy() {
71 ASSERT_TRUE(device_settings_service_.policy_data()); 79 ASSERT_TRUE(device_settings_service_.policy_data());
72 EXPECT_EQ(device_policy_.policy_data().SerializeAsString(), 80 EXPECT_EQ(device_policy_.policy_data().SerializeAsString(),
73 device_settings_service_.policy_data()->SerializeAsString()); 81 device_settings_service_.policy_data()->SerializeAsString());
74 ASSERT_TRUE(device_settings_service_.device_settings()); 82 ASSERT_TRUE(device_settings_service_.device_settings());
75 EXPECT_EQ(device_policy_.payload().SerializeAsString(), 83 EXPECT_EQ(device_policy_.payload().SerializeAsString(),
76 device_settings_service_.device_settings()->SerializeAsString()); 84 device_settings_service_.device_settings()->SerializeAsString());
77 } 85 }
78 86
79 bool operation_completed_; 87 bool operation_completed_;
88 bool management_settings_set_;
80 bool is_owner_; 89 bool is_owner_;
81 bool is_owner_set_; 90 bool is_owner_set_;
82 DeviceSettingsService::OwnershipStatus ownership_status_; 91 DeviceSettingsService::OwnershipStatus ownership_status_;
83 92
84 private: 93 private:
85 DISALLOW_COPY_AND_ASSIGN(DeviceSettingsServiceTest); 94 DISALLOW_COPY_AND_ASSIGN(DeviceSettingsServiceTest);
86 }; 95 };
87 96
88 TEST_F(DeviceSettingsServiceTest, LoadNoKey) { 97 TEST_F(DeviceSettingsServiceTest, LoadNoKey) {
89 owner_key_util_->Clear(); 98 owner_key_util_->Clear();
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
144 153
145 TEST_F(DeviceSettingsServiceTest, SetManagementSettingsModeTransition) { 154 TEST_F(DeviceSettingsServiceTest, SetManagementSettingsModeTransition) {
146 ReloadDeviceSettings(); 155 ReloadDeviceSettings();
147 EXPECT_EQ(DeviceSettingsService::STORE_SUCCESS, 156 EXPECT_EQ(DeviceSettingsService::STORE_SUCCESS,
148 device_settings_service_.status()); 157 device_settings_service_.status());
149 158
150 owner_key_util_->SetPrivateKey(device_policy_.GetSigningKey()); 159 owner_key_util_->SetPrivateKey(device_policy_.GetSigningKey());
151 InitOwner(device_policy_.policy_data().username(), true); 160 InitOwner(device_policy_.policy_data().username(), true);
152 FlushDeviceSettings(); 161 FlushDeviceSettings();
153 162
163 OwnerSettingsServiceChromeOS* service =
164 OwnerSettingsServiceChromeOSFactory::GetForBrowserContext(profile_.get());
165 ASSERT_TRUE(service);
166
154 // The initial management mode should be LOCAL_OWNER. 167 // The initial management mode should be LOCAL_OWNER.
155 EXPECT_EQ(em::PolicyData::LOCAL_OWNER, 168 EXPECT_EQ(em::PolicyData::LOCAL_OWNER,
156 device_settings_service_.policy_data()->management_mode()); 169 device_settings_service_.policy_data()->management_mode());
157 170
171 OwnerSettingsServiceChromeOS::ManagementSettingsSetRequest
172 management_settings;
173 management_settings.management_mode = em::PolicyData::CONSUMER_MANAGED;
174 management_settings.request_token = "fake_request_token";
175 management_settings.device_id = "fake_device_id";
176 management_settings.callback =
177 base::Bind(&DeviceSettingsServiceTest::OnManagementSettingsSet,
178 base::Unretained(this));
Mattias Nissler (ping if slow) 2014/12/01 15:25:41 It seems like these tests should rather migrate ov
ygorshenin1 2014/12/01 15:59:09 Good point, thanks!
179
158 // LOCAL_OWNER -> CONSUMER_MANAGED: Okay. 180 // LOCAL_OWNER -> CONSUMER_MANAGED: Okay.
159 device_settings_service_.SetManagementSettings( 181 service->SetManagementSettings(management_settings);
160 em::PolicyData::CONSUMER_MANAGED,
161 "fake_request_token",
162 "fake_device_id",
163 base::Bind(&DeviceSettingsServiceTest::SetOperationCompleted,
164 base::Unretained(this)));
165 FlushDeviceSettings(); 182 FlushDeviceSettings();
166 183
167 EXPECT_TRUE(operation_completed_); 184 EXPECT_TRUE(operation_completed_);
168 EXPECT_EQ(DeviceSettingsService::STORE_SUCCESS, 185 EXPECT_TRUE(management_settings_set_);
169 device_settings_service_.status());
170 EXPECT_EQ(em::PolicyData::CONSUMER_MANAGED, 186 EXPECT_EQ(em::PolicyData::CONSUMER_MANAGED,
171 device_settings_service_.policy_data()->management_mode()); 187 device_settings_service_.policy_data()->management_mode());
172 188
173 // CONSUMER_MANAGED -> ENTERPRISE_MANAGED: Invalid. 189 // CONSUMER_MANAGED -> ENTERPRISE_MANAGED: Invalid.
174 device_settings_service_.SetManagementSettings( 190 management_settings.management_mode = em::PolicyData::ENTERPRISE_MANAGED;
175 em::PolicyData::ENTERPRISE_MANAGED, 191 service->SetManagementSettings(management_settings);
176 "fake_request_token",
177 "fake_device_id",
178 base::Bind(&DeviceSettingsServiceTest::SetOperationCompleted,
179 base::Unretained(this)));
180 FlushDeviceSettings(); 192 FlushDeviceSettings();
181 193
182 EXPECT_TRUE(operation_completed_); 194 EXPECT_TRUE(operation_completed_);
183 EXPECT_EQ(DeviceSettingsService::STORE_POLICY_ERROR, 195 EXPECT_FALSE(management_settings_set_);
184 device_settings_service_.status());
185 EXPECT_EQ(em::PolicyData::CONSUMER_MANAGED, 196 EXPECT_EQ(em::PolicyData::CONSUMER_MANAGED,
186 device_settings_service_.policy_data()->management_mode()); 197 device_settings_service_.policy_data()->management_mode());
187 198
188 // CONSUMER_MANAGED -> LOCAL_OWNER: Okay. 199 // CONSUMER_MANAGED -> LOCAL_OWNER: Okay.
189 device_settings_service_.SetManagementSettings( 200 management_settings.management_mode = em::PolicyData::LOCAL_OWNER;
190 em::PolicyData::LOCAL_OWNER, 201 service->SetManagementSettings(management_settings);
191 "fake_request_token",
192 "fake_device_id",
193 base::Bind(&DeviceSettingsServiceTest::SetOperationCompleted,
194 base::Unretained(this)));
195 FlushDeviceSettings(); 202 FlushDeviceSettings();
196 203
197 EXPECT_TRUE(operation_completed_); 204 EXPECT_TRUE(operation_completed_);
198 EXPECT_EQ(DeviceSettingsService::STORE_SUCCESS, 205 EXPECT_TRUE(management_settings_set_);
199 device_settings_service_.status());
200 EXPECT_EQ(em::PolicyData::LOCAL_OWNER, 206 EXPECT_EQ(em::PolicyData::LOCAL_OWNER,
201 device_settings_service_.policy_data()->management_mode()); 207 device_settings_service_.policy_data()->management_mode());
202 208
203 // LOCAL_OWNER -> ENTERPRISE_MANAGED: Invalid. 209 // LOCAL_OWNER -> ENTERPRISE_MANAGED: Invalid.
204 device_settings_service_.SetManagementSettings( 210 management_settings.management_mode = em::PolicyData::ENTERPRISE_MANAGED;
205 em::PolicyData::ENTERPRISE_MANAGED, 211 service->SetManagementSettings(management_settings);
206 "fake_request_token",
207 "fake_device_id",
208 base::Bind(&DeviceSettingsServiceTest::SetOperationCompleted,
209 base::Unretained(this)));
210 FlushDeviceSettings(); 212 FlushDeviceSettings();
211 213
212 EXPECT_TRUE(operation_completed_); 214 EXPECT_TRUE(operation_completed_);
213 EXPECT_EQ(DeviceSettingsService::STORE_POLICY_ERROR, 215 EXPECT_FALSE(management_settings_set_);
214 device_settings_service_.status());
215 EXPECT_EQ(em::PolicyData::LOCAL_OWNER, 216 EXPECT_EQ(em::PolicyData::LOCAL_OWNER,
216 device_settings_service_.policy_data()->management_mode()); 217 device_settings_service_.policy_data()->management_mode());
217 218
218 // Inject a policy data with management mode set to ENTERPRISE_MANAGED. 219 // Inject a policy data with management mode set to ENTERPRISE_MANAGED.
219 device_policy_.policy_data().set_management_mode( 220 device_policy_.policy_data().set_management_mode(
220 em::PolicyData::ENTERPRISE_MANAGED); 221 em::PolicyData::ENTERPRISE_MANAGED);
221 device_policy_.Build(); 222 device_policy_.Build();
222 device_settings_test_helper_.set_policy_blob(device_policy_.GetBlob()); 223 device_settings_test_helper_.set_policy_blob(device_policy_.GetBlob());
223 ReloadDeviceSettings(); 224 ReloadDeviceSettings();
224 EXPECT_EQ(em::PolicyData::ENTERPRISE_MANAGED, 225 EXPECT_EQ(em::PolicyData::ENTERPRISE_MANAGED,
225 device_settings_service_.policy_data()->management_mode()); 226 device_settings_service_.policy_data()->management_mode());
226 227
227 // ENTERPRISE_MANAGED -> LOCAL_OWNER: Invalid. 228 // ENTERPRISE_MANAGED -> LOCAL_OWNER: Invalid.
228 device_settings_service_.SetManagementSettings( 229 management_settings.management_mode = em::PolicyData::LOCAL_OWNER;
229 em::PolicyData::LOCAL_OWNER, 230 service->SetManagementSettings(management_settings);
230 "fake_request_token",
231 "fake_device_id",
232 base::Bind(&DeviceSettingsServiceTest::SetOperationCompleted,
233 base::Unretained(this)));
234 FlushDeviceSettings(); 231 FlushDeviceSettings();
235 232
236 EXPECT_TRUE(operation_completed_); 233 EXPECT_TRUE(operation_completed_);
237 EXPECT_EQ(DeviceSettingsService::STORE_POLICY_ERROR, 234 EXPECT_FALSE(management_settings_set_);
238 device_settings_service_.status());
239 EXPECT_EQ(em::PolicyData::ENTERPRISE_MANAGED, 235 EXPECT_EQ(em::PolicyData::ENTERPRISE_MANAGED,
240 device_settings_service_.policy_data()->management_mode()); 236 device_settings_service_.policy_data()->management_mode());
241 237
242 // ENTERPRISE_MANAGED -> CONSUMER_MANAGED: Invalid. 238 // ENTERPRISE_MANAGED -> CONSUMER_MANAGED: Invalid.
243 device_settings_service_.SetManagementSettings( 239 management_settings.management_mode = em::PolicyData::CONSUMER_MANAGED;
244 em::PolicyData::CONSUMER_MANAGED, 240 service->SetManagementSettings(management_settings);
245 "fake_request_token",
246 "fake_device_id",
247 base::Bind(&DeviceSettingsServiceTest::SetOperationCompleted,
248 base::Unretained(this)));
249 FlushDeviceSettings(); 241 FlushDeviceSettings();
250 242
251 EXPECT_TRUE(operation_completed_); 243 EXPECT_TRUE(operation_completed_);
252 EXPECT_EQ(DeviceSettingsService::STORE_POLICY_ERROR, 244 EXPECT_FALSE(management_settings_set_);
253 device_settings_service_.status());
254 EXPECT_EQ(em::PolicyData::ENTERPRISE_MANAGED, 245 EXPECT_EQ(em::PolicyData::ENTERPRISE_MANAGED,
255 device_settings_service_.policy_data()->management_mode()); 246 device_settings_service_.policy_data()->management_mode());
256
257 } 247 }
258 248
259 TEST_F(DeviceSettingsServiceTest, SetManagementSettingsSuccess) { 249 TEST_F(DeviceSettingsServiceTest, SetManagementSettingsSuccess) {
260 ReloadDeviceSettings(); 250 ReloadDeviceSettings();
261 EXPECT_EQ(DeviceSettingsService::STORE_SUCCESS, 251 EXPECT_EQ(DeviceSettingsService::STORE_SUCCESS,
262 device_settings_service_.status()); 252 device_settings_service_.status());
263 253
264 owner_key_util_->SetPrivateKey(device_policy_.GetSigningKey()); 254 owner_key_util_->SetPrivateKey(device_policy_.GetSigningKey());
265 InitOwner(device_policy_.policy_data().username(), true); 255 InitOwner(device_policy_.policy_data().username(), true);
266 FlushDeviceSettings(); 256 FlushDeviceSettings();
267 257
268 device_settings_service_.SetManagementSettings( 258 OwnerSettingsServiceChromeOS* service =
269 em::PolicyData::CONSUMER_MANAGED, 259 OwnerSettingsServiceChromeOSFactory::GetForBrowserContext(profile_.get());
270 "fake_request_token", 260 ASSERT_TRUE(service);
271 "fake_device_id", 261 OwnerSettingsServiceChromeOS::ManagementSettingsSetRequest request;
272 base::Bind(&DeviceSettingsServiceTest::SetOperationCompleted, 262 request.management_mode = em::PolicyData::CONSUMER_MANAGED;
273 base::Unretained(this))); 263 request.request_token = "fake_request_token";
264 request.device_id = "fake_device_id";
265 request.callback =
266 base::Bind(&DeviceSettingsServiceTest::OnManagementSettingsSet,
267 base::Unretained(this));
268 service->SetManagementSettings(request);
274 FlushDeviceSettings(); 269 FlushDeviceSettings();
275 270
276 EXPECT_TRUE(operation_completed_); 271 EXPECT_TRUE(operation_completed_);
277 EXPECT_EQ(DeviceSettingsService::STORE_SUCCESS, 272 EXPECT_EQ(DeviceSettingsService::STORE_SUCCESS,
278 device_settings_service_.status()); 273 device_settings_service_.status());
279 ASSERT_TRUE(device_settings_service_.device_settings()); 274 ASSERT_TRUE(device_settings_service_.device_settings());
280 275
281 // Check that the loaded policy_data contains the expected values. 276 // Check that the loaded policy_data contains the expected values.
282 const em::PolicyData* policy_data = device_settings_service_.policy_data(); 277 const em::PolicyData* policy_data = device_settings_service_.policy_data();
283 EXPECT_EQ(policy::dm_protocol::kChromeDevicePolicyType, 278 EXPECT_EQ(policy::dm_protocol::kChromeDevicePolicyType,
(...skipping 312 matching lines...) Expand 10 before | Expand all | Expand 10 after
596 EXPECT_CALL(observer_, OwnershipStatusChanged()).Times(0); 591 EXPECT_CALL(observer_, OwnershipStatusChanged()).Times(0);
597 EXPECT_CALL(observer_, DeviceSettingsUpdated()).Times(1); 592 EXPECT_CALL(observer_, DeviceSettingsUpdated()).Times(1);
598 device_settings_service_.PropertyChangeComplete(true); 593 device_settings_service_.PropertyChangeComplete(true);
599 FlushDeviceSettings(); 594 FlushDeviceSettings();
600 Mock::VerifyAndClearExpectations(&observer_); 595 Mock::VerifyAndClearExpectations(&observer_);
601 596
602 device_settings_service_.RemoveObserver(&observer_); 597 device_settings_service_.RemoveObserver(&observer_);
603 } 598 }
604 599
605 } // namespace chromeos 600 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698