Index: base/metrics/field_trial_unittest.cc |
diff --git a/base/metrics/field_trial_unittest.cc b/base/metrics/field_trial_unittest.cc |
index ce95c2ae15b12e510a0abc47b0a6157dc94f1c60..fe6eaf2097e9acbef4d8bdeafadc51447058c6f4 100644 |
--- a/base/metrics/field_trial_unittest.cc |
+++ b/base/metrics/field_trial_unittest.cc |
@@ -311,6 +311,36 @@ TEST_F(FieldTrialTest, ActiveGroups) { |
} |
} |
+TEST_F(FieldTrialTest, AllGroups) { |
+ FieldTrial::FieldTrialState field_trial_state; |
+ std::string one_winner("One Winner"); |
+ scoped_refptr<FieldTrial> trial = |
+ CreateFieldTrial(one_winner, 10, "Default", NULL); |
+ std::string winner("Winner"); |
+ trial->AppendGroup(winner, 10); |
+ EXPECT_TRUE(trial->GetState(&field_trial_state)); |
+ EXPECT_EQ(one_winner, field_trial_state.trial_name); |
+ EXPECT_EQ(winner, field_trial_state.group_name); |
+ trial->group(); |
+ EXPECT_TRUE(trial->GetState(&field_trial_state)); |
+ EXPECT_EQ(one_winner, field_trial_state.trial_name); |
+ EXPECT_EQ(winner, field_trial_state.group_name); |
+ |
+ std::string multi_group("MultiGroup"); |
+ scoped_refptr<FieldTrial> multi_group_trial = |
+ CreateFieldTrial(multi_group, 9, "Default", NULL); |
+ |
+ multi_group_trial->AppendGroup("Me", 3); |
+ multi_group_trial->AppendGroup("You", 3); |
+ multi_group_trial->AppendGroup("Them", 3); |
+ EXPECT_TRUE(multi_group_trial->GetState(&field_trial_state)); |
+ // Finalize the group selection by accessing the selected group. |
+ multi_group_trial->group(); |
+ EXPECT_TRUE(multi_group_trial->GetState(&field_trial_state)); |
+ EXPECT_EQ(multi_group, field_trial_state.trial_name); |
+ EXPECT_EQ(multi_group_trial->group_name(), field_trial_state.group_name); |
+} |
+ |
TEST_F(FieldTrialTest, ActiveGroupsNotFinalized) { |
const char kTrialName[] = "TestTrial"; |
const char kSecondaryGroupName[] = "SecondaryGroup"; |