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

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

Issue 2321453002: c/browser, c/common, components S-W: Change ScopedTempDir::path() to GetPath() (Closed)
Patch Set: Just rebased Created 4 years, 3 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/download_protection_service.h" 5 #include "chrome/browser/safe_browsing/download_protection_service.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <map> 10 #include <map>
(...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after
271 ASSERT_TRUE(PathService::Get(base::DIR_SOURCE_ROOT, &source_path)); 271 ASSERT_TRUE(PathService::Get(base::DIR_SOURCE_ROOT, &source_path));
272 testdata_path_ = source_path 272 testdata_path_ = source_path
273 .AppendASCII("chrome") 273 .AppendASCII("chrome")
274 .AppendASCII("test") 274 .AppendASCII("test")
275 .AppendASCII("data") 275 .AppendASCII("data")
276 .AppendASCII("safe_browsing") 276 .AppendASCII("safe_browsing")
277 .AppendASCII("download_protection"); 277 .AppendASCII("download_protection");
278 278
279 // Setup a profile 279 // Setup a profile
280 ASSERT_TRUE(profile_dir_.CreateUniqueTempDir()); 280 ASSERT_TRUE(profile_dir_.CreateUniqueTempDir());
281 profile_.reset(new TestingProfile(profile_dir_.path())); 281 profile_.reset(new TestingProfile(profile_dir_.GetPath()));
282 ASSERT_TRUE(profile_->CreateHistoryService(true /* delete_file */, 282 ASSERT_TRUE(profile_->CreateHistoryService(true /* delete_file */,
283 false /* no_db */)); 283 false /* no_db */));
284 284
285 // Setup a directory to place test files in. 285 // Setup a directory to place test files in.
286 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); 286 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir());
287 287
288 // Turn off binary sampling by default. 288 // Turn off binary sampling by default.
289 SetBinarySamplingProbability(0.0); 289 SetBinarySamplingProbability(0.0);
290 } 290 }
291 291
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
403 response.SerializeAsString(), 403 response.SerializeAsString(),
404 response_code, status); 404 response_code, status);
405 } 405 }
406 406
407 void PrepareBasicDownloadItem( 407 void PrepareBasicDownloadItem(
408 content::MockDownloadItem* item, 408 content::MockDownloadItem* item,
409 const std::vector<std::string> url_chain_items, 409 const std::vector<std::string> url_chain_items,
410 const std::string& referrer_url, 410 const std::string& referrer_url,
411 const base::FilePath::StringType& tmp_path_literal, 411 const base::FilePath::StringType& tmp_path_literal,
412 const base::FilePath::StringType& final_path_literal) { 412 const base::FilePath::StringType& final_path_literal) {
413 base::FilePath tmp_path = temp_dir_.path().Append(tmp_path_literal); 413 base::FilePath tmp_path = temp_dir_.GetPath().Append(tmp_path_literal);
414 base::FilePath final_path = temp_dir_.path().Append(final_path_literal); 414 base::FilePath final_path = temp_dir_.GetPath().Append(final_path_literal);
415 415
416 PrepareBasicDownloadItemWithFullPaths(item, url_chain_items, referrer_url, 416 PrepareBasicDownloadItemWithFullPaths(item, url_chain_items, referrer_url,
417 tmp_path, final_path); 417 tmp_path, final_path);
418 } 418 }
419 419
420 void PrepareBasicDownloadItemWithFullPaths( 420 void PrepareBasicDownloadItemWithFullPaths(
421 content::MockDownloadItem* item, 421 content::MockDownloadItem* item,
422 const std::vector<std::string> url_chain_items, 422 const std::vector<std::string> url_chain_items,
423 const std::string& referrer_url, 423 const std::string& referrer_url,
424 const base::FilePath& tmp_full_path, 424 const base::FilePath& tmp_full_path,
(...skipping 893 matching lines...) Expand 10 before | Expand all | Expand 10 after
1318 FILE_PATH_LITERAL("a.tmp"), // tmp_path 1318 FILE_PATH_LITERAL("a.tmp"), // tmp_path
1319 FILE_PATH_LITERAL("a.zip")); // final_path 1319 FILE_PATH_LITERAL("a.zip")); // final_path
1320 1320
1321 // Write out a zip archive to the temporary file. 1321 // Write out a zip archive to the temporary file.
1322 base::ScopedTempDir zip_source_dir; 1322 base::ScopedTempDir zip_source_dir;
1323 ASSERT_TRUE(zip_source_dir.CreateUniqueTempDir()); 1323 ASSERT_TRUE(zip_source_dir.CreateUniqueTempDir());
1324 std::string file_contents = "dummy file"; 1324 std::string file_contents = "dummy file";
1325 { 1325 {
1326 // In this case, it only contains a text file. 1326 // In this case, it only contains a text file.
1327 ASSERT_EQ(static_cast<int>(file_contents.size()), 1327 ASSERT_EQ(static_cast<int>(file_contents.size()),
1328 base::WriteFile( 1328 base::WriteFile(zip_source_dir.GetPath().Append(
1329 zip_source_dir.path().Append(FILE_PATH_LITERAL("file.txt")), 1329 FILE_PATH_LITERAL("file.txt")),
1330 file_contents.data(), file_contents.size())); 1330 file_contents.data(), file_contents.size()));
1331 ASSERT_TRUE(zip::Zip(zip_source_dir.path(), tmp_path_, false)); 1331 ASSERT_TRUE(zip::Zip(zip_source_dir.GetPath(), tmp_path_, false));
1332 RunLoop run_loop; 1332 RunLoop run_loop;
1333 download_service_->CheckClientDownload( 1333 download_service_->CheckClientDownload(
1334 &item, base::Bind(&DownloadProtectionServiceTest::CheckDoneCallback, 1334 &item, base::Bind(&DownloadProtectionServiceTest::CheckDoneCallback,
1335 base::Unretained(this), run_loop.QuitClosure())); 1335 base::Unretained(this), run_loop.QuitClosure()));
1336 run_loop.Run(); 1336 run_loop.Run();
1337 EXPECT_TRUE(IsResult(DownloadProtectionService::UNKNOWN)); 1337 EXPECT_TRUE(IsResult(DownloadProtectionService::UNKNOWN));
1338 EXPECT_FALSE(HasClientDownloadRequest()); 1338 EXPECT_FALSE(HasClientDownloadRequest());
1339 Mock::VerifyAndClearExpectations(sb_service_.get()); 1339 Mock::VerifyAndClearExpectations(sb_service_.get());
1340 Mock::VerifyAndClearExpectations(binary_feature_extractor_.get()); 1340 Mock::VerifyAndClearExpectations(binary_feature_extractor_.get());
1341 } 1341 }
1342 { 1342 {
1343 // Now check with an executable in the zip file as well. 1343 // Now check with an executable in the zip file as well.
1344 ASSERT_EQ(static_cast<int>(file_contents.size()), 1344 ASSERT_EQ(static_cast<int>(file_contents.size()),
1345 base::WriteFile( 1345 base::WriteFile(zip_source_dir.GetPath().Append(
1346 zip_source_dir.path().Append(FILE_PATH_LITERAL("file.exe")), 1346 FILE_PATH_LITERAL("file.exe")),
1347 file_contents.data(), file_contents.size())); 1347 file_contents.data(), file_contents.size()));
1348 ASSERT_TRUE(zip::Zip(zip_source_dir.path(), tmp_path_, false)); 1348 ASSERT_TRUE(zip::Zip(zip_source_dir.GetPath(), tmp_path_, false));
1349 EXPECT_CALL(*sb_service_->mock_database_manager(), 1349 EXPECT_CALL(*sb_service_->mock_database_manager(),
1350 MatchDownloadWhitelistUrl(_)) 1350 MatchDownloadWhitelistUrl(_))
1351 .WillRepeatedly(Return(false)); 1351 .WillRepeatedly(Return(false));
1352 RunLoop run_loop; 1352 RunLoop run_loop;
1353 download_service_->CheckClientDownload( 1353 download_service_->CheckClientDownload(
1354 &item, base::Bind(&DownloadProtectionServiceTest::CheckDoneCallback, 1354 &item, base::Bind(&DownloadProtectionServiceTest::CheckDoneCallback,
1355 base::Unretained(this), run_loop.QuitClosure())); 1355 base::Unretained(this), run_loop.QuitClosure()));
1356 run_loop.Run(); 1356 run_loop.Run();
1357 EXPECT_TRUE(IsResult(DownloadProtectionService::SAFE)); 1357 EXPECT_TRUE(IsResult(DownloadProtectionService::SAFE));
1358 ASSERT_TRUE(HasClientDownloadRequest()); 1358 ASSERT_TRUE(HasClientDownloadRequest());
(...skipping 24 matching lines...) Expand all
1383 run_loop.Run(); 1383 run_loop.Run();
1384 EXPECT_TRUE(IsResult(DownloadProtectionService::DANGEROUS)); 1384 EXPECT_TRUE(IsResult(DownloadProtectionService::DANGEROUS));
1385 EXPECT_TRUE(HasClientDownloadRequest()); 1385 EXPECT_TRUE(HasClientDownloadRequest());
1386 ClearClientDownloadRequest(); 1386 ClearClientDownloadRequest();
1387 Mock::VerifyAndClearExpectations(binary_feature_extractor_.get()); 1387 Mock::VerifyAndClearExpectations(binary_feature_extractor_.get());
1388 } 1388 }
1389 { 1389 {
1390 // Repeat the test with an archive inside the zip file in addition to the 1390 // Repeat the test with an archive inside the zip file in addition to the
1391 // executable. 1391 // executable.
1392 ASSERT_EQ(static_cast<int>(file_contents.size()), 1392 ASSERT_EQ(static_cast<int>(file_contents.size()),
1393 base::WriteFile( 1393 base::WriteFile(zip_source_dir.GetPath().Append(
1394 zip_source_dir.path().Append(FILE_PATH_LITERAL("file.rar")), 1394 FILE_PATH_LITERAL("file.rar")),
1395 file_contents.data(), file_contents.size())); 1395 file_contents.data(), file_contents.size()));
1396 ASSERT_TRUE(zip::Zip(zip_source_dir.path(), tmp_path_, false)); 1396 ASSERT_TRUE(zip::Zip(zip_source_dir.GetPath(), tmp_path_, false));
1397 RunLoop run_loop; 1397 RunLoop run_loop;
1398 download_service_->CheckClientDownload( 1398 download_service_->CheckClientDownload(
1399 &item, base::Bind(&DownloadProtectionServiceTest::CheckDoneCallback, 1399 &item, base::Bind(&DownloadProtectionServiceTest::CheckDoneCallback,
1400 base::Unretained(this), run_loop.QuitClosure())); 1400 base::Unretained(this), run_loop.QuitClosure()));
1401 run_loop.Run(); 1401 run_loop.Run();
1402 ASSERT_TRUE(HasClientDownloadRequest()); 1402 ASSERT_TRUE(HasClientDownloadRequest());
1403 EXPECT_EQ(1, GetClientDownloadRequest()->archived_binary_size()); 1403 EXPECT_EQ(1, GetClientDownloadRequest()->archived_binary_size());
1404 EXPECT_TRUE(GetClientDownloadRequest()->has_download_type()); 1404 EXPECT_TRUE(GetClientDownloadRequest()->has_download_type());
1405 EXPECT_EQ(ClientDownloadRequest_DownloadType_ZIPPED_EXECUTABLE, 1405 EXPECT_EQ(ClientDownloadRequest_DownloadType_ZIPPED_EXECUTABLE,
1406 GetClientDownloadRequest()->download_type()); 1406 GetClientDownloadRequest()->download_type());
1407 ClearClientDownloadRequest(); 1407 ClearClientDownloadRequest();
1408 Mock::VerifyAndClearExpectations(binary_feature_extractor_.get()); 1408 Mock::VerifyAndClearExpectations(binary_feature_extractor_.get());
1409 } 1409 }
1410 { 1410 {
1411 // Repeat the test with just the archive inside the zip file. 1411 // Repeat the test with just the archive inside the zip file.
1412 ASSERT_TRUE( 1412 ASSERT_TRUE(base::DeleteFile(
1413 base::DeleteFile(zip_source_dir.path().AppendASCII("file.exe"), false)); 1413 zip_source_dir.GetPath().AppendASCII("file.exe"), false));
1414 ASSERT_TRUE(zip::Zip(zip_source_dir.path(), tmp_path_, false)); 1414 ASSERT_TRUE(zip::Zip(zip_source_dir.GetPath(), tmp_path_, false));
1415 RunLoop run_loop; 1415 RunLoop run_loop;
1416 download_service_->CheckClientDownload( 1416 download_service_->CheckClientDownload(
1417 &item, base::Bind(&DownloadProtectionServiceTest::CheckDoneCallback, 1417 &item, base::Bind(&DownloadProtectionServiceTest::CheckDoneCallback,
1418 base::Unretained(this), run_loop.QuitClosure())); 1418 base::Unretained(this), run_loop.QuitClosure()));
1419 run_loop.Run(); 1419 run_loop.Run();
1420 ASSERT_TRUE(HasClientDownloadRequest()); 1420 ASSERT_TRUE(HasClientDownloadRequest());
1421 EXPECT_EQ(0, GetClientDownloadRequest()->archived_binary_size()); 1421 EXPECT_EQ(0, GetClientDownloadRequest()->archived_binary_size());
1422 EXPECT_TRUE(GetClientDownloadRequest()->has_download_type()); 1422 EXPECT_TRUE(GetClientDownloadRequest()->has_download_type());
1423 EXPECT_EQ(ClientDownloadRequest_DownloadType_ZIPPED_ARCHIVE, 1423 EXPECT_EQ(ClientDownloadRequest_DownloadType_ZIPPED_ARCHIVE,
1424 GetClientDownloadRequest()->download_type()); 1424 GetClientDownloadRequest()->download_type());
(...skipping 920 matching lines...) Expand 10 before | Expand all | Expand 10 after
2345 // Test a real .zip with a real .exe in it, where the .exe is manually 2345 // Test a real .zip with a real .exe in it, where the .exe is manually
2346 // blacklisted by hash. 2346 // blacklisted by hash.
2347 TEST_F(DownloadProtectionServiceFlagTest, 2347 TEST_F(DownloadProtectionServiceFlagTest,
2348 CheckClientDownloadZipOverridenByFlag) { 2348 CheckClientDownloadZipOverridenByFlag) {
2349 content::MockDownloadItem item; 2349 content::MockDownloadItem item;
2350 2350
2351 PrepareBasicDownloadItemWithFullPaths( 2351 PrepareBasicDownloadItemWithFullPaths(
2352 &item, {"http://www.evil.com/a.exe"}, // url_chain 2352 &item, {"http://www.evil.com/a.exe"}, // url_chain
2353 "http://www.google.com/", // referrer 2353 "http://www.google.com/", // referrer
2354 testdata_path_.AppendASCII( 2354 testdata_path_.AppendASCII(
2355 "zipfile_one_unsigned_binary.zip"), // tmp_path 2355 "zipfile_one_unsigned_binary.zip"), // tmp_path
2356 temp_dir_.path().Append(FILE_PATH_LITERAL("a.zip"))); // final_path 2356 temp_dir_.GetPath().Append(FILE_PATH_LITERAL("a.zip"))); // final_path
2357 2357
2358 EXPECT_CALL(*sb_service_->mock_database_manager(), 2358 EXPECT_CALL(*sb_service_->mock_database_manager(),
2359 MatchDownloadWhitelistUrl(_)) 2359 MatchDownloadWhitelistUrl(_))
2360 .WillRepeatedly(Return(false)); 2360 .WillRepeatedly(Return(false));
2361 2361
2362 RunLoop run_loop; 2362 RunLoop run_loop;
2363 download_service_->CheckClientDownload( 2363 download_service_->CheckClientDownload(
2364 &item, base::Bind(&DownloadProtectionServiceTest::CheckDoneCallback, 2364 &item, base::Bind(&DownloadProtectionServiceTest::CheckDoneCallback,
2365 base::Unretained(this), run_loop.QuitClosure())); 2365 base::Unretained(this), run_loop.QuitClosure()));
2366 run_loop.Run(); 2366 run_loop.Run();
2367 2367
2368 EXPECT_FALSE(HasClientDownloadRequest()); 2368 EXPECT_FALSE(HasClientDownloadRequest());
2369 // Overriden by flag: 2369 // Overriden by flag:
2370 EXPECT_TRUE(IsResult(DownloadProtectionService::DANGEROUS)); 2370 EXPECT_TRUE(IsResult(DownloadProtectionService::DANGEROUS));
2371 } 2371 }
2372 2372
2373 } // namespace safe_browsing 2373 } // namespace safe_browsing
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698