Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(134)

Side by Side Diff: chrome/browser/autocomplete/search_provider_unittest.cc

Issue 4978002: Makes search provider honor inline autocomplete. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 10 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/autocomplete/search_provider.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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/string_util.h" 5 #include "base/string_util.h"
6 #include "base/time.h" 6 #include "base/time.h"
7 #include "base/utf_string_conversions.h" 7 #include "base/utf_string_conversions.h"
8 #include "build/build_config.h" 8 #include "build/build_config.h"
9 #include "chrome/browser/autocomplete/autocomplete_match.h" 9 #include "chrome/browser/autocomplete/autocomplete_match.h"
10 #include "chrome/browser/autocomplete/search_provider.h" 10 #include "chrome/browser/autocomplete/search_provider.h"
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
51 51
52 // ACProviderListener method. If we're waiting for the provider to finish, 52 // ACProviderListener method. If we're waiting for the provider to finish,
53 // this exits the message loop. 53 // this exits the message loop.
54 virtual void OnProviderUpdate(bool updated_matches); 54 virtual void OnProviderUpdate(bool updated_matches);
55 55
56 // Runs a nested message loop until provider_ is done. The message loop is 56 // Runs a nested message loop until provider_ is done. The message loop is
57 // exited by way of OnProviderUPdate. 57 // exited by way of OnProviderUPdate.
58 void RunTillProviderDone(); 58 void RunTillProviderDone();
59 59
60 // Invokes Start on provider_, then runs all pending tasks. 60 // Invokes Start on provider_, then runs all pending tasks.
61 void QueryForInput(const string16& text); 61 void QueryForInput(const string16& text,
62 bool prevent_inline_autocomplete);
62 63
63 // See description above class for details of these fields. 64 // See description above class for details of these fields.
64 TemplateURL* default_t_url_; 65 TemplateURL* default_t_url_;
65 const string16 term1_; 66 const string16 term1_;
66 GURL term1_url_; 67 GURL term1_url_;
67 TemplateURL* keyword_t_url_; 68 TemplateURL* keyword_t_url_;
68 const string16 keyword_term_; 69 const string16 keyword_term_;
69 GURL keyword_url_; 70 GURL keyword_url_;
70 71
71 MessageLoopForUI message_loop_; 72 MessageLoopForUI message_loop_;
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
155 return; 156 return;
156 157
157 quit_when_done_ = true; 158 quit_when_done_ = true;
158 #if defined(OS_MACOSX) 159 #if defined(OS_MACOSX)
159 message_loop_.Run(); 160 message_loop_.Run();
160 #else 161 #else
161 message_loop_.Run(NULL); 162 message_loop_.Run(NULL);
162 #endif 163 #endif
163 } 164 }
164 165
165 void SearchProviderTest::QueryForInput(const string16& text) { 166 void SearchProviderTest::QueryForInput(const string16& text,
167 bool prevent_inline_autocomplete) {
166 // Start a query. 168 // Start a query.
167 AutocompleteInput input(UTF16ToWide(text), std::wstring(), 169 AutocompleteInput input(UTF16ToWide(text), std::wstring(),
168 false, false, true, false); 170 prevent_inline_autocomplete, false, true, false);
169 provider_->Start(input, false); 171 provider_->Start(input, false);
170 172
171 // RunAllPending so that the task scheduled by SearchProvider to create the 173 // RunAllPending so that the task scheduled by SearchProvider to create the
172 // URLFetchers runs. 174 // URLFetchers runs.
173 message_loop_.RunAllPending(); 175 message_loop_.RunAllPending();
174 } 176 }
175 177
176 void SearchProviderTest::TearDown() { 178 void SearchProviderTest::TearDown() {
177 message_loop_.RunAllPending(); 179 message_loop_.RunAllPending();
178 180
(...skipping 12 matching lines...) Expand all
191 } 193 }
192 return AutocompleteMatch(NULL, 1, false, AutocompleteMatch::HISTORY_URL); 194 return AutocompleteMatch(NULL, 1, false, AutocompleteMatch::HISTORY_URL);
193 } 195 }
194 196
195 // Tests ----------------------------------------------------------------------- 197 // Tests -----------------------------------------------------------------------
196 198
197 // Make sure we query history for the default provider and a URLFetcher is 199 // Make sure we query history for the default provider and a URLFetcher is
198 // created for the default provider suggest results. 200 // created for the default provider suggest results.
199 TEST_F(SearchProviderTest, QueryDefaultProvider) { 201 TEST_F(SearchProviderTest, QueryDefaultProvider) {
200 string16 term = term1_.substr(0, term1_.size() - 1); 202 string16 term = term1_.substr(0, term1_.size() - 1);
201 QueryForInput(term); 203 QueryForInput(term, false);
202 204
203 // Make sure the default providers suggest service was queried. 205 // Make sure the default providers suggest service was queried.
204 TestURLFetcher* fetcher = test_factory_.GetFetcherByID( 206 TestURLFetcher* fetcher = test_factory_.GetFetcherByID(
205 SearchProvider::kDefaultProviderURLFetcherID); 207 SearchProvider::kDefaultProviderURLFetcherID);
206 ASSERT_TRUE(fetcher); 208 ASSERT_TRUE(fetcher);
207 209
208 // And the URL matches what we expected. 210 // And the URL matches what we expected.
209 GURL expected_url = GURL(default_t_url_->suggestions_url()-> 211 GURL expected_url = GURL(default_t_url_->suggestions_url()->
210 ReplaceSearchTerms(*default_t_url_, UTF16ToWide(term), 212 ReplaceSearchTerms(*default_t_url_, UTF16ToWide(term),
211 0, std::wstring())); 213 0, std::wstring()));
212 ASSERT_TRUE(fetcher->original_url() == expected_url); 214 ASSERT_TRUE(fetcher->original_url() == expected_url);
213 215
214 // Tell the SearchProvider the suggest query is done. 216 // Tell the SearchProvider the suggest query is done.
215 fetcher->delegate()->OnURLFetchComplete( 217 fetcher->delegate()->OnURLFetchComplete(
216 fetcher, GURL(), URLRequestStatus(), 200, ResponseCookies(), 218 fetcher, GURL(), URLRequestStatus(), 200, ResponseCookies(),
217 std::string()); 219 std::string());
218 fetcher = NULL; 220 fetcher = NULL;
219 221
220 // Run till the history results complete. 222 // Run till the history results complete.
221 RunTillProviderDone(); 223 RunTillProviderDone();
222 224
223 // The SearchProvider is done. Make sure it has a result for the history 225 // The SearchProvider is done. Make sure it has a result for the history
224 // term term1. 226 // term term1.
225 AutocompleteMatch match = FindMatchWithDestination(term1_url_); 227 AutocompleteMatch match = FindMatchWithDestination(term1_url_);
226 ASSERT_TRUE(!match.destination_url.is_empty()); 228 ASSERT_TRUE(!match.destination_url.is_empty());
227 } 229 }
228 230
231 TEST_F(SearchProviderTest, HonorPreventInlineAutocomplete) {
232 string16 term = term1_.substr(0, term1_.size() - 1);
233 QueryForInput(term, true);
234
235 ASSERT_FALSE(provider_->matches().empty());
236 ASSERT_EQ(AutocompleteMatch::SEARCH_WHAT_YOU_TYPED,
237 provider_->matches()[0].type);
238 }
239
229 // Issues a query that matches the registered keyword and makes sure history 240 // Issues a query that matches the registered keyword and makes sure history
230 // is queried as well as URLFetchers getting created. 241 // is queried as well as URLFetchers getting created.
231 TEST_F(SearchProviderTest, QueryKeywordProvider) { 242 TEST_F(SearchProviderTest, QueryKeywordProvider) {
232 string16 term = keyword_term_.substr(0, keyword_term_.size() - 1); 243 string16 term = keyword_term_.substr(0, keyword_term_.size() - 1);
233 QueryForInput(WideToUTF16(keyword_t_url_->keyword()) + 244 QueryForInput(WideToUTF16(keyword_t_url_->keyword()) +
234 UTF8ToUTF16(" ") + term); 245 UTF8ToUTF16(" ") + term, false);
235 246
236 // Make sure the default providers suggest service was queried. 247 // Make sure the default providers suggest service was queried.
237 TestURLFetcher* default_fetcher = test_factory_.GetFetcherByID( 248 TestURLFetcher* default_fetcher = test_factory_.GetFetcherByID(
238 SearchProvider::kDefaultProviderURLFetcherID); 249 SearchProvider::kDefaultProviderURLFetcherID);
239 ASSERT_TRUE(default_fetcher); 250 ASSERT_TRUE(default_fetcher);
240 251
241 // Tell the SearchProvider the default suggest query is done. 252 // Tell the SearchProvider the default suggest query is done.
242 default_fetcher->delegate()->OnURLFetchComplete( 253 default_fetcher->delegate()->OnURLFetchComplete(
243 default_fetcher, GURL(), URLRequestStatus(), 200, ResponseCookies(), 254 default_fetcher, GURL(), URLRequestStatus(), 200, ResponseCookies(),
244 std::string()); 255 std::string());
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
288 "http://username:password@hostname/", 299 "http://username:password@hostname/",
289 "file://filename", 300 "file://filename",
290 "data://data", 301 "data://data",
291 "unknownscheme:anything", 302 "unknownscheme:anything",
292 "http://hostname/?query=q", 303 "http://hostname/?query=q",
293 "http://hostname/path#ref", 304 "http://hostname/path#ref",
294 "https://hostname/path", 305 "https://hostname/path",
295 }; 306 };
296 307
297 for (size_t i = 0; i < arraysize(inputs); ++i) { 308 for (size_t i = 0; i < arraysize(inputs); ++i) {
298 QueryForInput(ASCIIToUTF16(inputs[i])); 309 QueryForInput(ASCIIToUTF16(inputs[i]), false);
299 // Make sure the default providers suggest service was not queried. 310 // Make sure the default providers suggest service was not queried.
300 ASSERT_TRUE(test_factory_.GetFetcherByID( 311 ASSERT_TRUE(test_factory_.GetFetcherByID(
301 SearchProvider::kDefaultProviderURLFetcherID) == NULL); 312 SearchProvider::kDefaultProviderURLFetcherID) == NULL);
302 // Run till the history results complete. 313 // Run till the history results complete.
303 RunTillProviderDone(); 314 RunTillProviderDone();
304 } 315 }
305 } 316 }
OLDNEW
« no previous file with comments | « chrome/browser/autocomplete/search_provider.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698