| Index: chrome/common/extensions/feature_switch_unittest.cc
|
| diff --git a/chrome/common/extensions/feature_switch_unittest.cc b/chrome/common/extensions/feature_switch_unittest.cc
|
| index 91c56335a984b202f45b41affdee8cdb697679f6..1f5e6082fcdc6509e6ee0eba9df080893f4c012e 100644
|
| --- a/chrome/common/extensions/feature_switch_unittest.cc
|
| +++ b/chrome/common/extensions/feature_switch_unittest.cc
|
| @@ -16,9 +16,10 @@ namespace {
|
| const char kSwitchName[] = "test-switch";
|
| const char kFieldTrialName[] = "field-trial";
|
|
|
| -// Create and register a field trial that will always return the given
|
| -// |group_name|.
|
| -scoped_refptr<base::FieldTrial> CreateFieldTrial(
|
| +// Create and register a field trial named |field_trial_name| that will always
|
| +// return the given |group_name|.
|
| +scoped_refptr<base::FieldTrial> CreateFieldTrialWithName(
|
| + const std::string& field_trial_name,
|
| const std::string& group_name) {
|
| const int kTotalProbability = 10;
|
| // Note: This code will probably fail in the year 5000. But all the cycles we
|
| @@ -26,12 +27,19 @@ scoped_refptr<base::FieldTrial> CreateFieldTrial(
|
| // worth it.
|
| scoped_refptr<base::FieldTrial> trial =
|
| base::FieldTrialList::FactoryGetFieldTrial(
|
| - kFieldTrialName, kTotalProbability, "default", 5000, 1, 1,
|
| + field_trial_name, kTotalProbability, "default", 5000, 1, 1,
|
| base::FieldTrial::SESSION_RANDOMIZED, nullptr);
|
| trial->AppendGroup(group_name, kTotalProbability);
|
| return trial;
|
| }
|
|
|
| +// Create and register a field trial that will always return the given
|
| +// |group_name|.
|
| +scoped_refptr<base::FieldTrial> CreateFieldTrial(
|
| + const std::string& group_name) {
|
| + return CreateFieldTrialWithName(kFieldTrialName, group_name);
|
| +}
|
| +
|
| template<FeatureSwitch::DefaultValue T>
|
| class FeatureSwitchTest : public testing::Test {
|
| public:
|
| @@ -156,9 +164,10 @@ TEST_F(FeatureSwitchEnabledTest, TrueFieldTrialValue) {
|
| scoped_refptr<base::FieldTrial> enabled_trial = CreateFieldTrial("Enabled");
|
| {
|
| // A default-enabled switch should be enabled (naturally).
|
| - FeatureSwitch default_enabled_switch(&command_line_, kSwitchName,
|
| - kFieldTrialName,
|
| - FeatureSwitch::DEFAULT_ENABLED);
|
| + FeatureSwitch default_enabled_switch(
|
| + &command_line_, kSwitchName,
|
| + std::vector<std::string>(1, kFieldTrialName),
|
| + FeatureSwitch::DEFAULT_ENABLED);
|
| EXPECT_TRUE(default_enabled_switch.IsEnabled());
|
| // Scoped overrides override everything.
|
| FeatureSwitch::ScopedOverride scoped_override(&default_enabled_switch,
|
| @@ -168,9 +177,10 @@ TEST_F(FeatureSwitchEnabledTest, TrueFieldTrialValue) {
|
|
|
| {
|
| // A default-disabled switch should be enabled because of the field trial.
|
| - FeatureSwitch default_disabled_switch(&command_line_, kSwitchName,
|
| - kFieldTrialName,
|
| - FeatureSwitch::DEFAULT_DISABLED);
|
| + FeatureSwitch default_disabled_switch(
|
| + &command_line_, kSwitchName,
|
| + std::vector<std::string>(1, kFieldTrialName),
|
| + FeatureSwitch::DEFAULT_DISABLED);
|
| EXPECT_TRUE(default_disabled_switch.IsEnabled());
|
| // Scoped overrides override everything.
|
| FeatureSwitch::ScopedOverride scoped_override(&default_disabled_switch,
|
| @@ -185,9 +195,10 @@ TEST_F(FeatureSwitchEnabledTest, FalseFieldTrialValue) {
|
| scoped_refptr<base::FieldTrial> disabled_trial = CreateFieldTrial("Disabled");
|
| {
|
| // A default-enabled switch should be disabled because of the field trial.
|
| - FeatureSwitch default_enabled_switch(&command_line_, kSwitchName,
|
| - kFieldTrialName,
|
| - FeatureSwitch::DEFAULT_ENABLED);
|
| + FeatureSwitch default_enabled_switch(
|
| + &command_line_, kSwitchName,
|
| + std::vector<std::string>(1, kFieldTrialName),
|
| + FeatureSwitch::DEFAULT_ENABLED);
|
| EXPECT_FALSE(default_enabled_switch.IsEnabled());
|
| // Scoped overrides override everything.
|
| FeatureSwitch::ScopedOverride scoped_override(&default_enabled_switch,
|
| @@ -197,9 +208,10 @@ TEST_F(FeatureSwitchEnabledTest, FalseFieldTrialValue) {
|
|
|
| {
|
| // A default-disabled switch should remain disabled.
|
| - FeatureSwitch default_disabled_switch(&command_line_, kSwitchName,
|
| - kFieldTrialName,
|
| - FeatureSwitch::DEFAULT_DISABLED);
|
| + FeatureSwitch default_disabled_switch(
|
| + &command_line_, kSwitchName,
|
| + std::vector<std::string>(1, kFieldTrialName),
|
| + FeatureSwitch::DEFAULT_DISABLED);
|
| EXPECT_FALSE(default_disabled_switch.IsEnabled());
|
| // Scoped overrides override everything.
|
| FeatureSwitch::ScopedOverride scoped_override(&default_disabled_switch,
|
| @@ -207,3 +219,35 @@ TEST_F(FeatureSwitchEnabledTest, FalseFieldTrialValue) {
|
| EXPECT_TRUE(default_disabled_switch.IsEnabled());
|
| }
|
| }
|
| +
|
| +TEST_F(FeatureSwitchEnabledTest,
|
| + TrueFieldTrialValueAndTrueRequiredFieldTrialValue) {
|
| + std::vector<std::string> required_trials;
|
| + base::FieldTrialList field_trials(nullptr);
|
| + scoped_refptr<base::FieldTrial> enabled_trial = CreateFieldTrial("Enabled");
|
| + required_trials.push_back(kFieldTrialName);
|
| + const char* required_trial_name = "required-trial";
|
| + scoped_refptr<base::FieldTrial> enabled_required_trial =
|
| + CreateFieldTrialWithName(required_trial_name, "Enabled");
|
| + required_trials.push_back(required_trial_name);
|
| + FeatureSwitch trial_enabled_switch(&command_line_, kSwitchName,
|
| + required_trials,
|
| + FeatureSwitch::DEFAULT_DISABLED);
|
| + EXPECT_TRUE(trial_enabled_switch.IsEnabled());
|
| +}
|
| +
|
| +TEST_F(FeatureSwitchEnabledTest,
|
| + TrueFieldTrialValueAndFalseRequiredFieldTrialValue) {
|
| + std::vector<std::string> required_trials;
|
| + base::FieldTrialList field_trials(nullptr);
|
| + scoped_refptr<base::FieldTrial> enabled_trial = CreateFieldTrial("Enabled");
|
| + required_trials.push_back(kFieldTrialName);
|
| + const char* required_trial_name = "required-trial";
|
| + scoped_refptr<base::FieldTrial> enabled_required_trial =
|
| + CreateFieldTrialWithName(required_trial_name, "Disabled");
|
| + required_trials.push_back(required_trial_name);
|
| + FeatureSwitch trial_enabled_switch(&command_line_, kSwitchName,
|
| + required_trials,
|
| + FeatureSwitch::DEFAULT_DISABLED);
|
| + EXPECT_FALSE(trial_enabled_switch.IsEnabled());
|
| +}
|
|
|