| 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 501 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 512 const DownloadTestCase kBasicTestCases[] = { | 512 const DownloadTestCase kBasicTestCases[] = { |
| 513 {// 0: Automatic Safe | 513 {// 0: Automatic Safe |
| 514 AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, | 514 AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, |
| 515 DownloadFileType::NOT_DANGEROUS, "http://example.com/foo.txt", | 515 DownloadFileType::NOT_DANGEROUS, "http://example.com/foo.txt", |
| 516 "text/plain", FILE_PATH_LITERAL(""), | 516 "text/plain", FILE_PATH_LITERAL(""), |
| 517 | 517 |
| 518 FILE_PATH_LITERAL("foo.txt"), DownloadItem::TARGET_DISPOSITION_OVERWRITE, | 518 FILE_PATH_LITERAL("foo.txt"), DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
| 519 | 519 |
| 520 EXPECT_CRDOWNLOAD}, | 520 EXPECT_CRDOWNLOAD}, |
| 521 | 521 |
| 522 #if !BUILDFLAG(ANDROID_JAVA_UI) |
| 522 {// 1: Save_As Safe | 523 {// 1: Save_As Safe |
| 523 SAVE_AS, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, | 524 SAVE_AS, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, |
| 524 DownloadFileType::NOT_DANGEROUS, "http://example.com/foo.txt", | 525 DownloadFileType::NOT_DANGEROUS, "http://example.com/foo.txt", |
| 525 "text/plain", FILE_PATH_LITERAL(""), | 526 "text/plain", FILE_PATH_LITERAL(""), |
| 526 | 527 |
| 527 FILE_PATH_LITERAL("foo.txt"), DownloadItem::TARGET_DISPOSITION_PROMPT, | 528 FILE_PATH_LITERAL("foo.txt"), DownloadItem::TARGET_DISPOSITION_PROMPT, |
| 528 | 529 |
| 529 EXPECT_CRDOWNLOAD}, | 530 EXPECT_CRDOWNLOAD}, |
| 531 #endif // !BUILDFLAG(ANDROID_JAVA_UI) |
| 530 | 532 |
| 531 {// 2: Automatic Dangerous | 533 {// 2: Automatic Dangerous |
| 532 AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_DANGEROUS_FILE, | 534 AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_DANGEROUS_FILE, |
| 533 DownloadFileType::ALLOW_ON_USER_GESTURE, "http://example.com/foo.crx", | 535 DownloadFileType::ALLOW_ON_USER_GESTURE, "http://example.com/foo.crx", |
| 534 "", FILE_PATH_LITERAL(""), | 536 "", FILE_PATH_LITERAL(""), |
| 535 | 537 |
| 536 FILE_PATH_LITERAL("foo.crx"), DownloadItem::TARGET_DISPOSITION_OVERWRITE, | 538 FILE_PATH_LITERAL("foo.crx"), DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
| 537 | 539 |
| 538 EXPECT_UNCONFIRMED}, | 540 EXPECT_UNCONFIRMED}, |
| 539 | 541 |
| 540 {// 3: Forced Safe | 542 {// 3: Forced Safe |
| 541 FORCED, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, | 543 FORCED, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, |
| 542 DownloadFileType::NOT_DANGEROUS, "http://example.com/foo.txt", "", | 544 DownloadFileType::NOT_DANGEROUS, "http://example.com/foo.txt", "", |
| 543 FILE_PATH_LITERAL("forced-foo.txt"), | 545 FILE_PATH_LITERAL("forced-foo.txt"), |
| 544 | 546 |
| 545 FILE_PATH_LITERAL("forced-foo.txt"), | 547 FILE_PATH_LITERAL("forced-foo.txt"), |
| 546 DownloadItem::TARGET_DISPOSITION_OVERWRITE, | 548 DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
| 547 | 549 |
| 548 EXPECT_LOCAL_PATH}, | 550 EXPECT_LOCAL_PATH}, |
| 549 }; | 551 }; |
| 550 | 552 |
| 551 // The test assumes that .crx files have a danger level of | 553 // The test assumes that .crx files have a danger level of |
| 552 // ALLOW_ON_USER_GESTURE. | 554 // ALLOW_ON_USER_GESTURE. |
| 553 ASSERT_EQ(DownloadFileType::ALLOW_ON_USER_GESTURE, | 555 ASSERT_EQ(DownloadFileType::ALLOW_ON_USER_GESTURE, |
| 554 Policies()->GetFileDangerLevel( | 556 Policies()->GetFileDangerLevel( |
| 555 base::FilePath(FILE_PATH_LITERAL("foo.crx")))); | 557 base::FilePath(FILE_PATH_LITERAL("foo.crx")))); |
| 556 RunTestCasesWithActiveItem(kBasicTestCases, arraysize(kBasicTestCases)); | 558 RunTestCasesWithActiveItem(kBasicTestCases, arraysize(kBasicTestCases)); |
| 557 } | 559 } |
| 558 | 560 |
| 561 #if !BUILDFLAG(ANDROID_JAVA_UI) |
| 559 TEST_F(DownloadTargetDeterminerTest, TargetDeterminer_CancelSaveAs) { | 562 TEST_F(DownloadTargetDeterminerTest, TargetDeterminer_CancelSaveAs) { |
| 560 const DownloadTestCase kCancelSaveAsTestCases[] = { | 563 const DownloadTestCase kCancelSaveAsTestCases[] = { |
| 561 {// 0: Save_As Safe, Cancelled. | 564 {// 0: Save_As Safe, Cancelled. |
| 562 SAVE_AS, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, | 565 SAVE_AS, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, |
| 563 DownloadFileType::NOT_DANGEROUS, "http://example.com/foo.txt", | 566 DownloadFileType::NOT_DANGEROUS, "http://example.com/foo.txt", |
| 564 "text/plain", FILE_PATH_LITERAL(""), | 567 "text/plain", FILE_PATH_LITERAL(""), |
| 565 | 568 |
| 566 FILE_PATH_LITERAL(""), DownloadItem::TARGET_DISPOSITION_PROMPT, | 569 FILE_PATH_LITERAL(""), DownloadItem::TARGET_DISPOSITION_PROMPT, |
| 567 | 570 |
| 568 EXPECT_LOCAL_PATH}}; | 571 EXPECT_LOCAL_PATH}}; |
| 569 ON_CALL(*delegate(), PromptUserForDownloadPath(_, _, _)) | 572 ON_CALL(*delegate(), PromptUserForDownloadPath(_, _, _)) |
| 570 .WillByDefault(WithArg<2>(ScheduleCallback(base::FilePath()))); | 573 .WillByDefault(WithArg<2>(ScheduleCallback(base::FilePath()))); |
| 571 RunTestCasesWithActiveItem(kCancelSaveAsTestCases, | 574 RunTestCasesWithActiveItem(kCancelSaveAsTestCases, |
| 572 arraysize(kCancelSaveAsTestCases)); | 575 arraysize(kCancelSaveAsTestCases)); |
| 573 } | 576 } |
| 577 #endif // !BUILDFLAG(ANDROID_JAVA_UI) |
| 574 | 578 |
| 575 // The SafeBrowsing check is performed early. Make sure that a download item | 579 // The SafeBrowsing check is performed early. Make sure that a download item |
| 576 // that has been marked as DANGEROUS_URL behaves correctly. | 580 // that has been marked as DANGEROUS_URL behaves correctly. |
| 577 TEST_F(DownloadTargetDeterminerTest, TargetDeterminer_DangerousUrl) { | 581 TEST_F(DownloadTargetDeterminerTest, TargetDeterminer_DangerousUrl) { |
| 578 const DownloadTestCase kSafeBrowsingTestCases[] = { | 582 const DownloadTestCase kSafeBrowsingTestCases[] = { |
| 579 {// 0: Automatic Dangerous URL | 583 {// 0: Automatic Dangerous URL |
| 580 AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_DANGEROUS_URL, | 584 AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_DANGEROUS_URL, |
| 581 DownloadFileType::NOT_DANGEROUS, "http://phishing.example.com/foo.txt", | 585 DownloadFileType::NOT_DANGEROUS, "http://phishing.example.com/foo.txt", |
| 582 "", FILE_PATH_LITERAL(""), | 586 "", FILE_PATH_LITERAL(""), |
| 583 | 587 |
| 584 FILE_PATH_LITERAL("foo.txt"), DownloadItem::TARGET_DISPOSITION_OVERWRITE, | 588 FILE_PATH_LITERAL("foo.txt"), DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
| 585 | 589 |
| 586 EXPECT_UNCONFIRMED}, | 590 EXPECT_UNCONFIRMED}, |
| 587 | 591 |
| 592 #if !BUILDFLAG(ANDROID_JAVA_UI) |
| 588 {// 1: Save As Dangerous URL | 593 {// 1: Save As Dangerous URL |
| 589 SAVE_AS, content::DOWNLOAD_DANGER_TYPE_DANGEROUS_URL, | 594 SAVE_AS, content::DOWNLOAD_DANGER_TYPE_DANGEROUS_URL, |
| 590 DownloadFileType::NOT_DANGEROUS, "http://phishing.example.com/foo.txt", | 595 DownloadFileType::NOT_DANGEROUS, "http://phishing.example.com/foo.txt", |
| 591 "", FILE_PATH_LITERAL(""), | 596 "", FILE_PATH_LITERAL(""), |
| 592 | 597 |
| 593 FILE_PATH_LITERAL("foo.txt"), DownloadItem::TARGET_DISPOSITION_PROMPT, | 598 FILE_PATH_LITERAL("foo.txt"), DownloadItem::TARGET_DISPOSITION_PROMPT, |
| 594 | 599 |
| 595 EXPECT_UNCONFIRMED}, | 600 EXPECT_UNCONFIRMED}, |
| 601 #endif // !BUILDFLAG(ANDROID_JAVA_UI) |
| 596 | 602 |
| 597 {// 2: Forced Dangerous URL | 603 {// 2: Forced Dangerous URL |
| 598 FORCED, content::DOWNLOAD_DANGER_TYPE_DANGEROUS_URL, | 604 FORCED, content::DOWNLOAD_DANGER_TYPE_DANGEROUS_URL, |
| 599 DownloadFileType::NOT_DANGEROUS, "http://phishing.example.com/foo.txt", | 605 DownloadFileType::NOT_DANGEROUS, "http://phishing.example.com/foo.txt", |
| 600 "", FILE_PATH_LITERAL("forced-foo.txt"), | 606 "", FILE_PATH_LITERAL("forced-foo.txt"), |
| 601 | 607 |
| 602 FILE_PATH_LITERAL("forced-foo.txt"), | 608 FILE_PATH_LITERAL("forced-foo.txt"), |
| 603 DownloadItem::TARGET_DISPOSITION_OVERWRITE, | 609 DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
| 604 | 610 |
| 605 EXPECT_UNCONFIRMED}, | 611 EXPECT_UNCONFIRMED}, |
| 606 | 612 |
| 607 {// 3: Automatic Dangerous URL + Dangerous file. Dangerous URL takes | 613 {// 3: Automatic Dangerous URL + Dangerous file. Dangerous URL takes |
| 608 // precedence. | 614 // precedence. |
| 609 AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_DANGEROUS_URL, | 615 AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_DANGEROUS_URL, |
| 610 DownloadFileType::NOT_DANGEROUS, "http://phishing.example.com/foo.html", | 616 DownloadFileType::NOT_DANGEROUS, "http://phishing.example.com/foo.html", |
| 611 "", FILE_PATH_LITERAL(""), | 617 "", FILE_PATH_LITERAL(""), |
| 612 | 618 |
| 613 FILE_PATH_LITERAL("foo.html"), | 619 FILE_PATH_LITERAL("foo.html"), |
| 614 DownloadItem::TARGET_DISPOSITION_OVERWRITE, | 620 DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
| 615 | 621 |
| 616 EXPECT_UNCONFIRMED}, | 622 EXPECT_UNCONFIRMED}, |
| 617 | 623 |
| 624 #if !BUILDFLAG(ANDROID_JAVA_UI) |
| 618 {// 4: Save As Dangerous URL + Dangerous file | 625 {// 4: Save As Dangerous URL + Dangerous file |
| 619 SAVE_AS, content::DOWNLOAD_DANGER_TYPE_DANGEROUS_URL, | 626 SAVE_AS, content::DOWNLOAD_DANGER_TYPE_DANGEROUS_URL, |
| 620 DownloadFileType::NOT_DANGEROUS, "http://phishing.example.com/foo.html", | 627 DownloadFileType::NOT_DANGEROUS, "http://phishing.example.com/foo.html", |
| 621 "", FILE_PATH_LITERAL(""), | 628 "", FILE_PATH_LITERAL(""), |
| 622 | 629 |
| 623 FILE_PATH_LITERAL("foo.html"), DownloadItem::TARGET_DISPOSITION_PROMPT, | 630 FILE_PATH_LITERAL("foo.html"), DownloadItem::TARGET_DISPOSITION_PROMPT, |
| 624 | 631 |
| 625 EXPECT_UNCONFIRMED}, | 632 EXPECT_UNCONFIRMED}, |
| 633 #endif // !BUILDFLAG(ANDROID_JAVA_UI) |
| 626 | 634 |
| 627 {// 5: Forced Dangerous URL + Dangerous file | 635 {// 5: Forced Dangerous URL + Dangerous file |
| 628 FORCED, content::DOWNLOAD_DANGER_TYPE_DANGEROUS_URL, | 636 FORCED, content::DOWNLOAD_DANGER_TYPE_DANGEROUS_URL, |
| 629 DownloadFileType::NOT_DANGEROUS, "http://phishing.example.com/foo.html", | 637 DownloadFileType::NOT_DANGEROUS, "http://phishing.example.com/foo.html", |
| 630 "", FILE_PATH_LITERAL("forced-foo.html"), | 638 "", FILE_PATH_LITERAL("forced-foo.html"), |
| 631 | 639 |
| 632 FILE_PATH_LITERAL("forced-foo.html"), | 640 FILE_PATH_LITERAL("forced-foo.html"), |
| 633 DownloadItem::TARGET_DISPOSITION_OVERWRITE, | 641 DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
| 634 | 642 |
| 635 EXPECT_UNCONFIRMED}, | 643 EXPECT_UNCONFIRMED}, |
| (...skipping 21 matching lines...) Expand all Loading... |
| 657 | 665 |
| 658 {// 1: Automatic Maybe dangerous content with DANGEROUS type. | 666 {// 1: Automatic Maybe dangerous content with DANGEROUS type. |
| 659 AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_MAYBE_DANGEROUS_CONTENT, | 667 AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_MAYBE_DANGEROUS_CONTENT, |
| 660 DownloadFileType::DANGEROUS, "http://phishing.example.com/foo.swf", "", | 668 DownloadFileType::DANGEROUS, "http://phishing.example.com/foo.swf", "", |
| 661 FILE_PATH_LITERAL(""), | 669 FILE_PATH_LITERAL(""), |
| 662 | 670 |
| 663 FILE_PATH_LITERAL("foo.swf"), DownloadItem::TARGET_DISPOSITION_OVERWRITE, | 671 FILE_PATH_LITERAL("foo.swf"), DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
| 664 | 672 |
| 665 EXPECT_UNCONFIRMED}, | 673 EXPECT_UNCONFIRMED}, |
| 666 | 674 |
| 675 |
| 676 #if !BUILDFLAG(ANDROID_JAVA_UI) |
| 667 {// 2: Save As Maybe dangerous content | 677 {// 2: Save As Maybe dangerous content |
| 668 SAVE_AS, content::DOWNLOAD_DANGER_TYPE_MAYBE_DANGEROUS_CONTENT, | 678 SAVE_AS, content::DOWNLOAD_DANGER_TYPE_MAYBE_DANGEROUS_CONTENT, |
| 669 DownloadFileType::NOT_DANGEROUS, "http://phishing.example.com/foo.crx", | 679 DownloadFileType::NOT_DANGEROUS, "http://phishing.example.com/foo.crx", |
| 670 "", FILE_PATH_LITERAL(""), | 680 "", FILE_PATH_LITERAL(""), |
| 671 | 681 |
| 672 FILE_PATH_LITERAL("foo.crx"), DownloadItem::TARGET_DISPOSITION_PROMPT, | 682 FILE_PATH_LITERAL("foo.crx"), DownloadItem::TARGET_DISPOSITION_PROMPT, |
| 673 | 683 |
| 674 EXPECT_UNCONFIRMED}, | 684 EXPECT_UNCONFIRMED}, |
| 685 #endif // !BUILDFLAG(ANDROID_JAVA_UI) |
| 675 | 686 |
| 676 {// 3: Forced Maybe dangerous content | 687 {// 3: Forced Maybe dangerous content |
| 677 FORCED, content::DOWNLOAD_DANGER_TYPE_MAYBE_DANGEROUS_CONTENT, | 688 FORCED, content::DOWNLOAD_DANGER_TYPE_MAYBE_DANGEROUS_CONTENT, |
| 678 DownloadFileType::NOT_DANGEROUS, "http://phishing.example.com/foo.crx", | 689 DownloadFileType::NOT_DANGEROUS, "http://phishing.example.com/foo.crx", |
| 679 "", FILE_PATH_LITERAL("forced-foo.crx"), | 690 "", FILE_PATH_LITERAL("forced-foo.crx"), |
| 680 | 691 |
| 681 FILE_PATH_LITERAL("forced-foo.crx"), | 692 FILE_PATH_LITERAL("forced-foo.crx"), |
| 682 DownloadItem::TARGET_DISPOSITION_OVERWRITE, | 693 DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
| 683 | 694 |
| 684 EXPECT_UNCONFIRMED}, | 695 EXPECT_UNCONFIRMED}, |
| 685 }; | 696 }; |
| 686 | 697 |
| 687 // Test assumptions: | 698 // Test assumptions: |
| 688 ASSERT_EQ(DownloadFileType::ALLOW_ON_USER_GESTURE, | 699 ASSERT_EQ(DownloadFileType::ALLOW_ON_USER_GESTURE, |
| 689 Policies()->GetFileDangerLevel( | 700 Policies()->GetFileDangerLevel( |
| 690 base::FilePath(FILE_PATH_LITERAL("foo.crx")))); | 701 base::FilePath(FILE_PATH_LITERAL("foo.crx")))); |
| 691 ASSERT_EQ(DownloadFileType::DANGEROUS, | 702 ASSERT_EQ(DownloadFileType::DANGEROUS, |
| 692 Policies()->GetFileDangerLevel( | 703 Policies()->GetFileDangerLevel( |
| 693 base::FilePath(FILE_PATH_LITERAL("foo.swf")))); | 704 base::FilePath(FILE_PATH_LITERAL("foo.swf")))); |
| 694 | 705 |
| 695 ON_CALL(*delegate(), CheckDownloadUrl(_, _, _)) | 706 ON_CALL(*delegate(), CheckDownloadUrl(_, _, _)) |
| 696 .WillByDefault(WithArg<2>(ScheduleCallback( | 707 .WillByDefault(WithArg<2>(ScheduleCallback( |
| 697 content::DOWNLOAD_DANGER_TYPE_MAYBE_DANGEROUS_CONTENT))); | 708 content::DOWNLOAD_DANGER_TYPE_MAYBE_DANGEROUS_CONTENT))); |
| 698 RunTestCasesWithActiveItem(kSafeBrowsingTestCases, | 709 RunTestCasesWithActiveItem(kSafeBrowsingTestCases, |
| 699 arraysize(kSafeBrowsingTestCases)); | 710 arraysize(kSafeBrowsingTestCases)); |
| 700 } | 711 } |
| 701 | 712 |
| 713 #if !BUILDFLAG(ANDROID_JAVA_UI) |
| 702 // 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. |
| 703 TEST_F(DownloadTargetDeterminerTest, TargetDeterminer_LastSavePath) { | 715 TEST_F(DownloadTargetDeterminerTest, TargetDeterminer_LastSavePath) { |
| 704 const DownloadTestCase kLastSavePathTestCasesPre[] = { | 716 const DownloadTestCase kLastSavePathTestCasesPre[] = { |
| 705 {// 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 |
| 706 // should be used. | 718 // should be used. |
| 707 SAVE_AS, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, | 719 SAVE_AS, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, |
| 708 DownloadFileType::NOT_DANGEROUS, "http://example.com/foo.txt", | 720 DownloadFileType::NOT_DANGEROUS, "http://example.com/foo.txt", |
| 709 "text/plain", FILE_PATH_LITERAL(""), | 721 "text/plain", FILE_PATH_LITERAL(""), |
| 710 | 722 |
| 711 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... |
| 780 download_prefs()->SetSaveFilePath(last_selected_dir); | 792 download_prefs()->SetSaveFilePath(last_selected_dir); |
| 781 EXPECT_CALL(*delegate(), PromptUserForDownloadPath( | 793 EXPECT_CALL(*delegate(), PromptUserForDownloadPath( |
| 782 _, last_selected_dir.AppendASCII("foo.txt"), _)); | 794 _, last_selected_dir.AppendASCII("foo.txt"), _)); |
| 783 EXPECT_CALL(*delegate(), DetermineLocalPath(_, virtual_path, _)) | 795 EXPECT_CALL(*delegate(), DetermineLocalPath(_, virtual_path, _)) |
| 784 .WillOnce(WithArg<2>(ScheduleCallback( | 796 .WillOnce(WithArg<2>(ScheduleCallback( |
| 785 GetPathInDownloadDir(FILE_PATH_LITERAL("bar.txt"))))); | 797 GetPathInDownloadDir(FILE_PATH_LITERAL("bar.txt"))))); |
| 786 RunTestCasesWithActiveItem(kLastSavePathTestCasesVirtual, | 798 RunTestCasesWithActiveItem(kLastSavePathTestCasesVirtual, |
| 787 arraysize(kLastSavePathTestCasesVirtual)); | 799 arraysize(kLastSavePathTestCasesVirtual)); |
| 788 } | 800 } |
| 789 } | 801 } |
| 802 #endif // !BUILDFLAG(ANDROID_JAVA_UI) |
| 790 | 803 |
| 791 // 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 |
| 792 // directory. | 805 // directory. |
| 793 TEST_F(DownloadTargetDeterminerTest, TargetDeterminer_DefaultVirtual) { | 806 TEST_F(DownloadTargetDeterminerTest, TargetDeterminer_DefaultVirtual) { |
| 794 // The default download directory is the virutal path. | 807 // The default download directory is the virutal path. |
| 795 download_prefs()->SetDownloadPath(test_virtual_dir()); | 808 download_prefs()->SetDownloadPath(test_virtual_dir()); |
| 796 | 809 |
| 797 { | 810 { |
| 798 SCOPED_TRACE(testing::Message() << "Automatic Safe Download"); | 811 SCOPED_TRACE(testing::Message() << "Automatic Safe Download"); |
| 799 const DownloadTestCase kAutomaticDownloadToVirtualDir = { | 812 const DownloadTestCase kAutomaticDownloadToVirtualDir = { |
| 800 AUTOMATIC, | 813 AUTOMATIC, |
| 801 content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, | 814 content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, |
| 802 DownloadFileType::NOT_DANGEROUS, | 815 DownloadFileType::NOT_DANGEROUS, |
| 803 "http://example.com/foo.txt", | 816 "http://example.com/foo.txt", |
| 804 "text/plain", | 817 "text/plain", |
| 805 FILE_PATH_LITERAL(""), | 818 FILE_PATH_LITERAL(""), |
| 806 | 819 |
| 807 FILE_PATH_LITERAL("foo-local.txt"), | 820 FILE_PATH_LITERAL("foo-local.txt"), |
| 808 DownloadItem::TARGET_DISPOSITION_OVERWRITE, | 821 DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
| 809 | 822 |
| 810 EXPECT_LOCAL_PATH}; | 823 EXPECT_LOCAL_PATH}; |
| 811 EXPECT_CALL(*delegate(), DetermineLocalPath(_, _, _)) | 824 EXPECT_CALL(*delegate(), DetermineLocalPath(_, _, _)) |
| 812 .WillOnce(WithArg<2>(ScheduleCallback( | 825 .WillOnce(WithArg<2>(ScheduleCallback( |
| 813 GetPathInDownloadDir(FILE_PATH_LITERAL("foo-local.txt"))))); | 826 GetPathInDownloadDir(FILE_PATH_LITERAL("foo-local.txt"))))); |
| 814 RunTestCasesWithActiveItem(&kAutomaticDownloadToVirtualDir, 1); | 827 RunTestCasesWithActiveItem(&kAutomaticDownloadToVirtualDir, 1); |
| 815 } | 828 } |
| 816 | 829 |
| 830 #if !BUILDFLAG(ANDROID_JAVA_UI) |
| 817 { | 831 { |
| 818 SCOPED_TRACE(testing::Message() << "Save As to virtual directory"); | 832 SCOPED_TRACE(testing::Message() << "Save As to virtual directory"); |
| 819 const DownloadTestCase kSaveAsToVirtualDir = { | 833 const DownloadTestCase kSaveAsToVirtualDir = { |
| 820 SAVE_AS, | 834 SAVE_AS, |
| 821 content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, | 835 content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, |
| 822 DownloadFileType::NOT_DANGEROUS, | 836 DownloadFileType::NOT_DANGEROUS, |
| 823 "http://example.com/bar.txt", | 837 "http://example.com/bar.txt", |
| 824 "text/plain", | 838 "text/plain", |
| 825 FILE_PATH_LITERAL(""), | 839 FILE_PATH_LITERAL(""), |
| 826 | 840 |
| (...skipping 24 matching lines...) Expand all Loading... |
| 851 FILE_PATH_LITERAL("foo-x.txt"), | 865 FILE_PATH_LITERAL("foo-x.txt"), |
| 852 DownloadItem::TARGET_DISPOSITION_PROMPT, | 866 DownloadItem::TARGET_DISPOSITION_PROMPT, |
| 853 | 867 |
| 854 EXPECT_CRDOWNLOAD}; | 868 EXPECT_CRDOWNLOAD}; |
| 855 EXPECT_CALL(*delegate(), PromptUserForDownloadPath( | 869 EXPECT_CALL(*delegate(), PromptUserForDownloadPath( |
| 856 _, test_virtual_dir().AppendASCII("bar.txt"), _)) | 870 _, test_virtual_dir().AppendASCII("bar.txt"), _)) |
| 857 .WillOnce(WithArg<2>(ScheduleCallback( | 871 .WillOnce(WithArg<2>(ScheduleCallback( |
| 858 GetPathInDownloadDir(FILE_PATH_LITERAL("foo-x.txt"))))); | 872 GetPathInDownloadDir(FILE_PATH_LITERAL("foo-x.txt"))))); |
| 859 RunTestCasesWithActiveItem(&kSaveAsToLocalDir, 1); | 873 RunTestCasesWithActiveItem(&kSaveAsToLocalDir, 1); |
| 860 } | 874 } |
| 875 #endif // !BUILDFLAG(ANDROID_JAVA_UI) |
| 861 | 876 |
| 862 { | 877 { |
| 863 SCOPED_TRACE(testing::Message() << "Forced safe download"); | 878 SCOPED_TRACE(testing::Message() << "Forced safe download"); |
| 864 const DownloadTestCase kForcedSafe = { | 879 const DownloadTestCase kForcedSafe = { |
| 865 FORCED, | 880 FORCED, |
| 866 content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, | 881 content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, |
| 867 DownloadFileType::NOT_DANGEROUS, | 882 DownloadFileType::NOT_DANGEROUS, |
| 868 "http://example.com/foo.txt", | 883 "http://example.com/foo.txt", |
| 869 "", | 884 "", |
| 870 FILE_PATH_LITERAL("forced-foo.txt"), | 885 FILE_PATH_LITERAL("forced-foo.txt"), |
| (...skipping 11 matching lines...) Expand all Loading... |
| 882 TEST_F(DownloadTargetDeterminerTest, TargetDeterminer_InactiveDownload) { | 897 TEST_F(DownloadTargetDeterminerTest, TargetDeterminer_InactiveDownload) { |
| 883 const DownloadTestCase kInactiveTestCases[] = { | 898 const DownloadTestCase kInactiveTestCases[] = { |
| 884 {AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, | 899 {AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, |
| 885 DownloadFileType::NOT_DANGEROUS, "http://example.com/foo.txt", | 900 DownloadFileType::NOT_DANGEROUS, "http://example.com/foo.txt", |
| 886 "text/plain", FILE_PATH_LITERAL(""), | 901 "text/plain", FILE_PATH_LITERAL(""), |
| 887 | 902 |
| 888 FILE_PATH_LITERAL("foo.txt"), DownloadItem::TARGET_DISPOSITION_OVERWRITE, | 903 FILE_PATH_LITERAL("foo.txt"), DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
| 889 | 904 |
| 890 EXPECT_CRDOWNLOAD}, | 905 EXPECT_CRDOWNLOAD}, |
| 891 | 906 |
| 907 #if !BUILDFLAG(ANDROID_JAVA_UI) |
| 892 {SAVE_AS, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, | 908 {SAVE_AS, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, |
| 893 DownloadFileType::NOT_DANGEROUS, "http://example.com/foo.txt", | 909 DownloadFileType::NOT_DANGEROUS, "http://example.com/foo.txt", |
| 894 "text/plain", FILE_PATH_LITERAL(""), | 910 "text/plain", FILE_PATH_LITERAL(""), |
| 895 | 911 |
| 896 FILE_PATH_LITERAL("foo.txt"), DownloadItem::TARGET_DISPOSITION_PROMPT, | 912 FILE_PATH_LITERAL("foo.txt"), DownloadItem::TARGET_DISPOSITION_PROMPT, |
| 897 | 913 |
| 898 EXPECT_CRDOWNLOAD}}; | 914 EXPECT_CRDOWNLOAD} |
| 915 #endif // !BUILDFLAG(ANDROID_JAVA_UI) |
| 916 }; |
| 899 | 917 |
| 900 for (size_t i = 0; i < arraysize(kInactiveTestCases); ++i) { | 918 for (size_t i = 0; i < arraysize(kInactiveTestCases); ++i) { |
| 901 SCOPED_TRACE(testing::Message() << "Running test case " << i); | 919 SCOPED_TRACE(testing::Message() << "Running test case " << i); |
| 902 const DownloadTestCase& test_case = kInactiveTestCases[i]; | 920 const DownloadTestCase& test_case = kInactiveTestCases[i]; |
| 903 std::unique_ptr<content::MockDownloadItem> item( | 921 std::unique_ptr<content::MockDownloadItem> item( |
| 904 CreateActiveDownloadItem(i, test_case)); | 922 CreateActiveDownloadItem(i, test_case)); |
| 905 EXPECT_CALL(*item.get(), GetState()) | 923 EXPECT_CALL(*item.get(), GetState()) |
| 906 .WillRepeatedly(Return(content::DownloadItem::CANCELLED)); | 924 .WillRepeatedly(Return(content::DownloadItem::CANCELLED)); |
| 907 | 925 |
| 908 EXPECT_CALL(*delegate(), PromptUserForDownloadPath(_, _, _)).Times(0); | 926 EXPECT_CALL(*delegate(), PromptUserForDownloadPath(_, _, _)).Times(0); |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 978 {// 1: Dangerous due to not having visited referrer before. | 996 {// 1: Dangerous due to not having visited referrer before. |
| 979 AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_DANGEROUS_FILE, | 997 AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_DANGEROUS_FILE, |
| 980 DownloadFileType::ALLOW_ON_USER_GESTURE, | 998 DownloadFileType::ALLOW_ON_USER_GESTURE, |
| 981 "http://not-visited.example.com/foo.crx", "application/xml", | 999 "http://not-visited.example.com/foo.crx", "application/xml", |
| 982 FILE_PATH_LITERAL(""), | 1000 FILE_PATH_LITERAL(""), |
| 983 | 1001 |
| 984 FILE_PATH_LITERAL("foo.crx"), DownloadItem::TARGET_DISPOSITION_OVERWRITE, | 1002 FILE_PATH_LITERAL("foo.crx"), DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
| 985 | 1003 |
| 986 EXPECT_UNCONFIRMED}, | 1004 EXPECT_UNCONFIRMED}, |
| 987 | 1005 |
| 1006 #if !BUILDFLAG(ANDROID_JAVA_UI) |
| 988 {// 2: Safe because the user is being prompted. | 1007 {// 2: Safe because the user is being prompted. |
| 989 SAVE_AS, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, | 1008 SAVE_AS, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, |
| 990 DownloadFileType::NOT_DANGEROUS, | 1009 DownloadFileType::NOT_DANGEROUS, |
| 991 "http://not-visited.example.com/foo.crx", "application/xml", | 1010 "http://not-visited.example.com/foo.crx", "application/xml", |
| 992 FILE_PATH_LITERAL(""), | 1011 FILE_PATH_LITERAL(""), |
| 993 | 1012 |
| 994 FILE_PATH_LITERAL("foo.crx"), DownloadItem::TARGET_DISPOSITION_PROMPT, | 1013 FILE_PATH_LITERAL("foo.crx"), DownloadItem::TARGET_DISPOSITION_PROMPT, |
| 995 | 1014 |
| 996 EXPECT_CRDOWNLOAD}, | 1015 EXPECT_CRDOWNLOAD}, |
| 1016 #endif // !BUILDFLAG(ANDROID_JAVA_UI) |
| 997 | 1017 |
| 998 {// 3: Safe because of forced path. | 1018 {// 3: Safe because of forced path. |
| 999 FORCED, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, | 1019 FORCED, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, |
| 1000 DownloadFileType::NOT_DANGEROUS, | 1020 DownloadFileType::NOT_DANGEROUS, |
| 1001 "http://not-visited.example.com/foo.crx", "application/xml", | 1021 "http://not-visited.example.com/foo.crx", "application/xml", |
| 1002 FILE_PATH_LITERAL("foo.crx"), | 1022 FILE_PATH_LITERAL("foo.crx"), |
| 1003 | 1023 |
| 1004 FILE_PATH_LITERAL("foo.crx"), DownloadItem::TARGET_DISPOSITION_OVERWRITE, | 1024 FILE_PATH_LITERAL("foo.crx"), DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
| 1005 | 1025 |
| 1006 EXPECT_LOCAL_PATH}, | 1026 EXPECT_LOCAL_PATH}, |
| (...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1142 } | 1162 } |
| 1143 | 1163 |
| 1144 std::unique_ptr<content::MockDownloadItem> item( | 1164 std::unique_ptr<content::MockDownloadItem> item( |
| 1145 CreateActiveDownloadItem(1, download_test_case)); | 1165 CreateActiveDownloadItem(1, download_test_case)); |
| 1146 EXPECT_CALL(*item, GetTransitionType()) | 1166 EXPECT_CALL(*item, GetTransitionType()) |
| 1147 .WillRepeatedly(Return(test_case.page_transition)); | 1167 .WillRepeatedly(Return(test_case.page_transition)); |
| 1148 RunTestCase(download_test_case, base::FilePath(), item.get()); | 1168 RunTestCase(download_test_case, base::FilePath(), item.get()); |
| 1149 } | 1169 } |
| 1150 } | 1170 } |
| 1151 | 1171 |
| 1172 #if !BUILDFLAG(ANDROID_JAVA_UI) |
| 1152 // These test cases are run with "Prompt for download" user preference set to | 1173 // These test cases are run with "Prompt for download" user preference set to |
| 1153 // true. | 1174 // true. |
| 1154 TEST_F(DownloadTargetDeterminerTest, TargetDeterminer_PromptAlways) { | 1175 TEST_F(DownloadTargetDeterminerTest, TargetDeterminer_PromptAlways) { |
| 1155 const DownloadTestCase kPromptingTestCases[] = { | 1176 const DownloadTestCase kPromptingTestCases[] = { |
| 1156 {// 0: Safe Automatic - Should prompt because of "Prompt for download" | 1177 {// 0: Safe Automatic - Should prompt because of "Prompt for download" |
| 1157 // preference setting. | 1178 // preference setting. |
| 1158 AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, | 1179 AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, |
| 1159 DownloadFileType::NOT_DANGEROUS, "http://example.com/foo.txt", | 1180 DownloadFileType::NOT_DANGEROUS, "http://example.com/foo.txt", |
| 1160 "text/plain", FILE_PATH_LITERAL(""), | 1181 "text/plain", FILE_PATH_LITERAL(""), |
| 1161 | 1182 |
| (...skipping 21 matching lines...) Expand all Loading... |
| 1183 | 1204 |
| 1184 EXPECT_CRDOWNLOAD}, | 1205 EXPECT_CRDOWNLOAD}, |
| 1185 }; | 1206 }; |
| 1186 | 1207 |
| 1187 SetPromptForDownload(true); | 1208 SetPromptForDownload(true); |
| 1188 EnableAutoOpenBasedOnExtension( | 1209 EnableAutoOpenBasedOnExtension( |
| 1189 base::FilePath(FILE_PATH_LITERAL("dummy.dummy"))); | 1210 base::FilePath(FILE_PATH_LITERAL("dummy.dummy"))); |
| 1190 RunTestCasesWithActiveItem(kPromptingTestCases, | 1211 RunTestCasesWithActiveItem(kPromptingTestCases, |
| 1191 arraysize(kPromptingTestCases)); | 1212 arraysize(kPromptingTestCases)); |
| 1192 } | 1213 } |
| 1214 #endif // !BUILDFLAG(ANDROID_JAVA_UI) |
| 1193 | 1215 |
| 1194 #if defined(ENABLE_EXTENSIONS) | 1216 #if defined(ENABLE_EXTENSIONS) |
| 1195 // These test cases are run with "Prompt for download" user preference set to | 1217 // These test cases are run with "Prompt for download" user preference set to |
| 1196 // true. Automatic extension downloads shouldn't cause prompting. | 1218 // true. Automatic extension downloads shouldn't cause prompting. |
| 1197 // Android doesn't support extensions. | 1219 // Android doesn't support extensions. |
| 1198 TEST_F(DownloadTargetDeterminerTest, TargetDeterminer_PromptAlways_Extension) { | 1220 TEST_F(DownloadTargetDeterminerTest, TargetDeterminer_PromptAlways_Extension) { |
| 1199 const DownloadTestCase kPromptingTestCases[] = { | 1221 const DownloadTestCase kPromptingTestCases[] = { |
| 1200 {// 0: Automatic Browser Extension download. - Shouldn't prompt for browser | 1222 {// 0: Automatic Browser Extension download. - Shouldn't prompt for browser |
| 1201 // extension downloads even if "Prompt for download" preference is set. | 1223 // extension downloads even if "Prompt for download" preference is set. |
| 1202 AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_DANGEROUS_FILE, | 1224 AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_DANGEROUS_FILE, |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1275 {// 0: Automatic Safe | 1297 {// 0: Automatic Safe |
| 1276 AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, | 1298 AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, |
| 1277 DownloadFileType::NOT_DANGEROUS, "http://example.com/foo.txt", | 1299 DownloadFileType::NOT_DANGEROUS, "http://example.com/foo.txt", |
| 1278 "text/plain", FILE_PATH_LITERAL(""), | 1300 "text/plain", FILE_PATH_LITERAL(""), |
| 1279 | 1301 |
| 1280 FILE_PATH_LITERAL("overridden/foo.txt"), | 1302 FILE_PATH_LITERAL("overridden/foo.txt"), |
| 1281 DownloadItem::TARGET_DISPOSITION_OVERWRITE, | 1303 DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
| 1282 | 1304 |
| 1283 EXPECT_CRDOWNLOAD}, | 1305 EXPECT_CRDOWNLOAD}, |
| 1284 | 1306 |
| 1307 #if !BUILDFLAG(ANDROID_JAVA_UI) |
| 1285 {// 1: Save_As Safe | 1308 {// 1: Save_As Safe |
| 1286 SAVE_AS, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, | 1309 SAVE_AS, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, |
| 1287 DownloadFileType::NOT_DANGEROUS, "http://example.com/foo.txt", | 1310 DownloadFileType::NOT_DANGEROUS, "http://example.com/foo.txt", |
| 1288 "text/plain", FILE_PATH_LITERAL(""), | 1311 "text/plain", FILE_PATH_LITERAL(""), |
| 1289 | 1312 |
| 1290 FILE_PATH_LITERAL("overridden/foo.txt"), | 1313 FILE_PATH_LITERAL("overridden/foo.txt"), |
| 1291 DownloadItem::TARGET_DISPOSITION_PROMPT, | 1314 DownloadItem::TARGET_DISPOSITION_PROMPT, |
| 1292 | 1315 |
| 1293 EXPECT_CRDOWNLOAD}, | 1316 EXPECT_CRDOWNLOAD}, |
| 1317 #endif // !BUILDFLAG(ANDROID_JAVA_UI) |
| 1294 | 1318 |
| 1295 {// 2: Automatic Dangerous | 1319 {// 2: Automatic Dangerous |
| 1296 AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_DANGEROUS_FILE, | 1320 AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_DANGEROUS_FILE, |
| 1297 DownloadFileType::ALLOW_ON_USER_GESTURE, "http://example.com/foo.crx", | 1321 DownloadFileType::ALLOW_ON_USER_GESTURE, "http://example.com/foo.crx", |
| 1298 "", FILE_PATH_LITERAL(""), | 1322 "", FILE_PATH_LITERAL(""), |
| 1299 | 1323 |
| 1300 FILE_PATH_LITERAL("overridden/foo.crx"), | 1324 FILE_PATH_LITERAL("overridden/foo.crx"), |
| 1301 DownloadItem::TARGET_DISPOSITION_OVERWRITE, | 1325 DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
| 1302 | 1326 |
| 1303 EXPECT_UNCONFIRMED}, | 1327 EXPECT_UNCONFIRMED}, |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1399 .WillOnce(WithArg<2>( | 1423 .WillOnce(WithArg<2>( |
| 1400 ScheduleCallback2(overridden_path, | 1424 ScheduleCallback2(overridden_path, |
| 1401 DownloadPathReservationTracker::PROMPT))); | 1425 DownloadPathReservationTracker::PROMPT))); |
| 1402 EXPECT_CALL(*delegate(), ReserveVirtualPath( | 1426 EXPECT_CALL(*delegate(), ReserveVirtualPath( |
| 1403 _, full_overridden_path, true, DownloadPathReservationTracker::PROMPT, _)) | 1427 _, full_overridden_path, true, DownloadPathReservationTracker::PROMPT, _)) |
| 1404 .WillOnce(WithArg<4>( | 1428 .WillOnce(WithArg<4>( |
| 1405 ScheduleCallback2(full_overridden_path, true))); | 1429 ScheduleCallback2(full_overridden_path, true))); |
| 1406 RunTestCase(test_case, base::FilePath(), item.get()); | 1430 RunTestCase(test_case, base::FilePath(), item.get()); |
| 1407 } | 1431 } |
| 1408 | 1432 |
| 1433 #if !BUILDFLAG(ANDROID_JAVA_UI) |
| 1409 // Test that relative paths returned by extensions are always relative to the | 1434 // Test that relative paths returned by extensions are always relative to the |
| 1410 // default downloads path. | 1435 // default downloads path. |
| 1411 TEST_F(DownloadTargetDeterminerTest, | 1436 TEST_F(DownloadTargetDeterminerTest, |
| 1412 TargetDeterminer_NotifyExtensionsDefaultPath) { | 1437 TargetDeterminer_NotifyExtensionsDefaultPath) { |
| 1413 const DownloadTestCase kNotifyExtensionsTestCase = { | 1438 const DownloadTestCase kNotifyExtensionsTestCase = { |
| 1414 SAVE_AS, | 1439 SAVE_AS, |
| 1415 content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, | 1440 content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, |
| 1416 DownloadFileType::NOT_DANGEROUS, | 1441 DownloadFileType::NOT_DANGEROUS, |
| 1417 "http://example.com/foo.txt", | 1442 "http://example.com/foo.txt", |
| 1418 "text/plain", | 1443 "text/plain", |
| (...skipping 17 matching lines...) Expand all Loading... |
| 1436 EXPECT_CALL(*delegate(), NotifyExtensions(_, _, _)) | 1461 EXPECT_CALL(*delegate(), NotifyExtensions(_, _, _)) |
| 1437 .WillOnce(WithArg<2>( | 1462 .WillOnce(WithArg<2>( |
| 1438 ScheduleCallback2(overridden_path, | 1463 ScheduleCallback2(overridden_path, |
| 1439 DownloadPathReservationTracker::UNIQUIFY))); | 1464 DownloadPathReservationTracker::UNIQUIFY))); |
| 1440 EXPECT_CALL(*delegate(), | 1465 EXPECT_CALL(*delegate(), |
| 1441 PromptUserForDownloadPath(_, full_overridden_path, _)) | 1466 PromptUserForDownloadPath(_, full_overridden_path, _)) |
| 1442 .WillOnce(WithArg<2>( | 1467 .WillOnce(WithArg<2>( |
| 1443 ScheduleCallback(full_overridden_path))); | 1468 ScheduleCallback(full_overridden_path))); |
| 1444 RunTestCase(test_case, base::FilePath(), item.get()); | 1469 RunTestCase(test_case, base::FilePath(), item.get()); |
| 1445 } | 1470 } |
| 1471 #endif // !BUILDFLAG(ANDROID_JAVA_UI) |
| 1446 | 1472 |
| 1447 TEST_F(DownloadTargetDeterminerTest, | 1473 TEST_F(DownloadTargetDeterminerTest, |
| 1448 TargetDeterminer_InitialVirtualPathUnsafe) { | 1474 TargetDeterminer_InitialVirtualPathUnsafe) { |
| 1449 const base::FilePath::CharType* kInitialPath = | 1475 const base::FilePath::CharType* kInitialPath = |
| 1450 FILE_PATH_LITERAL("some_path/bar.html"); | 1476 FILE_PATH_LITERAL("some_path/bar.html"); |
| 1451 | 1477 |
| 1452 const DownloadTestCase kInitialPathTestCase = { | 1478 const DownloadTestCase kInitialPathTestCase = { |
| 1453 // 0: Save As Save. The path generated based on the DownloadItem is safe, | 1479 // 0: Save As Save. The path generated based on the DownloadItem is safe, |
| 1454 // but the initial path is unsafe. However, the download is not considered | 1480 // but the initial path is unsafe. However, the download is not considered |
| 1455 // dangerous since the user has been prompted. | 1481 // dangerous since the user has been prompted. |
| (...skipping 682 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2138 EXPECT_CALL(mock_plugin_filter_, MockPluginAvailable(browser_plugin.path())) | 2164 EXPECT_CALL(mock_plugin_filter_, MockPluginAvailable(browser_plugin.path())) |
| 2139 .WillRepeatedly(Return(false)); | 2165 .WillRepeatedly(Return(false)); |
| 2140 target_info = RunDownloadTargetDeterminer( | 2166 target_info = RunDownloadTargetDeterminer( |
| 2141 GetPathInDownloadDir(kInitialPath), item.get()); | 2167 GetPathInDownloadDir(kInitialPath), item.get()); |
| 2142 EXPECT_FALSE(target_info->is_filetype_handled_safely); | 2168 EXPECT_FALSE(target_info->is_filetype_handled_safely); |
| 2143 } | 2169 } |
| 2144 | 2170 |
| 2145 #endif // defined(ENABLE_PLUGINS) | 2171 #endif // defined(ENABLE_PLUGINS) |
| 2146 | 2172 |
| 2147 } // namespace | 2173 } // namespace |
| OLD | NEW |