OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/command_line.h" | 6 #include "base/command_line.h" |
7 #include "base/strings/string_number_conversions.h" | 7 #include "base/strings/string_number_conversions.h" |
8 #include "base/strings/string_util.h" | 8 #include "base/strings/string_util.h" |
9 #include "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
10 #include "components/metrics/proto/omnibox_event.pb.h" | 10 #include "components/metrics/proto/omnibox_event.pb.h" |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
55 } search_term_cases[] = { | 55 } search_term_cases[] = { |
56 { "http://foo{searchTerms}", ASCIIToUTF16("sea rch/bar"), | 56 { "http://foo{searchTerms}", ASCIIToUTF16("sea rch/bar"), |
57 "http://foosea%20rch/bar" }, | 57 "http://foosea%20rch/bar" }, |
58 { "http://foo{searchTerms}?boo=abc", ASCIIToUTF16("sea rch/bar"), | 58 { "http://foo{searchTerms}?boo=abc", ASCIIToUTF16("sea rch/bar"), |
59 "http://foosea%20rch/bar?boo=abc" }, | 59 "http://foosea%20rch/bar?boo=abc" }, |
60 { "http://foo/?boo={searchTerms}", ASCIIToUTF16("sea rch/bar"), | 60 { "http://foo/?boo={searchTerms}", ASCIIToUTF16("sea rch/bar"), |
61 "http://foo/?boo=sea+rch%2Fbar" }, | 61 "http://foo/?boo=sea+rch%2Fbar" }, |
62 { "http://en.wikipedia.org/{searchTerms}", ASCIIToUTF16("wiki/?"), | 62 { "http://en.wikipedia.org/{searchTerms}", ASCIIToUTF16("wiki/?"), |
63 "http://en.wikipedia.org/wiki/%3F" } | 63 "http://en.wikipedia.org/wiki/%3F" } |
64 }; | 64 }; |
65 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(search_term_cases); ++i) { | 65 for (size_t i = 0; i < arraysize(search_term_cases); ++i) { |
66 const SearchTermsCase& value = search_term_cases[i]; | 66 const SearchTermsCase& value = search_term_cases[i]; |
67 TemplateURLData data; | 67 TemplateURLData data; |
68 data.SetURL(value.url); | 68 data.SetURL(value.url); |
69 TemplateURL url(data); | 69 TemplateURL url(data); |
70 EXPECT_TRUE(url.url_ref().IsValid(search_terms_data_)); | 70 EXPECT_TRUE(url.url_ref().IsValid(search_terms_data_)); |
71 ASSERT_TRUE(url.url_ref().SupportsReplacement(search_terms_data_)); | 71 ASSERT_TRUE(url.url_ref().SupportsReplacement(search_terms_data_)); |
72 GURL result(url.url_ref().ReplaceSearchTerms( | 72 GURL result(url.url_ref().ReplaceSearchTerms( |
73 TemplateURLRef::SearchTermsArgs(value.terms), search_terms_data_)); | 73 TemplateURLRef::SearchTermsArgs(value.terms), search_terms_data_)); |
74 ASSERT_TRUE(result.is_valid()); | 74 ASSERT_TRUE(result.is_valid()); |
75 EXPECT_EQ(value.output, result.spec()); | 75 EXPECT_EQ(value.output, result.spec()); |
(...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
296 const char* output; | 296 const char* output; |
297 } search_term_cases[] = { | 297 } search_term_cases[] = { |
298 { "{google:baseURL}{language}{searchTerms}", base::string16(), | 298 { "{google:baseURL}{language}{searchTerms}", base::string16(), |
299 "http://example.com/e/en" }, | 299 "http://example.com/e/en" }, |
300 { "{google:baseSuggestURL}{searchTerms}", base::string16(), | 300 { "{google:baseSuggestURL}{searchTerms}", base::string16(), |
301 "http://example.com/complete/" } | 301 "http://example.com/complete/" } |
302 }; | 302 }; |
303 | 303 |
304 TestingSearchTermsData search_terms_data("http://example.com/e/"); | 304 TestingSearchTermsData search_terms_data("http://example.com/e/"); |
305 TemplateURLData data; | 305 TemplateURLData data; |
306 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(search_term_cases); ++i) { | 306 for (size_t i = 0; i < arraysize(search_term_cases); ++i) { |
307 const SearchTermsCase& value = search_term_cases[i]; | 307 const SearchTermsCase& value = search_term_cases[i]; |
308 data.SetURL(value.url); | 308 data.SetURL(value.url); |
309 TemplateURL url(data); | 309 TemplateURL url(data); |
310 EXPECT_TRUE(url.url_ref().IsValid(search_terms_data)); | 310 EXPECT_TRUE(url.url_ref().IsValid(search_terms_data)); |
311 ASSERT_TRUE(url.url_ref().SupportsReplacement(search_terms_data)); | 311 ASSERT_TRUE(url.url_ref().SupportsReplacement(search_terms_data)); |
312 GURL result(url.url_ref().ReplaceSearchTerms( | 312 GURL result(url.url_ref().ReplaceSearchTerms( |
313 TemplateURLRef::SearchTermsArgs(value.terms), search_terms_data, NULL)); | 313 TemplateURLRef::SearchTermsArgs(value.terms), search_terms_data, NULL)); |
314 ASSERT_TRUE(result.is_valid()); | 314 ASSERT_TRUE(result.is_valid()); |
315 EXPECT_EQ(value.output, result.spec()); | 315 EXPECT_EQ(value.output, result.spec()); |
316 } | 316 } |
(...skipping 20 matching lines...) Expand all Loading... |
337 {"C%252B", ASCIIToUTF16("C%2B")}, | 337 {"C%252B", ASCIIToUTF16("C%2B")}, |
338 }; | 338 }; |
339 | 339 |
340 // Set one input encoding: big-5. This is so we can test fallback to UTF-8. | 340 // Set one input encoding: big-5. This is so we can test fallback to UTF-8. |
341 TemplateURLData data; | 341 TemplateURLData data; |
342 data.SetURL("http://foo?q={searchTerms}"); | 342 data.SetURL("http://foo?q={searchTerms}"); |
343 data.input_encodings.push_back("big-5"); | 343 data.input_encodings.push_back("big-5"); |
344 TemplateURL url(data); | 344 TemplateURL url(data); |
345 EXPECT_TRUE(url.url_ref().IsValid(search_terms_data_)); | 345 EXPECT_TRUE(url.url_ref().IsValid(search_terms_data_)); |
346 ASSERT_TRUE(url.url_ref().SupportsReplacement(search_terms_data_)); | 346 ASSERT_TRUE(url.url_ref().SupportsReplacement(search_terms_data_)); |
347 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(to_wide_cases); i++) { | 347 for (size_t i = 0; i < arraysize(to_wide_cases); i++) { |
348 EXPECT_EQ(to_wide_cases[i].expected_decoded_term, | 348 EXPECT_EQ(to_wide_cases[i].expected_decoded_term, |
349 url.url_ref().SearchTermToString16( | 349 url.url_ref().SearchTermToString16( |
350 to_wide_cases[i].encoded_search_term)); | 350 to_wide_cases[i].encoded_search_term)); |
351 } | 351 } |
352 } | 352 } |
353 | 353 |
354 TEST_F(TemplateURLTest, DisplayURLToURLRef) { | 354 TEST_F(TemplateURLTest, DisplayURLToURLRef) { |
355 struct TestData { | 355 struct TestData { |
356 const std::string url; | 356 const std::string url; |
357 const base::string16 expected_result; | 357 const base::string16 expected_result; |
358 } test_data[] = { | 358 } test_data[] = { |
359 { "http://foo{searchTerms}x{inputEncoding}y{outputEncoding}a", | 359 { "http://foo{searchTerms}x{inputEncoding}y{outputEncoding}a", |
360 ASCIIToUTF16("http://foo%sx{inputEncoding}y{outputEncoding}a") }, | 360 ASCIIToUTF16("http://foo%sx{inputEncoding}y{outputEncoding}a") }, |
361 { "http://X", | 361 { "http://X", |
362 ASCIIToUTF16("http://X") }, | 362 ASCIIToUTF16("http://X") }, |
363 { "http://foo{searchTerms", | 363 { "http://foo{searchTerms", |
364 ASCIIToUTF16("http://foo{searchTerms") }, | 364 ASCIIToUTF16("http://foo{searchTerms") }, |
365 { "http://foo{searchTerms}{language}", | 365 { "http://foo{searchTerms}{language}", |
366 ASCIIToUTF16("http://foo%s{language}") }, | 366 ASCIIToUTF16("http://foo%s{language}") }, |
367 }; | 367 }; |
368 TemplateURLData data; | 368 TemplateURLData data; |
369 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_data); ++i) { | 369 for (size_t i = 0; i < arraysize(test_data); ++i) { |
370 data.SetURL(test_data[i].url); | 370 data.SetURL(test_data[i].url); |
371 TemplateURL url(data); | 371 TemplateURL url(data); |
372 EXPECT_EQ(test_data[i].expected_result, | 372 EXPECT_EQ(test_data[i].expected_result, |
373 url.url_ref().DisplayURL(search_terms_data_)); | 373 url.url_ref().DisplayURL(search_terms_data_)); |
374 EXPECT_EQ(test_data[i].url, | 374 EXPECT_EQ(test_data[i].url, |
375 TemplateURLRef::DisplayURLToURLRef( | 375 TemplateURLRef::DisplayURLToURLRef( |
376 url.url_ref().DisplayURL(search_terms_data_))); | 376 url.url_ref().DisplayURL(search_terms_data_))); |
377 } | 377 } |
378 } | 378 } |
379 | 379 |
(...skipping 22 matching lines...) Expand all Loading... |
402 "http://foo/Xa{language}aUTF-8a" }, | 402 "http://foo/Xa{language}aUTF-8a" }, |
403 { "http://foo/{searchTerms}a{inputEncoding}a{language}a", | 403 { "http://foo/{searchTerms}a{inputEncoding}a{language}a", |
404 "http://foo/XaUTF-8a{language}a" }, | 404 "http://foo/XaUTF-8a{language}a" }, |
405 { "http://foo/{inputEncoding}a{searchTerms}a{language}a", | 405 { "http://foo/{inputEncoding}a{searchTerms}a{language}a", |
406 "http://foo/UTF-8aXa{language}a" }, | 406 "http://foo/UTF-8aXa{language}a" }, |
407 { "http://foo/{inputEncoding}a{language}a{searchTerms}a", | 407 { "http://foo/{inputEncoding}a{language}a{searchTerms}a", |
408 "http://foo/UTF-8a{language}aXa" }, | 408 "http://foo/UTF-8a{language}aXa" }, |
409 }; | 409 }; |
410 TemplateURLData data; | 410 TemplateURLData data; |
411 data.input_encodings.push_back("UTF-8"); | 411 data.input_encodings.push_back("UTF-8"); |
412 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_data); ++i) { | 412 for (size_t i = 0; i < arraysize(test_data); ++i) { |
413 data.SetURL(test_data[i].url); | 413 data.SetURL(test_data[i].url); |
414 TemplateURL url(data); | 414 TemplateURL url(data); |
415 EXPECT_TRUE(url.url_ref().IsValid(search_terms_data_)); | 415 EXPECT_TRUE(url.url_ref().IsValid(search_terms_data_)); |
416 ASSERT_TRUE(url.url_ref().SupportsReplacement(search_terms_data_)); | 416 ASSERT_TRUE(url.url_ref().SupportsReplacement(search_terms_data_)); |
417 std::string expected_result = test_data[i].expected_result; | 417 std::string expected_result = test_data[i].expected_result; |
418 ReplaceSubstringsAfterOffset(&expected_result, 0, "{language}", | 418 ReplaceSubstringsAfterOffset(&expected_result, 0, "{language}", |
419 search_terms_data_.GetApplicationLocale()); | 419 search_terms_data_.GetApplicationLocale()); |
420 GURL result(url.url_ref().ReplaceSearchTerms( | 420 GURL result(url.url_ref().ReplaceSearchTerms( |
421 TemplateURLRef::SearchTermsArgs(ASCIIToUTF16("X")), | 421 TemplateURLRef::SearchTermsArgs(ASCIIToUTF16("X")), |
422 search_terms_data_)); | 422 search_terms_data_)); |
(...skipping 19 matching lines...) Expand all Loading... |
442 "http://foo/?{searchTerms}{inputEncoding}", | 442 "http://foo/?{searchTerms}{inputEncoding}", |
443 "http://foo/?blahUTF-8" }, | 443 "http://foo/?blahUTF-8" }, |
444 { "Shift_JIS", base::UTF8ToUTF16("\xe3\x81\x82"), | 444 { "Shift_JIS", base::UTF8ToUTF16("\xe3\x81\x82"), |
445 "http://foo/{searchTerms}/bar", | 445 "http://foo/{searchTerms}/bar", |
446 "http://foo/%82%A0/bar"}, | 446 "http://foo/%82%A0/bar"}, |
447 { "Shift_JIS", base::UTF8ToUTF16("\xe3\x81\x82 \xe3\x81\x84"), | 447 { "Shift_JIS", base::UTF8ToUTF16("\xe3\x81\x82 \xe3\x81\x84"), |
448 "http://foo/{searchTerms}/bar", | 448 "http://foo/{searchTerms}/bar", |
449 "http://foo/%82%A0%20%82%A2/bar"}, | 449 "http://foo/%82%A0%20%82%A2/bar"}, |
450 }; | 450 }; |
451 TemplateURLData data; | 451 TemplateURLData data; |
452 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_data); ++i) { | 452 for (size_t i = 0; i < arraysize(test_data); ++i) { |
453 data.SetURL(test_data[i].url); | 453 data.SetURL(test_data[i].url); |
454 data.input_encodings.clear(); | 454 data.input_encodings.clear(); |
455 data.input_encodings.push_back(test_data[i].encoding); | 455 data.input_encodings.push_back(test_data[i].encoding); |
456 TemplateURL url(data); | 456 TemplateURL url(data); |
457 EXPECT_TRUE(url.url_ref().IsValid(search_terms_data_)); | 457 EXPECT_TRUE(url.url_ref().IsValid(search_terms_data_)); |
458 ASSERT_TRUE(url.url_ref().SupportsReplacement(search_terms_data_)); | 458 ASSERT_TRUE(url.url_ref().SupportsReplacement(search_terms_data_)); |
459 GURL result(url.url_ref().ReplaceSearchTerms( | 459 GURL result(url.url_ref().ReplaceSearchTerms( |
460 TemplateURLRef::SearchTermsArgs(test_data[i].search_term), | 460 TemplateURLRef::SearchTermsArgs(test_data[i].search_term), |
461 search_terms_data_)); | 461 search_terms_data_)); |
462 ASSERT_TRUE(result.is_valid()); | 462 ASSERT_TRUE(result.is_valid()); |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
499 "http://foo/?foo" }, | 499 "http://foo/?foo" }, |
500 // A non-Google search provider with HTTPS should allow AQS. | 500 // A non-Google search provider with HTTPS should allow AQS. |
501 { ASCIIToUTF16("foo"), | 501 { ASCIIToUTF16("foo"), |
502 "chrome.0.0l6", | 502 "chrome.0.0l6", |
503 "https://www.google.com", | 503 "https://www.google.com", |
504 "https://foo?{searchTerms}{google:assistedQueryStats}", | 504 "https://foo?{searchTerms}{google:assistedQueryStats}", |
505 "https://foo/?fooaqs=chrome.0.0l6&" }, | 505 "https://foo/?fooaqs=chrome.0.0l6&" }, |
506 }; | 506 }; |
507 TemplateURLData data; | 507 TemplateURLData data; |
508 data.input_encodings.push_back("UTF-8"); | 508 data.input_encodings.push_back("UTF-8"); |
509 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_data); ++i) { | 509 for (size_t i = 0; i < arraysize(test_data); ++i) { |
510 data.SetURL(test_data[i].url); | 510 data.SetURL(test_data[i].url); |
511 TemplateURL url(data); | 511 TemplateURL url(data); |
512 EXPECT_TRUE(url.url_ref().IsValid(search_terms_data_)); | 512 EXPECT_TRUE(url.url_ref().IsValid(search_terms_data_)); |
513 ASSERT_TRUE(url.url_ref().SupportsReplacement(search_terms_data_)); | 513 ASSERT_TRUE(url.url_ref().SupportsReplacement(search_terms_data_)); |
514 TemplateURLRef::SearchTermsArgs search_terms_args(test_data[i].search_term); | 514 TemplateURLRef::SearchTermsArgs search_terms_args(test_data[i].search_term); |
515 search_terms_args.assisted_query_stats = test_data[i].aqs; | 515 search_terms_args.assisted_query_stats = test_data[i].aqs; |
516 search_terms_data_.set_google_base_url(test_data[i].base_url); | 516 search_terms_data_.set_google_base_url(test_data[i].base_url); |
517 GURL result(url.url_ref().ReplaceSearchTerms(search_terms_args, | 517 GURL result(url.url_ref().ReplaceSearchTerms(search_terms_args, |
518 search_terms_data_)); | 518 search_terms_data_)); |
519 ASSERT_TRUE(result.is_valid()); | 519 ASSERT_TRUE(result.is_valid()); |
(...skipping 17 matching lines...) Expand all Loading... |
537 2, | 537 2, |
538 "{google:baseURL}?{searchTerms}&{google:cursorPosition}", | 538 "{google:baseURL}?{searchTerms}&{google:cursorPosition}", |
539 "http://www.google.com/?foo&cp=2&" }, | 539 "http://www.google.com/?foo&cp=2&" }, |
540 { ASCIIToUTF16("foo"), | 540 { ASCIIToUTF16("foo"), |
541 15, | 541 15, |
542 "{google:baseURL}?{searchTerms}&{google:cursorPosition}", | 542 "{google:baseURL}?{searchTerms}&{google:cursorPosition}", |
543 "http://www.google.com/?foo&cp=15&" }, | 543 "http://www.google.com/?foo&cp=15&" }, |
544 }; | 544 }; |
545 TemplateURLData data; | 545 TemplateURLData data; |
546 data.input_encodings.push_back("UTF-8"); | 546 data.input_encodings.push_back("UTF-8"); |
547 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_data); ++i) { | 547 for (size_t i = 0; i < arraysize(test_data); ++i) { |
548 data.SetURL(test_data[i].url); | 548 data.SetURL(test_data[i].url); |
549 TemplateURL url(data); | 549 TemplateURL url(data); |
550 EXPECT_TRUE(url.url_ref().IsValid(search_terms_data_)); | 550 EXPECT_TRUE(url.url_ref().IsValid(search_terms_data_)); |
551 ASSERT_TRUE(url.url_ref().SupportsReplacement(search_terms_data_)); | 551 ASSERT_TRUE(url.url_ref().SupportsReplacement(search_terms_data_)); |
552 TemplateURLRef::SearchTermsArgs search_terms_args(test_data[i].search_term); | 552 TemplateURLRef::SearchTermsArgs search_terms_args(test_data[i].search_term); |
553 search_terms_args.cursor_position = test_data[i].cursor_position; | 553 search_terms_args.cursor_position = test_data[i].cursor_position; |
554 GURL result(url.url_ref().ReplaceSearchTerms(search_terms_args, | 554 GURL result(url.url_ref().ReplaceSearchTerms(search_terms_args, |
555 search_terms_data_)); | 555 search_terms_data_)); |
556 ASSERT_TRUE(result.is_valid()); | 556 ASSERT_TRUE(result.is_valid()); |
557 EXPECT_EQ(test_data[i].expected_result, result.spec()); | 557 EXPECT_EQ(test_data[i].expected_result, result.spec()); |
(...skipping 16 matching lines...) Expand all Loading... |
574 metrics::OmniboxInputType::URL, | 574 metrics::OmniboxInputType::URL, |
575 "{google:baseURL}?{searchTerms}&{google:inputType}", | 575 "{google:baseURL}?{searchTerms}&{google:inputType}", |
576 "http://www.google.com/?foo&oit=3&" }, | 576 "http://www.google.com/?foo&oit=3&" }, |
577 { ASCIIToUTF16("foo"), | 577 { ASCIIToUTF16("foo"), |
578 metrics::OmniboxInputType::FORCED_QUERY, | 578 metrics::OmniboxInputType::FORCED_QUERY, |
579 "{google:baseURL}?{searchTerms}&{google:inputType}", | 579 "{google:baseURL}?{searchTerms}&{google:inputType}", |
580 "http://www.google.com/?foo&oit=5&" }, | 580 "http://www.google.com/?foo&oit=5&" }, |
581 }; | 581 }; |
582 TemplateURLData data; | 582 TemplateURLData data; |
583 data.input_encodings.push_back("UTF-8"); | 583 data.input_encodings.push_back("UTF-8"); |
584 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_data); ++i) { | 584 for (size_t i = 0; i < arraysize(test_data); ++i) { |
585 data.SetURL(test_data[i].url); | 585 data.SetURL(test_data[i].url); |
586 TemplateURL url(data); | 586 TemplateURL url(data); |
587 EXPECT_TRUE(url.url_ref().IsValid(search_terms_data_)); | 587 EXPECT_TRUE(url.url_ref().IsValid(search_terms_data_)); |
588 ASSERT_TRUE(url.url_ref().SupportsReplacement(search_terms_data_)); | 588 ASSERT_TRUE(url.url_ref().SupportsReplacement(search_terms_data_)); |
589 TemplateURLRef::SearchTermsArgs search_terms_args(test_data[i].search_term); | 589 TemplateURLRef::SearchTermsArgs search_terms_args(test_data[i].search_term); |
590 search_terms_args.input_type = test_data[i].input_type; | 590 search_terms_args.input_type = test_data[i].input_type; |
591 GURL result(url.url_ref().ReplaceSearchTerms(search_terms_args, | 591 GURL result(url.url_ref().ReplaceSearchTerms(search_terms_args, |
592 search_terms_data_)); | 592 search_terms_data_)); |
593 ASSERT_TRUE(result.is_valid()); | 593 ASSERT_TRUE(result.is_valid()); |
594 EXPECT_EQ(test_data[i].expected_result, result.spec()); | 594 EXPECT_EQ(test_data[i].expected_result, result.spec()); |
(...skipping 16 matching lines...) Expand all Loading... |
611 "", | 611 "", |
612 "{google:baseURL}?{searchTerms}&{google:currentPageUrl}", | 612 "{google:baseURL}?{searchTerms}&{google:currentPageUrl}", |
613 "http://www.google.com/?foo&" }, | 613 "http://www.google.com/?foo&" }, |
614 { ASCIIToUTF16("foo"), | 614 { ASCIIToUTF16("foo"), |
615 "http://g.com/+-/*&=", | 615 "http://g.com/+-/*&=", |
616 "{google:baseURL}?{searchTerms}&{google:currentPageUrl}", | 616 "{google:baseURL}?{searchTerms}&{google:currentPageUrl}", |
617 "http://www.google.com/?foo&url=http%3A%2F%2Fg.com%2F%2B-%2F*%26%3D&" }, | 617 "http://www.google.com/?foo&url=http%3A%2F%2Fg.com%2F%2B-%2F*%26%3D&" }, |
618 }; | 618 }; |
619 TemplateURLData data; | 619 TemplateURLData data; |
620 data.input_encodings.push_back("UTF-8"); | 620 data.input_encodings.push_back("UTF-8"); |
621 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_data); ++i) { | 621 for (size_t i = 0; i < arraysize(test_data); ++i) { |
622 data.SetURL(test_data[i].url); | 622 data.SetURL(test_data[i].url); |
623 TemplateURL url(data); | 623 TemplateURL url(data); |
624 EXPECT_TRUE(url.url_ref().IsValid(search_terms_data_)); | 624 EXPECT_TRUE(url.url_ref().IsValid(search_terms_data_)); |
625 ASSERT_TRUE(url.url_ref().SupportsReplacement(search_terms_data_)); | 625 ASSERT_TRUE(url.url_ref().SupportsReplacement(search_terms_data_)); |
626 TemplateURLRef::SearchTermsArgs search_terms_args(test_data[i].search_term); | 626 TemplateURLRef::SearchTermsArgs search_terms_args(test_data[i].search_term); |
627 search_terms_args.current_page_url = test_data[i].current_page_url; | 627 search_terms_args.current_page_url = test_data[i].current_page_url; |
628 GURL result(url.url_ref().ReplaceSearchTerms(search_terms_args, | 628 GURL result(url.url_ref().ReplaceSearchTerms(search_terms_args, |
629 search_terms_data_)); | 629 search_terms_data_)); |
630 ASSERT_TRUE(result.is_valid()); | 630 ASSERT_TRUE(result.is_valid()); |
631 EXPECT_EQ(test_data[i].expected_result, result.spec()); | 631 EXPECT_EQ(test_data[i].expected_result, result.spec()); |
(...skipping 16 matching lines...) Expand all Loading... |
648 42, | 648 42, |
649 "http://bar/foo?es_sm=42&q=foobar" }, | 649 "http://bar/foo?es_sm=42&q=foobar" }, |
650 }; | 650 }; |
651 TemplateURLData data; | 651 TemplateURLData data; |
652 data.SetURL("http://bar/foo?{google:omniboxStartMarginParameter}" | 652 data.SetURL("http://bar/foo?{google:omniboxStartMarginParameter}" |
653 "q={searchTerms}"); | 653 "q={searchTerms}"); |
654 data.input_encodings.push_back("UTF-8"); | 654 data.input_encodings.push_back("UTF-8"); |
655 TemplateURL url(data); | 655 TemplateURL url(data); |
656 EXPECT_TRUE(url.url_ref().IsValid(search_terms_data_)); | 656 EXPECT_TRUE(url.url_ref().IsValid(search_terms_data_)); |
657 ASSERT_TRUE(url.url_ref().SupportsReplacement(search_terms_data_)); | 657 ASSERT_TRUE(url.url_ref().SupportsReplacement(search_terms_data_)); |
658 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_data); ++i) { | 658 for (size_t i = 0; i < arraysize(test_data); ++i) { |
659 TemplateURLRef::SearchTermsArgs search_terms_args(ASCIIToUTF16("foobar")); | 659 TemplateURLRef::SearchTermsArgs search_terms_args(ASCIIToUTF16("foobar")); |
660 search_terms_args.enable_omnibox_start_margin = | 660 search_terms_args.enable_omnibox_start_margin = |
661 test_data[i].enable_omnibox_start_margin; | 661 test_data[i].enable_omnibox_start_margin; |
662 search_terms_data_.set_omnibox_start_margin( | 662 search_terms_data_.set_omnibox_start_margin( |
663 test_data[i].omnibox_start_margin); | 663 test_data[i].omnibox_start_margin); |
664 GURL result(url.url_ref().ReplaceSearchTerms(search_terms_args, | 664 GURL result(url.url_ref().ReplaceSearchTerms(search_terms_args, |
665 search_terms_data_)); | 665 search_terms_data_)); |
666 ASSERT_TRUE(result.is_valid()); | 666 ASSERT_TRUE(result.is_valid()); |
667 EXPECT_EQ(test_data[i].expected_result, result.spec()); | 667 EXPECT_EQ(test_data[i].expected_result, result.spec()); |
668 } | 668 } |
(...skipping 16 matching lines...) Expand all Loading... |
685 { 0, base::string16(), "http://bar/foo?oq=&q=foobar" }, | 685 { 0, base::string16(), "http://bar/foo?oq=&q=foobar" }, |
686 { 1, ASCIIToUTF16("foo"), "http://bar/foo?oq=foo&q=foobar" }, | 686 { 1, ASCIIToUTF16("foo"), "http://bar/foo?oq=foo&q=foobar" }, |
687 }; | 687 }; |
688 TemplateURLData data; | 688 TemplateURLData data; |
689 data.SetURL("http://bar/foo?{google:originalQueryForSuggestion}" | 689 data.SetURL("http://bar/foo?{google:originalQueryForSuggestion}" |
690 "q={searchTerms}"); | 690 "q={searchTerms}"); |
691 data.input_encodings.push_back("UTF-8"); | 691 data.input_encodings.push_back("UTF-8"); |
692 TemplateURL url(data); | 692 TemplateURL url(data); |
693 EXPECT_TRUE(url.url_ref().IsValid(search_terms_data_)); | 693 EXPECT_TRUE(url.url_ref().IsValid(search_terms_data_)); |
694 ASSERT_TRUE(url.url_ref().SupportsReplacement(search_terms_data_)); | 694 ASSERT_TRUE(url.url_ref().SupportsReplacement(search_terms_data_)); |
695 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_data); ++i) { | 695 for (size_t i = 0; i < arraysize(test_data); ++i) { |
696 TemplateURLRef::SearchTermsArgs search_terms_args( | 696 TemplateURLRef::SearchTermsArgs search_terms_args( |
697 ASCIIToUTF16("foobar")); | 697 ASCIIToUTF16("foobar")); |
698 search_terms_args.accepted_suggestion = test_data[i].accepted_suggestion; | 698 search_terms_args.accepted_suggestion = test_data[i].accepted_suggestion; |
699 search_terms_args.original_query = | 699 search_terms_args.original_query = |
700 test_data[i].original_query_for_suggestion; | 700 test_data[i].original_query_for_suggestion; |
701 GURL result(url.url_ref().ReplaceSearchTerms(search_terms_args, | 701 GURL result(url.url_ref().ReplaceSearchTerms(search_terms_args, |
702 search_terms_data_)); | 702 search_terms_data_)); |
703 ASSERT_TRUE(result.is_valid()); | 703 ASSERT_TRUE(result.is_valid()); |
704 EXPECT_EQ(test_data[i].expected_result, result.spec()); | 704 EXPECT_EQ(test_data[i].expected_result, result.spec()); |
705 } | 705 } |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
757 // Term in the host shouldn't match. | 757 // Term in the host shouldn't match. |
758 { "http://{searchTerms}", "", "", ""}, | 758 { "http://{searchTerms}", "", "", ""}, |
759 | 759 |
760 { "http://blah/?q={searchTerms}", "blah", "/", "q"}, | 760 { "http://blah/?q={searchTerms}", "blah", "/", "q"}, |
761 { "https://blah/?q={searchTerms}", "blah", "/", "q"}, | 761 { "https://blah/?q={searchTerms}", "blah", "/", "q"}, |
762 | 762 |
763 // Single term with extra chars in value should match. | 763 // Single term with extra chars in value should match. |
764 { "http://blah/?q=stock:{searchTerms}", "blah", "/", "q"}, | 764 { "http://blah/?q=stock:{searchTerms}", "blah", "/", "q"}, |
765 }; | 765 }; |
766 | 766 |
767 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_data); ++i) { | 767 for (size_t i = 0; i < arraysize(test_data); ++i) { |
768 TemplateURLData data; | 768 TemplateURLData data; |
769 data.SetURL(test_data[i].url); | 769 data.SetURL(test_data[i].url); |
770 TemplateURL url(data); | 770 TemplateURL url(data); |
771 EXPECT_EQ(test_data[i].host, url.url_ref().GetHost(search_terms_data_)); | 771 EXPECT_EQ(test_data[i].host, url.url_ref().GetHost(search_terms_data_)); |
772 EXPECT_EQ(test_data[i].path, url.url_ref().GetPath(search_terms_data_)); | 772 EXPECT_EQ(test_data[i].path, url.url_ref().GetPath(search_terms_data_)); |
773 EXPECT_EQ(test_data[i].search_term_key, | 773 EXPECT_EQ(test_data[i].search_term_key, |
774 url.url_ref().GetSearchTermKey(search_terms_data_)); | 774 url.url_ref().GetSearchTermKey(search_terms_data_)); |
775 } | 775 } |
776 } | 776 } |
777 | 777 |
778 TEST_F(TemplateURLTest, GoogleBaseSuggestURL) { | 778 TEST_F(TemplateURLTest, GoogleBaseSuggestURL) { |
779 static const struct { | 779 static const struct { |
780 const char* const base_url; | 780 const char* const base_url; |
781 const char* const base_suggest_url; | 781 const char* const base_suggest_url; |
782 } data[] = { | 782 } data[] = { |
783 { "http://google.com/", "http://google.com/complete/", }, | 783 { "http://google.com/", "http://google.com/complete/", }, |
784 { "http://www.google.com/", "http://www.google.com/complete/", }, | 784 { "http://www.google.com/", "http://www.google.com/complete/", }, |
785 { "http://www.google.co.uk/", "http://www.google.co.uk/complete/", }, | 785 { "http://www.google.co.uk/", "http://www.google.co.uk/complete/", }, |
786 { "http://www.google.com.by/", "http://www.google.com.by/complete/", }, | 786 { "http://www.google.com.by/", "http://www.google.com.by/complete/", }, |
787 { "http://google.com/intl/xx/", "http://google.com/complete/", }, | 787 { "http://google.com/intl/xx/", "http://google.com/complete/", }, |
788 }; | 788 }; |
789 | 789 |
790 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(data); ++i) | 790 for (size_t i = 0; i < arraysize(data); ++i) |
791 CheckSuggestBaseURL(data[i].base_url, data[i].base_suggest_url); | 791 CheckSuggestBaseURL(data[i].base_url, data[i].base_suggest_url); |
792 } | 792 } |
793 | 793 |
794 TEST_F(TemplateURLTest, ParseParameterKnown) { | 794 TEST_F(TemplateURLTest, ParseParameterKnown) { |
795 std::string parsed_url("{searchTerms}"); | 795 std::string parsed_url("{searchTerms}"); |
796 TemplateURLData data; | 796 TemplateURLData data; |
797 data.SetURL(parsed_url); | 797 data.SetURL(parsed_url); |
798 TemplateURL url(data); | 798 TemplateURL url(data); |
799 TemplateURLRef::Replacements replacements; | 799 TemplateURLRef::Replacements replacements; |
800 EXPECT_TRUE(url.url_ref().ParseParameter(0, 12, &parsed_url, &replacements)); | 800 EXPECT_TRUE(url.url_ref().ParseParameter(0, 12, &parsed_url, &replacements)); |
(...skipping 533 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1334 { "http://bar/#output=search&q=foo&oq=foo", true, }, | 1334 { "http://bar/#output=search&q=foo&oq=foo", true, }, |
1335 { "http://bar/webhp#q=foo&oq=foo", true, }, | 1335 { "http://bar/webhp#q=foo&oq=foo", true, }, |
1336 { "http://bar/#q=foo&oq=foo", true, }, | 1336 { "http://bar/#q=foo&oq=foo", true, }, |
1337 { "http://bar/?ext=foo&q=foo#ref=bar", true, }, | 1337 { "http://bar/?ext=foo&q=foo#ref=bar", true, }, |
1338 { "http://bar/url?url=http://www.foo.com/&q=foo#ref=bar", false, }, | 1338 { "http://bar/url?url=http://www.foo.com/&q=foo#ref=bar", false, }, |
1339 { "http://bar/", false, }, | 1339 { "http://bar/", false, }, |
1340 { "http://foo/", false, }, | 1340 { "http://foo/", false, }, |
1341 { "http://bar/newtab", false, }, | 1341 { "http://bar/newtab", false, }, |
1342 }; | 1342 }; |
1343 | 1343 |
1344 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(url_data); ++i) { | 1344 for (size_t i = 0; i < arraysize(url_data); ++i) { |
1345 EXPECT_EQ(url_data[i].result, | 1345 EXPECT_EQ(url_data[i].result, |
1346 search_provider.IsSearchURL(GURL(url_data[i].url), | 1346 search_provider.IsSearchURL(GURL(url_data[i].url), |
1347 search_terms_data_)); | 1347 search_terms_data_)); |
1348 } | 1348 } |
1349 } | 1349 } |
1350 | 1350 |
1351 TEST_F(TemplateURLTest, ReflectsBookmarkBarPinned) { | 1351 TEST_F(TemplateURLTest, ReflectsBookmarkBarPinned) { |
1352 TemplateURLData data; | 1352 TemplateURLData data; |
1353 data.input_encodings.push_back("UTF-8"); | 1353 data.input_encodings.push_back("UTF-8"); |
1354 data.SetURL("{google:baseURL}?{google:bookmarkBarPinned}q={searchTerms}"); | 1354 data.SetURL("{google:baseURL}?{google:bookmarkBarPinned}q={searchTerms}"); |
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1464 const char* test_name; | 1464 const char* test_name; |
1465 const char* url; | 1465 const char* url; |
1466 const char* expected; | 1466 const char* expected; |
1467 } generate_url_cases[] = { | 1467 } generate_url_cases[] = { |
1468 { "invalid URL", "foo{searchTerms}", "" }, | 1468 { "invalid URL", "foo{searchTerms}", "" }, |
1469 { "URL with no replacements", "http://foo/", "http://foo/" }, | 1469 { "URL with no replacements", "http://foo/", "http://foo/" }, |
1470 { "basic functionality", "http://foo/{searchTerms}", | 1470 { "basic functionality", "http://foo/{searchTerms}", |
1471 "http://foo/blah.blah.blah.blah.blah" } | 1471 "http://foo/blah.blah.blah.blah.blah" } |
1472 }; | 1472 }; |
1473 | 1473 |
1474 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(generate_url_cases); ++i) { | 1474 for (size_t i = 0; i < arraysize(generate_url_cases); ++i) { |
1475 TemplateURLData data; | 1475 TemplateURLData data; |
1476 data.SetURL(generate_url_cases[i].url); | 1476 data.SetURL(generate_url_cases[i].url); |
1477 TemplateURL t_url(data); | 1477 TemplateURL t_url(data); |
1478 EXPECT_EQ(t_url.GenerateSearchURL(search_terms_data_).spec(), | 1478 EXPECT_EQ(t_url.GenerateSearchURL(search_terms_data_).spec(), |
1479 generate_url_cases[i].expected) | 1479 generate_url_cases[i].expected) |
1480 << generate_url_cases[i].test_name << " failed."; | 1480 << generate_url_cases[i].test_name << " failed."; |
1481 } | 1481 } |
1482 } | 1482 } |
1483 | 1483 |
1484 TEST_F(TemplateURLTest, PrefetchQueryParameters) { | 1484 TEST_F(TemplateURLTest, PrefetchQueryParameters) { |
(...skipping 10 matching lines...) Expand all Loading... |
1495 EXPECT_EQ("http://bar/search?q=foo&pfq=full%20query%20text&qha=2338&xssi=t", | 1495 EXPECT_EQ("http://bar/search?q=foo&pfq=full%20query%20text&qha=2338&xssi=t", |
1496 result); | 1496 result); |
1497 | 1497 |
1498 TemplateURL url2(data); | 1498 TemplateURL url2(data); |
1499 search_terms_args.prefetch_query.clear(); | 1499 search_terms_args.prefetch_query.clear(); |
1500 search_terms_args.prefetch_query_type.clear(); | 1500 search_terms_args.prefetch_query_type.clear(); |
1501 result = | 1501 result = |
1502 url2.url_ref().ReplaceSearchTerms(search_terms_args, search_terms_data_); | 1502 url2.url_ref().ReplaceSearchTerms(search_terms_args, search_terms_data_); |
1503 EXPECT_EQ("http://bar/search?q=foo&xssi=t", result); | 1503 EXPECT_EQ("http://bar/search?q=foo&xssi=t", result); |
1504 } | 1504 } |
OLD | NEW |