| OLD | NEW |
| 1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 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/omnibox/search_provider.h" | 5 #include "components/omnibox/search_provider.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
| 10 #include "base/metrics/field_trial.h" | 10 #include "base/metrics/field_trial.h" |
| (...skipping 273 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 284 TemplateURLServiceFactory::GetInstance()->SetTestingFactoryAndUse( | 284 TemplateURLServiceFactory::GetInstance()->SetTestingFactoryAndUse( |
| 285 &profile_, &TemplateURLServiceFactory::BuildInstanceFor); | 285 &profile_, &TemplateURLServiceFactory::BuildInstanceFor); |
| 286 | 286 |
| 287 TemplateURLService* turl_model = | 287 TemplateURLService* turl_model = |
| 288 TemplateURLServiceFactory::GetForProfile(&profile_); | 288 TemplateURLServiceFactory::GetForProfile(&profile_); |
| 289 | 289 |
| 290 turl_model->Load(); | 290 turl_model->Load(); |
| 291 | 291 |
| 292 // Reset the default TemplateURL. | 292 // Reset the default TemplateURL. |
| 293 TemplateURLData data; | 293 TemplateURLData data; |
| 294 data.short_name = ASCIIToUTF16("t"); | 294 data.SetShortName(ASCIIToUTF16("t")); |
| 295 data.SetURL("http://defaultturl/{searchTerms}"); | 295 data.SetURL("http://defaultturl/{searchTerms}"); |
| 296 data.suggestions_url = "http://defaultturl2/{searchTerms}"; | 296 data.suggestions_url = "http://defaultturl2/{searchTerms}"; |
| 297 data.instant_url = "http://does/not/exist?strk=1"; | 297 data.instant_url = "http://does/not/exist?strk=1"; |
| 298 data.search_terms_replacement_key = "strk"; | 298 data.search_terms_replacement_key = "strk"; |
| 299 default_t_url_ = new TemplateURL(data); | 299 default_t_url_ = new TemplateURL(data); |
| 300 turl_model->Add(default_t_url_); | 300 turl_model->Add(default_t_url_); |
| 301 turl_model->SetUserSelectedDefaultSearchProvider(default_t_url_); | 301 turl_model->SetUserSelectedDefaultSearchProvider(default_t_url_); |
| 302 TemplateURLID default_provider_id = default_t_url_->id(); | 302 TemplateURLID default_provider_id = default_t_url_->id(); |
| 303 ASSERT_NE(0, default_provider_id); | 303 ASSERT_NE(0, default_provider_id); |
| 304 | 304 |
| 305 // Add url1, with search term term1_. | 305 // Add url1, with search term term1_. |
| 306 term1_url_ = AddSearchToHistory(default_t_url_, term1_, 1); | 306 term1_url_ = AddSearchToHistory(default_t_url_, term1_, 1); |
| 307 | 307 |
| 308 // Create another TemplateURL. | 308 // Create another TemplateURL. |
| 309 data.short_name = ASCIIToUTF16("k"); | 309 data.SetShortName(ASCIIToUTF16("k")); |
| 310 data.SetKeyword(ASCIIToUTF16("k")); | 310 data.SetKeyword(ASCIIToUTF16("k")); |
| 311 data.SetURL("http://keyword/{searchTerms}"); | 311 data.SetURL("http://keyword/{searchTerms}"); |
| 312 data.suggestions_url = "http://suggest_keyword/{searchTerms}"; | 312 data.suggestions_url = "http://suggest_keyword/{searchTerms}"; |
| 313 keyword_t_url_ = new TemplateURL(data); | 313 keyword_t_url_ = new TemplateURL(data); |
| 314 turl_model->Add(keyword_t_url_); | 314 turl_model->Add(keyword_t_url_); |
| 315 ASSERT_NE(0, keyword_t_url_->id()); | 315 ASSERT_NE(0, keyword_t_url_->id()); |
| 316 | 316 |
| 317 // Add a page and search term for keyword_t_url_. | 317 // Add a page and search term for keyword_t_url_. |
| 318 keyword_url_ = AddSearchToHistory(keyword_t_url_, keyword_term_, 1); | 318 keyword_url_ = AddSearchToHistory(keyword_t_url_, keyword_term_, 1); |
| 319 | 319 |
| (...skipping 946 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1266 RunTest(cases, arraysize(cases), true); | 1266 RunTest(cases, arraysize(cases), true); |
| 1267 } | 1267 } |
| 1268 | 1268 |
| 1269 // Ensures command-line flags are reflected in the URLs the search provider | 1269 // Ensures command-line flags are reflected in the URLs the search provider |
| 1270 // generates. | 1270 // generates. |
| 1271 TEST_F(SearchProviderTest, CommandLineOverrides) { | 1271 TEST_F(SearchProviderTest, CommandLineOverrides) { |
| 1272 TemplateURLService* turl_model = | 1272 TemplateURLService* turl_model = |
| 1273 TemplateURLServiceFactory::GetForProfile(&profile_); | 1273 TemplateURLServiceFactory::GetForProfile(&profile_); |
| 1274 | 1274 |
| 1275 TemplateURLData data; | 1275 TemplateURLData data; |
| 1276 data.short_name = ASCIIToUTF16("default"); | 1276 data.SetShortName(ASCIIToUTF16("default")); |
| 1277 data.SetKeyword(data.short_name); | 1277 data.SetKeyword(data.short_name()); |
| 1278 data.SetURL("{google:baseURL}{searchTerms}"); | 1278 data.SetURL("{google:baseURL}{searchTerms}"); |
| 1279 default_t_url_ = new TemplateURL(data); | 1279 default_t_url_ = new TemplateURL(data); |
| 1280 turl_model->Add(default_t_url_); | 1280 turl_model->Add(default_t_url_); |
| 1281 turl_model->SetUserSelectedDefaultSearchProvider(default_t_url_); | 1281 turl_model->SetUserSelectedDefaultSearchProvider(default_t_url_); |
| 1282 | 1282 |
| 1283 base::CommandLine::ForCurrentProcess()->AppendSwitchASCII( | 1283 base::CommandLine::ForCurrentProcess()->AppendSwitchASCII( |
| 1284 switches::kGoogleBaseURL, "http://www.bar.com/"); | 1284 switches::kGoogleBaseURL, "http://www.bar.com/"); |
| 1285 base::CommandLine::ForCurrentProcess()->AppendSwitchASCII( | 1285 base::CommandLine::ForCurrentProcess()->AppendSwitchASCII( |
| 1286 switches::kExtraSearchQueryParams, "a=b"); | 1286 switches::kExtraSearchQueryParams, "a=b"); |
| 1287 | 1287 |
| (...skipping 1930 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3218 QueryForInput(term, true, false); | 3218 QueryForInput(term, true, false); |
| 3219 ASSERT_FALSE(provider_->matches().empty()); | 3219 ASSERT_FALSE(provider_->matches().empty()); |
| 3220 EXPECT_EQ(AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED, | 3220 EXPECT_EQ(AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED, |
| 3221 provider_->matches()[0].type); | 3221 provider_->matches()[0].type); |
| 3222 ASSERT_TRUE(provider_->matches()[0].search_terms_args != NULL); | 3222 ASSERT_TRUE(provider_->matches()[0].search_terms_args != NULL); |
| 3223 EXPECT_TRUE(provider_->matches()[0].search_terms_args->bookmark_bar_pinned); | 3223 EXPECT_TRUE(provider_->matches()[0].search_terms_args->bookmark_bar_pinned); |
| 3224 } | 3224 } |
| 3225 | 3225 |
| 3226 TEST_F(SearchProviderTest, CanSendURL) { | 3226 TEST_F(SearchProviderTest, CanSendURL) { |
| 3227 TemplateURLData template_url_data; | 3227 TemplateURLData template_url_data; |
| 3228 template_url_data.short_name = ASCIIToUTF16("t"); | 3228 template_url_data.SetShortName(ASCIIToUTF16("t")); |
| 3229 template_url_data.SetURL("http://www.google.com/{searchTerms}"); | 3229 template_url_data.SetURL("http://www.google.com/{searchTerms}"); |
| 3230 template_url_data.suggestions_url = "http://www.google.com/{searchTerms}"; | 3230 template_url_data.suggestions_url = "http://www.google.com/{searchTerms}"; |
| 3231 template_url_data.instant_url = "http://does/not/exist?strk=1"; | 3231 template_url_data.instant_url = "http://does/not/exist?strk=1"; |
| 3232 template_url_data.search_terms_replacement_key = "strk"; | 3232 template_url_data.search_terms_replacement_key = "strk"; |
| 3233 template_url_data.id = SEARCH_ENGINE_GOOGLE; | 3233 template_url_data.id = SEARCH_ENGINE_GOOGLE; |
| 3234 TemplateURL google_template_url(template_url_data); | 3234 TemplateURL google_template_url(template_url_data); |
| 3235 | 3235 |
| 3236 // Create field trial. | 3236 // Create field trial. |
| 3237 CreateFieldTrial(OmniboxFieldTrial::kZeroSuggestRule, true); | 3237 CreateFieldTrial(OmniboxFieldTrial::kZeroSuggestRule, true); |
| 3238 | 3238 |
| (...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3443 EXPECT_EQ(1U, match_avid.duplicate_matches.size()); | 3443 EXPECT_EQ(1U, match_avid.duplicate_matches.size()); |
| 3444 | 3444 |
| 3445 EXPECT_EQ(0U, match_apricot.duplicate_matches.size()); | 3445 EXPECT_EQ(0U, match_apricot.duplicate_matches.size()); |
| 3446 } | 3446 } |
| 3447 | 3447 |
| 3448 TEST_F(SearchProviderTest, SuggestQueryUsesToken) { | 3448 TEST_F(SearchProviderTest, SuggestQueryUsesToken) { |
| 3449 TemplateURLService* turl_model = | 3449 TemplateURLService* turl_model = |
| 3450 TemplateURLServiceFactory::GetForProfile(&profile_); | 3450 TemplateURLServiceFactory::GetForProfile(&profile_); |
| 3451 | 3451 |
| 3452 TemplateURLData data; | 3452 TemplateURLData data; |
| 3453 data.short_name = ASCIIToUTF16("default"); | 3453 data.SetShortName(ASCIIToUTF16("default")); |
| 3454 data.SetKeyword(data.short_name); | 3454 data.SetKeyword(data.short_name()); |
| 3455 data.SetURL("http://example/{searchTerms}{google:sessionToken}"); | 3455 data.SetURL("http://example/{searchTerms}{google:sessionToken}"); |
| 3456 data.suggestions_url = | 3456 data.suggestions_url = |
| 3457 "http://suggest/?q={searchTerms}&{google:sessionToken}"; | 3457 "http://suggest/?q={searchTerms}&{google:sessionToken}"; |
| 3458 default_t_url_ = new TemplateURL(data); | 3458 default_t_url_ = new TemplateURL(data); |
| 3459 turl_model->Add(default_t_url_); | 3459 turl_model->Add(default_t_url_); |
| 3460 turl_model->SetUserSelectedDefaultSearchProvider(default_t_url_); | 3460 turl_model->SetUserSelectedDefaultSearchProvider(default_t_url_); |
| 3461 | 3461 |
| 3462 base::string16 term = term1_.substr(0, term1_.length() - 1); | 3462 base::string16 term = term1_.substr(0, term1_.length() - 1); |
| 3463 QueryForInput(term, false, false); | 3463 QueryForInput(term, false, false); |
| 3464 | 3464 |
| (...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3592 | 3592 |
| 3593 TEST_F(SearchProviderTest, DoesNotProvideOnFocus) { | 3593 TEST_F(SearchProviderTest, DoesNotProvideOnFocus) { |
| 3594 AutocompleteInput input(base::ASCIIToUTF16("f"), base::string16::npos, | 3594 AutocompleteInput input(base::ASCIIToUTF16("f"), base::string16::npos, |
| 3595 std::string(), GURL(), | 3595 std::string(), GURL(), |
| 3596 metrics::OmniboxEventProto::INVALID_SPEC, false, | 3596 metrics::OmniboxEventProto::INVALID_SPEC, false, |
| 3597 true, true, true, | 3597 true, true, true, |
| 3598 ChromeAutocompleteSchemeClassifier(&profile_)); | 3598 ChromeAutocompleteSchemeClassifier(&profile_)); |
| 3599 provider_->Start(input, false, true); | 3599 provider_->Start(input, false, true); |
| 3600 EXPECT_TRUE(provider_->matches().empty()); | 3600 EXPECT_TRUE(provider_->matches().empty()); |
| 3601 } | 3601 } |
| OLD | NEW |