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

Side by Side Diff: chrome/browser/sync/glue/sync_backend_host_unittest.cc

Issue 10804039: Make SyncBackendRegistrar aware of loaded data (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Comments and Indents Created 8 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (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
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
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
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
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698