OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 <stddef.h> | 5 #include <stddef.h> |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 | 8 |
9 #include "base/environment.h" | 9 #include "base/environment.h" |
10 #include "base/files/file.h" | 10 #include "base/files/file.h" |
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
126 registry_util::RegistryOverrideManager override_manager_; | 126 registry_util::RegistryOverrideManager override_manager_; |
127 | 127 |
128 // The number of dlls initially blocked by the blacklist. | 128 // The number of dlls initially blocked by the blacklist. |
129 int num_initially_blocked_; | 129 int num_initially_blocked_; |
130 | 130 |
131 private: | 131 private: |
132 // This function puts registry-key redirection paths into | 132 // This function puts registry-key redirection paths into |
133 // process-specific environment variables, for our test DLLs to access. | 133 // process-specific environment variables, for our test DLLs to access. |
134 // This will only work as long as the IPC is within the same process. | 134 // This will only work as long as the IPC is within the same process. |
135 void IpcOverrides() { | 135 void IpcOverrides() { |
136 if (::wcslen(nt::HKCU_override) != 0) { | 136 base::string16 temp = nt::GetTestingOverride(nt::HKCU); |
137 ASSERT_TRUE( | 137 if (!temp.empty()) |
138 ::SetEnvironmentVariableW(L"hkcu_override", nt::HKCU_override)); | 138 ASSERT_TRUE(::SetEnvironmentVariableW(L"hkcu_override", temp.c_str())); |
139 } | 139 temp = nt::GetTestingOverride(nt::HKLM); |
140 if (::wcslen(nt::HKLM_override) != 0) { | 140 if (!temp.empty()) |
141 ASSERT_TRUE( | 141 ASSERT_TRUE(::SetEnvironmentVariableW(L"hklm_override", temp.c_str())); |
142 ::SetEnvironmentVariableW(L"hklm_override", nt::HKLM_override)); | |
143 } | |
144 } | 142 } |
145 | 143 |
146 void SetUp() override { | 144 void SetUp() override { |
147 base::string16 temp; | 145 base::string16 temp; |
148 override_manager_.OverrideRegistry(HKEY_CURRENT_USER, &temp); | 146 override_manager_.OverrideRegistry(HKEY_CURRENT_USER, &temp); |
149 ::wcsncpy(nt::HKCU_override, temp.c_str(), nt::g_kRegMaxPathLen - 1); | 147 ASSERT_TRUE(nt::SetTestingOverride(nt::HKCU, temp)); |
150 | 148 |
151 // Make the override path available to our test DLL. | 149 // Make the override path available to our test DLL. |
152 IpcOverrides(); | 150 IpcOverrides(); |
153 | 151 |
154 // Load the main test Dll now. | 152 // Load the main test Dll now. |
155 // Note: this has to happen after we set up the registry overrides. | 153 // Note: this has to happen after we set up the registry overrides. |
156 HMODULE dll = nullptr; | 154 HMODULE dll = nullptr; |
157 dll = ::LoadLibraryW(L"blacklist_test_main_dll.dll"); | 155 dll = ::LoadLibraryW(L"blacklist_test_main_dll.dll"); |
158 if (!dll) | 156 if (!dll) |
159 return; | 157 return; |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
196 KEY_QUERY_VALUE | KEY_SET_VALUE)); | 194 KEY_QUERY_VALUE | KEY_SET_VALUE)); |
197 | 195 |
198 // Find out how many dlls were blocked before the test starts. | 196 // Find out how many dlls were blocked before the test starts. |
199 TestDll_SuccessfullyBlocked(NULL, &num_initially_blocked_); | 197 TestDll_SuccessfullyBlocked(NULL, &num_initially_blocked_); |
200 } | 198 } |
201 | 199 |
202 void TearDown() override { | 200 void TearDown() override { |
203 TestDll_RemoveDllFromBlacklist(kTestDllName1); | 201 TestDll_RemoveDllFromBlacklist(kTestDllName1); |
204 TestDll_RemoveDllFromBlacklist(kTestDllName2); | 202 TestDll_RemoveDllFromBlacklist(kTestDllName2); |
205 TestDll_RemoveDllFromBlacklist(kTestDllName3); | 203 TestDll_RemoveDllFromBlacklist(kTestDllName3); |
| 204 |
| 205 ASSERT_TRUE(nt::SetTestingOverride(nt::HKCU, base::string16())); |
206 } | 206 } |
207 | |
208 // A scoped temporary directory to be destroyed with this test. | |
209 base::ScopedTempDir reg_override_dir_; | |
210 }; | 207 }; |
211 | 208 |
212 TEST_F(BlacklistTest, Beacon) { | 209 TEST_F(BlacklistTest, Beacon) { |
213 // Ensure that the beacon state starts off 'running' for this version. | 210 // Ensure that the beacon state starts off 'running' for this version. |
214 LONG result = blacklist_registry_key_->WriteValue( | 211 LONG result = blacklist_registry_key_->WriteValue( |
215 blacklist::kBeaconState, blacklist::BLACKLIST_SETUP_RUNNING); | 212 blacklist::kBeaconState, blacklist::BLACKLIST_SETUP_RUNNING); |
216 EXPECT_EQ(ERROR_SUCCESS, result); | 213 EXPECT_EQ(ERROR_SUCCESS, result); |
217 | 214 |
218 result = blacklist_registry_key_->WriteValue(blacklist::kBeaconVersion, | 215 result = blacklist_registry_key_->WriteValue(blacklist::kBeaconVersion, |
219 TEXT(CHROME_VERSION_STRING)); | 216 TEXT(CHROME_VERSION_STRING)); |
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
382 &blacklist_state); | 379 &blacklist_state); |
383 EXPECT_EQ(blacklist_state, blacklist::BLACKLIST_SETUP_RUNNING); | 380 EXPECT_EQ(blacklist_state, blacklist::BLACKLIST_SETUP_RUNNING); |
384 | 381 |
385 DWORD attempt_count = blacklist::kBeaconMaxAttempts; | 382 DWORD attempt_count = blacklist::kBeaconMaxAttempts; |
386 blacklist_registry_key_->ReadValueDW(blacklist::kBeaconAttemptCount, | 383 blacklist_registry_key_->ReadValueDW(blacklist::kBeaconAttemptCount, |
387 &attempt_count); | 384 &attempt_count); |
388 EXPECT_EQ(static_cast<DWORD>(0), attempt_count); | 385 EXPECT_EQ(static_cast<DWORD>(0), attempt_count); |
389 } | 386 } |
390 | 387 |
391 } // namespace | 388 } // namespace |
OLD | NEW |