OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 208 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
219 ASSERT_PRED_FORMAT2(ValuesEq, &value2, &all_sync_data["s2"][0].value()); | 219 ASSERT_PRED_FORMAT2(ValuesEq, &value2, &all_sync_data["s2"][0].value()); |
220 | 220 |
221 SyncDataList sync_data; | 221 SyncDataList sync_data; |
222 sync_data.push_back(extension_settings_sync_util::CreateData( | 222 sync_data.push_back(extension_settings_sync_util::CreateData( |
223 "s1", "foo", value1)); | 223 "s1", "foo", value1)); |
224 sync_data.push_back(extension_settings_sync_util::CreateData( | 224 sync_data.push_back(extension_settings_sync_util::CreateData( |
225 "s2", "bar", value2)); | 225 "s2", "bar", value2)); |
226 | 226 |
227 backend_->MergeDataAndStartSyncing( | 227 backend_->MergeDataAndStartSyncing( |
228 syncable::EXTENSION_SETTINGS, sync_data, &sync_); | 228 syncable::EXTENSION_SETTINGS, sync_data, &sync_); |
229 backend_->StopSyncing(syncable::EXTENSION_SETTINGS); | |
230 | 229 |
231 // Already in sync, so no changes. | 230 // Already in sync, so no changes. |
232 ASSERT_EQ(0u, sync_.changes().size()); | 231 ASSERT_EQ(0u, sync_.changes().size()); |
| 232 |
| 233 // Regression test: not-changing the synced value shouldn't result in a sync |
| 234 // change, and changing the synced value should result in an update. |
| 235 storage1->Set("foo", value1); |
| 236 ASSERT_EQ(0u, sync_.changes().size()); |
| 237 |
| 238 storage1->Set("foo", value2); |
| 239 ASSERT_EQ(1u, sync_.changes().size()); |
| 240 ExtensionSettingSyncData change = sync_.GetOnlyChange("s1", "foo"); |
| 241 ASSERT_EQ(SyncChange::ACTION_UPDATE, change.change_type()); |
| 242 ASSERT_TRUE(value2.Equals(&change.value())); |
| 243 |
| 244 backend_->StopSyncing(syncable::EXTENSION_SETTINGS); |
233 } | 245 } |
234 | 246 |
235 TEST_F(ExtensionSettingsSyncTest, LocalDataWithNoSyncDataIsPushedToSync) { | 247 TEST_F(ExtensionSettingsSyncTest, LocalDataWithNoSyncDataIsPushedToSync) { |
236 StringValue value1("fooValue"); | 248 StringValue value1("fooValue"); |
237 ListValue value2; | 249 ListValue value2; |
238 value2.Append(StringValue::CreateStringValue("barValue")); | 250 value2.Append(StringValue::CreateStringValue("barValue")); |
239 | 251 |
240 SyncableExtensionSettingsStorage* storage1 = GetStorage("s1"); | 252 SyncableExtensionSettingsStorage* storage1 = GetStorage("s1"); |
241 SyncableExtensionSettingsStorage* storage2 = GetStorage("s2"); | 253 SyncableExtensionSettingsStorage* storage2 = GetStorage("s2"); |
242 | 254 |
(...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
490 sync_.GetOnlyChange("s3", "bar").change_type()); | 502 sync_.GetOnlyChange("s3", "bar").change_type()); |
491 ASSERT_EQ( | 503 ASSERT_EQ( |
492 SyncChange::ACTION_DELETE, | 504 SyncChange::ACTION_DELETE, |
493 sync_.GetOnlyChange("s4", "foo").change_type()); | 505 sync_.GetOnlyChange("s4", "foo").change_type()); |
494 ASSERT_EQ( | 506 ASSERT_EQ( |
495 SyncChange::ACTION_DELETE, | 507 SyncChange::ACTION_DELETE, |
496 sync_.GetOnlyChange("s4", "bar").change_type()); | 508 sync_.GetOnlyChange("s4", "bar").change_type()); |
497 | 509 |
498 backend_->StopSyncing(syncable::EXTENSION_SETTINGS); | 510 backend_->StopSyncing(syncable::EXTENSION_SETTINGS); |
499 } | 511 } |
OLD | NEW |