Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(322)

Side by Side Diff: content/browser/download/download_manager_impl_unittest.cc

Issue 2453633006: [downloads] Move platform specific code out of DownloadTargetDeterminer. (Closed)
Patch Set: . Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 "content/browser/download/download_manager_impl.h" 5 #include "content/browser/download/download_manager_impl.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <memory> 10 #include <memory>
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
98 0, 98 0,
99 0, 99 0,
100 std::string(), 100 std::string(),
101 DownloadItem::COMPLETE, 101 DownloadItem::COMPLETE,
102 DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, 102 DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS,
103 DOWNLOAD_INTERRUPT_REASON_NONE, 103 DOWNLOAD_INTERRUPT_REASON_NONE,
104 false, 104 false,
105 net::NetLogWithSource()) {} 105 net::NetLogWithSource()) {}
106 virtual ~MockDownloadItemImpl() {} 106 virtual ~MockDownloadItemImpl() {}
107 107
108 MOCK_METHOD4(OnDownloadTargetDetermined, 108 MOCK_METHOD5(OnDownloadTargetDetermined,
109 void(const base::FilePath&, TargetDisposition, 109 void(const base::FilePath&,
110 DownloadDangerType, const base::FilePath&)); 110 TargetDisposition,
111 DownloadDangerType,
112 const base::FilePath&,
113 DownloadInterruptReason));
111 MOCK_METHOD1(AddObserver, void(DownloadItem::Observer*)); 114 MOCK_METHOD1(AddObserver, void(DownloadItem::Observer*));
112 MOCK_METHOD1(RemoveObserver, void(DownloadItem::Observer*)); 115 MOCK_METHOD1(RemoveObserver, void(DownloadItem::Observer*));
113 MOCK_METHOD0(UpdateObservers, void()); 116 MOCK_METHOD0(UpdateObservers, void());
114 MOCK_METHOD0(CanShowInFolder, bool()); 117 MOCK_METHOD0(CanShowInFolder, bool());
115 MOCK_METHOD0(CanOpenDownload, bool()); 118 MOCK_METHOD0(CanOpenDownload, bool());
116 MOCK_METHOD0(ShouldOpenFileBasedOnExtension, bool()); 119 MOCK_METHOD0(ShouldOpenFileBasedOnExtension, bool());
117 MOCK_METHOD0(OpenDownload, void()); 120 MOCK_METHOD0(OpenDownload, void());
118 MOCK_METHOD0(ShowDownloadInShell, void()); 121 MOCK_METHOD0(ShowDownloadInShell, void());
119 MOCK_METHOD0(ValidateDangerousDownload, void()); 122 MOCK_METHOD0(ValidateDangerousDownload, void());
120 MOCK_METHOD1(StealDangerousDownload, void(const AcquireFileCallback&)); 123 MOCK_METHOD1(StealDangerousDownload, void(const AcquireFileCallback&));
(...skipping 362 matching lines...) Expand 10 before | Expand all | Expand 10 after
483 486
484 } // namespace 487 } // namespace
485 488
486 class DownloadManagerTest : public testing::Test { 489 class DownloadManagerTest : public testing::Test {
487 public: 490 public:
488 static const char* kTestData; 491 static const char* kTestData;
489 static const size_t kTestDataLen; 492 static const size_t kTestDataLen;
490 493
491 DownloadManagerTest() 494 DownloadManagerTest()
492 : callback_called_(false), 495 : callback_called_(false),
496 target_disposition_(DownloadItem::TARGET_DISPOSITION_OVERWRITE),
497 danger_type_(DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS),
498 interrupt_reason_(DOWNLOAD_INTERRUPT_REASON_NONE),
493 ui_thread_(BrowserThread::UI, &message_loop_), 499 ui_thread_(BrowserThread::UI, &message_loop_),
494 file_thread_(BrowserThread::FILE, &message_loop_), 500 file_thread_(BrowserThread::FILE, &message_loop_),
495 next_download_id_(0) { 501 next_download_id_(0) {}
496 }
497 502
498 // We tear down everything in TearDown(). 503 // We tear down everything in TearDown().
499 ~DownloadManagerTest() override {} 504 ~DownloadManagerTest() override {}
500 505
501 // Create a MockDownloadItemFactory and MockDownloadManagerDelegate, 506 // Create a MockDownloadItemFactory and MockDownloadManagerDelegate,
502 // then create a DownloadManager that points 507 // then create a DownloadManager that points
503 // at all of those. 508 // at all of those.
504 void SetUp() override { 509 void SetUp() override {
505 DCHECK(!download_manager_); 510 DCHECK(!download_manager_);
506 511
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
589 } 594 }
590 595
591 MockDownloadManagerObserver& GetMockObserver() { 596 MockDownloadManagerObserver& GetMockObserver() {
592 return *observer_; 597 return *observer_;
593 } 598 }
594 599
595 void DownloadTargetDeterminedCallback( 600 void DownloadTargetDeterminedCallback(
596 const base::FilePath& target_path, 601 const base::FilePath& target_path,
597 DownloadItem::TargetDisposition disposition, 602 DownloadItem::TargetDisposition disposition,
598 DownloadDangerType danger_type, 603 DownloadDangerType danger_type,
599 const base::FilePath& intermediate_path) { 604 const base::FilePath& intermediate_path,
605 DownloadInterruptReason interrupt_reason) {
600 callback_called_ = true; 606 callback_called_ = true;
601 target_path_ = target_path; 607 target_path_ = target_path;
602 target_disposition_ = disposition; 608 target_disposition_ = disposition;
603 danger_type_ = danger_type; 609 danger_type_ = danger_type;
604 intermediate_path_ = intermediate_path; 610 intermediate_path_ = intermediate_path;
611 interrupt_reason_ = interrupt_reason;
605 } 612 }
606 613
607 void DetermineDownloadTarget(DownloadItemImpl* item) { 614 void DetermineDownloadTarget(DownloadItemImpl* item) {
608 download_manager_->DetermineDownloadTarget( 615 download_manager_->DetermineDownloadTarget(
609 item, base::Bind( 616 item, base::Bind(
610 &DownloadManagerTest::DownloadTargetDeterminedCallback, 617 &DownloadManagerTest::DownloadTargetDeterminedCallback,
611 base::Unretained(this))); 618 base::Unretained(this)));
612 } 619 }
613 620
614 protected: 621 protected:
615 // Key test variable; we'll keep it available to sub-classes. 622 // Key test variable; we'll keep it available to sub-classes.
616 std::unique_ptr<DownloadManagerImpl> download_manager_; 623 std::unique_ptr<DownloadManagerImpl> download_manager_;
617 base::WeakPtr<MockDownloadFileFactory> mock_download_file_factory_; 624 base::WeakPtr<MockDownloadFileFactory> mock_download_file_factory_;
618 625
619 // Target detetermined callback. 626 // Target detetermined callback.
620 bool callback_called_; 627 bool callback_called_;
621 base::FilePath target_path_; 628 base::FilePath target_path_;
622 DownloadItem::TargetDisposition target_disposition_; 629 DownloadItem::TargetDisposition target_disposition_;
623 DownloadDangerType danger_type_; 630 DownloadDangerType danger_type_;
624 base::FilePath intermediate_path_; 631 base::FilePath intermediate_path_;
632 DownloadInterruptReason interrupt_reason_;
625 633
626 std::vector<GURL> download_urls_; 634 std::vector<GURL> download_urls_;
627 635
628 private: 636 private:
629 base::MessageLoopForUI message_loop_; 637 base::MessageLoopForUI message_loop_;
630 TestBrowserThread ui_thread_; 638 TestBrowserThread ui_thread_;
631 TestBrowserThread file_thread_; 639 TestBrowserThread file_thread_;
632 base::WeakPtr<MockDownloadItemFactory> mock_download_item_factory_; 640 base::WeakPtr<MockDownloadItemFactory> mock_download_item_factory_;
633 std::unique_ptr<MockDownloadManagerDelegate> mock_download_manager_delegate_; 641 std::unique_ptr<MockDownloadManagerDelegate> mock_download_manager_delegate_;
634 std::unique_ptr<MockBrowserContext> mock_browser_context_; 642 std::unique_ptr<MockBrowserContext> mock_browser_context_;
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
688 MockDownloadItemImpl& item(AddItemToManager()); 696 MockDownloadItemImpl& item(AddItemToManager());
689 697
690 base::FilePath path(FILE_PATH_LITERAL("random_filepath.txt")); 698 base::FilePath path(FILE_PATH_LITERAL("random_filepath.txt"));
691 EXPECT_CALL(GetMockDownloadManagerDelegate(), 699 EXPECT_CALL(GetMockDownloadManagerDelegate(),
692 DetermineDownloadTarget(&item, _)) 700 DetermineDownloadTarget(&item, _))
693 .WillOnce(Return(false)); 701 .WillOnce(Return(false));
694 EXPECT_CALL(item, GetForcedFilePath()) 702 EXPECT_CALL(item, GetForcedFilePath())
695 .WillOnce(ReturnRef(path)); 703 .WillOnce(ReturnRef(path));
696 704
697 // Confirm that the callback was called with the right values in this case. 705 // Confirm that the callback was called with the right values in this case.
698 callback_called_ = false;
699 DetermineDownloadTarget(&item); 706 DetermineDownloadTarget(&item);
700 EXPECT_TRUE(callback_called_); 707 EXPECT_TRUE(callback_called_);
701 EXPECT_EQ(path, target_path_); 708 EXPECT_EQ(path, target_path_);
702 EXPECT_EQ(DownloadItem::TARGET_DISPOSITION_OVERWRITE, target_disposition_); 709 EXPECT_EQ(DownloadItem::TARGET_DISPOSITION_OVERWRITE, target_disposition_);
703 EXPECT_EQ(DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, danger_type_); 710 EXPECT_EQ(DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, danger_type_);
704 EXPECT_EQ(path, intermediate_path_); 711 EXPECT_EQ(path, intermediate_path_);
712 EXPECT_EQ(DOWNLOAD_INTERRUPT_REASON_NONE, interrupt_reason_);
705 } 713 }
706 714
707 // Confirm the DownloadManagerImpl::RemoveAllDownloads() functionality 715 // Confirm the DownloadManagerImpl::RemoveAllDownloads() functionality
708 TEST_F(DownloadManagerTest, RemoveAllDownloads) { 716 TEST_F(DownloadManagerTest, RemoveAllDownloads) {
709 base::Time now(base::Time::Now()); 717 base::Time now(base::Time::Now());
710 for (uint32_t i = 0; i < 4; ++i) { 718 for (uint32_t i = 0; i < 4; ++i) {
711 MockDownloadItemImpl& item(AddItemToManager()); 719 MockDownloadItemImpl& item(AddItemToManager());
712 EXPECT_EQ(i, item.GetId()); 720 EXPECT_EQ(i, item.GetId());
713 EXPECT_CALL(item, GetStartTime()) 721 EXPECT_CALL(item, GetStartTime())
714 .WillRepeatedly(Return(now)); 722 .WillRepeatedly(Return(now));
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
787 EXPECT_CALL(GetMockDownloadItem(1), Remove()).Times(0); 795 EXPECT_CALL(GetMockDownloadItem(1), Remove()).Times(0);
788 796
789 base::Callback<bool(const GURL&)> url_filter = 797 base::Callback<bool(const GURL&)> url_filter =
790 GetSingleURLFilter(download_urls_[0]); 798 GetSingleURLFilter(download_urls_[0]);
791 int remove_count = download_manager_->RemoveDownloadsByURLAndTime( 799 int remove_count = download_manager_->RemoveDownloadsByURLAndTime(
792 url_filter, base::Time(), base::Time::Max()); 800 url_filter, base::Time(), base::Time::Max());
793 EXPECT_EQ(remove_count, 1); 801 EXPECT_EQ(remove_count, 1);
794 } 802 }
795 803
796 } // namespace content 804 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698