| 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 <set> | 5 #include <set> |
| 6 #include <string> | 6 #include <string> |
| 7 | 7 |
| 8 #include "base/bind.h" | 8 #include "base/bind.h" |
| 9 #include "base/file_util.h" | 9 #include "base/file_util.h" |
| 10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 57 | 57 |
| 58 class MockDownloadItemImpl : public DownloadItemImpl { | 58 class MockDownloadItemImpl : public DownloadItemImpl { |
| 59 public: | 59 public: |
| 60 // Use history constructor for minimal base object. | 60 // Use history constructor for minimal base object. |
| 61 MockDownloadItemImpl(DownloadItemImplDelegate* delegate) | 61 MockDownloadItemImpl(DownloadItemImplDelegate* delegate) |
| 62 : DownloadItemImpl(delegate, content::DownloadId(), | 62 : DownloadItemImpl(delegate, content::DownloadId(), |
| 63 content::DownloadPersistentStoreInfo(), | 63 content::DownloadPersistentStoreInfo(), |
| 64 net::BoundNetLog()) {} | 64 net::BoundNetLog()) {} |
| 65 virtual ~MockDownloadItemImpl() {} | 65 virtual ~MockDownloadItemImpl() {} |
| 66 | 66 |
| 67 MOCK_METHOD4(OnDownloadTargetDetermined, |
| 68 void(const FilePath&, TargetDisposition, |
| 69 content::DownloadDangerType, const FilePath&)); |
| 67 MOCK_METHOD1(AddObserver, void(content::DownloadItem::Observer*)); | 70 MOCK_METHOD1(AddObserver, void(content::DownloadItem::Observer*)); |
| 68 MOCK_METHOD1(RemoveObserver, void(content::DownloadItem::Observer*)); | 71 MOCK_METHOD1(RemoveObserver, void(content::DownloadItem::Observer*)); |
| 69 MOCK_METHOD0(UpdateObservers, void()); | 72 MOCK_METHOD0(UpdateObservers, void()); |
| 70 MOCK_METHOD0(CanShowInFolder, bool()); | 73 MOCK_METHOD0(CanShowInFolder, bool()); |
| 71 MOCK_METHOD0(CanOpenDownload, bool()); | 74 MOCK_METHOD0(CanOpenDownload, bool()); |
| 72 MOCK_METHOD0(ShouldOpenFileBasedOnExtension, bool()); | 75 MOCK_METHOD0(ShouldOpenFileBasedOnExtension, bool()); |
| 73 MOCK_METHOD0(OpenDownload, void()); | 76 MOCK_METHOD0(OpenDownload, void()); |
| 74 MOCK_METHOD0(ShowDownloadInShell, void()); | 77 MOCK_METHOD0(ShowDownloadInShell, void()); |
| 75 MOCK_METHOD0(DangerousDownloadValidated, void()); | 78 MOCK_METHOD0(DangerousDownloadValidated, void()); |
| 76 MOCK_METHOD3(UpdateProgress, void(int64, int64, const std::string&)); | 79 MOCK_METHOD3(UpdateProgress, void(int64, int64, const std::string&)); |
| 77 MOCK_METHOD1(Cancel, void(bool)); | 80 MOCK_METHOD1(Cancel, void(bool)); |
| 78 MOCK_METHOD0(MarkAsComplete, void()); | 81 MOCK_METHOD0(MarkAsComplete, void()); |
| 79 MOCK_METHOD1(DelayedDownloadOpened, void(bool)); | 82 MOCK_METHOD1(DelayedDownloadOpened, void(bool)); |
| 80 MOCK_METHOD2(OnAllDataSaved, void(int64, const std::string&)); | 83 MOCK_METHOD2(OnAllDataSaved, void(int64, const std::string&)); |
| 81 MOCK_METHOD0(OnDownloadedFileRemoved, void()); | 84 MOCK_METHOD0(OnDownloadedFileRemoved, void()); |
| 82 MOCK_METHOD0(MaybeCompleteDownload, void()); | 85 MOCK_METHOD0(MaybeCompleteDownload, void()); |
| 83 MOCK_METHOD1(Interrupt, void(DownloadInterruptReason)); | 86 MOCK_METHOD1(Interrupt, void(DownloadInterruptReason)); |
| 84 MOCK_METHOD1(Delete, void(DeleteReason)); | 87 MOCK_METHOD1(Delete, void(DeleteReason)); |
| 85 MOCK_METHOD0(Remove, void()); | 88 MOCK_METHOD0(Remove, void()); |
| 86 MOCK_CONST_METHOD1(TimeRemaining, bool(base::TimeDelta*)); | 89 MOCK_CONST_METHOD1(TimeRemaining, bool(base::TimeDelta*)); |
| 87 MOCK_CONST_METHOD0(CurrentSpeed, int64()); | 90 MOCK_CONST_METHOD0(CurrentSpeed, int64()); |
| 88 MOCK_CONST_METHOD0(PercentComplete, int()); | 91 MOCK_CONST_METHOD0(PercentComplete, int()); |
| 89 MOCK_CONST_METHOD0(AllDataSaved, bool()); | 92 MOCK_CONST_METHOD0(AllDataSaved, bool()); |
| 90 MOCK_METHOD0(TogglePause, void()); | 93 MOCK_METHOD0(TogglePause, void()); |
| 91 MOCK_METHOD1(OnDownloadCompleting, void(DownloadFileManager*)); | 94 MOCK_METHOD0(OnDownloadCompleting, void()); |
| 92 MOCK_CONST_METHOD1(MatchesQuery, bool(const string16& query)); | 95 MOCK_CONST_METHOD1(MatchesQuery, bool(const string16& query)); |
| 93 MOCK_CONST_METHOD0(IsPartialDownload, bool()); | 96 MOCK_CONST_METHOD0(IsPartialDownload, bool()); |
| 94 MOCK_CONST_METHOD0(IsInProgress, bool()); | 97 MOCK_CONST_METHOD0(IsInProgress, bool()); |
| 95 MOCK_CONST_METHOD0(IsCancelled, bool()); | 98 MOCK_CONST_METHOD0(IsCancelled, bool()); |
| 96 MOCK_CONST_METHOD0(IsInterrupted, bool()); | 99 MOCK_CONST_METHOD0(IsInterrupted, bool()); |
| 97 MOCK_CONST_METHOD0(IsComplete, bool()); | 100 MOCK_CONST_METHOD0(IsComplete, bool()); |
| 98 MOCK_CONST_METHOD0(GetFullPath, const FilePath&()); | 101 MOCK_CONST_METHOD0(GetFullPath, const FilePath&()); |
| 99 MOCK_CONST_METHOD0(GetTargetFilePath, const FilePath&()); | 102 MOCK_CONST_METHOD0(GetTargetFilePath, const FilePath&()); |
| 100 MOCK_CONST_METHOD0(GetTargetDisposition, TargetDisposition()); | 103 MOCK_CONST_METHOD0(GetTargetDisposition, TargetDisposition()); |
| 101 MOCK_METHOD3(OnTargetPathDetermined, void(const FilePath&, | |
| 102 TargetDisposition, | |
| 103 content::DownloadDangerType)); | |
| 104 MOCK_METHOD1(OnTargetPathSelected, void(const FilePath&)); | |
| 105 MOCK_METHOD1(OnContentCheckCompleted, void(content::DownloadDangerType)); | 104 MOCK_METHOD1(OnContentCheckCompleted, void(content::DownloadDangerType)); |
| 106 MOCK_METHOD2(OnIntermediatePathDetermined, void(DownloadFileManager*, | |
| 107 const FilePath&)); | |
| 108 MOCK_CONST_METHOD0(GetState, DownloadState()); | 105 MOCK_CONST_METHOD0(GetState, DownloadState()); |
| 109 MOCK_CONST_METHOD0(GetUrlChain, const std::vector<GURL>&()); | 106 MOCK_CONST_METHOD0(GetUrlChain, const std::vector<GURL>&()); |
| 110 MOCK_METHOD1(SetTotalBytes, void(int64)); | 107 MOCK_METHOD1(SetTotalBytes, void(int64)); |
| 111 MOCK_CONST_METHOD0(GetURL, const GURL&()); | 108 MOCK_CONST_METHOD0(GetURL, const GURL&()); |
| 112 MOCK_CONST_METHOD0(GetOriginalUrl, const GURL&()); | 109 MOCK_CONST_METHOD0(GetOriginalUrl, const GURL&()); |
| 113 MOCK_CONST_METHOD0(GetReferrerUrl, const GURL&()); | 110 MOCK_CONST_METHOD0(GetReferrerUrl, const GURL&()); |
| 114 MOCK_CONST_METHOD0(GetSuggestedFilename, std::string()); | 111 MOCK_CONST_METHOD0(GetSuggestedFilename, std::string()); |
| 115 MOCK_CONST_METHOD0(GetContentDisposition, std::string()); | 112 MOCK_CONST_METHOD0(GetContentDisposition, std::string()); |
| 116 MOCK_CONST_METHOD0(GetMimeType, std::string()); | 113 MOCK_CONST_METHOD0(GetMimeType, std::string()); |
| 117 MOCK_CONST_METHOD0(GetOriginalMimeType, std::string()); | 114 MOCK_CONST_METHOD0(GetOriginalMimeType, std::string()); |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 150 MOCK_CONST_METHOD0(GetLastModifiedTime, const std::string&()); | 147 MOCK_CONST_METHOD0(GetLastModifiedTime, const std::string&()); |
| 151 MOCK_CONST_METHOD0(GetETag, const std::string&()); | 148 MOCK_CONST_METHOD0(GetETag, const std::string&()); |
| 152 MOCK_CONST_METHOD0(GetLastReason, DownloadInterruptReason()); | 149 MOCK_CONST_METHOD0(GetLastReason, DownloadInterruptReason()); |
| 153 MOCK_CONST_METHOD0(GetPersistentStoreInfo, | 150 MOCK_CONST_METHOD0(GetPersistentStoreInfo, |
| 154 content::DownloadPersistentStoreInfo()); | 151 content::DownloadPersistentStoreInfo()); |
| 155 MOCK_CONST_METHOD0(GetBrowserContext, content::BrowserContext*()); | 152 MOCK_CONST_METHOD0(GetBrowserContext, content::BrowserContext*()); |
| 156 MOCK_CONST_METHOD0(GetWebContents, content::WebContents*()); | 153 MOCK_CONST_METHOD0(GetWebContents, content::WebContents*()); |
| 157 MOCK_CONST_METHOD0(GetFileNameToReportUser, FilePath()); | 154 MOCK_CONST_METHOD0(GetFileNameToReportUser, FilePath()); |
| 158 MOCK_METHOD1(SetDisplayName, void(const FilePath&)); | 155 MOCK_METHOD1(SetDisplayName, void(const FilePath&)); |
| 159 MOCK_CONST_METHOD0(GetUserVerifiedFilePath, FilePath()); | 156 MOCK_CONST_METHOD0(GetUserVerifiedFilePath, FilePath()); |
| 160 MOCK_METHOD1(OffThreadCancel, void(DownloadFileManager* file_manager)); | 157 MOCK_METHOD0(OffThreadCancel, void()); |
| 161 MOCK_CONST_METHOD1(DebugString, std::string(bool)); | 158 MOCK_CONST_METHOD1(DebugString, std::string(bool)); |
| 162 MOCK_METHOD0(MockDownloadOpenForTesting, void()); | 159 MOCK_METHOD0(MockDownloadOpenForTesting, void()); |
| 163 MOCK_METHOD1(GetExternalData, ExternalData*(const void*)); | 160 MOCK_METHOD1(GetExternalData, ExternalData*(const void*)); |
| 164 MOCK_CONST_METHOD1(GetExternalData, const ExternalData*(const void*)); | 161 MOCK_CONST_METHOD1(GetExternalData, const ExternalData*(const void*)); |
| 165 MOCK_METHOD2(SetExternalData, void(const void*, ExternalData*)); | 162 MOCK_METHOD2(SetExternalData, void(const void*, ExternalData*)); |
| 166 }; | 163 }; |
| 167 | 164 |
| 168 class MockDownloadManagerDelegate : public content::DownloadManagerDelegate { | 165 class MockDownloadManagerDelegate : public content::DownloadManagerDelegate { |
| 169 public: | 166 public: |
| 170 MockDownloadManagerDelegate(); | 167 MockDownloadManagerDelegate(); |
| 171 virtual ~MockDownloadManagerDelegate(); | 168 virtual ~MockDownloadManagerDelegate(); |
| 172 | 169 |
| 173 MOCK_METHOD0(Shutdown, void()); | 170 MOCK_METHOD0(Shutdown, void()); |
| 174 MOCK_METHOD0(GetNextId, content::DownloadId()); | 171 MOCK_METHOD0(GetNextId, content::DownloadId()); |
| 175 MOCK_METHOD1(ShouldStartDownload, bool(int32)); | 172 MOCK_METHOD2(DetermineDownloadTarget, |
| 176 MOCK_METHOD1(ChooseDownloadPath, void(DownloadItem*)); | 173 bool(DownloadItem* item, |
| 177 MOCK_METHOD1(GetIntermediatePath, FilePath(const DownloadItem&)); | 174 const content::DownloadTargetCallback&)); |
| 178 MOCK_METHOD0(GetAlternativeWebContentsToNotifyForDownload, WebContents*()); | 175 MOCK_METHOD0(GetAlternativeWebContentsToNotifyForDownload, WebContents*()); |
| 179 MOCK_METHOD1(ShouldOpenFileBasedOnExtension, bool(const FilePath&)); | 176 MOCK_METHOD1(ShouldOpenFileBasedOnExtension, bool(const FilePath&)); |
| 180 MOCK_METHOD2(ShouldCompleteDownload, bool( | 177 MOCK_METHOD2(ShouldCompleteDownload, bool( |
| 181 DownloadItem*, const base::Closure&)); | 178 DownloadItem*, const base::Closure&)); |
| 182 MOCK_METHOD1(ShouldOpenDownload, bool(DownloadItem*)); | 179 MOCK_METHOD1(ShouldOpenDownload, bool(DownloadItem*)); |
| 183 MOCK_METHOD0(GenerateFileHash, bool()); | 180 MOCK_METHOD0(GenerateFileHash, bool()); |
| 184 MOCK_METHOD1(AddItemToPersistentStore, void(DownloadItem*)); | 181 MOCK_METHOD1(AddItemToPersistentStore, void(DownloadItem*)); |
| 185 MOCK_METHOD1(UpdateItemInPersistentStore, void(DownloadItem*)); | 182 MOCK_METHOD1(UpdateItemInPersistentStore, void(DownloadItem*)); |
| 186 MOCK_METHOD2(UpdatePathForItemInPersistentStore, | 183 MOCK_METHOD2(UpdatePathForItemInPersistentStore, |
| 187 void(DownloadItem*, const FilePath&)); | 184 void(DownloadItem*, const FilePath&)); |
| (...skipping 400 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 588 EXPECT_CALL(GetMockDownloadManagerDelegate(), GenerateFileHash()) | 585 EXPECT_CALL(GetMockDownloadManagerDelegate(), GenerateFileHash()) |
| 589 .WillOnce(Return(true)); | 586 .WillOnce(Return(true)); |
| 590 EXPECT_CALL(GetMockDownloadFileManager(), MockCreateDownloadFile( | 587 EXPECT_CALL(GetMockDownloadFileManager(), MockCreateDownloadFile( |
| 591 info.get(), static_cast<content::ByteStreamReader*>(NULL), | 588 info.get(), static_cast<content::ByteStreamReader*>(NULL), |
| 592 download_manager_.get(), true, _, _)); | 589 download_manager_.get(), true, _, _)); |
| 593 | 590 |
| 594 download_manager_->StartDownload(info.Pass(), stream.Pass()); | 591 download_manager_->StartDownload(info.Pass(), stream.Pass()); |
| 595 EXPECT_TRUE(download_manager_->GetActiveDownloadItem(local_id)); | 592 EXPECT_TRUE(download_manager_->GetActiveDownloadItem(local_id)); |
| 596 } | 593 } |
| 597 | 594 |
| 598 // Does the DownloadManager prompt when requested? | |
| 599 TEST_F(DownloadManagerTest, RestartDownload) { | |
| 600 EXPECT_CALL(GetMockObserver(), OnDownloadCreated(download_manager_.get(), _)) | |
| 601 .WillOnce(Return()); | |
| 602 EXPECT_CALL(GetMockObserver(), SelectFileDialogDisplayed( | |
| 603 download_manager_.get(), 0)).WillOnce(Return()); | |
| 604 // Put a mock we have a handle to on the download manager. | |
| 605 MockDownloadItemImpl& item(AddItemToManager()); | |
| 606 int download_id = item.GetId(); | |
| 607 | |
| 608 // Confirm we're internally consistent. | |
| 609 EXPECT_EQ(&item, download_manager_->GetActiveDownloadItem(download_id)); | |
| 610 | |
| 611 ScopedTempDir download_dir; | |
| 612 ASSERT_TRUE(download_dir.CreateUniqueTempDir()); | |
| 613 FilePath expected_path(download_dir.path().Append( | |
| 614 FILE_PATH_LITERAL("location"))); | |
| 615 | |
| 616 EXPECT_CALL(item, GetTargetDisposition()) | |
| 617 .WillOnce(Return(DownloadItem::TARGET_DISPOSITION_PROMPT)); | |
| 618 EXPECT_CALL(GetMockDownloadManagerDelegate(), ChooseDownloadPath(&item)); | |
| 619 download_manager_->RestartDownload(download_id); | |
| 620 | |
| 621 // The alternative pathway goes straight to OnTargetPathAvailable, | |
| 622 // so it more naturally belongs below. | |
| 623 } | |
| 624 | |
| 625 // Do the results of GetIntermediatePath get passed through to the | |
| 626 // download? Note that this path is tested from RestartDownload | |
| 627 // to test the non-prompting path in RestartDownload as well. | |
| 628 TEST_F(DownloadManagerTest, OnTargetPathAvailable) { | |
| 629 EXPECT_CALL(GetMockObserver(), OnDownloadCreated(download_manager_.get(), _)) | |
| 630 .WillOnce(Return()); | |
| 631 // Put a mock we have a handle to on the download manager. | |
| 632 MockDownloadItemImpl& item(AddItemToManager()); | |
| 633 | |
| 634 ScopedTempDir download_dir; | |
| 635 ASSERT_TRUE(download_dir.CreateUniqueTempDir()); | |
| 636 FilePath target_path(download_dir.path().Append( | |
| 637 FILE_PATH_LITERAL("location"))); | |
| 638 FilePath intermediate_path(download_dir.path().Append( | |
| 639 FILE_PATH_LITERAL("location.crdownload"))); | |
| 640 | |
| 641 EXPECT_CALL(item, GetTargetDisposition()) | |
| 642 .WillOnce(Return(DownloadItem::TARGET_DISPOSITION_OVERWRITE)); | |
| 643 EXPECT_CALL(GetMockDownloadManagerDelegate(), | |
| 644 GetIntermediatePath(Ref(item))) | |
| 645 .WillOnce(Return(intermediate_path)); | |
| 646 // Finesse DCHECK with WillRepeatedly. | |
| 647 EXPECT_CALL(item, GetTargetFilePath()) | |
| 648 .WillRepeatedly(ReturnRef(target_path)); | |
| 649 EXPECT_CALL(item, OnIntermediatePathDetermined( | |
| 650 &GetMockDownloadFileManager(), intermediate_path)); | |
| 651 download_manager_->RestartDownload(item.GetId()); | |
| 652 } | |
| 653 | |
| 654 // Do the results of an OnDownloadInterrupted get passed through properly | 595 // Do the results of an OnDownloadInterrupted get passed through properly |
| 655 // to the DownloadItem? | 596 // to the DownloadItem? |
| 656 TEST_F(DownloadManagerTest, OnDownloadInterrupted) { | 597 TEST_F(DownloadManagerTest, OnDownloadInterrupted) { |
| 657 EXPECT_CALL(GetMockObserver(), OnDownloadCreated(download_manager_.get(), _)) | 598 EXPECT_CALL(GetMockObserver(), OnDownloadCreated(download_manager_.get(), _)) |
| 658 .WillOnce(Return()); | 599 .WillOnce(Return()); |
| 659 // Put a mock we have a handle to on the download manager. | 600 // Put a mock we have a handle to on the download manager. |
| 660 MockDownloadItemImpl& item(AddItemToManager()); | 601 MockDownloadItemImpl& item(AddItemToManager()); |
| 661 int download_id = item.GetId(); | 602 int download_id = item.GetId(); |
| 662 | 603 |
| 663 content::DownloadInterruptReason reason( | 604 content::DownloadInterruptReason reason( |
| (...skipping 12 matching lines...) Expand all Loading... |
| 676 // Put a mock we have a handle to on the download manager. | 617 // Put a mock we have a handle to on the download manager. |
| 677 MockDownloadItemImpl& item(AddItemToManager()); | 618 MockDownloadItemImpl& item(AddItemToManager()); |
| 678 | 619 |
| 679 EXPECT_CALL(item, IsPersisted()) | 620 EXPECT_CALL(item, IsPersisted()) |
| 680 .WillRepeatedly(Return(false)); | 621 .WillRepeatedly(Return(false)); |
| 681 EXPECT_CALL(item, GetState()) | 622 EXPECT_CALL(item, GetState()) |
| 682 .WillRepeatedly(Return(DownloadItem::CANCELLED)); | 623 .WillRepeatedly(Return(DownloadItem::CANCELLED)); |
| 683 EXPECT_CALL(item, GetDbHandle()) | 624 EXPECT_CALL(item, GetDbHandle()) |
| 684 .WillRepeatedly(Return(DownloadItem::kUninitializedHandle)); | 625 .WillRepeatedly(Return(DownloadItem::kUninitializedHandle)); |
| 685 | 626 |
| 686 EXPECT_CALL(item, OffThreadCancel(&GetMockDownloadFileManager())); | 627 EXPECT_CALL(item, OffThreadCancel()); |
| 687 DownloadStopped(&item); | 628 DownloadStopped(&item); |
| 688 // TODO(rdsmith): Confirm that the download item is no longer on the | 629 // TODO(rdsmith): Confirm that the download item is no longer on the |
| 689 // active list by calling download_manager_->GetActiveDownloadItem(id). | 630 // active list by calling download_manager_->GetActiveDownloadItem(id). |
| 690 // Currently, the item is left on the active list for rendez-vous with | 631 // Currently, the item is left on the active list for rendez-vous with |
| 691 // the history system :-{. | 632 // the history system :-{. |
| 692 } | 633 } |
| 693 | 634 |
| 694 // Does DownloadStopped remove Download from appropriate queues? | 635 // Does DownloadStopped remove Download from appropriate queues? |
| 695 // This test tests persisted downloads. | 636 // This test tests persisted downloads. |
| 696 TEST_F(DownloadManagerTest, OnDownloadStopped_Persisted) { | 637 TEST_F(DownloadManagerTest, OnDownloadStopped_Persisted) { |
| (...skipping 11 matching lines...) Expand all Loading... |
| 708 | 649 |
| 709 EXPECT_CALL(item, IsPersisted()) | 650 EXPECT_CALL(item, IsPersisted()) |
| 710 .WillRepeatedly(Return(true)); | 651 .WillRepeatedly(Return(true)); |
| 711 EXPECT_CALL(GetMockDownloadManagerDelegate(), | 652 EXPECT_CALL(GetMockDownloadManagerDelegate(), |
| 712 UpdateItemInPersistentStore(&item)); | 653 UpdateItemInPersistentStore(&item)); |
| 713 EXPECT_CALL(item, GetState()) | 654 EXPECT_CALL(item, GetState()) |
| 714 .WillRepeatedly(Return(DownloadItem::CANCELLED)); | 655 .WillRepeatedly(Return(DownloadItem::CANCELLED)); |
| 715 EXPECT_CALL(item, GetDbHandle()) | 656 EXPECT_CALL(item, GetDbHandle()) |
| 716 .WillRepeatedly(Return(db_handle)); | 657 .WillRepeatedly(Return(db_handle)); |
| 717 | 658 |
| 718 EXPECT_CALL(item, OffThreadCancel(&GetMockDownloadFileManager())); | 659 EXPECT_CALL(item, OffThreadCancel()); |
| 719 DownloadStopped(&item); | 660 DownloadStopped(&item); |
| 720 EXPECT_EQ(NULL, download_manager_->GetActiveDownloadItem(download_id)); | 661 EXPECT_EQ(NULL, download_manager_->GetActiveDownloadItem(download_id)); |
| 721 } | 662 } |
| OLD | NEW |