diff options
author | hashimoto@chromium.org <hashimoto@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-06-21 16:21:30 +0000 |
---|---|---|
committer | hashimoto@chromium.org <hashimoto@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-06-21 16:21:30 +0000 |
commit | 5bbabede9673d47ad169bdecd62103e2e297149d (patch) | |
tree | 775d63357ec49451e60590e8660b44a169a2726d /chrome/browser/chromeos/drive | |
parent | 827fab41494e7256d28b62b0bb94b824f32c5db1 (diff) | |
download | chromium_src-5bbabede9673d47ad169bdecd62103e2e297149d.zip chromium_src-5bbabede9673d47ad169bdecd62103e2e297149d.tar.gz chromium_src-5bbabede9673d47ad169bdecd62103e2e297149d.tar.bz2 |
drive: Pass TaskRunner to DriveUploader explicitly
BUG=252588
TEST=unit_tests
Review URL: https://chromiumcodereview.appspot.com/17520005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@207852 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/chromeos/drive')
9 files changed, 56 insertions, 45 deletions
diff --git a/chrome/browser/chromeos/drive/change_list_loader_unittest.cc b/chrome/browser/chromeos/drive/change_list_loader_unittest.cc index c9eef71..4a25350 100644 --- a/chrome/browser/chromeos/drive/change_list_loader_unittest.cc +++ b/chrome/browser/chromeos/drive/change_list_loader_unittest.cc @@ -32,7 +32,8 @@ class ChangeListLoaderTest : public testing::Test { ASSERT_TRUE(drive_service_->LoadAccountMetadataForWapi( "chromeos/gdata/account_metadata.json")); - scheduler_.reset(new JobScheduler(profile_.get(), drive_service_.get())); + scheduler_.reset(new JobScheduler(profile_.get(), drive_service_.get(), + base::MessageLoopProxy::current())); metadata_storage_.reset(new ResourceMetadataStorage( temp_dir_.path(), base::MessageLoopProxy::current())); ASSERT_TRUE(metadata_storage_->Initialize()); diff --git a/chrome/browser/chromeos/drive/drive_app_registry_unittest.cc b/chrome/browser/chromeos/drive/drive_app_registry_unittest.cc index 65c3055..3324eed 100644 --- a/chrome/browser/chromeos/drive/drive_app_registry_unittest.cc +++ b/chrome/browser/chromeos/drive/drive_app_registry_unittest.cc @@ -24,8 +24,8 @@ class DriveAppRegistryTest : public testing::Test { fake_drive_service_.reset(new FakeDriveService); fake_drive_service_->LoadAppListForDriveApi("chromeos/drive/applist.json"); - scheduler_.reset( - new JobScheduler(profile_.get(), fake_drive_service_.get())); + scheduler_.reset(new JobScheduler(profile_.get(), fake_drive_service_.get(), + base::MessageLoopProxy::current())); web_apps_registry_.reset(new DriveAppRegistry(scheduler_.get())); web_apps_registry_->Update(); diff --git a/chrome/browser/chromeos/drive/drive_integration_service.cc b/chrome/browser/chromeos/drive/drive_integration_service.cc index dd13ea1..0514abf 100644 --- a/chrome/browser/chromeos/drive/drive_integration_service.cc +++ b/chrome/browser/chromeos/drive/drive_integration_service.cc @@ -165,7 +165,8 @@ DriveIntegrationService::DriveIntegrationService( GURL(google_apis::GDataWapiUrlGenerator::kBaseUrlForProduction), GetDriveUserAgent())); } - scheduler_.reset(new JobScheduler(profile_, drive_service_.get())); + scheduler_.reset(new JobScheduler( + profile_, drive_service_.get(), blocking_task_runner_.get())); metadata_storage_.reset(new internal::ResourceMetadataStorage( cache_root_directory_.Append(util::kMetadataDirectory), blocking_task_runner_.get())); diff --git a/chrome/browser/chromeos/drive/file_system/operation_test_base.cc b/chrome/browser/chromeos/drive/file_system/operation_test_base.cc index d253f1d..8680005 100644 --- a/chrome/browser/chromeos/drive/file_system/operation_test_base.cc +++ b/chrome/browser/chromeos/drive/file_system/operation_test_base.cc @@ -57,8 +57,8 @@ void OperationTestBase::SetUp() { fake_drive_service_->LoadAccountMetadataForWapi( "chromeos/gdata/account_metadata.json"); - scheduler_.reset( - new JobScheduler(profile_.get(), fake_drive_service_.get())); + scheduler_.reset(new JobScheduler(profile_.get(), fake_drive_service_.get(), + blocking_task_runner_)); metadata_storage_.reset(new internal::ResourceMetadataStorage( temp_dir_.path(), blocking_task_runner_)); diff --git a/chrome/browser/chromeos/drive/file_system_unittest.cc b/chrome/browser/chromeos/drive/file_system_unittest.cc index 4c56a7d..4361966 100644 --- a/chrome/browser/chromeos/drive/file_system_unittest.cc +++ b/chrome/browser/chromeos/drive/file_system_unittest.cc @@ -75,7 +75,8 @@ class FileSystemTest : public testing::Test { fake_free_disk_space_getter_.reset(new FakeFreeDiskSpaceGetter); scheduler_.reset(new JobScheduler(profile_.get(), - fake_drive_service_.get())); + fake_drive_service_.get(), + base::MessageLoopProxy::current())); ASSERT_TRUE(file_util::CreateDirectory(util::GetCacheRootPath( profile_.get()).Append(util::kMetadataDirectory))); diff --git a/chrome/browser/chromeos/drive/job_scheduler.cc b/chrome/browser/chromeos/drive/job_scheduler.cc index 855d637..773cddc 100644 --- a/chrome/browser/chromeos/drive/job_scheduler.cc +++ b/chrome/browser/chromeos/drive/job_scheduler.cc @@ -143,11 +143,12 @@ struct JobScheduler::ResumeUploadParams { JobScheduler::JobScheduler( Profile* profile, - DriveServiceInterface* drive_service) + DriveServiceInterface* drive_service, + base::SequencedTaskRunner* blocking_task_runner) : throttle_count_(0), disable_throttling_(false), drive_service_(drive_service), - uploader_(new DriveUploader(drive_service)), + uploader_(new DriveUploader(drive_service, blocking_task_runner)), profile_(profile), weak_ptr_factory_(this) { DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); diff --git a/chrome/browser/chromeos/drive/job_scheduler.h b/chrome/browser/chromeos/drive/job_scheduler.h index 5dc2aa1..bc02628 100644 --- a/chrome/browser/chromeos/drive/job_scheduler.h +++ b/chrome/browser/chromeos/drive/job_scheduler.h @@ -19,6 +19,10 @@ class Profile; +namespace base { +class SeqencedTaskRunner; +} + namespace drive { // The JobScheduler is responsible for queuing and scheduling drive @@ -48,7 +52,8 @@ class JobScheduler public JobListInterface { public: JobScheduler(Profile* profile, - DriveServiceInterface* drive_service); + DriveServiceInterface* drive_service, + base::SequencedTaskRunner* blocking_task_runner); virtual ~JobScheduler(); // JobListInterface overrides. diff --git a/chrome/browser/chromeos/drive/job_scheduler_unittest.cc b/chrome/browser/chromeos/drive/job_scheduler_unittest.cc index b0bbd81..8f6848d 100644 --- a/chrome/browser/chromeos/drive/job_scheduler_unittest.cc +++ b/chrome/browser/chromeos/drive/job_scheduler_unittest.cc @@ -9,12 +9,12 @@ #include "base/bind.h" #include "base/file_util.h" #include "base/prefs/pref_service.h" +#include "base/run_loop.h" #include "base/stl_util.h" -#include "base/threading/sequenced_worker_pool.h" -#include "chrome/browser/chromeos/drive/test_util.h" #include "chrome/browser/drive/fake_drive_service.h" #include "chrome/browser/google_apis/drive_api_parser.h" #include "chrome/browser/google_apis/gdata_wapi_parser.h" +#include "chrome/browser/google_apis/test_util.h" #include "chrome/common/pref_names.h" #include "chrome/test/base/testing_profile.h" #include "content/public/test/test_browser_thread_bundle.h" @@ -116,7 +116,8 @@ class JobSchedulerTest : public testing::Test { "chromeos/drive/applist.json"); scheduler_.reset(new JobScheduler(profile_.get(), - fake_drive_service_.get())); + fake_drive_service_.get(), + base::MessageLoopProxy::current())); scheduler_->SetDisableThrottling(true); } @@ -124,7 +125,7 @@ class JobSchedulerTest : public testing::Test { // The scheduler should be deleted before NetworkLibrary, as it // registers itself as observer of NetworkLibrary. scheduler_.reset(); - google_apis::test_util::RunBlockingPoolTask(); + base::RunLoop().RunUntilIdle(); fake_drive_service_.reset(); fake_network_change_notifier_.reset(); } @@ -175,7 +176,7 @@ TEST_F(JobSchedulerTest, GetAboutResource) { scheduler_->GetAboutResource( google_apis::test_util::CreateCopyResultCallback( &error, &about_resource)); - google_apis::test_util::RunBlockingPoolTask(); + base::RunLoop().RunUntilIdle(); ASSERT_EQ(google_apis::HTTP_SUCCESS, error); ASSERT_TRUE(about_resource); } @@ -188,7 +189,7 @@ TEST_F(JobSchedulerTest, GetAppList) { scheduler_->GetAppList( google_apis::test_util::CreateCopyResultCallback(&error, &app_list)); - google_apis::test_util::RunBlockingPoolTask(); + base::RunLoop().RunUntilIdle(); ASSERT_EQ(google_apis::HTTP_SUCCESS, error); ASSERT_TRUE(app_list); @@ -203,7 +204,7 @@ TEST_F(JobSchedulerTest, GetAllResourceList) { scheduler_->GetAllResourceList( google_apis::test_util::CreateCopyResultCallback( &error, &resource_list)); - google_apis::test_util::RunBlockingPoolTask(); + base::RunLoop().RunUntilIdle(); ASSERT_EQ(google_apis::HTTP_SUCCESS, error); ASSERT_TRUE(resource_list); @@ -219,7 +220,7 @@ TEST_F(JobSchedulerTest, GetResourceListInDirectory) { fake_drive_service_->GetRootResourceId(), google_apis::test_util::CreateCopyResultCallback( &error, &resource_list)); - google_apis::test_util::RunBlockingPoolTask(); + base::RunLoop().RunUntilIdle(); ASSERT_EQ(google_apis::HTTP_SUCCESS, error); ASSERT_TRUE(resource_list); @@ -235,7 +236,7 @@ TEST_F(JobSchedulerTest, Search) { "File", // search query google_apis::test_util::CreateCopyResultCallback( &error, &resource_list)); - google_apis::test_util::RunBlockingPoolTask(); + base::RunLoop().RunUntilIdle(); ASSERT_EQ(google_apis::HTTP_SUCCESS, error); ASSERT_TRUE(resource_list); @@ -256,7 +257,7 @@ TEST_F(JobSchedulerTest, GetChangeList) { "new directory", google_apis::test_util::CreateCopyResultCallback( &error, &resource_entry)); - google_apis::test_util::RunBlockingPoolTask(); + base::RunLoop().RunUntilIdle(); ASSERT_EQ(google_apis::HTTP_CREATED, error); } @@ -266,7 +267,7 @@ TEST_F(JobSchedulerTest, GetChangeList) { 654321 + 1, // start_changestamp google_apis::test_util::CreateCopyResultCallback( &error, &resource_list)); - google_apis::test_util::RunBlockingPoolTask(); + base::RunLoop().RunUntilIdle(); ASSERT_EQ(google_apis::HTTP_SUCCESS, error); ASSERT_TRUE(resource_list); @@ -282,7 +283,7 @@ TEST_F(JobSchedulerTest, ContinueGetResourceList) { scheduler_->GetAllResourceList( google_apis::test_util::CreateCopyResultCallback( &error, &resource_list)); - google_apis::test_util::RunBlockingPoolTask(); + base::RunLoop().RunUntilIdle(); ASSERT_EQ(google_apis::HTTP_SUCCESS, error); ASSERT_TRUE(resource_list); @@ -300,7 +301,7 @@ TEST_F(JobSchedulerTest, ContinueGetResourceList) { next_url, google_apis::test_util::CreateCopyResultCallback( &error, &resource_list)); - google_apis::test_util::RunBlockingPoolTask(); + base::RunLoop().RunUntilIdle(); ASSERT_EQ(google_apis::HTTP_SUCCESS, error); ASSERT_TRUE(resource_list); @@ -316,7 +317,7 @@ TEST_F(JobSchedulerTest, GetResourceEntry) { "file:2_file_resource_id", // resource ID ClientContext(USER_INITIATED), google_apis::test_util::CreateCopyResultCallback(&error, &entry)); - google_apis::test_util::RunBlockingPoolTask(); + base::RunLoop().RunUntilIdle(); ASSERT_EQ(google_apis::HTTP_SUCCESS, error); ASSERT_TRUE(entry); @@ -330,7 +331,7 @@ TEST_F(JobSchedulerTest, DeleteResource) { scheduler_->DeleteResource( "file:2_file_resource_id", google_apis::test_util::CreateCopyResultCallback(&error)); - google_apis::test_util::RunBlockingPoolTask(); + base::RunLoop().RunUntilIdle(); ASSERT_EQ(google_apis::HTTP_SUCCESS, error); } @@ -346,7 +347,7 @@ TEST_F(JobSchedulerTest, CopyResource) { "folder:1_folder_resource_id", // parent resource ID "New Document", // new name google_apis::test_util::CreateCopyResultCallback(&error, &entry)); - google_apis::test_util::RunBlockingPoolTask(); + base::RunLoop().RunUntilIdle(); ASSERT_EQ(google_apis::HTTP_SUCCESS, error); ASSERT_TRUE(entry); @@ -362,7 +363,7 @@ TEST_F(JobSchedulerTest, CopyHostedDocument) { "document:5_document_resource_id", // resource ID "New Document", // new name google_apis::test_util::CreateCopyResultCallback(&error, &entry)); - google_apis::test_util::RunBlockingPoolTask(); + base::RunLoop().RunUntilIdle(); ASSERT_EQ(google_apis::HTTP_SUCCESS, error); ASSERT_TRUE(entry); @@ -377,7 +378,7 @@ TEST_F(JobSchedulerTest, RenameResource) { "file:2_file_resource_id", "New Name", google_apis::test_util::CreateCopyResultCallback(&error)); - google_apis::test_util::RunBlockingPoolTask(); + base::RunLoop().RunUntilIdle(); ASSERT_EQ(google_apis::HTTP_SUCCESS, error); } @@ -391,7 +392,7 @@ TEST_F(JobSchedulerTest, AddResourceToDirectory) { "folder:1_folder_resource_id", "file:2_file_resource_id", google_apis::test_util::CreateCopyResultCallback(&error)); - google_apis::test_util::RunBlockingPoolTask(); + base::RunLoop().RunUntilIdle(); ASSERT_EQ(google_apis::HTTP_SUCCESS, error); } @@ -405,7 +406,7 @@ TEST_F(JobSchedulerTest, RemoveResourceFromDirectory) { "folder:1_folder_resource_id", "file:subdirectory_file_1_id", // resource ID google_apis::test_util::CreateCopyResultCallback(&error)); - google_apis::test_util::RunBlockingPoolTask(); + base::RunLoop().RunUntilIdle(); ASSERT_EQ(google_apis::HTTP_SUCCESS, error); } @@ -420,7 +421,7 @@ TEST_F(JobSchedulerTest, AddNewDirectory) { fake_drive_service_->GetRootResourceId(), // Root directory. "New Directory", google_apis::test_util::CreateCopyResultCallback(&error, &entry)); - google_apis::test_util::RunBlockingPoolTask(); + base::RunLoop().RunUntilIdle(); ASSERT_EQ(google_apis::HTTP_CREATED, error); ASSERT_TRUE(entry); @@ -463,7 +464,7 @@ TEST_F(JobSchedulerTest, GetResourceEntryPriority) { // Reconnect to the network to start all jobs. ConnectToWifi(); - google_apis::test_util::RunBlockingPoolTask(); + base::RunLoop().RunUntilIdle(); ASSERT_EQ(resource_ids.size(), 4ul); ASSERT_EQ(resource_ids[0], resource_1); @@ -484,14 +485,14 @@ TEST_F(JobSchedulerTest, GetResourceEntryNoConnection) { base::Bind(&CopyResourceIdFromGetResourceEntryCallback, &resource_ids, resource)); - google_apis::test_util::RunBlockingPoolTask(); + base::RunLoop().RunUntilIdle(); ASSERT_EQ(resource_ids.size(), 0ul); // Reconnect to the net. ConnectToWifi(); - google_apis::test_util::RunBlockingPoolTask(); + base::RunLoop().RunUntilIdle(); ASSERT_EQ(resource_ids.size(), 1ul); ASSERT_EQ(resource_ids[0], resource); @@ -528,7 +529,7 @@ TEST_F(JobSchedulerTest, DownloadFileCellularDisabled) { scheduler_->GetAboutResource( google_apis::test_util::CreateCopyResultCallback( &metadata_error, &about_resource)); - google_apis::test_util::RunBlockingPoolTask(); + base::RunLoop().RunUntilIdle(); // Check the metadata ASSERT_EQ(google_apis::HTTP_SUCCESS, metadata_error); @@ -540,7 +541,7 @@ TEST_F(JobSchedulerTest, DownloadFileCellularDisabled) { // Switch to a Wifi connection ConnectToWifi(); - google_apis::test_util::RunBlockingPoolTask(); + base::RunLoop().RunUntilIdle(); // Check the download again EXPECT_EQ(google_apis::HTTP_SUCCESS, download_error); @@ -581,7 +582,7 @@ TEST_F(JobSchedulerTest, DownloadFileWimaxDisabled) { scheduler_->GetAboutResource( google_apis::test_util::CreateCopyResultCallback( &metadata_error, &about_resource)); - google_apis::test_util::RunBlockingPoolTask(); + base::RunLoop().RunUntilIdle(); // Check the metadata ASSERT_EQ(google_apis::HTTP_SUCCESS, metadata_error); @@ -593,7 +594,7 @@ TEST_F(JobSchedulerTest, DownloadFileWimaxDisabled) { // Switch to a Wifi connection ConnectToWifi(); - google_apis::test_util::RunBlockingPoolTask(); + base::RunLoop().RunUntilIdle(); // Check the download again EXPECT_EQ(google_apis::HTTP_SUCCESS, download_error); @@ -634,7 +635,7 @@ TEST_F(JobSchedulerTest, DownloadFileCellularEnabled) { scheduler_->GetAboutResource( google_apis::test_util::CreateCopyResultCallback( &metadata_error, &about_resource)); - google_apis::test_util::RunBlockingPoolTask(); + base::RunLoop().RunUntilIdle(); // Check the metadata ASSERT_EQ(google_apis::HTTP_SUCCESS, metadata_error); @@ -679,7 +680,7 @@ TEST_F(JobSchedulerTest, DownloadFileWimaxEnabled) { scheduler_->GetAboutResource( google_apis::test_util::CreateCopyResultCallback( &metadata_error, &about_resource)); - google_apis::test_util::RunBlockingPoolTask(); + base::RunLoop().RunUntilIdle(); // Check the metadata ASSERT_EQ(google_apis::HTTP_SUCCESS, metadata_error); @@ -775,7 +776,7 @@ TEST_F(JobSchedulerTest, JobInfo) { EXPECT_FALSE(logger.Has(JobListLogger::DONE, TYPE_COPY_HOSTED_DOCUMENT)); // Run the jobs. - google_apis::test_util::RunBlockingPoolTask(); + base::RunLoop().RunUntilIdle(); // All jobs except the BACKGROUND job should have started running (UPDATED) // and then finished (DONE). @@ -800,7 +801,7 @@ TEST_F(JobSchedulerTest, JobInfo) { // Run the background downloading job as well. ConnectToWifi(); - google_apis::test_util::RunBlockingPoolTask(); + base::RunLoop().RunUntilIdle(); // All jobs should have finished. EXPECT_EQ(0U, scheduler_->GetJobInfoList().size()); @@ -829,7 +830,7 @@ TEST_F(JobSchedulerTest, JobInfoProgress) { ClientContext(BACKGROUND), google_apis::test_util::CreateCopyResultCallback(&error, &path), google_apis::GetContentCallback()); - google_apis::test_util::RunBlockingPoolTask(); + base::RunLoop().RunUntilIdle(); std::vector<int64> download_progress; logger.GetProgressInfo(TYPE_DOWNLOAD_FILE, &download_progress); @@ -853,7 +854,7 @@ TEST_F(JobSchedulerTest, JobInfoProgress) { "plain/plain", ClientContext(BACKGROUND), google_apis::test_util::CreateCopyResultCallback(&upload_error, &entry)); - google_apis::test_util::RunBlockingPoolTask(); + base::RunLoop().RunUntilIdle(); std::vector<int64> upload_progress; logger.GetProgressInfo(TYPE_UPLOAD_NEW_FILE, &upload_progress); diff --git a/chrome/browser/chromeos/drive/sync_client_unittest.cc b/chrome/browser/chromeos/drive/sync_client_unittest.cc index f1fba44..9d1aea2 100644 --- a/chrome/browser/chromeos/drive/sync_client_unittest.cc +++ b/chrome/browser/chromeos/drive/sync_client_unittest.cc @@ -85,7 +85,8 @@ class SyncClientTest : public testing::Test { drive_service_->LoadAccountMetadataForWapi( "chromeos/gdata/account_metadata.json"); - scheduler_.reset(new JobScheduler(profile_.get(), drive_service_.get())); + scheduler_.reset(new JobScheduler(profile_.get(), drive_service_.get(), + base::MessageLoopProxy::current())); metadata_storage_.reset(new ResourceMetadataStorage( temp_dir_.path(), base::MessageLoopProxy::current())); |