| 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 b40be13d9daaf55a1113e9a5c48a5d698b48c121..9ccb00f2fd4c6f03dbff947e78e97d4133687fa2 100644
|
| --- a/chrome/browser/omnibox/omnibox_field_trial_unittest.cc
|
| +++ b/chrome/browser/omnibox/omnibox_field_trial_unittest.cc
|
| @@ -8,6 +8,7 @@
|
| #include "base/metrics/field_trial.h"
|
| #include "base/strings/string16.h"
|
| #include "chrome/common/metrics/entropy_provider.h"
|
| +#include "chrome/common/metrics/variations/variations_util.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
|
|
| class OmniboxFieldTrialTest : public testing::Test {
|
| @@ -129,3 +130,74 @@ TEST_F(OmniboxFieldTrialTest, ZeroSuggestFieldTrial) {
|
| EXPECT_TRUE(OmniboxFieldTrial::InZeroSuggestFieldTrial());
|
| }
|
| }
|
| +
|
| +TEST_F(OmniboxFieldTrialTest, GetValueForRuleInContext) {
|
| + // Must be the same as kBundledExperimentFieldTrialName
|
| + // defined in omnibox_field_trial.cc.
|
| + const std::string kTrialName = "OmniboxBundledExperimentV1";
|
| + {
|
| + std::map<std::string, std::string> params;
|
| + // Rule 1 has some exact matches and a global fallback.
|
| + params["rule1:1"] = "rule1-1-value"; // NEW_TAB_PAGE
|
| + params["rule1:3"] = "rule1-3-value"; // HOMEPAGE
|
| + params["rule1:*"] = "rule1-*-value"; // global
|
| + // Rule 2 has no exact matches but has a global fallback.
|
| + params["rule2:*"] = "rule2-*-value"; // global
|
| + // Rule 3 has an exact match but no global fallback.
|
| + params["rule3:4"] = "rule3-4-value"; // OTHER
|
| + // Add a malformed rule to make sure it doesn't screw things up.
|
| + params["unrecognized"] = "unrecognized-value";
|
| + ASSERT_TRUE(chrome_variations::AssociateVariationParams(
|
| + kTrialName, "A", params));
|
| + }
|
| +
|
| + base::FieldTrialList::CreateFieldTrial(kTrialName, "A");
|
| +
|
| + // Tests for rule 1.
|
| + EXPECT_EQ(
|
| + "rule1-1-value",
|
| + OmniboxFieldTrial::GetValueForRuleInContext(
|
| + "rule1", AutocompleteInput::NEW_TAB_PAGE)); // exact match
|
| + EXPECT_EQ(
|
| + "rule1-*-value",
|
| + OmniboxFieldTrial::GetValueForRuleInContext(
|
| + "rule1", AutocompleteInput::BLANK)); // fallback to global
|
| + EXPECT_EQ(
|
| + "rule1-3-value",
|
| + OmniboxFieldTrial::GetValueForRuleInContext(
|
| + "rule1", AutocompleteInput::HOMEPAGE)); // exact match
|
| + EXPECT_EQ(
|
| + "rule1-*-value",
|
| + OmniboxFieldTrial::GetValueForRuleInContext(
|
| + "rule1", AutocompleteInput::OTHER)); // fallback to global
|
| +
|
| + // Tests for rule 2.
|
| + EXPECT_EQ(
|
| + "rule2-*-value",
|
| + OmniboxFieldTrial::GetValueForRuleInContext(
|
| + "rule2", AutocompleteInput::HOMEPAGE)); // fallback to global
|
| + EXPECT_EQ(
|
| + "rule2-*-value",
|
| + OmniboxFieldTrial::GetValueForRuleInContext(
|
| + "rule2", AutocompleteInput::OTHER)); // fallback to global
|
| +
|
| + // Tests for rule 3.
|
| + EXPECT_EQ(
|
| + "",
|
| + OmniboxFieldTrial::GetValueForRuleInContext(
|
| + "rule3", AutocompleteInput::BLANK)); // no global fallback
|
| + EXPECT_EQ(
|
| + "",
|
| + OmniboxFieldTrial::GetValueForRuleInContext(
|
| + "rule3", AutocompleteInput::HOMEPAGE)); // no global fallback
|
| + EXPECT_EQ(
|
| + "rule3-4-value",
|
| + OmniboxFieldTrial::GetValueForRuleInContext(
|
| + "rule3", AutocompleteInput::OTHER)); // exact match
|
| +
|
| + // Tests for rule 4 (a missing rule).
|
| + EXPECT_EQ(
|
| + "",
|
| + OmniboxFieldTrial::GetValueForRuleInContext(
|
| + "rule4", AutocompleteInput::OTHER)); // no rule at all
|
| +}
|
|
|