| 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 | 
|---|