Chromium Code Reviews

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

Issue 3847006: If default search is managed, we should not asked the user to choose it at Fi... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 10 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | | Annotate | Revision Log
« no previous file with comments | « chrome/browser/search_engines/template_url_model.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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/callback.h" 5 #include "base/callback.h"
6 #include "base/scoped_vector.h" 6 #include "base/scoped_vector.h"
7 #include "base/string_split.h" 7 #include "base/string_split.h"
8 #include "base/string_util.h" 8 #include "base/string_util.h"
9 #include "base/ref_counted.h" 9 #include "base/ref_counted.h"
10 #include "base/thread.h" 10 #include "base/thread.h"
(...skipping 168 matching lines...)
179 EXPECT_EQ(expected->short_name(), actual->short_name()); 179 EXPECT_EQ(expected->short_name(), actual->short_name());
180 EXPECT_EQ(JoinString(expected->input_encodings(), ';'), 180 EXPECT_EQ(JoinString(expected->input_encodings(), ';'),
181 JoinString(actual->input_encodings(), ';')); 181 JoinString(actual->input_encodings(), ';'));
182 EXPECT_TRUE(expected->GetFavIconURL() == actual->GetFavIconURL()); 182 EXPECT_TRUE(expected->GetFavIconURL() == actual->GetFavIconURL());
183 EXPECT_EQ(expected->safe_for_autoreplace(), actual->safe_for_autoreplace()); 183 EXPECT_EQ(expected->safe_for_autoreplace(), actual->safe_for_autoreplace());
184 EXPECT_EQ(expected->show_in_default_list(), actual->show_in_default_list()); 184 EXPECT_EQ(expected->show_in_default_list(), actual->show_in_default_list());
185 } 185 }
186 186
187 // Set the managed preferences for the default search provider and trigger 187 // Set the managed preferences for the default search provider and trigger
188 // notification. 188 // notification.
189 void SetManagedDefaultSearchPreferences(const char* name, 189 void SetManagedDefaultSearchPreferences(bool enabled,
190 const char* name,
190 const char* search_url, 191 const char* search_url,
191 const char* suggest_url, 192 const char* suggest_url,
192 const char* icon_url, 193 const char* icon_url,
193 const char* encodings, 194 const char* encodings,
194 const char* keyword) { 195 const char* keyword) {
195 TestingPrefService* service = profile()->GetTestingPrefService(); 196 TestingPrefService* service = profile()->GetTestingPrefService();
196 service->SetManagedPrefWithoutNotification( 197 service->SetManagedPrefWithoutNotification(
197 prefs::kDefaultSearchProviderEnabled, 198 prefs::kDefaultSearchProviderEnabled,
198 Value::CreateBooleanValue(true)); 199 Value::CreateBooleanValue(enabled));
199 service->SetManagedPrefWithoutNotification( 200 service->SetManagedPrefWithoutNotification(
200 prefs::kDefaultSearchProviderName, 201 prefs::kDefaultSearchProviderName,
201 Value::CreateStringValue(name)); 202 Value::CreateStringValue(name));
202 service->SetManagedPrefWithoutNotification( 203 service->SetManagedPrefWithoutNotification(
203 prefs::kDefaultSearchProviderSearchURL, 204 prefs::kDefaultSearchProviderSearchURL,
204 Value::CreateStringValue(search_url)); 205 Value::CreateStringValue(search_url));
205 service->SetManagedPrefWithoutNotification( 206 service->SetManagedPrefWithoutNotification(
206 prefs::kDefaultSearchProviderSuggestURL, 207 prefs::kDefaultSearchProviderSuggestURL,
207 Value::CreateStringValue(suggest_url)); 208 Value::CreateStringValue(suggest_url));
208 service->SetManagedPrefWithoutNotification( 209 service->SetManagedPrefWithoutNotification(
209 prefs::kDefaultSearchProviderIconURL, 210 prefs::kDefaultSearchProviderIconURL,
210 Value::CreateStringValue(icon_url)); 211 Value::CreateStringValue(icon_url));
211 service->SetManagedPrefWithoutNotification( 212 service->SetManagedPrefWithoutNotification(
212 prefs::kDefaultSearchProviderEncodings, 213 prefs::kDefaultSearchProviderEncodings,
213 Value::CreateStringValue(encodings)); 214 Value::CreateStringValue(encodings));
214 service->SetManagedPrefWithoutNotification( 215 service->SetManagedPrefWithoutNotification(
215 prefs::kDefaultSearchProviderKeyword, 216 prefs::kDefaultSearchProviderKeyword,
216 Value::CreateStringValue(keyword)); 217 Value::CreateStringValue(keyword));
217 // Clear the IDs that are not specified via policy. 218 // Clear the IDs that are not specified via policy.
218 service->SetManagedPrefWithoutNotification( 219 service->SetManagedPrefWithoutNotification(
219 prefs::kDefaultSearchProviderID, new StringValue("")); 220 prefs::kDefaultSearchProviderID, new StringValue(""));
220 service->SetManagedPrefWithoutNotification( 221 service->SetManagedPrefWithoutNotification(
221 prefs::kDefaultSearchProviderPrepopulateID, new StringValue("")); 222 prefs::kDefaultSearchProviderPrepopulateID, new StringValue(""));
222 NotifyManagedPrefsHaveChanged(); 223 NotifyManagedPrefsHaveChanged();
223 } 224 }
224 225
225 // Set the managed preferences for the default search provider and trigger
226 // notification.
227 void DisableManagedDefaultSearchProvider() {
228 TestingPrefService* service = profile()->GetTestingPrefService();
229 service->SetManagedPrefWithoutNotification(
230 prefs::kDefaultSearchProviderEnabled,
231 Value::CreateBooleanValue(false));
232 NotifyManagedPrefsHaveChanged();
233 }
234
235 // Remove all the managed preferences for the default search provider and 226 // Remove all the managed preferences for the default search provider and
236 // trigger notification. 227 // trigger notification.
237 void RemoveManagedDefaultSearchPreferences() { 228 void RemoveManagedDefaultSearchPreferences() {
238 TestingPrefService* service = profile()->GetTestingPrefService(); 229 TestingPrefService* service = profile()->GetTestingPrefService();
239 service->RemoveManagedPrefWithoutNotification( 230 service->RemoveManagedPrefWithoutNotification(
240 prefs::kDefaultSearchProviderEnabled); 231 prefs::kDefaultSearchProviderEnabled);
241 service->RemoveManagedPrefWithoutNotification( 232 service->RemoveManagedPrefWithoutNotification(
242 prefs::kDefaultSearchProviderName); 233 prefs::kDefaultSearchProviderName);
243 service->RemoveManagedPrefWithoutNotification( 234 service->RemoveManagedPrefWithoutNotification(
244 prefs::kDefaultSearchProviderSearchURL); 235 prefs::kDefaultSearchProviderSearchURL);
(...skipping 868 matching lines...)
1113 // notifications. 1104 // notifications.
1114 VerifyObserverCount(1); 1105 VerifyObserverCount(1);
1115 EXPECT_FALSE(model()->is_default_search_managed()); 1106 EXPECT_FALSE(model()->is_default_search_managed());
1116 EXPECT_EQ(1 + initial_count, model()->GetTemplateURLs().size()); 1107 EXPECT_EQ(1 + initial_count, model()->GetTemplateURLs().size());
1117 1108
1118 // Set a managed preference that establishes a default search provider. 1109 // Set a managed preference that establishes a default search provider.
1119 const char kName[] = "test1"; 1110 const char kName[] = "test1";
1120 const char kSearchURL[] = "http://test.com/search?t={searchTerms}"; 1111 const char kSearchURL[] = "http://test.com/search?t={searchTerms}";
1121 const char kIconURL[] = "http://test.com/icon.jpg"; 1112 const char kIconURL[] = "http://test.com/icon.jpg";
1122 const char kEncodings[] = "UTF-16;UTF-32"; 1113 const char kEncodings[] = "UTF-16;UTF-32";
1123 SetManagedDefaultSearchPreferences(kName, kSearchURL, "", kIconURL, 1114 SetManagedDefaultSearchPreferences(true, kName, kSearchURL, "", kIconURL,
1124 kEncodings, ""); 1115 kEncodings, "");
1125 VerifyObserverCount(1); 1116 VerifyObserverCount(1);
1126 EXPECT_TRUE(model()->is_default_search_managed()); 1117 EXPECT_TRUE(model()->is_default_search_managed());
1127 EXPECT_EQ(2 + initial_count, model()->GetTemplateURLs().size()); 1118 EXPECT_EQ(2 + initial_count, model()->GetTemplateURLs().size());
1128 1119
1129 // Verify that the default manager we are getting is the managed one. 1120 // Verify that the default manager we are getting is the managed one.
1130 scoped_ptr<TemplateURL> expected_managed_default1(new TemplateURL()); 1121 scoped_ptr<TemplateURL> expected_managed_default1(new TemplateURL());
1131 expected_managed_default1->SetURL(kSearchURL, 0, 0); 1122 expected_managed_default1->SetURL(kSearchURL, 0, 0);
1132 expected_managed_default1->SetFavIconURL(GURL(kIconURL)); 1123 expected_managed_default1->SetFavIconURL(GURL(kIconURL));
1133 expected_managed_default1->set_short_name(L"test1"); 1124 expected_managed_default1->set_short_name(L"test1");
1134 std::vector<std::string> encodings_vector; 1125 std::vector<std::string> encodings_vector;
1135 base::SplitString(kEncodings, ';', &encodings_vector); 1126 base::SplitString(kEncodings, ';', &encodings_vector);
1136 expected_managed_default1->set_input_encodings(encodings_vector); 1127 expected_managed_default1->set_input_encodings(encodings_vector);
1137 expected_managed_default1->set_show_in_default_list(true); 1128 expected_managed_default1->set_show_in_default_list(true);
1138 const TemplateURL* actual_managed_default = 1129 const TemplateURL* actual_managed_default =
1139 model()->GetDefaultSearchProvider(); 1130 model()->GetDefaultSearchProvider();
1140 ExpectSimilar(actual_managed_default, expected_managed_default1.get()); 1131 ExpectSimilar(actual_managed_default, expected_managed_default1.get());
1141 EXPECT_EQ(actual_managed_default->show_in_default_list(), true); 1132 EXPECT_EQ(actual_managed_default->show_in_default_list(), true);
1142 1133
1143 // Update the managed preference and check that the model has changed. 1134 // Update the managed preference and check that the model has changed.
1144 const char kNewName[] = "test2"; 1135 const char kNewName[] = "test2";
1145 const char kNewSearchURL[] = "http://other.com/search?t={searchTerms}"; 1136 const char kNewSearchURL[] = "http://other.com/search?t={searchTerms}";
1146 const char kNewSuggestURL[] = "http://other.com/suggest?t={searchTerms}"; 1137 const char kNewSuggestURL[] = "http://other.com/suggest?t={searchTerms}";
1147 SetManagedDefaultSearchPreferences(kNewName, kNewSearchURL, kNewSuggestURL, 1138 SetManagedDefaultSearchPreferences(true, kNewName, kNewSearchURL,
1148 "", "", ""); 1139 kNewSuggestURL, "", "", "");
1149 VerifyObserverCount(1); 1140 VerifyObserverCount(1);
1150 EXPECT_TRUE(model()->is_default_search_managed()); 1141 EXPECT_TRUE(model()->is_default_search_managed());
1151 EXPECT_EQ(2 + initial_count, model()->GetTemplateURLs().size()); 1142 EXPECT_EQ(2 + initial_count, model()->GetTemplateURLs().size());
1152 1143
1153 // Verify that the default manager we are now getting is the correct one. 1144 // Verify that the default manager we are now getting is the correct one.
1154 scoped_ptr<TemplateURL> expected_managed_default2(new TemplateURL()); 1145 scoped_ptr<TemplateURL> expected_managed_default2(new TemplateURL());
1155 expected_managed_default2->SetURL(kNewSearchURL, 0, 0); 1146 expected_managed_default2->SetURL(kNewSearchURL, 0, 0);
1156 expected_managed_default2->SetSuggestionsURL(kNewSuggestURL, 0, 0); 1147 expected_managed_default2->SetSuggestionsURL(kNewSuggestURL, 0, 0);
1157 expected_managed_default2->set_short_name(L"test2"); 1148 expected_managed_default2->set_short_name(L"test2");
1158 expected_managed_default2->set_show_in_default_list(true); 1149 expected_managed_default2->set_show_in_default_list(true);
1159 actual_managed_default = model()->GetDefaultSearchProvider(); 1150 actual_managed_default = model()->GetDefaultSearchProvider();
1160 ExpectSimilar(actual_managed_default, expected_managed_default2.get()); 1151 ExpectSimilar(actual_managed_default, expected_managed_default2.get());
1161 EXPECT_EQ(actual_managed_default->show_in_default_list(), true); 1152 EXPECT_EQ(actual_managed_default->show_in_default_list(), true);
1162 1153
1163 // Remove all the managed prefs and check that we are no longer managed. 1154 // Remove all the managed prefs and check that we are no longer managed.
1164 RemoveManagedDefaultSearchPreferences(); 1155 RemoveManagedDefaultSearchPreferences();
1165 VerifyObserverCount(1); 1156 VerifyObserverCount(1);
1166 EXPECT_FALSE(model()->is_default_search_managed()); 1157 EXPECT_FALSE(model()->is_default_search_managed());
1167 EXPECT_EQ(1 + initial_count, model()->GetTemplateURLs().size()); 1158 EXPECT_EQ(1 + initial_count, model()->GetTemplateURLs().size());
1168 1159
1169 // The default should now be the first URL added 1160 // The default should now be the first URL added
1170 const TemplateURL* actual_final_managed_default = 1161 const TemplateURL* actual_final_managed_default =
1171 model()->GetDefaultSearchProvider(); 1162 model()->GetDefaultSearchProvider();
1172 ExpectSimilar(actual_final_managed_default, 1163 ExpectSimilar(actual_final_managed_default,
1173 model()->GetTemplateURLs()[0]); 1164 model()->GetTemplateURLs()[0]);
1174 EXPECT_EQ(actual_final_managed_default->show_in_default_list(), true); 1165 EXPECT_EQ(actual_final_managed_default->show_in_default_list(), true);
1175 1166
1176 // Disable the default search provider through policy. 1167 // Disable the default search provider through policy.
1177 DisableManagedDefaultSearchProvider(); 1168 SetManagedDefaultSearchPreferences(false, "", "", "", "", "", "");
1178 VerifyObserverCount(1); 1169 VerifyObserverCount(1);
1179 EXPECT_TRUE(model()->is_default_search_managed()); 1170 EXPECT_TRUE(model()->is_default_search_managed());
1180 EXPECT_TRUE(NULL == model()->GetDefaultSearchProvider()); 1171 EXPECT_TRUE(NULL == model()->GetDefaultSearchProvider());
1181 EXPECT_EQ(1 + initial_count, model()->GetTemplateURLs().size()); 1172 EXPECT_EQ(1 + initial_count, model()->GetTemplateURLs().size());
1182 1173
1183 // Re-enable it. 1174 // Re-enable it.
1184 SetManagedDefaultSearchPreferences(kName, kSearchURL, "", kIconURL, 1175 SetManagedDefaultSearchPreferences(true, kName, kSearchURL, "", kIconURL,
1185 kEncodings, ""); 1176 kEncodings, "");
1186 VerifyObserverCount(1); 1177 VerifyObserverCount(1);
1187 EXPECT_TRUE(model()->is_default_search_managed()); 1178 EXPECT_TRUE(model()->is_default_search_managed());
1188 EXPECT_EQ(2 + initial_count, model()->GetTemplateURLs().size()); 1179 EXPECT_EQ(2 + initial_count, model()->GetTemplateURLs().size());
1189 1180
1190 // Verify that the default manager we are getting is the managed one. 1181 // Verify that the default manager we are getting is the managed one.
1191 actual_managed_default = model()->GetDefaultSearchProvider(); 1182 actual_managed_default = model()->GetDefaultSearchProvider();
1192 ExpectSimilar(actual_managed_default, expected_managed_default1.get()); 1183 ExpectSimilar(actual_managed_default, expected_managed_default1.get());
1193 EXPECT_EQ(actual_managed_default->show_in_default_list(), true); 1184 EXPECT_EQ(actual_managed_default->show_in_default_list(), true);
1194 } 1185 }
OLDNEW
« no previous file with comments | « chrome/browser/search_engines/template_url_model.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine