| 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/macros.h" | 15 #include "base/macros.h" |
| 16 #include "base/memory/ptr_util.h" |
| 16 #include "base/path_service.h" | 17 #include "base/path_service.h" |
| 17 #include "base/run_loop.h" | 18 #include "base/run_loop.h" |
| 18 #include "base/strings/string_number_conversions.h" | 19 #include "base/strings/string_number_conversions.h" |
| 19 #include "base/strings/stringprintf.h" | 20 #include "base/strings/stringprintf.h" |
| 20 #include "base/test/scoped_path_override.h" | 21 #include "base/test/scoped_path_override.h" |
| 21 #include "base/test/test_simple_task_runner.h" | 22 #include "base/test/test_simple_task_runner.h" |
| 22 #include "base/thread_task_runner_handle.h" | 23 #include "base/thread_task_runner_handle.h" |
| 23 #include "chrome/browser/chromeos/policy/device_local_account.h" | 24 #include "chrome/browser/chromeos/policy/device_local_account.h" |
| 24 #include "chrome/browser/chromeos/policy/device_local_account_policy_provider.h" | 25 #include "chrome/browser/chromeos/policy/device_local_account_policy_provider.h" |
| 25 #include "chrome/browser/chromeos/policy/fake_affiliated_invalidation_service_pr
ovider.h" | 26 #include "chrome/browser/chromeos/policy/fake_affiliated_invalidation_service_pr
ovider.h" |
| (...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 135 account_2_user_id_(GenerateDeviceLocalAccountUserId( | 136 account_2_user_id_(GenerateDeviceLocalAccountUserId( |
| 136 kAccount2, | 137 kAccount2, |
| 137 DeviceLocalAccount::TYPE_PUBLIC_SESSION)), | 138 DeviceLocalAccount::TYPE_PUBLIC_SESSION)), |
| 138 cros_settings_(&device_settings_service_), | 139 cros_settings_(&device_settings_service_), |
| 139 extension_cache_task_runner_(new base::TestSimpleTaskRunner) { | 140 extension_cache_task_runner_(new base::TestSimpleTaskRunner) { |
| 140 } | 141 } |
| 141 | 142 |
| 142 void DeviceLocalAccountPolicyServiceTestBase::SetUp() { | 143 void DeviceLocalAccountPolicyServiceTestBase::SetUp() { |
| 143 chromeos::DeviceSettingsTestBase::SetUp(); | 144 chromeos::DeviceSettingsTestBase::SetUp(); |
| 144 | 145 |
| 145 expected_policy_map_.Set(key::kDisableSpdy, | 146 expected_policy_map_.Set(key::kDisableSpdy, POLICY_LEVEL_MANDATORY, |
| 146 POLICY_LEVEL_MANDATORY, | 147 POLICY_SCOPE_USER, POLICY_SOURCE_CLOUD, |
| 147 POLICY_SCOPE_USER, | 148 base::WrapUnique(new base::FundamentalValue(true)), |
| 148 POLICY_SOURCE_CLOUD, | 149 nullptr); |
| 149 new base::FundamentalValue(true), | |
| 150 NULL); | |
| 151 | 150 |
| 152 device_local_account_policy_.payload().mutable_disablespdy()->set_value( | 151 device_local_account_policy_.payload().mutable_disablespdy()->set_value( |
| 153 true); | 152 true); |
| 154 device_local_account_policy_.policy_data().set_policy_type( | 153 device_local_account_policy_.policy_data().set_policy_type( |
| 155 dm_protocol::kChromePublicAccountPolicyType); | 154 dm_protocol::kChromePublicAccountPolicyType); |
| 156 } | 155 } |
| 157 | 156 |
| 158 void DeviceLocalAccountPolicyServiceTestBase::TearDown() { | 157 void DeviceLocalAccountPolicyServiceTestBase::TearDown() { |
| 159 service_->Shutdown(); | 158 service_->Shutdown(); |
| 160 service_.reset(); | 159 service_.reset(); |
| (...skipping 638 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 799 DeviceLocalAccount::TYPE_PUBLIC_SESSION), | 798 DeviceLocalAccount::TYPE_PUBLIC_SESSION), |
| 800 service_.get()); | 799 service_.get()); |
| 801 } | 800 } |
| 802 | 801 |
| 803 void DeviceLocalAccountPolicyProviderTest::SetUp() { | 802 void DeviceLocalAccountPolicyProviderTest::SetUp() { |
| 804 DeviceLocalAccountPolicyServiceTestBase::SetUp(); | 803 DeviceLocalAccountPolicyServiceTestBase::SetUp(); |
| 805 provider_->Init(&schema_registry_); | 804 provider_->Init(&schema_registry_); |
| 806 provider_->AddObserver(&provider_observer_); | 805 provider_->AddObserver(&provider_observer_); |
| 807 | 806 |
| 808 // Values implicitly enforced for public accounts. | 807 // Values implicitly enforced for public accounts. |
| 809 expected_policy_map_.Set(key::kLidCloseAction, | 808 expected_policy_map_.Set( |
| 810 POLICY_LEVEL_MANDATORY, | 809 key::kLidCloseAction, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, |
| 811 POLICY_SCOPE_MACHINE, | 810 POLICY_SOURCE_PUBLIC_SESSION_OVERRIDE, |
| 812 POLICY_SOURCE_PUBLIC_SESSION_OVERRIDE, | 811 base::WrapUnique(new base::FundamentalValue( |
| 813 new base::FundamentalValue( | 812 chromeos::PowerPolicyController::ACTION_STOP_SESSION)), |
| 814 chromeos::PowerPolicyController:: | 813 nullptr); |
| 815 ACTION_STOP_SESSION), | 814 expected_policy_map_.Set( |
| 816 NULL); | 815 key::kShelfAutoHideBehavior, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, |
| 817 expected_policy_map_.Set(key::kShelfAutoHideBehavior, | 816 POLICY_SOURCE_PUBLIC_SESSION_OVERRIDE, |
| 818 POLICY_LEVEL_MANDATORY, | 817 base::WrapUnique(new base::StringValue("Never")), nullptr); |
| 819 POLICY_SCOPE_MACHINE, | 818 expected_policy_map_.Set( |
| 820 POLICY_SOURCE_PUBLIC_SESSION_OVERRIDE, | 819 key::kShowLogoutButtonInTray, POLICY_LEVEL_MANDATORY, |
| 821 new base::StringValue("Never"), | 820 POLICY_SCOPE_MACHINE, POLICY_SOURCE_PUBLIC_SESSION_OVERRIDE, |
| 822 NULL); | 821 base::WrapUnique(new base::FundamentalValue(true)), nullptr); |
| 823 expected_policy_map_.Set(key::kShowLogoutButtonInTray, | 822 expected_policy_map_.Set( |
| 824 POLICY_LEVEL_MANDATORY, | 823 key::kFullscreenAllowed, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, |
| 825 POLICY_SCOPE_MACHINE, | 824 POLICY_SOURCE_PUBLIC_SESSION_OVERRIDE, |
| 826 POLICY_SOURCE_PUBLIC_SESSION_OVERRIDE, | 825 base::WrapUnique(new base::FundamentalValue(false)), nullptr); |
| 827 new base::FundamentalValue(true), | |
| 828 NULL); | |
| 829 expected_policy_map_.Set(key::kFullscreenAllowed, | |
| 830 POLICY_LEVEL_MANDATORY, | |
| 831 POLICY_SCOPE_MACHINE, | |
| 832 POLICY_SOURCE_PUBLIC_SESSION_OVERRIDE, | |
| 833 new base::FundamentalValue(false), | |
| 834 NULL); | |
| 835 } | 826 } |
| 836 | 827 |
| 837 void DeviceLocalAccountPolicyProviderTest::TearDown() { | 828 void DeviceLocalAccountPolicyProviderTest::TearDown() { |
| 838 provider_->RemoveObserver(&provider_observer_); | 829 provider_->RemoveObserver(&provider_observer_); |
| 839 provider_->Shutdown(); | 830 provider_->Shutdown(); |
| 840 provider_.reset(); | 831 provider_.reset(); |
| 841 DeviceLocalAccountPolicyServiceTestBase::TearDown(); | 832 DeviceLocalAccountPolicyServiceTestBase::TearDown(); |
| 842 } | 833 } |
| 843 | 834 |
| 844 TEST_F(DeviceLocalAccountPolicyProviderTest, Initialization) { | 835 TEST_F(DeviceLocalAccountPolicyProviderTest, Initialization) { |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 884 device_local_account_policy_.payload().mutable_disablespdy()->set_value( | 875 device_local_account_policy_.payload().mutable_disablespdy()->set_value( |
| 885 false); | 876 false); |
| 886 InstallDeviceLocalAccountPolicy(kAccount1); | 877 InstallDeviceLocalAccountPolicy(kAccount1); |
| 887 DeviceLocalAccountPolicyBroker* broker = | 878 DeviceLocalAccountPolicyBroker* broker = |
| 888 service_->GetBrokerForUser(account_1_user_id_); | 879 service_->GetBrokerForUser(account_1_user_id_); |
| 889 ASSERT_TRUE(broker); | 880 ASSERT_TRUE(broker); |
| 890 broker->core()->store()->Load(); | 881 broker->core()->store()->Load(); |
| 891 FlushDeviceSettings(); | 882 FlushDeviceSettings(); |
| 892 Mock::VerifyAndClearExpectations(&provider_observer_); | 883 Mock::VerifyAndClearExpectations(&provider_observer_); |
| 893 | 884 |
| 894 expected_policy_bundle.Get( | 885 expected_policy_bundle |
| 895 PolicyNamespace(POLICY_DOMAIN_CHROME, std::string())) | 886 .Get(PolicyNamespace(POLICY_DOMAIN_CHROME, std::string())) |
| 896 .Set(key::kDisableSpdy, | 887 .Set(key::kDisableSpdy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
| 897 POLICY_LEVEL_MANDATORY, | |
| 898 POLICY_SCOPE_USER, | |
| 899 POLICY_SOURCE_CLOUD, | 888 POLICY_SOURCE_CLOUD, |
| 900 new base::FundamentalValue(false), | 889 base::WrapUnique(new base::FundamentalValue(false)), nullptr); |
| 901 NULL); | |
| 902 EXPECT_TRUE(expected_policy_bundle.Equals(provider_->policies())); | 890 EXPECT_TRUE(expected_policy_bundle.Equals(provider_->policies())); |
| 903 | 891 |
| 904 // Any values set for the |ShelfAutoHideBehavior|, |ShowLogoutButtonInTray| | 892 // Any values set for the |ShelfAutoHideBehavior|, |ShowLogoutButtonInTray| |
| 905 // and |ExtensionAllowedTypes| policies should be overridden. | 893 // and |ExtensionAllowedTypes| policies should be overridden. |
| 906 EXPECT_CALL(provider_observer_, OnUpdatePolicy(provider_.get())) | 894 EXPECT_CALL(provider_observer_, OnUpdatePolicy(provider_.get())) |
| 907 .Times(AtLeast(1)); | 895 .Times(AtLeast(1)); |
| 908 device_local_account_policy_.payload().mutable_shelfautohidebehavior()-> | 896 device_local_account_policy_.payload().mutable_shelfautohidebehavior()-> |
| 909 set_value("Always"); | 897 set_value("Always"); |
| 910 device_local_account_policy_.payload().mutable_showlogoutbuttonintray()-> | 898 device_local_account_policy_.payload().mutable_showlogoutbuttonintray()-> |
| 911 set_value(false); | 899 set_value(false); |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 980 em::DeviceManagementResponse response; | 968 em::DeviceManagementResponse response; |
| 981 device_local_account_policy_.Build(); | 969 device_local_account_policy_.Build(); |
| 982 response.mutable_policy_response()->add_response()->CopyFrom( | 970 response.mutable_policy_response()->add_response()->CopyFrom( |
| 983 device_local_account_policy_.policy()); | 971 device_local_account_policy_.policy()); |
| 984 request_job->SendResponse(DM_STATUS_SUCCESS, response); | 972 request_job->SendResponse(DM_STATUS_SUCCESS, response); |
| 985 FlushDeviceSettings(); | 973 FlushDeviceSettings(); |
| 986 Mock::VerifyAndClearExpectations(&provider_observer_); | 974 Mock::VerifyAndClearExpectations(&provider_observer_); |
| 987 } | 975 } |
| 988 | 976 |
| 989 } // namespace policy | 977 } // namespace policy |
| OLD | NEW |