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 "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" |
(...skipping 289 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
300 EXPECT_EQ(0u, sync_processor_->changes().size()); | 300 EXPECT_EQ(0u, sync_processor_->changes().size()); |
301 EXPECT_EQ(0u, GetAllSyncData(model_type).size()); | 301 EXPECT_EQ(0u, GetAllSyncData(model_type).size()); |
302 } | 302 } |
303 | 303 |
304 TEST_F(ExtensionSettingsSyncTest, InSyncDataDoesNotInvokeSync) { | 304 TEST_F(ExtensionSettingsSyncTest, InSyncDataDoesNotInvokeSync) { |
305 syncer::ModelType model_type = syncer::APP_SETTINGS; | 305 syncer::ModelType model_type = syncer::APP_SETTINGS; |
306 Manifest::Type type = Manifest::TYPE_LEGACY_PACKAGED_APP; | 306 Manifest::Type type = Manifest::TYPE_LEGACY_PACKAGED_APP; |
307 | 307 |
308 StringValue value1("fooValue"); | 308 StringValue value1("fooValue"); |
309 ListValue value2; | 309 ListValue value2; |
310 value2.Append(StringValue::CreateStringValue("barValue")); | 310 value2.Append(new base::StringValue("barValue")); |
311 | 311 |
312 ValueStore* storage1 = AddExtensionAndGetStorage("s1", type); | 312 ValueStore* storage1 = AddExtensionAndGetStorage("s1", type); |
313 ValueStore* storage2 = AddExtensionAndGetStorage("s2", type); | 313 ValueStore* storage2 = AddExtensionAndGetStorage("s2", type); |
314 | 314 |
315 storage1->Set(DEFAULTS, "foo", value1); | 315 storage1->Set(DEFAULTS, "foo", value1); |
316 storage2->Set(DEFAULTS, "bar", value2); | 316 storage2->Set(DEFAULTS, "bar", value2); |
317 | 317 |
318 std::map<std::string, SettingSyncDataList> all_sync_data = | 318 std::map<std::string, SettingSyncDataList> all_sync_data = |
319 GetAllSyncData(model_type); | 319 GetAllSyncData(model_type); |
320 EXPECT_EQ(2u, all_sync_data.size()); | 320 EXPECT_EQ(2u, all_sync_data.size()); |
(...skipping 29 matching lines...) Expand all Loading... |
350 | 350 |
351 GetSyncableService(model_type)->StopSyncing(model_type); | 351 GetSyncableService(model_type)->StopSyncing(model_type); |
352 } | 352 } |
353 | 353 |
354 TEST_F(ExtensionSettingsSyncTest, LocalDataWithNoSyncDataIsPushedToSync) { | 354 TEST_F(ExtensionSettingsSyncTest, LocalDataWithNoSyncDataIsPushedToSync) { |
355 syncer::ModelType model_type = syncer::EXTENSION_SETTINGS; | 355 syncer::ModelType model_type = syncer::EXTENSION_SETTINGS; |
356 Manifest::Type type = Manifest::TYPE_EXTENSION; | 356 Manifest::Type type = Manifest::TYPE_EXTENSION; |
357 | 357 |
358 StringValue value1("fooValue"); | 358 StringValue value1("fooValue"); |
359 ListValue value2; | 359 ListValue value2; |
360 value2.Append(StringValue::CreateStringValue("barValue")); | 360 value2.Append(new base::StringValue("barValue")); |
361 | 361 |
362 ValueStore* storage1 = AddExtensionAndGetStorage("s1", type); | 362 ValueStore* storage1 = AddExtensionAndGetStorage("s1", type); |
363 ValueStore* storage2 = AddExtensionAndGetStorage("s2", type); | 363 ValueStore* storage2 = AddExtensionAndGetStorage("s2", type); |
364 | 364 |
365 storage1->Set(DEFAULTS, "foo", value1); | 365 storage1->Set(DEFAULTS, "foo", value1); |
366 storage2->Set(DEFAULTS, "bar", value2); | 366 storage2->Set(DEFAULTS, "bar", value2); |
367 | 367 |
368 GetSyncableService(model_type)->MergeDataAndStartSyncing( | 368 GetSyncableService(model_type)->MergeDataAndStartSyncing( |
369 model_type, | 369 model_type, |
370 syncer::SyncDataList(), | 370 syncer::SyncDataList(), |
(...skipping 11 matching lines...) Expand all Loading... |
382 | 382 |
383 GetSyncableService(model_type)->StopSyncing(model_type); | 383 GetSyncableService(model_type)->StopSyncing(model_type); |
384 } | 384 } |
385 | 385 |
386 TEST_F(ExtensionSettingsSyncTest, AnySyncDataOverwritesLocalData) { | 386 TEST_F(ExtensionSettingsSyncTest, AnySyncDataOverwritesLocalData) { |
387 syncer::ModelType model_type = syncer::APP_SETTINGS; | 387 syncer::ModelType model_type = syncer::APP_SETTINGS; |
388 Manifest::Type type = Manifest::TYPE_LEGACY_PACKAGED_APP; | 388 Manifest::Type type = Manifest::TYPE_LEGACY_PACKAGED_APP; |
389 | 389 |
390 StringValue value1("fooValue"); | 390 StringValue value1("fooValue"); |
391 ListValue value2; | 391 ListValue value2; |
392 value2.Append(StringValue::CreateStringValue("barValue")); | 392 value2.Append(new base::StringValue("barValue")); |
393 | 393 |
394 // Maintain dictionaries mirrored to the expected values of the settings in | 394 // Maintain dictionaries mirrored to the expected values of the settings in |
395 // each storage area. | 395 // each storage area. |
396 DictionaryValue expected1, expected2; | 396 DictionaryValue expected1, expected2; |
397 | 397 |
398 // Pre-populate one of the storage areas. | 398 // Pre-populate one of the storage areas. |
399 ValueStore* storage1 = AddExtensionAndGetStorage("s1", type); | 399 ValueStore* storage1 = AddExtensionAndGetStorage("s1", type); |
400 storage1->Set(DEFAULTS, "overwriteMe", value1); | 400 storage1->Set(DEFAULTS, "overwriteMe", value1); |
401 | 401 |
402 syncer::SyncDataList sync_data; | 402 syncer::SyncDataList sync_data; |
(...skipping 19 matching lines...) Expand all Loading... |
422 | 422 |
423 GetSyncableService(model_type)->StopSyncing(model_type); | 423 GetSyncableService(model_type)->StopSyncing(model_type); |
424 } | 424 } |
425 | 425 |
426 TEST_F(ExtensionSettingsSyncTest, ProcessSyncChanges) { | 426 TEST_F(ExtensionSettingsSyncTest, ProcessSyncChanges) { |
427 syncer::ModelType model_type = syncer::EXTENSION_SETTINGS; | 427 syncer::ModelType model_type = syncer::EXTENSION_SETTINGS; |
428 Manifest::Type type = Manifest::TYPE_EXTENSION; | 428 Manifest::Type type = Manifest::TYPE_EXTENSION; |
429 | 429 |
430 StringValue value1("fooValue"); | 430 StringValue value1("fooValue"); |
431 ListValue value2; | 431 ListValue value2; |
432 value2.Append(StringValue::CreateStringValue("barValue")); | 432 value2.Append(new base::StringValue("barValue")); |
433 | 433 |
434 // Maintain dictionaries mirrored to the expected values of the settings in | 434 // Maintain dictionaries mirrored to the expected values of the settings in |
435 // each storage area. | 435 // each storage area. |
436 DictionaryValue expected1, expected2; | 436 DictionaryValue expected1, expected2; |
437 | 437 |
438 // Make storage1 initialised from local data, storage2 initialised from sync. | 438 // Make storage1 initialised from local data, storage2 initialised from sync. |
439 ValueStore* storage1 = AddExtensionAndGetStorage("s1", type); | 439 ValueStore* storage1 = AddExtensionAndGetStorage("s1", type); |
440 ValueStore* storage2 = AddExtensionAndGetStorage("s2", type); | 440 ValueStore* storage2 = AddExtensionAndGetStorage("s2", type); |
441 | 441 |
442 storage1->Set(DEFAULTS, "foo", value1); | 442 storage1->Set(DEFAULTS, "foo", value1); |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
495 | 495 |
496 GetSyncableService(model_type)->StopSyncing(model_type); | 496 GetSyncableService(model_type)->StopSyncing(model_type); |
497 } | 497 } |
498 | 498 |
499 TEST_F(ExtensionSettingsSyncTest, PushToSync) { | 499 TEST_F(ExtensionSettingsSyncTest, PushToSync) { |
500 syncer::ModelType model_type = syncer::APP_SETTINGS; | 500 syncer::ModelType model_type = syncer::APP_SETTINGS; |
501 Manifest::Type type = Manifest::TYPE_LEGACY_PACKAGED_APP; | 501 Manifest::Type type = Manifest::TYPE_LEGACY_PACKAGED_APP; |
502 | 502 |
503 StringValue value1("fooValue"); | 503 StringValue value1("fooValue"); |
504 ListValue value2; | 504 ListValue value2; |
505 value2.Append(StringValue::CreateStringValue("barValue")); | 505 value2.Append(new base::StringValue("barValue")); |
506 | 506 |
507 // Make storage1/2 initialised from local data, storage3/4 initialised from | 507 // Make storage1/2 initialised from local data, storage3/4 initialised from |
508 // sync. | 508 // sync. |
509 ValueStore* storage1 = AddExtensionAndGetStorage("s1", type); | 509 ValueStore* storage1 = AddExtensionAndGetStorage("s1", type); |
510 ValueStore* storage2 = AddExtensionAndGetStorage("s2", type); | 510 ValueStore* storage2 = AddExtensionAndGetStorage("s2", type); |
511 ValueStore* storage3 = AddExtensionAndGetStorage("s3", type); | 511 ValueStore* storage3 = AddExtensionAndGetStorage("s3", type); |
512 ValueStore* storage4 = AddExtensionAndGetStorage("s4", type); | 512 ValueStore* storage4 = AddExtensionAndGetStorage("s4", type); |
513 | 513 |
514 storage1->Set(DEFAULTS, "foo", value1); | 514 storage1->Set(DEFAULTS, "foo", value1); |
515 storage2->Set(DEFAULTS, "foo", value1); | 515 storage2->Set(DEFAULTS, "foo", value1); |
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
634 EXPECT_EQ( | 634 EXPECT_EQ( |
635 syncer::SyncChange::ACTION_DELETE, | 635 syncer::SyncChange::ACTION_DELETE, |
636 sync_processor_->GetOnlyChange("s4", "bar").change_type()); | 636 sync_processor_->GetOnlyChange("s4", "bar").change_type()); |
637 | 637 |
638 GetSyncableService(model_type)->StopSyncing(model_type); | 638 GetSyncableService(model_type)->StopSyncing(model_type); |
639 } | 639 } |
640 | 640 |
641 TEST_F(ExtensionSettingsSyncTest, ExtensionAndAppSettingsSyncSeparately) { | 641 TEST_F(ExtensionSettingsSyncTest, ExtensionAndAppSettingsSyncSeparately) { |
642 StringValue value1("fooValue"); | 642 StringValue value1("fooValue"); |
643 ListValue value2; | 643 ListValue value2; |
644 value2.Append(StringValue::CreateStringValue("barValue")); | 644 value2.Append(new base::StringValue("barValue")); |
645 | 645 |
646 // storage1 is an extension, storage2 is an app. | 646 // storage1 is an extension, storage2 is an app. |
647 ValueStore* storage1 = AddExtensionAndGetStorage( | 647 ValueStore* storage1 = AddExtensionAndGetStorage( |
648 "s1", Manifest::TYPE_EXTENSION); | 648 "s1", Manifest::TYPE_EXTENSION); |
649 ValueStore* storage2 = AddExtensionAndGetStorage( | 649 ValueStore* storage2 = AddExtensionAndGetStorage( |
650 "s2", Manifest::TYPE_LEGACY_PACKAGED_APP); | 650 "s2", Manifest::TYPE_LEGACY_PACKAGED_APP); |
651 | 651 |
652 storage1->Set(DEFAULTS, "foo", value1); | 652 storage1->Set(DEFAULTS, "foo", value1); |
653 storage2->Set(DEFAULTS, "bar", value2); | 653 storage2->Set(DEFAULTS, "bar", value2); |
654 | 654 |
(...skipping 728 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1383 } | 1383 } |
1384 | 1384 |
1385 TEST_F(ExtensionSettingsSyncTest, Dots) { | 1385 TEST_F(ExtensionSettingsSyncTest, Dots) { |
1386 syncer::ModelType model_type = syncer::EXTENSION_SETTINGS; | 1386 syncer::ModelType model_type = syncer::EXTENSION_SETTINGS; |
1387 Manifest::Type type = Manifest::TYPE_EXTENSION; | 1387 Manifest::Type type = Manifest::TYPE_EXTENSION; |
1388 | 1388 |
1389 ValueStore* storage = AddExtensionAndGetStorage("ext", type); | 1389 ValueStore* storage = AddExtensionAndGetStorage("ext", type); |
1390 | 1390 |
1391 { | 1391 { |
1392 syncer::SyncDataList sync_data_list; | 1392 syncer::SyncDataList sync_data_list; |
1393 scoped_ptr<Value> string_value(Value::CreateStringValue("value")); | 1393 scoped_ptr<Value> string_value(new base::StringValue("value")); |
1394 sync_data_list.push_back(settings_sync_util::CreateData( | 1394 sync_data_list.push_back(settings_sync_util::CreateData( |
1395 "ext", "key.with.dot", *string_value, model_type)); | 1395 "ext", "key.with.dot", *string_value, model_type)); |
1396 | 1396 |
1397 GetSyncableService(model_type)->MergeDataAndStartSyncing( | 1397 GetSyncableService(model_type)->MergeDataAndStartSyncing( |
1398 model_type, | 1398 model_type, |
1399 sync_data_list, | 1399 sync_data_list, |
1400 sync_processor_delegate_.PassAs<syncer::SyncChangeProcessor>(), | 1400 sync_processor_delegate_.PassAs<syncer::SyncChangeProcessor>(), |
1401 scoped_ptr<syncer::SyncErrorFactory>( | 1401 scoped_ptr<syncer::SyncErrorFactory>( |
1402 new syncer::SyncErrorFactoryMock())); | 1402 new syncer::SyncErrorFactoryMock())); |
1403 } | 1403 } |
1404 | 1404 |
1405 // Test dots in keys that come from sync. | 1405 // Test dots in keys that come from sync. |
1406 { | 1406 { |
1407 ValueStore::ReadResult data = storage->Get(); | 1407 ValueStore::ReadResult data = storage->Get(); |
1408 ASSERT_FALSE(data->HasError()); | 1408 ASSERT_FALSE(data->HasError()); |
1409 | 1409 |
1410 DictionaryValue expected_data; | 1410 DictionaryValue expected_data; |
1411 expected_data.SetWithoutPathExpansion( | 1411 expected_data.SetWithoutPathExpansion( |
1412 "key.with.dot", | 1412 "key.with.dot", |
1413 Value::CreateStringValue("value")); | 1413 new base::StringValue("value")); |
1414 EXPECT_TRUE(Value::Equals(&expected_data, data->settings().get())); | 1414 EXPECT_TRUE(Value::Equals(&expected_data, data->settings().get())); |
1415 } | 1415 } |
1416 | 1416 |
1417 // Test dots in keys going to sync. | 1417 // Test dots in keys going to sync. |
1418 { | 1418 { |
1419 scoped_ptr<Value> string_value(Value::CreateStringValue("spot")); | 1419 scoped_ptr<Value> string_value(new base::StringValue("spot")); |
1420 storage->Set(DEFAULTS, "key.with.spot", *string_value); | 1420 storage->Set(DEFAULTS, "key.with.spot", *string_value); |
1421 | 1421 |
1422 ASSERT_EQ(1u, sync_processor_->changes().size()); | 1422 ASSERT_EQ(1u, sync_processor_->changes().size()); |
1423 SettingSyncData sync_data = sync_processor_->changes()[0]; | 1423 SettingSyncData sync_data = sync_processor_->changes()[0]; |
1424 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, sync_data.change_type()); | 1424 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, sync_data.change_type()); |
1425 EXPECT_EQ("ext", sync_data.extension_id()); | 1425 EXPECT_EQ("ext", sync_data.extension_id()); |
1426 EXPECT_EQ("key.with.spot", sync_data.key()); | 1426 EXPECT_EQ("key.with.spot", sync_data.key()); |
1427 EXPECT_TRUE(sync_data.value().Equals(string_value.get())); | 1427 EXPECT_TRUE(sync_data.value().Equals(string_value.get())); |
1428 } | 1428 } |
1429 } | 1429 } |
1430 | 1430 |
1431 } // namespace extensions | 1431 } // namespace extensions |
OLD | NEW |