Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(33)

Side by Side Diff: chrome/browser/policy/policy_loader_win_unittest.cc

Issue 58313002: Removed the PolicyDefinitionList. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@chrome-policy-schema-10-use-registry
Patch Set: rebase Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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/policy/policy_loader_win.h" 5 #include "chrome/browser/policy/policy_loader_win.h"
6 6
7 #include <userenv.h> 7 #include <userenv.h>
8 #include <windows.h> 8 #include <windows.h>
9 9
10 #include <algorithm> 10 #include <algorithm>
(...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after
247 public AppliedGPOListProvider { 247 public AppliedGPOListProvider {
248 public: 248 public:
249 RegistryTestHarness(HKEY hive, PolicyScope scope); 249 RegistryTestHarness(HKEY hive, PolicyScope scope);
250 virtual ~RegistryTestHarness(); 250 virtual ~RegistryTestHarness();
251 251
252 // PolicyProviderTestHarness: 252 // PolicyProviderTestHarness:
253 virtual void SetUp() OVERRIDE; 253 virtual void SetUp() OVERRIDE;
254 254
255 virtual ConfigurationPolicyProvider* CreateProvider( 255 virtual ConfigurationPolicyProvider* CreateProvider(
256 SchemaRegistry* registry, 256 SchemaRegistry* registry,
257 scoped_refptr<base::SequencedTaskRunner> task_runner, 257 scoped_refptr<base::SequencedTaskRunner> task_runner) OVERRIDE;
258 const PolicyDefinitionList* policy_list) OVERRIDE;
259 258
260 virtual void InstallEmptyPolicy() OVERRIDE; 259 virtual void InstallEmptyPolicy() OVERRIDE;
261 virtual void InstallStringPolicy(const std::string& policy_name, 260 virtual void InstallStringPolicy(const std::string& policy_name,
262 const std::string& policy_value) OVERRIDE; 261 const std::string& policy_value) OVERRIDE;
263 virtual void InstallIntegerPolicy(const std::string& policy_name, 262 virtual void InstallIntegerPolicy(const std::string& policy_name,
264 int policy_value) OVERRIDE; 263 int policy_value) OVERRIDE;
265 virtual void InstallBooleanPolicy(const std::string& policy_name, 264 virtual void InstallBooleanPolicy(const std::string& policy_name,
266 bool policy_value) OVERRIDE; 265 bool policy_value) OVERRIDE;
267 virtual void InstallStringListPolicy( 266 virtual void InstallStringListPolicy(
268 const std::string& policy_name, 267 const std::string& policy_name,
(...skipping 30 matching lines...) Expand all
299 public AppliedGPOListProvider { 298 public AppliedGPOListProvider {
300 public: 299 public:
301 PRegTestHarness(); 300 PRegTestHarness();
302 virtual ~PRegTestHarness(); 301 virtual ~PRegTestHarness();
303 302
304 // PolicyProviderTestHarness: 303 // PolicyProviderTestHarness:
305 virtual void SetUp() OVERRIDE; 304 virtual void SetUp() OVERRIDE;
306 305
307 virtual ConfigurationPolicyProvider* CreateProvider( 306 virtual ConfigurationPolicyProvider* CreateProvider(
308 SchemaRegistry* registry, 307 SchemaRegistry* registry,
309 scoped_refptr<base::SequencedTaskRunner> task_runner, 308 scoped_refptr<base::SequencedTaskRunner> task_runner) OVERRIDE;
310 const PolicyDefinitionList* policy_list) OVERRIDE;
311 309
312 virtual void InstallEmptyPolicy() OVERRIDE; 310 virtual void InstallEmptyPolicy() OVERRIDE;
313 virtual void InstallStringPolicy(const std::string& policy_name, 311 virtual void InstallStringPolicy(const std::string& policy_name,
314 const std::string& policy_value) OVERRIDE; 312 const std::string& policy_value) OVERRIDE;
315 virtual void InstallIntegerPolicy(const std::string& policy_name, 313 virtual void InstallIntegerPolicy(const std::string& policy_name,
316 int policy_value) OVERRIDE; 314 int policy_value) OVERRIDE;
317 virtual void InstallBooleanPolicy(const std::string& policy_name, 315 virtual void InstallBooleanPolicy(const std::string& policy_name,
318 bool policy_value) OVERRIDE; 316 bool policy_value) OVERRIDE;
319 virtual void InstallStringListPolicy( 317 virtual void InstallStringListPolicy(
320 const std::string& policy_name, 318 const std::string& policy_name,
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
417 415
418 RegistryTestHarness::RegistryTestHarness(HKEY hive, PolicyScope scope) 416 RegistryTestHarness::RegistryTestHarness(HKEY hive, PolicyScope scope)
419 : PolicyProviderTestHarness(POLICY_LEVEL_MANDATORY, scope), hive_(hive) {} 417 : PolicyProviderTestHarness(POLICY_LEVEL_MANDATORY, scope), hive_(hive) {}
420 418
421 RegistryTestHarness::~RegistryTestHarness() {} 419 RegistryTestHarness::~RegistryTestHarness() {}
422 420
423 void RegistryTestHarness::SetUp() {} 421 void RegistryTestHarness::SetUp() {}
424 422
425 ConfigurationPolicyProvider* RegistryTestHarness::CreateProvider( 423 ConfigurationPolicyProvider* RegistryTestHarness::CreateProvider(
426 SchemaRegistry* registry, 424 SchemaRegistry* registry,
427 scoped_refptr<base::SequencedTaskRunner> task_runner, 425 scoped_refptr<base::SequencedTaskRunner> task_runner) {
428 const PolicyDefinitionList* policy_list) { 426 scoped_ptr<AsyncPolicyLoader> loader(
429 scoped_ptr<AsyncPolicyLoader> loader(new PolicyLoaderWin( 427 new PolicyLoaderWin(task_runner, kRegistryChromePolicyKey, this));
430 task_runner, policy_list, kRegistryChromePolicyKey, this));
431 return new AsyncPolicyProvider(registry, loader.Pass()); 428 return new AsyncPolicyProvider(registry, loader.Pass());
432 } 429 }
433 430
434 void RegistryTestHarness::InstallEmptyPolicy() {} 431 void RegistryTestHarness::InstallEmptyPolicy() {}
435 432
436 void RegistryTestHarness::InstallStringPolicy( 433 void RegistryTestHarness::InstallStringPolicy(
437 const std::string& policy_name, 434 const std::string& policy_name,
438 const std::string& policy_value) { 435 const std::string& policy_value) {
439 RegKey key(hive_, kRegistryChromePolicyKey, KEY_ALL_ACCESS); 436 RegKey key(hive_, kRegistryChromePolicyKey, KEY_ALL_ACCESS);
440 ASSERT_TRUE(key.Valid()); 437 ASSERT_TRUE(key.Valid());
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
550 ASSERT_TRUE(file_util::WriteFile(preg_file_path_, 547 ASSERT_TRUE(file_util::WriteFile(preg_file_path_,
551 preg_parser::kPRegFileHeader, 548 preg_parser::kPRegFileHeader,
552 arraysize(preg_parser::kPRegFileHeader))); 549 arraysize(preg_parser::kPRegFileHeader)));
553 550
554 memset(&gpo_, 0, sizeof(GROUP_POLICY_OBJECT)); 551 memset(&gpo_, 0, sizeof(GROUP_POLICY_OBJECT));
555 gpo_.lpFileSysPath = const_cast<wchar_t*>(temp_dir_.path().value().c_str()); 552 gpo_.lpFileSysPath = const_cast<wchar_t*>(temp_dir_.path().value().c_str());
556 } 553 }
557 554
558 ConfigurationPolicyProvider* PRegTestHarness::CreateProvider( 555 ConfigurationPolicyProvider* PRegTestHarness::CreateProvider(
559 SchemaRegistry* registry, 556 SchemaRegistry* registry,
560 scoped_refptr<base::SequencedTaskRunner> task_runner, 557 scoped_refptr<base::SequencedTaskRunner> task_runner) {
561 const PolicyDefinitionList* policy_list) { 558 scoped_ptr<AsyncPolicyLoader> loader(
562 scoped_ptr<AsyncPolicyLoader> loader(new PolicyLoaderWin( 559 new PolicyLoaderWin(task_runner, kRegistryChromePolicyKey, this));
563 task_runner, policy_list, kRegistryChromePolicyKey, this));
564 return new AsyncPolicyProvider(registry, loader.Pass()); 560 return new AsyncPolicyProvider(registry, loader.Pass());
565 } 561 }
566 562
567 void PRegTestHarness::InstallEmptyPolicy() {} 563 void PRegTestHarness::InstallEmptyPolicy() {}
568 564
569 void PRegTestHarness::InstallStringPolicy(const std::string& policy_name, 565 void PRegTestHarness::InstallStringPolicy(const std::string& policy_name,
570 const std::string& policy_value) { 566 const std::string& policy_value) {
571 AppendStringToPRegFile(kRegistryChromePolicyKey, policy_name, policy_value); 567 AppendStringToPRegFile(kRegistryChromePolicyKey, policy_name, policy_value);
572 } 568 }
573 569
(...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after
834 GROUP_POLICY_OBJECT* next, 830 GROUP_POLICY_OBJECT* next,
835 GROUP_POLICY_OBJECT* prev) { 831 GROUP_POLICY_OBJECT* prev) {
836 memset(gpo, 0, sizeof(GROUP_POLICY_OBJECT)); 832 memset(gpo, 0, sizeof(GROUP_POLICY_OBJECT));
837 gpo->dwOptions = options; 833 gpo->dwOptions = options;
838 gpo->lpFileSysPath = const_cast<wchar_t*>(path.value().c_str()); 834 gpo->lpFileSysPath = const_cast<wchar_t*>(path.value().c_str());
839 gpo->pNext = next; 835 gpo->pNext = next;
840 gpo->pPrev = prev; 836 gpo->pPrev = prev;
841 } 837 }
842 838
843 bool Matches(const PolicyBundle& expected) { 839 bool Matches(const PolicyBundle& expected) {
844 PolicyLoaderWin loader(loop_.message_loop_proxy(), 840 PolicyLoaderWin loader(loop_.message_loop_proxy(), kTestPolicyKey, this);
845 &test_policy_definitions::kList, kTestPolicyKey,
846 this);
847 scoped_ptr<PolicyBundle> loaded( 841 scoped_ptr<PolicyBundle> loaded(
848 loader.InitialLoad(schema_registry_.schema_map())); 842 loader.InitialLoad(schema_registry_.schema_map()));
849 return loaded->Equals(expected); 843 return loaded->Equals(expected);
850 } 844 }
851 845
852 void InstallRegistrySentinel() { 846 void InstallRegistrySentinel() {
853 RegKey hklm_key(HKEY_CURRENT_USER, kTestPolicyKey, KEY_ALL_ACCESS); 847 RegKey hklm_key(HKEY_CURRENT_USER, kTestPolicyKey, KEY_ALL_ACCESS);
854 ASSERT_TRUE(hklm_key.Valid()); 848 ASSERT_TRUE(hklm_key.Valid());
855 hklm_key.WriteValue( 849 hklm_key.WriteValue(
856 UTF8ToUTF16(test_policy_definitions::kKeyString).c_str(), 850 UTF8ToUTF16(test_keys::kKeyString).c_str(),
857 UTF8ToUTF16("registry").c_str()); 851 UTF8ToUTF16("registry").c_str());
858 } 852 }
859 853
860 bool MatchesRegistrySentinel() { 854 bool MatchesRegistrySentinel() {
861 base::DictionaryValue expected_policy; 855 base::DictionaryValue expected_policy;
862 expected_policy.SetString(test_policy_definitions::kKeyString, "registry"); 856 expected_policy.SetString(test_keys::kKeyString, "registry");
863 PolicyBundle expected; 857 PolicyBundle expected;
864 expected.Get(PolicyNamespace(POLICY_DOMAIN_CHROME, std::string())) 858 expected.Get(PolicyNamespace(POLICY_DOMAIN_CHROME, std::string()))
865 .LoadFrom(&expected_policy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER); 859 .LoadFrom(&expected_policy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER);
866 return Matches(expected); 860 return Matches(expected);
867 } 861 }
868 862
869 bool MatchesTestBundle() { 863 bool MatchesTestBundle() {
870 base::DictionaryValue expected_policy; 864 base::DictionaryValue expected_policy;
871 expected_policy.SetBoolean(test_policy_definitions::kKeyBoolean, true); 865 expected_policy.SetBoolean(test_keys::kKeyBoolean, true);
872 expected_policy.SetString(test_policy_definitions::kKeyString, "GPO"); 866 expected_policy.SetString(test_keys::kKeyString, "GPO");
873 expected_policy.SetInteger(test_policy_definitions::kKeyInteger, 42); 867 expected_policy.SetInteger(test_keys::kKeyInteger, 42);
874 scoped_ptr<base::ListValue> list(new base::ListValue()); 868 scoped_ptr<base::ListValue> list(new base::ListValue());
875 list->AppendString("GPO 1"); 869 list->AppendString("GPO 1");
876 list->AppendString("GPO 2"); 870 list->AppendString("GPO 2");
877 expected_policy.Set(test_policy_definitions::kKeyStringList, 871 expected_policy.Set(test_keys::kKeyStringList, list.release());
878 list.release());
879 PolicyBundle expected; 872 PolicyBundle expected;
880 expected.Get(PolicyNamespace(POLICY_DOMAIN_CHROME, std::string())) 873 expected.Get(PolicyNamespace(POLICY_DOMAIN_CHROME, std::string()))
881 .LoadFrom(&expected_policy, POLICY_LEVEL_MANDATORY, 874 .LoadFrom(&expected_policy, POLICY_LEVEL_MANDATORY,
882 POLICY_SCOPE_MACHINE); 875 POLICY_SCOPE_MACHINE);
883 return Matches(expected); 876 return Matches(expected);
884 } 877 }
885 878
886 ScopedGroupPolicyRegistrySandbox registry_sandbox_; 879 ScopedGroupPolicyRegistrySandbox registry_sandbox_;
887 PGROUP_POLICY_OBJECT gpo_list_; 880 PGROUP_POLICY_OBJECT gpo_list_;
888 DWORD gpo_list_status_; 881 DWORD gpo_list_status_;
889 base::FilePath test_data_dir_; 882 base::FilePath test_data_dir_;
890 }; 883 };
891 884
892 const char16 PolicyLoaderWinTest::kTestPolicyKey[] = 885 const char16 PolicyLoaderWinTest::kTestPolicyKey[] =
893 L"SOFTWARE\\Policies\\Chromium"; 886 L"SOFTWARE\\Policies\\Chromium";
894 887
895 TEST_F(PolicyLoaderWinTest, HKLMOverHKCU) { 888 TEST_F(PolicyLoaderWinTest, HKLMOverHKCU) {
896 RegKey hklm_key(HKEY_LOCAL_MACHINE, kTestPolicyKey, KEY_ALL_ACCESS); 889 RegKey hklm_key(HKEY_LOCAL_MACHINE, kTestPolicyKey, KEY_ALL_ACCESS);
897 ASSERT_TRUE(hklm_key.Valid()); 890 ASSERT_TRUE(hklm_key.Valid());
898 hklm_key.WriteValue(UTF8ToUTF16(test_policy_definitions::kKeyString).c_str(), 891 hklm_key.WriteValue(UTF8ToUTF16(test_keys::kKeyString).c_str(),
899 UTF8ToUTF16("hklm").c_str()); 892 UTF8ToUTF16("hklm").c_str());
900 RegKey hkcu_key(HKEY_CURRENT_USER, kTestPolicyKey, KEY_ALL_ACCESS); 893 RegKey hkcu_key(HKEY_CURRENT_USER, kTestPolicyKey, KEY_ALL_ACCESS);
901 ASSERT_TRUE(hkcu_key.Valid()); 894 ASSERT_TRUE(hkcu_key.Valid());
902 hkcu_key.WriteValue(UTF8ToUTF16(test_policy_definitions::kKeyString).c_str(), 895 hkcu_key.WriteValue(UTF8ToUTF16(test_keys::kKeyString).c_str(),
903 UTF8ToUTF16("hkcu").c_str()); 896 UTF8ToUTF16("hkcu").c_str());
904 897
905 PolicyBundle expected; 898 PolicyBundle expected;
906 expected.Get(PolicyNamespace(POLICY_DOMAIN_CHROME, std::string())) 899 expected.Get(PolicyNamespace(POLICY_DOMAIN_CHROME, std::string()))
907 .Set(test_policy_definitions::kKeyString, 900 .Set(test_keys::kKeyString,
908 POLICY_LEVEL_MANDATORY, 901 POLICY_LEVEL_MANDATORY,
909 POLICY_SCOPE_MACHINE, 902 POLICY_SCOPE_MACHINE,
910 base::Value::CreateStringValue("hklm"), NULL); 903 base::Value::CreateStringValue("hklm"), NULL);
911 EXPECT_TRUE(Matches(expected)); 904 EXPECT_TRUE(Matches(expected));
912 } 905 }
913 906
914 TEST_F(PolicyLoaderWinTest, Load3rdPartyWithoutSchema) { 907 TEST_F(PolicyLoaderWinTest, Load3rdPartyWithoutSchema) {
915 base::DictionaryValue dict; 908 base::DictionaryValue dict;
916 dict.SetString("str", "string value"); 909 dict.SetString("str", "string value");
917 dict.SetInteger("int", 123); 910 dict.SetInteger("int", 123);
(...skipping 298 matching lines...) Expand 10 before | Expand all | Expand 10 after
1216 .LoadFrom(&expected_a, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE); 1209 .LoadFrom(&expected_a, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE);
1217 base::DictionaryValue expected_b; 1210 base::DictionaryValue expected_b;
1218 expected_b.SetInteger("policy 1", 2); 1211 expected_b.SetInteger("policy 1", 2);
1219 expected.Get(PolicyNamespace(POLICY_DOMAIN_EXTENSIONS, 1212 expected.Get(PolicyNamespace(POLICY_DOMAIN_EXTENSIONS,
1220 "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb")) 1213 "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"))
1221 .LoadFrom(&expected_b, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE); 1214 .LoadFrom(&expected_b, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE);
1222 EXPECT_TRUE(Matches(expected)); 1215 EXPECT_TRUE(Matches(expected));
1223 } 1216 }
1224 1217
1225 } // namespace policy 1218 } // namespace policy
OLDNEW
« no previous file with comments | « chrome/browser/policy/policy_loader_win.cc ('k') | chrome/browser/policy/policy_prefs_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698