| Index: chrome/browser/chromeos/policy/device_local_account_policy_service_unittest.cc
|
| diff --git a/chrome/browser/chromeos/policy/device_local_account_policy_service_unittest.cc b/chrome/browser/chromeos/policy/device_local_account_policy_service_unittest.cc
|
| index 3c3c20ae34b2f329abd1bf41b815a28677e9c433..e8548d18f3a3d842ecc2cd192822f68973f2d9af 100644
|
| --- a/chrome/browser/chromeos/policy/device_local_account_policy_service_unittest.cc
|
| +++ b/chrome/browser/chromeos/policy/device_local_account_policy_service_unittest.cc
|
| @@ -7,7 +7,10 @@
|
| #include "base/bind.h"
|
| #include "base/bind_helpers.h"
|
| #include "base/memory/scoped_ptr.h"
|
| +#include "chrome/browser/chromeos/policy/device_local_account.h"
|
| #include "chrome/browser/chromeos/policy/device_local_account_policy_provider.h"
|
| +#include "chrome/browser/chromeos/settings/cros_settings.h"
|
| +#include "chrome/browser/chromeos/settings/device_settings_service.h"
|
| #include "chrome/browser/chromeos/settings/device_settings_test_helper.h"
|
| #include "chrome/browser/policy/cloud/cloud_policy_client.h"
|
| #include "chrome/browser/policy/cloud/cloud_policy_constants.h"
|
| @@ -41,7 +44,12 @@ class DeviceLocalAccountPolicyServiceTest
|
| : public chromeos::DeviceSettingsTestBase {
|
| public:
|
| DeviceLocalAccountPolicyServiceTest()
|
| - : service_(&device_settings_test_helper_, &device_settings_service_) {}
|
| + : public_session_user_id_(GenerateDeviceLocalAccountUserId(
|
| + PolicyBuilder::kFakeUsername,
|
| + DeviceLocalAccount::TYPE_PUBLIC_SESSION)),
|
| + service_(&device_settings_test_helper_,
|
| + chromeos::DeviceSettingsService::Get(),
|
| + chromeos::CrosSettings::Get()) {}
|
|
|
| virtual void SetUp() OVERRIDE {
|
| DeviceSettingsTestBase::SetUp();
|
| @@ -107,8 +115,11 @@ class DeviceLocalAccountPolicyServiceTest
|
|
|
| MOCK_METHOD1(OnRefreshDone, void(bool));
|
|
|
| + const std::string public_session_user_id_;
|
| +
|
| PolicyMap expected_policy_map_;
|
| UserPolicyBuilder device_local_account_policy_;
|
| + chromeos::ScopedTestCrosSettings test_cros_settings_;
|
| MockDeviceLocalAccountPolicyServiceObserver service_observer_;
|
| MockDeviceManagementService mock_device_management_service_;
|
| DeviceLocalAccountPolicyService service_;
|
| @@ -118,16 +129,16 @@ class DeviceLocalAccountPolicyServiceTest
|
| };
|
|
|
| TEST_F(DeviceLocalAccountPolicyServiceTest, NoAccounts) {
|
| - EXPECT_FALSE(service_.GetBrokerForAccount(PolicyBuilder::kFakeUsername));
|
| + EXPECT_FALSE(service_.GetBrokerForUser(public_session_user_id_));
|
| }
|
|
|
| TEST_F(DeviceLocalAccountPolicyServiceTest, GetBroker) {
|
| InstallDevicePolicy();
|
|
|
| DeviceLocalAccountPolicyBroker* broker =
|
| - service_.GetBrokerForAccount(PolicyBuilder::kFakeUsername);
|
| + service_.GetBrokerForUser(public_session_user_id_);
|
| ASSERT_TRUE(broker);
|
| - EXPECT_EQ(PolicyBuilder::kFakeUsername, broker->account_id());
|
| + EXPECT_EQ(public_session_user_id_, broker->user_id());
|
| ASSERT_TRUE(broker->core()->store());
|
| EXPECT_EQ(CloudPolicyStore::STATUS_OK, broker->core()->store()->status());
|
| EXPECT_FALSE(broker->core()->client());
|
| @@ -137,9 +148,9 @@ TEST_F(DeviceLocalAccountPolicyServiceTest, GetBroker) {
|
| TEST_F(DeviceLocalAccountPolicyServiceTest, LoadNoPolicy) {
|
| InstallDevicePolicy();
|
|
|
| - EXPECT_CALL(service_observer_, OnPolicyUpdated(PolicyBuilder::kFakeUsername));
|
| + EXPECT_CALL(service_observer_, OnPolicyUpdated(public_session_user_id_));
|
| DeviceLocalAccountPolicyBroker* broker =
|
| - service_.GetBrokerForAccount(PolicyBuilder::kFakeUsername);
|
| + service_.GetBrokerForUser(public_session_user_id_);
|
| ASSERT_TRUE(broker);
|
| FlushDeviceSettings();
|
| Mock::VerifyAndClearExpectations(&service_observer_);
|
| @@ -148,8 +159,7 @@ TEST_F(DeviceLocalAccountPolicyServiceTest, LoadNoPolicy) {
|
| EXPECT_EQ(CloudPolicyStore::STATUS_LOAD_ERROR,
|
| broker->core()->store()->status());
|
| EXPECT_TRUE(broker->core()->store()->policy_map().empty());
|
| - EXPECT_FALSE(service_.IsPolicyAvailableForAccount(
|
| - PolicyBuilder::kFakeUsername));
|
| + EXPECT_FALSE(service_.IsPolicyAvailableForUser(public_session_user_id_));
|
| }
|
|
|
| TEST_F(DeviceLocalAccountPolicyServiceTest, LoadValidationFailure) {
|
| @@ -160,9 +170,9 @@ TEST_F(DeviceLocalAccountPolicyServiceTest, LoadValidationFailure) {
|
| PolicyBuilder::kFakeUsername, device_local_account_policy_.GetBlob());
|
| InstallDevicePolicy();
|
|
|
| - EXPECT_CALL(service_observer_, OnPolicyUpdated(PolicyBuilder::kFakeUsername));
|
| + EXPECT_CALL(service_observer_, OnPolicyUpdated(public_session_user_id_));
|
| DeviceLocalAccountPolicyBroker* broker =
|
| - service_.GetBrokerForAccount(PolicyBuilder::kFakeUsername);
|
| + service_.GetBrokerForUser(public_session_user_id_);
|
| ASSERT_TRUE(broker);
|
| FlushDeviceSettings();
|
| Mock::VerifyAndClearExpectations(&service_observer_);
|
| @@ -171,8 +181,7 @@ TEST_F(DeviceLocalAccountPolicyServiceTest, LoadValidationFailure) {
|
| EXPECT_EQ(CloudPolicyStore::STATUS_VALIDATION_ERROR,
|
| broker->core()->store()->status());
|
| EXPECT_TRUE(broker->core()->store()->policy_map().empty());
|
| - EXPECT_FALSE(service_.IsPolicyAvailableForAccount(
|
| - PolicyBuilder::kFakeUsername));
|
| + EXPECT_FALSE(service_.IsPolicyAvailableForUser(public_session_user_id_));
|
| }
|
|
|
| TEST_F(DeviceLocalAccountPolicyServiceTest, LoadPolicy) {
|
| @@ -180,9 +189,9 @@ TEST_F(DeviceLocalAccountPolicyServiceTest, LoadPolicy) {
|
| PolicyBuilder::kFakeUsername, device_local_account_policy_.GetBlob());
|
| InstallDevicePolicy();
|
|
|
| - EXPECT_CALL(service_observer_, OnPolicyUpdated(PolicyBuilder::kFakeUsername));
|
| + EXPECT_CALL(service_observer_, OnPolicyUpdated(public_session_user_id_));
|
| DeviceLocalAccountPolicyBroker* broker =
|
| - service_.GetBrokerForAccount(PolicyBuilder::kFakeUsername);
|
| + service_.GetBrokerForUser(public_session_user_id_);
|
| ASSERT_TRUE(broker);
|
| FlushDeviceSettings();
|
| Mock::VerifyAndClearExpectations(&service_observer_);
|
| @@ -195,8 +204,7 @@ TEST_F(DeviceLocalAccountPolicyServiceTest, LoadPolicy) {
|
| broker->core()->store()->policy()->SerializeAsString());
|
| EXPECT_TRUE(expected_policy_map_.Equals(
|
| broker->core()->store()->policy_map()));
|
| - EXPECT_TRUE(service_.IsPolicyAvailableForAccount(
|
| - PolicyBuilder::kFakeUsername));
|
| + EXPECT_TRUE(service_.IsPolicyAvailableForUser(public_session_user_id_));
|
| }
|
|
|
| TEST_F(DeviceLocalAccountPolicyServiceTest, StoreValidationFailure) {
|
| @@ -205,9 +213,9 @@ TEST_F(DeviceLocalAccountPolicyServiceTest, StoreValidationFailure) {
|
| device_local_account_policy_.Build();
|
| InstallDevicePolicy();
|
|
|
| - EXPECT_CALL(service_observer_, OnPolicyUpdated(PolicyBuilder::kFakeUsername));
|
| + EXPECT_CALL(service_observer_, OnPolicyUpdated(public_session_user_id_));
|
| DeviceLocalAccountPolicyBroker* broker =
|
| - service_.GetBrokerForAccount(PolicyBuilder::kFakeUsername);
|
| + service_.GetBrokerForUser(public_session_user_id_);
|
| ASSERT_TRUE(broker);
|
| ASSERT_TRUE(broker->core()->store());
|
| broker->core()->store()->Store(device_local_account_policy_.policy());
|
| @@ -219,16 +227,15 @@ TEST_F(DeviceLocalAccountPolicyServiceTest, StoreValidationFailure) {
|
| broker->core()->store()->status());
|
| EXPECT_EQ(CloudPolicyValidatorBase::VALIDATION_WRONG_POLICY_TYPE,
|
| broker->core()->store()->validation_status());
|
| - EXPECT_FALSE(service_.IsPolicyAvailableForAccount(
|
| - PolicyBuilder::kFakeUsername));
|
| + EXPECT_FALSE(service_.IsPolicyAvailableForUser(public_session_user_id_));
|
| }
|
|
|
| TEST_F(DeviceLocalAccountPolicyServiceTest, StorePolicy) {
|
| InstallDevicePolicy();
|
|
|
| - EXPECT_CALL(service_observer_, OnPolicyUpdated(PolicyBuilder::kFakeUsername));
|
| + EXPECT_CALL(service_observer_, OnPolicyUpdated(public_session_user_id_));
|
| DeviceLocalAccountPolicyBroker* broker =
|
| - service_.GetBrokerForAccount(PolicyBuilder::kFakeUsername);
|
| + service_.GetBrokerForUser(public_session_user_id_);
|
| ASSERT_TRUE(broker);
|
| ASSERT_TRUE(broker->core()->store());
|
| broker->core()->store()->Store(device_local_account_policy_.policy());
|
| @@ -238,8 +245,7 @@ TEST_F(DeviceLocalAccountPolicyServiceTest, StorePolicy) {
|
| EXPECT_EQ(device_local_account_policy_.GetBlob(),
|
| device_settings_test_helper_.device_local_account_policy_blob(
|
| PolicyBuilder::kFakeUsername));
|
| - EXPECT_TRUE(service_.IsPolicyAvailableForAccount(
|
| - PolicyBuilder::kFakeUsername));
|
| + EXPECT_TRUE(service_.IsPolicyAvailableForUser(public_session_user_id_));
|
| }
|
|
|
| TEST_F(DeviceLocalAccountPolicyServiceTest, DevicePolicyChange) {
|
| @@ -251,16 +257,16 @@ TEST_F(DeviceLocalAccountPolicyServiceTest, DevicePolicyChange) {
|
| device_policy_.payload().mutable_device_local_accounts()->clear_account();
|
| device_policy_.Build();
|
| device_settings_test_helper_.set_policy_blob(device_policy_.GetBlob());
|
| - device_settings_service_.PropertyChangeComplete(true);
|
| + chromeos::DeviceSettingsService::Get()->PropertyChangeComplete(true);
|
| FlushDeviceSettings();
|
| - EXPECT_FALSE(service_.GetBrokerForAccount(PolicyBuilder::kFakeUsername));
|
| + EXPECT_FALSE(service_.GetBrokerForUser(public_session_user_id_));
|
| Mock::VerifyAndClearExpectations(&service_observer_);
|
| }
|
|
|
| TEST_F(DeviceLocalAccountPolicyServiceTest, DuplicateAccounts) {
|
| InstallDevicePolicy();
|
| DeviceLocalAccountPolicyBroker* broker =
|
| - service_.GetBrokerForAccount(PolicyBuilder::kFakeUsername);
|
| + service_.GetBrokerForUser(public_session_user_id_);
|
| ASSERT_TRUE(broker);
|
|
|
| // Add a second entry with a duplicate account name to device policy.
|
| @@ -275,15 +281,15 @@ TEST_F(DeviceLocalAccountPolicyServiceTest, DuplicateAccounts) {
|
| device_settings_test_helper_.set_policy_blob(device_policy_.GetBlob());
|
|
|
| EXPECT_CALL(service_observer_, OnDeviceLocalAccountsChanged());
|
| - EXPECT_CALL(service_observer_, OnPolicyUpdated(PolicyBuilder::kFakeUsername));
|
| - device_settings_service_.PropertyChangeComplete(true);
|
| + EXPECT_CALL(service_observer_, OnPolicyUpdated(public_session_user_id_));
|
| + chromeos::DeviceSettingsService::Get()->PropertyChangeComplete(true);
|
| FlushDeviceSettings();
|
| Mock::VerifyAndClearExpectations(&service_observer_);
|
|
|
| // Make sure the broker is accessible and policy got loaded.
|
| - broker = service_.GetBrokerForAccount(PolicyBuilder::kFakeUsername);
|
| + broker = service_.GetBrokerForUser(public_session_user_id_);
|
| ASSERT_TRUE(broker);
|
| - EXPECT_EQ(PolicyBuilder::kFakeUsername, broker->account_id());
|
| + EXPECT_EQ(public_session_user_id_, broker->user_id());
|
| EXPECT_TRUE(broker->core()->store()->policy());
|
| }
|
|
|
| @@ -293,7 +299,7 @@ TEST_F(DeviceLocalAccountPolicyServiceTest, FetchPolicy) {
|
| InstallDevicePolicy();
|
|
|
| DeviceLocalAccountPolicyBroker* broker =
|
| - service_.GetBrokerForAccount(PolicyBuilder::kFakeUsername);
|
| + service_.GetBrokerForUser(public_session_user_id_);
|
| ASSERT_TRUE(broker);
|
|
|
| service_.Connect(&mock_device_management_service_);
|
| @@ -314,7 +320,7 @@ TEST_F(DeviceLocalAccountPolicyServiceTest, FetchPolicy) {
|
| device_policy_.policy_data().device_id(),
|
| _))
|
| .WillOnce(SaveArg<6>(&request));
|
| - EXPECT_CALL(service_observer_, OnPolicyUpdated(PolicyBuilder::kFakeUsername));
|
| + EXPECT_CALL(service_observer_, OnPolicyUpdated(public_session_user_id_));
|
| broker->core()->client()->FetchPolicy();
|
| FlushDeviceSettings();
|
| Mock::VerifyAndClearExpectations(&service_observer_);
|
| @@ -335,16 +341,14 @@ TEST_F(DeviceLocalAccountPolicyServiceTest, FetchPolicy) {
|
| broker->core()->store()->policy()->SerializeAsString());
|
| EXPECT_TRUE(expected_policy_map_.Equals(
|
| broker->core()->store()->policy_map()));
|
| - EXPECT_TRUE(service_.IsPolicyAvailableForAccount(
|
| - PolicyBuilder::kFakeUsername));
|
| + EXPECT_TRUE(service_.IsPolicyAvailableForUser(public_session_user_id_));
|
|
|
| - EXPECT_CALL(service_observer_,
|
| - OnPolicyUpdated(PolicyBuilder::kFakeUsername)).Times(0);
|
| + EXPECT_CALL(service_observer_, OnPolicyUpdated(public_session_user_id_))
|
| + .Times(0);
|
| service_.Disconnect();
|
| EXPECT_FALSE(broker->core()->client());
|
| Mock::VerifyAndClearExpectations(&service_observer_);
|
| - EXPECT_TRUE(service_.IsPolicyAvailableForAccount(
|
| - PolicyBuilder::kFakeUsername));
|
| + EXPECT_TRUE(service_.IsPolicyAvailableForUser(public_session_user_id_));
|
| }
|
|
|
| TEST_F(DeviceLocalAccountPolicyServiceTest, RefreshPolicy) {
|
| @@ -353,7 +357,7 @@ TEST_F(DeviceLocalAccountPolicyServiceTest, RefreshPolicy) {
|
| InstallDevicePolicy();
|
|
|
| DeviceLocalAccountPolicyBroker* broker =
|
| - service_.GetBrokerForAccount(PolicyBuilder::kFakeUsername);
|
| + service_.GetBrokerForUser(public_session_user_id_);
|
| ASSERT_TRUE(broker);
|
|
|
| service_.Connect(&mock_device_management_service_);
|
| @@ -366,7 +370,7 @@ TEST_F(DeviceLocalAccountPolicyServiceTest, RefreshPolicy) {
|
| .WillOnce(mock_device_management_service_.SucceedJob(response));
|
| EXPECT_CALL(mock_device_management_service_, StartJob(_, _, _, _, _, _, _));
|
| EXPECT_CALL(*this, OnRefreshDone(true)).Times(1);
|
| - EXPECT_CALL(service_observer_, OnPolicyUpdated(PolicyBuilder::kFakeUsername));
|
| + EXPECT_CALL(service_observer_, OnPolicyUpdated(public_session_user_id_));
|
| broker->core()->service()->RefreshPolicy(
|
| base::Bind(&DeviceLocalAccountPolicyServiceTest::OnRefreshDone,
|
| base::Unretained(this)));
|
| @@ -380,15 +384,18 @@ TEST_F(DeviceLocalAccountPolicyServiceTest, RefreshPolicy) {
|
| broker->core()->store()->status());
|
| EXPECT_TRUE(expected_policy_map_.Equals(
|
| broker->core()->store()->policy_map()));
|
| - EXPECT_TRUE(service_.IsPolicyAvailableForAccount(
|
| - PolicyBuilder::kFakeUsername));
|
| + EXPECT_TRUE(service_.IsPolicyAvailableForUser(public_session_user_id_));
|
| }
|
|
|
| class DeviceLocalAccountPolicyProviderTest
|
| : public DeviceLocalAccountPolicyServiceTest {
|
| protected:
|
| DeviceLocalAccountPolicyProviderTest()
|
| - : provider_(PolicyBuilder::kFakeUsername, &service_) {}
|
| + : provider_(
|
| + GenerateDeviceLocalAccountUserId(
|
| + PolicyBuilder::kFakeUsername,
|
| + DeviceLocalAccount::TYPE_PUBLIC_SESSION),
|
| + &service_) {}
|
|
|
| virtual void SetUp() OVERRIDE {
|
| DeviceLocalAccountPolicyServiceTest::SetUp();
|
| @@ -460,7 +467,7 @@ TEST_F(DeviceLocalAccountPolicyProviderTest, Policy) {
|
| device_settings_test_helper_.set_device_local_account_policy_blob(
|
| PolicyBuilder::kFakeUsername, device_local_account_policy_.GetBlob());
|
| DeviceLocalAccountPolicyBroker* broker =
|
| - service_.GetBrokerForAccount(PolicyBuilder::kFakeUsername);
|
| + service_.GetBrokerForUser(public_session_user_id_);
|
| ASSERT_TRUE(broker);
|
| broker->core()->store()->Load();
|
| FlushDeviceSettings();
|
| @@ -505,7 +512,7 @@ TEST_F(DeviceLocalAccountPolicyProviderTest, Policy) {
|
|
|
| TEST_F(DeviceLocalAccountPolicyProviderTest, RefreshPolicies) {
|
| // If there's no device policy, the refresh completes immediately.
|
| - EXPECT_FALSE(service_.GetBrokerForAccount(PolicyBuilder::kFakeUsername));
|
| + EXPECT_FALSE(service_.GetBrokerForUser(public_session_user_id_));
|
| EXPECT_CALL(provider_observer_, OnUpdatePolicy(&provider_)).Times(AtLeast(1));
|
| provider_.RefreshPolicies();
|
| Mock::VerifyAndClearExpectations(&provider_observer_);
|
| @@ -516,11 +523,11 @@ TEST_F(DeviceLocalAccountPolicyProviderTest, RefreshPolicies) {
|
| device_settings_test_helper_.set_policy_blob(device_policy_.GetBlob());
|
| ReloadDeviceSettings();
|
| Mock::VerifyAndClearExpectations(&provider_observer_);
|
| - EXPECT_TRUE(service_.GetBrokerForAccount(PolicyBuilder::kFakeUsername));
|
| + EXPECT_TRUE(service_.GetBrokerForUser(public_session_user_id_));
|
|
|
| // If there's no cloud connection, refreshes are still immediate.
|
| DeviceLocalAccountPolicyBroker* broker =
|
| - service_.GetBrokerForAccount(PolicyBuilder::kFakeUsername);
|
| + service_.GetBrokerForUser(public_session_user_id_);
|
| ASSERT_TRUE(broker);
|
| EXPECT_FALSE(broker->core()->client());
|
| EXPECT_CALL(provider_observer_, OnUpdatePolicy(&provider_)).Times(AtLeast(1));
|
|
|