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 // This file contains download browser tests that are known to be runnable | 5 // This file contains download browser tests that are known to be runnable |
6 // in a pure content context. Over time tests should be migrated here. | 6 // in a pure content context. Over time tests should be migrated here. |
7 | 7 |
8 #include <stddef.h> | 8 #include <stddef.h> |
9 #include <stdint.h> | 9 #include <stdint.h> |
10 | 10 #include <utility> |
11 #include <vector> | 11 #include <vector> |
12 | 12 |
13 #include "base/callback_helpers.h" | 13 #include "base/callback_helpers.h" |
14 #include "base/feature_list.h" | 14 #include "base/feature_list.h" |
15 #include "base/files/file_path.h" | 15 #include "base/files/file_path.h" |
16 #include "base/files/file_util.h" | 16 #include "base/files/file_util.h" |
17 #include "base/files/scoped_temp_dir.h" | 17 #include "base/files/scoped_temp_dir.h" |
18 #include "base/format_macros.h" | 18 #include "base/format_macros.h" |
19 #include "base/macros.h" | 19 #include "base/macros.h" |
20 #include "base/memory/ref_counted.h" | 20 #include "base/memory/ref_counted.h" |
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
192 scoped_ptr<DownloadSaveInfo> save_info, | 192 scoped_ptr<DownloadSaveInfo> save_info, |
193 const base::FilePath& default_download_directory, | 193 const base::FilePath& default_download_directory, |
194 const GURL& url, | 194 const GURL& url, |
195 const GURL& referrer_url, | 195 const GURL& referrer_url, |
196 bool calculate_hash, | 196 bool calculate_hash, |
197 scoped_ptr<ByteStreamReader> stream, | 197 scoped_ptr<ByteStreamReader> stream, |
198 const net::BoundNetLog& bound_net_log, | 198 const net::BoundNetLog& bound_net_log, |
199 scoped_ptr<PowerSaveBlocker> power_save_blocker, | 199 scoped_ptr<PowerSaveBlocker> power_save_blocker, |
200 base::WeakPtr<DownloadDestinationObserver> observer, | 200 base::WeakPtr<DownloadDestinationObserver> observer, |
201 base::WeakPtr<DownloadFileWithDelayFactory> owner) | 201 base::WeakPtr<DownloadFileWithDelayFactory> owner) |
202 : DownloadFileImpl( | 202 : DownloadFileImpl(std::move(save_info), |
203 save_info.Pass(), default_download_directory, url, referrer_url, | 203 default_download_directory, |
204 calculate_hash, stream.Pass(), bound_net_log, observer), | 204 url, |
| 205 referrer_url, |
| 206 calculate_hash, |
| 207 std::move(stream), |
| 208 bound_net_log, |
| 209 observer), |
205 owner_(owner) {} | 210 owner_(owner) {} |
206 | 211 |
207 DownloadFileWithDelay::~DownloadFileWithDelay() {} | 212 DownloadFileWithDelay::~DownloadFileWithDelay() {} |
208 | 213 |
209 void DownloadFileWithDelay::RenameAndUniquify( | 214 void DownloadFileWithDelay::RenameAndUniquify( |
210 const base::FilePath& full_path, | 215 const base::FilePath& full_path, |
211 const RenameCompletionCallback& callback) { | 216 const RenameCompletionCallback& callback) { |
212 DCHECK_CURRENTLY_ON(BrowserThread::FILE); | 217 DCHECK_CURRENTLY_ON(BrowserThread::FILE); |
213 DownloadFileImpl::RenameAndUniquify( | 218 DownloadFileImpl::RenameAndUniquify( |
214 full_path, base::Bind(DownloadFileWithDelay::RenameCallbackWrapper, | 219 full_path, base::Bind(DownloadFileWithDelay::RenameCallbackWrapper, |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
247 const GURL& url, | 252 const GURL& url, |
248 const GURL& referrer_url, | 253 const GURL& referrer_url, |
249 bool calculate_hash, | 254 bool calculate_hash, |
250 scoped_ptr<ByteStreamReader> stream, | 255 scoped_ptr<ByteStreamReader> stream, |
251 const net::BoundNetLog& bound_net_log, | 256 const net::BoundNetLog& bound_net_log, |
252 base::WeakPtr<DownloadDestinationObserver> observer) { | 257 base::WeakPtr<DownloadDestinationObserver> observer) { |
253 scoped_ptr<PowerSaveBlocker> psb(PowerSaveBlocker::Create( | 258 scoped_ptr<PowerSaveBlocker> psb(PowerSaveBlocker::Create( |
254 PowerSaveBlocker::kPowerSaveBlockPreventAppSuspension, | 259 PowerSaveBlocker::kPowerSaveBlockPreventAppSuspension, |
255 PowerSaveBlocker::kReasonOther, "Download in progress")); | 260 PowerSaveBlocker::kReasonOther, "Download in progress")); |
256 return new DownloadFileWithDelay( | 261 return new DownloadFileWithDelay( |
257 save_info.Pass(), default_download_directory, url, referrer_url, | 262 std::move(save_info), default_download_directory, url, referrer_url, |
258 calculate_hash, stream.Pass(), bound_net_log, | 263 calculate_hash, std::move(stream), bound_net_log, std::move(psb), |
259 psb.Pass(), observer, weak_ptr_factory_.GetWeakPtr()); | 264 observer, weak_ptr_factory_.GetWeakPtr()); |
260 } | 265 } |
261 | 266 |
262 void DownloadFileWithDelayFactory::AddRenameCallback(base::Closure callback) { | 267 void DownloadFileWithDelayFactory::AddRenameCallback(base::Closure callback) { |
263 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 268 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
264 rename_callbacks_.push_back(callback); | 269 rename_callbacks_.push_back(callback); |
265 if (waiting_) | 270 if (waiting_) |
266 base::MessageLoopForUI::current()->QuitWhenIdle(); | 271 base::MessageLoopForUI::current()->QuitWhenIdle(); |
267 } | 272 } |
268 | 273 |
269 void DownloadFileWithDelayFactory::GetAllRenameCallbacks( | 274 void DownloadFileWithDelayFactory::GetAllRenameCallbacks( |
270 std::vector<base::Closure>* results) { | 275 std::vector<base::Closure>* results) { |
271 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 276 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
272 results->swap(rename_callbacks_); | 277 results->swap(rename_callbacks_); |
273 } | 278 } |
274 | 279 |
275 void DownloadFileWithDelayFactory::WaitForSomeCallback() { | 280 void DownloadFileWithDelayFactory::WaitForSomeCallback() { |
276 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 281 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
277 | 282 |
278 if (rename_callbacks_.empty()) { | 283 if (rename_callbacks_.empty()) { |
279 waiting_ = true; | 284 waiting_ = true; |
280 RunMessageLoop(); | 285 RunMessageLoop(); |
281 waiting_ = false; | 286 waiting_ = false; |
282 } | 287 } |
283 } | 288 } |
284 | 289 |
285 class CountingDownloadFile : public DownloadFileImpl { | 290 class CountingDownloadFile : public DownloadFileImpl { |
286 public: | 291 public: |
287 CountingDownloadFile( | 292 CountingDownloadFile(scoped_ptr<DownloadSaveInfo> save_info, |
288 scoped_ptr<DownloadSaveInfo> save_info, | 293 const base::FilePath& default_downloads_directory, |
289 const base::FilePath& default_downloads_directory, | 294 const GURL& url, |
290 const GURL& url, | 295 const GURL& referrer_url, |
291 const GURL& referrer_url, | 296 bool calculate_hash, |
292 bool calculate_hash, | 297 scoped_ptr<ByteStreamReader> stream, |
293 scoped_ptr<ByteStreamReader> stream, | 298 const net::BoundNetLog& bound_net_log, |
294 const net::BoundNetLog& bound_net_log, | 299 scoped_ptr<PowerSaveBlocker> power_save_blocker, |
295 scoped_ptr<PowerSaveBlocker> power_save_blocker, | 300 base::WeakPtr<DownloadDestinationObserver> observer) |
296 base::WeakPtr<DownloadDestinationObserver> observer) | 301 : DownloadFileImpl(std::move(save_info), |
297 : DownloadFileImpl(save_info.Pass(), default_downloads_directory, | 302 default_downloads_directory, |
298 url, referrer_url, calculate_hash, | 303 url, |
299 stream.Pass(), bound_net_log, observer) {} | 304 referrer_url, |
| 305 calculate_hash, |
| 306 std::move(stream), |
| 307 bound_net_log, |
| 308 observer) {} |
300 | 309 |
301 ~CountingDownloadFile() override { | 310 ~CountingDownloadFile() override { |
302 DCHECK_CURRENTLY_ON(BrowserThread::FILE); | 311 DCHECK_CURRENTLY_ON(BrowserThread::FILE); |
303 active_files_--; | 312 active_files_--; |
304 } | 313 } |
305 | 314 |
306 void Initialize(const InitializeCallback& callback) override { | 315 void Initialize(const InitializeCallback& callback) override { |
307 DCHECK_CURRENTLY_ON(BrowserThread::FILE); | 316 DCHECK_CURRENTLY_ON(BrowserThread::FILE); |
308 active_files_++; | 317 active_files_++; |
309 return DownloadFileImpl::Initialize(callback); | 318 return DownloadFileImpl::Initialize(callback); |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
345 const GURL& url, | 354 const GURL& url, |
346 const GURL& referrer_url, | 355 const GURL& referrer_url, |
347 bool calculate_hash, | 356 bool calculate_hash, |
348 scoped_ptr<ByteStreamReader> stream, | 357 scoped_ptr<ByteStreamReader> stream, |
349 const net::BoundNetLog& bound_net_log, | 358 const net::BoundNetLog& bound_net_log, |
350 base::WeakPtr<DownloadDestinationObserver> observer) override { | 359 base::WeakPtr<DownloadDestinationObserver> observer) override { |
351 scoped_ptr<PowerSaveBlocker> psb(PowerSaveBlocker::Create( | 360 scoped_ptr<PowerSaveBlocker> psb(PowerSaveBlocker::Create( |
352 PowerSaveBlocker::kPowerSaveBlockPreventAppSuspension, | 361 PowerSaveBlocker::kPowerSaveBlockPreventAppSuspension, |
353 PowerSaveBlocker::kReasonOther, "Download in progress")); | 362 PowerSaveBlocker::kReasonOther, "Download in progress")); |
354 return new CountingDownloadFile( | 363 return new CountingDownloadFile( |
355 save_info.Pass(), default_downloads_directory, url, referrer_url, | 364 std::move(save_info), default_downloads_directory, url, referrer_url, |
356 calculate_hash, stream.Pass(), bound_net_log, | 365 calculate_hash, std::move(stream), bound_net_log, std::move(psb), |
357 psb.Pass(), observer); | 366 observer); |
358 } | 367 } |
359 }; | 368 }; |
360 | 369 |
361 class TestShellDownloadManagerDelegate : public ShellDownloadManagerDelegate { | 370 class TestShellDownloadManagerDelegate : public ShellDownloadManagerDelegate { |
362 public: | 371 public: |
363 TestShellDownloadManagerDelegate() | 372 TestShellDownloadManagerDelegate() |
364 : delay_download_open_(false) {} | 373 : delay_download_open_(false) {} |
365 ~TestShellDownloadManagerDelegate() override {} | 374 ~TestShellDownloadManagerDelegate() override {} |
366 | 375 |
367 bool ShouldOpenDownload( | 376 bool ShouldOpenDownload( |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
440 scoped_ptr<net::test_server::HttpResponse> HandleRequestAndSendRedirectResponse( | 449 scoped_ptr<net::test_server::HttpResponse> HandleRequestAndSendRedirectResponse( |
441 const std::string& relative_url, | 450 const std::string& relative_url, |
442 const GURL& target_url, | 451 const GURL& target_url, |
443 const net::test_server::HttpRequest& request) { | 452 const net::test_server::HttpRequest& request) { |
444 scoped_ptr<net::test_server::BasicHttpResponse> response; | 453 scoped_ptr<net::test_server::BasicHttpResponse> response; |
445 if (request.relative_url == relative_url) { | 454 if (request.relative_url == relative_url) { |
446 response.reset(new net::test_server::BasicHttpResponse); | 455 response.reset(new net::test_server::BasicHttpResponse); |
447 response->set_code(net::HTTP_FOUND); | 456 response->set_code(net::HTTP_FOUND); |
448 response->AddCustomHeader("Location", target_url.spec()); | 457 response->AddCustomHeader("Location", target_url.spec()); |
449 } | 458 } |
450 return response.Pass(); | 459 return std::move(response); |
451 } | 460 } |
452 | 461 |
453 // Creates a request handler for EmbeddedTestServer that responds with a HTTP | 462 // Creates a request handler for EmbeddedTestServer that responds with a HTTP |
454 // 302 redirect if the request URL matches |relative_url|. | 463 // 302 redirect if the request URL matches |relative_url|. |
455 net::EmbeddedTestServer::HandleRequestCallback CreateRedirectHandler( | 464 net::EmbeddedTestServer::HandleRequestCallback CreateRedirectHandler( |
456 const std::string& relative_url, | 465 const std::string& relative_url, |
457 const GURL& target_url) { | 466 const GURL& target_url) { |
458 return base::Bind( | 467 return base::Bind( |
459 &HandleRequestAndSendRedirectResponse, relative_url, target_url); | 468 &HandleRequestAndSendRedirectResponse, relative_url, target_url); |
460 } | 469 } |
461 | 470 |
462 // Request handler to be used with CreateBasicResponseHandler(). | 471 // Request handler to be used with CreateBasicResponseHandler(). |
463 scoped_ptr<net::test_server::HttpResponse> HandleRequestAndSendBasicResponse( | 472 scoped_ptr<net::test_server::HttpResponse> HandleRequestAndSendBasicResponse( |
464 const std::string& relative_url, | 473 const std::string& relative_url, |
465 const base::StringPairs& headers, | 474 const base::StringPairs& headers, |
466 const std::string& content_type, | 475 const std::string& content_type, |
467 const std::string& body, | 476 const std::string& body, |
468 const net::test_server::HttpRequest& request) { | 477 const net::test_server::HttpRequest& request) { |
469 scoped_ptr<net::test_server::BasicHttpResponse> response; | 478 scoped_ptr<net::test_server::BasicHttpResponse> response; |
470 if (request.relative_url == relative_url) { | 479 if (request.relative_url == relative_url) { |
471 response.reset(new net::test_server::BasicHttpResponse); | 480 response.reset(new net::test_server::BasicHttpResponse); |
472 for (const auto& pair : headers) | 481 for (const auto& pair : headers) |
473 response->AddCustomHeader(pair.first, pair.second); | 482 response->AddCustomHeader(pair.first, pair.second); |
474 response->set_content_type(content_type); | 483 response->set_content_type(content_type); |
475 response->set_content(body); | 484 response->set_content(body); |
476 } | 485 } |
477 return response.Pass(); | 486 return std::move(response); |
478 } | 487 } |
479 | 488 |
480 // Creates a request handler for an EmbeddedTestServer that response with an | 489 // Creates a request handler for an EmbeddedTestServer that response with an |
481 // HTTP 200 status code, a Content-Type header and a body. | 490 // HTTP 200 status code, a Content-Type header and a body. |
482 net::EmbeddedTestServer::HandleRequestCallback CreateBasicResponseHandler( | 491 net::EmbeddedTestServer::HandleRequestCallback CreateBasicResponseHandler( |
483 const std::string& relative_url, | 492 const std::string& relative_url, |
484 const base::StringPairs& headers, | 493 const base::StringPairs& headers, |
485 const std::string& content_type, | 494 const std::string& content_type, |
486 const std::string& body) { | 495 const std::string& body) { |
487 return base::Bind(&HandleRequestAndSendBasicResponse, relative_url, headers, | 496 return base::Bind(&HandleRequestAndSendBasicResponse, relative_url, headers, |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
587 | 596 |
588 void WaitForCompletion(DownloadItem* download) { | 597 void WaitForCompletion(DownloadItem* download) { |
589 DownloadUpdatedObserver( | 598 DownloadUpdatedObserver( |
590 download, base::Bind(&IsDownloadInState, DownloadItem::COMPLETE)) | 599 download, base::Bind(&IsDownloadInState, DownloadItem::COMPLETE)) |
591 .WaitForEvent(); | 600 .WaitForEvent(); |
592 } | 601 } |
593 | 602 |
594 // Note: Cannot be used with other alternative DownloadFileFactorys | 603 // Note: Cannot be used with other alternative DownloadFileFactorys |
595 void SetupEnsureNoPendingDownloads() { | 604 void SetupEnsureNoPendingDownloads() { |
596 DownloadManagerForShell(shell())->SetDownloadFileFactoryForTesting( | 605 DownloadManagerForShell(shell())->SetDownloadFileFactoryForTesting( |
597 scoped_ptr<DownloadFileFactory>( | 606 scoped_ptr<DownloadFileFactory>(new CountingDownloadFileFactory())); |
598 new CountingDownloadFileFactory()).Pass()); | |
599 } | 607 } |
600 | 608 |
601 bool EnsureNoPendingDownloads() { | 609 bool EnsureNoPendingDownloads() { |
602 bool result = true; | 610 bool result = true; |
603 BrowserThread::PostTask( | 611 BrowserThread::PostTask( |
604 BrowserThread::IO, FROM_HERE, | 612 BrowserThread::IO, FROM_HERE, |
605 base::Bind(&EnsureNoPendingDownloadJobsOnIO, &result)); | 613 base::Bind(&EnsureNoPendingDownloadJobsOnIO, &result)); |
606 base::MessageLoop::current()->Run(); | 614 base::MessageLoop::current()->Run(); |
607 return result && | 615 return result && |
608 (CountingDownloadFile::GetNumberActiveFilesFromFileThread() == 0); | 616 (CountingDownloadFile::GetNumberActiveFilesFromFileThread() == 0); |
(...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
848 #endif | 856 #endif |
849 | 857 |
850 // Try to cancel just before we release the download file, by delaying final | 858 // Try to cancel just before we release the download file, by delaying final |
851 // rename callback. | 859 // rename callback. |
852 IN_PROC_BROWSER_TEST_F(DownloadContentTest, CancelAtFinalRename) { | 860 IN_PROC_BROWSER_TEST_F(DownloadContentTest, CancelAtFinalRename) { |
853 // Setup new factory. | 861 // Setup new factory. |
854 DownloadFileWithDelayFactory* file_factory = | 862 DownloadFileWithDelayFactory* file_factory = |
855 new DownloadFileWithDelayFactory(); | 863 new DownloadFileWithDelayFactory(); |
856 DownloadManagerImpl* download_manager(DownloadManagerForShell(shell())); | 864 DownloadManagerImpl* download_manager(DownloadManagerForShell(shell())); |
857 download_manager->SetDownloadFileFactoryForTesting( | 865 download_manager->SetDownloadFileFactoryForTesting( |
858 scoped_ptr<DownloadFileFactory>(file_factory).Pass()); | 866 scoped_ptr<DownloadFileFactory>(file_factory)); |
859 | 867 |
860 // Create a download | 868 // Create a download |
861 NavigateToURL(shell(), | 869 NavigateToURL(shell(), |
862 net::URLRequestMockHTTPJob::GetMockUrl("download-test.lib")); | 870 net::URLRequestMockHTTPJob::GetMockUrl("download-test.lib")); |
863 | 871 |
864 // Wait until the first (intermediate file) rename and execute the callback. | 872 // Wait until the first (intermediate file) rename and execute the callback. |
865 file_factory->WaitForSomeCallback(); | 873 file_factory->WaitForSomeCallback(); |
866 std::vector<base::Closure> callbacks; | 874 std::vector<base::Closure> callbacks; |
867 file_factory->GetAllRenameCallbacks(&callbacks); | 875 file_factory->GetAllRenameCallbacks(&callbacks); |
868 ASSERT_EQ(1u, callbacks.size()); | 876 ASSERT_EQ(1u, callbacks.size()); |
(...skipping 28 matching lines...) Expand all Loading... |
897 IN_PROC_BROWSER_TEST_F(DownloadContentTest, CancelAtRelease) { | 905 IN_PROC_BROWSER_TEST_F(DownloadContentTest, CancelAtRelease) { |
898 DownloadManagerImpl* download_manager(DownloadManagerForShell(shell())); | 906 DownloadManagerImpl* download_manager(DownloadManagerForShell(shell())); |
899 | 907 |
900 // Mark delegate for delayed open. | 908 // Mark delegate for delayed open. |
901 GetDownloadManagerDelegate()->SetDelayedOpen(true); | 909 GetDownloadManagerDelegate()->SetDelayedOpen(true); |
902 | 910 |
903 // Setup new factory. | 911 // Setup new factory. |
904 DownloadFileWithDelayFactory* file_factory = | 912 DownloadFileWithDelayFactory* file_factory = |
905 new DownloadFileWithDelayFactory(); | 913 new DownloadFileWithDelayFactory(); |
906 download_manager->SetDownloadFileFactoryForTesting( | 914 download_manager->SetDownloadFileFactoryForTesting( |
907 scoped_ptr<DownloadFileFactory>(file_factory).Pass()); | 915 scoped_ptr<DownloadFileFactory>(file_factory)); |
908 | 916 |
909 // Create a download | 917 // Create a download |
910 NavigateToURL(shell(), | 918 NavigateToURL(shell(), |
911 net::URLRequestMockHTTPJob::GetMockUrl("download-test.lib")); | 919 net::URLRequestMockHTTPJob::GetMockUrl("download-test.lib")); |
912 | 920 |
913 // Wait until the first (intermediate file) rename and execute the callback. | 921 // Wait until the first (intermediate file) rename and execute the callback. |
914 file_factory->WaitForSomeCallback(); | 922 file_factory->WaitForSomeCallback(); |
915 std::vector<base::Closure> callbacks; | 923 std::vector<base::Closure> callbacks; |
916 file_factory->GetAllRenameCallbacks(&callbacks); | 924 file_factory->GetAllRenameCallbacks(&callbacks); |
917 ASSERT_EQ(1u, callbacks.size()); | 925 ASSERT_EQ(1u, callbacks.size()); |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1008 IN_PROC_BROWSER_TEST_F(DownloadContentTest, ShutdownAtRelease) { | 1016 IN_PROC_BROWSER_TEST_F(DownloadContentTest, ShutdownAtRelease) { |
1009 DownloadManagerImpl* download_manager(DownloadManagerForShell(shell())); | 1017 DownloadManagerImpl* download_manager(DownloadManagerForShell(shell())); |
1010 | 1018 |
1011 // Mark delegate for delayed open. | 1019 // Mark delegate for delayed open. |
1012 GetDownloadManagerDelegate()->SetDelayedOpen(true); | 1020 GetDownloadManagerDelegate()->SetDelayedOpen(true); |
1013 | 1021 |
1014 // Setup new factory. | 1022 // Setup new factory. |
1015 DownloadFileWithDelayFactory* file_factory = | 1023 DownloadFileWithDelayFactory* file_factory = |
1016 new DownloadFileWithDelayFactory(); | 1024 new DownloadFileWithDelayFactory(); |
1017 download_manager->SetDownloadFileFactoryForTesting( | 1025 download_manager->SetDownloadFileFactoryForTesting( |
1018 scoped_ptr<DownloadFileFactory>(file_factory).Pass()); | 1026 scoped_ptr<DownloadFileFactory>(file_factory)); |
1019 | 1027 |
1020 // Create a download | 1028 // Create a download |
1021 NavigateToURL(shell(), | 1029 NavigateToURL(shell(), |
1022 net::URLRequestMockHTTPJob::GetMockUrl("download-test.lib")); | 1030 net::URLRequestMockHTTPJob::GetMockUrl("download-test.lib")); |
1023 | 1031 |
1024 // Wait until the first (intermediate file) rename and execute the callback. | 1032 // Wait until the first (intermediate file) rename and execute the callback. |
1025 file_factory->WaitForSomeCallback(); | 1033 file_factory->WaitForSomeCallback(); |
1026 std::vector<base::Closure> callbacks; | 1034 std::vector<base::Closure> callbacks; |
1027 file_factory->GetAllRenameCallbacks(&callbacks); | 1035 file_factory->GetAllRenameCallbacks(&callbacks); |
1028 ASSERT_EQ(1u, callbacks.size()); | 1036 ASSERT_EQ(1u, callbacks.size()); |
(...skipping 626 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1655 "/foo", cookie_header, "application/octet-stream", "abcd")); | 1663 "/foo", cookie_header, "application/octet-stream", "abcd")); |
1656 origin_two.RegisterRequestHandler( | 1664 origin_two.RegisterRequestHandler( |
1657 CreateRedirectHandler("/bar", origin_one.GetURL("/foo"))); | 1665 CreateRedirectHandler("/bar", origin_one.GetURL("/foo"))); |
1658 | 1666 |
1659 // Download the file. | 1667 // Download the file. |
1660 SetupEnsureNoPendingDownloads(); | 1668 SetupEnsureNoPendingDownloads(); |
1661 scoped_ptr<DownloadUrlParameters> download_parameters( | 1669 scoped_ptr<DownloadUrlParameters> download_parameters( |
1662 DownloadUrlParameters::FromWebContents(shell()->web_contents(), | 1670 DownloadUrlParameters::FromWebContents(shell()->web_contents(), |
1663 origin_two.GetURL("/bar"))); | 1671 origin_two.GetURL("/bar"))); |
1664 scoped_ptr<DownloadTestObserver> observer(CreateWaiter(shell(), 1)); | 1672 scoped_ptr<DownloadTestObserver> observer(CreateWaiter(shell(), 1)); |
1665 DownloadManagerForShell(shell())->DownloadUrl(download_parameters.Pass()); | 1673 DownloadManagerForShell(shell())->DownloadUrl(std::move(download_parameters)); |
1666 observer->WaitForFinished(); | 1674 observer->WaitForFinished(); |
1667 | 1675 |
1668 // Get the important info from other threads and check it. | 1676 // Get the important info from other threads and check it. |
1669 EXPECT_TRUE(EnsureNoPendingDownloads()); | 1677 EXPECT_TRUE(EnsureNoPendingDownloads()); |
1670 | 1678 |
1671 std::vector<DownloadItem*> downloads; | 1679 std::vector<DownloadItem*> downloads; |
1672 DownloadManagerForShell(shell())->GetAllDownloads(&downloads); | 1680 DownloadManagerForShell(shell())->GetAllDownloads(&downloads); |
1673 ASSERT_EQ(1u, downloads.size()); | 1681 ASSERT_EQ(1u, downloads.size()); |
1674 ASSERT_EQ(DownloadItem::COMPLETE, downloads[0]->GetState()); | 1682 ASSERT_EQ(DownloadItem::COMPLETE, downloads[0]->GetState()); |
1675 | 1683 |
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1802 | 1810 |
1803 std::vector<DownloadItem*> downloads; | 1811 std::vector<DownloadItem*> downloads; |
1804 DownloadManagerForShell(shell())->GetAllDownloads(&downloads); | 1812 DownloadManagerForShell(shell())->GetAllDownloads(&downloads); |
1805 ASSERT_EQ(1u, downloads.size()); | 1813 ASSERT_EQ(1u, downloads.size()); |
1806 | 1814 |
1807 EXPECT_EQ(FILE_PATH_LITERAL("Jumboshrimp.txt"), | 1815 EXPECT_EQ(FILE_PATH_LITERAL("Jumboshrimp.txt"), |
1808 downloads[0]->GetTargetFilePath().BaseName().value()); | 1816 downloads[0]->GetTargetFilePath().BaseName().value()); |
1809 } | 1817 } |
1810 | 1818 |
1811 } // namespace content | 1819 } // namespace content |
OLD | NEW |