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

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

Issue 14927015: Translate device-local account IDs to user IDs (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix forward declaration. Created 7 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 (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_local_account_policy_service.h" 5 #include "chrome/browser/chromeos/policy/device_local_account_policy_service.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/bind_helpers.h" 8 #include "base/bind_helpers.h"
9 #include "base/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "chrome/browser/chromeos/policy/device_local_account.h"
10 #include "chrome/browser/chromeos/policy/device_local_account_policy_provider.h" 11 #include "chrome/browser/chromeos/policy/device_local_account_policy_provider.h"
12 #include "chrome/browser/chromeos/settings/cros_settings.h"
13 #include "chrome/browser/chromeos/settings/device_settings_service.h"
11 #include "chrome/browser/chromeos/settings/device_settings_test_helper.h" 14 #include "chrome/browser/chromeos/settings/device_settings_test_helper.h"
12 #include "chrome/browser/policy/cloud/cloud_policy_client.h" 15 #include "chrome/browser/policy/cloud/cloud_policy_client.h"
13 #include "chrome/browser/policy/cloud/cloud_policy_constants.h" 16 #include "chrome/browser/policy/cloud/cloud_policy_constants.h"
14 #include "chrome/browser/policy/cloud/cloud_policy_service.h" 17 #include "chrome/browser/policy/cloud/cloud_policy_service.h"
15 #include "chrome/browser/policy/cloud/mock_device_management_service.h" 18 #include "chrome/browser/policy/cloud/mock_device_management_service.h"
16 #include "chrome/browser/policy/cloud/policy_builder.h" 19 #include "chrome/browser/policy/cloud/policy_builder.h"
17 #include "chrome/browser/policy/mock_configuration_policy_provider.h" 20 #include "chrome/browser/policy/mock_configuration_policy_provider.h"
18 #include "chrome/browser/policy/proto/chromeos/chrome_device_policy.pb.h" 21 #include "chrome/browser/policy/proto/chromeos/chrome_device_policy.pb.h"
19 #include "chromeos/dbus/power_policy_controller.h" 22 #include "chromeos/dbus/power_policy_controller.h"
20 #include "policy/policy_constants.h" 23 #include "policy/policy_constants.h"
(...skipping 13 matching lines...) Expand all
34 : public DeviceLocalAccountPolicyService::Observer { 37 : public DeviceLocalAccountPolicyService::Observer {
35 public: 38 public:
36 MOCK_METHOD1(OnPolicyUpdated, void(const std::string&)); 39 MOCK_METHOD1(OnPolicyUpdated, void(const std::string&));
37 MOCK_METHOD0(OnDeviceLocalAccountsChanged, void(void)); 40 MOCK_METHOD0(OnDeviceLocalAccountsChanged, void(void));
38 }; 41 };
39 42
40 class DeviceLocalAccountPolicyServiceTest 43 class DeviceLocalAccountPolicyServiceTest
41 : public chromeos::DeviceSettingsTestBase { 44 : public chromeos::DeviceSettingsTestBase {
42 public: 45 public:
43 DeviceLocalAccountPolicyServiceTest() 46 DeviceLocalAccountPolicyServiceTest()
44 : service_(&device_settings_test_helper_, &device_settings_service_) {} 47 : public_session_user_id_(GenerateDeviceLocalAccountUserId(
48 PolicyBuilder::kFakeUsername,
49 DeviceLocalAccount::TYPE_PUBLIC_SESSION)),
50 cros_settings_(&device_settings_service_),
51 service_(&device_settings_test_helper_,
52 &device_settings_service_,
53 &cros_settings_) {}
45 54
46 virtual void SetUp() OVERRIDE { 55 virtual void SetUp() OVERRIDE {
47 DeviceSettingsTestBase::SetUp(); 56 DeviceSettingsTestBase::SetUp();
48 57
49 // Values implicitly enforced for public accounts. 58 // Values implicitly enforced for public accounts.
50 expected_policy_map_.Set(key::kLidCloseAction, 59 expected_policy_map_.Set(key::kLidCloseAction,
51 POLICY_LEVEL_MANDATORY, 60 POLICY_LEVEL_MANDATORY,
52 POLICY_SCOPE_USER, 61 POLICY_SCOPE_USER,
53 base::Value::CreateIntegerValue( 62 base::Value::CreateIntegerValue(
54 chromeos::PowerPolicyController:: 63 chromeos::PowerPolicyController::
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
100 109
101 void InstallDevicePolicy() { 110 void InstallDevicePolicy() {
102 EXPECT_CALL(service_observer_, OnDeviceLocalAccountsChanged()); 111 EXPECT_CALL(service_observer_, OnDeviceLocalAccountsChanged());
103 device_settings_test_helper_.set_policy_blob(device_policy_.GetBlob()); 112 device_settings_test_helper_.set_policy_blob(device_policy_.GetBlob());
104 ReloadDeviceSettings(); 113 ReloadDeviceSettings();
105 Mock::VerifyAndClearExpectations(&service_observer_); 114 Mock::VerifyAndClearExpectations(&service_observer_);
106 } 115 }
107 116
108 MOCK_METHOD1(OnRefreshDone, void(bool)); 117 MOCK_METHOD1(OnRefreshDone, void(bool));
109 118
119 const std::string public_session_user_id_;
120
110 PolicyMap expected_policy_map_; 121 PolicyMap expected_policy_map_;
111 UserPolicyBuilder device_local_account_policy_; 122 UserPolicyBuilder device_local_account_policy_;
123 chromeos::CrosSettings cros_settings_;
112 MockDeviceLocalAccountPolicyServiceObserver service_observer_; 124 MockDeviceLocalAccountPolicyServiceObserver service_observer_;
113 MockDeviceManagementService mock_device_management_service_; 125 MockDeviceManagementService mock_device_management_service_;
114 DeviceLocalAccountPolicyService service_; 126 DeviceLocalAccountPolicyService service_;
115 127
116 private: 128 private:
117 DISALLOW_COPY_AND_ASSIGN(DeviceLocalAccountPolicyServiceTest); 129 DISALLOW_COPY_AND_ASSIGN(DeviceLocalAccountPolicyServiceTest);
118 }; 130 };
119 131
120 TEST_F(DeviceLocalAccountPolicyServiceTest, NoAccounts) { 132 TEST_F(DeviceLocalAccountPolicyServiceTest, NoAccounts) {
121 EXPECT_FALSE(service_.GetBrokerForAccount(PolicyBuilder::kFakeUsername)); 133 EXPECT_FALSE(service_.GetBrokerForUser(public_session_user_id_));
122 } 134 }
123 135
124 TEST_F(DeviceLocalAccountPolicyServiceTest, GetBroker) { 136 TEST_F(DeviceLocalAccountPolicyServiceTest, GetBroker) {
125 InstallDevicePolicy(); 137 InstallDevicePolicy();
126 138
127 DeviceLocalAccountPolicyBroker* broker = 139 DeviceLocalAccountPolicyBroker* broker =
128 service_.GetBrokerForAccount(PolicyBuilder::kFakeUsername); 140 service_.GetBrokerForUser(public_session_user_id_);
129 ASSERT_TRUE(broker); 141 ASSERT_TRUE(broker);
130 EXPECT_EQ(PolicyBuilder::kFakeUsername, broker->account_id()); 142 EXPECT_EQ(public_session_user_id_, broker->user_id());
131 ASSERT_TRUE(broker->core()->store()); 143 ASSERT_TRUE(broker->core()->store());
132 EXPECT_EQ(CloudPolicyStore::STATUS_OK, broker->core()->store()->status()); 144 EXPECT_EQ(CloudPolicyStore::STATUS_OK, broker->core()->store()->status());
133 EXPECT_FALSE(broker->core()->client()); 145 EXPECT_FALSE(broker->core()->client());
134 EXPECT_TRUE(broker->core()->store()->policy_map().empty()); 146 EXPECT_TRUE(broker->core()->store()->policy_map().empty());
135 } 147 }
136 148
137 TEST_F(DeviceLocalAccountPolicyServiceTest, LoadNoPolicy) { 149 TEST_F(DeviceLocalAccountPolicyServiceTest, LoadNoPolicy) {
138 InstallDevicePolicy(); 150 InstallDevicePolicy();
139 151
140 EXPECT_CALL(service_observer_, OnPolicyUpdated(PolicyBuilder::kFakeUsername)); 152 EXPECT_CALL(service_observer_, OnPolicyUpdated(public_session_user_id_));
141 DeviceLocalAccountPolicyBroker* broker = 153 DeviceLocalAccountPolicyBroker* broker =
142 service_.GetBrokerForAccount(PolicyBuilder::kFakeUsername); 154 service_.GetBrokerForUser(public_session_user_id_);
143 ASSERT_TRUE(broker); 155 ASSERT_TRUE(broker);
144 FlushDeviceSettings(); 156 FlushDeviceSettings();
145 Mock::VerifyAndClearExpectations(&service_observer_); 157 Mock::VerifyAndClearExpectations(&service_observer_);
146 158
147 ASSERT_TRUE(broker->core()->store()); 159 ASSERT_TRUE(broker->core()->store());
148 EXPECT_EQ(CloudPolicyStore::STATUS_LOAD_ERROR, 160 EXPECT_EQ(CloudPolicyStore::STATUS_LOAD_ERROR,
149 broker->core()->store()->status()); 161 broker->core()->store()->status());
150 EXPECT_TRUE(broker->core()->store()->policy_map().empty()); 162 EXPECT_TRUE(broker->core()->store()->policy_map().empty());
151 EXPECT_FALSE(service_.IsPolicyAvailableForAccount( 163 EXPECT_FALSE(service_.IsPolicyAvailableForUser(public_session_user_id_));
152 PolicyBuilder::kFakeUsername));
153 } 164 }
154 165
155 TEST_F(DeviceLocalAccountPolicyServiceTest, LoadValidationFailure) { 166 TEST_F(DeviceLocalAccountPolicyServiceTest, LoadValidationFailure) {
156 device_local_account_policy_.policy_data().set_policy_type( 167 device_local_account_policy_.policy_data().set_policy_type(
157 dm_protocol::kChromeUserPolicyType); 168 dm_protocol::kChromeUserPolicyType);
158 device_local_account_policy_.Build(); 169 device_local_account_policy_.Build();
159 device_settings_test_helper_.set_device_local_account_policy_blob( 170 device_settings_test_helper_.set_device_local_account_policy_blob(
160 PolicyBuilder::kFakeUsername, device_local_account_policy_.GetBlob()); 171 PolicyBuilder::kFakeUsername, device_local_account_policy_.GetBlob());
161 InstallDevicePolicy(); 172 InstallDevicePolicy();
162 173
163 EXPECT_CALL(service_observer_, OnPolicyUpdated(PolicyBuilder::kFakeUsername)); 174 EXPECT_CALL(service_observer_, OnPolicyUpdated(public_session_user_id_));
164 DeviceLocalAccountPolicyBroker* broker = 175 DeviceLocalAccountPolicyBroker* broker =
165 service_.GetBrokerForAccount(PolicyBuilder::kFakeUsername); 176 service_.GetBrokerForUser(public_session_user_id_);
166 ASSERT_TRUE(broker); 177 ASSERT_TRUE(broker);
167 FlushDeviceSettings(); 178 FlushDeviceSettings();
168 Mock::VerifyAndClearExpectations(&service_observer_); 179 Mock::VerifyAndClearExpectations(&service_observer_);
169 180
170 ASSERT_TRUE(broker->core()->store()); 181 ASSERT_TRUE(broker->core()->store());
171 EXPECT_EQ(CloudPolicyStore::STATUS_VALIDATION_ERROR, 182 EXPECT_EQ(CloudPolicyStore::STATUS_VALIDATION_ERROR,
172 broker->core()->store()->status()); 183 broker->core()->store()->status());
173 EXPECT_TRUE(broker->core()->store()->policy_map().empty()); 184 EXPECT_TRUE(broker->core()->store()->policy_map().empty());
174 EXPECT_FALSE(service_.IsPolicyAvailableForAccount( 185 EXPECT_FALSE(service_.IsPolicyAvailableForUser(public_session_user_id_));
175 PolicyBuilder::kFakeUsername));
176 } 186 }
177 187
178 TEST_F(DeviceLocalAccountPolicyServiceTest, LoadPolicy) { 188 TEST_F(DeviceLocalAccountPolicyServiceTest, LoadPolicy) {
179 device_settings_test_helper_.set_device_local_account_policy_blob( 189 device_settings_test_helper_.set_device_local_account_policy_blob(
180 PolicyBuilder::kFakeUsername, device_local_account_policy_.GetBlob()); 190 PolicyBuilder::kFakeUsername, device_local_account_policy_.GetBlob());
181 InstallDevicePolicy(); 191 InstallDevicePolicy();
182 192
183 EXPECT_CALL(service_observer_, OnPolicyUpdated(PolicyBuilder::kFakeUsername)); 193 EXPECT_CALL(service_observer_, OnPolicyUpdated(public_session_user_id_));
184 DeviceLocalAccountPolicyBroker* broker = 194 DeviceLocalAccountPolicyBroker* broker =
185 service_.GetBrokerForAccount(PolicyBuilder::kFakeUsername); 195 service_.GetBrokerForUser(public_session_user_id_);
186 ASSERT_TRUE(broker); 196 ASSERT_TRUE(broker);
187 FlushDeviceSettings(); 197 FlushDeviceSettings();
188 Mock::VerifyAndClearExpectations(&service_observer_); 198 Mock::VerifyAndClearExpectations(&service_observer_);
189 199
190 ASSERT_TRUE(broker->core()->store()); 200 ASSERT_TRUE(broker->core()->store());
191 EXPECT_EQ(CloudPolicyStore::STATUS_OK, 201 EXPECT_EQ(CloudPolicyStore::STATUS_OK,
192 broker->core()->store()->status()); 202 broker->core()->store()->status());
193 ASSERT_TRUE(broker->core()->store()->policy()); 203 ASSERT_TRUE(broker->core()->store()->policy());
194 EXPECT_EQ(device_local_account_policy_.policy_data().SerializeAsString(), 204 EXPECT_EQ(device_local_account_policy_.policy_data().SerializeAsString(),
195 broker->core()->store()->policy()->SerializeAsString()); 205 broker->core()->store()->policy()->SerializeAsString());
196 EXPECT_TRUE(expected_policy_map_.Equals( 206 EXPECT_TRUE(expected_policy_map_.Equals(
197 broker->core()->store()->policy_map())); 207 broker->core()->store()->policy_map()));
198 EXPECT_TRUE(service_.IsPolicyAvailableForAccount( 208 EXPECT_TRUE(service_.IsPolicyAvailableForUser(public_session_user_id_));
199 PolicyBuilder::kFakeUsername));
200 } 209 }
201 210
202 TEST_F(DeviceLocalAccountPolicyServiceTest, StoreValidationFailure) { 211 TEST_F(DeviceLocalAccountPolicyServiceTest, StoreValidationFailure) {
203 device_local_account_policy_.policy_data().set_policy_type( 212 device_local_account_policy_.policy_data().set_policy_type(
204 dm_protocol::kChromeUserPolicyType); 213 dm_protocol::kChromeUserPolicyType);
205 device_local_account_policy_.Build(); 214 device_local_account_policy_.Build();
206 InstallDevicePolicy(); 215 InstallDevicePolicy();
207 216
208 EXPECT_CALL(service_observer_, OnPolicyUpdated(PolicyBuilder::kFakeUsername)); 217 EXPECT_CALL(service_observer_, OnPolicyUpdated(public_session_user_id_));
209 DeviceLocalAccountPolicyBroker* broker = 218 DeviceLocalAccountPolicyBroker* broker =
210 service_.GetBrokerForAccount(PolicyBuilder::kFakeUsername); 219 service_.GetBrokerForUser(public_session_user_id_);
211 ASSERT_TRUE(broker); 220 ASSERT_TRUE(broker);
212 ASSERT_TRUE(broker->core()->store()); 221 ASSERT_TRUE(broker->core()->store());
213 broker->core()->store()->Store(device_local_account_policy_.policy()); 222 broker->core()->store()->Store(device_local_account_policy_.policy());
214 FlushDeviceSettings(); 223 FlushDeviceSettings();
215 Mock::VerifyAndClearExpectations(&service_observer_); 224 Mock::VerifyAndClearExpectations(&service_observer_);
216 225
217 ASSERT_TRUE(broker->core()->store()); 226 ASSERT_TRUE(broker->core()->store());
218 EXPECT_EQ(CloudPolicyStore::STATUS_VALIDATION_ERROR, 227 EXPECT_EQ(CloudPolicyStore::STATUS_VALIDATION_ERROR,
219 broker->core()->store()->status()); 228 broker->core()->store()->status());
220 EXPECT_EQ(CloudPolicyValidatorBase::VALIDATION_WRONG_POLICY_TYPE, 229 EXPECT_EQ(CloudPolicyValidatorBase::VALIDATION_WRONG_POLICY_TYPE,
221 broker->core()->store()->validation_status()); 230 broker->core()->store()->validation_status());
222 EXPECT_FALSE(service_.IsPolicyAvailableForAccount( 231 EXPECT_FALSE(service_.IsPolicyAvailableForUser(public_session_user_id_));
223 PolicyBuilder::kFakeUsername));
224 } 232 }
225 233
226 TEST_F(DeviceLocalAccountPolicyServiceTest, StorePolicy) { 234 TEST_F(DeviceLocalAccountPolicyServiceTest, StorePolicy) {
227 InstallDevicePolicy(); 235 InstallDevicePolicy();
228 236
229 EXPECT_CALL(service_observer_, OnPolicyUpdated(PolicyBuilder::kFakeUsername)); 237 EXPECT_CALL(service_observer_, OnPolicyUpdated(public_session_user_id_));
230 DeviceLocalAccountPolicyBroker* broker = 238 DeviceLocalAccountPolicyBroker* broker =
231 service_.GetBrokerForAccount(PolicyBuilder::kFakeUsername); 239 service_.GetBrokerForUser(public_session_user_id_);
232 ASSERT_TRUE(broker); 240 ASSERT_TRUE(broker);
233 ASSERT_TRUE(broker->core()->store()); 241 ASSERT_TRUE(broker->core()->store());
234 broker->core()->store()->Store(device_local_account_policy_.policy()); 242 broker->core()->store()->Store(device_local_account_policy_.policy());
235 FlushDeviceSettings(); 243 FlushDeviceSettings();
236 Mock::VerifyAndClearExpectations(&service_observer_); 244 Mock::VerifyAndClearExpectations(&service_observer_);
237 245
238 EXPECT_EQ(device_local_account_policy_.GetBlob(), 246 EXPECT_EQ(device_local_account_policy_.GetBlob(),
239 device_settings_test_helper_.device_local_account_policy_blob( 247 device_settings_test_helper_.device_local_account_policy_blob(
240 PolicyBuilder::kFakeUsername)); 248 PolicyBuilder::kFakeUsername));
241 EXPECT_TRUE(service_.IsPolicyAvailableForAccount( 249 EXPECT_TRUE(service_.IsPolicyAvailableForUser(public_session_user_id_));
242 PolicyBuilder::kFakeUsername));
243 } 250 }
244 251
245 TEST_F(DeviceLocalAccountPolicyServiceTest, DevicePolicyChange) { 252 TEST_F(DeviceLocalAccountPolicyServiceTest, DevicePolicyChange) {
246 device_settings_test_helper_.set_device_local_account_policy_blob( 253 device_settings_test_helper_.set_device_local_account_policy_blob(
247 PolicyBuilder::kFakeUsername, device_local_account_policy_.GetBlob()); 254 PolicyBuilder::kFakeUsername, device_local_account_policy_.GetBlob());
248 InstallDevicePolicy(); 255 InstallDevicePolicy();
249 256
250 EXPECT_CALL(service_observer_, OnDeviceLocalAccountsChanged()); 257 EXPECT_CALL(service_observer_, OnDeviceLocalAccountsChanged());
251 device_policy_.payload().mutable_device_local_accounts()->clear_account(); 258 device_policy_.payload().mutable_device_local_accounts()->clear_account();
252 device_policy_.Build(); 259 device_policy_.Build();
253 device_settings_test_helper_.set_policy_blob(device_policy_.GetBlob()); 260 device_settings_test_helper_.set_policy_blob(device_policy_.GetBlob());
254 device_settings_service_.PropertyChangeComplete(true); 261 device_settings_service_.PropertyChangeComplete(true);
255 FlushDeviceSettings(); 262 FlushDeviceSettings();
256 EXPECT_FALSE(service_.GetBrokerForAccount(PolicyBuilder::kFakeUsername)); 263 EXPECT_FALSE(service_.GetBrokerForUser(public_session_user_id_));
257 Mock::VerifyAndClearExpectations(&service_observer_); 264 Mock::VerifyAndClearExpectations(&service_observer_);
258 } 265 }
259 266
260 TEST_F(DeviceLocalAccountPolicyServiceTest, DuplicateAccounts) { 267 TEST_F(DeviceLocalAccountPolicyServiceTest, DuplicateAccounts) {
261 InstallDevicePolicy(); 268 InstallDevicePolicy();
262 DeviceLocalAccountPolicyBroker* broker = 269 DeviceLocalAccountPolicyBroker* broker =
263 service_.GetBrokerForAccount(PolicyBuilder::kFakeUsername); 270 service_.GetBrokerForUser(public_session_user_id_);
264 ASSERT_TRUE(broker); 271 ASSERT_TRUE(broker);
265 272
266 // Add a second entry with a duplicate account name to device policy. 273 // Add a second entry with a duplicate account name to device policy.
267 em::DeviceLocalAccountInfoProto* account = 274 em::DeviceLocalAccountInfoProto* account =
268 device_policy_.payload().mutable_device_local_accounts()->add_account(); 275 device_policy_.payload().mutable_device_local_accounts()->add_account();
269 account->set_account_id(PolicyBuilder::kFakeUsername); 276 account->set_account_id(PolicyBuilder::kFakeUsername);
270 account->set_type( 277 account->set_type(
271 em::DeviceLocalAccountInfoProto::ACCOUNT_TYPE_PUBLIC_SESSION); 278 em::DeviceLocalAccountInfoProto::ACCOUNT_TYPE_PUBLIC_SESSION);
272 device_policy_.Build(); 279 device_policy_.Build();
273 device_settings_test_helper_.set_device_local_account_policy_blob( 280 device_settings_test_helper_.set_device_local_account_policy_blob(
274 PolicyBuilder::kFakeUsername, device_local_account_policy_.GetBlob()); 281 PolicyBuilder::kFakeUsername, device_local_account_policy_.GetBlob());
275 device_settings_test_helper_.set_policy_blob(device_policy_.GetBlob()); 282 device_settings_test_helper_.set_policy_blob(device_policy_.GetBlob());
276 283
277 EXPECT_CALL(service_observer_, OnDeviceLocalAccountsChanged()); 284 EXPECT_CALL(service_observer_, OnDeviceLocalAccountsChanged());
278 EXPECT_CALL(service_observer_, OnPolicyUpdated(PolicyBuilder::kFakeUsername)); 285 EXPECT_CALL(service_observer_, OnPolicyUpdated(public_session_user_id_));
279 device_settings_service_.PropertyChangeComplete(true); 286 device_settings_service_.PropertyChangeComplete(true);
280 FlushDeviceSettings(); 287 FlushDeviceSettings();
281 Mock::VerifyAndClearExpectations(&service_observer_); 288 Mock::VerifyAndClearExpectations(&service_observer_);
282 289
283 // Make sure the broker is accessible and policy got loaded. 290 // Make sure the broker is accessible and policy got loaded.
284 broker = service_.GetBrokerForAccount(PolicyBuilder::kFakeUsername); 291 broker = service_.GetBrokerForUser(public_session_user_id_);
285 ASSERT_TRUE(broker); 292 ASSERT_TRUE(broker);
286 EXPECT_EQ(PolicyBuilder::kFakeUsername, broker->account_id()); 293 EXPECT_EQ(public_session_user_id_, broker->user_id());
287 EXPECT_TRUE(broker->core()->store()->policy()); 294 EXPECT_TRUE(broker->core()->store()->policy());
288 } 295 }
289 296
290 TEST_F(DeviceLocalAccountPolicyServiceTest, FetchPolicy) { 297 TEST_F(DeviceLocalAccountPolicyServiceTest, FetchPolicy) {
291 device_settings_test_helper_.set_device_local_account_policy_blob( 298 device_settings_test_helper_.set_device_local_account_policy_blob(
292 PolicyBuilder::kFakeUsername, device_local_account_policy_.GetBlob()); 299 PolicyBuilder::kFakeUsername, device_local_account_policy_.GetBlob());
293 InstallDevicePolicy(); 300 InstallDevicePolicy();
294 301
295 DeviceLocalAccountPolicyBroker* broker = 302 DeviceLocalAccountPolicyBroker* broker =
296 service_.GetBrokerForAccount(PolicyBuilder::kFakeUsername); 303 service_.GetBrokerForUser(public_session_user_id_);
297 ASSERT_TRUE(broker); 304 ASSERT_TRUE(broker);
298 305
299 service_.Connect(&mock_device_management_service_); 306 service_.Connect(&mock_device_management_service_);
300 EXPECT_TRUE(broker->core()->client()); 307 EXPECT_TRUE(broker->core()->client());
301 308
302 em::DeviceManagementRequest request; 309 em::DeviceManagementRequest request;
303 em::DeviceManagementResponse response; 310 em::DeviceManagementResponse response;
304 response.mutable_policy_response()->add_response()->CopyFrom( 311 response.mutable_policy_response()->add_response()->CopyFrom(
305 device_local_account_policy_.policy()); 312 device_local_account_policy_.policy());
306 EXPECT_CALL(mock_device_management_service_, 313 EXPECT_CALL(mock_device_management_service_,
307 CreateJob(DeviceManagementRequestJob::TYPE_POLICY_FETCH)) 314 CreateJob(DeviceManagementRequestJob::TYPE_POLICY_FETCH))
308 .WillOnce(mock_device_management_service_.SucceedJob(response)); 315 .WillOnce(mock_device_management_service_.SucceedJob(response));
309 EXPECT_CALL(mock_device_management_service_, 316 EXPECT_CALL(mock_device_management_service_,
310 StartJob(dm_protocol::kValueRequestPolicy, 317 StartJob(dm_protocol::kValueRequestPolicy,
311 std::string(), std::string(), 318 std::string(), std::string(),
312 device_policy_.policy_data().request_token(), 319 device_policy_.policy_data().request_token(),
313 dm_protocol::kValueUserAffiliationManaged, 320 dm_protocol::kValueUserAffiliationManaged,
314 device_policy_.policy_data().device_id(), 321 device_policy_.policy_data().device_id(),
315 _)) 322 _))
316 .WillOnce(SaveArg<6>(&request)); 323 .WillOnce(SaveArg<6>(&request));
317 EXPECT_CALL(service_observer_, OnPolicyUpdated(PolicyBuilder::kFakeUsername)); 324 EXPECT_CALL(service_observer_, OnPolicyUpdated(public_session_user_id_));
318 broker->core()->client()->FetchPolicy(); 325 broker->core()->client()->FetchPolicy();
319 FlushDeviceSettings(); 326 FlushDeviceSettings();
320 Mock::VerifyAndClearExpectations(&service_observer_); 327 Mock::VerifyAndClearExpectations(&service_observer_);
321 Mock::VerifyAndClearExpectations(&mock_device_management_service_); 328 Mock::VerifyAndClearExpectations(&mock_device_management_service_);
322 EXPECT_TRUE(request.has_policy_request()); 329 EXPECT_TRUE(request.has_policy_request());
323 EXPECT_EQ(1, request.policy_request().request_size()); 330 EXPECT_EQ(1, request.policy_request().request_size());
324 EXPECT_EQ(dm_protocol::kChromePublicAccountPolicyType, 331 EXPECT_EQ(dm_protocol::kChromePublicAccountPolicyType,
325 request.policy_request().request(0).policy_type()); 332 request.policy_request().request(0).policy_type());
326 EXPECT_FALSE(request.policy_request().request(0).has_machine_id()); 333 EXPECT_FALSE(request.policy_request().request(0).has_machine_id());
327 EXPECT_EQ(PolicyBuilder::kFakeUsername, 334 EXPECT_EQ(PolicyBuilder::kFakeUsername,
328 request.policy_request().request(0).settings_entity_id()); 335 request.policy_request().request(0).settings_entity_id());
329 336
330 ASSERT_TRUE(broker->core()->store()); 337 ASSERT_TRUE(broker->core()->store());
331 EXPECT_EQ(CloudPolicyStore::STATUS_OK, 338 EXPECT_EQ(CloudPolicyStore::STATUS_OK,
332 broker->core()->store()->status()); 339 broker->core()->store()->status());
333 ASSERT_TRUE(broker->core()->store()->policy()); 340 ASSERT_TRUE(broker->core()->store()->policy());
334 EXPECT_EQ(device_local_account_policy_.policy_data().SerializeAsString(), 341 EXPECT_EQ(device_local_account_policy_.policy_data().SerializeAsString(),
335 broker->core()->store()->policy()->SerializeAsString()); 342 broker->core()->store()->policy()->SerializeAsString());
336 EXPECT_TRUE(expected_policy_map_.Equals( 343 EXPECT_TRUE(expected_policy_map_.Equals(
337 broker->core()->store()->policy_map())); 344 broker->core()->store()->policy_map()));
338 EXPECT_TRUE(service_.IsPolicyAvailableForAccount( 345 EXPECT_TRUE(service_.IsPolicyAvailableForUser(public_session_user_id_));
339 PolicyBuilder::kFakeUsername));
340 346
341 EXPECT_CALL(service_observer_, 347 EXPECT_CALL(service_observer_, OnPolicyUpdated(public_session_user_id_))
342 OnPolicyUpdated(PolicyBuilder::kFakeUsername)).Times(0); 348 .Times(0);
343 service_.Disconnect(); 349 service_.Disconnect();
344 EXPECT_FALSE(broker->core()->client()); 350 EXPECT_FALSE(broker->core()->client());
345 Mock::VerifyAndClearExpectations(&service_observer_); 351 Mock::VerifyAndClearExpectations(&service_observer_);
346 EXPECT_TRUE(service_.IsPolicyAvailableForAccount( 352 EXPECT_TRUE(service_.IsPolicyAvailableForUser(public_session_user_id_));
347 PolicyBuilder::kFakeUsername));
348 } 353 }
349 354
350 TEST_F(DeviceLocalAccountPolicyServiceTest, RefreshPolicy) { 355 TEST_F(DeviceLocalAccountPolicyServiceTest, RefreshPolicy) {
351 device_settings_test_helper_.set_device_local_account_policy_blob( 356 device_settings_test_helper_.set_device_local_account_policy_blob(
352 PolicyBuilder::kFakeUsername, device_local_account_policy_.GetBlob()); 357 PolicyBuilder::kFakeUsername, device_local_account_policy_.GetBlob());
353 InstallDevicePolicy(); 358 InstallDevicePolicy();
354 359
355 DeviceLocalAccountPolicyBroker* broker = 360 DeviceLocalAccountPolicyBroker* broker =
356 service_.GetBrokerForAccount(PolicyBuilder::kFakeUsername); 361 service_.GetBrokerForUser(public_session_user_id_);
357 ASSERT_TRUE(broker); 362 ASSERT_TRUE(broker);
358 363
359 service_.Connect(&mock_device_management_service_); 364 service_.Connect(&mock_device_management_service_);
360 ASSERT_TRUE(broker->core()->service()); 365 ASSERT_TRUE(broker->core()->service());
361 366
362 em::DeviceManagementResponse response; 367 em::DeviceManagementResponse response;
363 response.mutable_policy_response()->add_response()->CopyFrom( 368 response.mutable_policy_response()->add_response()->CopyFrom(
364 device_local_account_policy_.policy()); 369 device_local_account_policy_.policy());
365 EXPECT_CALL(mock_device_management_service_, CreateJob(_)) 370 EXPECT_CALL(mock_device_management_service_, CreateJob(_))
366 .WillOnce(mock_device_management_service_.SucceedJob(response)); 371 .WillOnce(mock_device_management_service_.SucceedJob(response));
367 EXPECT_CALL(mock_device_management_service_, StartJob(_, _, _, _, _, _, _)); 372 EXPECT_CALL(mock_device_management_service_, StartJob(_, _, _, _, _, _, _));
368 EXPECT_CALL(*this, OnRefreshDone(true)).Times(1); 373 EXPECT_CALL(*this, OnRefreshDone(true)).Times(1);
369 EXPECT_CALL(service_observer_, OnPolicyUpdated(PolicyBuilder::kFakeUsername)); 374 EXPECT_CALL(service_observer_, OnPolicyUpdated(public_session_user_id_));
370 broker->core()->service()->RefreshPolicy( 375 broker->core()->service()->RefreshPolicy(
371 base::Bind(&DeviceLocalAccountPolicyServiceTest::OnRefreshDone, 376 base::Bind(&DeviceLocalAccountPolicyServiceTest::OnRefreshDone,
372 base::Unretained(this))); 377 base::Unretained(this)));
373 FlushDeviceSettings(); 378 FlushDeviceSettings();
374 Mock::VerifyAndClearExpectations(&service_observer_); 379 Mock::VerifyAndClearExpectations(&service_observer_);
375 Mock::VerifyAndClearExpectations(this); 380 Mock::VerifyAndClearExpectations(this);
376 Mock::VerifyAndClearExpectations(&mock_device_management_service_); 381 Mock::VerifyAndClearExpectations(&mock_device_management_service_);
377 382
378 ASSERT_TRUE(broker->core()->store()); 383 ASSERT_TRUE(broker->core()->store());
379 EXPECT_EQ(CloudPolicyStore::STATUS_OK, 384 EXPECT_EQ(CloudPolicyStore::STATUS_OK,
380 broker->core()->store()->status()); 385 broker->core()->store()->status());
381 EXPECT_TRUE(expected_policy_map_.Equals( 386 EXPECT_TRUE(expected_policy_map_.Equals(
382 broker->core()->store()->policy_map())); 387 broker->core()->store()->policy_map()));
383 EXPECT_TRUE(service_.IsPolicyAvailableForAccount( 388 EXPECT_TRUE(service_.IsPolicyAvailableForUser(public_session_user_id_));
384 PolicyBuilder::kFakeUsername));
385 } 389 }
386 390
387 class DeviceLocalAccountPolicyProviderTest 391 class DeviceLocalAccountPolicyProviderTest
388 : public DeviceLocalAccountPolicyServiceTest { 392 : public DeviceLocalAccountPolicyServiceTest {
389 protected: 393 protected:
390 DeviceLocalAccountPolicyProviderTest() 394 DeviceLocalAccountPolicyProviderTest()
391 : provider_(PolicyBuilder::kFakeUsername, &service_) {} 395 : provider_(
396 GenerateDeviceLocalAccountUserId(
397 PolicyBuilder::kFakeUsername,
398 DeviceLocalAccount::TYPE_PUBLIC_SESSION),
399 &service_) {}
392 400
393 virtual void SetUp() OVERRIDE { 401 virtual void SetUp() OVERRIDE {
394 DeviceLocalAccountPolicyServiceTest::SetUp(); 402 DeviceLocalAccountPolicyServiceTest::SetUp();
395 provider_.Init(); 403 provider_.Init();
396 provider_.AddObserver(&provider_observer_); 404 provider_.AddObserver(&provider_observer_);
397 405
398 EXPECT_CALL(service_observer_, OnPolicyUpdated(_)).Times(AnyNumber()); 406 EXPECT_CALL(service_observer_, OnPolicyUpdated(_)).Times(AnyNumber());
399 EXPECT_CALL(service_observer_, OnDeviceLocalAccountsChanged()) 407 EXPECT_CALL(service_observer_, OnDeviceLocalAccountsChanged())
400 .Times(AnyNumber()); 408 .Times(AnyNumber());
401 } 409 }
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
453 EXPECT_TRUE(expected_policy_bundle.Equals(provider_.policies())); 461 EXPECT_TRUE(expected_policy_bundle.Equals(provider_.policies()));
454 462
455 // Policy change should be reported. 463 // Policy change should be reported.
456 EXPECT_CALL(provider_observer_, OnUpdatePolicy(&provider_)).Times(AtLeast(1)); 464 EXPECT_CALL(provider_observer_, OnUpdatePolicy(&provider_)).Times(AtLeast(1));
457 device_local_account_policy_.payload().mutable_disablespdy()->set_value( 465 device_local_account_policy_.payload().mutable_disablespdy()->set_value(
458 false); 466 false);
459 device_local_account_policy_.Build(); 467 device_local_account_policy_.Build();
460 device_settings_test_helper_.set_device_local_account_policy_blob( 468 device_settings_test_helper_.set_device_local_account_policy_blob(
461 PolicyBuilder::kFakeUsername, device_local_account_policy_.GetBlob()); 469 PolicyBuilder::kFakeUsername, device_local_account_policy_.GetBlob());
462 DeviceLocalAccountPolicyBroker* broker = 470 DeviceLocalAccountPolicyBroker* broker =
463 service_.GetBrokerForAccount(PolicyBuilder::kFakeUsername); 471 service_.GetBrokerForUser(public_session_user_id_);
464 ASSERT_TRUE(broker); 472 ASSERT_TRUE(broker);
465 broker->core()->store()->Load(); 473 broker->core()->store()->Load();
466 FlushDeviceSettings(); 474 FlushDeviceSettings();
467 Mock::VerifyAndClearExpectations(&provider_observer_); 475 Mock::VerifyAndClearExpectations(&provider_observer_);
468 476
469 expected_policy_bundle.Get( 477 expected_policy_bundle.Get(
470 PolicyNamespace(POLICY_DOMAIN_CHROME, std::string())) 478 PolicyNamespace(POLICY_DOMAIN_CHROME, std::string()))
471 .Set(key::kDisableSpdy, 479 .Set(key::kDisableSpdy,
472 POLICY_LEVEL_MANDATORY, 480 POLICY_LEVEL_MANDATORY,
473 POLICY_SCOPE_USER, 481 POLICY_SCOPE_USER,
(...skipping 24 matching lines...) Expand all
498 device_policy_.Build(); 506 device_policy_.Build();
499 device_settings_test_helper_.set_policy_blob(device_policy_.GetBlob()); 507 device_settings_test_helper_.set_policy_blob(device_policy_.GetBlob());
500 ReloadDeviceSettings(); 508 ReloadDeviceSettings();
501 Mock::VerifyAndClearExpectations(&provider_observer_); 509 Mock::VerifyAndClearExpectations(&provider_observer_);
502 510
503 EXPECT_TRUE(expected_policy_bundle.Equals(provider_.policies())); 511 EXPECT_TRUE(expected_policy_bundle.Equals(provider_.policies()));
504 } 512 }
505 513
506 TEST_F(DeviceLocalAccountPolicyProviderTest, RefreshPolicies) { 514 TEST_F(DeviceLocalAccountPolicyProviderTest, RefreshPolicies) {
507 // If there's no device policy, the refresh completes immediately. 515 // If there's no device policy, the refresh completes immediately.
508 EXPECT_FALSE(service_.GetBrokerForAccount(PolicyBuilder::kFakeUsername)); 516 EXPECT_FALSE(service_.GetBrokerForUser(public_session_user_id_));
509 EXPECT_CALL(provider_observer_, OnUpdatePolicy(&provider_)).Times(AtLeast(1)); 517 EXPECT_CALL(provider_observer_, OnUpdatePolicy(&provider_)).Times(AtLeast(1));
510 provider_.RefreshPolicies(); 518 provider_.RefreshPolicies();
511 Mock::VerifyAndClearExpectations(&provider_observer_); 519 Mock::VerifyAndClearExpectations(&provider_observer_);
512 520
513 // Make device settings appear. 521 // Make device settings appear.
514 EXPECT_CALL(provider_observer_, OnUpdatePolicy(&provider_)) 522 EXPECT_CALL(provider_observer_, OnUpdatePolicy(&provider_))
515 .Times(AnyNumber()); 523 .Times(AnyNumber());
516 device_settings_test_helper_.set_policy_blob(device_policy_.GetBlob()); 524 device_settings_test_helper_.set_policy_blob(device_policy_.GetBlob());
517 ReloadDeviceSettings(); 525 ReloadDeviceSettings();
518 Mock::VerifyAndClearExpectations(&provider_observer_); 526 Mock::VerifyAndClearExpectations(&provider_observer_);
519 EXPECT_TRUE(service_.GetBrokerForAccount(PolicyBuilder::kFakeUsername)); 527 EXPECT_TRUE(service_.GetBrokerForUser(public_session_user_id_));
520 528
521 // If there's no cloud connection, refreshes are still immediate. 529 // If there's no cloud connection, refreshes are still immediate.
522 DeviceLocalAccountPolicyBroker* broker = 530 DeviceLocalAccountPolicyBroker* broker =
523 service_.GetBrokerForAccount(PolicyBuilder::kFakeUsername); 531 service_.GetBrokerForUser(public_session_user_id_);
524 ASSERT_TRUE(broker); 532 ASSERT_TRUE(broker);
525 EXPECT_FALSE(broker->core()->client()); 533 EXPECT_FALSE(broker->core()->client());
526 EXPECT_CALL(provider_observer_, OnUpdatePolicy(&provider_)).Times(AtLeast(1)); 534 EXPECT_CALL(provider_observer_, OnUpdatePolicy(&provider_)).Times(AtLeast(1));
527 provider_.RefreshPolicies(); 535 provider_.RefreshPolicies();
528 Mock::VerifyAndClearExpectations(&provider_observer_); 536 Mock::VerifyAndClearExpectations(&provider_observer_);
529 537
530 // Bring up the cloud connection. The refresh scheduler may fire refreshes at 538 // Bring up the cloud connection. The refresh scheduler may fire refreshes at
531 // this point which are not relevant for the test. 539 // this point which are not relevant for the test.
532 EXPECT_CALL(mock_device_management_service_, CreateJob(_)) 540 EXPECT_CALL(mock_device_management_service_, CreateJob(_))
533 .WillRepeatedly( 541 .WillRepeatedly(
(...skipping 20 matching lines...) Expand all
554 ASSERT_TRUE(request_job); 562 ASSERT_TRUE(request_job);
555 em::DeviceManagementResponse response; 563 em::DeviceManagementResponse response;
556 response.mutable_policy_response()->add_response()->CopyFrom( 564 response.mutable_policy_response()->add_response()->CopyFrom(
557 device_local_account_policy_.policy()); 565 device_local_account_policy_.policy());
558 request_job->SendResponse(DM_STATUS_SUCCESS, response); 566 request_job->SendResponse(DM_STATUS_SUCCESS, response);
559 FlushDeviceSettings(); 567 FlushDeviceSettings();
560 Mock::VerifyAndClearExpectations(&provider_observer_); 568 Mock::VerifyAndClearExpectations(&provider_observer_);
561 } 569 }
562 570
563 } // namespace policy 571 } // namespace policy
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698