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

Unified Diff: chrome/browser/search_engines/template_url_unittest.cc

Issue 10908226: Introduces a search term extraction mechanism working for arbitrary search providers. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased Created 8 years, 3 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/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")));
+
+}

Powered by Google App Engine
This is Rietveld 408576698