Index: chrome/browser/subresource_filter/subresource_filter_content_settings_observer_factory_unittest.cc |
diff --git a/chrome/browser/subresource_filter/subresource_filter_content_settings_observer_factory_unittest.cc b/chrome/browser/subresource_filter/subresource_filter_content_settings_observer_factory_unittest.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..a6d95bc4ac557a31b97713580601b52970fcf07b |
--- /dev/null |
+++ b/chrome/browser/subresource_filter/subresource_filter_content_settings_observer_factory_unittest.cc |
@@ -0,0 +1,102 @@ |
+// Copyright 2017 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "chrome/browser/subresource_filter/subresource_filter_content_settings_observer_factory.h" |
+ |
+#include "base/macros.h" |
+#include "base/test/histogram_tester.h" |
+#include "chrome/browser/content_settings/host_content_settings_map_factory.h" |
+#include "chrome/browser/subresource_filter/chrome_subresource_filter_client.h" |
+#include "chrome/test/base/testing_profile.h" |
+#include "components/content_settings/core/browser/host_content_settings_map.h" |
+#include "content/public/test/test_browser_thread_bundle.h" |
+#include "testing/gtest/include/gtest/gtest.h" |
+ |
+namespace { |
+ |
+const char kActionsHistogram[] = "SubresourceFilter.Actions"; |
+ |
+class SubresourceFilterContentSettingsObserverFactoryTest |
+ : public testing::Test { |
+ public: |
+ SubresourceFilterContentSettingsObserverFactoryTest() {} |
+ |
+ void SetUp() override { |
+ SubresourceFilterContentSettingsObserverFactory::EnsureForProfile( |
+ &testing_profile_); |
+ histogram_tester().ExpectTotalCount(kActionsHistogram, 0); |
+ } |
+ |
+ HostContentSettingsMap* GetSettingsMap() { |
+ return HostContentSettingsMapFactory::GetForProfile(&testing_profile_); |
+ } |
+ |
+ const base::HistogramTester& histogram_tester() { return histogram_tester_; } |
+ |
+ private: |
+ content::TestBrowserThreadBundle thread_bundle_; |
+ TestingProfile testing_profile_; |
+ base::HistogramTester histogram_tester_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(SubresourceFilterContentSettingsObserverFactoryTest); |
+}; |
+ |
+TEST_F(SubresourceFilterContentSettingsObserverFactoryTest, IrrelevantSetting) { |
+ GetSettingsMap()->SetDefaultContentSetting(CONTENT_SETTINGS_TYPE_POPUPS, |
+ CONTENT_SETTING_ALLOW); |
+ histogram_tester().ExpectTotalCount(kActionsHistogram, 0); |
+} |
+ |
+TEST_F(SubresourceFilterContentSettingsObserverFactoryTest, DefaultSetting) { |
+ GetSettingsMap()->SetDefaultContentSetting( |
+ CONTENT_SETTINGS_TYPE_SUBRESOURCE_FILTER, CONTENT_SETTING_ALLOW); |
+ histogram_tester().ExpectBucketCount(kActionsHistogram, |
+ kActionContentSettingsAllowedGlobal, 1); |
+ |
+ GetSettingsMap()->SetDefaultContentSetting( |
+ CONTENT_SETTINGS_TYPE_SUBRESOURCE_FILTER, CONTENT_SETTING_BLOCK); |
+ histogram_tester().ExpectTotalCount(kActionsHistogram, 2); |
+ histogram_tester().ExpectBucketCount(kActionsHistogram, |
+ kActionContentSettingsBlockedGlobal, 1); |
+} |
+ |
+TEST_F(SubresourceFilterContentSettingsObserverFactoryTest, UrlSetting) { |
+ GURL url("https://www.example.test/"); |
+ |
+ GetSettingsMap()->SetContentSettingDefaultScope( |
+ url, url, CONTENT_SETTINGS_TYPE_SUBRESOURCE_FILTER, std::string(), |
+ CONTENT_SETTING_BLOCK); |
+ histogram_tester().ExpectBucketCount(kActionsHistogram, |
+ kActionContentSettingsBlocked, 1); |
+ |
+ GetSettingsMap()->SetContentSettingDefaultScope( |
+ url, url, CONTENT_SETTINGS_TYPE_SUBRESOURCE_FILTER, std::string(), |
+ CONTENT_SETTING_ALLOW); |
+ histogram_tester().ExpectTotalCount(kActionsHistogram, 2); |
+ histogram_tester().ExpectBucketCount(kActionsHistogram, |
+ kActionContentSettingsAllowed, 1); |
+} |
+ |
+TEST_F(SubresourceFilterContentSettingsObserverFactoryTest, WildcardUpdate) { |
+ ContentSettingsPattern primary_pattern = |
+ ContentSettingsPattern::FromString("[*.]example.test"); |
+ ContentSettingsPattern secondary_pattern = ContentSettingsPattern::Wildcard(); |
+ |
+ GetSettingsMap()->SetContentSettingCustomScope( |
+ primary_pattern, secondary_pattern, |
+ CONTENT_SETTINGS_TYPE_SUBRESOURCE_FILTER, std::string(), |
+ CONTENT_SETTING_BLOCK); |
+ histogram_tester().ExpectBucketCount(kActionsHistogram, |
+ kActionContentSettingsWildcardUpdate, 1); |
+ |
+ GetSettingsMap()->SetContentSettingCustomScope( |
+ primary_pattern, secondary_pattern, |
+ CONTENT_SETTINGS_TYPE_SUBRESOURCE_FILTER, std::string(), |
+ CONTENT_SETTING_ALLOW); |
+ histogram_tester().ExpectTotalCount(kActionsHistogram, 2); |
+ histogram_tester().ExpectBucketCount(kActionsHistogram, |
+ kActionContentSettingsWildcardUpdate, 2); |
+} |
+ |
+} // namespace |