| 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 388 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 399 | 399 |
| 400 DownloadProtectionService::DownloadInfo info; | 400 DownloadProtectionService::DownloadInfo info; |
| 401 info.local_file = FilePath(FILE_PATH_LITERAL("a.tmp")); | 401 info.local_file = FilePath(FILE_PATH_LITERAL("a.tmp")); |
| 402 info.target_file = FilePath(FILE_PATH_LITERAL("a.exe")); | 402 info.target_file = 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")); |
| 404 info.referrer_url = GURL("http://www.google.com/"); | 404 info.referrer_url = GURL("http://www.google.com/"); |
| 405 | 405 |
| 406 EXPECT_CALL(*sb_service_->mock_database_manager(), | 406 EXPECT_CALL(*sb_service_->mock_database_manager(), |
| 407 MatchDownloadWhitelistUrl(_)) | 407 MatchDownloadWhitelistUrl(_)) |
| 408 .WillRepeatedly(Return(false)); | 408 .WillRepeatedly(Return(false)); |
| 409 EXPECT_CALL(*signature_util_, CheckSignature(info.local_file, _)).Times(4); | 409 EXPECT_CALL(*signature_util_, CheckSignature(info.local_file, _)).Times(5); |
| 410 | 410 |
| 411 download_service_->CheckClientDownload( | 411 download_service_->CheckClientDownload( |
| 412 info, | 412 info, |
| 413 base::Bind(&DownloadProtectionServiceTest::CheckDoneCallback, | 413 base::Bind(&DownloadProtectionServiceTest::CheckDoneCallback, |
| 414 base::Unretained(this))); | 414 base::Unretained(this))); |
| 415 msg_loop_.Run(); | 415 msg_loop_.Run(); |
| 416 EXPECT_TRUE(IsResult(DownloadProtectionService::SAFE)); | 416 EXPECT_TRUE(IsResult(DownloadProtectionService::SAFE)); |
| 417 | 417 |
| 418 // Invalid response should be safe too. | 418 // Invalid response should be safe too. |
| 419 response.Clear(); | 419 response.Clear(); |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 457 download_service_->CheckClientDownload( | 457 download_service_->CheckClientDownload( |
| 458 info, | 458 info, |
| 459 base::Bind(&DownloadProtectionServiceTest::CheckDoneCallback, | 459 base::Bind(&DownloadProtectionServiceTest::CheckDoneCallback, |
| 460 base::Unretained(this))); | 460 base::Unretained(this))); |
| 461 msg_loop_.Run(); | 461 msg_loop_.Run(); |
| 462 #if defined(OS_WIN) | 462 #if defined(OS_WIN) |
| 463 EXPECT_TRUE(IsResult(DownloadProtectionService::UNCOMMON)); | 463 EXPECT_TRUE(IsResult(DownloadProtectionService::UNCOMMON)); |
| 464 #else | 464 #else |
| 465 EXPECT_TRUE(IsResult(DownloadProtectionService::SAFE)); | 465 EXPECT_TRUE(IsResult(DownloadProtectionService::SAFE)); |
| 466 #endif | 466 #endif |
| 467 |
| 468 // If the response is dangerous_host the result should also be marked as |
| 469 // dangerous_host. |
| 470 response.set_verdict(ClientDownloadResponse::DANGEROUS_HOST); |
| 471 factory.SetFakeResponse( |
| 472 DownloadProtectionService::GetDownloadRequestUrl(), |
| 473 response.SerializeAsString(), |
| 474 true); |
| 475 |
| 476 download_service_->CheckClientDownload( |
| 477 info, |
| 478 base::Bind(&DownloadProtectionServiceTest::CheckDoneCallback, |
| 479 base::Unretained(this))); |
| 480 msg_loop_.Run(); |
| 481 #if defined(OS_WIN) |
| 482 EXPECT_TRUE(IsResult(DownloadProtectionService::DANGEROUS_HOST)); |
| 483 #else |
| 484 EXPECT_TRUE(IsResult(DownloadProtectionService::SAFE)); |
| 485 #endif |
| 467 } | 486 } |
| 468 | 487 |
| 469 TEST_F(DownloadProtectionServiceTest, CheckClientDownloadHTTPS) { | 488 TEST_F(DownloadProtectionServiceTest, CheckClientDownloadHTTPS) { |
| 470 ClientDownloadResponse response; | 489 ClientDownloadResponse response; |
| 471 response.set_verdict(ClientDownloadResponse::DANGEROUS); | 490 response.set_verdict(ClientDownloadResponse::DANGEROUS); |
| 472 net::FakeURLFetcherFactory factory; | 491 net::FakeURLFetcherFactory factory; |
| 473 factory.SetFakeResponse( | 492 factory.SetFakeResponse( |
| 474 DownloadProtectionService::GetDownloadRequestUrl(), | 493 DownloadProtectionService::GetDownloadRequestUrl(), |
| 475 response.SerializeAsString(), | 494 response.SerializeAsString(), |
| 476 true); | 495 true); |
| (...skipping 440 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 917 GetCertificateWhitelistStrings(*cert, *issuer_cert, &whitelist_strings); | 936 GetCertificateWhitelistStrings(*cert, *issuer_cert, &whitelist_strings); |
| 918 EXPECT_THAT(whitelist_strings, ElementsAre(cert_base + "/OU=unit")); | 937 EXPECT_THAT(whitelist_strings, ElementsAre(cert_base + "/OU=unit")); |
| 919 | 938 |
| 920 cert = ReadTestCertificate("test_c.pem"); | 939 cert = ReadTestCertificate("test_c.pem"); |
| 921 ASSERT_TRUE(cert.get()); | 940 ASSERT_TRUE(cert.get()); |
| 922 whitelist_strings.clear(); | 941 whitelist_strings.clear(); |
| 923 GetCertificateWhitelistStrings(*cert, *issuer_cert, &whitelist_strings); | 942 GetCertificateWhitelistStrings(*cert, *issuer_cert, &whitelist_strings); |
| 924 EXPECT_THAT(whitelist_strings, ElementsAre()); | 943 EXPECT_THAT(whitelist_strings, ElementsAre()); |
| 925 } | 944 } |
| 926 } // namespace safe_browsing | 945 } // namespace safe_browsing |
| OLD | NEW |