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

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

Issue 10817023: [Sync] Pass the correct set of enabled types to the sync notifier (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 4 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 202 matching lines...) Expand 10 before | Expand all | Expand 10 after
213 }; 213 };
214 214
215 // Test basic initialization with no initial types (first time initialization). 215 // Test basic initialization with no initial types (first time initialization).
216 // Only the nigori should be configured. 216 // Only the nigori should be configured.
217 TEST_F(SyncBackendHostTest, InitShutdown) { 217 TEST_F(SyncBackendHostTest, InitShutdown) {
218 InitializeBackend(syncer::ModelTypeSet()); 218 InitializeBackend(syncer::ModelTypeSet());
219 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( 219 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals(
220 syncer::ModelTypeSet(syncer::NIGORI))); 220 syncer::ModelTypeSet(syncer::NIGORI)));
221 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals( 221 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(
222 syncer::ModelTypeSet(syncer::NIGORI))); 222 syncer::ModelTypeSet(syncer::NIGORI)));
223 EXPECT_TRUE(fake_manager_->GetAndResetEnabledTypes().Equals(
224 syncer::ModelTypeSet(syncer::NIGORI)));
223 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( 225 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken(
224 syncer::ModelTypeSet(syncer::NIGORI)).Empty()); 226 syncer::ModelTypeSet(syncer::NIGORI)).Empty());
225 } 227 }
226 228
227 // Test first time sync scenario. All types should be properly configured. 229 // Test first time sync scenario. All types should be properly configured.
228 TEST_F(SyncBackendHostTest, FirstTimeSync) { 230 TEST_F(SyncBackendHostTest, FirstTimeSync) {
229 InitializeBackend(syncer::ModelTypeSet()); 231 InitializeBackend(syncer::ModelTypeSet());
230 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( 232 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals(
231 syncer::ModelTypeSet(syncer::NIGORI))); 233 syncer::ModelTypeSet(syncer::NIGORI)));
232 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals( 234 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(
233 syncer::ModelTypeSet(syncer::NIGORI))); 235 syncer::ModelTypeSet(syncer::NIGORI)));
236 EXPECT_TRUE(fake_manager_->GetAndResetEnabledTypes().Equals(
237 syncer::ModelTypeSet(syncer::NIGORI)));
234 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( 238 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken(
235 syncer::ModelTypeSet(syncer::NIGORI)).Empty()); 239 syncer::ModelTypeSet(syncer::NIGORI)).Empty());
236 240
237 ConfigureDataTypes(enabled_types_, 241 ConfigureDataTypes(enabled_types_,
238 Difference(syncer::ModelTypeSet::All(), 242 Difference(syncer::ModelTypeSet::All(),
239 enabled_types_), 243 enabled_types_),
240 BackendDataTypeConfigurer::WITH_NIGORI); 244 BackendDataTypeConfigurer::WITH_NIGORI);
241 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().HasAll( 245 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().HasAll(
242 enabled_types_)); 246 enabled_types_));
243 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); 247 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_));
248 EXPECT_EQ(
249 syncer::ModelTypeSetToString(fake_manager_->GetAndResetEnabledTypes()),
Nicolas Zea 2012/07/24 18:09:31 .equals instead of string matching?
akalin 2012/07/24 18:59:39 oops, done.
250 syncer::ModelTypeSetToString(enabled_types_));
244 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( 251 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken(
245 enabled_types_).Empty()); 252 enabled_types_).Empty());
246 } 253 }
247 254
248 // Test the restart after setting up sync scenario. No enabled types should be 255 // Test the restart after setting up sync scenario. No enabled types should be
249 // downloaded or cleaned. 256 // downloaded or cleaned.
250 TEST_F(SyncBackendHostTest, Restart) { 257 TEST_F(SyncBackendHostTest, Restart) {
251 sync_prefs_->SetSyncSetupCompleted(); 258 sync_prefs_->SetSyncSetupCompleted();
252 syncer::ModelTypeSet all_but_nigori = enabled_types_; 259 syncer::ModelTypeSet all_but_nigori = enabled_types_;
253 fake_manager_->set_progress_marker_types( 260 fake_manager_->set_progress_marker_types(enabled_types_);
254 enabled_types_);
255 fake_manager_->set_initial_sync_ended_types(enabled_types_); 261 fake_manager_->set_initial_sync_ended_types(enabled_types_);
256 InitializeBackend(enabled_types_); 262 InitializeBackend(enabled_types_);
257 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Empty()); 263 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Empty());
258 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), 264 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(),
259 enabled_types_).Empty()); 265 enabled_types_).Empty());
260 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); 266 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_));
267 EXPECT_TRUE(fake_manager_->GetAndResetEnabledTypes().Empty());
261 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( 268 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken(
262 enabled_types_).Empty()); 269 enabled_types_).Empty());
263 270
264 ConfigureDataTypes(enabled_types_, 271 ConfigureDataTypes(enabled_types_,
265 Difference(syncer::ModelTypeSet::All(), 272 Difference(syncer::ModelTypeSet::All(),
266 enabled_types_), 273 enabled_types_),
267 BackendDataTypeConfigurer::WITH_NIGORI); 274 BackendDataTypeConfigurer::WITH_NIGORI);
268 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Empty()); 275 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Empty());
269 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), 276 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(),
270 enabled_types_).Empty()); 277 enabled_types_).Empty());
271 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); 278 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_));
279 EXPECT_TRUE(fake_manager_->GetAndResetEnabledTypes().Equals(enabled_types_));
272 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( 280 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken(
273 enabled_types_).Empty()); 281 enabled_types_).Empty());
274 } 282 }
275 283
276 // Test a sync restart scenario where some types had never finished configuring. 284 // Test a sync restart scenario where some types had never finished configuring.
277 // The partial types should be purged, then reconfigured properly. 285 // The partial types should be purged, then reconfigured properly.
278 TEST_F(SyncBackendHostTest, PartialTypes) { 286 TEST_F(SyncBackendHostTest, PartialTypes) {
279 sync_prefs_->SetSyncSetupCompleted(); 287 sync_prefs_->SetSyncSetupCompleted();
280 // Set sync manager behavior before passing it down. All types have progress 288 // Set sync manager behavior before passing it down. All types have progress
281 // markers, but nigori and bookmarks are missing initial sync ended. 289 // markers, but nigori and bookmarks are missing initial sync ended.
282 syncer::ModelTypeSet partial_types(syncer::NIGORI, syncer::BOOKMARKS); 290 syncer::ModelTypeSet partial_types(syncer::NIGORI, syncer::BOOKMARKS);
283 syncer::ModelTypeSet full_types = 291 syncer::ModelTypeSet full_types =
284 Difference(enabled_types_, partial_types); 292 Difference(enabled_types_, partial_types);
285 fake_manager_->set_progress_marker_types(enabled_types_); 293 fake_manager_->set_progress_marker_types(enabled_types_);
286 fake_manager_->set_initial_sync_ended_types(full_types); 294 fake_manager_->set_initial_sync_ended_types(full_types);
287 295
288 // All partial types should have been purged with nothing downloaded as part 296 // All partial types should have been purged with nothing downloaded as part
289 // of bringing up the backend. 297 // of bringing up the backend.
290 InitializeBackend(enabled_types_); 298 InitializeBackend(enabled_types_);
291 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Empty()); 299 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Empty());
292 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), 300 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(),
293 enabled_types_).Empty()); 301 enabled_types_).Empty());
294 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals( 302 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(
295 full_types)); 303 full_types));
304 EXPECT_TRUE(fake_manager_->GetAndResetEnabledTypes().Empty());
296 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( 305 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken(
297 enabled_types_).Equals(partial_types)); 306 enabled_types_).Equals(partial_types));
298 307
299 // Now do the actual configuration, which should download and apply both 308 // Now do the actual configuration, which should download and apply both
300 // nigori and bookmarks. 309 // nigori and bookmarks.
301 ConfigureDataTypes(enabled_types_, 310 ConfigureDataTypes(enabled_types_,
302 Difference(syncer::ModelTypeSet::All(), 311 Difference(syncer::ModelTypeSet::All(),
303 enabled_types_), 312 enabled_types_),
304 BackendDataTypeConfigurer::WITH_NIGORI); 313 BackendDataTypeConfigurer::WITH_NIGORI);
305 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), 314 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(),
306 enabled_types_).Empty()); 315 enabled_types_).Empty());
307 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( 316 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals(
308 partial_types)); 317 partial_types));
309 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); 318 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_));
319 EXPECT_TRUE(fake_manager_->GetAndResetEnabledTypes().Equals(enabled_types_));
310 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( 320 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken(
311 enabled_types_).Empty()); 321 enabled_types_).Empty());
312 } 322 }
313 323
314 // Test the behavior when we lose the sync db. Although we already have types 324 // 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. 325 // enabled, we should re-download all of them because we lost their data.
316 TEST_F(SyncBackendHostTest, LostDB) { 326 TEST_F(SyncBackendHostTest, LostDB) {
317 sync_prefs_->SetSyncSetupCompleted(); 327 sync_prefs_->SetSyncSetupCompleted();
318 // Don't set any progress marker or initial_sync_ended types before 328 // Don't set any progress marker or initial_sync_ended types before
319 // initializing. Initialization should not affect the datatypes. 329 // initializing. Initialization should not affect the datatypes.
320 InitializeBackend(enabled_types_); 330 InitializeBackend(enabled_types_);
321 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Empty()); 331 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Empty());
322 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), 332 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(),
323 enabled_types_).Empty()); 333 enabled_types_).Empty());
324 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Empty()); 334 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Empty());
335 EXPECT_TRUE(fake_manager_->GetAndResetEnabledTypes().Empty());
325 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( 336 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken(
326 enabled_types_).Equals(enabled_types_)); 337 enabled_types_).Equals(enabled_types_));
327 338
328 // The actual configuration should redownload and apply all the enabled types. 339 // The actual configuration should redownload and apply all the enabled types.
329 ConfigureDataTypes(enabled_types_, 340 ConfigureDataTypes(enabled_types_,
330 Difference(syncer::ModelTypeSet::All(), 341 Difference(syncer::ModelTypeSet::All(),
331 enabled_types_), 342 enabled_types_),
332 BackendDataTypeConfigurer::WITH_NIGORI); 343 BackendDataTypeConfigurer::WITH_NIGORI);
333 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().HasAll( 344 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().HasAll(
334 enabled_types_)); 345 enabled_types_));
335 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), 346 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(),
336 enabled_types_).Empty()); 347 enabled_types_).Empty());
337 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); 348 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_));
349 EXPECT_TRUE(fake_manager_->GetAndResetEnabledTypes().Equals(enabled_types_));
338 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( 350 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken(
339 enabled_types_).Empty()); 351 enabled_types_).Empty());
340 } 352 }
341 353
342 TEST_F(SyncBackendHostTest, DisableTypes) { 354 TEST_F(SyncBackendHostTest, DisableTypes) {
343 // Simulate first time sync. 355 // Simulate first time sync.
344 InitializeBackend(syncer::ModelTypeSet()); 356 InitializeBackend(syncer::ModelTypeSet());
345 fake_manager_->GetAndResetCleanedTypes(); 357 fake_manager_->GetAndResetCleanedTypes();
346 ConfigureDataTypes(enabled_types_, 358 ConfigureDataTypes(enabled_types_,
347 Difference(syncer::ModelTypeSet::All(), 359 Difference(syncer::ModelTypeSet::All(),
348 enabled_types_), 360 enabled_types_),
349 BackendDataTypeConfigurer::WITH_NIGORI); 361 BackendDataTypeConfigurer::WITH_NIGORI);
350 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( 362 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals(
351 enabled_types_)); 363 enabled_types_));
352 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), 364 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(),
353 enabled_types_).Empty()); 365 enabled_types_).Empty());
354 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); 366 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_));
367 EXPECT_TRUE(fake_manager_->GetAndResetEnabledTypes().Equals(enabled_types_));
355 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( 368 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken(
356 enabled_types_).Empty()); 369 enabled_types_).Empty());
357 370
358 // Then disable two datatypes. 371 // Then disable two datatypes.
359 syncer::ModelTypeSet disabled_types(syncer::BOOKMARKS, 372 syncer::ModelTypeSet disabled_types(syncer::BOOKMARKS,
360 syncer::SEARCH_ENGINES); 373 syncer::SEARCH_ENGINES);
361 syncer::ModelTypeSet old_types = enabled_types_; 374 syncer::ModelTypeSet old_types = enabled_types_;
362 enabled_types_.RemoveAll(disabled_types); 375 enabled_types_.RemoveAll(disabled_types);
363 ConfigureDataTypes(enabled_types_, 376 ConfigureDataTypes(enabled_types_,
364 Difference(syncer::ModelTypeSet::All(), 377 Difference(syncer::ModelTypeSet::All(),
365 enabled_types_), 378 enabled_types_),
366 BackendDataTypeConfigurer::WITH_NIGORI); 379 BackendDataTypeConfigurer::WITH_NIGORI);
367 380
368 // Only those datatypes disabled should be cleaned. Nothing should be 381 // Only those datatypes disabled should be cleaned. Nothing should be
369 // downloaded. 382 // downloaded.
370 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Empty()); 383 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Empty());
371 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), 384 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(),
372 old_types).Equals(disabled_types)); 385 old_types).Equals(disabled_types));
373 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); 386 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_));
387 EXPECT_TRUE(fake_manager_->GetAndResetEnabledTypes().Equals(enabled_types_));
374 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( 388 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken(
375 enabled_types_).Empty()); 389 enabled_types_).Empty());
376 } 390 }
377 391
378 TEST_F(SyncBackendHostTest, AddTypes) { 392 TEST_F(SyncBackendHostTest, AddTypes) {
379 // Simulate first time sync. 393 // Simulate first time sync.
380 InitializeBackend(syncer::ModelTypeSet()); 394 InitializeBackend(syncer::ModelTypeSet());
381 fake_manager_->GetAndResetCleanedTypes(); 395 fake_manager_->GetAndResetCleanedTypes();
382 ConfigureDataTypes(enabled_types_, 396 ConfigureDataTypes(enabled_types_,
383 Difference(syncer::ModelTypeSet::All(), 397 Difference(syncer::ModelTypeSet::All(),
384 enabled_types_), 398 enabled_types_),
385 BackendDataTypeConfigurer::WITH_NIGORI); 399 BackendDataTypeConfigurer::WITH_NIGORI);
386 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( 400 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals(
387 enabled_types_)); 401 enabled_types_));
388 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), 402 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(),
389 enabled_types_).Empty()); 403 enabled_types_).Empty());
390 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); 404 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_));
405 EXPECT_TRUE(fake_manager_->GetAndResetEnabledTypes().Equals(enabled_types_));
391 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( 406 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken(
392 enabled_types_).Empty()); 407 enabled_types_).Empty());
393 408
394 // Then add two datatypes. 409 // Then add two datatypes.
395 syncer::ModelTypeSet new_types(syncer::EXTENSIONS, 410 syncer::ModelTypeSet new_types(syncer::EXTENSIONS,
396 syncer::APPS); 411 syncer::APPS);
397 enabled_types_.PutAll(new_types); 412 enabled_types_.PutAll(new_types);
398 ConfigureDataTypes(enabled_types_, 413 ConfigureDataTypes(enabled_types_,
399 Difference(syncer::ModelTypeSet::All(), 414 Difference(syncer::ModelTypeSet::All(),
400 enabled_types_), 415 enabled_types_),
401 BackendDataTypeConfigurer::WITH_NIGORI); 416 BackendDataTypeConfigurer::WITH_NIGORI);
402 417
403 // Only those datatypes added should be downloaded (plus nigori). Nothing 418 // Only those datatypes added should be downloaded (plus nigori). Nothing
404 // should be cleaned aside from the disabled types. 419 // should be cleaned aside from the disabled types.
405 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( 420 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals(
406 Union(new_types, syncer::ModelTypeSet(syncer::NIGORI)))); 421 Union(new_types, syncer::ModelTypeSet(syncer::NIGORI))));
407 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), 422 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(),
408 enabled_types_).Empty()); 423 enabled_types_).Empty());
409 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); 424 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_));
425 EXPECT_TRUE(fake_manager_->GetAndResetEnabledTypes().Equals(enabled_types_));
410 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( 426 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken(
411 enabled_types_).Empty()); 427 enabled_types_).Empty());
412 } 428 }
413 429
414 // And and disable in the same configuration. 430 // And and disable in the same configuration.
415 TEST_F(SyncBackendHostTest, AddDisableTypes) { 431 TEST_F(SyncBackendHostTest, AddDisableTypes) {
416 // Simulate first time sync. 432 // Simulate first time sync.
417 InitializeBackend(syncer::ModelTypeSet()); 433 InitializeBackend(syncer::ModelTypeSet());
418 fake_manager_->GetAndResetCleanedTypes(); 434 fake_manager_->GetAndResetCleanedTypes();
419 ConfigureDataTypes(enabled_types_, 435 ConfigureDataTypes(enabled_types_,
420 Difference(syncer::ModelTypeSet::All(), 436 Difference(syncer::ModelTypeSet::All(),
421 enabled_types_), 437 enabled_types_),
422 BackendDataTypeConfigurer::WITH_NIGORI); 438 BackendDataTypeConfigurer::WITH_NIGORI);
423 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( 439 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals(
424 enabled_types_)); 440 enabled_types_));
425 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), 441 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(),
426 enabled_types_).Empty()); 442 enabled_types_).Empty());
427 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); 443 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_));
444 EXPECT_TRUE(fake_manager_->GetAndResetEnabledTypes().Equals(enabled_types_));
428 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( 445 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken(
429 enabled_types_).Empty()); 446 enabled_types_).Empty());
430 447
431 // Then add two datatypes. 448 // Then add two datatypes.
432 syncer::ModelTypeSet old_types = enabled_types_; 449 syncer::ModelTypeSet old_types = enabled_types_;
433 syncer::ModelTypeSet disabled_types(syncer::BOOKMARKS, 450 syncer::ModelTypeSet disabled_types(syncer::BOOKMARKS,
434 syncer::SEARCH_ENGINES); 451 syncer::SEARCH_ENGINES);
435 syncer::ModelTypeSet new_types(syncer::EXTENSIONS, 452 syncer::ModelTypeSet new_types(syncer::EXTENSIONS,
436 syncer::APPS); 453 syncer::APPS);
437 enabled_types_.PutAll(new_types); 454 enabled_types_.PutAll(new_types);
438 enabled_types_.RemoveAll(disabled_types); 455 enabled_types_.RemoveAll(disabled_types);
439 ConfigureDataTypes(enabled_types_, 456 ConfigureDataTypes(enabled_types_,
440 Difference(syncer::ModelTypeSet::All(), 457 Difference(syncer::ModelTypeSet::All(),
441 enabled_types_), 458 enabled_types_),
442 BackendDataTypeConfigurer::WITH_NIGORI); 459 BackendDataTypeConfigurer::WITH_NIGORI);
443 460
444 // Only those datatypes added should be downloaded (plus nigori). Nothing 461 // Only those datatypes added should be downloaded (plus nigori). Nothing
445 // should be cleaned aside from the disabled types. 462 // should be cleaned aside from the disabled types.
446 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( 463 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals(
447 Union(new_types, syncer::ModelTypeSet(syncer::NIGORI)))); 464 Union(new_types, syncer::ModelTypeSet(syncer::NIGORI))));
448 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), 465 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(),
449 old_types).Equals(disabled_types)); 466 old_types).Equals(disabled_types));
450 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); 467 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_));
468 EXPECT_TRUE(fake_manager_->GetAndResetEnabledTypes().Equals(enabled_types_));
451 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( 469 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken(
452 old_types).Equals(disabled_types)); 470 old_types).Equals(disabled_types));
453 } 471 }
454 472
455 // Test restarting the browser to newly supported datatypes. The new datatypes 473 // Test restarting the browser to newly supported datatypes. The new datatypes
456 // should be downloaded on the configuration after backend initialization. 474 // should be downloaded on the configuration after backend initialization.
457 TEST_F(SyncBackendHostTest, NewlySupportedTypes) { 475 TEST_F(SyncBackendHostTest, NewlySupportedTypes) {
458 sync_prefs_->SetSyncSetupCompleted(); 476 sync_prefs_->SetSyncSetupCompleted();
459 // Set sync manager behavior before passing it down. All types have progress 477 // Set sync manager behavior before passing it down. All types have progress
460 // markers and initial sync ended except the new types. 478 // markers and initial sync ended except the new types.
461 syncer::ModelTypeSet old_types = enabled_types_; 479 syncer::ModelTypeSet old_types = enabled_types_;
462 fake_manager_->set_progress_marker_types(old_types); 480 fake_manager_->set_progress_marker_types(old_types);
463 fake_manager_->set_initial_sync_ended_types(old_types); 481 fake_manager_->set_initial_sync_ended_types(old_types);
464 syncer::ModelTypeSet new_types(syncer::APP_SETTINGS, 482 syncer::ModelTypeSet new_types(syncer::APP_SETTINGS,
465 syncer::EXTENSION_SETTINGS); 483 syncer::EXTENSION_SETTINGS);
466 enabled_types_.PutAll(new_types); 484 enabled_types_.PutAll(new_types);
467 485
468 // Does nothing. 486 // Does nothing.
469 InitializeBackend(enabled_types_); 487 InitializeBackend(enabled_types_);
470 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Empty()); 488 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Empty());
471 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), 489 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(),
472 enabled_types_).Empty()); 490 enabled_types_).Empty());
473 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(old_types)); 491 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(old_types));
492 EXPECT_TRUE(fake_manager_->GetAndResetEnabledTypes().Empty());
474 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( 493 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken(
475 enabled_types_).Equals(new_types)); 494 enabled_types_).Equals(new_types));
476 495
477 // Downloads and applies the new types. 496 // Downloads and applies the new types.
478 ConfigureDataTypes(enabled_types_, 497 ConfigureDataTypes(enabled_types_,
479 Difference(syncer::ModelTypeSet::All(), 498 Difference(syncer::ModelTypeSet::All(),
480 enabled_types_), 499 enabled_types_),
481 BackendDataTypeConfigurer::WITH_NIGORI); 500 BackendDataTypeConfigurer::WITH_NIGORI);
482 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( 501 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals(
483 Union(new_types, syncer::ModelTypeSet(syncer::NIGORI)))); 502 Union(new_types, syncer::ModelTypeSet(syncer::NIGORI))));
484 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), 503 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(),
485 enabled_types_).Empty()); 504 enabled_types_).Empty());
486 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); 505 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_));
506 EXPECT_TRUE(fake_manager_->GetAndResetEnabledTypes().Equals(enabled_types_));
487 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( 507 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken(
488 enabled_types_).Empty()); 508 enabled_types_).Empty());
489 } 509 }
490 510
491 // Test the newly supported types scenario, but with the presence of partial 511 // Test the newly supported types scenario, but with the presence of partial
492 // types as well. Both partial and newly supported types should be downloaded 512 // types as well. Both partial and newly supported types should be downloaded
493 // the configuration. 513 // the configuration.
494 TEST_F(SyncBackendHostTest, NewlySupportedTypesWithPartialTypes) { 514 TEST_F(SyncBackendHostTest, NewlySupportedTypesWithPartialTypes) {
495 sync_prefs_->SetSyncSetupCompleted(); 515 sync_prefs_->SetSyncSetupCompleted();
496 // Set sync manager behavior before passing it down. All types have progress 516 // Set sync manager behavior before passing it down. All types have progress
497 // markers and initial sync ended except the new types. 517 // markers and initial sync ended except the new types.
498 syncer::ModelTypeSet old_types = enabled_types_; 518 syncer::ModelTypeSet old_types = enabled_types_;
499 syncer::ModelTypeSet partial_types(syncer::NIGORI, syncer::BOOKMARKS); 519 syncer::ModelTypeSet partial_types(syncer::NIGORI, syncer::BOOKMARKS);
500 syncer::ModelTypeSet full_types = 520 syncer::ModelTypeSet full_types =
501 Difference(enabled_types_, partial_types); 521 Difference(enabled_types_, partial_types);
502 fake_manager_->set_progress_marker_types(old_types); 522 fake_manager_->set_progress_marker_types(old_types);
503 fake_manager_->set_initial_sync_ended_types(full_types); 523 fake_manager_->set_initial_sync_ended_types(full_types);
504 syncer::ModelTypeSet new_types(syncer::APP_SETTINGS, 524 syncer::ModelTypeSet new_types(syncer::APP_SETTINGS,
505 syncer::EXTENSION_SETTINGS); 525 syncer::EXTENSION_SETTINGS);
506 enabled_types_.PutAll(new_types); 526 enabled_types_.PutAll(new_types);
507 527
508 // Purge the partial types. 528 // Purge the partial types.
509 InitializeBackend(enabled_types_); 529 InitializeBackend(enabled_types_);
510 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Empty()); 530 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Empty());
511 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), 531 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(),
512 enabled_types_).Empty()); 532 enabled_types_).Empty());
513 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(full_types)); 533 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(full_types));
534 EXPECT_TRUE(fake_manager_->GetAndResetEnabledTypes().Empty());
514 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( 535 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken(
515 enabled_types_).Equals(Union(new_types, partial_types))); 536 enabled_types_).Equals(Union(new_types, partial_types)));
516 537
517 // Downloads and applies the new types and partial types (which includes 538 // Downloads and applies the new types and partial types (which includes
518 // nigori anyways). 539 // nigori anyways).
519 ConfigureDataTypes(enabled_types_, 540 ConfigureDataTypes(enabled_types_,
520 Difference(syncer::ModelTypeSet::All(), 541 Difference(syncer::ModelTypeSet::All(),
521 enabled_types_), 542 enabled_types_),
522 BackendDataTypeConfigurer::WITH_NIGORI); 543 BackendDataTypeConfigurer::WITH_NIGORI);
523 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( 544 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals(
524 Union(new_types, partial_types))); 545 Union(new_types, partial_types)));
525 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), 546 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(),
526 enabled_types_).Empty()); 547 enabled_types_).Empty());
527 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); 548 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_));
549 EXPECT_TRUE(fake_manager_->GetAndResetEnabledTypes().Equals(enabled_types_));
528 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( 550 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken(
529 enabled_types_).Empty()); 551 enabled_types_).Empty());
530 } 552 }
531 553
532 } // namespace 554 } // namespace
533 555
534 } // namespace browser_sync 556 } // namespace browser_sync
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698