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

Side by Side Diff: chrome/browser/safe_browsing/unverified_download_field_trial_unittest.cc

Issue 1979153002: Use FileTypePolicies for is_archive and is_supported classifications. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@split_by_platform
Patch Set: rebase Created 4 years, 7 months 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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/safe_browsing/unverified_download_field_trial.h" 5 #include "chrome/browser/safe_browsing/unverified_download_field_trial.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/files/file_path.h" 8 #include "base/files/file_path.h"
9 #include "base/metrics/field_trial.h" 9 #include "base/metrics/field_trial.h"
10 #include "chrome/common/chrome_switches.h" 10 #include "chrome/common/chrome_switches.h"
11 #include "chrome/common/safe_browsing/download_protection_util.h" 11 #include "chrome/common/safe_browsing/download_protection_util.h"
12 #include "chrome/common/safe_browsing/file_type_policies.h"
12 #include "components/variations/variations_associated_data.h" 13 #include "components/variations/variations_associated_data.h"
13 #include "testing/gmock/include/gmock/gmock.h" 14 #include "testing/gmock/include/gmock/gmock.h"
14 #include "testing/gtest/include/gtest/gtest.h" 15 #include "testing/gtest/include/gtest/gtest.h"
15 16
16 namespace safe_browsing { 17 namespace safe_browsing {
17 18
18 namespace { 19 namespace {
19 20
20 const base::FilePath::CharType kSafeFilename[] = FILE_PATH_LITERAL("foo.txt"); 21 const base::FilePath::CharType kSafeFilename[] = FILE_PATH_LITERAL("foo.txt");
21 const base::FilePath::CharType kHandledFilename[] = 22 const base::FilePath::CharType kHandledFilename[] =
(...skipping 24 matching lines...) Expand all
46 variations::testing::ClearAllVariationIDs(); 47 variations::testing::ClearAllVariationIDs();
47 variations::testing::ClearAllVariationParams(); 48 variations::testing::ClearAllVariationParams();
48 } 49 }
49 50
50 private: 51 private:
51 base::FieldTrialList field_trial_list_; 52 base::FieldTrialList field_trial_list_;
52 }; 53 };
53 54
54 } // namespace 55 } // namespace
55 56
57 class UnverifiedDownloadFieldTrialTest : public testing::Test {
58 protected:
59 ~UnverifiedDownloadFieldTrialTest() override {}
60
61 // This manages the lifetime of FileTypePolicies::GlobalInstance()
62 FileTypePoliciesManager file_type_policies_manager_;
63 };
64
56 // Verify some test assumptions. Namely, that kSafeFilename is not a supported 65 // Verify some test assumptions. Namely, that kSafeFilename is not a supported
57 // binary file and that kHandledFilename is. 66 // binary file and that kHandledFilename is.
58 TEST(UnverifiedDownloadFieldTrialTest, Assumptions) { 67 TEST_F(UnverifiedDownloadFieldTrialTest, Assumptions) {
59 EXPECT_TRUE(download_protection_util::IsSupportedBinaryFile( 68 FileTypePolicies* policies = FileTypePolicies::GlobalInstance();
60 base::FilePath(kHandledFilename))); 69 EXPECT_TRUE(policies->IsCheckedBinaryFile(base::FilePath(kHandledFilename)));
61 EXPECT_FALSE(download_protection_util::IsSupportedBinaryFile( 70 EXPECT_FALSE(policies->IsCheckedBinaryFile(base::FilePath(kSafeFilename)));
62 base::FilePath(kSafeFilename)));
63 } 71 }
64 72
65 // Verify that disallow-unchecked-dangerous-downloads command line switch causes 73 // Verify that disallow-unchecked-dangerous-downloads command line switch causes
66 // all dangerous file types to be blocked, and that safe files types are still 74 // all dangerous file types to be blocked, and that safe files types are still
67 // allowed. 75 // allowed.
68 TEST(UnverifiedDownloadFieldTrialTest, CommandLine_DisallowDangerous) { 76 TEST_F(UnverifiedDownloadFieldTrialTest, CommandLine_DisallowDangerous) {
69 base::CommandLine::ForCurrentProcess()->AppendSwitch( 77 base::CommandLine::ForCurrentProcess()->AppendSwitch(
70 switches::kDisallowUncheckedDangerousDownloads); 78 switches::kDisallowUncheckedDangerousDownloads);
71 EXPECT_TRUE(IsUnverifiedDownloadAllowedByFieldTrial( 79 EXPECT_TRUE(IsUnverifiedDownloadAllowedByFieldTrial(
72 base::FilePath(kSafeFilename))); 80 base::FilePath(kSafeFilename)));
73 EXPECT_FALSE(IsUnverifiedDownloadAllowedByFieldTrial( 81 EXPECT_FALSE(IsUnverifiedDownloadAllowedByFieldTrial(
74 base::FilePath(kHandledFilename))); 82 base::FilePath(kHandledFilename)));
75 } 83 }
76 84
77 // Verify that a wildcard blacklist matches all file types. 85 // Verify that a wildcard blacklist matches all file types.
78 TEST(UnverifiedDownloadFieldTrialTest, WildCardBlacklist) { 86 TEST_F(UnverifiedDownloadFieldTrialTest, WildCardBlacklist) {
79 FieldTrialParameters parameters; 87 FieldTrialParameters parameters;
80 parameters[kUnverifiedDownloadFieldTrialBlacklistParam] = "*"; 88 parameters[kUnverifiedDownloadFieldTrialBlacklistParam] = "*";
81 parameters[kUnverifiedDownloadFieldTrialWhitelistParam] = ".xyz"; 89 parameters[kUnverifiedDownloadFieldTrialWhitelistParam] = ".xyz";
82 ScopedFieldTrialState field_trial( 90 ScopedFieldTrialState field_trial(
83 kUnverifiedDownloadFieldTrialDisableByParameter, parameters); 91 kUnverifiedDownloadFieldTrialDisableByParameter, parameters);
84 92
85 EXPECT_FALSE(IsUnverifiedDownloadAllowedByFieldTrial( 93 EXPECT_FALSE(IsUnverifiedDownloadAllowedByFieldTrial(
86 base::FilePath(kSafeFilename))); 94 base::FilePath(kSafeFilename)));
87 EXPECT_FALSE(IsUnverifiedDownloadAllowedByFieldTrial( 95 EXPECT_FALSE(IsUnverifiedDownloadAllowedByFieldTrial(
88 base::FilePath(kHandledFilename))); 96 base::FilePath(kHandledFilename)));
89 EXPECT_FALSE(IsUnverifiedDownloadAllowedByFieldTrial( 97 EXPECT_FALSE(IsUnverifiedDownloadAllowedByFieldTrial(
90 base::FilePath(FILE_PATH_LITERAL("foo.xyz")))); 98 base::FilePath(FILE_PATH_LITERAL("foo.xyz"))));
91 } 99 }
92 100
93 // Verify that allow-unchecked-dangerous-downloads command line option takes 101 // Verify that allow-unchecked-dangerous-downloads command line option takes
94 // precedence over a Finch trial specified blacklist. 102 // precedence over a Finch trial specified blacklist.
95 TEST(UnverifiedDownloadFieldTrialTest, BlacklistVsCommandline) { 103 TEST_F(UnverifiedDownloadFieldTrialTest, BlacklistVsCommandline) {
96 FieldTrialParameters parameters; 104 FieldTrialParameters parameters;
97 parameters[kUnverifiedDownloadFieldTrialBlacklistParam] = "*"; 105 parameters[kUnverifiedDownloadFieldTrialBlacklistParam] = "*";
98 parameters[kUnverifiedDownloadFieldTrialWhitelistParam] = ".xyz"; 106 parameters[kUnverifiedDownloadFieldTrialWhitelistParam] = ".xyz";
99 ScopedFieldTrialState field_trial( 107 ScopedFieldTrialState field_trial(
100 kUnverifiedDownloadFieldTrialDisableByParameter, parameters); 108 kUnverifiedDownloadFieldTrialDisableByParameter, parameters);
101 base::CommandLine::ForCurrentProcess()->AppendSwitch( 109 base::CommandLine::ForCurrentProcess()->AppendSwitch(
102 switches::kAllowUncheckedDangerousDownloads); 110 switches::kAllowUncheckedDangerousDownloads);
103 111
104 EXPECT_TRUE(IsUnverifiedDownloadAllowedByFieldTrial( 112 EXPECT_TRUE(IsUnverifiedDownloadAllowedByFieldTrial(
105 base::FilePath(kSafeFilename))); 113 base::FilePath(kSafeFilename)));
106 EXPECT_TRUE(IsUnverifiedDownloadAllowedByFieldTrial( 114 EXPECT_TRUE(IsUnverifiedDownloadAllowedByFieldTrial(
107 base::FilePath(kHandledFilename))); 115 base::FilePath(kHandledFilename)));
108 } 116 }
109 117
110 // Verify that disallow-unchecked-dangerous-downloads command line option takes 118 // Verify that disallow-unchecked-dangerous-downloads command line option takes
111 // precedence over a Finch trial specified whitelist. 119 // precedence over a Finch trial specified whitelist.
112 TEST(UnverifiedDownloadFieldTrialTest, WhitelistVsCommandline) { 120 TEST_F(UnverifiedDownloadFieldTrialTest, WhitelistVsCommandline) {
113 FieldTrialParameters parameters; 121 FieldTrialParameters parameters;
114 parameters[kUnverifiedDownloadFieldTrialBlacklistParam] = ".foo"; 122 parameters[kUnverifiedDownloadFieldTrialBlacklistParam] = ".foo";
115 parameters[kUnverifiedDownloadFieldTrialWhitelistParam] = ".exe"; 123 parameters[kUnverifiedDownloadFieldTrialWhitelistParam] = ".exe";
116 ScopedFieldTrialState field_trial( 124 ScopedFieldTrialState field_trial(
117 kUnverifiedDownloadFieldTrialDisableByParameter, parameters); 125 kUnverifiedDownloadFieldTrialDisableByParameter, parameters);
118 base::CommandLine::ForCurrentProcess()->AppendSwitch( 126 base::CommandLine::ForCurrentProcess()->AppendSwitch(
119 switches::kDisallowUncheckedDangerousDownloads); 127 switches::kDisallowUncheckedDangerousDownloads);
120 128
121 EXPECT_FALSE(IsUnverifiedDownloadAllowedByFieldTrial( 129 EXPECT_FALSE(IsUnverifiedDownloadAllowedByFieldTrial(
122 base::FilePath(FILE_PATH_LITERAL("foo.foo")))); 130 base::FilePath(FILE_PATH_LITERAL("foo.foo"))));
123 EXPECT_FALSE(IsUnverifiedDownloadAllowedByFieldTrial( 131 EXPECT_FALSE(IsUnverifiedDownloadAllowedByFieldTrial(
124 base::FilePath(FILE_PATH_LITERAL("foo.exe")))); 132 base::FilePath(FILE_PATH_LITERAL("foo.exe"))));
125 EXPECT_TRUE(IsUnverifiedDownloadAllowedByFieldTrial( 133 EXPECT_TRUE(IsUnverifiedDownloadAllowedByFieldTrial(
126 base::FilePath(FILE_PATH_LITERAL("foo.txt")))); 134 base::FilePath(FILE_PATH_LITERAL("foo.txt"))));
127 } 135 }
128 136
129 // Verify that wildcards only work if they are specified by themselves. 137 // Verify that wildcards only work if they are specified by themselves.
130 TEST(UnverifiedDownloadFieldTrialTest, WildcardOnlyByItself) { 138 TEST_F(UnverifiedDownloadFieldTrialTest, WildcardOnlyByItself) {
131 FieldTrialParameters parameters; 139 FieldTrialParameters parameters;
132 parameters[kUnverifiedDownloadFieldTrialBlacklistParam] = ".foo,*"; 140 parameters[kUnverifiedDownloadFieldTrialBlacklistParam] = ".foo,*";
133 parameters[kUnverifiedDownloadFieldTrialWhitelistParam] = ".xyz"; 141 parameters[kUnverifiedDownloadFieldTrialWhitelistParam] = ".xyz";
134 ScopedFieldTrialState field_trial( 142 ScopedFieldTrialState field_trial(
135 kUnverifiedDownloadFieldTrialDisableByParameter, parameters); 143 kUnverifiedDownloadFieldTrialDisableByParameter, parameters);
136 144
137 EXPECT_FALSE(IsUnverifiedDownloadAllowedByFieldTrial( 145 EXPECT_FALSE(IsUnverifiedDownloadAllowedByFieldTrial(
138 base::FilePath(FILE_PATH_LITERAL("foo.foo")))); 146 base::FilePath(FILE_PATH_LITERAL("foo.foo"))));
139 EXPECT_TRUE(IsUnverifiedDownloadAllowedByFieldTrial( 147 EXPECT_TRUE(IsUnverifiedDownloadAllowedByFieldTrial(
140 base::FilePath(FILE_PATH_LITERAL("foo.xyz")))); 148 base::FilePath(FILE_PATH_LITERAL("foo.xyz"))));
141 EXPECT_TRUE(IsUnverifiedDownloadAllowedByFieldTrial( 149 EXPECT_TRUE(IsUnverifiedDownloadAllowedByFieldTrial(
142 base::FilePath(FILE_PATH_LITERAL("foo.txt")))); 150 base::FilePath(FILE_PATH_LITERAL("foo.txt"))));
143 } 151 }
144 152
145 // Verify that the blacklist takes precedence over whitelist. 153 // Verify that the blacklist takes precedence over whitelist.
146 TEST(UnverifiedDownloadFieldTrialTest, WhitelistVsBlacklist) { 154 TEST_F(UnverifiedDownloadFieldTrialTest, WhitelistVsBlacklist) {
147 FieldTrialParameters parameters; 155 FieldTrialParameters parameters;
148 parameters[kUnverifiedDownloadFieldTrialBlacklistParam] = ".abc,.def"; 156 parameters[kUnverifiedDownloadFieldTrialBlacklistParam] = ".abc,.def";
149 parameters[kUnverifiedDownloadFieldTrialWhitelistParam] = ".xyz"; 157 parameters[kUnverifiedDownloadFieldTrialWhitelistParam] = ".xyz";
150 ScopedFieldTrialState field_trial( 158 ScopedFieldTrialState field_trial(
151 kUnverifiedDownloadFieldTrialDisableByParameter, parameters); 159 kUnverifiedDownloadFieldTrialDisableByParameter, parameters);
152 160
153 EXPECT_TRUE(IsUnverifiedDownloadAllowedByFieldTrial( 161 EXPECT_TRUE(IsUnverifiedDownloadAllowedByFieldTrial(
154 base::FilePath(kSafeFilename))); 162 base::FilePath(kSafeFilename)));
155 EXPECT_TRUE(IsUnverifiedDownloadAllowedByFieldTrial( 163 EXPECT_TRUE(IsUnverifiedDownloadAllowedByFieldTrial(
156 base::FilePath(kHandledFilename))); 164 base::FilePath(kHandledFilename)));
157 EXPECT_TRUE(IsUnverifiedDownloadAllowedByFieldTrial( 165 EXPECT_TRUE(IsUnverifiedDownloadAllowedByFieldTrial(
158 base::FilePath(FILE_PATH_LITERAL("foo.xyz")))); 166 base::FilePath(FILE_PATH_LITERAL("foo.xyz"))));
159 EXPECT_FALSE(IsUnverifiedDownloadAllowedByFieldTrial( 167 EXPECT_FALSE(IsUnverifiedDownloadAllowedByFieldTrial(
160 base::FilePath(FILE_PATH_LITERAL("foo.abc")))); 168 base::FilePath(FILE_PATH_LITERAL("foo.abc"))));
161 EXPECT_FALSE(IsUnverifiedDownloadAllowedByFieldTrial( 169 EXPECT_FALSE(IsUnverifiedDownloadAllowedByFieldTrial(
162 base::FilePath(FILE_PATH_LITERAL("foo.def")))); 170 base::FilePath(FILE_PATH_LITERAL("foo.def"))));
163 } 171 }
164 172
165 // Verify that nothing terrible happens if no parameters are specified. 173 // Verify that nothing terrible happens if no parameters are specified.
166 TEST(UnverifiedDownloadFieldTrialTest, MissingParameters) { 174 TEST_F(UnverifiedDownloadFieldTrialTest, MissingParameters) {
167 ScopedFieldTrialState field_trial( 175 ScopedFieldTrialState field_trial(
168 kUnverifiedDownloadFieldTrialDisableByParameter); 176 kUnverifiedDownloadFieldTrialDisableByParameter);
169 177
170 EXPECT_TRUE(IsUnverifiedDownloadAllowedByFieldTrial( 178 EXPECT_TRUE(IsUnverifiedDownloadAllowedByFieldTrial(
171 base::FilePath(kSafeFilename))); 179 base::FilePath(kSafeFilename)));
172 EXPECT_TRUE(IsUnverifiedDownloadAllowedByFieldTrial( 180 EXPECT_TRUE(IsUnverifiedDownloadAllowedByFieldTrial(
173 base::FilePath(kHandledFilename))); 181 base::FilePath(kHandledFilename)));
174 } 182 }
175 183
176 // Verify that nothing terrible happens if the parameters set for a field trial 184 // Verify that nothing terrible happens if the parameters set for a field trial
177 // are malformed. 185 // are malformed.
178 TEST(UnverifiedDownloadFieldTrialTest, MalformedParameters) { 186 TEST_F(UnverifiedDownloadFieldTrialTest, MalformedParameters) {
179 FieldTrialParameters parameters; 187 FieldTrialParameters parameters;
180 parameters[kUnverifiedDownloadFieldTrialBlacklistParam] = "abcasdfa#??# ~def"; 188 parameters[kUnverifiedDownloadFieldTrialBlacklistParam] = "abcasdfa#??# ~def";
181 parameters[kUnverifiedDownloadFieldTrialWhitelistParam] = 189 parameters[kUnverifiedDownloadFieldTrialWhitelistParam] =
182 "Robert'); DROP TABLE FinchTrials;--"; 190 "Robert'); DROP TABLE FinchTrials;--";
183 ScopedFieldTrialState field_trial( 191 ScopedFieldTrialState field_trial(
184 kUnverifiedDownloadFieldTrialDisableByParameter, parameters); 192 kUnverifiedDownloadFieldTrialDisableByParameter, parameters);
185 193
186 EXPECT_TRUE(IsUnverifiedDownloadAllowedByFieldTrial( 194 EXPECT_TRUE(IsUnverifiedDownloadAllowedByFieldTrial(
187 base::FilePath(kSafeFilename))); 195 base::FilePath(kSafeFilename)));
188 EXPECT_TRUE(IsUnverifiedDownloadAllowedByFieldTrial( 196 EXPECT_TRUE(IsUnverifiedDownloadAllowedByFieldTrial(
189 base::FilePath(kHandledFilename))); 197 base::FilePath(kHandledFilename)));
190 } 198 }
191 199
192 // Verify that nothing terrible happens if the parameters set for a field trial 200 // Verify that nothing terrible happens if the parameters set for a field trial
193 // are empty. 201 // are empty.
194 TEST(UnverifiedDownloadFieldTrialTest, DisableByParam_Empty) { 202 TEST_F(UnverifiedDownloadFieldTrialTest, DisableByParam_Empty) {
195 FieldTrialParameters parameters; 203 FieldTrialParameters parameters;
196 parameters[kUnverifiedDownloadFieldTrialBlacklistParam] = ""; 204 parameters[kUnverifiedDownloadFieldTrialBlacklistParam] = "";
197 parameters[kUnverifiedDownloadFieldTrialWhitelistParam] = ""; 205 parameters[kUnverifiedDownloadFieldTrialWhitelistParam] = "";
198 parameters[kUnverifiedDownloadFieldTrialBlockSBTypesParam] = ""; 206 parameters[kUnverifiedDownloadFieldTrialBlockSBTypesParam] = "";
199 ScopedFieldTrialState field_trial( 207 ScopedFieldTrialState field_trial(
200 kUnverifiedDownloadFieldTrialDisableByParameter, parameters); 208 kUnverifiedDownloadFieldTrialDisableByParameter, parameters);
201 209
202 EXPECT_TRUE(IsUnverifiedDownloadAllowedByFieldTrial( 210 EXPECT_TRUE(IsUnverifiedDownloadAllowedByFieldTrial(
203 base::FilePath(kSafeFilename))); 211 base::FilePath(kSafeFilename)));
204 EXPECT_TRUE(IsUnverifiedDownloadAllowedByFieldTrial( 212 EXPECT_TRUE(IsUnverifiedDownloadAllowedByFieldTrial(
205 base::FilePath(kHandledFilename))); 213 base::FilePath(kHandledFilename)));
206 } 214 }
207 215
208 // Verified that file types specified via white/blacklists are case insensitive. 216 // Verified that file types specified via white/blacklists are case insensitive.
209 TEST(UnverifiedDownloadFieldTrialTest, CaseInsensitive) { 217 TEST_F(UnverifiedDownloadFieldTrialTest, CaseInsensitive) {
210 FieldTrialParameters parameters; 218 FieldTrialParameters parameters;
211 parameters[kUnverifiedDownloadFieldTrialBlacklistParam] = ".ABC,.xyz"; 219 parameters[kUnverifiedDownloadFieldTrialBlacklistParam] = ".ABC,.xyz";
212 ScopedFieldTrialState field_trial( 220 ScopedFieldTrialState field_trial(
213 kUnverifiedDownloadFieldTrialDisableByParameter, parameters); 221 kUnverifiedDownloadFieldTrialDisableByParameter, parameters);
214 222
215 EXPECT_FALSE(IsUnverifiedDownloadAllowedByFieldTrial( 223 EXPECT_FALSE(IsUnverifiedDownloadAllowedByFieldTrial(
216 base::FilePath(FILE_PATH_LITERAL("foo.abc")))); 224 base::FilePath(FILE_PATH_LITERAL("foo.abc"))));
217 EXPECT_FALSE(IsUnverifiedDownloadAllowedByFieldTrial( 225 EXPECT_FALSE(IsUnverifiedDownloadAllowedByFieldTrial(
218 base::FilePath(FILE_PATH_LITERAL("FOO.ABC")))); 226 base::FilePath(FILE_PATH_LITERAL("FOO.ABC"))));
219 EXPECT_FALSE(IsUnverifiedDownloadAllowedByFieldTrial( 227 EXPECT_FALSE(IsUnverifiedDownloadAllowedByFieldTrial(
220 base::FilePath(FILE_PATH_LITERAL("FOO.XYZ")))); 228 base::FilePath(FILE_PATH_LITERAL("FOO.XYZ"))));
221 EXPECT_TRUE(IsUnverifiedDownloadAllowedByFieldTrial( 229 EXPECT_TRUE(IsUnverifiedDownloadAllowedByFieldTrial(
222 base::FilePath(FILE_PATH_LITERAL("FOO.txt")))); 230 base::FilePath(FILE_PATH_LITERAL("FOO.txt"))));
223 } 231 }
224 232
225 // Verify functionality when all parameters are specified. 233 // Verify functionality when all parameters are specified.
226 TEST(UnverifiedDownloadFieldTrialTest, WhitelistVsBlacklistVsSBTypes) { 234 TEST_F(UnverifiedDownloadFieldTrialTest, WhitelistVsBlacklistVsSBTypes) {
227 FieldTrialParameters parameters; 235 FieldTrialParameters parameters;
228 parameters[kUnverifiedDownloadFieldTrialBlacklistParam] = ".abc,.def"; 236 parameters[kUnverifiedDownloadFieldTrialBlacklistParam] = ".abc,.def";
229 parameters[kUnverifiedDownloadFieldTrialWhitelistParam] = ".xyz"; 237 parameters[kUnverifiedDownloadFieldTrialWhitelistParam] = ".xyz";
230 parameters[kUnverifiedDownloadFieldTrialBlockSBTypesParam] = "*"; 238 parameters[kUnverifiedDownloadFieldTrialBlockSBTypesParam] = "*";
231 ScopedFieldTrialState field_trial( 239 ScopedFieldTrialState field_trial(
232 kUnverifiedDownloadFieldTrialDisableByParameter, parameters); 240 kUnverifiedDownloadFieldTrialDisableByParameter, parameters);
233 241
234 EXPECT_TRUE(IsUnverifiedDownloadAllowedByFieldTrial( 242 EXPECT_TRUE(IsUnverifiedDownloadAllowedByFieldTrial(
235 base::FilePath(kSafeFilename))); 243 base::FilePath(kSafeFilename)));
236 EXPECT_FALSE(IsUnverifiedDownloadAllowedByFieldTrial( 244 EXPECT_FALSE(IsUnverifiedDownloadAllowedByFieldTrial(
237 base::FilePath(kHandledFilename))); 245 base::FilePath(kHandledFilename)));
238 EXPECT_TRUE(IsUnverifiedDownloadAllowedByFieldTrial( 246 EXPECT_TRUE(IsUnverifiedDownloadAllowedByFieldTrial(
239 base::FilePath(FILE_PATH_LITERAL("foo.xyz")))); 247 base::FilePath(FILE_PATH_LITERAL("foo.xyz"))));
240 EXPECT_FALSE(IsUnverifiedDownloadAllowedByFieldTrial( 248 EXPECT_FALSE(IsUnverifiedDownloadAllowedByFieldTrial(
241 base::FilePath(FILE_PATH_LITERAL("foo.abc")))); 249 base::FilePath(FILE_PATH_LITERAL("foo.abc"))));
242 EXPECT_FALSE(IsUnverifiedDownloadAllowedByFieldTrial( 250 EXPECT_FALSE(IsUnverifiedDownloadAllowedByFieldTrial(
243 base::FilePath(FILE_PATH_LITERAL("foo.def")))); 251 base::FilePath(FILE_PATH_LITERAL("foo.def"))));
244 } 252 }
245 253
246 // Verify that block_sb_types parameter being empty is equivalent to it not 254 // Verify that block_sb_types parameter being empty is equivalent to it not
247 // being specified. 255 // being specified.
248 TEST(UnverifiedDownloadFieldTrialTest, DisableSBTypesEmpty) { 256 TEST_F(UnverifiedDownloadFieldTrialTest, DisableSBTypesEmpty) {
249 FieldTrialParameters parameters; 257 FieldTrialParameters parameters;
250 parameters[kUnverifiedDownloadFieldTrialBlockSBTypesParam] = ""; 258 parameters[kUnverifiedDownloadFieldTrialBlockSBTypesParam] = "";
251 ScopedFieldTrialState field_trial( 259 ScopedFieldTrialState field_trial(
252 kUnverifiedDownloadFieldTrialDisableByParameter, parameters); 260 kUnverifiedDownloadFieldTrialDisableByParameter, parameters);
253 261
254 EXPECT_TRUE(IsUnverifiedDownloadAllowedByFieldTrial( 262 EXPECT_TRUE(IsUnverifiedDownloadAllowedByFieldTrial(
255 base::FilePath(kSafeFilename))); 263 base::FilePath(kSafeFilename)));
256 EXPECT_TRUE(IsUnverifiedDownloadAllowedByFieldTrial( 264 EXPECT_TRUE(IsUnverifiedDownloadAllowedByFieldTrial(
257 base::FilePath(kHandledFilename))); 265 base::FilePath(kHandledFilename)));
258 } 266 }
259 267
260 // Verify that a whitelist is able to override the SafeBrowsing file type list. 268 // Verify that a whitelist is able to override the SafeBrowsing file type list.
261 TEST(UnverifiedDownloadFieldTrialTest, ListsOverrideSBTypes) { 269 TEST_F(UnverifiedDownloadFieldTrialTest, ListsOverrideSBTypes) {
262 FieldTrialParameters parameters; 270 FieldTrialParameters parameters;
263 parameters[kUnverifiedDownloadFieldTrialBlacklistParam] = ".abc,.def"; 271 parameters[kUnverifiedDownloadFieldTrialBlacklistParam] = ".abc,.def";
264 parameters[kUnverifiedDownloadFieldTrialWhitelistParam] = ".exe"; 272 parameters[kUnverifiedDownloadFieldTrialWhitelistParam] = ".exe";
265 parameters[kUnverifiedDownloadFieldTrialBlockSBTypesParam] = "*"; 273 parameters[kUnverifiedDownloadFieldTrialBlockSBTypesParam] = "*";
266 ScopedFieldTrialState field_trial( 274 ScopedFieldTrialState field_trial(
267 kUnverifiedDownloadFieldTrialDisableByParameter, parameters); 275 kUnverifiedDownloadFieldTrialDisableByParameter, parameters);
268 276
269 EXPECT_TRUE(IsUnverifiedDownloadAllowedByFieldTrial( 277 EXPECT_TRUE(IsUnverifiedDownloadAllowedByFieldTrial(
270 base::FilePath(kSafeFilename))); 278 base::FilePath(kSafeFilename)));
271 EXPECT_TRUE(IsUnverifiedDownloadAllowedByFieldTrial( 279 EXPECT_TRUE(IsUnverifiedDownloadAllowedByFieldTrial(
272 base::FilePath(kHandledFilename))); 280 base::FilePath(kHandledFilename)));
273 EXPECT_FALSE(IsUnverifiedDownloadAllowedByFieldTrial( 281 EXPECT_FALSE(IsUnverifiedDownloadAllowedByFieldTrial(
274 base::FilePath(FILE_PATH_LITERAL("foo.abc")))); 282 base::FilePath(FILE_PATH_LITERAL("foo.abc"))));
275 } 283 }
276 284
277 // Verify that the field trial is only sensitive to the prefix of the group 285 // Verify that the field trial is only sensitive to the prefix of the group
278 // name. 286 // name.
279 TEST(UnverifiedDownloadFieldTrialTest, FieldTrialGroupPrefix) { 287 TEST_F(UnverifiedDownloadFieldTrialTest, FieldTrialGroupPrefix) {
280 FieldTrialParameters parameters; 288 FieldTrialParameters parameters;
281 parameters[kUnverifiedDownloadFieldTrialBlacklistParam] = ".abc,.def"; 289 parameters[kUnverifiedDownloadFieldTrialBlacklistParam] = ".abc,.def";
282 parameters[kUnverifiedDownloadFieldTrialBlockSBTypesParam] = "*"; 290 parameters[kUnverifiedDownloadFieldTrialBlockSBTypesParam] = "*";
283 ScopedFieldTrialState field_trial( 291 ScopedFieldTrialState field_trial(
284 std::string(kUnverifiedDownloadFieldTrialDisableByParameter) + "FooBar", 292 std::string(kUnverifiedDownloadFieldTrialDisableByParameter) + "FooBar",
285 parameters); 293 parameters);
286 294
287 EXPECT_TRUE(IsUnverifiedDownloadAllowedByFieldTrial( 295 EXPECT_TRUE(IsUnverifiedDownloadAllowedByFieldTrial(
288 base::FilePath(kSafeFilename))); 296 base::FilePath(kSafeFilename)));
289 EXPECT_FALSE(IsUnverifiedDownloadAllowedByFieldTrial( 297 EXPECT_FALSE(IsUnverifiedDownloadAllowedByFieldTrial(
290 base::FilePath(kHandledFilename))); 298 base::FilePath(kHandledFilename)));
291 EXPECT_FALSE(IsUnverifiedDownloadAllowedByFieldTrial( 299 EXPECT_FALSE(IsUnverifiedDownloadAllowedByFieldTrial(
292 base::FilePath(FILE_PATH_LITERAL("foo.abc")))); 300 base::FilePath(FILE_PATH_LITERAL("foo.abc"))));
293 } 301 }
294 302
295 } // namespace safe_browsing 303 } // namespace safe_browsing
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698