Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(14)

Side by Side Diff: chrome/browser/sync_file_system/drive_backend/sync_engine_unittest.cc

Issue 314303003: [SyncFS] Create SyncWorkerTest (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "chrome/browser/sync_file_system/drive_backend/sync_engine.h" 5 #include "chrome/browser/sync_file_system/drive_backend/sync_engine.h"
6 6
7 #include "base/files/scoped_temp_dir.h" 7 #include "base/files/scoped_temp_dir.h"
8 #include "base/run_loop.h" 8 #include "base/run_loop.h"
9 #include "base/strings/stringprintf.h" 9 #include "base/strings/stringprintf.h"
10 #include "chrome/browser/drive/drive_uploader.h" 10 #include "chrome/browser/drive/drive_uploader.h"
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
129 129
130 virtual void TearDown() OVERRIDE { 130 virtual void TearDown() OVERRIDE {
131 sync_engine_.reset(); 131 sync_engine_.reset();
132 extension_service_.reset(); 132 extension_service_.reset();
133 base::RunLoop().RunUntilIdle(); 133 base::RunLoop().RunUntilIdle();
134 } 134 }
135 135
136 MockExtensionService* extension_service() { return extension_service_.get(); } 136 MockExtensionService* extension_service() { return extension_service_.get(); }
137 SyncEngine* sync_engine() { return sync_engine_.get(); } 137 SyncEngine* sync_engine() { return sync_engine_.get(); }
138 138
139 void UpdateRegisteredApps() { 139 SyncTaskManager* GetSyncTaskManager() {
140 sync_engine_->UpdateRegisteredAppsForTesting();
141 }
142
143 SyncTaskManager* GetSyncEngineTaskManager() {
144 return sync_engine_->sync_worker_->GetSyncTaskManager(); 140 return sync_engine_->sync_worker_->GetSyncTaskManager();
145 } 141 }
146 142
147 void CheckServiceState(SyncStatusCode expected_sync_status, 143 void CheckServiceState(SyncStatusCode expected_sync_status,
148 RemoteServiceState expected_service_status, 144 RemoteServiceState expected_service_status,
149 SyncStatusCode sync_status) { 145 SyncStatusCode sync_status) {
150 EXPECT_EQ(expected_sync_status, sync_status); 146 EXPECT_EQ(expected_sync_status, sync_status);
151 EXPECT_EQ(expected_service_status, sync_engine_->GetCurrentState()); 147 EXPECT_EQ(expected_service_status, sync_engine_->GetCurrentState());
152 } 148 }
153 149
154 MetadataDatabase* metadata_database() { 150 MetadataDatabase* metadata_database() {
155 return sync_engine_->sync_worker_->GetMetadataDatabase(); 151 return sync_engine_->sync_worker_->GetMetadataDatabase();
156 } 152 }
157 153
158 void SetHasRefreshToken(bool has_refresh_token) {
159 sync_engine_->sync_worker_->has_refresh_token_ = has_refresh_token;
160 }
161
162 private: 154 private:
163 content::TestBrowserThreadBundle browser_threads_; 155 content::TestBrowserThreadBundle browser_threads_;
164 base::ScopedTempDir profile_dir_; 156 base::ScopedTempDir profile_dir_;
165 scoped_ptr<leveldb::Env> in_memory_env_; 157 scoped_ptr<leveldb::Env> in_memory_env_;
166 158
167 scoped_ptr<MockExtensionService> extension_service_; 159 scoped_ptr<MockExtensionService> extension_service_;
168 scoped_ptr<drive_backend::SyncEngine> sync_engine_; 160 scoped_ptr<drive_backend::SyncEngine> sync_engine_;
169 161
170 DISALLOW_COPY_AND_ASSIGN(SyncEngineTest); 162 DISALLOW_COPY_AND_ASSIGN(SyncEngineTest);
171 }; 163 };
(...skipping 23 matching lines...) Expand all
195 187
196 sync_engine()->UninstallOrigin( 188 sync_engine()->UninstallOrigin(
197 origin, 189 origin,
198 RemoteFileSyncService::UNINSTALL_AND_KEEP_REMOTE, 190 RemoteFileSyncService::UNINSTALL_AND_KEEP_REMOTE,
199 CreateResultReceiver(&sync_status)); 191 CreateResultReceiver(&sync_status));
200 base::RunLoop().RunUntilIdle(); 192 base::RunLoop().RunUntilIdle();
201 EXPECT_EQ(SYNC_STATUS_OK, sync_status); 193 EXPECT_EQ(SYNC_STATUS_OK, sync_status);
202 ASSERT_FALSE(metadata_database()->FindAppRootTracker(kAppID, &tracker)); 194 ASSERT_FALSE(metadata_database()->FindAppRootTracker(kAppID, &tracker));
203 } 195 }
204 196
205 TEST_F(SyncEngineTest, UpdateRegisteredApps) {
206 SyncStatusCode sync_status = SYNC_STATUS_UNKNOWN;
207 for (int i = 0; i < 3; i++) {
208 scoped_refptr<const extensions::Extension> extension =
209 extensions::ExtensionBuilder()
210 .SetManifest(extensions::DictionaryBuilder()
211 .Set("name", "foo")
212 .Set("version", "1.0")
213 .Set("manifest_version", 2))
214 .SetID(base::StringPrintf("app_%d", i))
215 .Build();
216 extension_service()->AddExtension(extension.get());
217 GURL origin = extensions::Extension::GetBaseURLFromExtensionId(
218 extension->id());
219 sync_status = SYNC_STATUS_UNKNOWN;
220 sync_engine()->RegisterOrigin(origin, CreateResultReceiver(&sync_status));
221 base::RunLoop().RunUntilIdle();
222 EXPECT_EQ(SYNC_STATUS_OK, sync_status);
223 }
224
225 FileTracker tracker;
226
227 ASSERT_TRUE(metadata_database()->FindAppRootTracker("app_0", &tracker));
228 EXPECT_EQ(TRACKER_KIND_APP_ROOT, tracker.tracker_kind());
229
230 ASSERT_TRUE(metadata_database()->FindAppRootTracker("app_1", &tracker));
231 EXPECT_EQ(TRACKER_KIND_APP_ROOT, tracker.tracker_kind());
232
233 ASSERT_TRUE(metadata_database()->FindAppRootTracker("app_2", &tracker));
234 EXPECT_EQ(TRACKER_KIND_APP_ROOT, tracker.tracker_kind());
235
236 extension_service()->DisableExtension("app_1");
237 extension_service()->UninstallExtension("app_2");
238 ASSERT_FALSE(extension_service()->GetInstalledExtension("app_2"));
239 UpdateRegisteredApps();
240 base::RunLoop().RunUntilIdle();
241
242 ASSERT_TRUE(metadata_database()->FindAppRootTracker("app_0", &tracker));
243 EXPECT_EQ(TRACKER_KIND_APP_ROOT, tracker.tracker_kind());
244
245 ASSERT_TRUE(metadata_database()->FindAppRootTracker("app_1", &tracker));
246 EXPECT_EQ(TRACKER_KIND_DISABLED_APP_ROOT, tracker.tracker_kind());
247
248 ASSERT_FALSE(metadata_database()->FindAppRootTracker("app_2", &tracker));
249 }
250
251 TEST_F(SyncEngineTest, GetOriginStatusMap) { 197 TEST_F(SyncEngineTest, GetOriginStatusMap) {
252 FileTracker tracker; 198 FileTracker tracker;
253 SyncStatusCode sync_status = SYNC_STATUS_UNKNOWN; 199 SyncStatusCode sync_status = SYNC_STATUS_UNKNOWN;
254 GURL origin = extensions::Extension::GetBaseURLFromExtensionId(kAppID); 200 GURL origin = extensions::Extension::GetBaseURLFromExtensionId(kAppID);
255 201
256 sync_engine()->RegisterOrigin(GURL("chrome-extension://app_0"), 202 sync_engine()->RegisterOrigin(GURL("chrome-extension://app_0"),
257 CreateResultReceiver(&sync_status)); 203 CreateResultReceiver(&sync_status));
258 base::RunLoop().RunUntilIdle(); 204 base::RunLoop().RunUntilIdle();
259 EXPECT_EQ(SYNC_STATUS_OK, sync_status); 205 EXPECT_EQ(SYNC_STATUS_OK, sync_status);
260 206
(...skipping 17 matching lines...) Expand all
278 sync_engine()->GetOriginStatusMap(CreateResultReceiver(&status_map)); 224 sync_engine()->GetOriginStatusMap(CreateResultReceiver(&status_map));
279 base::RunLoop().RunUntilIdle(); 225 base::RunLoop().RunUntilIdle();
280 ASSERT_EQ(2u, status_map->size()); 226 ASSERT_EQ(2u, status_map->size());
281 EXPECT_EQ("Enabled", (*status_map)[GURL("chrome-extension://app_0")]); 227 EXPECT_EQ("Enabled", (*status_map)[GURL("chrome-extension://app_0")]);
282 EXPECT_EQ("Disabled", (*status_map)[GURL("chrome-extension://app_1")]); 228 EXPECT_EQ("Disabled", (*status_map)[GURL("chrome-extension://app_1")]);
283 } 229 }
284 230
285 TEST_F(SyncEngineTest, UpdateServiceState) { 231 TEST_F(SyncEngineTest, UpdateServiceState) {
286 EXPECT_EQ(REMOTE_SERVICE_OK, sync_engine()->GetCurrentState()); 232 EXPECT_EQ(REMOTE_SERVICE_OK, sync_engine()->GetCurrentState());
287 233
288 SetHasRefreshToken(true); 234 // Assume an user is in login state.
235 sync_engine()->OnReadyToSendRequests();
289 236
290 GetSyncEngineTaskManager()->ScheduleTask( 237 GetSyncTaskManager()->ScheduleTask(
291 FROM_HERE, 238 FROM_HERE,
292 base::Bind(&EmptyTask, SYNC_STATUS_AUTHENTICATION_FAILED), 239 base::Bind(&EmptyTask, SYNC_STATUS_AUTHENTICATION_FAILED),
293 SyncTaskManager::PRIORITY_MED, 240 SyncTaskManager::PRIORITY_MED,
294 base::Bind(&SyncEngineTest::CheckServiceState, 241 base::Bind(&SyncEngineTest::CheckServiceState,
295 AsWeakPtr(), 242 AsWeakPtr(),
296 SYNC_STATUS_AUTHENTICATION_FAILED, 243 SYNC_STATUS_AUTHENTICATION_FAILED,
297 REMOTE_SERVICE_AUTHENTICATION_REQUIRED)); 244 REMOTE_SERVICE_AUTHENTICATION_REQUIRED));
298 245
299 GetSyncEngineTaskManager()->ScheduleTask( 246 GetSyncTaskManager()->ScheduleTask(
300 FROM_HERE, 247 FROM_HERE,
301 base::Bind(&EmptyTask, SYNC_STATUS_ACCESS_FORBIDDEN), 248 base::Bind(&EmptyTask, SYNC_STATUS_ACCESS_FORBIDDEN),
302 SyncTaskManager::PRIORITY_MED, 249 SyncTaskManager::PRIORITY_MED,
303 base::Bind(&SyncEngineTest::CheckServiceState, 250 base::Bind(&SyncEngineTest::CheckServiceState,
304 AsWeakPtr(), 251 AsWeakPtr(),
305 SYNC_STATUS_ACCESS_FORBIDDEN, 252 SYNC_STATUS_ACCESS_FORBIDDEN,
306 REMOTE_SERVICE_AUTHENTICATION_REQUIRED)); 253 REMOTE_SERVICE_AUTHENTICATION_REQUIRED));
307 254
308 GetSyncEngineTaskManager()->ScheduleTask( 255 GetSyncTaskManager()->ScheduleTask(
309 FROM_HERE, 256 FROM_HERE,
310 base::Bind(&EmptyTask, SYNC_STATUS_SERVICE_TEMPORARILY_UNAVAILABLE), 257 base::Bind(&EmptyTask, SYNC_STATUS_SERVICE_TEMPORARILY_UNAVAILABLE),
311 SyncTaskManager::PRIORITY_MED, 258 SyncTaskManager::PRIORITY_MED,
312 base::Bind(&SyncEngineTest::CheckServiceState, 259 base::Bind(&SyncEngineTest::CheckServiceState,
313 AsWeakPtr(), 260 AsWeakPtr(),
314 SYNC_STATUS_SERVICE_TEMPORARILY_UNAVAILABLE, 261 SYNC_STATUS_SERVICE_TEMPORARILY_UNAVAILABLE,
315 REMOTE_SERVICE_TEMPORARY_UNAVAILABLE)); 262 REMOTE_SERVICE_TEMPORARY_UNAVAILABLE));
316 263
317 GetSyncEngineTaskManager()->ScheduleTask( 264 GetSyncTaskManager()->ScheduleTask(
318 FROM_HERE, 265 FROM_HERE,
319 base::Bind(&EmptyTask, SYNC_STATUS_NETWORK_ERROR), 266 base::Bind(&EmptyTask, SYNC_STATUS_NETWORK_ERROR),
320 SyncTaskManager::PRIORITY_MED, 267 SyncTaskManager::PRIORITY_MED,
321 base::Bind(&SyncEngineTest::CheckServiceState, 268 base::Bind(&SyncEngineTest::CheckServiceState,
322 AsWeakPtr(), 269 AsWeakPtr(),
323 SYNC_STATUS_NETWORK_ERROR, 270 SYNC_STATUS_NETWORK_ERROR,
324 REMOTE_SERVICE_TEMPORARY_UNAVAILABLE)); 271 REMOTE_SERVICE_TEMPORARY_UNAVAILABLE));
325 272
326 GetSyncEngineTaskManager()->ScheduleTask( 273 GetSyncTaskManager()->ScheduleTask(
327 FROM_HERE, 274 FROM_HERE,
328 base::Bind(&EmptyTask, SYNC_STATUS_ABORT), 275 base::Bind(&EmptyTask, SYNC_STATUS_ABORT),
329 SyncTaskManager::PRIORITY_MED, 276 SyncTaskManager::PRIORITY_MED,
330 base::Bind(&SyncEngineTest::CheckServiceState, 277 base::Bind(&SyncEngineTest::CheckServiceState,
331 AsWeakPtr(), 278 AsWeakPtr(),
332 SYNC_STATUS_ABORT, 279 SYNC_STATUS_ABORT,
333 REMOTE_SERVICE_TEMPORARY_UNAVAILABLE)); 280 REMOTE_SERVICE_TEMPORARY_UNAVAILABLE));
334 281
335 GetSyncEngineTaskManager()->ScheduleTask( 282 GetSyncTaskManager()->ScheduleTask(
336 FROM_HERE, 283 FROM_HERE,
337 base::Bind(&EmptyTask, SYNC_STATUS_FAILED), 284 base::Bind(&EmptyTask, SYNC_STATUS_FAILED),
338 SyncTaskManager::PRIORITY_MED, 285 SyncTaskManager::PRIORITY_MED,
339 base::Bind(&SyncEngineTest::CheckServiceState, 286 base::Bind(&SyncEngineTest::CheckServiceState,
340 AsWeakPtr(), 287 AsWeakPtr(),
341 SYNC_STATUS_FAILED, 288 SYNC_STATUS_FAILED,
342 REMOTE_SERVICE_TEMPORARY_UNAVAILABLE)); 289 REMOTE_SERVICE_TEMPORARY_UNAVAILABLE));
343 290
344 GetSyncEngineTaskManager()->ScheduleTask( 291 GetSyncTaskManager()->ScheduleTask(
345 FROM_HERE, 292 FROM_HERE,
346 base::Bind(&EmptyTask, SYNC_DATABASE_ERROR_CORRUPTION), 293 base::Bind(&EmptyTask, SYNC_DATABASE_ERROR_CORRUPTION),
347 SyncTaskManager::PRIORITY_MED, 294 SyncTaskManager::PRIORITY_MED,
348 base::Bind(&SyncEngineTest::CheckServiceState, 295 base::Bind(&SyncEngineTest::CheckServiceState,
349 AsWeakPtr(), 296 AsWeakPtr(),
350 SYNC_DATABASE_ERROR_CORRUPTION, 297 SYNC_DATABASE_ERROR_CORRUPTION,
351 REMOTE_SERVICE_DISABLED)); 298 REMOTE_SERVICE_DISABLED));
352 299
353 GetSyncEngineTaskManager()->ScheduleTask( 300 GetSyncTaskManager()->ScheduleTask(
354 FROM_HERE, 301 FROM_HERE,
355 base::Bind(&EmptyTask, SYNC_DATABASE_ERROR_IO_ERROR), 302 base::Bind(&EmptyTask, SYNC_DATABASE_ERROR_IO_ERROR),
356 SyncTaskManager::PRIORITY_MED, 303 SyncTaskManager::PRIORITY_MED,
357 base::Bind(&SyncEngineTest::CheckServiceState, 304 base::Bind(&SyncEngineTest::CheckServiceState,
358 AsWeakPtr(), 305 AsWeakPtr(),
359 SYNC_DATABASE_ERROR_IO_ERROR, 306 SYNC_DATABASE_ERROR_IO_ERROR,
360 REMOTE_SERVICE_DISABLED)); 307 REMOTE_SERVICE_DISABLED));
361 308
362 GetSyncEngineTaskManager()->ScheduleTask( 309 GetSyncTaskManager()->ScheduleTask(
363 FROM_HERE, 310 FROM_HERE,
364 base::Bind(&EmptyTask, SYNC_DATABASE_ERROR_FAILED), 311 base::Bind(&EmptyTask, SYNC_DATABASE_ERROR_FAILED),
365 SyncTaskManager::PRIORITY_MED, 312 SyncTaskManager::PRIORITY_MED,
366 base::Bind(&SyncEngineTest::CheckServiceState, 313 base::Bind(&SyncEngineTest::CheckServiceState,
367 AsWeakPtr(), 314 AsWeakPtr(),
368 SYNC_DATABASE_ERROR_FAILED, 315 SYNC_DATABASE_ERROR_FAILED,
369 REMOTE_SERVICE_DISABLED)); 316 REMOTE_SERVICE_DISABLED));
370 317
371 GetSyncEngineTaskManager()->ScheduleSyncTask( 318 GetSyncTaskManager()->ScheduleSyncTask(
372 FROM_HERE, 319 FROM_HERE,
373 scoped_ptr<SyncTask>(new MockSyncTask(false)), 320 scoped_ptr<SyncTask>(new MockSyncTask(false)),
374 SyncTaskManager::PRIORITY_MED, 321 SyncTaskManager::PRIORITY_MED,
375 base::Bind(&SyncEngineTest::CheckServiceState, 322 base::Bind(&SyncEngineTest::CheckServiceState,
376 AsWeakPtr(), 323 AsWeakPtr(),
377 SYNC_STATUS_OK, 324 SYNC_STATUS_OK,
378 REMOTE_SERVICE_DISABLED)); 325 REMOTE_SERVICE_DISABLED));
379 326
380 GetSyncEngineTaskManager()->ScheduleSyncTask( 327 GetSyncTaskManager()->ScheduleSyncTask(
381 FROM_HERE, 328 FROM_HERE,
382 scoped_ptr<SyncTask>(new MockSyncTask(true)), 329 scoped_ptr<SyncTask>(new MockSyncTask(true)),
383 SyncTaskManager::PRIORITY_MED, 330 SyncTaskManager::PRIORITY_MED,
384 base::Bind(&SyncEngineTest::CheckServiceState, 331 base::Bind(&SyncEngineTest::CheckServiceState,
385 AsWeakPtr(), 332 AsWeakPtr(),
386 SYNC_STATUS_OK, 333 SYNC_STATUS_OK,
387 REMOTE_SERVICE_OK)); 334 REMOTE_SERVICE_OK));
388 335
389 base::RunLoop().RunUntilIdle(); 336 base::RunLoop().RunUntilIdle();
390 } 337 }
391 338
392 } // namespace drive_backend 339 } // namespace drive_backend
393 } // namespace sync_file_system 340 } // namespace sync_file_system
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698