diff options
author | tzik@chromium.org <tzik@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-08-15 16:41:12 +0000 |
---|---|---|
committer | tzik@chromium.org <tzik@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-08-15 17:17:55 +0000 |
commit | 5ca41a47d57e545450b8d94641ac04e4044d5b75 (patch) | |
tree | 000a6913ba4968338013054e8247429d841770ce | |
parent | ade7d2100e3321f53070956243ef1ecae724cde8 (diff) | |
download | chromium_src-5ca41a47d57e545450b8d94641ac04e4044d5b75.zip chromium_src-5ca41a47d57e545450b8d94641ac04e4044d5b75.tar.gz chromium_src-5ca41a47d57e545450b8d94641ac04e4044d5b75.tar.bz2 |
[SyncFS] Add an injection point to DriveService creation at SyncEngine::Initialize
Add an injection point for testing.
BUG=402356
Review URL: https://codereview.chromium.org/476053002
Cr-Commit-Position: refs/heads/master@{#289918}
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@289918 0039d316-1c4b-4281-b951-d872f2087c98
4 files changed, 47 insertions, 15 deletions
diff --git a/chrome/browser/sync_file_system/drive_backend/drive_backend_sync_unittest.cc b/chrome/browser/sync_file_system/drive_backend/drive_backend_sync_unittest.cc index 537a628..d04e358 100644 --- a/chrome/browser/sync_file_system/drive_backend/drive_backend_sync_unittest.cc +++ b/chrome/browser/sync_file_system/drive_backend/drive_backend_sync_unittest.cc @@ -123,6 +123,7 @@ class DriveBackendSyncTest : public testing::Test, NULL, // signin_manager NULL, // token_service NULL, // request_context + scoped_ptr<SyncEngine::DriveServiceFactory>(), in_memory_env_.get())); remote_sync_service_->AddServiceObserver(this); remote_sync_service_->InitializeForTesting( diff --git a/chrome/browser/sync_file_system/drive_backend/sync_engine.cc b/chrome/browser/sync_file_system/drive_backend/sync_engine.cc index 511f131..f85825f 100644 --- a/chrome/browser/sync_file_system/drive_backend/sync_engine.cc +++ b/chrome/browser/sync_file_system/drive_backend/sync_engine.cc @@ -63,6 +63,23 @@ class RemoteChangeProcessor; namespace drive_backend { +scoped_ptr<drive::DriveServiceInterface> +SyncEngine::DriveServiceFactory::CreateDriveService( + OAuth2TokenService* oauth2_token_service, + net::URLRequestContextGetter* url_request_context_getter, + base::SequencedTaskRunner* blocking_task_runner) { + return scoped_ptr<drive::DriveServiceInterface>( + new drive::DriveAPIService( + oauth2_token_service, + url_request_context_getter, + blocking_task_runner, + GURL(google_apis::DriveApiUrlGenerator::kBaseUrlForProduction), + GURL(google_apis::DriveApiUrlGenerator:: + kBaseDownloadUrlForProduction), + GURL(google_apis::GDataWapiUrlGenerator::kBaseUrlForProduction), + std::string() /* custom_user_agent */)); +} + class SyncEngine::WorkerObserver : public SyncWorkerInterface::Observer { public: WorkerObserver(base::SequencedTaskRunner* ui_task_runner, @@ -193,7 +210,7 @@ scoped_ptr<SyncEngine> SyncEngine::CreateForBrowserContext( extensions::ExtensionSystem::Get(context)->extension_service(); SigninManagerBase* signin_manager = SigninManagerFactory::GetForProfile(profile); - ProfileOAuth2TokenService* token_service = + OAuth2TokenService* token_service = ProfileOAuth2TokenServiceFactory::GetForProfile(profile); scoped_refptr<net::URLRequestContextGetter> request_context = context->GetRequestContext(); @@ -209,6 +226,7 @@ scoped_ptr<SyncEngine> SyncEngine::CreateForBrowserContext( signin_manager, token_service, request_context, + make_scoped_ptr(new DriveServiceFactory()), NULL /* env_override */)); sync_engine->Initialize(); @@ -259,16 +277,10 @@ void SyncEngine::Initialize() { signin_manager_->GetAuthenticatedAccountId().empty()) return; - scoped_ptr<drive::DriveServiceInterface> drive_service( - new drive::DriveAPIService( - token_service_, - request_context_, - drive_task_runner_, - GURL(google_apis::DriveApiUrlGenerator::kBaseUrlForProduction), - GURL(google_apis::DriveApiUrlGenerator:: - kBaseDownloadUrlForProduction), - GURL(google_apis::GDataWapiUrlGenerator::kBaseUrlForProduction), - std::string() /* custom_user_agent */)); + DCHECK(drive_service_factory_); + scoped_ptr<drive::DriveServiceInterface> drive_service = + drive_service_factory_->CreateDriveService( + token_service_, request_context_, drive_task_runner_); scoped_ptr<drive::DriveUploaderInterface> drive_uploader( new drive::DriveUploader(drive_service.get(), drive_task_runner_)); @@ -713,8 +725,9 @@ SyncEngine::SyncEngine( drive::DriveNotificationManager* notification_manager, ExtensionServiceInterface* extension_service, SigninManagerBase* signin_manager, - ProfileOAuth2TokenService* token_service, + OAuth2TokenService* token_service, net::URLRequestContextGetter* request_context, + scoped_ptr<DriveServiceFactory> drive_service_factory, leveldb::Env* env_override) : ui_task_runner_(ui_task_runner), worker_task_runner_(worker_task_runner), @@ -726,6 +739,7 @@ SyncEngine::SyncEngine( signin_manager_(signin_manager), token_service_(token_service), request_context_(request_context), + drive_service_factory_(drive_service_factory.Pass()), remote_change_processor_(NULL), service_state_(REMOTE_SERVICE_TEMPORARY_UNAVAILABLE), has_refresh_token_(false), diff --git a/chrome/browser/sync_file_system/drive_backend/sync_engine.h b/chrome/browser/sync_file_system/drive_backend/sync_engine.h index 8fb91a3..e8e354a 100644 --- a/chrome/browser/sync_file_system/drive_backend/sync_engine.h +++ b/chrome/browser/sync_file_system/drive_backend/sync_engine.h @@ -22,7 +22,7 @@ #include "net/base/network_change_notifier.h" class ExtensionServiceInterface; -class ProfileOAuth2TokenService; +class OAuth2TokenService; namespace base { class SequencedTaskRunner; @@ -65,6 +65,19 @@ class SyncEngine : public RemoteFileSyncService, public: typedef RemoteFileSyncService::Observer SyncServiceObserver; + class DriveServiceFactory { + public: + DriveServiceFactory() {} + virtual ~DriveServiceFactory() {} + virtual scoped_ptr<drive::DriveServiceInterface> CreateDriveService( + OAuth2TokenService* oauth2_token_service, + net::URLRequestContextGetter* url_request_context_getter, + base::SequencedTaskRunner* blocking_task_runner); + + private: + DISALLOW_COPY_AND_ASSIGN(DriveServiceFactory); + }; + static scoped_ptr<SyncEngine> CreateForBrowserContext( content::BrowserContext* context, TaskLogger* task_logger); @@ -154,8 +167,9 @@ class SyncEngine : public RemoteFileSyncService, drive::DriveNotificationManager* notification_manager, ExtensionServiceInterface* extension_service, SigninManagerBase* signin_manager, - ProfileOAuth2TokenService* token_service, + OAuth2TokenService* token_service, net::URLRequestContextGetter* request_context, + scoped_ptr<DriveServiceFactory> drive_service_factory, leveldb::Env* env_override); // Called by WorkerObserver. @@ -183,10 +197,12 @@ class SyncEngine : public RemoteFileSyncService, drive::DriveNotificationManager* notification_manager_; ExtensionServiceInterface* extension_service_; SigninManagerBase* signin_manager_; - ProfileOAuth2TokenService* token_service_; + OAuth2TokenService* token_service_; scoped_refptr<net::URLRequestContextGetter> request_context_; + scoped_ptr<DriveServiceFactory> drive_service_factory_; + scoped_ptr<drive::DriveServiceInterface> drive_service_; scoped_ptr<DriveServiceWrapper> drive_service_wrapper_; scoped_ptr<drive::DriveUploaderInterface> drive_uploader_; diff --git a/chrome/browser/sync_file_system/drive_backend/sync_engine_unittest.cc b/chrome/browser/sync_file_system/drive_backend/sync_engine_unittest.cc index ec7649d..d4d85f1 100644 --- a/chrome/browser/sync_file_system/drive_backend/sync_engine_unittest.cc +++ b/chrome/browser/sync_file_system/drive_backend/sync_engine_unittest.cc @@ -55,6 +55,7 @@ class SyncEngineTest : public testing::Test, NULL /* signin_manager */, NULL /* token_service */, NULL /* request_context */, + scoped_ptr<SyncEngine::DriveServiceFactory>(), NULL /* in_memory_env */)); sync_engine_->InitializeForTesting( |