| 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 585 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 596 DWORD value) { | 596 DWORD value) { |
| 597 value = base::ByteSwapToLE32(value); | 597 value = base::ByteSwapToLE32(value); |
| 598 AppendRecordToPRegFile(path, key, REG_DWORD, sizeof(DWORD), | 598 AppendRecordToPRegFile(path, key, REG_DWORD, sizeof(DWORD), |
| 599 reinterpret_cast<uint8*>(&value)); | 599 reinterpret_cast<uint8*>(&value)); |
| 600 } | 600 } |
| 601 | 601 |
| 602 void PRegTestHarness::AppendStringToPRegFile(const base::string16& path, | 602 void PRegTestHarness::AppendStringToPRegFile(const base::string16& path, |
| 603 const std::string& key, | 603 const std::string& key, |
| 604 const std::string& value) { | 604 const std::string& value) { |
| 605 base::string16 string16_value(UTF8ToUTF16(value)); | 605 base::string16 string16_value(UTF8ToUTF16(value)); |
| 606 std::vector<char16> data; | 606 std::vector<base::char16> data; |
| 607 std::transform(string16_value.begin(), string16_value.end(), | 607 std::transform(string16_value.begin(), string16_value.end(), |
| 608 std::back_inserter(data), std::ptr_fun(base::ByteSwapToLE16)); | 608 std::back_inserter(data), std::ptr_fun(base::ByteSwapToLE16)); |
| 609 data.push_back(base::ByteSwapToLE16(L'\0')); | 609 data.push_back(base::ByteSwapToLE16(L'\0')); |
| 610 | 610 |
| 611 AppendRecordToPRegFile(path, key, REG_SZ, data.size() * sizeof(char16), | 611 AppendRecordToPRegFile(path, key, REG_SZ, data.size() * sizeof(base::char16), |
| 612 reinterpret_cast<uint8*>(vector_as_array(&data))); | 612 reinterpret_cast<uint8*>(vector_as_array(&data))); |
| 613 } | 613 } |
| 614 | 614 |
| 615 void PRegTestHarness::AppendPolicyToPRegFile(const base::string16& path, | 615 void PRegTestHarness::AppendPolicyToPRegFile(const base::string16& path, |
| 616 const std::string& key, | 616 const std::string& key, |
| 617 const base::Value* value) { | 617 const base::Value* value) { |
| 618 switch (value->GetType()) { | 618 switch (value->GetType()) { |
| 619 case base::Value::TYPE_BOOLEAN: { | 619 case base::Value::TYPE_BOOLEAN: { |
| 620 bool boolean_value = false; | 620 bool boolean_value = false; |
| 621 ASSERT_TRUE(value->GetAsBoolean(&boolean_value)); | 621 ASSERT_TRUE(value->GetAsBoolean(&boolean_value)); |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 686 testing::Values(RegistryTestHarness::CreateHKCU, | 686 testing::Values(RegistryTestHarness::CreateHKCU, |
| 687 RegistryTestHarness::CreateHKLM, | 687 RegistryTestHarness::CreateHKLM, |
| 688 PRegTestHarness::Create)); | 688 PRegTestHarness::Create)); |
| 689 | 689 |
| 690 // Test cases for windows policy provider specific functionality. | 690 // Test cases for windows policy provider specific functionality. |
| 691 class PolicyLoaderWinTest : public PolicyTestBase, | 691 class PolicyLoaderWinTest : public PolicyTestBase, |
| 692 public AppliedGPOListProvider { | 692 public AppliedGPOListProvider { |
| 693 protected: | 693 protected: |
| 694 // The policy key this tests places data under. This must match the data | 694 // The policy key this tests places data under. This must match the data |
| 695 // files in chrome/test/data/policy/gpo. | 695 // files in chrome/test/data/policy/gpo. |
| 696 static const char16 kTestPolicyKey[]; | 696 static const base::char16 kTestPolicyKey[]; |
| 697 | 697 |
| 698 PolicyLoaderWinTest() | 698 PolicyLoaderWinTest() |
| 699 : gpo_list_(NULL), | 699 : gpo_list_(NULL), |
| 700 gpo_list_status_(ERROR_ACCESS_DENIED) {} | 700 gpo_list_status_(ERROR_ACCESS_DENIED) {} |
| 701 virtual ~PolicyLoaderWinTest() {} | 701 virtual ~PolicyLoaderWinTest() {} |
| 702 | 702 |
| 703 virtual void SetUp() OVERRIDE { | 703 virtual void SetUp() OVERRIDE { |
| 704 PolicyTestBase::SetUp(); | 704 PolicyTestBase::SetUp(); |
| 705 | 705 |
| 706 ASSERT_TRUE(PathService::Get(base::DIR_SOURCE_ROOT, &test_data_dir_)); | 706 ASSERT_TRUE(PathService::Get(base::DIR_SOURCE_ROOT, &test_data_dir_)); |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 775 POLICY_SCOPE_MACHINE); | 775 POLICY_SCOPE_MACHINE); |
| 776 return Matches(expected); | 776 return Matches(expected); |
| 777 } | 777 } |
| 778 | 778 |
| 779 ScopedGroupPolicyRegistrySandbox registry_sandbox_; | 779 ScopedGroupPolicyRegistrySandbox registry_sandbox_; |
| 780 PGROUP_POLICY_OBJECT gpo_list_; | 780 PGROUP_POLICY_OBJECT gpo_list_; |
| 781 DWORD gpo_list_status_; | 781 DWORD gpo_list_status_; |
| 782 base::FilePath test_data_dir_; | 782 base::FilePath test_data_dir_; |
| 783 }; | 783 }; |
| 784 | 784 |
| 785 const char16 PolicyLoaderWinTest::kTestPolicyKey[] = | 785 const base::char16 PolicyLoaderWinTest::kTestPolicyKey[] = |
| 786 L"SOFTWARE\\Policies\\Chromium"; | 786 L"SOFTWARE\\Policies\\Chromium"; |
| 787 | 787 |
| 788 TEST_F(PolicyLoaderWinTest, HKLMOverHKCU) { | 788 TEST_F(PolicyLoaderWinTest, HKLMOverHKCU) { |
| 789 RegKey hklm_key(HKEY_LOCAL_MACHINE, kTestPolicyKey, KEY_ALL_ACCESS); | 789 RegKey hklm_key(HKEY_LOCAL_MACHINE, kTestPolicyKey, KEY_ALL_ACCESS); |
| 790 ASSERT_TRUE(hklm_key.Valid()); | 790 ASSERT_TRUE(hklm_key.Valid()); |
| 791 hklm_key.WriteValue(UTF8ToUTF16(test_keys::kKeyString).c_str(), | 791 hklm_key.WriteValue(UTF8ToUTF16(test_keys::kKeyString).c_str(), |
| 792 UTF8ToUTF16("hklm").c_str()); | 792 UTF8ToUTF16("hklm").c_str()); |
| 793 RegKey hkcu_key(HKEY_CURRENT_USER, kTestPolicyKey, KEY_ALL_ACCESS); | 793 RegKey hkcu_key(HKEY_CURRENT_USER, kTestPolicyKey, KEY_ALL_ACCESS); |
| 794 ASSERT_TRUE(hkcu_key.Valid()); | 794 ASSERT_TRUE(hkcu_key.Valid()); |
| 795 hkcu_key.WriteValue(UTF8ToUTF16(test_keys::kKeyString).c_str(), | 795 hkcu_key.WriteValue(UTF8ToUTF16(test_keys::kKeyString).c_str(), |
| (...skipping 383 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1179 PolicyMap& expected_policy = expected.Get(ns); | 1179 PolicyMap& expected_policy = expected.Get(ns); |
| 1180 expected_policy.Set("alternative_browser_path", | 1180 expected_policy.Set("alternative_browser_path", |
| 1181 POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, | 1181 POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, |
| 1182 new base::StringValue("c:\\legacy\\browser.exe"), NULL); | 1182 new base::StringValue("c:\\legacy\\browser.exe"), NULL); |
| 1183 expected_policy.Set("url_list", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, | 1183 expected_policy.Set("url_list", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, |
| 1184 list.DeepCopy(), NULL); | 1184 list.DeepCopy(), NULL); |
| 1185 EXPECT_TRUE(Matches(expected)); | 1185 EXPECT_TRUE(Matches(expected)); |
| 1186 } | 1186 } |
| 1187 | 1187 |
| 1188 } // namespace policy | 1188 } // namespace policy |
| OLD | NEW |