Chromium Code Reviews| Index: chrome/browser/search_engines/template_url_service_sync_unittest.cc |
| =================================================================== |
| --- chrome/browser/search_engines/template_url_service_sync_unittest.cc (revision 144319) |
| +++ chrome/browser/search_engines/template_url_service_sync_unittest.cc (working copy) |
| @@ -1352,6 +1352,47 @@ |
| UTF8ToUTF16(GetKeyword(key2_change.sync_data()))); |
| } |
| +TEST_F(TemplateURLServiceSyncTest, DuplicateEncodingsRemoved) { |
| + // Create a sync entry with duplicate encodings. |
| + SyncDataList initial_data; |
| + |
| + TemplateURLData data; |
| + data.short_name = ASCIIToUTF16("test"); |
| + data.SetKeyword(ASCIIToUTF16("keyword")); |
| + data.SetURL("http://test/%s"); |
| + data.input_encodings.push_back("UTF-8"); |
| + data.input_encodings.push_back("UTF-8"); |
| + data.input_encodings.push_back("UTF-16"); |
| + data.input_encodings.push_back("UTF-8"); |
| + data.input_encodings.push_back("Big5"); |
| + data.input_encodings.push_back("UTF-16"); |
| + data.input_encodings.push_back("Big5"); |
| + data.input_encodings.push_back("Windows-1252"); |
| + data.date_created = Time::FromTimeT(100); |
| + data.last_modified = Time::FromTimeT(100); |
| + scoped_ptr<TemplateURL> turl(new TemplateURL(NULL, data)); |
| + initial_data.push_back( |
| + TemplateURLService::CreateSyncDataFromTemplateURL(*turl)); |
| + |
| + // Now try to sync the data locally. |
| + model()->MergeDataAndStartSyncing(syncable::SEARCH_ENGINES, initial_data, |
| + PassProcessor(), CreateAndPassSyncErrorFactory()); |
| + |
| + // The entry should have been added, with duplicate encodings removed. |
| + TemplateURL* keyword = |
| + model()->GetTemplateURLForKeyword(ASCIIToUTF16("keyword")); |
| + ASSERT_FALSE(keyword == NULL); |
| + EXPECT_EQ(4U, keyword->input_encodings().size()); |
| + |
| + // We should also have gotten a corresponding UPDATE pushed upstream. |
| + EXPECT_GE(processor()->change_list_size(), 1U); |
| + ASSERT_TRUE(processor()->contains_guid("keyword")); |
|
SteveT
2012/06/27 01:45:24
You didn't actually set the guid above?
Peter Kasting
2012/06/27 03:35:40
Both these observations are the sort of obvious th
|
| + SyncChange keyword_change = processor()->change_for_guid("keyword"); |
| + EXPECT_EQ(SyncChange::ACTION_UPDATE, keyword_change.change_type()); |
| + EXPECT_EQ("UTF-8;UTF-16;Big5;Windows-1252", |
| + keyword_change.sync_data().GetSpecifics().search_engine().keyword()); |
|
SteveT
2012/06/27 01:11:14
Did you mean input_encodings() instead of keyword(
|
| +} |
| + |
| TEST_F(TemplateURLServiceSyncTest, MergeTwoClientsBasic) { |
| // Start off B with some empty data. |
| model_b()->MergeDataAndStartSyncing(syncable::SEARCH_ENGINES, |