diff options
author | asvitkine@chromium.org <asvitkine@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-11-13 06:31:09 +0000 |
---|---|---|
committer | asvitkine@chromium.org <asvitkine@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-11-13 06:31:09 +0000 |
commit | e290b033cdbebdd0aaf0738d0f62a0beb10030fe (patch) | |
tree | 6533ed5f30eff0ba29493e7e1864effec29a35df /base/metrics/field_trial_unittest.cc | |
parent | 3bcb02d0047b096b838f950d51bca17aa7f90292 (diff) | |
download | chromium_src-e290b033cdbebdd0aaf0738d0f62a0beb10030fe.zip chromium_src-e290b033cdbebdd0aaf0738d0f62a0beb10030fe.tar.gz chromium_src-e290b033cdbebdd0aaf0738d0f62a0beb10030fe.tar.bz2 |
Ensure that field trials synced to the renderer process are considered "active".
http://crrev.com/166168 made trials on which group() hasn't been called not get
reported. This resulted in renderer crash reports not being tagged with field
trials because group() wasn't called on the renderer side after they are
synchronized from the browser process.
This change makes CreateTrialsFromString() mark trials as used as well as
making trials synchronized to the renderer later via OnSetFieldTrialGroup()
notification also get marked as used.
Also fixes a couple of lint warnings in chrome_render_process_observer.cc and
changes field_trial_unittest.cc to not use a deprecated function.
BUG=158801
TEST=New FieldTrialTest.CreateFieldTrialIsActive test.
Review URL: https://chromiumcodereview.appspot.com/11376002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@167313 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/metrics/field_trial_unittest.cc')
-rw-r--r-- | base/metrics/field_trial_unittest.cc | 46 |
1 files changed, 41 insertions, 5 deletions
diff --git a/base/metrics/field_trial_unittest.cc b/base/metrics/field_trial_unittest.cc index 673e6b6..1ab8467 100644 --- a/base/metrics/field_trial_unittest.cc +++ b/base/metrics/field_trial_unittest.cc @@ -430,6 +430,31 @@ TEST_F(FieldTrialTest, DuplicateRestore) { EXPECT_FALSE(FieldTrialList::CreateTrialsFromString("Some name/Loser/")); } +TEST_F(FieldTrialTest, CreateTrialsFromStringAreActive) { + ASSERT_FALSE(FieldTrialList::TrialExists("Abc")); + ASSERT_FALSE(FieldTrialList::TrialExists("Xyz")); + ASSERT_TRUE(FieldTrialList::CreateTrialsFromString("Abc/def/Xyz/zyx/")); + + FieldTrial::ActiveGroups active_groups; + FieldTrialList::GetActiveFieldTrialGroups(&active_groups); + ASSERT_EQ(2U, active_groups.size()); + EXPECT_EQ("Abc", active_groups[0].trial); + EXPECT_EQ("def", active_groups[0].group); + EXPECT_EQ("Xyz", active_groups[1].trial); + EXPECT_EQ("zyx", active_groups[1].group); +} + +TEST_F(FieldTrialTest, CreateTrialsFromStringObserver) { + ASSERT_FALSE(FieldTrialList::TrialExists("Abc")); + + TestFieldTrialObserver observer; + ASSERT_TRUE(FieldTrialList::CreateTrialsFromString("Abc/def/")); + + message_loop_.RunUntilIdle(); + EXPECT_EQ("Abc", observer.trial_name()); + EXPECT_EQ("def", observer.group_name()); +} + TEST_F(FieldTrialTest, CreateFieldTrial) { ASSERT_FALSE(FieldTrialList::TrialExists("Some_name")); @@ -441,6 +466,17 @@ TEST_F(FieldTrialTest, CreateFieldTrial) { EXPECT_EQ("Some_name", trial->name()); } +TEST_F(FieldTrialTest, CreateFieldTrialIsNotActive) { + const char kTrialName[] = "CreateFieldTrialIsActiveTrial"; + const char kWinnerGroup[] = "Winner"; + ASSERT_FALSE(FieldTrialList::TrialExists(kTrialName)); + FieldTrialList::CreateFieldTrial(kTrialName, kWinnerGroup); + + FieldTrial::ActiveGroups active_groups; + FieldTrialList::GetActiveFieldTrialGroups(&active_groups); + EXPECT_TRUE(active_groups.empty()); +} + TEST_F(FieldTrialTest, DuplicateFieldTrial) { FieldTrial* trial = FieldTrialList::FactoryGetFieldTrial( "Some_name", 10, "Default some name", next_year_, 12, 31, NULL); @@ -565,7 +601,7 @@ TEST_F(FieldTrialTest, Observe) { const int chosen_group = trial->group(); EXPECT_TRUE(chosen_group == default_group || chosen_group == secondary_group); - message_loop_.RunAllPending(); + message_loop_.RunUntilIdle(); EXPECT_EQ(kTrialName, observer.trial_name()); if (chosen_group == default_group) EXPECT_EQ(kDefaultGroupName, observer.group_name()); @@ -587,13 +623,13 @@ TEST_F(FieldTrialTest, ObserveDisabled) { trial->Disable(); // Observer shouldn't be notified of a disabled trial. - message_loop_.RunAllPending(); + message_loop_.RunUntilIdle(); EXPECT_TRUE(observer.trial_name().empty()); EXPECT_TRUE(observer.group_name().empty()); // Observer shouldn't be notified even after a |group()| call. EXPECT_EQ(default_group, trial->group()); - message_loop_.RunAllPending(); + message_loop_.RunUntilIdle(); EXPECT_TRUE(observer.trial_name().empty()); EXPECT_TRUE(observer.group_name().empty()); } @@ -613,13 +649,13 @@ TEST_F(FieldTrialTest, ObserveForcedDisabled) { trial->Disable(); // Observer shouldn't be notified of a disabled trial, even when forced. - message_loop_.RunAllPending(); + message_loop_.RunUntilIdle(); EXPECT_TRUE(observer.trial_name().empty()); EXPECT_TRUE(observer.group_name().empty()); // Observer shouldn't be notified even after a |group()| call. EXPECT_EQ(default_group, trial->group()); - message_loop_.RunAllPending(); + message_loop_.RunUntilIdle(); EXPECT_TRUE(observer.trial_name().empty()); EXPECT_TRUE(observer.group_name().empty()); } |