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/template_url_prepopulate_data.h" |
| 6 |
5 #include <stddef.h> | 7 #include <stddef.h> |
6 | 8 |
| 9 #include <memory> |
| 10 #include <utility> |
| 11 |
7 #include "base/command_line.h" | 12 #include "base/command_line.h" |
8 #include "base/files/scoped_temp_dir.h" | 13 #include "base/files/scoped_temp_dir.h" |
9 #include "base/macros.h" | 14 #include "base/macros.h" |
10 #include "base/memory/scoped_vector.h" | 15 #include "base/memory/scoped_vector.h" |
11 #include "base/strings/utf_string_conversions.h" | 16 #include "base/strings/utf_string_conversions.h" |
12 #include "components/google/core/browser/google_switches.h" | 17 #include "components/google/core/browser/google_switches.h" |
13 #include "components/pref_registry/testing_pref_service_syncable.h" | 18 #include "components/pref_registry/testing_pref_service_syncable.h" |
14 #include "components/search_engines/prepopulated_engines.h" | 19 #include "components/search_engines/prepopulated_engines.h" |
15 #include "components/search_engines/search_engines_pref_names.h" | 20 #include "components/search_engines/search_engines_pref_names.h" |
16 #include "components/search_engines/search_terms_data.h" | 21 #include "components/search_engines/search_terms_data.h" |
17 #include "components/search_engines/template_url.h" | 22 #include "components/search_engines/template_url.h" |
18 #include "components/search_engines/template_url_prepopulate_data.h" | |
19 #include "components/search_engines/template_url_service.h" | 23 #include "components/search_engines/template_url_service.h" |
20 #include "testing/gtest/include/gtest/gtest.h" | 24 #include "testing/gtest/include/gtest/gtest.h" |
21 | 25 |
22 using base::ASCIIToUTF16; | 26 using base::ASCIIToUTF16; |
23 | 27 |
24 namespace { | 28 namespace { |
25 | 29 |
26 SearchEngineType GetEngineType(const std::string& url) { | 30 SearchEngineType GetEngineType(const std::string& url) { |
27 TemplateURLData data; | 31 TemplateURLData data; |
28 data.SetURL(url); | 32 data.SetURL(url); |
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
200 t_urls = | 204 t_urls = |
201 TemplateURLPrepopulateData::GetPrepopulatedEngines(&prefs_, | 205 TemplateURLPrepopulateData::GetPrepopulatedEngines(&prefs_, |
202 &default_index); | 206 &default_index); |
203 EXPECT_EQ(2u, t_urls.size()); | 207 EXPECT_EQ(2u, t_urls.size()); |
204 } | 208 } |
205 | 209 |
206 TEST_F(TemplateURLPrepopulateDataTest, ClearProvidersFromPrefs) { | 210 TEST_F(TemplateURLPrepopulateDataTest, ClearProvidersFromPrefs) { |
207 prefs_.SetUserPref(prefs::kSearchProviderOverridesVersion, | 211 prefs_.SetUserPref(prefs::kSearchProviderOverridesVersion, |
208 new base::FundamentalValue(1)); | 212 new base::FundamentalValue(1)); |
209 base::ListValue* overrides = new base::ListValue; | 213 base::ListValue* overrides = new base::ListValue; |
210 base::DictionaryValue* entry(new base::DictionaryValue); | 214 std::unique_ptr<base::DictionaryValue> entry(new base::DictionaryValue); |
211 // Set only the minimal required settings for a search provider configuration. | 215 // Set only the minimal required settings for a search provider configuration. |
212 entry->SetString("name", "foo"); | 216 entry->SetString("name", "foo"); |
213 entry->SetString("keyword", "fook"); | 217 entry->SetString("keyword", "fook"); |
214 entry->SetString("search_url", "http://foo.com/s?q={searchTerms}"); | 218 entry->SetString("search_url", "http://foo.com/s?q={searchTerms}"); |
215 entry->SetString("favicon_url", "http://foi.com/favicon.ico"); | 219 entry->SetString("favicon_url", "http://foi.com/favicon.ico"); |
216 entry->SetString("encoding", "UTF-8"); | 220 entry->SetString("encoding", "UTF-8"); |
217 entry->SetInteger("id", 1001); | 221 entry->SetInteger("id", 1001); |
218 overrides->Append(entry); | 222 overrides->Append(std::move(entry)); |
219 prefs_.SetUserPref(prefs::kSearchProviderOverrides, overrides); | 223 prefs_.SetUserPref(prefs::kSearchProviderOverrides, overrides); |
220 | 224 |
221 int version = TemplateURLPrepopulateData::GetDataVersion(&prefs_); | 225 int version = TemplateURLPrepopulateData::GetDataVersion(&prefs_); |
222 EXPECT_EQ(1, version); | 226 EXPECT_EQ(1, version); |
223 | 227 |
224 // This call removes the above search engine. | 228 // This call removes the above search engine. |
225 TemplateURLPrepopulateData::ClearPrepopulatedEnginesInPrefs(&prefs_); | 229 TemplateURLPrepopulateData::ClearPrepopulatedEnginesInPrefs(&prefs_); |
226 | 230 |
227 version = TemplateURLPrepopulateData::GetDataVersion(&prefs_); | 231 version = TemplateURLPrepopulateData::GetDataVersion(&prefs_); |
228 EXPECT_EQ(TemplateURLPrepopulateData::kCurrentDataVersion, version); | 232 EXPECT_EQ(TemplateURLPrepopulateData::kCurrentDataVersion, version); |
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
343 EXPECT_EQ(SEARCH_ENGINE_OTHER, GetEngineType("invalid:search:url")); | 347 EXPECT_EQ(SEARCH_ENGINE_OTHER, GetEngineType("invalid:search:url")); |
344 | 348 |
345 // URL that doesn't look Google-related, but matches a Google base URL | 349 // URL that doesn't look Google-related, but matches a Google base URL |
346 // specified on the command line. | 350 // specified on the command line. |
347 const std::string foo_url("http://www.foo.com/search?q={searchTerms}"); | 351 const std::string foo_url("http://www.foo.com/search?q={searchTerms}"); |
348 EXPECT_EQ(SEARCH_ENGINE_OTHER, GetEngineType(foo_url)); | 352 EXPECT_EQ(SEARCH_ENGINE_OTHER, GetEngineType(foo_url)); |
349 base::CommandLine::ForCurrentProcess()->AppendSwitchASCII( | 353 base::CommandLine::ForCurrentProcess()->AppendSwitchASCII( |
350 switches::kGoogleBaseURL, "http://www.foo.com/"); | 354 switches::kGoogleBaseURL, "http://www.foo.com/"); |
351 EXPECT_EQ(SEARCH_ENGINE_GOOGLE, GetEngineType(foo_url)); | 355 EXPECT_EQ(SEARCH_ENGINE_GOOGLE, GetEngineType(foo_url)); |
352 } | 356 } |
OLD | NEW |