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 |