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 eee257605c41975c25af6db9c2d0516c26379f21..999bfaf662b628233463ebede757f0c29ad8f2b9 100644 |
| --- a/chrome/browser/safe_browsing/download_protection_service_unittest.cc |
| +++ b/chrome/browser/safe_browsing/download_protection_service_unittest.cc |
| @@ -33,6 +33,7 @@ |
| #include "chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.h" |
| #include "chrome/browser/safe_browsing/local_database_manager.h" |
| #include "chrome/browser/safe_browsing/safe_browsing_service.h" |
| +#include "chrome/common/chrome_paths.h" |
| #include "chrome/common/safe_browsing/binary_feature_extractor.h" |
| #include "chrome/common/safe_browsing/file_type_policies_test_util.h" |
| #include "chrome/test/base/testing_profile.h" |
| @@ -1443,6 +1444,72 @@ TEST_F(DownloadProtectionServiceTest, |
| CheckClientDownloadReportCorruptDmg) { |
| CheckClientDownloadReportCorruptArchive(DMG); |
| } |
| + |
|
Jialiu Lin
2017/06/13 20:55:38
Give a high level description of this test here or
mortonm
2017/06/13 22:09:44
Done.
|
| +TEST_F(DownloadProtectionServiceTest, |
| + CheckClientDownloadReportDmgWithoutExtension) { |
| + net::FakeURLFetcherFactory factory(NULL); |
| + PrepareResponse(&factory, ClientDownloadResponse::SAFE, net::HTTP_OK, |
| + net::URLRequestStatus::SUCCESS); |
| + |
| + base::FilePath test_data; |
| + EXPECT_TRUE(PathService::Get(chrome::DIR_GEN_TEST_DATA, &test_data)); |
| + test_data = test_data.AppendASCII("chrome") |
| + .AppendASCII("safe_browsing_dmg") |
| + .AppendASCII("mach_o_in_dmg.txt"); |
| + |
| + NiceMockDownloadItem item; |
| + PrepareBasicDownloadItemWithFullPaths( |
| + &item, {"http://www.evil.com/a.dmg"}, // url_chain |
| + "http://www.google.com/", // referrer |
| + test_data, // tmp_path |
| + temp_dir_.GetPath().Append(FILE_PATH_LITERAL("a.dmg"))); // final_path |
| + |
| + RunLoop run_loop; |
| + download_service_->CheckClientDownload( |
| + &item, base::Bind(&DownloadProtectionServiceTest::CheckDoneCallback, |
| + base::Unretained(this), run_loop.QuitClosure())); |
| + run_loop.Run(); |
| + |
| + ASSERT_TRUE(HasClientDownloadRequest()); |
| + EXPECT_TRUE(GetClientDownloadRequest()->archive_valid()); |
| + ClearClientDownloadRequest(); |
| + |
| + Mock::VerifyAndClearExpectations(sb_service_.get()); |
| + Mock::VerifyAndClearExpectations(binary_feature_extractor_.get()); |
| +} |
| + |
|
Jialiu Lin
2017/06/13 20:55:38
same here.
mortonm
2017/06/13 22:09:44
Done.
|
| +TEST_F(DownloadProtectionServiceTest, CheckClientDownloadReportDmgWithoutKoly) { |
| + net::FakeURLFetcherFactory factory(NULL); |
| + PrepareResponse(&factory, ClientDownloadResponse::SAFE, net::HTTP_OK, |
| + net::URLRequestStatus::SUCCESS); |
| + |
| + base::FilePath test_data; |
| + EXPECT_TRUE(PathService::Get(chrome::DIR_GEN_TEST_DATA, &test_data)); |
| + test_data = test_data.AppendASCII("chrome") |
| + .AppendASCII("safe_browsing_dmg") |
| + .AppendASCII("mach_o_in_dmg_no_koly_signature.txt"); |
| + |
| + NiceMockDownloadItem item; |
| + PrepareBasicDownloadItemWithFullPaths( |
| + &item, {"http://www.evil.com/a.dmg"}, // url_chain |
| + "http://www.google.com/", // referrer |
| + test_data, // tmp_path |
| + temp_dir_.GetPath().Append(FILE_PATH_LITERAL("a.dmg"))); // final_path |
| + |
| + RunLoop run_loop; |
| + download_service_->CheckClientDownload( |
| + &item, base::Bind(&DownloadProtectionServiceTest::CheckDoneCallback, |
| + base::Unretained(this), run_loop.QuitClosure())); |
| + run_loop.Run(); |
| + |
| + ASSERT_TRUE(HasClientDownloadRequest()); |
| + EXPECT_FALSE(GetClientDownloadRequest()->archive_valid()); |
| + ClearClientDownloadRequest(); |
| + |
| + Mock::VerifyAndClearExpectations(sb_service_.get()); |
| + Mock::VerifyAndClearExpectations(binary_feature_extractor_.get()); |
| +} |
| + |
| #endif |
| TEST_F(DownloadProtectionServiceTest, CheckClientDownloadValidateRequest) { |