Chromium Code Reviews| 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/memory/scoped_ptr.h" | 9 #include "base/memory/scoped_ptr.h" |
| 10 #include "base/message_loop.h" | 10 #include "base/message_loop.h" |
| (...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 142 profile_.reset(); | 142 profile_.reset(); |
| 143 // Pump messages posted by the sync core thread (which may end up | 143 // Pump messages posted by the sync core thread (which may end up |
| 144 // posting on the IO thread). | 144 // posting on the IO thread). |
| 145 ui_loop_.RunAllPending(); | 145 ui_loop_.RunAllPending(); |
| 146 io_thread_.Stop(); | 146 io_thread_.Stop(); |
| 147 // Pump any messages posted by the IO thread. | 147 // Pump any messages posted by the IO thread. |
| 148 ui_loop_.RunAllPending(); | 148 ui_loop_.RunAllPending(); |
| 149 } | 149 } |
| 150 | 150 |
| 151 // Synchronously initializes the backend. | 151 // Synchronously initializes the backend. |
| 152 void InitializeBackend(syncer::ModelTypeSet enabled_types) { | 152 void InitializeBackend() { |
| 153 EXPECT_CALL(mock_frontend_, OnBackendInitialized(_, true)). | 153 EXPECT_CALL(mock_frontend_, OnBackendInitialized(_, true)). |
| 154 WillOnce(InvokeWithoutArgs(QuitMessageLoop)); | 154 WillOnce(InvokeWithoutArgs(QuitMessageLoop)); |
| 155 backend_->Initialize(&mock_frontend_, | 155 backend_->Initialize(&mock_frontend_, |
| 156 syncer::WeakHandle<syncer::JsEventHandler>(), | 156 syncer::WeakHandle<syncer::JsEventHandler>(), |
| 157 GURL(""), | 157 GURL(""), |
| 158 enabled_types, | |
| 159 credentials_, | 158 credentials_, |
| 160 true, | 159 true, |
| 161 &fake_sync_manager_factory_, | 160 &fake_sync_manager_factory_, |
| 162 &handler_, | 161 &handler_, |
| 163 NULL); | 162 NULL); |
| 164 ui_loop_.PostDelayedTask( | 163 ui_loop_.PostDelayedTask( |
| 165 FROM_HERE, | 164 FROM_HERE, |
| 166 ui_loop_.QuitClosure(), | 165 ui_loop_.QuitClosure(), |
| 167 base::TimeDelta::FromMilliseconds(TestTimeouts::action_timeout_ms())); | 166 base::TimeDelta::FromMilliseconds(TestTimeouts::action_timeout_ms())); |
| 168 ui_loop_.Run(); | 167 ui_loop_.Run(); |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 208 scoped_ptr<InvalidatorStorage> invalidator_storage_; | 207 scoped_ptr<InvalidatorStorage> invalidator_storage_; |
| 209 scoped_ptr<SyncBackendHost> backend_; | 208 scoped_ptr<SyncBackendHost> backend_; |
| 210 FakeSyncManagerFactory fake_sync_manager_factory_; | 209 FakeSyncManagerFactory fake_sync_manager_factory_; |
| 211 FakeSyncManager* fake_manager_; | 210 FakeSyncManager* fake_manager_; |
| 212 syncer::ModelTypeSet enabled_types_; | 211 syncer::ModelTypeSet enabled_types_; |
| 213 }; | 212 }; |
| 214 | 213 |
| 215 // Test basic initialization with no initial types (first time initialization). | 214 // Test basic initialization with no initial types (first time initialization). |
| 216 // Only the nigori should be configured. | 215 // Only the nigori should be configured. |
| 217 TEST_F(SyncBackendHostTest, InitShutdown) { | 216 TEST_F(SyncBackendHostTest, InitShutdown) { |
| 218 InitializeBackend(syncer::ModelTypeSet()); | 217 InitializeBackend(); |
| 219 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( | 218 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( |
| 220 syncer::ModelTypeSet(syncer::NIGORI))); | 219 syncer::ModelTypeSet(syncer::NIGORI))); |
| 221 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals( | 220 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals( |
| 222 syncer::ModelTypeSet(syncer::NIGORI))); | 221 syncer::ModelTypeSet(syncer::NIGORI))); |
| 223 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( | 222 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( |
| 224 syncer::ModelTypeSet(syncer::NIGORI)).Empty()); | 223 syncer::ModelTypeSet(syncer::NIGORI)).Empty()); |
| 225 } | 224 } |
| 226 | 225 |
| 227 // Test first time sync scenario. All types should be properly configured. | 226 // Test first time sync scenario. All types should be properly configured. |
| 228 TEST_F(SyncBackendHostTest, FirstTimeSync) { | 227 TEST_F(SyncBackendHostTest, FirstTimeSync) { |
| 229 InitializeBackend(syncer::ModelTypeSet()); | 228 InitializeBackend(); |
| 230 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( | 229 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( |
| 231 syncer::ModelTypeSet(syncer::NIGORI))); | 230 syncer::ModelTypeSet(syncer::NIGORI))); |
| 232 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals( | 231 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals( |
| 233 syncer::ModelTypeSet(syncer::NIGORI))); | 232 syncer::ModelTypeSet(syncer::NIGORI))); |
| 234 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( | 233 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( |
| 235 syncer::ModelTypeSet(syncer::NIGORI)).Empty()); | 234 syncer::ModelTypeSet(syncer::NIGORI)).Empty()); |
| 236 | 235 |
| 237 ConfigureDataTypes(enabled_types_, | 236 ConfigureDataTypes(enabled_types_, |
| 238 Difference(syncer::ModelTypeSet::All(), | 237 Difference(syncer::ModelTypeSet::All(), |
| 239 enabled_types_), | 238 enabled_types_), |
| 240 BackendDataTypeConfigurer::WITH_NIGORI); | 239 BackendDataTypeConfigurer::WITH_NIGORI); |
| 241 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().HasAll( | 240 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().HasAll( |
| 242 enabled_types_)); | 241 enabled_types_)); |
| 243 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); | 242 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); |
| 244 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( | 243 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( |
| 245 enabled_types_).Empty()); | 244 enabled_types_).Empty()); |
| 246 } | 245 } |
| 247 | 246 |
| 248 // Test the restart after setting up sync scenario. No enabled types should be | 247 // Test the restart after setting up sync scenario. No enabled types should be |
| 249 // downloaded or cleaned. | 248 // downloaded or cleaned. |
| 250 TEST_F(SyncBackendHostTest, Restart) { | 249 TEST_F(SyncBackendHostTest, Restart) { |
| 251 sync_prefs_->SetSyncSetupCompleted(); | 250 sync_prefs_->SetSyncSetupCompleted(); |
| 252 syncer::ModelTypeSet all_but_nigori = enabled_types_; | 251 syncer::ModelTypeSet all_but_nigori = enabled_types_; |
| 253 fake_manager_->set_progress_marker_types( | 252 fake_manager_->set_progress_marker_types( |
| 254 enabled_types_); | 253 enabled_types_); |
| 255 fake_manager_->set_initial_sync_ended_types(enabled_types_); | 254 fake_manager_->set_initial_sync_ended_types(enabled_types_); |
| 256 InitializeBackend(enabled_types_); | 255 InitializeBackend(); |
| 257 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Empty()); | 256 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Empty()); |
| 258 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), | 257 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), |
| 259 enabled_types_).Empty()); | 258 enabled_types_).Empty()); |
| 260 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); | 259 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); |
| 261 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( | 260 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( |
| 262 enabled_types_).Empty()); | 261 enabled_types_).Empty()); |
| 263 | 262 |
| 264 ConfigureDataTypes(enabled_types_, | 263 ConfigureDataTypes(enabled_types_, |
| 265 Difference(syncer::ModelTypeSet::All(), | 264 Difference(syncer::ModelTypeSet::All(), |
| 266 enabled_types_), | 265 enabled_types_), |
| (...skipping 11 matching lines...) Expand all Loading... | |
| 278 TEST_F(SyncBackendHostTest, PartialTypes) { | 277 TEST_F(SyncBackendHostTest, PartialTypes) { |
| 279 sync_prefs_->SetSyncSetupCompleted(); | 278 sync_prefs_->SetSyncSetupCompleted(); |
| 280 // Set sync manager behavior before passing it down. All types have progress | 279 // Set sync manager behavior before passing it down. All types have progress |
| 281 // markers, but nigori and bookmarks are missing initial sync ended. | 280 // markers, but nigori and bookmarks are missing initial sync ended. |
| 282 syncer::ModelTypeSet partial_types(syncer::NIGORI, syncer::BOOKMARKS); | 281 syncer::ModelTypeSet partial_types(syncer::NIGORI, syncer::BOOKMARKS); |
| 283 syncer::ModelTypeSet full_types = | 282 syncer::ModelTypeSet full_types = |
| 284 Difference(enabled_types_, partial_types); | 283 Difference(enabled_types_, partial_types); |
| 285 fake_manager_->set_progress_marker_types(enabled_types_); | 284 fake_manager_->set_progress_marker_types(enabled_types_); |
| 286 fake_manager_->set_initial_sync_ended_types(full_types); | 285 fake_manager_->set_initial_sync_ended_types(full_types); |
| 287 | 286 |
| 288 // All partial types should have been purged with nothing downloaded as part | 287 // All partial types should have been purged with nothing downloaded as part |
|
Nicolas Zea
2012/07/20 21:35:39
update comment
rlarocque
2012/07/23 20:50:30
Done.
| |
| 289 // of bringing up the backend. | 288 // of bringing up the backend. |
| 290 InitializeBackend(enabled_types_); | 289 InitializeBackend(); |
| 291 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Empty()); | 290 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( |
| 292 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), | 291 syncer::ModelTypeSet(syncer::NIGORI))); |
|
Nicolas Zea
2012/07/20 21:35:39
Fix indents in this test and the next.
rlarocque
2012/07/20 23:20:05
My editor seems to like these indents as is. It's
| |
| 293 enabled_types_).Empty()); | 292 EXPECT_TRUE(fake_manager_->GetAndResetCleanedTypes().HasAll(partial_types)); |
| 294 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals( | 293 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals( |
| 295 full_types)); | 294 Union(full_types, syncer::ModelTypeSet(syncer::NIGORI)))); |
| 296 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( | 295 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( |
| 297 enabled_types_).Equals(partial_types)); | 296 enabled_types_).Equals( |
| 297 Difference(partial_types, syncer::ModelTypeSet(syncer::NIGORI)))); | |
| 298 | 298 |
| 299 // Now do the actual configuration, which should download and apply both | 299 // Now do the actual configuration, which should download and apply both |
| 300 // nigori and bookmarks. | 300 // nigori and bookmarks. |
|
Nicolas Zea
2012/07/20 21:35:39
this comment too
rlarocque
2012/07/20 23:20:05
Done.
| |
| 301 ConfigureDataTypes(enabled_types_, | 301 ConfigureDataTypes(enabled_types_, |
| 302 Difference(syncer::ModelTypeSet::All(), | 302 Difference(syncer::ModelTypeSet::All(), |
| 303 enabled_types_), | 303 enabled_types_), |
| 304 BackendDataTypeConfigurer::WITH_NIGORI); | 304 BackendDataTypeConfigurer::WITH_NIGORI); |
| 305 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), | 305 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), |
| 306 enabled_types_).Empty()); | 306 enabled_types_).Empty()); |
| 307 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( | 307 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( |
| 308 partial_types)); | 308 partial_types)); |
| 309 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); | 309 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); |
| 310 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( | 310 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( |
| 311 enabled_types_).Empty()); | 311 enabled_types_).Empty()); |
| 312 } | 312 } |
| 313 | 313 |
| 314 // Test the behavior when we lose the sync db. Although we already have types | 314 // Test the behavior when we lose the sync db. Although we already have types |
| 315 // enabled, we should re-download all of them because we lost their data. | 315 // enabled, we should re-download all of them because we lost their data. |
| 316 TEST_F(SyncBackendHostTest, LostDB) { | 316 TEST_F(SyncBackendHostTest, LostDB) { |
| 317 sync_prefs_->SetSyncSetupCompleted(); | 317 sync_prefs_->SetSyncSetupCompleted(); |
| 318 // Don't set any progress marker or initial_sync_ended types before | 318 // Don't set any progress marker or initial_sync_ended types before |
| 319 // initializing. Initialization should not affect the datatypes. | 319 // initializing. Initialization should not affect the datatypes. |
|
Nicolas Zea
2012/07/20 21:35:39
and this
rlarocque
2012/07/23 20:50:30
Done.
| |
| 320 InitializeBackend(enabled_types_); | 320 InitializeBackend(); |
| 321 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Empty()); | 321 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( |
| 322 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), | 322 syncer::ModelTypeSet(syncer::NIGORI))); |
| 323 enabled_types_).Empty()); | 323 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals( |
| 324 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Empty()); | 324 syncer::ModelTypeSet(syncer::NIGORI))); |
| 325 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( | 325 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( |
| 326 enabled_types_).Equals(enabled_types_)); | 326 enabled_types_).Equals( |
| 327 Difference(enabled_types_, syncer::ModelTypeSet(syncer::NIGORI)))); | |
| 328 | |
| 329 // The database was empty, so any cleaning is entirely optional. We want to | |
| 330 // reset this value before running the next part of the test, though. | |
| 331 fake_manager_->GetAndResetCleanedTypes(); | |
| 327 | 332 |
| 328 // The actual configuration should redownload and apply all the enabled types. | 333 // The actual configuration should redownload and apply all the enabled types. |
| 329 ConfigureDataTypes(enabled_types_, | 334 ConfigureDataTypes(enabled_types_, |
| 330 Difference(syncer::ModelTypeSet::All(), | 335 Difference(syncer::ModelTypeSet::All(), |
| 331 enabled_types_), | 336 enabled_types_), |
| 332 BackendDataTypeConfigurer::WITH_NIGORI); | 337 BackendDataTypeConfigurer::WITH_NIGORI); |
| 333 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().HasAll( | 338 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().HasAll( |
| 334 enabled_types_)); | 339 enabled_types_)); |
| 335 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), | 340 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), |
| 336 enabled_types_).Empty()); | 341 enabled_types_).Empty()); |
| 337 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); | 342 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); |
| 338 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( | 343 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( |
| 339 enabled_types_).Empty()); | 344 enabled_types_).Empty()); |
| 340 } | 345 } |
| 341 | 346 |
| 342 TEST_F(SyncBackendHostTest, DisableTypes) { | 347 TEST_F(SyncBackendHostTest, DisableTypes) { |
| 343 // Simulate first time sync. | 348 // Simulate first time sync. |
| 344 InitializeBackend(syncer::ModelTypeSet()); | 349 InitializeBackend(); |
| 345 fake_manager_->GetAndResetCleanedTypes(); | 350 fake_manager_->GetAndResetCleanedTypes(); |
| 346 ConfigureDataTypes(enabled_types_, | 351 ConfigureDataTypes(enabled_types_, |
| 347 Difference(syncer::ModelTypeSet::All(), | 352 Difference(syncer::ModelTypeSet::All(), |
| 348 enabled_types_), | 353 enabled_types_), |
| 349 BackendDataTypeConfigurer::WITH_NIGORI); | 354 BackendDataTypeConfigurer::WITH_NIGORI); |
| 350 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( | 355 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( |
| 351 enabled_types_)); | 356 enabled_types_)); |
| 352 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), | 357 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), |
| 353 enabled_types_).Empty()); | 358 enabled_types_).Empty()); |
| 354 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); | 359 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); |
| (...skipping 15 matching lines...) Expand all Loading... | |
| 370 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Empty()); | 375 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Empty()); |
| 371 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), | 376 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), |
| 372 old_types).Equals(disabled_types)); | 377 old_types).Equals(disabled_types)); |
| 373 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); | 378 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); |
| 374 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( | 379 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( |
| 375 enabled_types_).Empty()); | 380 enabled_types_).Empty()); |
| 376 } | 381 } |
| 377 | 382 |
| 378 TEST_F(SyncBackendHostTest, AddTypes) { | 383 TEST_F(SyncBackendHostTest, AddTypes) { |
| 379 // Simulate first time sync. | 384 // Simulate first time sync. |
| 380 InitializeBackend(syncer::ModelTypeSet()); | 385 InitializeBackend(); |
| 381 fake_manager_->GetAndResetCleanedTypes(); | 386 fake_manager_->GetAndResetCleanedTypes(); |
| 382 ConfigureDataTypes(enabled_types_, | 387 ConfigureDataTypes(enabled_types_, |
| 383 Difference(syncer::ModelTypeSet::All(), | 388 Difference(syncer::ModelTypeSet::All(), |
| 384 enabled_types_), | 389 enabled_types_), |
| 385 BackendDataTypeConfigurer::WITH_NIGORI); | 390 BackendDataTypeConfigurer::WITH_NIGORI); |
| 386 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( | 391 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( |
| 387 enabled_types_)); | 392 enabled_types_)); |
| 388 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), | 393 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), |
| 389 enabled_types_).Empty()); | 394 enabled_types_).Empty()); |
| 390 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); | 395 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); |
| (...skipping 16 matching lines...) Expand all Loading... | |
| 407 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), | 412 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), |
| 408 enabled_types_).Empty()); | 413 enabled_types_).Empty()); |
| 409 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); | 414 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); |
| 410 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( | 415 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( |
| 411 enabled_types_).Empty()); | 416 enabled_types_).Empty()); |
| 412 } | 417 } |
| 413 | 418 |
| 414 // And and disable in the same configuration. | 419 // And and disable in the same configuration. |
| 415 TEST_F(SyncBackendHostTest, AddDisableTypes) { | 420 TEST_F(SyncBackendHostTest, AddDisableTypes) { |
| 416 // Simulate first time sync. | 421 // Simulate first time sync. |
| 417 InitializeBackend(syncer::ModelTypeSet()); | 422 InitializeBackend(); |
| 418 fake_manager_->GetAndResetCleanedTypes(); | 423 fake_manager_->GetAndResetCleanedTypes(); |
| 419 ConfigureDataTypes(enabled_types_, | 424 ConfigureDataTypes(enabled_types_, |
| 420 Difference(syncer::ModelTypeSet::All(), | 425 Difference(syncer::ModelTypeSet::All(), |
| 421 enabled_types_), | 426 enabled_types_), |
| 422 BackendDataTypeConfigurer::WITH_NIGORI); | 427 BackendDataTypeConfigurer::WITH_NIGORI); |
| 423 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( | 428 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( |
| 424 enabled_types_)); | 429 enabled_types_)); |
| 425 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), | 430 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), |
| 426 enabled_types_).Empty()); | 431 enabled_types_).Empty()); |
| 427 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); | 432 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 459 // Set sync manager behavior before passing it down. All types have progress | 464 // Set sync manager behavior before passing it down. All types have progress |
| 460 // markers and initial sync ended except the new types. | 465 // markers and initial sync ended except the new types. |
| 461 syncer::ModelTypeSet old_types = enabled_types_; | 466 syncer::ModelTypeSet old_types = enabled_types_; |
| 462 fake_manager_->set_progress_marker_types(old_types); | 467 fake_manager_->set_progress_marker_types(old_types); |
| 463 fake_manager_->set_initial_sync_ended_types(old_types); | 468 fake_manager_->set_initial_sync_ended_types(old_types); |
| 464 syncer::ModelTypeSet new_types(syncer::APP_SETTINGS, | 469 syncer::ModelTypeSet new_types(syncer::APP_SETTINGS, |
| 465 syncer::EXTENSION_SETTINGS); | 470 syncer::EXTENSION_SETTINGS); |
| 466 enabled_types_.PutAll(new_types); | 471 enabled_types_.PutAll(new_types); |
| 467 | 472 |
| 468 // Does nothing. | 473 // Does nothing. |
| 469 InitializeBackend(enabled_types_); | 474 InitializeBackend(); |
| 470 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Empty()); | 475 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Empty()); |
| 471 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), | 476 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), |
| 472 enabled_types_).Empty()); | 477 old_types).Empty()); |
| 473 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(old_types)); | 478 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(old_types)); |
| 474 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( | 479 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( |
| 475 enabled_types_).Equals(new_types)); | 480 enabled_types_).Equals(new_types)); |
| 476 | 481 |
| 477 // Downloads and applies the new types. | 482 // Downloads and applies the new types. |
| 478 ConfigureDataTypes(enabled_types_, | 483 ConfigureDataTypes(enabled_types_, |
| 479 Difference(syncer::ModelTypeSet::All(), | 484 Difference(syncer::ModelTypeSet::All(), |
| 480 enabled_types_), | 485 enabled_types_), |
| 481 BackendDataTypeConfigurer::WITH_NIGORI); | 486 BackendDataTypeConfigurer::WITH_NIGORI); |
| 482 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( | 487 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( |
| (...skipping 15 matching lines...) Expand all Loading... | |
| 498 syncer::ModelTypeSet old_types = enabled_types_; | 503 syncer::ModelTypeSet old_types = enabled_types_; |
| 499 syncer::ModelTypeSet partial_types(syncer::NIGORI, syncer::BOOKMARKS); | 504 syncer::ModelTypeSet partial_types(syncer::NIGORI, syncer::BOOKMARKS); |
| 500 syncer::ModelTypeSet full_types = | 505 syncer::ModelTypeSet full_types = |
| 501 Difference(enabled_types_, partial_types); | 506 Difference(enabled_types_, partial_types); |
| 502 fake_manager_->set_progress_marker_types(old_types); | 507 fake_manager_->set_progress_marker_types(old_types); |
| 503 fake_manager_->set_initial_sync_ended_types(full_types); | 508 fake_manager_->set_initial_sync_ended_types(full_types); |
| 504 syncer::ModelTypeSet new_types(syncer::APP_SETTINGS, | 509 syncer::ModelTypeSet new_types(syncer::APP_SETTINGS, |
| 505 syncer::EXTENSION_SETTINGS); | 510 syncer::EXTENSION_SETTINGS); |
| 506 enabled_types_.PutAll(new_types); | 511 enabled_types_.PutAll(new_types); |
| 507 | 512 |
| 508 // Purge the partial types. | 513 // Purge the partial types. |
|
rlarocque
2012/07/23 20:50:30
Fixed this comment, too.
| |
| 509 InitializeBackend(enabled_types_); | 514 InitializeBackend(); |
| 510 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Empty()); | 515 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( |
| 511 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), | 516 syncer::ModelTypeSet(syncer::NIGORI))); |
| 512 enabled_types_).Empty()); | 517 EXPECT_TRUE(fake_manager_->GetAndResetCleanedTypes().HasAll(partial_types)); |
| 513 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(full_types)); | 518 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals( |
| 519 syncer::Union(full_types, syncer::ModelTypeSet(syncer::NIGORI)))); | |
| 514 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( | 520 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( |
| 515 enabled_types_).Equals(Union(new_types, partial_types))); | 521 enabled_types_).Equals(Union(new_types, Difference( |
| 522 partial_types, syncer::ModelTypeSet(syncer::NIGORI))))); | |
| 516 | 523 |
| 517 // Downloads and applies the new types and partial types (which includes | 524 // Downloads and applies the new types and partial types (which includes |
| 518 // nigori anyways). | 525 // nigori anyways). |
| 519 ConfigureDataTypes(enabled_types_, | 526 ConfigureDataTypes(enabled_types_, |
| 520 Difference(syncer::ModelTypeSet::All(), | 527 Difference(syncer::ModelTypeSet::All(), |
| 521 enabled_types_), | 528 enabled_types_), |
| 522 BackendDataTypeConfigurer::WITH_NIGORI); | 529 BackendDataTypeConfigurer::WITH_NIGORI); |
| 523 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( | 530 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( |
| 524 Union(new_types, partial_types))); | 531 Union(new_types, partial_types))); |
| 525 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), | 532 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), |
| 526 enabled_types_).Empty()); | 533 enabled_types_).Empty()); |
| 527 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); | 534 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); |
| 528 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( | 535 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( |
| 529 enabled_types_).Empty()); | 536 enabled_types_).Empty()); |
| 530 } | 537 } |
| 531 | 538 |
| 532 } // namespace | 539 } // namespace |
| 533 | 540 |
| 534 } // namespace browser_sync | 541 } // namespace browser_sync |
| OLD | NEW |