| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 "net/disk_cache/simple/simple_experiment.h" | 5 #include "net/disk_cache/simple/simple_experiment.h" |
| 6 | 6 |
| 7 #include <map> | 7 #include <map> |
| 8 #include <memory> | 8 #include <memory> |
| 9 #include <string> | 9 #include <string> |
| 10 #include <utility> | 10 #include <utility> |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 42 kTrialName, kGroupName, params); | 42 kTrialName, kGroupName, params); |
| 43 } | 43 } |
| 44 | 44 |
| 45 std::unique_ptr<base::FeatureList> feature_list(new base::FeatureList); | 45 std::unique_ptr<base::FeatureList> feature_list(new base::FeatureList); |
| 46 feature_list->RegisterFieldTrialOverride( | 46 feature_list->RegisterFieldTrialOverride( |
| 47 kSimpleSizeExperiment.name, base::FeatureList::OVERRIDE_ENABLE_FEATURE, | 47 kSimpleSizeExperiment.name, base::FeatureList::OVERRIDE_ENABLE_FEATURE, |
| 48 trial.get()); | 48 trial.get()); |
| 49 scoped_feature_list_.InitWithFeatureList(std::move(feature_list)); | 49 scoped_feature_list_.InitWithFeatureList(std::move(feature_list)); |
| 50 } | 50 } |
| 51 | 51 |
| 52 void ConfigureEvictWithSizeTrial(bool enabled, |
| 53 base::Optional<uint32_t> param) { |
| 54 const std::string kTrialName = "EvictWithSizeTrial"; |
| 55 const std::string kGroupName = "GroupFoo"; // Value not used |
| 56 |
| 57 scoped_refptr<base::FieldTrial> trial = |
| 58 base::FieldTrialList::CreateFieldTrial(kTrialName, kGroupName); |
| 59 |
| 60 if (param) { |
| 61 std::map<std::string, std::string> params; |
| 62 params[kSizeEvictionParam] = base::UintToString(param.value()); |
| 63 base::FieldTrialParamAssociator::GetInstance()->AssociateFieldTrialParams( |
| 64 kTrialName, kGroupName, params); |
| 65 } |
| 66 |
| 67 std::unique_ptr<base::FeatureList> feature_list(new base::FeatureList); |
| 68 feature_list->RegisterFieldTrialOverride( |
| 69 kSimpleCacheEvictionWithSizeExperiment.name, |
| 70 base::FeatureList::OVERRIDE_ENABLE_FEATURE, trial.get()); |
| 71 scoped_feature_list_.InitWithFeatureList(std::move(feature_list)); |
| 72 } |
| 73 |
| 52 std::unique_ptr<base::FieldTrialList> field_trial_list_; | 74 std::unique_ptr<base::FieldTrialList> field_trial_list_; |
| 53 base::test::ScopedFeatureList scoped_feature_list_; | 75 base::test::ScopedFeatureList scoped_feature_list_; |
| 54 }; | 76 }; |
| 55 | 77 |
| 56 TEST_F(SimpleExperimentTest, NoExperiment) { | 78 TEST_F(SimpleExperimentTest, NoExperiment) { |
| 57 SimpleExperiment experiment = GetSimpleExperiment(net::DISK_CACHE); | 79 SimpleExperiment experiment = GetSimpleExperiment(net::DISK_CACHE); |
| 58 EXPECT_EQ(SimpleExperimentType::NONE, experiment.type); | 80 EXPECT_EQ(SimpleExperimentType::NONE, experiment.type); |
| 59 EXPECT_EQ(0u, experiment.param); | 81 EXPECT_EQ(0u, experiment.param); |
| 60 } | 82 } |
| 61 | 83 |
| (...skipping 19 matching lines...) Expand all Loading... |
| 81 TEST_F(SimpleExperimentTest, SizeTrialProperlyConfiguredWrongCacheType) { | 103 TEST_F(SimpleExperimentTest, SizeTrialProperlyConfiguredWrongCacheType) { |
| 82 const uint32_t kParam = 125u; | 104 const uint32_t kParam = 125u; |
| 83 base::test::ScopedFeatureList scoped_feature_list; | 105 base::test::ScopedFeatureList scoped_feature_list; |
| 84 ConfigureSizeFieldTrial(true, base::Optional<uint32_t>(kParam)); | 106 ConfigureSizeFieldTrial(true, base::Optional<uint32_t>(kParam)); |
| 85 | 107 |
| 86 SimpleExperiment experiment = GetSimpleExperiment(net::APP_CACHE); | 108 SimpleExperiment experiment = GetSimpleExperiment(net::APP_CACHE); |
| 87 EXPECT_EQ(SimpleExperimentType::NONE, experiment.type); | 109 EXPECT_EQ(SimpleExperimentType::NONE, experiment.type); |
| 88 EXPECT_EQ(0u, experiment.param); | 110 EXPECT_EQ(0u, experiment.param); |
| 89 } | 111 } |
| 90 | 112 |
| 113 TEST_F(SimpleExperimentTest, EvictWithSizeMissingParam) { |
| 114 base::test::ScopedFeatureList scoped_feature_list; |
| 115 ConfigureEvictWithSizeTrial(true, base::Optional<uint32_t>()); |
| 116 |
| 117 SimpleExperiment experiment = GetSimpleExperiment(net::DISK_CACHE); |
| 118 EXPECT_EQ(SimpleExperimentType::NONE, experiment.type); |
| 119 EXPECT_EQ(0u, experiment.param); |
| 120 } |
| 121 |
| 122 TEST_F(SimpleExperimentTest, EvictWithSizeProperlyConfigured) { |
| 123 const uint32_t kParam = 1u; |
| 124 base::test::ScopedFeatureList scoped_feature_list; |
| 125 ConfigureEvictWithSizeTrial(true, base::Optional<uint32_t>(kParam)); |
| 126 |
| 127 SimpleExperiment experiment = GetSimpleExperiment(net::DISK_CACHE); |
| 128 EXPECT_EQ(SimpleExperimentType::EVICT_WITH_SIZE, experiment.type); |
| 129 EXPECT_EQ(kParam, experiment.param); |
| 130 } |
| 131 |
| 132 TEST_F(SimpleExperimentTest, EvictWithSizeProperlyConfiguredWrongCacheType) { |
| 133 const uint32_t kParam = 125u; |
| 134 base::test::ScopedFeatureList scoped_feature_list; |
| 135 ConfigureEvictWithSizeTrial(true, base::Optional<uint32_t>(kParam)); |
| 136 |
| 137 SimpleExperiment experiment = GetSimpleExperiment(net::APP_CACHE); |
| 138 EXPECT_EQ(SimpleExperimentType::NONE, experiment.type); |
| 139 EXPECT_EQ(0u, experiment.param); |
| 140 } |
| 141 |
| 91 } // namespace disk_cache | 142 } // namespace disk_cache |
| OLD | NEW |