1 // Copyright (c) 2012 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.
5 #include "sync/internal_api/public/test/test_internal_components_factory.h"
7 #include "sync/sessions/sync_session_context.h"
8 #include "sync/syncable/deferred_on_disk_directory_backing_store.h"
9 #include "sync/syncable/in_memory_directory_backing_store.h"
10 #include "sync/syncable/on_disk_directory_backing_store.h"
11 #include "sync/syncable/invalid_directory_backing_store.h"
12 #include "sync/test/engine/fake_sync_scheduler.h"
16 TestInternalComponentsFactory::TestInternalComponentsFactory(
17 const Switches
& switches
,
19 StorageOption
* storage_used
)
20 : switches_(switches
),
21 storage_override_(option
),
22 storage_used_(storage_used
) {
25 TestInternalComponentsFactory::~TestInternalComponentsFactory() { }
27 scoped_ptr
<SyncScheduler
> TestInternalComponentsFactory::BuildScheduler(
28 const std::string
& name
,
29 sessions::SyncSessionContext
* context
,
30 syncer::CancelationSignal
* cancelation_signal
) {
31 return scoped_ptr
<SyncScheduler
>(new FakeSyncScheduler());
34 scoped_ptr
<sessions::SyncSessionContext
>
35 TestInternalComponentsFactory::BuildContext(
36 ServerConnectionManager
* connection_manager
,
37 syncable::Directory
* directory
,
38 ExtensionsActivity
* monitor
,
39 const std::vector
<SyncEngineEventListener
*>& listeners
,
40 sessions::DebugInfoGetter
* debug_info_getter
,
41 ModelTypeRegistry
* model_type_registry
,
42 const std::string
& invalidator_client_id
) {
44 // Tests don't wire up listeners.
45 std::vector
<SyncEngineEventListener
*> empty_listeners
;
46 return scoped_ptr
<sessions::SyncSessionContext
>(
47 new sessions::SyncSessionContext(
48 connection_manager
, directory
, monitor
,
49 empty_listeners
, debug_info_getter
,
51 switches_
.encryption_method
== ENCRYPTION_KEYSTORE
,
52 switches_
.pre_commit_updates_policy
==
53 FORCE_ENABLE_PRE_COMMIT_UPDATE_AVOIDANCE
,
54 invalidator_client_id
));
58 scoped_ptr
<syncable::DirectoryBackingStore
>
59 TestInternalComponentsFactory::BuildDirectoryBackingStore(
60 StorageOption storage
, const std::string
& dir_name
,
61 const base::FilePath
& backing_filepath
) {
63 *storage_used_
= storage
;
65 switch (storage_override_
) {
66 case STORAGE_IN_MEMORY
:
67 return scoped_ptr
<syncable::DirectoryBackingStore
>(
68 new syncable::InMemoryDirectoryBackingStore(dir_name
));
70 return scoped_ptr
<syncable::DirectoryBackingStore
>(
71 new syncable::OnDiskDirectoryBackingStore(dir_name
,
73 case STORAGE_ON_DISK_DEFERRED
:
74 return scoped_ptr
<syncable::DirectoryBackingStore
>(
75 new syncable::DeferredOnDiskDirectoryBackingStore(dir_name
,
78 return scoped_ptr
<syncable::DirectoryBackingStore
>(
79 new syncable::InvalidDirectoryBackingStore());
82 return scoped_ptr
<syncable::DirectoryBackingStore
>();
85 InternalComponentsFactory::Switches
86 TestInternalComponentsFactory::GetSwitches() const {