Chromium Code Reviews| 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/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 "chrome/browser/autocomplete/autocomplete_input.h" | |
| 11 #include "chrome/browser/browser_process.h" | |
| 12 #include "chrome/browser/rlz/rlz.h" | |
| 13 #include "chrome/browser/search_engines/template_url.h" | 10 #include "chrome/browser/search_engines/template_url.h" |
| 14 #include "chrome/browser/search_engines/ui_thread_search_terms_data.h" | |
| 15 #include "chrome/common/chrome_switches.h" | 11 #include "chrome/common/chrome_switches.h" |
| 16 #include "components/metrics/proto/omnibox_input_type.pb.h" | 12 #include "components/metrics/proto/omnibox_input_type.pb.h" |
| 13 #include "components/search_engines/search_terms_data.h" | |
| 17 #include "testing/gtest/include/gtest/gtest.h" | 14 #include "testing/gtest/include/gtest/gtest.h" |
| 18 | 15 |
| 19 #if defined(ENABLE_RLZ) | |
| 20 #include "chrome/browser/google/google_brand.h" | |
| 21 #endif | |
| 22 | |
| 23 #if defined(OS_ANDROID) | |
| 24 #include "chrome/browser/search_engines/ui_thread_search_terms_data_android.h" | |
| 25 #endif | |
| 26 | |
| 27 using base::ASCIIToUTF16; | 16 using base::ASCIIToUTF16; |
| 28 | 17 |
| 29 // TestSearchTermsData -------------------------------------------------------- | 18 // TestSearchTermsData -------------------------------------------------------- |
| 30 | 19 |
| 31 // Simple implementation of SearchTermsData. | 20 // Simple implementation of SearchTermsData. |
| 32 class TestSearchTermsData : public SearchTermsData { | 21 class TestSearchTermsData : public SearchTermsData { |
| 33 public: | 22 public: |
| 34 explicit TestSearchTermsData(const std::string& google_base_url); | 23 explicit TestSearchTermsData(const std::string& google_base_url); |
| 35 | 24 |
| 36 virtual std::string GoogleBaseURLValue() const OVERRIDE; | 25 virtual std::string GoogleBaseURLValue() const OVERRIDE; |
| 26 virtual base::string16 GetRlzParameterValue( | |
| 27 bool from_app_list) const OVERRIDE; | |
| 28 virtual std::string GetSearchClient() const OVERRIDE; | |
| 29 | |
| 30 void set_google_base_url(const std::string& google_base_url) { | |
| 31 google_base_url_ = google_base_url; | |
| 32 } | |
| 33 void set_search_client(const std::string& search_client) { | |
| 34 search_client_ = search_client; | |
| 35 } | |
| 37 | 36 |
| 38 private: | 37 private: |
| 39 std::string google_base_url_; | 38 std::string google_base_url_; |
| 39 std::string search_client_; | |
| 40 | 40 |
| 41 DISALLOW_COPY_AND_ASSIGN(TestSearchTermsData); | 41 DISALLOW_COPY_AND_ASSIGN(TestSearchTermsData); |
| 42 }; | 42 }; |
| 43 | 43 |
| 44 TestSearchTermsData::TestSearchTermsData(const std::string& google_base_url) | 44 TestSearchTermsData::TestSearchTermsData(const std::string& google_base_url) |
| 45 : google_base_url_(google_base_url) { | 45 : google_base_url_(google_base_url) { |
| 46 } | 46 } |
| 47 | 47 |
| 48 std::string TestSearchTermsData::GoogleBaseURLValue() const { | 48 std::string TestSearchTermsData::GoogleBaseURLValue() const { |
| 49 return google_base_url_; | 49 return google_base_url_; |
| 50 } | 50 } |
| 51 | 51 |
| 52 base::string16 TestSearchTermsData::GetRlzParameterValue( | |
| 53 bool from_app_list) const { | |
| 54 return ASCIIToUTF16( | |
| 55 from_app_list ? "rlz_parameter_from_app_list" : "rlz_parameter"); | |
| 56 } | |
| 57 | |
| 58 std::string TestSearchTermsData::GetSearchClient() const { | |
| 59 return search_client_; | |
| 60 } | |
| 61 | |
| 52 // TemplateURLTest ------------------------------------------------------------ | 62 // TemplateURLTest ------------------------------------------------------------ |
| 53 | 63 |
| 54 class TemplateURLTest : public testing::Test { | 64 class TemplateURLTest : public testing::Test { |
| 55 public: | 65 public: |
| 56 TemplateURLTest() : search_terms_data_(NULL) {} | 66 TemplateURLTest() : search_terms_data_("http://www.google.com/") {} |
| 57 void CheckSuggestBaseURL(const std::string& base_url, | 67 void CheckSuggestBaseURL(const std::string& base_url, |
| 58 const std::string& base_suggest_url) const; | 68 const std::string& base_suggest_url) const; |
| 59 | 69 |
| 60 UIThreadSearchTermsData search_terms_data_; | 70 TestSearchTermsData search_terms_data_; |
| 61 }; | 71 }; |
| 62 | 72 |
| 63 void TemplateURLTest::CheckSuggestBaseURL( | 73 void TemplateURLTest::CheckSuggestBaseURL( |
| 64 const std::string& base_url, | 74 const std::string& base_url, |
| 65 const std::string& base_suggest_url) const { | 75 const std::string& base_suggest_url) const { |
| 66 TestSearchTermsData search_terms_data(base_url); | 76 TestSearchTermsData search_terms_data(base_url); |
| 67 EXPECT_EQ(base_suggest_url, search_terms_data.GoogleBaseSuggestURLValue()); | 77 EXPECT_EQ(base_suggest_url, search_terms_data.GoogleBaseSuggestURLValue()); |
| 68 } | 78 } |
| 69 | 79 |
| 70 | 80 |
| (...skipping 371 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 442 }; | 452 }; |
| 443 TemplateURLData data; | 453 TemplateURLData data; |
| 444 data.input_encodings.push_back("UTF-8"); | 454 data.input_encodings.push_back("UTF-8"); |
| 445 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_data); ++i) { | 455 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_data); ++i) { |
| 446 data.SetURL(test_data[i].url); | 456 data.SetURL(test_data[i].url); |
| 447 TemplateURL url(data); | 457 TemplateURL url(data); |
| 448 EXPECT_TRUE(url.url_ref().IsValid(search_terms_data_)); | 458 EXPECT_TRUE(url.url_ref().IsValid(search_terms_data_)); |
| 449 ASSERT_TRUE(url.url_ref().SupportsReplacement(search_terms_data_)); | 459 ASSERT_TRUE(url.url_ref().SupportsReplacement(search_terms_data_)); |
| 450 std::string expected_result = test_data[i].expected_result; | 460 std::string expected_result = test_data[i].expected_result; |
| 451 ReplaceSubstringsAfterOffset(&expected_result, 0, "{language}", | 461 ReplaceSubstringsAfterOffset(&expected_result, 0, "{language}", |
| 452 g_browser_process->GetApplicationLocale()); | 462 search_terms_data_.GetApplicationLocale()); |
| 453 GURL result(url.url_ref().ReplaceSearchTerms( | 463 GURL result(url.url_ref().ReplaceSearchTerms( |
| 454 TemplateURLRef::SearchTermsArgs(ASCIIToUTF16("X")), | 464 TemplateURLRef::SearchTermsArgs(ASCIIToUTF16("X")), |
| 455 search_terms_data_)); | 465 search_terms_data_)); |
| 456 ASSERT_TRUE(result.is_valid()); | 466 ASSERT_TRUE(result.is_valid()); |
| 457 EXPECT_EQ(expected_result, result.spec()); | 467 EXPECT_EQ(expected_result, result.spec()); |
| 458 } | 468 } |
| 459 } | 469 } |
| 460 | 470 |
| 461 | 471 |
| 462 // Tests replacing search terms in various encodings and making sure the | 472 // Tests replacing search terms in various encodings and making sure the |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 520 "https://foo/?fooaqs=chrome.0.0l6&" }, | 530 "https://foo/?fooaqs=chrome.0.0l6&" }, |
| 521 // HTTPS available, however AQS is empty. | 531 // HTTPS available, however AQS is empty. |
| 522 { ASCIIToUTF16("foo"), | 532 { ASCIIToUTF16("foo"), |
| 523 "", | 533 "", |
| 524 "https://foo/", | 534 "https://foo/", |
| 525 "{google:baseURL}?{searchTerms}{google:assistedQueryStats}", | 535 "{google:baseURL}?{searchTerms}{google:assistedQueryStats}", |
| 526 "https://foo/?foo" }, | 536 "https://foo/?foo" }, |
| 527 // No {google:baseURL} and protocol is HTTP, we must not substitute AQS. | 537 // No {google:baseURL} and protocol is HTTP, we must not substitute AQS. |
| 528 { ASCIIToUTF16("foo"), | 538 { ASCIIToUTF16("foo"), |
| 529 "chrome.0.0l6", | 539 "chrome.0.0l6", |
| 530 "", | 540 "http://www.google.com", |
| 531 "http://foo?{searchTerms}{google:assistedQueryStats}", | 541 "http://foo?{searchTerms}{google:assistedQueryStats}", |
| 532 "http://foo/?foo" }, | 542 "http://foo/?foo" }, |
| 533 // A non-Google search provider with HTTPS should allow AQS. | 543 // A non-Google search provider with HTTPS should allow AQS. |
| 534 { ASCIIToUTF16("foo"), | 544 { ASCIIToUTF16("foo"), |
| 535 "chrome.0.0l6", | 545 "chrome.0.0l6", |
| 536 "", | 546 "https://www.google.com", |
| 537 "https://foo?{searchTerms}{google:assistedQueryStats}", | 547 "https://foo?{searchTerms}{google:assistedQueryStats}", |
| 538 "https://foo/?fooaqs=chrome.0.0l6&" }, | 548 "https://foo/?fooaqs=chrome.0.0l6&" }, |
| 539 }; | 549 }; |
| 540 TemplateURLData data; | 550 TemplateURLData data; |
| 541 data.input_encodings.push_back("UTF-8"); | 551 data.input_encodings.push_back("UTF-8"); |
| 542 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_data); ++i) { | 552 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_data); ++i) { |
| 543 data.SetURL(test_data[i].url); | 553 data.SetURL(test_data[i].url); |
| 544 TemplateURL url(data); | 554 TemplateURL url(data); |
| 545 EXPECT_TRUE(url.url_ref().IsValid(search_terms_data_)); | 555 EXPECT_TRUE(url.url_ref().IsValid(search_terms_data_)); |
| 546 ASSERT_TRUE(url.url_ref().SupportsReplacement(search_terms_data_)); | 556 ASSERT_TRUE(url.url_ref().SupportsReplacement(search_terms_data_)); |
| 547 TemplateURLRef::SearchTermsArgs search_terms_args(test_data[i].search_term); | 557 TemplateURLRef::SearchTermsArgs search_terms_args(test_data[i].search_term); |
| 548 search_terms_args.assisted_query_stats = test_data[i].aqs; | 558 search_terms_args.assisted_query_stats = test_data[i].aqs; |
| 549 UIThreadSearchTermsData::SetGoogleBaseURL(test_data[i].base_url); | 559 search_terms_data_.set_google_base_url(test_data[i].base_url); |
| 550 GURL result(url.url_ref().ReplaceSearchTerms(search_terms_args, | 560 GURL result(url.url_ref().ReplaceSearchTerms(search_terms_args, |
| 551 search_terms_data_)); | 561 search_terms_data_)); |
| 552 ASSERT_TRUE(result.is_valid()); | 562 ASSERT_TRUE(result.is_valid()); |
| 553 EXPECT_EQ(test_data[i].expected_result, result.spec()); | 563 EXPECT_EQ(test_data[i].expected_result, result.spec()); |
| 554 } | 564 } |
| 555 } | 565 } |
| 556 | 566 |
| 557 // Tests replacing cursor position. | 567 // Tests replacing cursor position. |
| 558 TEST_F(TemplateURLTest, ReplaceCursorPosition) { | 568 TEST_F(TemplateURLTest, ReplaceCursorPosition) { |
| 559 struct TestData { | 569 struct TestData { |
| 560 const base::string16 search_term; | 570 const base::string16 search_term; |
| 561 size_t cursor_position; | 571 size_t cursor_position; |
| 562 const std::string url; | 572 const std::string url; |
| 563 const std::string expected_result; | 573 const std::string expected_result; |
| 564 } test_data[] = { | 574 } test_data[] = { |
| 565 { ASCIIToUTF16("foo"), | 575 { ASCIIToUTF16("foo"), |
| 566 base::string16::npos, | 576 base::string16::npos, |
| 567 "{google:baseURL}?{searchTerms}&{google:cursorPosition}", | 577 "{google:baseURL}?{searchTerms}&{google:cursorPosition}", |
| 568 "http://www.google.com/?foo&" }, | 578 "http://www.google.com/?foo&" }, |
| 569 { ASCIIToUTF16("foo"), | 579 { ASCIIToUTF16("foo"), |
| 570 2, | 580 2, |
| 571 "{google:baseURL}?{searchTerms}&{google:cursorPosition}", | 581 "{google:baseURL}?{searchTerms}&{google:cursorPosition}", |
| 572 "http://www.google.com/?foo&cp=2&" }, | 582 "http://www.google.com/?foo&cp=2&" }, |
| 573 { ASCIIToUTF16("foo"), | 583 { ASCIIToUTF16("foo"), |
| 574 15, | 584 15, |
| 575 "{google:baseURL}?{searchTerms}&{google:cursorPosition}", | 585 "{google:baseURL}?{searchTerms}&{google:cursorPosition}", |
| 576 "http://www.google.com/?foo&cp=15&" }, | 586 "http://www.google.com/?foo&cp=15&" }, |
| 577 }; | 587 }; |
| 578 UIThreadSearchTermsData::SetGoogleBaseURL("http://www.google.com/"); | |
| 579 TemplateURLData data; | 588 TemplateURLData data; |
| 580 data.input_encodings.push_back("UTF-8"); | 589 data.input_encodings.push_back("UTF-8"); |
| 581 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_data); ++i) { | 590 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_data); ++i) { |
| 582 data.SetURL(test_data[i].url); | 591 data.SetURL(test_data[i].url); |
| 583 TemplateURL url(data); | 592 TemplateURL url(data); |
| 584 EXPECT_TRUE(url.url_ref().IsValid(search_terms_data_)); | 593 EXPECT_TRUE(url.url_ref().IsValid(search_terms_data_)); |
| 585 ASSERT_TRUE(url.url_ref().SupportsReplacement(search_terms_data_)); | 594 ASSERT_TRUE(url.url_ref().SupportsReplacement(search_terms_data_)); |
| 586 TemplateURLRef::SearchTermsArgs search_terms_args(test_data[i].search_term); | 595 TemplateURLRef::SearchTermsArgs search_terms_args(test_data[i].search_term); |
| 587 search_terms_args.cursor_position = test_data[i].cursor_position; | 596 search_terms_args.cursor_position = test_data[i].cursor_position; |
| 588 GURL result(url.url_ref().ReplaceSearchTerms(search_terms_args, | 597 GURL result(url.url_ref().ReplaceSearchTerms(search_terms_args, |
| (...skipping 17 matching lines...) Expand all Loading... | |
| 606 "http://www.google.com/?foo&oit=1&" }, | 615 "http://www.google.com/?foo&oit=1&" }, |
| 607 { ASCIIToUTF16("foo"), | 616 { ASCIIToUTF16("foo"), |
| 608 metrics::OmniboxInputType::URL, | 617 metrics::OmniboxInputType::URL, |
| 609 "{google:baseURL}?{searchTerms}&{google:inputType}", | 618 "{google:baseURL}?{searchTerms}&{google:inputType}", |
| 610 "http://www.google.com/?foo&oit=3&" }, | 619 "http://www.google.com/?foo&oit=3&" }, |
| 611 { ASCIIToUTF16("foo"), | 620 { ASCIIToUTF16("foo"), |
| 612 metrics::OmniboxInputType::FORCED_QUERY, | 621 metrics::OmniboxInputType::FORCED_QUERY, |
| 613 "{google:baseURL}?{searchTerms}&{google:inputType}", | 622 "{google:baseURL}?{searchTerms}&{google:inputType}", |
| 614 "http://www.google.com/?foo&oit=5&" }, | 623 "http://www.google.com/?foo&oit=5&" }, |
| 615 }; | 624 }; |
| 616 UIThreadSearchTermsData::SetGoogleBaseURL("http://www.google.com/"); | |
| 617 TemplateURLData data; | 625 TemplateURLData data; |
| 618 data.input_encodings.push_back("UTF-8"); | 626 data.input_encodings.push_back("UTF-8"); |
| 619 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_data); ++i) { | 627 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_data); ++i) { |
| 620 data.SetURL(test_data[i].url); | 628 data.SetURL(test_data[i].url); |
| 621 TemplateURL url(data); | 629 TemplateURL url(data); |
| 622 EXPECT_TRUE(url.url_ref().IsValid(search_terms_data_)); | 630 EXPECT_TRUE(url.url_ref().IsValid(search_terms_data_)); |
| 623 ASSERT_TRUE(url.url_ref().SupportsReplacement(search_terms_data_)); | 631 ASSERT_TRUE(url.url_ref().SupportsReplacement(search_terms_data_)); |
| 624 TemplateURLRef::SearchTermsArgs search_terms_args(test_data[i].search_term); | 632 TemplateURLRef::SearchTermsArgs search_terms_args(test_data[i].search_term); |
| 625 search_terms_args.input_type = test_data[i].input_type; | 633 search_terms_args.input_type = test_data[i].input_type; |
| 626 GURL result(url.url_ref().ReplaceSearchTerms(search_terms_args, | 634 GURL result(url.url_ref().ReplaceSearchTerms(search_terms_args, |
| (...skipping 17 matching lines...) Expand all Loading... | |
| 644 "http://www.google.com/?foo&url=http%3A%2F%2Fwww.google.com%2F&" }, | 652 "http://www.google.com/?foo&url=http%3A%2F%2Fwww.google.com%2F&" }, |
| 645 { ASCIIToUTF16("foo"), | 653 { ASCIIToUTF16("foo"), |
| 646 "", | 654 "", |
| 647 "{google:baseURL}?{searchTerms}&{google:currentPageUrl}", | 655 "{google:baseURL}?{searchTerms}&{google:currentPageUrl}", |
| 648 "http://www.google.com/?foo&" }, | 656 "http://www.google.com/?foo&" }, |
| 649 { ASCIIToUTF16("foo"), | 657 { ASCIIToUTF16("foo"), |
| 650 "http://g.com/+-/*&=", | 658 "http://g.com/+-/*&=", |
| 651 "{google:baseURL}?{searchTerms}&{google:currentPageUrl}", | 659 "{google:baseURL}?{searchTerms}&{google:currentPageUrl}", |
| 652 "http://www.google.com/?foo&url=http%3A%2F%2Fg.com%2F%2B-%2F*%26%3D&" }, | 660 "http://www.google.com/?foo&url=http%3A%2F%2Fg.com%2F%2B-%2F*%26%3D&" }, |
| 653 }; | 661 }; |
| 654 UIThreadSearchTermsData::SetGoogleBaseURL("http://www.google.com/"); | |
| 655 TemplateURLData data; | 662 TemplateURLData data; |
| 656 data.input_encodings.push_back("UTF-8"); | 663 data.input_encodings.push_back("UTF-8"); |
| 657 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_data); ++i) { | 664 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_data); ++i) { |
| 658 data.SetURL(test_data[i].url); | 665 data.SetURL(test_data[i].url); |
| 659 TemplateURL url(data); | 666 TemplateURL url(data); |
| 660 EXPECT_TRUE(url.url_ref().IsValid(search_terms_data_)); | 667 EXPECT_TRUE(url.url_ref().IsValid(search_terms_data_)); |
| 661 ASSERT_TRUE(url.url_ref().SupportsReplacement(search_terms_data_)); | 668 ASSERT_TRUE(url.url_ref().SupportsReplacement(search_terms_data_)); |
| 662 TemplateURLRef::SearchTermsArgs search_terms_args(test_data[i].search_term); | 669 TemplateURLRef::SearchTermsArgs search_terms_args(test_data[i].search_term); |
| 663 search_terms_args.current_page_url = test_data[i].current_page_url; | 670 search_terms_args.current_page_url = test_data[i].current_page_url; |
| 664 GURL result(url.url_ref().ReplaceSearchTerms(search_terms_args, | 671 GURL result(url.url_ref().ReplaceSearchTerms(search_terms_args, |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 699 search_terms_args.original_query = | 706 search_terms_args.original_query = |
| 700 test_data[i].original_query_for_suggestion; | 707 test_data[i].original_query_for_suggestion; |
| 701 GURL result(url.url_ref().ReplaceSearchTerms(search_terms_args, | 708 GURL result(url.url_ref().ReplaceSearchTerms(search_terms_args, |
| 702 search_terms_data_)); | 709 search_terms_data_)); |
| 703 ASSERT_TRUE(result.is_valid()); | 710 ASSERT_TRUE(result.is_valid()); |
| 704 EXPECT_EQ(test_data[i].expected_result, result.spec()); | 711 EXPECT_EQ(test_data[i].expected_result, result.spec()); |
| 705 } | 712 } |
| 706 } | 713 } |
| 707 | 714 |
| 708 TEST_F(TemplateURLTest, RLZ) { | 715 TEST_F(TemplateURLTest, RLZ) { |
| 709 base::string16 rlz_string; | 716 base::string16 rlz_string = search_terms_data_.GetRlzParameterValue(false); |
|
Peter Kasting
2014/06/19 21:24:42
These next two functions no longer check that the
hashimoto
2014/06/19 21:43:50
IIUC the purpose of these tests are to verify that
Peter Kasting
2014/06/19 22:08:36
Right, I am concerned that the tests may be doing
hashimoto
2014/06/19 22:37:10
chrome/browser/rlz/rlz_unittest.cc is testing RLZT
| |
| 710 #if defined(ENABLE_RLZ) | |
| 711 std::string brand; | |
| 712 if (google_brand::GetBrand(&brand) && !brand.empty() && | |
| 713 !google_brand::IsOrganic(brand)) { | |
| 714 RLZTracker::GetAccessPointRlz(RLZTracker::ChromeOmnibox(), &rlz_string); | |
| 715 } | |
| 716 #elif defined(OS_ANDROID) | |
| 717 SearchTermsDataAndroid::rlz_parameter_value_.Get() = | |
| 718 ASCIIToUTF16("android_test"); | |
| 719 rlz_string = SearchTermsDataAndroid::rlz_parameter_value_.Get(); | |
| 720 #endif | |
| 721 | 717 |
| 722 TemplateURLData data; | 718 TemplateURLData data; |
| 723 data.SetURL("http://bar/?{google:RLZ}{searchTerms}"); | 719 data.SetURL("http://bar/?{google:RLZ}{searchTerms}"); |
| 724 TemplateURL url(data); | 720 TemplateURL url(data); |
| 725 EXPECT_TRUE(url.url_ref().IsValid(search_terms_data_)); | 721 EXPECT_TRUE(url.url_ref().IsValid(search_terms_data_)); |
| 726 ASSERT_TRUE(url.url_ref().SupportsReplacement(search_terms_data_)); | 722 ASSERT_TRUE(url.url_ref().SupportsReplacement(search_terms_data_)); |
| 727 GURL result(url.url_ref().ReplaceSearchTerms( | 723 GURL result(url.url_ref().ReplaceSearchTerms( |
| 728 TemplateURLRef::SearchTermsArgs(ASCIIToUTF16("x")), search_terms_data_)); | 724 TemplateURLRef::SearchTermsArgs(ASCIIToUTF16("x")), search_terms_data_)); |
| 729 ASSERT_TRUE(result.is_valid()); | 725 ASSERT_TRUE(result.is_valid()); |
| 730 std::string expected_url = "http://bar/?"; | 726 EXPECT_EQ("http://bar/?rlz=" + base::UTF16ToUTF8(rlz_string) + "&x", |
| 731 if (!rlz_string.empty()) | 727 result.spec()); |
| 732 expected_url += "rlz=" + base::UTF16ToUTF8(rlz_string) + "&"; | |
| 733 expected_url += "x"; | |
| 734 EXPECT_EQ(expected_url, result.spec()); | |
| 735 } | 728 } |
| 736 | 729 |
| 737 #if !defined(OS_ANDROID) && !defined(OS_IOS) | |
| 738 TEST_F(TemplateURLTest, RLZFromAppList) { | 730 TEST_F(TemplateURLTest, RLZFromAppList) { |
| 739 base::string16 rlz_string; | 731 base::string16 rlz_string = search_terms_data_.GetRlzParameterValue(true); |
| 740 #if defined(ENABLE_RLZ) | |
| 741 std::string brand; | |
| 742 if (google_brand::GetBrand(&brand) && !brand.empty() && | |
| 743 !google_brand::IsOrganic(brand)) { | |
| 744 RLZTracker::GetAccessPointRlz(RLZTracker::ChromeAppList(), &rlz_string); | |
| 745 } | |
| 746 #endif | |
| 747 | 732 |
| 748 TemplateURLData data; | 733 TemplateURLData data; |
| 749 data.SetURL("http://bar/?{google:RLZ}{searchTerms}"); | 734 data.SetURL("http://bar/?{google:RLZ}{searchTerms}"); |
| 750 TemplateURL url(data); | 735 TemplateURL url(data); |
| 751 EXPECT_TRUE(url.url_ref().IsValid(search_terms_data_)); | 736 EXPECT_TRUE(url.url_ref().IsValid(search_terms_data_)); |
| 752 ASSERT_TRUE(url.url_ref().SupportsReplacement(search_terms_data_)); | 737 ASSERT_TRUE(url.url_ref().SupportsReplacement(search_terms_data_)); |
| 753 TemplateURLRef::SearchTermsArgs args(ASCIIToUTF16("x")); | 738 TemplateURLRef::SearchTermsArgs args(ASCIIToUTF16("x")); |
| 754 args.from_app_list = true; | 739 args.from_app_list = true; |
| 755 GURL result(url.url_ref().ReplaceSearchTerms(args, search_terms_data_)); | 740 GURL result(url.url_ref().ReplaceSearchTerms(args, search_terms_data_)); |
| 756 ASSERT_TRUE(result.is_valid()); | 741 ASSERT_TRUE(result.is_valid()); |
| 757 std::string expected_url = "http://bar/?"; | 742 EXPECT_EQ("http://bar/?rlz=" + base::UTF16ToUTF8(rlz_string) + "&x", |
| 758 if (!rlz_string.empty()) | 743 result.spec()); |
| 759 expected_url += "rlz=" + base::UTF16ToUTF8(rlz_string) + "&"; | |
| 760 expected_url += "x"; | |
| 761 EXPECT_EQ(expected_url, result.spec()); | |
| 762 } | 744 } |
| 763 #endif | |
| 764 | 745 |
| 765 TEST_F(TemplateURLTest, HostAndSearchTermKey) { | 746 TEST_F(TemplateURLTest, HostAndSearchTermKey) { |
| 766 struct TestData { | 747 struct TestData { |
| 767 const std::string url; | 748 const std::string url; |
| 768 const std::string host; | 749 const std::string host; |
| 769 const std::string path; | 750 const std::string path; |
| 770 const std::string search_term_key; | 751 const std::string search_term_key; |
| 771 } test_data[] = { | 752 } test_data[] = { |
| 772 { "http://blah/?foo=bar&q={searchTerms}&b=x", "blah", "/", "q"}, | 753 { "http://blah/?foo=bar&q={searchTerms}&b=x", "blah", "/", "q"}, |
| 773 | 754 |
| (...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 908 bool valid = false; | 889 bool valid = false; |
| 909 EXPECT_EQ("{", | 890 EXPECT_EQ("{", |
| 910 url.url_ref().ParseURL("{{searchTerms}", &replacements, NULL, | 891 url.url_ref().ParseURL("{{searchTerms}", &replacements, NULL, |
| 911 &valid)); | 892 &valid)); |
| 912 ASSERT_EQ(1U, replacements.size()); | 893 ASSERT_EQ(1U, replacements.size()); |
| 913 EXPECT_EQ(1U, replacements[0].index); | 894 EXPECT_EQ(1U, replacements[0].index); |
| 914 EXPECT_EQ(TemplateURLRef::SEARCH_TERMS, replacements[0].type); | 895 EXPECT_EQ(TemplateURLRef::SEARCH_TERMS, replacements[0].type); |
| 915 EXPECT_TRUE(valid); | 896 EXPECT_TRUE(valid); |
| 916 } | 897 } |
| 917 | 898 |
| 918 #if defined(OS_ANDROID) | |
| 919 TEST_F(TemplateURLTest, SearchClient) { | 899 TEST_F(TemplateURLTest, SearchClient) { |
| 920 const std::string base_url_str("http://google.com/?"); | 900 const std::string base_url_str("http://google.com/?"); |
| 921 const std::string terms_str("{searchTerms}&{google:searchClient}"); | 901 const std::string terms_str("{searchTerms}&{google:searchClient}"); |
| 922 const std::string full_url_str = base_url_str + terms_str; | 902 const std::string full_url_str = base_url_str + terms_str; |
| 923 const base::string16 terms(ASCIIToUTF16(terms_str)); | 903 const base::string16 terms(ASCIIToUTF16(terms_str)); |
| 924 UIThreadSearchTermsData::SetGoogleBaseURL(base_url_str); | 904 search_terms_data_.set_google_base_url(base_url_str); |
| 925 | 905 |
| 926 TemplateURLData data; | 906 TemplateURLData data; |
| 927 data.SetURL(full_url_str); | 907 data.SetURL(full_url_str); |
| 928 TemplateURL url(data); | 908 TemplateURL url(data); |
| 929 EXPECT_TRUE(url.url_ref().IsValid(search_terms_data_)); | 909 EXPECT_TRUE(url.url_ref().IsValid(search_terms_data_)); |
| 930 ASSERT_TRUE(url.url_ref().SupportsReplacement(search_terms_data_)); | 910 ASSERT_TRUE(url.url_ref().SupportsReplacement(search_terms_data_)); |
| 931 TemplateURLRef::SearchTermsArgs search_terms_args(ASCIIToUTF16("foobar")); | 911 TemplateURLRef::SearchTermsArgs search_terms_args(ASCIIToUTF16("foobar")); |
| 932 | 912 |
| 933 // Check that the URL is correct when a client is not present. | 913 // Check that the URL is correct when a client is not present. |
| 934 GURL result(url.url_ref().ReplaceSearchTerms(search_terms_args, | 914 GURL result(url.url_ref().ReplaceSearchTerms(search_terms_args, |
| 935 search_terms_data_)); | 915 search_terms_data_)); |
| 936 ASSERT_TRUE(result.is_valid()); | 916 ASSERT_TRUE(result.is_valid()); |
| 937 EXPECT_EQ("http://google.com/?foobar&", result.spec()); | 917 EXPECT_EQ("http://google.com/?foobar&", result.spec()); |
| 938 | 918 |
| 939 // Check that the URL is correct when a client is present. | 919 // Check that the URL is correct when a client is present. |
| 940 SearchTermsDataAndroid::search_client_.Get() = "android_test"; | 920 search_terms_data_.set_search_client("search_client"); |
| 941 GURL result_2(url.url_ref().ReplaceSearchTerms(search_terms_args, | 921 GURL result_2(url.url_ref().ReplaceSearchTerms(search_terms_args, |
| 942 search_terms_data_)); | 922 search_terms_data_)); |
| 943 ASSERT_TRUE(result_2.is_valid()); | 923 ASSERT_TRUE(result_2.is_valid()); |
| 944 EXPECT_EQ("http://google.com/?foobar&client=android_test&", result_2.spec()); | 924 EXPECT_EQ("http://google.com/?foobar&client=search_client&", result_2.spec()); |
| 945 } | 925 } |
| 946 #endif | |
| 947 | 926 |
| 948 TEST_F(TemplateURLTest, GetURLNoInstantURL) { | 927 TEST_F(TemplateURLTest, GetURLNoInstantURL) { |
| 949 TemplateURLData data; | 928 TemplateURLData data; |
| 950 data.SetURL("http://google.com/?q={searchTerms}"); | 929 data.SetURL("http://google.com/?q={searchTerms}"); |
| 951 data.suggestions_url = "http://google.com/suggest?q={searchTerms}"; | 930 data.suggestions_url = "http://google.com/suggest?q={searchTerms}"; |
| 952 data.alternate_urls.push_back("http://google.com/alt?q={searchTerms}"); | 931 data.alternate_urls.push_back("http://google.com/alt?q={searchTerms}"); |
| 953 data.alternate_urls.push_back("{google:baseURL}/alt/#q={searchTerms}"); | 932 data.alternate_urls.push_back("{google:baseURL}/alt/#q={searchTerms}"); |
| 954 TemplateURL url(data); | 933 TemplateURL url(data); |
| 955 ASSERT_EQ(3U, url.URLCount()); | 934 ASSERT_EQ(3U, url.URLCount()); |
| 956 EXPECT_EQ("http://google.com/alt?q={searchTerms}", url.GetURL(0)); | 935 EXPECT_EQ("http://google.com/alt?q={searchTerms}", url.GetURL(0)); |
| (...skipping 290 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1247 search_terms_data_, &result)); | 1226 search_terms_data_, &result)); |
| 1248 | 1227 |
| 1249 EXPECT_TRUE(url.ReplaceSearchTermsInURL( | 1228 EXPECT_TRUE(url.ReplaceSearchTermsInURL( |
| 1250 GURL("http://google.com/alt/?q=#q=123"), search_terms, | 1229 GURL("http://google.com/alt/?q=#q=123"), search_terms, |
| 1251 search_terms_data_, &result)); | 1230 search_terms_data_, &result)); |
| 1252 EXPECT_EQ(GURL("http://google.com/alt/?q=#q=Bob Morane"), result); | 1231 EXPECT_EQ(GURL("http://google.com/alt/?q=#q=Bob Morane"), result); |
| 1253 } | 1232 } |
| 1254 | 1233 |
| 1255 // Test the |suggest_query_params| field of SearchTermsArgs. | 1234 // Test the |suggest_query_params| field of SearchTermsArgs. |
| 1256 TEST_F(TemplateURLTest, SuggestQueryParams) { | 1235 TEST_F(TemplateURLTest, SuggestQueryParams) { |
| 1257 UIThreadSearchTermsData::SetGoogleBaseURL("http://www.google.com/"); | |
| 1258 TemplateURLData data; | 1236 TemplateURLData data; |
| 1259 // Pick a URL with replacements before, during, and after the query, to ensure | 1237 // Pick a URL with replacements before, during, and after the query, to ensure |
| 1260 // we don't goof up any of them. | 1238 // we don't goof up any of them. |
| 1261 data.SetURL("{google:baseURL}search?q={searchTerms}" | 1239 data.SetURL("{google:baseURL}search?q={searchTerms}" |
| 1262 "#{google:originalQueryForSuggestion}x"); | 1240 "#{google:originalQueryForSuggestion}x"); |
| 1263 TemplateURL url(data); | 1241 TemplateURL url(data); |
| 1264 | 1242 |
| 1265 // Baseline: no |suggest_query_params| field. | 1243 // Baseline: no |suggest_query_params| field. |
| 1266 TemplateURLRef::SearchTermsArgs search_terms(ASCIIToUTF16("abc")); | 1244 TemplateURLRef::SearchTermsArgs search_terms(ASCIIToUTF16("abc")); |
| 1267 search_terms.original_query = ASCIIToUTF16("def"); | 1245 search_terms.original_query = ASCIIToUTF16("def"); |
| 1268 search_terms.accepted_suggestion = 0; | 1246 search_terms.accepted_suggestion = 0; |
| 1269 EXPECT_EQ("http://www.google.com/search?q=abc#oq=def&x", | 1247 EXPECT_EQ("http://www.google.com/search?q=abc#oq=def&x", |
| 1270 url.url_ref().ReplaceSearchTerms(search_terms, search_terms_data_)); | 1248 url.url_ref().ReplaceSearchTerms(search_terms, search_terms_data_)); |
| 1271 | 1249 |
| 1272 // Set the suggest_query_params. | 1250 // Set the suggest_query_params. |
| 1273 search_terms.suggest_query_params = "pq=xyz"; | 1251 search_terms.suggest_query_params = "pq=xyz"; |
| 1274 EXPECT_EQ("http://www.google.com/search?pq=xyz&q=abc#oq=def&x", | 1252 EXPECT_EQ("http://www.google.com/search?pq=xyz&q=abc#oq=def&x", |
| 1275 url.url_ref().ReplaceSearchTerms(search_terms, search_terms_data_)); | 1253 url.url_ref().ReplaceSearchTerms(search_terms, search_terms_data_)); |
| 1276 | 1254 |
| 1277 // Add extra_query_params in the mix, and ensure it works. | 1255 // Add extra_query_params in the mix, and ensure it works. |
| 1278 search_terms.append_extra_query_params = true; | 1256 search_terms.append_extra_query_params = true; |
| 1279 CommandLine::ForCurrentProcess()->AppendSwitchASCII( | 1257 CommandLine::ForCurrentProcess()->AppendSwitchASCII( |
| 1280 switches::kExtraSearchQueryParams, "a=b"); | 1258 switches::kExtraSearchQueryParams, "a=b"); |
| 1281 EXPECT_EQ("http://www.google.com/search?a=b&pq=xyz&q=abc#oq=def&x", | 1259 EXPECT_EQ("http://www.google.com/search?a=b&pq=xyz&q=abc#oq=def&x", |
| 1282 url.url_ref().ReplaceSearchTerms(search_terms, search_terms_data_)); | 1260 url.url_ref().ReplaceSearchTerms(search_terms, search_terms_data_)); |
| 1283 } | 1261 } |
| 1284 | 1262 |
| 1285 // Test the |append_extra_query_params| field of SearchTermsArgs. | 1263 // Test the |append_extra_query_params| field of SearchTermsArgs. |
| 1286 TEST_F(TemplateURLTest, ExtraQueryParams) { | 1264 TEST_F(TemplateURLTest, ExtraQueryParams) { |
| 1287 UIThreadSearchTermsData::SetGoogleBaseURL("http://www.google.com/"); | |
| 1288 TemplateURLData data; | 1265 TemplateURLData data; |
| 1289 // Pick a URL with replacements before, during, and after the query, to ensure | 1266 // Pick a URL with replacements before, during, and after the query, to ensure |
| 1290 // we don't goof up any of them. | 1267 // we don't goof up any of them. |
| 1291 data.SetURL("{google:baseURL}search?q={searchTerms}" | 1268 data.SetURL("{google:baseURL}search?q={searchTerms}" |
| 1292 "#{google:originalQueryForSuggestion}x"); | 1269 "#{google:originalQueryForSuggestion}x"); |
| 1293 TemplateURL url(data); | 1270 TemplateURL url(data); |
| 1294 | 1271 |
| 1295 // Baseline: no command-line args, no |append_extra_query_params| flag. | 1272 // Baseline: no command-line args, no |append_extra_query_params| flag. |
| 1296 TemplateURLRef::SearchTermsArgs search_terms(ASCIIToUTF16("abc")); | 1273 TemplateURLRef::SearchTermsArgs search_terms(ASCIIToUTF16("abc")); |
| 1297 search_terms.original_query = ASCIIToUTF16("def"); | 1274 search_terms.original_query = ASCIIToUTF16("def"); |
| (...skipping 14 matching lines...) Expand all Loading... | |
| 1312 url.url_ref().ReplaceSearchTerms(search_terms, search_terms_data_)); | 1289 url.url_ref().ReplaceSearchTerms(search_terms, search_terms_data_)); |
| 1313 | 1290 |
| 1314 // Turn off the flag. Now the command-line arg should be ignored again. | 1291 // Turn off the flag. Now the command-line arg should be ignored again. |
| 1315 search_terms.append_extra_query_params = false; | 1292 search_terms.append_extra_query_params = false; |
| 1316 EXPECT_EQ("http://www.google.com/search?q=abc#oq=def&x", | 1293 EXPECT_EQ("http://www.google.com/search?q=abc#oq=def&x", |
| 1317 url.url_ref().ReplaceSearchTerms(search_terms, search_terms_data_)); | 1294 url.url_ref().ReplaceSearchTerms(search_terms, search_terms_data_)); |
| 1318 } | 1295 } |
| 1319 | 1296 |
| 1320 // Tests replacing pageClassification. | 1297 // Tests replacing pageClassification. |
| 1321 TEST_F(TemplateURLTest, ReplacePageClassification) { | 1298 TEST_F(TemplateURLTest, ReplacePageClassification) { |
| 1322 UIThreadSearchTermsData::SetGoogleBaseURL("http://www.google.com/"); | |
| 1323 TemplateURLData data; | 1299 TemplateURLData data; |
| 1324 data.input_encodings.push_back("UTF-8"); | 1300 data.input_encodings.push_back("UTF-8"); |
| 1325 data.SetURL("{google:baseURL}?{google:pageClassification}q={searchTerms}"); | 1301 data.SetURL("{google:baseURL}?{google:pageClassification}q={searchTerms}"); |
| 1326 TemplateURL url(data); | 1302 TemplateURL url(data); |
| 1327 EXPECT_TRUE(url.url_ref().IsValid(search_terms_data_)); | 1303 EXPECT_TRUE(url.url_ref().IsValid(search_terms_data_)); |
| 1328 ASSERT_TRUE(url.url_ref().SupportsReplacement(search_terms_data_)); | 1304 ASSERT_TRUE(url.url_ref().SupportsReplacement(search_terms_data_)); |
| 1329 TemplateURLRef::SearchTermsArgs search_terms_args(ASCIIToUTF16("foo")); | 1305 TemplateURLRef::SearchTermsArgs search_terms_args(ASCIIToUTF16("foo")); |
| 1330 | 1306 |
| 1331 std::string result = url.url_ref().ReplaceSearchTerms(search_terms_args, | 1307 std::string result = url.url_ref().ReplaceSearchTerms(search_terms_args, |
| 1332 search_terms_data_); | 1308 search_terms_data_); |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1373 }; | 1349 }; |
| 1374 | 1350 |
| 1375 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(url_data); ++i) { | 1351 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(url_data); ++i) { |
| 1376 EXPECT_EQ(url_data[i].result, | 1352 EXPECT_EQ(url_data[i].result, |
| 1377 search_provider.IsSearchURL(GURL(url_data[i].url), | 1353 search_provider.IsSearchURL(GURL(url_data[i].url), |
| 1378 search_terms_data_)); | 1354 search_terms_data_)); |
| 1379 } | 1355 } |
| 1380 } | 1356 } |
| 1381 | 1357 |
| 1382 TEST_F(TemplateURLTest, ReflectsBookmarkBarPinned) { | 1358 TEST_F(TemplateURLTest, ReflectsBookmarkBarPinned) { |
| 1383 UIThreadSearchTermsData::SetGoogleBaseURL("http://www.google.com/"); | |
| 1384 TemplateURLData data; | 1359 TemplateURLData data; |
| 1385 data.input_encodings.push_back("UTF-8"); | 1360 data.input_encodings.push_back("UTF-8"); |
| 1386 data.SetURL("{google:baseURL}?{google:bookmarkBarPinned}q={searchTerms}"); | 1361 data.SetURL("{google:baseURL}?{google:bookmarkBarPinned}q={searchTerms}"); |
| 1387 TemplateURL url(data); | 1362 TemplateURL url(data); |
| 1388 EXPECT_TRUE(url.url_ref().IsValid(search_terms_data_)); | 1363 EXPECT_TRUE(url.url_ref().IsValid(search_terms_data_)); |
| 1389 ASSERT_TRUE(url.url_ref().SupportsReplacement(search_terms_data_)); | 1364 ASSERT_TRUE(url.url_ref().SupportsReplacement(search_terms_data_)); |
| 1390 TemplateURLRef::SearchTermsArgs search_terms_args(ASCIIToUTF16("foo")); | 1365 TemplateURLRef::SearchTermsArgs search_terms_args(ASCIIToUTF16("foo")); |
| 1391 | 1366 |
| 1392 // Do not add the param when InstantExtended is suppressed on SRPs. | 1367 // Do not add the param when InstantExtended is suppressed on SRPs. |
| 1393 url.url_ref_.showing_search_terms_ = false; | 1368 url.url_ref_.showing_search_terms_ = false; |
| (...skipping 10 matching lines...) Expand all Loading... | |
| 1404 | 1379 |
| 1405 url.url_ref_.showing_search_terms_ = true; | 1380 url.url_ref_.showing_search_terms_ = true; |
| 1406 search_terms_args.bookmark_bar_pinned = true; | 1381 search_terms_args.bookmark_bar_pinned = true; |
| 1407 result = url.url_ref().ReplaceSearchTerms(search_terms_args, | 1382 result = url.url_ref().ReplaceSearchTerms(search_terms_args, |
| 1408 search_terms_data_); | 1383 search_terms_data_); |
| 1409 EXPECT_EQ("http://www.google.com/?bmbp=1&q=foo", result); | 1384 EXPECT_EQ("http://www.google.com/?bmbp=1&q=foo", result); |
| 1410 } | 1385 } |
| 1411 | 1386 |
| 1412 TEST_F(TemplateURLTest, AnswersHasVersion) { | 1387 TEST_F(TemplateURLTest, AnswersHasVersion) { |
| 1413 TemplateURLData data; | 1388 TemplateURLData data; |
| 1414 UIThreadSearchTermsData::SetGoogleBaseURL("http://bar/"); | 1389 search_terms_data_.set_google_base_url("http://bar/"); |
| 1415 data.SetURL("http://bar/search?q={searchTerms}&{google:searchVersion}xssi=t"); | 1390 data.SetURL("http://bar/search?q={searchTerms}&{google:searchVersion}xssi=t"); |
| 1416 | 1391 |
| 1417 TemplateURL url(data); | 1392 TemplateURL url(data); |
| 1418 TemplateURLRef::SearchTermsArgs search_terms_args(ASCIIToUTF16("foo")); | 1393 TemplateURLRef::SearchTermsArgs search_terms_args(ASCIIToUTF16("foo")); |
| 1419 std::string result = url.url_ref().ReplaceSearchTerms(search_terms_args, | 1394 std::string result = url.url_ref().ReplaceSearchTerms(search_terms_args, |
| 1420 search_terms_data_); | 1395 search_terms_data_); |
| 1421 EXPECT_EQ("http://bar/search?q=foo&xssi=t", result); | 1396 EXPECT_EQ("http://bar/search?q=foo&xssi=t", result); |
| 1422 | 1397 |
| 1423 CommandLine::ForCurrentProcess()->AppendSwitch( | 1398 CommandLine::ForCurrentProcess()->AppendSwitch( |
| 1424 switches::kEnableAnswersInSuggest); | 1399 switches::kEnableAnswersInSuggest); |
| 1425 TemplateURL url2(data); | 1400 TemplateURL url2(data); |
| 1426 result = url2.url_ref().ReplaceSearchTerms(search_terms_args, | 1401 result = url2.url_ref().ReplaceSearchTerms(search_terms_args, |
| 1427 search_terms_data_); | 1402 search_terms_data_); |
| 1428 EXPECT_EQ("http://bar/search?q=foo&gs_rn=42&xssi=t", result); | 1403 EXPECT_EQ("http://bar/search?q=foo&gs_rn=42&xssi=t", result); |
| 1429 } | 1404 } |
| 1430 | 1405 |
| 1431 TEST_F(TemplateURLTest, SessionToken) { | 1406 TEST_F(TemplateURLTest, SessionToken) { |
| 1432 TemplateURLData data; | 1407 TemplateURLData data; |
| 1433 UIThreadSearchTermsData::SetGoogleBaseURL("http://bar/"); | 1408 search_terms_data_.set_google_base_url("http://bar/"); |
| 1434 data.SetURL("http://bar/search?q={searchTerms}&{google:sessionToken}xssi=t"); | 1409 data.SetURL("http://bar/search?q={searchTerms}&{google:sessionToken}xssi=t"); |
| 1435 | 1410 |
| 1436 TemplateURL url(data); | 1411 TemplateURL url(data); |
| 1437 TemplateURLRef::SearchTermsArgs search_terms_args(ASCIIToUTF16("foo")); | 1412 TemplateURLRef::SearchTermsArgs search_terms_args(ASCIIToUTF16("foo")); |
| 1438 search_terms_args.session_token = "SESSIONTOKENGOESHERE"; | 1413 search_terms_args.session_token = "SESSIONTOKENGOESHERE"; |
| 1439 std::string result = url.url_ref().ReplaceSearchTerms(search_terms_args, | 1414 std::string result = url.url_ref().ReplaceSearchTerms(search_terms_args, |
| 1440 search_terms_data_); | 1415 search_terms_data_); |
| 1441 EXPECT_EQ("http://bar/search?q=foo&psi=SESSIONTOKENGOESHERE&xssi=t", result); | 1416 EXPECT_EQ("http://bar/search?q=foo&psi=SESSIONTOKENGOESHERE&xssi=t", result); |
| 1442 | 1417 |
| 1443 TemplateURL url2(data); | 1418 TemplateURL url2(data); |
| 1444 search_terms_args.session_token = ""; | 1419 search_terms_args.session_token = ""; |
| 1445 result = url.url_ref().ReplaceSearchTerms(search_terms_args, | 1420 result = url.url_ref().ReplaceSearchTerms(search_terms_args, |
| 1446 search_terms_data_); | 1421 search_terms_data_); |
| 1447 EXPECT_EQ("http://bar/search?q=foo&xssi=t", result); | 1422 EXPECT_EQ("http://bar/search?q=foo&xssi=t", result); |
| 1448 } | 1423 } |
| 1449 | 1424 |
| 1450 TEST_F(TemplateURLTest, ContextualSearchParameters) { | 1425 TEST_F(TemplateURLTest, ContextualSearchParameters) { |
| 1451 TemplateURLData data; | 1426 TemplateURLData data; |
| 1452 UIThreadSearchTermsData::SetGoogleBaseURL("http://bar/"); | 1427 search_terms_data_.set_google_base_url("http://bar/"); |
| 1453 data.SetURL("http://bar/_/contextualsearch?" | 1428 data.SetURL("http://bar/_/contextualsearch?" |
| 1454 "{google:contextualSearchVersion}" | 1429 "{google:contextualSearchVersion}" |
| 1455 "{google:contextualSearchContextData}"); | 1430 "{google:contextualSearchContextData}"); |
| 1456 | 1431 |
| 1457 TemplateURL url(data); | 1432 TemplateURL url(data); |
| 1458 TemplateURLRef::SearchTermsArgs search_terms_args(ASCIIToUTF16("foo")); | 1433 TemplateURLRef::SearchTermsArgs search_terms_args(ASCIIToUTF16("foo")); |
| 1459 std::string result = url.url_ref().ReplaceSearchTerms(search_terms_args, | 1434 std::string result = url.url_ref().ReplaceSearchTerms(search_terms_args, |
| 1460 search_terms_data_); | 1435 search_terms_data_); |
| 1461 EXPECT_EQ("http://bar/_/contextualsearch?", result); | 1436 EXPECT_EQ("http://bar/_/contextualsearch?", result); |
| 1462 | 1437 |
| 1463 TemplateURLRef::SearchTermsArgs::ContextualSearchParams params( | 1438 TemplateURLRef::SearchTermsArgs::ContextualSearchParams params( |
| 1464 1, 6, 11, "allen", "woody+allen+movies", "www.wikipedia.org", | 1439 1, 6, 11, "allen", "woody+allen+movies", "www.wikipedia.org", |
| 1465 "utf-8"); | 1440 "utf-8"); |
| 1466 search_terms_args.contextual_search_params = params; | 1441 search_terms_args.contextual_search_params = params; |
| 1467 result = url.url_ref().ReplaceSearchTerms(search_terms_args, | 1442 result = url.url_ref().ReplaceSearchTerms(search_terms_args, |
| 1468 search_terms_data_); | 1443 search_terms_data_); |
| 1469 EXPECT_EQ("http://bar/_/contextualsearch?" | 1444 EXPECT_EQ("http://bar/_/contextualsearch?" |
| 1470 "ctxs=1&" | 1445 "ctxs=1&" |
| 1471 "ctxs_start=6&" | 1446 "ctxs_start=6&" |
| 1472 "ctxs_end=11&" | 1447 "ctxs_end=11&" |
| 1473 "q=allen&" | 1448 "q=allen&" |
| 1474 "ctxs_content=woody+allen+movies&" | 1449 "ctxs_content=woody+allen+movies&" |
| 1475 "ctxs_url=www.wikipedia.org&" | 1450 "ctxs_url=www.wikipedia.org&" |
| 1476 "ctxs_encoding=utf-8&", result); | 1451 "ctxs_encoding=utf-8&", result); |
| 1477 } | 1452 } |
| OLD | NEW |