| 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 |