OLD | NEW |
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...) Loading... |
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...) Loading... |
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 } |
OLD | NEW |