Updating trunk VERSION from 2139.0 to 2140.0
[chromium-blink-merge.git] / sync / internal_api / test / test_internal_components_factory.cc
blob34c678be6e997d4035e1853f1920aee68508f0fc
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"
14 namespace syncer {
16 TestInternalComponentsFactory::TestInternalComponentsFactory(
17 const Switches& switches,
18 StorageOption option,
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,
50 model_type_registry,
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) {
62 if (storage_used_)
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));
69 case STORAGE_ON_DISK:
70 return scoped_ptr<syncable::DirectoryBackingStore>(
71 new syncable::OnDiskDirectoryBackingStore(dir_name,
72 backing_filepath));
73 case STORAGE_ON_DISK_DEFERRED:
74 return scoped_ptr<syncable::DirectoryBackingStore>(
75 new syncable::DeferredOnDiskDirectoryBackingStore(dir_name,
76 backing_filepath));
77 case STORAGE_INVALID:
78 return scoped_ptr<syncable::DirectoryBackingStore>(
79 new syncable::InvalidDirectoryBackingStore());
81 NOTREACHED();
82 return scoped_ptr<syncable::DirectoryBackingStore>();
85 InternalComponentsFactory::Switches
86 TestInternalComponentsFactory::GetSwitches() const {
87 return switches_;
90 } // namespace syncer