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

Unified Diff: chrome/browser/search_engines/template_url_service_sync_unittest.cc

Issue 10676012: De-dupe input encodings in TemplateURLs. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years, 6 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 side-by-side diff with in-line comments
Download patch
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,
« no previous file with comments | « chrome/browser/search_engines/template_url_service.cc ('k') | chrome/browser/search_engines/template_url_service_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698