| // Copyright 2016 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef COMPONENTS_SYNC_TEST_SYNC_SERVICE_IMPL_BUNDLE_H_ |
| #define COMPONENTS_SYNC_TEST_SYNC_SERVICE_IMPL_BUNDLE_H_ |
| |
| #include <memory> |
| |
| #include "components/signin/public/identity_manager/identity_test_environment.h" |
| #include "components/sync/service/sync_service_impl.h" |
| #include "components/sync/test/fake_sync_engine_factory.h" |
| #include "components/sync/test/mock_sync_invalidations_service.h" |
| #include "components/sync/test/sync_client_mock.h" |
| #include "components/sync_preferences/testing_pref_service_syncable.h" |
| #include "components/trusted_vault/test/fake_trusted_vault_client.h" |
| #include "services/network/test/test_url_loader_factory.h" |
| |
| namespace os_crypt_async { |
| class OSCryptAsync; |
| } // namespace os_crypt_async |
| |
| namespace syncer { |
| |
| // Aggregate this class to get all necessary support for creating a |
| // SyncServiceImpl in tests. The test still needs to have its own |
| // MessageLoop, though. |
| class SyncServiceImplBundle { |
| public: |
| SyncServiceImplBundle(); |
| |
| ~SyncServiceImplBundle(); |
| |
| SyncServiceImplBundle(const SyncServiceImplBundle&) = delete; |
| SyncServiceImplBundle& operator=(const SyncServiceImplBundle&) = delete; |
| |
| // Creates a mock sync client that leverages the dependencies in this bundle. |
| std::unique_ptr<SyncClientMock> CreateSyncClientMock(); |
| |
| // Creates an InitParams instance with the specified `sync_client`, and fills |
| // the rest with fake values and objects owned by the bundle. |
| SyncServiceImpl::InitParams CreateBasicInitParams( |
| std::unique_ptr<SyncClient> sync_client); |
| |
| // Accessors |
| |
| sync_preferences::TestingPrefServiceSyncable* pref_service() { |
| return &pref_service_; |
| } |
| |
| signin::IdentityTestEnvironment* identity_test_env() { |
| return &identity_test_env_; |
| } |
| |
| signin::IdentityManager* identity_manager() { |
| return identity_test_env_.identity_manager(); |
| } |
| |
| FakeSyncEngineFactory* engine_factory() { return &engine_factory_; } |
| |
| MockSyncInvalidationsService* sync_invalidations_service() { |
| return &sync_invalidations_service_; |
| } |
| |
| trusted_vault::FakeTrustedVaultClient* trusted_vault_client() { |
| return &trusted_vault_client_; |
| } |
| |
| private: |
| sync_preferences::TestingPrefServiceSyncable pref_service_; |
| network::TestURLLoaderFactory test_url_loader_factory_; |
| signin::IdentityTestEnvironment identity_test_env_; |
| FakeSyncEngineFactory engine_factory_; |
| testing::NiceMock<MockSyncInvalidationsService> sync_invalidations_service_; |
| trusted_vault::FakeTrustedVaultClient trusted_vault_client_; |
| std::unique_ptr<os_crypt_async::OSCryptAsync> os_crypt_async_; |
| }; |
| |
| } // namespace syncer |
| |
| #endif // COMPONENTS_SYNC_TEST_SYNC_SERVICE_IMPL_BUNDLE_H_ |