| 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 206 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 217 EXPECT_NE(static_cast<PrerenderHandle*>(NULL), prerender_handle()); | 217 EXPECT_NE(static_cast<PrerenderHandle*>(NULL), prerender_handle()); |
| 218 } | 218 } |
| 219 }; | 219 }; |
| 220 | 220 |
| 221 TEST_F(InstantSearchPrerendererTest, GetSearchTermsFromPrerenderedPage) { | 221 TEST_F(InstantSearchPrerendererTest, GetSearchTermsFromPrerenderedPage) { |
| 222 Init(false, false); | 222 Init(false, false); |
| 223 InstantSearchPrerenderer* prerenderer = GetInstantSearchPrerenderer(); | 223 InstantSearchPrerenderer* prerenderer = GetInstantSearchPrerenderer(); |
| 224 GURL url(GetPrerenderURL()); | 224 GURL url(GetPrerenderURL()); |
| 225 EXPECT_EQ(GURL("https://www.google.com/instant?ion=1&foo=foo#foo=foo&strk"), | 225 EXPECT_EQ(GURL("https://www.google.com/instant?ion=1&foo=foo#foo=foo&strk"), |
| 226 url); | 226 url); |
| 227 EXPECT_EQ(base::UTF16ToASCII(prerenderer->get_last_query()), | 227 EXPECT_EQ( |
| 228 base::UTF16ToASCII( | 228 base::UTF16ToASCII(prerenderer->get_last_query()), |
| 229 chrome::ExtractSearchTermsFromURL(profile(), url))); | 229 base::UTF16ToASCII(search::ExtractSearchTermsFromURL(profile(), url))); |
| 230 | 230 |
| 231 // Assume the prerendered page prefetched search results for the query | 231 // Assume the prerendered page prefetched search results for the query |
| 232 // "flowers". | 232 // "flowers". |
| 233 SetLastQuery(ASCIIToUTF16("flowers")); | 233 SetLastQuery(ASCIIToUTF16("flowers")); |
| 234 EXPECT_EQ("flowers", base::UTF16ToASCII(prerenderer->get_last_query())); | 234 EXPECT_EQ("flowers", base::UTF16ToASCII(prerenderer->get_last_query())); |
| 235 EXPECT_EQ(base::UTF16ToASCII(prerenderer->get_last_query()), | 235 EXPECT_EQ( |
| 236 base::UTF16ToASCII( | 236 base::UTF16ToASCII(prerenderer->get_last_query()), |
| 237 chrome::ExtractSearchTermsFromURL(profile(), url))); | 237 base::UTF16ToASCII(search::ExtractSearchTermsFromURL(profile(), url))); |
| 238 } | 238 } |
| 239 | 239 |
| 240 TEST_F(InstantSearchPrerendererTest, PrefetchSearchResults) { | 240 TEST_F(InstantSearchPrerendererTest, PrefetchSearchResults) { |
| 241 Init(true, true); | 241 Init(true, true); |
| 242 EXPECT_TRUE(prerender_handle()->IsFinishedLoading()); | 242 EXPECT_TRUE(prerender_handle()->IsFinishedLoading()); |
| 243 InstantSearchPrerenderer* prerenderer = GetInstantSearchPrerenderer(); | 243 InstantSearchPrerenderer* prerenderer = GetInstantSearchPrerenderer(); |
| 244 prerenderer->Prerender( | 244 prerenderer->Prerender( |
| 245 InstantSuggestion(ASCIIToUTF16("flowers"), std::string())); | 245 InstantSuggestion(ASCIIToUTF16("flowers"), std::string())); |
| 246 EXPECT_EQ("flowers", base::UTF16ToASCII(prerenderer->get_last_query())); | 246 EXPECT_EQ("flowers", base::UTF16ToASCII(prerenderer->get_last_query())); |
| 247 EXPECT_TRUE(MessageWasSent( | 247 EXPECT_TRUE(MessageWasSent( |
| (...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 340 | 340 |
| 341 AutocompleteMatch url_type_match(NULL, 1100, true, | 341 AutocompleteMatch url_type_match(NULL, 1100, true, |
| 342 AutocompleteMatchType::URL_WHAT_YOU_TYPED); | 342 AutocompleteMatchType::URL_WHAT_YOU_TYPED); |
| 343 EXPECT_FALSE(AutocompleteMatch::IsSearchType(url_type_match.type)); | 343 EXPECT_FALSE(AutocompleteMatch::IsSearchType(url_type_match.type)); |
| 344 EXPECT_FALSE(prerenderer->IsAllowed(url_type_match, active_tab)); | 344 EXPECT_FALSE(prerenderer->IsAllowed(url_type_match, active_tab)); |
| 345 | 345 |
| 346 // Search results page supports Instant search. InstantSearchPrerenderer is | 346 // Search results page supports Instant search. InstantSearchPrerenderer is |
| 347 // used only when the underlying page doesn't support Instant. | 347 // used only when the underlying page doesn't support Instant. |
| 348 NavigateAndCommitActiveTab(GURL("https://www.google.com/alt#quux=foo&strk")); | 348 NavigateAndCommitActiveTab(GURL("https://www.google.com/alt#quux=foo&strk")); |
| 349 active_tab = GetActiveWebContents(); | 349 active_tab = GetActiveWebContents(); |
| 350 EXPECT_FALSE(chrome::ExtractSearchTermsFromURL(profile(), | 350 EXPECT_FALSE( |
| 351 active_tab->GetURL()).empty()); | 351 search::ExtractSearchTermsFromURL(profile(), active_tab->GetURL()) |
| 352 EXPECT_FALSE(chrome::ShouldPrefetchSearchResultsOnSRP()); | 352 .empty()); |
| 353 EXPECT_FALSE(search::ShouldPrefetchSearchResultsOnSRP()); |
| 353 EXPECT_FALSE(prerenderer->IsAllowed(search_type_match, active_tab)); | 354 EXPECT_FALSE(prerenderer->IsAllowed(search_type_match, active_tab)); |
| 354 } | 355 } |
| 355 | 356 |
| 356 TEST_F(InstantSearchPrerendererTest, UsePrerenderPage) { | 357 TEST_F(InstantSearchPrerendererTest, UsePrerenderPage) { |
| 357 PrerenderSearchQuery(ASCIIToUTF16("foo")); | 358 PrerenderSearchQuery(ASCIIToUTF16("foo")); |
| 358 | 359 |
| 359 // Open a search results page. A prerendered page exists for |url|. Make sure | 360 // Open a search results page. A prerendered page exists for |url|. Make sure |
| 360 // the browser swaps the current tab contents with the prerendered contents. | 361 // the browser swaps the current tab contents with the prerendered contents. |
| 361 GURL url("https://www.google.com/alt#quux=foo&strk"); | 362 GURL url("https://www.google.com/alt#quux=foo&strk"); |
| 362 browser()->OpenURL(content::OpenURLParams(url, Referrer(), CURRENT_TAB, | 363 browser()->OpenURL(content::OpenURLParams(url, Referrer(), CURRENT_TAB, |
| (...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 532 base::Tuple<base::string16, EmbeddedSearchRequestParams> params; | 533 base::Tuple<base::string16, EmbeddedSearchRequestParams> params; |
| 533 ChromeViewMsg_SearchBoxSubmit::Read(message, ¶ms); | 534 ChromeViewMsg_SearchBoxSubmit::Read(message, ¶ms); |
| 534 EXPECT_EQ("foo", base::UTF16ToASCII(base::get<0>(params))); | 535 EXPECT_EQ("foo", base::UTF16ToASCII(base::get<0>(params))); |
| 535 EXPECT_EQ("f", base::UTF16ToASCII(base::get<1>(params).original_query)); | 536 EXPECT_EQ("f", base::UTF16ToASCII(base::get<1>(params).original_query)); |
| 536 EXPECT_EQ("utf-8", base::UTF16ToASCII(base::get<1>(params).input_encoding)); | 537 EXPECT_EQ("utf-8", base::UTF16ToASCII(base::get<1>(params).input_encoding)); |
| 537 EXPECT_EQ("", base::UTF16ToASCII(base::get<1>(params).rlz_parameter_value)); | 538 EXPECT_EQ("", base::UTF16ToASCII(base::get<1>(params).rlz_parameter_value)); |
| 538 EXPECT_EQ("chrome...0", | 539 EXPECT_EQ("chrome...0", |
| 539 base::UTF16ToASCII(base::get<1>(params).assisted_query_stats)); | 540 base::UTF16ToASCII(base::get<1>(params).assisted_query_stats)); |
| 540 } | 541 } |
| 541 #endif | 542 #endif |
| OLD | NEW |