OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/chrome_elf_init_win.h" | 5 #include "chrome/browser/chrome_elf_init_win.h" |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 | 8 |
9 #include "base/macros.h" | 9 #include "base/macros.h" |
10 #include "base/metrics/field_trial.h" | 10 #include "base/metrics/field_trial.h" |
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
159 TEST_F(ChromeBlacklistTrialTest, AddFinchBlacklistToRegistry) { | 159 TEST_F(ChromeBlacklistTrialTest, AddFinchBlacklistToRegistry) { |
160 // Create the field trial with the blacklist enabled group. | 160 // Create the field trial with the blacklist enabled group. |
161 base::FieldTrialList field_trial_list( | 161 base::FieldTrialList field_trial_list( |
162 new metrics::SHA1EntropyProvider("test")); | 162 new metrics::SHA1EntropyProvider("test")); |
163 | 163 |
164 scoped_refptr<base::FieldTrial> trial(base::FieldTrialList::CreateFieldTrial( | 164 scoped_refptr<base::FieldTrial> trial(base::FieldTrialList::CreateFieldTrial( |
165 kBrowserBlacklistTrialName, kBrowserBlacklistTrialEnabledGroupName)); | 165 kBrowserBlacklistTrialName, kBrowserBlacklistTrialEnabledGroupName)); |
166 | 166 |
167 // Set up the trial with the desired parameters. | 167 // Set up the trial with the desired parameters. |
168 std::map<std::string, std::string> desired_params; | 168 std::map<std::string, std::string> desired_params; |
169 desired_params["TestDllName1"] = "TestDll1.dll"; | 169 |
170 desired_params["TestDllName2"] = "TestDll2.dll"; | 170 desired_params[blacklist::kRegistryFinchListValueNameStr] = |
| 171 "TestDll1.dll,TestDll2.dll"; |
171 | 172 |
172 variations::AssociateVariationParams( | 173 variations::AssociateVariationParams( |
173 kBrowserBlacklistTrialName, | 174 kBrowserBlacklistTrialName, |
174 kBrowserBlacklistTrialEnabledGroupName, | 175 kBrowserBlacklistTrialEnabledGroupName, |
175 desired_params); | 176 desired_params); |
176 | 177 |
177 // This should add the dlls in those parameters to the registry. | 178 // This should add the dlls in those parameters to the registry. |
178 AddFinchBlacklistToRegistry(); | 179 AddFinchBlacklistToRegistry(); |
179 | 180 |
180 // Check that all the values in desired_params were added to the registry. | 181 // Check that all the dll names in desired_params were added to the registry. |
| 182 std::vector<std::wstring> dlls; |
| 183 |
181 base::win::RegKey finch_blacklist_registry_key( | 184 base::win::RegKey finch_blacklist_registry_key( |
182 HKEY_CURRENT_USER, | 185 HKEY_CURRENT_USER, |
183 blacklist::kRegistryFinchListPath, | 186 blacklist::kRegistryFinchListPath, |
184 KEY_QUERY_VALUE | KEY_SET_VALUE); | 187 KEY_QUERY_VALUE | KEY_SET_VALUE); |
185 | 188 |
186 ASSERT_EQ(desired_params.size(), | 189 ASSERT_TRUE(finch_blacklist_registry_key.HasValue( |
187 finch_blacklist_registry_key.GetValueCount()); | 190 blacklist::kRegistryFinchListValueName)); |
| 191 ASSERT_EQ(ERROR_SUCCESS, finch_blacklist_registry_key.ReadValues( |
| 192 blacklist::kRegistryFinchListValueName, &dlls)); |
188 | 193 |
189 for (std::map<std::string, std::string>::iterator it = desired_params.begin(); | 194 ASSERT_EQ((size_t)2, |
190 it != desired_params.end(); | 195 /* Number of dll names passed in this test. */ dlls.size()); |
191 ++it) { | 196 EXPECT_STREQ(L"TestDll1.dll", dlls[0].c_str()); |
192 std::wstring name = base::UTF8ToWide(it->first); | 197 EXPECT_STREQ(L"TestDll2.dll", dlls[1].c_str()); |
193 ASSERT_TRUE(finch_blacklist_registry_key.HasValue(name.c_str())); | |
194 } | |
195 } | 198 } |
196 | 199 |
197 } // namespace | 200 } // namespace |
OLD | NEW |