Chromium Code Reviews| 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()); |