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

Side by Side Diff: chrome/browser/search_engines/template_url_service_sync_unittest.cc

Issue 15805002: Modify extension omnibox keywords to be user-configurable (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Test updates Created 7 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/memory/scoped_ptr.h" 5 #include "base/memory/scoped_ptr.h"
6 #include "base/memory/scoped_vector.h" 6 #include "base/memory/scoped_vector.h"
7 #include "base/string_util.h" 7 #include "base/string_util.h"
8 #include "base/time.h" 8 #include "base/time.h"
9 #include "base/utf_string_conversions.h" 9 #include "base/utf_string_conversions.h"
10 #include "chrome/browser/search_engines/search_terms_data.h" 10 #include "chrome/browser/search_engines/search_terms_data.h"
(...skipping 397 matching lines...) Expand 10 before | Expand all | Expand 10 after
408 408
409 for (syncer::SyncDataList::const_iterator iter = all_sync_data.begin(); 409 for (syncer::SyncDataList::const_iterator iter = all_sync_data.begin();
410 iter != all_sync_data.end(); ++iter) { 410 iter != all_sync_data.end(); ++iter) {
411 std::string guid = GetGUID(*iter); 411 std::string guid = GetGUID(*iter);
412 const TemplateURL* service_turl = model()->GetTemplateURLForGUID(guid); 412 const TemplateURL* service_turl = model()->GetTemplateURLForGUID(guid);
413 scoped_ptr<TemplateURL> deserialized(Deserialize(*iter)); 413 scoped_ptr<TemplateURL> deserialized(Deserialize(*iter));
414 AssertEquals(*service_turl, *deserialized); 414 AssertEquals(*service_turl, *deserialized);
415 } 415 }
416 } 416 }
417 417
418 TEST_F(TemplateURLServiceSyncTest, GetAllSyncDataNoExtensions) { 418 TEST_F(TemplateURLServiceSyncTest, GetAllSyncDataWithExtension) {
419 model()->Add(CreateTestTemplateURL(ASCIIToUTF16("key1"), "http://key1.com")); 419 model()->Add(CreateTestTemplateURL(ASCIIToUTF16("key1"), "http://key1.com"));
420 model()->Add(CreateTestTemplateURL(ASCIIToUTF16("key2"), "http://key2.com")); 420 model()->Add(CreateTestTemplateURL(ASCIIToUTF16("key2"), "http://key2.com"));
421 model()->Add(CreateTestTemplateURL(ASCIIToUTF16("key3"), 421 model()->Add(CreateTestTemplateURL(ASCIIToUTF16("key3"),
422 std::string(extensions::kExtensionScheme) + "://blahblahblah")); 422 std::string(extensions::kExtensionScheme) + "://blahblahblah"));
423 syncer::SyncDataList all_sync_data = 423 syncer::SyncDataList all_sync_data =
424 model()->GetAllSyncData(syncer::SEARCH_ENGINES); 424 model()->GetAllSyncData(syncer::SEARCH_ENGINES);
425 425
426 EXPECT_EQ(2U, all_sync_data.size()); 426 EXPECT_EQ(3U, all_sync_data.size());
427 427
428 for (syncer::SyncDataList::const_iterator iter = all_sync_data.begin(); 428 for (syncer::SyncDataList::const_iterator iter = all_sync_data.begin();
429 iter != all_sync_data.end(); ++iter) { 429 iter != all_sync_data.end(); ++iter) {
430 std::string guid = GetGUID(*iter); 430 std::string guid = GetGUID(*iter);
431 const TemplateURL* service_turl = model()->GetTemplateURLForGUID(guid); 431 const TemplateURL* service_turl = model()->GetTemplateURLForGUID(guid);
432 scoped_ptr<TemplateURL> deserialized(Deserialize(*iter)); 432 scoped_ptr<TemplateURL> deserialized(Deserialize(*iter));
433 AssertEquals(*service_turl, *deserialized); 433 AssertEquals(*service_turl, *deserialized);
434 } 434 }
435 } 435 }
436 436
(...skipping 639 matching lines...) Expand 10 before | Expand all | Expand 10 after
1076 ASSERT_TRUE(processor()->contains_guid("key2")); 1076 ASSERT_TRUE(processor()->contains_guid("key2"));
1077 change = processor()->change_for_guid("key2"); 1077 change = processor()->change_for_guid("key2");
1078 EXPECT_EQ(syncer::SyncChange::ACTION_DELETE, change.change_type()); 1078 EXPECT_EQ(syncer::SyncChange::ACTION_DELETE, change.change_type());
1079 } 1079 }
1080 1080
1081 TEST_F(TemplateURLServiceSyncTest, ProcessChangesWithLocalExtensions) { 1081 TEST_F(TemplateURLServiceSyncTest, ProcessChangesWithLocalExtensions) {
1082 model()->MergeDataAndStartSyncing(syncer::SEARCH_ENGINES, 1082 model()->MergeDataAndStartSyncing(syncer::SEARCH_ENGINES,
1083 CreateInitialSyncData(), PassProcessor(), 1083 CreateInitialSyncData(), PassProcessor(),
1084 CreateAndPassSyncErrorFactory()); 1084 CreateAndPassSyncErrorFactory());
1085 1085
1086 // Add some extension keywords locally. These shouldn't be synced. 1086 // Add some extension keywords locally.
1087 TemplateURL* extension1 = CreateTestTemplateURL(ASCIIToUTF16("keyword1"), 1087 TemplateURL* extension1 = CreateTestTemplateURL(ASCIIToUTF16("keyword1"),
1088 std::string(extensions::kExtensionScheme) + "://extension1"); 1088 std::string(extensions::kExtensionScheme) + "://extension1");
1089 model()->Add(extension1); 1089 model()->Add(extension1);
1090 EXPECT_EQ(1U, processor()->change_list_size());
1090 TemplateURL* extension2 = CreateTestTemplateURL(ASCIIToUTF16("keyword2"), 1091 TemplateURL* extension2 = CreateTestTemplateURL(ASCIIToUTF16("keyword2"),
1091 std::string(extensions::kExtensionScheme) + "://extension2"); 1092 std::string(extensions::kExtensionScheme) + "://extension2");
1092 model()->Add(extension2); 1093 model()->Add(extension2);
1093 EXPECT_EQ(0U, processor()->change_list_size()); 1094 EXPECT_EQ(1U, processor()->change_list_size());
1094 1095
1095 // Create some sync changes that will conflict with the extension keywords. 1096 // Create some sync changes that will conflict with the extension keywords.
1096 syncer::SyncChangeList changes; 1097 syncer::SyncChangeList changes;
1097 changes.push_back(CreateTestSyncChange(syncer::SyncChange::ACTION_ADD, 1098 changes.push_back(CreateTestSyncChange(syncer::SyncChange::ACTION_ADD,
1098 CreateTestTemplateURL(ASCIIToUTF16("keyword1"), "http://aaa.com", 1099 CreateTestTemplateURL(ASCIIToUTF16("keyword1"), "http://aaa.com",
1099 std::string(), 100, true))); 1100 std::string(), 100, true)));
1100 changes.push_back(CreateTestSyncChange(syncer::SyncChange::ACTION_ADD, 1101 changes.push_back(CreateTestSyncChange(syncer::SyncChange::ACTION_ADD,
1101 CreateTestTemplateURL(ASCIIToUTF16("keyword2"), "http://bbb.com"))); 1102 CreateTestTemplateURL(ASCIIToUTF16("keyword2"), "http://bbb.com")));
1102 model()->ProcessSyncChanges(FROM_HERE, changes); 1103 model()->ProcessSyncChanges(FROM_HERE, changes);
1103 1104
1104 // The synced keywords should be added unchanged, and the result of 1105 // The existing extension keywords should be uniquified.
1105 // GetTemplateURLForKeyword() for each keyword should depend on whether the 1106 EXPECT_FALSE(model()->GetTemplateURLForHost("aaa.com") == NULL);
1106 // synced keyword is replaceable or not. 1107 EXPECT_EQ(model()->GetTemplateURLForHost("aaa.com"),
1107 EXPECT_EQ(extension1,
1108 model()->GetTemplateURLForKeyword(ASCIIToUTF16("keyword1"))); 1108 model()->GetTemplateURLForKeyword(ASCIIToUTF16("keyword1")));
1109 EXPECT_FALSE(model()->GetTemplateURLForHost("aaa.com") == NULL);
1110 TemplateURL* url_for_keyword2 = 1109 TemplateURL* url_for_keyword2 =
1111 model()->GetTemplateURLForKeyword(ASCIIToUTF16("keyword2")); 1110 model()->GetTemplateURLForKeyword(ASCIIToUTF16("keyword2"));
1112 EXPECT_NE(extension2, url_for_keyword2); 1111 EXPECT_NE(extension2, url_for_keyword2);
1113 EXPECT_EQ("http://bbb.com", url_for_keyword2->url()); 1112 EXPECT_EQ("http://bbb.com", url_for_keyword2->url());
1114 // Note that extensions don't use host-based keywords, so we can't check that 1113
1115 // |extension2| is still in the model using GetTemplateURLForHost(); and we 1114 // Replaced extension keywords should be uniquified.
1116 // have to create a full-fledged Extension to use 1115 EXPECT_EQ(extension1,
1117 // GetTemplateURLForExtension(), which is annoying, so just grab all the URLs 1116 model()->GetTemplateURLForKeyword(ASCIIToUTF16("keyword1_")));
1118 // from the model and search for |extension2| within them. 1117 EXPECT_EQ(extension2,
1119 TemplateURLService::TemplateURLVector template_urls( 1118 model()->GetTemplateURLForKeyword(ASCIIToUTF16("keyword2_")));
1120 model()->GetTemplateURLs());
1121 EXPECT_FALSE(std::find(template_urls.begin(), template_urls.end(),
1122 extension2) == template_urls.end());
1123 } 1119 }
1124 1120
1125 TEST_F(TemplateURLServiceSyncTest, AutogeneratedKeywordMigrated) { 1121 TEST_F(TemplateURLServiceSyncTest, AutogeneratedKeywordMigrated) {
1126 // Create a couple of sync entries with autogenerated keywords. 1122 // Create a couple of sync entries with autogenerated keywords.
1127 syncer::SyncDataList initial_data; 1123 syncer::SyncDataList initial_data;
1128 scoped_ptr<TemplateURL> turl( 1124 scoped_ptr<TemplateURL> turl(
1129 CreateTestTemplateURL(ASCIIToUTF16("key1"), "http://key1.com", "key1")); 1125 CreateTestTemplateURL(ASCIIToUTF16("key1"), "http://key1.com", "key1"));
1130 initial_data.push_back( 1126 initial_data.push_back(
1131 CreateCustomSyncData(*turl, true, turl->url(), turl->sync_guid())); 1127 CreateCustomSyncData(*turl, true, turl->url(), turl->sync_guid()));
1132 turl.reset(CreateTestTemplateURL(ASCIIToUTF16("key2"), 1128 turl.reset(CreateTestTemplateURL(ASCIIToUTF16("key2"),
(...skipping 1132 matching lines...) Expand 10 before | Expand all | Expand 10 after
2265 syncer::SyncMergeResult merge_result = model()->MergeDataAndStartSyncing( 2261 syncer::SyncMergeResult merge_result = model()->MergeDataAndStartSyncing(
2266 syncer::SEARCH_ENGINES, list, PassProcessor(), 2262 syncer::SEARCH_ENGINES, list, PassProcessor(),
2267 CreateAndPassSyncErrorFactory()); 2263 CreateAndPassSyncErrorFactory());
2268 2264
2269 const TemplateURL* result_turl = model()->GetTemplateURLForGUID("default"); 2265 const TemplateURL* result_turl = model()->GetTemplateURLForGUID("default");
2270 EXPECT_TRUE(result_turl); 2266 EXPECT_TRUE(result_turl);
2271 EXPECT_EQ(default_turl->keyword(), result_turl->keyword()); 2267 EXPECT_EQ(default_turl->keyword(), result_turl->keyword());
2272 EXPECT_EQ(default_turl->short_name(), result_turl->short_name()); 2268 EXPECT_EQ(default_turl->short_name(), result_turl->short_name());
2273 EXPECT_EQ(default_turl->url(), result_turl->url()); 2269 EXPECT_EQ(default_turl->url(), result_turl->url());
2274 } 2270 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698