Chromium Code Reviews| Index: components/variations/variations_seed_processor_unittest.cc |
| diff --git a/components/variations/variations_seed_processor_unittest.cc b/components/variations/variations_seed_processor_unittest.cc |
| index d2a2959529aa06fc3f96d641140e0cb7564b29b7..cccacfc45df35ecfe585fef4527ab11a348484af 100644 |
| --- a/components/variations/variations_seed_processor_unittest.cc |
| +++ b/components/variations/variations_seed_processor_unittest.cc |
| @@ -359,6 +359,47 @@ TEST_F(VariationsSeedProcessorTest, ValidateStudy) { |
| EXPECT_FALSE(processed_study.Init(&study, false)); |
| } |
| +TEST_F(VariationsSeedProcessorTest, ValidateStudySingleFeature) { |
| + Study study; |
| + study.set_default_experiment_name("def"); |
| + Study_Experiment* exp1 = AddExperiment("exp1", 100, &study); |
| + Study_Experiment* exp2 = AddExperiment("exp2", 100, &study); |
| + Study_Experiment* exp3 = AddExperiment("exp3", 100, &study); |
| + AddExperiment("def", 100, &study); |
| + |
| + ProcessedStudy processed_study; |
| + EXPECT_TRUE(processed_study.Init(&study, false)); |
| + EXPECT_EQ(400, processed_study.total_probability()); |
| + |
| + EXPECT_EQ(std::string(), processed_study.single_feature_name()); |
| + |
| + const char kFeature1Name[] = "Feature1"; |
| + const char kFeature2Name[] = "Feature2"; |
| + |
| + exp1->mutable_feature_association()->add_enable_feature(kFeature1Name); |
| + EXPECT_TRUE(processed_study.Init(&study, false)); |
| + EXPECT_EQ(kFeature1Name, processed_study.single_feature_name()); |
| + |
| + exp1->clear_feature_association(); |
| + exp1->mutable_feature_association()->add_enable_feature(kFeature1Name); |
| + exp1->mutable_feature_association()->add_enable_feature(kFeature2Name); |
| + EXPECT_TRUE(processed_study.Init(&study, false)); |
| + EXPECT_EQ(std::string(), processed_study.single_feature_name()); |
|
rkaplow
2016/03/17 15:08:48
maybe note what this is testing (multiple features
Alexei Svitkine (slow)
2016/03/17 15:24:59
Done.
|
| + |
| + exp1->clear_feature_association(); |
| + exp1->mutable_feature_association()->add_enable_feature(kFeature1Name); |
| + exp2->mutable_feature_association()->add_enable_feature(kFeature1Name); |
| + exp3->mutable_feature_association()->add_disable_feature(kFeature1Name); |
| + EXPECT_TRUE(processed_study.Init(&study, false)); |
| + EXPECT_EQ(kFeature1Name, processed_study.single_feature_name()); |
| + |
| + // Setting a different feature name on exp2 should cause |single_feature_name| |
| + // to be not set. |
| + exp2->mutable_feature_association()->set_enable_feature(0, kFeature2Name); |
| + EXPECT_TRUE(processed_study.Init(&study, false)); |
| + EXPECT_EQ(std::string(), processed_study.single_feature_name()); |
| +} |
| + |
| TEST_F(VariationsSeedProcessorTest, ProcessedStudyAllAssignmentsToOneGroup) { |
| Study study; |
| study.set_default_experiment_name("def"); |
| @@ -613,14 +654,13 @@ TEST_F(VariationsSeedProcessorTest, FeatureAssociationAndForcing) { |
| // Check what happens without and command-line forcing flags - that the |
| // |one_hundred_percent_group| gets correctly selected and does the right |
| // thing w.r.t. to affecting the feature / activating the trial. |
| - {kFeatureOffByDefault, "", "", DEFAULT_GROUP, kDefaultGroup, false, |
| - false}, |
| + {kFeatureOffByDefault, "", "", DEFAULT_GROUP, kDefaultGroup, false, true}, |
| {kFeatureOffByDefault, "", "", ENABLE_GROUP, kEnabledGroup, true, true}, |
| {kFeatureOffByDefault, "", "", DISABLE_GROUP, kDisabledGroup, false, |
| true}, |
| // Do the same as above, but for kFeatureOnByDefault feature. |
| - {kFeatureOnByDefault, "", "", DEFAULT_GROUP, kDefaultGroup, true, false}, |
| + {kFeatureOnByDefault, "", "", DEFAULT_GROUP, kDefaultGroup, true, true}, |
| {kFeatureOnByDefault, "", "", ENABLE_GROUP, kEnabledGroup, true, true}, |
| {kFeatureOnByDefault, "", "", DISABLE_GROUP, kDisabledGroup, false, true}, |