Index: chrome/browser/search_engines/template_url_unittest.cc |
diff --git a/chrome/browser/search_engines/template_url_unittest.cc b/chrome/browser/search_engines/template_url_unittest.cc |
index 5882e5dc0212425cca145b54d301530a14a84381..9f17c550af9c2559c4f06a86c927c6c5b0c1afd7 100644 |
--- a/chrome/browser/search_engines/template_url_unittest.cc |
+++ b/chrome/browser/search_engines/template_url_unittest.cc |
@@ -4,6 +4,7 @@ |
#include "base/base_paths.h" |
#include "base/command_line.h" |
+#include "base/metrics/field_trial.h" |
#include "base/strings/string_number_conversions.h" |
#include "base/strings/string_util.h" |
#include "base/strings/utf_string_conversions.h" |
@@ -11,8 +12,10 @@ |
#include "chrome/browser/rlz/rlz.h" |
#include "chrome/browser/search_engines/search_terms_data.h" |
#include "chrome/browser/search_engines/template_url.h" |
+#include "chrome/browser/search/search.h" |
#include "chrome/common/chrome_switches.h" |
#include "chrome/common/chrome_version_info.h" |
+#include "components/variations/entropy_provider.h" |
#include "testing/gtest/include/gtest/gtest.h" |
#if defined(ENABLE_RLZ) |
@@ -50,8 +53,16 @@ std::string TestSearchTermsData::GoogleBaseURLValue() const { |
class TemplateURLTest : public testing::Test { |
public: |
+ virtual void SetUp() OVERRIDE { |
+ field_trial_list_.reset(new base::FieldTrialList( |
Peter Kasting
2013/10/01 01:03:31
I'm not thrilled about going through the field tri
Jered
2013/10/01 18:46:15
This state is field trial state, so going through
|
+ new metrics::SHA1EntropyProvider("42"))); |
+ } |
+ |
void CheckSuggestBaseURL(const std::string& base_url, |
const std::string& base_suggest_url) const; |
+ |
+ private: |
+ scoped_ptr<base::FieldTrialList> field_trial_list_; |
}; |
void TemplateURLTest::CheckSuggestBaseURL( |
@@ -1233,3 +1244,45 @@ TEST_F(TemplateURLTest, IsSearchResults) { |
search_provider.IsSearchURL(GURL(url_data[i].url))); |
} |
} |
+ |
+TEST_F(TemplateURLTest, BookmarkBarPinnedArgNotReplaced) { |
+ chrome::EnableInstantExtendedAPIForTesting(); |
+ TemplateURLData data; |
+ data.input_encodings.push_back("UTF-8"); |
+ data.SetURL("{google:baseURL}?{google:bookmarkBarPinned}q={searchTerms}"); |
+ TemplateURL url(NULL, data); |
+ EXPECT_TRUE(url.url_ref().IsValid()); |
+ ASSERT_TRUE(url.url_ref().SupportsReplacement()); |
+ TemplateURLRef::SearchTermsArgs search_terms_args(ASCIIToUTF16("foo")); |
+ |
+ // Do not add the param when InstantExtended is suppressed on SRPs. |
+ ASSERT_TRUE(base::FieldTrialList::CreateFieldTrial( |
+ "InstantExtended", "Group1 espv:2 suppress_on_srp:1")); |
+ ASSERT_TRUE(chrome::ShouldSuppressInstantExtendedOnSRP()); |
+ std::string result = url.url_ref().ReplaceSearchTerms(search_terms_args); |
+ EXPECT_EQ("http://www.google.com/?q=foo", result); |
+} |
+ |
+TEST_F(TemplateURLTest, BookmarkBarPinnedArgReplaced) { |
Peter Kasting
2013/10/01 01:03:31
Nit: Again, I'd make this all one test, since it's
Jered
2013/10/01 18:46:15
Done.
|
+ chrome::EnableInstantExtendedAPIForTesting(); |
+ TemplateURLData data; |
+ data.input_encodings.push_back("UTF-8"); |
+ data.SetURL("{google:baseURL}?{google:bookmarkBarPinned}q={searchTerms}"); |
+ TemplateURL url(NULL, data); |
+ EXPECT_TRUE(url.url_ref().IsValid()); |
+ ASSERT_TRUE(url.url_ref().SupportsReplacement()); |
+ TemplateURLRef::SearchTermsArgs search_terms_args(ASCIIToUTF16("foo")); |
+ |
+ // Add the param when InstantExtended is suppressed on SRPs. |
+ ASSERT_TRUE(base::FieldTrialList::CreateFieldTrial( |
+ "InstantExtended", "Group1 espv:2 suppress_on_srp:0")); |
+ ASSERT_FALSE(chrome::ShouldSuppressInstantExtendedOnSRP()); |
+ |
+ search_terms_args.bookmark_bar_pinned = false; |
+ std::string result = url.url_ref().ReplaceSearchTerms(search_terms_args); |
+ EXPECT_EQ("http://www.google.com/?bmbp=0&q=foo", result); |
+ |
+ search_terms_args.bookmark_bar_pinned = true; |
+ result = url.url_ref().ReplaceSearchTerms(search_terms_args); |
+ EXPECT_EQ("http://www.google.com/?bmbp=1&q=foo", result); |
+} |