default_search_policy_handler_unittest.cc revision 116680a4aac90f2aa7413d9095a592090648e557
1116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Copyright 2014 The Chromium Authors. All rights reserved. 28bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 38bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)// found in the LICENSE file. 48bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 51e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)#include "base/memory/scoped_ptr.h" 6a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#include "components/policy/core/browser/configuration_policy_pref_store.h" 7a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "components/policy/core/browser/configuration_policy_pref_store_test.h" 8116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "components/search_engines/default_search_manager.h" 9116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "components/search_engines/default_search_policy_handler.h" 10116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "components/search_engines/search_engines_pref_names.h" 118bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)#include "policy/policy_constants.h" 128bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 135c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liunamespace { 145c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// TODO(caitkp): Should we find a way to route this through DefaultSearchManager 155c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// to avoid hardcoding this here? 165c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liuconst char kDefaultSearchProviderData[] = 175c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu "default_search_provider_data.template_url_data"; 185c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu} // namespace 195c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 208bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)namespace policy { 218bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 228bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)class DefaultSearchPolicyHandlerTest 238bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) : public ConfigurationPolicyPrefStoreTest { 248bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) public: 258bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) DefaultSearchPolicyHandlerTest() { 268bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) default_alternate_urls_.AppendString( 278bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) "http://www.google.com/#q={searchTerms}"); 288bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) default_alternate_urls_.AppendString( 298bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) "http://www.google.com/search#q={searchTerms}"); 308bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) } 318bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 321e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) virtual void SetUp() OVERRIDE { 331e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) handler_list_.AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( 341e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) new DefaultSearchPolicyHandler)); 351e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) } 361e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 378bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) protected: 388bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) static const char kSearchURL[]; 398bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) static const char kSuggestURL[]; 408bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) static const char kIconURL[]; 418bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) static const char kName[]; 428bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) static const char kKeyword[]; 438bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) static const char kReplacementKey[]; 448bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) static const char kImageURL[]; 458bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) static const char kImageParams[]; 468bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) static const char kNewTabURL[]; 475c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu static const char kFileSearchURL[]; 485c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu static const char kHostName[]; 498bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 508bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) // Build a default search policy by setting search-related keys in |policy| to 518bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) // reasonable values. You can update any of the keys after calling this 528bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) // method. 538bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) void BuildDefaultSearchPolicy(PolicyMap* policy); 548bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 558bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) base::ListValue default_alternate_urls_; 568bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)}; 578bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 588bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)const char DefaultSearchPolicyHandlerTest::kSearchURL[] = 598bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) "http://test.com/search?t={searchTerms}"; 608bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)const char DefaultSearchPolicyHandlerTest::kSuggestURL[] = 618bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) "http://test.com/sugg?={searchTerms}"; 628bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)const char DefaultSearchPolicyHandlerTest::kIconURL[] = 638bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) "http://test.com/icon.jpg"; 648bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)const char DefaultSearchPolicyHandlerTest::kName[] = 658bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) "MyName"; 668bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)const char DefaultSearchPolicyHandlerTest::kKeyword[] = 678bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) "MyKeyword"; 688bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)const char DefaultSearchPolicyHandlerTest::kReplacementKey[] = 698bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) "espv"; 708bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)const char DefaultSearchPolicyHandlerTest::kImageURL[] = 718bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) "http://test.com/searchbyimage/upload"; 728bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)const char DefaultSearchPolicyHandlerTest::kImageParams[] = 738bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) "image_content=content,image_url=http://test.com/test.png"; 748bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)const char DefaultSearchPolicyHandlerTest::kNewTabURL[] = 758bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) "http://test.com/newtab"; 765c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liuconst char DefaultSearchPolicyHandlerTest::kFileSearchURL[] = 775c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu "file:///c:/path/to/search?t={searchTerms}"; 785c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liuconst char DefaultSearchPolicyHandlerTest::kHostName[] = "test.com"; 798bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 808bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)void DefaultSearchPolicyHandlerTest:: 818bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) BuildDefaultSearchPolicy(PolicyMap* policy) { 828bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) base::ListValue* encodings = new base::ListValue(); 838bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) encodings->AppendString("UTF-16"); 848bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) encodings->AppendString("UTF-8"); 85116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch policy->Set(key::kDefaultSearchProviderEnabled, 86116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch POLICY_LEVEL_MANDATORY, 87116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch POLICY_SCOPE_USER, 88116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch new base::FundamentalValue(true), 89116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch NULL); 908bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) policy->Set(key::kDefaultSearchProviderSearchURL, POLICY_LEVEL_MANDATORY, 918bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) POLICY_SCOPE_USER, base::Value::CreateStringValue(kSearchURL), 928bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) NULL); 938bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) policy->Set(key::kDefaultSearchProviderName, POLICY_LEVEL_MANDATORY, 948bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) POLICY_SCOPE_USER, base::Value::CreateStringValue(kName), NULL); 958bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) policy->Set(key::kDefaultSearchProviderKeyword, POLICY_LEVEL_MANDATORY, 968bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) POLICY_SCOPE_USER, base::Value::CreateStringValue(kKeyword), 978bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) NULL); 988bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) policy->Set(key::kDefaultSearchProviderSuggestURL, POLICY_LEVEL_MANDATORY, 998bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) POLICY_SCOPE_USER, base::Value::CreateStringValue(kSuggestURL), 1008bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) NULL); 1018bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) policy->Set(key::kDefaultSearchProviderIconURL, POLICY_LEVEL_MANDATORY, 1028bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) POLICY_SCOPE_USER, base::Value::CreateStringValue(kIconURL), 1038bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) NULL); 1048bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) policy->Set(key::kDefaultSearchProviderEncodings, POLICY_LEVEL_MANDATORY, 1058bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) POLICY_SCOPE_USER, encodings, NULL); 1068bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) policy->Set(key::kDefaultSearchProviderAlternateURLs, POLICY_LEVEL_MANDATORY, 1078bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) POLICY_SCOPE_USER, default_alternate_urls_.DeepCopy(), NULL); 1088bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) policy->Set(key::kDefaultSearchProviderSearchTermsReplacementKey, 1098bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 1108bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) base::Value::CreateStringValue(kReplacementKey), NULL); 1118bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) policy->Set(key::kDefaultSearchProviderImageURL, 1128bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 1138bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) base::Value::CreateStringValue(kImageURL), NULL); 1148bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) policy->Set(key::kDefaultSearchProviderImageURLPostParams, 1158bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 1168bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) base::Value::CreateStringValue(kImageParams), NULL); 1178bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) policy->Set(key::kDefaultSearchProviderNewTabURL, 1188bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 1198bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) base::Value::CreateStringValue(kNewTabURL), NULL); 1208bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)} 1218bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 1228bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)// Checks that if the policy for default search is valid, i.e. there's a 1238bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)// search URL, that all the elements have been given proper defaults. 1248bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)TEST_F(DefaultSearchPolicyHandlerTest, MinimallyDefined) { 1258bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) PolicyMap policy; 126116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch policy.Set(key::kDefaultSearchProviderEnabled, 127116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch POLICY_LEVEL_MANDATORY, 128116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch POLICY_SCOPE_USER, 129116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch new base::FundamentalValue(true), 130116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch NULL); 1318bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) policy.Set(key::kDefaultSearchProviderSearchURL, POLICY_LEVEL_MANDATORY, 1328bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) POLICY_SCOPE_USER, base::Value::CreateStringValue(kSearchURL), 1338bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) NULL); 1348bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) UpdateProviderPolicy(policy); 1358bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 1368bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) const base::Value* value = NULL; 1378bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_TRUE(store_->GetValue(prefs::kDefaultSearchProviderSearchURL, &value)); 1388bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_TRUE(base::StringValue(kSearchURL).Equals(value)); 1398bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 1408bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_TRUE(store_->GetValue(prefs::kDefaultSearchProviderName, &value)); 1415c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_TRUE(base::StringValue(kHostName).Equals(value)); 1428bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 1438bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_TRUE(store_->GetValue(prefs::kDefaultSearchProviderKeyword, &value)); 1445c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_TRUE(base::StringValue(kHostName).Equals(value)); 1458bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 1468bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_TRUE(store_->GetValue(prefs::kDefaultSearchProviderSuggestURL, 1478bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) &value)); 1488bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_TRUE(base::StringValue(std::string()).Equals(value)); 1498bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 1508bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_TRUE(store_->GetValue(prefs::kDefaultSearchProviderIconURL, &value)); 1518bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_TRUE(base::StringValue(std::string()).Equals(value)); 1528bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 1538bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_TRUE(store_->GetValue(prefs::kDefaultSearchProviderEncodings, &value)); 1548bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_TRUE(base::StringValue(std::string()).Equals(value)); 1558bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 1568bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_TRUE(store_->GetValue(prefs::kDefaultSearchProviderInstantURL, 1578bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) &value)); 1588bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_TRUE(base::StringValue(std::string()).Equals(value)); 1598bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 1608bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_TRUE(store_->GetValue(prefs::kDefaultSearchProviderAlternateURLs, 1618bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) &value)); 1628bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_TRUE(base::ListValue().Equals(value)); 1638bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 1648bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_TRUE( 1658bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) store_->GetValue(prefs::kDefaultSearchProviderSearchTermsReplacementKey, 1668bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) &value)); 1678bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_TRUE(base::StringValue(std::string()).Equals(value)); 1688bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 1698bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_TRUE(store_->GetValue(prefs::kDefaultSearchProviderImageURL, &value)); 1708bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_TRUE(base::StringValue(std::string()).Equals(value)); 1718bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 1728bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_TRUE(store_->GetValue( 1738bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) prefs::kDefaultSearchProviderSearchURLPostParams, &value)); 1748bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_TRUE(base::StringValue(std::string()).Equals(value)); 1758bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 1768bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_TRUE(store_->GetValue( 1778bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) prefs::kDefaultSearchProviderSuggestURLPostParams, &value)); 1788bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_TRUE(base::StringValue(std::string()).Equals(value)); 1798bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 1808bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_TRUE(store_->GetValue( 1818bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) prefs::kDefaultSearchProviderInstantURLPostParams, &value)); 1828bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_TRUE(base::StringValue(std::string()).Equals(value)); 1838bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 1848bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_TRUE(store_->GetValue( 1858bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) prefs::kDefaultSearchProviderImageURLPostParams, &value)); 1868bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_TRUE(base::StringValue(std::string()).Equals(value)); 1878bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 1888bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_TRUE(store_->GetValue( 1898bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) prefs::kDefaultSearchProviderNewTabURL, &value)); 1908bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_TRUE(base::StringValue(std::string()).Equals(value)); 1918bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)} 1928bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 1938bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)// Checks that for a fully defined search policy, all elements have been 1948bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)// read properly. 1958bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)TEST_F(DefaultSearchPolicyHandlerTest, FullyDefined) { 1968bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) PolicyMap policy; 1978bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) BuildDefaultSearchPolicy(&policy); 1988bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) UpdateProviderPolicy(policy); 1998bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 2008bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) const base::Value* value = NULL; 2018bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_TRUE(store_->GetValue(prefs::kDefaultSearchProviderSearchURL, &value)); 2028bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_TRUE(base::StringValue(kSearchURL).Equals(value)); 2038bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 2048bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_TRUE(store_->GetValue(prefs::kDefaultSearchProviderName, &value)); 2058bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_TRUE(base::StringValue(kName).Equals(value)); 2068bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 2078bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_TRUE(store_->GetValue(prefs::kDefaultSearchProviderKeyword, &value)); 2088bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_TRUE(base::StringValue(kKeyword).Equals(value)); 2098bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 2108bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_TRUE(store_->GetValue(prefs::kDefaultSearchProviderSuggestURL, 2118bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) &value)); 2128bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_TRUE(base::StringValue(kSuggestURL).Equals(value)); 2138bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 2148bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_TRUE(store_->GetValue(prefs::kDefaultSearchProviderIconURL, &value)); 2158bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_TRUE(base::StringValue(kIconURL).Equals(value)); 2168bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 2178bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_TRUE(store_->GetValue(prefs::kDefaultSearchProviderEncodings, &value)); 2188bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_TRUE(base::StringValue("UTF-16;UTF-8").Equals(value)); 2198bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 2208bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_TRUE(store_->GetValue( 2218bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) prefs::kDefaultSearchProviderAlternateURLs, &value)); 2228bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_TRUE(default_alternate_urls_.Equals(value)); 2238bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 2248bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_TRUE( 2258bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) store_->GetValue(prefs::kDefaultSearchProviderSearchTermsReplacementKey, 2268bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) &value)); 2278bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_TRUE(base::StringValue(kReplacementKey).Equals(value)); 2288bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 2298bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_TRUE(store_->GetValue(prefs::kDefaultSearchProviderImageURL, &value)); 2308bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_TRUE(base::StringValue(std::string(kImageURL)).Equals(value)); 2318bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 2328bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_TRUE(store_->GetValue(prefs::kDefaultSearchProviderImageURLPostParams, 2338bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) &value)); 2348bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_TRUE(base::StringValue(std::string(kImageParams)).Equals(value)); 2358bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 2368bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_TRUE(store_->GetValue( 2378bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) prefs::kDefaultSearchProviderSearchURLPostParams, &value)); 2388bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_TRUE(base::StringValue(std::string()).Equals(value)); 2398bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 2408bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_TRUE(store_->GetValue( 2418bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) prefs::kDefaultSearchProviderSuggestURLPostParams, &value)); 2428bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_TRUE(base::StringValue(std::string()).Equals(value)); 2438bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 2448bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_TRUE(store_->GetValue( 2458bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) prefs::kDefaultSearchProviderInstantURLPostParams, &value)); 2468bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_TRUE(base::StringValue(std::string()).Equals(value)); 2478bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)} 2488bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 2498bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)// Checks that if the default search policy is missing, that no elements of the 2508bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)// default search policy will be present. 2518bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)TEST_F(DefaultSearchPolicyHandlerTest, MissingUrl) { 2528bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) PolicyMap policy; 2538bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) BuildDefaultSearchPolicy(&policy); 2548bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) policy.Erase(key::kDefaultSearchProviderSearchURL); 2558bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) UpdateProviderPolicy(policy); 2568bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 2578bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_FALSE(store_->GetValue(prefs::kDefaultSearchProviderSearchURL, NULL)); 2588bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_FALSE(store_->GetValue(prefs::kDefaultSearchProviderName, NULL)); 2598bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_FALSE(store_->GetValue(prefs::kDefaultSearchProviderKeyword, NULL)); 2608bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_FALSE(store_->GetValue(prefs::kDefaultSearchProviderSuggestURL, NULL)); 2618bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_FALSE(store_->GetValue(prefs::kDefaultSearchProviderIconURL, NULL)); 2628bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_FALSE(store_->GetValue(prefs::kDefaultSearchProviderEncodings, NULL)); 2638bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_FALSE(store_->GetValue(prefs::kDefaultSearchProviderAlternateURLs, 2648bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) NULL)); 2658bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_FALSE(store_->GetValue( 2668bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) prefs::kDefaultSearchProviderSearchTermsReplacementKey, NULL)); 2678bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_FALSE(store_->GetValue(prefs::kDefaultSearchProviderImageURL, NULL)); 2688bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_FALSE(store_->GetValue( 2698bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) prefs::kDefaultSearchProviderImageURLPostParams, NULL)); 2708bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_FALSE(store_->GetValue(prefs::kDefaultSearchProviderInstantURL, NULL)); 2718bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_FALSE(store_->GetValue(prefs::kDefaultSearchProviderNewTabURL, NULL)); 2728bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)} 2738bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 2748bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)// Checks that if the default search policy is invalid, that no elements of the 2758bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)// default search policy will be present. 2768bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)TEST_F(DefaultSearchPolicyHandlerTest, Invalid) { 2778bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) PolicyMap policy; 2788bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) BuildDefaultSearchPolicy(&policy); 2798bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) const char bad_search_url[] = "http://test.com/noSearchTerms"; 2808bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) policy.Set(key::kDefaultSearchProviderSearchURL, POLICY_LEVEL_MANDATORY, 2818bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) POLICY_SCOPE_USER, 2828bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) base::Value::CreateStringValue(bad_search_url), NULL); 2838bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) UpdateProviderPolicy(policy); 2848bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 2858bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_FALSE(store_->GetValue(prefs::kDefaultSearchProviderSearchURL, NULL)); 2868bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_FALSE(store_->GetValue(prefs::kDefaultSearchProviderName, NULL)); 2878bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_FALSE(store_->GetValue(prefs::kDefaultSearchProviderKeyword, NULL)); 2888bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_FALSE(store_->GetValue(prefs::kDefaultSearchProviderSuggestURL, NULL)); 2898bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_FALSE(store_->GetValue(prefs::kDefaultSearchProviderIconURL, NULL)); 2908bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_FALSE(store_->GetValue(prefs::kDefaultSearchProviderEncodings, NULL)); 2918bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_FALSE(store_->GetValue(prefs::kDefaultSearchProviderAlternateURLs, 2928bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) NULL)); 2938bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_FALSE(store_->GetValue( 2948bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) prefs::kDefaultSearchProviderSearchTermsReplacementKey, NULL)); 2958bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_FALSE(store_->GetValue(prefs::kDefaultSearchProviderImageURL, NULL)); 2968bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_FALSE(store_->GetValue( 2978bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) prefs::kDefaultSearchProviderImageURLPostParams, NULL)); 2988bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_FALSE(store_->GetValue(prefs::kDefaultSearchProviderInstantURL, NULL)); 2998bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_FALSE(store_->GetValue(prefs::kDefaultSearchProviderNewTabURL, NULL)); 3008bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)} 3018bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 3028bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)// Checks that if the default search policy is invalid, that no elements of the 3038bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)// default search policy will be present. 3048bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)TEST_F(DefaultSearchPolicyHandlerTest, Disabled) { 3058bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) PolicyMap policy; 306116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch policy.Set(key::kDefaultSearchProviderEnabled, 307116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch POLICY_LEVEL_MANDATORY, 308116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch POLICY_SCOPE_USER, 309116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch new base::FundamentalValue(false), 310116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch NULL); 3118bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) UpdateProviderPolicy(policy); 3128bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 3138bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) const base::Value* value = NULL; 3148bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_TRUE(store_->GetValue(prefs::kDefaultSearchProviderEnabled, &value)); 3158bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) base::FundamentalValue expected_enabled(false); 3168bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_TRUE(base::Value::Equals(&expected_enabled, value)); 3178bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_TRUE(store_->GetValue(prefs::kDefaultSearchProviderSearchURL, &value)); 3188bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) base::StringValue expected_search_url((std::string())); 3198bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) EXPECT_TRUE(base::Value::Equals(&expected_search_url, value)); 3208bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)} 3218bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 3225c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// Checks that for a fully defined search policy, all elements have been 3235c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// read properly into the dictionary pref. 3245c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo LiuTEST_F(DefaultSearchPolicyHandlerTest, DictionaryPref) { 3255c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu PolicyMap policy; 3265c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu BuildDefaultSearchPolicy(&policy); 3275c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu UpdateProviderPolicy(policy); 3285c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 3295c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const base::Value* temp = NULL; 3305c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const base::DictionaryValue* dictionary; 3315c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu std::string value; 3325c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const base::ListValue* list_value; 3335c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_TRUE(store_->GetValue(kDefaultSearchProviderData, &temp)); 3345c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu temp->GetAsDictionary(&dictionary); 3355c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 3365c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_TRUE(dictionary->GetString(DefaultSearchManager::kURL, &value)); 3375c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_EQ(kSearchURL, value); 3385c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_TRUE(dictionary->GetString(DefaultSearchManager::kShortName, &value)); 3395c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_EQ(kName, value); 3405c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_TRUE(dictionary->GetString(DefaultSearchManager::kKeyword, &value)); 3415c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_EQ(kKeyword, value); 3425c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 3435c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_TRUE( 3445c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu dictionary->GetString(DefaultSearchManager::kSuggestionsURL, &value)); 3455c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_EQ(kSuggestURL, value); 3465c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_TRUE(dictionary->GetString(DefaultSearchManager::kFaviconURL, &value)); 3475c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_EQ(kIconURL, value); 3485c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 3495c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu base::ListValue encodings; 3505c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu encodings.AppendString("UTF-16"); 3515c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu encodings.AppendString("UTF-8"); 3525c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 3535c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_TRUE( 3545c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu dictionary->GetList(DefaultSearchManager::kInputEncodings, &list_value)); 3555c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_TRUE(encodings.Equals(list_value)); 3565c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 3575c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_TRUE( 3585c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu dictionary->GetList(DefaultSearchManager::kAlternateURLs, &list_value)); 3595c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_TRUE(default_alternate_urls_.Equals(list_value)); 3605c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 3615c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_TRUE(dictionary->GetString( 3625c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu DefaultSearchManager::kSearchTermsReplacementKey, &value)); 3635c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_EQ(kReplacementKey, value); 3645c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 3655c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_TRUE(dictionary->GetString(DefaultSearchManager::kImageURL, &value)); 3665c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_EQ(kImageURL, value); 3675c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 3685c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_TRUE( 3695c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu dictionary->GetString(DefaultSearchManager::kImageURLPostParams, &value)); 3705c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_EQ(kImageParams, value); 3715c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 3725c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_TRUE(dictionary->GetString(DefaultSearchManager::kSearchURLPostParams, 3735c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu &value)); 3745c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_EQ(std::string(), value); 3755c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 3765c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_TRUE(dictionary->GetString( 3775c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu DefaultSearchManager::kSuggestionsURLPostParams, &value)); 3785c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_EQ(std::string(), value); 3795c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 3805c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_TRUE(dictionary->GetString(DefaultSearchManager::kInstantURLPostParams, 3815c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu &value)); 3825c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_EQ(std::string(), value); 3835c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu} 3845c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 3855c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// Checks that disabling default search is properly reflected the dictionary 3865c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// pref. 3875c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo LiuTEST_F(DefaultSearchPolicyHandlerTest, DictionaryPrefDSEDisabled) { 3885c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu PolicyMap policy; 3895c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu policy.Set(key::kDefaultSearchProviderEnabled, 3905c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu POLICY_LEVEL_MANDATORY, 3915c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu POLICY_SCOPE_USER, 392116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch new base::FundamentalValue(false), 3935c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu NULL); 3945c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu UpdateProviderPolicy(policy); 3955c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const base::Value* temp = NULL; 3965c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const base::DictionaryValue* dictionary; 3975c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_TRUE(store_->GetValue(kDefaultSearchProviderData, &temp)); 3985c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu temp->GetAsDictionary(&dictionary); 3995c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu bool disabled = false; 4005c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_TRUE(dictionary->GetBoolean(DefaultSearchManager::kDisabledByPolicy, 4015c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu &disabled)); 4025c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_TRUE(disabled); 4035c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu} 4045c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 4055c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// Checks that if the policy for default search is valid, i.e. there's a 4065c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// search URL, that all the elements have been given proper defaults. 4075c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo LiuTEST_F(DefaultSearchPolicyHandlerTest, DictionaryPrefMinimallyDefined) { 4085c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu PolicyMap policy; 4095c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu policy.Set(key::kDefaultSearchProviderEnabled, 4105c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu POLICY_LEVEL_MANDATORY, 4115c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu POLICY_SCOPE_USER, 412116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch new base::FundamentalValue(true), 4135c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu NULL); 4145c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu policy.Set(key::kDefaultSearchProviderSearchURL, 4155c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu POLICY_LEVEL_MANDATORY, 4165c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu POLICY_SCOPE_USER, 4175c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu base::Value::CreateStringValue(kSearchURL), 4185c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu NULL); 4195c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu UpdateProviderPolicy(policy); 4205c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 4215c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const base::Value* temp = NULL; 4225c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const base::DictionaryValue* dictionary; 4235c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu std::string value; 4245c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const base::ListValue* list_value; 4255c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_TRUE(store_->GetValue(kDefaultSearchProviderData, &temp)); 4265c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu temp->GetAsDictionary(&dictionary); 4275c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 4285c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu // Name and keyword should be derived from host. 4295c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_TRUE(dictionary->GetString(DefaultSearchManager::kURL, &value)); 4305c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_EQ(kSearchURL, value); 4315c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_TRUE(dictionary->GetString(DefaultSearchManager::kShortName, &value)); 4325c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_EQ(kHostName, value); 4335c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_TRUE(dictionary->GetString(DefaultSearchManager::kKeyword, &value)); 4345c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_EQ(kHostName, value); 4355c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 4365c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu // Everything else should be set to the default value. 4375c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_TRUE( 4385c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu dictionary->GetString(DefaultSearchManager::kSuggestionsURL, &value)); 4395c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_EQ(std::string(), value); 4405c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_TRUE(dictionary->GetString(DefaultSearchManager::kFaviconURL, &value)); 4415c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_EQ(std::string(), value); 4425c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_TRUE( 4435c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu dictionary->GetList(DefaultSearchManager::kInputEncodings, &list_value)); 4445c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_TRUE(base::ListValue().Equals(list_value)); 4455c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_TRUE( 4465c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu dictionary->GetList(DefaultSearchManager::kAlternateURLs, &list_value)); 4475c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_TRUE(base::ListValue().Equals(list_value)); 4485c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_TRUE(dictionary->GetString( 4495c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu DefaultSearchManager::kSearchTermsReplacementKey, &value)); 4505c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_EQ(std::string(), value); 4515c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_TRUE(dictionary->GetString(DefaultSearchManager::kImageURL, &value)); 4525c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_EQ(std::string(), value); 4535c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_TRUE( 4545c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu dictionary->GetString(DefaultSearchManager::kImageURLPostParams, &value)); 4555c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_EQ(std::string(), value); 4565c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_TRUE(dictionary->GetString(DefaultSearchManager::kSearchURLPostParams, 4575c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu &value)); 4585c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_EQ(std::string(), value); 4595c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_TRUE(dictionary->GetString( 4605c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu DefaultSearchManager::kSuggestionsURLPostParams, &value)); 4615c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_EQ(std::string(), value); 4625c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_TRUE(dictionary->GetString(DefaultSearchManager::kInstantURLPostParams, 4635c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu &value)); 4645c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_EQ(std::string(), value); 4655c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu} 4665c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 4675c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// Checks that setting a file URL as the default search is reflected properly in 4685c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// the dictionary pref. 4695c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo LiuTEST_F(DefaultSearchPolicyHandlerTest, DictionaryPrefFileURL) { 4705c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu PolicyMap policy; 4715c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu policy.Set(key::kDefaultSearchProviderEnabled, 4725c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu POLICY_LEVEL_MANDATORY, 4735c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu POLICY_SCOPE_USER, 474116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch new base::FundamentalValue(true), 4755c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu NULL); 4765c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu policy.Set(key::kDefaultSearchProviderSearchURL, 4775c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu POLICY_LEVEL_MANDATORY, 4785c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu POLICY_SCOPE_USER, 4795c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu base::Value::CreateStringValue(kFileSearchURL), 4805c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu NULL); 4815c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu UpdateProviderPolicy(policy); 4825c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 4835c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const base::Value* temp = NULL; 4845c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const base::DictionaryValue* dictionary; 4855c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu std::string value; 4865c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 4875c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_TRUE(store_->GetValue(kDefaultSearchProviderData, &temp)); 4885c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu temp->GetAsDictionary(&dictionary); 4895c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 4905c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_TRUE(dictionary->GetString(DefaultSearchManager::kURL, &value)); 4915c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_EQ(kFileSearchURL, value); 4925c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_TRUE(dictionary->GetString(DefaultSearchManager::kShortName, &value)); 4935c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_EQ("_", value); 4945c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_TRUE(dictionary->GetString(DefaultSearchManager::kKeyword, &value)); 4955c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_EQ("_", value); 4965c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu} 4978bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)} // namespace policy 498