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 089c1a1dab00494425ae7a3afceb7df39a2337a2..efdeba13a84d57a8356873bb5d8b0b41aabd61f0 100644 |
--- a/chrome/browser/search_engines/template_url_unittest.cc |
+++ b/chrome/browser/search_engines/template_url_unittest.cc |
@@ -641,3 +641,121 @@ TEST_F(TemplateURLTest, ParseURLNestedParameter) { |
EXPECT_EQ(TemplateURLRef::SEARCH_TERMS, replacements[0].type); |
EXPECT_TRUE(valid); |
} |
+ |
+TEST_F(TemplateURLTest, DeserializeAndSetAlternateURLs) { |
+ TemplateURLData data; |
+ EXPECT_TRUE(data.alternate_urls().empty()); |
+ |
+ data.DeserializeAndSetAlternateURLs("http://google.com?q={searchTerms}," |
+ "{google:baseURL}/#q={searchTerms}"); |
+ EXPECT_EQ(2U, data.alternate_urls().size()); |
+ EXPECT_EQ("http://google.com?q={searchTerms}", data.alternate_urls()[0]); |
+ EXPECT_EQ("{google:baseURL}/#q={searchTerms}", data.alternate_urls()[1]); |
+} |
+ |
+ |
+TEST_F(TemplateURLTest, DeserializeAndSetEmptyAlternateURLs) { |
+ TemplateURLData data; |
+ EXPECT_TRUE(data.alternate_urls().empty()); |
+ |
+ data.DeserializeAndSetAlternateURLs(""); |
+ EXPECT_TRUE(data.alternate_urls().empty()); |
+} |
+ |
+TEST_F(TemplateURLTest, SerializeAlternateURLs) { |
+ TemplateURLData data; |
+ EXPECT_TRUE(data.alternate_urls().empty()); |
+ data.alternate_urls_.push_back("{google:baseURL}/#q={searchTerms}"); |
+ data.alternate_urls_.push_back("http://google.com?q={searchTerms}"); |
+ |
+ std::string result = data.SerializeAlternateURLs(); |
+ EXPECT_EQ("{google:baseURL}/#q={searchTerms}," |
+ "http://google.com?q={searchTerms}", result); |
+} |
+ |
+TEST_F(TemplateURLTest, SerializeEmptyAlternateURLs) { |
+ TemplateURLData data; |
+ EXPECT_TRUE(data.alternate_urls().empty()); |
+ |
+ std::string result = data.SerializeAlternateURLs(); |
+ EXPECT_EQ("", result); |
+} |
+ |
+TEST_F(TemplateURLTest, GetURL) { |
+ TemplateURLData data; |
+ data.SetURL("http://google.com/?q={searchTerms}"); |
+ data.suggestions_url = "http://google.com/suggest?q={searchTerms}"; |
+ data.instant_url = "http://google.com/instant#q={searchTerms}"; |
+ data.DeserializeAndSetAlternateURLs("http://google.com/alt?q={searchTerms}," |
+ "{google:baseURL}/alt/#q={searchTerms}"); |
+ TemplateURL url(NULL, data); |
+ ASSERT_EQ(4U, url.URLCount()); |
+ EXPECT_EQ("http://google.com/alt?q={searchTerms}", url.GetURL(0)); |
+ EXPECT_EQ("{google:baseURL}/alt/#q={searchTerms}", url.GetURL(1)); |
+ EXPECT_EQ("http://google.com/instant#q={searchTerms}", url.GetURL(2)); |
+ EXPECT_EQ("http://google.com/?q={searchTerms}", url.GetURL(3)); |
+} |
+ |
+TEST_F(TemplateURLTest, GetURLNoInstantURL) { |
+ TemplateURLData data; |
+ data.SetURL("http://google.com/?q={searchTerms}"); |
+ data.suggestions_url = "http://google.com/suggest?q={searchTerms}"; |
+ data.DeserializeAndSetAlternateURLs("http://google.com/alt?q={searchTerms}," |
+ "{google:baseURL}/alt/#q={searchTerms}"); |
+ TemplateURL url(NULL, data); |
+ ASSERT_EQ(3U, url.URLCount()); |
+ EXPECT_EQ("http://google.com/alt?q={searchTerms}", url.GetURL(0)); |
+ EXPECT_EQ("{google:baseURL}/alt/#q={searchTerms}", url.GetURL(1)); |
+ EXPECT_EQ("http://google.com/?q={searchTerms}", url.GetURL(2)); |
+} |
+ |
+TEST_F(TemplateURLTest, GetURLNoSuggestionsURL) { |
+ TemplateURLData data; |
+ data.SetURL("http://google.com/?q={searchTerms}"); |
+ data.instant_url = "http://google.com/instant#q={searchTerms}"; |
+ data.DeserializeAndSetAlternateURLs("http://google.com/alt?q={searchTerms}," |
+ "{google:baseURL}/alt/#q={searchTerms}"); |
+ TemplateURL url(NULL, data); |
+ ASSERT_EQ(4U, url.URLCount()); |
+ EXPECT_EQ("http://google.com/alt?q={searchTerms}", url.GetURL(0)); |
+ EXPECT_EQ("{google:baseURL}/alt/#q={searchTerms}", url.GetURL(1)); |
+ EXPECT_EQ("http://google.com/instant#q={searchTerms}", url.GetURL(2)); |
+ EXPECT_EQ("http://google.com/?q={searchTerms}", url.GetURL(3)); |
+} |
+ |
+TEST_F(TemplateURLTest, GetURLOnlyOneURL) { |
+ TemplateURLData data; |
+ data.SetURL("http://www.google.co.uk/"); |
+ TemplateURL url(NULL, data); |
+ ASSERT_EQ(1U, url.URLCount()); |
+ EXPECT_EQ("http://www.google.co.uk/", url.GetURL(0)); |
+} |
+ |
+TEST_F(TemplateURLTest, ExtractSearchTermsFromURL) { |
dominich
2012/09/12 22:23:12
you should also test for blank search strings in b
beaudoin
2012/09/13 18:16:45
Added them.
However, more importantly: what is th
Peter Kasting
2012/09/13 18:22:08
I don't have the full context here. Is the questi
dominich
2012/09/13 18:30:30
Agreed. We don't want to have an empty string in t
beaudoin
2012/09/13 18:31:49
Ok, right now it fails to match which means it ret
|
+ TemplateURLData data; |
+ data.SetURL("http://google.com/?q={searchTerms}"); |
+ data.instant_url = "http://google.com/instant#q={searchTerms}"; |
+ data.DeserializeAndSetAlternateURLs( |
+ "http://google.com/alt/#q={searchTerms}," |
+ "http://google.com/alt/?ext=foo&q={searchTerms}#ref=bar"); |
+ TemplateURL url(NULL, data); |
+ EXPECT_EQ(ASCIIToUTF16("something"), |
+ url.ExtractSearchTermsFromURL(GURL("http://google.com/?q=something"))); |
+ EXPECT_EQ(string16(), |
+ url.ExtractSearchTermsFromURL(GURL("http://google.ca/?q=something"))); |
+ EXPECT_EQ(string16(), |
+ url.ExtractSearchTermsFromURL(GURL("http://google.com/foo/?q=foo"))); |
+ EXPECT_EQ(string16(), |
+ url.ExtractSearchTermsFromURL(GURL("https://google.com/?q=foo"))); |
+ EXPECT_EQ(string16(), |
+ url.ExtractSearchTermsFromURL(GURL("http://google.com:8080/?q=foo"))); |
+ EXPECT_EQ(ASCIIToUTF16("1 2 3"), |
+ url.ExtractSearchTermsFromURL(GURL("http://google.com/?q=1+2+3&b=456"))); |
+ EXPECT_EQ(ASCIIToUTF16("456"), url.ExtractSearchTermsFromURL( |
+ GURL("http://google.com/alt/?q=123#q=456"))); |
+ EXPECT_EQ(ASCIIToUTF16("123"), url.ExtractSearchTermsFromURL( |
+ GURL("http://google.com/alt/?a=012&q=123&b=456#f=789"))); |
+ EXPECT_EQ(ASCIIToUTF16("789"), url.ExtractSearchTermsFromURL( |
+ GURL("http://google.com/alt/?a=012&q=123&b=456#j=abc&q=789&h=def"))); |
+ |
+} |