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 |