| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/base_paths.h" | 5 #include "base/base_paths.h" |
| 6 #include "base/string_util.h" | 6 #include "base/string_util.h" |
| 7 #include "base/utf_string_conversions.h" | 7 #include "base/utf_string_conversions.h" |
| 8 #include "chrome/browser/browser_process.h" | 8 #include "chrome/browser/browser_process.h" |
| 9 #include "chrome/browser/rlz/rlz.h" | 9 #include "chrome/browser/rlz/rlz.h" |
| 10 #include "chrome/browser/search_engines/search_terms_data.h" | 10 #include "chrome/browser/search_engines/search_terms_data.h" |
| (...skipping 311 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 322 "http://foo/UTF-8aXa{language}a" }, | 322 "http://foo/UTF-8aXa{language}a" }, |
| 323 { "http://foo/{inputEncoding}a{language}a{searchTerms}a", | 323 { "http://foo/{inputEncoding}a{language}a{searchTerms}a", |
| 324 "http://foo/UTF-8a{language}aXa" }, | 324 "http://foo/UTF-8a{language}aXa" }, |
| 325 }; | 325 }; |
| 326 TemplateURLData data; | 326 TemplateURLData data; |
| 327 data.input_encodings.push_back("UTF-8"); | 327 data.input_encodings.push_back("UTF-8"); |
| 328 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_data); ++i) { | 328 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_data); ++i) { |
| 329 data.SetURL(test_data[i].url); | 329 data.SetURL(test_data[i].url); |
| 330 TemplateURL url(data); | 330 TemplateURL url(data); |
| 331 EXPECT_TRUE(url.url_ref().IsValid()); | 331 EXPECT_TRUE(url.url_ref().IsValid()); |
| 332 EXPECT_TRUE(url.url_ref().SupportsReplacement()); | 332 ASSERT_TRUE(url.url_ref().SupportsReplacement()); |
| 333 std::string expected_result = test_data[i].expected_result; | 333 std::string expected_result = test_data[i].expected_result; |
| 334 ReplaceSubstringsAfterOffset(&expected_result, 0, "{language}", | 334 ReplaceSubstringsAfterOffset(&expected_result, 0, "{language}", |
| 335 g_browser_process->GetApplicationLocale()); | 335 g_browser_process->GetApplicationLocale()); |
| 336 GURL result(url.url_ref().ReplaceSearchTerms(ASCIIToUTF16("X"), | 336 GURL result(url.url_ref().ReplaceSearchTerms(ASCIIToUTF16("X"), |
| 337 TemplateURLRef::NO_SUGGESTIONS_AVAILABLE, string16())); | 337 TemplateURLRef::NO_SUGGESTIONS_AVAILABLE, string16())); |
| 338 ASSERT_TRUE(result.is_valid()); | 338 ASSERT_TRUE(result.is_valid()); |
| 339 EXPECT_EQ(expected_result, result.spec()); | 339 EXPECT_EQ(expected_result, result.spec()); |
| 340 } | 340 } |
| 341 } | 341 } |
| 342 | 342 |
| (...skipping 19 matching lines...) Expand all Loading... |
| 362 { "Shift_JIS", UTF8ToUTF16("\xe3\x81\x82 \xe3\x81\x84"), | 362 { "Shift_JIS", UTF8ToUTF16("\xe3\x81\x82 \xe3\x81\x84"), |
| 363 "http://foo/{searchTerms}/bar", | 363 "http://foo/{searchTerms}/bar", |
| 364 "http://foo/%82%A0%20%82%A2/bar"}, | 364 "http://foo/%82%A0%20%82%A2/bar"}, |
| 365 }; | 365 }; |
| 366 TemplateURLData data; | 366 TemplateURLData data; |
| 367 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_data); ++i) { | 367 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_data); ++i) { |
| 368 data.SetURL(test_data[i].url); | 368 data.SetURL(test_data[i].url); |
| 369 data.input_encodings.clear(); | 369 data.input_encodings.clear(); |
| 370 data.input_encodings.push_back(test_data[i].encoding); | 370 data.input_encodings.push_back(test_data[i].encoding); |
| 371 TemplateURL url(data); | 371 TemplateURL url(data); |
| 372 EXPECT_TRUE(url.url_ref().IsValid()); |
| 373 ASSERT_TRUE(url.url_ref().SupportsReplacement()); |
| 372 GURL result(url.url_ref().ReplaceSearchTerms(test_data[i].search_term, | 374 GURL result(url.url_ref().ReplaceSearchTerms(test_data[i].search_term, |
| 373 TemplateURLRef::NO_SUGGESTIONS_AVAILABLE, string16())); | 375 TemplateURLRef::NO_SUGGESTIONS_AVAILABLE, string16())); |
| 374 ASSERT_TRUE(result.is_valid()); | 376 ASSERT_TRUE(result.is_valid()); |
| 375 EXPECT_EQ(test_data[i].expected_result, result.spec()); | 377 EXPECT_EQ(test_data[i].expected_result, result.spec()); |
| 376 } | 378 } |
| 377 } | 379 } |
| 378 | 380 |
| 379 TEST_F(TemplateURLTest, Suggestions) { | 381 TEST_F(TemplateURLTest, Suggestions) { |
| 380 struct TestData { | 382 struct TestData { |
| 381 const int accepted_suggestion; | 383 const int accepted_suggestion; |
| 382 const string16 original_query_for_suggestion; | 384 const string16 original_query_for_suggestion; |
| 383 const std::string expected_result; | 385 const std::string expected_result; |
| 384 } test_data[] = { | 386 } test_data[] = { |
| 385 { TemplateURLRef::NO_SUGGESTIONS_AVAILABLE, string16(), | 387 { TemplateURLRef::NO_SUGGESTIONS_AVAILABLE, string16(), |
| 386 "http://bar/foo?q=foobar" }, | 388 "http://bar/foo?q=foobar" }, |
| 387 { TemplateURLRef::NO_SUGGESTIONS_AVAILABLE, ASCIIToUTF16("foo"), | 389 { TemplateURLRef::NO_SUGGESTIONS_AVAILABLE, ASCIIToUTF16("foo"), |
| 388 "http://bar/foo?q=foobar" }, | 390 "http://bar/foo?q=foobar" }, |
| 389 { TemplateURLRef::NO_SUGGESTION_CHOSEN, string16(), | 391 { TemplateURLRef::NO_SUGGESTION_CHOSEN, string16(), |
| 390 "http://bar/foo?aq=f&q=foobar" }, | 392 "http://bar/foo?aq=f&q=foobar" }, |
| 391 { TemplateURLRef::NO_SUGGESTION_CHOSEN, ASCIIToUTF16("foo"), | 393 { TemplateURLRef::NO_SUGGESTION_CHOSEN, ASCIIToUTF16("foo"), |
| 392 "http://bar/foo?aq=f&q=foobar" }, | 394 "http://bar/foo?aq=f&q=foobar" }, |
| 393 { 0, string16(), "http://bar/foo?aq=0&oq=&q=foobar" }, | 395 { 0, string16(), "http://bar/foo?aq=0&oq=&q=foobar" }, |
| 394 { 1, ASCIIToUTF16("foo"), "http://bar/foo?aq=1&oq=foo&q=foobar" }, | 396 { 1, ASCIIToUTF16("foo"), "http://bar/foo?aq=1&oq=foo&q=foobar" }, |
| 395 }; | 397 }; |
| 396 TemplateURLData data; | 398 TemplateURLData data; |
| 397 data.SetURL("http://bar/foo?{google:acceptedSuggestion}" | 399 data.SetURL("http://bar/foo?{google:acceptedSuggestion}" |
| 398 "{google:originalQueryForSuggestion}q={searchTerms}"); | 400 "{google:originalQueryForSuggestion}q={searchTerms}"); |
| 399 data.input_encodings.push_back("UTF-8"); | 401 data.input_encodings.push_back("UTF-8"); |
| 400 TemplateURL url(data); | 402 TemplateURL url(data); |
| 401 ASSERT_TRUE(url.url_ref().IsValid()); | 403 EXPECT_TRUE(url.url_ref().IsValid()); |
| 402 ASSERT_TRUE(url.url_ref().SupportsReplacement()); | 404 ASSERT_TRUE(url.url_ref().SupportsReplacement()); |
| 403 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_data); ++i) { | 405 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_data); ++i) { |
| 404 GURL result(url.url_ref().ReplaceSearchTerms(ASCIIToUTF16("foobar"), | 406 GURL result(url.url_ref().ReplaceSearchTerms(ASCIIToUTF16("foobar"), |
| 405 test_data[i].accepted_suggestion, | 407 test_data[i].accepted_suggestion, |
| 406 test_data[i].original_query_for_suggestion)); | 408 test_data[i].original_query_for_suggestion)); |
| 407 ASSERT_TRUE(result.is_valid()); | 409 ASSERT_TRUE(result.is_valid()); |
| 408 EXPECT_EQ(test_data[i].expected_result, result.spec()); | 410 EXPECT_EQ(test_data[i].expected_result, result.spec()); |
| 409 } | 411 } |
| 410 } | 412 } |
| 411 | 413 |
| (...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 592 TemplateURL url(data); | 594 TemplateURL url(data); |
| 593 TemplateURLRef::Replacements replacements; | 595 TemplateURLRef::Replacements replacements; |
| 594 bool valid = false; | 596 bool valid = false; |
| 595 EXPECT_EQ("{", | 597 EXPECT_EQ("{", |
| 596 url.url_ref().ParseURL("{{searchTerms}", &replacements, &valid)); | 598 url.url_ref().ParseURL("{{searchTerms}", &replacements, &valid)); |
| 597 ASSERT_EQ(1U, replacements.size()); | 599 ASSERT_EQ(1U, replacements.size()); |
| 598 EXPECT_EQ(1U, replacements[0].index); | 600 EXPECT_EQ(1U, replacements[0].index); |
| 599 EXPECT_EQ(TemplateURLRef::SEARCH_TERMS, replacements[0].type); | 601 EXPECT_EQ(TemplateURLRef::SEARCH_TERMS, replacements[0].type); |
| 600 EXPECT_TRUE(valid); | 602 EXPECT_TRUE(valid); |
| 601 } | 603 } |
| OLD | NEW |