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

Side by Side Diff: components/subresource_filter/content/browser/async_document_subresource_filter_unittest.cc

Issue 2691423006: Introduce the ThrottleManager (Closed)
Patch Set: engedy review 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 2017 The Chromium Authors. All rights reserved. 1 // Copyright 2017 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/content/browser/async_document_subresour ce_filter.h" 5 #include "components/subresource_filter/content/browser/async_document_subresour ce_filter.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
134 134
135 TEST_F(AsyncDocumentSubresourceFilterTest, ActivationStateIsReported) { 135 TEST_F(AsyncDocumentSubresourceFilterTest, ActivationStateIsReported) {
136 dealer_handle()->SetRulesetFile(testing::TestRuleset::Open(ruleset())); 136 dealer_handle()->SetRulesetFile(testing::TestRuleset::Open(ruleset()));
137 auto ruleset_handle = CreateRulesetHandle(); 137 auto ruleset_handle = CreateRulesetHandle();
138 138
139 AsyncDocumentSubresourceFilter::InitializationParams params( 139 AsyncDocumentSubresourceFilter::InitializationParams params(
140 GURL("http://example.com"), ActivationLevel::ENABLED, false); 140 GURL("http://example.com"), ActivationLevel::ENABLED, false);
141 141
142 testing::TestActivationStateCallbackReceiver activation_state; 142 testing::TestActivationStateCallbackReceiver activation_state;
143 auto filter = base::MakeUnique<AsyncDocumentSubresourceFilter>( 143 auto filter = base::MakeUnique<AsyncDocumentSubresourceFilter>(
144 ruleset_handle.get(), std::move(params), activation_state.GetCallback(), 144 ruleset_handle.get(), std::move(params), activation_state.GetCallback());
145 base::OnceClosure());
146 145
147 RunUntilIdle(); 146 RunUntilIdle();
148 activation_state.ExpectReceivedOnce( 147 activation_state.ExpectReceivedOnce(
149 ActivationState(ActivationLevel::ENABLED)); 148 ActivationState(ActivationLevel::ENABLED));
150 } 149 }
151 150
152 TEST_F(AsyncDocumentSubresourceFilterTest, ActivationStateIsComputedCorrectly) { 151 TEST_F(AsyncDocumentSubresourceFilterTest, ActivationStateIsComputedCorrectly) {
153 dealer_handle()->SetRulesetFile(testing::TestRuleset::Open(ruleset())); 152 dealer_handle()->SetRulesetFile(testing::TestRuleset::Open(ruleset()));
154 auto ruleset_handle = CreateRulesetHandle(); 153 auto ruleset_handle = CreateRulesetHandle();
155 154
156 AsyncDocumentSubresourceFilter::InitializationParams params( 155 AsyncDocumentSubresourceFilter::InitializationParams params(
157 GURL("http://whitelisted.subframe.com"), ActivationLevel::ENABLED, false); 156 GURL("http://whitelisted.subframe.com"), ActivationLevel::ENABLED, false);
158 params.parent_document_origin = url::Origin(GURL("http://example.com")); 157 params.parent_document_origin = url::Origin(GURL("http://example.com"));
159 158
160 testing::TestActivationStateCallbackReceiver activation_state; 159 testing::TestActivationStateCallbackReceiver activation_state;
161 auto filter = base::MakeUnique<AsyncDocumentSubresourceFilter>( 160 auto filter = base::MakeUnique<AsyncDocumentSubresourceFilter>(
162 ruleset_handle.get(), std::move(params), activation_state.GetCallback(), 161 ruleset_handle.get(), std::move(params), activation_state.GetCallback());
163 base::OnceClosure());
164 162
165 RunUntilIdle(); 163 RunUntilIdle();
166 164
167 ActivationState expected_activation_state(ActivationLevel::ENABLED); 165 ActivationState expected_activation_state(ActivationLevel::ENABLED);
168 expected_activation_state.generic_blocking_rules_disabled = true; 166 expected_activation_state.generic_blocking_rules_disabled = true;
169 activation_state.ExpectReceivedOnce(expected_activation_state); 167 activation_state.ExpectReceivedOnce(expected_activation_state);
170 } 168 }
171 169
172 TEST_F(AsyncDocumentSubresourceFilterTest, DisabledForCorruptRuleset) { 170 TEST_F(AsyncDocumentSubresourceFilterTest, DisabledForCorruptRuleset) {
173 testing::TestRuleset::CorruptByFilling(ruleset(), 0, 100, 0xFF); 171 testing::TestRuleset::CorruptByFilling(ruleset(), 0, 100, 0xFF);
174 dealer_handle()->SetRulesetFile(testing::TestRuleset::Open(ruleset())); 172 dealer_handle()->SetRulesetFile(testing::TestRuleset::Open(ruleset()));
175 173
176 auto ruleset_handle = CreateRulesetHandle(); 174 auto ruleset_handle = CreateRulesetHandle();
177 175
178 AsyncDocumentSubresourceFilter::InitializationParams params( 176 AsyncDocumentSubresourceFilter::InitializationParams params(
179 GURL("http://example.com"), ActivationLevel::ENABLED, false); 177 GURL("http://example.com"), ActivationLevel::ENABLED, false);
180 178
181 testing::TestActivationStateCallbackReceiver activation_state; 179 testing::TestActivationStateCallbackReceiver activation_state;
182 auto filter = base::MakeUnique<AsyncDocumentSubresourceFilter>( 180 auto filter = base::MakeUnique<AsyncDocumentSubresourceFilter>(
183 ruleset_handle.get(), std::move(params), activation_state.GetCallback(), 181 ruleset_handle.get(), std::move(params), activation_state.GetCallback());
184 base::OnceClosure());
185 182
186 RunUntilIdle(); 183 RunUntilIdle();
187 activation_state.ExpectReceivedOnce( 184 activation_state.ExpectReceivedOnce(
188 ActivationState(ActivationLevel::DISABLED)); 185 ActivationState(ActivationLevel::DISABLED));
189 } 186 }
190 187
191 TEST_F(AsyncDocumentSubresourceFilterTest, GetLoadPolicyForSubdocument) { 188 TEST_F(AsyncDocumentSubresourceFilterTest, GetLoadPolicyForSubdocument) {
192 dealer_handle()->SetRulesetFile(testing::TestRuleset::Open(ruleset())); 189 dealer_handle()->SetRulesetFile(testing::TestRuleset::Open(ruleset()));
193 auto ruleset_handle = CreateRulesetHandle(); 190 auto ruleset_handle = CreateRulesetHandle();
194 191
195 AsyncDocumentSubresourceFilter::InitializationParams params( 192 AsyncDocumentSubresourceFilter::InitializationParams params(
196 GURL("http://example.com"), ActivationLevel::ENABLED, false); 193 GURL("http://example.com"), ActivationLevel::ENABLED, false);
197 194
198 testing::TestActivationStateCallbackReceiver activation_state; 195 testing::TestActivationStateCallbackReceiver activation_state;
199 auto filter = base::MakeUnique<AsyncDocumentSubresourceFilter>( 196 auto filter = base::MakeUnique<AsyncDocumentSubresourceFilter>(
200 ruleset_handle.get(), std::move(params), activation_state.GetCallback(), 197 ruleset_handle.get(), std::move(params), activation_state.GetCallback());
201 base::OnceClosure());
202 198
203 LoadPolicyCallbackReceiver load_policy_1; 199 LoadPolicyCallbackReceiver load_policy_1;
204 LoadPolicyCallbackReceiver load_policy_2; 200 LoadPolicyCallbackReceiver load_policy_2;
205 filter->GetLoadPolicyForSubdocument(GURL("http://example.com/allowed.html"), 201 filter->GetLoadPolicyForSubdocument(GURL("http://example.com/allowed.html"),
206 load_policy_1.GetCallback()); 202 load_policy_1.GetCallback());
207 filter->GetLoadPolicyForSubdocument( 203 filter->GetLoadPolicyForSubdocument(
208 GURL("http://example.com/disallowed.html"), load_policy_2.GetCallback()); 204 GURL("http://example.com/disallowed.html"), load_policy_2.GetCallback());
209 205
210 RunUntilIdle(); 206 RunUntilIdle();
211 load_policy_1.ExpectReceivedOnce(LoadPolicy::ALLOW); 207 load_policy_1.ExpectReceivedOnce(LoadPolicy::ALLOW);
212 load_policy_2.ExpectReceivedOnce(LoadPolicy::DISALLOW); 208 load_policy_2.ExpectReceivedOnce(LoadPolicy::DISALLOW);
213 } 209 }
214 210
215 TEST_F(AsyncDocumentSubresourceFilterTest, FirstDisallowedLoadIsReported) { 211 TEST_F(AsyncDocumentSubresourceFilterTest, FirstDisallowedLoadIsReported) {
216 dealer_handle()->SetRulesetFile(testing::TestRuleset::Open(ruleset())); 212 dealer_handle()->SetRulesetFile(testing::TestRuleset::Open(ruleset()));
217 auto ruleset_handle = CreateRulesetHandle(); 213 auto ruleset_handle = CreateRulesetHandle();
218 214
219 TestCallbackReceiver first_disallowed_load_receiver; 215 TestCallbackReceiver first_disallowed_load_receiver;
220 AsyncDocumentSubresourceFilter::InitializationParams params( 216 AsyncDocumentSubresourceFilter::InitializationParams params(
221 GURL("http://example.com"), ActivationLevel::ENABLED, false); 217 GURL("http://example.com"), ActivationLevel::ENABLED, false);
222 218
223 testing::TestActivationStateCallbackReceiver activation_state; 219 testing::TestActivationStateCallbackReceiver activation_state;
224 auto filter = base::MakeUnique<AsyncDocumentSubresourceFilter>( 220 auto filter = base::MakeUnique<AsyncDocumentSubresourceFilter>(
225 ruleset_handle.get(), std::move(params), activation_state.GetCallback(), 221 ruleset_handle.get(), std::move(params), activation_state.GetCallback());
222 filter->set_first_disallowed_load_callback(
226 first_disallowed_load_receiver.GetClosure()); 223 first_disallowed_load_receiver.GetClosure());
227 224
228 LoadPolicyCallbackReceiver load_policy_1; 225 LoadPolicyCallbackReceiver load_policy_1;
229 filter->GetLoadPolicyForSubdocument(GURL("http://example.com/allowed.html"), 226 filter->GetLoadPolicyForSubdocument(GURL("http://example.com/allowed.html"),
230 load_policy_1.GetCallback()); 227 load_policy_1.GetCallback());
231 RunUntilIdle(); 228 RunUntilIdle();
232 load_policy_1.ExpectReceivedOnce(LoadPolicy::ALLOW); 229 load_policy_1.ExpectReceivedOnce(LoadPolicy::ALLOW);
233 EXPECT_EQ(0, first_disallowed_load_receiver.callback_count()); 230 EXPECT_EQ(0, first_disallowed_load_receiver.callback_count());
234 231
235 LoadPolicyCallbackReceiver load_policy_2; 232 LoadPolicyCallbackReceiver load_policy_2;
236 filter->GetLoadPolicyForSubdocument( 233 filter->GetLoadPolicyForSubdocument(
237 GURL("http://example.com/disallowed.html"), load_policy_2.GetCallback()); 234 GURL("http://example.com/disallowed.html"), load_policy_2.GetCallback());
238 RunUntilIdle(); 235 RunUntilIdle();
239 load_policy_2.ExpectReceivedOnce(LoadPolicy::DISALLOW); 236 load_policy_2.ExpectReceivedOnce(LoadPolicy::DISALLOW);
240 EXPECT_EQ(0, first_disallowed_load_receiver.callback_count()); 237 EXPECT_EQ(0, first_disallowed_load_receiver.callback_count());
241 238
242 filter->ReportDisallowedLoad(); 239 filter->ReportDisallowedLoad();
243 EXPECT_EQ(1, first_disallowed_load_receiver.callback_count()); 240 EXPECT_EQ(1, first_disallowed_load_receiver.callback_count());
244 RunUntilIdle(); 241 RunUntilIdle();
245 } 242 }
246 243
247 } // namespace subresource_filter 244 } // namespace subresource_filter
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698