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 "components/policy/core/common/policy_loader_win.h" | 5 #include "components/policy/core/common/policy_loader_win.h" |
6 | 6 |
7 #include <windows.h> | 7 #include <windows.h> |
8 #include <userenv.h> | 8 #include <userenv.h> |
9 | 9 |
10 #include <algorithm> | 10 #include <algorithm> |
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
166 }; | 166 }; |
167 | 167 |
168 // A test harness that feeds policy via the Chrome GPO registry subtree. | 168 // A test harness that feeds policy via the Chrome GPO registry subtree. |
169 class RegistryTestHarness : public PolicyProviderTestHarness, | 169 class RegistryTestHarness : public PolicyProviderTestHarness, |
170 public AppliedGPOListProvider { | 170 public AppliedGPOListProvider { |
171 public: | 171 public: |
172 RegistryTestHarness(HKEY hive, PolicyScope scope); | 172 RegistryTestHarness(HKEY hive, PolicyScope scope); |
173 virtual ~RegistryTestHarness(); | 173 virtual ~RegistryTestHarness(); |
174 | 174 |
175 // PolicyProviderTestHarness: | 175 // PolicyProviderTestHarness: |
176 virtual void SetUp() OVERRIDE; | 176 virtual void SetUp() override; |
177 | 177 |
178 virtual ConfigurationPolicyProvider* CreateProvider( | 178 virtual ConfigurationPolicyProvider* CreateProvider( |
179 SchemaRegistry* registry, | 179 SchemaRegistry* registry, |
180 scoped_refptr<base::SequencedTaskRunner> task_runner) OVERRIDE; | 180 scoped_refptr<base::SequencedTaskRunner> task_runner) override; |
181 | 181 |
182 virtual void InstallEmptyPolicy() OVERRIDE; | 182 virtual void InstallEmptyPolicy() override; |
183 virtual void InstallStringPolicy(const std::string& policy_name, | 183 virtual void InstallStringPolicy(const std::string& policy_name, |
184 const std::string& policy_value) OVERRIDE; | 184 const std::string& policy_value) override; |
185 virtual void InstallIntegerPolicy(const std::string& policy_name, | 185 virtual void InstallIntegerPolicy(const std::string& policy_name, |
186 int policy_value) OVERRIDE; | 186 int policy_value) override; |
187 virtual void InstallBooleanPolicy(const std::string& policy_name, | 187 virtual void InstallBooleanPolicy(const std::string& policy_name, |
188 bool policy_value) OVERRIDE; | 188 bool policy_value) override; |
189 virtual void InstallStringListPolicy( | 189 virtual void InstallStringListPolicy( |
190 const std::string& policy_name, | 190 const std::string& policy_name, |
191 const base::ListValue* policy_value) OVERRIDE; | 191 const base::ListValue* policy_value) override; |
192 virtual void InstallDictionaryPolicy( | 192 virtual void InstallDictionaryPolicy( |
193 const std::string& policy_name, | 193 const std::string& policy_name, |
194 const base::DictionaryValue* policy_value) OVERRIDE; | 194 const base::DictionaryValue* policy_value) override; |
195 virtual void Install3rdPartyPolicy( | 195 virtual void Install3rdPartyPolicy( |
196 const base::DictionaryValue* policies) OVERRIDE; | 196 const base::DictionaryValue* policies) override; |
197 | 197 |
198 // AppliedGPOListProvider: | 198 // AppliedGPOListProvider: |
199 virtual DWORD GetAppliedGPOList(DWORD flags, | 199 virtual DWORD GetAppliedGPOList(DWORD flags, |
200 LPCTSTR machine_name, | 200 LPCTSTR machine_name, |
201 PSID sid_user, | 201 PSID sid_user, |
202 GUID* extension_guid, | 202 GUID* extension_guid, |
203 PGROUP_POLICY_OBJECT* gpo_list) OVERRIDE; | 203 PGROUP_POLICY_OBJECT* gpo_list) override; |
204 virtual BOOL FreeGPOList(PGROUP_POLICY_OBJECT gpo_list) OVERRIDE; | 204 virtual BOOL FreeGPOList(PGROUP_POLICY_OBJECT gpo_list) override; |
205 | 205 |
206 // Creates a harness instance that will install policy in HKCU or HKLM, | 206 // Creates a harness instance that will install policy in HKCU or HKLM, |
207 // respectively. | 207 // respectively. |
208 static PolicyProviderTestHarness* CreateHKCU(); | 208 static PolicyProviderTestHarness* CreateHKCU(); |
209 static PolicyProviderTestHarness* CreateHKLM(); | 209 static PolicyProviderTestHarness* CreateHKLM(); |
210 | 210 |
211 private: | 211 private: |
212 HKEY hive_; | 212 HKEY hive_; |
213 | 213 |
214 ScopedGroupPolicyRegistrySandbox registry_sandbox_; | 214 ScopedGroupPolicyRegistrySandbox registry_sandbox_; |
215 | 215 |
216 DISALLOW_COPY_AND_ASSIGN(RegistryTestHarness); | 216 DISALLOW_COPY_AND_ASSIGN(RegistryTestHarness); |
217 }; | 217 }; |
218 | 218 |
219 // A test harness that generates PReg files for the provider to read. | 219 // A test harness that generates PReg files for the provider to read. |
220 class PRegTestHarness : public PolicyProviderTestHarness, | 220 class PRegTestHarness : public PolicyProviderTestHarness, |
221 public AppliedGPOListProvider { | 221 public AppliedGPOListProvider { |
222 public: | 222 public: |
223 PRegTestHarness(); | 223 PRegTestHarness(); |
224 virtual ~PRegTestHarness(); | 224 virtual ~PRegTestHarness(); |
225 | 225 |
226 // PolicyProviderTestHarness: | 226 // PolicyProviderTestHarness: |
227 virtual void SetUp() OVERRIDE; | 227 virtual void SetUp() override; |
228 | 228 |
229 virtual ConfigurationPolicyProvider* CreateProvider( | 229 virtual ConfigurationPolicyProvider* CreateProvider( |
230 SchemaRegistry* registry, | 230 SchemaRegistry* registry, |
231 scoped_refptr<base::SequencedTaskRunner> task_runner) OVERRIDE; | 231 scoped_refptr<base::SequencedTaskRunner> task_runner) override; |
232 | 232 |
233 virtual void InstallEmptyPolicy() OVERRIDE; | 233 virtual void InstallEmptyPolicy() override; |
234 virtual void InstallStringPolicy(const std::string& policy_name, | 234 virtual void InstallStringPolicy(const std::string& policy_name, |
235 const std::string& policy_value) OVERRIDE; | 235 const std::string& policy_value) override; |
236 virtual void InstallIntegerPolicy(const std::string& policy_name, | 236 virtual void InstallIntegerPolicy(const std::string& policy_name, |
237 int policy_value) OVERRIDE; | 237 int policy_value) override; |
238 virtual void InstallBooleanPolicy(const std::string& policy_name, | 238 virtual void InstallBooleanPolicy(const std::string& policy_name, |
239 bool policy_value) OVERRIDE; | 239 bool policy_value) override; |
240 virtual void InstallStringListPolicy( | 240 virtual void InstallStringListPolicy( |
241 const std::string& policy_name, | 241 const std::string& policy_name, |
242 const base::ListValue* policy_value) OVERRIDE; | 242 const base::ListValue* policy_value) override; |
243 virtual void InstallDictionaryPolicy( | 243 virtual void InstallDictionaryPolicy( |
244 const std::string& policy_name, | 244 const std::string& policy_name, |
245 const base::DictionaryValue* policy_value) OVERRIDE; | 245 const base::DictionaryValue* policy_value) override; |
246 virtual void Install3rdPartyPolicy( | 246 virtual void Install3rdPartyPolicy( |
247 const base::DictionaryValue* policies) OVERRIDE; | 247 const base::DictionaryValue* policies) override; |
248 | 248 |
249 // AppliedGPOListProvider: | 249 // AppliedGPOListProvider: |
250 virtual DWORD GetAppliedGPOList(DWORD flags, | 250 virtual DWORD GetAppliedGPOList(DWORD flags, |
251 LPCTSTR machine_name, | 251 LPCTSTR machine_name, |
252 PSID sid_user, | 252 PSID sid_user, |
253 GUID* extension_guid, | 253 GUID* extension_guid, |
254 PGROUP_POLICY_OBJECT* gpo_list) OVERRIDE; | 254 PGROUP_POLICY_OBJECT* gpo_list) override; |
255 virtual BOOL FreeGPOList(PGROUP_POLICY_OBJECT gpo_list) OVERRIDE; | 255 virtual BOOL FreeGPOList(PGROUP_POLICY_OBJECT gpo_list) override; |
256 | 256 |
257 // Creates a harness instance. | 257 // Creates a harness instance. |
258 static PolicyProviderTestHarness* Create(); | 258 static PolicyProviderTestHarness* Create(); |
259 | 259 |
260 private: | 260 private: |
261 // Helper to append a base::string16 to an uint8 buffer. | 261 // Helper to append a base::string16 to an uint8 buffer. |
262 static void AppendChars(std::vector<uint8>* buffer, | 262 static void AppendChars(std::vector<uint8>* buffer, |
263 const base::string16& chars); | 263 const base::string16& chars); |
264 | 264 |
265 // Appends a record with the given fields to the PReg file. | 265 // Appends a record with the given fields to the PReg file. |
(...skipping 431 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
697 protected: | 697 protected: |
698 // The policy key this tests places data under. This must match the data | 698 // The policy key this tests places data under. This must match the data |
699 // files in chrome/test/data/policy/gpo. | 699 // files in chrome/test/data/policy/gpo. |
700 static const base::char16 kTestPolicyKey[]; | 700 static const base::char16 kTestPolicyKey[]; |
701 | 701 |
702 PolicyLoaderWinTest() | 702 PolicyLoaderWinTest() |
703 : gpo_list_(NULL), | 703 : gpo_list_(NULL), |
704 gpo_list_status_(ERROR_ACCESS_DENIED) {} | 704 gpo_list_status_(ERROR_ACCESS_DENIED) {} |
705 virtual ~PolicyLoaderWinTest() {} | 705 virtual ~PolicyLoaderWinTest() {} |
706 | 706 |
707 virtual void SetUp() OVERRIDE { | 707 virtual void SetUp() override { |
708 base::win::SetDomainStateForTesting(false); | 708 base::win::SetDomainStateForTesting(false); |
709 PolicyTestBase::SetUp(); | 709 PolicyTestBase::SetUp(); |
710 | 710 |
711 ASSERT_TRUE(PathService::Get(base::DIR_SOURCE_ROOT, &test_data_dir_)); | 711 ASSERT_TRUE(PathService::Get(base::DIR_SOURCE_ROOT, &test_data_dir_)); |
712 test_data_dir_ = test_data_dir_.AppendASCII("chrome") | 712 test_data_dir_ = test_data_dir_.AppendASCII("chrome") |
713 .AppendASCII("test") | 713 .AppendASCII("test") |
714 .AppendASCII("data") | 714 .AppendASCII("data") |
715 .AppendASCII("policy") | 715 .AppendASCII("policy") |
716 .AppendASCII("gpo"); | 716 .AppendASCII("gpo"); |
717 } | 717 } |
718 | 718 |
719 // AppliedGPOListProvider: | 719 // AppliedGPOListProvider: |
720 virtual DWORD GetAppliedGPOList(DWORD flags, | 720 virtual DWORD GetAppliedGPOList(DWORD flags, |
721 LPCTSTR machine_name, | 721 LPCTSTR machine_name, |
722 PSID sid_user, | 722 PSID sid_user, |
723 GUID* extension_guid, | 723 GUID* extension_guid, |
724 PGROUP_POLICY_OBJECT* gpo_list) OVERRIDE { | 724 PGROUP_POLICY_OBJECT* gpo_list) override { |
725 *gpo_list = gpo_list_; | 725 *gpo_list = gpo_list_; |
726 return gpo_list_status_; | 726 return gpo_list_status_; |
727 } | 727 } |
728 virtual BOOL FreeGPOList(PGROUP_POLICY_OBJECT gpo_list) OVERRIDE { | 728 virtual BOOL FreeGPOList(PGROUP_POLICY_OBJECT gpo_list) override { |
729 return TRUE; | 729 return TRUE; |
730 } | 730 } |
731 | 731 |
732 void InitGPO(GROUP_POLICY_OBJECT* gpo, | 732 void InitGPO(GROUP_POLICY_OBJECT* gpo, |
733 DWORD options, | 733 DWORD options, |
734 const base::FilePath& path, | 734 const base::FilePath& path, |
735 GROUP_POLICY_OBJECT* next, | 735 GROUP_POLICY_OBJECT* next, |
736 GROUP_POLICY_OBJECT* prev) { | 736 GROUP_POLICY_OBJECT* prev) { |
737 memset(gpo, 0, sizeof(GROUP_POLICY_OBJECT)); | 737 memset(gpo, 0, sizeof(GROUP_POLICY_OBJECT)); |
738 gpo->dwOptions = options; | 738 gpo->dwOptions = options; |
(...skipping 470 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1209 PolicyMap& expected_policy = expected.Get(ns); | 1209 PolicyMap& expected_policy = expected.Get(ns); |
1210 expected_policy.Set("alternative_browser_path", | 1210 expected_policy.Set("alternative_browser_path", |
1211 POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, | 1211 POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, |
1212 new base::StringValue("c:\\legacy\\browser.exe"), NULL); | 1212 new base::StringValue("c:\\legacy\\browser.exe"), NULL); |
1213 expected_policy.Set("url_list", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, | 1213 expected_policy.Set("url_list", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, |
1214 list.DeepCopy(), NULL); | 1214 list.DeepCopy(), NULL); |
1215 EXPECT_TRUE(Matches(expected)); | 1215 EXPECT_TRUE(Matches(expected)); |
1216 } | 1216 } |
1217 | 1217 |
1218 } // namespace policy | 1218 } // namespace policy |
OLD | NEW |