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 |