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

Unified Diff: chrome/browser/ui/search/instant_search_prerenderer_unittest.cc

Issue 141893009: Create a new helper function to extract search terms from the URL irrespective of the availablility (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 10 months 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 side-by-side diff with in-line comments
Download patch
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 f5437f2952b6dfc8b58bce0f39cc99bc9b217a1c..668de459f3f02b4f4fa8bb82d87fc84310b2c9ff 100644
--- a/chrome/browser/ui/search/instant_search_prerenderer_unittest.cc
+++ b/chrome/browser/ui/search/instant_search_prerenderer_unittest.cc
@@ -24,6 +24,7 @@
#include "chrome/browser/ui/search/search_tab_helper.h"
#include "chrome/browser/ui/tabs/tab_strip_model.h"
#include "chrome/common/render_messages.h"
+#include "chrome/common/url_constants.h"
#include "content/public/browser/navigation_controller.h"
#include "content/public/browser/web_contents.h"
#include "content/public/common/url_constants.h"
@@ -338,6 +339,32 @@ TEST_F(InstantSearchPrerendererTest, PrerenderingAllowed) {
EXPECT_FALSE(prerenderer->IsAllowed(search_type_match, active_tab));
}
+struct SearchURLTestCase {
+ const char* url;
+ const char* expected_result;
+ const char* comment;
+};
+
+TEST_F(InstantSearchPrerendererTest, GetSearchTermsFromURL) {
+ const SearchURLTestCase kTestCases[] = {
+ {chrome::kChromeSearchLocalNtpUrl, "", "NTP url"},
+ {"https://foo.com/instant?strk", "", "Invalid search url"},
+ {"https://foo.com/instant#strk", "", "Invalid search url"},
+ {"https://www.google.com/alt#quux=foo", "foo", "Valid search url"},
+ {"https://www.google.com/alt#quux=foo&strk", "foo", "Valid search url"}
+ };
+
+ Init(true, true);
+ InstantSearchPrerenderer* prerenderer = GetInstantSearchPrerenderer();
+ for (size_t i = 0; i < arraysize(kTestCases); ++i) {
+ const SearchURLTestCase& test = kTestCases[i];
+ EXPECT_EQ(
+ test.expected_result,
+ UTF16ToASCII(prerenderer->GetSearchTermsFromURL(GURL(test.url))))
+ << test.url << " " << test.comment;
+ }
+}
+
TEST_F(InstantSearchPrerendererTest, UsePrerenderPage) {
PrerenderSearchQuery(ASCIIToUTF16("foo"));
@@ -444,3 +471,29 @@ TEST_F(ReuseInstantSearchBasePageTest,
EXPECT_FALSE(prerenderer->CanCommitQuery(GetActiveWebContents(),
ASCIIToUTF16("joy")));
}
+
+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());
+}

Powered by Google App Engine
This is Rietveld 408576698