OLD | NEW |
---|---|
(Empty) | |
1 // Copyright 2014 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 | |
5 #include "chrome/browser/sync_file_system/drive_backend/fake_sync_worker.h" | |
6 | |
7 #include "base/values.h" | |
8 #include "chrome/browser/sync_file_system/drive_backend/drive_backend_constants. h" | |
9 #include "chrome/browser/sync_file_system/drive_backend/metadata_database.h" | |
10 #include "chrome/browser/sync_file_system/drive_backend/sync_engine_context.h" | |
11 #include "chrome/browser/sync_file_system/drive_backend/sync_engine_initializer. h" | |
12 #include "chrome/browser/sync_file_system/sync_status_code.h" | |
13 | |
14 namespace sync_file_system { | |
15 namespace drive_backend { | |
16 | |
17 FakeSyncWorker::FakeSyncWorker( | |
18 const base::FilePath& base_dir, | |
19 scoped_ptr<SyncEngineContext> sync_engine_context, | |
20 leveldb::Env* env_override) | |
21 : base_dir_(base_dir), | |
22 sync_engine_context_(sync_engine_context.Pass()), | |
23 env_override_(env_override), | |
24 sync_enabled_(true), | |
25 has_refresh_token_(true), | |
26 network_available_(true), | |
27 weak_ptr_factory_(this) { | |
28 sequence_checker_.DetachFromSequence(); | |
29 } | |
30 | |
31 FakeSyncWorker::~FakeSyncWorker() { | |
32 observers_.Clear(); | |
33 } | |
34 | |
35 void FakeSyncWorker::Initialize() { | |
36 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); | |
37 | |
38 MetadataDatabase::Create( | |
39 sync_engine_context_->GetWorkerTaskRunner(), | |
40 sync_engine_context_->GetFileTaskRunner(), | |
41 base_dir_.Append(kDatabaseName), | |
42 env_override_, | |
43 base::Bind(&FakeSyncWorker::DidCreateMetadataDatabase, | |
44 weak_ptr_factory_.GetWeakPtr())); | |
tzik
2014/06/12 07:54:52
Can we drop MetadataDatabase dependency from this
peria
2014/06/12 10:49:30
Done.
| |
45 } | |
46 | |
47 void FakeSyncWorker::DidCreateMetadataDatabase( | |
48 SyncStatusCode status, | |
49 scoped_ptr<MetadataDatabase> metadata_database) { | |
50 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); | |
51 | |
52 if (metadata_database) | |
53 sync_engine_context_->SetMetadataDatabase(metadata_database.Pass()); | |
54 } | |
55 | |
56 void FakeSyncWorker::RegisterOrigin(const GURL& origin, | |
57 const SyncStatusCallback& callback) { | |
58 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); | |
59 status_map_[origin] = true; | |
60 callback.Run(SYNC_STATUS_OK); | |
61 } | |
62 | |
63 void FakeSyncWorker::EnableOrigin(const GURL& origin, | |
64 const SyncStatusCallback& callback) { | |
65 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); | |
66 status_map_[origin] = true; | |
67 callback.Run(SYNC_STATUS_OK); | |
68 } | |
69 | |
70 void FakeSyncWorker::DisableOrigin(const GURL& origin, | |
71 const SyncStatusCallback& callback) { | |
72 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); | |
73 status_map_[origin] = false; | |
74 callback.Run(SYNC_STATUS_OK); | |
75 } | |
76 | |
77 void FakeSyncWorker::UninstallOrigin(const GURL& origin, | |
nhiroki
2014/06/12 08:00:08
You may want to record uninstalled origins like Re
peria
2014/06/12 10:49:30
Done.
| |
78 RemoteFileSyncService::UninstallFlag flag, | |
79 const SyncStatusCallback& callback) { | |
80 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); | |
81 status_map_.erase(origin); | |
82 callback.Run(SYNC_STATUS_OK); | |
83 } | |
84 | |
85 void FakeSyncWorker::ProcessRemoteChange( | |
86 const SyncFileCallback& callback) { | |
87 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); | |
88 callback.Run(SYNC_STATUS_OK, fileapi::FileSystemURL()); | |
89 } | |
90 | |
91 void FakeSyncWorker::SetRemoteChangeProcessor( | |
92 RemoteChangeProcessorOnWorker* remote_change_processor_on_worker) { | |
93 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); | |
94 } | |
95 | |
96 RemoteServiceState FakeSyncWorker::GetCurrentState() const { | |
97 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); | |
98 return REMOTE_SERVICE_OK; | |
99 } | |
100 | |
101 void FakeSyncWorker::GetOriginStatusMap( | |
102 const RemoteFileSyncService::StatusMapCallback& callback) { | |
103 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); | |
104 | |
105 scoped_ptr<RemoteFileSyncService::OriginStatusMap> | |
106 status_map(new RemoteFileSyncService::OriginStatusMap); | |
107 for (StatusMap::const_iterator itr = status_map_.begin(); | |
108 itr != status_map_.end(); ++itr) { | |
109 (*status_map)[itr->first] = itr->second ? "Enabled" : "Disabled"; | |
110 } | |
111 callback.Run(status_map.Pass()); | |
112 } | |
113 | |
114 scoped_ptr<base::ListValue> FakeSyncWorker::DumpFiles(const GURL& origin) { | |
115 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); | |
116 return scoped_ptr<base::ListValue>(); | |
117 } | |
118 | |
119 scoped_ptr<base::ListValue> FakeSyncWorker::DumpDatabase() { | |
120 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); | |
121 return scoped_ptr<base::ListValue>(); | |
122 } | |
123 | |
124 void FakeSyncWorker::SetSyncEnabled(bool enabled) { | |
125 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); | |
126 sync_enabled_ = enabled; | |
127 | |
128 if (enabled) | |
129 UpdateServiceState(REMOTE_SERVICE_OK, "Set FakeSyncWorker enabled."); | |
130 else | |
131 UpdateServiceState(REMOTE_SERVICE_DISABLED, "Disabled FakeSyncWorker."); | |
132 } | |
133 | |
134 void FakeSyncWorker::PromoteDemotedChanges() { | |
135 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); | |
136 FOR_EACH_OBSERVER( | |
137 Observer, | |
138 observers_, | |
139 OnPendingFileListUpdated(10)); | |
140 } | |
141 | |
142 void FakeSyncWorker::ApplyLocalChange( | |
143 const FileChange& local_change, | |
144 const base::FilePath& local_path, | |
145 const SyncFileMetadata& local_metadata, | |
146 const fileapi::FileSystemURL& url, | |
147 const SyncStatusCallback& callback) { | |
148 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); | |
149 callback.Run(SYNC_STATUS_OK); | |
150 } | |
151 | |
152 void FakeSyncWorker::OnNotificationReceived() { | |
153 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); | |
154 UpdateServiceState(REMOTE_SERVICE_OK, "Got push notification for Drive."); | |
155 } | |
156 | |
157 void FakeSyncWorker::OnReadyToSendRequests(const std::string& account_id) { | |
158 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); | |
159 has_refresh_token_ = true; | |
160 UpdateServiceState(REMOTE_SERVICE_OK, "ReadyToSendRequests"); | |
161 } | |
162 | |
163 void FakeSyncWorker::OnRefreshTokenInvalid() { | |
164 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); | |
165 has_refresh_token_ = false; | |
166 UpdateServiceState(REMOTE_SERVICE_OK, "RefreshTokenInvalid"); | |
167 } | |
168 | |
169 void FakeSyncWorker::OnNetworkChanged( | |
170 net::NetworkChangeNotifier::ConnectionType type) { | |
171 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); | |
172 bool new_network_availability = | |
173 type != net::NetworkChangeNotifier::CONNECTION_NONE; | |
174 if (network_available_ && !new_network_availability) { | |
175 UpdateServiceState(REMOTE_SERVICE_TEMPORARY_UNAVAILABLE, "Disconnected"); | |
176 } else if (!network_available_ && new_network_availability) { | |
177 UpdateServiceState(REMOTE_SERVICE_OK, "Connected"); | |
178 } | |
179 network_available_ = new_network_availability; | |
180 } | |
181 | |
182 drive::DriveServiceInterface* FakeSyncWorker::GetDriveService() { | |
183 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); | |
184 return sync_engine_context_->GetDriveService(); | |
185 } | |
186 | |
187 drive::DriveUploaderInterface* FakeSyncWorker::GetDriveUploader() { | |
188 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); | |
189 return sync_engine_context_->GetDriveUploader(); | |
190 } | |
191 | |
192 MetadataDatabase* FakeSyncWorker::GetMetadataDatabase() { | |
193 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); | |
194 return sync_engine_context_->GetMetadataDatabase(); | |
195 } | |
196 | |
197 SyncTaskManager* FakeSyncWorker::GetSyncTaskManager() { | |
198 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); | |
199 return NULL; | |
200 } | |
201 | |
202 void FakeSyncWorker::DetachFromSequence() { | |
203 sequence_checker_.DetachFromSequence(); | |
204 } | |
205 | |
206 void FakeSyncWorker::AddObserver(Observer* observer) { | |
207 observers_.AddObserver(observer); | |
208 } | |
209 | |
210 void FakeSyncWorker::UpdateServiceStateForTesting( | |
211 RemoteServiceState state, | |
212 const std::string& description, | |
213 const base::Closure& closure) { | |
214 UpdateServiceState(state, description); | |
215 closure.Run(); | |
216 } | |
217 | |
218 void FakeSyncWorker::SetHasRefreshToken(bool has_refresh_token) { | |
219 } | |
220 | |
221 void FakeSyncWorker::UpdateServiceState(RemoteServiceState state, | |
222 const std::string& description) { | |
223 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); | |
224 | |
225 FOR_EACH_OBSERVER( | |
226 Observer, observers_, | |
227 UpdateServiceState(state, description)); | |
228 } | |
229 | |
230 | |
231 } // namespace drive_backend | |
232 } // namespace sync_file_system | |
OLD | NEW |