| 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 f1b3ea9d3f9a9fd38ee4ee9d03590bf39618c6b1..65b2310a1f9e1141fddaf568361acb854da641f6 100644
|
| --- a/chrome/browser/search_engines/template_url_unittest.cc
|
| +++ b/chrome/browser/search_engines/template_url_unittest.cc
|
| @@ -435,6 +435,42 @@ TEST_F(TemplateURLTest, ReplaceAssistedQueryStats) {
|
| }
|
| }
|
|
|
| +// Tests replacing cursor position.
|
| +TEST_F(TemplateURLTest, ReplaceCursorPosition) {
|
| + struct TestData {
|
| + const string16 search_term;
|
| + size_t cursor_position;
|
| + const std::string url;
|
| + const std::string expected_result;
|
| + } test_data[] = {
|
| + { ASCIIToUTF16("foo"),
|
| + string16::npos,
|
| + "{google:baseURL}?{searchTerms}&{google:cursorPosition}",
|
| + "http://www.google.com/?foo&" },
|
| + { ASCIIToUTF16("foo"),
|
| + 2,
|
| + "{google:baseURL}?{searchTerms}&{google:cursorPosition}",
|
| + "http://www.google.com/?foo&cp=2&" },
|
| + { ASCIIToUTF16("foo"),
|
| + 15,
|
| + "{google:baseURL}?{searchTerms}&{google:cursorPosition}",
|
| + "http://www.google.com/?foo&cp=15&" },
|
| + };
|
| + 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.cursor_position = test_data[i].cursor_position;
|
| + GURL result(url.url_ref().ReplaceSearchTerms(search_terms_args));
|
| + ASSERT_TRUE(result.is_valid());
|
| + EXPECT_EQ(test_data[i].expected_result, result.spec());
|
| + }
|
| +}
|
| +
|
| TEST_F(TemplateURLTest, Suggestions) {
|
| struct TestData {
|
| const int accepted_suggestion;
|
|
|