OLD | NEW |
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 <map> | 7 #include <map> |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/base_paths.h" | 10 #include "base/base_paths.h" |
(...skipping 345 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
356 info.referrer_url = GURL("http://www.google.com/a.exe"); | 356 info.referrer_url = GURL("http://www.google.com/a.exe"); |
357 download_service_->CheckClientDownload( | 357 download_service_->CheckClientDownload( |
358 info, | 358 info, |
359 base::Bind(&DownloadProtectionServiceTest::CheckDoneCallback, | 359 base::Bind(&DownloadProtectionServiceTest::CheckDoneCallback, |
360 base::Unretained(this))); | 360 base::Unretained(this))); |
361 msg_loop_.Run(); | 361 msg_loop_.Run(); |
362 EXPECT_TRUE(IsResult(DownloadProtectionService::SAFE)); | 362 EXPECT_TRUE(IsResult(DownloadProtectionService::SAFE)); |
363 } | 363 } |
364 | 364 |
365 TEST_F(DownloadProtectionServiceTest, CheckClientDownloadFetchFailed) { | 365 TEST_F(DownloadProtectionServiceTest, CheckClientDownloadFetchFailed) { |
366 net::FakeURLFetcherFactory factory; | 366 net::FakeURLFetcherFactory factory(NULL); |
367 // HTTP request will fail. | 367 // HTTP request will fail. |
368 factory.SetFakeResponse( | 368 factory.SetFakeResponse( |
369 DownloadProtectionService::GetDownloadRequestUrl(), "", false); | 369 DownloadProtectionService::GetDownloadRequestUrl(), "", false); |
370 | 370 |
371 DownloadProtectionService::DownloadInfo info; | 371 DownloadProtectionService::DownloadInfo info; |
372 info.local_file = base::FilePath(FILE_PATH_LITERAL("a.tmp")); | 372 info.local_file = base::FilePath(FILE_PATH_LITERAL("a.tmp")); |
373 info.target_file = base::FilePath(FILE_PATH_LITERAL("a.exe")); | 373 info.target_file = base::FilePath(FILE_PATH_LITERAL("a.exe")); |
374 info.download_url_chain.push_back(GURL("http://www.evil.com/a.exe")); | 374 info.download_url_chain.push_back(GURL("http://www.evil.com/a.exe")); |
375 info.referrer_url = GURL("http://www.google.com/"); | 375 info.referrer_url = GURL("http://www.google.com/"); |
376 | 376 |
377 EXPECT_CALL(*sb_service_->mock_database_manager(), | 377 EXPECT_CALL(*sb_service_->mock_database_manager(), |
378 MatchDownloadWhitelistUrl(_)) | 378 MatchDownloadWhitelistUrl(_)) |
379 .WillRepeatedly(Return(false)); | 379 .WillRepeatedly(Return(false)); |
380 EXPECT_CALL(*signature_util_, CheckSignature(info.local_file, _)); | 380 EXPECT_CALL(*signature_util_, CheckSignature(info.local_file, _)); |
381 | 381 |
382 download_service_->CheckClientDownload( | 382 download_service_->CheckClientDownload( |
383 info, | 383 info, |
384 base::Bind(&DownloadProtectionServiceTest::CheckDoneCallback, | 384 base::Bind(&DownloadProtectionServiceTest::CheckDoneCallback, |
385 base::Unretained(this))); | 385 base::Unretained(this))); |
386 msg_loop_.Run(); | 386 msg_loop_.Run(); |
387 EXPECT_TRUE(IsResult(DownloadProtectionService::SAFE)); | 387 EXPECT_TRUE(IsResult(DownloadProtectionService::SAFE)); |
388 } | 388 } |
389 | 389 |
390 TEST_F(DownloadProtectionServiceTest, CheckClientDownloadSuccess) { | 390 TEST_F(DownloadProtectionServiceTest, CheckClientDownloadSuccess) { |
391 ClientDownloadResponse response; | 391 ClientDownloadResponse response; |
392 response.set_verdict(ClientDownloadResponse::SAFE); | 392 response.set_verdict(ClientDownloadResponse::SAFE); |
393 net::FakeURLFetcherFactory factory; | 393 net::FakeURLFetcherFactory factory(NULL); |
394 // Empty response means SAFE. | 394 // Empty response means SAFE. |
395 factory.SetFakeResponse( | 395 factory.SetFakeResponse( |
396 DownloadProtectionService::GetDownloadRequestUrl(), | 396 DownloadProtectionService::GetDownloadRequestUrl(), |
397 response.SerializeAsString(), | 397 response.SerializeAsString(), |
398 true); | 398 true); |
399 | 399 |
400 DownloadProtectionService::DownloadInfo info; | 400 DownloadProtectionService::DownloadInfo info; |
401 info.local_file = base::FilePath(FILE_PATH_LITERAL("a.tmp")); | 401 info.local_file = base::FilePath(FILE_PATH_LITERAL("a.tmp")); |
402 info.target_file = base::FilePath(FILE_PATH_LITERAL("a.exe")); | 402 info.target_file = base::FilePath(FILE_PATH_LITERAL("a.exe")); |
403 info.download_url_chain.push_back(GURL("http://www.evil.com/a.exe")); | 403 info.download_url_chain.push_back(GURL("http://www.evil.com/a.exe")); |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
481 #if defined(OS_WIN) | 481 #if defined(OS_WIN) |
482 EXPECT_TRUE(IsResult(DownloadProtectionService::DANGEROUS_HOST)); | 482 EXPECT_TRUE(IsResult(DownloadProtectionService::DANGEROUS_HOST)); |
483 #else | 483 #else |
484 EXPECT_TRUE(IsResult(DownloadProtectionService::SAFE)); | 484 EXPECT_TRUE(IsResult(DownloadProtectionService::SAFE)); |
485 #endif | 485 #endif |
486 } | 486 } |
487 | 487 |
488 TEST_F(DownloadProtectionServiceTest, CheckClientDownloadHTTPS) { | 488 TEST_F(DownloadProtectionServiceTest, CheckClientDownloadHTTPS) { |
489 ClientDownloadResponse response; | 489 ClientDownloadResponse response; |
490 response.set_verdict(ClientDownloadResponse::DANGEROUS); | 490 response.set_verdict(ClientDownloadResponse::DANGEROUS); |
491 net::FakeURLFetcherFactory factory; | 491 net::FakeURLFetcherFactory factory(NULL); |
492 factory.SetFakeResponse( | 492 factory.SetFakeResponse( |
493 DownloadProtectionService::GetDownloadRequestUrl(), | 493 DownloadProtectionService::GetDownloadRequestUrl(), |
494 response.SerializeAsString(), | 494 response.SerializeAsString(), |
495 true); | 495 true); |
496 | 496 |
497 DownloadProtectionService::DownloadInfo info; | 497 DownloadProtectionService::DownloadInfo info; |
498 info.local_file = base::FilePath(FILE_PATH_LITERAL("a.tmp")); | 498 info.local_file = base::FilePath(FILE_PATH_LITERAL("a.tmp")); |
499 info.target_file = base::FilePath(FILE_PATH_LITERAL("a.exe")); | 499 info.target_file = base::FilePath(FILE_PATH_LITERAL("a.exe")); |
500 info.download_url_chain.push_back(GURL("https://www.evil.com/a.exe")); | 500 info.download_url_chain.push_back(GURL("https://www.evil.com/a.exe")); |
501 info.referrer_url = GURL("http://www.google.com/"); | 501 info.referrer_url = GURL("http://www.google.com/"); |
(...skipping 11 matching lines...) Expand all Loading... |
513 #if defined(OS_WIN) | 513 #if defined(OS_WIN) |
514 EXPECT_TRUE(IsResult(DownloadProtectionService::DANGEROUS)); | 514 EXPECT_TRUE(IsResult(DownloadProtectionService::DANGEROUS)); |
515 #else | 515 #else |
516 EXPECT_TRUE(IsResult(DownloadProtectionService::SAFE)); | 516 EXPECT_TRUE(IsResult(DownloadProtectionService::SAFE)); |
517 #endif | 517 #endif |
518 } | 518 } |
519 | 519 |
520 TEST_F(DownloadProtectionServiceTest, CheckClientDownloadZip) { | 520 TEST_F(DownloadProtectionServiceTest, CheckClientDownloadZip) { |
521 ClientDownloadResponse response; | 521 ClientDownloadResponse response; |
522 response.set_verdict(ClientDownloadResponse::SAFE); | 522 response.set_verdict(ClientDownloadResponse::SAFE); |
523 net::FakeURLFetcherFactory factory; | 523 net::FakeURLFetcherFactory factory(NULL); |
524 // Empty response means SAFE. | 524 // Empty response means SAFE. |
525 factory.SetFakeResponse( | 525 factory.SetFakeResponse( |
526 DownloadProtectionService::GetDownloadRequestUrl(), | 526 DownloadProtectionService::GetDownloadRequestUrl(), |
527 response.SerializeAsString(), | 527 response.SerializeAsString(), |
528 true); | 528 true); |
529 | 529 |
530 base::ScopedTempDir download_dir; | 530 base::ScopedTempDir download_dir; |
531 ASSERT_TRUE(download_dir.CreateUniqueTempDir()); | 531 ASSERT_TRUE(download_dir.CreateUniqueTempDir()); |
532 | 532 |
533 DownloadProtectionService::DownloadInfo info; | 533 DownloadProtectionService::DownloadInfo info; |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
618 Mock::VerifyAndClearExpectations(sb_service_); | 618 Mock::VerifyAndClearExpectations(sb_service_); |
619 Mock::VerifyAndClearExpectations(signature_util_); | 619 Mock::VerifyAndClearExpectations(signature_util_); |
620 } | 620 } |
621 | 621 |
622 TEST_F(DownloadProtectionServiceTest, CheckClientCrxDownloadSuccess) { | 622 TEST_F(DownloadProtectionServiceTest, CheckClientCrxDownloadSuccess) { |
623 ClientDownloadResponse response; | 623 ClientDownloadResponse response; |
624 // Even if the server verdict is dangerous we should return SAFE because | 624 // Even if the server verdict is dangerous we should return SAFE because |
625 // DownloadProtectionService::IsSupportedDownload() will return false | 625 // DownloadProtectionService::IsSupportedDownload() will return false |
626 // for crx downloads. | 626 // for crx downloads. |
627 response.set_verdict(ClientDownloadResponse::DANGEROUS); | 627 response.set_verdict(ClientDownloadResponse::DANGEROUS); |
628 net::FakeURLFetcherFactory factory; | 628 net::FakeURLFetcherFactory factory(NULL); |
629 // Empty response means SAFE. | 629 // Empty response means SAFE. |
630 factory.SetFakeResponse( | 630 factory.SetFakeResponse( |
631 DownloadProtectionService::GetDownloadRequestUrl(), | 631 DownloadProtectionService::GetDownloadRequestUrl(), |
632 response.SerializeAsString(), | 632 response.SerializeAsString(), |
633 true); | 633 true); |
634 | 634 |
635 DownloadProtectionService::DownloadInfo info; | 635 DownloadProtectionService::DownloadInfo info; |
636 info.local_file = base::FilePath(FILE_PATH_LITERAL("a.tmp")); | 636 info.local_file = base::FilePath(FILE_PATH_LITERAL("a.tmp")); |
637 info.target_file = base::FilePath(FILE_PATH_LITERAL("a.crx")); | 637 info.target_file = base::FilePath(FILE_PATH_LITERAL("a.crx")); |
638 info.download_url_chain.push_back(GURL("http://www.evil.com/a.crx")); | 638 info.download_url_chain.push_back(GURL("http://www.evil.com/a.crx")); |
(...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
936 GetCertificateWhitelistStrings(*cert, *issuer_cert, &whitelist_strings); | 936 GetCertificateWhitelistStrings(*cert, *issuer_cert, &whitelist_strings); |
937 EXPECT_THAT(whitelist_strings, ElementsAre(cert_base + "/OU=unit")); | 937 EXPECT_THAT(whitelist_strings, ElementsAre(cert_base + "/OU=unit")); |
938 | 938 |
939 cert = ReadTestCertificate("test_c.pem"); | 939 cert = ReadTestCertificate("test_c.pem"); |
940 ASSERT_TRUE(cert.get()); | 940 ASSERT_TRUE(cert.get()); |
941 whitelist_strings.clear(); | 941 whitelist_strings.clear(); |
942 GetCertificateWhitelistStrings(*cert, *issuer_cert, &whitelist_strings); | 942 GetCertificateWhitelistStrings(*cert, *issuer_cert, &whitelist_strings); |
943 EXPECT_THAT(whitelist_strings, ElementsAre()); | 943 EXPECT_THAT(whitelist_strings, ElementsAre()); |
944 } | 944 } |
945 } // namespace safe_browsing | 945 } // namespace safe_browsing |
OLD | NEW |