Chromium Code Reviews| OLD | NEW |
|---|---|
| 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}"); |
| (...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 290 | 298 |
| 291 const base::Value* value = NULL; | 299 const base::Value* value = NULL; |
| 292 EXPECT_TRUE(store_->GetValue(prefs::kDefaultSearchProviderEnabled, &value)); | 300 EXPECT_TRUE(store_->GetValue(prefs::kDefaultSearchProviderEnabled, &value)); |
| 293 base::FundamentalValue expected_enabled(false); | 301 base::FundamentalValue expected_enabled(false); |
| 294 EXPECT_TRUE(base::Value::Equals(&expected_enabled, value)); | 302 EXPECT_TRUE(base::Value::Equals(&expected_enabled, value)); |
| 295 EXPECT_TRUE(store_->GetValue(prefs::kDefaultSearchProviderSearchURL, &value)); | 303 EXPECT_TRUE(store_->GetValue(prefs::kDefaultSearchProviderSearchURL, &value)); |
| 296 base::StringValue expected_search_url((std::string())); | 304 base::StringValue expected_search_url((std::string())); |
| 297 EXPECT_TRUE(base::Value::Equals(&expected_search_url, value)); | 305 EXPECT_TRUE(base::Value::Equals(&expected_search_url, value)); |
| 298 } | 306 } |
| 299 | 307 |
| 308 // Checks that for a fully defined search policy, all elements have been | |
| 309 // read properly into the dictionary pref. | |
| 310 TEST_F(DefaultSearchPolicyHandlerTest, DictionaryPref) { | |
| 311 PolicyMap policy; | |
| 312 BuildDefaultSearchPolicy(&policy); | |
| 313 UpdateProviderPolicy(policy); | |
| 314 | |
| 315 const base::Value* temp = NULL; | |
| 316 const base::DictionaryValue* dictionary; | |
| 317 std::string value; | |
| 318 const base::ListValue* list_value; | |
| 319 EXPECT_TRUE(store_->GetValue(kDefaultSearchProviderData, &temp)); | |
| 320 temp->GetAsDictionary(&dictionary); | |
| 321 | |
| 322 EXPECT_TRUE(dictionary->GetString(DefaultSearchManager::kURL, &value)); | |
| 323 EXPECT_EQ(kSearchURL, value); | |
| 324 EXPECT_TRUE(dictionary->GetString(DefaultSearchManager::kShortName, &value)); | |
| 325 EXPECT_EQ(kName, value); | |
| 326 EXPECT_TRUE(dictionary->GetString(DefaultSearchManager::kKeyword, &value)); | |
| 327 EXPECT_EQ(kKeyword, value); | |
| 328 | |
| 329 EXPECT_TRUE( | |
| 330 dictionary->GetString(DefaultSearchManager::kSuggestionsURL, &value)); | |
| 331 EXPECT_EQ(kSuggestURL, value); | |
| 332 EXPECT_TRUE(dictionary->GetString(DefaultSearchManager::kFaviconURL, &value)); | |
| 333 EXPECT_EQ(kIconURL, value); | |
| 334 | |
| 335 base::ListValue encodings; | |
| 336 encodings.AppendString("UTF-16"); | |
| 337 encodings.AppendString("UTF-8"); | |
| 338 | |
| 339 EXPECT_TRUE( | |
| 340 dictionary->GetList(DefaultSearchManager::kInputEncodings, &list_value)); | |
| 341 EXPECT_TRUE(encodings.Equals(list_value)); | |
| 342 | |
| 343 EXPECT_TRUE( | |
| 344 dictionary->GetList(DefaultSearchManager::kAlternateURLs, &list_value)); | |
| 345 EXPECT_TRUE(default_alternate_urls_.Equals(list_value)); | |
| 346 | |
| 347 EXPECT_TRUE(dictionary->GetString( | |
| 348 DefaultSearchManager::kSearchTermsReplacementKey, &value)); | |
| 349 EXPECT_EQ(kReplacementKey, value); | |
| 350 | |
| 351 EXPECT_TRUE(dictionary->GetString(DefaultSearchManager::kImageURL, &value)); | |
| 352 EXPECT_EQ(kImageURL, value); | |
| 353 | |
| 354 EXPECT_TRUE( | |
| 355 dictionary->GetString(DefaultSearchManager::kImageURLPostParams, &value)); | |
| 356 EXPECT_EQ(kImageParams, value); | |
| 357 | |
| 358 EXPECT_TRUE(dictionary->GetString(DefaultSearchManager::kSearchURLPostParams, | |
| 359 &value)); | |
| 360 EXPECT_EQ(std::string(), value); | |
| 361 | |
| 362 EXPECT_TRUE(dictionary->GetString( | |
| 363 DefaultSearchManager::kSuggestionsURLPostParams, &value)); | |
| 364 EXPECT_EQ(std::string(), value); | |
| 365 | |
| 366 EXPECT_TRUE(dictionary->GetString(DefaultSearchManager::kInstantURLPostParams, | |
| 367 &value)); | |
| 368 EXPECT_EQ(std::string(), value); | |
| 369 } | |
| 370 | |
| 371 // Checks that disabling default search is properly reflected the dictionary | |
| 372 // pref. | |
| 373 TEST_F(DefaultSearchPolicyHandlerTest, DictionaryPrefDSEDisabled) { | |
| 374 PolicyMap policy; | |
| 375 policy.Set(key::kDefaultSearchProviderEnabled, POLICY_LEVEL_MANDATORY, | |
| 376 POLICY_SCOPE_USER, base::Value::CreateBooleanValue(false), NULL); | |
|
Peter Kasting
2014/04/29 01:47:32
Nit: Indenting
Cait (Slow)
2014/04/29 17:14:51
Done.
| |
| 377 UpdateProviderPolicy(policy); | |
| 378 const base::Value* temp = NULL; | |
| 379 const base::DictionaryValue* dictionary; | |
| 380 EXPECT_TRUE(store_->GetValue(kDefaultSearchProviderData, &temp)); | |
| 381 temp->GetAsDictionary(&dictionary); | |
| 382 bool disabled = false; | |
| 383 EXPECT_TRUE(dictionary->GetBoolean(DefaultSearchManager::kDisabledByPolicy, | |
| 384 &disabled)); | |
| 385 EXPECT_TRUE(disabled); | |
| 386 | |
| 387 } | |
| 300 } // namespace policy | 388 } // namespace policy |
| OLD | NEW |