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

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

Issue 10458077: When the Google base URL changes and causes keyword updates, save those to the database. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years, 7 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 139570)
+++ chrome/browser/search_engines/template_url_service_sync_unittest.cc (working copy)
@@ -1603,7 +1603,7 @@
scoped_ptr<TemplateURL> sync_turl(
new TemplateURL(prepop_turls[0]->profile(), data_copy));
initial_data.push_back(
- TemplateURLService::CreateSyncDataFromTemplateURL(*sync_turl.get()));
+ TemplateURLService::CreateSyncDataFromTemplateURL(*sync_turl));
model()->MergeDataAndStartSyncing(syncable::SEARCH_ENGINES,
initial_data, PassProcessor(), CreateAndPassSyncErrorFactory());
@@ -1618,3 +1618,51 @@
EXPECT_EQ(new_timestamp, base::Time::FromInternalValue(
change.sync_data().GetSpecifics().search_engine().last_modified()));
}
+
+TEST_F(TemplateURLServiceSyncTest, UpdatingBaseURLGeneratesSyncChange) {
+ test_util_a_.SetGoogleBaseURL(GURL("http://google.com/"));
+ SyncDataList initial_data;
+ scoped_ptr<TemplateURL> turl(CreateTestTemplateURL(ASCIIToUTF16("google.com"),
+ "{google:baseURL}search?q={searchTerms}", "guid"));
+ initial_data.push_back(
+ TemplateURLService::CreateSyncDataFromTemplateURL(*turl));
+ model()->MergeDataAndStartSyncing(syncable::SEARCH_ENGINES, initial_data,
+ PassProcessor(), CreateAndPassSyncErrorFactory());
SteveT 2012/06/05 15:11:42 Hm, are we missing something here that changes the
Peter Kasting 2012/06/05 20:49:03 Yeah, this fragment was a leftover from before I c
+}
+
+TEST_F(TemplateURLServiceSyncTest, SyncBaseURLs) {
+ // Verify that bringing in a remote TemplateURL that uses Google base URLs
+ // causes it to get a local keyword that matches the local base URL.
+ test_util_a_.SetGoogleBaseURL(GURL("http://google.com/"));
+ SyncDataList initial_data;
+ scoped_ptr<TemplateURL> turl(CreateTestTemplateURL(
+ ASCIIToUTF16("google.co.uk"), "{google:baseURL}search?q={searchTerms}",
+ "guid"));
+ initial_data.push_back(
+ TemplateURLService::CreateSyncDataFromTemplateURL(*turl));
+ model()->MergeDataAndStartSyncing(syncable::SEARCH_ENGINES, initial_data,
+ PassProcessor(), CreateAndPassSyncErrorFactory());
+ TemplateURL* synced_turl = model()->GetTemplateURLForGUID("guid");
+ ASSERT_TRUE(synced_turl);
+ EXPECT_EQ(ASCIIToUTF16("google.com"), synced_turl->keyword());
+ EXPECT_EQ(0U, processor()->change_list_size());
+
+ // Remote updates to this URL's keyword should be silently ignored.
+ SyncChangeList changes;
+ changes.push_back(CreateTestSyncChange(SyncChange::ACTION_UPDATE,
+ CreateTestTemplateURL(ASCIIToUTF16("google.de"),
+ "{google:baseURL}search?q={searchTerms}", "guid")));
+ model()->ProcessSyncChanges(FROM_HERE, changes);
+ EXPECT_EQ(ASCIIToUTF16("google.com"), synced_turl->keyword());
+ EXPECT_EQ(0U, processor()->change_list_size());
+
+ // A local change to the Google base URL should update the keyword and
+ // generate a sync change.
+ test_util_a_.SetGoogleBaseURL(GURL("http://google.co.in/"));
+ EXPECT_EQ(ASCIIToUTF16("google.co.in"), synced_turl->keyword());
+ EXPECT_EQ(1U, processor()->change_list_size());
+ ASSERT_TRUE(processor()->contains_guid("guid"));
+ SyncChange change(processor()->change_for_guid("guid"));
+ EXPECT_EQ(SyncChange::ACTION_UPDATE, change.change_type());
+ EXPECT_EQ("google.co.in", GetKeyword(change.sync_data()));
+}

Powered by Google App Engine
This is Rietveld 408576698