OLD | NEW |
| (Empty) |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #include "base/memory/scoped_ptr.h" | |
6 #include "components/policy/core/browser/configuration_policy_pref_store.h" | |
7 #include "components/policy/core/browser/configuration_policy_pref_store_test.h" | |
8 #include "components/search_engines/default_search_manager.h" | |
9 #include "components/search_engines/default_search_policy_handler.h" | |
10 #include "components/search_engines/search_engines_pref_names.h" | |
11 #include "policy/policy_constants.h" | |
12 | |
13 namespace { | |
14 // TODO(caitkp): Should we find a way to route this through DefaultSearchManager | |
15 // to avoid hardcoding this here? | |
16 const char kDefaultSearchProviderData[] = | |
17 "default_search_provider_data.template_url_data"; | |
18 } // namespace | |
19 | |
20 namespace policy { | |
21 | |
22 class DefaultSearchPolicyHandlerTest | |
23 : public ConfigurationPolicyPrefStoreTest { | |
24 public: | |
25 DefaultSearchPolicyHandlerTest() { | |
26 default_alternate_urls_.AppendString( | |
27 "http://www.google.com/#q={searchTerms}"); | |
28 default_alternate_urls_.AppendString( | |
29 "http://www.google.com/search#q={searchTerms}"); | |
30 } | |
31 | |
32 virtual void SetUp() OVERRIDE { | |
33 handler_list_.AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( | |
34 new DefaultSearchPolicyHandler)); | |
35 } | |
36 | |
37 protected: | |
38 static const char kSearchURL[]; | |
39 static const char kSuggestURL[]; | |
40 static const char kIconURL[]; | |
41 static const char kName[]; | |
42 static const char kKeyword[]; | |
43 static const char kReplacementKey[]; | |
44 static const char kImageURL[]; | |
45 static const char kImageParams[]; | |
46 static const char kNewTabURL[]; | |
47 static const char kFileSearchURL[]; | |
48 static const char kHostName[]; | |
49 | |
50 // Build a default search policy by setting search-related keys in |policy| to | |
51 // reasonable values. You can update any of the keys after calling this | |
52 // method. | |
53 void BuildDefaultSearchPolicy(PolicyMap* policy); | |
54 | |
55 base::ListValue default_alternate_urls_; | |
56 }; | |
57 | |
58 const char DefaultSearchPolicyHandlerTest::kSearchURL[] = | |
59 "http://test.com/search?t={searchTerms}"; | |
60 const char DefaultSearchPolicyHandlerTest::kSuggestURL[] = | |
61 "http://test.com/sugg?={searchTerms}"; | |
62 const char DefaultSearchPolicyHandlerTest::kIconURL[] = | |
63 "http://test.com/icon.jpg"; | |
64 const char DefaultSearchPolicyHandlerTest::kName[] = | |
65 "MyName"; | |
66 const char DefaultSearchPolicyHandlerTest::kKeyword[] = | |
67 "MyKeyword"; | |
68 const char DefaultSearchPolicyHandlerTest::kReplacementKey[] = | |
69 "espv"; | |
70 const char DefaultSearchPolicyHandlerTest::kImageURL[] = | |
71 "http://test.com/searchbyimage/upload"; | |
72 const char DefaultSearchPolicyHandlerTest::kImageParams[] = | |
73 "image_content=content,image_url=http://test.com/test.png"; | |
74 const char DefaultSearchPolicyHandlerTest::kNewTabURL[] = | |
75 "http://test.com/newtab"; | |
76 const char DefaultSearchPolicyHandlerTest::kFileSearchURL[] = | |
77 "file:///c:/path/to/search?t={searchTerms}"; | |
78 const char DefaultSearchPolicyHandlerTest::kHostName[] = "test.com"; | |
79 | |
80 void DefaultSearchPolicyHandlerTest:: | |
81 BuildDefaultSearchPolicy(PolicyMap* policy) { | |
82 base::ListValue* encodings = new base::ListValue(); | |
83 encodings->AppendString("UTF-16"); | |
84 encodings->AppendString("UTF-8"); | |
85 policy->Set(key::kDefaultSearchProviderEnabled, POLICY_LEVEL_MANDATORY, | |
86 POLICY_SCOPE_USER, base::Value::CreateBooleanValue(true), NULL); | |
87 policy->Set(key::kDefaultSearchProviderSearchURL, POLICY_LEVEL_MANDATORY, | |
88 POLICY_SCOPE_USER, base::Value::CreateStringValue(kSearchURL), | |
89 NULL); | |
90 policy->Set(key::kDefaultSearchProviderName, POLICY_LEVEL_MANDATORY, | |
91 POLICY_SCOPE_USER, base::Value::CreateStringValue(kName), NULL); | |
92 policy->Set(key::kDefaultSearchProviderKeyword, POLICY_LEVEL_MANDATORY, | |
93 POLICY_SCOPE_USER, base::Value::CreateStringValue(kKeyword), | |
94 NULL); | |
95 policy->Set(key::kDefaultSearchProviderSuggestURL, POLICY_LEVEL_MANDATORY, | |
96 POLICY_SCOPE_USER, base::Value::CreateStringValue(kSuggestURL), | |
97 NULL); | |
98 policy->Set(key::kDefaultSearchProviderIconURL, POLICY_LEVEL_MANDATORY, | |
99 POLICY_SCOPE_USER, base::Value::CreateStringValue(kIconURL), | |
100 NULL); | |
101 policy->Set(key::kDefaultSearchProviderEncodings, POLICY_LEVEL_MANDATORY, | |
102 POLICY_SCOPE_USER, encodings, NULL); | |
103 policy->Set(key::kDefaultSearchProviderAlternateURLs, POLICY_LEVEL_MANDATORY, | |
104 POLICY_SCOPE_USER, default_alternate_urls_.DeepCopy(), NULL); | |
105 policy->Set(key::kDefaultSearchProviderSearchTermsReplacementKey, | |
106 POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | |
107 base::Value::CreateStringValue(kReplacementKey), NULL); | |
108 policy->Set(key::kDefaultSearchProviderImageURL, | |
109 POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | |
110 base::Value::CreateStringValue(kImageURL), NULL); | |
111 policy->Set(key::kDefaultSearchProviderImageURLPostParams, | |
112 POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | |
113 base::Value::CreateStringValue(kImageParams), NULL); | |
114 policy->Set(key::kDefaultSearchProviderNewTabURL, | |
115 POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | |
116 base::Value::CreateStringValue(kNewTabURL), NULL); | |
117 } | |
118 | |
119 // Checks that if the policy for default search is valid, i.e. there's a | |
120 // search URL, that all the elements have been given proper defaults. | |
121 TEST_F(DefaultSearchPolicyHandlerTest, MinimallyDefined) { | |
122 PolicyMap policy; | |
123 policy.Set(key::kDefaultSearchProviderEnabled, POLICY_LEVEL_MANDATORY, | |
124 POLICY_SCOPE_USER, base::Value::CreateBooleanValue(true), NULL); | |
125 policy.Set(key::kDefaultSearchProviderSearchURL, POLICY_LEVEL_MANDATORY, | |
126 POLICY_SCOPE_USER, base::Value::CreateStringValue(kSearchURL), | |
127 NULL); | |
128 UpdateProviderPolicy(policy); | |
129 | |
130 const base::Value* value = NULL; | |
131 EXPECT_TRUE(store_->GetValue(prefs::kDefaultSearchProviderSearchURL, &value)); | |
132 EXPECT_TRUE(base::StringValue(kSearchURL).Equals(value)); | |
133 | |
134 EXPECT_TRUE(store_->GetValue(prefs::kDefaultSearchProviderName, &value)); | |
135 EXPECT_TRUE(base::StringValue(kHostName).Equals(value)); | |
136 | |
137 EXPECT_TRUE(store_->GetValue(prefs::kDefaultSearchProviderKeyword, &value)); | |
138 EXPECT_TRUE(base::StringValue(kHostName).Equals(value)); | |
139 | |
140 EXPECT_TRUE(store_->GetValue(prefs::kDefaultSearchProviderSuggestURL, | |
141 &value)); | |
142 EXPECT_TRUE(base::StringValue(std::string()).Equals(value)); | |
143 | |
144 EXPECT_TRUE(store_->GetValue(prefs::kDefaultSearchProviderIconURL, &value)); | |
145 EXPECT_TRUE(base::StringValue(std::string()).Equals(value)); | |
146 | |
147 EXPECT_TRUE(store_->GetValue(prefs::kDefaultSearchProviderEncodings, &value)); | |
148 EXPECT_TRUE(base::StringValue(std::string()).Equals(value)); | |
149 | |
150 EXPECT_TRUE(store_->GetValue(prefs::kDefaultSearchProviderInstantURL, | |
151 &value)); | |
152 EXPECT_TRUE(base::StringValue(std::string()).Equals(value)); | |
153 | |
154 EXPECT_TRUE(store_->GetValue(prefs::kDefaultSearchProviderAlternateURLs, | |
155 &value)); | |
156 EXPECT_TRUE(base::ListValue().Equals(value)); | |
157 | |
158 EXPECT_TRUE( | |
159 store_->GetValue(prefs::kDefaultSearchProviderSearchTermsReplacementKey, | |
160 &value)); | |
161 EXPECT_TRUE(base::StringValue(std::string()).Equals(value)); | |
162 | |
163 EXPECT_TRUE(store_->GetValue(prefs::kDefaultSearchProviderImageURL, &value)); | |
164 EXPECT_TRUE(base::StringValue(std::string()).Equals(value)); | |
165 | |
166 EXPECT_TRUE(store_->GetValue( | |
167 prefs::kDefaultSearchProviderSearchURLPostParams, &value)); | |
168 EXPECT_TRUE(base::StringValue(std::string()).Equals(value)); | |
169 | |
170 EXPECT_TRUE(store_->GetValue( | |
171 prefs::kDefaultSearchProviderSuggestURLPostParams, &value)); | |
172 EXPECT_TRUE(base::StringValue(std::string()).Equals(value)); | |
173 | |
174 EXPECT_TRUE(store_->GetValue( | |
175 prefs::kDefaultSearchProviderInstantURLPostParams, &value)); | |
176 EXPECT_TRUE(base::StringValue(std::string()).Equals(value)); | |
177 | |
178 EXPECT_TRUE(store_->GetValue( | |
179 prefs::kDefaultSearchProviderImageURLPostParams, &value)); | |
180 EXPECT_TRUE(base::StringValue(std::string()).Equals(value)); | |
181 | |
182 EXPECT_TRUE(store_->GetValue( | |
183 prefs::kDefaultSearchProviderNewTabURL, &value)); | |
184 EXPECT_TRUE(base::StringValue(std::string()).Equals(value)); | |
185 } | |
186 | |
187 // Checks that for a fully defined search policy, all elements have been | |
188 // read properly. | |
189 TEST_F(DefaultSearchPolicyHandlerTest, FullyDefined) { | |
190 PolicyMap policy; | |
191 BuildDefaultSearchPolicy(&policy); | |
192 UpdateProviderPolicy(policy); | |
193 | |
194 const base::Value* value = NULL; | |
195 EXPECT_TRUE(store_->GetValue(prefs::kDefaultSearchProviderSearchURL, &value)); | |
196 EXPECT_TRUE(base::StringValue(kSearchURL).Equals(value)); | |
197 | |
198 EXPECT_TRUE(store_->GetValue(prefs::kDefaultSearchProviderName, &value)); | |
199 EXPECT_TRUE(base::StringValue(kName).Equals(value)); | |
200 | |
201 EXPECT_TRUE(store_->GetValue(prefs::kDefaultSearchProviderKeyword, &value)); | |
202 EXPECT_TRUE(base::StringValue(kKeyword).Equals(value)); | |
203 | |
204 EXPECT_TRUE(store_->GetValue(prefs::kDefaultSearchProviderSuggestURL, | |
205 &value)); | |
206 EXPECT_TRUE(base::StringValue(kSuggestURL).Equals(value)); | |
207 | |
208 EXPECT_TRUE(store_->GetValue(prefs::kDefaultSearchProviderIconURL, &value)); | |
209 EXPECT_TRUE(base::StringValue(kIconURL).Equals(value)); | |
210 | |
211 EXPECT_TRUE(store_->GetValue(prefs::kDefaultSearchProviderEncodings, &value)); | |
212 EXPECT_TRUE(base::StringValue("UTF-16;UTF-8").Equals(value)); | |
213 | |
214 EXPECT_TRUE(store_->GetValue( | |
215 prefs::kDefaultSearchProviderAlternateURLs, &value)); | |
216 EXPECT_TRUE(default_alternate_urls_.Equals(value)); | |
217 | |
218 EXPECT_TRUE( | |
219 store_->GetValue(prefs::kDefaultSearchProviderSearchTermsReplacementKey, | |
220 &value)); | |
221 EXPECT_TRUE(base::StringValue(kReplacementKey).Equals(value)); | |
222 | |
223 EXPECT_TRUE(store_->GetValue(prefs::kDefaultSearchProviderImageURL, &value)); | |
224 EXPECT_TRUE(base::StringValue(std::string(kImageURL)).Equals(value)); | |
225 | |
226 EXPECT_TRUE(store_->GetValue(prefs::kDefaultSearchProviderImageURLPostParams, | |
227 &value)); | |
228 EXPECT_TRUE(base::StringValue(std::string(kImageParams)).Equals(value)); | |
229 | |
230 EXPECT_TRUE(store_->GetValue( | |
231 prefs::kDefaultSearchProviderSearchURLPostParams, &value)); | |
232 EXPECT_TRUE(base::StringValue(std::string()).Equals(value)); | |
233 | |
234 EXPECT_TRUE(store_->GetValue( | |
235 prefs::kDefaultSearchProviderSuggestURLPostParams, &value)); | |
236 EXPECT_TRUE(base::StringValue(std::string()).Equals(value)); | |
237 | |
238 EXPECT_TRUE(store_->GetValue( | |
239 prefs::kDefaultSearchProviderInstantURLPostParams, &value)); | |
240 EXPECT_TRUE(base::StringValue(std::string()).Equals(value)); | |
241 } | |
242 | |
243 // Checks that if the default search policy is missing, that no elements of the | |
244 // default search policy will be present. | |
245 TEST_F(DefaultSearchPolicyHandlerTest, MissingUrl) { | |
246 PolicyMap policy; | |
247 BuildDefaultSearchPolicy(&policy); | |
248 policy.Erase(key::kDefaultSearchProviderSearchURL); | |
249 UpdateProviderPolicy(policy); | |
250 | |
251 EXPECT_FALSE(store_->GetValue(prefs::kDefaultSearchProviderSearchURL, NULL)); | |
252 EXPECT_FALSE(store_->GetValue(prefs::kDefaultSearchProviderName, NULL)); | |
253 EXPECT_FALSE(store_->GetValue(prefs::kDefaultSearchProviderKeyword, NULL)); | |
254 EXPECT_FALSE(store_->GetValue(prefs::kDefaultSearchProviderSuggestURL, NULL)); | |
255 EXPECT_FALSE(store_->GetValue(prefs::kDefaultSearchProviderIconURL, NULL)); | |
256 EXPECT_FALSE(store_->GetValue(prefs::kDefaultSearchProviderEncodings, NULL)); | |
257 EXPECT_FALSE(store_->GetValue(prefs::kDefaultSearchProviderAlternateURLs, | |
258 NULL)); | |
259 EXPECT_FALSE(store_->GetValue( | |
260 prefs::kDefaultSearchProviderSearchTermsReplacementKey, NULL)); | |
261 EXPECT_FALSE(store_->GetValue(prefs::kDefaultSearchProviderImageURL, NULL)); | |
262 EXPECT_FALSE(store_->GetValue( | |
263 prefs::kDefaultSearchProviderImageURLPostParams, NULL)); | |
264 EXPECT_FALSE(store_->GetValue(prefs::kDefaultSearchProviderInstantURL, NULL)); | |
265 EXPECT_FALSE(store_->GetValue(prefs::kDefaultSearchProviderNewTabURL, NULL)); | |
266 } | |
267 | |
268 // Checks that if the default search policy is invalid, that no elements of the | |
269 // default search policy will be present. | |
270 TEST_F(DefaultSearchPolicyHandlerTest, Invalid) { | |
271 PolicyMap policy; | |
272 BuildDefaultSearchPolicy(&policy); | |
273 const char bad_search_url[] = "http://test.com/noSearchTerms"; | |
274 policy.Set(key::kDefaultSearchProviderSearchURL, POLICY_LEVEL_MANDATORY, | |
275 POLICY_SCOPE_USER, | |
276 base::Value::CreateStringValue(bad_search_url), NULL); | |
277 UpdateProviderPolicy(policy); | |
278 | |
279 EXPECT_FALSE(store_->GetValue(prefs::kDefaultSearchProviderSearchURL, NULL)); | |
280 EXPECT_FALSE(store_->GetValue(prefs::kDefaultSearchProviderName, NULL)); | |
281 EXPECT_FALSE(store_->GetValue(prefs::kDefaultSearchProviderKeyword, NULL)); | |
282 EXPECT_FALSE(store_->GetValue(prefs::kDefaultSearchProviderSuggestURL, NULL)); | |
283 EXPECT_FALSE(store_->GetValue(prefs::kDefaultSearchProviderIconURL, NULL)); | |
284 EXPECT_FALSE(store_->GetValue(prefs::kDefaultSearchProviderEncodings, NULL)); | |
285 EXPECT_FALSE(store_->GetValue(prefs::kDefaultSearchProviderAlternateURLs, | |
286 NULL)); | |
287 EXPECT_FALSE(store_->GetValue( | |
288 prefs::kDefaultSearchProviderSearchTermsReplacementKey, NULL)); | |
289 EXPECT_FALSE(store_->GetValue(prefs::kDefaultSearchProviderImageURL, NULL)); | |
290 EXPECT_FALSE(store_->GetValue( | |
291 prefs::kDefaultSearchProviderImageURLPostParams, NULL)); | |
292 EXPECT_FALSE(store_->GetValue(prefs::kDefaultSearchProviderInstantURL, NULL)); | |
293 EXPECT_FALSE(store_->GetValue(prefs::kDefaultSearchProviderNewTabURL, NULL)); | |
294 } | |
295 | |
296 // Checks that if the default search policy is invalid, that no elements of the | |
297 // default search policy will be present. | |
298 TEST_F(DefaultSearchPolicyHandlerTest, Disabled) { | |
299 PolicyMap policy; | |
300 policy.Set(key::kDefaultSearchProviderEnabled, POLICY_LEVEL_MANDATORY, | |
301 POLICY_SCOPE_USER, base::Value::CreateBooleanValue(false), NULL); | |
302 UpdateProviderPolicy(policy); | |
303 | |
304 const base::Value* value = NULL; | |
305 EXPECT_TRUE(store_->GetValue(prefs::kDefaultSearchProviderEnabled, &value)); | |
306 base::FundamentalValue expected_enabled(false); | |
307 EXPECT_TRUE(base::Value::Equals(&expected_enabled, value)); | |
308 EXPECT_TRUE(store_->GetValue(prefs::kDefaultSearchProviderSearchURL, &value)); | |
309 base::StringValue expected_search_url((std::string())); | |
310 EXPECT_TRUE(base::Value::Equals(&expected_search_url, value)); | |
311 } | |
312 | |
313 // Checks that for a fully defined search policy, all elements have been | |
314 // read properly into the dictionary pref. | |
315 TEST_F(DefaultSearchPolicyHandlerTest, DictionaryPref) { | |
316 PolicyMap policy; | |
317 BuildDefaultSearchPolicy(&policy); | |
318 UpdateProviderPolicy(policy); | |
319 | |
320 const base::Value* temp = NULL; | |
321 const base::DictionaryValue* dictionary; | |
322 std::string value; | |
323 const base::ListValue* list_value; | |
324 EXPECT_TRUE(store_->GetValue(kDefaultSearchProviderData, &temp)); | |
325 temp->GetAsDictionary(&dictionary); | |
326 | |
327 EXPECT_TRUE(dictionary->GetString(DefaultSearchManager::kURL, &value)); | |
328 EXPECT_EQ(kSearchURL, value); | |
329 EXPECT_TRUE(dictionary->GetString(DefaultSearchManager::kShortName, &value)); | |
330 EXPECT_EQ(kName, value); | |
331 EXPECT_TRUE(dictionary->GetString(DefaultSearchManager::kKeyword, &value)); | |
332 EXPECT_EQ(kKeyword, value); | |
333 | |
334 EXPECT_TRUE( | |
335 dictionary->GetString(DefaultSearchManager::kSuggestionsURL, &value)); | |
336 EXPECT_EQ(kSuggestURL, value); | |
337 EXPECT_TRUE(dictionary->GetString(DefaultSearchManager::kFaviconURL, &value)); | |
338 EXPECT_EQ(kIconURL, value); | |
339 | |
340 base::ListValue encodings; | |
341 encodings.AppendString("UTF-16"); | |
342 encodings.AppendString("UTF-8"); | |
343 | |
344 EXPECT_TRUE( | |
345 dictionary->GetList(DefaultSearchManager::kInputEncodings, &list_value)); | |
346 EXPECT_TRUE(encodings.Equals(list_value)); | |
347 | |
348 EXPECT_TRUE( | |
349 dictionary->GetList(DefaultSearchManager::kAlternateURLs, &list_value)); | |
350 EXPECT_TRUE(default_alternate_urls_.Equals(list_value)); | |
351 | |
352 EXPECT_TRUE(dictionary->GetString( | |
353 DefaultSearchManager::kSearchTermsReplacementKey, &value)); | |
354 EXPECT_EQ(kReplacementKey, value); | |
355 | |
356 EXPECT_TRUE(dictionary->GetString(DefaultSearchManager::kImageURL, &value)); | |
357 EXPECT_EQ(kImageURL, value); | |
358 | |
359 EXPECT_TRUE( | |
360 dictionary->GetString(DefaultSearchManager::kImageURLPostParams, &value)); | |
361 EXPECT_EQ(kImageParams, value); | |
362 | |
363 EXPECT_TRUE(dictionary->GetString(DefaultSearchManager::kSearchURLPostParams, | |
364 &value)); | |
365 EXPECT_EQ(std::string(), value); | |
366 | |
367 EXPECT_TRUE(dictionary->GetString( | |
368 DefaultSearchManager::kSuggestionsURLPostParams, &value)); | |
369 EXPECT_EQ(std::string(), value); | |
370 | |
371 EXPECT_TRUE(dictionary->GetString(DefaultSearchManager::kInstantURLPostParams, | |
372 &value)); | |
373 EXPECT_EQ(std::string(), value); | |
374 } | |
375 | |
376 // Checks that disabling default search is properly reflected the dictionary | |
377 // pref. | |
378 TEST_F(DefaultSearchPolicyHandlerTest, DictionaryPrefDSEDisabled) { | |
379 PolicyMap policy; | |
380 policy.Set(key::kDefaultSearchProviderEnabled, | |
381 POLICY_LEVEL_MANDATORY, | |
382 POLICY_SCOPE_USER, | |
383 base::Value::CreateBooleanValue(false), | |
384 NULL); | |
385 UpdateProviderPolicy(policy); | |
386 const base::Value* temp = NULL; | |
387 const base::DictionaryValue* dictionary; | |
388 EXPECT_TRUE(store_->GetValue(kDefaultSearchProviderData, &temp)); | |
389 temp->GetAsDictionary(&dictionary); | |
390 bool disabled = false; | |
391 EXPECT_TRUE(dictionary->GetBoolean(DefaultSearchManager::kDisabledByPolicy, | |
392 &disabled)); | |
393 EXPECT_TRUE(disabled); | |
394 } | |
395 | |
396 // Checks that if the policy for default search is valid, i.e. there's a | |
397 // search URL, that all the elements have been given proper defaults. | |
398 TEST_F(DefaultSearchPolicyHandlerTest, DictionaryPrefMinimallyDefined) { | |
399 PolicyMap policy; | |
400 policy.Set(key::kDefaultSearchProviderEnabled, | |
401 POLICY_LEVEL_MANDATORY, | |
402 POLICY_SCOPE_USER, | |
403 base::Value::CreateBooleanValue(true), | |
404 NULL); | |
405 policy.Set(key::kDefaultSearchProviderSearchURL, | |
406 POLICY_LEVEL_MANDATORY, | |
407 POLICY_SCOPE_USER, | |
408 base::Value::CreateStringValue(kSearchURL), | |
409 NULL); | |
410 UpdateProviderPolicy(policy); | |
411 | |
412 const base::Value* temp = NULL; | |
413 const base::DictionaryValue* dictionary; | |
414 std::string value; | |
415 const base::ListValue* list_value; | |
416 EXPECT_TRUE(store_->GetValue(kDefaultSearchProviderData, &temp)); | |
417 temp->GetAsDictionary(&dictionary); | |
418 | |
419 // Name and keyword should be derived from host. | |
420 EXPECT_TRUE(dictionary->GetString(DefaultSearchManager::kURL, &value)); | |
421 EXPECT_EQ(kSearchURL, value); | |
422 EXPECT_TRUE(dictionary->GetString(DefaultSearchManager::kShortName, &value)); | |
423 EXPECT_EQ(kHostName, value); | |
424 EXPECT_TRUE(dictionary->GetString(DefaultSearchManager::kKeyword, &value)); | |
425 EXPECT_EQ(kHostName, value); | |
426 | |
427 // Everything else should be set to the default value. | |
428 EXPECT_TRUE( | |
429 dictionary->GetString(DefaultSearchManager::kSuggestionsURL, &value)); | |
430 EXPECT_EQ(std::string(), value); | |
431 EXPECT_TRUE(dictionary->GetString(DefaultSearchManager::kFaviconURL, &value)); | |
432 EXPECT_EQ(std::string(), value); | |
433 EXPECT_TRUE( | |
434 dictionary->GetList(DefaultSearchManager::kInputEncodings, &list_value)); | |
435 EXPECT_TRUE(base::ListValue().Equals(list_value)); | |
436 EXPECT_TRUE( | |
437 dictionary->GetList(DefaultSearchManager::kAlternateURLs, &list_value)); | |
438 EXPECT_TRUE(base::ListValue().Equals(list_value)); | |
439 EXPECT_TRUE(dictionary->GetString( | |
440 DefaultSearchManager::kSearchTermsReplacementKey, &value)); | |
441 EXPECT_EQ(std::string(), value); | |
442 EXPECT_TRUE(dictionary->GetString(DefaultSearchManager::kImageURL, &value)); | |
443 EXPECT_EQ(std::string(), value); | |
444 EXPECT_TRUE( | |
445 dictionary->GetString(DefaultSearchManager::kImageURLPostParams, &value)); | |
446 EXPECT_EQ(std::string(), value); | |
447 EXPECT_TRUE(dictionary->GetString(DefaultSearchManager::kSearchURLPostParams, | |
448 &value)); | |
449 EXPECT_EQ(std::string(), value); | |
450 EXPECT_TRUE(dictionary->GetString( | |
451 DefaultSearchManager::kSuggestionsURLPostParams, &value)); | |
452 EXPECT_EQ(std::string(), value); | |
453 EXPECT_TRUE(dictionary->GetString(DefaultSearchManager::kInstantURLPostParams, | |
454 &value)); | |
455 EXPECT_EQ(std::string(), value); | |
456 } | |
457 | |
458 // Checks that setting a file URL as the default search is reflected properly in | |
459 // the dictionary pref. | |
460 TEST_F(DefaultSearchPolicyHandlerTest, DictionaryPrefFileURL) { | |
461 PolicyMap policy; | |
462 policy.Set(key::kDefaultSearchProviderEnabled, | |
463 POLICY_LEVEL_MANDATORY, | |
464 POLICY_SCOPE_USER, | |
465 base::Value::CreateBooleanValue(true), | |
466 NULL); | |
467 policy.Set(key::kDefaultSearchProviderSearchURL, | |
468 POLICY_LEVEL_MANDATORY, | |
469 POLICY_SCOPE_USER, | |
470 base::Value::CreateStringValue(kFileSearchURL), | |
471 NULL); | |
472 UpdateProviderPolicy(policy); | |
473 | |
474 const base::Value* temp = NULL; | |
475 const base::DictionaryValue* dictionary; | |
476 std::string value; | |
477 | |
478 EXPECT_TRUE(store_->GetValue(kDefaultSearchProviderData, &temp)); | |
479 temp->GetAsDictionary(&dictionary); | |
480 | |
481 EXPECT_TRUE(dictionary->GetString(DefaultSearchManager::kURL, &value)); | |
482 EXPECT_EQ(kFileSearchURL, value); | |
483 EXPECT_TRUE(dictionary->GetString(DefaultSearchManager::kShortName, &value)); | |
484 EXPECT_EQ("_", value); | |
485 EXPECT_TRUE(dictionary->GetString(DefaultSearchManager::kKeyword, &value)); | |
486 EXPECT_EQ("_", value); | |
487 } | |
488 } // namespace policy | |
OLD | NEW |