Chromium Code Reviews| Index: ios/public/test/test_keyed_service_provider.cc |
| diff --git a/ios/public/test/test_keyed_service_provider.cc b/ios/public/test/test_keyed_service_provider.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..978398c790ed03e2f22643f2f2936172b8c14ed7 |
| --- /dev/null |
| +++ b/ios/public/test/test_keyed_service_provider.cc |
| @@ -0,0 +1,67 @@ |
| +// Copyright 2015 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#include "ios/public/test/test_keyed_service_provider.h" |
| + |
| +#include "base/memory/singleton.h" |
| +#include "components/keyed_service/ios/browser_state_dependency_manager.h" |
| +#include "components/keyed_service/ios/browser_state_keyed_service_factory.h" |
| +#include "ios/public/provider/chrome/browser/browser_state/chrome_browser_state.h" |
| +#include "ios/public/test/fake_sync_service.h" |
| + |
| +namespace { |
| + |
| +class FakeSyncServiceFactory : public BrowserStateKeyedServiceFactory { |
|
sdefresne
2015/06/08 16:24:17
nit: move this to fake_sync_service_factory.{h,cc}
|
| + public: |
| + // Returns the singleton FakeSyncServiceFactory instance. |
| + static FakeSyncServiceFactory* GetInstance() { |
| + return Singleton<FakeSyncServiceFactory>::get(); |
| + } |
| + |
| + // Returns the FakeSyncServiceFactory associated to |browser_state|. |
| + static FakeSyncService* GetForBrowserState(web::BrowserState* browser_state) { |
|
sdefresne
2015/06/08 16:24:17
nit: s/FakeSyncService*/sync_driver::SyncService*/
|
| + return static_cast<FakeSyncService*>( |
| + FakeSyncServiceFactory::GetInstance()->GetServiceForBrowserState( |
| + browser_state, true)); |
| + } |
| + |
| + private: |
| + friend struct DefaultSingletonTraits<FakeSyncServiceFactory>; |
| + |
| + // BrowserStateKeyedServiceFactory implementation: |
| + KeyedService* BuildServiceInstanceFor( |
| + web::BrowserState* context) const override { |
| + return new FakeSyncService; |
| + } |
| + |
| + FakeSyncServiceFactory() |
| + : BrowserStateKeyedServiceFactory( |
| + "FakeSyncService", |
| + BrowserStateDependencyManager::GetInstance()) {} |
| + ~FakeSyncServiceFactory() override {} |
| + |
| + DISALLOW_COPY_AND_ASSIGN(FakeSyncServiceFactory); |
| +}; |
| + |
| +} // namespace |
| + |
| +namespace ios { |
| + |
| +TestKeyedServiceProvider::TestKeyedServiceProvider() { |
| +} |
| + |
| +TestKeyedServiceProvider::~TestKeyedServiceProvider() { |
| +} |
| + |
| +KeyedServiceBaseFactory* TestKeyedServiceProvider::GetSyncServiceFactory() { |
| + return FakeSyncServiceFactory::GetInstance(); |
| +} |
| + |
| +sync_driver::SyncService* |
| +TestKeyedServiceProvider::GetSyncServiceForBrowserState( |
| + ChromeBrowserState* browser_state) { |
| + return FakeSyncServiceFactory::GetForBrowserState(browser_state); |
| +} |
| + |
| +} // namespace ios |