| 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 <stddef.h> | 5 #include <stddef.h> |
| 6 #include <stdint.h> | 6 #include <stdint.h> |
| 7 | 7 |
| 8 #include "base/at_exit.h" | 8 #include "base/at_exit.h" |
| 9 #include "base/files/file_path.h" | 9 #include "base/files/file_path.h" |
| 10 #include "base/files/scoped_temp_dir.h" | 10 #include "base/files/scoped_temp_dir.h" |
| (...skipping 494 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 505 base::FilePath() | 505 base::FilePath() |
| 506 .AppendASCII("overridden") | 506 .AppendASCII("overridden") |
| 507 .Append(path.BaseName()); | 507 .Append(path.BaseName()); |
| 508 if (new_path.MatchesExtension(FILE_PATH_LITERAL(".remove"))) | 508 if (new_path.MatchesExtension(FILE_PATH_LITERAL(".remove"))) |
| 509 new_path = new_path.RemoveExtension(); | 509 new_path = new_path.RemoveExtension(); |
| 510 callback.Run(new_path, DownloadPathReservationTracker::UNIQUIFY); | 510 callback.Run(new_path, DownloadPathReservationTracker::UNIQUIFY); |
| 511 } | 511 } |
| 512 | 512 |
| 513 TEST_F(DownloadTargetDeterminerTest, Basic) { | 513 TEST_F(DownloadTargetDeterminerTest, Basic) { |
| 514 const DownloadTestCase kBasicTestCases[] = { | 514 const DownloadTestCase kBasicTestCases[] = { |
| 515 {// 0: Automatic Safe | 515 {// 0: Automatic Safe |
| 516 AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, | 516 AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, |
| 517 DownloadFileType::NOT_DANGEROUS, "http://example.com/foo.txt", | 517 DownloadFileType::NOT_DANGEROUS, "http://example.com/foo.txt", |
| 518 "text/plain", FILE_PATH_LITERAL(""), | 518 "text/plain", FILE_PATH_LITERAL(""), |
| 519 | 519 |
| 520 FILE_PATH_LITERAL("foo.txt"), DownloadItem::TARGET_DISPOSITION_OVERWRITE, | 520 FILE_PATH_LITERAL("foo.txt"), DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
| 521 | 521 |
| 522 EXPECT_CRDOWNLOAD}, | 522 EXPECT_CRDOWNLOAD}, |
| 523 | 523 |
| 524 #if !BUILDFLAG(ANDROID_JAVA_UI) | 524 #if !defined(OS_ANDROID) |
| 525 {// 1: Save_As Safe | 525 {// 1: Save_As Safe |
| 526 SAVE_AS, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, | 526 SAVE_AS, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, |
| 527 DownloadFileType::NOT_DANGEROUS, "http://example.com/foo.txt", | 527 DownloadFileType::NOT_DANGEROUS, "http://example.com/foo.txt", |
| 528 "text/plain", FILE_PATH_LITERAL(""), | 528 "text/plain", FILE_PATH_LITERAL(""), |
| 529 | 529 |
| 530 FILE_PATH_LITERAL("foo.txt"), DownloadItem::TARGET_DISPOSITION_PROMPT, | 530 FILE_PATH_LITERAL("foo.txt"), DownloadItem::TARGET_DISPOSITION_PROMPT, |
| 531 | 531 |
| 532 EXPECT_CRDOWNLOAD}, | 532 EXPECT_CRDOWNLOAD}, |
| 533 #endif // !BUILDFLAG(ANDROID_JAVA_UI) | 533 #endif // !defined(OS_ANDROID) |
| 534 | 534 |
| 535 {// 2: Automatic Dangerous | 535 {// 2: Automatic Dangerous |
| 536 AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_DANGEROUS_FILE, | 536 AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_DANGEROUS_FILE, |
| 537 DownloadFileType::ALLOW_ON_USER_GESTURE, "http://example.com/foo.crx", | 537 DownloadFileType::ALLOW_ON_USER_GESTURE, "http://example.com/foo.crx", "", |
| 538 "", FILE_PATH_LITERAL(""), | 538 FILE_PATH_LITERAL(""), |
| 539 | 539 |
| 540 FILE_PATH_LITERAL("foo.crx"), DownloadItem::TARGET_DISPOSITION_OVERWRITE, | 540 FILE_PATH_LITERAL("foo.crx"), DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
| 541 | 541 |
| 542 EXPECT_UNCONFIRMED}, | 542 EXPECT_UNCONFIRMED}, |
| 543 | 543 |
| 544 {// 3: Forced Safe | 544 {// 3: Forced Safe |
| 545 FORCED, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, | 545 FORCED, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, |
| 546 DownloadFileType::NOT_DANGEROUS, "http://example.com/foo.txt", "", | 546 DownloadFileType::NOT_DANGEROUS, "http://example.com/foo.txt", "", |
| 547 FILE_PATH_LITERAL("forced-foo.txt"), | 547 FILE_PATH_LITERAL("forced-foo.txt"), |
| 548 | 548 |
| 549 FILE_PATH_LITERAL("forced-foo.txt"), | 549 FILE_PATH_LITERAL("forced-foo.txt"), |
| 550 DownloadItem::TARGET_DISPOSITION_OVERWRITE, | 550 DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
| 551 | 551 |
| 552 EXPECT_LOCAL_PATH}, | 552 EXPECT_LOCAL_PATH}, |
| 553 }; | 553 }; |
| 554 | 554 |
| 555 // The test assumes that .crx files have a danger level of | 555 // The test assumes that .crx files have a danger level of |
| 556 // ALLOW_ON_USER_GESTURE. | 556 // ALLOW_ON_USER_GESTURE. |
| 557 ASSERT_EQ(DownloadFileType::ALLOW_ON_USER_GESTURE, | 557 ASSERT_EQ(DownloadFileType::ALLOW_ON_USER_GESTURE, |
| 558 Policies()->GetFileDangerLevel( | 558 Policies()->GetFileDangerLevel( |
| 559 base::FilePath(FILE_PATH_LITERAL("foo.crx")))); | 559 base::FilePath(FILE_PATH_LITERAL("foo.crx")))); |
| 560 RunTestCasesWithActiveItem(kBasicTestCases, arraysize(kBasicTestCases)); | 560 RunTestCasesWithActiveItem(kBasicTestCases, arraysize(kBasicTestCases)); |
| 561 } | 561 } |
| 562 | 562 |
| 563 #if !BUILDFLAG(ANDROID_JAVA_UI) | 563 #if !defined(OS_ANDROID) |
| 564 TEST_F(DownloadTargetDeterminerTest, CancelSaveAs) { | 564 TEST_F(DownloadTargetDeterminerTest, CancelSaveAs) { |
| 565 const DownloadTestCase kCancelSaveAsTestCases[] = { | 565 const DownloadTestCase kCancelSaveAsTestCases[] = { |
| 566 {// 0: Save_As Safe, Cancelled. | 566 {// 0: Save_As Safe, Cancelled. |
| 567 SAVE_AS, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, | 567 SAVE_AS, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, |
| 568 DownloadFileType::NOT_DANGEROUS, "http://example.com/foo.txt", | 568 DownloadFileType::NOT_DANGEROUS, "http://example.com/foo.txt", |
| 569 "text/plain", FILE_PATH_LITERAL(""), | 569 "text/plain", FILE_PATH_LITERAL(""), |
| 570 | 570 |
| 571 FILE_PATH_LITERAL(""), DownloadItem::TARGET_DISPOSITION_PROMPT, | 571 FILE_PATH_LITERAL(""), DownloadItem::TARGET_DISPOSITION_PROMPT, |
| 572 | 572 |
| 573 EXPECT_LOCAL_PATH}}; | 573 EXPECT_LOCAL_PATH}}; |
| 574 ON_CALL(*delegate(), PromptUserForDownloadPath(_, _, _)) | 574 ON_CALL(*delegate(), PromptUserForDownloadPath(_, _, _)) |
| 575 .WillByDefault(WithArg<2>(ScheduleCallback(base::FilePath()))); | 575 .WillByDefault(WithArg<2>(ScheduleCallback(base::FilePath()))); |
| 576 RunTestCasesWithActiveItem(kCancelSaveAsTestCases, | 576 RunTestCasesWithActiveItem(kCancelSaveAsTestCases, |
| 577 arraysize(kCancelSaveAsTestCases)); | 577 arraysize(kCancelSaveAsTestCases)); |
| 578 } | 578 } |
| 579 #endif // !BUILDFLAG(ANDROID_JAVA_UI) | 579 #endif // !defined(OS_ANDROID) |
| 580 | 580 |
| 581 // The SafeBrowsing check is performed early. Make sure that a download item | 581 // The SafeBrowsing check is performed early. Make sure that a download item |
| 582 // that has been marked as DANGEROUS_URL behaves correctly. | 582 // that has been marked as DANGEROUS_URL behaves correctly. |
| 583 TEST_F(DownloadTargetDeterminerTest, DangerousUrl) { | 583 TEST_F(DownloadTargetDeterminerTest, DangerousUrl) { |
| 584 const DownloadTestCase kSafeBrowsingTestCases[] = { | 584 const DownloadTestCase kSafeBrowsingTestCases[] = { |
| 585 {// 0: Automatic Dangerous URL | 585 {// 0: Automatic Dangerous URL |
| 586 AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_DANGEROUS_URL, | 586 AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_DANGEROUS_URL, |
| 587 DownloadFileType::NOT_DANGEROUS, "http://phishing.example.com/foo.txt", | 587 DownloadFileType::NOT_DANGEROUS, "http://phishing.example.com/foo.txt", "", |
| 588 "", FILE_PATH_LITERAL(""), | 588 FILE_PATH_LITERAL(""), |
| 589 | 589 |
| 590 FILE_PATH_LITERAL("foo.txt"), DownloadItem::TARGET_DISPOSITION_OVERWRITE, | 590 FILE_PATH_LITERAL("foo.txt"), DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
| 591 | 591 |
| 592 EXPECT_UNCONFIRMED}, | 592 EXPECT_UNCONFIRMED}, |
| 593 | 593 |
| 594 #if !BUILDFLAG(ANDROID_JAVA_UI) | 594 #if !defined(OS_ANDROID) |
| 595 {// 1: Save As Dangerous URL | 595 {// 1: Save As Dangerous URL |
| 596 SAVE_AS, content::DOWNLOAD_DANGER_TYPE_DANGEROUS_URL, | 596 SAVE_AS, content::DOWNLOAD_DANGER_TYPE_DANGEROUS_URL, |
| 597 DownloadFileType::NOT_DANGEROUS, "http://phishing.example.com/foo.txt", | 597 DownloadFileType::NOT_DANGEROUS, "http://phishing.example.com/foo.txt", "", |
| 598 "", FILE_PATH_LITERAL(""), | 598 FILE_PATH_LITERAL(""), |
| 599 | 599 |
| 600 FILE_PATH_LITERAL("foo.txt"), DownloadItem::TARGET_DISPOSITION_PROMPT, | 600 FILE_PATH_LITERAL("foo.txt"), DownloadItem::TARGET_DISPOSITION_PROMPT, |
| 601 | 601 |
| 602 EXPECT_UNCONFIRMED}, | 602 EXPECT_UNCONFIRMED}, |
| 603 #endif // !BUILDFLAG(ANDROID_JAVA_UI) | 603 #endif // !defined(OS_ANDROID) |
| 604 | 604 |
| 605 {// 2: Forced Dangerous URL | 605 {// 2: Forced Dangerous URL |
| 606 FORCED, content::DOWNLOAD_DANGER_TYPE_DANGEROUS_URL, | 606 FORCED, content::DOWNLOAD_DANGER_TYPE_DANGEROUS_URL, |
| 607 DownloadFileType::NOT_DANGEROUS, "http://phishing.example.com/foo.txt", | 607 DownloadFileType::NOT_DANGEROUS, "http://phishing.example.com/foo.txt", "", |
| 608 "", FILE_PATH_LITERAL("forced-foo.txt"), | 608 FILE_PATH_LITERAL("forced-foo.txt"), |
| 609 | 609 |
| 610 FILE_PATH_LITERAL("forced-foo.txt"), | 610 FILE_PATH_LITERAL("forced-foo.txt"), |
| 611 DownloadItem::TARGET_DISPOSITION_OVERWRITE, | 611 DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
| 612 | 612 |
| 613 EXPECT_UNCONFIRMED}, | 613 EXPECT_UNCONFIRMED}, |
| 614 | 614 |
| 615 {// 3: Automatic Dangerous URL + Dangerous file. Dangerous URL takes | 615 {// 3: Automatic Dangerous URL + Dangerous file. Dangerous URL takes |
| 616 // precedence. | 616 // precedence. |
| 617 AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_DANGEROUS_URL, | 617 AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_DANGEROUS_URL, |
| 618 DownloadFileType::NOT_DANGEROUS, "http://phishing.example.com/foo.html", | 618 DownloadFileType::NOT_DANGEROUS, "http://phishing.example.com/foo.html", |
| 619 "", FILE_PATH_LITERAL(""), | 619 "", FILE_PATH_LITERAL(""), |
| 620 | 620 |
| 621 FILE_PATH_LITERAL("foo.html"), | 621 FILE_PATH_LITERAL("foo.html"), DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
| 622 DownloadItem::TARGET_DISPOSITION_OVERWRITE, | |
| 623 | 622 |
| 624 EXPECT_UNCONFIRMED}, | 623 EXPECT_UNCONFIRMED}, |
| 625 | 624 |
| 626 #if !BUILDFLAG(ANDROID_JAVA_UI) | 625 #if !defined(OS_ANDROID) |
| 627 {// 4: Save As Dangerous URL + Dangerous file | 626 {// 4: Save As Dangerous URL + Dangerous file |
| 628 SAVE_AS, content::DOWNLOAD_DANGER_TYPE_DANGEROUS_URL, | 627 SAVE_AS, content::DOWNLOAD_DANGER_TYPE_DANGEROUS_URL, |
| 629 DownloadFileType::NOT_DANGEROUS, "http://phishing.example.com/foo.html", | 628 DownloadFileType::NOT_DANGEROUS, "http://phishing.example.com/foo.html", |
| 630 "", FILE_PATH_LITERAL(""), | 629 "", FILE_PATH_LITERAL(""), |
| 631 | 630 |
| 632 FILE_PATH_LITERAL("foo.html"), DownloadItem::TARGET_DISPOSITION_PROMPT, | 631 FILE_PATH_LITERAL("foo.html"), DownloadItem::TARGET_DISPOSITION_PROMPT, |
| 633 | 632 |
| 634 EXPECT_UNCONFIRMED}, | 633 EXPECT_UNCONFIRMED}, |
| 635 #endif // !BUILDFLAG(ANDROID_JAVA_UI) | 634 #endif // !defined(OS_ANDROID) |
| 636 | 635 |
| 637 {// 5: Forced Dangerous URL + Dangerous file | 636 {// 5: Forced Dangerous URL + Dangerous file |
| 638 FORCED, content::DOWNLOAD_DANGER_TYPE_DANGEROUS_URL, | 637 FORCED, content::DOWNLOAD_DANGER_TYPE_DANGEROUS_URL, |
| 639 DownloadFileType::NOT_DANGEROUS, "http://phishing.example.com/foo.html", | 638 DownloadFileType::NOT_DANGEROUS, "http://phishing.example.com/foo.html", |
| 640 "", FILE_PATH_LITERAL("forced-foo.html"), | 639 "", FILE_PATH_LITERAL("forced-foo.html"), |
| 641 | 640 |
| 642 FILE_PATH_LITERAL("forced-foo.html"), | 641 FILE_PATH_LITERAL("forced-foo.html"), |
| 643 DownloadItem::TARGET_DISPOSITION_OVERWRITE, | 642 DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
| 644 | 643 |
| 645 EXPECT_UNCONFIRMED}, | 644 EXPECT_UNCONFIRMED}, |
| 646 }; | 645 }; |
| 647 | 646 |
| 648 ON_CALL(*delegate(), CheckDownloadUrl(_, _, _)) | 647 ON_CALL(*delegate(), CheckDownloadUrl(_, _, _)) |
| 649 .WillByDefault(WithArg<2>(ScheduleCallback( | 648 .WillByDefault(WithArg<2>(ScheduleCallback( |
| 650 content::DOWNLOAD_DANGER_TYPE_DANGEROUS_URL))); | 649 content::DOWNLOAD_DANGER_TYPE_DANGEROUS_URL))); |
| 651 RunTestCasesWithActiveItem(kSafeBrowsingTestCases, | 650 RunTestCasesWithActiveItem(kSafeBrowsingTestCases, |
| 652 arraysize(kSafeBrowsingTestCases)); | 651 arraysize(kSafeBrowsingTestCases)); |
| 653 } | 652 } |
| 654 | 653 |
| 655 // The SafeBrowsing check is performed early. Make sure that a download item | 654 // The SafeBrowsing check is performed early. Make sure that a download item |
| 656 // that has been marked as MAYBE_DANGEROUS_CONTENT behaves correctly. | 655 // that has been marked as MAYBE_DANGEROUS_CONTENT behaves correctly. |
| 657 TEST_F(DownloadTargetDeterminerTest, MaybeDangerousContent) { | 656 TEST_F(DownloadTargetDeterminerTest, MaybeDangerousContent) { |
| 658 const DownloadTestCase kSafeBrowsingTestCases[] = { | 657 const DownloadTestCase kSafeBrowsingTestCases[] = { |
| 659 {// 0: Automatic Maybe dangerous content | 658 {// 0: Automatic Maybe dangerous content |
| 660 AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_MAYBE_DANGEROUS_CONTENT, | 659 AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_MAYBE_DANGEROUS_CONTENT, |
| 661 DownloadFileType::ALLOW_ON_USER_GESTURE, | 660 DownloadFileType::ALLOW_ON_USER_GESTURE, |
| 662 "http://phishing.example.com/foo.crx", "", FILE_PATH_LITERAL(""), | 661 "http://phishing.example.com/foo.crx", "", FILE_PATH_LITERAL(""), |
| 663 | 662 |
| 664 FILE_PATH_LITERAL("foo.crx"), DownloadItem::TARGET_DISPOSITION_OVERWRITE, | 663 FILE_PATH_LITERAL("foo.crx"), DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
| 665 | 664 |
| 666 EXPECT_UNCONFIRMED}, | 665 EXPECT_UNCONFIRMED}, |
| 667 | 666 |
| 668 {// 1: Automatic Maybe dangerous content with DANGEROUS type. | 667 {// 1: Automatic Maybe dangerous content with DANGEROUS type. |
| 669 AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_MAYBE_DANGEROUS_CONTENT, | 668 AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_MAYBE_DANGEROUS_CONTENT, |
| 670 DownloadFileType::DANGEROUS, "http://phishing.example.com/foo.swf", "", | 669 DownloadFileType::DANGEROUS, "http://phishing.example.com/foo.swf", "", |
| 671 FILE_PATH_LITERAL(""), | 670 FILE_PATH_LITERAL(""), |
| 672 | 671 |
| 673 FILE_PATH_LITERAL("foo.swf"), DownloadItem::TARGET_DISPOSITION_OVERWRITE, | 672 FILE_PATH_LITERAL("foo.swf"), DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
| 674 | 673 |
| 675 EXPECT_UNCONFIRMED}, | 674 EXPECT_UNCONFIRMED}, |
| 676 | 675 |
| 676 #if !defined(OS_ANDROID) |
| 677 {// 2: Save As Maybe dangerous content |
| 678 SAVE_AS, content::DOWNLOAD_DANGER_TYPE_MAYBE_DANGEROUS_CONTENT, |
| 679 DownloadFileType::NOT_DANGEROUS, "http://phishing.example.com/foo.crx", "", |
| 680 FILE_PATH_LITERAL(""), |
| 677 | 681 |
| 678 #if !BUILDFLAG(ANDROID_JAVA_UI) | 682 FILE_PATH_LITERAL("foo.crx"), DownloadItem::TARGET_DISPOSITION_PROMPT, |
| 679 {// 2: Save As Maybe dangerous content | |
| 680 SAVE_AS, content::DOWNLOAD_DANGER_TYPE_MAYBE_DANGEROUS_CONTENT, | |
| 681 DownloadFileType::NOT_DANGEROUS, "http://phishing.example.com/foo.crx", | |
| 682 "", FILE_PATH_LITERAL(""), | |
| 683 | 683 |
| 684 FILE_PATH_LITERAL("foo.crx"), DownloadItem::TARGET_DISPOSITION_PROMPT, | 684 EXPECT_UNCONFIRMED}, |
| 685 #endif // !defined(OS_ANDROID) |
| 685 | 686 |
| 686 EXPECT_UNCONFIRMED}, | 687 {// 3: Forced Maybe dangerous content |
| 687 #endif // !BUILDFLAG(ANDROID_JAVA_UI) | 688 FORCED, content::DOWNLOAD_DANGER_TYPE_MAYBE_DANGEROUS_CONTENT, |
| 689 DownloadFileType::NOT_DANGEROUS, "http://phishing.example.com/foo.crx", "", |
| 690 FILE_PATH_LITERAL("forced-foo.crx"), |
| 688 | 691 |
| 689 {// 3: Forced Maybe dangerous content | 692 FILE_PATH_LITERAL("forced-foo.crx"), |
| 690 FORCED, content::DOWNLOAD_DANGER_TYPE_MAYBE_DANGEROUS_CONTENT, | 693 DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
| 691 DownloadFileType::NOT_DANGEROUS, "http://phishing.example.com/foo.crx", | |
| 692 "", FILE_PATH_LITERAL("forced-foo.crx"), | |
| 693 | 694 |
| 694 FILE_PATH_LITERAL("forced-foo.crx"), | 695 EXPECT_UNCONFIRMED}, |
| 695 DownloadItem::TARGET_DISPOSITION_OVERWRITE, | |
| 696 | |
| 697 EXPECT_UNCONFIRMED}, | |
| 698 }; | 696 }; |
| 699 | 697 |
| 700 // Test assumptions: | 698 // Test assumptions: |
| 701 ASSERT_EQ(DownloadFileType::ALLOW_ON_USER_GESTURE, | 699 ASSERT_EQ(DownloadFileType::ALLOW_ON_USER_GESTURE, |
| 702 Policies()->GetFileDangerLevel( | 700 Policies()->GetFileDangerLevel( |
| 703 base::FilePath(FILE_PATH_LITERAL("foo.crx")))); | 701 base::FilePath(FILE_PATH_LITERAL("foo.crx")))); |
| 704 ASSERT_EQ(DownloadFileType::DANGEROUS, | 702 ASSERT_EQ(DownloadFileType::DANGEROUS, |
| 705 Policies()->GetFileDangerLevel( | 703 Policies()->GetFileDangerLevel( |
| 706 base::FilePath(FILE_PATH_LITERAL("foo.swf")))); | 704 base::FilePath(FILE_PATH_LITERAL("foo.swf")))); |
| 707 | 705 |
| 708 ON_CALL(*delegate(), CheckDownloadUrl(_, _, _)) | 706 ON_CALL(*delegate(), CheckDownloadUrl(_, _, _)) |
| 709 .WillByDefault(WithArg<2>(ScheduleCallback( | 707 .WillByDefault(WithArg<2>(ScheduleCallback( |
| 710 content::DOWNLOAD_DANGER_TYPE_MAYBE_DANGEROUS_CONTENT))); | 708 content::DOWNLOAD_DANGER_TYPE_MAYBE_DANGEROUS_CONTENT))); |
| 711 RunTestCasesWithActiveItem(kSafeBrowsingTestCases, | 709 RunTestCasesWithActiveItem(kSafeBrowsingTestCases, |
| 712 arraysize(kSafeBrowsingTestCases)); | 710 arraysize(kSafeBrowsingTestCases)); |
| 713 } | 711 } |
| 714 | 712 |
| 715 #if !BUILDFLAG(ANDROID_JAVA_UI) | 713 #if !defined(OS_ANDROID) |
| 716 // Test whether the last saved directory is used for 'Save As' downloads. | 714 // Test whether the last saved directory is used for 'Save As' downloads. |
| 717 TEST_F(DownloadTargetDeterminerTest, LastSavePath) { | 715 TEST_F(DownloadTargetDeterminerTest, LastSavePath) { |
| 718 const DownloadTestCase kLastSavePathTestCasesPre[] = { | 716 const DownloadTestCase kLastSavePathTestCasesPre[] = { |
| 719 {// 0: If the last save path is empty, then the default download directory | 717 {// 0: If the last save path is empty, then the default download directory |
| 720 // should be used. | 718 // should be used. |
| 721 SAVE_AS, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, | 719 SAVE_AS, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, |
| 722 DownloadFileType::NOT_DANGEROUS, "http://example.com/foo.txt", | 720 DownloadFileType::NOT_DANGEROUS, "http://example.com/foo.txt", |
| 723 "text/plain", FILE_PATH_LITERAL(""), | 721 "text/plain", FILE_PATH_LITERAL(""), |
| 724 | 722 |
| 725 FILE_PATH_LITERAL("foo.txt"), DownloadItem::TARGET_DISPOSITION_PROMPT, | 723 FILE_PATH_LITERAL("foo.txt"), DownloadItem::TARGET_DISPOSITION_PROMPT, |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 794 download_prefs()->SetSaveFilePath(last_selected_dir); | 792 download_prefs()->SetSaveFilePath(last_selected_dir); |
| 795 EXPECT_CALL(*delegate(), PromptUserForDownloadPath( | 793 EXPECT_CALL(*delegate(), PromptUserForDownloadPath( |
| 796 _, last_selected_dir.AppendASCII("foo.txt"), _)); | 794 _, last_selected_dir.AppendASCII("foo.txt"), _)); |
| 797 EXPECT_CALL(*delegate(), DetermineLocalPath(_, virtual_path, _)) | 795 EXPECT_CALL(*delegate(), DetermineLocalPath(_, virtual_path, _)) |
| 798 .WillOnce(WithArg<2>(ScheduleCallback( | 796 .WillOnce(WithArg<2>(ScheduleCallback( |
| 799 GetPathInDownloadDir(FILE_PATH_LITERAL("bar.txt"))))); | 797 GetPathInDownloadDir(FILE_PATH_LITERAL("bar.txt"))))); |
| 800 RunTestCasesWithActiveItem(kLastSavePathTestCasesVirtual, | 798 RunTestCasesWithActiveItem(kLastSavePathTestCasesVirtual, |
| 801 arraysize(kLastSavePathTestCasesVirtual)); | 799 arraysize(kLastSavePathTestCasesVirtual)); |
| 802 } | 800 } |
| 803 } | 801 } |
| 804 #endif // !BUILDFLAG(ANDROID_JAVA_UI) | 802 #endif // !defined(OS_ANDROID) |
| 805 | 803 |
| 806 // These tests are run with the default downloads folder set to a virtual | 804 // These tests are run with the default downloads folder set to a virtual |
| 807 // directory. | 805 // directory. |
| 808 TEST_F(DownloadTargetDeterminerTest, DefaultVirtual) { | 806 TEST_F(DownloadTargetDeterminerTest, DefaultVirtual) { |
| 809 // The default download directory is the virutal path. | 807 // The default download directory is the virutal path. |
| 810 download_prefs()->SetDownloadPath(test_virtual_dir()); | 808 download_prefs()->SetDownloadPath(test_virtual_dir()); |
| 811 | 809 |
| 812 { | 810 { |
| 813 SCOPED_TRACE(testing::Message() << "Automatic Safe Download"); | 811 SCOPED_TRACE(testing::Message() << "Automatic Safe Download"); |
| 814 const DownloadTestCase kAutomaticDownloadToVirtualDir = { | 812 const DownloadTestCase kAutomaticDownloadToVirtualDir = { |
| 815 AUTOMATIC, | 813 AUTOMATIC, |
| 816 content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, | 814 content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, |
| 817 DownloadFileType::NOT_DANGEROUS, | 815 DownloadFileType::NOT_DANGEROUS, |
| 818 "http://example.com/foo.txt", | 816 "http://example.com/foo.txt", |
| 819 "text/plain", | 817 "text/plain", |
| 820 FILE_PATH_LITERAL(""), | 818 FILE_PATH_LITERAL(""), |
| 821 | 819 |
| 822 FILE_PATH_LITERAL("foo-local.txt"), | 820 FILE_PATH_LITERAL("foo-local.txt"), |
| 823 DownloadItem::TARGET_DISPOSITION_OVERWRITE, | 821 DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
| 824 | 822 |
| 825 EXPECT_LOCAL_PATH}; | 823 EXPECT_LOCAL_PATH}; |
| 826 EXPECT_CALL(*delegate(), DetermineLocalPath(_, _, _)) | 824 EXPECT_CALL(*delegate(), DetermineLocalPath(_, _, _)) |
| 827 .WillOnce(WithArg<2>(ScheduleCallback( | 825 .WillOnce(WithArg<2>(ScheduleCallback( |
| 828 GetPathInDownloadDir(FILE_PATH_LITERAL("foo-local.txt"))))); | 826 GetPathInDownloadDir(FILE_PATH_LITERAL("foo-local.txt"))))); |
| 829 RunTestCasesWithActiveItem(&kAutomaticDownloadToVirtualDir, 1); | 827 RunTestCasesWithActiveItem(&kAutomaticDownloadToVirtualDir, 1); |
| 830 } | 828 } |
| 831 | 829 |
| 832 #if !BUILDFLAG(ANDROID_JAVA_UI) | 830 #if !defined(OS_ANDROID) |
| 833 { | 831 { |
| 834 SCOPED_TRACE(testing::Message() << "Save As to virtual directory"); | 832 SCOPED_TRACE(testing::Message() << "Save As to virtual directory"); |
| 835 const DownloadTestCase kSaveAsToVirtualDir = { | 833 const DownloadTestCase kSaveAsToVirtualDir = { |
| 836 SAVE_AS, | 834 SAVE_AS, |
| 837 content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, | 835 content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, |
| 838 DownloadFileType::NOT_DANGEROUS, | 836 DownloadFileType::NOT_DANGEROUS, |
| 839 "http://example.com/bar.txt", | 837 "http://example.com/bar.txt", |
| 840 "text/plain", | 838 "text/plain", |
| 841 FILE_PATH_LITERAL(""), | 839 FILE_PATH_LITERAL(""), |
| 842 | 840 |
| (...skipping 24 matching lines...) Expand all Loading... |
| 867 FILE_PATH_LITERAL("foo-x.txt"), | 865 FILE_PATH_LITERAL("foo-x.txt"), |
| 868 DownloadItem::TARGET_DISPOSITION_PROMPT, | 866 DownloadItem::TARGET_DISPOSITION_PROMPT, |
| 869 | 867 |
| 870 EXPECT_CRDOWNLOAD}; | 868 EXPECT_CRDOWNLOAD}; |
| 871 EXPECT_CALL(*delegate(), PromptUserForDownloadPath( | 869 EXPECT_CALL(*delegate(), PromptUserForDownloadPath( |
| 872 _, test_virtual_dir().AppendASCII("bar.txt"), _)) | 870 _, test_virtual_dir().AppendASCII("bar.txt"), _)) |
| 873 .WillOnce(WithArg<2>(ScheduleCallback( | 871 .WillOnce(WithArg<2>(ScheduleCallback( |
| 874 GetPathInDownloadDir(FILE_PATH_LITERAL("foo-x.txt"))))); | 872 GetPathInDownloadDir(FILE_PATH_LITERAL("foo-x.txt"))))); |
| 875 RunTestCasesWithActiveItem(&kSaveAsToLocalDir, 1); | 873 RunTestCasesWithActiveItem(&kSaveAsToLocalDir, 1); |
| 876 } | 874 } |
| 877 #endif // !BUILDFLAG(ANDROID_JAVA_UI) | 875 #endif // !defined(OS_ANDROID) |
| 878 | 876 |
| 879 { | 877 { |
| 880 SCOPED_TRACE(testing::Message() << "Forced safe download"); | 878 SCOPED_TRACE(testing::Message() << "Forced safe download"); |
| 881 const DownloadTestCase kForcedSafe = { | 879 const DownloadTestCase kForcedSafe = { |
| 882 FORCED, | 880 FORCED, |
| 883 content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, | 881 content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, |
| 884 DownloadFileType::NOT_DANGEROUS, | 882 DownloadFileType::NOT_DANGEROUS, |
| 885 "http://example.com/foo.txt", | 883 "http://example.com/foo.txt", |
| 886 "", | 884 "", |
| 887 FILE_PATH_LITERAL("forced-foo.txt"), | 885 FILE_PATH_LITERAL("forced-foo.txt"), |
| 888 | 886 |
| 889 FILE_PATH_LITERAL("forced-foo.txt"), | 887 FILE_PATH_LITERAL("forced-foo.txt"), |
| 890 DownloadItem::TARGET_DISPOSITION_OVERWRITE, | 888 DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
| 891 | 889 |
| 892 EXPECT_LOCAL_PATH}; | 890 EXPECT_LOCAL_PATH}; |
| 893 RunTestCasesWithActiveItem(&kForcedSafe, 1); | 891 RunTestCasesWithActiveItem(&kForcedSafe, 1); |
| 894 } | 892 } |
| 895 } | 893 } |
| 896 | 894 |
| 897 // Test that an inactive download will still get a virtual or local download | 895 // Test that an inactive download will still get a virtual or local download |
| 898 // path. | 896 // path. |
| 899 TEST_F(DownloadTargetDeterminerTest, InactiveDownload) { | 897 TEST_F(DownloadTargetDeterminerTest, InactiveDownload) { |
| 900 const DownloadTestCase kInactiveTestCases[] = { | 898 const DownloadTestCase kInactiveTestCases[] = { |
| 901 {AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, | 899 {AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, |
| 902 DownloadFileType::NOT_DANGEROUS, "http://example.com/foo.txt", | 900 DownloadFileType::NOT_DANGEROUS, "http://example.com/foo.txt", |
| 903 "text/plain", FILE_PATH_LITERAL(""), | 901 "text/plain", FILE_PATH_LITERAL(""), |
| 904 | 902 |
| 905 FILE_PATH_LITERAL("foo.txt"), DownloadItem::TARGET_DISPOSITION_OVERWRITE, | 903 FILE_PATH_LITERAL("foo.txt"), DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
| 906 | 904 |
| 907 EXPECT_CRDOWNLOAD}, | 905 EXPECT_CRDOWNLOAD}, |
| 908 | 906 |
| 909 #if !BUILDFLAG(ANDROID_JAVA_UI) | 907 #if !defined(OS_ANDROID) |
| 910 {SAVE_AS, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, | 908 {SAVE_AS, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, |
| 911 DownloadFileType::NOT_DANGEROUS, "http://example.com/foo.txt", | 909 DownloadFileType::NOT_DANGEROUS, "http://example.com/foo.txt", |
| 912 "text/plain", FILE_PATH_LITERAL(""), | 910 "text/plain", FILE_PATH_LITERAL(""), |
| 913 | 911 |
| 914 FILE_PATH_LITERAL("foo.txt"), DownloadItem::TARGET_DISPOSITION_PROMPT, | 912 FILE_PATH_LITERAL("foo.txt"), DownloadItem::TARGET_DISPOSITION_PROMPT, |
| 915 | 913 |
| 916 EXPECT_CRDOWNLOAD} | 914 EXPECT_CRDOWNLOAD} |
| 917 #endif // !BUILDFLAG(ANDROID_JAVA_UI) | 915 #endif // !defined(OS_ANDROID) |
| 918 }; | 916 }; |
| 919 | 917 |
| 920 for (size_t i = 0; i < arraysize(kInactiveTestCases); ++i) { | 918 for (size_t i = 0; i < arraysize(kInactiveTestCases); ++i) { |
| 921 SCOPED_TRACE(testing::Message() << "Running test case " << i); | 919 SCOPED_TRACE(testing::Message() << "Running test case " << i); |
| 922 const DownloadTestCase& test_case = kInactiveTestCases[i]; | 920 const DownloadTestCase& test_case = kInactiveTestCases[i]; |
| 923 std::unique_ptr<content::MockDownloadItem> item( | 921 std::unique_ptr<content::MockDownloadItem> item( |
| 924 CreateActiveDownloadItem(i, test_case)); | 922 CreateActiveDownloadItem(i, test_case)); |
| 925 EXPECT_CALL(*item.get(), GetState()) | 923 EXPECT_CALL(*item.get(), GetState()) |
| 926 .WillRepeatedly(Return(content::DownloadItem::CANCELLED)); | 924 .WillRepeatedly(Return(content::DownloadItem::CANCELLED)); |
| 927 | 925 |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 977 .WillOnce(WithArg<2>(ScheduleCallback(base::FilePath()))); | 975 .WillOnce(WithArg<2>(ScheduleCallback(base::FilePath()))); |
| 978 RunTestCasesWithActiveItem(kLocalPathFailedCases, | 976 RunTestCasesWithActiveItem(kLocalPathFailedCases, |
| 979 arraysize(kLocalPathFailedCases)); | 977 arraysize(kLocalPathFailedCases)); |
| 980 } | 978 } |
| 981 | 979 |
| 982 // Downloads that have a danger level of ALLOW_ON_USER_GESTURE should be marked | 980 // Downloads that have a danger level of ALLOW_ON_USER_GESTURE should be marked |
| 983 // as safe depending on whether there was a user gesture associated with the | 981 // as safe depending on whether there was a user gesture associated with the |
| 984 // download and whether the referrer was visited prior to today. | 982 // download and whether the referrer was visited prior to today. |
| 985 TEST_F(DownloadTargetDeterminerTest, VisitedReferrer) { | 983 TEST_F(DownloadTargetDeterminerTest, VisitedReferrer) { |
| 986 const DownloadTestCase kVisitedReferrerCases[] = { | 984 const DownloadTestCase kVisitedReferrerCases[] = { |
| 987 // http://visited.example.com/ is added to the history as a visit that | 985 // http://visited.example.com/ is added to the history as a visit that |
| 988 // happened prior to today. | 986 // happened prior to today. |
| 989 {// 0: Safe download due to visiting referrer before. | 987 {// 0: Safe download due to visiting referrer before. |
| 990 AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, | 988 AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, |
| 991 DownloadFileType::NOT_DANGEROUS, "http://visited.example.com/foo.crx", | 989 DownloadFileType::NOT_DANGEROUS, "http://visited.example.com/foo.crx", |
| 992 "application/xml", FILE_PATH_LITERAL(""), | 990 "application/xml", FILE_PATH_LITERAL(""), |
| 993 | 991 |
| 994 FILE_PATH_LITERAL("foo.crx"), DownloadItem::TARGET_DISPOSITION_OVERWRITE, | 992 FILE_PATH_LITERAL("foo.crx"), DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
| 995 | 993 |
| 996 EXPECT_CRDOWNLOAD}, | 994 EXPECT_CRDOWNLOAD}, |
| 997 | 995 |
| 998 {// 1: Dangerous due to not having visited referrer before. | 996 {// 1: Dangerous due to not having visited referrer before. |
| 999 AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_DANGEROUS_FILE, | 997 AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_DANGEROUS_FILE, |
| 1000 DownloadFileType::ALLOW_ON_USER_GESTURE, | 998 DownloadFileType::ALLOW_ON_USER_GESTURE, |
| 1001 "http://not-visited.example.com/foo.crx", "application/xml", | 999 "http://not-visited.example.com/foo.crx", "application/xml", |
| 1002 FILE_PATH_LITERAL(""), | 1000 FILE_PATH_LITERAL(""), |
| 1003 | 1001 |
| 1004 FILE_PATH_LITERAL("foo.crx"), DownloadItem::TARGET_DISPOSITION_OVERWRITE, | 1002 FILE_PATH_LITERAL("foo.crx"), DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
| 1005 | 1003 |
| 1006 EXPECT_UNCONFIRMED}, | 1004 EXPECT_UNCONFIRMED}, |
| 1007 | 1005 |
| 1008 #if !BUILDFLAG(ANDROID_JAVA_UI) | 1006 #if !defined(OS_ANDROID) |
| 1009 {// 2: Safe because the user is being prompted. | 1007 {// 2: Safe because the user is being prompted. |
| 1010 SAVE_AS, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, | 1008 SAVE_AS, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, |
| 1011 DownloadFileType::NOT_DANGEROUS, | 1009 DownloadFileType::NOT_DANGEROUS, "http://not-visited.example.com/foo.crx", |
| 1012 "http://not-visited.example.com/foo.crx", "application/xml", | 1010 "application/xml", FILE_PATH_LITERAL(""), |
| 1013 FILE_PATH_LITERAL(""), | |
| 1014 | 1011 |
| 1015 FILE_PATH_LITERAL("foo.crx"), DownloadItem::TARGET_DISPOSITION_PROMPT, | 1012 FILE_PATH_LITERAL("foo.crx"), DownloadItem::TARGET_DISPOSITION_PROMPT, |
| 1016 | 1013 |
| 1017 EXPECT_CRDOWNLOAD}, | 1014 EXPECT_CRDOWNLOAD}, |
| 1018 #endif // !BUILDFLAG(ANDROID_JAVA_UI) | 1015 #endif // !defined(OS_ANDROID) |
| 1019 | 1016 |
| 1020 {// 3: Safe because of forced path. | 1017 {// 3: Safe because of forced path. |
| 1021 FORCED, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, | 1018 FORCED, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, |
| 1022 DownloadFileType::NOT_DANGEROUS, | 1019 DownloadFileType::NOT_DANGEROUS, "http://not-visited.example.com/foo.crx", |
| 1023 "http://not-visited.example.com/foo.crx", "application/xml", | 1020 "application/xml", FILE_PATH_LITERAL("foo.crx"), |
| 1024 FILE_PATH_LITERAL("foo.crx"), | |
| 1025 | 1021 |
| 1026 FILE_PATH_LITERAL("foo.crx"), DownloadItem::TARGET_DISPOSITION_OVERWRITE, | 1022 FILE_PATH_LITERAL("foo.crx"), DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
| 1027 | 1023 |
| 1028 EXPECT_LOCAL_PATH}, | 1024 EXPECT_LOCAL_PATH}, |
| 1029 }; | 1025 }; |
| 1030 | 1026 |
| 1031 // This test assumes that the danger level of .crx files is | 1027 // This test assumes that the danger level of .crx files is |
| 1032 // ALLOW_ON_USER_GESTURE. | 1028 // ALLOW_ON_USER_GESTURE. |
| 1033 ASSERT_EQ(DownloadFileType::ALLOW_ON_USER_GESTURE, | 1029 ASSERT_EQ(DownloadFileType::ALLOW_ON_USER_GESTURE, |
| 1034 Policies()->GetFileDangerLevel( | 1030 Policies()->GetFileDangerLevel( |
| 1035 base::FilePath(FILE_PATH_LITERAL("foo.crx")))); | 1031 base::FilePath(FILE_PATH_LITERAL("foo.crx")))); |
| 1036 | 1032 |
| 1037 // First the history service must exist. | 1033 // First the history service must exist. |
| 1038 ASSERT_TRUE(profile()->CreateHistoryService(false, false)); | 1034 ASSERT_TRUE(profile()->CreateHistoryService(false, false)); |
| (...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1164 } | 1160 } |
| 1165 | 1161 |
| 1166 std::unique_ptr<content::MockDownloadItem> item( | 1162 std::unique_ptr<content::MockDownloadItem> item( |
| 1167 CreateActiveDownloadItem(1, download_test_case)); | 1163 CreateActiveDownloadItem(1, download_test_case)); |
| 1168 EXPECT_CALL(*item, GetTransitionType()) | 1164 EXPECT_CALL(*item, GetTransitionType()) |
| 1169 .WillRepeatedly(Return(test_case.page_transition)); | 1165 .WillRepeatedly(Return(test_case.page_transition)); |
| 1170 RunTestCase(download_test_case, base::FilePath(), item.get()); | 1166 RunTestCase(download_test_case, base::FilePath(), item.get()); |
| 1171 } | 1167 } |
| 1172 } | 1168 } |
| 1173 | 1169 |
| 1174 #if !BUILDFLAG(ANDROID_JAVA_UI) | 1170 #if !defined(OS_ANDROID) |
| 1175 // These test cases are run with "Prompt for download" user preference set to | 1171 // These test cases are run with "Prompt for download" user preference set to |
| 1176 // true. | 1172 // true. |
| 1177 TEST_F(DownloadTargetDeterminerTest, PromptAlways) { | 1173 TEST_F(DownloadTargetDeterminerTest, PromptAlways) { |
| 1178 const DownloadTestCase kPromptingTestCases[] = { | 1174 const DownloadTestCase kPromptingTestCases[] = { |
| 1179 {// 0: Safe Automatic - Should prompt because of "Prompt for download" | 1175 {// 0: Safe Automatic - Should prompt because of "Prompt for download" |
| 1180 // preference setting. | 1176 // preference setting. |
| 1181 AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, | 1177 AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, |
| 1182 DownloadFileType::NOT_DANGEROUS, "http://example.com/foo.txt", | 1178 DownloadFileType::NOT_DANGEROUS, "http://example.com/foo.txt", |
| 1183 "text/plain", FILE_PATH_LITERAL(""), | 1179 "text/plain", FILE_PATH_LITERAL(""), |
| 1184 | 1180 |
| (...skipping 21 matching lines...) Expand all Loading... |
| 1206 | 1202 |
| 1207 EXPECT_CRDOWNLOAD}, | 1203 EXPECT_CRDOWNLOAD}, |
| 1208 }; | 1204 }; |
| 1209 | 1205 |
| 1210 SetPromptForDownload(true); | 1206 SetPromptForDownload(true); |
| 1211 EnableAutoOpenBasedOnExtension( | 1207 EnableAutoOpenBasedOnExtension( |
| 1212 base::FilePath(FILE_PATH_LITERAL("dummy.dummy"))); | 1208 base::FilePath(FILE_PATH_LITERAL("dummy.dummy"))); |
| 1213 RunTestCasesWithActiveItem(kPromptingTestCases, | 1209 RunTestCasesWithActiveItem(kPromptingTestCases, |
| 1214 arraysize(kPromptingTestCases)); | 1210 arraysize(kPromptingTestCases)); |
| 1215 } | 1211 } |
| 1216 #endif // !BUILDFLAG(ANDROID_JAVA_UI) | 1212 #endif // !defined(OS_ANDROID) |
| 1217 | 1213 |
| 1218 #if BUILDFLAG(ENABLE_EXTENSIONS) | 1214 #if BUILDFLAG(ENABLE_EXTENSIONS) |
| 1219 // These test cases are run with "Prompt for download" user preference set to | 1215 // These test cases are run with "Prompt for download" user preference set to |
| 1220 // true. Automatic extension downloads shouldn't cause prompting. | 1216 // true. Automatic extension downloads shouldn't cause prompting. |
| 1221 // Android doesn't support extensions. | 1217 // Android doesn't support extensions. |
| 1222 TEST_F(DownloadTargetDeterminerTest, PromptAlways_Extension) { | 1218 TEST_F(DownloadTargetDeterminerTest, PromptAlways_Extension) { |
| 1223 const DownloadTestCase kPromptingTestCases[] = { | 1219 const DownloadTestCase kPromptingTestCases[] = { |
| 1224 {// 0: Automatic Browser Extension download. - Shouldn't prompt for browser | 1220 {// 0: Automatic Browser Extension download. - Shouldn't prompt for browser |
| 1225 // extension downloads even if "Prompt for download" preference is set. | 1221 // extension downloads even if "Prompt for download" preference is set. |
| 1226 AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_DANGEROUS_FILE, | 1222 AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_DANGEROUS_FILE, |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1289 SetManagedDownloadPath(test_download_dir()); | 1285 SetManagedDownloadPath(test_download_dir()); |
| 1290 ASSERT_TRUE(download_prefs()->IsDownloadPathManaged()); | 1286 ASSERT_TRUE(download_prefs()->IsDownloadPathManaged()); |
| 1291 RunTestCasesWithActiveItem(kManagedPathTestCases, | 1287 RunTestCasesWithActiveItem(kManagedPathTestCases, |
| 1292 arraysize(kManagedPathTestCases)); | 1288 arraysize(kManagedPathTestCases)); |
| 1293 } | 1289 } |
| 1294 | 1290 |
| 1295 // Test basic functionality supporting extensions that want to override download | 1291 // Test basic functionality supporting extensions that want to override download |
| 1296 // filenames. | 1292 // filenames. |
| 1297 TEST_F(DownloadTargetDeterminerTest, NotifyExtensionsSafe) { | 1293 TEST_F(DownloadTargetDeterminerTest, NotifyExtensionsSafe) { |
| 1298 const DownloadTestCase kNotifyExtensionsTestCases[] = { | 1294 const DownloadTestCase kNotifyExtensionsTestCases[] = { |
| 1299 {// 0: Automatic Safe | 1295 {// 0: Automatic Safe |
| 1300 AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, | 1296 AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, |
| 1301 DownloadFileType::NOT_DANGEROUS, "http://example.com/foo.txt", | 1297 DownloadFileType::NOT_DANGEROUS, "http://example.com/foo.txt", |
| 1302 "text/plain", FILE_PATH_LITERAL(""), | 1298 "text/plain", FILE_PATH_LITERAL(""), |
| 1303 | 1299 |
| 1304 FILE_PATH_LITERAL("overridden/foo.txt"), | 1300 FILE_PATH_LITERAL("overridden/foo.txt"), |
| 1305 DownloadItem::TARGET_DISPOSITION_OVERWRITE, | 1301 DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
| 1306 | 1302 |
| 1307 EXPECT_CRDOWNLOAD}, | 1303 EXPECT_CRDOWNLOAD}, |
| 1308 | 1304 |
| 1309 #if !BUILDFLAG(ANDROID_JAVA_UI) | 1305 #if !defined(OS_ANDROID) |
| 1310 {// 1: Save_As Safe | 1306 {// 1: Save_As Safe |
| 1311 SAVE_AS, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, | 1307 SAVE_AS, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, |
| 1312 DownloadFileType::NOT_DANGEROUS, "http://example.com/foo.txt", | 1308 DownloadFileType::NOT_DANGEROUS, "http://example.com/foo.txt", |
| 1313 "text/plain", FILE_PATH_LITERAL(""), | 1309 "text/plain", FILE_PATH_LITERAL(""), |
| 1314 | 1310 |
| 1315 FILE_PATH_LITERAL("overridden/foo.txt"), | 1311 FILE_PATH_LITERAL("overridden/foo.txt"), |
| 1316 DownloadItem::TARGET_DISPOSITION_PROMPT, | 1312 DownloadItem::TARGET_DISPOSITION_PROMPT, |
| 1317 | 1313 |
| 1318 EXPECT_CRDOWNLOAD}, | 1314 EXPECT_CRDOWNLOAD}, |
| 1319 #endif // !BUILDFLAG(ANDROID_JAVA_UI) | 1315 #endif // !defined(OS_ANDROID) |
| 1320 | 1316 |
| 1321 {// 2: Automatic Dangerous | 1317 {// 2: Automatic Dangerous |
| 1322 AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_DANGEROUS_FILE, | 1318 AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_DANGEROUS_FILE, |
| 1323 DownloadFileType::ALLOW_ON_USER_GESTURE, "http://example.com/foo.crx", | 1319 DownloadFileType::ALLOW_ON_USER_GESTURE, "http://example.com/foo.crx", "", |
| 1324 "", FILE_PATH_LITERAL(""), | 1320 FILE_PATH_LITERAL(""), |
| 1325 | 1321 |
| 1326 FILE_PATH_LITERAL("overridden/foo.crx"), | 1322 FILE_PATH_LITERAL("overridden/foo.crx"), |
| 1327 DownloadItem::TARGET_DISPOSITION_OVERWRITE, | 1323 DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
| 1328 | 1324 |
| 1329 EXPECT_UNCONFIRMED}, | 1325 EXPECT_UNCONFIRMED}, |
| 1330 | 1326 |
| 1331 {// 3: Forced Safe | 1327 {// 3: Forced Safe |
| 1332 FORCED, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, | 1328 FORCED, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, |
| 1333 DownloadFileType::NOT_DANGEROUS, "http://example.com/foo.txt", "", | 1329 DownloadFileType::NOT_DANGEROUS, "http://example.com/foo.txt", "", |
| 1334 FILE_PATH_LITERAL("forced-foo.txt"), | 1330 FILE_PATH_LITERAL("forced-foo.txt"), |
| 1335 | 1331 |
| 1336 FILE_PATH_LITERAL("forced-foo.txt"), | 1332 FILE_PATH_LITERAL("forced-foo.txt"), |
| 1337 DownloadItem::TARGET_DISPOSITION_OVERWRITE, | 1333 DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
| 1338 | 1334 |
| 1339 EXPECT_LOCAL_PATH}, | 1335 EXPECT_LOCAL_PATH}, |
| 1340 }; | 1336 }; |
| 1341 | 1337 |
| 1342 ON_CALL(*delegate(), NotifyExtensions(_, _, _)) | 1338 ON_CALL(*delegate(), NotifyExtensions(_, _, _)) |
| 1343 .WillByDefault(Invoke(&NotifyExtensionsOverridePath)); | 1339 .WillByDefault(Invoke(&NotifyExtensionsOverridePath)); |
| 1344 RunTestCasesWithActiveItem(kNotifyExtensionsTestCases, | 1340 RunTestCasesWithActiveItem(kNotifyExtensionsTestCases, |
| 1345 arraysize(kNotifyExtensionsTestCases)); | 1341 arraysize(kNotifyExtensionsTestCases)); |
| 1346 } | 1342 } |
| 1347 | 1343 |
| 1348 // Test that filenames provided by extensions are passed into SafeBrowsing | 1344 // Test that filenames provided by extensions are passed into SafeBrowsing |
| 1349 // checks and dangerous download checks. | 1345 // checks and dangerous download checks. |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1424 .WillOnce(WithArg<2>( | 1420 .WillOnce(WithArg<2>( |
| 1425 ScheduleCallback2(overridden_path, | 1421 ScheduleCallback2(overridden_path, |
| 1426 DownloadPathReservationTracker::PROMPT))); | 1422 DownloadPathReservationTracker::PROMPT))); |
| 1427 EXPECT_CALL(*delegate(), ReserveVirtualPath( | 1423 EXPECT_CALL(*delegate(), ReserveVirtualPath( |
| 1428 _, full_overridden_path, true, DownloadPathReservationTracker::PROMPT, _)) | 1424 _, full_overridden_path, true, DownloadPathReservationTracker::PROMPT, _)) |
| 1429 .WillOnce(WithArg<4>( | 1425 .WillOnce(WithArg<4>( |
| 1430 ScheduleCallback2(full_overridden_path, true))); | 1426 ScheduleCallback2(full_overridden_path, true))); |
| 1431 RunTestCase(test_case, base::FilePath(), item.get()); | 1427 RunTestCase(test_case, base::FilePath(), item.get()); |
| 1432 } | 1428 } |
| 1433 | 1429 |
| 1434 #if !BUILDFLAG(ANDROID_JAVA_UI) | 1430 #if !defined(OS_ANDROID) |
| 1435 // Test that relative paths returned by extensions are always relative to the | 1431 // Test that relative paths returned by extensions are always relative to the |
| 1436 // default downloads path. | 1432 // default downloads path. |
| 1437 TEST_F(DownloadTargetDeterminerTest, NotifyExtensionsDefaultPath) { | 1433 TEST_F(DownloadTargetDeterminerTest, NotifyExtensionsDefaultPath) { |
| 1438 const DownloadTestCase kNotifyExtensionsTestCase = { | 1434 const DownloadTestCase kNotifyExtensionsTestCase = { |
| 1439 SAVE_AS, | 1435 SAVE_AS, |
| 1440 content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, | 1436 content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, |
| 1441 DownloadFileType::NOT_DANGEROUS, | 1437 DownloadFileType::NOT_DANGEROUS, |
| 1442 "http://example.com/foo.txt", | 1438 "http://example.com/foo.txt", |
| 1443 "text/plain", | 1439 "text/plain", |
| 1444 FILE_PATH_LITERAL(""), | 1440 FILE_PATH_LITERAL(""), |
| (...skipping 16 matching lines...) Expand all Loading... |
| 1461 EXPECT_CALL(*delegate(), NotifyExtensions(_, _, _)) | 1457 EXPECT_CALL(*delegate(), NotifyExtensions(_, _, _)) |
| 1462 .WillOnce(WithArg<2>( | 1458 .WillOnce(WithArg<2>( |
| 1463 ScheduleCallback2(overridden_path, | 1459 ScheduleCallback2(overridden_path, |
| 1464 DownloadPathReservationTracker::UNIQUIFY))); | 1460 DownloadPathReservationTracker::UNIQUIFY))); |
| 1465 EXPECT_CALL(*delegate(), | 1461 EXPECT_CALL(*delegate(), |
| 1466 PromptUserForDownloadPath(_, full_overridden_path, _)) | 1462 PromptUserForDownloadPath(_, full_overridden_path, _)) |
| 1467 .WillOnce(WithArg<2>( | 1463 .WillOnce(WithArg<2>( |
| 1468 ScheduleCallback(full_overridden_path))); | 1464 ScheduleCallback(full_overridden_path))); |
| 1469 RunTestCase(test_case, base::FilePath(), item.get()); | 1465 RunTestCase(test_case, base::FilePath(), item.get()); |
| 1470 } | 1466 } |
| 1471 #endif // !BUILDFLAG(ANDROID_JAVA_UI) | 1467 #endif // !defined(OS_ANDROID) |
| 1472 | 1468 |
| 1473 TEST_F(DownloadTargetDeterminerTest, InitialVirtualPathUnsafe) { | 1469 TEST_F(DownloadTargetDeterminerTest, InitialVirtualPathUnsafe) { |
| 1474 const base::FilePath::CharType* kInitialPath = | 1470 const base::FilePath::CharType* kInitialPath = |
| 1475 FILE_PATH_LITERAL("some_path/bar.html"); | 1471 FILE_PATH_LITERAL("some_path/bar.html"); |
| 1476 | 1472 |
| 1477 const DownloadTestCase kInitialPathTestCase = { | 1473 const DownloadTestCase kInitialPathTestCase = { |
| 1478 // 0: Save As Save. The path generated based on the DownloadItem is safe, | 1474 // 0: Save As Save. The path generated based on the DownloadItem is safe, |
| 1479 // but the initial path is unsafe. However, the download is not considered | 1475 // but the initial path is unsafe. However, the download is not considered |
| 1480 // dangerous since the user has been prompted. | 1476 // dangerous since the user has been prompted. |
| 1481 SAVE_AS, | 1477 SAVE_AS, |
| (...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1629 const base::FilePath::CharType* kInitialPath = | 1625 const base::FilePath::CharType* kInitialPath = |
| 1630 FILE_PATH_LITERAL("some_path/bar.txt"); | 1626 FILE_PATH_LITERAL("some_path/bar.txt"); |
| 1631 | 1627 |
| 1632 const DownloadTestCase kResumedTestCases[] = { | 1628 const DownloadTestCase kResumedTestCases[] = { |
| 1633 {// 0: Automatic Safe | 1629 {// 0: Automatic Safe |
| 1634 AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, | 1630 AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, |
| 1635 DownloadFileType::NOT_DANGEROUS, "http://example.com/foo.txt", | 1631 DownloadFileType::NOT_DANGEROUS, "http://example.com/foo.txt", |
| 1636 "text/plain", FILE_PATH_LITERAL(""), | 1632 "text/plain", FILE_PATH_LITERAL(""), |
| 1637 | 1633 |
| 1638 FILE_PATH_LITERAL("foo.txt"), | 1634 FILE_PATH_LITERAL("foo.txt"), |
| 1639 #if BUILDFLAG(ANDROID_JAVA_UI) | 1635 #if defined(OS_ANDROID) |
| 1640 DownloadItem::TARGET_DISPOSITION_OVERWRITE, | 1636 DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
| 1641 #else | 1637 #else |
| 1642 DownloadItem::TARGET_DISPOSITION_PROMPT, | 1638 DownloadItem::TARGET_DISPOSITION_PROMPT, |
| 1643 #endif | 1639 #endif |
| 1644 EXPECT_CRDOWNLOAD}, | 1640 EXPECT_CRDOWNLOAD}, |
| 1645 | 1641 |
| 1646 {// 1: Save_As Safe | 1642 {// 1: Save_As Safe |
| 1647 SAVE_AS, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, | 1643 SAVE_AS, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, |
| 1648 DownloadFileType::NOT_DANGEROUS, "http://example.com/foo.txt", | 1644 DownloadFileType::NOT_DANGEROUS, "http://example.com/foo.txt", |
| 1649 "text/plain", FILE_PATH_LITERAL(""), | 1645 "text/plain", FILE_PATH_LITERAL(""), |
| 1650 | 1646 |
| 1651 kInitialPath, DownloadItem::TARGET_DISPOSITION_PROMPT, | 1647 kInitialPath, DownloadItem::TARGET_DISPOSITION_PROMPT, |
| 1652 | 1648 |
| 1653 EXPECT_CRDOWNLOAD}, | 1649 EXPECT_CRDOWNLOAD}, |
| 1654 | 1650 |
| 1655 { | 1651 { |
| 1656 // 2: Automatic Dangerous | 1652 // 2: Automatic Dangerous |
| 1657 AUTOMATIC, | 1653 AUTOMATIC, |
| 1658 #if BUILDFLAG(ANDROID_JAVA_UI) | 1654 #if defined(OS_ANDROID) |
| 1659 // If we don't prompt user, the file will be treated as dangerous. | 1655 // If we don't prompt user, the file will be treated as dangerous. |
| 1660 content::DOWNLOAD_DANGER_TYPE_DANGEROUS_FILE, | 1656 content::DOWNLOAD_DANGER_TYPE_DANGEROUS_FILE, |
| 1661 DownloadFileType::ALLOW_ON_USER_GESTURE, | 1657 DownloadFileType::ALLOW_ON_USER_GESTURE, |
| 1662 #else | 1658 #else |
| 1663 content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, | 1659 content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, |
| 1664 DownloadFileType::NOT_DANGEROUS, | 1660 DownloadFileType::NOT_DANGEROUS, |
| 1665 #endif | 1661 #endif |
| 1666 "http://example.com/foo.crx", "", FILE_PATH_LITERAL(""), | 1662 "http://example.com/foo.crx", "", FILE_PATH_LITERAL(""), |
| 1667 | 1663 |
| 1668 FILE_PATH_LITERAL("foo.crx"), | 1664 FILE_PATH_LITERAL("foo.crx"), |
| 1669 #if BUILDFLAG(ANDROID_JAVA_UI) | 1665 #if defined(OS_ANDROID) |
| 1670 DownloadItem::TARGET_DISPOSITION_OVERWRITE, | 1666 DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
| 1671 // Dangerous download will have an unconfirmed intermediate file name. | 1667 // Dangerous download will have an unconfirmed intermediate file name. |
| 1672 EXPECT_UNCONFIRMED, | 1668 EXPECT_UNCONFIRMED, |
| 1673 #else | 1669 #else |
| 1674 DownloadItem::TARGET_DISPOSITION_PROMPT, EXPECT_CRDOWNLOAD, | 1670 DownloadItem::TARGET_DISPOSITION_PROMPT, EXPECT_CRDOWNLOAD, |
| 1675 #endif | 1671 #endif |
| 1676 }, | 1672 }, |
| 1677 }; | 1673 }; |
| 1678 | 1674 |
| 1679 // The test assumes that .xml files have a danger level of | 1675 // The test assumes that .xml files have a danger level of |
| 1680 // ALLOW_ON_USER_GESTURE. | 1676 // ALLOW_ON_USER_GESTURE. |
| 1681 ASSERT_EQ(DownloadFileType::ALLOW_ON_USER_GESTURE, | 1677 ASSERT_EQ(DownloadFileType::ALLOW_ON_USER_GESTURE, |
| 1682 Policies()->GetFileDangerLevel( | 1678 Policies()->GetFileDangerLevel( |
| 1683 base::FilePath(FILE_PATH_LITERAL("foo.crx")))); | 1679 base::FilePath(FILE_PATH_LITERAL("foo.crx")))); |
| 1684 for (size_t i = 0; i < arraysize(kResumedTestCases); ++i) { | 1680 for (size_t i = 0; i < arraysize(kResumedTestCases); ++i) { |
| 1685 SCOPED_TRACE(testing::Message() << "Running test case " << i); | 1681 SCOPED_TRACE(testing::Message() << "Running test case " << i); |
| 1686 download_prefs()->SetSaveFilePath(test_download_dir()); | 1682 download_prefs()->SetSaveFilePath(test_download_dir()); |
| 1687 const DownloadTestCase& test_case = kResumedTestCases[i]; | 1683 const DownloadTestCase& test_case = kResumedTestCases[i]; |
| 1688 base::FilePath expected_path = | 1684 base::FilePath expected_path = |
| 1689 GetPathInDownloadDir(test_case.expected_local_path); | 1685 GetPathInDownloadDir(test_case.expected_local_path); |
| 1690 std::unique_ptr<content::MockDownloadItem> item( | 1686 std::unique_ptr<content::MockDownloadItem> item( |
| 1691 CreateActiveDownloadItem(i, test_case)); | 1687 CreateActiveDownloadItem(i, test_case)); |
| 1692 ON_CALL(*item.get(), GetLastReason()) | 1688 ON_CALL(*item.get(), GetLastReason()) |
| 1693 .WillByDefault(Return( | 1689 .WillByDefault(Return( |
| 1694 content::DOWNLOAD_INTERRUPT_REASON_FILE_NO_SPACE)); | 1690 content::DOWNLOAD_INTERRUPT_REASON_FILE_NO_SPACE)); |
| 1695 EXPECT_CALL(*delegate(), NotifyExtensions(_, _, _)) | 1691 EXPECT_CALL(*delegate(), NotifyExtensions(_, _, _)) |
| 1696 .Times(test_case.test_type == AUTOMATIC ? 1 : 0); | 1692 .Times(test_case.test_type == AUTOMATIC ? 1 : 0); |
| 1697 EXPECT_CALL(*delegate(), ReserveVirtualPath(_, expected_path, false, _, _)); | 1693 EXPECT_CALL(*delegate(), ReserveVirtualPath(_, expected_path, false, _, _)); |
| 1698 #if BUILDFLAG(ANDROID_JAVA_UI) | 1694 #if defined(OS_ANDROID) |
| 1699 EXPECT_CALL(*delegate(), PromptUserForDownloadPath(_, expected_path, _)) | 1695 EXPECT_CALL(*delegate(), PromptUserForDownloadPath(_, expected_path, _)) |
| 1700 .Times(0); | 1696 .Times(0); |
| 1701 #else | 1697 #else |
| 1702 EXPECT_CALL(*delegate(), PromptUserForDownloadPath(_, expected_path, _)); | 1698 EXPECT_CALL(*delegate(), PromptUserForDownloadPath(_, expected_path, _)); |
| 1703 #endif | 1699 #endif |
| 1704 EXPECT_CALL(*delegate(), DetermineLocalPath(_, expected_path, _)); | 1700 EXPECT_CALL(*delegate(), DetermineLocalPath(_, expected_path, _)); |
| 1705 EXPECT_CALL(*delegate(), CheckDownloadUrl(_, expected_path, _)); | 1701 EXPECT_CALL(*delegate(), CheckDownloadUrl(_, expected_path, _)); |
| 1706 RunTestCase(test_case, GetPathInDownloadDir(kInitialPath), item.get()); | 1702 RunTestCase(test_case, GetPathInDownloadDir(kInitialPath), item.get()); |
| 1707 } | 1703 } |
| 1708 } | 1704 } |
| (...skipping 451 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2160 EXPECT_CALL(mock_plugin_filter_, MockPluginAvailable(browser_plugin.path())) | 2156 EXPECT_CALL(mock_plugin_filter_, MockPluginAvailable(browser_plugin.path())) |
| 2161 .WillRepeatedly(Return(false)); | 2157 .WillRepeatedly(Return(false)); |
| 2162 target_info = RunDownloadTargetDeterminer( | 2158 target_info = RunDownloadTargetDeterminer( |
| 2163 GetPathInDownloadDir(kInitialPath), item.get()); | 2159 GetPathInDownloadDir(kInitialPath), item.get()); |
| 2164 EXPECT_FALSE(target_info->is_filetype_handled_safely); | 2160 EXPECT_FALSE(target_info->is_filetype_handled_safely); |
| 2165 } | 2161 } |
| 2166 | 2162 |
| 2167 #endif // BUILDFLAG(ENABLE_PLUGINS) | 2163 #endif // BUILDFLAG(ENABLE_PLUGINS) |
| 2168 | 2164 |
| 2169 } // namespace | 2165 } // namespace |
| OLD | NEW |