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

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

Issue 1613483003: [SafeBrowsing] Alternate extensions should also be subject to block list. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix comment in histograms.xml Created 4 years, 10 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_policy.h" 5 #include "chrome/browser/safe_browsing/unverified_download_policy.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/callback.h" 8 #include "base/callback.h"
9 #include "base/callback_helpers.h" 9 #include "base/callback_helpers.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
130 }; 130 };
131 131
132 } // namespace 132 } // namespace
133 133
134 // Verify that SafeBrowsing whitelists can override field trials. 134 // Verify that SafeBrowsing whitelists can override field trials.
135 TEST_F(UnverifiedDownloadPolicyTest, Whitelist) { 135 TEST_F(UnverifiedDownloadPolicyTest, Whitelist) {
136 base::CommandLine::ForCurrentProcess()->AppendSwitch( 136 base::CommandLine::ForCurrentProcess()->AppendSwitch(
137 switches::kDisallowUncheckedDangerousDownloads); 137 switches::kDisallowUncheckedDangerousDownloads);
138 138
139 base::FilePath test_file_path(FILE_PATH_LITERAL("foo.exe")); 139 base::FilePath test_file_path(FILE_PATH_LITERAL("foo.exe"));
140 std::vector<base::FilePath::StringType> test_extensions;
140 141
141 CompletionCallback completion_callback; 142 CompletionCallback completion_callback;
142 CheckUnverifiedDownloadPolicy(GURL(), test_file_path, 143 CheckUnverifiedDownloadPolicy(GURL(), test_file_path, test_extensions,
143 completion_callback.GetCallback()); 144 completion_callback.GetCallback());
144 EXPECT_EQ(UnverifiedDownloadPolicy::DISALLOWED, 145 EXPECT_EQ(UnverifiedDownloadPolicy::DISALLOWED,
145 completion_callback.WaitForResult()); 146 completion_callback.WaitForResult());
146 147
147 // Not http/s and hence isn't covered by the whitelist. 148 // Not http/s and hence isn't covered by the whitelist.
148 CheckUnverifiedDownloadPolicy(GURL("ftp://supported.example.com/foo/bar"), 149 CheckUnverifiedDownloadPolicy(GURL("ftp://supported.example.com/foo/bar"),
149 test_file_path, 150 test_file_path, test_extensions,
150 completion_callback.GetCallback()); 151 completion_callback.GetCallback());
151 EXPECT_EQ(UnverifiedDownloadPolicy::DISALLOWED, 152 EXPECT_EQ(UnverifiedDownloadPolicy::DISALLOWED,
152 completion_callback.WaitForResult()); 153 completion_callback.WaitForResult());
153 154
154 CheckUnverifiedDownloadPolicy(GURL("http://supported.example.com/foo/bar"), 155 CheckUnverifiedDownloadPolicy(GURL("http://supported.example.com/foo/bar"),
155 test_file_path, 156 test_file_path, test_extensions,
156 completion_callback.GetCallback()); 157 completion_callback.GetCallback());
157 EXPECT_EQ(UnverifiedDownloadPolicy::ALLOWED, 158 EXPECT_EQ(UnverifiedDownloadPolicy::ALLOWED,
158 completion_callback.WaitForResult()); 159 completion_callback.WaitForResult());
159 160
160 CheckUnverifiedDownloadPolicy(GURL("http://unsupported.example.com/foo/bar"), 161 CheckUnverifiedDownloadPolicy(GURL("http://unsupported.example.com/foo/bar"),
161 test_file_path, 162 test_file_path, test_extensions,
162 completion_callback.GetCallback()); 163 completion_callback.GetCallback());
163 EXPECT_EQ(UnverifiedDownloadPolicy::DISALLOWED, 164 EXPECT_EQ(UnverifiedDownloadPolicy::DISALLOWED,
164 completion_callback.WaitForResult()); 165 completion_callback.WaitForResult());
165 166
166 CheckUnverifiedDownloadPolicy(GURL("https://supported.example.com/foo/bar"), 167 CheckUnverifiedDownloadPolicy(GURL("https://supported.example.com/foo/bar"),
167 test_file_path, 168 test_file_path, test_extensions,
168 completion_callback.GetCallback()); 169 completion_callback.GetCallback());
169 EXPECT_EQ(UnverifiedDownloadPolicy::ALLOWED, 170 EXPECT_EQ(UnverifiedDownloadPolicy::ALLOWED,
170 completion_callback.WaitForResult()); 171 completion_callback.WaitForResult());
172 }
173
174 TEST_F(UnverifiedDownloadPolicyTest, AlternateExtensions) {
175 base::CommandLine::ForCurrentProcess()->AppendSwitch(
176 switches::kDisallowUncheckedDangerousDownloads);
177 CompletionCallback completion_callback;
178
179 base::FilePath test_file_path(FILE_PATH_LITERAL("foo.txt"));
180 std::vector<base::FilePath::StringType> test_extensions;
181
182 CheckUnverifiedDownloadPolicy(GURL(), test_file_path, test_extensions,
183 completion_callback.GetCallback());
184 EXPECT_EQ(UnverifiedDownloadPolicy::ALLOWED,
185 completion_callback.WaitForResult());
186
187 test_extensions.push_back(FILE_PATH_LITERAL(".exe"));
188 CheckUnverifiedDownloadPolicy(GURL(), test_file_path, test_extensions,
189 completion_callback.GetCallback());
190 EXPECT_EQ(UnverifiedDownloadPolicy::DISALLOWED,
191 completion_callback.WaitForResult());
192
193 test_extensions.clear();
194 test_extensions.push_back(FILE_PATH_LITERAL(".txt"));
195 test_extensions.push_back(FILE_PATH_LITERAL(".exe"));
196 CheckUnverifiedDownloadPolicy(GURL(), test_file_path, test_extensions,
197 completion_callback.GetCallback());
198 EXPECT_EQ(UnverifiedDownloadPolicy::DISALLOWED,
199 completion_callback.WaitForResult());
200
201 test_extensions.clear();
202 test_extensions.push_back(FILE_PATH_LITERAL("e"));
203 CheckUnverifiedDownloadPolicy(GURL(), test_file_path, test_extensions,
204 completion_callback.GetCallback());
205 EXPECT_EQ(UnverifiedDownloadPolicy::ALLOWED,
206 completion_callback.WaitForResult());
171 } 207 }
172 208
173 // Verify behavior when the SafeBrowsing service is disabled. 209 // Verify behavior when the SafeBrowsing service is disabled.
174 TEST_F(UnverifiedDownloadPolicyTest, ServiceDisabled) { 210 TEST_F(UnverifiedDownloadPolicyTest, ServiceDisabled) {
175 base::CommandLine::ForCurrentProcess()->AppendSwitch( 211 base::CommandLine::ForCurrentProcess()->AppendSwitch(
176 switches::kDisallowUncheckedDangerousDownloads); 212 switches::kDisallowUncheckedDangerousDownloads);
177 213
178 testing_profile_->GetPrefs()->SetBoolean(prefs::kSafeBrowsingEnabled, false); 214 testing_profile_->GetPrefs()->SetBoolean(prefs::kSafeBrowsingEnabled, false);
179 base::RunLoop().RunUntilIdle(); 215 base::RunLoop().RunUntilIdle();
180 216
181 base::FilePath test_file_path(FILE_PATH_LITERAL("foo.exe")); 217 base::FilePath test_file_path(FILE_PATH_LITERAL("foo.exe"));
218 std::vector<base::FilePath::StringType> test_extensions;
182 219
183 CompletionCallback completion_callback; 220 CompletionCallback completion_callback;
184 CheckUnverifiedDownloadPolicy(GURL("http://supported.example.com/foo/bar"), 221 CheckUnverifiedDownloadPolicy(GURL("http://supported.example.com/foo/bar"),
185 test_file_path, 222 test_file_path, test_extensions,
186 completion_callback.GetCallback()); 223 completion_callback.GetCallback());
187 EXPECT_EQ(UnverifiedDownloadPolicy::ALLOWED, 224 EXPECT_EQ(UnverifiedDownloadPolicy::ALLOWED,
188 completion_callback.WaitForResult()); 225 completion_callback.WaitForResult());
189 } 226 }
190 227
191 } // namespace safe_browsing 228 } // namespace safe_browsing
OLDNEW
« no previous file with comments | « chrome/browser/safe_browsing/unverified_download_policy.cc ('k') | chrome/test/ppapi/ppapi_filechooser_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698