Index: chrome/browser/policy/configuration_policy_pref_store_unittest.cc |
diff --git a/chrome/browser/policy/configuration_policy_pref_store_unittest.cc b/chrome/browser/policy/configuration_policy_pref_store_unittest.cc |
index 62c983dde2d1ae1df06989b6ff5c8f9c64d74046..4044950acd9e1d88ab8ebe3d71d15508d01fe739 100644 |
--- a/chrome/browser/policy/configuration_policy_pref_store_unittest.cc |
+++ b/chrome/browser/policy/configuration_policy_pref_store_unittest.cc |
@@ -556,23 +556,78 @@ TEST_F(ConfigurationPolicyPrefStoreProxyTest, ProxyInvalid) { |
} |
class ConfigurationPolicyPrefStoreDefaultSearchTest |
- : public ConfigurationPolicyPrefStoreTest {}; |
+ : public ConfigurationPolicyPrefStoreTest { |
+ public: |
+ ConfigurationPolicyPrefStoreDefaultSearchTest() { |
+ default_alternate_urls_.AppendString( |
+ "http://www.google.com/#q={searchTerms}"); |
+ default_alternate_urls_.AppendString( |
+ "http://www.google.com/search#q={searchTerms}"); |
+ } |
+ |
+ protected: |
+ static const char* const kSearchURL; |
+ static const char* const kSuggestURL; |
+ static const char* const kIconURL; |
+ static const char* const kName; |
+ static const char* const kKeyword; |
+ |
+ // Build a default search policy by setting search-related keys in |policy| to |
+ // reasonable values. You can update any of the keys after calling this |
+ // method. |
+ void BuildDefaultSearchPolicy(PolicyMap* policy); |
+ |
+ base::ListValue default_alternate_urls_; |
+}; |
+ |
+const char* const ConfigurationPolicyPrefStoreDefaultSearchTest::kSearchURL = |
+ "http://test.com/search?t={searchTerms}"; |
+const char* const ConfigurationPolicyPrefStoreDefaultSearchTest::kSuggestURL = |
+ "http://test.com/sugg?={searchTerms}"; |
+const char* const ConfigurationPolicyPrefStoreDefaultSearchTest::kIconURL = |
+ "http://test.com/icon.jpg"; |
+const char* const ConfigurationPolicyPrefStoreDefaultSearchTest::kName = |
+ "MyName"; |
+const char* const ConfigurationPolicyPrefStoreDefaultSearchTest::kKeyword = |
+ "MyKeyword"; |
+ |
+void ConfigurationPolicyPrefStoreDefaultSearchTest:: |
+ BuildDefaultSearchPolicy(PolicyMap* policy) { |
+ base::ListValue* encodings = new base::ListValue(); |
+ encodings->AppendString("UTF-16"); |
+ encodings->AppendString("UTF-8"); |
+ policy->Set(key::kDefaultSearchProviderEnabled, POLICY_LEVEL_MANDATORY, |
+ POLICY_SCOPE_USER, base::Value::CreateBooleanValue(true)); |
+ policy->Set(key::kDefaultSearchProviderSearchURL, POLICY_LEVEL_MANDATORY, |
+ POLICY_SCOPE_USER, base::Value::CreateStringValue(kSearchURL)); |
+ policy->Set(key::kDefaultSearchProviderName, POLICY_LEVEL_MANDATORY, |
+ POLICY_SCOPE_USER, base::Value::CreateStringValue(kName)); |
+ policy->Set(key::kDefaultSearchProviderKeyword, POLICY_LEVEL_MANDATORY, |
+ POLICY_SCOPE_USER, base::Value::CreateStringValue(kKeyword)); |
+ policy->Set(key::kDefaultSearchProviderSuggestURL, POLICY_LEVEL_MANDATORY, |
+ POLICY_SCOPE_USER, base::Value::CreateStringValue(kSuggestURL)); |
+ policy->Set(key::kDefaultSearchProviderIconURL, POLICY_LEVEL_MANDATORY, |
+ POLICY_SCOPE_USER, base::Value::CreateStringValue(kIconURL)); |
+ policy->Set(key::kDefaultSearchProviderEncodings, POLICY_LEVEL_MANDATORY, |
+ POLICY_SCOPE_USER, encodings); |
+ policy->Set(key::kDefaultSearchProviderAlternateURLs, POLICY_LEVEL_MANDATORY, |
+ POLICY_SCOPE_USER, default_alternate_urls_.DeepCopy()); |
+} |
// Checks that if the policy for default search is valid, i.e. there's a |
// search URL, that all the elements have been given proper defaults. |
TEST_F(ConfigurationPolicyPrefStoreDefaultSearchTest, MinimallyDefined) { |
PolicyMap policy; |
- const char* const search_url = "http://test.com/search?t={searchTerms}"; |
policy.Set(key::kDefaultSearchProviderEnabled, POLICY_LEVEL_MANDATORY, |
POLICY_SCOPE_USER, base::Value::CreateBooleanValue(true)); |
policy.Set(key::kDefaultSearchProviderSearchURL, POLICY_LEVEL_MANDATORY, |
- POLICY_SCOPE_USER, base::Value::CreateStringValue(search_url)); |
+ POLICY_SCOPE_USER, base::Value::CreateStringValue(kSearchURL)); |
provider_.UpdateChromePolicy(policy); |
const base::Value* value = NULL; |
EXPECT_EQ(PrefStore::READ_OK, |
store_->GetValue(prefs::kDefaultSearchProviderSearchURL, &value)); |
- EXPECT_TRUE(base::StringValue(search_url).Equals(value)); |
+ EXPECT_TRUE(base::StringValue(kSearchURL).Equals(value)); |
EXPECT_EQ(PrefStore::READ_OK, |
store_->GetValue(prefs::kDefaultSearchProviderName, &value)); |
@@ -597,85 +652,56 @@ TEST_F(ConfigurationPolicyPrefStoreDefaultSearchTest, MinimallyDefined) { |
EXPECT_EQ(PrefStore::READ_OK, |
store_->GetValue(prefs::kDefaultSearchProviderInstantURL, &value)); |
EXPECT_TRUE(base::StringValue(std::string()).Equals(value)); |
+ |
+ EXPECT_EQ(PrefStore::READ_OK, |
+ store_->GetValue(prefs::kDefaultSearchProviderAlternateURLs, |
+ &value)); |
+ EXPECT_TRUE(base::ListValue().Equals(value)); |
} |
// Checks that for a fully defined search policy, all elements have been |
// read properly. |
TEST_F(ConfigurationPolicyPrefStoreDefaultSearchTest, FullyDefined) { |
PolicyMap policy; |
- const char* const search_url = "http://test.com/search?t={searchTerms}"; |
- const char* const suggest_url = "http://test.com/sugg?={searchTerms}"; |
- const char* const icon_url = "http://test.com/icon.jpg"; |
- const char* const name = "MyName"; |
- const char* const keyword = "MyKeyword"; |
- base::ListValue* encodings = new base::ListValue(); |
- encodings->Append(base::Value::CreateStringValue("UTF-16")); |
- encodings->Append(base::Value::CreateStringValue("UTF-8")); |
- policy.Set(key::kDefaultSearchProviderEnabled, POLICY_LEVEL_MANDATORY, |
- POLICY_SCOPE_USER, base::Value::CreateBooleanValue(true)); |
- policy.Set(key::kDefaultSearchProviderSearchURL, POLICY_LEVEL_MANDATORY, |
- POLICY_SCOPE_USER, base::Value::CreateStringValue(search_url)); |
- policy.Set(key::kDefaultSearchProviderName, POLICY_LEVEL_MANDATORY, |
- POLICY_SCOPE_USER, base::Value::CreateStringValue(name)); |
- policy.Set(key::kDefaultSearchProviderKeyword, POLICY_LEVEL_MANDATORY, |
- POLICY_SCOPE_USER, base::Value::CreateStringValue(keyword)); |
- policy.Set(key::kDefaultSearchProviderSuggestURL, POLICY_LEVEL_MANDATORY, |
- POLICY_SCOPE_USER, base::Value::CreateStringValue(suggest_url)); |
- policy.Set(key::kDefaultSearchProviderIconURL, POLICY_LEVEL_MANDATORY, |
- POLICY_SCOPE_USER, base::Value::CreateStringValue(icon_url)); |
- policy.Set(key::kDefaultSearchProviderEncodings, POLICY_LEVEL_MANDATORY, |
- POLICY_SCOPE_USER, encodings); |
+ BuildDefaultSearchPolicy(&policy); |
provider_.UpdateChromePolicy(policy); |
const base::Value* value = NULL; |
EXPECT_EQ(PrefStore::READ_OK, |
store_->GetValue(prefs::kDefaultSearchProviderSearchURL, &value)); |
- EXPECT_TRUE(base::StringValue(search_url).Equals(value)); |
+ EXPECT_TRUE(base::StringValue(kSearchURL).Equals(value)); |
EXPECT_EQ(PrefStore::READ_OK, |
store_->GetValue(prefs::kDefaultSearchProviderName, &value)); |
- EXPECT_TRUE(base::StringValue(name).Equals(value)); |
+ EXPECT_TRUE(base::StringValue(kName).Equals(value)); |
EXPECT_EQ(PrefStore::READ_OK, |
store_->GetValue(prefs::kDefaultSearchProviderKeyword, &value)); |
- EXPECT_TRUE(base::StringValue(keyword).Equals(value)); |
+ EXPECT_TRUE(base::StringValue(kKeyword).Equals(value)); |
EXPECT_EQ(PrefStore::READ_OK, |
store_->GetValue(prefs::kDefaultSearchProviderSuggestURL, &value)); |
- EXPECT_TRUE(base::StringValue(suggest_url).Equals(value)); |
+ EXPECT_TRUE(base::StringValue(kSuggestURL).Equals(value)); |
EXPECT_EQ(PrefStore::READ_OK, |
store_->GetValue(prefs::kDefaultSearchProviderIconURL, &value)); |
- EXPECT_TRUE(base::StringValue(icon_url).Equals(value)); |
+ EXPECT_TRUE(base::StringValue(kIconURL).Equals(value)); |
EXPECT_EQ(PrefStore::READ_OK, |
store_->GetValue(prefs::kDefaultSearchProviderEncodings, &value)); |
EXPECT_TRUE(base::StringValue("UTF-16;UTF-8").Equals(value)); |
+ |
+ EXPECT_EQ(PrefStore::READ_OK, store_->GetValue( |
+ prefs::kDefaultSearchProviderAlternateURLs, &value)); |
+ EXPECT_TRUE(default_alternate_urls_.Equals(value)); |
} |
// Checks that if the default search policy is missing, that no elements of the |
// default search policy will be present. |
TEST_F(ConfigurationPolicyPrefStoreDefaultSearchTest, MissingUrl) { |
PolicyMap policy; |
- const char* const suggest_url = "http://test.com/sugg?t={searchTerms}"; |
- const char* const icon_url = "http://test.com/icon.jpg"; |
- const char* const name = "MyName"; |
- const char* const keyword = "MyKeyword"; |
- base::ListValue* encodings = new base::ListValue(); |
- encodings->Append(base::Value::CreateStringValue("UTF-16")); |
- encodings->Append(base::Value::CreateStringValue("UTF-8")); |
- policy.Set(key::kDefaultSearchProviderEnabled, POLICY_LEVEL_MANDATORY, |
- POLICY_SCOPE_USER, base::Value::CreateBooleanValue(true)); |
- policy.Set(key::kDefaultSearchProviderName, POLICY_LEVEL_MANDATORY, |
- POLICY_SCOPE_USER, base::Value::CreateStringValue(name)); |
- policy.Set(key::kDefaultSearchProviderKeyword, POLICY_LEVEL_MANDATORY, |
- POLICY_SCOPE_USER, base::Value::CreateStringValue(keyword)); |
- policy.Set(key::kDefaultSearchProviderSuggestURL, POLICY_LEVEL_MANDATORY, |
- POLICY_SCOPE_USER, base::Value::CreateStringValue(suggest_url)); |
- policy.Set(key::kDefaultSearchProviderIconURL, POLICY_LEVEL_MANDATORY, |
- POLICY_SCOPE_USER, base::Value::CreateStringValue(icon_url)); |
- policy.Set(key::kDefaultSearchProviderEncodings, POLICY_LEVEL_MANDATORY, |
- POLICY_SCOPE_USER, encodings); |
+ BuildDefaultSearchPolicy(&policy); |
+ policy.Erase(key::kDefaultSearchProviderSearchURL); |
provider_.UpdateChromePolicy(policy); |
EXPECT_EQ(PrefStore::READ_NO_VALUE, |
@@ -690,35 +716,19 @@ TEST_F(ConfigurationPolicyPrefStoreDefaultSearchTest, MissingUrl) { |
store_->GetValue(prefs::kDefaultSearchProviderIconURL, NULL)); |
EXPECT_EQ(PrefStore::READ_NO_VALUE, |
store_->GetValue(prefs::kDefaultSearchProviderEncodings, NULL)); |
+ EXPECT_EQ(PrefStore::READ_NO_VALUE, |
+ store_->GetValue(prefs::kDefaultSearchProviderAlternateURLs, NULL)); |
} |
// Checks that if the default search policy is invalid, that no elements of the |
// default search policy will be present. |
TEST_F(ConfigurationPolicyPrefStoreDefaultSearchTest, Invalid) { |
PolicyMap policy; |
+ BuildDefaultSearchPolicy(&policy); |
const char* const bad_search_url = "http://test.com/noSearchTerms"; |
- const char* const suggest_url = "http://test.com/sugg?t={searchTerms}"; |
- const char* const icon_url = "http://test.com/icon.jpg"; |
- const char* const name = "MyName"; |
- const char* const keyword = "MyKeyword"; |
- base::ListValue* encodings = new base::ListValue(); |
- encodings->Append(base::Value::CreateStringValue("UTF-16")); |
- encodings->Append(base::Value::CreateStringValue("UTF-8")); |
- policy.Set(key::kDefaultSearchProviderEnabled, POLICY_LEVEL_MANDATORY, |
- POLICY_SCOPE_USER, base::Value::CreateBooleanValue(true)); |
policy.Set(key::kDefaultSearchProviderSearchURL, POLICY_LEVEL_MANDATORY, |
POLICY_SCOPE_USER, |
base::Value::CreateStringValue(bad_search_url)); |
- policy.Set(key::kDefaultSearchProviderName, POLICY_LEVEL_MANDATORY, |
- POLICY_SCOPE_USER, base::Value::CreateStringValue(name)); |
- policy.Set(key::kDefaultSearchProviderKeyword, POLICY_LEVEL_MANDATORY, |
- POLICY_SCOPE_USER, base::Value::CreateStringValue(keyword)); |
- policy.Set(key::kDefaultSearchProviderSuggestURL, POLICY_LEVEL_MANDATORY, |
- POLICY_SCOPE_USER, base::Value::CreateStringValue(suggest_url)); |
- policy.Set(key::kDefaultSearchProviderIconURL, POLICY_LEVEL_MANDATORY, |
- POLICY_SCOPE_USER, base::Value::CreateStringValue(icon_url)); |
- policy.Set(key::kDefaultSearchProviderEncodings, POLICY_LEVEL_MANDATORY, |
- POLICY_SCOPE_USER, encodings); |
provider_.UpdateChromePolicy(policy); |
EXPECT_EQ(PrefStore::READ_NO_VALUE, |
@@ -733,6 +743,8 @@ TEST_F(ConfigurationPolicyPrefStoreDefaultSearchTest, Invalid) { |
store_->GetValue(prefs::kDefaultSearchProviderIconURL, NULL)); |
EXPECT_EQ(PrefStore::READ_NO_VALUE, |
store_->GetValue(prefs::kDefaultSearchProviderEncodings, NULL)); |
+ EXPECT_EQ(PrefStore::READ_NO_VALUE, |
+ store_->GetValue(prefs::kDefaultSearchProviderAlternateURLs, NULL)); |
} |
// Checks that if the default search policy is invalid, that no elements of the |