Index: chrome/browser/sync/test_profile_sync_service.cc |
diff --git a/chrome/browser/sync/test_profile_sync_service.cc b/chrome/browser/sync/test_profile_sync_service.cc |
index 4606b4e9b32e588f230d8a29b6946652d8795dba..0937065ffae085d3bf270389022f1eb8a6130a33 100644 |
--- a/chrome/browser/sync/test_profile_sync_service.cc |
+++ b/chrome/browser/sync/test_profile_sync_service.cc |
@@ -85,7 +85,7 @@ void SyncBackendHostForProfileSyncTest::InitCore( |
new TestInternalComponentsFactory(factory_switches, storage); |
SyncBackendHost::InitCore(test_options); |
- if (synchronous_init_) { |
+ if (synchronous_init_ && !base::MessageLoop::current()->is_running()) { |
// The SyncBackend posts a task to the current loop when |
// initialization completes. |
base::MessageLoop::current()->Run(); |
@@ -249,6 +249,23 @@ TestProfileSyncService::components_factory_mock() { |
return static_cast<ProfileSyncComponentsFactoryMock*>(factory()); |
} |
+void TestProfileSyncService::RequestAccessToken() { |
+ ProfileSyncService::RequestAccessToken(); |
+ if (synchronous_backend_initialization_) { |
+ base::MessageLoop::current()->Run(); |
+ } |
+} |
+ |
+void TestProfileSyncService::OnGetTokenFailure( |
+ const OAuth2TokenService::Request* request, |
+ const GoogleServiceAuthError& error) { |
+ ProfileSyncService::OnGetTokenFailure(request, error); |
+ if (synchronous_backend_initialization_) { |
+ base::MessageLoop::current()->Quit(); |
+ } |
+} |
+ |
+ |
void TestProfileSyncService::OnBackendInitialized( |
const syncer::WeakHandle<syncer::JsBackend>& backend, |
const syncer::WeakHandle<syncer::DataTypeDebugInfoListener>& |
@@ -301,3 +318,23 @@ void TestProfileSyncService::CreateBackend() { |
fail_initial_download_, |
storage_option_)); |
} |
+ |
+scoped_ptr<OAuth2TokenService::Request> FakeOAuth2TokenService::StartRequest( |
+ const OAuth2TokenService::ScopeSet& scopes, |
+ OAuth2TokenService::Consumer* consumer) { |
+ // Ensure token in question is cached and never expires. Request will succeed |
+ // without network IO. |
+ RegisterCacheEntry(GetRefreshToken(), scopes, "access_token", |
+ base::Time::Max()); |
+ return ProfileOAuth2TokenService::StartRequest(scopes, consumer); |
+} |
+ |
+BrowserContextKeyedService* FakeOAuth2TokenService::BuildTokenService( |
+ content::BrowserContext* context) { |
+ Profile* profile = static_cast<Profile*>(context); |
+ |
+ FakeOAuth2TokenService* service = |
+ new FakeOAuth2TokenService(context->GetRequestContext()); |
+ service->Initialize(profile); |
+ return service; |
+} |