summaryrefslogtreecommitdiff
path: root/chromium/components/subresource_filter/core/browser/subresource_filter_features_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/components/subresource_filter/core/browser/subresource_filter_features_unittest.cc')
-rw-r--r--chromium/components/subresource_filter/core/browser/subresource_filter_features_unittest.cc139
1 files changed, 138 insertions, 1 deletions
diff --git a/chromium/components/subresource_filter/core/browser/subresource_filter_features_unittest.cc b/chromium/components/subresource_filter/core/browser/subresource_filter_features_unittest.cc
index 78637e42047..51a3d58c827 100644
--- a/chromium/components/subresource_filter/core/browser/subresource_filter_features_unittest.cc
+++ b/chromium/components/subresource_filter/core/browser/subresource_filter_features_unittest.cc
@@ -40,9 +40,146 @@ TEST(SubresourceFilterFeaturesTest, ActivationState) {
testing::ScopedSubresourceFilterFeatureToggle scoped_feature_toggle(
test_case.feature_enabled ? base::FeatureList::OVERRIDE_ENABLE_FEATURE
: base::FeatureList::OVERRIDE_USE_DEFAULT,
- test_case.activation_state_param);
+ test_case.activation_state_param, kActivationScopeNoSites);
EXPECT_EQ(test_case.expected_activation_state, GetMaximumActivationState());
+ EXPECT_EQ(ActivationScope::NO_SITES, GetCurrentActivationScope());
+ }
+}
+
+TEST(SubresourceFilterFeaturesTest, ActivationScope) {
+ const struct {
+ bool feature_enabled;
+ const char* activation_scope_param;
+ ActivationScope expected_activation_scope;
+ } kTestCases[] = {
+ {false, "", ActivationScope::NO_SITES},
+ {false, "no_sites", ActivationScope::NO_SITES},
+ {false, "allsites", ActivationScope::NO_SITES},
+ {false, "enabled", ActivationScope::NO_SITES},
+ {false, "%$ garbage !%", ActivationScope::NO_SITES},
+ {true, "", ActivationScope::NO_SITES},
+ {true, "nosites", ActivationScope::NO_SITES},
+ {true, "No_sites", ActivationScope::NO_SITES},
+ {true, "no_sites", ActivationScope::NO_SITES},
+ {true, "%$ garbage !%", ActivationScope::NO_SITES},
+ {true, kActivationScopeAllSites, ActivationScope::ALL_SITES},
+ {true, kActivationScopeActivationList, ActivationScope::ACTIVATION_LIST}};
+
+ for (const auto& test_case : kTestCases) {
+ SCOPED_TRACE(::testing::Message("Enabled = ") << test_case.feature_enabled);
+ SCOPED_TRACE(::testing::Message("ActivationScopeParam = \"")
+ << test_case.activation_scope_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,
+ kActivationStateDisabled, test_case.activation_scope_param);
+
+ EXPECT_EQ(ActivationState::DISABLED, GetMaximumActivationState());
+ EXPECT_EQ(test_case.expected_activation_scope, GetCurrentActivationScope());
+ }
+}
+
+TEST(SubresourceFilterFeaturesTest, ActivationStateAndScope) {
+ const struct {
+ bool feature_enabled;
+ const char* activation_state_param;
+ ActivationState expected_activation_state;
+ const char* activation_scope_param;
+ ActivationScope expected_activation_scope;
+ } kTestCases[] = {
+ {false, kActivationStateDisabled, ActivationState::DISABLED,
+ kActivationScopeNoSites, ActivationScope::NO_SITES},
+ {true, kActivationStateDisabled, ActivationState::DISABLED,
+ kActivationScopeNoSites, ActivationScope::NO_SITES},
+ {true, kActivationStateDisabled, ActivationState::DISABLED,
+ kActivationScopeAllSites, ActivationScope::ALL_SITES},
+ {true, kActivationStateDisabled, ActivationState::DISABLED,
+ kActivationScopeActivationList, ActivationScope::ACTIVATION_LIST},
+ {true, kActivationStateDisabled, ActivationState::DISABLED,
+ kActivationScopeAllSites, ActivationScope::ALL_SITES},
+ {true, kActivationStateDryRun, ActivationState::DRYRUN,
+ kActivationScopeNoSites, ActivationScope::NO_SITES},
+ {true, kActivationStateDryRun, ActivationState::DRYRUN,
+ kActivationScopeAllSites, ActivationScope::ALL_SITES},
+ {true, kActivationStateDryRun, ActivationState::DRYRUN,
+ kActivationScopeActivationList, ActivationScope::ACTIVATION_LIST},
+ {true, kActivationStateDryRun, ActivationState::DRYRUN,
+ kActivationScopeAllSites, ActivationScope::ALL_SITES},
+ {true, kActivationStateEnabled, ActivationState::ENABLED,
+ kActivationScopeNoSites, ActivationScope::NO_SITES},
+ {true, kActivationStateEnabled, ActivationState::ENABLED,
+ kActivationScopeAllSites, ActivationScope::ALL_SITES},
+ {true, kActivationStateEnabled, ActivationState::ENABLED,
+ kActivationScopeActivationList, ActivationScope::ACTIVATION_LIST},
+ {true, kActivationStateEnabled, ActivationState::ENABLED,
+ kActivationScopeAllSites, ActivationScope::ALL_SITES},
+ {false, kActivationStateEnabled, ActivationState::DISABLED,
+ kActivationScopeAllSites, ActivationScope::NO_SITES}};
+
+ for (const auto& test_case : kTestCases) {
+ 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,
+ test_case.activation_state_param, test_case.activation_scope_param);
+
+ EXPECT_EQ(test_case.expected_activation_scope, GetCurrentActivationScope());
+ EXPECT_EQ(test_case.expected_activation_state, GetMaximumActivationState());
+ }
+}
+
+TEST(SubresourceFilterFeaturesTest, ActivationList) {
+ const std::string activation_soc_eng(
+ kActivationListSocialEngineeringAdsInterstitial);
+ const std::string activation_phishing(kActivationListPhishingInterstitial);
+ const std::string socEngPhising = activation_soc_eng + activation_phishing;
+ const std::string socEngCommaPhising =
+ activation_soc_eng + "," + activation_phishing;
+ const std::string phishingCommaSocEng =
+ activation_phishing + "," + activation_soc_eng;
+ const std::string socEngCommaPhisingCommaGarbage =
+ socEngCommaPhising + "," + "Garbage";
+ const struct {
+ bool feature_enabled;
+ const char* activation_list_param;
+ ActivationList expected_activation_list;
+ } kTestCases[] = {
+ {false, "", ActivationList::NONE},
+ {false, "social eng ads intertitial", ActivationList::NONE},
+ {false, "phishing,interstital", ActivationList::NONE},
+ {false, "%$ garbage !%", ActivationList::NONE},
+ {true, "", ActivationList::NONE},
+ {true, "social eng ads intertitial", ActivationList::NONE},
+ {true, "phishing interstital", ActivationList::NONE},
+ {true, "%$ garbage !%", ActivationList::NONE},
+ {true, kActivationListSocialEngineeringAdsInterstitial,
+ ActivationList::SOCIAL_ENG_ADS_INTERSTITIAL},
+ {true, kActivationListPhishingInterstitial,
+ ActivationList::PHISHING_INTERSTITIAL},
+ {true, socEngPhising.c_str(), ActivationList::NONE},
+ {true, socEngCommaPhising.c_str(), ActivationList::PHISHING_INTERSTITIAL},
+ {true, phishingCommaSocEng.c_str(),
+ ActivationList::PHISHING_INTERSTITIAL},
+ {true, socEngCommaPhisingCommaGarbage.c_str(),
+ ActivationList::PHISHING_INTERSTITIAL},
+ {true, "List1, List2", ActivationList::NONE}};
+
+ for (const auto& test_case : kTestCases) {
+ SCOPED_TRACE(::testing::Message("Enabled = ") << test_case.feature_enabled);
+ SCOPED_TRACE(::testing::Message("ActivationListParam = \"")
+ << test_case.activation_list_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,
+ kActivationStateDisabled, kActivationScopeNoSites,
+ test_case.activation_list_param);
+
+ EXPECT_EQ(test_case.expected_activation_list, GetCurrentActivationList());
}
}