| Index: components/subresource_filter/content/renderer/subresource_filter_agent_unittest.cc
|
| diff --git a/components/subresource_filter/content/renderer/subresource_filter_agent_unittest.cc b/components/subresource_filter/content/renderer/subresource_filter_agent_unittest.cc
|
| index fa00af876a6f97e6a2ee9852cfd4897d1ad92f6c..213e796dac7a9d645ab44bceb3c998466e454fd3 100644
|
| --- a/components/subresource_filter/content/renderer/subresource_filter_agent_unittest.cc
|
| +++ b/components/subresource_filter/content/renderer/subresource_filter_agent_unittest.cc
|
| @@ -9,6 +9,7 @@
|
|
|
| #include "base/macros.h"
|
| #include "base/strings/string_piece.h"
|
| +#include "base/test/histogram_tester.h"
|
| #include "components/subresource_filter/content/common/subresource_filter_messages.h"
|
| #include "components/subresource_filter/content/renderer/ruleset_dealer.h"
|
| #include "components/subresource_filter/core/common/test_ruleset_creator.h"
|
| @@ -228,4 +229,110 @@ TEST_F(SubresourceFilterAgentTest, DryRun_ResourcesAreEvaluatedButNotFiltered) {
|
| FinishLoad();
|
| }
|
|
|
| +TEST_F(SubresourceFilterAgentTest, Disabled_HistogramSamples) {
|
| + base::HistogramTester histogram_tester;
|
| + ASSERT_NO_FATAL_FAILURE(
|
| + SetTestRulesetToDisallowURLsWithPathSuffix(kTestBothURLsPathSuffix));
|
| + StartLoadWithoutSettingActivationState();
|
| + FinishLoad();
|
| +
|
| + histogram_tester.ExpectUniqueSample(
|
| + "SubresourceFilter.DocumentLoad.ActivationState",
|
| + static_cast<int>(ActivationState::DISABLED), 1);
|
| + histogram_tester.ExpectTotalCount(
|
| + "SubresourceFilter.DocumentLoad.RulesetIsAvailable", 0);
|
| + histogram_tester.ExpectTotalCount(
|
| + "SubresourceFilter.DocumentLoad.NumSubresourceLoads.Evaluated", 0);
|
| + histogram_tester.ExpectTotalCount(
|
| + "SubresourceFilter.DocumentLoad.NumSubresourceLoads.Disallowed", 0);
|
| +}
|
| +
|
| +TEST_F(SubresourceFilterAgentTest,
|
| + EnabledButRulesetUnavailable_HistogramSamples) {
|
| + base::HistogramTester histogram_tester;
|
| + StartLoadAndSetActivationState(ActivationState::ENABLED);
|
| + FinishLoad();
|
| +
|
| + histogram_tester.ExpectUniqueSample(
|
| + "SubresourceFilter.DocumentLoad.ActivationState",
|
| + static_cast<int>(ActivationState::ENABLED), 1);
|
| + histogram_tester.ExpectUniqueSample(
|
| + "SubresourceFilter.DocumentLoad.RulesetIsAvailable", 0, 1);
|
| + histogram_tester.ExpectTotalCount(
|
| + "SubresourceFilter.DocumentLoad.NumSubresourceLoads.Evaluated", 0);
|
| + histogram_tester.ExpectTotalCount(
|
| + "SubresourceFilter.DocumentLoad.NumSubresourceLoads.MatchedRules", 0);
|
| + histogram_tester.ExpectTotalCount(
|
| + "SubresourceFilter.DocumentLoad.NumSubresourceLoads.Disallowed", 0);
|
| +}
|
| +
|
| +TEST_F(SubresourceFilterAgentTest, Enabled_HistogramSamples) {
|
| + base::HistogramTester histogram_tester;
|
| + ASSERT_NO_FATAL_FAILURE(
|
| + SetTestRulesetToDisallowURLsWithPathSuffix(kTestFirstURLPathSuffix));
|
| + ExpectSubresourceFilterGetsInjected();
|
| + StartLoadAndSetActivationState(ActivationState::ENABLED);
|
| + ASSERT_TRUE(::testing::Mock::VerifyAndClearExpectations(agent()));
|
| +
|
| + ExpectLoadAllowed(kTestFirstURL, false);
|
| + ExpectLoadAllowed(kTestFirstURL, false);
|
| + ExpectLoadAllowed(kTestSecondURL, true);
|
| + FinishLoad();
|
| +
|
| + ExpectSubresourceFilterGetsInjected();
|
| + StartLoadAndSetActivationState(ActivationState::ENABLED);
|
| + ASSERT_TRUE(::testing::Mock::VerifyAndClearExpectations(agent()));
|
| +
|
| + ExpectLoadAllowed(kTestFirstURL, false);
|
| + ExpectLoadAllowed(kTestSecondURL, true);
|
| + FinishLoad();
|
| +
|
| + histogram_tester.ExpectUniqueSample(
|
| + "SubresourceFilter.DocumentLoad.ActivationState",
|
| + static_cast<int>(ActivationState::ENABLED), 2);
|
| + histogram_tester.ExpectUniqueSample(
|
| + "SubresourceFilter.DocumentLoad.RulesetIsAvailable", 1, 2);
|
| + EXPECT_THAT(
|
| + histogram_tester.GetAllSamples(
|
| + "SubresourceFilter.DocumentLoad.NumSubresourceLoads.Evaluated"),
|
| + ::testing::ElementsAre(base::Bucket(2, 1), base::Bucket(3, 1)));
|
| + EXPECT_THAT(
|
| + histogram_tester.GetAllSamples(
|
| + "SubresourceFilter.DocumentLoad.NumSubresourceLoads.MatchedRules"),
|
| + ::testing::ElementsAre(base::Bucket(1, 1), base::Bucket(2, 1)));
|
| + EXPECT_THAT(
|
| + histogram_tester.GetAllSamples(
|
| + "SubresourceFilter.DocumentLoad.NumSubresourceLoads.Disallowed"),
|
| + ::testing::ElementsAre(base::Bucket(1, 1), base::Bucket(2, 1)));
|
| +}
|
| +
|
| +TEST_F(SubresourceFilterAgentTest, DryRun_HistogramSamples) {
|
| + base::HistogramTester histogram_tester;
|
| + ASSERT_NO_FATAL_FAILURE(
|
| + SetTestRulesetToDisallowURLsWithPathSuffix(kTestFirstURLPathSuffix));
|
| + ExpectSubresourceFilterGetsInjected();
|
| + StartLoadAndSetActivationState(ActivationState::DRYRUN);
|
| + ASSERT_TRUE(::testing::Mock::VerifyAndClearExpectations(agent()));
|
| +
|
| + // In dry-run mode, loads to the first URL should be recorded as
|
| + // `MatchedRules`, but still be allowed to proceed and not recorded as
|
| + // `Disallowed`.
|
| + ExpectLoadAllowed(kTestFirstURL, true);
|
| + ExpectLoadAllowed(kTestFirstURL, true);
|
| + ExpectLoadAllowed(kTestSecondURL, true);
|
| + FinishLoad();
|
| +
|
| + histogram_tester.ExpectUniqueSample(
|
| + "SubresourceFilter.DocumentLoad.ActivationState",
|
| + static_cast<int>(ActivationState::DRYRUN), 1);
|
| + histogram_tester.ExpectUniqueSample(
|
| + "SubresourceFilter.DocumentLoad.RulesetIsAvailable", 1, 1);
|
| + histogram_tester.ExpectUniqueSample(
|
| + "SubresourceFilter.DocumentLoad.NumSubresourceLoads.Evaluated", 3, 1);
|
| + histogram_tester.ExpectUniqueSample(
|
| + "SubresourceFilter.DocumentLoad.NumSubresourceLoads.MatchedRules", 2, 1);
|
| + histogram_tester.ExpectUniqueSample(
|
| + "SubresourceFilter.DocumentLoad.NumSubresourceLoads.Disallowed", 0, 1);
|
| +}
|
| +
|
| } // namespace subresource_filter
|
|
|