OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "chrome/browser/download/download_ui_controller.h" | 5 #include "chrome/browser/download/download_ui_controller.h" |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 #include <utility> | 8 #include <utility> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
11 #include "base/callback.h" | 11 #include "base/callback.h" |
12 #include "base/files/file_path.h" | 12 #include "base/files/file_path.h" |
13 #include "base/memory/ptr_util.h" | 13 #include "base/memory/ptr_util.h" |
14 #include "base/memory/ref_counted.h" | 14 #include "base/memory/ref_counted.h" |
15 #include "base/memory/weak_ptr.h" | 15 #include "base/memory/weak_ptr.h" |
16 #include "base/observer_list.h" | 16 #include "base/observer_list.h" |
| 17 #include "chrome/browser/download/download_core_service_factory.h" |
| 18 #include "chrome/browser/download/download_core_service_impl.h" |
17 #include "chrome/browser/download/download_history.h" | 19 #include "chrome/browser/download/download_history.h" |
18 #include "chrome/browser/download/download_service_factory.h" | |
19 #include "chrome/browser/download/download_service_impl.h" | |
20 #include "chrome/browser/profiles/profile.h" | 20 #include "chrome/browser/profiles/profile.h" |
21 #include "chrome/test/base/chrome_render_view_host_test_harness.h" | 21 #include "chrome/test/base/chrome_render_view_host_test_harness.h" |
22 #include "components/history/core/browser/download_row.h" | 22 #include "components/history/core/browser/download_row.h" |
23 #include "content/public/test/mock_download_item.h" | 23 #include "content/public/test/mock_download_item.h" |
24 #include "content/public/test/mock_download_manager.h" | 24 #include "content/public/test/mock_download_manager.h" |
25 #include "testing/gmock/include/gmock/gmock.h" | 25 #include "testing/gmock/include/gmock/gmock.h" |
26 #include "testing/gmock_mutant.h" | 26 #include "testing/gmock_mutant.h" |
27 #include "testing/gtest/include/gtest/gtest.h" | 27 #include "testing/gtest/include/gtest/gtest.h" |
28 | 28 |
29 using content::MockDownloadItem; | 29 using content::MockDownloadItem; |
(...skipping 24 matching lines...) Expand all Loading... |
54 | 54 |
55 TestDelegate::TestDelegate(base::WeakPtr<content::DownloadItem*> receiver) | 55 TestDelegate::TestDelegate(base::WeakPtr<content::DownloadItem*> receiver) |
56 : receiver_(receiver) { | 56 : receiver_(receiver) { |
57 } | 57 } |
58 | 58 |
59 void TestDelegate::OnNewDownloadReady(content::DownloadItem* item) { | 59 void TestDelegate::OnNewDownloadReady(content::DownloadItem* item) { |
60 if (receiver_.get()) | 60 if (receiver_.get()) |
61 *receiver_ = item; | 61 *receiver_ = item; |
62 } | 62 } |
63 | 63 |
64 // A DownloadService that returns a custom DownloadHistory. | 64 // A DownloadCoreService that returns a custom DownloadHistory. |
65 class TestDownloadService : public DownloadServiceImpl { | 65 class TestDownloadCoreService : public DownloadCoreServiceImpl { |
66 public: | 66 public: |
67 explicit TestDownloadService(Profile* profile); | 67 explicit TestDownloadCoreService(Profile* profile); |
68 ~TestDownloadService() override; | 68 ~TestDownloadCoreService() override; |
69 | 69 |
70 void set_download_history(std::unique_ptr<DownloadHistory> download_history) { | 70 void set_download_history(std::unique_ptr<DownloadHistory> download_history) { |
71 download_history_.swap(download_history); | 71 download_history_.swap(download_history); |
72 } | 72 } |
73 DownloadHistory* GetDownloadHistory() override; | 73 DownloadHistory* GetDownloadHistory() override; |
74 | 74 |
75 private: | 75 private: |
76 std::unique_ptr<DownloadHistory> download_history_; | 76 std::unique_ptr<DownloadHistory> download_history_; |
77 }; | 77 }; |
78 | 78 |
79 TestDownloadService::TestDownloadService(Profile* profile) | 79 TestDownloadCoreService::TestDownloadCoreService(Profile* profile) |
80 : DownloadServiceImpl(profile) { | 80 : DownloadCoreServiceImpl(profile) {} |
81 } | |
82 | 81 |
83 TestDownloadService::~TestDownloadService() { | 82 TestDownloadCoreService::~TestDownloadCoreService() {} |
84 } | |
85 | 83 |
86 DownloadHistory* TestDownloadService::GetDownloadHistory() { | 84 DownloadHistory* TestDownloadCoreService::GetDownloadHistory() { |
87 return download_history_.get(); | 85 return download_history_.get(); |
88 } | 86 } |
89 | 87 |
90 // The test fixture: | 88 // The test fixture: |
91 class DownloadUIControllerTest : public ChromeRenderViewHostTestHarness { | 89 class DownloadUIControllerTest : public ChromeRenderViewHostTestHarness { |
92 public: | 90 public: |
93 DownloadUIControllerTest(); | 91 DownloadUIControllerTest(); |
94 | 92 |
95 protected: | 93 protected: |
96 // testing::Test | 94 // testing::Test |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
133 HistoryAdapter() : DownloadHistory::HistoryAdapter(NULL) {} | 131 HistoryAdapter() : DownloadHistory::HistoryAdapter(NULL) {} |
134 HistoryService::DownloadQueryCallback download_query_callback_; | 132 HistoryService::DownloadQueryCallback download_query_callback_; |
135 | 133 |
136 private: | 134 private: |
137 void QueryDownloads( | 135 void QueryDownloads( |
138 const HistoryService::DownloadQueryCallback& callback) override { | 136 const HistoryService::DownloadQueryCallback& callback) override { |
139 download_query_callback_ = callback; | 137 download_query_callback_ = callback; |
140 } | 138 } |
141 }; | 139 }; |
142 | 140 |
143 // Constructs and returns a TestDownloadService. | 141 // Constructs and returns a TestDownloadCoreService. |
144 static std::unique_ptr<KeyedService> TestingDownloadServiceFactory( | 142 static std::unique_ptr<KeyedService> TestingDownloadCoreServiceFactory( |
145 content::BrowserContext* browser_context); | 143 content::BrowserContext* browser_context); |
146 | 144 |
147 std::unique_ptr<MockDownloadManager> manager_; | 145 std::unique_ptr<MockDownloadManager> manager_; |
148 content::DownloadManager::Observer* download_history_manager_observer_; | 146 content::DownloadManager::Observer* download_history_manager_observer_; |
149 content::DownloadManager::Observer* manager_observer_; | 147 content::DownloadManager::Observer* manager_observer_; |
150 content::DownloadItem* notified_item_; | 148 content::DownloadItem* notified_item_; |
151 base::WeakPtrFactory<content::DownloadItem*> notified_item_receiver_factory_; | 149 base::WeakPtrFactory<content::DownloadItem*> notified_item_receiver_factory_; |
152 | 150 |
153 HistoryAdapter* history_adapter_; | 151 HistoryAdapter* history_adapter_; |
154 }; | 152 }; |
155 | 153 |
156 // static | 154 // static |
157 std::unique_ptr<KeyedService> | 155 std::unique_ptr<KeyedService> |
158 DownloadUIControllerTest::TestingDownloadServiceFactory( | 156 DownloadUIControllerTest::TestingDownloadCoreServiceFactory( |
159 content::BrowserContext* browser_context) { | 157 content::BrowserContext* browser_context) { |
160 return base::MakeUnique<TestDownloadService>( | 158 return base::MakeUnique<TestDownloadCoreService>( |
161 Profile::FromBrowserContext(browser_context)); | 159 Profile::FromBrowserContext(browser_context)); |
162 } | 160 } |
163 | 161 |
164 DownloadUIControllerTest::DownloadUIControllerTest() | 162 DownloadUIControllerTest::DownloadUIControllerTest() |
165 : download_history_manager_observer_(NULL), | 163 : download_history_manager_observer_(NULL), |
166 manager_observer_(NULL), | 164 manager_observer_(NULL), |
167 notified_item_(NULL), | 165 notified_item_(NULL), |
168 notified_item_receiver_factory_(¬ified_item_) { | 166 notified_item_receiver_factory_(¬ified_item_) { |
169 } | 167 } |
170 | 168 |
(...skipping 17 matching lines...) Expand all Loading... |
188 new DownloadHistory(manager_.get(), std::move(history_adapter))); | 186 new DownloadHistory(manager_.get(), std::move(history_adapter))); |
189 ASSERT_TRUE(download_history_manager_observer_); | 187 ASSERT_TRUE(download_history_manager_observer_); |
190 | 188 |
191 EXPECT_CALL(*manager_, AddObserver(_)) | 189 EXPECT_CALL(*manager_, AddObserver(_)) |
192 .WillOnce(SaveArg<0>(&manager_observer_)); | 190 .WillOnce(SaveArg<0>(&manager_observer_)); |
193 EXPECT_CALL(*manager_, | 191 EXPECT_CALL(*manager_, |
194 RemoveObserver(testing::Eq(testing::ByRef(manager_observer_)))) | 192 RemoveObserver(testing::Eq(testing::ByRef(manager_observer_)))) |
195 .WillOnce(testing::Assign( | 193 .WillOnce(testing::Assign( |
196 &manager_observer_, | 194 &manager_observer_, |
197 static_cast<content::DownloadManager::Observer*>(NULL))); | 195 static_cast<content::DownloadManager::Observer*>(NULL))); |
198 TestDownloadService* download_service = static_cast<TestDownloadService*>( | 196 TestDownloadCoreService* download_core_service = |
199 DownloadServiceFactory::GetInstance()->SetTestingFactoryAndUse( | 197 static_cast<TestDownloadCoreService*>( |
200 browser_context(), &TestingDownloadServiceFactory)); | 198 DownloadCoreServiceFactory::GetInstance()->SetTestingFactoryAndUse( |
201 ASSERT_TRUE(download_service); | 199 browser_context(), &TestingDownloadCoreServiceFactory)); |
202 download_service->set_download_history(std::move(download_history)); | 200 ASSERT_TRUE(download_core_service); |
| 201 download_core_service->set_download_history(std::move(download_history)); |
203 } | 202 } |
204 | 203 |
205 std::unique_ptr<MockDownloadItem> | 204 std::unique_ptr<MockDownloadItem> |
206 DownloadUIControllerTest::CreateMockInProgressDownload() { | 205 DownloadUIControllerTest::CreateMockInProgressDownload() { |
207 std::unique_ptr<MockDownloadItem> item( | 206 std::unique_ptr<MockDownloadItem> item( |
208 new testing::StrictMock<MockDownloadItem>()); | 207 new testing::StrictMock<MockDownloadItem>()); |
209 EXPECT_CALL(*item, GetBrowserContext()) | 208 EXPECT_CALL(*item, GetBrowserContext()) |
210 .WillRepeatedly(Return(browser_context())); | 209 .WillRepeatedly(Return(browser_context())); |
211 EXPECT_CALL(*item, GetId()).WillRepeatedly(Return(1)); | 210 EXPECT_CALL(*item, GetId()).WillRepeatedly(Return(1)); |
212 EXPECT_CALL(*item, GetGuid()) | 211 EXPECT_CALL(*item, GetGuid()) |
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
358 // DownloadUIController. It should ignore the download since it's marked as | 357 // DownloadUIController. It should ignore the download since it's marked as |
359 // being restored from history. | 358 // being restored from history. |
360 ASSERT_TRUE(manager_observer()); | 359 ASSERT_TRUE(manager_observer()); |
361 manager_observer()->OnDownloadCreated(manager(), item.get()); | 360 manager_observer()->OnDownloadCreated(manager(), item.get()); |
362 | 361 |
363 // Finally, the expectation we've been waiting for: | 362 // Finally, the expectation we've been waiting for: |
364 EXPECT_FALSE(notified_item()); | 363 EXPECT_FALSE(notified_item()); |
365 } | 364 } |
366 | 365 |
367 } // namespace | 366 } // namespace |
OLD | NEW |