Index: content/browser/download/download_item_impl_unittest.cc |
diff --git a/content/browser/download/download_item_impl_unittest.cc b/content/browser/download/download_item_impl_unittest.cc |
index 4f84f66dfe6a49dddbb3aa677460d08ceb629da6..af958e5faf3aef4d39cddee5b36e2e1f2288f3cb 100644 |
--- a/content/browser/download/download_item_impl_unittest.cc |
+++ b/content/browser/download/download_item_impl_unittest.cc |
@@ -337,7 +337,8 @@ class DownloadItemTest : public testing::Test { |
.WillOnce(ScheduleRenameAndUniquifyCallback( |
DOWNLOAD_INTERRUPT_REASON_NONE, intermediate_path)); |
callback.Run(target_path, DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
- danger_type, intermediate_path); |
+ danger_type, intermediate_path, |
+ DOWNLOAD_INTERRUPT_REASON_NONE); |
RunAllPendingInMessageLoops(); |
return download_file; |
} |
@@ -614,9 +615,14 @@ TEST_F(DownloadItemTest, LimitRestartsAfterInterrupted) { |
EXPECT_CALL(*mock_download_file, RenameAndUniquify(intermediate_path, _)) |
.WillOnce(ScheduleRenameAndUniquifyCallback( |
DOWNLOAD_INTERRUPT_REASON_NONE, intermediate_path)); |
+ callback.Run(target_path, DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
svaldez
2016/10/28 17:29:36
With this I think you should be changing the for s
asanka
2016/11/07 19:50:15
It needed more massaging. PTAL? :-)
|
+ DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, intermediate_path, |
+ DOWNLOAD_INTERRUPT_REASON_NONE); |
+ RunAllPendingInMessageLoops(); |
} |
callback.Run(target_path, DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
- DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, intermediate_path); |
+ DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, intermediate_path, |
+ DOWNLOAD_INTERRUPT_REASON_NONE); |
RunAllPendingInMessageLoops(); |
// Use a continuable interrupt. |
@@ -814,7 +820,8 @@ TEST_F(DownloadItemTest, NotificationAfterOnDownloadTargetDetermined) { |
// Currently, a notification would be generated if the danger type is anything |
// other than NOT_DANGEROUS. |
callback.Run(target_path, DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
- DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, intermediate_path); |
+ DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, intermediate_path, |
+ DOWNLOAD_INTERRUPT_REASON_NONE); |
EXPECT_FALSE(observer.CheckAndResetDownloadUpdated()); |
RunAllPendingInMessageLoops(); |
EXPECT_TRUE(observer.CheckAndResetDownloadUpdated()); |
@@ -862,7 +869,8 @@ TEST_F(DownloadItemTest, DisplayName) { |
.WillOnce(ScheduleRenameAndUniquifyCallback( |
DOWNLOAD_INTERRUPT_REASON_NONE, intermediate_path)); |
callback.Run(target_path, DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
- DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, intermediate_path); |
+ DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, intermediate_path, |
+ DOWNLOAD_INTERRUPT_REASON_NONE); |
RunAllPendingInMessageLoops(); |
EXPECT_EQ(FILE_PATH_LITERAL("foo.bar"), |
item->GetFileNameToReportUser().value()); |
@@ -912,7 +920,8 @@ TEST_F(DownloadItemTest, InitDownloadFileFails) { |
download_target_callback.Run(base::FilePath(kDummyTargetPath), |
DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, |
- base::FilePath(kDummyIntermediatePath)); |
+ base::FilePath(kDummyIntermediatePath), |
+ DOWNLOAD_INTERRUPT_REASON_NONE); |
RunAllPendingInMessageLoops(); |
EXPECT_EQ(DownloadItem::INTERRUPTED, item->GetState()); |
@@ -945,7 +954,8 @@ TEST_F(DownloadItemTest, StartFailedDownload) { |
base::FilePath target_path(FILE_PATH_LITERAL("foo")); |
download_target_callback.Run(target_path, |
DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
- DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, target_path); |
+ DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, target_path, |
+ DOWNLOAD_INTERRUPT_REASON_NONE); |
RunAllPendingInMessageLoops(); |
EXPECT_EQ(target_path, item->GetTargetFilePath()); |
@@ -967,7 +977,8 @@ TEST_F(DownloadItemTest, CallbackAfterRename) { |
DOWNLOAD_INTERRUPT_REASON_NONE, new_intermediate_path)); |
callback.Run(final_path, DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
- DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, intermediate_path); |
+ DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, intermediate_path, |
+ DOWNLOAD_INTERRUPT_REASON_NONE); |
RunAllPendingInMessageLoops(); |
// All the callbacks should have happened by now. |
::testing::Mock::VerifyAndClearExpectations(download_file); |
@@ -1006,7 +1017,8 @@ TEST_F(DownloadItemTest, CallbackAfterInterruptedRename) { |
.Times(1); |
callback.Run(final_path, DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
- DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, intermediate_path); |
+ DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, intermediate_path, |
+ DOWNLOAD_INTERRUPT_REASON_NONE); |
RunAllPendingInMessageLoops(); |
// All the callbacks should have happened by now. |
::testing::Mock::VerifyAndClearExpectations(download_file); |
@@ -1058,7 +1070,8 @@ TEST_F(DownloadItemTest, InterruptedBeforeIntermediateRename_Restart) { |
.Times(1); |
callback.Run(final_path, DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
- DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, intermediate_path); |
+ DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, intermediate_path, |
+ DOWNLOAD_INTERRUPT_REASON_NONE); |
RunAllPendingInMessageLoops(); |
// All the callbacks should have happened by now. |
::testing::Mock::VerifyAndClearExpectations(download_file); |
@@ -1093,7 +1106,8 @@ TEST_F(DownloadItemTest, InterruptedBeforeIntermediateRename_Continue) { |
EXPECT_CALL(*download_file, Detach()); |
callback.Run(final_path, DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
- DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, intermediate_path); |
+ DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, intermediate_path, |
+ DOWNLOAD_INTERRUPT_REASON_NONE); |
RunAllPendingInMessageLoops(); |
// All the callbacks should have happened by now. |
::testing::Mock::VerifyAndClearExpectations(download_file); |
@@ -1126,7 +1140,8 @@ TEST_F(DownloadItemTest, InterruptedBeforeIntermediateRename_Failed) { |
.Times(1); |
callback.Run(final_path, DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
- DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, intermediate_path); |
+ DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, intermediate_path, |
+ DOWNLOAD_INTERRUPT_REASON_NONE); |
RunAllPendingInMessageLoops(); |
// All the callbacks should have happened by now. |
::testing::Mock::VerifyAndClearExpectations(download_file); |
@@ -1149,6 +1164,47 @@ TEST_F(DownloadItemTest, Canceled) { |
EXPECT_EQ(DownloadItem::CANCELLED, item->GetState()); |
} |
+TEST_F(DownloadItemTest, DownloadTargetDetermined_Cancel) { |
+ DownloadItemImpl* item = CreateDownloadItem(); |
+ DownloadItemImplDelegate::DownloadTargetCallback callback; |
+ MockDownloadFile* download_file = CallDownloadItemStart(item, &callback); |
+ |
+ EXPECT_CALL(*download_file, Cancel()); |
+ callback.Run(base::FilePath(FILE_PATH_LITERAL("foo")), |
+ DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
+ DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, |
+ base::FilePath(FILE_PATH_LITERAL("bar")), |
+ DOWNLOAD_INTERRUPT_REASON_USER_CANCELED); |
+ EXPECT_EQ(DownloadItem::CANCELLED, item->GetState()); |
+} |
+ |
+TEST_F(DownloadItemTest, DownloadTargetDetermined_CancelWithEmptyName) { |
+ DownloadItemImpl* item = CreateDownloadItem(); |
+ DownloadItemImplDelegate::DownloadTargetCallback callback; |
+ MockDownloadFile* download_file = CallDownloadItemStart(item, &callback); |
+ |
+ EXPECT_CALL(*download_file, Cancel()); |
+ callback.Run(base::FilePath(), DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
+ DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, base::FilePath(), |
+ DOWNLOAD_INTERRUPT_REASON_NONE); |
+ EXPECT_EQ(DownloadItem::CANCELLED, item->GetState()); |
+} |
+ |
+TEST_F(DownloadItemTest, DownloadTargetDetermined_Conflict) { |
+ DownloadItemImpl* item = CreateDownloadItem(); |
+ DownloadItemImplDelegate::DownloadTargetCallback callback; |
+ MockDownloadFile* download_file = CallDownloadItemStart(item, &callback); |
+ base::FilePath target_path(FILE_PATH_LITERAL("/foo/bar")); |
+ |
+ EXPECT_CALL(*download_file, Cancel()); |
+ callback.Run(target_path, DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
+ DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, target_path, |
+ DOWNLOAD_INTERRUPT_REASON_FILE_SAME_AS_SOURCE); |
+ EXPECT_EQ(DownloadItem::INTERRUPTED, item->GetState()); |
+ EXPECT_EQ(DOWNLOAD_INTERRUPT_REASON_FILE_SAME_AS_SOURCE, |
+ item->GetLastReason()); |
+} |
+ |
TEST_F(DownloadItemTest, FileRemoved) { |
DownloadItemImpl* item = CreateDownloadItem(); |
@@ -1876,7 +1932,8 @@ TEST_P(DownloadItemDestinationUpdateRaceTest, DownloadCancelledByUser) { |
destination_observer); |
target_callback.Run(base::FilePath(), |
DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
- DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, base::FilePath()); |
+ DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, base::FilePath(), |
+ DOWNLOAD_INTERRUPT_REASON_NONE); |
EXPECT_EQ(DownloadItem::CANCELLED, item_->GetState()); |
RunAllPendingInMessageLoops(); |
} |
@@ -1929,7 +1986,8 @@ TEST_P(DownloadItemDestinationUpdateRaceTest, IntermediateRenameFails) { |
target_callback.Run(base::FilePath(kDummyTargetPath), |
DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, |
- base::FilePath(kDummyIntermediatePath)); |
+ base::FilePath(kDummyIntermediatePath), |
+ DOWNLOAD_INTERRUPT_REASON_NONE); |
intermediate_rename_loop.Run(); |
ASSERT_FALSE(intermediate_rename_callback.is_null()); |
@@ -1998,7 +2056,8 @@ TEST_P(DownloadItemDestinationUpdateRaceTest, IntermediateRenameSucceeds) { |
target_callback.Run(base::FilePath(kDummyTargetPath), |
DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, |
- base::FilePath(kDummyIntermediatePath)); |
+ base::FilePath(kDummyIntermediatePath), |
+ DOWNLOAD_INTERRUPT_REASON_NONE); |
intermediate_rename_loop.Run(); |
ASSERT_FALSE(intermediate_rename_callback.is_null()); |