Index: chrome/browser/search_engines/template_url_unittest.cc |
diff --git a/chrome/browser/search_engines/template_url_unittest.cc b/chrome/browser/search_engines/template_url_unittest.cc |
index 65b2310a1f9e1141fddaf568361acb854da641f6..c3631238202427dc38423729c4c5125c039e62ad 100644 |
--- a/chrome/browser/search_engines/template_url_unittest.cc |
+++ b/chrome/browser/search_engines/template_url_unittest.cc |
@@ -753,62 +753,167 @@ TEST_F(TemplateURLTest, ExtractSearchTermsFromURL) { |
data.alternate_urls.push_back("http://google.com/alt/#q={searchTerms}"); |
data.alternate_urls.push_back( |
"http://google.com/alt/?ext=foo&q={searchTerms}#ref=bar"); |
+ data.search_terms_replacement_key = "espv"; |
TemplateURL url(NULL, data); |
string16 result; |
EXPECT_TRUE(url.ExtractSearchTermsFromURL( |
- GURL("http://google.com/?q=something"), &result)); |
+ GURL("http://google.com/?q=something"), &result, false)); |
+ EXPECT_EQ(ASCIIToUTF16("something"), result); |
+ |
+ EXPECT_TRUE(url.ExtractSearchTermsFromURL( |
+ GURL("http://google.com/?espv=1&q=something"), &result, false)); |
+ EXPECT_EQ(ASCIIToUTF16("something"), result); |
+ |
+ EXPECT_TRUE(url.ExtractSearchTermsFromURL( |
+ GURL("http://google.com/?espv=0&q=something"), &result, false)); |
+ EXPECT_EQ(ASCIIToUTF16("something"), result); |
+ |
+ EXPECT_TRUE(url.ExtractSearchTermsFromURL( |
+ GURL("http://google.com/alt/#q=something"), &result, false)); |
+ EXPECT_EQ(ASCIIToUTF16("something"), result); |
+ |
+ EXPECT_TRUE(url.ExtractSearchTermsFromURL( |
+ GURL("http://google.com/alt/#espv=1&q=something"), &result, false)); |
+ EXPECT_EQ(ASCIIToUTF16("something"), result); |
+ |
+ EXPECT_TRUE(url.ExtractSearchTermsFromURL( |
+ GURL("http://google.com/alt/#espv=0&q=something"), &result, false)); |
EXPECT_EQ(ASCIIToUTF16("something"), result); |
EXPECT_FALSE(url.ExtractSearchTermsFromURL( |
- GURL("http://google.ca/?q=something"), &result)); |
+ GURL("http://google.ca/?q=something"), &result, false)); |
EXPECT_EQ(string16(), result); |
EXPECT_FALSE(url.ExtractSearchTermsFromURL( |
- GURL("http://google.com/foo/?q=foo"), &result)); |
+ GURL("http://google.com/foo/?q=foo"), &result, false)); |
EXPECT_EQ(string16(), result); |
EXPECT_TRUE(url.ExtractSearchTermsFromURL( |
- GURL("https://google.com/?q=foo"), &result)); |
+ GURL("https://google.com/?q=foo"), &result, false)); |
EXPECT_EQ(ASCIIToUTF16("foo"), result); |
EXPECT_FALSE(url.ExtractSearchTermsFromURL( |
- GURL("http://google.com:8080/?q=foo"), &result)); |
+ GURL("http://google.com:8080/?q=foo"), &result, false)); |
EXPECT_EQ(string16(), result); |
EXPECT_TRUE(url.ExtractSearchTermsFromURL( |
- GURL("http://google.com/?q=1+2+3&b=456"), &result)); |
+ GURL("http://google.com/?q=1+2+3&b=456"), &result, false)); |
EXPECT_EQ(ASCIIToUTF16("1 2 3"), result); |
EXPECT_TRUE(url.ExtractSearchTermsFromURL( |
- GURL("http://google.com/alt/?q=123#q=456"), &result)); |
+ GURL("http://google.com/alt/?q=123#q=456"), &result, false)); |
EXPECT_EQ(ASCIIToUTF16("456"), result); |
EXPECT_TRUE(url.ExtractSearchTermsFromURL( |
- GURL("http://google.com/alt/?a=012&q=123&b=456#f=789"), &result)); |
+ GURL("http://google.com/alt/?a=012&q=123&b=456#f=789"), &result, false)); |
EXPECT_EQ(ASCIIToUTF16("123"), result); |
EXPECT_TRUE(url.ExtractSearchTermsFromURL(GURL( |
- "http://google.com/alt/?a=012&q=123&b=456#j=abc&q=789&h=def9"), &result)); |
+ "http://google.com/alt/?a=012&q=123&b=456#j=abc&q=789&h=def9"), &result, |
+ false)); |
EXPECT_EQ(ASCIIToUTF16("789"), result); |
EXPECT_FALSE(url.ExtractSearchTermsFromURL( |
- GURL("http://google.com/alt/?q="), &result)); |
+ GURL("http://google.com/alt/?q="), &result, false)); |
EXPECT_EQ(string16(), result); |
EXPECT_FALSE(url.ExtractSearchTermsFromURL( |
- GURL("http://google.com/alt/?#q="), &result)); |
+ GURL("http://google.com/alt/?#q="), &result, false)); |
EXPECT_EQ(string16(), result); |
EXPECT_FALSE(url.ExtractSearchTermsFromURL( |
- GURL("http://google.com/alt/?q=#q="), &result)); |
+ GURL("http://google.com/alt/?q=#q="), &result, false)); |
EXPECT_EQ(string16(), result); |
EXPECT_FALSE(url.ExtractSearchTermsFromURL( |
- GURL("http://google.com/alt/?q=123#q="), &result)); |
+ GURL("http://google.com/alt/?q=123#q="), &result, false)); |
EXPECT_EQ(string16(), result); |
EXPECT_TRUE(url.ExtractSearchTermsFromURL( |
- GURL("http://google.com/alt/?q=#q=123"), &result)); |
+ GURL("http://google.com/alt/?q=#q=123"), &result, false)); |
EXPECT_EQ(ASCIIToUTF16("123"), result); |
+ |
+ // Test with instant enabled required. |
+ EXPECT_FALSE(url.ExtractSearchTermsFromURL( |
+ GURL("http://google.com/?q=something"), &result, true)); |
+ EXPECT_EQ(string16(), result); |
+ |
+ EXPECT_TRUE(url.ExtractSearchTermsFromURL( |
+ GURL("http://google.com/?q=something&espv=1"), &result, true)); |
+ EXPECT_EQ(ASCIIToUTF16("something"), result); |
+ |
+ EXPECT_FALSE(url.ExtractSearchTermsFromURL( |
+ GURL("http://google.com/?q=something&espv=0"), &result, true)); |
+ EXPECT_EQ(string16(), result); |
+ |
+ EXPECT_FALSE(url.ExtractSearchTermsFromURL( |
+ GURL("http://google.com/?q=something&espv="), &result, true)); |
+ EXPECT_EQ(string16(), result); |
+ |
+ EXPECT_TRUE(url.ExtractSearchTermsFromURL( |
+ GURL("http://google.com/?espv=1&q=something"), &result, true)); |
+ EXPECT_EQ(ASCIIToUTF16("something"), result); |
+ |
+ EXPECT_FALSE(url.ExtractSearchTermsFromURL( |
+ GURL("http://google.com/?espv=0&q=something"), &result, true)); |
+ EXPECT_EQ(string16(), result); |
+ |
+ EXPECT_FALSE(url.ExtractSearchTermsFromURL( |
+ GURL("http://google.com/?espv=&q=something"), &result, true)); |
+ EXPECT_EQ(string16(), result); |
+ |
+ EXPECT_FALSE(url.ExtractSearchTermsFromURL( |
+ GURL("http://google.com/alt/#q=something"), &result, true)); |
+ EXPECT_EQ(string16(), result); |
+ |
+ EXPECT_TRUE(url.ExtractSearchTermsFromURL( |
+ GURL("http://google.com/alt/#q=something&espv=1"), &result, true)); |
+ EXPECT_EQ(ASCIIToUTF16("something"), result); |
+ |
+ EXPECT_FALSE(url.ExtractSearchTermsFromURL( |
+ GURL("http://google.com/alt/#q=something&espv=0"), &result, true)); |
+ EXPECT_EQ(string16(), result); |
+ |
+ EXPECT_FALSE(url.ExtractSearchTermsFromURL( |
+ GURL("http://google.com/alt/#q=something&espv="), &result, true)); |
+ EXPECT_EQ(string16(), result); |
+ |
+ EXPECT_TRUE(url.ExtractSearchTermsFromURL( |
+ GURL("http://google.com/alt/#espv=1&q=something"), &result, true)); |
+ EXPECT_EQ(ASCIIToUTF16("something"), result); |
+ |
+ EXPECT_FALSE(url.ExtractSearchTermsFromURL( |
+ GURL("http://google.com/alt/#espv=0&q=something"), &result, true)); |
+ EXPECT_EQ(string16(), result); |
+ |
+ EXPECT_FALSE(url.ExtractSearchTermsFromURL( |
+ GURL("http://google.com/alt/#espv=&q=something"), &result, true)); |
+ EXPECT_EQ(string16(), result); |
+ |
+ // espv must be in the same region (query/ref) as the search query. |
+ EXPECT_FALSE(url.ExtractSearchTermsFromURL( |
+ GURL("http://google.com/?espv=1#q=something"), &result, true)); |
+ EXPECT_EQ(string16(), result); |
+ |
+ EXPECT_FALSE(url.ExtractSearchTermsFromURL( |
+ GURL("http://google.com/?q=something#espv=1"), &result, true)); |
+ EXPECT_EQ(string16(), result); |
+ |
+ // It's fine if espv is there twice. |
+ EXPECT_TRUE(url.ExtractSearchTermsFromURL( |
+ GURL("http://google.com/alt/?espv=1#q=something&espv=1"), &result, true)); |
+ EXPECT_EQ(ASCIIToUTF16("something"), result); |
+ |
+ EXPECT_TRUE(url.ExtractSearchTermsFromURL( |
+ GURL("http://google.com/alt/?q=something&espv=1#espv=1"), &result, true)); |
+ EXPECT_EQ(ASCIIToUTF16("something"), result); |
+ |
+ EXPECT_TRUE(url.ExtractSearchTermsFromURL( |
+ GURL("http://google.com/alt/?espv=0#q=something&espv=1"), &result, true)); |
+ EXPECT_EQ(ASCIIToUTF16("something"), result); |
+ |
+ EXPECT_TRUE(url.ExtractSearchTermsFromURL( |
+ GURL("http://google.com/alt/?q=something&espv=1#espv=0"), &result, true)); |
+ EXPECT_EQ(ASCIIToUTF16("something"), result); |
} |