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

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

Issue 1366673002: Introduce a new FieldTrialList::IsTrialActive() API. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address nit. Created 5 years, 3 months 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
« no previous file with comments | « components/variations/variations_associated_data_unittest.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 <map> 7 #include <map>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
59 59
60 AddExperiment(kNonFlagGroupName, default_group_probability, &study); 60 AddExperiment(kNonFlagGroupName, default_group_probability, &study);
61 AddExperiment(kFlagGroup1Name, flag_group1_probability, &study) 61 AddExperiment(kFlagGroup1Name, flag_group1_probability, &study)
62 ->set_forcing_flag(kForcingFlag1); 62 ->set_forcing_flag(kForcingFlag1);
63 AddExperiment(kFlagGroup2Name, flag_group2_probability, &study) 63 AddExperiment(kFlagGroup2Name, flag_group2_probability, &study)
64 ->set_forcing_flag(kForcingFlag2); 64 ->set_forcing_flag(kForcingFlag2);
65 65
66 return study; 66 return study;
67 } 67 }
68 68
69 // Tests whether a field trial is active (i.e. group() has been called on it).
70 bool IsFieldTrialActive(const std::string& trial_name) {
71 base::FieldTrial::ActiveGroups active_groups;
72 base::FieldTrialList::GetActiveFieldTrialGroups(&active_groups);
73 for (size_t i = 0; i < active_groups.size(); ++i) {
74 if (active_groups[i].trial_name == trial_name)
75 return true;
76 }
77 return false;
78 }
79
80 class TestOverrideStringCallback { 69 class TestOverrideStringCallback {
81 public: 70 public:
82 typedef std::map<uint32_t, base::string16> OverrideMap; 71 typedef std::map<uint32_t, base::string16> OverrideMap;
83 72
84 TestOverrideStringCallback() 73 TestOverrideStringCallback()
85 : callback_(base::Bind(&TestOverrideStringCallback::Override, 74 : callback_(base::Bind(&TestOverrideStringCallback::Override,
86 base::Unretained(this))) {} 75 base::Unretained(this))) {}
87 76
88 virtual ~TestOverrideStringCallback() {} 77 virtual ~TestOverrideStringCallback() {}
89 78
(...skipping 354 matching lines...) Expand 10 before | Expand all | Expand 10 after
444 study3->set_activation_type(Study_ActivationType_ACTIVATION_EXPLICIT); 433 study3->set_activation_type(Study_ActivationType_ACTIVATION_EXPLICIT);
445 434
446 VariationsSeedProcessor seed_processor; 435 VariationsSeedProcessor seed_processor;
447 seed_processor.CreateTrialsFromSeed( 436 seed_processor.CreateTrialsFromSeed(
448 seed, "en-CA", base::Time::Now(), base::Version("20.0.0.0"), 437 seed, "en-CA", base::Time::Now(), base::Version("20.0.0.0"),
449 Study_Channel_STABLE, Study_FormFactor_DESKTOP, "", "", "", 438 Study_Channel_STABLE, Study_FormFactor_DESKTOP, "", "", "",
450 override_callback_.callback()); 439 override_callback_.callback());
451 440
452 // Non-specified and ACTIVATION_EXPLICIT should not start active, but 441 // Non-specified and ACTIVATION_EXPLICIT should not start active, but
453 // ACTIVATION_AUTO should. 442 // ACTIVATION_AUTO should.
454 EXPECT_FALSE(IsFieldTrialActive("A")); 443 EXPECT_FALSE(base::FieldTrialList::IsTrialActive("A"));
455 EXPECT_TRUE(IsFieldTrialActive("B")); 444 EXPECT_TRUE(base::FieldTrialList::IsTrialActive("B"));
456 EXPECT_FALSE(IsFieldTrialActive("C")); 445 EXPECT_FALSE(base::FieldTrialList::IsTrialActive("C"));
457 446
458 EXPECT_EQ("AA", base::FieldTrialList::FindFullName("A")); 447 EXPECT_EQ("AA", base::FieldTrialList::FindFullName("A"));
459 EXPECT_EQ("BB", base::FieldTrialList::FindFullName("B")); 448 EXPECT_EQ("BB", base::FieldTrialList::FindFullName("B"));
460 EXPECT_EQ("CC", base::FieldTrialList::FindFullName("C")); 449 EXPECT_EQ("CC", base::FieldTrialList::FindFullName("C"));
461 450
462 // Now, all studies should be active. 451 // Now, all studies should be active.
463 EXPECT_TRUE(IsFieldTrialActive("A")); 452 EXPECT_TRUE(base::FieldTrialList::IsTrialActive("A"));
464 EXPECT_TRUE(IsFieldTrialActive("B")); 453 EXPECT_TRUE(base::FieldTrialList::IsTrialActive("B"));
465 EXPECT_TRUE(IsFieldTrialActive("C")); 454 EXPECT_TRUE(base::FieldTrialList::IsTrialActive("C"));
466 } 455 }
467 456
468 TEST_F(VariationsSeedProcessorTest, StartsActiveWithFlag) { 457 TEST_F(VariationsSeedProcessorTest, StartsActiveWithFlag) {
469 base::CommandLine::ForCurrentProcess()->AppendSwitch(kForcingFlag1); 458 base::CommandLine::ForCurrentProcess()->AppendSwitch(kForcingFlag1);
470 459
471 base::FieldTrialList field_trial_list(NULL); 460 base::FieldTrialList field_trial_list(NULL);
472 461
473 Study study = CreateStudyWithFlagGroups(100, 0, 0); 462 Study study = CreateStudyWithFlagGroups(100, 0, 0);
474 study.set_activation_type(Study_ActivationType_ACTIVATION_AUTO); 463 study.set_activation_type(Study_ActivationType_ACTIVATION_AUTO);
475 464
476 EXPECT_TRUE(CreateTrialFromStudy(&study)); 465 EXPECT_TRUE(CreateTrialFromStudy(&study));
477 EXPECT_TRUE(IsFieldTrialActive(kFlagStudyName)); 466 EXPECT_TRUE(base::FieldTrialList::IsTrialActive(kFlagStudyName));
478 467
479 EXPECT_EQ(kFlagGroup1Name, 468 EXPECT_EQ(kFlagGroup1Name,
480 base::FieldTrialList::FindFullName(kFlagStudyName)); 469 base::FieldTrialList::FindFullName(kFlagStudyName));
481 } 470 }
482 471
483 TEST_F(VariationsSeedProcessorTest, ForcingFlagAlreadyForced) { 472 TEST_F(VariationsSeedProcessorTest, ForcingFlagAlreadyForced) {
484 Study study = CreateStudyWithFlagGroups(100, 0, 0); 473 Study study = CreateStudyWithFlagGroups(100, 0, 0);
485 ASSERT_EQ(kNonFlagGroupName, study.experiment(0).name()); 474 ASSERT_EQ(kNonFlagGroupName, study.experiment(0).name());
486 Study_Experiment_Param* param = study.mutable_experiment(0)->add_param(); 475 Study_Experiment_Param* param = study.mutable_experiment(0)->add_param();
487 param->set_name("x"); 476 param->set_name("x");
(...skipping 10 matching lines...) Expand all
498 base::FieldTrialList::FindFullName(study.name())); 487 base::FieldTrialList::FindFullName(study.name()));
499 488
500 // Check that params and experiment ids correspond. 489 // Check that params and experiment ids correspond.
501 EXPECT_EQ("y", GetVariationParamValue(study.name(), "x")); 490 EXPECT_EQ("y", GetVariationParamValue(study.name(), "x"));
502 VariationID id = GetGoogleVariationID(GOOGLE_WEB_PROPERTIES, kFlagStudyName, 491 VariationID id = GetGoogleVariationID(GOOGLE_WEB_PROPERTIES, kFlagStudyName,
503 kNonFlagGroupName); 492 kNonFlagGroupName);
504 EXPECT_EQ(kExperimentId, id); 493 EXPECT_EQ(kExperimentId, id);
505 } 494 }
506 495
507 } // namespace variations 496 } // namespace variations
OLDNEW
« no previous file with comments | « components/variations/variations_associated_data_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698