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

Side by Side Diff: chrome/browser/extensions/api/storage/settings_sync_unittest.cc

Issue 151963002: Remove duplicated code from sync related unit tests. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Removed a const qualifier. Created 6 years, 10 months 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
OLDNEW
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 "base/bind.h" 5 #include "base/bind.h"
6 #include "base/files/scoped_temp_dir.h" 6 #include "base/files/scoped_temp_dir.h"
7 #include "base/json/json_reader.h" 7 #include "base/json/json_reader.h"
8 #include "base/json/json_writer.h" 8 #include "base/json/json_writer.h"
9 #include "base/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "base/message_loop/message_loop.h" 10 #include "base/message_loop/message_loop.h"
11 #include "chrome/browser/extensions/api/storage/leveldb_settings_storage_factory .h" 11 #include "chrome/browser/extensions/api/storage/leveldb_settings_storage_factory .h"
12 #include "chrome/browser/extensions/api/storage/settings_frontend.h" 12 #include "chrome/browser/extensions/api/storage/settings_frontend.h"
13 #include "chrome/browser/extensions/api/storage/settings_storage_factory.h" 13 #include "chrome/browser/extensions/api/storage/settings_storage_factory.h"
14 #include "chrome/browser/extensions/api/storage/settings_sync_util.h" 14 #include "chrome/browser/extensions/api/storage/settings_sync_util.h"
15 #include "chrome/browser/extensions/api/storage/settings_test_util.h" 15 #include "chrome/browser/extensions/api/storage/settings_test_util.h"
16 #include "chrome/browser/extensions/api/storage/syncable_settings_storage.h" 16 #include "chrome/browser/extensions/api/storage/syncable_settings_storage.h"
17 #include "chrome/browser/extensions/test_extension_service.h" 17 #include "chrome/browser/extensions/test_extension_service.h"
18 #include "chrome/browser/value_store/testing_value_store.h" 18 #include "chrome/browser/value_store/testing_value_store.h"
19 #include "content/public/test/test_browser_thread.h" 19 #include "content/public/test/test_browser_thread.h"
20 #include "extensions/browser/extension_system.h" 20 #include "extensions/browser/extension_system.h"
21 #include "extensions/common/manifest.h" 21 #include "extensions/common/manifest.h"
22 #include "sync/api/sync_change_processor.h" 22 #include "sync/api/sync_change_processor.h"
23 #include "sync/api/sync_change_processor_wrapper_for_test.h"
23 #include "sync/api/sync_error_factory.h" 24 #include "sync/api/sync_error_factory.h"
24 #include "sync/api/sync_error_factory_mock.h" 25 #include "sync/api/sync_error_factory_mock.h"
25 #include "testing/gtest/include/gtest/gtest.h" 26 #include "testing/gtest/include/gtest/gtest.h"
26 27
27 using base::DictionaryValue; 28 using base::DictionaryValue;
28 using base::ListValue; 29 using base::ListValue;
29 using base::Value; 30 using base::Value;
30 using content::BrowserThread; 31 using content::BrowserThread;
31 32
32 namespace extensions { 33 namespace extensions {
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
150 extension_id << "/" << key << " (out of " << changes_.size() << ")"; 151 extension_id << "/" << key << " (out of " << changes_.size() << ")";
151 } 152 }
152 return matching_changes[0]; 153 return matching_changes[0];
153 } 154 }
154 155
155 private: 156 private:
156 SettingSyncDataList changes_; 157 SettingSyncDataList changes_;
157 bool fail_all_requests_; 158 bool fail_all_requests_;
158 }; 159 };
159 160
160 class SyncChangeProcessorDelegate : public syncer::SyncChangeProcessor {
161 public:
162 explicit SyncChangeProcessorDelegate(syncer::SyncChangeProcessor* recipient)
163 : recipient_(recipient) {
164 DCHECK(recipient_);
165 }
166 virtual ~SyncChangeProcessorDelegate() {}
167
168 // syncer::SyncChangeProcessor implementation.
169 virtual syncer::SyncError ProcessSyncChanges(
170 const tracked_objects::Location& from_here,
171 const syncer::SyncChangeList& change_list) OVERRIDE {
172 return recipient_->ProcessSyncChanges(from_here, change_list);
173 }
174
175 virtual syncer::SyncDataList GetAllSyncData(syncer::ModelType type) const
176 OVERRIDE {
177 return recipient_->GetAllSyncData(type);
178 }
179
180 private:
181 // The recipient of all sync changes.
182 syncer::SyncChangeProcessor* recipient_;
183
184 DISALLOW_COPY_AND_ASSIGN(SyncChangeProcessorDelegate);
185 };
186
187 // SettingsStorageFactory which always returns TestingValueStore objects, 161 // SettingsStorageFactory which always returns TestingValueStore objects,
188 // and allows individually created objects to be returned. 162 // and allows individually created objects to be returned.
189 class TestingValueStoreFactory : public SettingsStorageFactory { 163 class TestingValueStoreFactory : public SettingsStorageFactory {
190 public: 164 public:
191 TestingValueStore* GetExisting(const std::string& extension_id) { 165 TestingValueStore* GetExisting(const std::string& extension_id) {
192 DCHECK(created_.count(extension_id)); 166 DCHECK(created_.count(extension_id));
193 return created_[extension_id]; 167 return created_[extension_id];
194 } 168 }
195 169
196 // SettingsStorageFactory implementation. 170 // SettingsStorageFactory implementation.
(...skipping 16 matching lines...) Expand all
213 187
214 } // namespace 188 } // namespace
215 189
216 class ExtensionSettingsSyncTest : public testing::Test { 190 class ExtensionSettingsSyncTest : public testing::Test {
217 public: 191 public:
218 ExtensionSettingsSyncTest() 192 ExtensionSettingsSyncTest()
219 : ui_thread_(BrowserThread::UI, base::MessageLoop::current()), 193 : ui_thread_(BrowserThread::UI, base::MessageLoop::current()),
220 file_thread_(BrowserThread::FILE, base::MessageLoop::current()), 194 file_thread_(BrowserThread::FILE, base::MessageLoop::current()),
221 storage_factory_(new util::ScopedSettingsStorageFactory()), 195 storage_factory_(new util::ScopedSettingsStorageFactory()),
222 sync_processor_(new MockSyncChangeProcessor), 196 sync_processor_(new MockSyncChangeProcessor),
223 sync_processor_delegate_(new SyncChangeProcessorDelegate( 197 sync_processor_wrapper_(new syncer::SyncChangeProcessorWrapperForTest(
224 sync_processor_.get())) {} 198 sync_processor_.get())) {}
225 199
226 virtual void SetUp() OVERRIDE { 200 virtual void SetUp() OVERRIDE {
227 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); 201 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir());
228 profile_.reset(new util::MockProfile(temp_dir_.path())); 202 profile_.reset(new util::MockProfile(temp_dir_.path()));
229 storage_factory_->Reset(new LeveldbSettingsStorageFactory()); 203 storage_factory_->Reset(new LeveldbSettingsStorageFactory());
230 frontend_.reset( 204 frontend_.reset(
231 SettingsFrontend::Create(storage_factory_.get(), profile_.get())); 205 SettingsFrontend::Create(storage_factory_.get(), profile_.get()));
232 } 206 }
233 207
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
274 // Need these so that the DCHECKs for running on FILE or UI threads pass. 248 // Need these so that the DCHECKs for running on FILE or UI threads pass.
275 base::MessageLoop message_loop_; 249 base::MessageLoop message_loop_;
276 content::TestBrowserThread ui_thread_; 250 content::TestBrowserThread ui_thread_;
277 content::TestBrowserThread file_thread_; 251 content::TestBrowserThread file_thread_;
278 252
279 base::ScopedTempDir temp_dir_; 253 base::ScopedTempDir temp_dir_;
280 scoped_ptr<util::MockProfile> profile_; 254 scoped_ptr<util::MockProfile> profile_;
281 scoped_ptr<SettingsFrontend> frontend_; 255 scoped_ptr<SettingsFrontend> frontend_;
282 scoped_refptr<util::ScopedSettingsStorageFactory> storage_factory_; 256 scoped_refptr<util::ScopedSettingsStorageFactory> storage_factory_;
283 scoped_ptr<MockSyncChangeProcessor> sync_processor_; 257 scoped_ptr<MockSyncChangeProcessor> sync_processor_;
284 scoped_ptr<SyncChangeProcessorDelegate> sync_processor_delegate_; 258 scoped_ptr<syncer::SyncChangeProcessorWrapperForTest> sync_processor_wrapper_;
285 }; 259 };
286 260
287 // Get a semblance of coverage for both EXTENSION_SETTINGS and APP_SETTINGS 261 // Get a semblance of coverage for both EXTENSION_SETTINGS and APP_SETTINGS
288 // sync by roughly alternative which one to test. 262 // sync by roughly alternative which one to test.
289 263
290 TEST_F(ExtensionSettingsSyncTest, NoDataDoesNotInvokeSync) { 264 TEST_F(ExtensionSettingsSyncTest, NoDataDoesNotInvokeSync) {
291 syncer::ModelType model_type = syncer::EXTENSION_SETTINGS; 265 syncer::ModelType model_type = syncer::EXTENSION_SETTINGS;
292 Manifest::Type type = Manifest::TYPE_EXTENSION; 266 Manifest::Type type = Manifest::TYPE_EXTENSION;
293 267
294 EXPECT_EQ(0u, GetAllSyncData(model_type).size()); 268 EXPECT_EQ(0u, GetAllSyncData(model_type).size());
295 269
296 // Have one extension created before sync is set up, the other created after. 270 // Have one extension created before sync is set up, the other created after.
297 AddExtensionAndGetStorage("s1", type); 271 AddExtensionAndGetStorage("s1", type);
298 EXPECT_EQ(0u, GetAllSyncData(model_type).size()); 272 EXPECT_EQ(0u, GetAllSyncData(model_type).size());
299 273
300 GetSyncableService(model_type)->MergeDataAndStartSyncing( 274 GetSyncableService(model_type)->MergeDataAndStartSyncing(
301 model_type, 275 model_type,
302 syncer::SyncDataList(), 276 syncer::SyncDataList(),
303 sync_processor_delegate_.PassAs<syncer::SyncChangeProcessor>(), 277 sync_processor_wrapper_.PassAs<syncer::SyncChangeProcessor>(),
304 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); 278 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock()));
305 279
306 AddExtensionAndGetStorage("s2", type); 280 AddExtensionAndGetStorage("s2", type);
307 EXPECT_EQ(0u, GetAllSyncData(model_type).size()); 281 EXPECT_EQ(0u, GetAllSyncData(model_type).size());
308 282
309 GetSyncableService(model_type)->StopSyncing(model_type); 283 GetSyncableService(model_type)->StopSyncing(model_type);
310 284
311 EXPECT_EQ(0u, sync_processor_->changes().size()); 285 EXPECT_EQ(0u, sync_processor_->changes().size());
312 EXPECT_EQ(0u, GetAllSyncData(model_type).size()); 286 EXPECT_EQ(0u, GetAllSyncData(model_type).size());
313 } 287 }
(...skipping 20 matching lines...) Expand all
334 EXPECT_EQ(1u, all_sync_data["s2"].size()); 308 EXPECT_EQ(1u, all_sync_data["s2"].size());
335 EXPECT_PRED_FORMAT2(ValuesEq, &value2, &all_sync_data["s2"][0].value()); 309 EXPECT_PRED_FORMAT2(ValuesEq, &value2, &all_sync_data["s2"][0].value());
336 310
337 syncer::SyncDataList sync_data; 311 syncer::SyncDataList sync_data;
338 sync_data.push_back(settings_sync_util::CreateData( 312 sync_data.push_back(settings_sync_util::CreateData(
339 "s1", "foo", value1, model_type)); 313 "s1", "foo", value1, model_type));
340 sync_data.push_back(settings_sync_util::CreateData( 314 sync_data.push_back(settings_sync_util::CreateData(
341 "s2", "bar", value2, model_type)); 315 "s2", "bar", value2, model_type));
342 316
343 GetSyncableService(model_type)->MergeDataAndStartSyncing( 317 GetSyncableService(model_type)->MergeDataAndStartSyncing(
344 model_type, sync_data, 318 model_type,
345 sync_processor_delegate_.PassAs<syncer::SyncChangeProcessor>(), 319 sync_data,
320 sync_processor_wrapper_.PassAs<syncer::SyncChangeProcessor>(),
346 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); 321 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock()));
347 322
348 // Already in sync, so no changes. 323 // Already in sync, so no changes.
349 EXPECT_EQ(0u, sync_processor_->changes().size()); 324 EXPECT_EQ(0u, sync_processor_->changes().size());
350 325
351 // Regression test: not-changing the synced value shouldn't result in a sync 326 // Regression test: not-changing the synced value shouldn't result in a sync
352 // change, and changing the synced value should result in an update. 327 // change, and changing the synced value should result in an update.
353 storage1->Set(DEFAULTS, "foo", value1); 328 storage1->Set(DEFAULTS, "foo", value1);
354 EXPECT_EQ(0u, sync_processor_->changes().size()); 329 EXPECT_EQ(0u, sync_processor_->changes().size());
355 330
(...skipping 16 matching lines...) Expand all
372 347
373 ValueStore* storage1 = AddExtensionAndGetStorage("s1", type); 348 ValueStore* storage1 = AddExtensionAndGetStorage("s1", type);
374 ValueStore* storage2 = AddExtensionAndGetStorage("s2", type); 349 ValueStore* storage2 = AddExtensionAndGetStorage("s2", type);
375 350
376 storage1->Set(DEFAULTS, "foo", value1); 351 storage1->Set(DEFAULTS, "foo", value1);
377 storage2->Set(DEFAULTS, "bar", value2); 352 storage2->Set(DEFAULTS, "bar", value2);
378 353
379 GetSyncableService(model_type)->MergeDataAndStartSyncing( 354 GetSyncableService(model_type)->MergeDataAndStartSyncing(
380 model_type, 355 model_type,
381 syncer::SyncDataList(), 356 syncer::SyncDataList(),
382 sync_processor_delegate_.PassAs<syncer::SyncChangeProcessor>(), 357 sync_processor_wrapper_.PassAs<syncer::SyncChangeProcessor>(),
383 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); 358 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock()));
384 359
385 // All settings should have been pushed to sync. 360 // All settings should have been pushed to sync.
386 EXPECT_EQ(2u, sync_processor_->changes().size()); 361 EXPECT_EQ(2u, sync_processor_->changes().size());
387 SettingSyncData change = sync_processor_->GetOnlyChange("s1", "foo"); 362 SettingSyncData change = sync_processor_->GetOnlyChange("s1", "foo");
388 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, change.change_type()); 363 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, change.change_type());
389 EXPECT_TRUE(value1.Equals(&change.value())); 364 EXPECT_TRUE(value1.Equals(&change.value()));
390 change = sync_processor_->GetOnlyChange("s2", "bar"); 365 change = sync_processor_->GetOnlyChange("s2", "bar");
391 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, change.change_type()); 366 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, change.change_type());
392 EXPECT_TRUE(value2.Equals(&change.value())); 367 EXPECT_TRUE(value2.Equals(&change.value()));
(...skipping 16 matching lines...) Expand all
409 // Pre-populate one of the storage areas. 384 // Pre-populate one of the storage areas.
410 ValueStore* storage1 = AddExtensionAndGetStorage("s1", type); 385 ValueStore* storage1 = AddExtensionAndGetStorage("s1", type);
411 storage1->Set(DEFAULTS, "overwriteMe", value1); 386 storage1->Set(DEFAULTS, "overwriteMe", value1);
412 387
413 syncer::SyncDataList sync_data; 388 syncer::SyncDataList sync_data;
414 sync_data.push_back(settings_sync_util::CreateData( 389 sync_data.push_back(settings_sync_util::CreateData(
415 "s1", "foo", value1, model_type)); 390 "s1", "foo", value1, model_type));
416 sync_data.push_back(settings_sync_util::CreateData( 391 sync_data.push_back(settings_sync_util::CreateData(
417 "s2", "bar", value2, model_type)); 392 "s2", "bar", value2, model_type));
418 GetSyncableService(model_type)->MergeDataAndStartSyncing( 393 GetSyncableService(model_type)->MergeDataAndStartSyncing(
419 model_type, sync_data, 394 model_type,
420 sync_processor_delegate_.PassAs<syncer::SyncChangeProcessor>(), 395 sync_data,
396 sync_processor_wrapper_.PassAs<syncer::SyncChangeProcessor>(),
421 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); 397 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock()));
422 expected1.Set("foo", value1.DeepCopy()); 398 expected1.Set("foo", value1.DeepCopy());
423 expected2.Set("bar", value2.DeepCopy()); 399 expected2.Set("bar", value2.DeepCopy());
424 400
425 ValueStore* storage2 = AddExtensionAndGetStorage("s2", type); 401 ValueStore* storage2 = AddExtensionAndGetStorage("s2", type);
426 402
427 // All changes should be local, so no sync changes. 403 // All changes should be local, so no sync changes.
428 EXPECT_EQ(0u, sync_processor_->changes().size()); 404 EXPECT_EQ(0u, sync_processor_->changes().size());
429 405
430 // Sync settings should have been pushed to local settings. 406 // Sync settings should have been pushed to local settings.
(...skipping 20 matching lines...) Expand all
451 ValueStore* storage2 = AddExtensionAndGetStorage("s2", type); 427 ValueStore* storage2 = AddExtensionAndGetStorage("s2", type);
452 428
453 storage1->Set(DEFAULTS, "foo", value1); 429 storage1->Set(DEFAULTS, "foo", value1);
454 expected1.Set("foo", value1.DeepCopy()); 430 expected1.Set("foo", value1.DeepCopy());
455 431
456 syncer::SyncDataList sync_data; 432 syncer::SyncDataList sync_data;
457 sync_data.push_back(settings_sync_util::CreateData( 433 sync_data.push_back(settings_sync_util::CreateData(
458 "s2", "bar", value2, model_type)); 434 "s2", "bar", value2, model_type));
459 435
460 GetSyncableService(model_type)->MergeDataAndStartSyncing( 436 GetSyncableService(model_type)->MergeDataAndStartSyncing(
461 model_type, sync_data, 437 model_type,
462 sync_processor_delegate_.PassAs<syncer::SyncChangeProcessor>(), 438 sync_data,
439 sync_processor_wrapper_.PassAs<syncer::SyncChangeProcessor>(),
463 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); 440 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock()));
464 expected2.Set("bar", value2.DeepCopy()); 441 expected2.Set("bar", value2.DeepCopy());
465 442
466 // Make sync add some settings. 443 // Make sync add some settings.
467 syncer::SyncChangeList change_list; 444 syncer::SyncChangeList change_list;
468 change_list.push_back(settings_sync_util::CreateAdd( 445 change_list.push_back(settings_sync_util::CreateAdd(
469 "s1", "bar", value2, model_type)); 446 "s1", "bar", value2, model_type));
470 change_list.push_back(settings_sync_util::CreateAdd( 447 change_list.push_back(settings_sync_util::CreateAdd(
471 "s2", "foo", value1, model_type)); 448 "s2", "foo", value1, model_type));
472 GetSyncableService(model_type)->ProcessSyncChanges(FROM_HERE, change_list); 449 GetSyncableService(model_type)->ProcessSyncChanges(FROM_HERE, change_list);
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
525 storage1->Set(DEFAULTS, "foo", value1); 502 storage1->Set(DEFAULTS, "foo", value1);
526 storage2->Set(DEFAULTS, "foo", value1); 503 storage2->Set(DEFAULTS, "foo", value1);
527 504
528 syncer::SyncDataList sync_data; 505 syncer::SyncDataList sync_data;
529 sync_data.push_back(settings_sync_util::CreateData( 506 sync_data.push_back(settings_sync_util::CreateData(
530 "s3", "bar", value2, model_type)); 507 "s3", "bar", value2, model_type));
531 sync_data.push_back(settings_sync_util::CreateData( 508 sync_data.push_back(settings_sync_util::CreateData(
532 "s4", "bar", value2, model_type)); 509 "s4", "bar", value2, model_type));
533 510
534 GetSyncableService(model_type)->MergeDataAndStartSyncing( 511 GetSyncableService(model_type)->MergeDataAndStartSyncing(
535 model_type, sync_data, 512 model_type,
536 sync_processor_delegate_.PassAs<syncer::SyncChangeProcessor>(), 513 sync_data,
514 sync_processor_wrapper_.PassAs<syncer::SyncChangeProcessor>(),
537 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); 515 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock()));
538 516
539 // Add something locally. 517 // Add something locally.
540 storage1->Set(DEFAULTS, "bar", value2); 518 storage1->Set(DEFAULTS, "bar", value2);
541 storage2->Set(DEFAULTS, "bar", value2); 519 storage2->Set(DEFAULTS, "bar", value2);
542 storage3->Set(DEFAULTS, "foo", value1); 520 storage3->Set(DEFAULTS, "foo", value1);
543 storage4->Set(DEFAULTS, "foo", value1); 521 storage4->Set(DEFAULTS, "foo", value1);
544 522
545 SettingSyncData change = sync_processor_->GetOnlyChange("s1", "bar"); 523 SettingSyncData change = sync_processor_->GetOnlyChange("s1", "bar");
546 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, change.change_type()); 524 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, change.change_type());
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
676 EXPECT_PRED_FORMAT2(ValuesEq, &value2, &app_sync_data["s2"][0].value()); 654 EXPECT_PRED_FORMAT2(ValuesEq, &value2, &app_sync_data["s2"][0].value());
677 655
678 // Stop each separately, there should be no changes either time. 656 // Stop each separately, there should be no changes either time.
679 syncer::SyncDataList sync_data; 657 syncer::SyncDataList sync_data;
680 sync_data.push_back(settings_sync_util::CreateData( 658 sync_data.push_back(settings_sync_util::CreateData(
681 "s1", "foo", value1, syncer::EXTENSION_SETTINGS)); 659 "s1", "foo", value1, syncer::EXTENSION_SETTINGS));
682 660
683 GetSyncableService(syncer::EXTENSION_SETTINGS)->MergeDataAndStartSyncing( 661 GetSyncableService(syncer::EXTENSION_SETTINGS)->MergeDataAndStartSyncing(
684 syncer::EXTENSION_SETTINGS, 662 syncer::EXTENSION_SETTINGS,
685 sync_data, 663 sync_data,
686 sync_processor_delegate_.PassAs<syncer::SyncChangeProcessor>(), 664 sync_processor_wrapper_.PassAs<syncer::SyncChangeProcessor>(),
687 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); 665 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock()));
688 GetSyncableService(syncer::EXTENSION_SETTINGS)-> 666 GetSyncableService(syncer::EXTENSION_SETTINGS)->
689 StopSyncing(syncer::EXTENSION_SETTINGS); 667 StopSyncing(syncer::EXTENSION_SETTINGS);
690 EXPECT_EQ(0u, sync_processor_->changes().size()); 668 EXPECT_EQ(0u, sync_processor_->changes().size());
691 669
692 sync_data.clear(); 670 sync_data.clear();
693 sync_data.push_back(settings_sync_util::CreateData( 671 sync_data.push_back(settings_sync_util::CreateData(
694 "s2", "bar", value2, syncer::APP_SETTINGS)); 672 "s2", "bar", value2, syncer::APP_SETTINGS));
695 673
696 scoped_ptr<SyncChangeProcessorDelegate> app_settings_delegate_( 674 scoped_ptr<syncer::SyncChangeProcessorWrapperForTest> app_settings_delegate_(
697 new SyncChangeProcessorDelegate(sync_processor_.get())); 675 new syncer::SyncChangeProcessorWrapperForTest(sync_processor_.get()));
698 GetSyncableService(syncer::APP_SETTINGS)->MergeDataAndStartSyncing( 676 GetSyncableService(syncer::APP_SETTINGS)->MergeDataAndStartSyncing(
699 syncer::APP_SETTINGS, 677 syncer::APP_SETTINGS,
700 sync_data, 678 sync_data,
701 app_settings_delegate_.PassAs<syncer::SyncChangeProcessor>(), 679 app_settings_delegate_.PassAs<syncer::SyncChangeProcessor>(),
702 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); 680 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock()));
703 GetSyncableService(syncer::APP_SETTINGS)-> 681 GetSyncableService(syncer::APP_SETTINGS)->
704 StopSyncing(syncer::APP_SETTINGS); 682 StopSyncing(syncer::APP_SETTINGS);
705 EXPECT_EQ(0u, sync_processor_->changes().size()); 683 EXPECT_EQ(0u, sync_processor_->changes().size());
706 } 684 }
707 685
(...skipping 17 matching lines...) Expand all
725 testing_factory->GetExisting("bad")->set_error_code(ValueStore::CORRUPTION); 703 testing_factory->GetExisting("bad")->set_error_code(ValueStore::CORRUPTION);
726 { 704 {
727 syncer::SyncDataList sync_data; 705 syncer::SyncDataList sync_data;
728 sync_data.push_back(settings_sync_util::CreateData( 706 sync_data.push_back(settings_sync_util::CreateData(
729 "good", "foo", fooValue, model_type)); 707 "good", "foo", fooValue, model_type));
730 sync_data.push_back(settings_sync_util::CreateData( 708 sync_data.push_back(settings_sync_util::CreateData(
731 "bad", "foo", fooValue, model_type)); 709 "bad", "foo", fooValue, model_type));
732 GetSyncableService(model_type)->MergeDataAndStartSyncing( 710 GetSyncableService(model_type)->MergeDataAndStartSyncing(
733 model_type, 711 model_type,
734 sync_data, 712 sync_data,
735 sync_processor_delegate_.PassAs<syncer::SyncChangeProcessor>(), 713 sync_processor_wrapper_.PassAs<syncer::SyncChangeProcessor>(),
736 scoped_ptr<syncer::SyncErrorFactory>( 714 scoped_ptr<syncer::SyncErrorFactory>(
737 new syncer::SyncErrorFactoryMock())); 715 new syncer::SyncErrorFactoryMock()));
738 } 716 }
739 testing_factory->GetExisting("bad")->set_error_code(ValueStore::OK); 717 testing_factory->GetExisting("bad")->set_error_code(ValueStore::OK);
740 718
741 { 719 {
742 base::DictionaryValue dict; 720 base::DictionaryValue dict;
743 dict.Set("foo", fooValue.DeepCopy()); 721 dict.Set("foo", fooValue.DeepCopy());
744 EXPECT_PRED_FORMAT2(SettingsEq, dict, good->Get()); 722 EXPECT_PRED_FORMAT2(SettingsEq, dict, good->Get());
745 } 723 }
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
839 } 817 }
840 { 818 {
841 base::DictionaryValue dict; 819 base::DictionaryValue dict;
842 dict.Set("bar", fooValue.DeepCopy()); 820 dict.Set("bar", fooValue.DeepCopy());
843 EXPECT_PRED_FORMAT2(SettingsEq, dict, bad->Get()); 821 EXPECT_PRED_FORMAT2(SettingsEq, dict, bad->Get());
844 } 822 }
845 823
846 // Restarting sync should make bad start syncing again. 824 // Restarting sync should make bad start syncing again.
847 sync_processor_->ClearChanges(); 825 sync_processor_->ClearChanges();
848 GetSyncableService(model_type)->StopSyncing(model_type); 826 GetSyncableService(model_type)->StopSyncing(model_type);
849 sync_processor_delegate_.reset(new SyncChangeProcessorDelegate( 827 sync_processor_wrapper_.reset(
850 sync_processor_.get())); 828 new syncer::SyncChangeProcessorWrapperForTest(sync_processor_.get()));
851 GetSyncableService(model_type)->MergeDataAndStartSyncing( 829 GetSyncableService(model_type)->MergeDataAndStartSyncing(
852 model_type, 830 model_type,
853 syncer::SyncDataList(), 831 syncer::SyncDataList(),
854 sync_processor_delegate_.PassAs<syncer::SyncChangeProcessor>(), 832 sync_processor_wrapper_.PassAs<syncer::SyncChangeProcessor>(),
855 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); 833 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock()));
856 834
857 // Local settings will have been pushed to sync, since it's empty (in this 835 // Local settings will have been pushed to sync, since it's empty (in this
858 // test; presumably it wouldn't be live, since we've been getting changes). 836 // test; presumably it wouldn't be live, since we've been getting changes).
859 EXPECT_EQ( 837 EXPECT_EQ(
860 syncer::SyncChange::ACTION_ADD, 838 syncer::SyncChange::ACTION_ADD,
861 sync_processor_->GetOnlyChange("good", "foo").change_type()); 839 sync_processor_->GetOnlyChange("good", "foo").change_type());
862 EXPECT_EQ( 840 EXPECT_EQ(
863 syncer::SyncChange::ACTION_ADD, 841 syncer::SyncChange::ACTION_ADD,
864 sync_processor_->GetOnlyChange("good", "bar").change_type()); 842 sync_processor_->GetOnlyChange("good", "bar").change_type());
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
921 // Unlike before, initially succeeding MergeDataAndStartSyncing. 899 // Unlike before, initially succeeding MergeDataAndStartSyncing.
922 { 900 {
923 syncer::SyncDataList sync_data; 901 syncer::SyncDataList sync_data;
924 sync_data.push_back(settings_sync_util::CreateData( 902 sync_data.push_back(settings_sync_util::CreateData(
925 "good", "foo", fooValue, model_type)); 903 "good", "foo", fooValue, model_type));
926 sync_data.push_back(settings_sync_util::CreateData( 904 sync_data.push_back(settings_sync_util::CreateData(
927 "bad", "foo", fooValue, model_type)); 905 "bad", "foo", fooValue, model_type));
928 GetSyncableService(model_type)->MergeDataAndStartSyncing( 906 GetSyncableService(model_type)->MergeDataAndStartSyncing(
929 model_type, 907 model_type,
930 sync_data, 908 sync_data,
931 sync_processor_delegate_.PassAs<syncer::SyncChangeProcessor>(), 909 sync_processor_wrapper_.PassAs<syncer::SyncChangeProcessor>(),
932 scoped_ptr<syncer::SyncErrorFactory>( 910 scoped_ptr<syncer::SyncErrorFactory>(
933 new syncer::SyncErrorFactoryMock())); 911 new syncer::SyncErrorFactoryMock()));
934 } 912 }
935 913
936 EXPECT_EQ(0u, sync_processor_->changes().size()); 914 EXPECT_EQ(0u, sync_processor_->changes().size());
937 915
938 { 916 {
939 base::DictionaryValue dict; 917 base::DictionaryValue dict;
940 dict.Set("foo", fooValue.DeepCopy()); 918 dict.Set("foo", fooValue.DeepCopy());
941 EXPECT_PRED_FORMAT2(SettingsEq, dict, good->Get()); 919 EXPECT_PRED_FORMAT2(SettingsEq, dict, good->Get());
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
1027 GetSyncableService(model_type)->GetAllSyncData(model_type); 1005 GetSyncableService(model_type)->GetAllSyncData(model_type);
1028 EXPECT_EQ(1u, all_sync_data.size()); 1006 EXPECT_EQ(1u, all_sync_data.size());
1029 EXPECT_EQ("good/foo", all_sync_data[0].GetTag()); 1007 EXPECT_EQ("good/foo", all_sync_data[0].GetTag());
1030 } 1008 }
1031 testing_factory->GetExisting("bad")->set_error_code(ValueStore::OK); 1009 testing_factory->GetExisting("bad")->set_error_code(ValueStore::OK);
1032 1010
1033 // Sync shouldn't be disabled for good (nor bad -- but this is unimportant). 1011 // Sync shouldn't be disabled for good (nor bad -- but this is unimportant).
1034 GetSyncableService(model_type)->MergeDataAndStartSyncing( 1012 GetSyncableService(model_type)->MergeDataAndStartSyncing(
1035 model_type, 1013 model_type,
1036 syncer::SyncDataList(), 1014 syncer::SyncDataList(),
1037 sync_processor_delegate_.PassAs<syncer::SyncChangeProcessor>(), 1015 sync_processor_wrapper_.PassAs<syncer::SyncChangeProcessor>(),
1038 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); 1016 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock()));
1039 1017
1040 EXPECT_EQ( 1018 EXPECT_EQ(
1041 syncer::SyncChange::ACTION_ADD, 1019 syncer::SyncChange::ACTION_ADD,
1042 sync_processor_->GetOnlyChange("good", "foo").change_type()); 1020 sync_processor_->GetOnlyChange("good", "foo").change_type());
1043 EXPECT_EQ( 1021 EXPECT_EQ(
1044 syncer::SyncChange::ACTION_ADD, 1022 syncer::SyncChange::ACTION_ADD,
1045 sync_processor_->GetOnlyChange("bad", "foo").change_type()); 1023 sync_processor_->GetOnlyChange("bad", "foo").change_type());
1046 EXPECT_EQ(2u, sync_processor_->changes().size()); 1024 EXPECT_EQ(2u, sync_processor_->changes().size());
1047 1025
(...skipping 25 matching lines...) Expand all
1073 1051
1074 good->Set(DEFAULTS, "foo", fooValue); 1052 good->Set(DEFAULTS, "foo", fooValue);
1075 bad->Set(DEFAULTS, "foo", fooValue); 1053 bad->Set(DEFAULTS, "foo", fooValue);
1076 1054
1077 // 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
1078 // get them so won't. 1056 // get them so won't.
1079 testing_factory->GetExisting("bad")->set_error_code(ValueStore::CORRUPTION); 1057 testing_factory->GetExisting("bad")->set_error_code(ValueStore::CORRUPTION);
1080 GetSyncableService(model_type)->MergeDataAndStartSyncing( 1058 GetSyncableService(model_type)->MergeDataAndStartSyncing(
1081 model_type, 1059 model_type,
1082 syncer::SyncDataList(), 1060 syncer::SyncDataList(),
1083 sync_processor_delegate_.PassAs<syncer::SyncChangeProcessor>(), 1061 sync_processor_wrapper_.PassAs<syncer::SyncChangeProcessor>(),
1084 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); 1062 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock()));
1085 testing_factory->GetExisting("bad")->set_error_code(ValueStore::OK); 1063 testing_factory->GetExisting("bad")->set_error_code(ValueStore::OK);
1086 1064
1087 EXPECT_EQ( 1065 EXPECT_EQ(
1088 syncer::SyncChange::ACTION_ADD, 1066 syncer::SyncChange::ACTION_ADD,
1089 sync_processor_->GetOnlyChange("good", "foo").change_type()); 1067 sync_processor_->GetOnlyChange("good", "foo").change_type());
1090 EXPECT_EQ(1u, sync_processor_->changes().size()); 1068 EXPECT_EQ(1u, sync_processor_->changes().size());
1091 1069
1092 // bad should now be disabled for sync. 1070 // bad should now be disabled for sync.
1093 sync_processor_->ClearChanges(); 1071 sync_processor_->ClearChanges();
(...skipping 26 matching lines...) Expand all
1120 base::DictionaryValue dict; 1098 base::DictionaryValue dict;
1121 dict.Set("foo", fooValue.DeepCopy()); 1099 dict.Set("foo", fooValue.DeepCopy());
1122 dict.Set("bar", barValue.DeepCopy()); 1100 dict.Set("bar", barValue.DeepCopy());
1123 EXPECT_PRED_FORMAT2(SettingsEq, dict, bad->Get()); 1101 EXPECT_PRED_FORMAT2(SettingsEq, dict, bad->Get());
1124 } 1102 }
1125 1103
1126 // Re-enabling sync without failing should cause the local changes from bad 1104 // Re-enabling sync without failing should cause the local changes from bad
1127 // to be pushed to sync successfully, as should future changes to bad. 1105 // to be pushed to sync successfully, as should future changes to bad.
1128 sync_processor_->ClearChanges(); 1106 sync_processor_->ClearChanges();
1129 GetSyncableService(model_type)->StopSyncing(model_type); 1107 GetSyncableService(model_type)->StopSyncing(model_type);
1130 sync_processor_delegate_.reset(new SyncChangeProcessorDelegate( 1108 sync_processor_wrapper_.reset(
1131 sync_processor_.get())); 1109 new syncer::SyncChangeProcessorWrapperForTest(sync_processor_.get()));
1132 GetSyncableService(model_type)->MergeDataAndStartSyncing( 1110 GetSyncableService(model_type)->MergeDataAndStartSyncing(
1133 model_type, 1111 model_type,
1134 syncer::SyncDataList(), 1112 syncer::SyncDataList(),
1135 sync_processor_delegate_.PassAs<syncer::SyncChangeProcessor>(), 1113 sync_processor_wrapper_.PassAs<syncer::SyncChangeProcessor>(),
1136 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); 1114 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock()));
1137 1115
1138 EXPECT_EQ( 1116 EXPECT_EQ(
1139 syncer::SyncChange::ACTION_ADD, 1117 syncer::SyncChange::ACTION_ADD,
1140 sync_processor_->GetOnlyChange("good", "foo").change_type()); 1118 sync_processor_->GetOnlyChange("good", "foo").change_type());
1141 EXPECT_EQ( 1119 EXPECT_EQ(
1142 syncer::SyncChange::ACTION_ADD, 1120 syncer::SyncChange::ACTION_ADD,
1143 sync_processor_->GetOnlyChange("good", "bar").change_type()); 1121 sync_processor_->GetOnlyChange("good", "bar").change_type());
1144 EXPECT_EQ( 1122 EXPECT_EQ(
1145 syncer::SyncChange::ACTION_ADD, 1123 syncer::SyncChange::ACTION_ADD,
(...skipping 29 matching lines...) Expand all
1175 ValueStore* good = AddExtensionAndGetStorage("good", type); 1153 ValueStore* good = AddExtensionAndGetStorage("good", type);
1176 ValueStore* bad = AddExtensionAndGetStorage("bad", type); 1154 ValueStore* bad = AddExtensionAndGetStorage("bad", type);
1177 1155
1178 // Only set bad; setting good will cause it to fail below. 1156 // Only set bad; setting good will cause it to fail below.
1179 bad->Set(DEFAULTS, "foo", fooValue); 1157 bad->Set(DEFAULTS, "foo", fooValue);
1180 1158
1181 sync_processor_->set_fail_all_requests(true); 1159 sync_processor_->set_fail_all_requests(true);
1182 GetSyncableService(model_type)->MergeDataAndStartSyncing( 1160 GetSyncableService(model_type)->MergeDataAndStartSyncing(
1183 model_type, 1161 model_type,
1184 syncer::SyncDataList(), 1162 syncer::SyncDataList(),
1185 sync_processor_delegate_.PassAs<syncer::SyncChangeProcessor>(), 1163 sync_processor_wrapper_.PassAs<syncer::SyncChangeProcessor>(),
1186 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); 1164 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock()));
1187 sync_processor_->set_fail_all_requests(false); 1165 sync_processor_->set_fail_all_requests(false);
1188 1166
1189 // Changes from good will be send to sync, changes from bad won't. 1167 // Changes from good will be send to sync, changes from bad won't.
1190 sync_processor_->ClearChanges(); 1168 sync_processor_->ClearChanges();
1191 good->Set(DEFAULTS, "foo", barValue); 1169 good->Set(DEFAULTS, "foo", barValue);
1192 bad->Set(DEFAULTS, "foo", barValue); 1170 bad->Set(DEFAULTS, "foo", barValue);
1193 1171
1194 EXPECT_EQ( 1172 EXPECT_EQ(
1195 syncer::SyncChange::ACTION_ADD, 1173 syncer::SyncChange::ACTION_ADD,
(...skipping 18 matching lines...) Expand all
1214 } 1192 }
1215 { 1193 {
1216 base::DictionaryValue dict; 1194 base::DictionaryValue dict;
1217 dict.Set("foo", barValue.DeepCopy()); 1195 dict.Set("foo", barValue.DeepCopy());
1218 EXPECT_PRED_FORMAT2(SettingsEq, dict, bad->Get()); 1196 EXPECT_PRED_FORMAT2(SettingsEq, dict, bad->Get());
1219 } 1197 }
1220 1198
1221 // Restarting sync makes everything work again. 1199 // Restarting sync makes everything work again.
1222 sync_processor_->ClearChanges(); 1200 sync_processor_->ClearChanges();
1223 GetSyncableService(model_type)->StopSyncing(model_type); 1201 GetSyncableService(model_type)->StopSyncing(model_type);
1224 sync_processor_delegate_.reset(new SyncChangeProcessorDelegate( 1202 sync_processor_wrapper_.reset(
1225 sync_processor_.get())); 1203 new syncer::SyncChangeProcessorWrapperForTest(sync_processor_.get()));
1226 GetSyncableService(model_type)->MergeDataAndStartSyncing( 1204 GetSyncableService(model_type)->MergeDataAndStartSyncing(
1227 model_type, 1205 model_type,
1228 syncer::SyncDataList(), 1206 syncer::SyncDataList(),
1229 sync_processor_delegate_.PassAs<syncer::SyncChangeProcessor>(), 1207 sync_processor_wrapper_.PassAs<syncer::SyncChangeProcessor>(),
1230 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); 1208 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock()));
1231 1209
1232 EXPECT_EQ( 1210 EXPECT_EQ(
1233 syncer::SyncChange::ACTION_ADD, 1211 syncer::SyncChange::ACTION_ADD,
1234 sync_processor_->GetOnlyChange("good", "foo").change_type()); 1212 sync_processor_->GetOnlyChange("good", "foo").change_type());
1235 EXPECT_EQ( 1213 EXPECT_EQ(
1236 syncer::SyncChange::ACTION_ADD, 1214 syncer::SyncChange::ACTION_ADD,
1237 sync_processor_->GetOnlyChange("good", "bar").change_type()); 1215 sync_processor_->GetOnlyChange("good", "bar").change_type());
1238 EXPECT_EQ( 1216 EXPECT_EQ(
1239 syncer::SyncChange::ACTION_ADD, 1217 syncer::SyncChange::ACTION_ADD,
(...skipping 22 matching lines...) Expand all
1262 1240
1263 TestingValueStoreFactory* testing_factory = new TestingValueStoreFactory(); 1241 TestingValueStoreFactory* testing_factory = new TestingValueStoreFactory();
1264 storage_factory_->Reset(testing_factory); 1242 storage_factory_->Reset(testing_factory);
1265 1243
1266 ValueStore* good = AddExtensionAndGetStorage("good", type); 1244 ValueStore* good = AddExtensionAndGetStorage("good", type);
1267 ValueStore* bad = AddExtensionAndGetStorage("bad", type); 1245 ValueStore* bad = AddExtensionAndGetStorage("bad", type);
1268 1246
1269 GetSyncableService(model_type)->MergeDataAndStartSyncing( 1247 GetSyncableService(model_type)->MergeDataAndStartSyncing(
1270 model_type, 1248 model_type,
1271 syncer::SyncDataList(), 1249 syncer::SyncDataList(),
1272 sync_processor_delegate_.PassAs<syncer::SyncChangeProcessor>(), 1250 sync_processor_wrapper_.PassAs<syncer::SyncChangeProcessor>(),
1273 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); 1251 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock()));
1274 1252
1275 // bad will fail to send changes. 1253 // bad will fail to send changes.
1276 good->Set(DEFAULTS, "foo", fooValue); 1254 good->Set(DEFAULTS, "foo", fooValue);
1277 sync_processor_->set_fail_all_requests(true); 1255 sync_processor_->set_fail_all_requests(true);
1278 bad->Set(DEFAULTS, "foo", fooValue); 1256 bad->Set(DEFAULTS, "foo", fooValue);
1279 sync_processor_->set_fail_all_requests(false); 1257 sync_processor_->set_fail_all_requests(false);
1280 1258
1281 EXPECT_EQ( 1259 EXPECT_EQ(
1282 syncer::SyncChange::ACTION_ADD, 1260 syncer::SyncChange::ACTION_ADD,
(...skipping 28 matching lines...) Expand all
1311 } 1289 }
1312 { 1290 {
1313 base::DictionaryValue dict; 1291 base::DictionaryValue dict;
1314 dict.Set("foo", barValue.DeepCopy()); 1292 dict.Set("foo", barValue.DeepCopy());
1315 EXPECT_PRED_FORMAT2(SettingsEq, dict, bad->Get()); 1293 EXPECT_PRED_FORMAT2(SettingsEq, dict, bad->Get());
1316 } 1294 }
1317 1295
1318 // Restarting sync makes everything work again. 1296 // Restarting sync makes everything work again.
1319 sync_processor_->ClearChanges(); 1297 sync_processor_->ClearChanges();
1320 GetSyncableService(model_type)->StopSyncing(model_type); 1298 GetSyncableService(model_type)->StopSyncing(model_type);
1321 sync_processor_delegate_.reset(new SyncChangeProcessorDelegate( 1299 sync_processor_wrapper_.reset(
1322 sync_processor_.get())); 1300 new syncer::SyncChangeProcessorWrapperForTest(sync_processor_.get()));
1323 GetSyncableService(model_type)->MergeDataAndStartSyncing( 1301 GetSyncableService(model_type)->MergeDataAndStartSyncing(
1324 model_type, 1302 model_type,
1325 syncer::SyncDataList(), 1303 syncer::SyncDataList(),
1326 sync_processor_delegate_.PassAs<syncer::SyncChangeProcessor>(), 1304 sync_processor_wrapper_.PassAs<syncer::SyncChangeProcessor>(),
1327 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); 1305 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock()));
1328 1306
1329 EXPECT_EQ( 1307 EXPECT_EQ(
1330 syncer::SyncChange::ACTION_ADD, 1308 syncer::SyncChange::ACTION_ADD,
1331 sync_processor_->GetOnlyChange("good", "foo").change_type()); 1309 sync_processor_->GetOnlyChange("good", "foo").change_type());
1332 EXPECT_EQ( 1310 EXPECT_EQ(
1333 syncer::SyncChange::ACTION_ADD, 1311 syncer::SyncChange::ACTION_ADD,
1334 sync_processor_->GetOnlyChange("good", "bar").change_type()); 1312 sync_processor_->GetOnlyChange("good", "bar").change_type());
1335 EXPECT_EQ( 1313 EXPECT_EQ(
1336 syncer::SyncChange::ACTION_ADD, 1314 syncer::SyncChange::ACTION_ADD,
(...skipping 21 matching lines...) Expand all
1358 // This value should be larger than the limit in settings_backend.cc. 1336 // This value should be larger than the limit in settings_backend.cc.
1359 std::string string_5k; 1337 std::string string_5k;
1360 for (size_t i = 0; i < 5000; ++i) { 1338 for (size_t i = 0; i < 5000; ++i) {
1361 string_5k.append("a"); 1339 string_5k.append("a");
1362 } 1340 }
1363 base::StringValue large_value(string_5k); 1341 base::StringValue large_value(string_5k);
1364 1342
1365 GetSyncableService(model_type)->MergeDataAndStartSyncing( 1343 GetSyncableService(model_type)->MergeDataAndStartSyncing(
1366 model_type, 1344 model_type,
1367 syncer::SyncDataList(), 1345 syncer::SyncDataList(),
1368 sync_processor_delegate_.PassAs<syncer::SyncChangeProcessor>(), 1346 sync_processor_wrapper_.PassAs<syncer::SyncChangeProcessor>(),
1369 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); 1347 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock()));
1370 1348
1371 // Large local change rejected and doesn't get sent out. 1349 // Large local change rejected and doesn't get sent out.
1372 ValueStore* storage1 = AddExtensionAndGetStorage("s1", type); 1350 ValueStore* storage1 = AddExtensionAndGetStorage("s1", type);
1373 EXPECT_TRUE(storage1->Set(DEFAULTS, "large_value", large_value)->HasError()); 1351 EXPECT_TRUE(storage1->Set(DEFAULTS, "large_value", large_value)->HasError());
1374 EXPECT_EQ(0u, sync_processor_->changes().size()); 1352 EXPECT_EQ(0u, sync_processor_->changes().size());
1375 1353
1376 // Large incoming change should still get accepted. 1354 // Large incoming change should still get accepted.
1377 ValueStore* storage2 = AddExtensionAndGetStorage("s2", type); 1355 ValueStore* storage2 = AddExtensionAndGetStorage("s2", type);
1378 { 1356 {
(...skipping 22 matching lines...) Expand all
1401 1379
1402 { 1380 {
1403 syncer::SyncDataList sync_data_list; 1381 syncer::SyncDataList sync_data_list;
1404 scoped_ptr<base::Value> string_value(new base::StringValue("value")); 1382 scoped_ptr<base::Value> string_value(new base::StringValue("value"));
1405 sync_data_list.push_back(settings_sync_util::CreateData( 1383 sync_data_list.push_back(settings_sync_util::CreateData(
1406 "ext", "key.with.dot", *string_value, model_type)); 1384 "ext", "key.with.dot", *string_value, model_type));
1407 1385
1408 GetSyncableService(model_type)->MergeDataAndStartSyncing( 1386 GetSyncableService(model_type)->MergeDataAndStartSyncing(
1409 model_type, 1387 model_type,
1410 sync_data_list, 1388 sync_data_list,
1411 sync_processor_delegate_.PassAs<syncer::SyncChangeProcessor>(), 1389 sync_processor_wrapper_.PassAs<syncer::SyncChangeProcessor>(),
1412 scoped_ptr<syncer::SyncErrorFactory>( 1390 scoped_ptr<syncer::SyncErrorFactory>(
1413 new syncer::SyncErrorFactoryMock())); 1391 new syncer::SyncErrorFactoryMock()));
1414 } 1392 }
1415 1393
1416 // Test dots in keys that come from sync. 1394 // Test dots in keys that come from sync.
1417 { 1395 {
1418 ValueStore::ReadResult data = storage->Get(); 1396 ValueStore::ReadResult data = storage->Get();
1419 ASSERT_FALSE(data->HasError()); 1397 ASSERT_FALSE(data->HasError());
1420 1398
1421 base::DictionaryValue expected_data; 1399 base::DictionaryValue expected_data;
(...skipping 11 matching lines...) Expand all
1433 ASSERT_EQ(1u, sync_processor_->changes().size()); 1411 ASSERT_EQ(1u, sync_processor_->changes().size());
1434 SettingSyncData sync_data = sync_processor_->changes()[0]; 1412 SettingSyncData sync_data = sync_processor_->changes()[0];
1435 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, sync_data.change_type()); 1413 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, sync_data.change_type());
1436 EXPECT_EQ("ext", sync_data.extension_id()); 1414 EXPECT_EQ("ext", sync_data.extension_id());
1437 EXPECT_EQ("key.with.spot", sync_data.key()); 1415 EXPECT_EQ("key.with.spot", sync_data.key());
1438 EXPECT_TRUE(sync_data.value().Equals(string_value.get())); 1416 EXPECT_TRUE(sync_data.value().Equals(string_value.get()));
1439 } 1417 }
1440 } 1418 }
1441 1419
1442 } // namespace extensions 1420 } // namespace extensions
OLDNEW
« no previous file with comments | « chrome/browser/extensions/api/storage/settings_apitest.cc ('k') | chrome/browser/extensions/extension_service_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698