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 "base/command_line.h" | 5 #include "base/command_line.h" |
6 #include "base/files/scoped_temp_dir.h" | 6 #include "base/files/scoped_temp_dir.h" |
7 #include "base/memory/scoped_vector.h" | 7 #include "base/memory/scoped_vector.h" |
8 #include "base/strings/utf_string_conversions.h" | 8 #include "base/strings/utf_string_conversions.h" |
9 #include "components/google/core/browser/google_switches.h" | 9 #include "components/google/core/browser/google_switches.h" |
10 #include "components/pref_registry/testing_pref_service_syncable.h" | 10 #include "components/pref_registry/testing_pref_service_syncable.h" |
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
131 | 131 |
132 int version = TemplateURLPrepopulateData::GetDataVersion(&prefs_); | 132 int version = TemplateURLPrepopulateData::GetDataVersion(&prefs_); |
133 EXPECT_EQ(1, version); | 133 EXPECT_EQ(1, version); |
134 | 134 |
135 size_t default_index; | 135 size_t default_index; |
136 ScopedVector<TemplateURLData> t_urls = | 136 ScopedVector<TemplateURLData> t_urls = |
137 TemplateURLPrepopulateData::GetPrepopulatedEngines(&prefs_, | 137 TemplateURLPrepopulateData::GetPrepopulatedEngines(&prefs_, |
138 &default_index); | 138 &default_index); |
139 | 139 |
140 ASSERT_EQ(1u, t_urls.size()); | 140 ASSERT_EQ(1u, t_urls.size()); |
141 EXPECT_EQ(ASCIIToUTF16("foo"), t_urls[0]->short_name); | 141 EXPECT_EQ(ASCIIToUTF16("foo"), t_urls[0]->short_name()); |
142 EXPECT_EQ(ASCIIToUTF16("fook"), t_urls[0]->keyword()); | 142 EXPECT_EQ(ASCIIToUTF16("fook"), t_urls[0]->keyword()); |
143 EXPECT_EQ("foo.com", GetHostFromTemplateURLData(*t_urls[0])); | 143 EXPECT_EQ("foo.com", GetHostFromTemplateURLData(*t_urls[0])); |
144 EXPECT_EQ("foi.com", t_urls[0]->favicon_url.host()); | 144 EXPECT_EQ("foi.com", t_urls[0]->favicon_url.host()); |
145 EXPECT_EQ(1u, t_urls[0]->input_encodings.size()); | 145 EXPECT_EQ(1u, t_urls[0]->input_encodings.size()); |
146 EXPECT_EQ(1001, t_urls[0]->prepopulate_id); | 146 EXPECT_EQ(1001, t_urls[0]->prepopulate_id); |
147 EXPECT_TRUE(t_urls[0]->suggestions_url.empty()); | 147 EXPECT_TRUE(t_urls[0]->suggestions_url.empty()); |
148 EXPECT_TRUE(t_urls[0]->instant_url.empty()); | 148 EXPECT_TRUE(t_urls[0]->instant_url.empty()); |
149 EXPECT_EQ(0u, t_urls[0]->alternate_urls.size()); | 149 EXPECT_EQ(0u, t_urls[0]->alternate_urls.size()); |
150 EXPECT_TRUE(t_urls[0]->search_terms_replacement_key.empty()); | 150 EXPECT_TRUE(t_urls[0]->search_terms_replacement_key.empty()); |
151 | 151 |
152 // Test the optional settings too. | 152 // Test the optional settings too. |
153 entry->SetString("suggest_url", "http://foo.com/suggest?q={searchTerms}"); | 153 entry->SetString("suggest_url", "http://foo.com/suggest?q={searchTerms}"); |
154 entry->SetString("instant_url", "http://foo.com/instant?q={searchTerms}"); | 154 entry->SetString("instant_url", "http://foo.com/instant?q={searchTerms}"); |
155 base::ListValue* alternate_urls = new base::ListValue; | 155 base::ListValue* alternate_urls = new base::ListValue; |
156 alternate_urls->AppendString("http://foo.com/alternate?q={searchTerms}"); | 156 alternate_urls->AppendString("http://foo.com/alternate?q={searchTerms}"); |
157 entry->Set("alternate_urls", alternate_urls); | 157 entry->Set("alternate_urls", alternate_urls); |
158 entry->SetString("search_terms_replacement_key", "espv"); | 158 entry->SetString("search_terms_replacement_key", "espv"); |
159 overrides = new base::ListValue; | 159 overrides = new base::ListValue; |
160 overrides->Append(entry->DeepCopy()); | 160 overrides->Append(entry->DeepCopy()); |
161 prefs_.SetUserPref(prefs::kSearchProviderOverrides, overrides); | 161 prefs_.SetUserPref(prefs::kSearchProviderOverrides, overrides); |
162 | 162 |
163 t_urls = TemplateURLPrepopulateData::GetPrepopulatedEngines( | 163 t_urls = TemplateURLPrepopulateData::GetPrepopulatedEngines( |
164 &prefs_, &default_index); | 164 &prefs_, &default_index); |
165 ASSERT_EQ(1u, t_urls.size()); | 165 ASSERT_EQ(1u, t_urls.size()); |
166 EXPECT_EQ(ASCIIToUTF16("foo"), t_urls[0]->short_name); | 166 EXPECT_EQ(ASCIIToUTF16("foo"), t_urls[0]->short_name()); |
167 EXPECT_EQ(ASCIIToUTF16("fook"), t_urls[0]->keyword()); | 167 EXPECT_EQ(ASCIIToUTF16("fook"), t_urls[0]->keyword()); |
168 EXPECT_EQ("foo.com", GetHostFromTemplateURLData(*t_urls[0])); | 168 EXPECT_EQ("foo.com", GetHostFromTemplateURLData(*t_urls[0])); |
169 EXPECT_EQ("foi.com", t_urls[0]->favicon_url.host()); | 169 EXPECT_EQ("foi.com", t_urls[0]->favicon_url.host()); |
170 EXPECT_EQ(1u, t_urls[0]->input_encodings.size()); | 170 EXPECT_EQ(1u, t_urls[0]->input_encodings.size()); |
171 EXPECT_EQ(1001, t_urls[0]->prepopulate_id); | 171 EXPECT_EQ(1001, t_urls[0]->prepopulate_id); |
172 EXPECT_EQ("http://foo.com/suggest?q={searchTerms}", | 172 EXPECT_EQ("http://foo.com/suggest?q={searchTerms}", |
173 t_urls[0]->suggestions_url); | 173 t_urls[0]->suggestions_url); |
174 EXPECT_EQ("http://foo.com/instant?q={searchTerms}", | 174 EXPECT_EQ("http://foo.com/instant?q={searchTerms}", |
175 t_urls[0]->instant_url); | 175 t_urls[0]->instant_url); |
176 ASSERT_EQ(1u, t_urls[0]->alternate_urls.size()); | 176 ASSERT_EQ(1u, t_urls[0]->alternate_urls.size()); |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
223 | 223 |
224 version = TemplateURLPrepopulateData::GetDataVersion(&prefs_); | 224 version = TemplateURLPrepopulateData::GetDataVersion(&prefs_); |
225 EXPECT_EQ(TemplateURLPrepopulateData::kCurrentDataVersion, version); | 225 EXPECT_EQ(TemplateURLPrepopulateData::kCurrentDataVersion, version); |
226 | 226 |
227 size_t default_index; | 227 size_t default_index; |
228 ScopedVector<TemplateURLData> t_urls = | 228 ScopedVector<TemplateURLData> t_urls = |
229 TemplateURLPrepopulateData::GetPrepopulatedEngines(&prefs_, | 229 TemplateURLPrepopulateData::GetPrepopulatedEngines(&prefs_, |
230 &default_index); | 230 &default_index); |
231 ASSERT_FALSE(t_urls.empty()); | 231 ASSERT_FALSE(t_urls.empty()); |
232 for (size_t i = 0; i < t_urls.size(); ++i) { | 232 for (size_t i = 0; i < t_urls.size(); ++i) { |
233 EXPECT_NE(ASCIIToUTF16("foo"), t_urls[i]->short_name); | 233 EXPECT_NE(ASCIIToUTF16("foo"), t_urls[i]->short_name()); |
234 EXPECT_NE(ASCIIToUTF16("fook"), t_urls[i]->keyword()); | 234 EXPECT_NE(ASCIIToUTF16("fook"), t_urls[i]->keyword()); |
235 EXPECT_NE("foi.com", t_urls[i]->favicon_url.host()); | 235 EXPECT_NE("foi.com", t_urls[i]->favicon_url.host()); |
236 EXPECT_NE("foo.com", GetHostFromTemplateURLData(*t_urls[i])); | 236 EXPECT_NE("foo.com", GetHostFromTemplateURLData(*t_urls[i])); |
237 EXPECT_NE(1001, t_urls[i]->prepopulate_id); | 237 EXPECT_NE(1001, t_urls[i]->prepopulate_id); |
238 } | 238 } |
239 // Ensures the default URL is Google and has the optional fields filled. | 239 // Ensures the default URL is Google and has the optional fields filled. |
240 EXPECT_EQ(ASCIIToUTF16("Google"), t_urls[default_index]->short_name); | 240 EXPECT_EQ(ASCIIToUTF16("Google"), t_urls[default_index]->short_name()); |
241 EXPECT_FALSE(t_urls[default_index]->suggestions_url.empty()); | 241 EXPECT_FALSE(t_urls[default_index]->suggestions_url.empty()); |
242 EXPECT_FALSE(t_urls[default_index]->instant_url.empty()); | 242 EXPECT_FALSE(t_urls[default_index]->instant_url.empty()); |
243 EXPECT_FALSE(t_urls[default_index]->image_url.empty()); | 243 EXPECT_FALSE(t_urls[default_index]->image_url.empty()); |
244 EXPECT_FALSE(t_urls[default_index]->new_tab_url.empty()); | 244 EXPECT_FALSE(t_urls[default_index]->new_tab_url.empty()); |
245 EXPECT_FALSE(t_urls[default_index]->contextual_search_url.empty()); | 245 EXPECT_FALSE(t_urls[default_index]->contextual_search_url.empty()); |
246 EXPECT_FALSE(t_urls[default_index]->image_url_post_params.empty()); | 246 EXPECT_FALSE(t_urls[default_index]->image_url_post_params.empty()); |
247 EXPECT_EQ(SEARCH_ENGINE_GOOGLE, | 247 EXPECT_EQ(SEARCH_ENGINE_GOOGLE, |
248 TemplateURLPrepopulateData::GetEngineType( | 248 TemplateURLPrepopulateData::GetEngineType( |
249 TemplateURL(*t_urls[default_index]), | 249 TemplateURL(*t_urls[default_index]), |
250 SearchTermsData())); | 250 SearchTermsData())); |
251 } | 251 } |
252 | 252 |
253 // Verifies that built-in search providers are processed correctly. | 253 // Verifies that built-in search providers are processed correctly. |
254 TEST_F(TemplateURLPrepopulateDataTest, ProvidersFromPrepopulated) { | 254 TEST_F(TemplateURLPrepopulateDataTest, ProvidersFromPrepopulated) { |
255 // Use United States. | 255 // Use United States. |
256 prefs_.SetInteger(prefs::kCountryIDAtInstall, 'U'<<8|'S'); | 256 prefs_.SetInteger(prefs::kCountryIDAtInstall, 'U'<<8|'S'); |
257 size_t default_index; | 257 size_t default_index; |
258 ScopedVector<TemplateURLData> t_urls = | 258 ScopedVector<TemplateURLData> t_urls = |
259 TemplateURLPrepopulateData::GetPrepopulatedEngines(&prefs_, | 259 TemplateURLPrepopulateData::GetPrepopulatedEngines(&prefs_, |
260 &default_index); | 260 &default_index); |
261 | 261 |
262 // Ensure all the URLs have the required fields populated. | 262 // Ensure all the URLs have the required fields populated. |
263 ASSERT_FALSE(t_urls.empty()); | 263 ASSERT_FALSE(t_urls.empty()); |
264 for (size_t i = 0; i < t_urls.size(); ++i) { | 264 for (size_t i = 0; i < t_urls.size(); ++i) { |
265 ASSERT_FALSE(t_urls[i]->short_name.empty()); | 265 ASSERT_FALSE(t_urls[i]->short_name().empty()); |
266 ASSERT_FALSE(t_urls[i]->keyword().empty()); | 266 ASSERT_FALSE(t_urls[i]->keyword().empty()); |
267 ASSERT_FALSE(t_urls[i]->favicon_url.host().empty()); | 267 ASSERT_FALSE(t_urls[i]->favicon_url.host().empty()); |
268 ASSERT_FALSE(GetHostFromTemplateURLData(*t_urls[i]).empty()); | 268 ASSERT_FALSE(GetHostFromTemplateURLData(*t_urls[i]).empty()); |
269 ASSERT_FALSE(t_urls[i]->input_encodings.empty()); | 269 ASSERT_FALSE(t_urls[i]->input_encodings.empty()); |
270 EXPECT_GT(t_urls[i]->prepopulate_id, 0); | 270 EXPECT_GT(t_urls[i]->prepopulate_id, 0); |
271 } | 271 } |
272 | 272 |
273 // Ensures the default URL is Google and has the optional fields filled. | 273 // Ensures the default URL is Google and has the optional fields filled. |
274 EXPECT_EQ(ASCIIToUTF16("Google"), t_urls[default_index]->short_name); | 274 EXPECT_EQ(ASCIIToUTF16("Google"), t_urls[default_index]->short_name()); |
275 EXPECT_FALSE(t_urls[default_index]->suggestions_url.empty()); | 275 EXPECT_FALSE(t_urls[default_index]->suggestions_url.empty()); |
276 EXPECT_FALSE(t_urls[default_index]->instant_url.empty()); | 276 EXPECT_FALSE(t_urls[default_index]->instant_url.empty()); |
277 EXPECT_FALSE(t_urls[default_index]->image_url.empty()); | 277 EXPECT_FALSE(t_urls[default_index]->image_url.empty()); |
278 EXPECT_FALSE(t_urls[default_index]->new_tab_url.empty()); | 278 EXPECT_FALSE(t_urls[default_index]->new_tab_url.empty()); |
279 EXPECT_FALSE(t_urls[default_index]->contextual_search_url.empty()); | 279 EXPECT_FALSE(t_urls[default_index]->contextual_search_url.empty()); |
280 EXPECT_FALSE(t_urls[default_index]->image_url_post_params.empty()); | 280 EXPECT_FALSE(t_urls[default_index]->image_url_post_params.empty()); |
281 // Expect at least 2 alternate_urls. | 281 // Expect at least 2 alternate_urls. |
282 // This caught a bug with static initialization of arrays, so leave this in. | 282 // This caught a bug with static initialization of arrays, so leave this in. |
283 EXPECT_GT(t_urls[default_index]->alternate_urls.size(), 1u); | 283 EXPECT_GT(t_urls[default_index]->alternate_urls.size(), 1u); |
284 for (size_t i = 0; i < t_urls[default_index]->alternate_urls.size(); ++i) | 284 for (size_t i = 0; i < t_urls[default_index]->alternate_urls.size(); ++i) |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
340 EXPECT_EQ(SEARCH_ENGINE_OTHER, GetEngineType("invalid:search:url")); | 340 EXPECT_EQ(SEARCH_ENGINE_OTHER, GetEngineType("invalid:search:url")); |
341 | 341 |
342 // URL that doesn't look Google-related, but matches a Google base URL | 342 // URL that doesn't look Google-related, but matches a Google base URL |
343 // specified on the command line. | 343 // specified on the command line. |
344 const std::string foo_url("http://www.foo.com/search?q={searchTerms}"); | 344 const std::string foo_url("http://www.foo.com/search?q={searchTerms}"); |
345 EXPECT_EQ(SEARCH_ENGINE_OTHER, GetEngineType(foo_url)); | 345 EXPECT_EQ(SEARCH_ENGINE_OTHER, GetEngineType(foo_url)); |
346 base::CommandLine::ForCurrentProcess()->AppendSwitchASCII( | 346 base::CommandLine::ForCurrentProcess()->AppendSwitchASCII( |
347 switches::kGoogleBaseURL, "http://www.foo.com/"); | 347 switches::kGoogleBaseURL, "http://www.foo.com/"); |
348 EXPECT_EQ(SEARCH_ENGINE_GOOGLE, GetEngineType(foo_url)); | 348 EXPECT_EQ(SEARCH_ENGINE_GOOGLE, GetEngineType(foo_url)); |
349 } | 349 } |
OLD | NEW |