Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(390)

Side by Side Diff: components/subresource_filter/core/common/document_subresource_filter_unittest.cc

Issue 2714573002: Enable websocket filtering via SubresourceFilter (Closed)
Patch Set: OWNERS Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "components/subresource_filter/core/common/document_subresource_filter. h" 5 #include "components/subresource_filter/core/common/document_subresource_filter. h"
6 6
7 #include "base/files/file.h" 7 #include "base/files/file.h"
8 #include "base/macros.h" 8 #include "base/macros.h"
9 #include "base/strings/string_piece.h" 9 #include "base/strings/string_piece.h"
10 #include "components/subresource_filter/core/common/memory_mapped_ruleset.h" 10 #include "components/subresource_filter/core/common/memory_mapped_ruleset.h"
11 #include "components/subresource_filter/core/common/test_ruleset_creator.h" 11 #include "components/subresource_filter/core/common/test_ruleset_creator.h"
12 #include "components/subresource_filter/core/common/test_ruleset_utils.h" 12 #include "components/subresource_filter/core/common/test_ruleset_utils.h"
13 #include "testing/gtest/include/gtest/gtest.h" 13 #include "testing/gtest/include/gtest/gtest.h"
14 14
15 namespace subresource_filter { 15 namespace subresource_filter {
16 16
17 namespace { 17 namespace {
18 18
19 constexpr auto kDisabled = ActivationLevel::DISABLED; 19 constexpr auto kDisabled = ActivationLevel::DISABLED;
20 constexpr auto kDryRun = ActivationLevel::DRYRUN; 20 constexpr auto kDryRun = ActivationLevel::DRYRUN;
21 constexpr auto kEnabled = ActivationLevel::ENABLED; 21 constexpr auto kEnabled = ActivationLevel::ENABLED;
22 22
23 constexpr auto kImageType = proto::ELEMENT_TYPE_IMAGE; 23 constexpr auto kImageType = proto::ELEMENT_TYPE_IMAGE;
24 constexpr auto kSubdocumentType = proto::ELEMENT_TYPE_SUBDOCUMENT; 24 constexpr auto kSubdocumentType = proto::ELEMENT_TYPE_SUBDOCUMENT;
25 25
26 constexpr const char kTestAlphaURL[] = "http://example.com/alpha"; 26 constexpr const char kTestAlphaURL[] = "http://example.com/alpha";
27 constexpr const char kTestAlphaDataURI[] = "data:text/plain,alpha"; 27 constexpr const char kTestAlphaDataURI[] = "data:text/plain,alpha";
28 constexpr const char kTestAlphaWSURI[] = "ws://example.com/alpha";
28 constexpr const char kTestBetaURL[] = "http://example.com/beta"; 29 constexpr const char kTestBetaURL[] = "http://example.com/beta";
29 30
30 constexpr const char kTestAlphaURLPathSuffix[] = "alpha"; 31 constexpr const char kTestAlphaURLPathSuffix[] = "alpha";
31 32
32 } // namespace 33 } // namespace
33 34
34 // Tests for DocumentSubresourceFilter class. ---------------------------------- 35 // Tests for DocumentSubresourceFilter class. ----------------------------------
35 36
36 class DocumentSubresourceFilterTest : public ::testing::Test { 37 class DocumentSubresourceFilterTest : public ::testing::Test {
37 public: 38 public:
(...skipping 25 matching lines...) Expand all
63 64
64 TEST_F(DocumentSubresourceFilterTest, DryRun) { 65 TEST_F(DocumentSubresourceFilterTest, DryRun) {
65 ActivationState activation_state(kDryRun); 66 ActivationState activation_state(kDryRun);
66 activation_state.measure_performance = true; 67 activation_state.measure_performance = true;
67 DocumentSubresourceFilter filter(url::Origin(), activation_state, ruleset()); 68 DocumentSubresourceFilter filter(url::Origin(), activation_state, ruleset());
68 69
69 EXPECT_EQ(LoadPolicy::WOULD_DISALLOW, 70 EXPECT_EQ(LoadPolicy::WOULD_DISALLOW,
70 filter.GetLoadPolicy(GURL(kTestAlphaURL), kImageType)); 71 filter.GetLoadPolicy(GURL(kTestAlphaURL), kImageType));
71 EXPECT_EQ(LoadPolicy::ALLOW, 72 EXPECT_EQ(LoadPolicy::ALLOW,
72 filter.GetLoadPolicy(GURL(kTestAlphaDataURI), kImageType)); 73 filter.GetLoadPolicy(GURL(kTestAlphaDataURI), kImageType));
74 EXPECT_EQ(
75 LoadPolicy::WOULD_DISALLOW,
76 filter.GetLoadPolicy(GURL(kTestAlphaWSURI), proto::ELEMENT_TYPE_OTHER));
73 EXPECT_EQ(LoadPolicy::ALLOW, 77 EXPECT_EQ(LoadPolicy::ALLOW,
74 filter.GetLoadPolicy(GURL(kTestBetaURL), kImageType)); 78 filter.GetLoadPolicy(GURL(kTestBetaURL), kImageType));
75 EXPECT_EQ(LoadPolicy::WOULD_DISALLOW, 79 EXPECT_EQ(LoadPolicy::WOULD_DISALLOW,
76 filter.GetLoadPolicy(GURL(kTestAlphaURL), kSubdocumentType)); 80 filter.GetLoadPolicy(GURL(kTestAlphaURL), kSubdocumentType));
77 EXPECT_EQ(LoadPolicy::ALLOW, 81 EXPECT_EQ(LoadPolicy::ALLOW,
78 filter.GetLoadPolicy(GURL(kTestBetaURL), kSubdocumentType)); 82 filter.GetLoadPolicy(GURL(kTestBetaURL), kSubdocumentType));
79 83
80 const auto& statistics = filter.statistics(); 84 const auto& statistics = filter.statistics();
81 EXPECT_EQ(5, statistics.num_loads_total); 85 EXPECT_EQ(6, statistics.num_loads_total);
82 EXPECT_EQ(4, statistics.num_loads_evaluated); 86 EXPECT_EQ(5, statistics.num_loads_evaluated);
83 EXPECT_EQ(2, statistics.num_loads_matching_rules); 87 EXPECT_EQ(3, statistics.num_loads_matching_rules);
84 EXPECT_EQ(0, statistics.num_loads_disallowed); 88 EXPECT_EQ(0, statistics.num_loads_disallowed);
85 } 89 }
86 90
87 TEST_F(DocumentSubresourceFilterTest, Enabled) { 91 TEST_F(DocumentSubresourceFilterTest, Enabled) {
88 auto test_impl = [this](bool measure_performance) { 92 auto test_impl = [this](bool measure_performance) {
89 ActivationState activation_state(kEnabled); 93 ActivationState activation_state(kEnabled);
90 activation_state.measure_performance = measure_performance; 94 activation_state.measure_performance = measure_performance;
91 DocumentSubresourceFilter filter(url::Origin(), activation_state, 95 DocumentSubresourceFilter filter(url::Origin(), activation_state,
92 ruleset()); 96 ruleset());
93 97
94 EXPECT_EQ(LoadPolicy::DISALLOW, 98 EXPECT_EQ(LoadPolicy::DISALLOW,
95 filter.GetLoadPolicy(GURL(kTestAlphaURL), kImageType)); 99 filter.GetLoadPolicy(GURL(kTestAlphaURL), kImageType));
96 EXPECT_EQ(LoadPolicy::ALLOW, 100 EXPECT_EQ(LoadPolicy::ALLOW,
97 filter.GetLoadPolicy(GURL(kTestAlphaDataURI), kImageType)); 101 filter.GetLoadPolicy(GURL(kTestAlphaDataURI), kImageType));
102 EXPECT_EQ(
103 LoadPolicy::DISALLOW,
104 filter.GetLoadPolicy(GURL(kTestAlphaWSURI), proto::ELEMENT_TYPE_OTHER));
98 EXPECT_EQ(LoadPolicy::ALLOW, 105 EXPECT_EQ(LoadPolicy::ALLOW,
99 filter.GetLoadPolicy(GURL(kTestBetaURL), kImageType)); 106 filter.GetLoadPolicy(GURL(kTestBetaURL), kImageType));
100 EXPECT_EQ(LoadPolicy::DISALLOW, 107 EXPECT_EQ(LoadPolicy::DISALLOW,
101 filter.GetLoadPolicy(GURL(kTestAlphaURL), kSubdocumentType)); 108 filter.GetLoadPolicy(GURL(kTestAlphaURL), kSubdocumentType));
102 EXPECT_EQ(LoadPolicy::ALLOW, 109 EXPECT_EQ(LoadPolicy::ALLOW,
103 filter.GetLoadPolicy(GURL(kTestBetaURL), kSubdocumentType)); 110 filter.GetLoadPolicy(GURL(kTestBetaURL), kSubdocumentType));
104 111
105 const auto& statistics = filter.statistics(); 112 const auto& statistics = filter.statistics();
106 EXPECT_EQ(5, statistics.num_loads_total); 113 EXPECT_EQ(6, statistics.num_loads_total);
107 EXPECT_EQ(4, statistics.num_loads_evaluated); 114 EXPECT_EQ(5, statistics.num_loads_evaluated);
108 EXPECT_EQ(2, statistics.num_loads_matching_rules); 115 EXPECT_EQ(3, statistics.num_loads_matching_rules);
109 EXPECT_EQ(2, statistics.num_loads_disallowed); 116 EXPECT_EQ(3, statistics.num_loads_disallowed);
110 117
111 if (!measure_performance) { 118 if (!measure_performance) {
112 EXPECT_TRUE(statistics.evaluation_total_cpu_duration.is_zero()); 119 EXPECT_TRUE(statistics.evaluation_total_cpu_duration.is_zero());
113 EXPECT_TRUE(statistics.evaluation_total_wall_duration.is_zero()); 120 EXPECT_TRUE(statistics.evaluation_total_wall_duration.is_zero());
114 } 121 }
115 // Otherwise, don't expect |total_duration| to be non-zero, although it 122 // Otherwise, don't expect |total_duration| to be non-zero, although it
116 // practically is (when timer is supported). 123 // practically is (when timer is supported).
117 }; 124 };
118 125
119 test_impl(true /* measure_performance */); 126 test_impl(true /* measure_performance */);
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after
282 for (const auto& url_string : test_case.ancestor_document_urls) 289 for (const auto& url_string : test_case.ancestor_document_urls)
283 ancestor_document_urls.emplace_back(url_string); 290 ancestor_document_urls.emplace_back(url_string);
284 291
285 ActivationState activation_state = ComputeActivationState( 292 ActivationState activation_state = ComputeActivationState(
286 test_case.activation_level, false, ancestor_document_urls, ruleset()); 293 test_case.activation_level, false, ancestor_document_urls, ruleset());
287 EXPECT_EQ(test_case.expected_activation_state, activation_state); 294 EXPECT_EQ(test_case.expected_activation_state, activation_state);
288 } 295 }
289 } 296 }
290 297
291 } // namespace subresource_filter 298 } // namespace subresource_filter
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698