| Index: base/metrics/field_trial_unittest.cc
|
| ===================================================================
|
| --- base/metrics/field_trial_unittest.cc (revision 209705)
|
| +++ base/metrics/field_trial_unittest.cc (working copy)
|
| @@ -393,7 +393,8 @@
|
| ASSERT_FALSE(FieldTrialList::TrialExists("Some_name"));
|
| ASSERT_FALSE(FieldTrialList::TrialExists("xxx"));
|
|
|
| - FieldTrialList::CreateTrialsFromString("Some_name/Winner/xxx/yyyy/");
|
| + FieldTrialList::CreateTrialsFromString("Some_name/Winner/xxx/yyyy/",
|
| + FieldTrialList::DONT_ACTIVATE_TRIALS);
|
|
|
| FieldTrial* trial = FieldTrialList::Find("Some_name");
|
| ASSERT_NE(static_cast<FieldTrial*>(NULL), trial);
|
| @@ -407,12 +408,14 @@
|
| }
|
|
|
| TEST_F(FieldTrialTest, BogusRestore) {
|
| - EXPECT_FALSE(FieldTrialList::CreateTrialsFromString("MissingSlash"));
|
| - EXPECT_FALSE(FieldTrialList::CreateTrialsFromString("MissingGroupName/"));
|
| EXPECT_FALSE(FieldTrialList::CreateTrialsFromString(
|
| - "MissingFinalSlash/gname"));
|
| + "MissingSlash", FieldTrialList::DONT_ACTIVATE_TRIALS));
|
| EXPECT_FALSE(FieldTrialList::CreateTrialsFromString(
|
| - "noname, only group/"));
|
| + "MissingGroupName/", FieldTrialList::DONT_ACTIVATE_TRIALS));
|
| + EXPECT_FALSE(FieldTrialList::CreateTrialsFromString(
|
| + "MissingFinalSlash/gname", FieldTrialList::DONT_ACTIVATE_TRIALS));
|
| + EXPECT_FALSE(FieldTrialList::CreateTrialsFromString(
|
| + "noname, only group/", FieldTrialList::DONT_ACTIVATE_TRIALS));
|
| }
|
|
|
| TEST_F(FieldTrialTest, DuplicateRestore) {
|
| @@ -426,16 +429,19 @@
|
| EXPECT_EQ("Some name/Winner/", save_string);
|
|
|
| // It is OK if we redundantly specify a winner.
|
| - EXPECT_TRUE(FieldTrialList::CreateTrialsFromString(save_string));
|
| + EXPECT_TRUE(FieldTrialList::CreateTrialsFromString(
|
| + save_string, FieldTrialList::DONT_ACTIVATE_TRIALS));
|
|
|
| // But it is an error to try to change to a different winner.
|
| - EXPECT_FALSE(FieldTrialList::CreateTrialsFromString("Some name/Loser/"));
|
| + EXPECT_FALSE(FieldTrialList::CreateTrialsFromString(
|
| + "Some name/Loser/", FieldTrialList::DONT_ACTIVATE_TRIALS));
|
| }
|
|
|
| -TEST_F(FieldTrialTest, CreateTrialsFromStringAreActive) {
|
| +TEST_F(FieldTrialTest, CreateTrialsFromStringActive) {
|
| ASSERT_FALSE(FieldTrialList::TrialExists("Abc"));
|
| ASSERT_FALSE(FieldTrialList::TrialExists("Xyz"));
|
| - ASSERT_TRUE(FieldTrialList::CreateTrialsFromString("Abc/def/Xyz/zyx/"));
|
| + ASSERT_TRUE(FieldTrialList::CreateTrialsFromString(
|
| + "Abc/def/Xyz/zyx/", FieldTrialList::ACTIVATE_TRIALS));
|
|
|
| FieldTrial::ActiveGroups active_groups;
|
| FieldTrialList::GetActiveFieldTrialGroups(&active_groups);
|
| @@ -446,17 +452,58 @@
|
| EXPECT_EQ("zyx", active_groups[1].group_name);
|
| }
|
|
|
| -TEST_F(FieldTrialTest, CreateTrialsFromStringObserver) {
|
| +TEST_F(FieldTrialTest, CreateTrialsFromStringNotActive) {
|
| ASSERT_FALSE(FieldTrialList::TrialExists("Abc"));
|
| + ASSERT_FALSE(FieldTrialList::TrialExists("Xyz"));
|
| + ASSERT_TRUE(FieldTrialList::CreateTrialsFromString(
|
| + "Abc/def/Xyz/zyx/", FieldTrialList::DONT_ACTIVATE_TRIALS));
|
|
|
| + FieldTrial::ActiveGroups active_groups;
|
| + FieldTrialList::GetActiveFieldTrialGroups(&active_groups);
|
| + ASSERT_TRUE(active_groups.empty());
|
| +
|
| + // Check that the values still get returned and querying them activates them.
|
| + EXPECT_EQ("def", FieldTrialList::FindFullName("Abc"));
|
| + EXPECT_EQ("zyx", FieldTrialList::FindFullName("Xyz"));
|
| +
|
| + FieldTrialList::GetActiveFieldTrialGroups(&active_groups);
|
| + ASSERT_EQ(2U, active_groups.size());
|
| + EXPECT_EQ("Abc", active_groups[0].trial_name);
|
| + EXPECT_EQ("def", active_groups[0].group_name);
|
| + EXPECT_EQ("Xyz", active_groups[1].trial_name);
|
| + EXPECT_EQ("zyx", active_groups[1].group_name);
|
| +}
|
| +
|
| +TEST_F(FieldTrialTest, CreateTrialsFromStringActiveObserver) {
|
| + ASSERT_FALSE(FieldTrialList::TrialExists("Abc"));
|
| +
|
| TestFieldTrialObserver observer;
|
| - ASSERT_TRUE(FieldTrialList::CreateTrialsFromString("Abc/def/"));
|
| + ASSERT_TRUE(FieldTrialList::CreateTrialsFromString(
|
| + "Abc/def/", FieldTrialList::ACTIVATE_TRIALS));
|
|
|
| RunLoop().RunUntilIdle();
|
| EXPECT_EQ("Abc", observer.trial_name());
|
| EXPECT_EQ("def", observer.group_name());
|
| }
|
|
|
| +TEST_F(FieldTrialTest, CreateTrialsFromStringNotActiveObserver) {
|
| + ASSERT_FALSE(FieldTrialList::TrialExists("Abc"));
|
| +
|
| + TestFieldTrialObserver observer;
|
| + ASSERT_TRUE(FieldTrialList::CreateTrialsFromString(
|
| + "Abc/def/", FieldTrialList::DONT_ACTIVATE_TRIALS));
|
| + RunLoop().RunUntilIdle();
|
| + // Observer shouldn't be notified.
|
| + EXPECT_TRUE(observer.trial_name().empty());
|
| +
|
| + // Check that the values still get returned and querying them activates them.
|
| + EXPECT_EQ("def", FieldTrialList::FindFullName("Abc"));
|
| +
|
| + RunLoop().RunUntilIdle();
|
| + EXPECT_EQ("Abc", observer.trial_name());
|
| + EXPECT_EQ("def", observer.group_name());
|
| +}
|
| +
|
| TEST_F(FieldTrialTest, CreateFieldTrial) {
|
| ASSERT_FALSE(FieldTrialList::TrialExists("Some_name"));
|
|
|
|
|