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

Side by Side Diff: chrome/browser/extensions/api/storage/settings_sync_unittest.cc

Issue 1549233002: Convert Pass()→std::move() in //chrome/browser/extensions (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 4 years, 12 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
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 <stddef.h> 5 #include <stddef.h>
6 #include <utility>
6 7
7 #include "base/bind.h" 8 #include "base/bind.h"
8 #include "base/files/scoped_temp_dir.h" 9 #include "base/files/scoped_temp_dir.h"
9 #include "base/json/json_reader.h" 10 #include "base/json/json_reader.h"
10 #include "base/json/json_writer.h" 11 #include "base/json/json_writer.h"
11 #include "base/memory/linked_ptr.h" 12 #include "base/memory/linked_ptr.h"
12 #include "base/memory/scoped_ptr.h" 13 #include "base/memory/scoped_ptr.h"
13 #include "base/message_loop/message_loop.h" 14 #include "base/message_loop/message_loop.h"
14 #include "base/strings/string_number_conversions.h" 15 #include "base/strings/string_number_conversions.h"
15 #include "build/build_config.h" 16 #include "build/build_config.h"
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after
216 file_thread_(BrowserThread::FILE, base::MessageLoop::current()), 217 file_thread_(BrowserThread::FILE, base::MessageLoop::current()),
217 storage_factory_(new util::ScopedSettingsStorageFactory()), 218 storage_factory_(new util::ScopedSettingsStorageFactory()),
218 sync_processor_(new MockSyncChangeProcessor), 219 sync_processor_(new MockSyncChangeProcessor),
219 sync_processor_wrapper_(new syncer::SyncChangeProcessorWrapperForTest( 220 sync_processor_wrapper_(new syncer::SyncChangeProcessorWrapperForTest(
220 sync_processor_.get())) {} 221 sync_processor_.get())) {}
221 222
222 void SetUp() override { 223 void SetUp() override {
223 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); 224 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir());
224 profile_.reset(new TestingProfile(temp_dir_.path())); 225 profile_.reset(new TestingProfile(temp_dir_.path()));
225 storage_factory_->Reset(new LeveldbSettingsStorageFactory()); 226 storage_factory_->Reset(new LeveldbSettingsStorageFactory());
226 frontend_ = StorageFrontend::CreateForTesting(storage_factory_, 227 frontend_ =
227 profile_.get()).Pass(); 228 StorageFrontend::CreateForTesting(storage_factory_, profile_.get());
228 229
229 ExtensionsBrowserClient::Get() 230 ExtensionsBrowserClient::Get()
230 ->GetExtensionSystemFactory() 231 ->GetExtensionSystemFactory()
231 ->SetTestingFactoryAndUse(profile_.get(), 232 ->SetTestingFactoryAndUse(profile_.get(),
232 &MockExtensionSystemFactoryFunction); 233 &MockExtensionSystemFactoryFunction);
233 234
234 EventRouterFactory::GetInstance()->SetTestingFactory(profile_.get(), 235 EventRouterFactory::GetInstance()->SetTestingFactory(profile_.get(),
235 &BuildEventRouter); 236 &BuildEventRouter);
236 } 237 }
237 238
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
299 Manifest::Type type = Manifest::TYPE_EXTENSION; 300 Manifest::Type type = Manifest::TYPE_EXTENSION;
300 301
301 EXPECT_EQ(0u, GetAllSyncData(model_type).size()); 302 EXPECT_EQ(0u, GetAllSyncData(model_type).size());
302 303
303 // Have one extension created before sync is set up, the other created after. 304 // Have one extension created before sync is set up, the other created after.
304 AddExtensionAndGetStorage("s1", type); 305 AddExtensionAndGetStorage("s1", type);
305 EXPECT_EQ(0u, GetAllSyncData(model_type).size()); 306 EXPECT_EQ(0u, GetAllSyncData(model_type).size());
306 307
307 GetSyncableService(model_type) 308 GetSyncableService(model_type)
308 ->MergeDataAndStartSyncing( 309 ->MergeDataAndStartSyncing(
309 model_type, 310 model_type, syncer::SyncDataList(),
310 syncer::SyncDataList(), 311 std::move(sync_processor_wrapper_),
311 sync_processor_wrapper_.Pass(),
312 make_scoped_ptr(new syncer::SyncErrorFactoryMock())); 312 make_scoped_ptr(new syncer::SyncErrorFactoryMock()));
313 313
314 AddExtensionAndGetStorage("s2", type); 314 AddExtensionAndGetStorage("s2", type);
315 EXPECT_EQ(0u, GetAllSyncData(model_type).size()); 315 EXPECT_EQ(0u, GetAllSyncData(model_type).size());
316 316
317 GetSyncableService(model_type)->StopSyncing(model_type); 317 GetSyncableService(model_type)->StopSyncing(model_type);
318 318
319 EXPECT_EQ(0u, sync_processor_->changes().size()); 319 EXPECT_EQ(0u, sync_processor_->changes().size());
320 EXPECT_EQ(0u, GetAllSyncData(model_type).size()); 320 EXPECT_EQ(0u, GetAllSyncData(model_type).size());
321 } 321 }
(...skipping 20 matching lines...) Expand all
342 EXPECT_PRED_FORMAT2(ValuesEq, &value2, &(*all_sync_data["s2"])[0]->value()); 342 EXPECT_PRED_FORMAT2(ValuesEq, &value2, &(*all_sync_data["s2"])[0]->value());
343 343
344 syncer::SyncDataList sync_data; 344 syncer::SyncDataList sync_data;
345 sync_data.push_back(settings_sync_util::CreateData( 345 sync_data.push_back(settings_sync_util::CreateData(
346 "s1", "foo", value1, model_type)); 346 "s1", "foo", value1, model_type));
347 sync_data.push_back(settings_sync_util::CreateData( 347 sync_data.push_back(settings_sync_util::CreateData(
348 "s2", "bar", value2, model_type)); 348 "s2", "bar", value2, model_type));
349 349
350 GetSyncableService(model_type) 350 GetSyncableService(model_type)
351 ->MergeDataAndStartSyncing( 351 ->MergeDataAndStartSyncing(
352 model_type, 352 model_type, sync_data, std::move(sync_processor_wrapper_),
353 sync_data,
354 sync_processor_wrapper_.Pass(),
355 make_scoped_ptr(new syncer::SyncErrorFactoryMock())); 353 make_scoped_ptr(new syncer::SyncErrorFactoryMock()));
356 354
357 // Already in sync, so no changes. 355 // Already in sync, so no changes.
358 EXPECT_EQ(0u, sync_processor_->changes().size()); 356 EXPECT_EQ(0u, sync_processor_->changes().size());
359 357
360 // Regression test: not-changing the synced value shouldn't result in a sync 358 // Regression test: not-changing the synced value shouldn't result in a sync
361 // change, and changing the synced value should result in an update. 359 // change, and changing the synced value should result in an update.
362 storage1->Set(DEFAULTS, "foo", value1); 360 storage1->Set(DEFAULTS, "foo", value1);
363 EXPECT_EQ(0u, sync_processor_->changes().size()); 361 EXPECT_EQ(0u, sync_processor_->changes().size());
364 362
(...skipping 15 matching lines...) Expand all
380 value2.Append(new base::StringValue("barValue")); 378 value2.Append(new base::StringValue("barValue"));
381 379
382 ValueStore* storage1 = AddExtensionAndGetStorage("s1", type); 380 ValueStore* storage1 = AddExtensionAndGetStorage("s1", type);
383 ValueStore* storage2 = AddExtensionAndGetStorage("s2", type); 381 ValueStore* storage2 = AddExtensionAndGetStorage("s2", type);
384 382
385 storage1->Set(DEFAULTS, "foo", value1); 383 storage1->Set(DEFAULTS, "foo", value1);
386 storage2->Set(DEFAULTS, "bar", value2); 384 storage2->Set(DEFAULTS, "bar", value2);
387 385
388 GetSyncableService(model_type) 386 GetSyncableService(model_type)
389 ->MergeDataAndStartSyncing( 387 ->MergeDataAndStartSyncing(
390 model_type, 388 model_type, syncer::SyncDataList(),
391 syncer::SyncDataList(), 389 std::move(sync_processor_wrapper_),
392 sync_processor_wrapper_.Pass(),
393 make_scoped_ptr(new syncer::SyncErrorFactoryMock())); 390 make_scoped_ptr(new syncer::SyncErrorFactoryMock()));
394 391
395 // All settings should have been pushed to sync. 392 // All settings should have been pushed to sync.
396 EXPECT_EQ(2u, sync_processor_->changes().size()); 393 EXPECT_EQ(2u, sync_processor_->changes().size());
397 SettingSyncData* change = sync_processor_->GetOnlyChange("s1", "foo"); 394 SettingSyncData* change = sync_processor_->GetOnlyChange("s1", "foo");
398 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, change->change_type()); 395 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, change->change_type());
399 EXPECT_TRUE(value1.Equals(&change->value())); 396 EXPECT_TRUE(value1.Equals(&change->value()));
400 change = sync_processor_->GetOnlyChange("s2", "bar"); 397 change = sync_processor_->GetOnlyChange("s2", "bar");
401 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, change->change_type()); 398 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, change->change_type());
402 EXPECT_TRUE(value2.Equals(&change->value())); 399 EXPECT_TRUE(value2.Equals(&change->value()));
(...skipping 17 matching lines...) Expand all
420 ValueStore* storage1 = AddExtensionAndGetStorage("s1", type); 417 ValueStore* storage1 = AddExtensionAndGetStorage("s1", type);
421 storage1->Set(DEFAULTS, "overwriteMe", value1); 418 storage1->Set(DEFAULTS, "overwriteMe", value1);
422 419
423 syncer::SyncDataList sync_data; 420 syncer::SyncDataList sync_data;
424 sync_data.push_back(settings_sync_util::CreateData( 421 sync_data.push_back(settings_sync_util::CreateData(
425 "s1", "foo", value1, model_type)); 422 "s1", "foo", value1, model_type));
426 sync_data.push_back(settings_sync_util::CreateData( 423 sync_data.push_back(settings_sync_util::CreateData(
427 "s2", "bar", value2, model_type)); 424 "s2", "bar", value2, model_type));
428 GetSyncableService(model_type) 425 GetSyncableService(model_type)
429 ->MergeDataAndStartSyncing( 426 ->MergeDataAndStartSyncing(
430 model_type, 427 model_type, sync_data, std::move(sync_processor_wrapper_),
431 sync_data,
432 sync_processor_wrapper_.Pass(),
433 make_scoped_ptr(new syncer::SyncErrorFactoryMock())); 428 make_scoped_ptr(new syncer::SyncErrorFactoryMock()));
434 expected1.Set("foo", value1.DeepCopy()); 429 expected1.Set("foo", value1.DeepCopy());
435 expected2.Set("bar", value2.DeepCopy()); 430 expected2.Set("bar", value2.DeepCopy());
436 431
437 ValueStore* storage2 = AddExtensionAndGetStorage("s2", type); 432 ValueStore* storage2 = AddExtensionAndGetStorage("s2", type);
438 433
439 // All changes should be local, so no sync changes. 434 // All changes should be local, so no sync changes.
440 EXPECT_EQ(0u, sync_processor_->changes().size()); 435 EXPECT_EQ(0u, sync_processor_->changes().size());
441 436
442 // Sync settings should have been pushed to local settings. 437 // Sync settings should have been pushed to local settings.
(...skipping 21 matching lines...) Expand all
464 459
465 storage1->Set(DEFAULTS, "foo", value1); 460 storage1->Set(DEFAULTS, "foo", value1);
466 expected1.Set("foo", value1.DeepCopy()); 461 expected1.Set("foo", value1.DeepCopy());
467 462
468 syncer::SyncDataList sync_data; 463 syncer::SyncDataList sync_data;
469 sync_data.push_back(settings_sync_util::CreateData( 464 sync_data.push_back(settings_sync_util::CreateData(
470 "s2", "bar", value2, model_type)); 465 "s2", "bar", value2, model_type));
471 466
472 GetSyncableService(model_type) 467 GetSyncableService(model_type)
473 ->MergeDataAndStartSyncing( 468 ->MergeDataAndStartSyncing(
474 model_type, 469 model_type, sync_data, std::move(sync_processor_wrapper_),
475 sync_data,
476 sync_processor_wrapper_.Pass(),
477 make_scoped_ptr(new syncer::SyncErrorFactoryMock())); 470 make_scoped_ptr(new syncer::SyncErrorFactoryMock()));
478 expected2.Set("bar", value2.DeepCopy()); 471 expected2.Set("bar", value2.DeepCopy());
479 472
480 // Make sync add some settings. 473 // Make sync add some settings.
481 syncer::SyncChangeList change_list; 474 syncer::SyncChangeList change_list;
482 change_list.push_back(settings_sync_util::CreateAdd( 475 change_list.push_back(settings_sync_util::CreateAdd(
483 "s1", "bar", value2, model_type)); 476 "s1", "bar", value2, model_type));
484 change_list.push_back(settings_sync_util::CreateAdd( 477 change_list.push_back(settings_sync_util::CreateAdd(
485 "s2", "foo", value1, model_type)); 478 "s2", "foo", value1, model_type));
486 GetSyncableService(model_type)->ProcessSyncChanges(FROM_HERE, change_list); 479 GetSyncableService(model_type)->ProcessSyncChanges(FROM_HERE, change_list);
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
540 storage2->Set(DEFAULTS, "foo", value1); 533 storage2->Set(DEFAULTS, "foo", value1);
541 534
542 syncer::SyncDataList sync_data; 535 syncer::SyncDataList sync_data;
543 sync_data.push_back(settings_sync_util::CreateData( 536 sync_data.push_back(settings_sync_util::CreateData(
544 "s3", "bar", value2, model_type)); 537 "s3", "bar", value2, model_type));
545 sync_data.push_back(settings_sync_util::CreateData( 538 sync_data.push_back(settings_sync_util::CreateData(
546 "s4", "bar", value2, model_type)); 539 "s4", "bar", value2, model_type));
547 540
548 GetSyncableService(model_type) 541 GetSyncableService(model_type)
549 ->MergeDataAndStartSyncing( 542 ->MergeDataAndStartSyncing(
550 model_type, 543 model_type, sync_data, std::move(sync_processor_wrapper_),
551 sync_data,
552 sync_processor_wrapper_.Pass(),
553 make_scoped_ptr(new syncer::SyncErrorFactoryMock())); 544 make_scoped_ptr(new syncer::SyncErrorFactoryMock()));
554 545
555 // Add something locally. 546 // Add something locally.
556 storage1->Set(DEFAULTS, "bar", value2); 547 storage1->Set(DEFAULTS, "bar", value2);
557 storage2->Set(DEFAULTS, "bar", value2); 548 storage2->Set(DEFAULTS, "bar", value2);
558 storage3->Set(DEFAULTS, "foo", value1); 549 storage3->Set(DEFAULTS, "foo", value1);
559 storage4->Set(DEFAULTS, "foo", value1); 550 storage4->Set(DEFAULTS, "foo", value1);
560 551
561 SettingSyncData* change = sync_processor_->GetOnlyChange("s1", "bar"); 552 SettingSyncData* change = sync_processor_->GetOnlyChange("s1", "bar");
562 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, change->change_type()); 553 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, change->change_type());
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
679 EXPECT_EQ(1u, app_sync_data["s2"]->size()); 670 EXPECT_EQ(1u, app_sync_data["s2"]->size());
680 EXPECT_PRED_FORMAT2(ValuesEq, &value2, &(*app_sync_data["s2"])[0]->value()); 671 EXPECT_PRED_FORMAT2(ValuesEq, &value2, &(*app_sync_data["s2"])[0]->value());
681 672
682 // Stop each separately, there should be no changes either time. 673 // Stop each separately, there should be no changes either time.
683 syncer::SyncDataList sync_data; 674 syncer::SyncDataList sync_data;
684 sync_data.push_back(settings_sync_util::CreateData( 675 sync_data.push_back(settings_sync_util::CreateData(
685 "s1", "foo", value1, syncer::EXTENSION_SETTINGS)); 676 "s1", "foo", value1, syncer::EXTENSION_SETTINGS));
686 677
687 GetSyncableService(syncer::EXTENSION_SETTINGS) 678 GetSyncableService(syncer::EXTENSION_SETTINGS)
688 ->MergeDataAndStartSyncing( 679 ->MergeDataAndStartSyncing(
689 syncer::EXTENSION_SETTINGS, 680 syncer::EXTENSION_SETTINGS, sync_data,
690 sync_data, 681 std::move(sync_processor_wrapper_),
691 sync_processor_wrapper_.Pass(),
692 make_scoped_ptr(new syncer::SyncErrorFactoryMock())); 682 make_scoped_ptr(new syncer::SyncErrorFactoryMock()));
693 GetSyncableService(syncer::EXTENSION_SETTINGS)-> 683 GetSyncableService(syncer::EXTENSION_SETTINGS)->
694 StopSyncing(syncer::EXTENSION_SETTINGS); 684 StopSyncing(syncer::EXTENSION_SETTINGS);
695 EXPECT_EQ(0u, sync_processor_->changes().size()); 685 EXPECT_EQ(0u, sync_processor_->changes().size());
696 686
697 sync_data.clear(); 687 sync_data.clear();
698 sync_data.push_back(settings_sync_util::CreateData( 688 sync_data.push_back(settings_sync_util::CreateData(
699 "s2", "bar", value2, syncer::APP_SETTINGS)); 689 "s2", "bar", value2, syncer::APP_SETTINGS));
700 690
701 scoped_ptr<syncer::SyncChangeProcessorWrapperForTest> app_settings_delegate_( 691 scoped_ptr<syncer::SyncChangeProcessorWrapperForTest> app_settings_delegate_(
702 new syncer::SyncChangeProcessorWrapperForTest(sync_processor_.get())); 692 new syncer::SyncChangeProcessorWrapperForTest(sync_processor_.get()));
703 GetSyncableService(syncer::APP_SETTINGS) 693 GetSyncableService(syncer::APP_SETTINGS)
704 ->MergeDataAndStartSyncing( 694 ->MergeDataAndStartSyncing(
705 syncer::APP_SETTINGS, 695 syncer::APP_SETTINGS, sync_data, std::move(app_settings_delegate_),
706 sync_data,
707 app_settings_delegate_.Pass(),
708 make_scoped_ptr(new syncer::SyncErrorFactoryMock())); 696 make_scoped_ptr(new syncer::SyncErrorFactoryMock()));
709 GetSyncableService(syncer::APP_SETTINGS)-> 697 GetSyncableService(syncer::APP_SETTINGS)->
710 StopSyncing(syncer::APP_SETTINGS); 698 StopSyncing(syncer::APP_SETTINGS);
711 EXPECT_EQ(0u, sync_processor_->changes().size()); 699 EXPECT_EQ(0u, sync_processor_->changes().size());
712 } 700 }
713 701
714 TEST_F(ExtensionSettingsSyncTest, FailingStartSyncingDisablesSync) { 702 TEST_F(ExtensionSettingsSyncTest, FailingStartSyncingDisablesSync) {
715 syncer::ModelType model_type = syncer::EXTENSION_SETTINGS; 703 syncer::ModelType model_type = syncer::EXTENSION_SETTINGS;
716 Manifest::Type type = Manifest::TYPE_EXTENSION; 704 Manifest::Type type = Manifest::TYPE_EXTENSION;
717 705
(...skipping 12 matching lines...) Expand all
730 // Make bad fail for incoming sync changes. 718 // Make bad fail for incoming sync changes.
731 testing_factory->GetExisting("bad")->set_status_code(ValueStore::CORRUPTION); 719 testing_factory->GetExisting("bad")->set_status_code(ValueStore::CORRUPTION);
732 { 720 {
733 syncer::SyncDataList sync_data; 721 syncer::SyncDataList sync_data;
734 sync_data.push_back(settings_sync_util::CreateData( 722 sync_data.push_back(settings_sync_util::CreateData(
735 "good", "foo", fooValue, model_type)); 723 "good", "foo", fooValue, model_type));
736 sync_data.push_back(settings_sync_util::CreateData( 724 sync_data.push_back(settings_sync_util::CreateData(
737 "bad", "foo", fooValue, model_type)); 725 "bad", "foo", fooValue, model_type));
738 GetSyncableService(model_type) 726 GetSyncableService(model_type)
739 ->MergeDataAndStartSyncing( 727 ->MergeDataAndStartSyncing(
740 model_type, 728 model_type, sync_data, std::move(sync_processor_wrapper_),
741 sync_data,
742 sync_processor_wrapper_.Pass(),
743 make_scoped_ptr(new syncer::SyncErrorFactoryMock())); 729 make_scoped_ptr(new syncer::SyncErrorFactoryMock()));
744 } 730 }
745 testing_factory->GetExisting("bad")->set_status_code(ValueStore::OK); 731 testing_factory->GetExisting("bad")->set_status_code(ValueStore::OK);
746 732
747 { 733 {
748 base::DictionaryValue dict; 734 base::DictionaryValue dict;
749 dict.Set("foo", fooValue.DeepCopy()); 735 dict.Set("foo", fooValue.DeepCopy());
750 EXPECT_PRED_FORMAT2(SettingsEq, dict, good->Get()); 736 EXPECT_PRED_FORMAT2(SettingsEq, dict, good->Get());
751 } 737 }
752 { 738 {
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
847 EXPECT_PRED_FORMAT2(SettingsEq, dict, bad->Get()); 833 EXPECT_PRED_FORMAT2(SettingsEq, dict, bad->Get());
848 } 834 }
849 835
850 // Restarting sync should make bad start syncing again. 836 // Restarting sync should make bad start syncing again.
851 sync_processor_->ClearChanges(); 837 sync_processor_->ClearChanges();
852 GetSyncableService(model_type)->StopSyncing(model_type); 838 GetSyncableService(model_type)->StopSyncing(model_type);
853 sync_processor_wrapper_.reset( 839 sync_processor_wrapper_.reset(
854 new syncer::SyncChangeProcessorWrapperForTest(sync_processor_.get())); 840 new syncer::SyncChangeProcessorWrapperForTest(sync_processor_.get()));
855 GetSyncableService(model_type) 841 GetSyncableService(model_type)
856 ->MergeDataAndStartSyncing( 842 ->MergeDataAndStartSyncing(
857 model_type, 843 model_type, syncer::SyncDataList(),
858 syncer::SyncDataList(), 844 std::move(sync_processor_wrapper_),
859 sync_processor_wrapper_.Pass(),
860 make_scoped_ptr(new syncer::SyncErrorFactoryMock())); 845 make_scoped_ptr(new syncer::SyncErrorFactoryMock()));
861 846
862 // Local settings will have been pushed to sync, since it's empty (in this 847 // Local settings will have been pushed to sync, since it's empty (in this
863 // test; presumably it wouldn't be live, since we've been getting changes). 848 // test; presumably it wouldn't be live, since we've been getting changes).
864 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, 849 EXPECT_EQ(syncer::SyncChange::ACTION_ADD,
865 sync_processor_->GetOnlyChange("good", "foo")->change_type()); 850 sync_processor_->GetOnlyChange("good", "foo")->change_type());
866 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, 851 EXPECT_EQ(syncer::SyncChange::ACTION_ADD,
867 sync_processor_->GetOnlyChange("good", "bar")->change_type()); 852 sync_processor_->GetOnlyChange("good", "bar")->change_type());
868 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, 853 EXPECT_EQ(syncer::SyncChange::ACTION_ADD,
869 sync_processor_->GetOnlyChange("bad", "bar")->change_type()); 854 sync_processor_->GetOnlyChange("bad", "bar")->change_type());
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
920 905
921 // Unlike before, initially succeeding MergeDataAndStartSyncing. 906 // Unlike before, initially succeeding MergeDataAndStartSyncing.
922 { 907 {
923 syncer::SyncDataList sync_data; 908 syncer::SyncDataList sync_data;
924 sync_data.push_back(settings_sync_util::CreateData( 909 sync_data.push_back(settings_sync_util::CreateData(
925 "good", "foo", fooValue, model_type)); 910 "good", "foo", fooValue, model_type));
926 sync_data.push_back(settings_sync_util::CreateData( 911 sync_data.push_back(settings_sync_util::CreateData(
927 "bad", "foo", fooValue, model_type)); 912 "bad", "foo", fooValue, model_type));
928 GetSyncableService(model_type) 913 GetSyncableService(model_type)
929 ->MergeDataAndStartSyncing( 914 ->MergeDataAndStartSyncing(
930 model_type, 915 model_type, sync_data, std::move(sync_processor_wrapper_),
931 sync_data,
932 sync_processor_wrapper_.Pass(),
933 make_scoped_ptr(new syncer::SyncErrorFactoryMock())); 916 make_scoped_ptr(new syncer::SyncErrorFactoryMock()));
934 } 917 }
935 918
936 EXPECT_EQ(0u, sync_processor_->changes().size()); 919 EXPECT_EQ(0u, sync_processor_->changes().size());
937 920
938 { 921 {
939 base::DictionaryValue dict; 922 base::DictionaryValue dict;
940 dict.Set("foo", fooValue.DeepCopy()); 923 dict.Set("foo", fooValue.DeepCopy());
941 EXPECT_PRED_FORMAT2(SettingsEq, dict, good->Get()); 924 EXPECT_PRED_FORMAT2(SettingsEq, dict, good->Get());
942 } 925 }
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
1025 syncer::SyncDataList all_sync_data = 1008 syncer::SyncDataList all_sync_data =
1026 GetSyncableService(model_type)->GetAllSyncData(model_type); 1009 GetSyncableService(model_type)->GetAllSyncData(model_type);
1027 EXPECT_EQ(1u, all_sync_data.size()); 1010 EXPECT_EQ(1u, all_sync_data.size());
1028 EXPECT_EQ("good/foo", syncer::SyncDataLocal(all_sync_data[0]).GetTag()); 1011 EXPECT_EQ("good/foo", syncer::SyncDataLocal(all_sync_data[0]).GetTag());
1029 } 1012 }
1030 testing_factory->GetExisting("bad")->set_status_code(ValueStore::OK); 1013 testing_factory->GetExisting("bad")->set_status_code(ValueStore::OK);
1031 1014
1032 // Sync shouldn't be disabled for good (nor bad -- but this is unimportant). 1015 // Sync shouldn't be disabled for good (nor bad -- but this is unimportant).
1033 GetSyncableService(model_type) 1016 GetSyncableService(model_type)
1034 ->MergeDataAndStartSyncing( 1017 ->MergeDataAndStartSyncing(
1035 model_type, 1018 model_type, syncer::SyncDataList(),
1036 syncer::SyncDataList(), 1019 std::move(sync_processor_wrapper_),
1037 sync_processor_wrapper_.Pass(),
1038 make_scoped_ptr(new syncer::SyncErrorFactoryMock())); 1020 make_scoped_ptr(new syncer::SyncErrorFactoryMock()));
1039 1021
1040 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, 1022 EXPECT_EQ(syncer::SyncChange::ACTION_ADD,
1041 sync_processor_->GetOnlyChange("good", "foo")->change_type()); 1023 sync_processor_->GetOnlyChange("good", "foo")->change_type());
1042 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, 1024 EXPECT_EQ(syncer::SyncChange::ACTION_ADD,
1043 sync_processor_->GetOnlyChange("bad", "foo")->change_type()); 1025 sync_processor_->GetOnlyChange("bad", "foo")->change_type());
1044 EXPECT_EQ(2u, sync_processor_->changes().size()); 1026 EXPECT_EQ(2u, sync_processor_->changes().size());
1045 1027
1046 sync_processor_->ClearChanges(); 1028 sync_processor_->ClearChanges();
1047 good->Set(DEFAULTS, "bar", barValue); 1029 good->Set(DEFAULTS, "bar", barValue);
(...skipping 20 matching lines...) Expand all
1068 ValueStore* bad = AddExtensionAndGetStorage("bad", type); 1050 ValueStore* bad = AddExtensionAndGetStorage("bad", type);
1069 1051
1070 good->Set(DEFAULTS, "foo", fooValue); 1052 good->Set(DEFAULTS, "foo", fooValue);
1071 bad->Set(DEFAULTS, "foo", fooValue); 1053 bad->Set(DEFAULTS, "foo", fooValue);
1072 1054
1073 // good will successfully push foo:fooValue to sync, but bad will fail to 1055 // good will successfully push foo:fooValue to sync, but bad will fail to
1074 // get them so won't. 1056 // get them so won't.
1075 testing_factory->GetExisting("bad")->set_status_code(ValueStore::CORRUPTION); 1057 testing_factory->GetExisting("bad")->set_status_code(ValueStore::CORRUPTION);
1076 GetSyncableService(model_type) 1058 GetSyncableService(model_type)
1077 ->MergeDataAndStartSyncing( 1059 ->MergeDataAndStartSyncing(
1078 model_type, 1060 model_type, syncer::SyncDataList(),
1079 syncer::SyncDataList(), 1061 std::move(sync_processor_wrapper_),
1080 sync_processor_wrapper_.Pass(),
1081 make_scoped_ptr(new syncer::SyncErrorFactoryMock())); 1062 make_scoped_ptr(new syncer::SyncErrorFactoryMock()));
1082 testing_factory->GetExisting("bad")->set_status_code(ValueStore::OK); 1063 testing_factory->GetExisting("bad")->set_status_code(ValueStore::OK);
1083 1064
1084 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, 1065 EXPECT_EQ(syncer::SyncChange::ACTION_ADD,
1085 sync_processor_->GetOnlyChange("good", "foo")->change_type()); 1066 sync_processor_->GetOnlyChange("good", "foo")->change_type());
1086 EXPECT_EQ(1u, sync_processor_->changes().size()); 1067 EXPECT_EQ(1u, sync_processor_->changes().size());
1087 1068
1088 // bad should now be disabled for sync. 1069 // bad should now be disabled for sync.
1089 sync_processor_->ClearChanges(); 1070 sync_processor_->ClearChanges();
1090 good->Set(DEFAULTS, "bar", barValue); 1071 good->Set(DEFAULTS, "bar", barValue);
(...skipping 28 matching lines...) Expand all
1119 } 1100 }
1120 1101
1121 // Re-enabling sync without failing should cause the local changes from bad 1102 // Re-enabling sync without failing should cause the local changes from bad
1122 // to be pushed to sync successfully, as should future changes to bad. 1103 // to be pushed to sync successfully, as should future changes to bad.
1123 sync_processor_->ClearChanges(); 1104 sync_processor_->ClearChanges();
1124 GetSyncableService(model_type)->StopSyncing(model_type); 1105 GetSyncableService(model_type)->StopSyncing(model_type);
1125 sync_processor_wrapper_.reset( 1106 sync_processor_wrapper_.reset(
1126 new syncer::SyncChangeProcessorWrapperForTest(sync_processor_.get())); 1107 new syncer::SyncChangeProcessorWrapperForTest(sync_processor_.get()));
1127 GetSyncableService(model_type) 1108 GetSyncableService(model_type)
1128 ->MergeDataAndStartSyncing( 1109 ->MergeDataAndStartSyncing(
1129 model_type, 1110 model_type, syncer::SyncDataList(),
1130 syncer::SyncDataList(), 1111 std::move(sync_processor_wrapper_),
1131 sync_processor_wrapper_.Pass(),
1132 make_scoped_ptr(new syncer::SyncErrorFactoryMock())); 1112 make_scoped_ptr(new syncer::SyncErrorFactoryMock()));
1133 1113
1134 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, 1114 EXPECT_EQ(syncer::SyncChange::ACTION_ADD,
1135 sync_processor_->GetOnlyChange("good", "foo")->change_type()); 1115 sync_processor_->GetOnlyChange("good", "foo")->change_type());
1136 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, 1116 EXPECT_EQ(syncer::SyncChange::ACTION_ADD,
1137 sync_processor_->GetOnlyChange("good", "bar")->change_type()); 1117 sync_processor_->GetOnlyChange("good", "bar")->change_type());
1138 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, 1118 EXPECT_EQ(syncer::SyncChange::ACTION_ADD,
1139 sync_processor_->GetOnlyChange("bad", "foo")->change_type()); 1119 sync_processor_->GetOnlyChange("bad", "foo")->change_type());
1140 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, 1120 EXPECT_EQ(syncer::SyncChange::ACTION_ADD,
1141 sync_processor_->GetOnlyChange("bad", "bar")->change_type()); 1121 sync_processor_->GetOnlyChange("bad", "bar")->change_type());
(...skipping 22 matching lines...) Expand all
1164 1144
1165 ValueStore* good = AddExtensionAndGetStorage("good", type); 1145 ValueStore* good = AddExtensionAndGetStorage("good", type);
1166 ValueStore* bad = AddExtensionAndGetStorage("bad", type); 1146 ValueStore* bad = AddExtensionAndGetStorage("bad", type);
1167 1147
1168 // Only set bad; setting good will cause it to fail below. 1148 // Only set bad; setting good will cause it to fail below.
1169 bad->Set(DEFAULTS, "foo", fooValue); 1149 bad->Set(DEFAULTS, "foo", fooValue);
1170 1150
1171 sync_processor_->set_fail_all_requests(true); 1151 sync_processor_->set_fail_all_requests(true);
1172 GetSyncableService(model_type) 1152 GetSyncableService(model_type)
1173 ->MergeDataAndStartSyncing( 1153 ->MergeDataAndStartSyncing(
1174 model_type, 1154 model_type, syncer::SyncDataList(),
1175 syncer::SyncDataList(), 1155 std::move(sync_processor_wrapper_),
1176 sync_processor_wrapper_.Pass(),
1177 make_scoped_ptr(new syncer::SyncErrorFactoryMock())); 1156 make_scoped_ptr(new syncer::SyncErrorFactoryMock()));
1178 sync_processor_->set_fail_all_requests(false); 1157 sync_processor_->set_fail_all_requests(false);
1179 1158
1180 // Changes from good will be send to sync, changes from bad won't. 1159 // Changes from good will be send to sync, changes from bad won't.
1181 sync_processor_->ClearChanges(); 1160 sync_processor_->ClearChanges();
1182 good->Set(DEFAULTS, "foo", barValue); 1161 good->Set(DEFAULTS, "foo", barValue);
1183 bad->Set(DEFAULTS, "foo", barValue); 1162 bad->Set(DEFAULTS, "foo", barValue);
1184 1163
1185 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, 1164 EXPECT_EQ(syncer::SyncChange::ACTION_ADD,
1186 sync_processor_->GetOnlyChange("good", "foo")->change_type()); 1165 sync_processor_->GetOnlyChange("good", "foo")->change_type());
(...skipping 21 matching lines...) Expand all
1208 EXPECT_PRED_FORMAT2(SettingsEq, dict, bad->Get()); 1187 EXPECT_PRED_FORMAT2(SettingsEq, dict, bad->Get());
1209 } 1188 }
1210 1189
1211 // Restarting sync makes everything work again. 1190 // Restarting sync makes everything work again.
1212 sync_processor_->ClearChanges(); 1191 sync_processor_->ClearChanges();
1213 GetSyncableService(model_type)->StopSyncing(model_type); 1192 GetSyncableService(model_type)->StopSyncing(model_type);
1214 sync_processor_wrapper_.reset( 1193 sync_processor_wrapper_.reset(
1215 new syncer::SyncChangeProcessorWrapperForTest(sync_processor_.get())); 1194 new syncer::SyncChangeProcessorWrapperForTest(sync_processor_.get()));
1216 GetSyncableService(model_type) 1195 GetSyncableService(model_type)
1217 ->MergeDataAndStartSyncing( 1196 ->MergeDataAndStartSyncing(
1218 model_type, 1197 model_type, syncer::SyncDataList(),
1219 syncer::SyncDataList(), 1198 std::move(sync_processor_wrapper_),
1220 sync_processor_wrapper_.Pass(),
1221 make_scoped_ptr(new syncer::SyncErrorFactoryMock())); 1199 make_scoped_ptr(new syncer::SyncErrorFactoryMock()));
1222 1200
1223 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, 1201 EXPECT_EQ(syncer::SyncChange::ACTION_ADD,
1224 sync_processor_->GetOnlyChange("good", "foo")->change_type()); 1202 sync_processor_->GetOnlyChange("good", "foo")->change_type());
1225 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, 1203 EXPECT_EQ(syncer::SyncChange::ACTION_ADD,
1226 sync_processor_->GetOnlyChange("good", "bar")->change_type()); 1204 sync_processor_->GetOnlyChange("good", "bar")->change_type());
1227 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, 1205 EXPECT_EQ(syncer::SyncChange::ACTION_ADD,
1228 sync_processor_->GetOnlyChange("bad", "foo")->change_type()); 1206 sync_processor_->GetOnlyChange("bad", "foo")->change_type());
1229 EXPECT_EQ(3u, sync_processor_->changes().size()); 1207 EXPECT_EQ(3u, sync_processor_->changes().size());
1230 1208
(...skipping 16 matching lines...) Expand all
1247 base::StringValue barValue("barValue"); 1225 base::StringValue barValue("barValue");
1248 1226
1249 TestingValueStoreFactory* testing_factory = new TestingValueStoreFactory(); 1227 TestingValueStoreFactory* testing_factory = new TestingValueStoreFactory();
1250 storage_factory_->Reset(testing_factory); 1228 storage_factory_->Reset(testing_factory);
1251 1229
1252 ValueStore* good = AddExtensionAndGetStorage("good", type); 1230 ValueStore* good = AddExtensionAndGetStorage("good", type);
1253 ValueStore* bad = AddExtensionAndGetStorage("bad", type); 1231 ValueStore* bad = AddExtensionAndGetStorage("bad", type);
1254 1232
1255 GetSyncableService(model_type) 1233 GetSyncableService(model_type)
1256 ->MergeDataAndStartSyncing( 1234 ->MergeDataAndStartSyncing(
1257 model_type, 1235 model_type, syncer::SyncDataList(),
1258 syncer::SyncDataList(), 1236 std::move(sync_processor_wrapper_),
1259 sync_processor_wrapper_.Pass(),
1260 make_scoped_ptr(new syncer::SyncErrorFactoryMock())); 1237 make_scoped_ptr(new syncer::SyncErrorFactoryMock()));
1261 1238
1262 // bad will fail to send changes. 1239 // bad will fail to send changes.
1263 good->Set(DEFAULTS, "foo", fooValue); 1240 good->Set(DEFAULTS, "foo", fooValue);
1264 sync_processor_->set_fail_all_requests(true); 1241 sync_processor_->set_fail_all_requests(true);
1265 bad->Set(DEFAULTS, "foo", fooValue); 1242 bad->Set(DEFAULTS, "foo", fooValue);
1266 sync_processor_->set_fail_all_requests(false); 1243 sync_processor_->set_fail_all_requests(false);
1267 1244
1268 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, 1245 EXPECT_EQ(syncer::SyncChange::ACTION_ADD,
1269 sync_processor_->GetOnlyChange("good", "foo")->change_type()); 1246 sync_processor_->GetOnlyChange("good", "foo")->change_type());
(...skipping 30 matching lines...) Expand all
1300 EXPECT_PRED_FORMAT2(SettingsEq, dict, bad->Get()); 1277 EXPECT_PRED_FORMAT2(SettingsEq, dict, bad->Get());
1301 } 1278 }
1302 1279
1303 // Restarting sync makes everything work again. 1280 // Restarting sync makes everything work again.
1304 sync_processor_->ClearChanges(); 1281 sync_processor_->ClearChanges();
1305 GetSyncableService(model_type)->StopSyncing(model_type); 1282 GetSyncableService(model_type)->StopSyncing(model_type);
1306 sync_processor_wrapper_.reset( 1283 sync_processor_wrapper_.reset(
1307 new syncer::SyncChangeProcessorWrapperForTest(sync_processor_.get())); 1284 new syncer::SyncChangeProcessorWrapperForTest(sync_processor_.get()));
1308 GetSyncableService(model_type) 1285 GetSyncableService(model_type)
1309 ->MergeDataAndStartSyncing( 1286 ->MergeDataAndStartSyncing(
1310 model_type, 1287 model_type, syncer::SyncDataList(),
1311 syncer::SyncDataList(), 1288 std::move(sync_processor_wrapper_),
1312 sync_processor_wrapper_.Pass(),
1313 make_scoped_ptr(new syncer::SyncErrorFactoryMock())); 1289 make_scoped_ptr(new syncer::SyncErrorFactoryMock()));
1314 1290
1315 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, 1291 EXPECT_EQ(syncer::SyncChange::ACTION_ADD,
1316 sync_processor_->GetOnlyChange("good", "foo")->change_type()); 1292 sync_processor_->GetOnlyChange("good", "foo")->change_type());
1317 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, 1293 EXPECT_EQ(syncer::SyncChange::ACTION_ADD,
1318 sync_processor_->GetOnlyChange("good", "bar")->change_type()); 1294 sync_processor_->GetOnlyChange("good", "bar")->change_type());
1319 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, 1295 EXPECT_EQ(syncer::SyncChange::ACTION_ADD,
1320 sync_processor_->GetOnlyChange("bad", "foo")->change_type()); 1296 sync_processor_->GetOnlyChange("bad", "foo")->change_type());
1321 EXPECT_EQ(3u, sync_processor_->changes().size()); 1297 EXPECT_EQ(3u, sync_processor_->changes().size());
1322 1298
(...skipping 15 matching lines...) Expand all
1338 1314
1339 // This value should be larger than the limit in sync_storage_backend.cc. 1315 // This value should be larger than the limit in sync_storage_backend.cc.
1340 std::string string_10k; 1316 std::string string_10k;
1341 for (size_t i = 0; i < 10000; ++i) { 1317 for (size_t i = 0; i < 10000; ++i) {
1342 string_10k.append("a"); 1318 string_10k.append("a");
1343 } 1319 }
1344 base::StringValue large_value(string_10k); 1320 base::StringValue large_value(string_10k);
1345 1321
1346 GetSyncableService(model_type) 1322 GetSyncableService(model_type)
1347 ->MergeDataAndStartSyncing( 1323 ->MergeDataAndStartSyncing(
1348 model_type, 1324 model_type, syncer::SyncDataList(),
1349 syncer::SyncDataList(), 1325 std::move(sync_processor_wrapper_),
1350 sync_processor_wrapper_.Pass(),
1351 make_scoped_ptr(new syncer::SyncErrorFactoryMock())); 1326 make_scoped_ptr(new syncer::SyncErrorFactoryMock()));
1352 1327
1353 // Large local change rejected and doesn't get sent out. 1328 // Large local change rejected and doesn't get sent out.
1354 ValueStore* storage1 = AddExtensionAndGetStorage("s1", type); 1329 ValueStore* storage1 = AddExtensionAndGetStorage("s1", type);
1355 EXPECT_FALSE( 1330 EXPECT_FALSE(
1356 storage1->Set(DEFAULTS, "large_value", large_value)->status().ok()); 1331 storage1->Set(DEFAULTS, "large_value", large_value)->status().ok());
1357 EXPECT_EQ(0u, sync_processor_->changes().size()); 1332 EXPECT_EQ(0u, sync_processor_->changes().size());
1358 1333
1359 // Large incoming change should still get accepted. 1334 // Large incoming change should still get accepted.
1360 ValueStore* storage2 = AddExtensionAndGetStorage("s2", type); 1335 ValueStore* storage2 = AddExtensionAndGetStorage("s2", type);
(...skipping 22 matching lines...) Expand all
1383 ValueStore* storage = AddExtensionAndGetStorage("ext", type); 1358 ValueStore* storage = AddExtensionAndGetStorage("ext", type);
1384 1359
1385 { 1360 {
1386 syncer::SyncDataList sync_data_list; 1361 syncer::SyncDataList sync_data_list;
1387 scoped_ptr<base::Value> string_value(new base::StringValue("value")); 1362 scoped_ptr<base::Value> string_value(new base::StringValue("value"));
1388 sync_data_list.push_back(settings_sync_util::CreateData( 1363 sync_data_list.push_back(settings_sync_util::CreateData(
1389 "ext", "key.with.dot", *string_value, model_type)); 1364 "ext", "key.with.dot", *string_value, model_type));
1390 1365
1391 GetSyncableService(model_type) 1366 GetSyncableService(model_type)
1392 ->MergeDataAndStartSyncing( 1367 ->MergeDataAndStartSyncing(
1393 model_type, 1368 model_type, sync_data_list, std::move(sync_processor_wrapper_),
1394 sync_data_list,
1395 sync_processor_wrapper_.Pass(),
1396 make_scoped_ptr(new syncer::SyncErrorFactoryMock())); 1369 make_scoped_ptr(new syncer::SyncErrorFactoryMock()));
1397 } 1370 }
1398 1371
1399 // Test dots in keys that come from sync. 1372 // Test dots in keys that come from sync.
1400 { 1373 {
1401 ValueStore::ReadResult data = storage->Get(); 1374 ValueStore::ReadResult data = storage->Get();
1402 ASSERT_TRUE(data->status().ok()); 1375 ASSERT_TRUE(data->status().ok());
1403 1376
1404 base::DictionaryValue expected_data; 1377 base::DictionaryValue expected_data;
1405 expected_data.SetWithoutPathExpansion( 1378 expected_data.SetWithoutPathExpansion(
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
1475 settings_namespace::SYNC, 1448 settings_namespace::SYNC,
1476 base::Bind(&UnlimitedSyncStorageTestCallback)); 1449 base::Bind(&UnlimitedSyncStorageTestCallback));
1477 frontend_->RunWithStorage(extension, 1450 frontend_->RunWithStorage(extension,
1478 settings_namespace::LOCAL, 1451 settings_namespace::LOCAL,
1479 base::Bind(&UnlimitedLocalStorageTestCallback)); 1452 base::Bind(&UnlimitedLocalStorageTestCallback));
1480 1453
1481 base::MessageLoop::current()->RunUntilIdle(); 1454 base::MessageLoop::current()->RunUntilIdle();
1482 } 1455 }
1483 1456
1484 } // namespace extensions 1457 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698