// Copyright (c) 2012 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 "sync/internal_api/public/test/test_internal_components_factory.h" #include "sync/sessions/sync_session_context.h" #include "sync/syncable/in_memory_directory_backing_store.h" #include "sync/syncable/on_disk_directory_backing_store.h" #include "sync/syncable/invalid_directory_backing_store.h" #include "sync/test/engine/fake_sync_scheduler.h" namespace syncer { TestInternalComponentsFactory::TestInternalComponentsFactory( const Switches& switches, StorageOption option) : switches_(switches), storage_option_(option) { } TestInternalComponentsFactory::~TestInternalComponentsFactory() { } scoped_ptr TestInternalComponentsFactory::BuildScheduler( const std::string& name, sessions::SyncSessionContext* context, syncer::CancelationSignal* cancelation_signal) { return scoped_ptr(new FakeSyncScheduler()); } scoped_ptr TestInternalComponentsFactory::BuildContext( ServerConnectionManager* connection_manager, syncable::Directory* directory, ExtensionsActivity* monitor, const std::vector& listeners, sessions::DebugInfoGetter* debug_info_getter, ModelTypeRegistry* model_type_registry, const std::string& invalidator_client_id) { // Tests don't wire up listeners. std::vector empty_listeners; return scoped_ptr( new sessions::SyncSessionContext( connection_manager, directory, monitor, empty_listeners, debug_info_getter, model_type_registry, switches_.encryption_method == ENCRYPTION_KEYSTORE, switches_.pre_commit_updates_policy == FORCE_ENABLE_PRE_COMMIT_UPDATE_AVOIDANCE, invalidator_client_id)); } scoped_ptr TestInternalComponentsFactory::BuildDirectoryBackingStore( const std::string& dir_name, const base::FilePath& backing_filepath) { switch (storage_option_) { case STORAGE_IN_MEMORY: return scoped_ptr( new syncable::InMemoryDirectoryBackingStore(dir_name)); case STORAGE_ON_DISK: return scoped_ptr( new syncable::OnDiskDirectoryBackingStore(dir_name, backing_filepath)); case STORAGE_INVALID: return scoped_ptr( new syncable::InvalidDirectoryBackingStore()); } NOTREACHED(); return scoped_ptr(); } InternalComponentsFactory::Switches TestInternalComponentsFactory::GetSwitches() const { return switches_; } } // namespace syncer