Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(270)

Side by Side Diff: base/metrics/field_trial_unittest.cc

Issue 700953002: Send all field trials from the browser. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@finch4
Patch Set: Responded to comments. Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/metrics/field_trial.h" 5 #include "base/metrics/field_trial.h"
6 6
7 #include "base/message_loop/message_loop.h" 7 #include "base/message_loop/message_loop.h"
8 #include "base/rand_util.h" 8 #include "base/rand_util.h"
9 #include "base/run_loop.h" 9 #include "base/run_loop.h"
10 #include "base/strings/string_number_conversions.h" 10 #include "base/strings/string_number_conversions.h"
(...skipping 292 matching lines...) Expand 10 before | Expand all | Expand 10 after
303 for (size_t i = 0; i < active_groups.size(); ++i) { 303 for (size_t i = 0; i < active_groups.size(); ++i) {
304 // Order is not guaranteed, so check all values. 304 // Order is not guaranteed, so check all values.
305 EXPECT_NE(no_group, active_groups[i].trial_name); 305 EXPECT_NE(no_group, active_groups[i].trial_name);
306 EXPECT_TRUE(one_winner != active_groups[i].trial_name || 306 EXPECT_TRUE(one_winner != active_groups[i].trial_name ||
307 winner == active_groups[i].group_name); 307 winner == active_groups[i].group_name);
308 EXPECT_TRUE(multi_group != active_groups[i].trial_name || 308 EXPECT_TRUE(multi_group != active_groups[i].trial_name ||
309 multi_group_trial->group_name() == active_groups[i].group_name); 309 multi_group_trial->group_name() == active_groups[i].group_name);
310 } 310 }
311 } 311 }
312 312
313 TEST_F(FieldTrialTest, AllGroups) {
314 FieldTrial::FieldTrialState field_trial_state;
315 std::string one_winner("One Winner");
316 scoped_refptr<FieldTrial> trial =
317 CreateFieldTrial(one_winner, 10, "Default", NULL);
318 std::string winner("Winner");
319 trial->AppendGroup(winner, 10);
320 EXPECT_TRUE(trial->GetFieldTrialState(&field_trial_state));
321 EXPECT_EQ(one_winner, field_trial_state.trial_name);
322 EXPECT_EQ(winner, field_trial_state.group_name);
323 trial->group();
324 EXPECT_TRUE(trial->GetFieldTrialState(&field_trial_state));
325 EXPECT_EQ(one_winner, field_trial_state.trial_name);
326 EXPECT_EQ(winner, field_trial_state.group_name);
327
328 std::string multi_group("MultiGroup");
329 scoped_refptr<FieldTrial> multi_group_trial =
330 CreateFieldTrial(multi_group, 9, "Default", NULL);
331
332 multi_group_trial->AppendGroup("Me", 3);
333 multi_group_trial->AppendGroup("You", 3);
334 multi_group_trial->AppendGroup("Them", 3);
335 EXPECT_TRUE(multi_group_trial->GetFieldTrialState(&field_trial_state));
336 // Finalize the group selection by accessing the selected group.
337 multi_group_trial->group();
338 EXPECT_TRUE(multi_group_trial->GetFieldTrialState(&field_trial_state));
339 EXPECT_EQ(multi_group, field_trial_state.trial_name);
340 EXPECT_EQ(multi_group_trial->group_name(), field_trial_state.group_name);
341 }
342
313 TEST_F(FieldTrialTest, ActiveGroupsNotFinalized) { 343 TEST_F(FieldTrialTest, ActiveGroupsNotFinalized) {
314 const char kTrialName[] = "TestTrial"; 344 const char kTrialName[] = "TestTrial";
315 const char kSecondaryGroupName[] = "SecondaryGroup"; 345 const char kSecondaryGroupName[] = "SecondaryGroup";
316 346
317 int default_group = -1; 347 int default_group = -1;
318 scoped_refptr<FieldTrial> trial = 348 scoped_refptr<FieldTrial> trial =
319 CreateFieldTrial(kTrialName, 100, kDefaultGroupName, &default_group); 349 CreateFieldTrial(kTrialName, 100, kDefaultGroupName, &default_group);
320 const int secondary_group = trial->AppendGroup(kSecondaryGroupName, 50); 350 const int secondary_group = trial->AppendGroup(kSecondaryGroupName, 50);
321 351
322 // Before |group()| is called, |GetActiveGroup()| should return false. 352 // Before |group()| is called, |GetActiveGroup()| should return false.
(...skipping 695 matching lines...) Expand 10 before | Expand all | Expand 10 after
1018 // Trying to instantiate a one-time randomized field trial before the 1048 // Trying to instantiate a one-time randomized field trial before the
1019 // FieldTrialList is created should crash. 1049 // FieldTrialList is created should crash.
1020 EXPECT_DEATH(FieldTrialList::FactoryGetFieldTrial( 1050 EXPECT_DEATH(FieldTrialList::FactoryGetFieldTrial(
1021 "OneTimeRandomizedTrialWithoutFieldTrialList", 100, kDefaultGroupName, 1051 "OneTimeRandomizedTrialWithoutFieldTrialList", 100, kDefaultGroupName,
1022 base::FieldTrialList::kNoExpirationYear, 1, 1, 1052 base::FieldTrialList::kNoExpirationYear, 1, 1,
1023 base::FieldTrial::ONE_TIME_RANDOMIZED, NULL), ""); 1053 base::FieldTrial::ONE_TIME_RANDOMIZED, NULL), "");
1024 } 1054 }
1025 #endif 1055 #endif
1026 1056
1027 } // namespace base 1057 } // namespace base
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698