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/files/scoped_temp_dir.h" | 10 #include "base/files/scoped_temp_dir.h" |
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
173 class MockDownloadManagerDelegate : public DownloadManagerDelegate { | 173 class MockDownloadManagerDelegate : public DownloadManagerDelegate { |
174 public: | 174 public: |
175 MockDownloadManagerDelegate(); | 175 MockDownloadManagerDelegate(); |
176 virtual ~MockDownloadManagerDelegate(); | 176 virtual ~MockDownloadManagerDelegate(); |
177 | 177 |
178 MOCK_METHOD0(Shutdown, void()); | 178 MOCK_METHOD0(Shutdown, void()); |
179 MOCK_METHOD0(GetNextId, DownloadId()); | 179 MOCK_METHOD0(GetNextId, DownloadId()); |
180 MOCK_METHOD2(DetermineDownloadTarget, | 180 MOCK_METHOD2(DetermineDownloadTarget, |
181 bool(DownloadItem* item, | 181 bool(DownloadItem* item, |
182 const DownloadTargetCallback&)); | 182 const DownloadTargetCallback&)); |
183 MOCK_METHOD0(GetAlternativeWebContentsToNotifyForDownload, WebContents*()); | |
184 MOCK_METHOD1(ShouldOpenFileBasedOnExtension, bool(const FilePath&)); | 183 MOCK_METHOD1(ShouldOpenFileBasedOnExtension, bool(const FilePath&)); |
185 MOCK_METHOD2(ShouldCompleteDownload, | 184 MOCK_METHOD2(ShouldCompleteDownload, |
186 bool(DownloadItem*, const base::Closure&)); | 185 bool(DownloadItem*, const base::Closure&)); |
187 MOCK_METHOD2(ShouldOpenDownload, | 186 MOCK_METHOD2(ShouldOpenDownload, |
188 bool(DownloadItem*, const DownloadOpenDelayedCallback&)); | 187 bool(DownloadItem*, const DownloadOpenDelayedCallback&)); |
189 MOCK_METHOD0(GenerateFileHash, bool()); | 188 MOCK_METHOD0(GenerateFileHash, bool()); |
190 MOCK_METHOD4(GetSaveDir, void(BrowserContext*, | 189 MOCK_METHOD4(GetSaveDir, void(BrowserContext*, |
191 FilePath*, FilePath*, bool*)); | 190 FilePath*, FilePath*, bool*)); |
192 MOCK_METHOD5(ChooseSavePath, void( | 191 MOCK_METHOD5(ChooseSavePath, void( |
193 WebContents*, const FilePath&, const FilePath::StringType&, | 192 WebContents*, const FilePath&, const FilePath::StringType&, |
(...skipping 346 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
540 intermediate_path_ = intermediate_path; | 539 intermediate_path_ = intermediate_path; |
541 } | 540 } |
542 | 541 |
543 void DetermineDownloadTarget(DownloadItemImpl* item) { | 542 void DetermineDownloadTarget(DownloadItemImpl* item) { |
544 download_manager_->DetermineDownloadTarget( | 543 download_manager_->DetermineDownloadTarget( |
545 item, base::Bind( | 544 item, base::Bind( |
546 &DownloadManagerTest::DownloadTargetDeterminedCallback, | 545 &DownloadManagerTest::DownloadTargetDeterminedCallback, |
547 base::Unretained(this))); | 546 base::Unretained(this))); |
548 } | 547 } |
549 | 548 |
550 void AddItemToHistory(MockDownloadItemImpl& item, int64 db_handle) { | |
551 // For DCHECK in AddDownloadItemToHistory. Don't want to use | |
552 // WillRepeatedly as it may have to return true after this. | |
553 if (DCHECK_IS_ON()) | |
554 // Null out ShowDownloadInBrowser | |
555 EXPECT_CALL(item, GetWebContents()) | |
556 .WillOnce(Return(static_cast<WebContents*>(NULL))); | |
557 EXPECT_CALL(GetMockDownloadManagerDelegate(), | |
558 GetAlternativeWebContentsToNotifyForDownload()) | |
559 .WillOnce(Return(static_cast<WebContents*>(NULL))); | |
560 | |
561 EXPECT_CALL(item, IsInProgress()) | |
562 .WillOnce(Return(true)); | |
563 } | |
564 | |
565 protected: | 549 protected: |
566 // Key test variable; we'll keep it available to sub-classes. | 550 // Key test variable; we'll keep it available to sub-classes. |
567 scoped_refptr<DownloadManagerImpl> download_manager_; | 551 scoped_refptr<DownloadManagerImpl> download_manager_; |
568 base::WeakPtr<MockDownloadFileFactory> mock_download_file_factory_; | 552 base::WeakPtr<MockDownloadFileFactory> mock_download_file_factory_; |
569 | 553 |
570 // Target detetermined callback. | 554 // Target detetermined callback. |
571 bool callback_called_; | 555 bool callback_called_; |
572 FilePath target_path_; | 556 FilePath target_path_; |
573 DownloadItem::TargetDisposition target_disposition_; | 557 DownloadItem::TargetDisposition target_disposition_; |
574 DownloadDangerType danger_type_; | 558 DownloadDangerType danger_type_; |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
644 callback_called_ = false; | 628 callback_called_ = false; |
645 DetermineDownloadTarget(&item); | 629 DetermineDownloadTarget(&item); |
646 EXPECT_TRUE(callback_called_); | 630 EXPECT_TRUE(callback_called_); |
647 EXPECT_EQ(path, target_path_); | 631 EXPECT_EQ(path, target_path_); |
648 EXPECT_EQ(DownloadItem::TARGET_DISPOSITION_OVERWRITE, target_disposition_); | 632 EXPECT_EQ(DownloadItem::TARGET_DISPOSITION_OVERWRITE, target_disposition_); |
649 EXPECT_EQ(DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, danger_type_); | 633 EXPECT_EQ(DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, danger_type_); |
650 EXPECT_EQ(path, intermediate_path_); | 634 EXPECT_EQ(path, intermediate_path_); |
651 } | 635 } |
652 | 636 |
653 } // namespace content | 637 } // namespace content |
OLD | NEW |