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 "chrome/browser/sync/glue/sync_backend_host.h" | 5 #include "chrome/browser/sync/glue/sync_backend_host.h" |
6 | 6 |
7 #include <cstddef> | 7 #include <cstddef> |
8 | 8 |
9 #include "base/location.h" | 9 #include "base/location.h" |
10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
(...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
196 ui_loop_.Run(); | 196 ui_loop_.Run(); |
197 // |fake_manager_factory_|'s fake_manager() is set on the sync | 197 // |fake_manager_factory_|'s fake_manager() is set on the sync |
198 // thread, but we can rely on the message loop barriers to | 198 // thread, but we can rely on the message loop barriers to |
199 // guarantee that we see the updated value. | 199 // guarantee that we see the updated value. |
200 fake_manager_ = fake_manager_factory_.fake_manager(); | 200 fake_manager_ = fake_manager_factory_.fake_manager(); |
201 DCHECK(fake_manager_); | 201 DCHECK(fake_manager_); |
202 } | 202 } |
203 | 203 |
204 // Synchronously configures the backend's datatypes. | 204 // Synchronously configures the backend's datatypes. |
205 void ConfigureDataTypes(syncer::ModelTypeSet types_to_add, | 205 void ConfigureDataTypes(syncer::ModelTypeSet types_to_add, |
206 syncer::ModelTypeSet types_to_remove, | 206 syncer::ModelTypeSet types_to_remove) { |
207 BackendDataTypeConfigurer::NigoriState nigori_state) { | 207 types_to_add.Put(syncer::NIGORI); |
208 backend_->ConfigureDataTypes( | 208 backend_->ConfigureDataTypes( |
209 syncer::CONFIGURE_REASON_RECONFIGURATION, | 209 syncer::CONFIGURE_REASON_RECONFIGURATION, |
210 types_to_add, | 210 types_to_add, |
211 types_to_remove, | 211 types_to_remove, |
212 nigori_state, | |
213 base::Bind(&SyncBackendHostTest::DownloadReady, | 212 base::Bind(&SyncBackendHostTest::DownloadReady, |
214 base::Unretained(this)), | 213 base::Unretained(this)), |
215 base::Bind(&SyncBackendHostTest::OnDownloadRetry, | 214 base::Bind(&SyncBackendHostTest::OnDownloadRetry, |
216 base::Unretained(this))); | 215 base::Unretained(this))); |
217 ui_loop_.PostDelayedTask(FROM_HERE, | 216 ui_loop_.PostDelayedTask(FROM_HERE, |
218 ui_loop_.QuitClosure(), TestTimeouts::action_timeout()); | 217 ui_loop_.QuitClosure(), TestTimeouts::action_timeout()); |
219 ui_loop_.Run(); | 218 ui_loop_.Run(); |
220 } | 219 } |
221 | 220 |
222 protected: | 221 protected: |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
260 InitializeBackend(); | 259 InitializeBackend(); |
261 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( | 260 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( |
262 syncer::ModelTypeSet(syncer::NIGORI))); | 261 syncer::ModelTypeSet(syncer::NIGORI))); |
263 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals( | 262 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals( |
264 syncer::ModelTypeSet(syncer::NIGORI))); | 263 syncer::ModelTypeSet(syncer::NIGORI))); |
265 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( | 264 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( |
266 syncer::ModelTypeSet(syncer::NIGORI)).Empty()); | 265 syncer::ModelTypeSet(syncer::NIGORI)).Empty()); |
267 | 266 |
268 ConfigureDataTypes(enabled_types_, | 267 ConfigureDataTypes(enabled_types_, |
269 Difference(syncer::ModelTypeSet::All(), | 268 Difference(syncer::ModelTypeSet::All(), |
270 enabled_types_), | 269 enabled_types_)); |
271 BackendDataTypeConfigurer::WITH_NIGORI); | |
272 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().HasAll( | 270 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().HasAll( |
273 enabled_types_)); | 271 enabled_types_)); |
274 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); | 272 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); |
275 EXPECT_TRUE(fake_manager_->GetAndResetEnabledTypes().Equals(enabled_types_)); | 273 EXPECT_TRUE(fake_manager_->GetAndResetEnabledTypes().Equals(enabled_types_)); |
276 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( | 274 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( |
277 enabled_types_).Empty()); | 275 enabled_types_).Empty()); |
278 } | 276 } |
279 | 277 |
280 // Test the restart after setting up sync scenario. No enabled types should be | 278 // Test the restart after setting up sync scenario. No enabled types should be |
281 // downloaded or cleaned. | 279 // downloaded or cleaned. |
282 TEST_F(SyncBackendHostTest, Restart) { | 280 TEST_F(SyncBackendHostTest, Restart) { |
283 sync_prefs_->SetSyncSetupCompleted(); | 281 sync_prefs_->SetSyncSetupCompleted(); |
284 syncer::ModelTypeSet all_but_nigori = enabled_types_; | 282 syncer::ModelTypeSet all_but_nigori = enabled_types_; |
285 fake_manager_factory_.set_progress_marker_types(enabled_types_); | 283 fake_manager_factory_.set_progress_marker_types(enabled_types_); |
286 fake_manager_factory_.set_initial_sync_ended_types(enabled_types_); | 284 fake_manager_factory_.set_initial_sync_ended_types(enabled_types_); |
287 InitializeBackend(); | 285 InitializeBackend(); |
288 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Empty()); | 286 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Empty()); |
289 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), | 287 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), |
290 enabled_types_).Empty()); | 288 enabled_types_).Empty()); |
291 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); | 289 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); |
292 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( | 290 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( |
293 enabled_types_).Empty()); | 291 enabled_types_).Empty()); |
294 | 292 |
295 ConfigureDataTypes(enabled_types_, | 293 ConfigureDataTypes(enabled_types_, |
296 Difference(syncer::ModelTypeSet::All(), | 294 Difference(syncer::ModelTypeSet::All(), |
297 enabled_types_), | 295 enabled_types_)); |
298 BackendDataTypeConfigurer::WITH_NIGORI); | |
299 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Empty()); | 296 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Empty()); |
300 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), | 297 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), |
301 enabled_types_).Empty()); | 298 enabled_types_).Empty()); |
302 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); | 299 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); |
303 EXPECT_TRUE(fake_manager_->GetAndResetEnabledTypes().Equals(enabled_types_)); | 300 EXPECT_TRUE(fake_manager_->GetAndResetEnabledTypes().Equals(enabled_types_)); |
304 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( | 301 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( |
305 enabled_types_).Empty()); | 302 enabled_types_).Empty()); |
306 } | 303 } |
307 | 304 |
308 // Test a sync restart scenario where some types had never finished configuring. | 305 // Test a sync restart scenario where some types had never finished configuring. |
(...skipping 16 matching lines...) Expand all Loading... |
325 EXPECT_TRUE(fake_manager_->GetAndResetCleanedTypes().HasAll(partial_types)); | 322 EXPECT_TRUE(fake_manager_->GetAndResetCleanedTypes().HasAll(partial_types)); |
326 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals( | 323 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals( |
327 Union(full_types, syncer::ModelTypeSet(syncer::NIGORI)))); | 324 Union(full_types, syncer::ModelTypeSet(syncer::NIGORI)))); |
328 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( | 325 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( |
329 enabled_types_).Equals( | 326 enabled_types_).Equals( |
330 Difference(partial_types, syncer::ModelTypeSet(syncer::NIGORI)))); | 327 Difference(partial_types, syncer::ModelTypeSet(syncer::NIGORI)))); |
331 | 328 |
332 // Now do the actual configuration, which should download and apply bookmarks. | 329 // Now do the actual configuration, which should download and apply bookmarks. |
333 ConfigureDataTypes(enabled_types_, | 330 ConfigureDataTypes(enabled_types_, |
334 Difference(syncer::ModelTypeSet::All(), | 331 Difference(syncer::ModelTypeSet::All(), |
335 enabled_types_), | 332 enabled_types_)); |
336 BackendDataTypeConfigurer::WITH_NIGORI); | |
337 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), | 333 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), |
338 enabled_types_).Empty()); | 334 enabled_types_).Empty()); |
339 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( | 335 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( |
340 partial_types)); | 336 partial_types)); |
341 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); | 337 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); |
342 EXPECT_TRUE(fake_manager_->GetAndResetEnabledTypes().Equals(enabled_types_)); | 338 EXPECT_TRUE(fake_manager_->GetAndResetEnabledTypes().Equals(enabled_types_)); |
343 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( | 339 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( |
344 enabled_types_).Empty()); | 340 enabled_types_).Empty()); |
345 } | 341 } |
346 | 342 |
(...skipping 12 matching lines...) Expand all Loading... |
359 enabled_types_).Equals( | 355 enabled_types_).Equals( |
360 Difference(enabled_types_, syncer::ModelTypeSet(syncer::NIGORI)))); | 356 Difference(enabled_types_, syncer::ModelTypeSet(syncer::NIGORI)))); |
361 | 357 |
362 // The database was empty, so any cleaning is entirely optional. We want to | 358 // The database was empty, so any cleaning is entirely optional. We want to |
363 // reset this value before running the next part of the test, though. | 359 // reset this value before running the next part of the test, though. |
364 fake_manager_->GetAndResetCleanedTypes(); | 360 fake_manager_->GetAndResetCleanedTypes(); |
365 | 361 |
366 // The actual configuration should redownload and apply all the enabled types. | 362 // The actual configuration should redownload and apply all the enabled types. |
367 ConfigureDataTypes(enabled_types_, | 363 ConfigureDataTypes(enabled_types_, |
368 Difference(syncer::ModelTypeSet::All(), | 364 Difference(syncer::ModelTypeSet::All(), |
369 enabled_types_), | 365 enabled_types_)); |
370 BackendDataTypeConfigurer::WITH_NIGORI); | |
371 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().HasAll( | 366 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().HasAll( |
372 enabled_types_)); | 367 enabled_types_)); |
373 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), | 368 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), |
374 enabled_types_).Empty()); | 369 enabled_types_).Empty()); |
375 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); | 370 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); |
376 EXPECT_TRUE(fake_manager_->GetAndResetEnabledTypes().Equals(enabled_types_)); | 371 EXPECT_TRUE(fake_manager_->GetAndResetEnabledTypes().Equals(enabled_types_)); |
377 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( | 372 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( |
378 enabled_types_).Empty()); | 373 enabled_types_).Empty()); |
379 } | 374 } |
380 | 375 |
381 TEST_F(SyncBackendHostTest, DisableTypes) { | 376 TEST_F(SyncBackendHostTest, DisableTypes) { |
382 // Simulate first time sync. | 377 // Simulate first time sync. |
383 InitializeBackend(); | 378 InitializeBackend(); |
384 fake_manager_->GetAndResetCleanedTypes(); | 379 fake_manager_->GetAndResetCleanedTypes(); |
385 ConfigureDataTypes(enabled_types_, | 380 ConfigureDataTypes(enabled_types_, |
386 Difference(syncer::ModelTypeSet::All(), | 381 Difference(syncer::ModelTypeSet::All(), |
387 enabled_types_), | 382 enabled_types_)); |
388 BackendDataTypeConfigurer::WITH_NIGORI); | |
389 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( | 383 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( |
390 enabled_types_)); | 384 enabled_types_)); |
391 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), | 385 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), |
392 enabled_types_).Empty()); | 386 enabled_types_).Empty()); |
393 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); | 387 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); |
394 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( | 388 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( |
395 enabled_types_).Empty()); | 389 enabled_types_).Empty()); |
396 | 390 |
397 // Then disable two datatypes. | 391 // Then disable two datatypes. |
398 syncer::ModelTypeSet disabled_types(syncer::BOOKMARKS, | 392 syncer::ModelTypeSet disabled_types(syncer::BOOKMARKS, |
399 syncer::SEARCH_ENGINES); | 393 syncer::SEARCH_ENGINES); |
400 syncer::ModelTypeSet old_types = enabled_types_; | 394 syncer::ModelTypeSet old_types = enabled_types_; |
401 enabled_types_.RemoveAll(disabled_types); | 395 enabled_types_.RemoveAll(disabled_types); |
402 ConfigureDataTypes(enabled_types_, | 396 ConfigureDataTypes(enabled_types_, |
403 Difference(syncer::ModelTypeSet::All(), | 397 Difference(syncer::ModelTypeSet::All(), |
404 enabled_types_), | 398 enabled_types_)); |
405 BackendDataTypeConfigurer::WITH_NIGORI); | |
406 | 399 |
407 // Only those datatypes disabled should be cleaned. Nothing should be | 400 // Only those datatypes disabled should be cleaned. Nothing should be |
408 // downloaded. | 401 // downloaded. |
409 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Empty()); | 402 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Empty()); |
410 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), | 403 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), |
411 old_types).Equals(disabled_types)); | 404 old_types).Equals(disabled_types)); |
412 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); | 405 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); |
413 EXPECT_TRUE(fake_manager_->GetAndResetEnabledTypes().Equals(enabled_types_)); | 406 EXPECT_TRUE(fake_manager_->GetAndResetEnabledTypes().Equals(enabled_types_)); |
414 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( | 407 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( |
415 enabled_types_).Empty()); | 408 enabled_types_).Empty()); |
416 } | 409 } |
417 | 410 |
418 TEST_F(SyncBackendHostTest, AddTypes) { | 411 TEST_F(SyncBackendHostTest, AddTypes) { |
419 // Simulate first time sync. | 412 // Simulate first time sync. |
420 InitializeBackend(); | 413 InitializeBackend(); |
421 fake_manager_->GetAndResetCleanedTypes(); | 414 fake_manager_->GetAndResetCleanedTypes(); |
422 ConfigureDataTypes(enabled_types_, | 415 ConfigureDataTypes(enabled_types_, |
423 Difference(syncer::ModelTypeSet::All(), | 416 Difference(syncer::ModelTypeSet::All(), |
424 enabled_types_), | 417 enabled_types_)); |
425 BackendDataTypeConfigurer::WITH_NIGORI); | |
426 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( | 418 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( |
427 enabled_types_)); | 419 enabled_types_)); |
428 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), | 420 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), |
429 enabled_types_).Empty()); | 421 enabled_types_).Empty()); |
430 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); | 422 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); |
431 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( | 423 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( |
432 enabled_types_).Empty()); | 424 enabled_types_).Empty()); |
433 | 425 |
434 // Then add two datatypes. | 426 // Then add two datatypes. |
435 syncer::ModelTypeSet new_types(syncer::EXTENSIONS, | 427 syncer::ModelTypeSet new_types(syncer::EXTENSIONS, |
436 syncer::APPS); | 428 syncer::APPS); |
437 enabled_types_.PutAll(new_types); | 429 enabled_types_.PutAll(new_types); |
438 ConfigureDataTypes(enabled_types_, | 430 ConfigureDataTypes(enabled_types_, |
439 Difference(syncer::ModelTypeSet::All(), | 431 Difference(syncer::ModelTypeSet::All(), |
440 enabled_types_), | 432 enabled_types_)); |
441 BackendDataTypeConfigurer::WITH_NIGORI); | |
442 | 433 |
443 // Only those datatypes added should be downloaded (plus nigori). Nothing | 434 // Only those datatypes added should be downloaded (plus nigori). Nothing |
444 // should be cleaned aside from the disabled types. | 435 // should be cleaned aside from the disabled types. |
445 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( | 436 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( |
446 Union(new_types, syncer::ModelTypeSet(syncer::NIGORI)))); | 437 Union(new_types, syncer::ModelTypeSet(syncer::NIGORI)))); |
447 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), | 438 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), |
448 enabled_types_).Empty()); | 439 enabled_types_).Empty()); |
449 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); | 440 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); |
450 EXPECT_TRUE(fake_manager_->GetAndResetEnabledTypes().Equals(enabled_types_)); | 441 EXPECT_TRUE(fake_manager_->GetAndResetEnabledTypes().Equals(enabled_types_)); |
451 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( | 442 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( |
452 enabled_types_).Empty()); | 443 enabled_types_).Empty()); |
453 } | 444 } |
454 | 445 |
455 // And and disable in the same configuration. | 446 // And and disable in the same configuration. |
456 TEST_F(SyncBackendHostTest, AddDisableTypes) { | 447 TEST_F(SyncBackendHostTest, AddDisableTypes) { |
457 // Simulate first time sync. | 448 // Simulate first time sync. |
458 InitializeBackend(); | 449 InitializeBackend(); |
459 fake_manager_->GetAndResetCleanedTypes(); | 450 fake_manager_->GetAndResetCleanedTypes(); |
460 ConfigureDataTypes(enabled_types_, | 451 ConfigureDataTypes(enabled_types_, |
461 Difference(syncer::ModelTypeSet::All(), | 452 Difference(syncer::ModelTypeSet::All(), |
462 enabled_types_), | 453 enabled_types_)); |
463 BackendDataTypeConfigurer::WITH_NIGORI); | |
464 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( | 454 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( |
465 enabled_types_)); | 455 enabled_types_)); |
466 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), | 456 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), |
467 enabled_types_).Empty()); | 457 enabled_types_).Empty()); |
468 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); | 458 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); |
469 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( | 459 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( |
470 enabled_types_).Empty()); | 460 enabled_types_).Empty()); |
471 | 461 |
472 // Then add two datatypes. | 462 // Then add two datatypes. |
473 syncer::ModelTypeSet old_types = enabled_types_; | 463 syncer::ModelTypeSet old_types = enabled_types_; |
474 syncer::ModelTypeSet disabled_types(syncer::BOOKMARKS, | 464 syncer::ModelTypeSet disabled_types(syncer::BOOKMARKS, |
475 syncer::SEARCH_ENGINES); | 465 syncer::SEARCH_ENGINES); |
476 syncer::ModelTypeSet new_types(syncer::EXTENSIONS, | 466 syncer::ModelTypeSet new_types(syncer::EXTENSIONS, |
477 syncer::APPS); | 467 syncer::APPS); |
478 enabled_types_.PutAll(new_types); | 468 enabled_types_.PutAll(new_types); |
479 enabled_types_.RemoveAll(disabled_types); | 469 enabled_types_.RemoveAll(disabled_types); |
480 ConfigureDataTypes(enabled_types_, | 470 ConfigureDataTypes(enabled_types_, |
481 Difference(syncer::ModelTypeSet::All(), | 471 Difference(syncer::ModelTypeSet::All(), |
482 enabled_types_), | 472 enabled_types_)); |
483 BackendDataTypeConfigurer::WITH_NIGORI); | |
484 | 473 |
485 // Only those datatypes added should be downloaded (plus nigori). Nothing | 474 // Only those datatypes added should be downloaded (plus nigori). Nothing |
486 // should be cleaned aside from the disabled types. | 475 // should be cleaned aside from the disabled types. |
487 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( | 476 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( |
488 Union(new_types, syncer::ModelTypeSet(syncer::NIGORI)))); | 477 Union(new_types, syncer::ModelTypeSet(syncer::NIGORI)))); |
489 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), | 478 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), |
490 old_types).Equals(disabled_types)); | 479 old_types).Equals(disabled_types)); |
491 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); | 480 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); |
492 EXPECT_TRUE(fake_manager_->GetAndResetEnabledTypes().Equals(enabled_types_)); | 481 EXPECT_TRUE(fake_manager_->GetAndResetEnabledTypes().Equals(enabled_types_)); |
493 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( | 482 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( |
(...skipping 18 matching lines...) Expand all Loading... |
512 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Empty()); | 501 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Empty()); |
513 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), | 502 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), |
514 old_types).Empty()); | 503 old_types).Empty()); |
515 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(old_types)); | 504 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(old_types)); |
516 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( | 505 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( |
517 enabled_types_).Equals(new_types)); | 506 enabled_types_).Equals(new_types)); |
518 | 507 |
519 // Downloads and applies the new types. | 508 // Downloads and applies the new types. |
520 ConfigureDataTypes(enabled_types_, | 509 ConfigureDataTypes(enabled_types_, |
521 Difference(syncer::ModelTypeSet::All(), | 510 Difference(syncer::ModelTypeSet::All(), |
522 enabled_types_), | 511 enabled_types_)); |
523 BackendDataTypeConfigurer::WITH_NIGORI); | |
524 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( | 512 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( |
525 Union(new_types, syncer::ModelTypeSet(syncer::NIGORI)))); | 513 Union(new_types, syncer::ModelTypeSet(syncer::NIGORI)))); |
526 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), | 514 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), |
527 enabled_types_).Empty()); | 515 enabled_types_).Empty()); |
528 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); | 516 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); |
529 EXPECT_TRUE(fake_manager_->GetAndResetEnabledTypes().Equals(enabled_types_)); | 517 EXPECT_TRUE(fake_manager_->GetAndResetEnabledTypes().Equals(enabled_types_)); |
530 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( | 518 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( |
531 enabled_types_).Empty()); | 519 enabled_types_).Empty()); |
532 } | 520 } |
533 | 521 |
(...skipping 23 matching lines...) Expand all Loading... |
557 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals( | 545 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals( |
558 syncer::Union(full_types, syncer::ModelTypeSet(syncer::NIGORI)))); | 546 syncer::Union(full_types, syncer::ModelTypeSet(syncer::NIGORI)))); |
559 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( | 547 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( |
560 enabled_types_).Equals(Union(new_types, Difference( | 548 enabled_types_).Equals(Union(new_types, Difference( |
561 partial_types, syncer::ModelTypeSet(syncer::NIGORI))))); | 549 partial_types, syncer::ModelTypeSet(syncer::NIGORI))))); |
562 | 550 |
563 // Downloads and applies the new types and partial types (which includes | 551 // Downloads and applies the new types and partial types (which includes |
564 // nigori anyways). | 552 // nigori anyways). |
565 ConfigureDataTypes(enabled_types_, | 553 ConfigureDataTypes(enabled_types_, |
566 Difference(syncer::ModelTypeSet::All(), | 554 Difference(syncer::ModelTypeSet::All(), |
567 enabled_types_), | 555 enabled_types_)); |
568 BackendDataTypeConfigurer::WITH_NIGORI); | |
569 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( | 556 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( |
570 Union(new_types, partial_types))); | 557 Union(new_types, partial_types))); |
571 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), | 558 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), |
572 enabled_types_).Empty()); | 559 enabled_types_).Empty()); |
573 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); | 560 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); |
574 EXPECT_TRUE(fake_manager_->GetAndResetEnabledTypes().Equals(enabled_types_)); | 561 EXPECT_TRUE(fake_manager_->GetAndResetEnabledTypes().Equals(enabled_types_)); |
575 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( | 562 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( |
576 enabled_types_).Empty()); | 563 enabled_types_).Empty()); |
577 } | 564 } |
578 | 565 |
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
659 backend_->Shutdown(false); | 646 backend_->Shutdown(false); |
660 backend_.reset(); | 647 backend_.reset(); |
661 | 648 |
662 TearDown(); | 649 TearDown(); |
663 SetUp(); | 650 SetUp(); |
664 } | 651 } |
665 | 652 |
666 } // namespace | 653 } // namespace |
667 | 654 |
668 } // namespace browser_sync | 655 } // namespace browser_sync |
OLD | NEW |