| 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 |