| 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 "base/command_line.h" | 5 #include "base/command_line.h" |
| 6 #include "base/message_loop.h" | 6 #include "base/message_loop.h" |
| 7 #include "base/stl_util.h" | 7 #include "base/stl_util.h" |
| 8 #include "base/threading/thread.h" | 8 #include "base/threading/thread.h" |
| 9 #include "content/browser/download/byte_stream.h" | 9 #include "content/browser/download/byte_stream.h" |
| 10 #include "content/browser/download/download_create_info.h" | 10 #include "content/browser/download/download_create_info.h" |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 64 scoped_ptr<DownloadUrlParameters> params, DownloadId id) OVERRIDE { | 64 scoped_ptr<DownloadUrlParameters> params, DownloadId id) OVERRIDE { |
| 65 MockResumeInterruptedDownload(params.get(), id); | 65 MockResumeInterruptedDownload(params.get(), id); |
| 66 } | 66 } |
| 67 MOCK_METHOD2(MockResumeInterruptedDownload, | 67 MOCK_METHOD2(MockResumeInterruptedDownload, |
| 68 void(DownloadUrlParameters* params, DownloadId id)); | 68 void(DownloadUrlParameters* params, DownloadId id)); |
| 69 | 69 |
| 70 MOCK_CONST_METHOD0(GetBrowserContext, BrowserContext*()); | 70 MOCK_CONST_METHOD0(GetBrowserContext, BrowserContext*()); |
| 71 MOCK_METHOD1(UpdatePersistence, void(DownloadItemImpl*)); | 71 MOCK_METHOD1(UpdatePersistence, void(DownloadItemImpl*)); |
| 72 MOCK_METHOD1(DownloadOpened, void(DownloadItemImpl*)); | 72 MOCK_METHOD1(DownloadOpened, void(DownloadItemImpl*)); |
| 73 MOCK_METHOD1(DownloadRemoved, void(DownloadItemImpl*)); | 73 MOCK_METHOD1(DownloadRemoved, void(DownloadItemImpl*)); |
| 74 MOCK_METHOD1(ShowDownloadInBrowser, void(DownloadItemImpl*)); | |
| 75 MOCK_CONST_METHOD1(AssertStateConsistent, void(DownloadItemImpl*)); | 74 MOCK_CONST_METHOD1(AssertStateConsistent, void(DownloadItemImpl*)); |
| 76 | 75 |
| 77 void VerifyAndClearExpectations() { | 76 void VerifyAndClearExpectations() { |
| 78 ::testing::Mock::VerifyAndClearExpectations(this); | 77 ::testing::Mock::VerifyAndClearExpectations(this); |
| 79 SetDefaultExpectations(); | 78 SetDefaultExpectations(); |
| 80 } | 79 } |
| 81 | 80 |
| 82 private: | 81 private: |
| 83 void SetDefaultExpectations() { | 82 void SetDefaultExpectations() { |
| 84 EXPECT_CALL(*this, AssertStateConsistent(_)) | 83 EXPECT_CALL(*this, AssertStateConsistent(_)) |
| (...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 282 EXPECT_TRUE(item->GetTargetFilePath().empty()); | 281 EXPECT_TRUE(item->GetTargetFilePath().empty()); |
| 283 DownloadItemImplDelegate::DownloadTargetCallback callback; | 282 DownloadItemImplDelegate::DownloadTargetCallback callback; |
| 284 MockDownloadFile* download_file = | 283 MockDownloadFile* download_file = |
| 285 AddDownloadFileToDownloadItem(item, &callback); | 284 AddDownloadFileToDownloadItem(item, &callback); |
| 286 base::FilePath target_path(kDummyPath); | 285 base::FilePath target_path(kDummyPath); |
| 287 base::FilePath intermediate_path( | 286 base::FilePath intermediate_path( |
| 288 target_path.InsertBeforeExtensionASCII("x")); | 287 target_path.InsertBeforeExtensionASCII("x")); |
| 289 EXPECT_CALL(*download_file, RenameAndUniquify(intermediate_path, _)) | 288 EXPECT_CALL(*download_file, RenameAndUniquify(intermediate_path, _)) |
| 290 .WillOnce(ScheduleRenameCallback(DOWNLOAD_INTERRUPT_REASON_NONE, | 289 .WillOnce(ScheduleRenameCallback(DOWNLOAD_INTERRUPT_REASON_NONE, |
| 291 intermediate_path)); | 290 intermediate_path)); |
| 292 EXPECT_CALL(*mock_delegate(), ShowDownloadInBrowser(_)); | |
| 293 callback.Run(target_path, DownloadItem::TARGET_DISPOSITION_OVERWRITE, | 291 callback.Run(target_path, DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
| 294 DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, intermediate_path); | 292 DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, intermediate_path); |
| 295 RunAllPendingInMessageLoops(); | 293 RunAllPendingInMessageLoops(); |
| 296 return download_file; | 294 return download_file; |
| 297 } | 295 } |
| 298 | 296 |
| 299 // Cleanup a download item (specifically get rid of the DownloadFile on it). | 297 // Cleanup a download item (specifically get rid of the DownloadFile on it). |
| 300 // The item must be in the expected state. | 298 // The item must be in the expected state. |
| 301 void CleanupItem(DownloadItemImpl* item, | 299 void CleanupItem(DownloadItemImpl* item, |
| 302 MockDownloadFile* download_file, | 300 MockDownloadFile* download_file, |
| (...skipping 262 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 565 MockDownloadFile* download_file = | 563 MockDownloadFile* download_file = |
| 566 AddDownloadFileToDownloadItem(item, &callback); | 564 AddDownloadFileToDownloadItem(item, &callback); |
| 567 MockObserver observer(item); | 565 MockObserver observer(item); |
| 568 base::FilePath target_path(kDummyPath); | 566 base::FilePath target_path(kDummyPath); |
| 569 base::FilePath intermediate_path(target_path.InsertBeforeExtensionASCII("x")); | 567 base::FilePath intermediate_path(target_path.InsertBeforeExtensionASCII("x")); |
| 570 base::FilePath new_intermediate_path( | 568 base::FilePath new_intermediate_path( |
| 571 target_path.InsertBeforeExtensionASCII("y")); | 569 target_path.InsertBeforeExtensionASCII("y")); |
| 572 EXPECT_CALL(*download_file, RenameAndUniquify(intermediate_path, _)) | 570 EXPECT_CALL(*download_file, RenameAndUniquify(intermediate_path, _)) |
| 573 .WillOnce(ScheduleRenameCallback(DOWNLOAD_INTERRUPT_REASON_NONE, | 571 .WillOnce(ScheduleRenameCallback(DOWNLOAD_INTERRUPT_REASON_NONE, |
| 574 new_intermediate_path)); | 572 new_intermediate_path)); |
| 575 EXPECT_CALL(*mock_delegate(), ShowDownloadInBrowser(_)); | |
| 576 | 573 |
| 577 // Currently, a notification would be generated if the danger type is anything | 574 // Currently, a notification would be generated if the danger type is anything |
| 578 // other than NOT_DANGEROUS. | 575 // other than NOT_DANGEROUS. |
| 579 callback.Run(target_path, DownloadItem::TARGET_DISPOSITION_OVERWRITE, | 576 callback.Run(target_path, DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
| 580 DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, intermediate_path); | 577 DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, intermediate_path); |
| 581 EXPECT_FALSE(observer.CheckUpdated()); | 578 EXPECT_FALSE(observer.CheckUpdated()); |
| 582 RunAllPendingInMessageLoops(); | 579 RunAllPendingInMessageLoops(); |
| 583 EXPECT_TRUE(observer.CheckUpdated()); | 580 EXPECT_TRUE(observer.CheckUpdated()); |
| 584 EXPECT_EQ(new_intermediate_path, item->GetFullPath()); | 581 EXPECT_EQ(new_intermediate_path, item->GetFullPath()); |
| 585 | 582 |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 618 AddDownloadFileToDownloadItem(item, &callback); | 615 AddDownloadFileToDownloadItem(item, &callback); |
| 619 base::FilePath target_path(base::FilePath(kDummyPath).AppendASCII("foo.bar")); | 616 base::FilePath target_path(base::FilePath(kDummyPath).AppendASCII("foo.bar")); |
| 620 base::FilePath intermediate_path(target_path.InsertBeforeExtensionASCII("x")); | 617 base::FilePath intermediate_path(target_path.InsertBeforeExtensionASCII("x")); |
| 621 EXPECT_EQ(FILE_PATH_LITERAL(""), | 618 EXPECT_EQ(FILE_PATH_LITERAL(""), |
| 622 item->GetFileNameToReportUser().value()); | 619 item->GetFileNameToReportUser().value()); |
| 623 EXPECT_CALL(*download_file, RenameAndUniquify(_, _)) | 620 EXPECT_CALL(*download_file, RenameAndUniquify(_, _)) |
| 624 .WillOnce(ScheduleRenameCallback(DOWNLOAD_INTERRUPT_REASON_NONE, | 621 .WillOnce(ScheduleRenameCallback(DOWNLOAD_INTERRUPT_REASON_NONE, |
| 625 intermediate_path)); | 622 intermediate_path)); |
| 626 callback.Run(target_path, DownloadItem::TARGET_DISPOSITION_OVERWRITE, | 623 callback.Run(target_path, DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
| 627 DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, intermediate_path); | 624 DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, intermediate_path); |
| 628 EXPECT_CALL(*mock_delegate(), ShowDownloadInBrowser(_)); | |
| 629 RunAllPendingInMessageLoops(); | 625 RunAllPendingInMessageLoops(); |
| 630 EXPECT_EQ(FILE_PATH_LITERAL("foo.bar"), | 626 EXPECT_EQ(FILE_PATH_LITERAL("foo.bar"), |
| 631 item->GetFileNameToReportUser().value()); | 627 item->GetFileNameToReportUser().value()); |
| 632 item->SetDisplayName(base::FilePath(FILE_PATH_LITERAL("new.name"))); | 628 item->SetDisplayName(base::FilePath(FILE_PATH_LITERAL("new.name"))); |
| 633 EXPECT_EQ(FILE_PATH_LITERAL("new.name"), | 629 EXPECT_EQ(FILE_PATH_LITERAL("new.name"), |
| 634 item->GetFileNameToReportUser().value()); | 630 item->GetFileNameToReportUser().value()); |
| 635 CleanupItem(item, download_file, DownloadItem::IN_PROGRESS); | 631 CleanupItem(item, download_file, DownloadItem::IN_PROGRESS); |
| 636 } | 632 } |
| 637 | 633 |
| 638 // Test to make sure that Start method calls DF initialize properly. | 634 // Test to make sure that Start method calls DF initialize properly. |
| (...skipping 16 matching lines...) Expand all Loading... |
| 655 DownloadItemImplDelegate::DownloadTargetCallback callback; | 651 DownloadItemImplDelegate::DownloadTargetCallback callback; |
| 656 MockDownloadFile* download_file = | 652 MockDownloadFile* download_file = |
| 657 AddDownloadFileToDownloadItem(item, &callback); | 653 AddDownloadFileToDownloadItem(item, &callback); |
| 658 base::FilePath final_path(base::FilePath(kDummyPath).AppendASCII("foo.bar")); | 654 base::FilePath final_path(base::FilePath(kDummyPath).AppendASCII("foo.bar")); |
| 659 base::FilePath intermediate_path(final_path.InsertBeforeExtensionASCII("x")); | 655 base::FilePath intermediate_path(final_path.InsertBeforeExtensionASCII("x")); |
| 660 base::FilePath new_intermediate_path( | 656 base::FilePath new_intermediate_path( |
| 661 final_path.InsertBeforeExtensionASCII("y")); | 657 final_path.InsertBeforeExtensionASCII("y")); |
| 662 EXPECT_CALL(*download_file, RenameAndUniquify(intermediate_path, _)) | 658 EXPECT_CALL(*download_file, RenameAndUniquify(intermediate_path, _)) |
| 663 .WillOnce(ScheduleRenameCallback(DOWNLOAD_INTERRUPT_REASON_NONE, | 659 .WillOnce(ScheduleRenameCallback(DOWNLOAD_INTERRUPT_REASON_NONE, |
| 664 new_intermediate_path)); | 660 new_intermediate_path)); |
| 665 EXPECT_CALL(*mock_delegate(), ShowDownloadInBrowser(item)) | |
| 666 .Times(1); | |
| 667 | 661 |
| 668 callback.Run(final_path, DownloadItem::TARGET_DISPOSITION_OVERWRITE, | 662 callback.Run(final_path, DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
| 669 DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, intermediate_path); | 663 DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, intermediate_path); |
| 670 RunAllPendingInMessageLoops(); | 664 RunAllPendingInMessageLoops(); |
| 671 // All the callbacks should have happened by now. | 665 // All the callbacks should have happened by now. |
| 672 ::testing::Mock::VerifyAndClearExpectations(download_file); | 666 ::testing::Mock::VerifyAndClearExpectations(download_file); |
| 673 mock_delegate()->VerifyAndClearExpectations(); | 667 mock_delegate()->VerifyAndClearExpectations(); |
| 674 | 668 |
| 675 EXPECT_CALL(*mock_delegate(), ShouldCompleteDownload(item, _)) | 669 EXPECT_CALL(*mock_delegate(), ShouldCompleteDownload(item, _)) |
| 676 .WillOnce(Return(true)); | 670 .WillOnce(Return(true)); |
| (...skipping 16 matching lines...) Expand all Loading... |
| 693 AddDownloadFileToDownloadItem(item, &callback); | 687 AddDownloadFileToDownloadItem(item, &callback); |
| 694 base::FilePath final_path(base::FilePath(kDummyPath).AppendASCII("foo.bar")); | 688 base::FilePath final_path(base::FilePath(kDummyPath).AppendASCII("foo.bar")); |
| 695 base::FilePath intermediate_path(final_path.InsertBeforeExtensionASCII("x")); | 689 base::FilePath intermediate_path(final_path.InsertBeforeExtensionASCII("x")); |
| 696 base::FilePath new_intermediate_path( | 690 base::FilePath new_intermediate_path( |
| 697 final_path.InsertBeforeExtensionASCII("y")); | 691 final_path.InsertBeforeExtensionASCII("y")); |
| 698 EXPECT_CALL(*download_file, RenameAndUniquify(intermediate_path, _)) | 692 EXPECT_CALL(*download_file, RenameAndUniquify(intermediate_path, _)) |
| 699 .WillOnce(ScheduleRenameCallback(DOWNLOAD_INTERRUPT_REASON_FILE_FAILED, | 693 .WillOnce(ScheduleRenameCallback(DOWNLOAD_INTERRUPT_REASON_FILE_FAILED, |
| 700 new_intermediate_path)); | 694 new_intermediate_path)); |
| 701 EXPECT_CALL(*download_file, Cancel()) | 695 EXPECT_CALL(*download_file, Cancel()) |
| 702 .Times(1); | 696 .Times(1); |
| 703 EXPECT_CALL(*mock_delegate(), ShowDownloadInBrowser(item)) | |
| 704 .Times(1); | |
| 705 | 697 |
| 706 callback.Run(final_path, DownloadItem::TARGET_DISPOSITION_OVERWRITE, | 698 callback.Run(final_path, DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
| 707 DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, intermediate_path); | 699 DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, intermediate_path); |
| 708 RunAllPendingInMessageLoops(); | 700 RunAllPendingInMessageLoops(); |
| 709 // All the callbacks should have happened by now. | 701 // All the callbacks should have happened by now. |
| 710 ::testing::Mock::VerifyAndClearExpectations(download_file); | 702 ::testing::Mock::VerifyAndClearExpectations(download_file); |
| 711 mock_delegate()->VerifyAndClearExpectations(); | 703 mock_delegate()->VerifyAndClearExpectations(); |
| 712 } | 704 } |
| 713 | 705 |
| 714 TEST_F(DownloadItemTest, Interrupted) { | 706 TEST_F(DownloadItemTest, Interrupted) { |
| (...skipping 339 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1054 EXPECT_CALL(*download_file, Detach()); | 1046 EXPECT_CALL(*download_file, Detach()); |
| 1055 RunAllPendingInMessageLoops(); | 1047 RunAllPendingInMessageLoops(); |
| 1056 EXPECT_EQ(DownloadItem::COMPLETE, item->GetState()); | 1048 EXPECT_EQ(DownloadItem::COMPLETE, item->GetState()); |
| 1057 } | 1049 } |
| 1058 | 1050 |
| 1059 TEST(MockDownloadItem, Compiles) { | 1051 TEST(MockDownloadItem, Compiles) { |
| 1060 MockDownloadItem mock_item; | 1052 MockDownloadItem mock_item; |
| 1061 } | 1053 } |
| 1062 | 1054 |
| 1063 } // namespace content | 1055 } // namespace content |
| OLD | NEW |