| 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 |