| 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 |