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

Unified Diff: chrome/browser/safe_browsing/download_protection_service_unittest.cc

Issue 2696973002: Allow Safe Browsing backend to select downloads to upload. (Closed)
Patch Set: Add unittest for DownloadProtectionService Created 3 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/safe_browsing/download_protection_service_unittest.cc
diff --git a/chrome/browser/safe_browsing/download_protection_service_unittest.cc b/chrome/browser/safe_browsing/download_protection_service_unittest.cc
index 04a46573a2ad35d65bcd0a3de01236e51615f577..d45b7949ea934db435260f581212275e0f1779b1 100644
--- a/chrome/browser/safe_browsing/download_protection_service_unittest.cc
+++ b/chrome/browser/safe_browsing/download_protection_service_unittest.cc
@@ -395,9 +395,12 @@ class DownloadProtectionServiceTest : public testing::Test {
void PrepareResponse(net::FakeURLFetcherFactory* factory,
ClientDownloadResponse::Verdict verdict,
net::HttpStatusCode response_code,
- net::URLRequestStatus::Status status) {
+ net::URLRequestStatus::Status status,
+ bool upload_requested = false) {
ClientDownloadResponse response;
response.set_verdict(verdict);
+ if (upload_requested)
+ response.set_upload(true);
factory->SetFakeResponse(
DownloadProtectionService::GetDownloadRequestUrl(),
response.SerializeAsString(),
@@ -1041,11 +1044,11 @@ TEST_F(DownloadProtectionServiceTest, CheckClientDownloadSuccess) {
MatchDownloadWhitelistUrl(_))
.WillRepeatedly(Return(false));
EXPECT_CALL(*binary_feature_extractor_.get(), CheckSignature(tmp_path_, _))
- .Times(7);
+ .Times(8);
EXPECT_CALL(*binary_feature_extractor_.get(),
ExtractImageFeatures(
tmp_path_, BinaryFeatureExtractor::kDefaultOptions, _, _))
- .Times(7);
+ .Times(8);
std::string feedback_ping;
std::string feedback_response;
ClientDownloadResponse expected_response;
@@ -1094,6 +1097,23 @@ TEST_F(DownloadProtectionServiceTest, CheckClientDownloadSuccess) {
ClearClientDownloadRequest();
}
{
+ // If the response is dangerous and the server requests an upload,
+ // we should upload.
+ PrepareResponse(&factory, ClientDownloadResponse::DANGEROUS, net::HTTP_OK,
+ net::URLRequestStatus::SUCCESS,
+ true /* upload_requested */);
+ RunLoop run_loop;
+ download_service_->CheckClientDownload(
+ &item, base::Bind(&DownloadProtectionServiceTest::CheckDoneCallback,
+ base::Unretained(this), run_loop.QuitClosure()));
+ run_loop.Run();
+ EXPECT_TRUE(DownloadFeedbackService::GetPingsForDownloadForTesting(
+ item, &feedback_ping, &feedback_response));
+ EXPECT_TRUE(IsResult(DownloadProtectionService::DANGEROUS));
+ EXPECT_TRUE(HasClientDownloadRequest());
+ ClearClientDownloadRequest();
+ }
+ {
// If the response is uncommon the result should also be marked as uncommon.
PrepareResponse(&factory, ClientDownloadResponse::UNCOMMON, net::HTTP_OK,
net::URLRequestStatus::SUCCESS);

Powered by Google App Engine
This is Rietveld 408576698