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 |