| 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 <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/bind_helpers.h" | 10 #include "base/bind_helpers.h" |
| 11 #include "base/callback.h" | 11 #include "base/callback.h" |
| 12 #include "base/files/file_path.h" | 12 #include "base/files/file_path.h" |
| 13 #include "base/files/file_util.h" | 13 #include "base/files/file_util.h" |
| 14 #include "base/files/scoped_temp_dir.h" | 14 #include "base/files/scoped_temp_dir.h" |
| 15 #include "base/message_loop/message_loop.h" | 15 #include "base/message_loop/message_loop.h" |
| 16 #include "base/message_loop/message_loop_proxy.h" | 16 #include "base/message_loop/message_loop_proxy.h" |
| 17 #include "base/path_service.h" | 17 #include "base/path_service.h" |
| 18 #include "base/run_loop.h" | 18 #include "base/run_loop.h" |
| 19 #include "base/strings/string_number_conversions.h" | 19 #include "base/strings/string_number_conversions.h" |
| 20 #include "base/strings/stringprintf.h" | 20 #include "base/strings/stringprintf.h" |
| 21 #include "base/test/scoped_path_override.h" | 21 #include "base/test/scoped_path_override.h" |
| 22 #include "base/test/test_simple_task_runner.h" | 22 #include "base/test/test_simple_task_runner.h" |
| 23 #include "chrome/browser/chromeos/policy/device_local_account.h" | 23 #include "chrome/browser/chromeos/policy/device_local_account.h" |
| 24 #include "chrome/browser/chromeos/policy/device_local_account_policy_provider.h" | 24 #include "chrome/browser/chromeos/policy/device_local_account_policy_provider.h" |
| 25 #include "chrome/browser/chromeos/policy/fake_affiliated_invalidation_service_pr
ovider.h" |
| 25 #include "chrome/browser/chromeos/policy/proto/chrome_device_policy.pb.h" | 26 #include "chrome/browser/chromeos/policy/proto/chrome_device_policy.pb.h" |
| 26 #include "chrome/browser/chromeos/settings/cros_settings.h" | 27 #include "chrome/browser/chromeos/settings/cros_settings.h" |
| 27 #include "chrome/browser/chromeos/settings/device_settings_service.h" | 28 #include "chrome/browser/chromeos/settings/device_settings_service.h" |
| 28 #include "chrome/browser/chromeos/settings/device_settings_test_helper.h" | 29 #include "chrome/browser/chromeos/settings/device_settings_test_helper.h" |
| 29 #include "chrome/common/chrome_paths.h" | 30 #include "chrome/common/chrome_paths.h" |
| 30 #include "chromeos/chromeos_paths.h" | 31 #include "chromeos/chromeos_paths.h" |
| 31 #include "chromeos/dbus/power_policy_controller.h" | 32 #include "chromeos/dbus/power_policy_controller.h" |
| 32 #include "components/policy/core/common/cloud/cloud_policy_client.h" | 33 #include "components/policy/core/common/cloud/cloud_policy_client.h" |
| 33 #include "components/policy/core/common/cloud/cloud_policy_constants.h" | 34 #include "components/policy/core/common/cloud/cloud_policy_constants.h" |
| 34 #include "components/policy/core/common/cloud/cloud_policy_service.h" | 35 #include "components/policy/core/common/cloud/cloud_policy_service.h" |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 91 virtual void InstallDevicePolicy(); | 92 virtual void InstallDevicePolicy(); |
| 92 | 93 |
| 93 const std::string account_1_user_id_; | 94 const std::string account_1_user_id_; |
| 94 const std::string account_2_user_id_; | 95 const std::string account_2_user_id_; |
| 95 | 96 |
| 96 PolicyMap expected_policy_map_; | 97 PolicyMap expected_policy_map_; |
| 97 UserPolicyBuilder device_local_account_policy_; | 98 UserPolicyBuilder device_local_account_policy_; |
| 98 chromeos::CrosSettings cros_settings_; | 99 chromeos::CrosSettings cros_settings_; |
| 99 scoped_refptr<base::TestSimpleTaskRunner> extension_cache_task_runner_; | 100 scoped_refptr<base::TestSimpleTaskRunner> extension_cache_task_runner_; |
| 100 MockDeviceManagementService mock_device_management_service_; | 101 MockDeviceManagementService mock_device_management_service_; |
| 102 FakeAffiliatedInvalidationServiceProvider |
| 103 affiliated_invalidation_service_provider_; |
| 101 scoped_ptr<DeviceLocalAccountPolicyService> service_; | 104 scoped_ptr<DeviceLocalAccountPolicyService> service_; |
| 102 | 105 |
| 103 private: | 106 private: |
| 104 DISALLOW_COPY_AND_ASSIGN(DeviceLocalAccountPolicyServiceTestBase); | 107 DISALLOW_COPY_AND_ASSIGN(DeviceLocalAccountPolicyServiceTestBase); |
| 105 }; | 108 }; |
| 106 | 109 |
| 107 class DeviceLocalAccountPolicyServiceTest | 110 class DeviceLocalAccountPolicyServiceTest |
| 108 : public DeviceLocalAccountPolicyServiceTestBase { | 111 : public DeviceLocalAccountPolicyServiceTestBase { |
| 109 public: | 112 public: |
| 110 MOCK_METHOD1(OnRefreshDone, void(bool)); | 113 MOCK_METHOD1(OnRefreshDone, void(bool)); |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 155 service_.reset(); | 158 service_.reset(); |
| 156 extension_cache_task_runner_->RunUntilIdle(); | 159 extension_cache_task_runner_->RunUntilIdle(); |
| 157 chromeos::DeviceSettingsTestBase::TearDown(); | 160 chromeos::DeviceSettingsTestBase::TearDown(); |
| 158 } | 161 } |
| 159 | 162 |
| 160 void DeviceLocalAccountPolicyServiceTestBase::CreatePolicyService() { | 163 void DeviceLocalAccountPolicyServiceTestBase::CreatePolicyService() { |
| 161 service_.reset(new DeviceLocalAccountPolicyService( | 164 service_.reset(new DeviceLocalAccountPolicyService( |
| 162 &device_settings_test_helper_, | 165 &device_settings_test_helper_, |
| 163 &device_settings_service_, | 166 &device_settings_service_, |
| 164 &cros_settings_, | 167 &cros_settings_, |
| 168 &affiliated_invalidation_service_provider_, |
| 165 base::MessageLoopProxy::current(), | 169 base::MessageLoopProxy::current(), |
| 166 extension_cache_task_runner_, | 170 extension_cache_task_runner_, |
| 167 base::MessageLoopProxy::current(), | 171 base::MessageLoopProxy::current(), |
| 168 base::MessageLoopProxy::current(), | 172 base::MessageLoopProxy::current(), |
| 169 new net::TestURLRequestContextGetter(base::MessageLoopProxy::current()))); | 173 new net::TestURLRequestContextGetter(base::MessageLoopProxy::current()))); |
| 170 } | 174 } |
| 171 | 175 |
| 172 void DeviceLocalAccountPolicyServiceTestBase:: | 176 void DeviceLocalAccountPolicyServiceTestBase:: |
| 173 InstallDeviceLocalAccountPolicy(const std::string& account_id) { | 177 InstallDeviceLocalAccountPolicy(const std::string& account_id) { |
| 174 device_local_account_policy_.policy_data().set_settings_entity_id(account_id); | 178 device_local_account_policy_.policy_data().set_settings_entity_id(account_id); |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 224 InstallDevicePolicy(); | 228 InstallDevicePolicy(); |
| 225 | 229 |
| 226 DeviceLocalAccountPolicyBroker* broker = | 230 DeviceLocalAccountPolicyBroker* broker = |
| 227 service_->GetBrokerForUser(account_1_user_id_); | 231 service_->GetBrokerForUser(account_1_user_id_); |
| 228 ASSERT_TRUE(broker); | 232 ASSERT_TRUE(broker); |
| 229 EXPECT_EQ(account_1_user_id_, broker->user_id()); | 233 EXPECT_EQ(account_1_user_id_, broker->user_id()); |
| 230 ASSERT_TRUE(broker->core()->store()); | 234 ASSERT_TRUE(broker->core()->store()); |
| 231 EXPECT_EQ(CloudPolicyStore::STATUS_OK, broker->core()->store()->status()); | 235 EXPECT_EQ(CloudPolicyStore::STATUS_OK, broker->core()->store()->status()); |
| 232 EXPECT_FALSE(broker->core()->client()); | 236 EXPECT_FALSE(broker->core()->client()); |
| 233 EXPECT_FALSE(broker->core()->store()->policy_map().empty()); | 237 EXPECT_FALSE(broker->core()->store()->policy_map().empty()); |
| 238 EXPECT_FALSE(broker->HasInvalidatorForTest()); |
| 234 } | 239 } |
| 235 | 240 |
| 236 TEST_F(DeviceLocalAccountPolicyServiceTest, LoadNoPolicy) { | 241 TEST_F(DeviceLocalAccountPolicyServiceTest, LoadNoPolicy) { |
| 237 AddDeviceLocalAccountToPolicy(kAccount1); | 242 AddDeviceLocalAccountToPolicy(kAccount1); |
| 238 EXPECT_CALL(service_observer_, OnPolicyUpdated(account_1_user_id_)); | 243 EXPECT_CALL(service_observer_, OnPolicyUpdated(account_1_user_id_)); |
| 239 InstallDevicePolicy(); | 244 InstallDevicePolicy(); |
| 240 | 245 |
| 241 DeviceLocalAccountPolicyBroker* broker = | 246 DeviceLocalAccountPolicyBroker* broker = |
| 242 service_->GetBrokerForUser(account_1_user_id_); | 247 service_->GetBrokerForUser(account_1_user_id_); |
| 243 ASSERT_TRUE(broker); | 248 ASSERT_TRUE(broker); |
| 244 EXPECT_EQ(account_1_user_id_, broker->user_id()); | 249 EXPECT_EQ(account_1_user_id_, broker->user_id()); |
| 245 ASSERT_TRUE(broker->core()->store()); | 250 ASSERT_TRUE(broker->core()->store()); |
| 246 EXPECT_EQ(CloudPolicyStore::STATUS_LOAD_ERROR, | 251 EXPECT_EQ(CloudPolicyStore::STATUS_LOAD_ERROR, |
| 247 broker->core()->store()->status()); | 252 broker->core()->store()->status()); |
| 248 EXPECT_TRUE(broker->core()->store()->policy_map().empty()); | 253 EXPECT_TRUE(broker->core()->store()->policy_map().empty()); |
| 254 EXPECT_FALSE(broker->HasInvalidatorForTest()); |
| 249 EXPECT_FALSE(service_->IsPolicyAvailableForUser(account_1_user_id_)); | 255 EXPECT_FALSE(service_->IsPolicyAvailableForUser(account_1_user_id_)); |
| 250 } | 256 } |
| 251 | 257 |
| 252 TEST_F(DeviceLocalAccountPolicyServiceTest, LoadValidationFailure) { | 258 TEST_F(DeviceLocalAccountPolicyServiceTest, LoadValidationFailure) { |
| 253 device_local_account_policy_.policy_data().set_policy_type( | 259 device_local_account_policy_.policy_data().set_policy_type( |
| 254 dm_protocol::kChromeUserPolicyType); | 260 dm_protocol::kChromeUserPolicyType); |
| 255 InstallDeviceLocalAccountPolicy(kAccount1); | 261 InstallDeviceLocalAccountPolicy(kAccount1); |
| 256 AddDeviceLocalAccountToPolicy(kAccount1); | 262 AddDeviceLocalAccountToPolicy(kAccount1); |
| 257 EXPECT_CALL(service_observer_, OnPolicyUpdated(account_1_user_id_)); | 263 EXPECT_CALL(service_observer_, OnPolicyUpdated(account_1_user_id_)); |
| 258 InstallDevicePolicy(); | 264 InstallDevicePolicy(); |
| 259 | 265 |
| 260 DeviceLocalAccountPolicyBroker* broker = | 266 DeviceLocalAccountPolicyBroker* broker = |
| 261 service_->GetBrokerForUser(account_1_user_id_); | 267 service_->GetBrokerForUser(account_1_user_id_); |
| 262 ASSERT_TRUE(broker); | 268 ASSERT_TRUE(broker); |
| 263 EXPECT_EQ(account_1_user_id_, broker->user_id()); | 269 EXPECT_EQ(account_1_user_id_, broker->user_id()); |
| 264 ASSERT_TRUE(broker->core()->store()); | 270 ASSERT_TRUE(broker->core()->store()); |
| 265 EXPECT_EQ(CloudPolicyStore::STATUS_VALIDATION_ERROR, | 271 EXPECT_EQ(CloudPolicyStore::STATUS_VALIDATION_ERROR, |
| 266 broker->core()->store()->status()); | 272 broker->core()->store()->status()); |
| 267 EXPECT_TRUE(broker->core()->store()->policy_map().empty()); | 273 EXPECT_TRUE(broker->core()->store()->policy_map().empty()); |
| 274 EXPECT_FALSE(broker->HasInvalidatorForTest()); |
| 268 EXPECT_FALSE(service_->IsPolicyAvailableForUser(account_1_user_id_)); | 275 EXPECT_FALSE(service_->IsPolicyAvailableForUser(account_1_user_id_)); |
| 269 } | 276 } |
| 270 | 277 |
| 271 TEST_F(DeviceLocalAccountPolicyServiceTest, LoadPolicy) { | 278 TEST_F(DeviceLocalAccountPolicyServiceTest, LoadPolicy) { |
| 272 InstallDeviceLocalAccountPolicy(kAccount1); | 279 InstallDeviceLocalAccountPolicy(kAccount1); |
| 273 AddDeviceLocalAccountToPolicy(kAccount1); | 280 AddDeviceLocalAccountToPolicy(kAccount1); |
| 274 EXPECT_CALL(service_observer_, OnPolicyUpdated(account_1_user_id_)); | 281 EXPECT_CALL(service_observer_, OnPolicyUpdated(account_1_user_id_)); |
| 275 InstallDevicePolicy(); | 282 InstallDevicePolicy(); |
| 276 | 283 |
| 277 DeviceLocalAccountPolicyBroker* broker = | 284 DeviceLocalAccountPolicyBroker* broker = |
| 278 service_->GetBrokerForUser(account_1_user_id_); | 285 service_->GetBrokerForUser(account_1_user_id_); |
| 279 ASSERT_TRUE(broker); | 286 ASSERT_TRUE(broker); |
| 280 EXPECT_EQ(account_1_user_id_, broker->user_id()); | 287 EXPECT_EQ(account_1_user_id_, broker->user_id()); |
| 281 ASSERT_TRUE(broker->core()->store()); | 288 ASSERT_TRUE(broker->core()->store()); |
| 282 EXPECT_EQ(CloudPolicyStore::STATUS_OK, broker->core()->store()->status()); | 289 EXPECT_EQ(CloudPolicyStore::STATUS_OK, broker->core()->store()->status()); |
| 283 ASSERT_TRUE(broker->core()->store()->policy()); | 290 ASSERT_TRUE(broker->core()->store()->policy()); |
| 284 EXPECT_EQ(device_local_account_policy_.policy_data().SerializeAsString(), | 291 EXPECT_EQ(device_local_account_policy_.policy_data().SerializeAsString(), |
| 285 broker->core()->store()->policy()->SerializeAsString()); | 292 broker->core()->store()->policy()->SerializeAsString()); |
| 286 EXPECT_TRUE(expected_policy_map_.Equals( | 293 EXPECT_TRUE(expected_policy_map_.Equals( |
| 287 broker->core()->store()->policy_map())); | 294 broker->core()->store()->policy_map())); |
| 295 EXPECT_FALSE(broker->HasInvalidatorForTest()); |
| 288 EXPECT_TRUE(service_->IsPolicyAvailableForUser(account_1_user_id_)); | 296 EXPECT_TRUE(service_->IsPolicyAvailableForUser(account_1_user_id_)); |
| 289 } | 297 } |
| 290 | 298 |
| 291 TEST_F(DeviceLocalAccountPolicyServiceTest, StoreValidationFailure) { | 299 TEST_F(DeviceLocalAccountPolicyServiceTest, StoreValidationFailure) { |
| 292 AddDeviceLocalAccountToPolicy(kAccount1); | 300 AddDeviceLocalAccountToPolicy(kAccount1); |
| 293 EXPECT_CALL(service_observer_, OnPolicyUpdated(account_1_user_id_)); | 301 EXPECT_CALL(service_observer_, OnPolicyUpdated(account_1_user_id_)); |
| 294 InstallDevicePolicy(); | 302 InstallDevicePolicy(); |
| 295 Mock::VerifyAndClearExpectations(&service_observer_); | 303 Mock::VerifyAndClearExpectations(&service_observer_); |
| 296 | 304 |
| 297 DeviceLocalAccountPolicyBroker* broker = | 305 DeviceLocalAccountPolicyBroker* broker = |
| 298 service_->GetBrokerForUser(account_1_user_id_); | 306 service_->GetBrokerForUser(account_1_user_id_); |
| 299 ASSERT_TRUE(broker); | 307 ASSERT_TRUE(broker); |
| 300 EXPECT_EQ(account_1_user_id_, broker->user_id()); | 308 EXPECT_EQ(account_1_user_id_, broker->user_id()); |
| 301 ASSERT_TRUE(broker->core()->store()); | 309 ASSERT_TRUE(broker->core()->store()); |
| 302 | 310 |
| 303 device_local_account_policy_.policy_data().set_policy_type( | 311 device_local_account_policy_.policy_data().set_policy_type( |
| 304 dm_protocol::kChromeUserPolicyType); | 312 dm_protocol::kChromeUserPolicyType); |
| 305 device_local_account_policy_.Build(); | 313 device_local_account_policy_.Build(); |
| 306 broker->core()->store()->Store(device_local_account_policy_.policy()); | 314 broker->core()->store()->Store(device_local_account_policy_.policy()); |
| 307 EXPECT_CALL(service_observer_, OnPolicyUpdated(account_1_user_id_)); | 315 EXPECT_CALL(service_observer_, OnPolicyUpdated(account_1_user_id_)); |
| 308 FlushDeviceSettings(); | 316 FlushDeviceSettings(); |
| 309 | 317 |
| 310 EXPECT_EQ(CloudPolicyStore::STATUS_VALIDATION_ERROR, | 318 EXPECT_EQ(CloudPolicyStore::STATUS_VALIDATION_ERROR, |
| 311 broker->core()->store()->status()); | 319 broker->core()->store()->status()); |
| 312 EXPECT_EQ(CloudPolicyValidatorBase::VALIDATION_WRONG_POLICY_TYPE, | 320 EXPECT_EQ(CloudPolicyValidatorBase::VALIDATION_WRONG_POLICY_TYPE, |
| 313 broker->core()->store()->validation_status()); | 321 broker->core()->store()->validation_status()); |
| 322 EXPECT_FALSE(broker->HasInvalidatorForTest()); |
| 314 EXPECT_FALSE(service_->IsPolicyAvailableForUser(account_1_user_id_)); | 323 EXPECT_FALSE(service_->IsPolicyAvailableForUser(account_1_user_id_)); |
| 315 } | 324 } |
| 316 | 325 |
| 317 TEST_F(DeviceLocalAccountPolicyServiceTest, StorePolicy) { | 326 TEST_F(DeviceLocalAccountPolicyServiceTest, StorePolicy) { |
| 318 AddDeviceLocalAccountToPolicy(kAccount1); | 327 AddDeviceLocalAccountToPolicy(kAccount1); |
| 319 EXPECT_CALL(service_observer_, OnPolicyUpdated(account_1_user_id_)); | 328 EXPECT_CALL(service_observer_, OnPolicyUpdated(account_1_user_id_)); |
| 320 InstallDevicePolicy(); | 329 InstallDevicePolicy(); |
| 321 Mock::VerifyAndClearExpectations(&service_observer_); | 330 Mock::VerifyAndClearExpectations(&service_observer_); |
| 322 | 331 |
| 323 DeviceLocalAccountPolicyBroker* broker = | 332 DeviceLocalAccountPolicyBroker* broker = |
| 324 service_->GetBrokerForUser(account_1_user_id_); | 333 service_->GetBrokerForUser(account_1_user_id_); |
| 325 ASSERT_TRUE(broker); | 334 ASSERT_TRUE(broker); |
| 326 EXPECT_EQ(account_1_user_id_, broker->user_id()); | 335 EXPECT_EQ(account_1_user_id_, broker->user_id()); |
| 327 ASSERT_TRUE(broker->core()->store()); | 336 ASSERT_TRUE(broker->core()->store()); |
| 328 | 337 |
| 329 device_local_account_policy_.policy_data().set_settings_entity_id(kAccount1); | 338 device_local_account_policy_.policy_data().set_settings_entity_id(kAccount1); |
| 330 device_local_account_policy_.policy_data().set_username(kAccount1); | 339 device_local_account_policy_.policy_data().set_username(kAccount1); |
| 331 device_local_account_policy_.Build(); | 340 device_local_account_policy_.Build(); |
| 332 broker->core()->store()->Store(device_local_account_policy_.policy()); | 341 broker->core()->store()->Store(device_local_account_policy_.policy()); |
| 333 EXPECT_CALL(service_observer_, OnPolicyUpdated(account_1_user_id_)); | 342 EXPECT_CALL(service_observer_, OnPolicyUpdated(account_1_user_id_)); |
| 334 FlushDeviceSettings(); | 343 FlushDeviceSettings(); |
| 335 | 344 |
| 336 EXPECT_EQ(CloudPolicyStore::STATUS_OK, broker->core()->store()->status()); | 345 EXPECT_EQ(CloudPolicyStore::STATUS_OK, broker->core()->store()->status()); |
| 337 ASSERT_TRUE(broker->core()->store()->policy()); | 346 ASSERT_TRUE(broker->core()->store()->policy()); |
| 338 EXPECT_EQ(device_local_account_policy_.policy_data().SerializeAsString(), | 347 EXPECT_EQ(device_local_account_policy_.policy_data().SerializeAsString(), |
| 339 broker->core()->store()->policy()->SerializeAsString()); | 348 broker->core()->store()->policy()->SerializeAsString()); |
| 340 EXPECT_TRUE(expected_policy_map_.Equals( | 349 EXPECT_TRUE(expected_policy_map_.Equals( |
| 341 broker->core()->store()->policy_map())); | 350 broker->core()->store()->policy_map())); |
| 351 EXPECT_FALSE(broker->HasInvalidatorForTest()); |
| 342 EXPECT_TRUE(service_->IsPolicyAvailableForUser(account_1_user_id_)); | 352 EXPECT_TRUE(service_->IsPolicyAvailableForUser(account_1_user_id_)); |
| 343 } | 353 } |
| 344 | 354 |
| 345 TEST_F(DeviceLocalAccountPolicyServiceTest, DevicePolicyChange) { | 355 TEST_F(DeviceLocalAccountPolicyServiceTest, DevicePolicyChange) { |
| 346 InstallDeviceLocalAccountPolicy(kAccount1); | 356 InstallDeviceLocalAccountPolicy(kAccount1); |
| 347 AddDeviceLocalAccountToPolicy(kAccount1); | 357 AddDeviceLocalAccountToPolicy(kAccount1); |
| 348 EXPECT_CALL(service_observer_, OnPolicyUpdated(account_1_user_id_)); | 358 EXPECT_CALL(service_observer_, OnPolicyUpdated(account_1_user_id_)); |
| 349 InstallDevicePolicy(); | 359 InstallDevicePolicy(); |
| 350 | 360 |
| 351 device_policy_.payload().mutable_device_local_accounts()->clear_account(); | 361 device_policy_.payload().mutable_device_local_accounts()->clear_account(); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 370 service_->GetBrokerForUser(account_1_user_id_); | 380 service_->GetBrokerForUser(account_1_user_id_); |
| 371 ASSERT_TRUE(broker); | 381 ASSERT_TRUE(broker); |
| 372 EXPECT_EQ(account_1_user_id_, broker->user_id()); | 382 EXPECT_EQ(account_1_user_id_, broker->user_id()); |
| 373 ASSERT_TRUE(broker->core()->store()); | 383 ASSERT_TRUE(broker->core()->store()); |
| 374 EXPECT_EQ(CloudPolicyStore::STATUS_OK, broker->core()->store()->status()); | 384 EXPECT_EQ(CloudPolicyStore::STATUS_OK, broker->core()->store()->status()); |
| 375 ASSERT_TRUE(broker->core()->store()->policy()); | 385 ASSERT_TRUE(broker->core()->store()->policy()); |
| 376 EXPECT_EQ(device_local_account_policy_.policy_data().SerializeAsString(), | 386 EXPECT_EQ(device_local_account_policy_.policy_data().SerializeAsString(), |
| 377 broker->core()->store()->policy()->SerializeAsString()); | 387 broker->core()->store()->policy()->SerializeAsString()); |
| 378 EXPECT_TRUE(expected_policy_map_.Equals( | 388 EXPECT_TRUE(expected_policy_map_.Equals( |
| 379 broker->core()->store()->policy_map())); | 389 broker->core()->store()->policy_map())); |
| 390 EXPECT_FALSE(broker->HasInvalidatorForTest()); |
| 380 EXPECT_TRUE(service_->IsPolicyAvailableForUser(account_1_user_id_)); | 391 EXPECT_TRUE(service_->IsPolicyAvailableForUser(account_1_user_id_)); |
| 381 } | 392 } |
| 382 | 393 |
| 383 TEST_F(DeviceLocalAccountPolicyServiceTest, FetchPolicy) { | 394 TEST_F(DeviceLocalAccountPolicyServiceTest, FetchPolicy) { |
| 384 InstallDeviceLocalAccountPolicy(kAccount1); | 395 InstallDeviceLocalAccountPolicy(kAccount1); |
| 385 AddDeviceLocalAccountToPolicy(kAccount1); | 396 AddDeviceLocalAccountToPolicy(kAccount1); |
| 386 EXPECT_CALL(service_observer_, OnPolicyUpdated(account_1_user_id_)); | 397 EXPECT_CALL(service_observer_, OnPolicyUpdated(account_1_user_id_)); |
| 387 InstallDevicePolicy(); | 398 InstallDevicePolicy(); |
| 388 | 399 |
| 389 DeviceLocalAccountPolicyBroker* broker = | 400 DeviceLocalAccountPolicyBroker* broker = |
| (...skipping 14 matching lines...) Expand all Loading... |
| 404 StartJob(dm_protocol::kValueRequestPolicy, | 415 StartJob(dm_protocol::kValueRequestPolicy, |
| 405 std::string(), std::string(), | 416 std::string(), std::string(), |
| 406 device_policy_.policy_data().request_token(), | 417 device_policy_.policy_data().request_token(), |
| 407 dm_protocol::kValueUserAffiliationManaged, | 418 dm_protocol::kValueUserAffiliationManaged, |
| 408 device_policy_.policy_data().device_id(), | 419 device_policy_.policy_data().device_id(), |
| 409 _)) | 420 _)) |
| 410 .WillOnce(SaveArg<6>(&request)); | 421 .WillOnce(SaveArg<6>(&request)); |
| 411 // This will be called twice, because the ComponentCloudPolicyService will | 422 // This will be called twice, because the ComponentCloudPolicyService will |
| 412 // also become ready after flushing all the pending tasks. | 423 // also become ready after flushing all the pending tasks. |
| 413 EXPECT_CALL(service_observer_, OnPolicyUpdated(account_1_user_id_)).Times(2); | 424 EXPECT_CALL(service_observer_, OnPolicyUpdated(account_1_user_id_)).Times(2); |
| 414 broker->core()->client()->FetchPolicy(); | |
| 415 FlushDeviceSettings(); | 425 FlushDeviceSettings(); |
| 416 Mock::VerifyAndClearExpectations(&service_observer_); | 426 Mock::VerifyAndClearExpectations(&service_observer_); |
| 417 Mock::VerifyAndClearExpectations(&mock_device_management_service_); | 427 Mock::VerifyAndClearExpectations(&mock_device_management_service_); |
| 418 EXPECT_TRUE(request.has_policy_request()); | 428 EXPECT_TRUE(request.has_policy_request()); |
| 419 ASSERT_EQ(2, request.policy_request().request_size()); | 429 ASSERT_EQ(2, request.policy_request().request_size()); |
| 420 | 430 |
| 421 const em::PolicyFetchRequest* public_account = | 431 const em::PolicyFetchRequest* public_account = |
| 422 &request.policy_request().request(0); | 432 &request.policy_request().request(0); |
| 423 const em::PolicyFetchRequest* extensions = | 433 const em::PolicyFetchRequest* extensions = |
| 424 &request.policy_request().request(1); | 434 &request.policy_request().request(1); |
| (...skipping 14 matching lines...) Expand all Loading... |
| 439 EXPECT_FALSE(extensions->has_settings_entity_id()); | 449 EXPECT_FALSE(extensions->has_settings_entity_id()); |
| 440 | 450 |
| 441 ASSERT_TRUE(broker->core()->store()); | 451 ASSERT_TRUE(broker->core()->store()); |
| 442 EXPECT_EQ(CloudPolicyStore::STATUS_OK, | 452 EXPECT_EQ(CloudPolicyStore::STATUS_OK, |
| 443 broker->core()->store()->status()); | 453 broker->core()->store()->status()); |
| 444 ASSERT_TRUE(broker->core()->store()->policy()); | 454 ASSERT_TRUE(broker->core()->store()->policy()); |
| 445 EXPECT_EQ(device_local_account_policy_.policy_data().SerializeAsString(), | 455 EXPECT_EQ(device_local_account_policy_.policy_data().SerializeAsString(), |
| 446 broker->core()->store()->policy()->SerializeAsString()); | 456 broker->core()->store()->policy()->SerializeAsString()); |
| 447 EXPECT_TRUE(expected_policy_map_.Equals( | 457 EXPECT_TRUE(expected_policy_map_.Equals( |
| 448 broker->core()->store()->policy_map())); | 458 broker->core()->store()->policy_map())); |
| 459 EXPECT_TRUE(broker->HasInvalidatorForTest()); |
| 449 EXPECT_TRUE(service_->IsPolicyAvailableForUser(account_1_user_id_)); | 460 EXPECT_TRUE(service_->IsPolicyAvailableForUser(account_1_user_id_)); |
| 450 } | 461 } |
| 451 | 462 |
| 452 TEST_F(DeviceLocalAccountPolicyServiceTest, RefreshPolicy) { | 463 TEST_F(DeviceLocalAccountPolicyServiceTest, RefreshPolicy) { |
| 453 InstallDeviceLocalAccountPolicy(kAccount1); | 464 InstallDeviceLocalAccountPolicy(kAccount1); |
| 454 AddDeviceLocalAccountToPolicy(kAccount1); | 465 AddDeviceLocalAccountToPolicy(kAccount1); |
| 455 EXPECT_CALL(service_observer_, OnPolicyUpdated(account_1_user_id_)); | 466 EXPECT_CALL(service_observer_, OnPolicyUpdated(account_1_user_id_)); |
| 456 InstallDevicePolicy(); | 467 InstallDevicePolicy(); |
| 457 | 468 |
| 458 DeviceLocalAccountPolicyBroker* broker = | 469 DeviceLocalAccountPolicyBroker* broker = |
| (...skipping 19 matching lines...) Expand all Loading... |
| 478 FlushDeviceSettings(); | 489 FlushDeviceSettings(); |
| 479 Mock::VerifyAndClearExpectations(&service_observer_); | 490 Mock::VerifyAndClearExpectations(&service_observer_); |
| 480 Mock::VerifyAndClearExpectations(this); | 491 Mock::VerifyAndClearExpectations(this); |
| 481 Mock::VerifyAndClearExpectations(&mock_device_management_service_); | 492 Mock::VerifyAndClearExpectations(&mock_device_management_service_); |
| 482 | 493 |
| 483 ASSERT_TRUE(broker->core()->store()); | 494 ASSERT_TRUE(broker->core()->store()); |
| 484 EXPECT_EQ(CloudPolicyStore::STATUS_OK, | 495 EXPECT_EQ(CloudPolicyStore::STATUS_OK, |
| 485 broker->core()->store()->status()); | 496 broker->core()->store()->status()); |
| 486 EXPECT_TRUE(expected_policy_map_.Equals( | 497 EXPECT_TRUE(expected_policy_map_.Equals( |
| 487 broker->core()->store()->policy_map())); | 498 broker->core()->store()->policy_map())); |
| 499 EXPECT_TRUE(broker->HasInvalidatorForTest()); |
| 488 EXPECT_TRUE(service_->IsPolicyAvailableForUser(account_1_user_id_)); | 500 EXPECT_TRUE(service_->IsPolicyAvailableForUser(account_1_user_id_)); |
| 489 } | 501 } |
| 490 | 502 |
| 491 class DeviceLocalAccountPolicyExtensionCacheTest | 503 class DeviceLocalAccountPolicyExtensionCacheTest |
| 492 : public DeviceLocalAccountPolicyServiceTestBase { | 504 : public DeviceLocalAccountPolicyServiceTestBase { |
| 493 protected: | 505 protected: |
| 494 DeviceLocalAccountPolicyExtensionCacheTest(); | 506 DeviceLocalAccountPolicyExtensionCacheTest(); |
| 495 | 507 |
| 496 void SetUp() override; | 508 void SetUp() override; |
| 497 | 509 |
| (...skipping 468 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 966 em::DeviceManagementResponse response; | 978 em::DeviceManagementResponse response; |
| 967 device_local_account_policy_.Build(); | 979 device_local_account_policy_.Build(); |
| 968 response.mutable_policy_response()->add_response()->CopyFrom( | 980 response.mutable_policy_response()->add_response()->CopyFrom( |
| 969 device_local_account_policy_.policy()); | 981 device_local_account_policy_.policy()); |
| 970 request_job->SendResponse(DM_STATUS_SUCCESS, response); | 982 request_job->SendResponse(DM_STATUS_SUCCESS, response); |
| 971 FlushDeviceSettings(); | 983 FlushDeviceSettings(); |
| 972 Mock::VerifyAndClearExpectations(&provider_observer_); | 984 Mock::VerifyAndClearExpectations(&provider_observer_); |
| 973 } | 985 } |
| 974 | 986 |
| 975 } // namespace policy | 987 } // namespace policy |
| OLD | NEW |