Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(161)

Side by Side Diff: chrome/browser/download/download_target_determiner_unittest.cc

Issue 1513413002: Enable "Hide Extension" option when "Save Link As" on the Mac Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix nits. Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 "base/at_exit.h" 5 #include "base/at_exit.h"
6 #include "base/files/file_path.h" 6 #include "base/files/file_path.h"
7 #include "base/files/scoped_temp_dir.h" 7 #include "base/files/scoped_temp_dir.h"
8 #include "base/location.h" 8 #include "base/location.h"
9 #include "base/observer_list.h" 9 #include "base/observer_list.h"
10 #include "base/prefs/pref_service.h" 10 #include "base/prefs/pref_service.h"
(...skipping 447 matching lines...) Expand 10 before | Expand all | Expand 10 after
458 bool create_directory, 458 bool create_directory,
459 DownloadPathReservationTracker::FilenameConflictAction conflict_action, 459 DownloadPathReservationTracker::FilenameConflictAction conflict_action,
460 const DownloadTargetDeterminerDelegate::ReservedPathCallback& callback) { 460 const DownloadTargetDeterminerDelegate::ReservedPathCallback& callback) {
461 callback.Run(virtual_path, true); 461 callback.Run(virtual_path, true);
462 } 462 }
463 463
464 // static 464 // static
465 void MockDownloadTargetDeterminerDelegate::NullPromptUser( 465 void MockDownloadTargetDeterminerDelegate::NullPromptUser(
466 DownloadItem* download, const base::FilePath& suggested_path, 466 DownloadItem* download, const base::FilePath& suggested_path,
467 const FileSelectedCallback& callback) { 467 const FileSelectedCallback& callback) {
468 callback.Run(suggested_path); 468 callback.Run(suggested_path, false);
469 } 469 }
470 470
471 // static 471 // static
472 void MockDownloadTargetDeterminerDelegate::NullDetermineLocalPath( 472 void MockDownloadTargetDeterminerDelegate::NullDetermineLocalPath(
473 DownloadItem* download, const base::FilePath& virtual_path, 473 DownloadItem* download, const base::FilePath& virtual_path,
474 const LocalPathCallback& callback) { 474 const LocalPathCallback& callback) {
475 callback.Run(virtual_path); 475 callback.Run(virtual_path);
476 } 476 }
477 477
478 // NotifyExtensions implementation that overrides the path so that the target 478 // NotifyExtensions implementation that overrides the path so that the target
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
575 "http://example.com/foo.txt", "text/plain", 575 "http://example.com/foo.txt", "text/plain",
576 FILE_PATH_LITERAL(""), 576 FILE_PATH_LITERAL(""),
577 577
578 FILE_PATH_LITERAL(""), 578 FILE_PATH_LITERAL(""),
579 DownloadItem::TARGET_DISPOSITION_PROMPT, 579 DownloadItem::TARGET_DISPOSITION_PROMPT,
580 580
581 EXPECT_LOCAL_PATH 581 EXPECT_LOCAL_PATH
582 } 582 }
583 }; 583 };
584 ON_CALL(*delegate(), PromptUserForDownloadPath(_, _, _)) 584 ON_CALL(*delegate(), PromptUserForDownloadPath(_, _, _))
585 .WillByDefault(WithArg<2>(ScheduleCallback(base::FilePath()))); 585 .WillByDefault(WithArg<2>(ScheduleCallback2(base::FilePath(), false)));
586 RunTestCasesWithActiveItem(kCancelSaveAsTestCases, 586 RunTestCasesWithActiveItem(kCancelSaveAsTestCases,
587 arraysize(kCancelSaveAsTestCases)); 587 arraysize(kCancelSaveAsTestCases));
588 } 588 }
589 589
590 // The SafeBrowsing check is performed early. Make sure that a download item 590 // The SafeBrowsing check is performed early. Make sure that a download item
591 // that has been marked as DANGEROUS_URL behaves correctly. 591 // that has been marked as DANGEROUS_URL behaves correctly.
592 TEST_F(DownloadTargetDeterminerTest, TargetDeterminer_DangerousUrl) { 592 TEST_F(DownloadTargetDeterminerTest, TargetDeterminer_DangerousUrl) {
593 const DownloadTestCase kSafeBrowsingTestCases[] = { 593 const DownloadTestCase kSafeBrowsingTestCases[] = {
594 { 594 {
595 // 0: Automatic Dangerous URL 595 // 0: Automatic Dangerous URL
(...skipping 274 matching lines...) Expand 10 before | Expand all | Expand 10 after
870 FILE_PATH_LITERAL("foo-local.txt"), 870 FILE_PATH_LITERAL("foo-local.txt"),
871 DownloadItem::TARGET_DISPOSITION_PROMPT, 871 DownloadItem::TARGET_DISPOSITION_PROMPT,
872 872
873 EXPECT_LOCAL_PATH 873 EXPECT_LOCAL_PATH
874 }; 874 };
875 EXPECT_CALL(*delegate(), DetermineLocalPath(_, _, _)) 875 EXPECT_CALL(*delegate(), DetermineLocalPath(_, _, _))
876 .WillOnce(WithArg<2>(ScheduleCallback( 876 .WillOnce(WithArg<2>(ScheduleCallback(
877 GetPathInDownloadDir(FILE_PATH_LITERAL("foo-local.txt"))))); 877 GetPathInDownloadDir(FILE_PATH_LITERAL("foo-local.txt")))));
878 EXPECT_CALL(*delegate(), PromptUserForDownloadPath( 878 EXPECT_CALL(*delegate(), PromptUserForDownloadPath(
879 _, test_virtual_dir().AppendASCII("bar.txt"), _)) 879 _, test_virtual_dir().AppendASCII("bar.txt"), _))
880 .WillOnce(WithArg<2>(ScheduleCallback( 880 .WillOnce(WithArg<2>(ScheduleCallback2(
881 test_virtual_dir().AppendASCII("prompted.txt")))); 881 test_virtual_dir().AppendASCII("prompted.txt"), false)));
882 RunTestCasesWithActiveItem(&kSaveAsToVirtualDir, 1); 882 RunTestCasesWithActiveItem(&kSaveAsToVirtualDir, 1);
883 } 883 }
884 884
885 { 885 {
886 SCOPED_TRACE(testing::Message() << "Save As to local directory"); 886 SCOPED_TRACE(testing::Message() << "Save As to local directory");
887 const DownloadTestCase kSaveAsToLocalDir = { 887 const DownloadTestCase kSaveAsToLocalDir = {
888 SAVE_AS, 888 SAVE_AS,
889 content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, 889 content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS,
890 "http://example.com/bar.txt", "text/plain", 890 "http://example.com/bar.txt", "text/plain",
891 FILE_PATH_LITERAL(""), 891 FILE_PATH_LITERAL(""),
892 892
893 FILE_PATH_LITERAL("foo-x.txt"), 893 FILE_PATH_LITERAL("foo-x.txt"),
894 DownloadItem::TARGET_DISPOSITION_PROMPT, 894 DownloadItem::TARGET_DISPOSITION_PROMPT,
895 895
896 EXPECT_CRDOWNLOAD 896 EXPECT_CRDOWNLOAD
897 }; 897 };
898 EXPECT_CALL(*delegate(), PromptUserForDownloadPath( 898 EXPECT_CALL(*delegate(), PromptUserForDownloadPath(
899 _, test_virtual_dir().AppendASCII("bar.txt"), _)) 899 _, test_virtual_dir().AppendASCII("bar.txt"), _))
900 .WillOnce(WithArg<2>(ScheduleCallback( 900 .WillOnce(WithArg<2>(ScheduleCallback2(
901 GetPathInDownloadDir(FILE_PATH_LITERAL("foo-x.txt"))))); 901 GetPathInDownloadDir(FILE_PATH_LITERAL("foo-x.txt")), false)));
902 RunTestCasesWithActiveItem(&kSaveAsToLocalDir, 1); 902 RunTestCasesWithActiveItem(&kSaveAsToLocalDir, 1);
903 } 903 }
904 904
905 { 905 {
906 SCOPED_TRACE(testing::Message() << "Forced safe download"); 906 SCOPED_TRACE(testing::Message() << "Forced safe download");
907 const DownloadTestCase kForcedSafe = { 907 const DownloadTestCase kForcedSafe = {
908 FORCED, 908 FORCED,
909 content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, 909 content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS,
910 "http://example.com/foo.txt", "", 910 "http://example.com/foo.txt", "",
911 FILE_PATH_LITERAL("forced-foo.txt"), 911 FILE_PATH_LITERAL("forced-foo.txt"),
(...skipping 514 matching lines...) Expand 10 before | Expand all | Expand 10 after
1426 download_prefs()->SetSaveFilePath(GetPathInDownloadDir( 1426 download_prefs()->SetSaveFilePath(GetPathInDownloadDir(
1427 FILE_PATH_LITERAL("last_selected"))); 1427 FILE_PATH_LITERAL("last_selected")));
1428 1428
1429 EXPECT_CALL(*delegate(), NotifyExtensions(_, _, _)) 1429 EXPECT_CALL(*delegate(), NotifyExtensions(_, _, _))
1430 .WillOnce(WithArg<2>( 1430 .WillOnce(WithArg<2>(
1431 ScheduleCallback2(overridden_path, 1431 ScheduleCallback2(overridden_path,
1432 DownloadPathReservationTracker::UNIQUIFY))); 1432 DownloadPathReservationTracker::UNIQUIFY)));
1433 EXPECT_CALL(*delegate(), 1433 EXPECT_CALL(*delegate(),
1434 PromptUserForDownloadPath(_, full_overridden_path, _)) 1434 PromptUserForDownloadPath(_, full_overridden_path, _))
1435 .WillOnce(WithArg<2>( 1435 .WillOnce(WithArg<2>(
1436 ScheduleCallback(full_overridden_path))); 1436 ScheduleCallback2(full_overridden_path, false)));
1437 RunTestCase(test_case, base::FilePath(), item.get()); 1437 RunTestCase(test_case, base::FilePath(), item.get());
1438 } 1438 }
1439 1439
1440 TEST_F(DownloadTargetDeterminerTest, 1440 TEST_F(DownloadTargetDeterminerTest,
1441 TargetDeterminer_InitialVirtualPathUnsafe) { 1441 TargetDeterminer_InitialVirtualPathUnsafe) {
1442 const base::FilePath::CharType* kInitialPath = 1442 const base::FilePath::CharType* kInitialPath =
1443 FILE_PATH_LITERAL("some_path/bar.html"); 1443 FILE_PATH_LITERAL("some_path/bar.html");
1444 1444
1445 const DownloadTestCase kInitialPathTestCase = { 1445 const DownloadTestCase kInitialPathTestCase = {
1446 // 0: Save As Save. The path generated based on the DownloadItem is safe, 1446 // 0: Save As Save. The path generated based on the DownloadItem is safe,
(...skipping 792 matching lines...) Expand 10 before | Expand all | Expand 10 after
2239 EXPECT_CALL(mock_plugin_filter_, MockPluginAvailable(npapi_plugin.path())) 2239 EXPECT_CALL(mock_plugin_filter_, MockPluginAvailable(npapi_plugin.path()))
2240 .WillRepeatedly(Return(true)); 2240 .WillRepeatedly(Return(true));
2241 2241
2242 target_info = RunDownloadTargetDeterminer( 2242 target_info = RunDownloadTargetDeterminer(
2243 GetPathInDownloadDir(kInitialPath), item.get()); 2243 GetPathInDownloadDir(kInitialPath), item.get());
2244 EXPECT_FALSE(target_info->is_filetype_handled_safely); 2244 EXPECT_FALSE(target_info->is_filetype_handled_safely);
2245 } 2245 }
2246 #endif // defined(ENABLE_PLUGINS) 2246 #endif // defined(ENABLE_PLUGINS)
2247 2247
2248 } // namespace 2248 } // namespace
OLDNEW
« no previous file with comments | « chrome/browser/download/download_target_determiner_delegate.h ('k') | chrome/browser/download/download_target_info.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698