| 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 <stddef.h> |
| 6 #include <stdint.h> |
| 7 |
| 5 #include <set> | 8 #include <set> |
| 6 #include <string> | 9 #include <string> |
| 7 | 10 |
| 8 #include "base/bind.h" | 11 #include "base/bind.h" |
| 9 #include "base/files/scoped_temp_dir.h" | 12 #include "base/files/scoped_temp_dir.h" |
| 13 #include "base/macros.h" |
| 10 #include "base/memory/scoped_ptr.h" | 14 #include "base/memory/scoped_ptr.h" |
| 11 #include "base/memory/weak_ptr.h" | 15 #include "base/memory/weak_ptr.h" |
| 12 #include "base/message_loop/message_loop.h" | 16 #include "base/message_loop/message_loop.h" |
| 13 #include "base/stl_util.h" | 17 #include "base/stl_util.h" |
| 14 #include "base/strings/string16.h" | 18 #include "base/strings/string16.h" |
| 15 #include "base/strings/string_util.h" | 19 #include "base/strings/string_util.h" |
| 16 #include "base/strings/utf_string_conversions.h" | 20 #include "base/strings/utf_string_conversions.h" |
| 17 #include "build/build_config.h" | 21 #include "build/build_config.h" |
| 18 #include "content/browser/byte_stream.h" | 22 #include "content/browser/byte_stream.h" |
| 19 #include "content/browser/download/download_create_info.h" | 23 #include "content/browser/download/download_create_info.h" |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 99 MOCK_METHOD1(AddObserver, void(DownloadItem::Observer*)); | 103 MOCK_METHOD1(AddObserver, void(DownloadItem::Observer*)); |
| 100 MOCK_METHOD1(RemoveObserver, void(DownloadItem::Observer*)); | 104 MOCK_METHOD1(RemoveObserver, void(DownloadItem::Observer*)); |
| 101 MOCK_METHOD0(UpdateObservers, void()); | 105 MOCK_METHOD0(UpdateObservers, void()); |
| 102 MOCK_METHOD0(CanShowInFolder, bool()); | 106 MOCK_METHOD0(CanShowInFolder, bool()); |
| 103 MOCK_METHOD0(CanOpenDownload, bool()); | 107 MOCK_METHOD0(CanOpenDownload, bool()); |
| 104 MOCK_METHOD0(ShouldOpenFileBasedOnExtension, bool()); | 108 MOCK_METHOD0(ShouldOpenFileBasedOnExtension, bool()); |
| 105 MOCK_METHOD0(OpenDownload, void()); | 109 MOCK_METHOD0(OpenDownload, void()); |
| 106 MOCK_METHOD0(ShowDownloadInShell, void()); | 110 MOCK_METHOD0(ShowDownloadInShell, void()); |
| 107 MOCK_METHOD0(ValidateDangerousDownload, void()); | 111 MOCK_METHOD0(ValidateDangerousDownload, void()); |
| 108 MOCK_METHOD1(StealDangerousDownload, void(const AcquireFileCallback&)); | 112 MOCK_METHOD1(StealDangerousDownload, void(const AcquireFileCallback&)); |
| 109 MOCK_METHOD3(UpdateProgress, void(int64, int64, const std::string&)); | 113 MOCK_METHOD3(UpdateProgress, void(int64_t, int64_t, const std::string&)); |
| 110 MOCK_METHOD1(Cancel, void(bool)); | 114 MOCK_METHOD1(Cancel, void(bool)); |
| 111 MOCK_METHOD0(MarkAsComplete, void()); | 115 MOCK_METHOD0(MarkAsComplete, void()); |
| 112 MOCK_METHOD1(OnAllDataSaved, void(const std::string&)); | 116 MOCK_METHOD1(OnAllDataSaved, void(const std::string&)); |
| 113 MOCK_METHOD0(OnDownloadedFileRemoved, void()); | 117 MOCK_METHOD0(OnDownloadedFileRemoved, void()); |
| 114 void Start(scoped_ptr<DownloadFile> download_file, | 118 void Start(scoped_ptr<DownloadFile> download_file, |
| 115 scoped_ptr<DownloadRequestHandleInterface> req_handle) override { | 119 scoped_ptr<DownloadRequestHandleInterface> req_handle) override { |
| 116 MockStart(download_file.get(), req_handle.get()); | 120 MockStart(download_file.get(), req_handle.get()); |
| 117 } | 121 } |
| 118 | 122 |
| 119 MOCK_METHOD2(MockStart, void(DownloadFile*, DownloadRequestHandleInterface*)); | 123 MOCK_METHOD2(MockStart, void(DownloadFile*, DownloadRequestHandleInterface*)); |
| 120 | 124 |
| 121 MOCK_METHOD0(Remove, void()); | 125 MOCK_METHOD0(Remove, void()); |
| 122 MOCK_CONST_METHOD1(TimeRemaining, bool(base::TimeDelta*)); | 126 MOCK_CONST_METHOD1(TimeRemaining, bool(base::TimeDelta*)); |
| 123 MOCK_CONST_METHOD0(CurrentSpeed, int64()); | 127 MOCK_CONST_METHOD0(CurrentSpeed, int64_t()); |
| 124 MOCK_CONST_METHOD0(PercentComplete, int()); | 128 MOCK_CONST_METHOD0(PercentComplete, int()); |
| 125 MOCK_CONST_METHOD0(AllDataSaved, bool()); | 129 MOCK_CONST_METHOD0(AllDataSaved, bool()); |
| 126 MOCK_CONST_METHOD1(MatchesQuery, bool(const base::string16& query)); | 130 MOCK_CONST_METHOD1(MatchesQuery, bool(const base::string16& query)); |
| 127 MOCK_CONST_METHOD0(IsDone, bool()); | 131 MOCK_CONST_METHOD0(IsDone, bool()); |
| 128 MOCK_CONST_METHOD0(GetFullPath, const base::FilePath&()); | 132 MOCK_CONST_METHOD0(GetFullPath, const base::FilePath&()); |
| 129 MOCK_CONST_METHOD0(GetTargetFilePath, const base::FilePath&()); | 133 MOCK_CONST_METHOD0(GetTargetFilePath, const base::FilePath&()); |
| 130 MOCK_CONST_METHOD0(GetTargetDisposition, TargetDisposition()); | 134 MOCK_CONST_METHOD0(GetTargetDisposition, TargetDisposition()); |
| 131 MOCK_METHOD1(OnContentCheckCompleted, void(DownloadDangerType)); | 135 MOCK_METHOD1(OnContentCheckCompleted, void(DownloadDangerType)); |
| 132 MOCK_CONST_METHOD0(GetState, DownloadState()); | 136 MOCK_CONST_METHOD0(GetState, DownloadState()); |
| 133 MOCK_CONST_METHOD0(GetUrlChain, const std::vector<GURL>&()); | 137 MOCK_CONST_METHOD0(GetUrlChain, const std::vector<GURL>&()); |
| 134 MOCK_METHOD1(SetTotalBytes, void(int64)); | 138 MOCK_METHOD1(SetTotalBytes, void(int64_t)); |
| 135 MOCK_CONST_METHOD0(GetURL, const GURL&()); | 139 MOCK_CONST_METHOD0(GetURL, const GURL&()); |
| 136 MOCK_CONST_METHOD0(GetOriginalUrl, const GURL&()); | 140 MOCK_CONST_METHOD0(GetOriginalUrl, const GURL&()); |
| 137 MOCK_CONST_METHOD0(GetReferrerUrl, const GURL&()); | 141 MOCK_CONST_METHOD0(GetReferrerUrl, const GURL&()); |
| 138 MOCK_CONST_METHOD0(GetTabUrl, const GURL&()); | 142 MOCK_CONST_METHOD0(GetTabUrl, const GURL&()); |
| 139 MOCK_CONST_METHOD0(GetTabReferrerUrl, const GURL&()); | 143 MOCK_CONST_METHOD0(GetTabReferrerUrl, const GURL&()); |
| 140 MOCK_CONST_METHOD0(GetSuggestedFilename, std::string()); | 144 MOCK_CONST_METHOD0(GetSuggestedFilename, std::string()); |
| 141 MOCK_CONST_METHOD0(GetContentDisposition, std::string()); | 145 MOCK_CONST_METHOD0(GetContentDisposition, std::string()); |
| 142 MOCK_CONST_METHOD0(GetMimeType, std::string()); | 146 MOCK_CONST_METHOD0(GetMimeType, std::string()); |
| 143 MOCK_CONST_METHOD0(GetOriginalMimeType, std::string()); | 147 MOCK_CONST_METHOD0(GetOriginalMimeType, std::string()); |
| 144 MOCK_CONST_METHOD0(GetReferrerCharset, std::string()); | 148 MOCK_CONST_METHOD0(GetReferrerCharset, std::string()); |
| 145 MOCK_CONST_METHOD0(GetRemoteAddress, std::string()); | 149 MOCK_CONST_METHOD0(GetRemoteAddress, std::string()); |
| 146 MOCK_CONST_METHOD0(GetTotalBytes, int64()); | 150 MOCK_CONST_METHOD0(GetTotalBytes, int64_t()); |
| 147 MOCK_CONST_METHOD0(GetReceivedBytes, int64()); | 151 MOCK_CONST_METHOD0(GetReceivedBytes, int64_t()); |
| 148 MOCK_CONST_METHOD0(GetHashState, const std::string&()); | 152 MOCK_CONST_METHOD0(GetHashState, const std::string&()); |
| 149 MOCK_CONST_METHOD0(GetHash, const std::string&()); | 153 MOCK_CONST_METHOD0(GetHash, const std::string&()); |
| 150 MOCK_CONST_METHOD0(GetId, uint32()); | 154 MOCK_CONST_METHOD0(GetId, uint32_t()); |
| 151 MOCK_CONST_METHOD0(GetStartTime, base::Time()); | 155 MOCK_CONST_METHOD0(GetStartTime, base::Time()); |
| 152 MOCK_CONST_METHOD0(GetEndTime, base::Time()); | 156 MOCK_CONST_METHOD0(GetEndTime, base::Time()); |
| 153 MOCK_METHOD0(GetDownloadManager, DownloadManager*()); | 157 MOCK_METHOD0(GetDownloadManager, DownloadManager*()); |
| 154 MOCK_CONST_METHOD0(IsPaused, bool()); | 158 MOCK_CONST_METHOD0(IsPaused, bool()); |
| 155 MOCK_CONST_METHOD0(GetOpenWhenComplete, bool()); | 159 MOCK_CONST_METHOD0(GetOpenWhenComplete, bool()); |
| 156 MOCK_METHOD1(SetOpenWhenComplete, void(bool)); | 160 MOCK_METHOD1(SetOpenWhenComplete, void(bool)); |
| 157 MOCK_CONST_METHOD0(GetFileExternallyRemoved, bool()); | 161 MOCK_CONST_METHOD0(GetFileExternallyRemoved, bool()); |
| 158 MOCK_CONST_METHOD0(GetDangerType, DownloadDangerType()); | 162 MOCK_CONST_METHOD0(GetDangerType, DownloadDangerType()); |
| 159 MOCK_CONST_METHOD0(IsDangerous, bool()); | 163 MOCK_CONST_METHOD0(IsDangerous, bool()); |
| 160 MOCK_METHOD0(GetAutoOpened, bool()); | 164 MOCK_METHOD0(GetAutoOpened, bool()); |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 225 // Generally used during teardown. | 229 // Generally used during teardown. |
| 226 MockDownloadItemImpl* PopItem(); | 230 MockDownloadItemImpl* PopItem(); |
| 227 | 231 |
| 228 // Should be called when the item of this id is removed so that | 232 // Should be called when the item of this id is removed so that |
| 229 // we don't keep dangling pointers. | 233 // we don't keep dangling pointers. |
| 230 void RemoveItem(int id); | 234 void RemoveItem(int id); |
| 231 | 235 |
| 232 // Overridden methods from DownloadItemFactory. | 236 // Overridden methods from DownloadItemFactory. |
| 233 DownloadItemImpl* CreatePersistedItem( | 237 DownloadItemImpl* CreatePersistedItem( |
| 234 DownloadItemImplDelegate* delegate, | 238 DownloadItemImplDelegate* delegate, |
| 235 uint32 download_id, | 239 uint32_t download_id, |
| 236 const base::FilePath& current_path, | 240 const base::FilePath& current_path, |
| 237 const base::FilePath& target_path, | 241 const base::FilePath& target_path, |
| 238 const std::vector<GURL>& url_chain, | 242 const std::vector<GURL>& url_chain, |
| 239 const GURL& referrer_url, | 243 const GURL& referrer_url, |
| 240 const std::string& mime_type, | 244 const std::string& mime_type, |
| 241 const std::string& original_mime_type, | 245 const std::string& original_mime_type, |
| 242 const base::Time& start_time, | 246 const base::Time& start_time, |
| 243 const base::Time& end_time, | 247 const base::Time& end_time, |
| 244 const std::string& etag, | 248 const std::string& etag, |
| 245 const std::string& last_modofied, | 249 const std::string& last_modofied, |
| 246 int64 received_bytes, | 250 int64_t received_bytes, |
| 247 int64 total_bytes, | 251 int64_t total_bytes, |
| 248 DownloadItem::DownloadState state, | 252 DownloadItem::DownloadState state, |
| 249 DownloadDangerType danger_type, | 253 DownloadDangerType danger_type, |
| 250 DownloadInterruptReason interrupt_reason, | 254 DownloadInterruptReason interrupt_reason, |
| 251 bool opened, | 255 bool opened, |
| 252 const net::BoundNetLog& bound_net_log) override; | 256 const net::BoundNetLog& bound_net_log) override; |
| 253 DownloadItemImpl* CreateActiveItem( | 257 DownloadItemImpl* CreateActiveItem( |
| 254 DownloadItemImplDelegate* delegate, | 258 DownloadItemImplDelegate* delegate, |
| 255 uint32 download_id, | 259 uint32_t download_id, |
| 256 const DownloadCreateInfo& info, | 260 const DownloadCreateInfo& info, |
| 257 const net::BoundNetLog& bound_net_log) override; | 261 const net::BoundNetLog& bound_net_log) override; |
| 258 DownloadItemImpl* CreateSavePageItem( | 262 DownloadItemImpl* CreateSavePageItem( |
| 259 DownloadItemImplDelegate* delegate, | 263 DownloadItemImplDelegate* delegate, |
| 260 uint32 download_id, | 264 uint32_t download_id, |
| 261 const base::FilePath& path, | 265 const base::FilePath& path, |
| 262 const GURL& url, | 266 const GURL& url, |
| 263 const std::string& mime_type, | 267 const std::string& mime_type, |
| 264 scoped_ptr<DownloadRequestHandleInterface> request_handle, | 268 scoped_ptr<DownloadRequestHandleInterface> request_handle, |
| 265 const net::BoundNetLog& bound_net_log) override; | 269 const net::BoundNetLog& bound_net_log) override; |
| 266 | 270 |
| 267 private: | 271 private: |
| 268 std::map<uint32, MockDownloadItemImpl*> items_; | 272 std::map<uint32_t, MockDownloadItemImpl*> items_; |
| 269 DownloadItemImplDelegate item_delegate_; | 273 DownloadItemImplDelegate item_delegate_; |
| 270 | 274 |
| 271 DISALLOW_COPY_AND_ASSIGN(MockDownloadItemFactory); | 275 DISALLOW_COPY_AND_ASSIGN(MockDownloadItemFactory); |
| 272 }; | 276 }; |
| 273 | 277 |
| 274 MockDownloadItemFactory::MockDownloadItemFactory() {} | 278 MockDownloadItemFactory::MockDownloadItemFactory() {} |
| 275 | 279 |
| 276 MockDownloadItemFactory::~MockDownloadItemFactory() {} | 280 MockDownloadItemFactory::~MockDownloadItemFactory() {} |
| 277 | 281 |
| 278 MockDownloadItemImpl* MockDownloadItemFactory::GetItem(int id) { | 282 MockDownloadItemImpl* MockDownloadItemFactory::GetItem(int id) { |
| 279 if (items_.find(id) == items_.end()) | 283 if (items_.find(id) == items_.end()) |
| 280 return NULL; | 284 return NULL; |
| 281 return items_[id]; | 285 return items_[id]; |
| 282 } | 286 } |
| 283 | 287 |
| 284 MockDownloadItemImpl* MockDownloadItemFactory::PopItem() { | 288 MockDownloadItemImpl* MockDownloadItemFactory::PopItem() { |
| 285 if (items_.empty()) | 289 if (items_.empty()) |
| 286 return NULL; | 290 return NULL; |
| 287 | 291 |
| 288 std::map<uint32, MockDownloadItemImpl*>::iterator first_item | 292 std::map<uint32_t, MockDownloadItemImpl*>::iterator first_item = |
| 289 = items_.begin(); | 293 items_.begin(); |
| 290 MockDownloadItemImpl* result = first_item->second; | 294 MockDownloadItemImpl* result = first_item->second; |
| 291 items_.erase(first_item); | 295 items_.erase(first_item); |
| 292 return result; | 296 return result; |
| 293 } | 297 } |
| 294 | 298 |
| 295 void MockDownloadItemFactory::RemoveItem(int id) { | 299 void MockDownloadItemFactory::RemoveItem(int id) { |
| 296 DCHECK(items_.find(id) != items_.end()); | 300 DCHECK(items_.find(id) != items_.end()); |
| 297 items_.erase(id); | 301 items_.erase(id); |
| 298 } | 302 } |
| 299 | 303 |
| 300 DownloadItemImpl* MockDownloadItemFactory::CreatePersistedItem( | 304 DownloadItemImpl* MockDownloadItemFactory::CreatePersistedItem( |
| 301 DownloadItemImplDelegate* delegate, | 305 DownloadItemImplDelegate* delegate, |
| 302 uint32 download_id, | 306 uint32_t download_id, |
| 303 const base::FilePath& current_path, | 307 const base::FilePath& current_path, |
| 304 const base::FilePath& target_path, | 308 const base::FilePath& target_path, |
| 305 const std::vector<GURL>& url_chain, | 309 const std::vector<GURL>& url_chain, |
| 306 const GURL& referrer_url, | 310 const GURL& referrer_url, |
| 307 const std::string& mime_type, | 311 const std::string& mime_type, |
| 308 const std::string& original_mime_type, | 312 const std::string& original_mime_type, |
| 309 const base::Time& start_time, | 313 const base::Time& start_time, |
| 310 const base::Time& end_time, | 314 const base::Time& end_time, |
| 311 const std::string& etag, | 315 const std::string& etag, |
| 312 const std::string& last_modified, | 316 const std::string& last_modified, |
| 313 int64 received_bytes, | 317 int64_t received_bytes, |
| 314 int64 total_bytes, | 318 int64_t total_bytes, |
| 315 DownloadItem::DownloadState state, | 319 DownloadItem::DownloadState state, |
| 316 DownloadDangerType danger_type, | 320 DownloadDangerType danger_type, |
| 317 DownloadInterruptReason interrupt_reason, | 321 DownloadInterruptReason interrupt_reason, |
| 318 bool opened, | 322 bool opened, |
| 319 const net::BoundNetLog& bound_net_log) { | 323 const net::BoundNetLog& bound_net_log) { |
| 320 DCHECK(items_.find(download_id) == items_.end()); | 324 DCHECK(items_.find(download_id) == items_.end()); |
| 321 MockDownloadItemImpl* result = | 325 MockDownloadItemImpl* result = |
| 322 new StrictMock<MockDownloadItemImpl>(&item_delegate_); | 326 new StrictMock<MockDownloadItemImpl>(&item_delegate_); |
| 323 EXPECT_CALL(*result, GetId()) | 327 EXPECT_CALL(*result, GetId()) |
| 324 .WillRepeatedly(Return(download_id)); | 328 .WillRepeatedly(Return(download_id)); |
| 325 items_[download_id] = result; | 329 items_[download_id] = result; |
| 326 return result; | 330 return result; |
| 327 } | 331 } |
| 328 | 332 |
| 329 DownloadItemImpl* MockDownloadItemFactory::CreateActiveItem( | 333 DownloadItemImpl* MockDownloadItemFactory::CreateActiveItem( |
| 330 DownloadItemImplDelegate* delegate, | 334 DownloadItemImplDelegate* delegate, |
| 331 uint32 download_id, | 335 uint32_t download_id, |
| 332 const DownloadCreateInfo& info, | 336 const DownloadCreateInfo& info, |
| 333 const net::BoundNetLog& bound_net_log) { | 337 const net::BoundNetLog& bound_net_log) { |
| 334 DCHECK(items_.find(download_id) == items_.end()); | 338 DCHECK(items_.find(download_id) == items_.end()); |
| 335 | 339 |
| 336 MockDownloadItemImpl* result = | 340 MockDownloadItemImpl* result = |
| 337 new StrictMock<MockDownloadItemImpl>(&item_delegate_); | 341 new StrictMock<MockDownloadItemImpl>(&item_delegate_); |
| 338 EXPECT_CALL(*result, GetId()) | 342 EXPECT_CALL(*result, GetId()) |
| 339 .WillRepeatedly(Return(download_id)); | 343 .WillRepeatedly(Return(download_id)); |
| 340 items_[download_id] = result; | 344 items_[download_id] = result; |
| 341 | 345 |
| 342 // Active items are created and then immediately are called to start | 346 // Active items are created and then immediately are called to start |
| 343 // the download. | 347 // the download. |
| 344 EXPECT_CALL(*result, MockStart(_, _)); | 348 EXPECT_CALL(*result, MockStart(_, _)); |
| 345 | 349 |
| 346 return result; | 350 return result; |
| 347 } | 351 } |
| 348 | 352 |
| 349 DownloadItemImpl* MockDownloadItemFactory::CreateSavePageItem( | 353 DownloadItemImpl* MockDownloadItemFactory::CreateSavePageItem( |
| 350 DownloadItemImplDelegate* delegate, | 354 DownloadItemImplDelegate* delegate, |
| 351 uint32 download_id, | 355 uint32_t download_id, |
| 352 const base::FilePath& path, | 356 const base::FilePath& path, |
| 353 const GURL& url, | 357 const GURL& url, |
| 354 const std::string& mime_type, | 358 const std::string& mime_type, |
| 355 scoped_ptr<DownloadRequestHandleInterface> request_handle, | 359 scoped_ptr<DownloadRequestHandleInterface> request_handle, |
| 356 const net::BoundNetLog& bound_net_log) { | 360 const net::BoundNetLog& bound_net_log) { |
| 357 DCHECK(items_.find(download_id) == items_.end()); | 361 DCHECK(items_.find(download_id) == items_.end()); |
| 358 | 362 |
| 359 MockDownloadItemImpl* result = | 363 MockDownloadItemImpl* result = |
| 360 new StrictMock<MockDownloadItemImpl>(&item_delegate_); | 364 new StrictMock<MockDownloadItemImpl>(&item_delegate_); |
| 361 EXPECT_CALL(*result, GetId()) | 365 EXPECT_CALL(*result, GetId()) |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 430 } | 434 } |
| 431 }; | 435 }; |
| 432 | 436 |
| 433 class MockDownloadManagerObserver : public DownloadManager::Observer { | 437 class MockDownloadManagerObserver : public DownloadManager::Observer { |
| 434 public: | 438 public: |
| 435 MockDownloadManagerObserver() {} | 439 MockDownloadManagerObserver() {} |
| 436 ~MockDownloadManagerObserver() {} | 440 ~MockDownloadManagerObserver() {} |
| 437 MOCK_METHOD2(OnDownloadCreated, void( | 441 MOCK_METHOD2(OnDownloadCreated, void( |
| 438 DownloadManager*, DownloadItem*)); | 442 DownloadManager*, DownloadItem*)); |
| 439 MOCK_METHOD1(ManagerGoingDown, void(DownloadManager*)); | 443 MOCK_METHOD1(ManagerGoingDown, void(DownloadManager*)); |
| 440 MOCK_METHOD2(SelectFileDialogDisplayed, void( | 444 MOCK_METHOD2(SelectFileDialogDisplayed, void(DownloadManager*, int32_t)); |
| 441 DownloadManager*, int32)); | |
| 442 }; | 445 }; |
| 443 | 446 |
| 444 } // namespace | 447 } // namespace |
| 445 | 448 |
| 446 class DownloadManagerTest : public testing::Test { | 449 class DownloadManagerTest : public testing::Test { |
| 447 public: | 450 public: |
| 448 static const char* kTestData; | 451 static const char* kTestData; |
| 449 static const size_t kTestDataLen; | 452 static const size_t kTestDataLen; |
| 450 | 453 |
| 451 DownloadManagerTest() | 454 DownloadManagerTest() |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 510 mock_browser_context_.reset(); | 513 mock_browser_context_.reset(); |
| 511 download_urls_.clear(); | 514 download_urls_.clear(); |
| 512 } | 515 } |
| 513 | 516 |
| 514 // Returns download id. | 517 // Returns download id. |
| 515 MockDownloadItemImpl& AddItemToManager() { | 518 MockDownloadItemImpl& AddItemToManager() { |
| 516 DownloadCreateInfo info; | 519 DownloadCreateInfo info; |
| 517 | 520 |
| 518 // Args are ignored except for download id, so everything else can be | 521 // Args are ignored except for download id, so everything else can be |
| 519 // null. | 522 // null. |
| 520 uint32 id = next_download_id_; | 523 uint32_t id = next_download_id_; |
| 521 ++next_download_id_; | 524 ++next_download_id_; |
| 522 info.request_handle.reset(new DownloadRequestHandle); | 525 info.request_handle.reset(new DownloadRequestHandle); |
| 523 download_manager_->CreateActiveItem(id, info); | 526 download_manager_->CreateActiveItem(id, info); |
| 524 DCHECK(mock_download_item_factory_->GetItem(id)); | 527 DCHECK(mock_download_item_factory_->GetItem(id)); |
| 525 MockDownloadItemImpl& item(*mock_download_item_factory_->GetItem(id)); | 528 MockDownloadItemImpl& item(*mock_download_item_factory_->GetItem(id)); |
| 526 // Satisfy expectation. If the item is created in StartDownload(), | 529 // Satisfy expectation. If the item is created in StartDownload(), |
| 527 // we call Start on it immediately, so we need to set that expectation | 530 // we call Start on it immediately, so we need to set that expectation |
| 528 // in the factory. | 531 // in the factory. |
| 529 scoped_ptr<DownloadRequestHandleInterface> req_handle; | 532 scoped_ptr<DownloadRequestHandleInterface> req_handle; |
| 530 item.Start(scoped_ptr<DownloadFile>(), req_handle.Pass()); | 533 item.Start(scoped_ptr<DownloadFile>(), req_handle.Pass()); |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 588 std::vector<GURL> download_urls_; | 591 std::vector<GURL> download_urls_; |
| 589 | 592 |
| 590 private: | 593 private: |
| 591 base::MessageLoopForUI message_loop_; | 594 base::MessageLoopForUI message_loop_; |
| 592 TestBrowserThread ui_thread_; | 595 TestBrowserThread ui_thread_; |
| 593 TestBrowserThread file_thread_; | 596 TestBrowserThread file_thread_; |
| 594 base::WeakPtr<MockDownloadItemFactory> mock_download_item_factory_; | 597 base::WeakPtr<MockDownloadItemFactory> mock_download_item_factory_; |
| 595 scoped_ptr<MockDownloadManagerDelegate> mock_download_manager_delegate_; | 598 scoped_ptr<MockDownloadManagerDelegate> mock_download_manager_delegate_; |
| 596 scoped_ptr<MockBrowserContext> mock_browser_context_; | 599 scoped_ptr<MockBrowserContext> mock_browser_context_; |
| 597 scoped_ptr<MockDownloadManagerObserver> observer_; | 600 scoped_ptr<MockDownloadManagerObserver> observer_; |
| 598 uint32 next_download_id_; | 601 uint32_t next_download_id_; |
| 599 | 602 |
| 600 DISALLOW_COPY_AND_ASSIGN(DownloadManagerTest); | 603 DISALLOW_COPY_AND_ASSIGN(DownloadManagerTest); |
| 601 }; | 604 }; |
| 602 | 605 |
| 603 // Confirm the appropriate invocations occur when you start a download. | 606 // Confirm the appropriate invocations occur when you start a download. |
| 604 TEST_F(DownloadManagerTest, StartDownload) { | 607 TEST_F(DownloadManagerTest, StartDownload) { |
| 605 scoped_ptr<DownloadCreateInfo> info(new DownloadCreateInfo); | 608 scoped_ptr<DownloadCreateInfo> info(new DownloadCreateInfo); |
| 606 scoped_ptr<ByteStreamReader> stream; | 609 scoped_ptr<ByteStreamReader> stream; |
| 607 uint32 local_id(5); // Random value | 610 uint32_t local_id(5); // Random value |
| 608 base::FilePath download_path(FILE_PATH_LITERAL("download/path")); | 611 base::FilePath download_path(FILE_PATH_LITERAL("download/path")); |
| 609 | 612 |
| 610 EXPECT_FALSE(download_manager_->GetDownload(local_id)); | 613 EXPECT_FALSE(download_manager_->GetDownload(local_id)); |
| 611 | 614 |
| 612 EXPECT_CALL(GetMockObserver(), OnDownloadCreated(download_manager_.get(), _)) | 615 EXPECT_CALL(GetMockObserver(), OnDownloadCreated(download_manager_.get(), _)) |
| 613 .WillOnce(Return()); | 616 .WillOnce(Return()); |
| 614 EXPECT_CALL(GetMockDownloadManagerDelegate(), GetNextId(_)) | 617 EXPECT_CALL(GetMockDownloadManagerDelegate(), GetNextId(_)) |
| 615 .WillOnce(RunCallback<0>(local_id)); | 618 .WillOnce(RunCallback<0>(local_id)); |
| 616 | 619 |
| 617 // Doing nothing will set the default download directory to null. | 620 // Doing nothing will set the default download directory to null. |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 666 EXPECT_TRUE(callback_called_); | 669 EXPECT_TRUE(callback_called_); |
| 667 EXPECT_EQ(path, target_path_); | 670 EXPECT_EQ(path, target_path_); |
| 668 EXPECT_EQ(DownloadItem::TARGET_DISPOSITION_OVERWRITE, target_disposition_); | 671 EXPECT_EQ(DownloadItem::TARGET_DISPOSITION_OVERWRITE, target_disposition_); |
| 669 EXPECT_EQ(DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, danger_type_); | 672 EXPECT_EQ(DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, danger_type_); |
| 670 EXPECT_EQ(path, intermediate_path_); | 673 EXPECT_EQ(path, intermediate_path_); |
| 671 } | 674 } |
| 672 | 675 |
| 673 // Confirm the DownloadManagerImpl::RemoveAllDownloads() functionality | 676 // Confirm the DownloadManagerImpl::RemoveAllDownloads() functionality |
| 674 TEST_F(DownloadManagerTest, RemoveAllDownloads) { | 677 TEST_F(DownloadManagerTest, RemoveAllDownloads) { |
| 675 base::Time now(base::Time::Now()); | 678 base::Time now(base::Time::Now()); |
| 676 for (uint32 i = 0; i < 4; ++i) { | 679 for (uint32_t i = 0; i < 4; ++i) { |
| 677 MockDownloadItemImpl& item(AddItemToManager()); | 680 MockDownloadItemImpl& item(AddItemToManager()); |
| 678 EXPECT_EQ(i, item.GetId()); | 681 EXPECT_EQ(i, item.GetId()); |
| 679 EXPECT_CALL(item, GetStartTime()) | 682 EXPECT_CALL(item, GetStartTime()) |
| 680 .WillRepeatedly(Return(now)); | 683 .WillRepeatedly(Return(now)); |
| 681 } | 684 } |
| 682 | 685 |
| 683 // Specify states for each. | 686 // Specify states for each. |
| 684 EXPECT_CALL(GetMockDownloadItem(0), GetState()) | 687 EXPECT_CALL(GetMockDownloadItem(0), GetState()) |
| 685 .WillRepeatedly(Return(DownloadItem::COMPLETE)); | 688 .WillRepeatedly(Return(DownloadItem::COMPLETE)); |
| 686 EXPECT_CALL(GetMockDownloadItem(1), GetState()) | 689 EXPECT_CALL(GetMockDownloadItem(1), GetState()) |
| (...skipping 14 matching lines...) Expand all Loading... |
| 701 .Times(0); | 704 .Times(0); |
| 702 | 705 |
| 703 download_manager_->RemoveAllDownloads(); | 706 download_manager_->RemoveAllDownloads(); |
| 704 // Because we're mocking the download item, the Remove call doesn't | 707 // Because we're mocking the download item, the Remove call doesn't |
| 705 // result in them being removed from the DownloadManager list. | 708 // result in them being removed from the DownloadManager list. |
| 706 } | 709 } |
| 707 | 710 |
| 708 // Confirm that only downloads with same origin are removed. | 711 // Confirm that only downloads with same origin are removed. |
| 709 TEST_F(DownloadManagerTest, RemoveSameOriginDownloads) { | 712 TEST_F(DownloadManagerTest, RemoveSameOriginDownloads) { |
| 710 base::Time now(base::Time::Now()); | 713 base::Time now(base::Time::Now()); |
| 711 for (uint32 i = 0; i < 2; ++i) { | 714 for (uint32_t i = 0; i < 2; ++i) { |
| 712 MockDownloadItemImpl& item(AddItemToManager()); | 715 MockDownloadItemImpl& item(AddItemToManager()); |
| 713 EXPECT_CALL(item, GetStartTime()).WillRepeatedly(Return(now)); | 716 EXPECT_CALL(item, GetStartTime()).WillRepeatedly(Return(now)); |
| 714 EXPECT_CALL(item, GetState()) | 717 EXPECT_CALL(item, GetState()) |
| 715 .WillRepeatedly(Return(DownloadItem::COMPLETE)); | 718 .WillRepeatedly(Return(DownloadItem::COMPLETE)); |
| 716 } | 719 } |
| 717 | 720 |
| 718 EXPECT_CALL(GetMockDownloadItem(0), Remove()); | 721 EXPECT_CALL(GetMockDownloadItem(0), Remove()); |
| 719 EXPECT_CALL(GetMockDownloadItem(1), Remove()).Times(0); | 722 EXPECT_CALL(GetMockDownloadItem(1), Remove()).Times(0); |
| 720 | 723 |
| 721 url::Origin origin_to_clear(download_urls_[0]); | 724 url::Origin origin_to_clear(download_urls_[0]); |
| 722 int remove_count = download_manager_->RemoveDownloadsByOriginAndTime( | 725 int remove_count = download_manager_->RemoveDownloadsByOriginAndTime( |
| 723 origin_to_clear, base::Time(), base::Time::Max()); | 726 origin_to_clear, base::Time(), base::Time::Max()); |
| 724 EXPECT_EQ(remove_count, 1); | 727 EXPECT_EQ(remove_count, 1); |
| 725 } | 728 } |
| 726 | 729 |
| 727 } // namespace content | 730 } // namespace content |
| OLD | NEW |