| 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 "testing/gtest/include/gtest/gtest.h" | 5 #include "testing/gtest/include/gtest/gtest.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/json/json_reader.h" | 8 #include "base/json/json_reader.h" |
| 9 #include "base/json/json_writer.h" | 9 #include "base/json/json_writer.h" |
| 10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
| (...skipping 282 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 293 EXPECT_EQ(0u, GetAllSyncData(model_type).size()); | 293 EXPECT_EQ(0u, GetAllSyncData(model_type).size()); |
| 294 | 294 |
| 295 GetSyncableService(model_type)->StopSyncing(model_type); | 295 GetSyncableService(model_type)->StopSyncing(model_type); |
| 296 | 296 |
| 297 EXPECT_EQ(0u, sync_processor_->changes().size()); | 297 EXPECT_EQ(0u, sync_processor_->changes().size()); |
| 298 EXPECT_EQ(0u, GetAllSyncData(model_type).size()); | 298 EXPECT_EQ(0u, GetAllSyncData(model_type).size()); |
| 299 } | 299 } |
| 300 | 300 |
| 301 TEST_F(ExtensionSettingsSyncTest, InSyncDataDoesNotInvokeSync) { | 301 TEST_F(ExtensionSettingsSyncTest, InSyncDataDoesNotInvokeSync) { |
| 302 syncer::ModelType model_type = syncer::APP_SETTINGS; | 302 syncer::ModelType model_type = syncer::APP_SETTINGS; |
| 303 Extension::Type type = Extension::TYPE_PACKAGED_APP; | 303 Extension::Type type = Extension::TYPE_LEGACY_PACKAGED_APP; |
| 304 | 304 |
| 305 StringValue value1("fooValue"); | 305 StringValue value1("fooValue"); |
| 306 ListValue value2; | 306 ListValue value2; |
| 307 value2.Append(StringValue::CreateStringValue("barValue")); | 307 value2.Append(StringValue::CreateStringValue("barValue")); |
| 308 | 308 |
| 309 ValueStore* storage1 = AddExtensionAndGetStorage("s1", type); | 309 ValueStore* storage1 = AddExtensionAndGetStorage("s1", type); |
| 310 ValueStore* storage2 = AddExtensionAndGetStorage("s2", type); | 310 ValueStore* storage2 = AddExtensionAndGetStorage("s2", type); |
| 311 | 311 |
| 312 storage1->Set(DEFAULTS, "foo", value1); | 312 storage1->Set(DEFAULTS, "foo", value1); |
| 313 storage2->Set(DEFAULTS, "bar", value2); | 313 storage2->Set(DEFAULTS, "bar", value2); |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 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 |
| 380 GetSyncableService(model_type)->StopSyncing(model_type); | 380 GetSyncableService(model_type)->StopSyncing(model_type); |
| 381 } | 381 } |
| 382 | 382 |
| 383 TEST_F(ExtensionSettingsSyncTest, AnySyncDataOverwritesLocalData) { | 383 TEST_F(ExtensionSettingsSyncTest, AnySyncDataOverwritesLocalData) { |
| 384 syncer::ModelType model_type = syncer::APP_SETTINGS; | 384 syncer::ModelType model_type = syncer::APP_SETTINGS; |
| 385 Extension::Type type = Extension::TYPE_PACKAGED_APP; | 385 Extension::Type type = Extension::TYPE_LEGACY_PACKAGED_APP; |
| 386 | 386 |
| 387 StringValue value1("fooValue"); | 387 StringValue value1("fooValue"); |
| 388 ListValue value2; | 388 ListValue value2; |
| 389 value2.Append(StringValue::CreateStringValue("barValue")); | 389 value2.Append(StringValue::CreateStringValue("barValue")); |
| 390 | 390 |
| 391 // Maintain dictionaries mirrored to the expected values of the settings in | 391 // Maintain dictionaries mirrored to the expected values of the settings in |
| 392 // each storage area. | 392 // each storage area. |
| 393 DictionaryValue expected1, expected2; | 393 DictionaryValue expected1, expected2; |
| 394 | 394 |
| 395 // Pre-populate one of the storage areas. | 395 // Pre-populate one of the storage areas. |
| (...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 488 expected2.Remove("foo", NULL); | 488 expected2.Remove("foo", NULL); |
| 489 | 489 |
| 490 EXPECT_PRED_FORMAT2(SettingsEq, expected1, storage1->Get()); | 490 EXPECT_PRED_FORMAT2(SettingsEq, expected1, storage1->Get()); |
| 491 EXPECT_PRED_FORMAT2(SettingsEq, expected2, storage2->Get()); | 491 EXPECT_PRED_FORMAT2(SettingsEq, expected2, storage2->Get()); |
| 492 | 492 |
| 493 GetSyncableService(model_type)->StopSyncing(model_type); | 493 GetSyncableService(model_type)->StopSyncing(model_type); |
| 494 } | 494 } |
| 495 | 495 |
| 496 TEST_F(ExtensionSettingsSyncTest, PushToSync) { | 496 TEST_F(ExtensionSettingsSyncTest, PushToSync) { |
| 497 syncer::ModelType model_type = syncer::APP_SETTINGS; | 497 syncer::ModelType model_type = syncer::APP_SETTINGS; |
| 498 Extension::Type type = Extension::TYPE_PACKAGED_APP; | 498 Extension::Type type = Extension::TYPE_LEGACY_PACKAGED_APP; |
| 499 | 499 |
| 500 StringValue value1("fooValue"); | 500 StringValue value1("fooValue"); |
| 501 ListValue value2; | 501 ListValue value2; |
| 502 value2.Append(StringValue::CreateStringValue("barValue")); | 502 value2.Append(StringValue::CreateStringValue("barValue")); |
| 503 | 503 |
| 504 // Make storage1/2 initialised from local data, storage3/4 initialised from | 504 // Make storage1/2 initialised from local data, storage3/4 initialised from |
| 505 // sync. | 505 // sync. |
| 506 ValueStore* storage1 = AddExtensionAndGetStorage("s1", type); | 506 ValueStore* storage1 = AddExtensionAndGetStorage("s1", type); |
| 507 ValueStore* storage2 = AddExtensionAndGetStorage("s2", type); | 507 ValueStore* storage2 = AddExtensionAndGetStorage("s2", type); |
| 508 ValueStore* storage3 = AddExtensionAndGetStorage("s3", type); | 508 ValueStore* storage3 = AddExtensionAndGetStorage("s3", type); |
| (...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 637 | 637 |
| 638 TEST_F(ExtensionSettingsSyncTest, ExtensionAndAppSettingsSyncSeparately) { | 638 TEST_F(ExtensionSettingsSyncTest, ExtensionAndAppSettingsSyncSeparately) { |
| 639 StringValue value1("fooValue"); | 639 StringValue value1("fooValue"); |
| 640 ListValue value2; | 640 ListValue value2; |
| 641 value2.Append(StringValue::CreateStringValue("barValue")); | 641 value2.Append(StringValue::CreateStringValue("barValue")); |
| 642 | 642 |
| 643 // storage1 is an extension, storage2 is an app. | 643 // storage1 is an extension, storage2 is an app. |
| 644 ValueStore* storage1 = AddExtensionAndGetStorage( | 644 ValueStore* storage1 = AddExtensionAndGetStorage( |
| 645 "s1", Extension::TYPE_EXTENSION); | 645 "s1", Extension::TYPE_EXTENSION); |
| 646 ValueStore* storage2 = AddExtensionAndGetStorage( | 646 ValueStore* storage2 = AddExtensionAndGetStorage( |
| 647 "s2", Extension::TYPE_PACKAGED_APP); | 647 "s2", Extension::TYPE_LEGACY_PACKAGED_APP); |
| 648 | 648 |
| 649 storage1->Set(DEFAULTS, "foo", value1); | 649 storage1->Set(DEFAULTS, "foo", value1); |
| 650 storage2->Set(DEFAULTS, "bar", value2); | 650 storage2->Set(DEFAULTS, "bar", value2); |
| 651 | 651 |
| 652 std::map<std::string, SettingSyncDataList> extension_sync_data = | 652 std::map<std::string, SettingSyncDataList> extension_sync_data = |
| 653 GetAllSyncData(syncer::EXTENSION_SETTINGS); | 653 GetAllSyncData(syncer::EXTENSION_SETTINGS); |
| 654 EXPECT_EQ(1u, extension_sync_data.size()); | 654 EXPECT_EQ(1u, extension_sync_data.size()); |
| 655 EXPECT_EQ(1u, extension_sync_data["s1"].size()); | 655 EXPECT_EQ(1u, extension_sync_data["s1"].size()); |
| 656 EXPECT_PRED_FORMAT2(ValuesEq, &value1, &extension_sync_data["s1"][0].value()); | 656 EXPECT_PRED_FORMAT2(ValuesEq, &value1, &extension_sync_data["s1"][0].value()); |
| 657 | 657 |
| (...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 886 DictionaryValue dict; | 886 DictionaryValue dict; |
| 887 dict.Set("bar", fooValue.DeepCopy()); | 887 dict.Set("bar", fooValue.DeepCopy()); |
| 888 EXPECT_PRED_FORMAT2(SettingsEq, dict, bad->Get()); | 888 EXPECT_PRED_FORMAT2(SettingsEq, dict, bad->Get()); |
| 889 } | 889 } |
| 890 } | 890 } |
| 891 | 891 |
| 892 TEST_F(ExtensionSettingsSyncTest, FailingProcessChangesDisablesSync) { | 892 TEST_F(ExtensionSettingsSyncTest, FailingProcessChangesDisablesSync) { |
| 893 // The test above tests a failing ProcessSyncChanges too, but here test with | 893 // The test above tests a failing ProcessSyncChanges too, but here test with |
| 894 // an initially passing MergeDataAndStartSyncing. | 894 // an initially passing MergeDataAndStartSyncing. |
| 895 syncer::ModelType model_type = syncer::APP_SETTINGS; | 895 syncer::ModelType model_type = syncer::APP_SETTINGS; |
| 896 Extension::Type type = Extension::TYPE_PACKAGED_APP; | 896 Extension::Type type = Extension::TYPE_LEGACY_PACKAGED_APP; |
| 897 | 897 |
| 898 StringValue fooValue("fooValue"); | 898 StringValue fooValue("fooValue"); |
| 899 StringValue barValue("barValue"); | 899 StringValue barValue("barValue"); |
| 900 | 900 |
| 901 TestingValueStoreFactory* testing_factory = new TestingValueStoreFactory(); | 901 TestingValueStoreFactory* testing_factory = new TestingValueStoreFactory(); |
| 902 storage_factory_->Reset(testing_factory); | 902 storage_factory_->Reset(testing_factory); |
| 903 | 903 |
| 904 ValueStore* good = AddExtensionAndGetStorage("good", type); | 904 ValueStore* good = AddExtensionAndGetStorage("good", type); |
| 905 ValueStore* bad = AddExtensionAndGetStorage("bad", type); | 905 ValueStore* bad = AddExtensionAndGetStorage("bad", type); |
| 906 | 906 |
| (...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1039 syncer::SyncChange::ACTION_ADD, | 1039 syncer::SyncChange::ACTION_ADD, |
| 1040 sync_processor_->GetOnlyChange("good", "bar").change_type()); | 1040 sync_processor_->GetOnlyChange("good", "bar").change_type()); |
| 1041 EXPECT_EQ( | 1041 EXPECT_EQ( |
| 1042 syncer::SyncChange::ACTION_ADD, | 1042 syncer::SyncChange::ACTION_ADD, |
| 1043 sync_processor_->GetOnlyChange("bad", "bar").change_type()); | 1043 sync_processor_->GetOnlyChange("bad", "bar").change_type()); |
| 1044 EXPECT_EQ(2u, sync_processor_->changes().size()); | 1044 EXPECT_EQ(2u, sync_processor_->changes().size()); |
| 1045 } | 1045 } |
| 1046 | 1046 |
| 1047 TEST_F(ExtensionSettingsSyncTest, FailureToReadChangesToPushDisablesSync) { | 1047 TEST_F(ExtensionSettingsSyncTest, FailureToReadChangesToPushDisablesSync) { |
| 1048 syncer::ModelType model_type = syncer::APP_SETTINGS; | 1048 syncer::ModelType model_type = syncer::APP_SETTINGS; |
| 1049 Extension::Type type = Extension::TYPE_PACKAGED_APP; | 1049 Extension::Type type = Extension::TYPE_LEGACY_PACKAGED_APP; |
| 1050 | 1050 |
| 1051 StringValue fooValue("fooValue"); | 1051 StringValue fooValue("fooValue"); |
| 1052 StringValue barValue("barValue"); | 1052 StringValue barValue("barValue"); |
| 1053 | 1053 |
| 1054 TestingValueStoreFactory* testing_factory = new TestingValueStoreFactory(); | 1054 TestingValueStoreFactory* testing_factory = new TestingValueStoreFactory(); |
| 1055 storage_factory_->Reset(testing_factory); | 1055 storage_factory_->Reset(testing_factory); |
| 1056 | 1056 |
| 1057 ValueStore* good = AddExtensionAndGetStorage("good", type); | 1057 ValueStore* good = AddExtensionAndGetStorage("good", type); |
| 1058 ValueStore* bad = AddExtensionAndGetStorage("bad", type); | 1058 ValueStore* bad = AddExtensionAndGetStorage("bad", type); |
| 1059 | 1059 |
| (...skipping 272 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1332 sync_processor_->GetOnlyChange("good", "foo").change_type()); | 1332 sync_processor_->GetOnlyChange("good", "foo").change_type()); |
| 1333 EXPECT_EQ( | 1333 EXPECT_EQ( |
| 1334 syncer::SyncChange::ACTION_UPDATE, | 1334 syncer::SyncChange::ACTION_UPDATE, |
| 1335 sync_processor_->GetOnlyChange("good", "foo").change_type()); | 1335 sync_processor_->GetOnlyChange("good", "foo").change_type()); |
| 1336 EXPECT_EQ(2u, sync_processor_->changes().size()); | 1336 EXPECT_EQ(2u, sync_processor_->changes().size()); |
| 1337 } | 1337 } |
| 1338 | 1338 |
| 1339 TEST_F(ExtensionSettingsSyncTest, | 1339 TEST_F(ExtensionSettingsSyncTest, |
| 1340 LargeOutgoingChangeRejectedButIncomingAccepted) { | 1340 LargeOutgoingChangeRejectedButIncomingAccepted) { |
| 1341 syncer::ModelType model_type = syncer::APP_SETTINGS; | 1341 syncer::ModelType model_type = syncer::APP_SETTINGS; |
| 1342 Extension::Type type = Extension::TYPE_PACKAGED_APP; | 1342 Extension::Type type = Extension::TYPE_LEGACY_PACKAGED_APP; |
| 1343 | 1343 |
| 1344 // This value should be larger than the limit in settings_backend.cc. | 1344 // This value should be larger than the limit in settings_backend.cc. |
| 1345 std::string string_5k; | 1345 std::string string_5k; |
| 1346 for (size_t i = 0; i < 5000; ++i) { | 1346 for (size_t i = 0; i < 5000; ++i) { |
| 1347 string_5k.append("a"); | 1347 string_5k.append("a"); |
| 1348 } | 1348 } |
| 1349 StringValue large_value(string_5k); | 1349 StringValue large_value(string_5k); |
| 1350 | 1350 |
| 1351 GetSyncableService(model_type)->MergeDataAndStartSyncing( | 1351 GetSyncableService(model_type)->MergeDataAndStartSyncing( |
| 1352 model_type, | 1352 model_type, |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1419 ASSERT_EQ(1u, sync_processor_->changes().size()); | 1419 ASSERT_EQ(1u, sync_processor_->changes().size()); |
| 1420 SettingSyncData sync_data = sync_processor_->changes()[0]; | 1420 SettingSyncData sync_data = sync_processor_->changes()[0]; |
| 1421 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, sync_data.change_type()); | 1421 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, sync_data.change_type()); |
| 1422 EXPECT_EQ("ext", sync_data.extension_id()); | 1422 EXPECT_EQ("ext", sync_data.extension_id()); |
| 1423 EXPECT_EQ("key.with.spot", sync_data.key()); | 1423 EXPECT_EQ("key.with.spot", sync_data.key()); |
| 1424 EXPECT_TRUE(sync_data.value().Equals(string_value.get())); | 1424 EXPECT_TRUE(sync_data.value().Equals(string_value.get())); |
| 1425 } | 1425 } |
| 1426 } | 1426 } |
| 1427 | 1427 |
| 1428 } // namespace extensions | 1428 } // namespace extensions |
| OLD | NEW |