OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <stddef.h> | 5 #include <stddef.h> |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 #include <utility> | 8 #include <utility> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
164 return matching_changes[0]; | 164 return matching_changes[0]; |
165 } | 165 } |
166 | 166 |
167 private: | 167 private: |
168 SettingSyncDataList changes_; | 168 SettingSyncDataList changes_; |
169 bool fail_all_requests_; | 169 bool fail_all_requests_; |
170 }; | 170 }; |
171 | 171 |
172 std::unique_ptr<KeyedService> MockExtensionSystemFactoryFunction( | 172 std::unique_ptr<KeyedService> MockExtensionSystemFactoryFunction( |
173 content::BrowserContext* context) { | 173 content::BrowserContext* context) { |
174 return base::WrapUnique(new MockExtensionSystem(context)); | 174 return base::MakeUnique<MockExtensionSystem>(context); |
175 } | 175 } |
176 | 176 |
177 std::unique_ptr<KeyedService> BuildEventRouter( | 177 std::unique_ptr<KeyedService> BuildEventRouter( |
178 content::BrowserContext* profile) { | 178 content::BrowserContext* profile) { |
179 return base::WrapUnique(new extensions::EventRouter(profile, nullptr)); | 179 return base::MakeUnique<extensions::EventRouter>(profile, nullptr); |
180 } | 180 } |
181 | 181 |
182 } // namespace | 182 } // namespace |
183 | 183 |
184 class ExtensionSettingsSyncTest : public testing::Test { | 184 class ExtensionSettingsSyncTest : public testing::Test { |
185 public: | 185 public: |
186 ExtensionSettingsSyncTest() | 186 ExtensionSettingsSyncTest() |
187 : ui_thread_(BrowserThread::UI, base::MessageLoop::current()), | 187 : ui_thread_(BrowserThread::UI, base::MessageLoop::current()), |
188 file_thread_(BrowserThread::FILE, base::MessageLoop::current()), | 188 file_thread_(BrowserThread::FILE, base::MessageLoop::current()), |
189 storage_factory_(new TestValueStoreFactory()), | 189 storage_factory_(new TestValueStoreFactory()), |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
281 EXPECT_EQ(0u, GetAllSyncData(model_type).size()); | 281 EXPECT_EQ(0u, GetAllSyncData(model_type).size()); |
282 | 282 |
283 // Have one extension created before sync is set up, the other created after. | 283 // Have one extension created before sync is set up, the other created after. |
284 AddExtensionAndGetStorage("s1", type); | 284 AddExtensionAndGetStorage("s1", type); |
285 EXPECT_EQ(0u, GetAllSyncData(model_type).size()); | 285 EXPECT_EQ(0u, GetAllSyncData(model_type).size()); |
286 | 286 |
287 GetSyncableService(model_type) | 287 GetSyncableService(model_type) |
288 ->MergeDataAndStartSyncing( | 288 ->MergeDataAndStartSyncing( |
289 model_type, syncer::SyncDataList(), | 289 model_type, syncer::SyncDataList(), |
290 std::move(sync_processor_wrapper_), | 290 std::move(sync_processor_wrapper_), |
291 base::WrapUnique(new syncer::SyncErrorFactoryMock())); | 291 base::MakeUnique<syncer::SyncErrorFactoryMock>()); |
292 | 292 |
293 AddExtensionAndGetStorage("s2", type); | 293 AddExtensionAndGetStorage("s2", type); |
294 EXPECT_EQ(0u, GetAllSyncData(model_type).size()); | 294 EXPECT_EQ(0u, GetAllSyncData(model_type).size()); |
295 | 295 |
296 GetSyncableService(model_type)->StopSyncing(model_type); | 296 GetSyncableService(model_type)->StopSyncing(model_type); |
297 | 297 |
298 EXPECT_EQ(0u, sync_processor_->changes().size()); | 298 EXPECT_EQ(0u, sync_processor_->changes().size()); |
299 EXPECT_EQ(0u, GetAllSyncData(model_type).size()); | 299 EXPECT_EQ(0u, GetAllSyncData(model_type).size()); |
300 } | 300 } |
301 | 301 |
(...skipping 20 matching lines...) Expand all Loading... |
322 | 322 |
323 syncer::SyncDataList sync_data; | 323 syncer::SyncDataList sync_data; |
324 sync_data.push_back(settings_sync_util::CreateData( | 324 sync_data.push_back(settings_sync_util::CreateData( |
325 "s1", "foo", value1, model_type)); | 325 "s1", "foo", value1, model_type)); |
326 sync_data.push_back(settings_sync_util::CreateData( | 326 sync_data.push_back(settings_sync_util::CreateData( |
327 "s2", "bar", value2, model_type)); | 327 "s2", "bar", value2, model_type)); |
328 | 328 |
329 GetSyncableService(model_type) | 329 GetSyncableService(model_type) |
330 ->MergeDataAndStartSyncing( | 330 ->MergeDataAndStartSyncing( |
331 model_type, sync_data, std::move(sync_processor_wrapper_), | 331 model_type, sync_data, std::move(sync_processor_wrapper_), |
332 base::WrapUnique(new syncer::SyncErrorFactoryMock())); | 332 base::MakeUnique<syncer::SyncErrorFactoryMock>()); |
333 | 333 |
334 // Already in sync, so no changes. | 334 // Already in sync, so no changes. |
335 EXPECT_EQ(0u, sync_processor_->changes().size()); | 335 EXPECT_EQ(0u, sync_processor_->changes().size()); |
336 | 336 |
337 // Regression test: not-changing the synced value shouldn't result in a sync | 337 // Regression test: not-changing the synced value shouldn't result in a sync |
338 // change, and changing the synced value should result in an update. | 338 // change, and changing the synced value should result in an update. |
339 storage1->Set(DEFAULTS, "foo", value1); | 339 storage1->Set(DEFAULTS, "foo", value1); |
340 EXPECT_EQ(0u, sync_processor_->changes().size()); | 340 EXPECT_EQ(0u, sync_processor_->changes().size()); |
341 | 341 |
342 storage1->Set(DEFAULTS, "foo", value2); | 342 storage1->Set(DEFAULTS, "foo", value2); |
(...skipping 16 matching lines...) Expand all Loading... |
359 ValueStore* storage1 = AddExtensionAndGetStorage("s1", type); | 359 ValueStore* storage1 = AddExtensionAndGetStorage("s1", type); |
360 ValueStore* storage2 = AddExtensionAndGetStorage("s2", type); | 360 ValueStore* storage2 = AddExtensionAndGetStorage("s2", type); |
361 | 361 |
362 storage1->Set(DEFAULTS, "foo", value1); | 362 storage1->Set(DEFAULTS, "foo", value1); |
363 storage2->Set(DEFAULTS, "bar", value2); | 363 storage2->Set(DEFAULTS, "bar", value2); |
364 | 364 |
365 GetSyncableService(model_type) | 365 GetSyncableService(model_type) |
366 ->MergeDataAndStartSyncing( | 366 ->MergeDataAndStartSyncing( |
367 model_type, syncer::SyncDataList(), | 367 model_type, syncer::SyncDataList(), |
368 std::move(sync_processor_wrapper_), | 368 std::move(sync_processor_wrapper_), |
369 base::WrapUnique(new syncer::SyncErrorFactoryMock())); | 369 base::MakeUnique<syncer::SyncErrorFactoryMock>()); |
370 | 370 |
371 // All settings should have been pushed to sync. | 371 // All settings should have been pushed to sync. |
372 EXPECT_EQ(2u, sync_processor_->changes().size()); | 372 EXPECT_EQ(2u, sync_processor_->changes().size()); |
373 SettingSyncData* change = sync_processor_->GetOnlyChange("s1", "foo"); | 373 SettingSyncData* change = sync_processor_->GetOnlyChange("s1", "foo"); |
374 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, change->change_type()); | 374 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, change->change_type()); |
375 EXPECT_TRUE(value1.Equals(&change->value())); | 375 EXPECT_TRUE(value1.Equals(&change->value())); |
376 change = sync_processor_->GetOnlyChange("s2", "bar"); | 376 change = sync_processor_->GetOnlyChange("s2", "bar"); |
377 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, change->change_type()); | 377 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, change->change_type()); |
378 EXPECT_TRUE(value2.Equals(&change->value())); | 378 EXPECT_TRUE(value2.Equals(&change->value())); |
379 | 379 |
(...skipping 17 matching lines...) Expand all Loading... |
397 storage1->Set(DEFAULTS, "overwriteMe", value1); | 397 storage1->Set(DEFAULTS, "overwriteMe", value1); |
398 | 398 |
399 syncer::SyncDataList sync_data; | 399 syncer::SyncDataList sync_data; |
400 sync_data.push_back(settings_sync_util::CreateData( | 400 sync_data.push_back(settings_sync_util::CreateData( |
401 "s1", "foo", value1, model_type)); | 401 "s1", "foo", value1, model_type)); |
402 sync_data.push_back(settings_sync_util::CreateData( | 402 sync_data.push_back(settings_sync_util::CreateData( |
403 "s2", "bar", value2, model_type)); | 403 "s2", "bar", value2, model_type)); |
404 GetSyncableService(model_type) | 404 GetSyncableService(model_type) |
405 ->MergeDataAndStartSyncing( | 405 ->MergeDataAndStartSyncing( |
406 model_type, sync_data, std::move(sync_processor_wrapper_), | 406 model_type, sync_data, std::move(sync_processor_wrapper_), |
407 base::WrapUnique(new syncer::SyncErrorFactoryMock())); | 407 base::MakeUnique<syncer::SyncErrorFactoryMock>()); |
408 expected1.Set("foo", value1.DeepCopy()); | 408 expected1.Set("foo", value1.DeepCopy()); |
409 expected2.Set("bar", value2.DeepCopy()); | 409 expected2.Set("bar", value2.DeepCopy()); |
410 | 410 |
411 ValueStore* storage2 = AddExtensionAndGetStorage("s2", type); | 411 ValueStore* storage2 = AddExtensionAndGetStorage("s2", type); |
412 | 412 |
413 // All changes should be local, so no sync changes. | 413 // All changes should be local, so no sync changes. |
414 EXPECT_EQ(0u, sync_processor_->changes().size()); | 414 EXPECT_EQ(0u, sync_processor_->changes().size()); |
415 | 415 |
416 // Sync settings should have been pushed to local settings. | 416 // Sync settings should have been pushed to local settings. |
417 EXPECT_PRED_FORMAT2(SettingsEq, expected1, storage1->Get()); | 417 EXPECT_PRED_FORMAT2(SettingsEq, expected1, storage1->Get()); |
(...skipping 21 matching lines...) Expand all Loading... |
439 storage1->Set(DEFAULTS, "foo", value1); | 439 storage1->Set(DEFAULTS, "foo", value1); |
440 expected1.Set("foo", value1.DeepCopy()); | 440 expected1.Set("foo", value1.DeepCopy()); |
441 | 441 |
442 syncer::SyncDataList sync_data; | 442 syncer::SyncDataList sync_data; |
443 sync_data.push_back(settings_sync_util::CreateData( | 443 sync_data.push_back(settings_sync_util::CreateData( |
444 "s2", "bar", value2, model_type)); | 444 "s2", "bar", value2, model_type)); |
445 | 445 |
446 GetSyncableService(model_type) | 446 GetSyncableService(model_type) |
447 ->MergeDataAndStartSyncing( | 447 ->MergeDataAndStartSyncing( |
448 model_type, sync_data, std::move(sync_processor_wrapper_), | 448 model_type, sync_data, std::move(sync_processor_wrapper_), |
449 base::WrapUnique(new syncer::SyncErrorFactoryMock())); | 449 base::MakeUnique<syncer::SyncErrorFactoryMock>()); |
450 expected2.Set("bar", value2.DeepCopy()); | 450 expected2.Set("bar", value2.DeepCopy()); |
451 | 451 |
452 // Make sync add some settings. | 452 // Make sync add some settings. |
453 syncer::SyncChangeList change_list; | 453 syncer::SyncChangeList change_list; |
454 change_list.push_back(settings_sync_util::CreateAdd( | 454 change_list.push_back(settings_sync_util::CreateAdd( |
455 "s1", "bar", value2, model_type)); | 455 "s1", "bar", value2, model_type)); |
456 change_list.push_back(settings_sync_util::CreateAdd( | 456 change_list.push_back(settings_sync_util::CreateAdd( |
457 "s2", "foo", value1, model_type)); | 457 "s2", "foo", value1, model_type)); |
458 GetSyncableService(model_type)->ProcessSyncChanges(FROM_HERE, change_list); | 458 GetSyncableService(model_type)->ProcessSyncChanges(FROM_HERE, change_list); |
459 expected1.Set("bar", value2.DeepCopy()); | 459 expected1.Set("bar", value2.DeepCopy()); |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
513 | 513 |
514 syncer::SyncDataList sync_data; | 514 syncer::SyncDataList sync_data; |
515 sync_data.push_back(settings_sync_util::CreateData( | 515 sync_data.push_back(settings_sync_util::CreateData( |
516 "s3", "bar", value2, model_type)); | 516 "s3", "bar", value2, model_type)); |
517 sync_data.push_back(settings_sync_util::CreateData( | 517 sync_data.push_back(settings_sync_util::CreateData( |
518 "s4", "bar", value2, model_type)); | 518 "s4", "bar", value2, model_type)); |
519 | 519 |
520 GetSyncableService(model_type) | 520 GetSyncableService(model_type) |
521 ->MergeDataAndStartSyncing( | 521 ->MergeDataAndStartSyncing( |
522 model_type, sync_data, std::move(sync_processor_wrapper_), | 522 model_type, sync_data, std::move(sync_processor_wrapper_), |
523 base::WrapUnique(new syncer::SyncErrorFactoryMock())); | 523 base::MakeUnique<syncer::SyncErrorFactoryMock>()); |
524 | 524 |
525 // Add something locally. | 525 // Add something locally. |
526 storage1->Set(DEFAULTS, "bar", value2); | 526 storage1->Set(DEFAULTS, "bar", value2); |
527 storage2->Set(DEFAULTS, "bar", value2); | 527 storage2->Set(DEFAULTS, "bar", value2); |
528 storage3->Set(DEFAULTS, "foo", value1); | 528 storage3->Set(DEFAULTS, "foo", value1); |
529 storage4->Set(DEFAULTS, "foo", value1); | 529 storage4->Set(DEFAULTS, "foo", value1); |
530 | 530 |
531 SettingSyncData* change = sync_processor_->GetOnlyChange("s1", "bar"); | 531 SettingSyncData* change = sync_processor_->GetOnlyChange("s1", "bar"); |
532 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, change->change_type()); | 532 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, change->change_type()); |
533 EXPECT_TRUE(value2.Equals(&change->value())); | 533 EXPECT_TRUE(value2.Equals(&change->value())); |
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
651 | 651 |
652 // Stop each separately, there should be no changes either time. | 652 // Stop each separately, there should be no changes either time. |
653 syncer::SyncDataList sync_data; | 653 syncer::SyncDataList sync_data; |
654 sync_data.push_back(settings_sync_util::CreateData( | 654 sync_data.push_back(settings_sync_util::CreateData( |
655 "s1", "foo", value1, syncer::EXTENSION_SETTINGS)); | 655 "s1", "foo", value1, syncer::EXTENSION_SETTINGS)); |
656 | 656 |
657 GetSyncableService(syncer::EXTENSION_SETTINGS) | 657 GetSyncableService(syncer::EXTENSION_SETTINGS) |
658 ->MergeDataAndStartSyncing( | 658 ->MergeDataAndStartSyncing( |
659 syncer::EXTENSION_SETTINGS, sync_data, | 659 syncer::EXTENSION_SETTINGS, sync_data, |
660 std::move(sync_processor_wrapper_), | 660 std::move(sync_processor_wrapper_), |
661 base::WrapUnique(new syncer::SyncErrorFactoryMock())); | 661 base::MakeUnique<syncer::SyncErrorFactoryMock>()); |
662 GetSyncableService(syncer::EXTENSION_SETTINGS)-> | 662 GetSyncableService(syncer::EXTENSION_SETTINGS)-> |
663 StopSyncing(syncer::EXTENSION_SETTINGS); | 663 StopSyncing(syncer::EXTENSION_SETTINGS); |
664 EXPECT_EQ(0u, sync_processor_->changes().size()); | 664 EXPECT_EQ(0u, sync_processor_->changes().size()); |
665 | 665 |
666 sync_data.clear(); | 666 sync_data.clear(); |
667 sync_data.push_back(settings_sync_util::CreateData( | 667 sync_data.push_back(settings_sync_util::CreateData( |
668 "s2", "bar", value2, syncer::APP_SETTINGS)); | 668 "s2", "bar", value2, syncer::APP_SETTINGS)); |
669 | 669 |
670 std::unique_ptr<syncer::SyncChangeProcessorWrapperForTest> | 670 std::unique_ptr<syncer::SyncChangeProcessorWrapperForTest> |
671 app_settings_delegate_( | 671 app_settings_delegate_( |
672 new syncer::SyncChangeProcessorWrapperForTest(sync_processor_.get())); | 672 new syncer::SyncChangeProcessorWrapperForTest(sync_processor_.get())); |
673 GetSyncableService(syncer::APP_SETTINGS) | 673 GetSyncableService(syncer::APP_SETTINGS) |
674 ->MergeDataAndStartSyncing( | 674 ->MergeDataAndStartSyncing( |
675 syncer::APP_SETTINGS, sync_data, std::move(app_settings_delegate_), | 675 syncer::APP_SETTINGS, sync_data, std::move(app_settings_delegate_), |
676 base::WrapUnique(new syncer::SyncErrorFactoryMock())); | 676 base::MakeUnique<syncer::SyncErrorFactoryMock>()); |
677 GetSyncableService(syncer::APP_SETTINGS)-> | 677 GetSyncableService(syncer::APP_SETTINGS)-> |
678 StopSyncing(syncer::APP_SETTINGS); | 678 StopSyncing(syncer::APP_SETTINGS); |
679 EXPECT_EQ(0u, sync_processor_->changes().size()); | 679 EXPECT_EQ(0u, sync_processor_->changes().size()); |
680 } | 680 } |
681 | 681 |
682 TEST_F(ExtensionSettingsSyncTest, FailingStartSyncingDisablesSync) { | 682 TEST_F(ExtensionSettingsSyncTest, FailingStartSyncingDisablesSync) { |
683 syncer::ModelType model_type = syncer::EXTENSION_SETTINGS; | 683 syncer::ModelType model_type = syncer::EXTENSION_SETTINGS; |
684 Manifest::Type type = Manifest::TYPE_EXTENSION; | 684 Manifest::Type type = Manifest::TYPE_EXTENSION; |
685 | 685 |
686 base::StringValue fooValue("fooValue"); | 686 base::StringValue fooValue("fooValue"); |
(...skipping 10 matching lines...) Expand all Loading... |
697 GetExisting("bad")->set_status_code(ValueStore::CORRUPTION); | 697 GetExisting("bad")->set_status_code(ValueStore::CORRUPTION); |
698 { | 698 { |
699 syncer::SyncDataList sync_data; | 699 syncer::SyncDataList sync_data; |
700 sync_data.push_back(settings_sync_util::CreateData( | 700 sync_data.push_back(settings_sync_util::CreateData( |
701 "good", "foo", fooValue, model_type)); | 701 "good", "foo", fooValue, model_type)); |
702 sync_data.push_back(settings_sync_util::CreateData( | 702 sync_data.push_back(settings_sync_util::CreateData( |
703 "bad", "foo", fooValue, model_type)); | 703 "bad", "foo", fooValue, model_type)); |
704 GetSyncableService(model_type) | 704 GetSyncableService(model_type) |
705 ->MergeDataAndStartSyncing( | 705 ->MergeDataAndStartSyncing( |
706 model_type, sync_data, std::move(sync_processor_wrapper_), | 706 model_type, sync_data, std::move(sync_processor_wrapper_), |
707 base::WrapUnique(new syncer::SyncErrorFactoryMock())); | 707 base::MakeUnique<syncer::SyncErrorFactoryMock>()); |
708 } | 708 } |
709 GetExisting("bad")->set_status_code(ValueStore::OK); | 709 GetExisting("bad")->set_status_code(ValueStore::OK); |
710 | 710 |
711 { | 711 { |
712 base::DictionaryValue dict; | 712 base::DictionaryValue dict; |
713 dict.Set("foo", fooValue.DeepCopy()); | 713 dict.Set("foo", fooValue.DeepCopy()); |
714 EXPECT_PRED_FORMAT2(SettingsEq, dict, good->Get()); | 714 EXPECT_PRED_FORMAT2(SettingsEq, dict, good->Get()); |
715 } | 715 } |
716 { | 716 { |
717 base::DictionaryValue dict; | 717 base::DictionaryValue dict; |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
813 | 813 |
814 // Restarting sync should make bad start syncing again. | 814 // Restarting sync should make bad start syncing again. |
815 sync_processor_->ClearChanges(); | 815 sync_processor_->ClearChanges(); |
816 GetSyncableService(model_type)->StopSyncing(model_type); | 816 GetSyncableService(model_type)->StopSyncing(model_type); |
817 sync_processor_wrapper_.reset( | 817 sync_processor_wrapper_.reset( |
818 new syncer::SyncChangeProcessorWrapperForTest(sync_processor_.get())); | 818 new syncer::SyncChangeProcessorWrapperForTest(sync_processor_.get())); |
819 GetSyncableService(model_type) | 819 GetSyncableService(model_type) |
820 ->MergeDataAndStartSyncing( | 820 ->MergeDataAndStartSyncing( |
821 model_type, syncer::SyncDataList(), | 821 model_type, syncer::SyncDataList(), |
822 std::move(sync_processor_wrapper_), | 822 std::move(sync_processor_wrapper_), |
823 base::WrapUnique(new syncer::SyncErrorFactoryMock())); | 823 base::MakeUnique<syncer::SyncErrorFactoryMock>()); |
824 | 824 |
825 // Local settings will have been pushed to sync, since it's empty (in this | 825 // Local settings will have been pushed to sync, since it's empty (in this |
826 // test; presumably it wouldn't be live, since we've been getting changes). | 826 // test; presumably it wouldn't be live, since we've been getting changes). |
827 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, | 827 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, |
828 sync_processor_->GetOnlyChange("good", "foo")->change_type()); | 828 sync_processor_->GetOnlyChange("good", "foo")->change_type()); |
829 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, | 829 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, |
830 sync_processor_->GetOnlyChange("good", "bar")->change_type()); | 830 sync_processor_->GetOnlyChange("good", "bar")->change_type()); |
831 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, | 831 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, |
832 sync_processor_->GetOnlyChange("bad", "bar")->change_type()); | 832 sync_processor_->GetOnlyChange("bad", "bar")->change_type()); |
833 EXPECT_EQ(3u, sync_processor_->changes().size()); | 833 EXPECT_EQ(3u, sync_processor_->changes().size()); |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
881 // Unlike before, initially succeeding MergeDataAndStartSyncing. | 881 // Unlike before, initially succeeding MergeDataAndStartSyncing. |
882 { | 882 { |
883 syncer::SyncDataList sync_data; | 883 syncer::SyncDataList sync_data; |
884 sync_data.push_back(settings_sync_util::CreateData( | 884 sync_data.push_back(settings_sync_util::CreateData( |
885 "good", "foo", fooValue, model_type)); | 885 "good", "foo", fooValue, model_type)); |
886 sync_data.push_back(settings_sync_util::CreateData( | 886 sync_data.push_back(settings_sync_util::CreateData( |
887 "bad", "foo", fooValue, model_type)); | 887 "bad", "foo", fooValue, model_type)); |
888 GetSyncableService(model_type) | 888 GetSyncableService(model_type) |
889 ->MergeDataAndStartSyncing( | 889 ->MergeDataAndStartSyncing( |
890 model_type, sync_data, std::move(sync_processor_wrapper_), | 890 model_type, sync_data, std::move(sync_processor_wrapper_), |
891 base::WrapUnique(new syncer::SyncErrorFactoryMock())); | 891 base::MakeUnique<syncer::SyncErrorFactoryMock>()); |
892 } | 892 } |
893 | 893 |
894 EXPECT_EQ(0u, sync_processor_->changes().size()); | 894 EXPECT_EQ(0u, sync_processor_->changes().size()); |
895 | 895 |
896 { | 896 { |
897 base::DictionaryValue dict; | 897 base::DictionaryValue dict; |
898 dict.Set("foo", fooValue.DeepCopy()); | 898 dict.Set("foo", fooValue.DeepCopy()); |
899 EXPECT_PRED_FORMAT2(SettingsEq, dict, good->Get()); | 899 EXPECT_PRED_FORMAT2(SettingsEq, dict, good->Get()); |
900 } | 900 } |
901 { | 901 { |
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
982 EXPECT_EQ(1u, all_sync_data.size()); | 982 EXPECT_EQ(1u, all_sync_data.size()); |
983 EXPECT_EQ("good/foo", syncer::SyncDataLocal(all_sync_data[0]).GetTag()); | 983 EXPECT_EQ("good/foo", syncer::SyncDataLocal(all_sync_data[0]).GetTag()); |
984 } | 984 } |
985 GetExisting("bad")->set_status_code(ValueStore::OK); | 985 GetExisting("bad")->set_status_code(ValueStore::OK); |
986 | 986 |
987 // Sync shouldn't be disabled for good (nor bad -- but this is unimportant). | 987 // Sync shouldn't be disabled for good (nor bad -- but this is unimportant). |
988 GetSyncableService(model_type) | 988 GetSyncableService(model_type) |
989 ->MergeDataAndStartSyncing( | 989 ->MergeDataAndStartSyncing( |
990 model_type, syncer::SyncDataList(), | 990 model_type, syncer::SyncDataList(), |
991 std::move(sync_processor_wrapper_), | 991 std::move(sync_processor_wrapper_), |
992 base::WrapUnique(new syncer::SyncErrorFactoryMock())); | 992 base::MakeUnique<syncer::SyncErrorFactoryMock>()); |
993 | 993 |
994 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, | 994 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, |
995 sync_processor_->GetOnlyChange("good", "foo")->change_type()); | 995 sync_processor_->GetOnlyChange("good", "foo")->change_type()); |
996 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, | 996 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, |
997 sync_processor_->GetOnlyChange("bad", "foo")->change_type()); | 997 sync_processor_->GetOnlyChange("bad", "foo")->change_type()); |
998 EXPECT_EQ(2u, sync_processor_->changes().size()); | 998 EXPECT_EQ(2u, sync_processor_->changes().size()); |
999 | 999 |
1000 sync_processor_->ClearChanges(); | 1000 sync_processor_->ClearChanges(); |
1001 good->Set(DEFAULTS, "bar", barValue); | 1001 good->Set(DEFAULTS, "bar", barValue); |
1002 bad->Set(DEFAULTS, "bar", barValue); | 1002 bad->Set(DEFAULTS, "bar", barValue); |
(...skipping 18 matching lines...) Expand all Loading... |
1021 good->Set(DEFAULTS, "foo", fooValue); | 1021 good->Set(DEFAULTS, "foo", fooValue); |
1022 bad->Set(DEFAULTS, "foo", fooValue); | 1022 bad->Set(DEFAULTS, "foo", fooValue); |
1023 | 1023 |
1024 // good will successfully push foo:fooValue to sync, but bad will fail to | 1024 // good will successfully push foo:fooValue to sync, but bad will fail to |
1025 // get them so won't. | 1025 // get them so won't. |
1026 GetExisting("bad")->set_status_code(ValueStore::CORRUPTION); | 1026 GetExisting("bad")->set_status_code(ValueStore::CORRUPTION); |
1027 GetSyncableService(model_type) | 1027 GetSyncableService(model_type) |
1028 ->MergeDataAndStartSyncing( | 1028 ->MergeDataAndStartSyncing( |
1029 model_type, syncer::SyncDataList(), | 1029 model_type, syncer::SyncDataList(), |
1030 std::move(sync_processor_wrapper_), | 1030 std::move(sync_processor_wrapper_), |
1031 base::WrapUnique(new syncer::SyncErrorFactoryMock())); | 1031 base::MakeUnique<syncer::SyncErrorFactoryMock>()); |
1032 GetExisting("bad")->set_status_code(ValueStore::OK); | 1032 GetExisting("bad")->set_status_code(ValueStore::OK); |
1033 | 1033 |
1034 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, | 1034 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, |
1035 sync_processor_->GetOnlyChange("good", "foo")->change_type()); | 1035 sync_processor_->GetOnlyChange("good", "foo")->change_type()); |
1036 EXPECT_EQ(1u, sync_processor_->changes().size()); | 1036 EXPECT_EQ(1u, sync_processor_->changes().size()); |
1037 | 1037 |
1038 // bad should now be disabled for sync. | 1038 // bad should now be disabled for sync. |
1039 sync_processor_->ClearChanges(); | 1039 sync_processor_->ClearChanges(); |
1040 good->Set(DEFAULTS, "bar", barValue); | 1040 good->Set(DEFAULTS, "bar", barValue); |
1041 bad->Set(DEFAULTS, "bar", barValue); | 1041 bad->Set(DEFAULTS, "bar", barValue); |
(...skipping 29 matching lines...) Expand all Loading... |
1071 // Re-enabling sync without failing should cause the local changes from bad | 1071 // Re-enabling sync without failing should cause the local changes from bad |
1072 // to be pushed to sync successfully, as should future changes to bad. | 1072 // to be pushed to sync successfully, as should future changes to bad. |
1073 sync_processor_->ClearChanges(); | 1073 sync_processor_->ClearChanges(); |
1074 GetSyncableService(model_type)->StopSyncing(model_type); | 1074 GetSyncableService(model_type)->StopSyncing(model_type); |
1075 sync_processor_wrapper_.reset( | 1075 sync_processor_wrapper_.reset( |
1076 new syncer::SyncChangeProcessorWrapperForTest(sync_processor_.get())); | 1076 new syncer::SyncChangeProcessorWrapperForTest(sync_processor_.get())); |
1077 GetSyncableService(model_type) | 1077 GetSyncableService(model_type) |
1078 ->MergeDataAndStartSyncing( | 1078 ->MergeDataAndStartSyncing( |
1079 model_type, syncer::SyncDataList(), | 1079 model_type, syncer::SyncDataList(), |
1080 std::move(sync_processor_wrapper_), | 1080 std::move(sync_processor_wrapper_), |
1081 base::WrapUnique(new syncer::SyncErrorFactoryMock())); | 1081 base::MakeUnique<syncer::SyncErrorFactoryMock>()); |
1082 | 1082 |
1083 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, | 1083 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, |
1084 sync_processor_->GetOnlyChange("good", "foo")->change_type()); | 1084 sync_processor_->GetOnlyChange("good", "foo")->change_type()); |
1085 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, | 1085 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, |
1086 sync_processor_->GetOnlyChange("good", "bar")->change_type()); | 1086 sync_processor_->GetOnlyChange("good", "bar")->change_type()); |
1087 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, | 1087 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, |
1088 sync_processor_->GetOnlyChange("bad", "foo")->change_type()); | 1088 sync_processor_->GetOnlyChange("bad", "foo")->change_type()); |
1089 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, | 1089 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, |
1090 sync_processor_->GetOnlyChange("bad", "bar")->change_type()); | 1090 sync_processor_->GetOnlyChange("bad", "bar")->change_type()); |
1091 EXPECT_EQ(4u, sync_processor_->changes().size()); | 1091 EXPECT_EQ(4u, sync_processor_->changes().size()); |
(...skipping 20 matching lines...) Expand all Loading... |
1112 ValueStore* bad = AddExtensionAndGetStorage("bad", type); | 1112 ValueStore* bad = AddExtensionAndGetStorage("bad", type); |
1113 | 1113 |
1114 // Only set bad; setting good will cause it to fail below. | 1114 // Only set bad; setting good will cause it to fail below. |
1115 bad->Set(DEFAULTS, "foo", fooValue); | 1115 bad->Set(DEFAULTS, "foo", fooValue); |
1116 | 1116 |
1117 sync_processor_->set_fail_all_requests(true); | 1117 sync_processor_->set_fail_all_requests(true); |
1118 GetSyncableService(model_type) | 1118 GetSyncableService(model_type) |
1119 ->MergeDataAndStartSyncing( | 1119 ->MergeDataAndStartSyncing( |
1120 model_type, syncer::SyncDataList(), | 1120 model_type, syncer::SyncDataList(), |
1121 std::move(sync_processor_wrapper_), | 1121 std::move(sync_processor_wrapper_), |
1122 base::WrapUnique(new syncer::SyncErrorFactoryMock())); | 1122 base::MakeUnique<syncer::SyncErrorFactoryMock>()); |
1123 sync_processor_->set_fail_all_requests(false); | 1123 sync_processor_->set_fail_all_requests(false); |
1124 | 1124 |
1125 // Changes from good will be send to sync, changes from bad won't. | 1125 // Changes from good will be send to sync, changes from bad won't. |
1126 sync_processor_->ClearChanges(); | 1126 sync_processor_->ClearChanges(); |
1127 good->Set(DEFAULTS, "foo", barValue); | 1127 good->Set(DEFAULTS, "foo", barValue); |
1128 bad->Set(DEFAULTS, "foo", barValue); | 1128 bad->Set(DEFAULTS, "foo", barValue); |
1129 | 1129 |
1130 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, | 1130 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, |
1131 sync_processor_->GetOnlyChange("good", "foo")->change_type()); | 1131 sync_processor_->GetOnlyChange("good", "foo")->change_type()); |
1132 EXPECT_EQ(1u, sync_processor_->changes().size()); | 1132 EXPECT_EQ(1u, sync_processor_->changes().size()); |
(...skipping 22 matching lines...) Expand all Loading... |
1155 | 1155 |
1156 // Restarting sync makes everything work again. | 1156 // Restarting sync makes everything work again. |
1157 sync_processor_->ClearChanges(); | 1157 sync_processor_->ClearChanges(); |
1158 GetSyncableService(model_type)->StopSyncing(model_type); | 1158 GetSyncableService(model_type)->StopSyncing(model_type); |
1159 sync_processor_wrapper_.reset( | 1159 sync_processor_wrapper_.reset( |
1160 new syncer::SyncChangeProcessorWrapperForTest(sync_processor_.get())); | 1160 new syncer::SyncChangeProcessorWrapperForTest(sync_processor_.get())); |
1161 GetSyncableService(model_type) | 1161 GetSyncableService(model_type) |
1162 ->MergeDataAndStartSyncing( | 1162 ->MergeDataAndStartSyncing( |
1163 model_type, syncer::SyncDataList(), | 1163 model_type, syncer::SyncDataList(), |
1164 std::move(sync_processor_wrapper_), | 1164 std::move(sync_processor_wrapper_), |
1165 base::WrapUnique(new syncer::SyncErrorFactoryMock())); | 1165 base::MakeUnique<syncer::SyncErrorFactoryMock>()); |
1166 | 1166 |
1167 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, | 1167 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, |
1168 sync_processor_->GetOnlyChange("good", "foo")->change_type()); | 1168 sync_processor_->GetOnlyChange("good", "foo")->change_type()); |
1169 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, | 1169 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, |
1170 sync_processor_->GetOnlyChange("good", "bar")->change_type()); | 1170 sync_processor_->GetOnlyChange("good", "bar")->change_type()); |
1171 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, | 1171 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, |
1172 sync_processor_->GetOnlyChange("bad", "foo")->change_type()); | 1172 sync_processor_->GetOnlyChange("bad", "foo")->change_type()); |
1173 EXPECT_EQ(3u, sync_processor_->changes().size()); | 1173 EXPECT_EQ(3u, sync_processor_->changes().size()); |
1174 | 1174 |
1175 sync_processor_->ClearChanges(); | 1175 sync_processor_->ClearChanges(); |
(...skipping 14 matching lines...) Expand all Loading... |
1190 base::StringValue fooValue("fooValue"); | 1190 base::StringValue fooValue("fooValue"); |
1191 base::StringValue barValue("barValue"); | 1191 base::StringValue barValue("barValue"); |
1192 | 1192 |
1193 ValueStore* good = AddExtensionAndGetStorage("good", type); | 1193 ValueStore* good = AddExtensionAndGetStorage("good", type); |
1194 ValueStore* bad = AddExtensionAndGetStorage("bad", type); | 1194 ValueStore* bad = AddExtensionAndGetStorage("bad", type); |
1195 | 1195 |
1196 GetSyncableService(model_type) | 1196 GetSyncableService(model_type) |
1197 ->MergeDataAndStartSyncing( | 1197 ->MergeDataAndStartSyncing( |
1198 model_type, syncer::SyncDataList(), | 1198 model_type, syncer::SyncDataList(), |
1199 std::move(sync_processor_wrapper_), | 1199 std::move(sync_processor_wrapper_), |
1200 base::WrapUnique(new syncer::SyncErrorFactoryMock())); | 1200 base::MakeUnique<syncer::SyncErrorFactoryMock>()); |
1201 | 1201 |
1202 // bad will fail to send changes. | 1202 // bad will fail to send changes. |
1203 good->Set(DEFAULTS, "foo", fooValue); | 1203 good->Set(DEFAULTS, "foo", fooValue); |
1204 sync_processor_->set_fail_all_requests(true); | 1204 sync_processor_->set_fail_all_requests(true); |
1205 bad->Set(DEFAULTS, "foo", fooValue); | 1205 bad->Set(DEFAULTS, "foo", fooValue); |
1206 sync_processor_->set_fail_all_requests(false); | 1206 sync_processor_->set_fail_all_requests(false); |
1207 | 1207 |
1208 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, | 1208 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, |
1209 sync_processor_->GetOnlyChange("good", "foo")->change_type()); | 1209 sync_processor_->GetOnlyChange("good", "foo")->change_type()); |
1210 EXPECT_EQ(1u, sync_processor_->changes().size()); | 1210 EXPECT_EQ(1u, sync_processor_->changes().size()); |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1242 | 1242 |
1243 // Restarting sync makes everything work again. | 1243 // Restarting sync makes everything work again. |
1244 sync_processor_->ClearChanges(); | 1244 sync_processor_->ClearChanges(); |
1245 GetSyncableService(model_type)->StopSyncing(model_type); | 1245 GetSyncableService(model_type)->StopSyncing(model_type); |
1246 sync_processor_wrapper_.reset( | 1246 sync_processor_wrapper_.reset( |
1247 new syncer::SyncChangeProcessorWrapperForTest(sync_processor_.get())); | 1247 new syncer::SyncChangeProcessorWrapperForTest(sync_processor_.get())); |
1248 GetSyncableService(model_type) | 1248 GetSyncableService(model_type) |
1249 ->MergeDataAndStartSyncing( | 1249 ->MergeDataAndStartSyncing( |
1250 model_type, syncer::SyncDataList(), | 1250 model_type, syncer::SyncDataList(), |
1251 std::move(sync_processor_wrapper_), | 1251 std::move(sync_processor_wrapper_), |
1252 base::WrapUnique(new syncer::SyncErrorFactoryMock())); | 1252 base::MakeUnique<syncer::SyncErrorFactoryMock>()); |
1253 | 1253 |
1254 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, | 1254 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, |
1255 sync_processor_->GetOnlyChange("good", "foo")->change_type()); | 1255 sync_processor_->GetOnlyChange("good", "foo")->change_type()); |
1256 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, | 1256 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, |
1257 sync_processor_->GetOnlyChange("good", "bar")->change_type()); | 1257 sync_processor_->GetOnlyChange("good", "bar")->change_type()); |
1258 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, | 1258 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, |
1259 sync_processor_->GetOnlyChange("bad", "foo")->change_type()); | 1259 sync_processor_->GetOnlyChange("bad", "foo")->change_type()); |
1260 EXPECT_EQ(3u, sync_processor_->changes().size()); | 1260 EXPECT_EQ(3u, sync_processor_->changes().size()); |
1261 | 1261 |
1262 sync_processor_->ClearChanges(); | 1262 sync_processor_->ClearChanges(); |
(...skipping 16 matching lines...) Expand all Loading... |
1279 std::string string_10k; | 1279 std::string string_10k; |
1280 for (size_t i = 0; i < 10000; ++i) { | 1280 for (size_t i = 0; i < 10000; ++i) { |
1281 string_10k.append("a"); | 1281 string_10k.append("a"); |
1282 } | 1282 } |
1283 base::StringValue large_value(string_10k); | 1283 base::StringValue large_value(string_10k); |
1284 | 1284 |
1285 GetSyncableService(model_type) | 1285 GetSyncableService(model_type) |
1286 ->MergeDataAndStartSyncing( | 1286 ->MergeDataAndStartSyncing( |
1287 model_type, syncer::SyncDataList(), | 1287 model_type, syncer::SyncDataList(), |
1288 std::move(sync_processor_wrapper_), | 1288 std::move(sync_processor_wrapper_), |
1289 base::WrapUnique(new syncer::SyncErrorFactoryMock())); | 1289 base::MakeUnique<syncer::SyncErrorFactoryMock>()); |
1290 | 1290 |
1291 // Large local change rejected and doesn't get sent out. | 1291 // Large local change rejected and doesn't get sent out. |
1292 ValueStore* storage1 = AddExtensionAndGetStorage("s1", type); | 1292 ValueStore* storage1 = AddExtensionAndGetStorage("s1", type); |
1293 EXPECT_FALSE( | 1293 EXPECT_FALSE( |
1294 storage1->Set(DEFAULTS, "large_value", large_value)->status().ok()); | 1294 storage1->Set(DEFAULTS, "large_value", large_value)->status().ok()); |
1295 EXPECT_EQ(0u, sync_processor_->changes().size()); | 1295 EXPECT_EQ(0u, sync_processor_->changes().size()); |
1296 | 1296 |
1297 // Large incoming change should still get accepted. | 1297 // Large incoming change should still get accepted. |
1298 ValueStore* storage2 = AddExtensionAndGetStorage("s2", type); | 1298 ValueStore* storage2 = AddExtensionAndGetStorage("s2", type); |
1299 { | 1299 { |
(...skipping 22 matching lines...) Expand all Loading... |
1322 | 1322 |
1323 { | 1323 { |
1324 syncer::SyncDataList sync_data_list; | 1324 syncer::SyncDataList sync_data_list; |
1325 std::unique_ptr<base::Value> string_value(new base::StringValue("value")); | 1325 std::unique_ptr<base::Value> string_value(new base::StringValue("value")); |
1326 sync_data_list.push_back(settings_sync_util::CreateData( | 1326 sync_data_list.push_back(settings_sync_util::CreateData( |
1327 "ext", "key.with.dot", *string_value, model_type)); | 1327 "ext", "key.with.dot", *string_value, model_type)); |
1328 | 1328 |
1329 GetSyncableService(model_type) | 1329 GetSyncableService(model_type) |
1330 ->MergeDataAndStartSyncing( | 1330 ->MergeDataAndStartSyncing( |
1331 model_type, sync_data_list, std::move(sync_processor_wrapper_), | 1331 model_type, sync_data_list, std::move(sync_processor_wrapper_), |
1332 base::WrapUnique(new syncer::SyncErrorFactoryMock())); | 1332 base::MakeUnique<syncer::SyncErrorFactoryMock>()); |
1333 } | 1333 } |
1334 | 1334 |
1335 // Test dots in keys that come from sync. | 1335 // Test dots in keys that come from sync. |
1336 { | 1336 { |
1337 ValueStore::ReadResult data = storage->Get(); | 1337 ValueStore::ReadResult data = storage->Get(); |
1338 ASSERT_TRUE(data->status().ok()); | 1338 ASSERT_TRUE(data->status().ok()); |
1339 | 1339 |
1340 base::DictionaryValue expected_data; | 1340 base::DictionaryValue expected_data; |
1341 expected_data.SetWithoutPathExpansion( | 1341 expected_data.SetWithoutPathExpansion( |
1342 "key.with.dot", | 1342 "key.with.dot", |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1411 settings_namespace::SYNC, | 1411 settings_namespace::SYNC, |
1412 base::Bind(&UnlimitedSyncStorageTestCallback)); | 1412 base::Bind(&UnlimitedSyncStorageTestCallback)); |
1413 frontend_->RunWithStorage(extension, | 1413 frontend_->RunWithStorage(extension, |
1414 settings_namespace::LOCAL, | 1414 settings_namespace::LOCAL, |
1415 base::Bind(&UnlimitedLocalStorageTestCallback)); | 1415 base::Bind(&UnlimitedLocalStorageTestCallback)); |
1416 | 1416 |
1417 base::RunLoop().RunUntilIdle(); | 1417 base::RunLoop().RunUntilIdle(); |
1418 } | 1418 } |
1419 | 1419 |
1420 } // namespace extensions | 1420 } // namespace extensions |
OLD | NEW |