Commit 0d6a7b5c authored by Pavel Yatsuk's avatar Pavel Yatsuk Committed by Commit Bot

[SEC] Implement attribution parameter for Play API search engine

BUG=1002271
R=pkasting@chromium.org

Change-Id: I51d8b4b41bfab30271edb3d67ebada490da0535f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1848617
Commit-Queue: Pavel Yatsuk <pavely@chromium.org>
Reviewed-by: default avatarKevin Bailey <krb@chromium.org>
Reviewed-by: default avatarPeter Kasting <pkasting@chromium.org>
Cr-Commit-Position: refs/heads/master@{#704323}
parent d907f78b
......@@ -386,6 +386,11 @@ std::string TemplateURLRef::ReplaceSearchTerms(
query_params.push_back(search_terms_args.additional_query_params);
if (!gurl.query().empty())
query_params.push_back(gurl.query());
if (owner_->created_from_play_api()) {
// Append attribution parameter to query originating from Play API search
// engine.
query_params.push_back("chrome_dse_attribution=1");
}
if (query_params.empty())
return url;
......
......@@ -802,6 +802,33 @@ TEST_F(TemplateURLTest, ReplaceCurrentPageUrl) {
}
}
// Tests appending attribution parameter to queries originating from Play API
// search engine.
TEST_F(TemplateURLTest, PlayAPIAttribution) {
const struct TestData {
const char* url;
base::string16 terms;
bool created_from_play_api;
const char* output;
} test_data[] = {{"http://foo/?q={searchTerms}", ASCIIToUTF16("bar"), false,
"http://foo/?q=bar"},
{"http://foo/?q={searchTerms}", ASCIIToUTF16("bar"), true,
"http://foo/?q=bar&chrome_dse_attribution=1"}};
TemplateURLData data;
for (size_t i = 0; i < base::size(test_data); ++i) {
data.SetURL(test_data[i].url);
data.created_from_play_api = test_data[i].created_from_play_api;
TemplateURL url(data);
EXPECT_TRUE(url.url_ref().IsValid(search_terms_data_));
ASSERT_TRUE(url.url_ref().SupportsReplacement(search_terms_data_));
GURL result(url.url_ref().ReplaceSearchTerms(
TemplateURLRef::SearchTermsArgs(test_data[i].terms),
search_terms_data_));
ASSERT_TRUE(result.is_valid());
EXPECT_EQ(test_data[i].output, result.spec());
}
}
TEST_F(TemplateURLTest, Suggestions) {
struct TestData {
const int accepted_suggestion;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment