OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/ui/search/instant_search_prerenderer.h" | 5 #include "chrome/browser/ui/search/instant_search_prerenderer.h" |
6 | 6 |
7 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
8 #include "base/compiler_specific.h" | 8 #include "base/compiler_specific.h" |
9 #include "base/memory/scoped_ptr.h" | 9 #include "base/memory/scoped_ptr.h" |
10 #include "base/metrics/field_trial.h" | 10 #include "base/metrics/field_trial.h" |
(...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
230 EXPECT_NE(static_cast<PrerenderHandle*>(NULL), prerender_handle()); | 230 EXPECT_NE(static_cast<PrerenderHandle*>(NULL), prerender_handle()); |
231 } | 231 } |
232 }; | 232 }; |
233 | 233 |
234 TEST_F(InstantSearchPrerendererTest, GetSearchTermsFromPrerenderedPage) { | 234 TEST_F(InstantSearchPrerendererTest, GetSearchTermsFromPrerenderedPage) { |
235 Init(false, false); | 235 Init(false, false); |
236 InstantSearchPrerenderer* prerenderer = GetInstantSearchPrerenderer(); | 236 InstantSearchPrerenderer* prerenderer = GetInstantSearchPrerenderer(); |
237 GURL url(GetPrerenderURL()); | 237 GURL url(GetPrerenderURL()); |
238 EXPECT_EQ(GURL("https://www.google.com/instant?ion=1&foo=foo#foo=foo&strk"), | 238 EXPECT_EQ(GURL("https://www.google.com/instant?ion=1&foo=foo#foo=foo&strk"), |
239 url); | 239 url); |
240 EXPECT_EQ(UTF16ToASCII(prerenderer->get_last_query()), | 240 EXPECT_EQ(base::UTF16ToASCII(prerenderer->get_last_query()), |
241 UTF16ToASCII(chrome::ExtractSearchTermsFromURL(profile(), url))); | 241 base::UTF16ToASCII( |
| 242 chrome::ExtractSearchTermsFromURL(profile(), url))); |
242 | 243 |
243 // Assume the prerendered page prefetched search results for the query | 244 // Assume the prerendered page prefetched search results for the query |
244 // "flowers". | 245 // "flowers". |
245 SetLastQuery(ASCIIToUTF16("flowers")); | 246 SetLastQuery(ASCIIToUTF16("flowers")); |
246 EXPECT_EQ("flowers", UTF16ToASCII(prerenderer->get_last_query())); | 247 EXPECT_EQ("flowers", base::UTF16ToASCII(prerenderer->get_last_query())); |
247 EXPECT_EQ(UTF16ToASCII(prerenderer->get_last_query()), | 248 EXPECT_EQ(base::UTF16ToASCII(prerenderer->get_last_query()), |
248 UTF16ToASCII(chrome::ExtractSearchTermsFromURL(profile(), url))); | 249 base::UTF16ToASCII( |
| 250 chrome::ExtractSearchTermsFromURL(profile(), url))); |
249 } | 251 } |
250 | 252 |
251 TEST_F(InstantSearchPrerendererTest, PrefetchSearchResults) { | 253 TEST_F(InstantSearchPrerendererTest, PrefetchSearchResults) { |
252 Init(true, true); | 254 Init(true, true); |
253 EXPECT_TRUE(prerender_handle()->IsFinishedLoading()); | 255 EXPECT_TRUE(prerender_handle()->IsFinishedLoading()); |
254 InstantSearchPrerenderer* prerenderer = GetInstantSearchPrerenderer(); | 256 InstantSearchPrerenderer* prerenderer = GetInstantSearchPrerenderer(); |
255 prerenderer->Prerender( | 257 prerenderer->Prerender( |
256 InstantSuggestion(ASCIIToUTF16("flowers"), std::string())); | 258 InstantSuggestion(ASCIIToUTF16("flowers"), std::string())); |
257 EXPECT_EQ("flowers", UTF16ToASCII(prerenderer->get_last_query())); | 259 EXPECT_EQ("flowers", base::UTF16ToASCII(prerenderer->get_last_query())); |
258 EXPECT_TRUE(MessageWasSent( | 260 EXPECT_TRUE(MessageWasSent( |
259 ChromeViewMsg_SearchBoxSetSuggestionToPrefetch::ID)); | 261 ChromeViewMsg_SearchBoxSetSuggestionToPrefetch::ID)); |
260 } | 262 } |
261 | 263 |
262 TEST_F(InstantSearchPrerendererTest, DoNotPrefetchSearchResults) { | 264 TEST_F(InstantSearchPrerendererTest, DoNotPrefetchSearchResults) { |
263 Init(true, false); | 265 Init(true, false); |
264 // Page hasn't finished loading yet. | 266 // Page hasn't finished loading yet. |
265 EXPECT_FALSE(prerender_handle()->IsFinishedLoading()); | 267 EXPECT_FALSE(prerender_handle()->IsFinishedLoading()); |
266 InstantSearchPrerenderer* prerenderer = GetInstantSearchPrerenderer(); | 268 InstantSearchPrerenderer* prerenderer = GetInstantSearchPrerenderer(); |
267 prerenderer->Prerender( | 269 prerenderer->Prerender( |
268 InstantSuggestion(ASCIIToUTF16("flowers"), std::string())); | 270 InstantSuggestion(ASCIIToUTF16("flowers"), std::string())); |
269 EXPECT_EQ("", UTF16ToASCII(prerenderer->get_last_query())); | 271 EXPECT_EQ("", base::UTF16ToASCII(prerenderer->get_last_query())); |
270 EXPECT_FALSE(MessageWasSent( | 272 EXPECT_FALSE(MessageWasSent( |
271 ChromeViewMsg_SearchBoxSetSuggestionToPrefetch::ID)); | 273 ChromeViewMsg_SearchBoxSetSuggestionToPrefetch::ID)); |
272 } | 274 } |
273 | 275 |
274 TEST_F(InstantSearchPrerendererTest, CanCommitQuery) { | 276 TEST_F(InstantSearchPrerendererTest, CanCommitQuery) { |
275 Init(true, true); | 277 Init(true, true); |
276 InstantSearchPrerenderer* prerenderer = GetInstantSearchPrerenderer(); | 278 InstantSearchPrerenderer* prerenderer = GetInstantSearchPrerenderer(); |
277 base::string16 query = ASCIIToUTF16("flowers"); | 279 base::string16 query = ASCIIToUTF16("flowers"); |
278 prerenderer->Prerender(InstantSuggestion(query, std::string())); | 280 prerenderer->Prerender(InstantSuggestion(query, std::string())); |
279 EXPECT_TRUE(prerenderer->CanCommitQuery(GetActiveWebContents(), query)); | 281 EXPECT_TRUE(prerenderer->CanCommitQuery(GetActiveWebContents(), query)); |
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
469 // key. Make sure UsePrerenderedPage() extracts the search terms from the URL | 471 // key. Make sure UsePrerenderedPage() extracts the search terms from the URL |
470 // and uses the prerendered page contents. | 472 // and uses the prerendered page contents. |
471 GURL url("https://www.google.com/alt#quux=foo"); | 473 GURL url("https://www.google.com/alt#quux=foo"); |
472 browser()->OpenURL(content::OpenURLParams(url, Referrer(), CURRENT_TAB, | 474 browser()->OpenURL(content::OpenURLParams(url, Referrer(), CURRENT_TAB, |
473 content::PAGE_TRANSITION_TYPED, | 475 content::PAGE_TRANSITION_TYPED, |
474 false)); | 476 false)); |
475 EXPECT_EQ(GetPrerenderURL(), GetActiveWebContents()->GetURL()); | 477 EXPECT_EQ(GetPrerenderURL(), GetActiveWebContents()->GetURL()); |
476 EXPECT_EQ(static_cast<PrerenderHandle*>(NULL), prerender_handle()); | 478 EXPECT_EQ(static_cast<PrerenderHandle*>(NULL), prerender_handle()); |
477 } | 479 } |
478 #endif | 480 #endif |
OLD | NEW |