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