diff options
author | bartn <bartn@chromium.org> | 2014-10-27 12:34:24 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-10-27 19:35:09 +0000 |
commit | 1c07e721b7a3dcc01b34728c5a9eea80d907a432 (patch) | |
tree | 3a3c22f8bd97501b7eaea15e6b28524e521daa20 /components/omnibox/omnibox_field_trial_unittest.cc | |
parent | 07813d33da008b90a2046bcc3ae6c6c4d06effb0 (diff) | |
download | chromium_src-1c07e721b7a3dcc01b34728c5a9eea80d907a432.zip chromium_src-1c07e721b7a3dcc01b34728c5a9eea80d907a432.tar.gz chromium_src-1c07e721b7a3dcc01b34728c5a9eea80d907a432.tar.bz2 |
Parametrize Suggest polling strategy and delay. Also add a parameter
to disable results caching.
TESTS=OmniboxFieldTrialTest + manual tests.
BUG=420903
Review URL: https://codereview.chromium.org/645303003
Cr-Commit-Position: refs/heads/master@{#301413}
Diffstat (limited to 'components/omnibox/omnibox_field_trial_unittest.cc')
-rw-r--r-- | components/omnibox/omnibox_field_trial_unittest.cc | 82 |
1 files changed, 81 insertions, 1 deletions
diff --git a/components/omnibox/omnibox_field_trial_unittest.cc b/components/omnibox/omnibox_field_trial_unittest.cc index 9a78a67..47f7467 100644 --- a/components/omnibox/omnibox_field_trial_unittest.cc +++ b/components/omnibox/omnibox_field_trial_unittest.cc @@ -52,7 +52,7 @@ class OmniboxFieldTrialTest : public testing::Test { OmniboxFieldTrial::kBundledExperimentFieldTrialName, "A"); } - // EXPECTS that demotions[match_type] exists with value expected_value. + // EXPECT()s that demotions[match_type] exists with value expected_value. static void VerifyDemotion( const OmniboxFieldTrial::DemotionMultipliers& demotions, AutocompleteMatchType::Type match_type, @@ -65,6 +65,17 @@ class OmniboxFieldTrialTest : public testing::Test { const std::string& rule, OmniboxEventProto::PageClassification page_classification); + // EXPECT()s that OmniboxFieldTrial::GetSuggestPollingStrategy returns + // |expected_from_last_keystroke| and |expected_delay_ms| for the given + // experiment params. If one the rule values is NULL, the corresponding + // variation parameter won't be set thus allowing to test the default + // behavior. + void VerifySuggestPollingStrategy( + const char* from_last_keystroke_rule_value, + const char* polling_delay_ms_rule_value, + bool expected_from_last_keystroke, + int expected_delay_ms); + private: scoped_ptr<base::FieldTrialList> field_trial_list_; @@ -92,6 +103,35 @@ void OmniboxFieldTrialTest::ExpectRuleValue( rule, page_classification)); } +void OmniboxFieldTrialTest::VerifySuggestPollingStrategy( + const char* from_last_keystroke_rule_value, + const char* polling_delay_ms_rule_value, + bool expected_from_last_keystroke, + int expected_delay_ms) { + ResetFieldTrialList(); + std::map<std::string, std::string> params; + if (from_last_keystroke_rule_value != NULL) { + params[std::string( + OmniboxFieldTrial::kMeasureSuggestPollingDelayFromLastKeystrokeRule)] = + from_last_keystroke_rule_value; + } + if (polling_delay_ms_rule_value != NULL) { + params[std::string( + OmniboxFieldTrial::kSuggestPollingDelayMsRule)] = + polling_delay_ms_rule_value; + } + ASSERT_TRUE(variations::AssociateVariationParams( + OmniboxFieldTrial::kBundledExperimentFieldTrialName, "A", params)); + base::FieldTrialList::CreateFieldTrial( + OmniboxFieldTrial::kBundledExperimentFieldTrialName, "A"); + + bool from_last_keystroke; + int delay_ms; + OmniboxFieldTrial::GetSuggestPollingStrategy(&from_last_keystroke, &delay_ms); + EXPECT_EQ(expected_from_last_keystroke, from_last_keystroke); + EXPECT_EQ(expected_delay_ms, delay_ms); +} + // Test if GetDisabledProviderTypes() properly parses various field trial // group names. TEST_F(OmniboxFieldTrialTest, GetDisabledProviderTypes) { @@ -378,3 +418,43 @@ TEST_F(OmniboxFieldTrialTest, HalfLifeTimeDecay) { EXPECT_EQ(1.0, buckets.HalfLifeTimeDecay(base::TimeDelta::FromDays(0))); EXPECT_EQ(1.0, buckets.HalfLifeTimeDecay(base::TimeDelta::FromDays(-1))); } + +TEST_F(OmniboxFieldTrialTest, DisableResultsCaching) { + EXPECT_FALSE(OmniboxFieldTrial::DisableResultsCaching()); + + { + std::map<std::string, std::string> params; + params[std::string(OmniboxFieldTrial::kDisableResultsCachingRule)] = "true"; + ASSERT_TRUE(variations::AssociateVariationParams( + OmniboxFieldTrial::kBundledExperimentFieldTrialName, "A", params)); + base::FieldTrialList::CreateFieldTrial( + OmniboxFieldTrial::kBundledExperimentFieldTrialName, "A"); + + EXPECT_TRUE(OmniboxFieldTrial::DisableResultsCaching()); + } +} + +TEST_F(OmniboxFieldTrialTest, GetSuggestPollingStrategy) { + // Invalid params. + VerifySuggestPollingStrategy( + "", "", false, + OmniboxFieldTrial::kDefaultMinimumTimeBetweenSuggestQueriesMs); + VerifySuggestPollingStrategy( + "foo", "-1", false, + OmniboxFieldTrial::kDefaultMinimumTimeBetweenSuggestQueriesMs); + VerifySuggestPollingStrategy( + "TRUE", "xyz", false, + OmniboxFieldTrial::kDefaultMinimumTimeBetweenSuggestQueriesMs); + + // Default values. + VerifySuggestPollingStrategy( + NULL, NULL, false, + OmniboxFieldTrial::kDefaultMinimumTimeBetweenSuggestQueriesMs); + + // Valid params. + VerifySuggestPollingStrategy("true", "50", true, 50); + VerifySuggestPollingStrategy(NULL, "35", false, 35); + VerifySuggestPollingStrategy( + "true", NULL, true, + OmniboxFieldTrial::kDefaultMinimumTimeBetweenSuggestQueriesMs); +} |