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

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

Issue 10825137: FYI: Control Data + Per-Device Metadata (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add PER_USER_METADATA, refactor some encryption code 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/location.h" 9 #include "base/location.h"
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
149 profile_.get(), 149 profile_.get(),
150 sync_prefs_->AsWeakPtr(), 150 sync_prefs_->AsWeakPtr(),
151 invalidator_storage_->AsWeakPtr())); 151 invalidator_storage_->AsWeakPtr()));
152 credentials_.email = "user@example.com"; 152 credentials_.email = "user@example.com";
153 credentials_.sync_token = "sync_token"; 153 credentials_.sync_token = "sync_token";
154 154
155 // NOTE: We can't include Passwords or Typed URLs due to the Sync Backend 155 // NOTE: We can't include Passwords or Typed URLs due to the Sync Backend
156 // Registrar removing them if it can't find their model workers. 156 // Registrar removing them if it can't find their model workers.
157 enabled_types_.Put(syncer::BOOKMARKS); 157 enabled_types_.Put(syncer::BOOKMARKS);
158 enabled_types_.Put(syncer::NIGORI); 158 enabled_types_.Put(syncer::NIGORI);
159 enabled_types_.Put(syncer::PER_DEVICE_METADATA);
160 enabled_types_.Put(syncer::PER_USER_METADATA);
159 enabled_types_.Put(syncer::PREFERENCES); 161 enabled_types_.Put(syncer::PREFERENCES);
160 enabled_types_.Put(syncer::SESSIONS); 162 enabled_types_.Put(syncer::SESSIONS);
161 enabled_types_.Put(syncer::SEARCH_ENGINES); 163 enabled_types_.Put(syncer::SEARCH_ENGINES);
162 enabled_types_.Put(syncer::AUTOFILL); 164 enabled_types_.Put(syncer::AUTOFILL);
163 } 165 }
164 166
165 virtual void TearDown() OVERRIDE { 167 virtual void TearDown() OVERRIDE {
166 if (backend_.get()) { 168 if (backend_.get()) {
167 backend_->StopSyncingForShutdown(); 169 backend_->StopSyncingForShutdown();
168 backend_->Shutdown(false); 170 backend_->Shutdown(false);
(...skipping 27 matching lines...) Expand all
196 ui_loop_.Run(); 198 ui_loop_.Run();
197 // |fake_manager_factory_|'s fake_manager() is set on the sync 199 // |fake_manager_factory_|'s fake_manager() is set on the sync
198 // thread, but we can rely on the message loop barriers to 200 // thread, but we can rely on the message loop barriers to
199 // guarantee that we see the updated value. 201 // guarantee that we see the updated value.
200 fake_manager_ = fake_manager_factory_.fake_manager(); 202 fake_manager_ = fake_manager_factory_.fake_manager();
201 DCHECK(fake_manager_); 203 DCHECK(fake_manager_);
202 } 204 }
203 205
204 // Synchronously configures the backend's datatypes. 206 // Synchronously configures the backend's datatypes.
205 void ConfigureDataTypes(syncer::ModelTypeSet types_to_add, 207 void ConfigureDataTypes(syncer::ModelTypeSet types_to_add,
206 syncer::ModelTypeSet types_to_remove, 208 syncer::ModelTypeSet types_to_remove) {
207 BackendDataTypeConfigurer::NigoriState nigori_state) { 209 types_to_add.PutAll(syncer::ControlTypes());
208 backend_->ConfigureDataTypes( 210 backend_->ConfigureDataTypes(
209 syncer::CONFIGURE_REASON_RECONFIGURATION, 211 syncer::CONFIGURE_REASON_RECONFIGURATION,
210 types_to_add, 212 types_to_add,
211 types_to_remove, 213 types_to_remove,
212 nigori_state,
213 base::Bind(&SyncBackendHostTest::DownloadReady, 214 base::Bind(&SyncBackendHostTest::DownloadReady,
214 base::Unretained(this)), 215 base::Unretained(this)),
215 base::Bind(&SyncBackendHostTest::OnDownloadRetry, 216 base::Bind(&SyncBackendHostTest::OnDownloadRetry,
216 base::Unretained(this))); 217 base::Unretained(this)));
217 ui_loop_.PostDelayedTask(FROM_HERE, 218 ui_loop_.PostDelayedTask(FROM_HERE,
218 ui_loop_.QuitClosure(), TestTimeouts::action_timeout()); 219 ui_loop_.QuitClosure(), TestTimeouts::action_timeout());
219 ui_loop_.Run(); 220 ui_loop_.Run();
220 } 221 }
221 222
222 protected: 223 protected:
(...skipping 18 matching lines...) Expand all
241 FakeSyncManager* fake_manager_; 242 FakeSyncManager* fake_manager_;
242 FakeSyncManagerFactory fake_manager_factory_; 243 FakeSyncManagerFactory fake_manager_factory_;
243 syncer::ModelTypeSet enabled_types_; 244 syncer::ModelTypeSet enabled_types_;
244 }; 245 };
245 246
246 // Test basic initialization with no initial types (first time initialization). 247 // Test basic initialization with no initial types (first time initialization).
247 // Only the nigori should be configured. 248 // Only the nigori should be configured.
248 TEST_F(SyncBackendHostTest, InitShutdown) { 249 TEST_F(SyncBackendHostTest, InitShutdown) {
249 InitializeBackend(); 250 InitializeBackend();
250 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( 251 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals(
251 syncer::ModelTypeSet(syncer::NIGORI))); 252 syncer::ControlTypes()));
252 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals( 253 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(
253 syncer::ModelTypeSet(syncer::NIGORI))); 254 syncer::ControlTypes()));
254 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( 255 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken(
255 syncer::ModelTypeSet(syncer::NIGORI)).Empty()); 256 syncer::ControlTypes()).Empty());
256 } 257 }
257 258
258 // Test first time sync scenario. All types should be properly configured. 259 // Test first time sync scenario. All types should be properly configured.
259 TEST_F(SyncBackendHostTest, FirstTimeSync) { 260 TEST_F(SyncBackendHostTest, FirstTimeSync) {
260 InitializeBackend(); 261 InitializeBackend();
261 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( 262 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals(
262 syncer::ModelTypeSet(syncer::NIGORI))); 263 syncer::ControlTypes()));
263 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals( 264 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(
264 syncer::ModelTypeSet(syncer::NIGORI))); 265 syncer::ControlTypes()));
265 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( 266 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken(
266 syncer::ModelTypeSet(syncer::NIGORI)).Empty()); 267 syncer::ControlTypes()).Empty());
267 268
268 ConfigureDataTypes(enabled_types_, 269 ConfigureDataTypes(enabled_types_,
269 Difference(syncer::ModelTypeSet::All(), 270 Difference(syncer::ModelTypeSet::All(),
270 enabled_types_), 271 enabled_types_));
271 BackendDataTypeConfigurer::WITH_NIGORI);
272 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().HasAll( 272 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().HasAll(
273 enabled_types_)); 273 Difference(enabled_types_, syncer::ControlTypes())));
274 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); 274 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_));
275 EXPECT_TRUE(fake_manager_->GetAndResetEnabledTypes().Equals(enabled_types_)); 275 EXPECT_TRUE(fake_manager_->GetAndResetEnabledTypes().Equals(enabled_types_));
276 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( 276 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken(
277 enabled_types_).Empty()); 277 enabled_types_).Empty());
278 } 278 }
279 279
280 // Test the restart after setting up sync scenario. No enabled types should be 280 // Test the restart after setting up sync scenario. No enabled types should be
281 // downloaded or cleaned. 281 // downloaded or cleaned.
282 TEST_F(SyncBackendHostTest, Restart) { 282 TEST_F(SyncBackendHostTest, Restart) {
283 sync_prefs_->SetSyncSetupCompleted(); 283 sync_prefs_->SetSyncSetupCompleted();
284 syncer::ModelTypeSet all_but_nigori = enabled_types_; 284 syncer::ModelTypeSet all_but_nigori = enabled_types_;
285 fake_manager_factory_.set_progress_marker_types(enabled_types_); 285 fake_manager_factory_.set_progress_marker_types(enabled_types_);
286 fake_manager_factory_.set_initial_sync_ended_types(enabled_types_); 286 fake_manager_factory_.set_initial_sync_ended_types(enabled_types_);
287 InitializeBackend(); 287 InitializeBackend();
288 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Empty()); 288 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Empty());
289 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), 289 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(),
290 enabled_types_).Empty()); 290 enabled_types_).Empty());
291 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); 291 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_));
292 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( 292 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken(
293 enabled_types_).Empty()); 293 enabled_types_).Empty());
294 294
295 ConfigureDataTypes(enabled_types_, 295 ConfigureDataTypes(enabled_types_,
296 Difference(syncer::ModelTypeSet::All(), 296 Difference(syncer::ModelTypeSet::All(),
297 enabled_types_), 297 enabled_types_));
298 BackendDataTypeConfigurer::WITH_NIGORI);
299 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Empty()); 298 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Empty());
300 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), 299 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(),
301 enabled_types_).Empty()); 300 enabled_types_).Empty());
302 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); 301 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_));
303 EXPECT_TRUE(fake_manager_->GetAndResetEnabledTypes().Equals(enabled_types_)); 302 EXPECT_TRUE(fake_manager_->GetAndResetEnabledTypes().Equals(enabled_types_));
304 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( 303 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken(
305 enabled_types_).Empty()); 304 enabled_types_).Empty());
306 } 305 }
307 306
308 // Test a sync restart scenario where some types had never finished configuring. 307 // Test a sync restart scenario where some types had never finished configuring.
(...skipping 16 matching lines...) Expand all
325 EXPECT_TRUE(fake_manager_->GetAndResetCleanedTypes().HasAll(partial_types)); 324 EXPECT_TRUE(fake_manager_->GetAndResetCleanedTypes().HasAll(partial_types));
326 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals( 325 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(
327 Union(full_types, syncer::ModelTypeSet(syncer::NIGORI)))); 326 Union(full_types, syncer::ModelTypeSet(syncer::NIGORI))));
328 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( 327 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken(
329 enabled_types_).Equals( 328 enabled_types_).Equals(
330 Difference(partial_types, syncer::ModelTypeSet(syncer::NIGORI)))); 329 Difference(partial_types, syncer::ModelTypeSet(syncer::NIGORI))));
331 330
332 // Now do the actual configuration, which should download and apply bookmarks. 331 // Now do the actual configuration, which should download and apply bookmarks.
333 ConfigureDataTypes(enabled_types_, 332 ConfigureDataTypes(enabled_types_,
334 Difference(syncer::ModelTypeSet::All(), 333 Difference(syncer::ModelTypeSet::All(),
335 enabled_types_), 334 enabled_types_));
336 BackendDataTypeConfigurer::WITH_NIGORI);
337 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), 335 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(),
338 enabled_types_).Empty()); 336 enabled_types_).Empty());
339 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( 337 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals(
340 partial_types)); 338 partial_types));
341 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); 339 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_));
342 EXPECT_TRUE(fake_manager_->GetAndResetEnabledTypes().Equals(enabled_types_)); 340 EXPECT_TRUE(fake_manager_->GetAndResetEnabledTypes().Equals(enabled_types_));
343 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( 341 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken(
344 enabled_types_).Empty()); 342 enabled_types_).Empty());
345 } 343 }
346 344
347 // Test the behavior when we lose the sync db. Although we already have types 345 // Test the behavior when we lose the sync db. Although we already have types
348 // enabled, we should re-download all of them because we lost their data. 346 // enabled, we should re-download all of them because we lost their data.
349 TEST_F(SyncBackendHostTest, LostDB) { 347 TEST_F(SyncBackendHostTest, LostDB) {
350 sync_prefs_->SetSyncSetupCompleted(); 348 sync_prefs_->SetSyncSetupCompleted();
351 // Initialization should fetch the Nigori node. Everything else should be 349 // Initialization should fetch the Nigori node. Everything else should be
352 // left untouched. 350 // left untouched.
353 InitializeBackend(); 351 InitializeBackend();
354 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( 352 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals(
355 syncer::ModelTypeSet(syncer::NIGORI))); 353 syncer::ModelTypeSet(syncer::ControlTypes())));
356 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals( 354 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(
357 syncer::ModelTypeSet(syncer::NIGORI))); 355 syncer::ModelTypeSet(syncer::ControlTypes())));
358 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( 356 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken(
359 enabled_types_).Equals( 357 enabled_types_).Equals(
360 Difference(enabled_types_, syncer::ModelTypeSet(syncer::NIGORI)))); 358 Difference(enabled_types_, syncer::ControlTypes())));
361 359
362 // The database was empty, so any cleaning is entirely optional. We want to 360 // The database was empty, so any cleaning is entirely optional. We want to
363 // reset this value before running the next part of the test, though. 361 // reset this value before running the next part of the test, though.
364 fake_manager_->GetAndResetCleanedTypes(); 362 fake_manager_->GetAndResetCleanedTypes();
365 363
366 // The actual configuration should redownload and apply all the enabled types. 364 // The actual configuration should redownload and apply all the enabled types.
367 ConfigureDataTypes(enabled_types_, 365 ConfigureDataTypes(enabled_types_,
368 Difference(syncer::ModelTypeSet::All(), 366 Difference(syncer::ModelTypeSet::All(),
369 enabled_types_), 367 enabled_types_));
370 BackendDataTypeConfigurer::WITH_NIGORI);
371 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().HasAll( 368 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().HasAll(
372 enabled_types_)); 369 Difference(enabled_types_, syncer::ControlTypes())));
373 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), 370 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(),
374 enabled_types_).Empty()); 371 enabled_types_).Empty());
375 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); 372 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_));
376 EXPECT_TRUE(fake_manager_->GetAndResetEnabledTypes().Equals(enabled_types_)); 373 EXPECT_TRUE(fake_manager_->GetAndResetEnabledTypes().Equals(enabled_types_));
377 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( 374 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken(
378 enabled_types_).Empty()); 375 enabled_types_).Empty());
379 } 376 }
380 377
381 TEST_F(SyncBackendHostTest, DisableTypes) { 378 TEST_F(SyncBackendHostTest, DisableTypes) {
382 // Simulate first time sync. 379 // Simulate first time sync.
383 InitializeBackend(); 380 InitializeBackend();
384 fake_manager_->GetAndResetCleanedTypes(); 381 fake_manager_->GetAndResetCleanedTypes();
385 ConfigureDataTypes(enabled_types_, 382 ConfigureDataTypes(enabled_types_,
386 Difference(syncer::ModelTypeSet::All(), 383 Difference(syncer::ModelTypeSet::All(),
387 enabled_types_), 384 enabled_types_));
388 BackendDataTypeConfigurer::WITH_NIGORI);
389 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( 385 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals(
390 enabled_types_)); 386 enabled_types_));
391 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), 387 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(),
392 enabled_types_).Empty()); 388 enabled_types_).Empty());
393 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); 389 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_));
394 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( 390 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken(
395 enabled_types_).Empty()); 391 enabled_types_).Empty());
396 392
397 // Then disable two datatypes. 393 // Then disable two datatypes.
398 syncer::ModelTypeSet disabled_types(syncer::BOOKMARKS, 394 syncer::ModelTypeSet disabled_types(syncer::BOOKMARKS,
399 syncer::SEARCH_ENGINES); 395 syncer::SEARCH_ENGINES);
400 syncer::ModelTypeSet old_types = enabled_types_; 396 syncer::ModelTypeSet old_types = enabled_types_;
401 enabled_types_.RemoveAll(disabled_types); 397 enabled_types_.RemoveAll(disabled_types);
402 ConfigureDataTypes(enabled_types_, 398 ConfigureDataTypes(enabled_types_,
403 Difference(syncer::ModelTypeSet::All(), 399 Difference(syncer::ModelTypeSet::All(),
404 enabled_types_), 400 enabled_types_));
405 BackendDataTypeConfigurer::WITH_NIGORI);
406 401
407 // Only those datatypes disabled should be cleaned. Nothing should be 402 // Only those datatypes disabled should be cleaned. Nothing should be
408 // downloaded. 403 // downloaded.
409 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Empty()); 404 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Empty());
410 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), 405 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(),
411 old_types).Equals(disabled_types)); 406 old_types).Equals(disabled_types));
412 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); 407 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_));
413 EXPECT_TRUE(fake_manager_->GetAndResetEnabledTypes().Equals(enabled_types_)); 408 EXPECT_TRUE(fake_manager_->GetAndResetEnabledTypes().Equals(enabled_types_));
414 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( 409 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken(
415 enabled_types_).Empty()); 410 enabled_types_).Empty());
416 } 411 }
417 412
418 TEST_F(SyncBackendHostTest, AddTypes) { 413 TEST_F(SyncBackendHostTest, AddTypes) {
419 // Simulate first time sync. 414 // Simulate first time sync.
420 InitializeBackend(); 415 InitializeBackend();
421 fake_manager_->GetAndResetCleanedTypes(); 416 fake_manager_->GetAndResetCleanedTypes();
422 ConfigureDataTypes(enabled_types_, 417 ConfigureDataTypes(enabled_types_,
423 Difference(syncer::ModelTypeSet::All(), 418 Difference(syncer::ModelTypeSet::All(),
424 enabled_types_), 419 enabled_types_));
425 BackendDataTypeConfigurer::WITH_NIGORI);
426 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( 420 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals(
427 enabled_types_)); 421 enabled_types_));
428 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), 422 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(),
429 enabled_types_).Empty()); 423 enabled_types_).Empty());
430 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); 424 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_));
431 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( 425 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken(
432 enabled_types_).Empty()); 426 enabled_types_).Empty());
433 427
434 // Then add two datatypes. 428 // Then add two datatypes.
435 syncer::ModelTypeSet new_types(syncer::EXTENSIONS, 429 syncer::ModelTypeSet new_types(syncer::EXTENSIONS,
436 syncer::APPS); 430 syncer::APPS);
437 enabled_types_.PutAll(new_types); 431 enabled_types_.PutAll(new_types);
438 ConfigureDataTypes(enabled_types_, 432 ConfigureDataTypes(enabled_types_,
439 Difference(syncer::ModelTypeSet::All(), 433 Difference(syncer::ModelTypeSet::All(),
440 enabled_types_), 434 enabled_types_));
441 BackendDataTypeConfigurer::WITH_NIGORI);
442 435
443 // Only those datatypes added should be downloaded (plus nigori). Nothing 436 // Only those datatypes added should be downloaded (plus nigori). Nothing
444 // should be cleaned aside from the disabled types. 437 // should be cleaned aside from the disabled types.
445 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( 438 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals(
446 Union(new_types, syncer::ModelTypeSet(syncer::NIGORI)))); 439 Union(new_types, syncer::ModelTypeSet(syncer::NIGORI))));
447 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), 440 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(),
448 enabled_types_).Empty()); 441 enabled_types_).Empty());
449 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); 442 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_));
450 EXPECT_TRUE(fake_manager_->GetAndResetEnabledTypes().Equals(enabled_types_)); 443 EXPECT_TRUE(fake_manager_->GetAndResetEnabledTypes().Equals(enabled_types_));
451 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( 444 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken(
452 enabled_types_).Empty()); 445 enabled_types_).Empty());
453 } 446 }
454 447
455 // And and disable in the same configuration. 448 // And and disable in the same configuration.
456 TEST_F(SyncBackendHostTest, AddDisableTypes) { 449 TEST_F(SyncBackendHostTest, AddDisableTypes) {
457 // Simulate first time sync. 450 // Simulate first time sync.
458 InitializeBackend(); 451 InitializeBackend();
459 fake_manager_->GetAndResetCleanedTypes(); 452 fake_manager_->GetAndResetCleanedTypes();
460 ConfigureDataTypes(enabled_types_, 453 ConfigureDataTypes(enabled_types_,
461 Difference(syncer::ModelTypeSet::All(), 454 Difference(syncer::ModelTypeSet::All(),
462 enabled_types_), 455 enabled_types_));
463 BackendDataTypeConfigurer::WITH_NIGORI);
464 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( 456 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals(
465 enabled_types_)); 457 enabled_types_));
466 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), 458 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(),
467 enabled_types_).Empty()); 459 enabled_types_).Empty());
468 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); 460 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_));
469 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( 461 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken(
470 enabled_types_).Empty()); 462 enabled_types_).Empty());
471 463
472 // Then add two datatypes. 464 // Then add two datatypes.
473 syncer::ModelTypeSet old_types = enabled_types_; 465 syncer::ModelTypeSet old_types = enabled_types_;
474 syncer::ModelTypeSet disabled_types(syncer::BOOKMARKS, 466 syncer::ModelTypeSet disabled_types(syncer::BOOKMARKS,
475 syncer::SEARCH_ENGINES); 467 syncer::SEARCH_ENGINES);
476 syncer::ModelTypeSet new_types(syncer::EXTENSIONS, 468 syncer::ModelTypeSet new_types(syncer::EXTENSIONS,
477 syncer::APPS); 469 syncer::APPS);
478 enabled_types_.PutAll(new_types); 470 enabled_types_.PutAll(new_types);
479 enabled_types_.RemoveAll(disabled_types); 471 enabled_types_.RemoveAll(disabled_types);
480 ConfigureDataTypes(enabled_types_, 472 ConfigureDataTypes(enabled_types_,
481 Difference(syncer::ModelTypeSet::All(), 473 Difference(syncer::ModelTypeSet::All(),
482 enabled_types_), 474 enabled_types_));
483 BackendDataTypeConfigurer::WITH_NIGORI);
484 475
485 // Only those datatypes added should be downloaded (plus nigori). Nothing 476 // Only those datatypes added should be downloaded (plus nigori). Nothing
486 // should be cleaned aside from the disabled types. 477 // should be cleaned aside from the disabled types.
487 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( 478 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals(
488 Union(new_types, syncer::ModelTypeSet(syncer::NIGORI)))); 479 Union(new_types, syncer::ModelTypeSet(syncer::NIGORI))));
489 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), 480 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(),
490 old_types).Equals(disabled_types)); 481 old_types).Equals(disabled_types));
491 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); 482 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_));
492 EXPECT_TRUE(fake_manager_->GetAndResetEnabledTypes().Equals(enabled_types_)); 483 EXPECT_TRUE(fake_manager_->GetAndResetEnabledTypes().Equals(enabled_types_));
493 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( 484 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken(
(...skipping 18 matching lines...) Expand all
512 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Empty()); 503 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Empty());
513 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), 504 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(),
514 old_types).Empty()); 505 old_types).Empty());
515 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(old_types)); 506 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(old_types));
516 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( 507 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken(
517 enabled_types_).Equals(new_types)); 508 enabled_types_).Equals(new_types));
518 509
519 // Downloads and applies the new types. 510 // Downloads and applies the new types.
520 ConfigureDataTypes(enabled_types_, 511 ConfigureDataTypes(enabled_types_,
521 Difference(syncer::ModelTypeSet::All(), 512 Difference(syncer::ModelTypeSet::All(),
522 enabled_types_), 513 enabled_types_));
523 BackendDataTypeConfigurer::WITH_NIGORI);
524 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( 514 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals(
525 Union(new_types, syncer::ModelTypeSet(syncer::NIGORI)))); 515 Union(new_types, syncer::ModelTypeSet(syncer::NIGORI))));
526 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), 516 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(),
527 enabled_types_).Empty()); 517 enabled_types_).Empty());
528 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); 518 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_));
529 EXPECT_TRUE(fake_manager_->GetAndResetEnabledTypes().Equals(enabled_types_)); 519 EXPECT_TRUE(fake_manager_->GetAndResetEnabledTypes().Equals(enabled_types_));
530 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( 520 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken(
531 enabled_types_).Empty()); 521 enabled_types_).Empty());
532 } 522 }
533 523
(...skipping 23 matching lines...) Expand all
557 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals( 547 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(
558 syncer::Union(full_types, syncer::ModelTypeSet(syncer::NIGORI)))); 548 syncer::Union(full_types, syncer::ModelTypeSet(syncer::NIGORI))));
559 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( 549 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken(
560 enabled_types_).Equals(Union(new_types, Difference( 550 enabled_types_).Equals(Union(new_types, Difference(
561 partial_types, syncer::ModelTypeSet(syncer::NIGORI))))); 551 partial_types, syncer::ModelTypeSet(syncer::NIGORI)))));
562 552
563 // Downloads and applies the new types and partial types (which includes 553 // Downloads and applies the new types and partial types (which includes
564 // nigori anyways). 554 // nigori anyways).
565 ConfigureDataTypes(enabled_types_, 555 ConfigureDataTypes(enabled_types_,
566 Difference(syncer::ModelTypeSet::All(), 556 Difference(syncer::ModelTypeSet::All(),
567 enabled_types_), 557 enabled_types_));
568 BackendDataTypeConfigurer::WITH_NIGORI);
569 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals( 558 EXPECT_TRUE(fake_manager_->GetAndResetDownloadedTypes().Equals(
570 Union(new_types, partial_types))); 559 Union(new_types, partial_types)));
571 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(), 560 EXPECT_TRUE(Intersection(fake_manager_->GetAndResetCleanedTypes(),
572 enabled_types_).Empty()); 561 enabled_types_).Empty());
573 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_)); 562 EXPECT_TRUE(fake_manager_->InitialSyncEndedTypes().Equals(enabled_types_));
574 EXPECT_TRUE(fake_manager_->GetAndResetEnabledTypes().Equals(enabled_types_)); 563 EXPECT_TRUE(fake_manager_->GetAndResetEnabledTypes().Equals(enabled_types_));
575 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken( 564 EXPECT_TRUE(fake_manager_->GetTypesWithEmptyProgressMarkerToken(
576 enabled_types_).Empty()); 565 enabled_types_).Empty());
577 } 566 }
578 567
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
659 backend_->Shutdown(false); 648 backend_->Shutdown(false);
660 backend_.reset(); 649 backend_.reset();
661 650
662 TearDown(); 651 TearDown();
663 SetUp(); 652 SetUp();
664 } 653 }
665 654
666 } // namespace 655 } // namespace
667 656
668 } // namespace browser_sync 657 } // namespace browser_sync
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698