Index: chrome/browser/search/search_android_unittest.cc |
diff --git a/chrome/browser/search/search_android_unittest.cc b/chrome/browser/search/search_android_unittest.cc |
index dcf591450e9a0a8b7c56f2a320a8013b5e60751d..04720db3ca8988bb980d9548aa01557b956ca49c 100644 |
--- a/chrome/browser/search/search_android_unittest.cc |
+++ b/chrome/browser/search/search_android_unittest.cc |
@@ -5,7 +5,11 @@ |
#include "chrome/browser/search/search.h" |
#include "base/command_line.h" |
+#include "base/memory/scoped_ptr.h" |
+#include "base/metrics/field_trial.h" |
+#include "base/metrics/statistics_recorder.h" |
#include "chrome/common/chrome_switches.h" |
+#include "components/variations/entropy_provider.h" |
#include "testing/gtest/include/gtest/gtest.h" |
namespace chrome { |
@@ -21,6 +25,93 @@ TEST(SearchTest, EmbeddedSearchAPIEnabled) { |
EXPECT_TRUE(IsInstantExtendedAPIEnabled()); |
} |
+TEST(SearchTest, QueryExtractionEnabled) { |
+ // Query extraction is always enabled on mobile. |
+ EXPECT_TRUE(IsQueryExtractionEnabled()); |
+} |
+ |
+class SearchUtilTest : public testing::Test { |
+ protected: |
+ virtual void SetUp() { |
+ field_trial_list_.reset(new base::FieldTrialList( |
+ new metrics::SHA1EntropyProvider("42"))); |
+ base::StatisticsRecorder::Initialize(); |
+ } |
+ |
+ private: |
+ scoped_ptr<base::FieldTrialList> field_trial_list_; |
+}; |
+ |
+TEST_F(SearchUtilTest, UseDefaultEmbeddedSearchPageVersion) { |
+ ASSERT_TRUE(base::FieldTrialList::CreateFieldTrial( |
+ "EmbeddedSearch", "Group1 espv:-1 query_extraction:1")); |
+ EXPECT_TRUE(IsQueryExtractionEnabled()); |
+ EXPECT_EQ("espv=1&", InstantExtendedEnabledParam(true)); |
+ EXPECT_EQ("espv=1&", InstantExtendedEnabledParam(false)); |
+} |
+ |
+TEST_F(SearchUtilTest, ShouldPrefetchSearchResults_InstantExtendedAPIEnabled) { |
+ ASSERT_TRUE(base::FieldTrialList::CreateFieldTrial( |
+ "EmbeddedSearch", |
+ "Group1 espv:2 prefetch_results:1")); |
+ EXPECT_TRUE(ShouldPrefetchSearchResults()); |
+ EXPECT_TRUE(IsInstantExtendedAPIEnabled()); |
+ EXPECT_EQ(2ul, EmbeddedSearchPageVersion()); |
+} |
+ |
+TEST_F(SearchUtilTest, ShouldPrefetchSearchResults_InstantExtendedAPIDisabled) { |
+ ASSERT_TRUE(base::FieldTrialList::CreateFieldTrial( |
+ "EmbeddedSearch", |
+ "Group1 espv:1 prefetch_results:1")); |
+ EXPECT_FALSE(ShouldPrefetchSearchResults()); |
+ EXPECT_FALSE(IsInstantExtendedAPIEnabled()); |
+ EXPECT_EQ(1ul, EmbeddedSearchPageVersion()); |
+} |
+ |
+TEST_F(SearchUtilTest, ShouldPrefetchSearchResults_DisabledViaFieldTrials) { |
+ ASSERT_TRUE(base::FieldTrialList::CreateFieldTrial( |
+ "EmbeddedSearch", |
+ "Group1 espv:2 prefetch_results:0")); |
+ EXPECT_FALSE(ShouldPrefetchSearchResults()); |
+ EXPECT_EQ(2ul, EmbeddedSearchPageVersion()); |
+} |
+ |
+TEST_F(SearchUtilTest, ShouldPrefetchSearchResults_EnabledViaCommandLine) { |
+ CommandLine::ForCurrentProcess()->AppendSwitch( |
+ switches::kPrefetchSearchResults); |
+ // Command-line enable should override Finch. |
+ ASSERT_TRUE(base::FieldTrialList::CreateFieldTrial( |
+ "EmbeddedSearch", "Group1 espv:2 prefetch_results:0")); |
+ EXPECT_TRUE(ShouldPrefetchSearchResults()); |
+ EXPECT_EQ(2ul, EmbeddedSearchPageVersion()); |
+} |
+ |
+TEST_F(SearchUtilTest, |
+ ShouldReuseInstantSearchBasePage_PrefetchResultsFlagDisabled) { |
+ ASSERT_TRUE(base::FieldTrialList::CreateFieldTrial( |
+ "EmbeddedSearch", |
+ "Group1 espv:2 prefetch_results:0 reuse_instant_search_base_page:1")); |
+ EXPECT_FALSE(ShouldPrefetchSearchResults()); |
+ EXPECT_FALSE(ShouldReuseInstantSearchBasePage()); |
+ EXPECT_EQ(2ul, EmbeddedSearchPageVersion()); |
+} |
+ |
+TEST_F(SearchUtilTest, ShouldReuseInstantSearchBasePage_EnabledViaFieldTrial) { |
+ ASSERT_TRUE(base::FieldTrialList::CreateFieldTrial( |
+ "EmbeddedSearch", |
+ "Group1 espv:2 prefetch_results:1 reuse_instant_search_base_page:1")); |
+ EXPECT_TRUE(ShouldReuseInstantSearchBasePage()); |
+ EXPECT_EQ(2ul, EmbeddedSearchPageVersion()); |
+} |
+ |
+TEST_F(SearchUtilTest, ShouldReuseInstantSearchBasePage_DisabledViaFieldTrial) { |
+ ASSERT_TRUE(base::FieldTrialList::CreateFieldTrial( |
+ "EmbeddedSearch", |
+ "Group1 espv:2 prefetch_results:1 reuse_instant_search_base_page:0")); |
+ EXPECT_FALSE(ShouldReuseInstantSearchBasePage()); |
+ EXPECT_EQ(2ul, EmbeddedSearchPageVersion()); |
+} |
+ |
} // namespace |
} // namespace chrome |