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 3 // found in the LICENSE file. 4 5 #include "components/search_engines/default_search_pref_test_util.h" 6 7 #include "base/strings/string_split.h" 8 #include "components/search_engines/default_search_manager.h" 9 #include "testing/gtest/include/gtest/gtest.h" 10 11 // static 12 scoped_ptr<base::DictionaryValue> 13 DefaultSearchPrefTestUtil::CreateDefaultSearchPreferenceValue( 14 bool enabled, 15 const std::string& name, 16 const std::string& keyword, 17 const std::string& search_url, 18 const std::string& suggest_url, 19 const std::string& icon_url, 20 const std::string& encodings, 21 const std::string& alternate_url, 22 const std::string& search_terms_replacement_key) { 23 scoped_ptr<base::DictionaryValue> value(new base::DictionaryValue); 24 if (!enabled) { 25 value->SetBoolean(DefaultSearchManager::kDisabledByPolicy, true); 26 return value.Pass(); 27 } 28 29 EXPECT_FALSE(keyword.empty()); 30 EXPECT_FALSE(search_url.empty()); 31 value->Set(DefaultSearchManager::kShortName, 32 new base::StringValue(name)); 33 value->Set(DefaultSearchManager::kKeyword, 34 new base::StringValue(keyword)); 35 value->Set(DefaultSearchManager::kURL, 36 new base::StringValue(search_url)); 37 value->Set(DefaultSearchManager::kSuggestionsURL, 38 new base::StringValue(suggest_url)); 39 value->Set(DefaultSearchManager::kFaviconURL, 40 new base::StringValue(icon_url)); 41 value->Set(DefaultSearchManager::kSearchTermsReplacementKey, 42 new base::StringValue(search_terms_replacement_key)); 43 44 std::vector<std::string> encodings_items; 45 base::SplitString(encodings, ';', &encodings_items); 46 scoped_ptr<base::ListValue> encodings_list(new base::ListValue); 47 for (std::vector<std::string>::const_iterator it = encodings_items.begin(); 48 it != encodings_items.end(); 49 ++it) { 50 encodings_list->AppendString(*it); 51 } 52 value->Set(DefaultSearchManager::kInputEncodings, encodings_list.release()); 53 54 scoped_ptr<base::ListValue> alternate_url_list(new base::ListValue()); 55 if (!alternate_url.empty()) 56 alternate_url_list->Append(new base::StringValue(alternate_url)); 57 value->Set(DefaultSearchManager::kAlternateURLs, 58 alternate_url_list.release()); 59 return value.Pass(); 60 } 61