Index: base/metrics/field_trial_unittest.cc |
diff --git a/base/metrics/field_trial_unittest.cc b/base/metrics/field_trial_unittest.cc |
index ed84d865d5ef081a4017f9e06eda7e9262ce3a4a..6cecc00fd8a80168720f5c93a8e24f7a8ed947a4 100644 |
--- a/base/metrics/field_trial_unittest.cc |
+++ b/base/metrics/field_trial_unittest.cc |
@@ -72,6 +72,8 @@ class FieldTrialTest : public testing::Test { |
private: |
MessageLoop message_loop_; |
FieldTrialList trial_list_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(FieldTrialTest); |
}; |
// Test registration, and also check that destructors are called for trials |
@@ -376,6 +378,28 @@ TEST_F(FieldTrialTest, ActiveGroupsNotFinalized) { |
EXPECT_EQ(active_group.group_name, active_groups[0].group_name); |
} |
+TEST_F(FieldTrialTest, GetGroupNameWithoutActivation) { |
+ const char kTrialName[] = "TestTrial"; |
+ const char kSecondaryGroupName[] = "SecondaryGroup"; |
+ |
+ int default_group = -1; |
+ scoped_refptr<FieldTrial> trial = |
+ CreateFieldTrial(kTrialName, 100, kDefaultGroupName, &default_group); |
+ trial->AppendGroup(kSecondaryGroupName, 50); |
+ |
+ // The trial should start inactive. |
+ EXPECT_FALSE(FieldTrialList::IsTrialActive(kTrialName)); |
+ |
+ // Calling |GetGroupNameWithoutActivation()| should not activate the trial. |
+ std::string group_name = trial->GetGroupNameWithoutActivation(); |
+ EXPECT_FALSE(group_name.empty()); |
+ EXPECT_FALSE(FieldTrialList::IsTrialActive(kTrialName)); |
+ |
+ // Calling |group_name()| should activate it and return the same group name. |
+ EXPECT_EQ(group_name, trial->group_name()); |
+ EXPECT_TRUE(FieldTrialList::IsTrialActive(kTrialName)); |
+} |
+ |
TEST_F(FieldTrialTest, Save) { |
std::string save_string; |