OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "components/search_engines/default_search_policy_handler.h" | 5 #include "components/search_engines/default_search_policy_handler.h" |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 | 8 |
9 #include "base/memory/ptr_util.h" | 9 #include "base/memory/ptr_util.h" |
10 #include "components/policy/core/browser/configuration_policy_pref_store.h" | 10 #include "components/policy/core/browser/configuration_policy_pref_store.h" |
11 #include "components/policy/core/browser/configuration_policy_pref_store_test.h" | 11 #include "components/policy/core/browser/configuration_policy_pref_store_test.h" |
12 #include "components/policy/core/common/policy_types.h" | 12 #include "components/policy/core/common/policy_types.h" |
13 #include "components/policy/policy_constants.h" | 13 #include "components/policy/policy_constants.h" |
14 #include "components/search_engines/default_search_manager.h" | 14 #include "components/search_engines/default_search_manager.h" |
15 #include "components/search_engines/search_engines_pref_names.h" | 15 #include "components/search_engines/search_engines_pref_names.h" |
16 | 16 |
17 namespace { | |
18 // TODO(caitkp): Should we find a way to route this through DefaultSearchManager | |
19 // to avoid hardcoding this here? | |
20 const char kDefaultSearchProviderData[] = | |
21 "default_search_provider_data.template_url_data"; | |
22 } // namespace | |
23 | |
24 namespace policy { | 17 namespace policy { |
25 | 18 |
26 class DefaultSearchPolicyHandlerTest | 19 class DefaultSearchPolicyHandlerTest |
27 : public ConfigurationPolicyPrefStoreTest { | 20 : public ConfigurationPolicyPrefStoreTest { |
28 public: | 21 public: |
29 DefaultSearchPolicyHandlerTest() { | 22 DefaultSearchPolicyHandlerTest() { |
30 default_alternate_urls_.AppendString( | 23 default_alternate_urls_.AppendString( |
31 "http://www.google.com/#q={searchTerms}"); | 24 "http://www.google.com/#q={searchTerms}"); |
32 default_alternate_urls_.AppendString( | 25 default_alternate_urls_.AppendString( |
33 "http://www.google.com/search#q={searchTerms}"); | 26 "http://www.google.com/search#q={searchTerms}"); |
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
126 | 119 |
127 // Checks that if the default search policy is missing, that no elements of the | 120 // Checks that if the default search policy is missing, that no elements of the |
128 // default search policy will be present. | 121 // default search policy will be present. |
129 TEST_F(DefaultSearchPolicyHandlerTest, MissingUrl) { | 122 TEST_F(DefaultSearchPolicyHandlerTest, MissingUrl) { |
130 PolicyMap policy; | 123 PolicyMap policy; |
131 BuildDefaultSearchPolicy(&policy); | 124 BuildDefaultSearchPolicy(&policy); |
132 policy.Erase(key::kDefaultSearchProviderSearchURL); | 125 policy.Erase(key::kDefaultSearchProviderSearchURL); |
133 UpdateProviderPolicy(policy); | 126 UpdateProviderPolicy(policy); |
134 | 127 |
135 const base::Value* temp = nullptr; | 128 const base::Value* temp = nullptr; |
136 EXPECT_FALSE(store_->GetValue(kDefaultSearchProviderData, &temp)); | 129 EXPECT_FALSE(store_->GetValue( |
| 130 DefaultSearchManager::kDefaultSearchProviderDataPrefName, &temp)); |
137 } | 131 } |
138 | 132 |
139 // Checks that if the default search policy is invalid, that no elements of the | 133 // Checks that if the default search policy is invalid, that no elements of the |
140 // default search policy will be present. | 134 // default search policy will be present. |
141 TEST_F(DefaultSearchPolicyHandlerTest, Invalid) { | 135 TEST_F(DefaultSearchPolicyHandlerTest, Invalid) { |
142 PolicyMap policy; | 136 PolicyMap policy; |
143 BuildDefaultSearchPolicy(&policy); | 137 BuildDefaultSearchPolicy(&policy); |
144 const char bad_search_url[] = "http://test.com/noSearchTerms"; | 138 const char bad_search_url[] = "http://test.com/noSearchTerms"; |
145 policy.Set(key::kDefaultSearchProviderSearchURL, POLICY_LEVEL_MANDATORY, | 139 policy.Set(key::kDefaultSearchProviderSearchURL, POLICY_LEVEL_MANDATORY, |
146 POLICY_SCOPE_USER, POLICY_SOURCE_CLOUD, | 140 POLICY_SCOPE_USER, POLICY_SOURCE_CLOUD, |
147 base::WrapUnique(new base::StringValue(bad_search_url)), nullptr); | 141 base::WrapUnique(new base::StringValue(bad_search_url)), nullptr); |
148 UpdateProviderPolicy(policy); | 142 UpdateProviderPolicy(policy); |
149 | 143 |
150 const base::Value* temp = nullptr; | 144 const base::Value* temp = nullptr; |
151 EXPECT_FALSE(store_->GetValue(kDefaultSearchProviderData, &temp)); | 145 EXPECT_FALSE(store_->GetValue( |
| 146 DefaultSearchManager::kDefaultSearchProviderDataPrefName, &temp)); |
152 } | 147 } |
153 | 148 |
154 // Checks that for a fully defined search policy, all elements have been | 149 // Checks that for a fully defined search policy, all elements have been |
155 // read properly into the dictionary pref. | 150 // read properly into the dictionary pref. |
156 TEST_F(DefaultSearchPolicyHandlerTest, FullyDefined) { | 151 TEST_F(DefaultSearchPolicyHandlerTest, FullyDefined) { |
157 PolicyMap policy; | 152 PolicyMap policy; |
158 BuildDefaultSearchPolicy(&policy); | 153 BuildDefaultSearchPolicy(&policy); |
159 UpdateProviderPolicy(policy); | 154 UpdateProviderPolicy(policy); |
160 | 155 |
161 const base::Value* temp = NULL; | 156 const base::Value* temp = NULL; |
162 const base::DictionaryValue* dictionary; | 157 const base::DictionaryValue* dictionary; |
163 std::string value; | 158 std::string value; |
164 const base::ListValue* list_value; | 159 const base::ListValue* list_value; |
165 EXPECT_TRUE(store_->GetValue(kDefaultSearchProviderData, &temp)); | 160 EXPECT_TRUE(store_->GetValue( |
| 161 DefaultSearchManager::kDefaultSearchProviderDataPrefName, &temp)); |
166 temp->GetAsDictionary(&dictionary); | 162 temp->GetAsDictionary(&dictionary); |
167 | 163 |
168 EXPECT_TRUE(dictionary->GetString(DefaultSearchManager::kURL, &value)); | 164 EXPECT_TRUE(dictionary->GetString(DefaultSearchManager::kURL, &value)); |
169 EXPECT_EQ(kSearchURL, value); | 165 EXPECT_EQ(kSearchURL, value); |
170 EXPECT_TRUE(dictionary->GetString(DefaultSearchManager::kShortName, &value)); | 166 EXPECT_TRUE(dictionary->GetString(DefaultSearchManager::kShortName, &value)); |
171 EXPECT_EQ(kName, value); | 167 EXPECT_EQ(kName, value); |
172 EXPECT_TRUE(dictionary->GetString(DefaultSearchManager::kKeyword, &value)); | 168 EXPECT_TRUE(dictionary->GetString(DefaultSearchManager::kKeyword, &value)); |
173 EXPECT_EQ(kKeyword, value); | 169 EXPECT_EQ(kKeyword, value); |
174 | 170 |
175 EXPECT_TRUE( | 171 EXPECT_TRUE( |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
217 // Checks that disabling default search is properly reflected the dictionary | 213 // Checks that disabling default search is properly reflected the dictionary |
218 // pref. | 214 // pref. |
219 TEST_F(DefaultSearchPolicyHandlerTest, Disabled) { | 215 TEST_F(DefaultSearchPolicyHandlerTest, Disabled) { |
220 PolicyMap policy; | 216 PolicyMap policy; |
221 policy.Set(key::kDefaultSearchProviderEnabled, POLICY_LEVEL_MANDATORY, | 217 policy.Set(key::kDefaultSearchProviderEnabled, POLICY_LEVEL_MANDATORY, |
222 POLICY_SCOPE_USER, POLICY_SOURCE_CLOUD, | 218 POLICY_SCOPE_USER, POLICY_SOURCE_CLOUD, |
223 base::WrapUnique(new base::FundamentalValue(false)), nullptr); | 219 base::WrapUnique(new base::FundamentalValue(false)), nullptr); |
224 UpdateProviderPolicy(policy); | 220 UpdateProviderPolicy(policy); |
225 const base::Value* temp = NULL; | 221 const base::Value* temp = NULL; |
226 const base::DictionaryValue* dictionary; | 222 const base::DictionaryValue* dictionary; |
227 EXPECT_TRUE(store_->GetValue(kDefaultSearchProviderData, &temp)); | 223 EXPECT_TRUE(store_->GetValue( |
| 224 DefaultSearchManager::kDefaultSearchProviderDataPrefName, &temp)); |
228 temp->GetAsDictionary(&dictionary); | 225 temp->GetAsDictionary(&dictionary); |
229 bool disabled = false; | 226 bool disabled = false; |
230 EXPECT_TRUE(dictionary->GetBoolean(DefaultSearchManager::kDisabledByPolicy, | 227 EXPECT_TRUE(dictionary->GetBoolean(DefaultSearchManager::kDisabledByPolicy, |
231 &disabled)); | 228 &disabled)); |
232 EXPECT_TRUE(disabled); | 229 EXPECT_TRUE(disabled); |
233 } | 230 } |
234 | 231 |
235 // Checks that if the policy for default search is valid, i.e. there's a | 232 // Checks that if the policy for default search is valid, i.e. there's a |
236 // search URL, that all the elements have been given proper defaults. | 233 // search URL, that all the elements have been given proper defaults. |
237 TEST_F(DefaultSearchPolicyHandlerTest, MinimallyDefined) { | 234 TEST_F(DefaultSearchPolicyHandlerTest, MinimallyDefined) { |
238 PolicyMap policy; | 235 PolicyMap policy; |
239 policy.Set(key::kDefaultSearchProviderEnabled, POLICY_LEVEL_MANDATORY, | 236 policy.Set(key::kDefaultSearchProviderEnabled, POLICY_LEVEL_MANDATORY, |
240 POLICY_SCOPE_USER, POLICY_SOURCE_CLOUD, | 237 POLICY_SCOPE_USER, POLICY_SOURCE_CLOUD, |
241 base::WrapUnique(new base::FundamentalValue(true)), nullptr); | 238 base::WrapUnique(new base::FundamentalValue(true)), nullptr); |
242 policy.Set(key::kDefaultSearchProviderSearchURL, POLICY_LEVEL_MANDATORY, | 239 policy.Set(key::kDefaultSearchProviderSearchURL, POLICY_LEVEL_MANDATORY, |
243 POLICY_SCOPE_USER, POLICY_SOURCE_CLOUD, | 240 POLICY_SCOPE_USER, POLICY_SOURCE_CLOUD, |
244 base::WrapUnique(new base::StringValue(kSearchURL)), nullptr); | 241 base::WrapUnique(new base::StringValue(kSearchURL)), nullptr); |
245 UpdateProviderPolicy(policy); | 242 UpdateProviderPolicy(policy); |
246 | 243 |
247 const base::Value* temp = NULL; | 244 const base::Value* temp = NULL; |
248 const base::DictionaryValue* dictionary; | 245 const base::DictionaryValue* dictionary; |
249 std::string value; | 246 std::string value; |
250 const base::ListValue* list_value; | 247 const base::ListValue* list_value; |
251 EXPECT_TRUE(store_->GetValue(kDefaultSearchProviderData, &temp)); | 248 EXPECT_TRUE(store_->GetValue( |
| 249 DefaultSearchManager::kDefaultSearchProviderDataPrefName, &temp)); |
252 temp->GetAsDictionary(&dictionary); | 250 temp->GetAsDictionary(&dictionary); |
253 | 251 |
254 // Name and keyword should be derived from host. | 252 // Name and keyword should be derived from host. |
255 EXPECT_TRUE(dictionary->GetString(DefaultSearchManager::kURL, &value)); | 253 EXPECT_TRUE(dictionary->GetString(DefaultSearchManager::kURL, &value)); |
256 EXPECT_EQ(kSearchURL, value); | 254 EXPECT_EQ(kSearchURL, value); |
257 EXPECT_TRUE(dictionary->GetString(DefaultSearchManager::kShortName, &value)); | 255 EXPECT_TRUE(dictionary->GetString(DefaultSearchManager::kShortName, &value)); |
258 EXPECT_EQ(kHostName, value); | 256 EXPECT_EQ(kHostName, value); |
259 EXPECT_TRUE(dictionary->GetString(DefaultSearchManager::kKeyword, &value)); | 257 EXPECT_TRUE(dictionary->GetString(DefaultSearchManager::kKeyword, &value)); |
260 EXPECT_EQ(kHostName, value); | 258 EXPECT_EQ(kHostName, value); |
261 | 259 |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
299 base::WrapUnique(new base::FundamentalValue(true)), nullptr); | 297 base::WrapUnique(new base::FundamentalValue(true)), nullptr); |
300 policy.Set(key::kDefaultSearchProviderSearchURL, POLICY_LEVEL_MANDATORY, | 298 policy.Set(key::kDefaultSearchProviderSearchURL, POLICY_LEVEL_MANDATORY, |
301 POLICY_SCOPE_USER, POLICY_SOURCE_CLOUD, | 299 POLICY_SCOPE_USER, POLICY_SOURCE_CLOUD, |
302 base::WrapUnique(new base::StringValue(kFileSearchURL)), nullptr); | 300 base::WrapUnique(new base::StringValue(kFileSearchURL)), nullptr); |
303 UpdateProviderPolicy(policy); | 301 UpdateProviderPolicy(policy); |
304 | 302 |
305 const base::Value* temp = NULL; | 303 const base::Value* temp = NULL; |
306 const base::DictionaryValue* dictionary; | 304 const base::DictionaryValue* dictionary; |
307 std::string value; | 305 std::string value; |
308 | 306 |
309 EXPECT_TRUE(store_->GetValue(kDefaultSearchProviderData, &temp)); | 307 EXPECT_TRUE(store_->GetValue( |
| 308 DefaultSearchManager::kDefaultSearchProviderDataPrefName, &temp)); |
310 temp->GetAsDictionary(&dictionary); | 309 temp->GetAsDictionary(&dictionary); |
311 | 310 |
312 EXPECT_TRUE(dictionary->GetString(DefaultSearchManager::kURL, &value)); | 311 EXPECT_TRUE(dictionary->GetString(DefaultSearchManager::kURL, &value)); |
313 EXPECT_EQ(kFileSearchURL, value); | 312 EXPECT_EQ(kFileSearchURL, value); |
314 EXPECT_TRUE(dictionary->GetString(DefaultSearchManager::kShortName, &value)); | 313 EXPECT_TRUE(dictionary->GetString(DefaultSearchManager::kShortName, &value)); |
315 EXPECT_EQ("_", value); | 314 EXPECT_EQ("_", value); |
316 EXPECT_TRUE(dictionary->GetString(DefaultSearchManager::kKeyword, &value)); | 315 EXPECT_TRUE(dictionary->GetString(DefaultSearchManager::kKeyword, &value)); |
317 EXPECT_EQ("_", value); | 316 EXPECT_EQ("_", value); |
318 } | 317 } |
319 } // namespace policy | 318 } // namespace policy |
OLD | NEW |