Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / search_engines / default_search_policy_handler_unittest.cc
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 "chrome/browser/search_engines/default_search_manager.h"
7 #include "chrome/browser/search_engines/default_search_policy_handler.h"
8 #include "chrome/common/pref_names.h"
9 #include "components/policy/core/browser/configuration_policy_pref_store.h"
10 #include "components/policy/core/browser/configuration_policy_pref_store_test.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