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 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
62 } | 62 } |
63 | 63 |
64 class MockDownloadItemImpl : public DownloadItemImpl { | 64 class MockDownloadItemImpl : public DownloadItemImpl { |
65 public: | 65 public: |
66 // Use history constructor for minimal base object. | 66 // Use history constructor for minimal base object. |
67 MockDownloadItemImpl(DownloadItemImplDelegate* delegate) | 67 MockDownloadItemImpl(DownloadItemImplDelegate* delegate) |
68 : DownloadItemImpl( | 68 : DownloadItemImpl( |
69 delegate, | 69 delegate, |
70 content::DownloadId(), | 70 content::DownloadId(), |
71 FilePath(), | 71 FilePath(), |
72 GURL(), | 72 FilePath(), |
| 73 std::vector<GURL>(), |
73 GURL(), | 74 GURL(), |
74 base::Time(), | 75 base::Time(), |
75 base::Time(), | 76 base::Time(), |
76 0, | 77 0, |
77 0, | 78 0, |
78 DownloadItem::IN_PROGRESS, | 79 DownloadItem::IN_PROGRESS, |
| 80 DOWNLOAD_INTERRUPT_REASON_NONE, |
79 false, | 81 false, |
80 net::BoundNetLog()) {} | 82 net::BoundNetLog()) {} |
81 virtual ~MockDownloadItemImpl() {} | 83 virtual ~MockDownloadItemImpl() {} |
82 | 84 |
83 MOCK_METHOD4(OnDownloadTargetDetermined, | 85 MOCK_METHOD4(OnDownloadTargetDetermined, |
84 void(const FilePath&, TargetDisposition, | 86 void(const FilePath&, TargetDisposition, |
85 DownloadDangerType, const FilePath&)); | 87 DownloadDangerType, const FilePath&)); |
86 MOCK_METHOD1(AddObserver, void(DownloadItem::Observer*)); | 88 MOCK_METHOD1(AddObserver, void(DownloadItem::Observer*)); |
87 MOCK_METHOD1(RemoveObserver, void(DownloadItem::Observer*)); | 89 MOCK_METHOD1(RemoveObserver, void(DownloadItem::Observer*)); |
88 MOCK_METHOD0(UpdateObservers, void()); | 90 MOCK_METHOD0(UpdateObservers, void()); |
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
217 MockDownloadItemImpl* PopItem(); | 219 MockDownloadItemImpl* PopItem(); |
218 | 220 |
219 // Should be called when the item of this id is removed so that | 221 // Should be called when the item of this id is removed so that |
220 // we don't keep dangling pointers. | 222 // we don't keep dangling pointers. |
221 void RemoveItem(int id); | 223 void RemoveItem(int id); |
222 | 224 |
223 // Overridden methods from DownloadItemFactory. | 225 // Overridden methods from DownloadItemFactory. |
224 virtual DownloadItemImpl* CreatePersistedItem( | 226 virtual DownloadItemImpl* CreatePersistedItem( |
225 DownloadItemImplDelegate* delegate, | 227 DownloadItemImplDelegate* delegate, |
226 DownloadId download_id, | 228 DownloadId download_id, |
227 const FilePath& path, | 229 const FilePath& current_path, |
228 const GURL& url, | 230 const FilePath& target_path, |
| 231 const std::vector<GURL>& url_chain, |
229 const GURL& referrer_url, | 232 const GURL& referrer_url, |
230 const base::Time& start_time, | 233 const base::Time& start_time, |
231 const base::Time& end_time, | 234 const base::Time& end_time, |
232 int64 received_bytes, | 235 int64 received_bytes, |
233 int64 total_bytes, | 236 int64 total_bytes, |
234 DownloadItem::DownloadState state, | 237 DownloadItem::DownloadState state, |
| 238 DownloadInterruptReason interrupt_reason, |
235 bool opened, | 239 bool opened, |
236 const net::BoundNetLog& bound_net_log) OVERRIDE; | 240 const net::BoundNetLog& bound_net_log) OVERRIDE; |
237 virtual DownloadItemImpl* CreateActiveItem( | 241 virtual DownloadItemImpl* CreateActiveItem( |
238 DownloadItemImplDelegate* delegate, | 242 DownloadItemImplDelegate* delegate, |
239 const DownloadCreateInfo& info, | 243 const DownloadCreateInfo& info, |
240 scoped_ptr<DownloadRequestHandleInterface> request_handle, | 244 scoped_ptr<DownloadRequestHandleInterface> request_handle, |
241 const net::BoundNetLog& bound_net_log) OVERRIDE; | 245 const net::BoundNetLog& bound_net_log) OVERRIDE; |
242 virtual DownloadItemImpl* CreateSavePageItem( | 246 virtual DownloadItemImpl* CreateSavePageItem( |
243 DownloadItemImplDelegate* delegate, | 247 DownloadItemImplDelegate* delegate, |
244 const FilePath& path, | 248 const FilePath& path, |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
276 } | 280 } |
277 | 281 |
278 void MockDownloadItemFactory::RemoveItem(int id) { | 282 void MockDownloadItemFactory::RemoveItem(int id) { |
279 DCHECK(items_.find(id) != items_.end()); | 283 DCHECK(items_.find(id) != items_.end()); |
280 items_.erase(id); | 284 items_.erase(id); |
281 } | 285 } |
282 | 286 |
283 DownloadItemImpl* MockDownloadItemFactory::CreatePersistedItem( | 287 DownloadItemImpl* MockDownloadItemFactory::CreatePersistedItem( |
284 DownloadItemImplDelegate* delegate, | 288 DownloadItemImplDelegate* delegate, |
285 DownloadId download_id, | 289 DownloadId download_id, |
286 const FilePath& path, | 290 const FilePath& current_path, |
287 const GURL& url, | 291 const FilePath& target_path, |
| 292 const std::vector<GURL>& url_chain, |
288 const GURL& referrer_url, | 293 const GURL& referrer_url, |
289 const base::Time& start_time, | 294 const base::Time& start_time, |
290 const base::Time& end_time, | 295 const base::Time& end_time, |
291 int64 received_bytes, | 296 int64 received_bytes, |
292 int64 total_bytes, | 297 int64 total_bytes, |
293 DownloadItem::DownloadState state, | 298 DownloadItem::DownloadState state, |
| 299 DownloadInterruptReason interrupt_reason, |
294 bool opened, | 300 bool opened, |
295 const net::BoundNetLog& bound_net_log) { | 301 const net::BoundNetLog& bound_net_log) { |
296 int local_id = download_id.local(); | 302 int local_id = download_id.local(); |
297 DCHECK(items_.find(local_id) == items_.end()); | 303 DCHECK(items_.find(local_id) == items_.end()); |
298 | 304 |
299 MockDownloadItemImpl* result = | 305 MockDownloadItemImpl* result = |
300 new StrictMock<MockDownloadItemImpl>(&item_delegate_); | 306 new StrictMock<MockDownloadItemImpl>(&item_delegate_); |
301 EXPECT_CALL(*result, GetId()) | 307 EXPECT_CALL(*result, GetId()) |
302 .WillRepeatedly(Return(local_id)); | 308 .WillRepeatedly(Return(local_id)); |
303 items_[local_id] = result; | 309 items_[local_id] = result; |
(...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
489 DownloadCreateInfo info; | 495 DownloadCreateInfo info; |
490 | 496 |
491 static const char* kDownloadIdDomain = "Test download id domain"; | 497 static const char* kDownloadIdDomain = "Test download id domain"; |
492 | 498 |
493 // Args are ignored except for download id, so everything else can be | 499 // Args are ignored except for download id, so everything else can be |
494 // null. | 500 // null. |
495 int id = next_download_id_; | 501 int id = next_download_id_; |
496 ++next_download_id_; | 502 ++next_download_id_; |
497 info.download_id = DownloadId(kDownloadIdDomain, id); | 503 info.download_id = DownloadId(kDownloadIdDomain, id); |
498 info.request_handle = DownloadRequestHandle(); | 504 info.request_handle = DownloadRequestHandle(); |
499 download_manager_->CreateDownloadItem(&info, net::BoundNetLog()); | 505 download_manager_->CreateDownloadItemInternal(&info, net::BoundNetLog()); |
500 | 506 |
501 DCHECK(mock_download_item_factory_->GetItem(id)); | 507 DCHECK(mock_download_item_factory_->GetItem(id)); |
502 MockDownloadItemImpl& item(*mock_download_item_factory_->GetItem(id)); | 508 MockDownloadItemImpl& item(*mock_download_item_factory_->GetItem(id)); |
503 // Satisfy expectation. If the item is created in StartDownload(), | 509 // Satisfy expectation. If the item is created in StartDownload(), |
504 // we call Start on it immediately, so we need to set that expectation | 510 // we call Start on it immediately, so we need to set that expectation |
505 // in the factory. | 511 // in the factory. |
506 item.Start(scoped_ptr<DownloadFile>()); | 512 item.Start(scoped_ptr<DownloadFile>()); |
507 | 513 |
508 return item; | 514 return item; |
509 } | 515 } |
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
644 callback_called_ = false; | 650 callback_called_ = false; |
645 DetermineDownloadTarget(&item); | 651 DetermineDownloadTarget(&item); |
646 EXPECT_TRUE(callback_called_); | 652 EXPECT_TRUE(callback_called_); |
647 EXPECT_EQ(path, target_path_); | 653 EXPECT_EQ(path, target_path_); |
648 EXPECT_EQ(DownloadItem::TARGET_DISPOSITION_OVERWRITE, target_disposition_); | 654 EXPECT_EQ(DownloadItem::TARGET_DISPOSITION_OVERWRITE, target_disposition_); |
649 EXPECT_EQ(DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, danger_type_); | 655 EXPECT_EQ(DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, danger_type_); |
650 EXPECT_EQ(path, intermediate_path_); | 656 EXPECT_EQ(path, intermediate_path_); |
651 } | 657 } |
652 | 658 |
653 } // namespace content | 659 } // namespace content |
OLD | NEW |