OLD | NEW |
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_policy_provider.h" | 10 #include "chrome/browser/chromeos/policy/device_local_account_policy_provider.h" |
(...skipping 23 matching lines...) Expand all Loading... |
34 : public DeviceLocalAccountPolicyService::Observer { | 34 : public DeviceLocalAccountPolicyService::Observer { |
35 public: | 35 public: |
36 MOCK_METHOD1(OnPolicyUpdated, void(const std::string&)); | 36 MOCK_METHOD1(OnPolicyUpdated, void(const std::string&)); |
37 MOCK_METHOD0(OnDeviceLocalAccountsChanged, void(void)); | 37 MOCK_METHOD0(OnDeviceLocalAccountsChanged, void(void)); |
38 }; | 38 }; |
39 | 39 |
40 class DeviceLocalAccountPolicyServiceTest | 40 class DeviceLocalAccountPolicyServiceTest |
41 : public chromeos::DeviceSettingsTestBase { | 41 : public chromeos::DeviceSettingsTestBase { |
42 public: | 42 public: |
43 DeviceLocalAccountPolicyServiceTest() | 43 DeviceLocalAccountPolicyServiceTest() |
44 : service_(&device_settings_test_helper_, &device_settings_service_) {} | 44 : service_(&device_settings_test_helper_, device_settings_service_) {} |
45 | 45 |
46 virtual void SetUp() OVERRIDE { | 46 virtual void SetUp() OVERRIDE { |
47 DeviceSettingsTestBase::SetUp(); | 47 DeviceSettingsTestBase::SetUp(); |
48 | 48 |
49 // Values implicitly enforced for public accounts. | 49 // Values implicitly enforced for public accounts. |
50 expected_policy_map_.Set(key::kLidCloseAction, | 50 expected_policy_map_.Set(key::kLidCloseAction, |
51 POLICY_LEVEL_MANDATORY, | 51 POLICY_LEVEL_MANDATORY, |
52 POLICY_SCOPE_USER, | 52 POLICY_SCOPE_USER, |
53 base::Value::CreateIntegerValue( | 53 base::Value::CreateIntegerValue( |
54 chromeos::PowerPolicyController:: | 54 chromeos::PowerPolicyController:: |
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
241 | 241 |
242 TEST_F(DeviceLocalAccountPolicyServiceTest, DevicePolicyChange) { | 242 TEST_F(DeviceLocalAccountPolicyServiceTest, DevicePolicyChange) { |
243 device_settings_test_helper_.set_device_local_account_policy_blob( | 243 device_settings_test_helper_.set_device_local_account_policy_blob( |
244 PolicyBuilder::kFakeUsername, device_local_account_policy_.GetBlob()); | 244 PolicyBuilder::kFakeUsername, device_local_account_policy_.GetBlob()); |
245 InstallDevicePolicy(); | 245 InstallDevicePolicy(); |
246 | 246 |
247 EXPECT_CALL(service_observer_, OnDeviceLocalAccountsChanged()); | 247 EXPECT_CALL(service_observer_, OnDeviceLocalAccountsChanged()); |
248 device_policy_.payload().mutable_device_local_accounts()->clear_account(); | 248 device_policy_.payload().mutable_device_local_accounts()->clear_account(); |
249 device_policy_.Build(); | 249 device_policy_.Build(); |
250 device_settings_test_helper_.set_policy_blob(device_policy_.GetBlob()); | 250 device_settings_test_helper_.set_policy_blob(device_policy_.GetBlob()); |
251 device_settings_service_.PropertyChangeComplete(true); | 251 device_settings_service_->PropertyChangeComplete(true); |
252 FlushDeviceSettings(); | 252 FlushDeviceSettings(); |
253 EXPECT_FALSE(service_.GetBrokerForAccount(PolicyBuilder::kFakeUsername)); | 253 EXPECT_FALSE(service_.GetBrokerForAccount(PolicyBuilder::kFakeUsername)); |
254 Mock::VerifyAndClearExpectations(&service_observer_); | 254 Mock::VerifyAndClearExpectations(&service_observer_); |
255 } | 255 } |
256 | 256 |
257 TEST_F(DeviceLocalAccountPolicyServiceTest, DuplicateAccounts) { | 257 TEST_F(DeviceLocalAccountPolicyServiceTest, DuplicateAccounts) { |
258 InstallDevicePolicy(); | 258 InstallDevicePolicy(); |
259 DeviceLocalAccountPolicyBroker* broker = | 259 DeviceLocalAccountPolicyBroker* broker = |
260 service_.GetBrokerForAccount(PolicyBuilder::kFakeUsername); | 260 service_.GetBrokerForAccount(PolicyBuilder::kFakeUsername); |
261 ASSERT_TRUE(broker); | 261 ASSERT_TRUE(broker); |
262 | 262 |
263 // Add a second entry with a duplicate account name to device policy. | 263 // Add a second entry with a duplicate account name to device policy. |
264 device_policy_.payload().mutable_device_local_accounts()->add_account()-> | 264 device_policy_.payload().mutable_device_local_accounts()->add_account()-> |
265 set_id(PolicyBuilder::kFakeUsername); | 265 set_id(PolicyBuilder::kFakeUsername); |
266 device_policy_.Build(); | 266 device_policy_.Build(); |
267 device_settings_test_helper_.set_device_local_account_policy_blob( | 267 device_settings_test_helper_.set_device_local_account_policy_blob( |
268 PolicyBuilder::kFakeUsername, device_local_account_policy_.GetBlob()); | 268 PolicyBuilder::kFakeUsername, device_local_account_policy_.GetBlob()); |
269 device_settings_test_helper_.set_policy_blob(device_policy_.GetBlob()); | 269 device_settings_test_helper_.set_policy_blob(device_policy_.GetBlob()); |
270 | 270 |
271 EXPECT_CALL(service_observer_, OnDeviceLocalAccountsChanged()); | 271 EXPECT_CALL(service_observer_, OnDeviceLocalAccountsChanged()); |
272 EXPECT_CALL(service_observer_, OnPolicyUpdated(PolicyBuilder::kFakeUsername)); | 272 EXPECT_CALL(service_observer_, OnPolicyUpdated(PolicyBuilder::kFakeUsername)); |
273 device_settings_service_.PropertyChangeComplete(true); | 273 device_settings_service_->PropertyChangeComplete(true); |
274 FlushDeviceSettings(); | 274 FlushDeviceSettings(); |
275 Mock::VerifyAndClearExpectations(&service_observer_); | 275 Mock::VerifyAndClearExpectations(&service_observer_); |
276 | 276 |
277 // Make sure the broker is accessible and policy got loaded. | 277 // Make sure the broker is accessible and policy got loaded. |
278 broker = service_.GetBrokerForAccount(PolicyBuilder::kFakeUsername); | 278 broker = service_.GetBrokerForAccount(PolicyBuilder::kFakeUsername); |
279 ASSERT_TRUE(broker); | 279 ASSERT_TRUE(broker); |
280 EXPECT_EQ(PolicyBuilder::kFakeUsername, broker->account_id()); | 280 EXPECT_EQ(PolicyBuilder::kFakeUsername, broker->account_id()); |
281 EXPECT_TRUE(broker->core()->store()->policy()); | 281 EXPECT_TRUE(broker->core()->store()->policy()); |
282 } | 282 } |
283 | 283 |
(...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
548 ASSERT_TRUE(request_job); | 548 ASSERT_TRUE(request_job); |
549 em::DeviceManagementResponse response; | 549 em::DeviceManagementResponse response; |
550 response.mutable_policy_response()->add_response()->CopyFrom( | 550 response.mutable_policy_response()->add_response()->CopyFrom( |
551 device_local_account_policy_.policy()); | 551 device_local_account_policy_.policy()); |
552 request_job->SendResponse(DM_STATUS_SUCCESS, response); | 552 request_job->SendResponse(DM_STATUS_SUCCESS, response); |
553 FlushDeviceSettings(); | 553 FlushDeviceSettings(); |
554 Mock::VerifyAndClearExpectations(&provider_observer_); | 554 Mock::VerifyAndClearExpectations(&provider_observer_); |
555 } | 555 } |
556 | 556 |
557 } // namespace policy | 557 } // namespace policy |
OLD | NEW |