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 // Bringing up the backend should purge all partial types, then proceed to |
289 // of bringing up the backend. | 288 // download the Nigori. |
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))); |
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 bookmarks. |
300 // nigori and bookmarks. | |
301 ConfigureDataTypes(enabled_types_, | 300 ConfigureDataTypes(enabled_types_, |
302 Difference(syncer::ModelTypeSet::All(), | 301 Difference(syncer::ModelTypeSet::All(), |
303 enabled_types_), | 302 enabled_types_), |
304 BackendDataTypeConfigurer::WITH_NIGORI); | 303 BackendDataTypeConfigurer::WITH_NIGORI); |
305 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), | 304 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), |
306 enabled_types_).Empty()); | 305 enabled_types_).Empty()); |
307 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( | 306 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( |
308 partial_types)); | 307 partial_types)); |
309 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); | 308 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); |
310 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( | 309 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( |
311 enabled_types_).Empty()); | 310 enabled_types_).Empty()); |
312 } | 311 } |
313 | 312 |
314 // Test the behavior when we lose the sync db. Although we already have types | 313 // 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. | 314 // enabled, we should re-download all of them because we lost their data. |
316 TEST_F(SyncBackendHostTest, LostDB) { | 315 TEST_F(SyncBackendHostTest, LostDB) { |
317 sync_prefs_->SetSyncSetupCompleted(); | 316 sync_prefs_->SetSyncSetupCompleted(); |
318 // Don't set any progress marker or initial_sync_ended types before | 317 // Initialization should fetch the Nigori node. Everything else should be |
319 // initializing. Initialization should not affect the datatypes. | 318 // left untouched. |
320 InitializeBackend(enabled_types_); | 319 InitializeBackend(); |
321 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Empty()); | 320 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( |
322 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), | 321 syncer::ModelTypeSet(syncer::NIGORI))); |
323 enabled_types_).Empty()); | 322 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals( |
324 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Empty()); | 323 syncer::ModelTypeSet(syncer::NIGORI))); |
325 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( | 324 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( |
326 enabled_types_).Equals(enabled_types_)); | 325 enabled_types_).Equals( |
| 326 Difference(enabled_types_, syncer::ModelTypeSet(syncer::NIGORI)))); |
| 327 |
| 328 // The database was empty, so any cleaning is entirely optional. We want to |
| 329 // reset this value before running the next part of the test, though. |
| 330 fake_manager_->GetAndResetCleanedTypes(); |
327 | 331 |
328 // The actual configuration should redownload and apply all the enabled types. | 332 // The actual configuration should redownload and apply all the enabled types. |
329 ConfigureDataTypes(enabled_types_, | 333 ConfigureDataTypes(enabled_types_, |
330 Difference(syncer::ModelTypeSet::All(), | 334 Difference(syncer::ModelTypeSet::All(), |
331 enabled_types_), | 335 enabled_types_), |
332 BackendDataTypeConfigurer::WITH_NIGORI); | 336 BackendDataTypeConfigurer::WITH_NIGORI); |
333 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().HasAll( | 337 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().HasAll( |
334 enabled_types_)); | 338 enabled_types_)); |
335 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), | 339 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), |
336 enabled_types_).Empty()); | 340 enabled_types_).Empty()); |
337 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); | 341 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); |
338 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( | 342 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( |
339 enabled_types_).Empty()); | 343 enabled_types_).Empty()); |
340 } | 344 } |
341 | 345 |
342 TEST_F(SyncBackendHostTest, DisableTypes) { | 346 TEST_F(SyncBackendHostTest, DisableTypes) { |
343 // Simulate first time sync. | 347 // Simulate first time sync. |
344 InitializeBackend(syncer::ModelTypeSet()); | 348 InitializeBackend(); |
345 fake_manager_->GetAndResetCleanedTypes(); | 349 fake_manager_->GetAndResetCleanedTypes(); |
346 ConfigureDataTypes(enabled_types_, | 350 ConfigureDataTypes(enabled_types_, |
347 Difference(syncer::ModelTypeSet::All(), | 351 Difference(syncer::ModelTypeSet::All(), |
348 enabled_types_), | 352 enabled_types_), |
349 BackendDataTypeConfigurer::WITH_NIGORI); | 353 BackendDataTypeConfigurer::WITH_NIGORI); |
350 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( | 354 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( |
351 enabled_types_)); | 355 enabled_types_)); |
352 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), | 356 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), |
353 enabled_types_).Empty()); | 357 enabled_types_).Empty()); |
354 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); | 358 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); |
(...skipping 15 matching lines...) Expand all Loading... |
370 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Empty()); | 374 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Empty()); |
371 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), | 375 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), |
372 old_types).Equals(disabled_types)); | 376 old_types).Equals(disabled_types)); |
373 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); | 377 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); |
374 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( | 378 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( |
375 enabled_types_).Empty()); | 379 enabled_types_).Empty()); |
376 } | 380 } |
377 | 381 |
378 TEST_F(SyncBackendHostTest, AddTypes) { | 382 TEST_F(SyncBackendHostTest, AddTypes) { |
379 // Simulate first time sync. | 383 // Simulate first time sync. |
380 InitializeBackend(syncer::ModelTypeSet()); | 384 InitializeBackend(); |
381 fake_manager_->GetAndResetCleanedTypes(); | 385 fake_manager_->GetAndResetCleanedTypes(); |
382 ConfigureDataTypes(enabled_types_, | 386 ConfigureDataTypes(enabled_types_, |
383 Difference(syncer::ModelTypeSet::All(), | 387 Difference(syncer::ModelTypeSet::All(), |
384 enabled_types_), | 388 enabled_types_), |
385 BackendDataTypeConfigurer::WITH_NIGORI); | 389 BackendDataTypeConfigurer::WITH_NIGORI); |
386 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( | 390 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( |
387 enabled_types_)); | 391 enabled_types_)); |
388 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), | 392 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), |
389 enabled_types_).Empty()); | 393 enabled_types_).Empty()); |
390 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); | 394 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); |
(...skipping 16 matching lines...) Expand all Loading... |
407 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), | 411 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), |
408 enabled_types_).Empty()); | 412 enabled_types_).Empty()); |
409 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); | 413 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); |
410 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( | 414 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( |
411 enabled_types_).Empty()); | 415 enabled_types_).Empty()); |
412 } | 416 } |
413 | 417 |
414 // And and disable in the same configuration. | 418 // And and disable in the same configuration. |
415 TEST_F(SyncBackendHostTest, AddDisableTypes) { | 419 TEST_F(SyncBackendHostTest, AddDisableTypes) { |
416 // Simulate first time sync. | 420 // Simulate first time sync. |
417 InitializeBackend(syncer::ModelTypeSet()); | 421 InitializeBackend(); |
418 fake_manager_->GetAndResetCleanedTypes(); | 422 fake_manager_->GetAndResetCleanedTypes(); |
419 ConfigureDataTypes(enabled_types_, | 423 ConfigureDataTypes(enabled_types_, |
420 Difference(syncer::ModelTypeSet::All(), | 424 Difference(syncer::ModelTypeSet::All(), |
421 enabled_types_), | 425 enabled_types_), |
422 BackendDataTypeConfigurer::WITH_NIGORI); | 426 BackendDataTypeConfigurer::WITH_NIGORI); |
423 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( | 427 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( |
424 enabled_types_)); | 428 enabled_types_)); |
425 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), | 429 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), |
426 enabled_types_).Empty()); | 430 enabled_types_).Empty()); |
427 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); | 431 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 | 463 // Set sync manager behavior before passing it down. All types have progress |
460 // markers and initial sync ended except the new types. | 464 // markers and initial sync ended except the new types. |
461 syncer::ModelTypeSet old_types = enabled_types_; | 465 syncer::ModelTypeSet old_types = enabled_types_; |
462 fake_manager_->set_progress_marker_types(old_types); | 466 fake_manager_->set_progress_marker_types(old_types); |
463 fake_manager_->set_initial_sync_ended_types(old_types); | 467 fake_manager_->set_initial_sync_ended_types(old_types); |
464 syncer::ModelTypeSet new_types(syncer::APP_SETTINGS, | 468 syncer::ModelTypeSet new_types(syncer::APP_SETTINGS, |
465 syncer::EXTENSION_SETTINGS); | 469 syncer::EXTENSION_SETTINGS); |
466 enabled_types_.PutAll(new_types); | 470 enabled_types_.PutAll(new_types); |
467 | 471 |
468 // Does nothing. | 472 // Does nothing. |
469 InitializeBackend(enabled_types_); | 473 InitializeBackend(); |
470 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Empty()); | 474 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Empty()); |
471 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), | 475 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), |
472 enabled_types_).Empty()); | 476 old_types).Empty()); |
473 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(old_types)); | 477 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(old_types)); |
474 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( | 478 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( |
475 enabled_types_).Equals(new_types)); | 479 enabled_types_).Equals(new_types)); |
476 | 480 |
477 // Downloads and applies the new types. | 481 // Downloads and applies the new types. |
478 ConfigureDataTypes(enabled_types_, | 482 ConfigureDataTypes(enabled_types_, |
479 Difference(syncer::ModelTypeSet::All(), | 483 Difference(syncer::ModelTypeSet::All(), |
480 enabled_types_), | 484 enabled_types_), |
481 BackendDataTypeConfigurer::WITH_NIGORI); | 485 BackendDataTypeConfigurer::WITH_NIGORI); |
482 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( | 486 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( |
(...skipping 16 matching lines...) Expand all Loading... |
499 syncer::ModelTypeSet partial_types(syncer::NIGORI, syncer::BOOKMARKS); | 503 syncer::ModelTypeSet partial_types(syncer::NIGORI, syncer::BOOKMARKS); |
500 syncer::ModelTypeSet full_types = | 504 syncer::ModelTypeSet full_types = |
501 Difference(enabled_types_, partial_types); | 505 Difference(enabled_types_, partial_types); |
502 fake_manager_->set_progress_marker_types(old_types); | 506 fake_manager_->set_progress_marker_types(old_types); |
503 fake_manager_->set_initial_sync_ended_types(full_types); | 507 fake_manager_->set_initial_sync_ended_types(full_types); |
504 syncer::ModelTypeSet new_types(syncer::APP_SETTINGS, | 508 syncer::ModelTypeSet new_types(syncer::APP_SETTINGS, |
505 syncer::EXTENSION_SETTINGS); | 509 syncer::EXTENSION_SETTINGS); |
506 enabled_types_.PutAll(new_types); | 510 enabled_types_.PutAll(new_types); |
507 | 511 |
508 // Purge the partial types. | 512 // Purge the partial types. |
509 InitializeBackend(enabled_types_); | 513 InitializeBackend(); |
510 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Empty()); | 514 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( |
511 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), | 515 syncer::ModelTypeSet(syncer::NIGORI))); |
512 enabled_types_).Empty()); | 516 EXPECT_TRUE(fake_manager_->GetAndResetCleanedTypes().HasAll(partial_types)); |
513 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(full_types)); | 517 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals( |
| 518 syncer::Union(full_types, syncer::ModelTypeSet(syncer::NIGORI)))); |
514 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( | 519 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( |
515 enabled_types_).Equals(Union(new_types, partial_types))); | 520 enabled_types_).Equals(Union(new_types, Difference( |
| 521 partial_types, syncer::ModelTypeSet(syncer::NIGORI))))); |
516 | 522 |
517 // Downloads and applies the new types and partial types (which includes | 523 // Downloads and applies the new types and partial types (which includes |
518 // nigori anyways). | 524 // nigori anyways). |
519 ConfigureDataTypes(enabled_types_, | 525 ConfigureDataTypes(enabled_types_, |
520 Difference(syncer::ModelTypeSet::All(), | 526 Difference(syncer::ModelTypeSet::All(), |
521 enabled_types_), | 527 enabled_types_), |
522 BackendDataTypeConfigurer::WITH_NIGORI); | 528 BackendDataTypeConfigurer::WITH_NIGORI); |
523 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( | 529 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( |
524 Union(new_types, partial_types))); | 530 Union(new_types, partial_types))); |
525 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), | 531 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), |
526 enabled_types_).Empty()); | 532 enabled_types_).Empty()); |
527 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); | 533 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); |
528 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( | 534 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( |
529 enabled_types_).Empty()); | 535 enabled_types_).Empty()); |
530 } | 536 } |
531 | 537 |
532 } // namespace | 538 } // namespace |
533 | 539 |
534 } // namespace browser_sync | 540 } // namespace browser_sync |
OLD | NEW |