Chromium Code Reviews| Index: chrome/browser/search/search_unittest.cc |
| diff --git a/chrome/browser/search/search_unittest.cc b/chrome/browser/search/search_unittest.cc |
| index ac18957c7a931acbfbbe6062b0b7c245ed20fdf1..0bbdc259037df06ac6747f59ceca50e52e6e020b 100644 |
| --- a/chrome/browser/search/search_unittest.cc |
| +++ b/chrome/browser/search/search_unittest.cc |
| @@ -8,6 +8,7 @@ |
| #include "base/metrics/histogram_samples.h" |
| #include "base/metrics/statistics_recorder.h" |
| #include "base/prefs/pref_service.h" |
| +#include "base/strings/utf_string_conversions.h" |
| #include "chrome/browser/managed_mode/managed_mode_url_filter.h" |
| #include "chrome/browser/managed_mode/managed_user_service.h" |
| #include "chrome/browser/managed_mode/managed_user_service_factory.h" |
| @@ -166,7 +167,7 @@ class SearchTest : public BrowserWithTestWindowTest { |
| SetSearchProvider(true, false); |
| } |
| - void SetSearchProvider(bool set_ntp_url, bool insecure_ntp_url) { |
| + virtual void SetSearchProvider(bool set_ntp_url, bool insecure_ntp_url) { |
| TemplateURLService* template_url_service = |
| TemplateURLServiceFactory::GetForProfile(profile()); |
| TemplateURLData data; |
| @@ -760,6 +761,68 @@ TEST_F(SearchTest, GetSearchResultPrefetchBaseURL) { |
| GetSearchResultPrefetchBaseURL(profile())); |
| } |
| +class SearchURLTest : public SearchTest { |
| + protected: |
| + virtual void SetSearchProvider(bool set_ntp_url, bool insecure_ntp_url) |
| + OVERRIDE { |
| + TemplateURLService* template_url_service = |
| + TemplateURLServiceFactory::GetForProfile(profile()); |
| + TemplateURLData data; |
| + data.SetURL("{google:baseURL}search?" |
| + "{google:instantExtendedEnabledParameter}q={searchTerms}"); |
| + data.search_terms_replacement_key = "espv"; |
| + template_url_ = new TemplateURL(profile(), data); |
| + // Takes ownership of |template_url|. |
| + template_url_service->Add(template_url_); |
| + template_url_service->SetDefaultSearchProvider(template_url_); |
| + } |
| + |
| + TemplateURL* template_url_; |
|
beaudoin
2014/02/04 13:55:23
Nit: Make this a scoped_ptr<> so it's deallocated
kmadhusu
2014/02/04 16:52:26
I have a raw pointer because TemplateURLService to
beaudoin
2014/02/04 16:57:07
SG. Just update the comment to make it clearer:
//
kmadhusu
2014/02/04 17:09:06
Done.
|
| +}; |
| + |
| +TEST_F(SearchURLTest, QueryExtractionEnabled) { |
| + EnableQueryExtractionForTesting(); |
| + EXPECT_TRUE(IsQueryExtractionEnabled()); |
| + TemplateURLRef::SearchTermsArgs search_terms_args(base::ASCIIToUTF16("foo")); |
| + GURL result(template_url_->url_ref().ReplaceSearchTerms(search_terms_args)); |
| + ASSERT_TRUE(result.is_valid()); |
| + // Query extraction is enabled. Make sure |
| + // {google:instantExtendedEnabledParameter} is set in the search URL. |
| + EXPECT_EQ("http://www.google.com/search?espv=2&q=foo", result.spec()); |
| +} |
| + |
| +TEST_F(SearchURLTest, QueryExtractionDisabled) { |
| + EXPECT_FALSE(IsQueryExtractionEnabled()); |
| + TemplateURLRef::SearchTermsArgs search_terms_args(base::ASCIIToUTF16("foo")); |
| + GURL result(template_url_->url_ref().ReplaceSearchTerms(search_terms_args)); |
| + ASSERT_TRUE(result.is_valid()); |
| + // Query extraction is disabled. Make sure |
| + // {google:instantExtendedEnabledParameter} is not set in the search URL. |
| + EXPECT_EQ("http://www.google.com/search?q=foo", result.spec()); |
| +} |
| + |
| +typedef SearchTest InstantExtendedEnabledParamTest; |
| + |
| +TEST_F(InstantExtendedEnabledParamTest, QueryExtractionDisabled) { |
| + ASSERT_TRUE(base::FieldTrialList::CreateFieldTrial("EmbeddedSearch", |
| + "Group1 espv:2")); |
| + EXPECT_FALSE(IsQueryExtractionEnabled()); |
| + // Make sure InstantExtendedEnabledParam() returns an empty string for search |
| + // requests. |
| + EXPECT_EQ("", InstantExtendedEnabledParam(true)); |
| + EXPECT_EQ("espv=2&", InstantExtendedEnabledParam(false)); |
| +} |
| + |
| +TEST_F(InstantExtendedEnabledParamTest, QueryExtractionEnabled) { |
| + ASSERT_TRUE(base::FieldTrialList::CreateFieldTrial( |
| + "EmbeddedSearch", "Group1 espv:2 query_extraction:1")); |
| + EXPECT_TRUE(IsQueryExtractionEnabled()); |
| + // Make sure InstantExtendedEnabledParam() returns a non-empty param string |
| + // for search requests. |
| + EXPECT_EQ("espv=2&", InstantExtendedEnabledParam(true)); |
| + EXPECT_EQ("espv=2&", InstantExtendedEnabledParam(false)); |
| +} |
| + |
| typedef SearchTest IsQueryExtractionEnabledTest; |
| TEST_F(IsQueryExtractionEnabledTest, NotSet) { |