Chromium Code Reviews| Index: base/metrics/field_trial_unittest.cc |
| diff --git a/base/metrics/field_trial_unittest.cc b/base/metrics/field_trial_unittest.cc |
| index 0ad13a22be77e00e85cde99aa41b72af63fa79c5..c10077ce18da3e10bedbc709febf64ff7cdff9cc 100644 |
| --- a/base/metrics/field_trial_unittest.cc |
| +++ b/base/metrics/field_trial_unittest.cc |
| @@ -12,6 +12,7 @@ |
| #include "base/macros.h" |
| #include "base/memory/ptr_util.h" |
| #include "base/message_loop/message_loop.h" |
| +#include "base/metrics/field_trial_param_associator.h" |
| #include "base/rand_util.h" |
| #include "base/run_loop.h" |
| #include "base/strings/string_number_conversions.h" |
| @@ -1194,4 +1195,30 @@ TEST(FieldTrialListTest, AddTrialsToAllocator) { |
| EXPECT_EQ(save_string, check_string); |
| } |
| +TEST(FieldTrialListTest, AssociateFieldTrialParams) { |
| + std::string trial_name("Trial1"); |
| + std::string group_name("Group1"); |
| + |
| + // Create a field trial with some params. |
| + FieldTrialList field_trial_list(nullptr); |
| + FieldTrialList::CreateFieldTrial(trial_name, group_name); |
| + std::map<std::string, std::string> params; |
| + params["key1"] = "value1"; |
| + params["key2"] = "value2"; |
| + FieldTrialParamAssociator::GetInstance()->AssociateFieldTrialParams( |
| + trial_name, group_name, params); |
| + FieldTrialList::InstantiateFieldTrialAllocatorIfNeeded(); |
| + |
| + // Clear all cached params from the associator. |
| + FieldTrialParamAssociator::GetInstance()->ClearAllCachedParamsForTesting(); |
| + |
| + // Check that we fetch the param from shared memory properly. |
| + std::map<std::string, std::string> new_params; |
| + FieldTrialParamAssociator::GetInstance()->GetFieldTrialParams(trial_name, |
| + &new_params); |
| + EXPECT_EQ("value1", new_params["key1"]); |
| + EXPECT_EQ("value2", new_params["key2"]); |
| + EXPECT_EQ(static_cast<unsigned long>(2), new_params.size()); |
|
Alexei Svitkine (slow)
2016/11/23 17:23:40
Instead of the cast, I think you can do 2U
lawrencewu
2016/11/23 19:07:33
Done.
|
| +} |
| + |
| } // namespace base |