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

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

Issue 5646003: Sanitize PrefStore interface. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix PrefService mock construction in PrefServiceTest to include command line store. Created 10 years 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 | Annotate | Revision Log
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 176 matching lines...) Expand 10 before | Expand all | Expand 10 after
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(bool enabled, 189 void SetManagedDefaultSearchPreferences(bool enabled,
190 const char* name, 190 const char* name,
191 const char* search_url, 191 const char* search_url,
192 const char* suggest_url, 192 const char* suggest_url,
193 const char* icon_url, 193 const char* icon_url,
194 const char* encodings, 194 const char* encodings,
195 const char* keyword) { 195 const char* keyword) {
196 TestingPrefService* service = profile()->GetTestingPrefService(); 196 TestingPrefService* service = profile()->GetTestingPrefService();
197 service->SetManagedPrefWithoutNotification( 197 service->SetManagedPref(
198 prefs::kDefaultSearchProviderEnabled, 198 prefs::kDefaultSearchProviderEnabled,
199 Value::CreateBooleanValue(enabled)); 199 Value::CreateBooleanValue(enabled));
200 service->SetManagedPrefWithoutNotification( 200 service->SetManagedPref(
201 prefs::kDefaultSearchProviderName, 201 prefs::kDefaultSearchProviderName,
202 Value::CreateStringValue(name)); 202 Value::CreateStringValue(name));
203 service->SetManagedPrefWithoutNotification( 203 service->SetManagedPref(
204 prefs::kDefaultSearchProviderSearchURL, 204 prefs::kDefaultSearchProviderSearchURL,
205 Value::CreateStringValue(search_url)); 205 Value::CreateStringValue(search_url));
206 service->SetManagedPrefWithoutNotification( 206 service->SetManagedPref(
207 prefs::kDefaultSearchProviderSuggestURL, 207 prefs::kDefaultSearchProviderSuggestURL,
208 Value::CreateStringValue(suggest_url)); 208 Value::CreateStringValue(suggest_url));
209 service->SetManagedPrefWithoutNotification( 209 service->SetManagedPref(
210 prefs::kDefaultSearchProviderIconURL, 210 prefs::kDefaultSearchProviderIconURL,
211 Value::CreateStringValue(icon_url)); 211 Value::CreateStringValue(icon_url));
212 service->SetManagedPrefWithoutNotification( 212 service->SetManagedPref(
213 prefs::kDefaultSearchProviderEncodings, 213 prefs::kDefaultSearchProviderEncodings,
214 Value::CreateStringValue(encodings)); 214 Value::CreateStringValue(encodings));
215 service->SetManagedPrefWithoutNotification( 215 service->SetManagedPref(
216 prefs::kDefaultSearchProviderKeyword, 216 prefs::kDefaultSearchProviderKeyword,
217 Value::CreateStringValue(keyword)); 217 Value::CreateStringValue(keyword));
218 // Clear the IDs that are not specified via policy.
219 service->SetManagedPrefWithoutNotification(
220 prefs::kDefaultSearchProviderID, new StringValue(""));
221 service->SetManagedPrefWithoutNotification(
222 prefs::kDefaultSearchProviderPrepopulateID, new StringValue(""));
223 NotifyManagedPrefsHaveChanged();
224 } 218 }
225 219
226 // Remove all the managed preferences for the default search provider and 220 // Remove all the managed preferences for the default search provider and
227 // trigger notification. 221 // trigger notification.
228 void RemoveManagedDefaultSearchPreferences() { 222 void RemoveManagedDefaultSearchPreferences() {
229 TestingPrefService* service = profile()->GetTestingPrefService(); 223 TestingPrefService* service = profile()->GetTestingPrefService();
230 service->RemoveManagedPrefWithoutNotification( 224 service->RemoveManagedPref(
225 prefs::kDefaultSearchProviderSearchURL);
226 service->RemoveManagedPref(
231 prefs::kDefaultSearchProviderEnabled); 227 prefs::kDefaultSearchProviderEnabled);
232 service->RemoveManagedPrefWithoutNotification( 228 service->RemoveManagedPref(
233 prefs::kDefaultSearchProviderName); 229 prefs::kDefaultSearchProviderName);
234 service->RemoveManagedPrefWithoutNotification( 230 service->RemoveManagedPref(
235 prefs::kDefaultSearchProviderSearchURL);
236 service->RemoveManagedPrefWithoutNotification(
237 prefs::kDefaultSearchProviderSuggestURL); 231 prefs::kDefaultSearchProviderSuggestURL);
238 service->RemoveManagedPrefWithoutNotification( 232 service->RemoveManagedPref(
239 prefs::kDefaultSearchProviderIconURL); 233 prefs::kDefaultSearchProviderIconURL);
240 service->RemoveManagedPrefWithoutNotification( 234 service->RemoveManagedPref(
241 prefs::kDefaultSearchProviderEncodings); 235 prefs::kDefaultSearchProviderEncodings);
242 service->RemoveManagedPrefWithoutNotification( 236 service->RemoveManagedPref(
243 prefs::kDefaultSearchProviderKeyword); 237 prefs::kDefaultSearchProviderKeyword);
244 service->RemoveManagedPrefWithoutNotification( 238 service->RemoveManagedPref(
245 prefs::kDefaultSearchProviderID); 239 prefs::kDefaultSearchProviderID);
246 service->RemoveManagedPrefWithoutNotification( 240 service->RemoveManagedPref(
247 prefs::kDefaultSearchProviderPrepopulateID); 241 prefs::kDefaultSearchProviderPrepopulateID);
248 NotifyManagedPrefsHaveChanged();
249 } 242 }
250 243
251 // Creates a TemplateURL with the same prepopluated id as a real prepopulated 244 // Creates a TemplateURL with the same prepopluated id as a real prepopulated
252 // item. The input number determines which prepopulated item. The caller is 245 // item. The input number determines which prepopulated item. The caller is
253 // responsible for owning the returned TemplateURL*. 246 // responsible for owning the returned TemplateURL*.
254 TemplateURL* CreateReplaceablePreloadedTemplateURL( 247 TemplateURL* CreateReplaceablePreloadedTemplateURL(
255 size_t index_offset_from_default, 248 size_t index_offset_from_default,
256 std::wstring* prepopulated_display_url); 249 std::wstring* prepopulated_display_url);
257 250
258 // Verifies the behavior of when a preloaded url later gets changed. 251 // Verifies the behavior of when a preloaded url later gets changed.
259 // Since the input is the offset from the default, when one passes in 252 // Since the input is the offset from the default, when one passes in
260 // 0, it tests the default. Passing in a number > 0 will verify what 253 // 0, it tests the default. Passing in a number > 0 will verify what
261 // happens when a preloaded url that is not the default gets updated. 254 // happens when a preloaded url that is not the default gets updated.
262 void TestLoadUpdatingPreloadedURL(size_t index_offset_from_default); 255 void TestLoadUpdatingPreloadedURL(size_t index_offset_from_default);
263 256
264 // Helper methods to make calling TemplateURLModelTestUtil methods less 257 // Helper methods to make calling TemplateURLModelTestUtil methods less
265 // visually noisy in the test code. 258 // visually noisy in the test code.
266 void VerifyObserverCount(int expected_changed_count) { 259 void VerifyObserverCount(int expected_changed_count) {
267 test_util_.VerifyObserverCount(expected_changed_count); 260 EXPECT_EQ(expected_changed_count, test_util_.GetObserverCount());
261 test_util_.ResetObserverCount();
262 }
263 void VerifyObserverFired() {
264 EXPECT_LE(1, test_util_.GetObserverCount());
265 test_util_.ResetObserverCount();
268 } 266 }
269 void BlockTillServiceProcessesRequests() { 267 void BlockTillServiceProcessesRequests() {
270 TemplateURLModelTestUtil::BlockTillServiceProcessesRequests(); 268 TemplateURLModelTestUtil::BlockTillServiceProcessesRequests();
271 } 269 }
272 void VerifyLoad() { test_util_.VerifyLoad(); } 270 void VerifyLoad() { test_util_.VerifyLoad(); }
273 void ChangeModelToLoadState() { test_util_.ChangeModelToLoadState(); } 271 void ChangeModelToLoadState() { test_util_.ChangeModelToLoadState(); }
274 void ResetModel(bool verify_load) { test_util_.ResetModel(verify_load); } 272 void ResetModel(bool verify_load) { test_util_.ResetModel(verify_load); }
275 std::wstring GetAndClearSearchTerm() { 273 std::wstring GetAndClearSearchTerm() {
276 return test_util_.GetAndClearSearchTerm(); 274 return test_util_.GetAndClearSearchTerm();
277 } 275 }
(...skipping 828 matching lines...) Expand 10 before | Expand all | Expand 10 after
1106 EXPECT_FALSE(model()->is_default_search_managed()); 1104 EXPECT_FALSE(model()->is_default_search_managed());
1107 EXPECT_EQ(1 + initial_count, model()->GetTemplateURLs().size()); 1105 EXPECT_EQ(1 + initial_count, model()->GetTemplateURLs().size());
1108 1106
1109 // Set a managed preference that establishes a default search provider. 1107 // Set a managed preference that establishes a default search provider.
1110 const char kName[] = "test1"; 1108 const char kName[] = "test1";
1111 const char kSearchURL[] = "http://test.com/search?t={searchTerms}"; 1109 const char kSearchURL[] = "http://test.com/search?t={searchTerms}";
1112 const char kIconURL[] = "http://test.com/icon.jpg"; 1110 const char kIconURL[] = "http://test.com/icon.jpg";
1113 const char kEncodings[] = "UTF-16;UTF-32"; 1111 const char kEncodings[] = "UTF-16;UTF-32";
1114 SetManagedDefaultSearchPreferences(true, kName, kSearchURL, "", kIconURL, 1112 SetManagedDefaultSearchPreferences(true, kName, kSearchURL, "", kIconURL,
1115 kEncodings, ""); 1113 kEncodings, "");
1116 VerifyObserverCount(1); 1114 VerifyObserverFired();
1117 EXPECT_TRUE(model()->is_default_search_managed()); 1115 EXPECT_TRUE(model()->is_default_search_managed());
1118 EXPECT_EQ(2 + initial_count, model()->GetTemplateURLs().size()); 1116 EXPECT_EQ(2 + initial_count, model()->GetTemplateURLs().size());
1119 1117
1120 // Verify that the default manager we are getting is the managed one. 1118 // Verify that the default manager we are getting is the managed one.
1121 scoped_ptr<TemplateURL> expected_managed_default1(new TemplateURL()); 1119 scoped_ptr<TemplateURL> expected_managed_default1(new TemplateURL());
1122 expected_managed_default1->SetURL(kSearchURL, 0, 0); 1120 expected_managed_default1->SetURL(kSearchURL, 0, 0);
1123 expected_managed_default1->SetFavIconURL(GURL(kIconURL)); 1121 expected_managed_default1->SetFavIconURL(GURL(kIconURL));
1124 expected_managed_default1->set_short_name(L"test1"); 1122 expected_managed_default1->set_short_name(L"test1");
1125 std::vector<std::string> encodings_vector; 1123 std::vector<std::string> encodings_vector;
1126 base::SplitString(kEncodings, ';', &encodings_vector); 1124 base::SplitString(kEncodings, ';', &encodings_vector);
1127 expected_managed_default1->set_input_encodings(encodings_vector); 1125 expected_managed_default1->set_input_encodings(encodings_vector);
1128 expected_managed_default1->set_show_in_default_list(true); 1126 expected_managed_default1->set_show_in_default_list(true);
1129 const TemplateURL* actual_managed_default = 1127 const TemplateURL* actual_managed_default =
1130 model()->GetDefaultSearchProvider(); 1128 model()->GetDefaultSearchProvider();
1131 ExpectSimilar(actual_managed_default, expected_managed_default1.get()); 1129 ExpectSimilar(actual_managed_default, expected_managed_default1.get());
1132 EXPECT_EQ(actual_managed_default->show_in_default_list(), true); 1130 EXPECT_EQ(actual_managed_default->show_in_default_list(), true);
1133 1131
1134 // Update the managed preference and check that the model has changed. 1132 // Update the managed preference and check that the model has changed.
1135 const char kNewName[] = "test2"; 1133 const char kNewName[] = "test2";
1136 const char kNewSearchURL[] = "http://other.com/search?t={searchTerms}"; 1134 const char kNewSearchURL[] = "http://other.com/search?t={searchTerms}";
1137 const char kNewSuggestURL[] = "http://other.com/suggest?t={searchTerms}"; 1135 const char kNewSuggestURL[] = "http://other.com/suggest?t={searchTerms}";
1138 SetManagedDefaultSearchPreferences(true, kNewName, kNewSearchURL, 1136 SetManagedDefaultSearchPreferences(true, kNewName, kNewSearchURL,
1139 kNewSuggestURL, "", "", ""); 1137 kNewSuggestURL, "", "", "");
1140 VerifyObserverCount(1); 1138 VerifyObserverFired();
1141 EXPECT_TRUE(model()->is_default_search_managed()); 1139 EXPECT_TRUE(model()->is_default_search_managed());
1142 EXPECT_EQ(2 + initial_count, model()->GetTemplateURLs().size()); 1140 EXPECT_EQ(2 + initial_count, model()->GetTemplateURLs().size());
1143 1141
1144 // Verify that the default manager we are now getting is the correct one. 1142 // Verify that the default manager we are now getting is the correct one.
1145 scoped_ptr<TemplateURL> expected_managed_default2(new TemplateURL()); 1143 scoped_ptr<TemplateURL> expected_managed_default2(new TemplateURL());
1146 expected_managed_default2->SetURL(kNewSearchURL, 0, 0); 1144 expected_managed_default2->SetURL(kNewSearchURL, 0, 0);
1147 expected_managed_default2->SetSuggestionsURL(kNewSuggestURL, 0, 0); 1145 expected_managed_default2->SetSuggestionsURL(kNewSuggestURL, 0, 0);
1148 expected_managed_default2->set_short_name(L"test2"); 1146 expected_managed_default2->set_short_name(L"test2");
1149 expected_managed_default2->set_show_in_default_list(true); 1147 expected_managed_default2->set_show_in_default_list(true);
1150 actual_managed_default = model()->GetDefaultSearchProvider(); 1148 actual_managed_default = model()->GetDefaultSearchProvider();
1151 ExpectSimilar(actual_managed_default, expected_managed_default2.get()); 1149 ExpectSimilar(actual_managed_default, expected_managed_default2.get());
1152 EXPECT_EQ(actual_managed_default->show_in_default_list(), true); 1150 EXPECT_EQ(actual_managed_default->show_in_default_list(), true);
1153 1151
1154 // Remove all the managed prefs and check that we are no longer managed. 1152 // Remove all the managed prefs and check that we are no longer managed.
1155 RemoveManagedDefaultSearchPreferences(); 1153 RemoveManagedDefaultSearchPreferences();
1156 VerifyObserverCount(1); 1154 VerifyObserverFired();
1157 EXPECT_FALSE(model()->is_default_search_managed()); 1155 EXPECT_FALSE(model()->is_default_search_managed());
1158 EXPECT_EQ(1 + initial_count, model()->GetTemplateURLs().size()); 1156 EXPECT_EQ(1 + initial_count, model()->GetTemplateURLs().size());
1159 1157
1160 // The default should now be the first URL added 1158 // The default should now be the first URL added
1161 const TemplateURL* actual_final_managed_default = 1159 const TemplateURL* actual_final_managed_default =
1162 model()->GetDefaultSearchProvider(); 1160 model()->GetDefaultSearchProvider();
1163 ExpectSimilar(actual_final_managed_default, 1161 ExpectSimilar(actual_final_managed_default,
1164 model()->GetTemplateURLs()[0]); 1162 model()->GetTemplateURLs()[0]);
1165 EXPECT_EQ(actual_final_managed_default->show_in_default_list(), true); 1163 EXPECT_EQ(actual_final_managed_default->show_in_default_list(), true);
1166 1164
1167 // Disable the default search provider through policy. 1165 // Disable the default search provider through policy.
1168 SetManagedDefaultSearchPreferences(false, "", "", "", "", "", ""); 1166 SetManagedDefaultSearchPreferences(false, "", "", "", "", "", "");
1169 VerifyObserverCount(1); 1167 VerifyObserverFired();
1170 EXPECT_TRUE(model()->is_default_search_managed()); 1168 EXPECT_TRUE(model()->is_default_search_managed());
1171 EXPECT_TRUE(NULL == model()->GetDefaultSearchProvider()); 1169 EXPECT_TRUE(NULL == model()->GetDefaultSearchProvider());
1172 EXPECT_EQ(1 + initial_count, model()->GetTemplateURLs().size()); 1170 EXPECT_EQ(1 + initial_count, model()->GetTemplateURLs().size());
1173 1171
1174 // Re-enable it. 1172 // Re-enable it.
1175 SetManagedDefaultSearchPreferences(true, kName, kSearchURL, "", kIconURL, 1173 SetManagedDefaultSearchPreferences(true, kName, kSearchURL, "", kIconURL,
1176 kEncodings, ""); 1174 kEncodings, "");
1177 VerifyObserverCount(1); 1175 VerifyObserverFired();
1178 EXPECT_TRUE(model()->is_default_search_managed()); 1176 EXPECT_TRUE(model()->is_default_search_managed());
1179 EXPECT_EQ(2 + initial_count, model()->GetTemplateURLs().size()); 1177 EXPECT_EQ(2 + initial_count, model()->GetTemplateURLs().size());
1180 1178
1181 // Verify that the default manager we are getting is the managed one. 1179 // Verify that the default manager we are getting is the managed one.
1182 actual_managed_default = model()->GetDefaultSearchProvider(); 1180 actual_managed_default = model()->GetDefaultSearchProvider();
1183 ExpectSimilar(actual_managed_default, expected_managed_default1.get()); 1181 ExpectSimilar(actual_managed_default, expected_managed_default1.get());
1184 EXPECT_EQ(actual_managed_default->show_in_default_list(), true); 1182 EXPECT_EQ(actual_managed_default->show_in_default_list(), true);
1185 } 1183 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698