Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(89)

Side by Side Diff: chrome/browser/search_engines/template_url_unittest.cc

Issue 344083003: Stop using UIThreadSearchTermsData in tests when unnecessary (Closed) Base URL: http://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « chrome/browser/search_engines/search_host_to_urls_map_unittest.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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
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
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
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
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
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
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
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 }
OLDNEW
« no previous file with comments | « chrome/browser/search_engines/search_host_to_urls_map_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698