OLD | NEW |
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 "components/search_engines/template_url_service.h" | 5 #include "components/search_engines/template_url_service.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <memory> | 9 #include <memory> |
10 #include <utility> | 10 #include <utility> |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
63 | 63 |
64 std::unique_ptr<TemplateURL> CreateKeywordWithDate( | 64 std::unique_ptr<TemplateURL> CreateKeywordWithDate( |
65 TemplateURLService* model, | 65 TemplateURLService* model, |
66 const std::string& short_name, | 66 const std::string& short_name, |
67 const std::string& keyword, | 67 const std::string& keyword, |
68 const std::string& url, | 68 const std::string& url, |
69 const std::string& suggest_url, | 69 const std::string& suggest_url, |
70 const std::string& alternate_url, | 70 const std::string& alternate_url, |
71 const std::string& favicon_url, | 71 const std::string& favicon_url, |
72 bool safe_for_autoreplace, | 72 bool safe_for_autoreplace, |
73 bool show_in_default_list, | 73 int prepopulate_id, |
74 const std::string& encodings, | 74 const std::string& encodings, |
75 Time date_created, | 75 Time date_created, |
76 Time last_modified, | 76 Time last_modified, |
77 TemplateURL::Type type = TemplateURL::NORMAL) { | 77 TemplateURL::Type type = TemplateURL::NORMAL) { |
78 TemplateURLData data; | 78 TemplateURLData data; |
79 data.SetShortName(base::UTF8ToUTF16(short_name)); | 79 data.SetShortName(base::UTF8ToUTF16(short_name)); |
80 data.SetKeyword(base::UTF8ToUTF16(keyword)); | 80 data.SetKeyword(base::UTF8ToUTF16(keyword)); |
81 data.SetURL(url); | 81 data.SetURL(url); |
82 data.suggestions_url = suggest_url; | 82 data.suggestions_url = suggest_url; |
83 if (!alternate_url.empty()) | 83 if (!alternate_url.empty()) |
84 data.alternate_urls.push_back(alternate_url); | 84 data.alternate_urls.push_back(alternate_url); |
85 data.favicon_url = GURL(favicon_url); | 85 data.favicon_url = GURL(favicon_url); |
86 data.safe_for_autoreplace = safe_for_autoreplace; | 86 data.safe_for_autoreplace = safe_for_autoreplace; |
87 data.show_in_default_list = show_in_default_list; | 87 data.prepopulate_id = prepopulate_id; |
88 data.input_encodings = base::SplitString( | 88 data.input_encodings = base::SplitString( |
89 encodings, ";", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); | 89 encodings, ";", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); |
90 data.date_created = date_created; | 90 data.date_created = date_created; |
91 data.last_modified = last_modified; | 91 data.last_modified = last_modified; |
92 return base::MakeUnique<TemplateURL>(data, type); | 92 return base::MakeUnique<TemplateURL>(data, type); |
93 } | 93 } |
94 | 94 |
95 TemplateURL* AddKeywordWithDate( | 95 TemplateURL* AddKeywordWithDate( |
96 TemplateURLService* model, | 96 TemplateURLService* model, |
97 const std::string& short_name, | 97 const std::string& short_name, |
98 const std::string& keyword, | 98 const std::string& keyword, |
99 const std::string& url, | 99 const std::string& url, |
100 const std::string& suggest_url, | 100 const std::string& suggest_url, |
101 const std::string& alternate_url, | 101 const std::string& alternate_url, |
102 const std::string& favicon_url, | 102 const std::string& favicon_url, |
103 bool safe_for_autoreplace, | 103 bool safe_for_autoreplace, |
104 const std::string& encodings, | 104 const std::string& encodings, |
105 Time date_created, | 105 Time date_created, |
106 Time last_modified) { | 106 Time last_modified) { |
107 TemplateURL* t_url = model->Add(CreateKeywordWithDate( | 107 TemplateURL* t_url = model->Add(CreateKeywordWithDate( |
108 model, short_name, keyword, url, suggest_url, alternate_url, favicon_url, | 108 model, short_name, keyword, url, suggest_url, alternate_url, favicon_url, |
109 safe_for_autoreplace, false, encodings, date_created, last_modified)); | 109 safe_for_autoreplace, 0, encodings, date_created, last_modified)); |
110 EXPECT_NE(0, t_url->id()); | 110 EXPECT_NE(0, t_url->id()); |
111 return t_url; | 111 return t_url; |
112 } | 112 } |
113 | 113 |
114 // Checks that the two TemplateURLs are similar. It does not check the id, the | 114 // Checks that the two TemplateURLs are similar. It does not check the id, the |
115 // date_created or the last_modified time. Neither pointer should be NULL. | 115 // date_created or the last_modified time. Neither pointer should be NULL. |
116 void ExpectSimilar(const TemplateURL* expected, const TemplateURL* actual) { | 116 void ExpectSimilar(const TemplateURL* expected, const TemplateURL* actual) { |
117 ASSERT_TRUE(expected != NULL); | 117 ASSERT_TRUE(expected != NULL); |
118 ASSERT_TRUE(actual != NULL); | 118 ASSERT_TRUE(actual != NULL); |
119 EXPECT_EQ(expected->short_name(), actual->short_name()); | 119 EXPECT_EQ(expected->short_name(), actual->short_name()); |
120 EXPECT_EQ(expected->keyword(), actual->keyword()); | 120 EXPECT_EQ(expected->keyword(), actual->keyword()); |
121 EXPECT_EQ(expected->url(), actual->url()); | 121 EXPECT_EQ(expected->url(), actual->url()); |
122 EXPECT_EQ(expected->suggestions_url(), actual->suggestions_url()); | 122 EXPECT_EQ(expected->suggestions_url(), actual->suggestions_url()); |
123 EXPECT_EQ(expected->favicon_url(), actual->favicon_url()); | 123 EXPECT_EQ(expected->favicon_url(), actual->favicon_url()); |
124 EXPECT_EQ(expected->alternate_urls(), actual->alternate_urls()); | 124 EXPECT_EQ(expected->alternate_urls(), actual->alternate_urls()); |
125 EXPECT_EQ(expected->show_in_default_list(), actual->show_in_default_list()); | |
126 EXPECT_EQ(expected->safe_for_autoreplace(), actual->safe_for_autoreplace()); | 125 EXPECT_EQ(expected->safe_for_autoreplace(), actual->safe_for_autoreplace()); |
127 EXPECT_EQ(expected->input_encodings(), actual->input_encodings()); | 126 EXPECT_EQ(expected->input_encodings(), actual->input_encodings()); |
128 EXPECT_EQ(expected->search_terms_replacement_key(), | 127 EXPECT_EQ(expected->search_terms_replacement_key(), |
129 actual->search_terms_replacement_key()); | 128 actual->search_terms_replacement_key()); |
130 } | 129 } |
131 | 130 |
132 } // namespace | 131 } // namespace |
133 | 132 |
134 | 133 |
135 // TemplateURLServiceTest ----------------------------------------------------- | 134 // TemplateURLServiceTest ----------------------------------------------------- |
136 | 135 |
137 class TemplateURLServiceTest : public testing::Test { | 136 class TemplateURLServiceTest : public testing::Test { |
138 public: | 137 public: |
139 TemplateURLServiceTest(); | 138 TemplateURLServiceTest(); |
140 | 139 |
| 140 // A prepopulated ID to set for engines we want to show in the default list. |
| 141 // This must simply be greater than 0. |
| 142 static constexpr int kPrepopulatedId = 999999; |
| 143 |
141 // testing::Test: | 144 // testing::Test: |
142 void SetUp() override; | 145 void SetUp() override; |
143 void TearDown() override; | 146 void TearDown() override; |
144 | 147 |
145 TemplateURL* AddKeywordWithDate(const std::string& short_name, | 148 TemplateURL* AddKeywordWithDate(const std::string& short_name, |
146 const std::string& keyword, | 149 const std::string& keyword, |
147 const std::string& url, | 150 const std::string& url, |
148 const std::string& suggest_url, | 151 const std::string& suggest_url, |
149 const std::string& alternate_url, | 152 const std::string& alternate_url, |
150 const std::string& favicon_url, | 153 const std::string& favicon_url, |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
226 } | 229 } |
227 | 230 |
228 void TemplateURLServiceTest::AssertEquals(const TemplateURL& expected, | 231 void TemplateURLServiceTest::AssertEquals(const TemplateURL& expected, |
229 const TemplateURL& actual) { | 232 const TemplateURL& actual) { |
230 ASSERT_EQ(expected.short_name(), actual.short_name()); | 233 ASSERT_EQ(expected.short_name(), actual.short_name()); |
231 ASSERT_EQ(expected.keyword(), actual.keyword()); | 234 ASSERT_EQ(expected.keyword(), actual.keyword()); |
232 ASSERT_EQ(expected.url(), actual.url()); | 235 ASSERT_EQ(expected.url(), actual.url()); |
233 ASSERT_EQ(expected.suggestions_url(), actual.suggestions_url()); | 236 ASSERT_EQ(expected.suggestions_url(), actual.suggestions_url()); |
234 ASSERT_EQ(expected.favicon_url(), actual.favicon_url()); | 237 ASSERT_EQ(expected.favicon_url(), actual.favicon_url()); |
235 ASSERT_EQ(expected.alternate_urls(), actual.alternate_urls()); | 238 ASSERT_EQ(expected.alternate_urls(), actual.alternate_urls()); |
236 ASSERT_EQ(expected.show_in_default_list(), actual.show_in_default_list()); | 239 ASSERT_EQ(expected.prepopulate_id(), actual.prepopulate_id()); |
237 ASSERT_EQ(expected.safe_for_autoreplace(), actual.safe_for_autoreplace()); | 240 ASSERT_EQ(expected.safe_for_autoreplace(), actual.safe_for_autoreplace()); |
238 ASSERT_EQ(expected.input_encodings(), actual.input_encodings()); | 241 ASSERT_EQ(expected.input_encodings(), actual.input_encodings()); |
239 ASSERT_EQ(expected.id(), actual.id()); | 242 ASSERT_EQ(expected.id(), actual.id()); |
240 ASSERT_EQ(expected.date_created(), actual.date_created()); | 243 ASSERT_EQ(expected.date_created(), actual.date_created()); |
241 AssertTimesEqual(expected.last_modified(), actual.last_modified()); | 244 AssertTimesEqual(expected.last_modified(), actual.last_modified()); |
242 ASSERT_EQ(expected.sync_guid(), actual.sync_guid()); | 245 ASSERT_EQ(expected.sync_guid(), actual.sync_guid()); |
243 ASSERT_EQ(expected.search_terms_replacement_key(), | 246 ASSERT_EQ(expected.search_terms_replacement_key(), |
244 actual.search_terms_replacement_key()); | 247 actual.search_terms_replacement_key()); |
245 } | 248 } |
246 | 249 |
247 void TemplateURLServiceTest::AssertTimesEqual(const base::Time& expected, | 250 void TemplateURLServiceTest::AssertTimesEqual(const base::Time& expected, |
248 const base::Time& actual) { | 251 const base::Time& actual) { |
249 // Because times are stored with a granularity of one second, there is a loss | 252 // Because times are stored with a granularity of one second, there is a loss |
250 // of precision when serializing and deserializing the timestamps. Hence, only | 253 // of precision when serializing and deserializing the timestamps. Hence, only |
251 // expect timestamps to be equal to within one second of one another. | 254 // expect timestamps to be equal to within one second of one another. |
252 ASSERT_LT((expected - actual).magnitude(), base::TimeDelta::FromSeconds(1)); | 255 ASSERT_LT((expected - actual).magnitude(), base::TimeDelta::FromSeconds(1)); |
253 } | 256 } |
254 | 257 |
255 std::unique_ptr<TemplateURL> TemplateURLServiceTest::CreatePreloadedTemplateURL( | 258 std::unique_ptr<TemplateURL> TemplateURLServiceTest::CreatePreloadedTemplateURL( |
256 bool safe_for_autoreplace, | 259 bool safe_for_autoreplace, |
257 int prepopulate_id) { | 260 int prepopulate_id) { |
258 TemplateURLData data; | 261 TemplateURLData data; |
259 data.SetShortName(ASCIIToUTF16("unittest")); | 262 data.SetShortName(ASCIIToUTF16("unittest")); |
260 data.SetKeyword(ASCIIToUTF16("unittest")); | 263 data.SetKeyword(ASCIIToUTF16("unittest")); |
261 data.SetURL("http://www.unittest.com/{searchTerms}"); | 264 data.SetURL("http://www.unittest.com/{searchTerms}"); |
262 data.favicon_url = GURL("http://favicon.url"); | 265 data.favicon_url = GURL("http://favicon.url"); |
263 data.show_in_default_list = true; | |
264 data.safe_for_autoreplace = safe_for_autoreplace; | 266 data.safe_for_autoreplace = safe_for_autoreplace; |
265 data.input_encodings.push_back("UTF-8"); | 267 data.input_encodings.push_back("UTF-8"); |
266 data.date_created = Time::FromTimeT(100); | 268 data.date_created = Time::FromTimeT(100); |
267 data.last_modified = Time::FromTimeT(100); | 269 data.last_modified = Time::FromTimeT(100); |
268 data.prepopulate_id = prepopulate_id; | 270 data.prepopulate_id = prepopulate_id; |
269 return base::MakeUnique<TemplateURL>(data); | 271 return base::MakeUnique<TemplateURL>(data); |
270 } | 272 } |
271 | 273 |
272 void TemplateURLServiceTest::VerifyObserverCount(int expected_changed_count) { | 274 void TemplateURLServiceTest::VerifyObserverCount(int expected_changed_count) { |
273 EXPECT_EQ(expected_changed_count, test_util_->GetObserverCount()); | 275 EXPECT_EQ(expected_changed_count, test_util_->GetObserverCount()); |
(...skipping 405 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
679 test_util()->VerifyLoad(); | 681 test_util()->VerifyLoad(); |
680 const size_t initial_count = model()->GetTemplateURLs().size(); | 682 const size_t initial_count = model()->GetTemplateURLs().size(); |
681 TemplateURL* t_url = AddKeywordWithDate( | 683 TemplateURL* t_url = AddKeywordWithDate( |
682 "name1", "key1", "http://foo1/{searchTerms}", "http://sugg1", | 684 "name1", "key1", "http://foo1/{searchTerms}", "http://sugg1", |
683 std::string(), "http://icon1", true, "UTF-8;UTF-16", Time(), Time()); | 685 std::string(), "http://icon1", true, "UTF-8;UTF-16", Time(), Time()); |
684 test_util()->ResetObserverCount(); | 686 test_util()->ResetObserverCount(); |
685 | 687 |
686 model()->SetUserSelectedDefaultSearchProvider(t_url); | 688 model()->SetUserSelectedDefaultSearchProvider(t_url); |
687 ASSERT_EQ(t_url, model()->GetDefaultSearchProvider()); | 689 ASSERT_EQ(t_url, model()->GetDefaultSearchProvider()); |
688 ASSERT_TRUE(t_url->safe_for_autoreplace()); | 690 ASSERT_TRUE(t_url->safe_for_autoreplace()); |
689 ASSERT_TRUE(t_url->show_in_default_list()); | 691 ASSERT_TRUE(model()->ShowInDefaultList(t_url)); |
690 | 692 |
691 // Setting the default search provider should have caused notification. | 693 // Setting the default search provider should have caused notification. |
692 VerifyObserverCount(1); | 694 VerifyObserverCount(1); |
693 base::RunLoop().RunUntilIdle(); | 695 base::RunLoop().RunUntilIdle(); |
694 | 696 |
695 std::unique_ptr<TemplateURL> cloned_url( | 697 std::unique_ptr<TemplateURL> cloned_url( |
696 base::MakeUnique<TemplateURL>(t_url->data())); | 698 base::MakeUnique<TemplateURL>(t_url->data())); |
697 | 699 |
698 // Make sure when we reload we get a default search provider. | 700 // Make sure when we reload we get a default search provider. |
699 test_util()->ResetModel(true); | 701 test_util()->ResetModel(true); |
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
859 kIconURL, kEncodings, | 861 kIconURL, kEncodings, |
860 kAlternateURL, | 862 kAlternateURL, |
861 kSearchTermsReplacementKey); | 863 kSearchTermsReplacementKey); |
862 test_util()->VerifyLoad(); | 864 test_util()->VerifyLoad(); |
863 // Verify that the default manager we are getting is the managed one. | 865 // Verify that the default manager we are getting is the managed one. |
864 TemplateURLData data; | 866 TemplateURLData data; |
865 data.SetShortName(ASCIIToUTF16(kName)); | 867 data.SetShortName(ASCIIToUTF16(kName)); |
866 data.SetKeyword(ASCIIToUTF16(kKeyword)); | 868 data.SetKeyword(ASCIIToUTF16(kKeyword)); |
867 data.SetURL(kSearchURL); | 869 data.SetURL(kSearchURL); |
868 data.favicon_url = GURL(kIconURL); | 870 data.favicon_url = GURL(kIconURL); |
869 data.show_in_default_list = true; | 871 data.prepopulate_id = kPrepopulatedId; |
870 data.input_encodings = base::SplitString( | 872 data.input_encodings = base::SplitString( |
871 kEncodings, ";", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); | 873 kEncodings, ";", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); |
872 data.alternate_urls.push_back(kAlternateURL); | 874 data.alternate_urls.push_back(kAlternateURL); |
873 data.search_terms_replacement_key = kSearchTermsReplacementKey; | 875 data.search_terms_replacement_key = kSearchTermsReplacementKey; |
874 std::unique_ptr<TemplateURL> expected_managed_default(new TemplateURL(data)); | 876 std::unique_ptr<TemplateURL> expected_managed_default(new TemplateURL(data)); |
875 EXPECT_TRUE(model()->is_default_search_managed()); | 877 EXPECT_TRUE(model()->is_default_search_managed()); |
876 const TemplateURL* actual_managed_default = | 878 const TemplateURL* actual_managed_default = |
877 model()->GetDefaultSearchProvider(); | 879 model()->GetDefaultSearchProvider(); |
878 ExpectSimilar(expected_managed_default.get(), actual_managed_default); | 880 ExpectSimilar(expected_managed_default.get(), actual_managed_default); |
879 | 881 |
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1041 EXPECT_TRUE(ui::PageTransitionCoreTypeIs( | 1043 EXPECT_TRUE(ui::PageTransitionCoreTypeIs( |
1042 callback.visits[0].transition, ui::PAGE_TRANSITION_KEYWORD_GENERATED)); | 1044 callback.visits[0].transition, ui::PAGE_TRANSITION_KEYWORD_GENERATED)); |
1043 } | 1045 } |
1044 | 1046 |
1045 // Make sure that the load routine deletes prepopulated engines that no longer | 1047 // Make sure that the load routine deletes prepopulated engines that no longer |
1046 // exist in the prepopulate data. | 1048 // exist in the prepopulate data. |
1047 TEST_F(TemplateURLServiceTest, LoadDeletesUnusedProvider) { | 1049 TEST_F(TemplateURLServiceTest, LoadDeletesUnusedProvider) { |
1048 // Create a preloaded template url. Add it to a loaded model and wait for the | 1050 // Create a preloaded template url. Add it to a loaded model and wait for the |
1049 // saves to finish. | 1051 // saves to finish. |
1050 test_util()->ChangeModelToLoadState(); | 1052 test_util()->ChangeModelToLoadState(); |
1051 model()->Add(CreatePreloadedTemplateURL(true, 999999)); | 1053 model()->Add(CreatePreloadedTemplateURL(true, kPrepopulatedId)); |
1052 ASSERT_TRUE( | 1054 ASSERT_TRUE( |
1053 model()->GetTemplateURLForKeyword(ASCIIToUTF16("unittest")) != NULL); | 1055 model()->GetTemplateURLForKeyword(ASCIIToUTF16("unittest")) != NULL); |
1054 base::RunLoop().RunUntilIdle(); | 1056 base::RunLoop().RunUntilIdle(); |
1055 | 1057 |
1056 // Ensure that merging clears this engine. | 1058 // Ensure that merging clears this engine. |
1057 test_util()->ResetModel(true); | 1059 test_util()->ResetModel(true); |
1058 ASSERT_TRUE( | 1060 ASSERT_TRUE( |
1059 model()->GetTemplateURLForKeyword(ASCIIToUTF16("unittest")) == NULL); | 1061 model()->GetTemplateURLForKeyword(ASCIIToUTF16("unittest")) == NULL); |
1060 | 1062 |
1061 // Wait for any saves to finish. | 1063 // Wait for any saves to finish. |
1062 base::RunLoop().RunUntilIdle(); | 1064 base::RunLoop().RunUntilIdle(); |
1063 | 1065 |
1064 // Reload the model to verify that the database was updated as a result of the | 1066 // Reload the model to verify that the database was updated as a result of the |
1065 // merge. | 1067 // merge. |
1066 test_util()->ResetModel(true); | 1068 test_util()->ResetModel(true); |
1067 ASSERT_TRUE( | 1069 ASSERT_TRUE( |
1068 model()->GetTemplateURLForKeyword(ASCIIToUTF16("unittest")) == NULL); | 1070 model()->GetTemplateURLForKeyword(ASCIIToUTF16("unittest")) == NULL); |
1069 } | 1071 } |
1070 | 1072 |
1071 // Make sure that load routine doesn't delete prepopulated engines that no | 1073 // Make sure that load routine doesn't delete prepopulated engines that no |
1072 // longer exist in the prepopulate data if it has been modified by the user. | 1074 // longer exist in the prepopulate data if it has been modified by the user. |
1073 TEST_F(TemplateURLServiceTest, LoadRetainsModifiedProvider) { | 1075 TEST_F(TemplateURLServiceTest, LoadRetainsModifiedProvider) { |
1074 // Create a preloaded template url and add it to a loaded model. | 1076 // Create a preloaded template url and add it to a loaded model. |
1075 test_util()->ChangeModelToLoadState(); | 1077 test_util()->ChangeModelToLoadState(); |
1076 TemplateURL* t_url = model()->Add(CreatePreloadedTemplateURL(false, 999999)); | 1078 TemplateURL* t_url = |
| 1079 model()->Add(CreatePreloadedTemplateURL(false, kPrepopulatedId)); |
1077 | 1080 |
1078 // Do the copy after t_url is added so that the id is set. | 1081 // Do the copy after t_url is added so that the id is set. |
1079 std::unique_ptr<TemplateURL> cloned_url = | 1082 std::unique_ptr<TemplateURL> cloned_url = |
1080 base::MakeUnique<TemplateURL>(t_url->data()); | 1083 base::MakeUnique<TemplateURL>(t_url->data()); |
1081 ASSERT_EQ(t_url, model()->GetTemplateURLForKeyword(ASCIIToUTF16("unittest"))); | 1084 ASSERT_EQ(t_url, model()->GetTemplateURLForKeyword(ASCIIToUTF16("unittest"))); |
1082 | 1085 |
1083 // Wait for any saves to finish. | 1086 // Wait for any saves to finish. |
1084 base::RunLoop().RunUntilIdle(); | 1087 base::RunLoop().RunUntilIdle(); |
1085 | 1088 |
1086 // Ensure that merging won't clear it if the user has edited it. | 1089 // Ensure that merging won't clear it if the user has edited it. |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1122 } | 1125 } |
1123 | 1126 |
1124 // Make sure that the load routine doesn't delete | 1127 // Make sure that the load routine doesn't delete |
1125 // prepopulated engines that no longer exist in the prepopulate data if | 1128 // prepopulated engines that no longer exist in the prepopulate data if |
1126 // it is the default search provider. | 1129 // it is the default search provider. |
1127 TEST_F(TemplateURLServiceTest, LoadRetainsDefaultProvider) { | 1130 TEST_F(TemplateURLServiceTest, LoadRetainsDefaultProvider) { |
1128 // Set the default search provider to a preloaded template url which | 1131 // Set the default search provider to a preloaded template url which |
1129 // is not in the current set of preloaded template urls and save | 1132 // is not in the current set of preloaded template urls and save |
1130 // the result. | 1133 // the result. |
1131 test_util()->ChangeModelToLoadState(); | 1134 test_util()->ChangeModelToLoadState(); |
1132 TemplateURL* t_url = model()->Add(CreatePreloadedTemplateURL(true, 999999)); | 1135 TemplateURL* t_url = |
| 1136 model()->Add(CreatePreloadedTemplateURL(true, kPrepopulatedId)); |
1133 model()->SetUserSelectedDefaultSearchProvider(t_url); | 1137 model()->SetUserSelectedDefaultSearchProvider(t_url); |
1134 // Do the copy after t_url is added and set as default so that its | 1138 // Do the copy after t_url is added and set as default so that its |
1135 // internal state is correct. | 1139 // internal state is correct. |
1136 std::unique_ptr<TemplateURL> cloned_url = | 1140 std::unique_ptr<TemplateURL> cloned_url = |
1137 base::MakeUnique<TemplateURL>(t_url->data()); | 1141 base::MakeUnique<TemplateURL>(t_url->data()); |
1138 | 1142 |
1139 ASSERT_EQ(t_url, model()->GetTemplateURLForKeyword(ASCIIToUTF16("unittest"))); | 1143 ASSERT_EQ(t_url, model()->GetTemplateURLForKeyword(ASCIIToUTF16("unittest"))); |
1140 ASSERT_EQ(t_url, model()->GetDefaultSearchProvider()); | 1144 ASSERT_EQ(t_url, model()->GetDefaultSearchProvider()); |
1141 base::RunLoop().RunUntilIdle(); | 1145 base::RunLoop().RunUntilIdle(); |
1142 | 1146 |
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1239 VerifyObserverFired(); | 1243 VerifyObserverFired(); |
1240 EXPECT_TRUE(model()->is_default_search_managed()); | 1244 EXPECT_TRUE(model()->is_default_search_managed()); |
1241 EXPECT_EQ(initial_count + 2, model()->GetTemplateURLs().size()); | 1245 EXPECT_EQ(initial_count + 2, model()->GetTemplateURLs().size()); |
1242 | 1246 |
1243 // Verify that the default manager we are getting is the managed one. | 1247 // Verify that the default manager we are getting is the managed one. |
1244 TemplateURLData data; | 1248 TemplateURLData data; |
1245 data.SetShortName(ASCIIToUTF16(kName)); | 1249 data.SetShortName(ASCIIToUTF16(kName)); |
1246 data.SetKeyword(ASCIIToUTF16(kKeyword)); | 1250 data.SetKeyword(ASCIIToUTF16(kKeyword)); |
1247 data.SetURL(kSearchURL); | 1251 data.SetURL(kSearchURL); |
1248 data.favicon_url = GURL(kIconURL); | 1252 data.favicon_url = GURL(kIconURL); |
1249 data.show_in_default_list = true; | 1253 data.prepopulate_id = kPrepopulatedId; |
1250 data.input_encodings = base::SplitString( | 1254 data.input_encodings = base::SplitString( |
1251 kEncodings, ";", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); | 1255 kEncodings, ";", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); |
1252 data.alternate_urls.push_back(kAlternateURL); | 1256 data.alternate_urls.push_back(kAlternateURL); |
1253 data.search_terms_replacement_key = kSearchTermsReplacementKey; | 1257 data.search_terms_replacement_key = kSearchTermsReplacementKey; |
1254 std::unique_ptr<TemplateURL> expected_managed_default1(new TemplateURL(data)); | 1258 std::unique_ptr<TemplateURL> expected_managed_default1(new TemplateURL(data)); |
1255 const TemplateURL* actual_managed_default = | 1259 const TemplateURL* actual_managed_default = |
1256 model()->GetDefaultSearchProvider(); | 1260 model()->GetDefaultSearchProvider(); |
1257 ExpectSimilar(expected_managed_default1.get(), actual_managed_default); | 1261 ExpectSimilar(expected_managed_default1.get(), actual_managed_default); |
1258 EXPECT_TRUE(actual_managed_default->show_in_default_list()); | 1262 EXPECT_TRUE(model()->ShowInDefaultList(actual_managed_default)); |
1259 | 1263 |
1260 // Update the managed preference and check that the model has changed. | 1264 // Update the managed preference and check that the model has changed. |
1261 const char kNewName[] = "test2"; | 1265 const char kNewName[] = "test2"; |
1262 const char kNewKeyword[] = "other.com"; | 1266 const char kNewKeyword[] = "other.com"; |
1263 const char kNewSearchURL[] = "http://other.com/search?t={searchTerms}"; | 1267 const char kNewSearchURL[] = "http://other.com/search?t={searchTerms}"; |
1264 const char kNewSuggestURL[] = "http://other.com/suggest?t={searchTerms}"; | 1268 const char kNewSuggestURL[] = "http://other.com/suggest?t={searchTerms}"; |
1265 test_util()->SetManagedDefaultSearchPreferences(true, kNewName, kNewKeyword, | 1269 test_util()->SetManagedDefaultSearchPreferences(true, kNewName, kNewKeyword, |
1266 kNewSearchURL, kNewSuggestURL, std::string(), std::string(), | 1270 kNewSearchURL, kNewSuggestURL, std::string(), std::string(), |
1267 std::string(), std::string()); | 1271 std::string(), std::string()); |
1268 VerifyObserverFired(); | 1272 VerifyObserverFired(); |
1269 EXPECT_TRUE(model()->is_default_search_managed()); | 1273 EXPECT_TRUE(model()->is_default_search_managed()); |
1270 EXPECT_EQ(initial_count + 2, model()->GetTemplateURLs().size()); | 1274 EXPECT_EQ(initial_count + 2, model()->GetTemplateURLs().size()); |
1271 | 1275 |
1272 // Verify that the default manager we are now getting is the correct one. | 1276 // Verify that the default manager we are now getting is the correct one. |
1273 TemplateURLData data2; | 1277 TemplateURLData data2; |
1274 data2.SetShortName(ASCIIToUTF16(kNewName)); | 1278 data2.SetShortName(ASCIIToUTF16(kNewName)); |
1275 data2.SetKeyword(ASCIIToUTF16(kNewKeyword)); | 1279 data2.SetKeyword(ASCIIToUTF16(kNewKeyword)); |
1276 data2.SetURL(kNewSearchURL); | 1280 data2.SetURL(kNewSearchURL); |
1277 data2.suggestions_url = kNewSuggestURL; | 1281 data2.suggestions_url = kNewSuggestURL; |
1278 data2.show_in_default_list = true; | 1282 data2.prepopulate_id = kPrepopulatedId; |
1279 std::unique_ptr<TemplateURL> expected_managed_default2( | 1283 std::unique_ptr<TemplateURL> expected_managed_default2( |
1280 new TemplateURL(data2)); | 1284 new TemplateURL(data2)); |
1281 actual_managed_default = model()->GetDefaultSearchProvider(); | 1285 actual_managed_default = model()->GetDefaultSearchProvider(); |
1282 ExpectSimilar(expected_managed_default2.get(), actual_managed_default); | 1286 ExpectSimilar(expected_managed_default2.get(), actual_managed_default); |
1283 EXPECT_EQ(actual_managed_default->show_in_default_list(), true); | 1287 EXPECT_EQ(model()->ShowInDefaultList(actual_managed_default), true); |
1284 | 1288 |
1285 // Remove all the managed prefs and check that we are no longer managed. | 1289 // Remove all the managed prefs and check that we are no longer managed. |
1286 test_util()->RemoveManagedDefaultSearchPreferences(); | 1290 test_util()->RemoveManagedDefaultSearchPreferences(); |
1287 VerifyObserverFired(); | 1291 VerifyObserverFired(); |
1288 EXPECT_FALSE(model()->is_default_search_managed()); | 1292 EXPECT_FALSE(model()->is_default_search_managed()); |
1289 EXPECT_EQ(initial_count + 1, model()->GetTemplateURLs().size()); | 1293 EXPECT_EQ(initial_count + 1, model()->GetTemplateURLs().size()); |
1290 | 1294 |
1291 // The default should now be the user preference. | 1295 // The default should now be the user preference. |
1292 const TemplateURL* actual_final_managed_default = | 1296 const TemplateURL* actual_final_managed_default = |
1293 model()->GetDefaultSearchProvider(); | 1297 model()->GetDefaultSearchProvider(); |
1294 ExpectSimilar(regular_default, actual_final_managed_default); | 1298 ExpectSimilar(regular_default, actual_final_managed_default); |
1295 EXPECT_EQ(actual_final_managed_default->show_in_default_list(), true); | 1299 EXPECT_EQ(model()->ShowInDefaultList(actual_final_managed_default), true); |
1296 | 1300 |
1297 // Disable the default search provider through policy. | 1301 // Disable the default search provider through policy. |
1298 test_util()->SetManagedDefaultSearchPreferences(false, std::string(), | 1302 test_util()->SetManagedDefaultSearchPreferences(false, std::string(), |
1299 std::string(), std::string(), std::string(), std::string(), | 1303 std::string(), std::string(), std::string(), std::string(), |
1300 std::string(), std::string(), std::string()); | 1304 std::string(), std::string(), std::string()); |
1301 VerifyObserverFired(); | 1305 VerifyObserverFired(); |
1302 EXPECT_TRUE(model()->is_default_search_managed()); | 1306 EXPECT_TRUE(model()->is_default_search_managed()); |
1303 EXPECT_TRUE(NULL == model()->GetDefaultSearchProvider()); | 1307 EXPECT_TRUE(NULL == model()->GetDefaultSearchProvider()); |
1304 EXPECT_EQ(initial_count + 1, model()->GetTemplateURLs().size()); | 1308 EXPECT_EQ(initial_count + 1, model()->GetTemplateURLs().size()); |
1305 | 1309 |
1306 // Re-enable it. | 1310 // Re-enable it. |
1307 test_util()->SetManagedDefaultSearchPreferences(true, kName, kKeyword, | 1311 test_util()->SetManagedDefaultSearchPreferences(true, kName, kKeyword, |
1308 kSearchURL, std::string(), kIconURL, kEncodings, kAlternateURL, | 1312 kSearchURL, std::string(), kIconURL, kEncodings, kAlternateURL, |
1309 kSearchTermsReplacementKey); | 1313 kSearchTermsReplacementKey); |
1310 VerifyObserverFired(); | 1314 VerifyObserverFired(); |
1311 EXPECT_TRUE(model()->is_default_search_managed()); | 1315 EXPECT_TRUE(model()->is_default_search_managed()); |
1312 EXPECT_EQ(initial_count + 2, model()->GetTemplateURLs().size()); | 1316 EXPECT_EQ(initial_count + 2, model()->GetTemplateURLs().size()); |
1313 | 1317 |
1314 // Verify that the default manager we are getting is the managed one. | 1318 // Verify that the default manager we are getting is the managed one. |
1315 actual_managed_default = model()->GetDefaultSearchProvider(); | 1319 actual_managed_default = model()->GetDefaultSearchProvider(); |
1316 ExpectSimilar(expected_managed_default1.get(), actual_managed_default); | 1320 ExpectSimilar(expected_managed_default1.get(), actual_managed_default); |
1317 EXPECT_EQ(actual_managed_default->show_in_default_list(), true); | 1321 EXPECT_EQ(model()->ShowInDefaultList(actual_managed_default), true); |
1318 | 1322 |
1319 // Clear the model and disable the default search provider through policy. | 1323 // Clear the model and disable the default search provider through policy. |
1320 // Verify that there is no default search provider after loading the model. | 1324 // Verify that there is no default search provider after loading the model. |
1321 // This checks against regressions of http://crbug.com/67180 | 1325 // This checks against regressions of http://crbug.com/67180 |
1322 | 1326 |
1323 // First, remove the preferences, reset the model, and set a default. | 1327 // First, remove the preferences, reset the model, and set a default. |
1324 test_util()->RemoveManagedDefaultSearchPreferences(); | 1328 test_util()->RemoveManagedDefaultSearchPreferences(); |
1325 test_util()->ResetModel(true); | 1329 test_util()->ResetModel(true); |
1326 TemplateURL* new_default = | 1330 TemplateURL* new_default = |
1327 model()->GetTemplateURLForKeyword(ASCIIToUTF16("key1")); | 1331 model()->GetTemplateURLForKeyword(ASCIIToUTF16("key1")); |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1411 // Add third-party default search engine. | 1415 // Add third-party default search engine. |
1412 TemplateURL* user_dse = AddKeywordWithDate( | 1416 TemplateURL* user_dse = AddKeywordWithDate( |
1413 "user", "user", "http://www.goo.com/s?q={searchTerms}", | 1417 "user", "user", "http://www.goo.com/s?q={searchTerms}", |
1414 std::string(), std::string(), std::string(), | 1418 std::string(), std::string(), std::string(), |
1415 true, "UTF-8", Time(), Time()); | 1419 true, "UTF-8", Time(), Time()); |
1416 model()->SetUserSelectedDefaultSearchProvider(user_dse); | 1420 model()->SetUserSelectedDefaultSearchProvider(user_dse); |
1417 EXPECT_EQ(user_dse, model()->GetDefaultSearchProvider()); | 1421 EXPECT_EQ(user_dse, model()->GetDefaultSearchProvider()); |
1418 | 1422 |
1419 std::unique_ptr<TemplateURL> ext_dse = CreateKeywordWithDate( | 1423 std::unique_ptr<TemplateURL> ext_dse = CreateKeywordWithDate( |
1420 model(), "ext", "ext", "http://www.search.com/s?q={searchTerms}", | 1424 model(), "ext", "ext", "http://www.search.com/s?q={searchTerms}", |
1421 std::string(), std::string(), std::string(), true, true, "UTF-8", Time(), | 1425 std::string(), std::string(), std::string(), true, kPrepopulatedId, |
1422 Time(), TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION); | 1426 "UTF-8", Time(), Time(), TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION); |
1423 std::unique_ptr<TemplateURL::AssociatedExtensionInfo> extension_info( | 1427 std::unique_ptr<TemplateURL::AssociatedExtensionInfo> extension_info( |
1424 new TemplateURL::AssociatedExtensionInfo("ext")); | 1428 new TemplateURL::AssociatedExtensionInfo("ext")); |
1425 extension_info->wants_to_be_default_engine = true; | 1429 extension_info->wants_to_be_default_engine = true; |
1426 TemplateURL* ext_dse_ptr = model()->AddExtensionControlledTURL( | 1430 TemplateURL* ext_dse_ptr = model()->AddExtensionControlledTURL( |
1427 std::move(ext_dse), std::move(extension_info)); | 1431 std::move(ext_dse), std::move(extension_info)); |
1428 EXPECT_EQ(ext_dse_ptr, model()->GetDefaultSearchProvider()); | 1432 EXPECT_EQ(ext_dse_ptr, model()->GetDefaultSearchProvider()); |
1429 | 1433 |
1430 model()->RemoveExtensionControlledTURL( | 1434 model()->RemoveExtensionControlledTURL( |
1431 "ext", TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION); | 1435 "ext", TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION); |
1432 ExpectSimilar(user_dse, model()->GetDefaultSearchProvider()); | 1436 ExpectSimilar(user_dse, model()->GetDefaultSearchProvider()); |
1433 } | 1437 } |
1434 | 1438 |
1435 TEST_F(TemplateURLServiceTest, ExtensionEnginesNotPersist) { | 1439 TEST_F(TemplateURLServiceTest, ExtensionEnginesNotPersist) { |
1436 test_util()->VerifyLoad(); | 1440 test_util()->VerifyLoad(); |
1437 // Add third-party default search engine. | 1441 // Add third-party default search engine. |
1438 TemplateURL* user_dse = AddKeywordWithDate( | 1442 TemplateURL* user_dse = AddKeywordWithDate( |
1439 "user", "user", "http://www.goo.com/s?q={searchTerms}", | 1443 "user", "user", "http://www.goo.com/s?q={searchTerms}", |
1440 std::string(), std::string(), std::string(), | 1444 std::string(), std::string(), std::string(), |
1441 true, "UTF-8", Time(), Time()); | 1445 true, "UTF-8", Time(), Time()); |
1442 model()->SetUserSelectedDefaultSearchProvider(user_dse); | 1446 model()->SetUserSelectedDefaultSearchProvider(user_dse); |
1443 EXPECT_EQ(user_dse, model()->GetDefaultSearchProvider()); | 1447 EXPECT_EQ(user_dse, model()->GetDefaultSearchProvider()); |
1444 | 1448 |
1445 std::unique_ptr<TemplateURL> ext_dse = CreateKeywordWithDate( | 1449 std::unique_ptr<TemplateURL> ext_dse = CreateKeywordWithDate( |
1446 model(), "ext1", "ext1", "http://www.ext1.com/s?q={searchTerms}", | 1450 model(), "ext1", "ext1", "http://www.ext1.com/s?q={searchTerms}", |
1447 std::string(), std::string(), std::string(), true, false, "UTF-8", Time(), | 1451 std::string(), std::string(), std::string(), true, 0, "UTF-8", Time(), |
1448 Time(), TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION); | 1452 Time(), TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION); |
1449 std::unique_ptr<TemplateURL::AssociatedExtensionInfo> extension_info( | 1453 std::unique_ptr<TemplateURL::AssociatedExtensionInfo> extension_info( |
1450 new TemplateURL::AssociatedExtensionInfo("ext1")); | 1454 new TemplateURL::AssociatedExtensionInfo("ext1")); |
1451 extension_info->wants_to_be_default_engine = false; | 1455 extension_info->wants_to_be_default_engine = false; |
1452 model()->AddExtensionControlledTURL(std::move(ext_dse), | 1456 model()->AddExtensionControlledTURL(std::move(ext_dse), |
1453 std::move(extension_info)); | 1457 std::move(extension_info)); |
1454 EXPECT_EQ(user_dse, model()->GetDefaultSearchProvider()); | 1458 EXPECT_EQ(user_dse, model()->GetDefaultSearchProvider()); |
1455 | 1459 |
1456 ext_dse = CreateKeywordWithDate( | 1460 ext_dse = CreateKeywordWithDate( |
1457 model(), "ext2", "ext2", "http://www.ext2.com/s?q={searchTerms}", | 1461 model(), "ext2", "ext2", "http://www.ext2.com/s?q={searchTerms}", |
1458 std::string(), std::string(), std::string(), true, true, "UTF-8", Time(), | 1462 std::string(), std::string(), std::string(), true, kPrepopulatedId, |
1459 Time(), TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION); | 1463 "UTF-8", Time(), Time(), TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION); |
1460 extension_info.reset(new TemplateURL::AssociatedExtensionInfo("ext2")); | 1464 extension_info.reset(new TemplateURL::AssociatedExtensionInfo("ext2")); |
1461 extension_info->wants_to_be_default_engine = true; | 1465 extension_info->wants_to_be_default_engine = true; |
1462 TemplateURL* ext_dse_ptr = model()->AddExtensionControlledTURL( | 1466 TemplateURL* ext_dse_ptr = model()->AddExtensionControlledTURL( |
1463 std::move(ext_dse), std::move(extension_info)); | 1467 std::move(ext_dse), std::move(extension_info)); |
1464 EXPECT_EQ(ext_dse_ptr, model()->GetDefaultSearchProvider()); | 1468 EXPECT_EQ(ext_dse_ptr, model()->GetDefaultSearchProvider()); |
1465 | 1469 |
1466 test_util()->ResetModel(true); | 1470 test_util()->ResetModel(true); |
1467 user_dse = model()->GetTemplateURLForKeyword(ASCIIToUTF16("user")); | 1471 user_dse = model()->GetTemplateURLForKeyword(ASCIIToUTF16("user")); |
1468 ExpectSimilar(user_dse, model()->GetDefaultSearchProvider()); | 1472 ExpectSimilar(user_dse, model()->GetDefaultSearchProvider()); |
1469 EXPECT_FALSE(model()->GetTemplateURLForKeyword(ASCIIToUTF16("ext1"))); | 1473 EXPECT_FALSE(model()->GetTemplateURLForKeyword(ASCIIToUTF16("ext1"))); |
(...skipping 12 matching lines...) Expand all Loading... |
1482 test_util()->SetManagedDefaultSearchPreferences( | 1486 test_util()->SetManagedDefaultSearchPreferences( |
1483 true, kName, kKeyword, kSearchURL, std::string(), kIconURL, kEncodings, | 1487 true, kName, kKeyword, kSearchURL, std::string(), kIconURL, kEncodings, |
1484 kAlternateURL, kSearchTermsReplacementKey); | 1488 kAlternateURL, kSearchTermsReplacementKey); |
1485 test_util()->VerifyLoad(); | 1489 test_util()->VerifyLoad(); |
1486 // Verify that the default manager we are getting is the managed one. | 1490 // Verify that the default manager we are getting is the managed one. |
1487 TemplateURLData data; | 1491 TemplateURLData data; |
1488 data.SetShortName(ASCIIToUTF16(kName)); | 1492 data.SetShortName(ASCIIToUTF16(kName)); |
1489 data.SetKeyword(ASCIIToUTF16(kKeyword)); | 1493 data.SetKeyword(ASCIIToUTF16(kKeyword)); |
1490 data.SetURL(kSearchURL); | 1494 data.SetURL(kSearchURL); |
1491 data.favicon_url = GURL(kIconURL); | 1495 data.favicon_url = GURL(kIconURL); |
1492 data.show_in_default_list = true; | |
1493 data.input_encodings = base::SplitString( | 1496 data.input_encodings = base::SplitString( |
1494 kEncodings, ";", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); | 1497 kEncodings, ";", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); |
1495 data.alternate_urls.push_back(kAlternateURL); | 1498 data.alternate_urls.push_back(kAlternateURL); |
1496 data.search_terms_replacement_key = kSearchTermsReplacementKey; | 1499 data.search_terms_replacement_key = kSearchTermsReplacementKey; |
1497 std::unique_ptr<TemplateURL> expected_managed_default(new TemplateURL(data)); | 1500 std::unique_ptr<TemplateURL> expected_managed_default(new TemplateURL(data)); |
1498 EXPECT_TRUE(model()->is_default_search_managed()); | 1501 EXPECT_TRUE(model()->is_default_search_managed()); |
1499 const TemplateURL* actual_managed_default = | 1502 const TemplateURL* actual_managed_default = |
1500 model()->GetDefaultSearchProvider(); | 1503 model()->GetDefaultSearchProvider(); |
1501 ExpectSimilar(expected_managed_default.get(), actual_managed_default); | 1504 ExpectSimilar(expected_managed_default.get(), actual_managed_default); |
1502 | 1505 |
1503 std::unique_ptr<TemplateURL> ext_dse = CreateKeywordWithDate( | 1506 std::unique_ptr<TemplateURL> ext_dse = CreateKeywordWithDate( |
1504 model(), "ext1", "ext1", "http://www.ext1.com/s?q={searchTerms}", | 1507 model(), "ext1", "ext1", "http://www.ext1.com/s?q={searchTerms}", |
1505 std::string(), std::string(), std::string(), true, true, "UTF-8", Time(), | 1508 std::string(), std::string(), std::string(), true, kPrepopulatedId, |
1506 Time(), TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION); | 1509 "UTF-8", Time(), Time(), TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION); |
1507 std::unique_ptr<TemplateURL::AssociatedExtensionInfo> extension_info( | 1510 std::unique_ptr<TemplateURL::AssociatedExtensionInfo> extension_info( |
1508 new TemplateURL::AssociatedExtensionInfo("ext1")); | 1511 new TemplateURL::AssociatedExtensionInfo("ext1")); |
1509 extension_info->wants_to_be_default_engine = true; | 1512 extension_info->wants_to_be_default_engine = true; |
1510 TemplateURL* ext_dse_ptr = model()->AddExtensionControlledTURL( | 1513 TemplateURL* ext_dse_ptr = model()->AddExtensionControlledTURL( |
1511 std::move(ext_dse), std::move(extension_info)); | 1514 std::move(ext_dse), std::move(extension_info)); |
1512 EXPECT_EQ(ext_dse_ptr, | 1515 EXPECT_EQ(ext_dse_ptr, |
1513 model()->GetTemplateURLForKeyword(ASCIIToUTF16("ext1"))); | 1516 model()->GetTemplateURLForKeyword(ASCIIToUTF16("ext1"))); |
1514 EXPECT_TRUE(model()->is_default_search_managed()); | 1517 EXPECT_TRUE(model()->is_default_search_managed()); |
1515 actual_managed_default = model()->GetDefaultSearchProvider(); | 1518 actual_managed_default = model()->GetDefaultSearchProvider(); |
1516 ExpectSimilar(expected_managed_default.get(), actual_managed_default); | 1519 ExpectSimilar(expected_managed_default.get(), actual_managed_default); |
1517 } | 1520 } |
OLD | NEW |