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/string_util.h" | 6 #include "base/string_util.h" |
7 #include "base/utf_string_conversions.h" | 7 #include "base/utf_string_conversions.h" |
8 #include "chrome/browser/browser_process.h" | 8 #include "chrome/browser/browser_process.h" |
9 #include "chrome/browser/rlz/rlz.h" | 9 #include "chrome/browser/rlz/rlz.h" |
10 #include "chrome/browser/search_engines/search_terms_data.h" | 10 #include "chrome/browser/search_engines/search_terms_data.h" |
11 #include "chrome/browser/search_engines/template_url.h" | 11 #include "chrome/browser/search_engines/template_url.h" |
12 #include "testing/gtest/include/gtest/gtest.h" | 12 #include "testing/gtest/include/gtest/gtest.h" |
13 | 13 |
14 #if defined(ENABLE_RLZ) | 14 #if defined(ENABLE_RLZ) |
15 #include "chrome/browser/google/google_util.h" | 15 #include "chrome/browser/google/google_util.h" |
16 #endif | 16 #endif |
17 | 17 |
18 #if defined(OS_ANDROID) | |
19 #include "chrome/browser/search_engines/search_terms_data_android.h" | |
20 #endif | |
21 | |
18 // TestSearchTermsData -------------------------------------------------------- | 22 // TestSearchTermsData -------------------------------------------------------- |
19 | 23 |
20 // Simple implementation of SearchTermsData. | 24 // Simple implementation of SearchTermsData. |
21 class TestSearchTermsData : public SearchTermsData { | 25 class TestSearchTermsData : public SearchTermsData { |
22 public: | 26 public: |
23 explicit TestSearchTermsData(const std::string& google_base_url); | 27 explicit TestSearchTermsData(const std::string& google_base_url); |
24 | 28 |
25 virtual std::string GoogleBaseURLValue() const OVERRIDE; | 29 virtual std::string GoogleBaseURLValue() const OVERRIDE; |
26 | 30 |
27 private: | 31 private: |
(...skipping 440 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
468 } | 472 } |
469 | 473 |
470 TEST_F(TemplateURLTest, RLZ) { | 474 TEST_F(TemplateURLTest, RLZ) { |
471 string16 rlz_string; | 475 string16 rlz_string; |
472 #if defined(ENABLE_RLZ) | 476 #if defined(ENABLE_RLZ) |
473 std::string brand; | 477 std::string brand; |
474 if (google_util::GetBrand(&brand) && !brand.empty() && | 478 if (google_util::GetBrand(&brand) && !brand.empty() && |
475 !google_util::IsOrganic(brand)) { | 479 !google_util::IsOrganic(brand)) { |
476 RLZTracker::GetAccessPointRlz(RLZTracker::CHROME_OMNIBOX, &rlz_string); | 480 RLZTracker::GetAccessPointRlz(RLZTracker::CHROME_OMNIBOX, &rlz_string); |
477 } | 481 } |
482 #elif defined(OS_ANDROID) | |
483 SearchTermsDataAndroid::SetRlzParameterValue(ASCIIToUTF16("android_test")); | |
484 rlz_string = SearchTermsDataAndroid::GetRlzParameterValue(); | |
478 #endif | 485 #endif |
479 | 486 |
480 TemplateURLData data; | 487 TemplateURLData data; |
481 data.SetURL("http://bar/?{google:RLZ}{searchTerms}"); | 488 data.SetURL("http://bar/?{google:RLZ}{searchTerms}"); |
482 TemplateURL url(NULL, data); | 489 TemplateURL url(NULL, data); |
483 EXPECT_TRUE(url.url_ref().IsValid()); | 490 EXPECT_TRUE(url.url_ref().IsValid()); |
484 ASSERT_TRUE(url.url_ref().SupportsReplacement()); | 491 ASSERT_TRUE(url.url_ref().SupportsReplacement()); |
485 GURL result(url.url_ref().ReplaceSearchTerms( | 492 GURL result(url.url_ref().ReplaceSearchTerms( |
486 TemplateURLRef::SearchTermsArgs(ASCIIToUTF16("x")))); | 493 TemplateURLRef::SearchTermsArgs(ASCIIToUTF16("x")))); |
487 ASSERT_TRUE(result.is_valid()); | 494 ASSERT_TRUE(result.is_valid()); |
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
633 TemplateURLRef::Replacements replacements; | 640 TemplateURLRef::Replacements replacements; |
634 bool valid = false; | 641 bool valid = false; |
635 EXPECT_EQ("{", | 642 EXPECT_EQ("{", |
636 url.url_ref().ParseURL("{{searchTerms}", &replacements, &valid)); | 643 url.url_ref().ParseURL("{{searchTerms}", &replacements, &valid)); |
637 ASSERT_EQ(1U, replacements.size()); | 644 ASSERT_EQ(1U, replacements.size()); |
638 EXPECT_EQ(1U, replacements[0].index); | 645 EXPECT_EQ(1U, replacements[0].index); |
639 EXPECT_EQ(TemplateURLRef::SEARCH_TERMS, replacements[0].type); | 646 EXPECT_EQ(TemplateURLRef::SEARCH_TERMS, replacements[0].type); |
640 EXPECT_TRUE(valid); | 647 EXPECT_TRUE(valid); |
641 } | 648 } |
642 | 649 |
650 TEST_F(TemplateURLTest, SearchClient) { | |
651 const std::string base_url_str("http://google.com/?"); | |
652 const std::string terms_str("{searchTerms}&{google:searchClient}"); | |
653 const std::string full_url_str = base_url_str + terms_str; | |
654 const string16 terms(ASCIIToUTF16(terms_str)); | |
655 UIThreadSearchTermsData::SetGoogleBaseURL(base_url_str); | |
656 | |
657 TemplateURLData data; | |
658 data.SetURL(full_url_str); | |
659 TemplateURL url(NULL, data); | |
660 EXPECT_TRUE(url.url_ref().IsValid()); | |
661 ASSERT_TRUE(url.url_ref().SupportsReplacement()); | |
662 TemplateURLRef::SearchTermsArgs search_terms_args(ASCIIToUTF16("foobar")); | |
663 | |
664 // Check that the URL is correct when a client is not present. | |
Peter Kasting
2012/12/06 07:02:37
This test relies on non-Android having no client.
gone
2012/12/06 20:59:49
I've moved the OS_ANDROID flag to encapsulate the
| |
665 GURL result(url.url_ref().ReplaceSearchTerms(search_terms_args)); | |
666 ASSERT_TRUE(result.is_valid()); | |
667 EXPECT_EQ("http://google.com/?foobar&", result.spec()); | |
668 | |
669 #if defined(OS_ANDROID) | |
670 // Check that the URL is correct when a client is present. | |
671 SearchTermsDataAndroid::SetSearchClient("android_test"); | |
672 GURL result_2(url.url_ref().ReplaceSearchTerms(search_terms_args)); | |
673 ASSERT_TRUE(result_2.is_valid()); | |
674 EXPECT_EQ("http://google.com/?foobar&client=android_test&", result_2.spec()); | |
675 #endif | |
676 } | |
677 | |
643 TEST_F(TemplateURLTest, GetURLNoInstantURL) { | 678 TEST_F(TemplateURLTest, GetURLNoInstantURL) { |
644 TemplateURLData data; | 679 TemplateURLData data; |
645 data.SetURL("http://google.com/?q={searchTerms}"); | 680 data.SetURL("http://google.com/?q={searchTerms}"); |
646 data.suggestions_url = "http://google.com/suggest?q={searchTerms}"; | 681 data.suggestions_url = "http://google.com/suggest?q={searchTerms}"; |
647 data.alternate_urls.push_back("http://google.com/alt?q={searchTerms}"); | 682 data.alternate_urls.push_back("http://google.com/alt?q={searchTerms}"); |
648 data.alternate_urls.push_back("{google:baseURL}/alt/#q={searchTerms}"); | 683 data.alternate_urls.push_back("{google:baseURL}/alt/#q={searchTerms}"); |
649 TemplateURL url(NULL, data); | 684 TemplateURL url(NULL, data); |
650 ASSERT_EQ(3U, url.URLCount()); | 685 ASSERT_EQ(3U, url.URLCount()); |
651 EXPECT_EQ("http://google.com/alt?q={searchTerms}", url.GetURL(0)); | 686 EXPECT_EQ("http://google.com/alt?q={searchTerms}", url.GetURL(0)); |
652 EXPECT_EQ("{google:baseURL}/alt/#q={searchTerms}", url.GetURL(1)); | 687 EXPECT_EQ("{google:baseURL}/alt/#q={searchTerms}", url.GetURL(1)); |
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
733 EXPECT_EQ(string16(), result); | 768 EXPECT_EQ(string16(), result); |
734 | 769 |
735 EXPECT_FALSE(url.ExtractSearchTermsFromURL( | 770 EXPECT_FALSE(url.ExtractSearchTermsFromURL( |
736 GURL("http://google.com/alt/?q=123#q="), &result)); | 771 GURL("http://google.com/alt/?q=123#q="), &result)); |
737 EXPECT_EQ(string16(), result); | 772 EXPECT_EQ(string16(), result); |
738 | 773 |
739 EXPECT_TRUE(url.ExtractSearchTermsFromURL( | 774 EXPECT_TRUE(url.ExtractSearchTermsFromURL( |
740 GURL("http://google.com/alt/?q=#q=123"), &result)); | 775 GURL("http://google.com/alt/?q=#q=123"), &result)); |
741 EXPECT_EQ(ASCIIToUTF16("123"), result); | 776 EXPECT_EQ(ASCIIToUTF16("123"), result); |
742 } | 777 } |
OLD | NEW |