Index: base/metrics/field_trial_unittest.cc |
diff --git a/base/metrics/field_trial_unittest.cc b/base/metrics/field_trial_unittest.cc |
index 50d2e6edfd7083ff51b1aca9d0f9b75ae37435e4..7f266e86a5f6206d3d1675d769dad12e6296c4d4 100644 |
--- a/base/metrics/field_trial_unittest.cc |
+++ b/base/metrics/field_trial_unittest.cc |
@@ -310,6 +310,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->GetFieldTrialState(&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->GetFieldTrialState(&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->GetFieldTrialState(&field_trial_state)); |
+ // Finalize the group selection by accessing the selected group. |
+ multi_group_trial->group(); |
+ EXPECT_TRUE(multi_group_trial->GetFieldTrialState(&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"; |