| Index: components/subresource_filter/core/common/document_subresource_filter_unittest.cc
|
| diff --git a/components/subresource_filter/content/common/document_subresource_filter_unittest.cc b/components/subresource_filter/core/common/document_subresource_filter_unittest.cc
|
| similarity index 73%
|
| rename from components/subresource_filter/content/common/document_subresource_filter_unittest.cc
|
| rename to components/subresource_filter/core/common/document_subresource_filter_unittest.cc
|
| index 53ae77e5ba499c84f7082fbc3e76da21429a8582..b7ea78249e1501b4a0226f002f7499c7903bb179 100644
|
| --- a/components/subresource_filter/content/common/document_subresource_filter_unittest.cc
|
| +++ b/components/subresource_filter/core/common/document_subresource_filter_unittest.cc
|
| @@ -2,21 +2,15 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| -#include "components/subresource_filter/content/common/document_subresource_filter.h"
|
| +#include "components/subresource_filter/core/common/document_subresource_filter.h"
|
|
|
| -#include "base/bind.h"
|
| -#include "base/callback.h"
|
| #include "base/files/file.h"
|
| #include "base/macros.h"
|
| -#include "base/memory/ref_counted.h"
|
| #include "base/strings/string_piece.h"
|
| #include "components/subresource_filter/core/common/memory_mapped_ruleset.h"
|
| #include "components/subresource_filter/core/common/test_ruleset_creator.h"
|
| #include "components/subresource_filter/core/common/test_ruleset_utils.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
| -#include "third_party/WebKit/public/platform/WebURL.h"
|
| -#include "third_party/WebKit/public/platform/WebURLRequest.h"
|
| -#include "url/gurl.h"
|
|
|
| namespace subresource_filter {
|
|
|
| @@ -26,28 +20,14 @@ constexpr auto kDisabled = ActivationLevel::DISABLED;
|
| constexpr auto kDryRun = ActivationLevel::DRYRUN;
|
| constexpr auto kEnabled = ActivationLevel::ENABLED;
|
|
|
| -const char kTestAlphaURL[] = "http://example.com/alpha";
|
| -const char kTestAlphaDataURI[] = "data:text/plain,alpha";
|
| -const char kTestBetaURL[] = "http://example.com/beta";
|
| +constexpr auto kImageType = proto::ELEMENT_TYPE_IMAGE;
|
| +constexpr auto kSubdocumentType = proto::ELEMENT_TYPE_SUBDOCUMENT;
|
|
|
| -const char kTestAlphaURLPathSuffix[] = "alpha";
|
| +constexpr const char kTestAlphaURL[] = "http://example.com/alpha";
|
| +constexpr const char kTestAlphaDataURI[] = "data:text/plain,alpha";
|
| +constexpr const char kTestBetaURL[] = "http://example.com/beta";
|
|
|
| -class TestCallbackReceiver {
|
| - public:
|
| - TestCallbackReceiver() = default;
|
| - base::OnceClosure closure() {
|
| - return base::BindOnce(&TestCallbackReceiver::CallbackMethod,
|
| - base::Unretained(this));
|
| - }
|
| - size_t callback_count() const { return callback_count_; }
|
| -
|
| - private:
|
| - void CallbackMethod() { ++callback_count_; }
|
| -
|
| - size_t callback_count_ = 0;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(TestCallbackReceiver);
|
| -};
|
| +constexpr const char kTestAlphaURLPathSuffix[] = "alpha";
|
|
|
| } // namespace
|
|
|
| @@ -82,55 +62,45 @@ class DocumentSubresourceFilterTest : public ::testing::Test {
|
| };
|
|
|
| TEST_F(DocumentSubresourceFilterTest, DryRun) {
|
| - blink::WebURLRequest::RequestContext request_context =
|
| - blink::WebURLRequest::RequestContextImage;
|
| - TestCallbackReceiver first_disallowed_load_callback_receiver;
|
| -
|
| ActivationState activation_state(kDryRun);
|
| activation_state.measure_performance = true;
|
| - DocumentSubresourceFilter filter(
|
| - url::Origin(), activation_state, ruleset(),
|
| - first_disallowed_load_callback_receiver.closure());
|
| -
|
| - EXPECT_EQ(blink::WebDocumentSubresourceFilter::WouldDisallow,
|
| - filter.getLoadPolicy(GURL(kTestAlphaURL), request_context));
|
| - EXPECT_EQ(blink::WebDocumentSubresourceFilter::Allow,
|
| - filter.getLoadPolicy(GURL(kTestAlphaDataURI), request_context));
|
| - EXPECT_EQ(blink::WebDocumentSubresourceFilter::Allow,
|
| - filter.getLoadPolicy(GURL(kTestBetaURL), request_context));
|
| - EXPECT_EQ(blink::WebDocumentSubresourceFilter::WouldDisallow,
|
| - filter.GetLoadPolicyForSubdocument(GURL(kTestAlphaURL)));
|
| - EXPECT_EQ(blink::WebDocumentSubresourceFilter::Allow,
|
| - filter.GetLoadPolicyForSubdocument(GURL(kTestBetaURL)));
|
| + DocumentSubresourceFilter filter(url::Origin(), activation_state, ruleset());
|
| +
|
| + EXPECT_EQ(LoadPolicy::WOULD_DISALLOW,
|
| + filter.GetLoadPolicy(GURL(kTestAlphaURL), kImageType));
|
| + EXPECT_EQ(LoadPolicy::ALLOW,
|
| + filter.GetLoadPolicy(GURL(kTestAlphaDataURI), kImageType));
|
| + EXPECT_EQ(LoadPolicy::ALLOW,
|
| + filter.GetLoadPolicy(GURL(kTestBetaURL), kImageType));
|
| + EXPECT_EQ(LoadPolicy::WOULD_DISALLOW,
|
| + filter.GetLoadPolicy(GURL(kTestAlphaURL), kSubdocumentType));
|
| + EXPECT_EQ(LoadPolicy::ALLOW,
|
| + filter.GetLoadPolicy(GURL(kTestBetaURL), kSubdocumentType));
|
|
|
| const auto& statistics = filter.statistics();
|
| EXPECT_EQ(5, statistics.num_loads_total);
|
| EXPECT_EQ(4, statistics.num_loads_evaluated);
|
| EXPECT_EQ(2, statistics.num_loads_matching_rules);
|
| EXPECT_EQ(0, statistics.num_loads_disallowed);
|
| -
|
| - EXPECT_EQ(0u, first_disallowed_load_callback_receiver.callback_count());
|
| }
|
|
|
| TEST_F(DocumentSubresourceFilterTest, Enabled) {
|
| auto test_impl = [this](bool measure_performance) {
|
| - blink::WebURLRequest::RequestContext request_context =
|
| - blink::WebURLRequest::RequestContextImage;
|
| ActivationState activation_state(kEnabled);
|
| activation_state.measure_performance = measure_performance;
|
| - DocumentSubresourceFilter filter(url::Origin(), activation_state, ruleset(),
|
| - base::OnceClosure());
|
| -
|
| - EXPECT_EQ(blink::WebDocumentSubresourceFilter::Disallow,
|
| - filter.getLoadPolicy(GURL(kTestAlphaURL), request_context));
|
| - EXPECT_EQ(blink::WebDocumentSubresourceFilter::Allow,
|
| - filter.getLoadPolicy(GURL(kTestAlphaDataURI), request_context));
|
| - EXPECT_EQ(blink::WebDocumentSubresourceFilter::Allow,
|
| - filter.getLoadPolicy(GURL(kTestBetaURL), request_context));
|
| - EXPECT_EQ(blink::WebDocumentSubresourceFilter::Disallow,
|
| - filter.GetLoadPolicyForSubdocument(GURL(kTestAlphaURL)));
|
| - EXPECT_EQ(blink::WebDocumentSubresourceFilter::Allow,
|
| - filter.GetLoadPolicyForSubdocument(GURL(kTestBetaURL)));
|
| + DocumentSubresourceFilter filter(url::Origin(), activation_state,
|
| + ruleset());
|
| +
|
| + EXPECT_EQ(LoadPolicy::DISALLOW,
|
| + filter.GetLoadPolicy(GURL(kTestAlphaURL), kImageType));
|
| + EXPECT_EQ(LoadPolicy::ALLOW,
|
| + filter.GetLoadPolicy(GURL(kTestAlphaDataURI), kImageType));
|
| + EXPECT_EQ(LoadPolicy::ALLOW,
|
| + filter.GetLoadPolicy(GURL(kTestBetaURL), kImageType));
|
| + EXPECT_EQ(LoadPolicy::DISALLOW,
|
| + filter.GetLoadPolicy(GURL(kTestAlphaURL), kSubdocumentType));
|
| + EXPECT_EQ(LoadPolicy::ALLOW,
|
| + filter.GetLoadPolicy(GURL(kTestBetaURL), kSubdocumentType));
|
|
|
| const auto& statistics = filter.statistics();
|
| EXPECT_EQ(5, statistics.num_loads_total);
|
| @@ -150,23 +120,6 @@ TEST_F(DocumentSubresourceFilterTest, Enabled) {
|
| test_impl(false /* measure_performance */);
|
| }
|
|
|
| -TEST_F(DocumentSubresourceFilterTest,
|
| - CallbackFiredExactlyOnceAfterFirstDisallowedLoad) {
|
| - TestCallbackReceiver first_disallowed_load_callback_receiver;
|
| -
|
| - ActivationState activation_state(kEnabled);
|
| - activation_state.measure_performance = true;
|
| - DocumentSubresourceFilter filter(
|
| - url::Origin(), activation_state, ruleset(),
|
| - first_disallowed_load_callback_receiver.closure());
|
| -
|
| - EXPECT_EQ(0u, first_disallowed_load_callback_receiver.callback_count());
|
| - filter.reportDisallowedLoad();
|
| - EXPECT_EQ(1u, first_disallowed_load_callback_receiver.callback_count());
|
| - filter.reportDisallowedLoad();
|
| - EXPECT_EQ(1u, first_disallowed_load_callback_receiver.callback_count());
|
| -}
|
| -
|
| // Tests for ComputeActivationState functions. ---------------------------------
|
|
|
| class SubresourceFilterComputeActivationStateTest : public ::testing::Test {
|
|
|