1116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Copyright 2014 The Chromium Authors. All rights reserved. 2116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Use of this source code is governed by a BSD-style license that can be 3116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// found in the LICENSE file. 4116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 5116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "components/search_engines/default_search_pref_test_util.h" 6116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 7116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "base/strings/string_split.h" 8116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "components/search_engines/default_search_manager.h" 9116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "testing/gtest/include/gtest/gtest.h" 10116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 11116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// static 12116680a4aac90f2aa7413d9095a592090648e557Ben Murdochscoped_ptr<base::DictionaryValue> 13116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDefaultSearchPrefTestUtil::CreateDefaultSearchPreferenceValue( 14116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch bool enabled, 15116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const std::string& name, 16116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const std::string& keyword, 17116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const std::string& search_url, 18116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const std::string& suggest_url, 19116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const std::string& icon_url, 20116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const std::string& encodings, 21116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const std::string& alternate_url, 22116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const std::string& search_terms_replacement_key) { 23116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch scoped_ptr<base::DictionaryValue> value(new base::DictionaryValue); 24116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch if (!enabled) { 25116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch value->SetBoolean(DefaultSearchManager::kDisabledByPolicy, true); 26116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch return value.Pass(); 27116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch } 28116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 29116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch EXPECT_FALSE(keyword.empty()); 30116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch EXPECT_FALSE(search_url.empty()); 31116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch value->Set(DefaultSearchManager::kShortName, 325f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) new base::StringValue(name)); 33116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch value->Set(DefaultSearchManager::kKeyword, 345f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) new base::StringValue(keyword)); 35116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch value->Set(DefaultSearchManager::kURL, 365f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) new base::StringValue(search_url)); 37116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch value->Set(DefaultSearchManager::kSuggestionsURL, 385f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) new base::StringValue(suggest_url)); 39116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch value->Set(DefaultSearchManager::kFaviconURL, 405f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) new base::StringValue(icon_url)); 41116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch value->Set(DefaultSearchManager::kSearchTermsReplacementKey, 425f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) new base::StringValue(search_terms_replacement_key)); 43116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 44116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch std::vector<std::string> encodings_items; 45116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch base::SplitString(encodings, ';', &encodings_items); 46116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch scoped_ptr<base::ListValue> encodings_list(new base::ListValue); 47116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch for (std::vector<std::string>::const_iterator it = encodings_items.begin(); 48116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch it != encodings_items.end(); 49116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch ++it) { 50116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch encodings_list->AppendString(*it); 51116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch } 52116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch value->Set(DefaultSearchManager::kInputEncodings, encodings_list.release()); 53116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 54116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch scoped_ptr<base::ListValue> alternate_url_list(new base::ListValue()); 55116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch if (!alternate_url.empty()) 565f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) alternate_url_list->Append(new base::StringValue(alternate_url)); 57116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch value->Set(DefaultSearchManager::kAlternateURLs, 58116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch alternate_url_list.release()); 59116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch return value.Pass(); 60116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} 61