| 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 #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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 |
| OLD | NEW |