Index: chrome/browser/omnibox/omnibox_field_trial_unittest.cc |
diff --git a/chrome/browser/omnibox/omnibox_field_trial_unittest.cc b/chrome/browser/omnibox/omnibox_field_trial_unittest.cc |
index 9ccb00f2fd4c6f03dbff947e78e97d4133687fa2..71ccae93a713debfab317c23a5e48fc1c8fa0407 100644 |
--- a/chrome/browser/omnibox/omnibox_field_trial_unittest.cc |
+++ b/chrome/browser/omnibox/omnibox_field_trial_unittest.cc |
@@ -13,9 +13,7 @@ |
class OmniboxFieldTrialTest : public testing::Test { |
public: |
- OmniboxFieldTrialTest() {} |
- |
- static void SetUpTestCase() { |
+ OmniboxFieldTrialTest() { |
ResetFieldTrialList(); |
} |
@@ -31,6 +29,7 @@ class OmniboxFieldTrialTest : public testing::Test { |
delete field_trial_list_; |
field_trial_list_ = new base::FieldTrialList( |
new metrics::SHA1EntropyProvider("foo")); |
+ chrome_variations::testing::ClearAllVariationParams(); |
OmniboxFieldTrial::ActivateDynamicTrials(); |
} |
@@ -44,7 +43,6 @@ class OmniboxFieldTrialTest : public testing::Test { |
} |
private: |
- // Needed for Activate{Static/Dynamic}Trials(). |
static base::FieldTrialList* field_trial_list_; |
DISALLOW_COPY_AND_ASSIGN(OmniboxFieldTrialTest); |
@@ -131,6 +129,39 @@ TEST_F(OmniboxFieldTrialTest, ZeroSuggestFieldTrial) { |
} |
} |
+TEST_F(OmniboxFieldTrialTest, GetDemotionsByTypeWithFallback) { |
+ // Must be the same as kBundledExperimentFieldTrialName |
+ // defined in omnibox_field_trial.cc. |
+ const std::string kTrialName = "OmniboxBundledExperimentV1"; |
+ // Must be the same as kDemoteByTypeRule defined in |
+ // omnibox_field_trial.cc. |
+ const std::string kRuleName = "DemoteByType"; |
+ { |
+ std::map<std::string, std::string> params; |
+ params[kRuleName + ":1"] = "1:50,2:0"; |
+ params[kRuleName + ":3"] = "5:100"; |
+ params[kRuleName + ":*"] = "1:25"; |
+ ASSERT_TRUE(chrome_variations::AssociateVariationParams( |
+ kTrialName, "A", params)); |
+ } |
+ base::FieldTrialList::CreateFieldTrial(kTrialName, "A"); |
+ OmniboxFieldTrial::DemotionMultiplierByType demotions_by_type; |
+ OmniboxFieldTrial::GetDemotionsByType( |
+ AutocompleteInput::NEW_TAB_PAGE, &demotions_by_type); |
+ ASSERT_EQ(2u, demotions_by_type.size()); |
+ EXPECT_FLOAT_EQ(0.5f, demotions_by_type[AutocompleteMatchType::HISTORY_URL]); |
+ EXPECT_FLOAT_EQ(0.0f, |
+ demotions_by_type[AutocompleteMatchType::HISTORY_TITLE]); |
Peter Kasting
2013/08/06 19:33:50
I think this expectation will still pass even if t
Mark P
2013/08/06 22:00:15
Good point. Added helper function.
|
+ OmniboxFieldTrial::GetDemotionsByType( |
+ AutocompleteInput::HOMEPAGE, &demotions_by_type); |
+ ASSERT_EQ(1u, demotions_by_type.size()); |
+ EXPECT_FLOAT_EQ(1.0f, demotions_by_type[AutocompleteMatchType::NAVSUGGEST]); |
+ OmniboxFieldTrial::GetDemotionsByType( |
+ AutocompleteInput::BLANK, &demotions_by_type); |
+ ASSERT_EQ(1u, demotions_by_type.size()); |
+ EXPECT_FLOAT_EQ(0.25f, demotions_by_type[AutocompleteMatchType::HISTORY_URL]); |
+} |
+ |
TEST_F(OmniboxFieldTrialTest, GetValueForRuleInContext) { |
// Must be the same as kBundledExperimentFieldTrialName |
// defined in omnibox_field_trial.cc. |