Chromium Code Reviews| 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..51b2653b8fd19ad27f792832425717604b9d4079 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,58 @@ 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. |
|
Peter Kasting
2012/06/22 23:18:11
We should also test that a non-Google base URL _wi
Bart N
2012/06/23 01:06:30
Done.
|
| + { ASCIIToUTF16("foo"), |
| + "chrome.0.0l6", |
| + "", |
| + "http://foo?{searchTerms}{google:assistedQueryStats}", |
| + "http://foo/?foo" }, |
| + }; |
| + 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 +450,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 +477,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()) |