OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "sync/internal_api/public/test/fake_sync_manager.h" | 5 #include "components/sync/core/test/fake_sync_manager.h" |
6 | 6 |
7 #include <cstddef> | 7 #include <cstddef> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/bind_helpers.h" | 10 #include "base/bind_helpers.h" |
11 #include "base/location.h" | 11 #include "base/location.h" |
12 #include "base/logging.h" | 12 #include "base/logging.h" |
13 #include "base/memory/ptr_util.h" | 13 #include "base/memory/ptr_util.h" |
14 #include "base/run_loop.h" | 14 #include "base/run_loop.h" |
15 #include "base/sequenced_task_runner.h" | 15 #include "base/sequenced_task_runner.h" |
16 #include "base/single_thread_task_runner.h" | 16 #include "base/single_thread_task_runner.h" |
17 #include "base/threading/thread_task_runner_handle.h" | 17 #include "base/threading/thread_task_runner_handle.h" |
18 #include "sync/internal_api/public/http_post_provider_factory.h" | 18 #include "components/sync/base/weak_handle.h" |
19 #include "sync/internal_api/public/internal_components_factory.h" | 19 #include "components/sync/core/http_post_provider_factory.h" |
20 #include "sync/internal_api/public/test/fake_model_type_connector.h" | 20 #include "components/sync/core/internal_components_factory.h" |
21 #include "sync/internal_api/public/util/weak_handle.h" | 21 #include "components/sync/core/test/fake_model_type_connector.h" |
22 #include "sync/syncable/directory.h" | 22 #include "components/sync/syncable/directory.h" |
23 #include "sync/test/fake_sync_encryption_handler.h" | 23 #include "components/sync/test/fake_sync_encryption_handler.h" |
24 | 24 |
25 class GURL; | 25 class GURL; |
26 | 26 |
27 namespace syncer { | 27 namespace syncer { |
28 | 28 |
29 FakeSyncManager::FakeSyncManager(ModelTypeSet initial_sync_ended_types, | 29 FakeSyncManager::FakeSyncManager(ModelTypeSet initial_sync_ended_types, |
30 ModelTypeSet progress_marker_types, | 30 ModelTypeSet progress_marker_types, |
31 ModelTypeSet configure_fail_types) : | 31 ModelTypeSet configure_fail_types) |
32 initial_sync_ended_types_(initial_sync_ended_types), | 32 : initial_sync_ended_types_(initial_sync_ended_types), |
33 progress_marker_types_(progress_marker_types), | 33 progress_marker_types_(progress_marker_types), |
34 configure_fail_types_(configure_fail_types), | 34 configure_fail_types_(configure_fail_types), |
35 last_configure_reason_(CONFIGURE_REASON_UNKNOWN), | 35 last_configure_reason_(CONFIGURE_REASON_UNKNOWN), |
36 num_invalidations_received_(0) { | 36 num_invalidations_received_(0) { |
37 fake_encryption_handler_.reset(new FakeSyncEncryptionHandler()); | 37 fake_encryption_handler_.reset(new FakeSyncEncryptionHandler()); |
38 } | 38 } |
39 | 39 |
40 FakeSyncManager::~FakeSyncManager() {} | 40 FakeSyncManager::~FakeSyncManager() {} |
41 | 41 |
42 ModelTypeSet FakeSyncManager::GetAndResetCleanedTypes() { | 42 ModelTypeSet FakeSyncManager::GetAndResetCleanedTypes() { |
43 ModelTypeSet cleaned_types = cleaned_types_; | 43 ModelTypeSet cleaned_types = cleaned_types_; |
44 cleaned_types_.Clear(); | 44 cleaned_types_.Clear(); |
45 return cleaned_types; | 45 return cleaned_types; |
46 } | 46 } |
(...skipping 17 matching lines...) Expand all Loading... |
64 } | 64 } |
65 | 65 |
66 int FakeSyncManager::GetInvalidationCount() const { | 66 int FakeSyncManager::GetInvalidationCount() const { |
67 return num_invalidations_received_; | 67 return num_invalidations_received_; |
68 } | 68 } |
69 | 69 |
70 void FakeSyncManager::WaitForSyncThread() { | 70 void FakeSyncManager::WaitForSyncThread() { |
71 // Post a task to |sync_task_runner_| and block until it runs. | 71 // Post a task to |sync_task_runner_| and block until it runs. |
72 base::RunLoop run_loop; | 72 base::RunLoop run_loop; |
73 if (!sync_task_runner_->PostTaskAndReply( | 73 if (!sync_task_runner_->PostTaskAndReply( |
74 FROM_HERE, | 74 FROM_HERE, base::Bind(&base::DoNothing), run_loop.QuitClosure())) { |
75 base::Bind(&base::DoNothing), | |
76 run_loop.QuitClosure())) { | |
77 NOTREACHED(); | 75 NOTREACHED(); |
78 } | 76 } |
79 run_loop.Run(); | 77 run_loop.Run(); |
80 } | 78 } |
81 | 79 |
82 void FakeSyncManager::Init(InitArgs* args) { | 80 void FakeSyncManager::Init(InitArgs* args) { |
83 sync_task_runner_ = base::ThreadTaskRunnerHandle::Get(); | 81 sync_task_runner_ = base::ThreadTaskRunnerHandle::Get(); |
84 PurgePartiallySyncedTypes(); | 82 PurgePartiallySyncedTypes(); |
85 | 83 |
86 test_user_share_.SetUp(); | 84 test_user_share_.SetUp(); |
87 UserShare* share = test_user_share_.user_share(); | 85 UserShare* share = test_user_share_.user_share(); |
88 for (ModelTypeSet::Iterator it = initial_sync_ended_types_.First(); | 86 for (ModelTypeSet::Iterator it = initial_sync_ended_types_.First(); it.Good(); |
89 it.Good(); it.Inc()) { | 87 it.Inc()) { |
90 TestUserShare::CreateRoot(it.Get(), share); | 88 TestUserShare::CreateRoot(it.Get(), share); |
91 } | 89 } |
92 | 90 |
93 FOR_EACH_OBSERVER(SyncManager::Observer, observers_, | 91 FOR_EACH_OBSERVER( |
94 OnInitializationComplete( | 92 SyncManager::Observer, observers_, |
95 WeakHandle<JsBackend>(), | 93 OnInitializationComplete(WeakHandle<JsBackend>(), |
96 WeakHandle<DataTypeDebugInfoListener>(), | 94 WeakHandle<DataTypeDebugInfoListener>(), true, |
97 true, initial_sync_ended_types_)); | 95 initial_sync_ended_types_)); |
98 } | 96 } |
99 | 97 |
100 ModelTypeSet FakeSyncManager::InitialSyncEndedTypes() { | 98 ModelTypeSet FakeSyncManager::InitialSyncEndedTypes() { |
101 return initial_sync_ended_types_; | 99 return initial_sync_ended_types_; |
102 } | 100 } |
103 | 101 |
104 ModelTypeSet FakeSyncManager::GetTypesWithEmptyProgressMarkerToken( | 102 ModelTypeSet FakeSyncManager::GetTypesWithEmptyProgressMarkerToken( |
105 ModelTypeSet types) { | 103 ModelTypeSet types) { |
106 ModelTypeSet empty_types = types; | 104 ModelTypeSet empty_types = types; |
107 empty_types.RemoveAll(progress_marker_types_); | 105 empty_types.RemoveAll(progress_marker_types_); |
108 return empty_types; | 106 return empty_types; |
109 } | 107 } |
110 | 108 |
111 bool FakeSyncManager::PurgePartiallySyncedTypes() { | 109 bool FakeSyncManager::PurgePartiallySyncedTypes() { |
112 ModelTypeSet partial_types; | 110 ModelTypeSet partial_types; |
113 for (ModelTypeSet::Iterator i = progress_marker_types_.First(); | 111 for (ModelTypeSet::Iterator i = progress_marker_types_.First(); i.Good(); |
114 i.Good(); i.Inc()) { | 112 i.Inc()) { |
115 if (!initial_sync_ended_types_.Has(i.Get())) | 113 if (!initial_sync_ended_types_.Has(i.Get())) |
116 partial_types.Put(i.Get()); | 114 partial_types.Put(i.Get()); |
117 } | 115 } |
118 progress_marker_types_.RemoveAll(partial_types); | 116 progress_marker_types_.RemoveAll(partial_types); |
119 cleaned_types_.PutAll(partial_types); | 117 cleaned_types_.PutAll(partial_types); |
120 return true; | 118 return true; |
121 } | 119 } |
122 | 120 |
123 void FakeSyncManager::UpdateCredentials(const SyncCredentials& credentials) { | 121 void FakeSyncManager::UpdateCredentials(const SyncCredentials& credentials) { |
124 NOTIMPLEMENTED(); | 122 NOTIMPLEMENTED(); |
125 } | 123 } |
126 | 124 |
127 void FakeSyncManager::StartSyncingNormally( | 125 void FakeSyncManager::StartSyncingNormally( |
128 const ModelSafeRoutingInfo& routing_info, base::Time last_poll_time) { | 126 const ModelSafeRoutingInfo& routing_info, |
| 127 base::Time last_poll_time) { |
129 // Do nothing. | 128 // Do nothing. |
130 } | 129 } |
131 | 130 |
132 void FakeSyncManager::ConfigureSyncer( | 131 void FakeSyncManager::ConfigureSyncer( |
133 ConfigureReason reason, | 132 ConfigureReason reason, |
134 ModelTypeSet to_download, | 133 ModelTypeSet to_download, |
135 ModelTypeSet to_purge, | 134 ModelTypeSet to_purge, |
136 ModelTypeSet to_journal, | 135 ModelTypeSet to_journal, |
137 ModelTypeSet to_unapply, | 136 ModelTypeSet to_unapply, |
138 const ModelSafeRoutingInfo& new_routing_info, | 137 const ModelSafeRoutingInfo& new_routing_info, |
139 const base::Closure& ready_task, | 138 const base::Closure& ready_task, |
140 const base::Closure& retry_task) { | 139 const base::Closure& retry_task) { |
141 last_configure_reason_ = reason; | 140 last_configure_reason_ = reason; |
142 enabled_types_ = GetRoutingInfoTypes(new_routing_info); | 141 enabled_types_ = GetRoutingInfoTypes(new_routing_info); |
143 ModelTypeSet success_types = to_download; | 142 ModelTypeSet success_types = to_download; |
144 success_types.RemoveAll(configure_fail_types_); | 143 success_types.RemoveAll(configure_fail_types_); |
145 | 144 |
146 DVLOG(1) << "Faking configuration. Downloading: " | 145 DVLOG(1) << "Faking configuration. Downloading: " |
147 << ModelTypeSetToString(success_types) << ". Cleaning: " | 146 << ModelTypeSetToString(success_types) |
148 << ModelTypeSetToString(to_purge); | 147 << ". Cleaning: " << ModelTypeSetToString(to_purge); |
149 | 148 |
150 // Update our fake directory by clearing and fake-downloading as necessary. | 149 // Update our fake directory by clearing and fake-downloading as necessary. |
151 UserShare* share = GetUserShare(); | 150 UserShare* share = GetUserShare(); |
152 share->directory->PurgeEntriesWithTypeIn(to_purge, | 151 share->directory->PurgeEntriesWithTypeIn(to_purge, to_journal, to_unapply); |
153 to_journal, | |
154 to_unapply); | |
155 for (ModelTypeSet::Iterator it = success_types.First(); it.Good(); it.Inc()) { | 152 for (ModelTypeSet::Iterator it = success_types.First(); it.Good(); it.Inc()) { |
156 // We must be careful to not create the same root node twice. | 153 // We must be careful to not create the same root node twice. |
157 if (!initial_sync_ended_types_.Has(it.Get())) { | 154 if (!initial_sync_ended_types_.Has(it.Get())) { |
158 TestUserShare::CreateRoot(it.Get(), share); | 155 TestUserShare::CreateRoot(it.Get(), share); |
159 } | 156 } |
160 } | 157 } |
161 | 158 |
162 // Simulate cleaning up disabled types. | 159 // Simulate cleaning up disabled types. |
163 // TODO(sync): consider only cleaning those types that were recently disabled, | 160 // TODO(sync): consider only cleaning those types that were recently disabled, |
164 // if this isn't the first cleanup, which more accurately reflects the | 161 // if this isn't the first cleanup, which more accurately reflects the |
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
266 } | 263 } |
267 | 264 |
268 void FakeSyncManager::ClearServerData(const ClearServerDataCallback& callback) { | 265 void FakeSyncManager::ClearServerData(const ClearServerDataCallback& callback) { |
269 callback.Run(); | 266 callback.Run(); |
270 } | 267 } |
271 | 268 |
272 void FakeSyncManager::OnCookieJarChanged(bool account_mismatch, | 269 void FakeSyncManager::OnCookieJarChanged(bool account_mismatch, |
273 bool empty_jar) {} | 270 bool empty_jar) {} |
274 | 271 |
275 } // namespace syncer | 272 } // namespace syncer |
OLD | NEW |