| 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,48 @@
|
| 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);
|
| + data.sync_guid = "keyword";
|
| + 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"));
|
| + 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().input_encodings());
|
| +}
|
| +
|
| TEST_F(TemplateURLServiceSyncTest, MergeTwoClientsBasic) {
|
| // Start off B with some empty data.
|
| model_b()->MergeDataAndStartSyncing(syncable::SEARCH_ENGINES,
|
|
|