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

Side by Side Diff: components/variations/variations_seed_processor_unittest.cc

Issue 62953004: Support variation params for forcing_flag groups. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 7 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 | Annotate | Revision Log
« no previous file with comments | « components/variations/variations_seed_processor.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "components/variations/variations_seed_processor.h" 5 #include "components/variations/variations_seed_processor.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/strings/string_split.h" 10 #include "base/strings/string_split.h"
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
66 base::FieldTrialList::GetActiveFieldTrialGroups(&active_groups); 66 base::FieldTrialList::GetActiveFieldTrialGroups(&active_groups);
67 for (size_t i = 0; i < active_groups.size(); ++i) { 67 for (size_t i = 0; i < active_groups.size(); ++i) {
68 if (active_groups[i].trial_name == trial_name) 68 if (active_groups[i].trial_name == trial_name)
69 return true; 69 return true;
70 } 70 }
71 return false; 71 return false;
72 } 72 }
73 73
74 } // namespace 74 } // namespace
75 75
76 TEST(VariationsSeedProcessorTest, CheckStudyChannel) { 76 class VariationsSeedProcessorTest : public ::testing::Test {
77 public:
78 VariationsSeedProcessorTest() {
79 }
80
81 virtual ~VariationsSeedProcessorTest() {
82 // Ensure that the maps are cleared between tests, since they are stored as
83 // process singletons.
84 testing::ClearAllVariationIDs();
85 testing::ClearAllVariationParams();
86 }
87
88 private:
89 DISALLOW_COPY_AND_ASSIGN(VariationsSeedProcessorTest);
90 };
91
92 TEST_F(VariationsSeedProcessorTest, CheckStudyChannel) {
77 VariationsSeedProcessor seed_processor; 93 VariationsSeedProcessor seed_processor;
78 94
79 const Study_Channel channels[] = { 95 const Study_Channel channels[] = {
80 Study_Channel_CANARY, 96 Study_Channel_CANARY,
81 Study_Channel_DEV, 97 Study_Channel_DEV,
82 Study_Channel_BETA, 98 Study_Channel_BETA,
83 Study_Channel_STABLE, 99 Study_Channel_STABLE,
84 }; 100 };
85 bool channel_added[arraysize(channels)] = { 0 }; 101 bool channel_added[arraysize(channels)] = { 0 };
86 102
(...skipping 25 matching lines...) Expand all
112 } 128 }
113 129
114 if (i < arraysize(channels)) { 130 if (i < arraysize(channels)) {
115 const int index = arraysize(channels) - i - 1; 131 const int index = arraysize(channels) - i - 1;
116 filter.add_channel(channels[index]); 132 filter.add_channel(channels[index]);
117 channel_added[index] = true; 133 channel_added[index] = true;
118 } 134 }
119 } 135 }
120 } 136 }
121 137
122 TEST(VariationsSeedProcessorTest, CheckStudyLocale) { 138 TEST_F(VariationsSeedProcessorTest, CheckStudyLocale) {
123 VariationsSeedProcessor seed_processor; 139 VariationsSeedProcessor seed_processor;
124 140
125 struct { 141 struct {
126 const char* filter_locales; 142 const char* filter_locales;
127 bool en_us_result; 143 bool en_us_result;
128 bool en_ca_result; 144 bool en_ca_result;
129 bool fr_result; 145 bool fr_result;
130 } test_cases[] = { 146 } test_cases[] = {
131 {"en-US", true, false, false}, 147 {"en-US", true, false, false},
132 {"en-US,en-CA,fr", true, true, true}, 148 {"en-US,en-CA,fr", true, true, true},
(...skipping 12 matching lines...) Expand all
145 filter.add_locale(filter_locales[j]); 161 filter.add_locale(filter_locales[j]);
146 EXPECT_EQ(test_cases[i].en_us_result, 162 EXPECT_EQ(test_cases[i].en_us_result,
147 seed_processor.CheckStudyLocale(filter, "en-US")); 163 seed_processor.CheckStudyLocale(filter, "en-US"));
148 EXPECT_EQ(test_cases[i].en_ca_result, 164 EXPECT_EQ(test_cases[i].en_ca_result,
149 seed_processor.CheckStudyLocale(filter, "en-CA")); 165 seed_processor.CheckStudyLocale(filter, "en-CA"));
150 EXPECT_EQ(test_cases[i].fr_result, 166 EXPECT_EQ(test_cases[i].fr_result,
151 seed_processor.CheckStudyLocale(filter, "fr")); 167 seed_processor.CheckStudyLocale(filter, "fr"));
152 } 168 }
153 } 169 }
154 170
155 TEST(VariationsSeedProcessorTest, CheckStudyPlatform) { 171 TEST_F(VariationsSeedProcessorTest, CheckStudyPlatform) {
156 VariationsSeedProcessor seed_processor; 172 VariationsSeedProcessor seed_processor;
157 173
158 const Study_Platform platforms[] = { 174 const Study_Platform platforms[] = {
159 Study_Platform_PLATFORM_WINDOWS, 175 Study_Platform_PLATFORM_WINDOWS,
160 Study_Platform_PLATFORM_MAC, 176 Study_Platform_PLATFORM_MAC,
161 Study_Platform_PLATFORM_LINUX, 177 Study_Platform_PLATFORM_LINUX,
162 Study_Platform_PLATFORM_CHROMEOS, 178 Study_Platform_PLATFORM_CHROMEOS,
163 Study_Platform_PLATFORM_ANDROID, 179 Study_Platform_PLATFORM_ANDROID,
164 Study_Platform_PLATFORM_IOS, 180 Study_Platform_PLATFORM_IOS,
165 }; 181 };
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
197 } 213 }
198 214
199 if (i < arraysize(platforms)) { 215 if (i < arraysize(platforms)) {
200 const int index = arraysize(platforms) - i - 1; 216 const int index = arraysize(platforms) - i - 1;
201 filter.add_platform(platforms[index]); 217 filter.add_platform(platforms[index]);
202 platform_added[index] = true; 218 platform_added[index] = true;
203 } 219 }
204 } 220 }
205 } 221 }
206 222
207 TEST(VariationsSeedProcessorTest, CheckStudyStartDate) { 223 TEST_F(VariationsSeedProcessorTest, CheckStudyStartDate) {
208 VariationsSeedProcessor seed_processor; 224 VariationsSeedProcessor seed_processor;
209 225
210 const base::Time now = base::Time::Now(); 226 const base::Time now = base::Time::Now();
211 const base::TimeDelta delta = base::TimeDelta::FromHours(1); 227 const base::TimeDelta delta = base::TimeDelta::FromHours(1);
212 const struct { 228 const struct {
213 const base::Time start_date; 229 const base::Time start_date;
214 bool expected_result; 230 bool expected_result;
215 } start_test_cases[] = { 231 } start_test_cases[] = {
216 { now - delta, true }, 232 { now - delta, true },
217 { now, true }, 233 { now, true },
218 { now + delta, false }, 234 { now + delta, false },
219 }; 235 };
220 236
221 Study_Filter filter; 237 Study_Filter filter;
222 238
223 // Start date not set should result in true. 239 // Start date not set should result in true.
224 EXPECT_TRUE(seed_processor.CheckStudyStartDate(filter, now)); 240 EXPECT_TRUE(seed_processor.CheckStudyStartDate(filter, now));
225 241
226 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(start_test_cases); ++i) { 242 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(start_test_cases); ++i) {
227 filter.set_start_date(TimeToProtoTime(start_test_cases[i].start_date)); 243 filter.set_start_date(TimeToProtoTime(start_test_cases[i].start_date));
228 const bool result = seed_processor.CheckStudyStartDate(filter, now); 244 const bool result = seed_processor.CheckStudyStartDate(filter, now);
229 EXPECT_EQ(start_test_cases[i].expected_result, result) 245 EXPECT_EQ(start_test_cases[i].expected_result, result)
230 << "Case " << i << " failed!"; 246 << "Case " << i << " failed!";
231 } 247 }
232 } 248 }
233 249
234 TEST(VariationsSeedProcessorTest, CheckStudyVersion) { 250 TEST_F(VariationsSeedProcessorTest, CheckStudyVersion) {
235 VariationsSeedProcessor seed_processor; 251 VariationsSeedProcessor seed_processor;
236 252
237 const struct { 253 const struct {
238 const char* min_version; 254 const char* min_version;
239 const char* version; 255 const char* version;
240 bool expected_result; 256 bool expected_result;
241 } min_test_cases[] = { 257 } min_test_cases[] = {
242 { "1.2.2", "1.2.3", true }, 258 { "1.2.2", "1.2.3", true },
243 { "1.2.3", "1.2.3", true }, 259 { "1.2.3", "1.2.3", true },
244 { "1.2.4", "1.2.3", false }, 260 { "1.2.4", "1.2.3", false },
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
316 const bool result = 332 const bool result =
317 seed_processor.CheckStudyVersion( 333 seed_processor.CheckStudyVersion(
318 filter, Version(max_test_cases[j].version)); 334 filter, Version(max_test_cases[j].version));
319 EXPECT_FALSE(result) << "Case " << i << "," << j << " failed!"; 335 EXPECT_FALSE(result) << "Case " << i << "," << j << " failed!";
320 } 336 }
321 } 337 }
322 } 338 }
323 } 339 }
324 340
325 // Test that the group for kForcingFlag1 is forced. 341 // Test that the group for kForcingFlag1 is forced.
326 TEST(VariationsSeedProcessorTest, ForceGroupWithFlag1) { 342 TEST_F(VariationsSeedProcessorTest, ForceGroupWithFlag1) {
327 CommandLine::ForCurrentProcess()->AppendSwitch(kForcingFlag1); 343 CommandLine::ForCurrentProcess()->AppendSwitch(kForcingFlag1);
328 344
329 base::FieldTrialList field_trial_list(NULL); 345 base::FieldTrialList field_trial_list(NULL);
330 346
331 Study study = CreateStudyWithFlagGroups(100, 0, 0); 347 Study study = CreateStudyWithFlagGroups(100, 0, 0);
332 VariationsSeedProcessor().CreateTrialFromStudy(study, false); 348 VariationsSeedProcessor().CreateTrialFromStudy(study, false);
333 349
334 EXPECT_EQ(kFlagGroup1Name, 350 EXPECT_EQ(kFlagGroup1Name,
335 base::FieldTrialList::FindFullName(kFlagStudyName)); 351 base::FieldTrialList::FindFullName(kFlagStudyName));
336 } 352 }
337 353
338 // Test that the group for kForcingFlag2 is forced. 354 // Test that the group for kForcingFlag2 is forced.
339 TEST(VariationsSeedProcessorTest, ForceGroupWithFlag2) { 355 TEST_F(VariationsSeedProcessorTest, ForceGroupWithFlag2) {
340 CommandLine::ForCurrentProcess()->AppendSwitch(kForcingFlag2); 356 CommandLine::ForCurrentProcess()->AppendSwitch(kForcingFlag2);
341 357
342 base::FieldTrialList field_trial_list(NULL); 358 base::FieldTrialList field_trial_list(NULL);
343 359
344 Study study = CreateStudyWithFlagGroups(100, 0, 0); 360 Study study = CreateStudyWithFlagGroups(100, 0, 0);
345 VariationsSeedProcessor().CreateTrialFromStudy(study, false); 361 VariationsSeedProcessor().CreateTrialFromStudy(study, false);
346 362
347 EXPECT_EQ(kFlagGroup2Name, 363 EXPECT_EQ(kFlagGroup2Name,
348 base::FieldTrialList::FindFullName(kFlagStudyName)); 364 base::FieldTrialList::FindFullName(kFlagStudyName));
349 } 365 }
350 366
351 TEST(VariationsSeedProcessorTest, ForceGroup_ChooseFirstGroupWithFlag) { 367 TEST_F(VariationsSeedProcessorTest, ForceGroup_ChooseFirstGroupWithFlag) {
352 // Add the flag to the command line arguments so the flag group is forced. 368 // Add the flag to the command line arguments so the flag group is forced.
353 CommandLine::ForCurrentProcess()->AppendSwitch(kForcingFlag1); 369 CommandLine::ForCurrentProcess()->AppendSwitch(kForcingFlag1);
354 CommandLine::ForCurrentProcess()->AppendSwitch(kForcingFlag2); 370 CommandLine::ForCurrentProcess()->AppendSwitch(kForcingFlag2);
355 371
356 base::FieldTrialList field_trial_list(NULL); 372 base::FieldTrialList field_trial_list(NULL);
357 373
358 Study study = CreateStudyWithFlagGroups(100, 0, 0); 374 Study study = CreateStudyWithFlagGroups(100, 0, 0);
359 VariationsSeedProcessor().CreateTrialFromStudy(study, false); 375 VariationsSeedProcessor().CreateTrialFromStudy(study, false);
360 376
361 EXPECT_EQ(kFlagGroup1Name, 377 EXPECT_EQ(kFlagGroup1Name,
362 base::FieldTrialList::FindFullName(kFlagStudyName)); 378 base::FieldTrialList::FindFullName(kFlagStudyName));
363 } 379 }
364 380
365 TEST(VariationsSeedProcessorTest, ForceGroup_DontChooseGroupWithFlag) { 381 TEST_F(VariationsSeedProcessorTest, ForceGroup_DontChooseGroupWithFlag) {
366 base::FieldTrialList field_trial_list(NULL); 382 base::FieldTrialList field_trial_list(NULL);
367 383
368 // The two flag groups are given high probability, which would normally make 384 // The two flag groups are given high probability, which would normally make
369 // them very likely to be chosen. They won't be chosen since flag groups are 385 // them very likely to be chosen. They won't be chosen since flag groups are
370 // never chosen when their flag isn't present. 386 // never chosen when their flag isn't present.
371 Study study = CreateStudyWithFlagGroups(1, 999, 999); 387 Study study = CreateStudyWithFlagGroups(1, 999, 999);
372 VariationsSeedProcessor().CreateTrialFromStudy(study, false); 388 VariationsSeedProcessor().CreateTrialFromStudy(study, false);
373 EXPECT_EQ(kNonFlagGroupName, 389 EXPECT_EQ(kNonFlagGroupName,
374 base::FieldTrialList::FindFullName(kFlagStudyName)); 390 base::FieldTrialList::FindFullName(kFlagStudyName));
375 } 391 }
376 392
377 TEST(VariationsSeedProcessorTest, IsStudyExpired) { 393 TEST_F(VariationsSeedProcessorTest, IsStudyExpired) {
378 VariationsSeedProcessor seed_processor; 394 VariationsSeedProcessor seed_processor;
379 395
380 const base::Time now = base::Time::Now(); 396 const base::Time now = base::Time::Now();
381 const base::TimeDelta delta = base::TimeDelta::FromHours(1); 397 const base::TimeDelta delta = base::TimeDelta::FromHours(1);
382 const struct { 398 const struct {
383 const base::Time expiry_date; 399 const base::Time expiry_date;
384 bool expected_result; 400 bool expected_result;
385 } expiry_test_cases[] = { 401 } expiry_test_cases[] = {
386 { now - delta, true }, 402 { now - delta, true },
387 { now, true }, 403 { now, true },
388 { now + delta, false }, 404 { now + delta, false },
389 }; 405 };
390 406
391 Study study; 407 Study study;
392 408
393 // Expiry date not set should result in false. 409 // Expiry date not set should result in false.
394 EXPECT_FALSE(seed_processor.IsStudyExpired(study, now)); 410 EXPECT_FALSE(seed_processor.IsStudyExpired(study, now));
395 411
396 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(expiry_test_cases); ++i) { 412 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(expiry_test_cases); ++i) {
397 study.set_expiry_date(TimeToProtoTime(expiry_test_cases[i].expiry_date)); 413 study.set_expiry_date(TimeToProtoTime(expiry_test_cases[i].expiry_date));
398 const bool result = seed_processor.IsStudyExpired(study, now); 414 const bool result = seed_processor.IsStudyExpired(study, now);
399 EXPECT_EQ(expiry_test_cases[i].expected_result, result) 415 EXPECT_EQ(expiry_test_cases[i].expected_result, result)
400 << "Case " << i << " failed!"; 416 << "Case " << i << " failed!";
401 } 417 }
402 } 418 }
403 419
404 TEST(VariationsSeedProcessorTest, NonExpiredStudyPrioritizedOverExpiredStudy) { 420 TEST_F(VariationsSeedProcessorTest,
421 NonExpiredStudyPrioritizedOverExpiredStudy) {
405 VariationsSeedProcessor seed_processor; 422 VariationsSeedProcessor seed_processor;
406 423
407 const std::string kTrialName = "A"; 424 const std::string kTrialName = "A";
408 const std::string kGroup1Name = "Group1"; 425 const std::string kGroup1Name = "Group1";
409 426
410 VariationsSeed seed; 427 VariationsSeed seed;
411 Study* study1 = seed.add_study(); 428 Study* study1 = seed.add_study();
412 study1->set_name(kTrialName); 429 study1->set_name(kTrialName);
413 study1->set_default_experiment_name("Default"); 430 study1->set_default_experiment_name("Default");
414 AddExperiment(kGroup1Name, 100, study1); 431 AddExperiment(kGroup1Name, 100, study1);
(...skipping 22 matching lines...) Expand all
437 { 454 {
438 base::FieldTrialList field_trial_list(NULL); 455 base::FieldTrialList field_trial_list(NULL);
439 study1->clear_expiry_date(); 456 study1->clear_expiry_date();
440 study2->set_expiry_date(TimeToProtoTime(year_ago)); 457 study2->set_expiry_date(TimeToProtoTime(year_ago));
441 seed_processor.CreateTrialsFromSeed(seed, "en-CA", base::Time::Now(), 458 seed_processor.CreateTrialsFromSeed(seed, "en-CA", base::Time::Now(),
442 version, Study_Channel_STABLE); 459 version, Study_Channel_STABLE);
443 EXPECT_EQ(kGroup1Name, base::FieldTrialList::FindFullName(kTrialName)); 460 EXPECT_EQ(kGroup1Name, base::FieldTrialList::FindFullName(kTrialName));
444 } 461 }
445 } 462 }
446 463
447 TEST(VariationsSeedProcessorTest, ValidateStudy) { 464 TEST_F(VariationsSeedProcessorTest, ValidateStudy) {
448 VariationsSeedProcessor seed_processor; 465 VariationsSeedProcessor seed_processor;
449 466
450 Study study; 467 Study study;
451 study.set_default_experiment_name("def"); 468 study.set_default_experiment_name("def");
452 AddExperiment("abc", 100, &study); 469 AddExperiment("abc", 100, &study);
453 Study_Experiment* default_group = AddExperiment("def", 200, &study); 470 Study_Experiment* default_group = AddExperiment("def", 200, &study);
454 471
455 base::FieldTrial::Probability total_probability = 0; 472 base::FieldTrial::Probability total_probability = 0;
456 bool valid = seed_processor.ValidateStudyAndComputeTotalProbability( 473 bool valid = seed_processor.ValidateStudyAndComputeTotalProbability(
457 study, &total_probability); 474 study, &total_probability);
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
507 &total_probability); 524 &total_probability);
508 ASSERT_TRUE(valid); 525 ASSERT_TRUE(valid);
509 Study_Experiment* repeated_group = study.add_experiment(); 526 Study_Experiment* repeated_group = study.add_experiment();
510 repeated_group->set_name("abc"); 527 repeated_group->set_name("abc");
511 repeated_group->set_probability_weight(1); 528 repeated_group->set_probability_weight(1);
512 valid = seed_processor.ValidateStudyAndComputeTotalProbability(study, 529 valid = seed_processor.ValidateStudyAndComputeTotalProbability(study,
513 &total_probability); 530 &total_probability);
514 EXPECT_FALSE(valid); 531 EXPECT_FALSE(valid);
515 } 532 }
516 533
517 TEST(VariationsSeedProcessorTest, VariationParams) { 534 TEST_F(VariationsSeedProcessorTest, VariationParams) {
518 base::FieldTrialList field_trial_list(NULL); 535 base::FieldTrialList field_trial_list(NULL);
519 VariationsSeedProcessor seed_processor; 536 VariationsSeedProcessor seed_processor;
520 537
521 Study study; 538 Study study;
522 study.set_name("Study1"); 539 study.set_name("Study1");
523 study.set_default_experiment_name("B"); 540 study.set_default_experiment_name("B");
524 541
525 Study_Experiment* experiment1 = AddExperiment("A", 1, &study); 542 Study_Experiment* experiment1 = AddExperiment("A", 1, &study);
526 Study_Experiment_Param* param = experiment1->add_param(); 543 Study_Experiment_Param* param = experiment1->add_param();
527 param->set_name("x"); 544 param->set_name("x");
528 param->set_value("y"); 545 param->set_value("y");
529 546
530 Study_Experiment* experiment2 = AddExperiment("B", 0, &study); 547 Study_Experiment* experiment2 = AddExperiment("B", 0, &study);
531 548
532 seed_processor.CreateTrialFromStudy(study, false); 549 seed_processor.CreateTrialFromStudy(study, false);
533 EXPECT_EQ("y", GetVariationParamValue("Study1", "x")); 550 EXPECT_EQ("y", GetVariationParamValue("Study1", "x"));
534 551
535 study.set_name("Study2"); 552 study.set_name("Study2");
536 experiment1->set_probability_weight(0); 553 experiment1->set_probability_weight(0);
537 experiment2->set_probability_weight(1); 554 experiment2->set_probability_weight(1);
538 seed_processor.CreateTrialFromStudy(study, false); 555 seed_processor.CreateTrialFromStudy(study, false);
539 EXPECT_EQ(std::string(), GetVariationParamValue("Study2", "x")); 556 EXPECT_EQ(std::string(), GetVariationParamValue("Study2", "x"));
540 } 557 }
541 558
542 TEST(VariationsSeedProcessorTest, StartsActive) { 559 TEST_F(VariationsSeedProcessorTest, VariationParamsWithForcingFlag) {
560 Study study = CreateStudyWithFlagGroups(100, 0, 0);
561 ASSERT_EQ(kForcingFlag1, study.experiment(1).forcing_flag());
562 Study_Experiment_Param* param = study.mutable_experiment(1)->add_param();
563 param->set_name("x");
564 param->set_value("y");
565
566 CommandLine::ForCurrentProcess()->AppendSwitch(kForcingFlag1);
567 base::FieldTrialList field_trial_list(NULL);
568 VariationsSeedProcessor().CreateTrialFromStudy(study, false);
569 EXPECT_EQ(kFlagGroup1Name, base::FieldTrialList::FindFullName(study.name()));
570 EXPECT_EQ("y", GetVariationParamValue(study.name(), "x"));
571 }
572
573 TEST_F(VariationsSeedProcessorTest, StartsActive) {
543 base::FieldTrialList field_trial_list(NULL); 574 base::FieldTrialList field_trial_list(NULL);
544 575
545 VariationsSeed seed; 576 VariationsSeed seed;
546 Study* study1 = seed.add_study(); 577 Study* study1 = seed.add_study();
547 study1->set_name("A"); 578 study1->set_name("A");
548 study1->set_default_experiment_name("Default"); 579 study1->set_default_experiment_name("Default");
549 AddExperiment("AA", 100, study1); 580 AddExperiment("AA", 100, study1);
550 AddExperiment("Default", 0, study1); 581 AddExperiment("Default", 0, study1);
551 582
552 Study* study2 = seed.add_study(); 583 Study* study2 = seed.add_study();
(...skipping 25 matching lines...) Expand all
578 EXPECT_EQ("BB", base::FieldTrialList::FindFullName("B")); 609 EXPECT_EQ("BB", base::FieldTrialList::FindFullName("B"));
579 EXPECT_EQ("CC", base::FieldTrialList::FindFullName("C")); 610 EXPECT_EQ("CC", base::FieldTrialList::FindFullName("C"));
580 611
581 // Now, all studies should be active. 612 // Now, all studies should be active.
582 EXPECT_TRUE(IsFieldTrialActive("A")); 613 EXPECT_TRUE(IsFieldTrialActive("A"));
583 EXPECT_TRUE(IsFieldTrialActive("B")); 614 EXPECT_TRUE(IsFieldTrialActive("B"));
584 EXPECT_TRUE(IsFieldTrialActive("C")); 615 EXPECT_TRUE(IsFieldTrialActive("C"));
585 } 616 }
586 617
587 } // namespace chrome_variations 618 } // namespace chrome_variations
OLDNEW
« no previous file with comments | « components/variations/variations_seed_processor.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698