Chromium Code Reviews| 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 c61fcd8fff2b24268698ea000c0140de37245562..15d8dd297da16c0f600be1887f301a6b2432e8e4 100644 |
| --- a/chrome/browser/safe_browsing/download_protection_service_unittest.cc |
| +++ b/chrome/browser/safe_browsing/download_protection_service_unittest.cc |
| @@ -379,7 +379,7 @@ TEST_F(DownloadProtectionServiceTest, CheckClientDownloadInvalidUrl) { |
| base::Bind(&DownloadProtectionServiceTest::CheckDoneCallback, |
| base::Unretained(this))); |
| MessageLoop::current()->Run(); |
| - EXPECT_TRUE(IsResult(DownloadProtectionService::SAFE)); |
| + EXPECT_TRUE(IsResult(DownloadProtectionService::UNKNOWN)); |
| Mock::VerifyAndClearExpectations(&item); |
| url_chain.push_back(GURL("file://www.google.com/")); |
| @@ -395,7 +395,30 @@ TEST_F(DownloadProtectionServiceTest, CheckClientDownloadInvalidUrl) { |
| base::Bind(&DownloadProtectionServiceTest::CheckDoneCallback, |
| base::Unretained(this))); |
| MessageLoop::current()->Run(); |
| - EXPECT_TRUE(IsResult(DownloadProtectionService::SAFE)); |
| + EXPECT_TRUE(IsResult(DownloadProtectionService::UNKNOWN)); |
| +} |
| + |
| +TEST_F(DownloadProtectionServiceTest, CheckClientDownloadNotABinary) { |
| + base::FilePath a_tmp(FILE_PATH_LITERAL("a.tmp")); |
| + base::FilePath a_txt(FILE_PATH_LITERAL("a.txt")); |
| + std::vector<GURL> url_chain; |
| + GURL referrer("http://www.google.com/"); |
| + |
| + content::MockDownloadItem item; |
| + url_chain.push_back(GURL("http://www.example.com/foo")); |
| + EXPECT_CALL(item, GetFullPath()).WillRepeatedly(ReturnRef(a_tmp)); |
| + EXPECT_CALL(item, GetTargetFilePath()).WillRepeatedly(ReturnRef(a_txt)); |
| + EXPECT_CALL(item, GetUrlChain()).WillRepeatedly(ReturnRef(url_chain)); |
| + EXPECT_CALL(item, GetReferrerUrl()).WillRepeatedly(ReturnRef(referrer)); |
| + EXPECT_CALL(item, GetTabUrl()).WillRepeatedly(ReturnRef(GURL::EmptyGURL())); |
| + EXPECT_CALL(item, GetTabReferrerUrl()) |
| + .WillRepeatedly(ReturnRef(GURL::EmptyGURL())); |
| + download_service_->CheckClientDownload( |
| + &item, |
| + base::Bind(&DownloadProtectionServiceTest::CheckDoneCallback, |
| + base::Unretained(this))); |
| + MessageLoop::current()->Run(); |
| + EXPECT_TRUE(IsResult(DownloadProtectionService::UNKNOWN)); |
| } |
| TEST_F(DownloadProtectionServiceTest, CheckClientDownloadWhitelistedUrl) { |
| @@ -451,7 +474,7 @@ TEST_F(DownloadProtectionServiceTest, CheckClientDownloadWhitelistedUrl) { |
| #if defined(OS_WIN) |
| EXPECT_TRUE(IsResult(DownloadProtectionService::DANGEROUS)); |
| #else |
| - EXPECT_TRUE(IsResult(DownloadProtectionService::SAFE)); |
| + EXPECT_TRUE(IsResult(DownloadProtectionService::UNKNOWN)); |
| #endif |
| // Check that the referrer is not matched against the whitelist. |
| @@ -464,7 +487,7 @@ TEST_F(DownloadProtectionServiceTest, CheckClientDownloadWhitelistedUrl) { |
| #if defined(OS_WIN) |
| EXPECT_TRUE(IsResult(DownloadProtectionService::DANGEROUS)); |
| #else |
| - EXPECT_TRUE(IsResult(DownloadProtectionService::SAFE)); |
| + EXPECT_TRUE(IsResult(DownloadProtectionService::UNKNOWN)); |
| #endif |
| // Redirect from a site shouldn't be checked either. |
| @@ -477,7 +500,7 @@ TEST_F(DownloadProtectionServiceTest, CheckClientDownloadWhitelistedUrl) { |
| #if defined(OS_WIN) |
| EXPECT_TRUE(IsResult(DownloadProtectionService::DANGEROUS)); |
| #else |
| - EXPECT_TRUE(IsResult(DownloadProtectionService::SAFE)); |
| + EXPECT_TRUE(IsResult(DownloadProtectionService::UNKNOWN)); |
| #endif |
| // Only if the final url is whitelisted should it be SAFE. |
| @@ -528,7 +551,7 @@ TEST_F(DownloadProtectionServiceTest, CheckClientDownloadFetchFailed) { |
| base::Bind(&DownloadProtectionServiceTest::CheckDoneCallback, |
| base::Unretained(this))); |
| MessageLoop::current()->Run(); |
| - EXPECT_TRUE(IsResult(DownloadProtectionService::SAFE)); |
| + EXPECT_TRUE(IsResult(DownloadProtectionService::UNKNOWN)); |
| } |
| TEST_F(DownloadProtectionServiceTest, CheckClientDownloadSuccess) { |
| @@ -574,9 +597,15 @@ TEST_F(DownloadProtectionServiceTest, CheckClientDownloadSuccess) { |
| base::Bind(&DownloadProtectionServiceTest::CheckDoneCallback, |
| base::Unretained(this))); |
| MessageLoop::current()->Run(); |
| +#if defined(OS_WIN) |
| EXPECT_TRUE(IsResult(DownloadProtectionService::SAFE)); |
| +#else |
| + // On !OS_WIN, no file types are currently supported. Hence all erquests to |
|
mattm
2014/09/12 02:52:39
requests
|
| + // CheckClientDownload() result in a verdict of UNKNOWN. |
| + EXPECT_TRUE(IsResult(DownloadProtectionService::UNKNOWN)); |
| +#endif |
| - // Invalid response should be safe too. |
| + // Invalid response should result in UNKNOWN. |
| response.Clear(); |
| factory.SetFakeResponse( |
| DownloadProtectionService::GetDownloadRequestUrl(), |
| @@ -588,7 +617,7 @@ TEST_F(DownloadProtectionServiceTest, CheckClientDownloadSuccess) { |
| base::Bind(&DownloadProtectionServiceTest::CheckDoneCallback, |
| base::Unretained(this))); |
| MessageLoop::current()->Run(); |
| - EXPECT_TRUE(IsResult(DownloadProtectionService::SAFE)); |
| + EXPECT_TRUE(IsResult(DownloadProtectionService::UNKNOWN)); |
| std::string feedback_ping; |
| std::string feedback_response; |
| EXPECT_FALSE(DownloadFeedbackService::GetPingsForDownloadForTesting( |
| @@ -611,7 +640,7 @@ TEST_F(DownloadProtectionServiceTest, CheckClientDownloadSuccess) { |
| #if defined(OS_WIN) |
| EXPECT_TRUE(IsResult(DownloadProtectionService::DANGEROUS)); |
| #else |
| - EXPECT_TRUE(IsResult(DownloadProtectionService::SAFE)); |
| + EXPECT_TRUE(IsResult(DownloadProtectionService::UNKNOWN)); |
| #endif |
| // If the response is uncommon the result should also be marked as uncommon. |
| @@ -635,7 +664,7 @@ TEST_F(DownloadProtectionServiceTest, CheckClientDownloadSuccess) { |
| EXPECT_EQ(url_chain.back().spec(), decoded_request.url()); |
| EXPECT_EQ(response.SerializeAsString(), feedback_response); |
| #else |
| - EXPECT_TRUE(IsResult(DownloadProtectionService::SAFE)); |
| + EXPECT_TRUE(IsResult(DownloadProtectionService::UNKNOWN)); |
| #endif |
| // If the response is dangerous_host the result should also be marked as |
| @@ -657,7 +686,7 @@ TEST_F(DownloadProtectionServiceTest, CheckClientDownloadSuccess) { |
| item, &feedback_ping, &feedback_response)); |
| EXPECT_EQ(response.SerializeAsString(), feedback_response); |
| #else |
| - EXPECT_TRUE(IsResult(DownloadProtectionService::SAFE)); |
| + EXPECT_TRUE(IsResult(DownloadProtectionService::UNKNOWN)); |
| #endif |
| // If the response is POTENTIALLY_UNWANTED the result should also be marked as |
| @@ -676,7 +705,7 @@ TEST_F(DownloadProtectionServiceTest, CheckClientDownloadSuccess) { |
| #if defined(OS_WIN) |
| EXPECT_TRUE(IsResult(DownloadProtectionService::POTENTIALLY_UNWANTED)); |
| #else |
| - EXPECT_TRUE(IsResult(DownloadProtectionService::SAFE)); |
| + EXPECT_TRUE(IsResult(DownloadProtectionService::UNKNOWN)); |
| #endif |
| } |
| @@ -725,7 +754,7 @@ TEST_F(DownloadProtectionServiceTest, CheckClientDownloadHTTPS) { |
| #if defined(OS_WIN) |
| EXPECT_TRUE(IsResult(DownloadProtectionService::DANGEROUS)); |
| #else |
| - EXPECT_TRUE(IsResult(DownloadProtectionService::SAFE)); |
| + EXPECT_TRUE(IsResult(DownloadProtectionService::UNKNOWN)); |
| #endif |
| } |
| @@ -777,7 +806,7 @@ TEST_F(DownloadProtectionServiceTest, CheckClientDownloadZip) { |
| base::Bind(&DownloadProtectionServiceTest::CheckDoneCallback, |
| base::Unretained(this))); |
| MessageLoop::current()->Run(); |
| - EXPECT_TRUE(IsResult(DownloadProtectionService::SAFE)); |
| + EXPECT_TRUE(IsResult(DownloadProtectionService::UNKNOWN)); |
| Mock::VerifyAndClearExpectations(sb_service_.get()); |
| Mock::VerifyAndClearExpectations(binary_feature_extractor_.get()); |
| @@ -796,7 +825,13 @@ TEST_F(DownloadProtectionServiceTest, CheckClientDownloadZip) { |
| base::Bind(&DownloadProtectionServiceTest::CheckDoneCallback, |
| base::Unretained(this))); |
| MessageLoop::current()->Run(); |
| +#if defined(OS_WIN) |
| EXPECT_TRUE(IsResult(DownloadProtectionService::SAFE)); |
| +#else |
| + // For !OS_WIN, no file types are currently supported. Hence the resulting |
| + // verdict is UNKNOWN. |
| + EXPECT_TRUE(IsResult(DownloadProtectionService::UNKNOWN)); |
| +#endif |
| Mock::VerifyAndClearExpectations(binary_feature_extractor_.get()); |
| // If the response is dangerous the result should also be marked as |
| @@ -815,7 +850,7 @@ TEST_F(DownloadProtectionServiceTest, CheckClientDownloadZip) { |
| #if defined(OS_WIN) |
| EXPECT_TRUE(IsResult(DownloadProtectionService::DANGEROUS)); |
| #else |
| - EXPECT_TRUE(IsResult(DownloadProtectionService::SAFE)); |
| + EXPECT_TRUE(IsResult(DownloadProtectionService::UNKNOWN)); |
| #endif |
| Mock::VerifyAndClearExpectations(binary_feature_extractor_.get()); |
| } |
| @@ -853,7 +888,7 @@ TEST_F(DownloadProtectionServiceTest, CheckClientDownloadCorruptZip) { |
| base::Bind(&DownloadProtectionServiceTest::CheckDoneCallback, |
| base::Unretained(this))); |
| MessageLoop::current()->Run(); |
| - EXPECT_TRUE(IsResult(DownloadProtectionService::SAFE)); |
| + EXPECT_TRUE(IsResult(DownloadProtectionService::UNKNOWN)); |
| Mock::VerifyAndClearExpectations(sb_service_.get()); |
| Mock::VerifyAndClearExpectations(binary_feature_extractor_.get()); |
| } |
| @@ -905,7 +940,7 @@ TEST_F(DownloadProtectionServiceTest, CheckClientCrxDownloadSuccess) { |
| base::Bind(&DownloadProtectionServiceTest::CheckDoneCallback, |
| base::Unretained(this))); |
| MessageLoop::current()->Run(); |
| - EXPECT_TRUE(IsResult(DownloadProtectionService::SAFE)); |
| + EXPECT_TRUE(IsResult(DownloadProtectionService::UNKNOWN)); |
| } |
| TEST_F(DownloadProtectionServiceTest, CheckClientDownloadValidateRequest) { |
| @@ -1354,7 +1389,7 @@ TEST_F(DownloadProtectionServiceTest, TestDownloadRequestTimeout) { |
| // The request should time out because the HTTP request hasn't returned |
| // anything yet. |
| MessageLoop::current()->Run(); |
| - EXPECT_TRUE(IsResult(DownloadProtectionService::SAFE)); |
| + EXPECT_TRUE(IsResult(DownloadProtectionService::UNKNOWN)); |
| } |
| TEST_F(DownloadProtectionServiceTest, TestDownloadItemDestroyed) { |
| @@ -1397,7 +1432,7 @@ TEST_F(DownloadProtectionServiceTest, TestDownloadItemDestroyed) { |
| // notification. |
| } |
| - EXPECT_TRUE(IsResult(DownloadProtectionService::SAFE)); |
| + EXPECT_TRUE(IsResult(DownloadProtectionService::UNKNOWN)); |
| } |
| TEST_F(DownloadProtectionServiceTest, GetCertificateWhitelistStrings) { |