| 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 "chrome/browser/autocomplete/search_provider.h" | 5 #include "chrome/browser/autocomplete/search_provider.h" |
| 6 | 6 |
| 7 #include "base/command_line.h" |
| 7 #include "base/metrics/field_trial.h" | 8 #include "base/metrics/field_trial.h" |
| 8 #include "base/prefs/pref_service.h" | 9 #include "base/prefs/pref_service.h" |
| 9 #include "base/run_loop.h" | 10 #include "base/run_loop.h" |
| 10 #include "base/strings/string_util.h" | 11 #include "base/strings/string_util.h" |
| 11 #include "base/strings/utf_string_conversions.h" | 12 #include "base/strings/utf_string_conversions.h" |
| 12 #include "base/time.h" | 13 #include "base/time.h" |
| 13 #include "build/build_config.h" | 14 #include "build/build_config.h" |
| 14 #include "chrome/browser/autocomplete/autocomplete_classifier_factory.h" | 15 #include "chrome/browser/autocomplete/autocomplete_classifier_factory.h" |
| 15 #include "chrome/browser/autocomplete/autocomplete_controller.h" | 16 #include "chrome/browser/autocomplete/autocomplete_controller.h" |
| 16 #include "chrome/browser/autocomplete/autocomplete_input.h" | 17 #include "chrome/browser/autocomplete/autocomplete_input.h" |
| 17 #include "chrome/browser/autocomplete/autocomplete_match.h" | 18 #include "chrome/browser/autocomplete/autocomplete_match.h" |
| 18 #include "chrome/browser/autocomplete/autocomplete_provider.h" | 19 #include "chrome/browser/autocomplete/autocomplete_provider.h" |
| 19 #include "chrome/browser/autocomplete/autocomplete_provider_listener.h" | 20 #include "chrome/browser/autocomplete/autocomplete_provider_listener.h" |
| 20 #include "chrome/browser/autocomplete/history_url_provider.h" | 21 #include "chrome/browser/autocomplete/history_url_provider.h" |
| 21 #include "chrome/browser/history/history_service.h" | 22 #include "chrome/browser/history/history_service.h" |
| 22 #include "chrome/browser/history/history_service_factory.h" | 23 #include "chrome/browser/history/history_service_factory.h" |
| 23 #include "chrome/browser/omnibox/omnibox_field_trial.h" | 24 #include "chrome/browser/omnibox/omnibox_field_trial.h" |
| 24 #include "chrome/browser/search/search.h" | 25 #include "chrome/browser/search/search.h" |
| 25 #include "chrome/browser/search_engines/template_url.h" | 26 #include "chrome/browser/search_engines/template_url.h" |
| 26 #include "chrome/browser/search_engines/template_url_service.h" | 27 #include "chrome/browser/search_engines/template_url_service.h" |
| 27 #include "chrome/browser/search_engines/template_url_service_factory.h" | 28 #include "chrome/browser/search_engines/template_url_service_factory.h" |
| 29 #include "chrome/common/chrome_switches.h" |
| 28 #include "chrome/common/instant_types.h" | 30 #include "chrome/common/instant_types.h" |
| 29 #include "chrome/common/metrics/entropy_provider.h" | 31 #include "chrome/common/metrics/entropy_provider.h" |
| 30 #include "chrome/common/pref_names.h" | 32 #include "chrome/common/pref_names.h" |
| 31 #include "chrome/test/base/testing_browser_process.h" | 33 #include "chrome/test/base/testing_browser_process.h" |
| 32 #include "chrome/test/base/testing_profile.h" | 34 #include "chrome/test/base/testing_profile.h" |
| 33 #include "content/public/test/test_browser_thread.h" | 35 #include "content/public/test/test_browser_thread.h" |
| 34 #include "net/url_request/test_url_fetcher_factory.h" | 36 #include "net/url_request/test_url_fetcher_factory.h" |
| 35 #include "net/url_request/url_request_status.h" | 37 #include "net/url_request/url_request_status.h" |
| 36 #include "testing/gtest/include/gtest/gtest.h" | 38 #include "testing/gtest/include/gtest/gtest.h" |
| 37 | 39 |
| 38 using content::BrowserThread; | 40 |
| 41 // SearchProviderTest --------------------------------------------------------- |
| 39 | 42 |
| 40 // The following environment is configured for these tests: | 43 // The following environment is configured for these tests: |
| 41 // . The TemplateURL default_t_url_ is set as the default provider. | 44 // . The TemplateURL default_t_url_ is set as the default provider. |
| 42 // . The TemplateURL keyword_t_url_ is added to the TemplateURLService. This | 45 // . The TemplateURL keyword_t_url_ is added to the TemplateURLService. This |
| 43 // TemplateURL has a valid suggest and search URL. | 46 // TemplateURL has a valid suggest and search URL. |
| 44 // . The URL created by using the search term term1_ with default_t_url_ is | 47 // . The URL created by using the search term term1_ with default_t_url_ is |
| 45 // added to history. | 48 // added to history. |
| 46 // . The URL created by using the search term keyword_term_ with keyword_t_url_ | 49 // . The URL created by using the search term keyword_term_ with keyword_t_url_ |
| 47 // is added to history. | 50 // is added to history. |
| 48 // . test_factory_ is set as the URLFetcherFactory. | 51 // . test_factory_ is set as the URLFetcherFactory. |
| 49 class SearchProviderTest : public testing::Test, | 52 class SearchProviderTest : public testing::Test, |
| 50 public AutocompleteProviderListener { | 53 public AutocompleteProviderListener { |
| 51 public: | 54 public: |
| 52 SearchProviderTest() | |
| 53 : default_t_url_(NULL), | |
| 54 term1_(ASCIIToUTF16("term1")), | |
| 55 keyword_t_url_(NULL), | |
| 56 keyword_term_(ASCIIToUTF16("keyword")), | |
| 57 ui_thread_(BrowserThread::UI, &message_loop_), | |
| 58 io_thread_(BrowserThread::IO), | |
| 59 quit_when_done_(false) { | |
| 60 io_thread_.Start(); | |
| 61 } | |
| 62 | |
| 63 static void SetUpTestCase(); | |
| 64 | |
| 65 static void TearDownTestCase(); | |
| 66 | |
| 67 // See description above class for what this registers. | |
| 68 virtual void SetUp(); | |
| 69 | |
| 70 virtual void TearDown(); | |
| 71 | |
| 72 struct ResultInfo { | 55 struct ResultInfo { |
| 73 ResultInfo() : result_type(AutocompleteMatchType::NUM_TYPES) { | 56 ResultInfo() : result_type(AutocompleteMatchType::NUM_TYPES) { |
| 74 } | 57 } |
| 75 ResultInfo(GURL gurl, | 58 ResultInfo(GURL gurl, |
| 76 AutocompleteMatch::Type result_type, | 59 AutocompleteMatch::Type result_type, |
| 77 string16 fill_into_edit) | 60 string16 fill_into_edit) |
| 78 : gurl(gurl), | 61 : gurl(gurl), |
| 79 result_type(result_type), | 62 result_type(result_type), |
| 80 fill_into_edit(fill_into_edit) { | 63 fill_into_edit(fill_into_edit) { |
| 81 } | 64 } |
| 65 |
| 82 const GURL gurl; | 66 const GURL gurl; |
| 83 const AutocompleteMatch::Type result_type; | 67 const AutocompleteMatch::Type result_type; |
| 84 const string16 fill_into_edit; | 68 const string16 fill_into_edit; |
| 85 }; | 69 }; |
| 70 |
| 86 struct TestData { | 71 struct TestData { |
| 87 const string16 input; | 72 const string16 input; |
| 88 const size_t num_results; | 73 const size_t num_results; |
| 89 const ResultInfo output[3]; | 74 const ResultInfo output[3]; |
| 90 }; | 75 }; |
| 91 | 76 |
| 77 SearchProviderTest() |
| 78 : default_t_url_(NULL), |
| 79 term1_(ASCIIToUTF16("term1")), |
| 80 keyword_t_url_(NULL), |
| 81 keyword_term_(ASCIIToUTF16("keyword")), |
| 82 ui_thread_(content::BrowserThread::UI, &message_loop_), |
| 83 io_thread_(content::BrowserThread::IO), |
| 84 quit_when_done_(false) { |
| 85 io_thread_.Start(); |
| 86 } |
| 87 |
| 88 static void SetUpTestCase(); |
| 89 static void TearDownTestCase(); |
| 90 |
| 91 // See description above class for what this registers. |
| 92 virtual void SetUp() OVERRIDE; |
| 93 virtual void TearDown() OVERRIDE; |
| 94 |
| 92 void RunTest(TestData* cases, int num_cases, bool prefer_keyword); | 95 void RunTest(TestData* cases, int num_cases, bool prefer_keyword); |
| 93 | 96 |
| 94 protected: | 97 protected: |
| 95 // Needed for AutocompleteFieldTrial::ActivateStaticTrials(); | 98 // Needed for AutocompleteFieldTrial::ActivateStaticTrials(); |
| 96 static base::FieldTrialList* field_trial_list_; | 99 static base::FieldTrialList* field_trial_list_; |
| 97 | 100 |
| 98 // Default value used for testing. | 101 // Default value used for testing. |
| 99 static const std::string kNotApplicable; | 102 static const std::string kNotApplicable; |
| 100 | 103 |
| 101 // Adds a search for |term|, using the engine |t_url| to the history, and | 104 // Adds a search for |term|, using the engine |t_url| to the history, and |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 159 scoped_refptr<SearchProvider> provider_; | 162 scoped_refptr<SearchProvider> provider_; |
| 160 | 163 |
| 161 // If true, OnProviderUpdate exits out of the current message loop. | 164 // If true, OnProviderUpdate exits out of the current message loop. |
| 162 bool quit_when_done_; | 165 bool quit_when_done_; |
| 163 | 166 |
| 164 DISALLOW_COPY_AND_ASSIGN(SearchProviderTest); | 167 DISALLOW_COPY_AND_ASSIGN(SearchProviderTest); |
| 165 }; | 168 }; |
| 166 | 169 |
| 167 // static | 170 // static |
| 168 base::FieldTrialList* SearchProviderTest::field_trial_list_ = NULL; | 171 base::FieldTrialList* SearchProviderTest::field_trial_list_ = NULL; |
| 169 | |
| 170 // static | |
| 171 const std::string SearchProviderTest::kNotApplicable = "Not Applicable"; | 172 const std::string SearchProviderTest::kNotApplicable = "Not Applicable"; |
| 172 | 173 |
| 173 // static | 174 // static |
| 174 void SearchProviderTest::SetUpTestCase() { | 175 void SearchProviderTest::SetUpTestCase() { |
| 175 // Set up Suggest experiments. | 176 // Set up Suggest experiments. |
| 176 field_trial_list_ = new base::FieldTrialList( | 177 field_trial_list_ = new base::FieldTrialList( |
| 177 new metrics::SHA1EntropyProvider("foo")); | 178 new metrics::SHA1EntropyProvider("foo")); |
| 178 base::FieldTrial* trial = base::FieldTrialList::CreateFieldTrial( | 179 base::FieldTrial* trial = base::FieldTrialList::CreateFieldTrial( |
| 179 "AutocompleteDynamicTrial_0", "DefaultGroup"); | 180 "AutocompleteDynamicTrial_0", "DefaultGroup"); |
| 180 trial->group(); | 181 trial->group(); |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 230 | 231 |
| 231 // Keywords are updated by the InMemoryHistoryBackend only after the message | 232 // Keywords are updated by the InMemoryHistoryBackend only after the message |
| 232 // has been processed on the history thread. Block until history processes all | 233 // has been processed on the history thread. Block until history processes all |
| 233 // requests to ensure the InMemoryDatabase is the state we expect it. | 234 // requests to ensure the InMemoryDatabase is the state we expect it. |
| 234 profile_.BlockUntilHistoryProcessesPendingRequests(); | 235 profile_.BlockUntilHistoryProcessesPendingRequests(); |
| 235 | 236 |
| 236 provider_ = new SearchProvider(this, &profile_); | 237 provider_ = new SearchProvider(this, &profile_); |
| 237 provider_->kMinimumTimeBetweenSuggestQueriesMs = 0; | 238 provider_->kMinimumTimeBetweenSuggestQueriesMs = 0; |
| 238 } | 239 } |
| 239 | 240 |
| 241 void SearchProviderTest::TearDown() { |
| 242 message_loop_.RunUntilIdle(); |
| 243 |
| 244 // Shutdown the provider before the profile. |
| 245 provider_ = NULL; |
| 246 } |
| 247 |
| 248 void SearchProviderTest::RunTest(TestData* cases, |
| 249 int num_cases, |
| 250 bool prefer_keyword) { |
| 251 ACMatches matches; |
| 252 for (int i = 0; i < num_cases; ++i) { |
| 253 AutocompleteInput input(cases[i].input, string16::npos, string16(), GURL(), |
| 254 false, prefer_keyword, true, |
| 255 AutocompleteInput::ALL_MATCHES); |
| 256 provider_->Start(input, false); |
| 257 matches = provider_->matches(); |
| 258 string16 diagnostic_details = ASCIIToUTF16("Input was: ") + cases[i].input + |
| 259 ASCIIToUTF16("; prefer_keyword was: ") + |
| 260 (prefer_keyword ? ASCIIToUTF16("true") : ASCIIToUTF16("false")); |
| 261 EXPECT_EQ(cases[i].num_results, matches.size()) << diagnostic_details; |
| 262 if (matches.size() == cases[i].num_results) { |
| 263 for (size_t j = 0; j < cases[i].num_results; ++j) { |
| 264 EXPECT_EQ(cases[i].output[j].gurl, matches[j].destination_url) << |
| 265 diagnostic_details; |
| 266 EXPECT_EQ(cases[i].output[j].result_type, matches[j].type) << |
| 267 diagnostic_details; |
| 268 EXPECT_EQ(cases[i].output[j].fill_into_edit, |
| 269 matches[j].fill_into_edit) << |
| 270 diagnostic_details; |
| 271 } |
| 272 } |
| 273 } |
| 274 } |
| 275 |
| 240 void SearchProviderTest::OnProviderUpdate(bool updated_matches) { | 276 void SearchProviderTest::OnProviderUpdate(bool updated_matches) { |
| 241 if (quit_when_done_ && provider_->done()) { | 277 if (quit_when_done_ && provider_->done()) { |
| 242 quit_when_done_ = false; | 278 quit_when_done_ = false; |
| 243 message_loop_.Quit(); | 279 message_loop_.Quit(); |
| 244 } | 280 } |
| 245 } | 281 } |
| 246 | 282 |
| 247 net::TestURLFetcher* SearchProviderTest::WaitUntilURLFetcherIsReady( | 283 net::TestURLFetcher* SearchProviderTest::WaitUntilURLFetcherIsReady( |
| 248 int fetcher_id) { | 284 int fetcher_id) { |
| 249 net::TestURLFetcher* url_fetcher = test_factory_.GetFetcherByID(fetcher_id); | 285 net::TestURLFetcher* url_fetcher = test_factory_.GetFetcherByID(fetcher_id); |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 289 EXPECT_NE(chrome::IsInstantExtendedAPIEnabled(), provider_->done()); | 325 EXPECT_NE(chrome::IsInstantExtendedAPIEnabled(), provider_->done()); |
| 290 if (!wyt_match) | 326 if (!wyt_match) |
| 291 return; | 327 return; |
| 292 ASSERT_GE(provider_->matches().size(), 1u); | 328 ASSERT_GE(provider_->matches().size(), 1u); |
| 293 EXPECT_TRUE(FindMatchWithDestination(GURL( | 329 EXPECT_TRUE(FindMatchWithDestination(GURL( |
| 294 default_t_url_->url_ref().ReplaceSearchTerms( | 330 default_t_url_->url_ref().ReplaceSearchTerms( |
| 295 TemplateURLRef::SearchTermsArgs(text))), | 331 TemplateURLRef::SearchTermsArgs(text))), |
| 296 wyt_match)); | 332 wyt_match)); |
| 297 } | 333 } |
| 298 | 334 |
| 299 void SearchProviderTest::TearDown() { | |
| 300 message_loop_.RunUntilIdle(); | |
| 301 | |
| 302 // Shutdown the provider before the profile. | |
| 303 provider_ = NULL; | |
| 304 } | |
| 305 | |
| 306 void SearchProviderTest::RunTest(TestData* cases, | |
| 307 int num_cases, | |
| 308 bool prefer_keyword) { | |
| 309 ACMatches matches; | |
| 310 for (int i = 0; i < num_cases; ++i) { | |
| 311 AutocompleteInput input(cases[i].input, string16::npos, string16(), GURL(), | |
| 312 false, prefer_keyword, true, | |
| 313 AutocompleteInput::ALL_MATCHES); | |
| 314 provider_->Start(input, false); | |
| 315 matches = provider_->matches(); | |
| 316 string16 diagnostic_details = ASCIIToUTF16("Input was: ") + cases[i].input + | |
| 317 ASCIIToUTF16("; prefer_keyword was: ") + | |
| 318 (prefer_keyword ? ASCIIToUTF16("true") : ASCIIToUTF16("false")); | |
| 319 EXPECT_EQ(cases[i].num_results, matches.size()) << diagnostic_details; | |
| 320 if (matches.size() == cases[i].num_results) { | |
| 321 for (size_t j = 0; j < cases[i].num_results; ++j) { | |
| 322 EXPECT_EQ(cases[i].output[j].gurl, matches[j].destination_url) << | |
| 323 diagnostic_details; | |
| 324 EXPECT_EQ(cases[i].output[j].result_type, matches[j].type) << | |
| 325 diagnostic_details; | |
| 326 EXPECT_EQ(cases[i].output[j].fill_into_edit, | |
| 327 matches[j].fill_into_edit) << | |
| 328 diagnostic_details; | |
| 329 } | |
| 330 } | |
| 331 } | |
| 332 } | |
| 333 | |
| 334 GURL SearchProviderTest::AddSearchToHistory(TemplateURL* t_url, | 335 GURL SearchProviderTest::AddSearchToHistory(TemplateURL* t_url, |
| 335 string16 term, | 336 string16 term, |
| 336 int visit_count) { | 337 int visit_count) { |
| 337 HistoryService* history = | 338 HistoryService* history = |
| 338 HistoryServiceFactory::GetForProfile(&profile_, | 339 HistoryServiceFactory::GetForProfile(&profile_, |
| 339 Profile::EXPLICIT_ACCESS); | 340 Profile::EXPLICIT_ACCESS); |
| 340 GURL search(t_url->url_ref().ReplaceSearchTerms( | 341 GURL search(t_url->url_ref().ReplaceSearchTerms( |
| 341 TemplateURLRef::SearchTermsArgs(term))); | 342 TemplateURLRef::SearchTermsArgs(term))); |
| 342 static base::Time last_added_time; | 343 static base::Time last_added_time; |
| 343 last_added_time = std::max(base::Time::Now(), | 344 last_added_time = std::max(base::Time::Now(), |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 375 void SearchProviderTest::FinishDefaultSuggestQuery() { | 376 void SearchProviderTest::FinishDefaultSuggestQuery() { |
| 376 net::TestURLFetcher* default_fetcher = WaitUntilURLFetcherIsReady( | 377 net::TestURLFetcher* default_fetcher = WaitUntilURLFetcherIsReady( |
| 377 SearchProvider::kDefaultProviderURLFetcherID); | 378 SearchProvider::kDefaultProviderURLFetcherID); |
| 378 ASSERT_TRUE(default_fetcher); | 379 ASSERT_TRUE(default_fetcher); |
| 379 | 380 |
| 380 // Tell the SearchProvider the default suggest query is done. | 381 // Tell the SearchProvider the default suggest query is done. |
| 381 default_fetcher->set_response_code(200); | 382 default_fetcher->set_response_code(200); |
| 382 default_fetcher->delegate()->OnURLFetchComplete(default_fetcher); | 383 default_fetcher->delegate()->OnURLFetchComplete(default_fetcher); |
| 383 } | 384 } |
| 384 | 385 |
| 385 // Tests ----------------------------------------------------------------------- | 386 |
| 387 // Actual Tests --------------------------------------------------------------- |
| 386 | 388 |
| 387 // Make sure we query history for the default provider and a URLFetcher is | 389 // Make sure we query history for the default provider and a URLFetcher is |
| 388 // created for the default provider suggest results. | 390 // created for the default provider suggest results. |
| 389 TEST_F(SearchProviderTest, QueryDefaultProvider) { | 391 TEST_F(SearchProviderTest, QueryDefaultProvider) { |
| 390 string16 term = term1_.substr(0, term1_.length() - 1); | 392 string16 term = term1_.substr(0, term1_.length() - 1); |
| 391 QueryForInput(term, false, false); | 393 QueryForInput(term, false, false); |
| 392 | 394 |
| 393 // Make sure the default providers suggest service was queried. | 395 // Make sure the default providers suggest service was queried. |
| 394 net::TestURLFetcher* fetcher = test_factory_.GetFetcherByID( | 396 net::TestURLFetcher* fetcher = test_factory_.GetFetcherByID( |
| 395 SearchProvider::kDefaultProviderURLFetcherID); | 397 SearchProvider::kDefaultProviderURLFetcherID); |
| (...skipping 577 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 973 // chrome/browser/extensions/api/omnibox/omnibox_apitest.cc. | 975 // chrome/browser/extensions/api/omnibox/omnibox_apitest.cc. |
| 974 }; | 976 }; |
| 975 | 977 |
| 976 // Test not in keyword mode. | 978 // Test not in keyword mode. |
| 977 RunTest(cases, arraysize(cases), false); | 979 RunTest(cases, arraysize(cases), false); |
| 978 | 980 |
| 979 // Test in keyword mode. (Both modes should give the same result.) | 981 // Test in keyword mode. (Both modes should give the same result.) |
| 980 RunTest(cases, arraysize(cases), true); | 982 RunTest(cases, arraysize(cases), true); |
| 981 } | 983 } |
| 982 | 984 |
| 985 // Ensures command-line flags are reflected in the URLs the search provider |
| 986 // generates. |
| 987 TEST_F(SearchProviderTest, CommandLineOverrides) { |
| 988 TemplateURLService* turl_model = |
| 989 TemplateURLServiceFactory::GetForProfile(&profile_); |
| 990 |
| 991 TemplateURLData data; |
| 992 data.short_name = ASCIIToUTF16("default"); |
| 993 data.SetKeyword(data.short_name); |
| 994 data.SetURL("{google:baseURL}{searchTerms}"); |
| 995 default_t_url_ = new TemplateURL(&profile_, data); |
| 996 turl_model->Add(default_t_url_); |
| 997 turl_model->SetDefaultSearchProvider(default_t_url_); |
| 998 |
| 999 CommandLine::ForCurrentProcess()->AppendSwitchASCII(switches::kGoogleBaseURL, |
| 1000 "http://www.bar.com/"); |
| 1001 CommandLine::ForCurrentProcess()->AppendSwitchASCII( |
| 1002 switches::kExtraSearchQueryParams, "a=b"); |
| 1003 |
| 1004 TestData cases[] = { |
| 1005 { ASCIIToUTF16("k a"), 2, |
| 1006 { ResultInfo(GURL("http://keyword/a"), |
| 1007 AutocompleteMatchType::SEARCH_OTHER_ENGINE, |
| 1008 ASCIIToUTF16("k a")), |
| 1009 ResultInfo(GURL("http://www.bar.com/k%20a?a=b"), |
| 1010 AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED, |
| 1011 ASCIIToUTF16("k a")) } }, |
| 1012 }; |
| 1013 |
| 1014 RunTest(cases, arraysize(cases), false); |
| 1015 } |
| 1016 |
| 983 // Verifies Navsuggest results don't set a TemplateURL, which Instant relies on. | 1017 // Verifies Navsuggest results don't set a TemplateURL, which Instant relies on. |
| 984 // Also verifies that just the *first* navigational result is listed as a match | 1018 // Also verifies that just the *first* navigational result is listed as a match |
| 985 // if suggested relevance scores were not sent. | 1019 // if suggested relevance scores were not sent. |
| 986 TEST_F(SearchProviderTest, NavSuggestNoSuggestedRelevanceScores) { | 1020 TEST_F(SearchProviderTest, NavSuggestNoSuggestedRelevanceScores) { |
| 987 QueryForInput(ASCIIToUTF16("a.c"), false, false); | 1021 QueryForInput(ASCIIToUTF16("a.c"), false, false); |
| 988 | 1022 |
| 989 // Make sure the default providers suggest service was queried. | 1023 // Make sure the default providers suggest service was queried. |
| 990 net::TestURLFetcher* fetcher = test_factory_.GetFetcherByID( | 1024 net::TestURLFetcher* fetcher = test_factory_.GetFetcherByID( |
| 991 SearchProvider::kDefaultProviderURLFetcherID); | 1025 SearchProvider::kDefaultProviderURLFetcherID); |
| 992 ASSERT_TRUE(fetcher); | 1026 ASSERT_TRUE(fetcher); |
| (...skipping 1278 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2271 } else { | 2305 } else { |
| 2272 ASSERT_NE(sug_end, sug_it) << "Failed to find " << suggestion; | 2306 ASSERT_NE(sug_end, sug_it) << "Failed to find " << suggestion; |
| 2273 EXPECT_EQ(ASCIIToUTF16(suggestion), sug_it->suggestion()); | 2307 EXPECT_EQ(ASCIIToUTF16(suggestion), sug_it->suggestion()); |
| 2274 ++sug_it; | 2308 ++sug_it; |
| 2275 } | 2309 } |
| 2276 } | 2310 } |
| 2277 EXPECT_EQ(sug_end, sug_it); | 2311 EXPECT_EQ(sug_end, sug_it); |
| 2278 EXPECT_EQ(nav_end, nav_it); | 2312 EXPECT_EQ(nav_end, nav_it); |
| 2279 } | 2313 } |
| 2280 } | 2314 } |
| OLD | NEW |