Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(217)

Side by Side Diff: chrome/browser/extensions/extension_settings_sync_unittest.cc

Issue 8341043: Extension settings API: send ACTION_UPDATE rather than ACTION_ADD when a (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: comments Created 9 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | chrome/browser/extensions/syncable_extension_settings_storage.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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 }
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/extensions/syncable_extension_settings_storage.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698