| 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 2ae0ef0dd8ac7ed673a033871921fbe26f7aecaf..23002f0af4eb8a42101fef555b3ef300e016d10e 100644
|
| --- a/content/browser/download/download_item_impl_unittest.cc
|
| +++ b/content/browser/download/download_item_impl_unittest.cc
|
| @@ -1539,7 +1539,7 @@ TEST_F(DownloadItemTest, CompleteDelegate_BlockTwice) {
|
| EXPECT_EQ(DownloadItem::COMPLETE, item->GetState());
|
| }
|
|
|
| -TEST_F(DownloadItemTest, StealDangerousDownload) {
|
| +TEST_F(DownloadItemTest, StealDangerousDownloadAndDiscard) {
|
| DownloadItemImpl* item = CreateDownloadItem();
|
| MockDownloadFile* download_file =
|
| DoIntermediateRename(item, DOWNLOAD_DANGER_TYPE_DANGEROUS_FILE);
|
| @@ -1551,7 +1551,9 @@ TEST_F(DownloadItemTest, StealDangerousDownload) {
|
| EXPECT_CALL(*download_file, Detach());
|
| EXPECT_CALL(*mock_delegate(), DownloadRemoved(_));
|
| base::WeakPtrFactory<DownloadItemTest> weak_ptr_factory(this);
|
| + item->OnAllDataSaved(0, std::unique_ptr<crypto::SecureHash>());
|
| item->StealDangerousDownload(
|
| + true, // delete_file_after_feedback
|
| base::Bind(&DownloadItemTest::OnDownloadFileAcquired,
|
| weak_ptr_factory.GetWeakPtr(),
|
| base::Unretained(&returned_path)));
|
| @@ -1559,6 +1561,26 @@ TEST_F(DownloadItemTest, StealDangerousDownload) {
|
| EXPECT_EQ(full_path, returned_path);
|
| }
|
|
|
| +TEST_F(DownloadItemTest, StealDangerousDownloadAndKeep) {
|
| + DownloadItemImpl* item = CreateDownloadItem();
|
| + MockDownloadFile* download_file =
|
| + DoIntermediateRename(item, DOWNLOAD_DANGER_TYPE_DANGEROUS_FILE);
|
| + ASSERT_TRUE(item->IsDangerous());
|
| + base::FilePath full_path(FILE_PATH_LITERAL("foo.txt"));
|
| + base::FilePath returned_path;
|
| + EXPECT_CALL(*download_file, FullPath()).WillOnce(ReturnRefOfCopy(full_path));
|
| + base::WeakPtrFactory<DownloadItemTest> weak_ptr_factory(this);
|
| + item->OnAllDataSaved(0, std::unique_ptr<crypto::SecureHash>());
|
| + item->StealDangerousDownload(
|
| + false, // delete_file_after_feedback
|
| + base::Bind(&DownloadItemTest::OnDownloadFileAcquired,
|
| + weak_ptr_factory.GetWeakPtr(),
|
| + base::Unretained(&returned_path)));
|
| + RunAllPendingInMessageLoops();
|
| + EXPECT_NE(full_path, returned_path);
|
| + CleanupItem(item, download_file, DownloadItem::IN_PROGRESS);
|
| +}
|
| +
|
| TEST_F(DownloadItemTest, StealInterruptedDangerousDownload) {
|
| base::FilePath returned_path;
|
| DownloadItemImpl* item = CreateDownloadItem();
|
| @@ -1575,10 +1597,11 @@ TEST_F(DownloadItemTest, StealInterruptedDangerousDownload) {
|
|
|
| EXPECT_CALL(*mock_delegate(), DownloadRemoved(_));
|
| base::WeakPtrFactory<DownloadItemTest> weak_ptr_factory(this);
|
| + item->OnAllDataSaved(0, std::unique_ptr<crypto::SecureHash>());
|
| item->StealDangerousDownload(
|
| - base::Bind(&DownloadItemTest::OnDownloadFileAcquired,
|
| - weak_ptr_factory.GetWeakPtr(),
|
| - base::Unretained(&returned_path)));
|
| + true, base::Bind(&DownloadItemTest::OnDownloadFileAcquired,
|
| + weak_ptr_factory.GetWeakPtr(),
|
| + base::Unretained(&returned_path)));
|
| RunAllPendingInMessageLoops();
|
| EXPECT_EQ(full_path, returned_path);
|
| }
|
| @@ -1596,10 +1619,11 @@ TEST_F(DownloadItemTest, StealInterruptedNonResumableDangerousDownload) {
|
|
|
| EXPECT_CALL(*mock_delegate(), DownloadRemoved(_));
|
| base::WeakPtrFactory<DownloadItemTest> weak_ptr_factory(this);
|
| + item->OnAllDataSaved(0, std::unique_ptr<crypto::SecureHash>());
|
| item->StealDangerousDownload(
|
| - base::Bind(&DownloadItemTest::OnDownloadFileAcquired,
|
| - weak_ptr_factory.GetWeakPtr(),
|
| - base::Unretained(&returned_path)));
|
| + true, base::Bind(&DownloadItemTest::OnDownloadFileAcquired,
|
| + weak_ptr_factory.GetWeakPtr(),
|
| + base::Unretained(&returned_path)));
|
| RunAllPendingInMessageLoops();
|
| EXPECT_TRUE(returned_path.empty());
|
| }
|
|
|