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, |