Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Delta Between Two Patch Sets: test/filterListener.js

Issue 29935564: Issue 7452 - Do not cache element hiding filter objects by default Base URL: https://hg.adblockplus.org/adblockpluscore/
Left Patch Set: Created Nov. 3, 2018, 7:54 p.m.
Right Patch Set: Rename filter* to filterText* Created April 8, 2019, 9:59 p.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
Left: Side by side diff | Download
Right: Side by side diff | Download
« no previous file with change/comment | « test/elemHide.js ('k') | no next file » | no next file with change/comment »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
LEFTRIGHT
1 /* 1 /*
2 * This file is part of Adblock Plus <https://adblockplus.org/>, 2 * This file is part of Adblock Plus <https://adblockplus.org/>,
3 * Copyright (C) 2006-present eyeo GmbH 3 * Copyright (C) 2006-present eyeo GmbH
4 * 4 *
5 * Adblock Plus is free software: you can redistribute it and/or modify 5 * Adblock Plus is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 3 as 6 * it under the terms of the GNU General Public License version 3 as
7 * published by the Free Software Foundation. 7 * published by the Free Software Foundation.
8 * 8 *
9 * Adblock Plus is distributed in the hope that it will be useful, 9 * Adblock Plus is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
(...skipping 12 matching lines...) Expand all
23 let filterStorage = null; 23 let filterStorage = null;
24 let Subscription = null; 24 let Subscription = null;
25 let Filter = null; 25 let Filter = null;
26 let defaultMatcher = null; 26 let defaultMatcher = null;
27 let SpecialSubscription = null; 27 let SpecialSubscription = null;
28 28
29 exports.setUp = function(callback) 29 exports.setUp = function(callback)
30 { 30 {
31 sandboxedRequire = createSandbox({ 31 sandboxedRequire = createSandbox({
32 extraExports: { 32 extraExports: {
33 elemHide: ["knownFilters"], 33 elemHide: ["knownFilterText"],
34 elemHideEmulation: ["filters"], 34 elemHideEmulation: ["filters"],
35 elemHideExceptions: ["knownExceptions"], 35 elemHideExceptions: ["knownExceptions"]
36 snippets: ["filters"]
37 } 36 }
38 }); 37 });
39 38
40 // We need to require the filterListener module so that filter changes will be 39 // We need to require the filterListener module so that filter changes will be
41 // noticed, even though we don't directly use the module here. 40 // noticed, even though we don't directly use the module here.
42 sandboxedRequire("../lib/filterListener"); 41 sandboxedRequire("../lib/filterListener");
43 42
44 ( 43 (
45 {filterStorage} = sandboxedRequire("../lib/filterStorage"), 44 {filterStorage} = sandboxedRequire("../lib/filterStorage"),
46 {Subscription, SpecialSubscription} = sandboxedRequire("../lib/subscriptionC lasses"), 45 {Subscription, SpecialSubscription} = sandboxedRequire("../lib/subscriptionC lasses"),
(...skipping 30 matching lines...) Expand all
77 "Keyword of filter " + filter.text); 76 "Keyword of filter " + filter.text);
78 filters.push(filter.text); 77 filters.push(filter.text);
79 } 78 }
80 } 79 }
81 } 80 }
82 result[type] = filters; 81 result[type] = filters;
83 } 82 }
84 83
85 let elemHide = sandboxedRequire("../lib/elemHide"); 84 let elemHide = sandboxedRequire("../lib/elemHide");
86 result.elemhide = []; 85 result.elemhide = [];
87 for (let filterText of elemHide.knownFilters) 86 for (let filterText of elemHide.knownFilterText)
88 result.elemhide.push(filterText); 87 result.elemhide.push(filterText);
89 88
90 let elemHideExceptions = sandboxedRequire("../lib/elemHideExceptions"); 89 let elemHideExceptions = sandboxedRequire("../lib/elemHideExceptions");
91 result.elemhideexception = []; 90 result.elemhideexception = [];
92 for (let exception of elemHideExceptions.knownExceptions) 91 for (let exception of elemHideExceptions.knownExceptions)
93 result.elemhideexception.push(exception.text); 92 result.elemhideexception.push(exception.text);
94 93
95 let elemHideEmulation = sandboxedRequire("../lib/elemHideEmulation"); 94 let elemHideEmulation = sandboxedRequire("../lib/elemHideEmulation");
96 result.elemhideemulation = []; 95 result.elemhideemulation = [];
97 for (let filter of elemHideEmulation.filters) 96 for (let filter of elemHideEmulation.filters)
98 result.elemhideemulation.push(filter.text); 97 result.elemhideemulation.push(filter.text);
99 98
100 let snippets = sandboxedRequire("../lib/snippets"); 99 let {snippets} = sandboxedRequire("../lib/snippets");
101 result.snippets = []; 100 result.snippets = [];
102 for (let filter of snippets.filters) 101 for (let filter of snippets._filters)
103 result.snippets.push(filter.text); 102 result.snippets.push(filter.text);
104 103
105 let types = ["blacklist", "whitelist", "elemhide", "elemhideexception", 104 let types = ["blacklist", "whitelist", "elemhide", "elemhideexception",
106 "elemhideemulation", "snippets"]; 105 "elemhideemulation", "snippets"];
107 for (let type of types) 106 for (let type of types)
108 { 107 {
109 if (!(type in expected)) 108 if (!(type in expected))
110 expected[type] = []; 109 expected[type] = [];
111 else 110 else
112 expected[type].sort(); 111 expected[type].sort();
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
200 let filter1 = Filter.fromText("filter1"); 199 let filter1 = Filter.fromText("filter1");
201 let filter2 = Filter.fromText("@@filter2"); 200 let filter2 = Filter.fromText("@@filter2");
202 filter2.disabled = true; 201 filter2.disabled = true;
203 let filter3 = Filter.fromText("##filter3"); 202 let filter3 = Filter.fromText("##filter3");
204 let filter4 = Filter.fromText("!filter4"); 203 let filter4 = Filter.fromText("!filter4");
205 let filter5 = Filter.fromText("#@#filter5"); 204 let filter5 = Filter.fromText("#@#filter5");
206 let filter6 = Filter.fromText("example.com#?#:-abp-properties(filter6)"); 205 let filter6 = Filter.fromText("example.com#?#:-abp-properties(filter6)");
207 let filter7 = Filter.fromText("example.com#@#[-abp-properties='filter7']"); 206 let filter7 = Filter.fromText("example.com#@#[-abp-properties='filter7']");
208 207
209 let subscription = Subscription.fromURL("http://test1/"); 208 let subscription = Subscription.fromURL("http://test1/");
210 subscription.filters = [filter1, filter2, filter3, filter4, filter5, filter6, filter7]; 209 subscription.addFilter(filter1);
210 subscription.addFilter(filter2);
211 subscription.addFilter(filter3);
212 subscription.addFilter(filter4);
213 subscription.addFilter(filter5);
214 subscription.addFilter(filter6);
215 subscription.addFilter(filter7);
211 216
212 filterStorage.addSubscription(subscription); 217 filterStorage.addSubscription(subscription);
213 checkKnownFilters(test, "add subscription with filter1, @@filter2, ##filter3, !filter4, #@#filter5, example.com#?#:-abp-properties(filter6), example.com#@#[-a bp-properties='filter7']", {blacklist: [filter1.text], elemhide: [filter3.text], elemhideexception: [filter5.text, filter7.text], elemhideemulation: [filter6.te xt]}); 218 checkKnownFilters(test, "add subscription with filter1, @@filter2, ##filter3, !filter4, #@#filter5, example.com#?#:-abp-properties(filter6), example.com#@#[-a bp-properties='filter7']", {blacklist: [filter1.text], elemhide: [filter3.text], elemhideexception: [filter5.text, filter7.text], elemhideemulation: [filter6.te xt]});
214 219
215 filter2.disabled = false; 220 filter2.disabled = false;
216 checkKnownFilters(test, "enable @@filter2", {blacklist: [filter1.text], whitel ist: [filter2.text], elemhide: [filter3.text], elemhideexception: [filter5.text, filter7.text], elemhideemulation: [filter6.text]}); 221 checkKnownFilters(test, "enable @@filter2", {blacklist: [filter1.text], whitel ist: [filter2.text], elemhide: [filter3.text], elemhideexception: [filter5.text, filter7.text], elemhideemulation: [filter6.text]});
217 222
218 filterStorage.addFilter(filter1); 223 filterStorage.addFilter(filter1);
219 checkKnownFilters(test, "add filter1", {blacklist: [filter1.text], whitelist: [filter2.text], elemhide: [filter3.text], elemhideexception: [filter5.text, filt er7.text], elemhideemulation: [filter6.text]}); 224 checkKnownFilters(test, "add filter1", {blacklist: [filter1.text], whitelist: [filter2.text], elemhide: [filter3.text], elemhideexception: [filter5.text, filt er7.text], elemhideemulation: [filter6.text]});
220 225
221 filterStorage.updateSubscriptionFilters(subscription, [filter4]); 226 filterStorage.updateSubscriptionFilters(subscription, [filter4.text]);
222 checkKnownFilters(test, "change subscription filters to filter4", {blacklist: [filter1.text]}); 227 checkKnownFilters(test, "change subscription filters to filter4", {blacklist: [filter1.text]});
223 228
224 filterStorage.removeFilter(filter1); 229 filterStorage.removeFilter(filter1);
225 checkKnownFilters(test, "remove filter1", {}); 230 checkKnownFilters(test, "remove filter1", {});
226 231
227 filterStorage.updateSubscriptionFilters(subscription, [filter1, filter2]); 232 filterStorage.updateSubscriptionFilters(subscription, [filter1.text, filter2.t ext]);
228 checkKnownFilters(test, "change subscription filters to filter1, filter2", {bl acklist: [filter1.text], whitelist: [filter2.text]}); 233 checkKnownFilters(test, "change subscription filters to filter1, filter2", {bl acklist: [filter1.text], whitelist: [filter2.text]});
229 234
230 filter1.disabled = true; 235 filter1.disabled = true;
231 checkKnownFilters(test, "disable filter1", {whitelist: [filter2.text]}); 236 checkKnownFilters(test, "disable filter1", {whitelist: [filter2.text]});
232 filter2.disabled = true; 237 filter2.disabled = true;
233 checkKnownFilters(test, "disable filter2", {}); 238 checkKnownFilters(test, "disable filter2", {});
234 filter1.disabled = false; 239 filter1.disabled = false;
235 filter2.disabled = false; 240 filter2.disabled = false;
236 checkKnownFilters(test, "enable filter1, filter2", {blacklist: [filter1.text], whitelist: [filter2.text]}); 241 checkKnownFilters(test, "enable filter1, filter2", {blacklist: [filter1.text], whitelist: [filter2.text]});
237 242
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
270 275
271 exports.testFilterGroupOperations = function(test) 276 exports.testFilterGroupOperations = function(test)
272 { 277 {
273 let filter1 = Filter.fromText("filter1"); 278 let filter1 = Filter.fromText("filter1");
274 let filter2 = Filter.fromText("@@filter2"); 279 let filter2 = Filter.fromText("@@filter2");
275 let filter3 = Filter.fromText("filter3"); 280 let filter3 = Filter.fromText("filter3");
276 let filter4 = Filter.fromText("@@filter4"); 281 let filter4 = Filter.fromText("@@filter4");
277 let filter5 = Filter.fromText("!filter5"); 282 let filter5 = Filter.fromText("!filter5");
278 283
279 let subscription = Subscription.fromURL("http://test1/"); 284 let subscription = Subscription.fromURL("http://test1/");
280 subscription.filters = [filter1, filter2]; 285 subscription.addFilter(filter1);
286 subscription.addFilter(filter2);
281 287
282 filterStorage.addSubscription(subscription); 288 filterStorage.addSubscription(subscription);
283 filterStorage.addFilter(filter1); 289 filterStorage.addFilter(filter1);
284 checkKnownFilters(test, "initial setup", {blacklist: [filter1.text], whitelist : [filter2.text]}); 290 checkKnownFilters(test, "initial setup", {blacklist: [filter1.text], whitelist : [filter2.text]});
285 291
286 let subscription2 = Subscription.fromURL("~fl~"); 292 let subscription2 = Subscription.fromURL("~fl~");
287 subscription2.disabled = true; 293 subscription2.disabled = true;
288 checkKnownFilters(test, "disable blocking filters", {blacklist: [filter1.text] , whitelist: [filter2.text]}); 294 checkKnownFilters(test, "disable blocking filters", {blacklist: [filter1.text] , whitelist: [filter2.text]});
289 295
290 filterStorage.removeSubscription(subscription); 296 filterStorage.removeSubscription(subscription);
291 checkKnownFilters(test, "remove subscription", {}); 297 checkKnownFilters(test, "remove subscription", {});
292 298
293 subscription2.disabled = false; 299 subscription2.disabled = false;
294 checkKnownFilters(test, "enable blocking filters", {blacklist: [filter1.text]} ); 300 checkKnownFilters(test, "enable blocking filters", {blacklist: [filter1.text]} );
295 301
296 let subscription3 = Subscription.fromURL("~wl~"); 302 let subscription3 = Subscription.fromURL("~wl~");
297 subscription3.disabled = true; 303 subscription3.disabled = true;
298 checkKnownFilters(test, "disable exception rules", {blacklist: [filter1.text]} ); 304 checkKnownFilters(test, "disable exception rules", {blacklist: [filter1.text]} );
299 305
300 filterStorage.addFilter(filter2); 306 filterStorage.addFilter(filter2);
301 checkKnownFilters(test, "add @@filter2", {blacklist: [filter1.text], whitelist : [filter2.text]}); 307 checkKnownFilters(test, "add @@filter2", {blacklist: [filter1.text], whitelist : [filter2.text]});
302 test.equal(filter2.subscriptionCount, 1, "@@filter2.subscriptionCount"); 308 test.equal([...filterStorage.subscriptions(filter2.text)].length, 1, "@@filter 2 subscription count");
303 test.ok([...filter2.subscriptions()][0] instanceof SpecialSubscription, "@@fil ter2 added to a new filter group"); 309 test.ok([...filterStorage.subscriptions(filter2.text)][0] instanceof SpecialSu bscription, "@@filter2 added to a new filter group");
304 test.ok([...filter2.subscriptions()][0] != subscription3, "@@filter2 filter gr oup is not the disabled exceptions group"); 310 test.ok([...filterStorage.subscriptions(filter2.text)][0] != subscription3, "@ @filter2 filter group is not the disabled exceptions group");
305 311
306 subscription3.disabled = false; 312 subscription3.disabled = false;
307 checkKnownFilters(test, "enable exception rules", {blacklist: [filter1.text], whitelist: [filter2.text]}); 313 checkKnownFilters(test, "enable exception rules", {blacklist: [filter1.text], whitelist: [filter2.text]});
308 314
309 filterStorage.removeFilter(filter2); 315 filterStorage.removeFilter(filter2);
310 filterStorage.addFilter(filter2); 316 filterStorage.addFilter(filter2);
311 checkKnownFilters(test, "re-add @@filter2", {blacklist: [filter1.text], whitel ist: [filter2.text]}); 317 checkKnownFilters(test, "re-add @@filter2", {blacklist: [filter1.text], whitel ist: [filter2.text]});
312 test.equal(filter2.subscriptionCount, 1, "@@filter2.subscriptionCount"); 318 test.equal([...filterStorage.subscriptions(filter2.text)].length, 1, "@@filter 2 subscription count");
313 test.ok([...filter2.subscriptions()][0] == subscription3, "@@filter2 added to the default exceptions group"); 319 test.ok([...filterStorage.subscriptions(filter2.text)][0] == subscription3, "@ @filter2 added to the default exceptions group");
314 320
315 let subscription4 = Subscription.fromURL("http://test/"); 321 let subscription4 = Subscription.fromURL("http://test/");
316 filterStorage.updateSubscriptionFilters(subscription4, [filter3, filter4, filt er5]); 322 filterStorage.updateSubscriptionFilters(subscription4, [filter3.text, filter4. text, filter5.text]);
317 checkKnownFilters(test, "update subscription not in the list yet", {blacklist: [filter1.text], whitelist: [filter2.text]}); 323 checkKnownFilters(test, "update subscription not in the list yet", {blacklist: [filter1.text], whitelist: [filter2.text]});
318 324
319 filterStorage.addSubscription(subscription4); 325 filterStorage.addSubscription(subscription4);
320 checkKnownFilters(test, "add subscription to the list", {blacklist: [filter1.t ext, filter3.text], whitelist: [filter2.text, filter4.text]}); 326 checkKnownFilters(test, "add subscription to the list", {blacklist: [filter1.t ext, filter3.text], whitelist: [filter2.text, filter4.text]});
321 327
322 filterStorage.updateSubscriptionFilters(subscription4, [filter3, filter2, filt er5]); 328 filterStorage.updateSubscriptionFilters(subscription4, [filter3.text, filter2. text, filter5.text]);
323 checkKnownFilters(test, "update subscription while in the list", {blacklist: [ filter1.text, filter3.text], whitelist: [filter2.text]}); 329 checkKnownFilters(test, "update subscription while in the list", {blacklist: [ filter1.text, filter3.text], whitelist: [filter2.text]});
324 330
325 subscription3.disabled = true; 331 subscription3.disabled = true;
326 checkKnownFilters(test, "disable exception rules", {blacklist: [filter1.text, filter3.text], whitelist: [filter2.text]}); 332 checkKnownFilters(test, "disable exception rules", {blacklist: [filter1.text, filter3.text], whitelist: [filter2.text]});
327 333
328 filterStorage.removeSubscription(subscription4); 334 filterStorage.removeSubscription(subscription4);
329 checkKnownFilters(test, "remove subscription from the list", {blacklist: [filt er1.text]}); 335 checkKnownFilters(test, "remove subscription from the list", {blacklist: [filt er1.text]});
330 336
331 subscription3.disabled = false; 337 subscription3.disabled = false;
332 checkKnownFilters(test, "enable exception rules", {blacklist: [filter1.text], whitelist: [filter2.text]}); 338 checkKnownFilters(test, "enable exception rules", {blacklist: [filter1.text], whitelist: [filter2.text]});
333 339
334 test.done(); 340 test.done();
335 }; 341 };
336 342
337 exports.testSnippetFilters = function(test) 343 exports.testSnippetFilters = function(test)
338 { 344 {
339 let filter1 = Filter.fromText("example.com#$#filter1"); 345 let filter1 = Filter.fromText("example.com#$#filter1");
340 let filter2 = Filter.fromText("example.com#$#filter2"); 346 let filter2 = Filter.fromText("example.com#$#filter2");
341 let filter3 = Filter.fromText("example.com#$#filter3"); 347 let filter3 = Filter.fromText("example.com#$#filter3");
342 348
343 let subscription1 = Subscription.fromURL("http://test1/"); 349 let subscription1 = Subscription.fromURL("http://test1/");
344 subscription1.filters = [filter1, filter2]; 350 subscription1.addFilter(filter1);
351 subscription1.addFilter(filter2);
345 352
346 filterStorage.addSubscription(subscription1); 353 filterStorage.addSubscription(subscription1);
347 checkKnownFilters(test, "add subscription with filter1 and filter2", {}); 354 checkKnownFilters(test, "add subscription with filter1 and filter2", {});
348 355
349 let subscription2 = Subscription.fromURL("http://test2/"); 356 let subscription2 = Subscription.fromURL("http://test2/");
350 subscription2.type = "circumvention"; 357 subscription2.type = "circumvention";
351 subscription2.filters = [filter1]; 358 subscription2.addFilter(filter1);
352 359
353 filterStorage.addSubscription(subscription2); 360 filterStorage.addSubscription(subscription2);
354 checkKnownFilters(test, "add subscription of type circumvention with filter1", {snippets: [filter1.text]}); 361 checkKnownFilters(test, "add subscription of type circumvention with filter1", {snippets: [filter1.text]});
355 362
356 let subscription3 = Subscription.fromURL("~foo"); 363 let subscription3 = Subscription.fromURL("~foo");
357 subscription3.filters = [filter2]; 364 subscription3.addFilter(filter2);
358 365
359 filterStorage.addSubscription(subscription3); 366 filterStorage.addSubscription(subscription3);
360 checkKnownFilters(test, "add special subscription with filter2", {snippets: [f ilter1.text, filter2.text]}); 367 checkKnownFilters(test, "add special subscription with filter2", {snippets: [f ilter1.text, filter2.text]});
361 368
362 let subscription4 = Subscription.fromURL("https://easylist-downloads.adblockpl us.org/abp-filters-anti-cv.txt"); 369 let subscription4 = Subscription.fromURL("https://easylist-downloads.adblockpl us.org/abp-filters-anti-cv.txt");
363 subscription4.filters = [filter3]; 370 subscription4.addFilter(filter3);
364 371
365 filterStorage.addSubscription(subscription4); 372 filterStorage.addSubscription(subscription4);
366 checkKnownFilters(test, "add ABP anti-circumvention subscription with filter3" , {snippets: [filter1.text, filter2.text, filter3.text]}); 373 checkKnownFilters(test, "add ABP anti-circumvention subscription with filter3" , {snippets: [filter1.text, filter2.text, filter3.text]});
367 374
368 test.done(); 375 test.done();
369 }; 376 };
LEFTRIGHT

Powered by Google App Engine
This is Rietveld