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

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

Powered by Google App Engine
This is Rietveld 408576698