Index: content/browser/download/parallel_download_job_unittest.cc |
diff --git a/content/browser/download/parallel_download_job_unittest.cc b/content/browser/download/parallel_download_job_unittest.cc |
index 2690ea4739bd6e735780c94356c5e6cec7af70ab..ae7d5b04c5286e40b4db829ce1d12416fc55efb3 100644 |
--- a/content/browser/download/parallel_download_job_unittest.cc |
+++ b/content/browser/download/parallel_download_job_unittest.cc |
@@ -9,9 +9,11 @@ |
#include "base/memory/ptr_util.h" |
#include "base/run_loop.h" |
+#include "base/test/scoped_task_environment.h" |
#include "content/browser/download/download_destination_observer.h" |
#include "content/browser/download/download_file_impl.h" |
#include "content/browser/download/download_item_impl_delegate.h" |
+#include "content/browser/download/download_task_runner.h" |
#include "content/browser/download/mock_download_item_impl.h" |
#include "content/browser/download/parallel_download_utils.h" |
#include "content/public/test/test_browser_thread_bundle.h" |
@@ -112,6 +114,11 @@ class ParallelDownloadJobForTest : public ParallelDownloadJob { |
class ParallelDownloadJobTest : public testing::Test { |
public: |
+ ParallelDownloadJobTest() |
+ : task_environment_( |
+ base::test::ScopedTaskEnvironment::MainThreadType::UI, |
+ base::test::ScopedTaskEnvironment::ExecutionMode::QUEUED) {} |
+ |
void CreateParallelJob(int64_t initial_request_offset, |
int64_t content_length, |
const DownloadItem::ReceivedSlices& slices, |
@@ -173,6 +180,7 @@ class ParallelDownloadJobTest : public testing::Test { |
file_initialized_ = true; |
} |
+ base::test::ScopedTaskEnvironment task_environment_; |
content::TestBrowserThreadBundle browser_threads_; |
std::unique_ptr<DownloadItemImplDelegate> item_delegate_; |
std::unique_ptr<MockDownloadItemImpl> download_item_; |
@@ -379,10 +387,15 @@ TEST_F(ParallelDownloadJobTest, ParallelRequestNotCreatedUntilFileInitialized) { |
EXPECT_CALL(*input_stream, RegisterCallback(_)); |
EXPECT_CALL(*input_stream, Read(_, _)); |
EXPECT_CALL(*(observer.get()), DestinationUpdate(_, _, _)); |
- base::RunLoop().RunUntilIdle(); |
+ task_environment_.RunUntilIdle(); |
EXPECT_TRUE(file_initialized_); |
EXPECT_EQ(1u, job_->workers().size()); |
DestroyParallelJob(); |
+ |
+ // The download file lives on the download sequence, and must |
+ // be deleted there. |
+ GetDownloadTaskRunner()->DeleteSoon(FROM_HERE, std::move(download_file)); |
+ task_environment_.RunUntilIdle(); |
} |
} // namespace content |