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

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

Issue 237653002: Import policy data into default search dictionary pref. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Nits and rebase on ToT Created 6 years, 7 months 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
« no previous file with comments | « chrome/browser/search_engines/default_search_policy_handler.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 2013 The Chromium Authors. All rights reserved. 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 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/memory/scoped_ptr.h" 5 #include "base/memory/scoped_ptr.h"
6 #include "chrome/browser/search_engines/default_search_manager.h"
6 #include "chrome/browser/search_engines/default_search_policy_handler.h" 7 #include "chrome/browser/search_engines/default_search_policy_handler.h"
7 #include "chrome/common/pref_names.h" 8 #include "chrome/common/pref_names.h"
8 #include "components/policy/core/browser/configuration_policy_pref_store.h" 9 #include "components/policy/core/browser/configuration_policy_pref_store.h"
9 #include "components/policy/core/browser/configuration_policy_pref_store_test.h" 10 #include "components/policy/core/browser/configuration_policy_pref_store_test.h"
10 #include "policy/policy_constants.h" 11 #include "policy/policy_constants.h"
11 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
12 namespace policy { 20 namespace policy {
13 21
14 class DefaultSearchPolicyHandlerTest 22 class DefaultSearchPolicyHandlerTest
15 : public ConfigurationPolicyPrefStoreTest { 23 : public ConfigurationPolicyPrefStoreTest {
16 public: 24 public:
17 DefaultSearchPolicyHandlerTest() { 25 DefaultSearchPolicyHandlerTest() {
18 default_alternate_urls_.AppendString( 26 default_alternate_urls_.AppendString(
19 "http://www.google.com/#q={searchTerms}"); 27 "http://www.google.com/#q={searchTerms}");
20 default_alternate_urls_.AppendString( 28 default_alternate_urls_.AppendString(
21 "http://www.google.com/search#q={searchTerms}"); 29 "http://www.google.com/search#q={searchTerms}");
22 } 30 }
23 31
24 virtual void SetUp() OVERRIDE { 32 virtual void SetUp() OVERRIDE {
25 handler_list_.AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( 33 handler_list_.AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>(
26 new DefaultSearchPolicyHandler)); 34 new DefaultSearchPolicyHandler));
27 } 35 }
28 36
29 protected: 37 protected:
30 static const char kSearchURL[]; 38 static const char kSearchURL[];
31 static const char kSuggestURL[]; 39 static const char kSuggestURL[];
32 static const char kIconURL[]; 40 static const char kIconURL[];
33 static const char kName[]; 41 static const char kName[];
34 static const char kKeyword[]; 42 static const char kKeyword[];
35 static const char kReplacementKey[]; 43 static const char kReplacementKey[];
36 static const char kImageURL[]; 44 static const char kImageURL[];
37 static const char kImageParams[]; 45 static const char kImageParams[];
38 static const char kNewTabURL[]; 46 static const char kNewTabURL[];
47 static const char kFileSearchURL[];
48 static const char kHostName[];
39 49
40 // Build a default search policy by setting search-related keys in |policy| to 50 // Build a default search policy by setting search-related keys in |policy| to
41 // reasonable values. You can update any of the keys after calling this 51 // reasonable values. You can update any of the keys after calling this
42 // method. 52 // method.
43 void BuildDefaultSearchPolicy(PolicyMap* policy); 53 void BuildDefaultSearchPolicy(PolicyMap* policy);
44 54
45 base::ListValue default_alternate_urls_; 55 base::ListValue default_alternate_urls_;
46 }; 56 };
47 57
48 const char DefaultSearchPolicyHandlerTest::kSearchURL[] = 58 const char DefaultSearchPolicyHandlerTest::kSearchURL[] =
49 "http://test.com/search?t={searchTerms}"; 59 "http://test.com/search?t={searchTerms}";
50 const char DefaultSearchPolicyHandlerTest::kSuggestURL[] = 60 const char DefaultSearchPolicyHandlerTest::kSuggestURL[] =
51 "http://test.com/sugg?={searchTerms}"; 61 "http://test.com/sugg?={searchTerms}";
52 const char DefaultSearchPolicyHandlerTest::kIconURL[] = 62 const char DefaultSearchPolicyHandlerTest::kIconURL[] =
53 "http://test.com/icon.jpg"; 63 "http://test.com/icon.jpg";
54 const char DefaultSearchPolicyHandlerTest::kName[] = 64 const char DefaultSearchPolicyHandlerTest::kName[] =
55 "MyName"; 65 "MyName";
56 const char DefaultSearchPolicyHandlerTest::kKeyword[] = 66 const char DefaultSearchPolicyHandlerTest::kKeyword[] =
57 "MyKeyword"; 67 "MyKeyword";
58 const char DefaultSearchPolicyHandlerTest::kReplacementKey[] = 68 const char DefaultSearchPolicyHandlerTest::kReplacementKey[] =
59 "espv"; 69 "espv";
60 const char DefaultSearchPolicyHandlerTest::kImageURL[] = 70 const char DefaultSearchPolicyHandlerTest::kImageURL[] =
61 "http://test.com/searchbyimage/upload"; 71 "http://test.com/searchbyimage/upload";
62 const char DefaultSearchPolicyHandlerTest::kImageParams[] = 72 const char DefaultSearchPolicyHandlerTest::kImageParams[] =
63 "image_content=content,image_url=http://test.com/test.png"; 73 "image_content=content,image_url=http://test.com/test.png";
64 const char DefaultSearchPolicyHandlerTest::kNewTabURL[] = 74 const char DefaultSearchPolicyHandlerTest::kNewTabURL[] =
65 "http://test.com/newtab"; 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";
66 79
67 void DefaultSearchPolicyHandlerTest:: 80 void DefaultSearchPolicyHandlerTest::
68 BuildDefaultSearchPolicy(PolicyMap* policy) { 81 BuildDefaultSearchPolicy(PolicyMap* policy) {
69 base::ListValue* encodings = new base::ListValue(); 82 base::ListValue* encodings = new base::ListValue();
70 encodings->AppendString("UTF-16"); 83 encodings->AppendString("UTF-16");
71 encodings->AppendString("UTF-8"); 84 encodings->AppendString("UTF-8");
72 policy->Set(key::kDefaultSearchProviderEnabled, POLICY_LEVEL_MANDATORY, 85 policy->Set(key::kDefaultSearchProviderEnabled, POLICY_LEVEL_MANDATORY,
73 POLICY_SCOPE_USER, base::Value::CreateBooleanValue(true), NULL); 86 POLICY_SCOPE_USER, base::Value::CreateBooleanValue(true), NULL);
74 policy->Set(key::kDefaultSearchProviderSearchURL, POLICY_LEVEL_MANDATORY, 87 policy->Set(key::kDefaultSearchProviderSearchURL, POLICY_LEVEL_MANDATORY,
75 POLICY_SCOPE_USER, base::Value::CreateStringValue(kSearchURL), 88 POLICY_SCOPE_USER, base::Value::CreateStringValue(kSearchURL),
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
112 policy.Set(key::kDefaultSearchProviderSearchURL, POLICY_LEVEL_MANDATORY, 125 policy.Set(key::kDefaultSearchProviderSearchURL, POLICY_LEVEL_MANDATORY,
113 POLICY_SCOPE_USER, base::Value::CreateStringValue(kSearchURL), 126 POLICY_SCOPE_USER, base::Value::CreateStringValue(kSearchURL),
114 NULL); 127 NULL);
115 UpdateProviderPolicy(policy); 128 UpdateProviderPolicy(policy);
116 129
117 const base::Value* value = NULL; 130 const base::Value* value = NULL;
118 EXPECT_TRUE(store_->GetValue(prefs::kDefaultSearchProviderSearchURL, &value)); 131 EXPECT_TRUE(store_->GetValue(prefs::kDefaultSearchProviderSearchURL, &value));
119 EXPECT_TRUE(base::StringValue(kSearchURL).Equals(value)); 132 EXPECT_TRUE(base::StringValue(kSearchURL).Equals(value));
120 133
121 EXPECT_TRUE(store_->GetValue(prefs::kDefaultSearchProviderName, &value)); 134 EXPECT_TRUE(store_->GetValue(prefs::kDefaultSearchProviderName, &value));
122 EXPECT_TRUE(base::StringValue("test.com").Equals(value)); 135 EXPECT_TRUE(base::StringValue(kHostName).Equals(value));
123 136
124 EXPECT_TRUE(store_->GetValue(prefs::kDefaultSearchProviderKeyword, &value)); 137 EXPECT_TRUE(store_->GetValue(prefs::kDefaultSearchProviderKeyword, &value));
125 EXPECT_TRUE(base::StringValue("test.com").Equals(value)); 138 EXPECT_TRUE(base::StringValue(kHostName).Equals(value));
126 139
127 EXPECT_TRUE(store_->GetValue(prefs::kDefaultSearchProviderSuggestURL, 140 EXPECT_TRUE(store_->GetValue(prefs::kDefaultSearchProviderSuggestURL,
128 &value)); 141 &value));
129 EXPECT_TRUE(base::StringValue(std::string()).Equals(value)); 142 EXPECT_TRUE(base::StringValue(std::string()).Equals(value));
130 143
131 EXPECT_TRUE(store_->GetValue(prefs::kDefaultSearchProviderIconURL, &value)); 144 EXPECT_TRUE(store_->GetValue(prefs::kDefaultSearchProviderIconURL, &value));
132 EXPECT_TRUE(base::StringValue(std::string()).Equals(value)); 145 EXPECT_TRUE(base::StringValue(std::string()).Equals(value));
133 146
134 EXPECT_TRUE(store_->GetValue(prefs::kDefaultSearchProviderEncodings, &value)); 147 EXPECT_TRUE(store_->GetValue(prefs::kDefaultSearchProviderEncodings, &value));
135 EXPECT_TRUE(base::StringValue(std::string()).Equals(value)); 148 EXPECT_TRUE(base::StringValue(std::string()).Equals(value));
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
290 303
291 const base::Value* value = NULL; 304 const base::Value* value = NULL;
292 EXPECT_TRUE(store_->GetValue(prefs::kDefaultSearchProviderEnabled, &value)); 305 EXPECT_TRUE(store_->GetValue(prefs::kDefaultSearchProviderEnabled, &value));
293 base::FundamentalValue expected_enabled(false); 306 base::FundamentalValue expected_enabled(false);
294 EXPECT_TRUE(base::Value::Equals(&expected_enabled, value)); 307 EXPECT_TRUE(base::Value::Equals(&expected_enabled, value));
295 EXPECT_TRUE(store_->GetValue(prefs::kDefaultSearchProviderSearchURL, &value)); 308 EXPECT_TRUE(store_->GetValue(prefs::kDefaultSearchProviderSearchURL, &value));
296 base::StringValue expected_search_url((std::string())); 309 base::StringValue expected_search_url((std::string()));
297 EXPECT_TRUE(base::Value::Equals(&expected_search_url, value)); 310 EXPECT_TRUE(base::Value::Equals(&expected_search_url, value));
298 } 311 }
299 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 }
300 } // namespace policy 488 } // namespace policy
OLDNEW
« no previous file with comments | « chrome/browser/search_engines/default_search_policy_handler.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698