fake_sync_api_component_factory.cc 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. // Copyright 2021 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #include "components/sync/driver/fake_sync_api_component_factory.h"
  5. #include "base/test/bind.h"
  6. #include "components/sync/driver/data_type_manager_impl.h"
  7. #include "components/sync/test/fake_sync_engine.h"
  8. namespace syncer {
  9. namespace {
  10. // Subclass of DataTypeManagerImpl to support weak pointers.
  11. class TestDataTypeManagerImpl
  12. : public DataTypeManagerImpl,
  13. public base::SupportsWeakPtr<TestDataTypeManagerImpl> {
  14. public:
  15. using DataTypeManagerImpl::DataTypeManagerImpl;
  16. };
  17. } // namespace
  18. FakeSyncApiComponentFactory::FakeSyncApiComponentFactory() = default;
  19. FakeSyncApiComponentFactory::~FakeSyncApiComponentFactory() = default;
  20. void FakeSyncApiComponentFactory::AllowFakeEngineInitCompletion(bool allow) {
  21. allow_fake_engine_init_completion_ = allow;
  22. }
  23. std::unique_ptr<DataTypeManager>
  24. FakeSyncApiComponentFactory::CreateDataTypeManager(
  25. const DataTypeController::TypeMap* controllers,
  26. const DataTypeEncryptionHandler* encryption_handler,
  27. ModelTypeConfigurer* configurer,
  28. DataTypeManagerObserver* observer) {
  29. auto data_type_manager = std::make_unique<TestDataTypeManagerImpl>(
  30. controllers, encryption_handler, configurer, observer);
  31. last_created_data_type_manager_ = data_type_manager->AsWeakPtr();
  32. return data_type_manager;
  33. }
  34. std::unique_ptr<SyncEngine> FakeSyncApiComponentFactory::CreateSyncEngine(
  35. const std::string& name,
  36. invalidation::InvalidationService* invalidator,
  37. syncer::SyncInvalidationsService* sync_invalidations_service) {
  38. auto engine = std::make_unique<FakeSyncEngine>(
  39. allow_fake_engine_init_completion_,
  40. /*is_first_time_sync_configure=*/!is_first_time_sync_configure_done_,
  41. /*sync_transport_data_cleared_cb=*/base::BindLambdaForTesting([this]() {
  42. ++clear_transport_data_call_count_;
  43. }));
  44. last_created_engine_ = engine->AsWeakPtr();
  45. return engine;
  46. }
  47. void FakeSyncApiComponentFactory::ClearAllTransportData() {
  48. ++clear_transport_data_call_count_;
  49. }
  50. } // namespace syncer