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 368 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
379 true); | 379 true); |
380 | 380 |
381 DownloadProtectionService::DownloadInfo info; | 381 DownloadProtectionService::DownloadInfo info; |
382 info.local_file = FilePath(FILE_PATH_LITERAL("a.tmp")); | 382 info.local_file = FilePath(FILE_PATH_LITERAL("a.tmp")); |
383 info.target_file = FilePath(FILE_PATH_LITERAL("a.exe")); | 383 info.target_file = FilePath(FILE_PATH_LITERAL("a.exe")); |
384 info.download_url_chain.push_back(GURL("http://www.evil.com/a.exe")); | 384 info.download_url_chain.push_back(GURL("http://www.evil.com/a.exe")); |
385 info.referrer_url = GURL("http://www.google.com/"); | 385 info.referrer_url = GURL("http://www.google.com/"); |
386 | 386 |
387 EXPECT_CALL(*sb_service_, MatchDownloadWhitelistUrl(_)) | 387 EXPECT_CALL(*sb_service_, MatchDownloadWhitelistUrl(_)) |
388 .WillRepeatedly(Return(false)); | 388 .WillRepeatedly(Return(false)); |
389 EXPECT_CALL(*signature_util_, CheckSignature(info.local_file, _)).Times(3); | 389 EXPECT_CALL(*signature_util_, CheckSignature(info.local_file, _)).Times(4); |
390 | 390 |
391 download_service_->CheckClientDownload( | 391 download_service_->CheckClientDownload( |
392 info, | 392 info, |
393 base::Bind(&DownloadProtectionServiceTest::CheckDoneCallback, | 393 base::Bind(&DownloadProtectionServiceTest::CheckDoneCallback, |
394 base::Unretained(this))); | 394 base::Unretained(this))); |
395 msg_loop_.Run(); | 395 msg_loop_.Run(); |
396 ExpectResult(DownloadProtectionService::SAFE); | 396 ExpectResult(DownloadProtectionService::SAFE); |
397 | 397 |
398 // Invalid response should be safe too. | 398 // Invalid response should be safe too. |
399 response.Clear(); | 399 response.Clear(); |
(...skipping 19 matching lines...) Expand all Loading... |
419 download_service_->CheckClientDownload( | 419 download_service_->CheckClientDownload( |
420 info, | 420 info, |
421 base::Bind(&DownloadProtectionServiceTest::CheckDoneCallback, | 421 base::Bind(&DownloadProtectionServiceTest::CheckDoneCallback, |
422 base::Unretained(this))); | 422 base::Unretained(this))); |
423 msg_loop_.Run(); | 423 msg_loop_.Run(); |
424 #if defined(OS_WIN) | 424 #if defined(OS_WIN) |
425 ExpectResult(DownloadProtectionService::DANGEROUS); | 425 ExpectResult(DownloadProtectionService::DANGEROUS); |
426 #else | 426 #else |
427 ExpectResult(DownloadProtectionService::SAFE); | 427 ExpectResult(DownloadProtectionService::SAFE); |
428 #endif | 428 #endif |
| 429 |
| 430 // If the response is uncommon the result should also be marked as uncommon. |
| 431 response.set_verdict(ClientDownloadResponse::UNCOMMON); |
| 432 factory.SetFakeResponse( |
| 433 DownloadProtectionService::kDownloadRequestUrl, |
| 434 response.SerializeAsString(), |
| 435 true); |
| 436 |
| 437 download_service_->CheckClientDownload( |
| 438 info, |
| 439 base::Bind(&DownloadProtectionServiceTest::CheckDoneCallback, |
| 440 base::Unretained(this))); |
| 441 msg_loop_.Run(); |
| 442 #if defined(OS_WIN) |
| 443 ExpectResult(DownloadProtectionService::UNCOMMON); |
| 444 #else |
| 445 ExpectResult(DownloadProtectionService::SAFE); |
| 446 #endif |
429 } | 447 } |
430 | 448 |
431 TEST_F(DownloadProtectionServiceTest, CheckClientDownloadValidateRequest) { | 449 TEST_F(DownloadProtectionServiceTest, CheckClientDownloadValidateRequest) { |
432 TestURLFetcherFactory factory; | 450 TestURLFetcherFactory factory; |
433 | 451 |
434 DownloadProtectionService::DownloadInfo info; | 452 DownloadProtectionService::DownloadInfo info; |
435 info.local_file = FilePath(FILE_PATH_LITERAL("bla.tmp")); | 453 info.local_file = FilePath(FILE_PATH_LITERAL("bla.tmp")); |
436 info.target_file = FilePath(FILE_PATH_LITERAL("bla.exe")); | 454 info.target_file = FilePath(FILE_PATH_LITERAL("bla.exe")); |
437 info.download_url_chain.push_back(GURL("http://www.google.com/")); | 455 info.download_url_chain.push_back(GURL("http://www.google.com/")); |
438 info.download_url_chain.push_back(GURL("http://www.google.com/bla.exe")); | 456 info.download_url_chain.push_back(GURL("http://www.google.com/bla.exe")); |
(...skipping 416 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
855 GetCertificateWhitelistStrings(*cert, *issuer_cert, &whitelist_strings); | 873 GetCertificateWhitelistStrings(*cert, *issuer_cert, &whitelist_strings); |
856 EXPECT_THAT(whitelist_strings, ElementsAre(cert_base + "/OU=unit")); | 874 EXPECT_THAT(whitelist_strings, ElementsAre(cert_base + "/OU=unit")); |
857 | 875 |
858 cert = ReadTestCertificate("test_c.pem"); | 876 cert = ReadTestCertificate("test_c.pem"); |
859 ASSERT_TRUE(cert.get()); | 877 ASSERT_TRUE(cert.get()); |
860 whitelist_strings.clear(); | 878 whitelist_strings.clear(); |
861 GetCertificateWhitelistStrings(*cert, *issuer_cert, &whitelist_strings); | 879 GetCertificateWhitelistStrings(*cert, *issuer_cert, &whitelist_strings); |
862 EXPECT_THAT(whitelist_strings, ElementsAre()); | 880 EXPECT_THAT(whitelist_strings, ElementsAre()); |
863 } | 881 } |
864 } // namespace safe_browsing | 882 } // namespace safe_browsing |
OLD | NEW |