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 503 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
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"), |
622 DownloadItem::TARGET_DISPOSITION_OVERWRITE, | 622 DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
623 | 623 |
624 EXPECT_UNCONFIRMED}, | 624 EXPECT_UNCONFIRMED}, |
625 | 625 |
626 #if !BUILDFLAG(ANDROID_JAVA_UI) | 626 #if !defined(OS_ANDROID) |
627 {// 4: Save As Dangerous URL + Dangerous file | 627 {// 4: Save As Dangerous URL + Dangerous file |
628 SAVE_AS, content::DOWNLOAD_DANGER_TYPE_DANGEROUS_URL, | 628 SAVE_AS, content::DOWNLOAD_DANGER_TYPE_DANGEROUS_URL, |
629 DownloadFileType::NOT_DANGEROUS, "http://phishing.example.com/foo.html", | 629 DownloadFileType::NOT_DANGEROUS, "http://phishing.example.com/foo.html", |
630 "", FILE_PATH_LITERAL(""), | 630 "", FILE_PATH_LITERAL(""), |
631 | 631 |
632 FILE_PATH_LITERAL("foo.html"), DownloadItem::TARGET_DISPOSITION_PROMPT, | 632 FILE_PATH_LITERAL("foo.html"), DownloadItem::TARGET_DISPOSITION_PROMPT, |
633 | 633 |
634 EXPECT_UNCONFIRMED}, | 634 EXPECT_UNCONFIRMED}, |
635 #endif // !BUILDFLAG(ANDROID_JAVA_UI) | 635 #endif // !defined(OS_ANDROID) |
636 | 636 |
637 {// 5: Forced Dangerous URL + Dangerous file | 637 {// 5: Forced Dangerous URL + Dangerous file |
638 FORCED, content::DOWNLOAD_DANGER_TYPE_DANGEROUS_URL, | 638 FORCED, content::DOWNLOAD_DANGER_TYPE_DANGEROUS_URL, |
639 DownloadFileType::NOT_DANGEROUS, "http://phishing.example.com/foo.html", | 639 DownloadFileType::NOT_DANGEROUS, "http://phishing.example.com/foo.html", |
640 "", FILE_PATH_LITERAL("forced-foo.html"), | 640 "", FILE_PATH_LITERAL("forced-foo.html"), |
641 | 641 |
642 FILE_PATH_LITERAL("forced-foo.html"), | 642 FILE_PATH_LITERAL("forced-foo.html"), |
643 DownloadItem::TARGET_DISPOSITION_OVERWRITE, | 643 DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
644 | 644 |
645 EXPECT_UNCONFIRMED}, | 645 EXPECT_UNCONFIRMED}, |
(...skipping 22 matching lines...) Expand all Loading... |
668 {// 1: Automatic Maybe dangerous content with DANGEROUS type. | 668 {// 1: Automatic Maybe dangerous content with DANGEROUS type. |
669 AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_MAYBE_DANGEROUS_CONTENT, | 669 AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_MAYBE_DANGEROUS_CONTENT, |
670 DownloadFileType::DANGEROUS, "http://phishing.example.com/foo.swf", "", | 670 DownloadFileType::DANGEROUS, "http://phishing.example.com/foo.swf", "", |
671 FILE_PATH_LITERAL(""), | 671 FILE_PATH_LITERAL(""), |
672 | 672 |
673 FILE_PATH_LITERAL("foo.swf"), DownloadItem::TARGET_DISPOSITION_OVERWRITE, | 673 FILE_PATH_LITERAL("foo.swf"), DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
674 | 674 |
675 EXPECT_UNCONFIRMED}, | 675 EXPECT_UNCONFIRMED}, |
676 | 676 |
677 | 677 |
678 #if !BUILDFLAG(ANDROID_JAVA_UI) | 678 #if !defined(OS_ANDROID) |
679 {// 2: Save As Maybe dangerous content | 679 {// 2: Save As Maybe dangerous content |
680 SAVE_AS, content::DOWNLOAD_DANGER_TYPE_MAYBE_DANGEROUS_CONTENT, | 680 SAVE_AS, content::DOWNLOAD_DANGER_TYPE_MAYBE_DANGEROUS_CONTENT, |
681 DownloadFileType::NOT_DANGEROUS, "http://phishing.example.com/foo.crx", | 681 DownloadFileType::NOT_DANGEROUS, "http://phishing.example.com/foo.crx", |
682 "", FILE_PATH_LITERAL(""), | 682 "", FILE_PATH_LITERAL(""), |
683 | 683 |
684 FILE_PATH_LITERAL("foo.crx"), DownloadItem::TARGET_DISPOSITION_PROMPT, | 684 FILE_PATH_LITERAL("foo.crx"), DownloadItem::TARGET_DISPOSITION_PROMPT, |
685 | 685 |
686 EXPECT_UNCONFIRMED}, | 686 EXPECT_UNCONFIRMED}, |
687 #endif // !BUILDFLAG(ANDROID_JAVA_UI) | 687 #endif // !defined(OS_ANDROID) |
688 | 688 |
689 {// 3: Forced Maybe dangerous content | 689 {// 3: Forced Maybe dangerous content |
690 FORCED, content::DOWNLOAD_DANGER_TYPE_MAYBE_DANGEROUS_CONTENT, | 690 FORCED, content::DOWNLOAD_DANGER_TYPE_MAYBE_DANGEROUS_CONTENT, |
691 DownloadFileType::NOT_DANGEROUS, "http://phishing.example.com/foo.crx", | 691 DownloadFileType::NOT_DANGEROUS, "http://phishing.example.com/foo.crx", |
692 "", FILE_PATH_LITERAL("forced-foo.crx"), | 692 "", FILE_PATH_LITERAL("forced-foo.crx"), |
693 | 693 |
694 FILE_PATH_LITERAL("forced-foo.crx"), | 694 FILE_PATH_LITERAL("forced-foo.crx"), |
695 DownloadItem::TARGET_DISPOSITION_OVERWRITE, | 695 DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
696 | 696 |
697 EXPECT_UNCONFIRMED}, | 697 EXPECT_UNCONFIRMED}, |
698 }; | 698 }; |
699 | 699 |
700 // Test assumptions: | 700 // Test assumptions: |
701 ASSERT_EQ(DownloadFileType::ALLOW_ON_USER_GESTURE, | 701 ASSERT_EQ(DownloadFileType::ALLOW_ON_USER_GESTURE, |
702 Policies()->GetFileDangerLevel( | 702 Policies()->GetFileDangerLevel( |
703 base::FilePath(FILE_PATH_LITERAL("foo.crx")))); | 703 base::FilePath(FILE_PATH_LITERAL("foo.crx")))); |
704 ASSERT_EQ(DownloadFileType::DANGEROUS, | 704 ASSERT_EQ(DownloadFileType::DANGEROUS, |
705 Policies()->GetFileDangerLevel( | 705 Policies()->GetFileDangerLevel( |
706 base::FilePath(FILE_PATH_LITERAL("foo.swf")))); | 706 base::FilePath(FILE_PATH_LITERAL("foo.swf")))); |
707 | 707 |
708 ON_CALL(*delegate(), CheckDownloadUrl(_, _, _)) | 708 ON_CALL(*delegate(), CheckDownloadUrl(_, _, _)) |
709 .WillByDefault(WithArg<2>(ScheduleCallback( | 709 .WillByDefault(WithArg<2>(ScheduleCallback( |
710 content::DOWNLOAD_DANGER_TYPE_MAYBE_DANGEROUS_CONTENT))); | 710 content::DOWNLOAD_DANGER_TYPE_MAYBE_DANGEROUS_CONTENT))); |
711 RunTestCasesWithActiveItem(kSafeBrowsingTestCases, | 711 RunTestCasesWithActiveItem(kSafeBrowsingTestCases, |
712 arraysize(kSafeBrowsingTestCases)); | 712 arraysize(kSafeBrowsingTestCases)); |
713 } | 713 } |
714 | 714 |
715 #if !BUILDFLAG(ANDROID_JAVA_UI) | 715 #if !defined(OS_ANDROID) |
716 // Test whether the last saved directory is used for 'Save As' downloads. | 716 // Test whether the last saved directory is used for 'Save As' downloads. |
717 TEST_F(DownloadTargetDeterminerTest, LastSavePath) { | 717 TEST_F(DownloadTargetDeterminerTest, LastSavePath) { |
718 const DownloadTestCase kLastSavePathTestCasesPre[] = { | 718 const DownloadTestCase kLastSavePathTestCasesPre[] = { |
719 {// 0: If the last save path is empty, then the default download directory | 719 {// 0: If the last save path is empty, then the default download directory |
720 // should be used. | 720 // should be used. |
721 SAVE_AS, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, | 721 SAVE_AS, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, |
722 DownloadFileType::NOT_DANGEROUS, "http://example.com/foo.txt", | 722 DownloadFileType::NOT_DANGEROUS, "http://example.com/foo.txt", |
723 "text/plain", FILE_PATH_LITERAL(""), | 723 "text/plain", FILE_PATH_LITERAL(""), |
724 | 724 |
725 FILE_PATH_LITERAL("foo.txt"), DownloadItem::TARGET_DISPOSITION_PROMPT, | 725 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); | 794 download_prefs()->SetSaveFilePath(last_selected_dir); |
795 EXPECT_CALL(*delegate(), PromptUserForDownloadPath( | 795 EXPECT_CALL(*delegate(), PromptUserForDownloadPath( |
796 _, last_selected_dir.AppendASCII("foo.txt"), _)); | 796 _, last_selected_dir.AppendASCII("foo.txt"), _)); |
797 EXPECT_CALL(*delegate(), DetermineLocalPath(_, virtual_path, _)) | 797 EXPECT_CALL(*delegate(), DetermineLocalPath(_, virtual_path, _)) |
798 .WillOnce(WithArg<2>(ScheduleCallback( | 798 .WillOnce(WithArg<2>(ScheduleCallback( |
799 GetPathInDownloadDir(FILE_PATH_LITERAL("bar.txt"))))); | 799 GetPathInDownloadDir(FILE_PATH_LITERAL("bar.txt"))))); |
800 RunTestCasesWithActiveItem(kLastSavePathTestCasesVirtual, | 800 RunTestCasesWithActiveItem(kLastSavePathTestCasesVirtual, |
801 arraysize(kLastSavePathTestCasesVirtual)); | 801 arraysize(kLastSavePathTestCasesVirtual)); |
802 } | 802 } |
803 } | 803 } |
804 #endif // !BUILDFLAG(ANDROID_JAVA_UI) | 804 #endif // !defined(OS_ANDROID) |
805 | 805 |
806 // These tests are run with the default downloads folder set to a virtual | 806 // These tests are run with the default downloads folder set to a virtual |
807 // directory. | 807 // directory. |
808 TEST_F(DownloadTargetDeterminerTest, DefaultVirtual) { | 808 TEST_F(DownloadTargetDeterminerTest, DefaultVirtual) { |
809 // The default download directory is the virutal path. | 809 // The default download directory is the virutal path. |
810 download_prefs()->SetDownloadPath(test_virtual_dir()); | 810 download_prefs()->SetDownloadPath(test_virtual_dir()); |
811 | 811 |
812 { | 812 { |
813 SCOPED_TRACE(testing::Message() << "Automatic Safe Download"); | 813 SCOPED_TRACE(testing::Message() << "Automatic Safe Download"); |
814 const DownloadTestCase kAutomaticDownloadToVirtualDir = { | 814 const DownloadTestCase kAutomaticDownloadToVirtualDir = { |
815 AUTOMATIC, | 815 AUTOMATIC, |
816 content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, | 816 content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, |
817 DownloadFileType::NOT_DANGEROUS, | 817 DownloadFileType::NOT_DANGEROUS, |
818 "http://example.com/foo.txt", | 818 "http://example.com/foo.txt", |
819 "text/plain", | 819 "text/plain", |
820 FILE_PATH_LITERAL(""), | 820 FILE_PATH_LITERAL(""), |
821 | 821 |
822 FILE_PATH_LITERAL("foo-local.txt"), | 822 FILE_PATH_LITERAL("foo-local.txt"), |
823 DownloadItem::TARGET_DISPOSITION_OVERWRITE, | 823 DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
824 | 824 |
825 EXPECT_LOCAL_PATH}; | 825 EXPECT_LOCAL_PATH}; |
826 EXPECT_CALL(*delegate(), DetermineLocalPath(_, _, _)) | 826 EXPECT_CALL(*delegate(), DetermineLocalPath(_, _, _)) |
827 .WillOnce(WithArg<2>(ScheduleCallback( | 827 .WillOnce(WithArg<2>(ScheduleCallback( |
828 GetPathInDownloadDir(FILE_PATH_LITERAL("foo-local.txt"))))); | 828 GetPathInDownloadDir(FILE_PATH_LITERAL("foo-local.txt"))))); |
829 RunTestCasesWithActiveItem(&kAutomaticDownloadToVirtualDir, 1); | 829 RunTestCasesWithActiveItem(&kAutomaticDownloadToVirtualDir, 1); |
830 } | 830 } |
831 | 831 |
832 #if !BUILDFLAG(ANDROID_JAVA_UI) | 832 #if !defined(OS_ANDROID) |
833 { | 833 { |
834 SCOPED_TRACE(testing::Message() << "Save As to virtual directory"); | 834 SCOPED_TRACE(testing::Message() << "Save As to virtual directory"); |
835 const DownloadTestCase kSaveAsToVirtualDir = { | 835 const DownloadTestCase kSaveAsToVirtualDir = { |
836 SAVE_AS, | 836 SAVE_AS, |
837 content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, | 837 content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, |
838 DownloadFileType::NOT_DANGEROUS, | 838 DownloadFileType::NOT_DANGEROUS, |
839 "http://example.com/bar.txt", | 839 "http://example.com/bar.txt", |
840 "text/plain", | 840 "text/plain", |
841 FILE_PATH_LITERAL(""), | 841 FILE_PATH_LITERAL(""), |
842 | 842 |
(...skipping 24 matching lines...) Expand all Loading... |
867 FILE_PATH_LITERAL("foo-x.txt"), | 867 FILE_PATH_LITERAL("foo-x.txt"), |
868 DownloadItem::TARGET_DISPOSITION_PROMPT, | 868 DownloadItem::TARGET_DISPOSITION_PROMPT, |
869 | 869 |
870 EXPECT_CRDOWNLOAD}; | 870 EXPECT_CRDOWNLOAD}; |
871 EXPECT_CALL(*delegate(), PromptUserForDownloadPath( | 871 EXPECT_CALL(*delegate(), PromptUserForDownloadPath( |
872 _, test_virtual_dir().AppendASCII("bar.txt"), _)) | 872 _, test_virtual_dir().AppendASCII("bar.txt"), _)) |
873 .WillOnce(WithArg<2>(ScheduleCallback( | 873 .WillOnce(WithArg<2>(ScheduleCallback( |
874 GetPathInDownloadDir(FILE_PATH_LITERAL("foo-x.txt"))))); | 874 GetPathInDownloadDir(FILE_PATH_LITERAL("foo-x.txt"))))); |
875 RunTestCasesWithActiveItem(&kSaveAsToLocalDir, 1); | 875 RunTestCasesWithActiveItem(&kSaveAsToLocalDir, 1); |
876 } | 876 } |
877 #endif // !BUILDFLAG(ANDROID_JAVA_UI) | 877 #endif // !defined(OS_ANDROID) |
878 | 878 |
879 { | 879 { |
880 SCOPED_TRACE(testing::Message() << "Forced safe download"); | 880 SCOPED_TRACE(testing::Message() << "Forced safe download"); |
881 const DownloadTestCase kForcedSafe = { | 881 const DownloadTestCase kForcedSafe = { |
882 FORCED, | 882 FORCED, |
883 content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, | 883 content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, |
884 DownloadFileType::NOT_DANGEROUS, | 884 DownloadFileType::NOT_DANGEROUS, |
885 "http://example.com/foo.txt", | 885 "http://example.com/foo.txt", |
886 "", | 886 "", |
887 FILE_PATH_LITERAL("forced-foo.txt"), | 887 FILE_PATH_LITERAL("forced-foo.txt"), |
(...skipping 11 matching lines...) Expand all Loading... |
899 TEST_F(DownloadTargetDeterminerTest, InactiveDownload) { | 899 TEST_F(DownloadTargetDeterminerTest, InactiveDownload) { |
900 const DownloadTestCase kInactiveTestCases[] = { | 900 const DownloadTestCase kInactiveTestCases[] = { |
901 {AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, | 901 {AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, |
902 DownloadFileType::NOT_DANGEROUS, "http://example.com/foo.txt", | 902 DownloadFileType::NOT_DANGEROUS, "http://example.com/foo.txt", |
903 "text/plain", FILE_PATH_LITERAL(""), | 903 "text/plain", FILE_PATH_LITERAL(""), |
904 | 904 |
905 FILE_PATH_LITERAL("foo.txt"), DownloadItem::TARGET_DISPOSITION_OVERWRITE, | 905 FILE_PATH_LITERAL("foo.txt"), DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
906 | 906 |
907 EXPECT_CRDOWNLOAD}, | 907 EXPECT_CRDOWNLOAD}, |
908 | 908 |
909 #if !BUILDFLAG(ANDROID_JAVA_UI) | 909 #if !defined(OS_ANDROID) |
910 {SAVE_AS, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, | 910 {SAVE_AS, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, |
911 DownloadFileType::NOT_DANGEROUS, "http://example.com/foo.txt", | 911 DownloadFileType::NOT_DANGEROUS, "http://example.com/foo.txt", |
912 "text/plain", FILE_PATH_LITERAL(""), | 912 "text/plain", FILE_PATH_LITERAL(""), |
913 | 913 |
914 FILE_PATH_LITERAL("foo.txt"), DownloadItem::TARGET_DISPOSITION_PROMPT, | 914 FILE_PATH_LITERAL("foo.txt"), DownloadItem::TARGET_DISPOSITION_PROMPT, |
915 | 915 |
916 EXPECT_CRDOWNLOAD} | 916 EXPECT_CRDOWNLOAD} |
917 #endif // !BUILDFLAG(ANDROID_JAVA_UI) | 917 #endif // !defined(OS_ANDROID) |
918 }; | 918 }; |
919 | 919 |
920 for (size_t i = 0; i < arraysize(kInactiveTestCases); ++i) { | 920 for (size_t i = 0; i < arraysize(kInactiveTestCases); ++i) { |
921 SCOPED_TRACE(testing::Message() << "Running test case " << i); | 921 SCOPED_TRACE(testing::Message() << "Running test case " << i); |
922 const DownloadTestCase& test_case = kInactiveTestCases[i]; | 922 const DownloadTestCase& test_case = kInactiveTestCases[i]; |
923 std::unique_ptr<content::MockDownloadItem> item( | 923 std::unique_ptr<content::MockDownloadItem> item( |
924 CreateActiveDownloadItem(i, test_case)); | 924 CreateActiveDownloadItem(i, test_case)); |
925 EXPECT_CALL(*item.get(), GetState()) | 925 EXPECT_CALL(*item.get(), GetState()) |
926 .WillRepeatedly(Return(content::DownloadItem::CANCELLED)); | 926 .WillRepeatedly(Return(content::DownloadItem::CANCELLED)); |
927 | 927 |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
998 {// 1: Dangerous due to not having visited referrer before. | 998 {// 1: Dangerous due to not having visited referrer before. |
999 AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_DANGEROUS_FILE, | 999 AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_DANGEROUS_FILE, |
1000 DownloadFileType::ALLOW_ON_USER_GESTURE, | 1000 DownloadFileType::ALLOW_ON_USER_GESTURE, |
1001 "http://not-visited.example.com/foo.crx", "application/xml", | 1001 "http://not-visited.example.com/foo.crx", "application/xml", |
1002 FILE_PATH_LITERAL(""), | 1002 FILE_PATH_LITERAL(""), |
1003 | 1003 |
1004 FILE_PATH_LITERAL("foo.crx"), DownloadItem::TARGET_DISPOSITION_OVERWRITE, | 1004 FILE_PATH_LITERAL("foo.crx"), DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
1005 | 1005 |
1006 EXPECT_UNCONFIRMED}, | 1006 EXPECT_UNCONFIRMED}, |
1007 | 1007 |
1008 #if !BUILDFLAG(ANDROID_JAVA_UI) | 1008 #if !defined(OS_ANDROID) |
1009 {// 2: Safe because the user is being prompted. | 1009 {// 2: Safe because the user is being prompted. |
1010 SAVE_AS, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, | 1010 SAVE_AS, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, |
1011 DownloadFileType::NOT_DANGEROUS, | 1011 DownloadFileType::NOT_DANGEROUS, |
1012 "http://not-visited.example.com/foo.crx", "application/xml", | 1012 "http://not-visited.example.com/foo.crx", "application/xml", |
1013 FILE_PATH_LITERAL(""), | 1013 FILE_PATH_LITERAL(""), |
1014 | 1014 |
1015 FILE_PATH_LITERAL("foo.crx"), DownloadItem::TARGET_DISPOSITION_PROMPT, | 1015 FILE_PATH_LITERAL("foo.crx"), DownloadItem::TARGET_DISPOSITION_PROMPT, |
1016 | 1016 |
1017 EXPECT_CRDOWNLOAD}, | 1017 EXPECT_CRDOWNLOAD}, |
1018 #endif // !BUILDFLAG(ANDROID_JAVA_UI) | 1018 #endif // !defined(OS_ANDROID) |
1019 | 1019 |
1020 {// 3: Safe because of forced path. | 1020 {// 3: Safe because of forced path. |
1021 FORCED, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, | 1021 FORCED, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, |
1022 DownloadFileType::NOT_DANGEROUS, | 1022 DownloadFileType::NOT_DANGEROUS, |
1023 "http://not-visited.example.com/foo.crx", "application/xml", | 1023 "http://not-visited.example.com/foo.crx", "application/xml", |
1024 FILE_PATH_LITERAL("foo.crx"), | 1024 FILE_PATH_LITERAL("foo.crx"), |
1025 | 1025 |
1026 FILE_PATH_LITERAL("foo.crx"), DownloadItem::TARGET_DISPOSITION_OVERWRITE, | 1026 FILE_PATH_LITERAL("foo.crx"), DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
1027 | 1027 |
1028 EXPECT_LOCAL_PATH}, | 1028 EXPECT_LOCAL_PATH}, |
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1164 } | 1164 } |
1165 | 1165 |
1166 std::unique_ptr<content::MockDownloadItem> item( | 1166 std::unique_ptr<content::MockDownloadItem> item( |
1167 CreateActiveDownloadItem(1, download_test_case)); | 1167 CreateActiveDownloadItem(1, download_test_case)); |
1168 EXPECT_CALL(*item, GetTransitionType()) | 1168 EXPECT_CALL(*item, GetTransitionType()) |
1169 .WillRepeatedly(Return(test_case.page_transition)); | 1169 .WillRepeatedly(Return(test_case.page_transition)); |
1170 RunTestCase(download_test_case, base::FilePath(), item.get()); | 1170 RunTestCase(download_test_case, base::FilePath(), item.get()); |
1171 } | 1171 } |
1172 } | 1172 } |
1173 | 1173 |
1174 #if !BUILDFLAG(ANDROID_JAVA_UI) | 1174 #if !defined(OS_ANDROID) |
1175 // These test cases are run with "Prompt for download" user preference set to | 1175 // These test cases are run with "Prompt for download" user preference set to |
1176 // true. | 1176 // true. |
1177 TEST_F(DownloadTargetDeterminerTest, PromptAlways) { | 1177 TEST_F(DownloadTargetDeterminerTest, PromptAlways) { |
1178 const DownloadTestCase kPromptingTestCases[] = { | 1178 const DownloadTestCase kPromptingTestCases[] = { |
1179 {// 0: Safe Automatic - Should prompt because of "Prompt for download" | 1179 {// 0: Safe Automatic - Should prompt because of "Prompt for download" |
1180 // preference setting. | 1180 // preference setting. |
1181 AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, | 1181 AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, |
1182 DownloadFileType::NOT_DANGEROUS, "http://example.com/foo.txt", | 1182 DownloadFileType::NOT_DANGEROUS, "http://example.com/foo.txt", |
1183 "text/plain", FILE_PATH_LITERAL(""), | 1183 "text/plain", FILE_PATH_LITERAL(""), |
1184 | 1184 |
(...skipping 21 matching lines...) Expand all Loading... |
1206 | 1206 |
1207 EXPECT_CRDOWNLOAD}, | 1207 EXPECT_CRDOWNLOAD}, |
1208 }; | 1208 }; |
1209 | 1209 |
1210 SetPromptForDownload(true); | 1210 SetPromptForDownload(true); |
1211 EnableAutoOpenBasedOnExtension( | 1211 EnableAutoOpenBasedOnExtension( |
1212 base::FilePath(FILE_PATH_LITERAL("dummy.dummy"))); | 1212 base::FilePath(FILE_PATH_LITERAL("dummy.dummy"))); |
1213 RunTestCasesWithActiveItem(kPromptingTestCases, | 1213 RunTestCasesWithActiveItem(kPromptingTestCases, |
1214 arraysize(kPromptingTestCases)); | 1214 arraysize(kPromptingTestCases)); |
1215 } | 1215 } |
1216 #endif // !BUILDFLAG(ANDROID_JAVA_UI) | 1216 #endif // !defined(OS_ANDROID) |
1217 | 1217 |
1218 #if BUILDFLAG(ENABLE_EXTENSIONS) | 1218 #if BUILDFLAG(ENABLE_EXTENSIONS) |
1219 // These test cases are run with "Prompt for download" user preference set to | 1219 // These test cases are run with "Prompt for download" user preference set to |
1220 // true. Automatic extension downloads shouldn't cause prompting. | 1220 // true. Automatic extension downloads shouldn't cause prompting. |
1221 // Android doesn't support extensions. | 1221 // Android doesn't support extensions. |
1222 TEST_F(DownloadTargetDeterminerTest, PromptAlways_Extension) { | 1222 TEST_F(DownloadTargetDeterminerTest, PromptAlways_Extension) { |
1223 const DownloadTestCase kPromptingTestCases[] = { | 1223 const DownloadTestCase kPromptingTestCases[] = { |
1224 {// 0: Automatic Browser Extension download. - Shouldn't prompt for browser | 1224 {// 0: Automatic Browser Extension download. - Shouldn't prompt for browser |
1225 // extension downloads even if "Prompt for download" preference is set. | 1225 // extension downloads even if "Prompt for download" preference is set. |
1226 AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_DANGEROUS_FILE, | 1226 AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_DANGEROUS_FILE, |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1299 {// 0: Automatic Safe | 1299 {// 0: Automatic Safe |
1300 AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, | 1300 AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, |
1301 DownloadFileType::NOT_DANGEROUS, "http://example.com/foo.txt", | 1301 DownloadFileType::NOT_DANGEROUS, "http://example.com/foo.txt", |
1302 "text/plain", FILE_PATH_LITERAL(""), | 1302 "text/plain", FILE_PATH_LITERAL(""), |
1303 | 1303 |
1304 FILE_PATH_LITERAL("overridden/foo.txt"), | 1304 FILE_PATH_LITERAL("overridden/foo.txt"), |
1305 DownloadItem::TARGET_DISPOSITION_OVERWRITE, | 1305 DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
1306 | 1306 |
1307 EXPECT_CRDOWNLOAD}, | 1307 EXPECT_CRDOWNLOAD}, |
1308 | 1308 |
1309 #if !BUILDFLAG(ANDROID_JAVA_UI) | 1309 #if !defined(OS_ANDROID) |
1310 {// 1: Save_As Safe | 1310 {// 1: Save_As Safe |
1311 SAVE_AS, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, | 1311 SAVE_AS, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, |
1312 DownloadFileType::NOT_DANGEROUS, "http://example.com/foo.txt", | 1312 DownloadFileType::NOT_DANGEROUS, "http://example.com/foo.txt", |
1313 "text/plain", FILE_PATH_LITERAL(""), | 1313 "text/plain", FILE_PATH_LITERAL(""), |
1314 | 1314 |
1315 FILE_PATH_LITERAL("overridden/foo.txt"), | 1315 FILE_PATH_LITERAL("overridden/foo.txt"), |
1316 DownloadItem::TARGET_DISPOSITION_PROMPT, | 1316 DownloadItem::TARGET_DISPOSITION_PROMPT, |
1317 | 1317 |
1318 EXPECT_CRDOWNLOAD}, | 1318 EXPECT_CRDOWNLOAD}, |
1319 #endif // !BUILDFLAG(ANDROID_JAVA_UI) | 1319 #endif // !defined(OS_ANDROID) |
1320 | 1320 |
1321 {// 2: Automatic Dangerous | 1321 {// 2: Automatic Dangerous |
1322 AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_DANGEROUS_FILE, | 1322 AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_DANGEROUS_FILE, |
1323 DownloadFileType::ALLOW_ON_USER_GESTURE, "http://example.com/foo.crx", | 1323 DownloadFileType::ALLOW_ON_USER_GESTURE, "http://example.com/foo.crx", |
1324 "", FILE_PATH_LITERAL(""), | 1324 "", FILE_PATH_LITERAL(""), |
1325 | 1325 |
1326 FILE_PATH_LITERAL("overridden/foo.crx"), | 1326 FILE_PATH_LITERAL("overridden/foo.crx"), |
1327 DownloadItem::TARGET_DISPOSITION_OVERWRITE, | 1327 DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
1328 | 1328 |
1329 EXPECT_UNCONFIRMED}, | 1329 EXPECT_UNCONFIRMED}, |
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1424 .WillOnce(WithArg<2>( | 1424 .WillOnce(WithArg<2>( |
1425 ScheduleCallback2(overridden_path, | 1425 ScheduleCallback2(overridden_path, |
1426 DownloadPathReservationTracker::PROMPT))); | 1426 DownloadPathReservationTracker::PROMPT))); |
1427 EXPECT_CALL(*delegate(), ReserveVirtualPath( | 1427 EXPECT_CALL(*delegate(), ReserveVirtualPath( |
1428 _, full_overridden_path, true, DownloadPathReservationTracker::PROMPT, _)) | 1428 _, full_overridden_path, true, DownloadPathReservationTracker::PROMPT, _)) |
1429 .WillOnce(WithArg<4>( | 1429 .WillOnce(WithArg<4>( |
1430 ScheduleCallback2(full_overridden_path, true))); | 1430 ScheduleCallback2(full_overridden_path, true))); |
1431 RunTestCase(test_case, base::FilePath(), item.get()); | 1431 RunTestCase(test_case, base::FilePath(), item.get()); |
1432 } | 1432 } |
1433 | 1433 |
1434 #if !BUILDFLAG(ANDROID_JAVA_UI) | 1434 #if !defined(OS_ANDROID) |
1435 // Test that relative paths returned by extensions are always relative to the | 1435 // Test that relative paths returned by extensions are always relative to the |
1436 // default downloads path. | 1436 // default downloads path. |
1437 TEST_F(DownloadTargetDeterminerTest, NotifyExtensionsDefaultPath) { | 1437 TEST_F(DownloadTargetDeterminerTest, NotifyExtensionsDefaultPath) { |
1438 const DownloadTestCase kNotifyExtensionsTestCase = { | 1438 const DownloadTestCase kNotifyExtensionsTestCase = { |
1439 SAVE_AS, | 1439 SAVE_AS, |
1440 content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, | 1440 content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, |
1441 DownloadFileType::NOT_DANGEROUS, | 1441 DownloadFileType::NOT_DANGEROUS, |
1442 "http://example.com/foo.txt", | 1442 "http://example.com/foo.txt", |
1443 "text/plain", | 1443 "text/plain", |
1444 FILE_PATH_LITERAL(""), | 1444 FILE_PATH_LITERAL(""), |
(...skipping 16 matching lines...) Expand all Loading... |
1461 EXPECT_CALL(*delegate(), NotifyExtensions(_, _, _)) | 1461 EXPECT_CALL(*delegate(), NotifyExtensions(_, _, _)) |
1462 .WillOnce(WithArg<2>( | 1462 .WillOnce(WithArg<2>( |
1463 ScheduleCallback2(overridden_path, | 1463 ScheduleCallback2(overridden_path, |
1464 DownloadPathReservationTracker::UNIQUIFY))); | 1464 DownloadPathReservationTracker::UNIQUIFY))); |
1465 EXPECT_CALL(*delegate(), | 1465 EXPECT_CALL(*delegate(), |
1466 PromptUserForDownloadPath(_, full_overridden_path, _)) | 1466 PromptUserForDownloadPath(_, full_overridden_path, _)) |
1467 .WillOnce(WithArg<2>( | 1467 .WillOnce(WithArg<2>( |
1468 ScheduleCallback(full_overridden_path))); | 1468 ScheduleCallback(full_overridden_path))); |
1469 RunTestCase(test_case, base::FilePath(), item.get()); | 1469 RunTestCase(test_case, base::FilePath(), item.get()); |
1470 } | 1470 } |
1471 #endif // !BUILDFLAG(ANDROID_JAVA_UI) | 1471 #endif // !defined(OS_ANDROID) |
1472 | 1472 |
1473 TEST_F(DownloadTargetDeterminerTest, InitialVirtualPathUnsafe) { | 1473 TEST_F(DownloadTargetDeterminerTest, InitialVirtualPathUnsafe) { |
1474 const base::FilePath::CharType* kInitialPath = | 1474 const base::FilePath::CharType* kInitialPath = |
1475 FILE_PATH_LITERAL("some_path/bar.html"); | 1475 FILE_PATH_LITERAL("some_path/bar.html"); |
1476 | 1476 |
1477 const DownloadTestCase kInitialPathTestCase = { | 1477 const DownloadTestCase kInitialPathTestCase = { |
1478 // 0: Save As Save. The path generated based on the DownloadItem is safe, | 1478 // 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 | 1479 // but the initial path is unsafe. However, the download is not considered |
1480 // dangerous since the user has been prompted. | 1480 // dangerous since the user has been prompted. |
1481 SAVE_AS, | 1481 SAVE_AS, |
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1629 const base::FilePath::CharType* kInitialPath = | 1629 const base::FilePath::CharType* kInitialPath = |
1630 FILE_PATH_LITERAL("some_path/bar.txt"); | 1630 FILE_PATH_LITERAL("some_path/bar.txt"); |
1631 | 1631 |
1632 const DownloadTestCase kResumedTestCases[] = { | 1632 const DownloadTestCase kResumedTestCases[] = { |
1633 {// 0: Automatic Safe | 1633 {// 0: Automatic Safe |
1634 AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, | 1634 AUTOMATIC, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, |
1635 DownloadFileType::NOT_DANGEROUS, "http://example.com/foo.txt", | 1635 DownloadFileType::NOT_DANGEROUS, "http://example.com/foo.txt", |
1636 "text/plain", FILE_PATH_LITERAL(""), | 1636 "text/plain", FILE_PATH_LITERAL(""), |
1637 | 1637 |
1638 FILE_PATH_LITERAL("foo.txt"), | 1638 FILE_PATH_LITERAL("foo.txt"), |
1639 #if BUILDFLAG(ANDROID_JAVA_UI) | 1639 #if defined(OS_ANDROID) |
1640 DownloadItem::TARGET_DISPOSITION_OVERWRITE, | 1640 DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
1641 #else | 1641 #else |
1642 DownloadItem::TARGET_DISPOSITION_PROMPT, | 1642 DownloadItem::TARGET_DISPOSITION_PROMPT, |
1643 #endif | 1643 #endif |
1644 EXPECT_CRDOWNLOAD}, | 1644 EXPECT_CRDOWNLOAD}, |
1645 | 1645 |
1646 {// 1: Save_As Safe | 1646 {// 1: Save_As Safe |
1647 SAVE_AS, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, | 1647 SAVE_AS, content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, |
1648 DownloadFileType::NOT_DANGEROUS, "http://example.com/foo.txt", | 1648 DownloadFileType::NOT_DANGEROUS, "http://example.com/foo.txt", |
1649 "text/plain", FILE_PATH_LITERAL(""), | 1649 "text/plain", FILE_PATH_LITERAL(""), |
1650 | 1650 |
1651 kInitialPath, DownloadItem::TARGET_DISPOSITION_PROMPT, | 1651 kInitialPath, DownloadItem::TARGET_DISPOSITION_PROMPT, |
1652 | 1652 |
1653 EXPECT_CRDOWNLOAD}, | 1653 EXPECT_CRDOWNLOAD}, |
1654 | 1654 |
1655 { | 1655 { |
1656 // 2: Automatic Dangerous | 1656 // 2: Automatic Dangerous |
1657 AUTOMATIC, | 1657 AUTOMATIC, |
1658 #if BUILDFLAG(ANDROID_JAVA_UI) | 1658 #if defined(OS_ANDROID) |
1659 // If we don't prompt user, the file will be treated as dangerous. | 1659 // If we don't prompt user, the file will be treated as dangerous. |
1660 content::DOWNLOAD_DANGER_TYPE_DANGEROUS_FILE, | 1660 content::DOWNLOAD_DANGER_TYPE_DANGEROUS_FILE, |
1661 DownloadFileType::ALLOW_ON_USER_GESTURE, | 1661 DownloadFileType::ALLOW_ON_USER_GESTURE, |
1662 #else | 1662 #else |
1663 content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, | 1663 content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, |
1664 DownloadFileType::NOT_DANGEROUS, | 1664 DownloadFileType::NOT_DANGEROUS, |
1665 #endif | 1665 #endif |
1666 "http://example.com/foo.crx", "", FILE_PATH_LITERAL(""), | 1666 "http://example.com/foo.crx", "", FILE_PATH_LITERAL(""), |
1667 | 1667 |
1668 FILE_PATH_LITERAL("foo.crx"), | 1668 FILE_PATH_LITERAL("foo.crx"), |
1669 #if BUILDFLAG(ANDROID_JAVA_UI) | 1669 #if defined(OS_ANDROID) |
1670 DownloadItem::TARGET_DISPOSITION_OVERWRITE, | 1670 DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
1671 // Dangerous download will have an unconfirmed intermediate file name. | 1671 // Dangerous download will have an unconfirmed intermediate file name. |
1672 EXPECT_UNCONFIRMED, | 1672 EXPECT_UNCONFIRMED, |
1673 #else | 1673 #else |
1674 DownloadItem::TARGET_DISPOSITION_PROMPT, EXPECT_CRDOWNLOAD, | 1674 DownloadItem::TARGET_DISPOSITION_PROMPT, EXPECT_CRDOWNLOAD, |
1675 #endif | 1675 #endif |
1676 }, | 1676 }, |
1677 }; | 1677 }; |
1678 | 1678 |
1679 // The test assumes that .xml files have a danger level of | 1679 // The test assumes that .xml files have a danger level of |
1680 // ALLOW_ON_USER_GESTURE. | 1680 // ALLOW_ON_USER_GESTURE. |
1681 ASSERT_EQ(DownloadFileType::ALLOW_ON_USER_GESTURE, | 1681 ASSERT_EQ(DownloadFileType::ALLOW_ON_USER_GESTURE, |
1682 Policies()->GetFileDangerLevel( | 1682 Policies()->GetFileDangerLevel( |
1683 base::FilePath(FILE_PATH_LITERAL("foo.crx")))); | 1683 base::FilePath(FILE_PATH_LITERAL("foo.crx")))); |
1684 for (size_t i = 0; i < arraysize(kResumedTestCases); ++i) { | 1684 for (size_t i = 0; i < arraysize(kResumedTestCases); ++i) { |
1685 SCOPED_TRACE(testing::Message() << "Running test case " << i); | 1685 SCOPED_TRACE(testing::Message() << "Running test case " << i); |
1686 download_prefs()->SetSaveFilePath(test_download_dir()); | 1686 download_prefs()->SetSaveFilePath(test_download_dir()); |
1687 const DownloadTestCase& test_case = kResumedTestCases[i]; | 1687 const DownloadTestCase& test_case = kResumedTestCases[i]; |
1688 base::FilePath expected_path = | 1688 base::FilePath expected_path = |
1689 GetPathInDownloadDir(test_case.expected_local_path); | 1689 GetPathInDownloadDir(test_case.expected_local_path); |
1690 std::unique_ptr<content::MockDownloadItem> item( | 1690 std::unique_ptr<content::MockDownloadItem> item( |
1691 CreateActiveDownloadItem(i, test_case)); | 1691 CreateActiveDownloadItem(i, test_case)); |
1692 ON_CALL(*item.get(), GetLastReason()) | 1692 ON_CALL(*item.get(), GetLastReason()) |
1693 .WillByDefault(Return( | 1693 .WillByDefault(Return( |
1694 content::DOWNLOAD_INTERRUPT_REASON_FILE_NO_SPACE)); | 1694 content::DOWNLOAD_INTERRUPT_REASON_FILE_NO_SPACE)); |
1695 EXPECT_CALL(*delegate(), NotifyExtensions(_, _, _)) | 1695 EXPECT_CALL(*delegate(), NotifyExtensions(_, _, _)) |
1696 .Times(test_case.test_type == AUTOMATIC ? 1 : 0); | 1696 .Times(test_case.test_type == AUTOMATIC ? 1 : 0); |
1697 EXPECT_CALL(*delegate(), ReserveVirtualPath(_, expected_path, false, _, _)); | 1697 EXPECT_CALL(*delegate(), ReserveVirtualPath(_, expected_path, false, _, _)); |
1698 #if BUILDFLAG(ANDROID_JAVA_UI) | 1698 #if defined(OS_ANDROID) |
1699 EXPECT_CALL(*delegate(), PromptUserForDownloadPath(_, expected_path, _)) | 1699 EXPECT_CALL(*delegate(), PromptUserForDownloadPath(_, expected_path, _)) |
1700 .Times(0); | 1700 .Times(0); |
1701 #else | 1701 #else |
1702 EXPECT_CALL(*delegate(), PromptUserForDownloadPath(_, expected_path, _)); | 1702 EXPECT_CALL(*delegate(), PromptUserForDownloadPath(_, expected_path, _)); |
1703 #endif | 1703 #endif |
1704 EXPECT_CALL(*delegate(), DetermineLocalPath(_, expected_path, _)); | 1704 EXPECT_CALL(*delegate(), DetermineLocalPath(_, expected_path, _)); |
1705 EXPECT_CALL(*delegate(), CheckDownloadUrl(_, expected_path, _)); | 1705 EXPECT_CALL(*delegate(), CheckDownloadUrl(_, expected_path, _)); |
1706 RunTestCase(test_case, GetPathInDownloadDir(kInitialPath), item.get()); | 1706 RunTestCase(test_case, GetPathInDownloadDir(kInitialPath), item.get()); |
1707 } | 1707 } |
1708 } | 1708 } |
(...skipping 451 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2160 EXPECT_CALL(mock_plugin_filter_, MockPluginAvailable(browser_plugin.path())) | 2160 EXPECT_CALL(mock_plugin_filter_, MockPluginAvailable(browser_plugin.path())) |
2161 .WillRepeatedly(Return(false)); | 2161 .WillRepeatedly(Return(false)); |
2162 target_info = RunDownloadTargetDeterminer( | 2162 target_info = RunDownloadTargetDeterminer( |
2163 GetPathInDownloadDir(kInitialPath), item.get()); | 2163 GetPathInDownloadDir(kInitialPath), item.get()); |
2164 EXPECT_FALSE(target_info->is_filetype_handled_safely); | 2164 EXPECT_FALSE(target_info->is_filetype_handled_safely); |
2165 } | 2165 } |
2166 | 2166 |
2167 #endif // BUILDFLAG(ENABLE_PLUGINS) | 2167 #endif // BUILDFLAG(ENABLE_PLUGINS) |
2168 | 2168 |
2169 } // namespace | 2169 } // namespace |
OLD | NEW |