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

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

Issue 10537154: A working implementation of AQS (Assisted Query Stats). (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Addressed comments and added more docs. Created 8 years, 6 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 42aa1723c5f38ce6b42a363189889fa238151edf..089c1a1dab00494425ae7a3afceb7df39a2337a2 100644
--- a/chrome/browser/search_engines/template_url_unittest.cc
+++ b/chrome/browser/search_engines/template_url_unittest.cc
@@ -93,8 +93,8 @@ TEST_F(TemplateURLTest, URLRefTestSearchTerms) {
TemplateURL url(NULL, data);
EXPECT_TRUE(url.url_ref().IsValid());
ASSERT_TRUE(url.url_ref().SupportsReplacement());
- GURL result(url.url_ref().ReplaceSearchTerms(value.terms,
- TemplateURLRef::NO_SUGGESTIONS_AVAILABLE, string16()));
+ GURL result(url.url_ref().ReplaceSearchTerms(
+ TemplateURLRef::SearchTermsArgs(value.terms)));
ASSERT_TRUE(result.is_valid());
EXPECT_EQ(value.output, result.spec());
}
@@ -106,8 +106,8 @@ TEST_F(TemplateURLTest, URLRefTestCount) {
TemplateURL url(NULL, data);
EXPECT_TRUE(url.url_ref().IsValid());
ASSERT_TRUE(url.url_ref().SupportsReplacement());
- GURL result(url.url_ref().ReplaceSearchTerms(ASCIIToUTF16("X"),
- TemplateURLRef::NO_SUGGESTIONS_AVAILABLE, string16()));
+ GURL result(url.url_ref().ReplaceSearchTerms(
+ TemplateURLRef::SearchTermsArgs(ASCIIToUTF16("X"))));
ASSERT_TRUE(result.is_valid());
EXPECT_EQ("http://foox/", result.spec());
}
@@ -118,8 +118,8 @@ TEST_F(TemplateURLTest, URLRefTestCount2) {
TemplateURL url(NULL, data);
EXPECT_TRUE(url.url_ref().IsValid());
ASSERT_TRUE(url.url_ref().SupportsReplacement());
- GURL result(url.url_ref().ReplaceSearchTerms(ASCIIToUTF16("X"),
- TemplateURLRef::NO_SUGGESTIONS_AVAILABLE, string16()));
+ GURL result(url.url_ref().ReplaceSearchTerms(
+ TemplateURLRef::SearchTermsArgs(ASCIIToUTF16("X"))));
ASSERT_TRUE(result.is_valid());
EXPECT_EQ("http://foox10/", result.spec());
}
@@ -130,8 +130,8 @@ TEST_F(TemplateURLTest, URLRefTestIndices) {
TemplateURL url(NULL, data);
EXPECT_TRUE(url.url_ref().IsValid());
ASSERT_TRUE(url.url_ref().SupportsReplacement());
- GURL result(url.url_ref().ReplaceSearchTerms(ASCIIToUTF16("X"),
- TemplateURLRef::NO_SUGGESTIONS_AVAILABLE, string16()));
+ GURL result(url.url_ref().ReplaceSearchTerms(
+ TemplateURLRef::SearchTermsArgs(ASCIIToUTF16("X"))));
ASSERT_TRUE(result.is_valid());
EXPECT_EQ("http://fooxxy/", result.spec());
}
@@ -142,8 +142,8 @@ TEST_F(TemplateURLTest, URLRefTestIndices2) {
TemplateURL url(NULL, data);
EXPECT_TRUE(url.url_ref().IsValid());
ASSERT_TRUE(url.url_ref().SupportsReplacement());
- GURL result(url.url_ref().ReplaceSearchTerms(ASCIIToUTF16("X"),
- TemplateURLRef::NO_SUGGESTIONS_AVAILABLE, string16()));
+ GURL result(url.url_ref().ReplaceSearchTerms(
+ TemplateURLRef::SearchTermsArgs(ASCIIToUTF16("X"))));
ASSERT_TRUE(result.is_valid());
EXPECT_EQ("http://fooxx1y1/", result.spec());
}
@@ -154,8 +154,8 @@ TEST_F(TemplateURLTest, URLRefTestEncoding) {
TemplateURL url(NULL, data);
EXPECT_TRUE(url.url_ref().IsValid());
ASSERT_TRUE(url.url_ref().SupportsReplacement());
- GURL result(url.url_ref().ReplaceSearchTerms(ASCIIToUTF16("X"),
- TemplateURLRef::NO_SUGGESTIONS_AVAILABLE, string16()));
+ GURL result(url.url_ref().ReplaceSearchTerms(
+ TemplateURLRef::SearchTermsArgs(ASCIIToUTF16("X"))));
ASSERT_TRUE(result.is_valid());
EXPECT_EQ("http://fooxxutf-8ya/", result.spec());
}
@@ -187,8 +187,8 @@ TEST_F(TemplateURLTest, InputEncodingBeforeSearchTerm) {
TemplateURL url(NULL, data);
EXPECT_TRUE(url.url_ref().IsValid());
ASSERT_TRUE(url.url_ref().SupportsReplacement());
- GURL result(url.url_ref().ReplaceSearchTerms(ASCIIToUTF16("X"),
- TemplateURLRef::NO_SUGGESTIONS_AVAILABLE, string16()));
+ GURL result(url.url_ref().ReplaceSearchTerms(
+ TemplateURLRef::SearchTermsArgs(ASCIIToUTF16("X"))));
ASSERT_TRUE(result.is_valid());
EXPECT_EQ("http://fooxutf-8axyb/", result.spec());
}
@@ -199,8 +199,8 @@ TEST_F(TemplateURLTest, URLRefTestEncoding2) {
TemplateURL url(NULL, data);
EXPECT_TRUE(url.url_ref().IsValid());
ASSERT_TRUE(url.url_ref().SupportsReplacement());
- GURL result(url.url_ref().ReplaceSearchTerms(ASCIIToUTF16("X"),
- TemplateURLRef::NO_SUGGESTIONS_AVAILABLE, string16()));
+ GURL result(url.url_ref().ReplaceSearchTerms(
+ TemplateURLRef::SearchTermsArgs(ASCIIToUTF16("X"))));
ASSERT_TRUE(result.is_valid());
EXPECT_EQ("http://fooxxutf-8yutf-8a/", result.spec());
}
@@ -225,9 +225,8 @@ TEST_F(TemplateURLTest, URLRefTestSearchTermsUsingTermsData) {
TemplateURL url(NULL, data);
EXPECT_TRUE(url.url_ref().IsValid());
ASSERT_TRUE(url.url_ref().SupportsReplacement());
- GURL result(url.url_ref().ReplaceSearchTermsUsingTermsData(value.terms,
- TemplateURLRef::NO_SUGGESTIONS_AVAILABLE, string16(),
- search_terms_data));
+ GURL result(url.url_ref().ReplaceSearchTermsUsingTermsData(
+ TemplateURLRef::SearchTermsArgs(value.terms), search_terms_data));
ASSERT_TRUE(result.is_valid());
EXPECT_EQ(value.output, result.spec());
}
@@ -331,8 +330,8 @@ TEST_F(TemplateURLTest, ReplaceSearchTerms) {
std::string expected_result = test_data[i].expected_result;
ReplaceSubstringsAfterOffset(&expected_result, 0, "{language}",
g_browser_process->GetApplicationLocale());
- GURL result(url.url_ref().ReplaceSearchTerms(ASCIIToUTF16("X"),
- TemplateURLRef::NO_SUGGESTIONS_AVAILABLE, string16()));
+ GURL result(url.url_ref().ReplaceSearchTerms(
+ TemplateURLRef::SearchTermsArgs(ASCIIToUTF16("X"))));
ASSERT_TRUE(result.is_valid());
EXPECT_EQ(expected_result, result.spec());
}
@@ -369,8 +368,64 @@ TEST_F(TemplateURLTest, ReplaceArbitrarySearchTerms) {
TemplateURL url(NULL, data);
EXPECT_TRUE(url.url_ref().IsValid());
ASSERT_TRUE(url.url_ref().SupportsReplacement());
- GURL result(url.url_ref().ReplaceSearchTerms(test_data[i].search_term,
- TemplateURLRef::NO_SUGGESTIONS_AVAILABLE, string16()));
+ GURL result(url.url_ref().ReplaceSearchTerms(
+ TemplateURLRef::SearchTermsArgs(test_data[i].search_term)));
+ ASSERT_TRUE(result.is_valid());
+ EXPECT_EQ(test_data[i].expected_result, result.spec());
+ }
+}
+
+// Tests replacing assisted query stats (AQS) in various scenarios.
+TEST_F(TemplateURLTest, ReplaceAssistedQueryStats) {
+ struct TestData {
+ const string16 search_term;
+ const std::string aqs;
+ const std::string base_url;
+ const std::string url;
+ const std::string expected_result;
+ } test_data[] = {
+ // No HTTPS, no AQS.
+ { ASCIIToUTF16("foo"),
+ "chrome.0.0l6",
+ "http://foo/",
+ "{google:baseURL}?{searchTerms}{google:assistedQueryStats}",
+ "http://foo/?foo" },
+ // HTTPS available, AQS should be replaced.
+ { ASCIIToUTF16("foo"),
+ "chrome.0.0l6",
+ "https://foo/",
+ "{google:baseURL}?{searchTerms}{google:assistedQueryStats}",
+ "https://foo/?fooaqs=chrome.0.0l6&" },
+ // HTTPS available, however AQS is empty.
+ { ASCIIToUTF16("foo"),
+ "",
+ "https://foo/",
+ "{google:baseURL}?{searchTerms}{google:assistedQueryStats}",
+ "https://foo/?foo" },
+ // No {google:baseURL} and protocol is HTTP, we must not substitute AQS.
+ { ASCIIToUTF16("foo"),
+ "chrome.0.0l6",
+ "",
+ "http://foo?{searchTerms}{google:assistedQueryStats}",
+ "http://foo/?foo" },
+ // A non-Google search provider with HTTPS should allow AQS.
+ { ASCIIToUTF16("foo"),
+ "chrome.0.0l6",
+ "",
+ "https://foo?{searchTerms}{google:assistedQueryStats}",
+ "https://foo/?fooaqs=chrome.0.0l6&" },
+ };
+ TemplateURLData data;
+ data.input_encodings.push_back("UTF-8");
+ for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_data); ++i) {
+ data.SetURL(test_data[i].url);
+ TemplateURL url(NULL, data);
+ EXPECT_TRUE(url.url_ref().IsValid());
+ ASSERT_TRUE(url.url_ref().SupportsReplacement());
+ TemplateURLRef::SearchTermsArgs search_terms_args(test_data[i].search_term);
+ search_terms_args.assisted_query_stats = test_data[i].aqs;
+ UIThreadSearchTermsData::SetGoogleBaseURL(test_data[i].base_url);
+ GURL result(url.url_ref().ReplaceSearchTerms(search_terms_args));
ASSERT_TRUE(result.is_valid());
EXPECT_EQ(test_data[i].expected_result, result.spec());
}
@@ -401,9 +456,12 @@ TEST_F(TemplateURLTest, Suggestions) {
EXPECT_TRUE(url.url_ref().IsValid());
ASSERT_TRUE(url.url_ref().SupportsReplacement());
for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_data); ++i) {
- GURL result(url.url_ref().ReplaceSearchTerms(ASCIIToUTF16("foobar"),
- test_data[i].accepted_suggestion,
- test_data[i].original_query_for_suggestion));
+ TemplateURLRef::SearchTermsArgs search_terms_args(
+ ASCIIToUTF16("foobar"));
+ search_terms_args.accepted_suggestion = test_data[i].accepted_suggestion;
+ search_terms_args.original_query =
+ test_data[i].original_query_for_suggestion;
+ GURL result(url.url_ref().ReplaceSearchTerms(search_terms_args));
ASSERT_TRUE(result.is_valid());
EXPECT_EQ(test_data[i].expected_result, result.spec());
}
@@ -425,8 +483,8 @@ TEST_F(TemplateURLTest, RLZ) {
TemplateURL url(NULL, data);
EXPECT_TRUE(url.url_ref().IsValid());
ASSERT_TRUE(url.url_ref().SupportsReplacement());
- GURL result(url.url_ref().ReplaceSearchTerms(ASCIIToUTF16("x"),
- TemplateURLRef::NO_SUGGESTIONS_AVAILABLE, string16()));
+ GURL result(url.url_ref().ReplaceSearchTerms(
+ TemplateURLRef::SearchTermsArgs(ASCIIToUTF16("x"))));
ASSERT_TRUE(result.is_valid());
std::string expected_url = "http://bar/?";
if (!rlz_string.empty())

Powered by Google App Engine
This is Rietveld 408576698