Index: components/subresource_filter/core/browser/subresource_filter_features_unittest.cc |
diff --git a/components/subresource_filter/core/browser/subresource_filter_features_unittest.cc b/components/subresource_filter/core/browser/subresource_filter_features_unittest.cc |
index 51a3d58c827637b3e79ee87131d05ec9d70db3c7..b28d9f7bdf0586aab9b35c6fe71319bd394cef3d 100644 |
--- a/components/subresource_filter/core/browser/subresource_filter_features_unittest.cc |
+++ b/components/subresource_filter/core/browser/subresource_filter_features_unittest.cc |
@@ -183,4 +183,40 @@ TEST(SubresourceFilterFeaturesTest, ActivationList) { |
} |
} |
+TEST(SubresourceFilterFeaturesTest, PerfMeasurementRate) { |
+ const struct { |
+ bool feature_enabled; |
+ const char* perf_measurement_param; |
+ double expected_perf_measurement_rate; |
+ } kTestCases[] = {{false, "not_a_number", 1}, |
+ {false, "0", 1}, |
+ {false, "1", 1}, |
+ {true, "not_a_number", 1}, |
+ {true, "0.5not_a_number", 1}, |
+ {true, "0", 0}, |
+ {true, "0.000", 0}, |
+ {true, "0.05", 0.05}, |
+ {true, "0.5", 0.5}, |
+ {true, "1", 1}, |
+ {true, "1.0", 1}, |
+ {true, "0.333", 0.333}, |
+ {true, "1e0", 1}}; |
+ |
+ for (const auto& test_case : kTestCases) { |
+ SCOPED_TRACE(::testing::Message("Enabled = ") << test_case.feature_enabled); |
+ SCOPED_TRACE(::testing::Message("PerfMeasurementParam = \"") |
+ << test_case.perf_measurement_param << "\""); |
+ |
+ base::FieldTrialList field_trial_list(nullptr /* entropy_provider */); |
+ testing::ScopedSubresourceFilterFeatureToggle scoped_feature_toggle( |
+ test_case.feature_enabled ? base::FeatureList::OVERRIDE_ENABLE_FEATURE |
+ : base::FeatureList::OVERRIDE_USE_DEFAULT, |
+ {{kPerfMeasurementRateParameterName, |
+ test_case.perf_measurement_param}}); |
+ |
+ EXPECT_EQ(test_case.expected_perf_measurement_rate, |
+ GetCurrentPerfMeasurementRate()); |
+ } |
+} |
+ |
} // namespace subresource_filter |