Index: chrome/browser/ui/search/instant_search_prerenderer_unittest.cc |
diff --git a/chrome/browser/ui/search/instant_search_prerenderer_unittest.cc b/chrome/browser/ui/search/instant_search_prerenderer_unittest.cc |
index d40210aa52177ed83d4d951e35387d81529c7a47..9216c4e7849c00d10e90d05513fd2842ac705d55 100644 |
--- a/chrome/browser/ui/search/instant_search_prerenderer_unittest.cc |
+++ b/chrome/browser/ui/search/instant_search_prerenderer_unittest.cc |
@@ -238,14 +238,14 @@ TEST_F(InstantSearchPrerendererTest, GetSearchTermsFromPrerenderedPage) { |
EXPECT_EQ(GURL("https://www.google.com/instant?ion=1&foo=foo#foo=foo&strk"), |
url); |
EXPECT_EQ(UTF16ToASCII(prerenderer->get_last_query()), |
- UTF16ToASCII(chrome::GetSearchTermsFromURL(profile(), url))); |
+ UTF16ToASCII(chrome::ExtractSearchTermsFromURL(profile(), url))); |
// Assume the prerendered page prefetched search results for the query |
// "flowers". |
SetLastQuery(ASCIIToUTF16("flowers")); |
EXPECT_EQ("flowers", UTF16ToASCII(prerenderer->get_last_query())); |
EXPECT_EQ(UTF16ToASCII(prerenderer->get_last_query()), |
- UTF16ToASCII(chrome::GetSearchTermsFromURL(profile(), url))); |
+ UTF16ToASCII(chrome::ExtractSearchTermsFromURL(profile(), url))); |
} |
TEST_F(InstantSearchPrerendererTest, PrefetchSearchResults) { |
@@ -336,8 +336,8 @@ TEST_F(InstantSearchPrerendererTest, PrerenderingAllowed) { |
// used only when the underlying page doesn't support Instant. |
NavigateAndCommitActiveTab(GURL("https://www.google.com/alt#quux=foo&strk")); |
active_tab = GetActiveWebContents(); |
- EXPECT_FALSE(chrome::GetSearchTermsFromURL(profile(), active_tab->GetURL()) |
- .empty()); |
+ EXPECT_FALSE(chrome::ExtractSearchTermsFromURL(profile(), |
+ active_tab->GetURL()).empty()); |
EXPECT_FALSE(chrome::ShouldPrefetchSearchResultsOnSRP()); |
EXPECT_FALSE(prerenderer->IsAllowed(search_type_match, active_tab)); |
} |
@@ -448,3 +448,31 @@ TEST_F(ReuseInstantSearchBasePageTest, |
EXPECT_FALSE(prerenderer->CanCommitQuery(GetActiveWebContents(), |
ASCIIToUTF16("joy"))); |
} |
+ |
+#if !defined(OS_IOS) && !defined(OS_ANDROID) |
+class TestUsePrerenderPage : public InstantSearchPrerendererTest { |
+ protected: |
+ virtual void SetUp() OVERRIDE { |
+ // Disable query extraction flag in field trials. |
+ ASSERT_TRUE(base::FieldTrialList::CreateFieldTrial( |
+ "EmbeddedSearch", |
+ "Group1 strk:20 query_extraction:0 prefetch_results:1")); |
+ InstantUnitTestBase::SetUpWithoutQueryExtraction(); |
+ } |
+}; |
+ |
+TEST_F(TestUsePrerenderPage, ExtractSearchTermsAndUsePrerenderPage) { |
+ PrerenderSearchQuery(ASCIIToUTF16("foo")); |
+ |
+ // Open a search results page. Query extraction flag is disabled in field |
+ // trials. Search results page URL does not contain search terms replacement |
+ // key. Make sure UsePrerenderedPage() extracts the search terms from the URL |
+ // and uses the prerendered page contents. |
+ GURL url("https://www.google.com/alt#quux=foo"); |
+ browser()->OpenURL(content::OpenURLParams(url, Referrer(), CURRENT_TAB, |
+ content::PAGE_TRANSITION_TYPED, |
+ false)); |
+ EXPECT_EQ(GetPrerenderURL(), GetActiveWebContents()->GetURL()); |
+ EXPECT_EQ(static_cast<PrerenderHandle*>(NULL), prerender_handle()); |
+} |
+#endif |