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

Unified Diff: components/search_engines/template_url_service_sync_unittest.cc

Issue 684493002: Don't persist and sync omnibox extension keywords. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: nit Created 6 years, 1 month 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: components/search_engines/template_url_service_sync_unittest.cc
diff --git a/components/search_engines/template_url_service_sync_unittest.cc b/components/search_engines/template_url_service_sync_unittest.cc
index a7b5a6a6b9a884d1bf94d3871b17d8675582601f..f0bfd85015ff7921740b9ecbc46491cdf340b0d1 100644
--- a/components/search_engines/template_url_service_sync_unittest.cc
+++ b/components/search_engines/template_url_service_sync_unittest.cc
@@ -32,6 +32,8 @@ using base::Time;
namespace {
+const char kOmniboxScheme[] = "omnibox";
+
// Extract the GUID from a search engine syncer::SyncData.
std::string GetGUID(const syncer::SyncData& sync_data) {
return sync_data.GetSpecifics().search_engine().sync_guid();
@@ -141,6 +143,33 @@ syncer::SyncError TestChangeProcessor::ProcessSyncChanges(
return syncer::SyncError();
}
+class TestTemplateURLServiceClient : public TemplateURLServiceClient {
+ public:
+ ~TestTemplateURLServiceClient() override {}
+
+ void Shutdown() override {}
+ void SetOwner(TemplateURLService* owner) override {}
+ void DeleteAllSearchTermsForKeyword(TemplateURLID id) override {}
+ void SetKeywordSearchTermsForURL(
+ const GURL& url,
+ TemplateURLID id,
+ const base::string16& term) override {}
+ void AddKeywordGeneratedVisit(const GURL& url) override {}
+
+ void RestoreExtensionInfoIfNecessary(TemplateURL* template_url) override;
+};
+
+void TestTemplateURLServiceClient::RestoreExtensionInfoIfNecessary(
+ TemplateURL* template_url) {
+ const TemplateURLData& data = template_url->data();
+ GURL url(data.url());
+ if (url.SchemeIs(kOmniboxScheme)) {
+ const std::string& extension_id = url.host();
+ template_url->set_extension_info(make_scoped_ptr(
+ new TemplateURL::AssociatedExtensionInfo(
+ TemplateURL::OMNIBOX_API_EXTENSION, extension_id)));
+ }
+}
} // namespace
@@ -197,7 +226,7 @@ class TemplateURLServiceSyncTest : public testing::Test {
syncer::SyncDataList CreateInitialSyncData() const;
// Syntactic sugar.
- TemplateURL* Deserialize(const syncer::SyncData& sync_data);
+ scoped_ptr<TemplateURL> Deserialize(const syncer::SyncData& sync_data);
// Creates a new TemplateURL copying the fields of |turl| but replacing
// the |url| and |guid| and initializing the date_created and last_modified
@@ -335,11 +364,12 @@ syncer::SyncDataList TemplateURLServiceSyncTest::CreateInitialSyncData() const {
return list;
}
-TemplateURL* TemplateURLServiceSyncTest::Deserialize(
+scoped_ptr<TemplateURL> TemplateURLServiceSyncTest::Deserialize(
const syncer::SyncData& sync_data) {
syncer::SyncChangeList dummy;
+ TestTemplateURLServiceClient client;
return TemplateURLService::CreateTemplateURLFromTemplateURLAndSyncData(
- NULL, SearchTermsData(), NULL, sync_data, &dummy);
+ &client, NULL, SearchTermsData(), NULL, sync_data, &dummy);
}
TemplateURL* TemplateURLServiceSyncTest::CopyTemplateURL(
@@ -391,12 +421,13 @@ TEST_F(TemplateURLServiceSyncTest, GetAllSyncDataBasic) {
TEST_F(TemplateURLServiceSyncTest, GetAllSyncDataWithExtension) {
model()->Add(CreateTestTemplateURL(ASCIIToUTF16("key1"), "http://key1.com"));
model()->Add(CreateTestTemplateURL(ASCIIToUTF16("key2"), "http://key2.com"));
- model()->RegisterOmniboxKeyword("blahblahblah", "unittest", "key3",
- "http://blahblahblah");
+ std::string fake_id("blahblahblah");
+ std::string fake_url = std::string(kOmniboxScheme) + "://" + fake_id;
+ model()->RegisterOmniboxKeyword(fake_id, "unittest", "key3", fake_url);
syncer::SyncDataList all_sync_data =
model()->GetAllSyncData(syncer::SEARCH_ENGINES);
- EXPECT_EQ(3U, all_sync_data.size());
+ EXPECT_EQ(2U, all_sync_data.size());
for (syncer::SyncDataList::const_iterator iter = all_sync_data.begin();
iter != all_sync_data.end(); ++iter) {
@@ -668,8 +699,8 @@ TEST_F(TemplateURLServiceSyncTest, MergeSyncIsTheSame) {
syncer::SyncDataList initial_data = CreateInitialSyncData();
for (syncer::SyncDataList::const_iterator iter = initial_data.begin();
iter != initial_data.end(); ++iter) {
- TemplateURL* converted = Deserialize(*iter);
- model()->Add(converted);
+ scoped_ptr<TemplateURL> converted(Deserialize(*iter));
+ model()->Add(converted.release());
}
syncer::SyncMergeResult merge_result = model()->MergeDataAndStartSyncing(
@@ -1062,14 +1093,14 @@ TEST_F(TemplateURLServiceSyncTest, ProcessChangesWithLocalExtensions) {
TemplateURL* extension1 =
model()->GetTemplateURLForKeyword(ASCIIToUTF16("keyword1"));
ASSERT_TRUE(extension1);
- EXPECT_EQ(1U, processor()->change_list_size());
+ EXPECT_EQ(0U, processor()->change_list_size());
model()->RegisterOmniboxKeyword("extension2", "unittest", "keyword2",
"http://extension2");
TemplateURL* extension2 =
model()->GetTemplateURLForKeyword(ASCIIToUTF16("keyword2"));
ASSERT_TRUE(extension2);
- EXPECT_EQ(1U, processor()->change_list_size());
+ EXPECT_EQ(0U, processor()->change_list_size());
// Create some sync changes that will conflict with the extension keywords.
syncer::SyncChangeList changes;
@@ -1080,20 +1111,18 @@ TEST_F(TemplateURLServiceSyncTest, ProcessChangesWithLocalExtensions) {
CreateTestTemplateURL(ASCIIToUTF16("keyword2"), "http://bbb.com")));
model()->ProcessSyncChanges(FROM_HERE, changes);
- // The existing extension keywords should be uniquified.
EXPECT_FALSE(model()->GetTemplateURLForHost("aaa.com") == NULL);
- EXPECT_EQ(model()->GetTemplateURLForHost("aaa.com"),
+ EXPECT_EQ(extension1,
model()->GetTemplateURLForKeyword(ASCIIToUTF16("keyword1")));
TemplateURL* url_for_keyword2 =
model()->GetTemplateURLForKeyword(ASCIIToUTF16("keyword2"));
EXPECT_NE(extension2, url_for_keyword2);
EXPECT_EQ("http://bbb.com", url_for_keyword2->url());
- // Replaced extension keywords should be uniquified.
EXPECT_EQ(extension1,
- model()->GetTemplateURLForKeyword(ASCIIToUTF16("keyword1_")));
- EXPECT_EQ(extension2,
- model()->GetTemplateURLForKeyword(ASCIIToUTF16("keyword2_")));
+ model()->GetTemplateURLForKeyword(ASCIIToUTF16("keyword1")));
+ EXPECT_EQ(model()->GetTemplateURLForHost("bbb.com"),
+ model()->GetTemplateURLForKeyword(ASCIIToUTF16("keyword2")));
}
TEST_F(TemplateURLServiceSyncTest, AutogeneratedKeywordMigrated) {
« no previous file with comments | « components/search_engines/template_url_service.cc ('k') | components/search_engines/template_url_service_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698