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

Delta Between Two Patch Sets: test/filterListener.js

Issue 29897555: Issue 6940 - Use underscore prefixes lib/matcher.js (Closed)
Left Patch Set: Rebase Created Oct. 21, 2018, 3:04 a.m.
Right Patch Set: Address PS6 comment Created Oct. 24, 2018, 6:47 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 | « lib/matcher.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
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details. 12 * GNU General Public License for more details.
13 * 13 *
14 * You should have received a copy of the GNU General Public License 14 * You should have received a copy of the GNU General Public License
15 * along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>. 15 * along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>.
16 */ 16 */
17 17
18 "use strict"; 18 "use strict";
19 19
20 const {createSandbox} = require("./_common"); 20 const {createSandbox} = require("./_common");
21 let sandboxedRequire = null; 21 let sandboxedRequire = null;
22 22
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: ["knownFilters"],
34 elemHideEmulation: ["filters"], 34 elemHideEmulation: ["filters"],
35 elemHideExceptions: ["knownExceptions"], 35 elemHideExceptions: ["knownExceptions"],
36 snippets: ["filters"] 36 snippets: ["filters"]
37 } 37 }
38 }); 38 });
39 39
40 // We need to require the filterListener module so that filter changes will be 40 // 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. 41 // noticed, even though we don't directly use the module here.
42 sandboxedRequire("../lib/filterListener"); 42 sandboxedRequire("../lib/filterListener");
43 43
44 ( 44 (
45 {FilterStorage} = sandboxedRequire("../lib/filterStorage"), 45 {filterStorage} = sandboxedRequire("../lib/filterStorage"),
46 {Subscription, SpecialSubscription} = sandboxedRequire("../lib/subscriptionC lasses"), 46 {Subscription, SpecialSubscription} = sandboxedRequire("../lib/subscriptionC lasses"),
47 {Filter} = sandboxedRequire("../lib/filterClasses"), 47 {Filter} = sandboxedRequire("../lib/filterClasses"),
48 {defaultMatcher} = sandboxedRequire("../lib/matcher") 48 {defaultMatcher} = sandboxedRequire("../lib/matcher")
49 ); 49 );
50 50
51 FilterStorage.addSubscription(Subscription.fromURL("~fl~")); 51 filterStorage.addSubscription(Subscription.fromURL("~fl~"));
52 FilterStorage.addSubscription(Subscription.fromURL("~wl~")); 52 filterStorage.addSubscription(Subscription.fromURL("~wl~"));
53 FilterStorage.addSubscription(Subscription.fromURL("~eh~")); 53 filterStorage.addSubscription(Subscription.fromURL("~eh~"));
54 54
55 Subscription.fromURL("~fl~").defaults = ["blocking"]; 55 Subscription.fromURL("~fl~").defaults = ["blocking"];
56 Subscription.fromURL("~wl~").defaults = ["whitelist"]; 56 Subscription.fromURL("~wl~").defaults = ["whitelist"];
57 Subscription.fromURL("~eh~").defaults = ["elemhide"]; 57 Subscription.fromURL("~eh~").defaults = ["elemhide"];
58 58
59 callback(); 59 callback();
60 }; 60 };
61 61
62 function checkKnownFilters(test, text, expected) 62 function checkKnownFilters(test, text, expected)
63 { 63 {
64 let result = {}; 64 let result = {};
65 for (let type of ["blacklist", "whitelist"]) 65 for (let type of ["blacklist", "whitelist"])
66 { 66 {
67 let matcher = defaultMatcher[type]; 67 let matcher = defaultMatcher["_" + type];
68 let filters = []; 68 let filters = [];
69 for (let [keyword, set] of matcher._filterByKeyword) 69 for (let [keyword, set] of matcher._filterByKeyword)
70 { 70 {
71 for (let filter of set) 71 for (let filter of set)
72 { 72 {
73 test.equal(matcher.findKeyword(filter), keyword, 73 test.equal(matcher.findKeyword(filter), keyword,
74 "Keyword of filter " + filter.text); 74 "Keyword of filter " + filter.text);
75 filters.push(filter.text); 75 filters.push(filter.text);
76 } 76 }
77 } 77 }
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
115 exports.testAddingAndRemovingFilters = function(test) 115 exports.testAddingAndRemovingFilters = function(test)
116 { 116 {
117 let filter1 = Filter.fromText("filter1"); 117 let filter1 = Filter.fromText("filter1");
118 let filter2 = Filter.fromText("@@filter2"); 118 let filter2 = Filter.fromText("@@filter2");
119 let filter3 = Filter.fromText("##filter3"); 119 let filter3 = Filter.fromText("##filter3");
120 let filter4 = Filter.fromText("!filter4"); 120 let filter4 = Filter.fromText("!filter4");
121 let filter5 = Filter.fromText("#@#filter5"); 121 let filter5 = Filter.fromText("#@#filter5");
122 let filter6 = Filter.fromText("example.com#?#:-abp-properties(filter6')"); 122 let filter6 = Filter.fromText("example.com#?#:-abp-properties(filter6')");
123 let filter7 = Filter.fromText("example.com#@#[-abp-properties='filter7']"); 123 let filter7 = Filter.fromText("example.com#@#[-abp-properties='filter7']");
124 124
125 FilterStorage.addFilter(filter1); 125 filterStorage.addFilter(filter1);
126 checkKnownFilters(test, "add filter1", {blacklist: [filter1.text]}); 126 checkKnownFilters(test, "add filter1", {blacklist: [filter1.text]});
127 FilterStorage.addFilter(filter2); 127 filterStorage.addFilter(filter2);
128 checkKnownFilters(test, "add @@filter2", {blacklist: [filter1.text], whitelist : [filter2.text]}); 128 checkKnownFilters(test, "add @@filter2", {blacklist: [filter1.text], whitelist : [filter2.text]});
129 FilterStorage.addFilter(filter3); 129 filterStorage.addFilter(filter3);
130 checkKnownFilters(test, "add ##filter3", {blacklist: [filter1.text], whitelist : [filter2.text], elemhide: [filter3.text]}); 130 checkKnownFilters(test, "add ##filter3", {blacklist: [filter1.text], whitelist : [filter2.text], elemhide: [filter3.text]});
131 FilterStorage.addFilter(filter4); 131 filterStorage.addFilter(filter4);
132 checkKnownFilters(test, "add !filter4", {blacklist: [filter1.text], whitelist: [filter2.text], elemhide: [filter3.text]}); 132 checkKnownFilters(test, "add !filter4", {blacklist: [filter1.text], whitelist: [filter2.text], elemhide: [filter3.text]});
133 FilterStorage.addFilter(filter5); 133 filterStorage.addFilter(filter5);
134 checkKnownFilters(test, "add #@#filter5", {blacklist: [filter1.text], whitelis t: [filter2.text], elemhide: [filter3.text], elemhideexception: [filter5.text]}) ; 134 checkKnownFilters(test, "add #@#filter5", {blacklist: [filter1.text], whitelis t: [filter2.text], elemhide: [filter3.text], elemhideexception: [filter5.text]}) ;
135 FilterStorage.addFilter(filter6); 135 filterStorage.addFilter(filter6);
136 checkKnownFilters(test, "add example.com##:-abp-properties(filter6)", {blackli st: [filter1.text], whitelist: [filter2.text], elemhide: [filter3.text], elemhid eexception: [filter5.text], elemhideemulation: [filter6.text]}); 136 checkKnownFilters(test, "add example.com##:-abp-properties(filter6)", {blackli st: [filter1.text], whitelist: [filter2.text], elemhide: [filter3.text], elemhid eexception: [filter5.text], elemhideemulation: [filter6.text]});
137 FilterStorage.addFilter(filter7); 137 filterStorage.addFilter(filter7);
138 checkKnownFilters(test, "add example.com#@#[-abp-properties='filter7']", {blac klist: [filter1.text], whitelist: [filter2.text], elemhide: [filter3.text], elem hideexception: [filter5.text, filter7.text], elemhideemulation: [filter6.text]}) ; 138 checkKnownFilters(test, "add example.com#@#[-abp-properties='filter7']", {blac klist: [filter1.text], whitelist: [filter2.text], elemhide: [filter3.text], elem hideexception: [filter5.text, filter7.text], elemhideemulation: [filter6.text]}) ;
139 139
140 FilterStorage.removeFilter(filter1); 140 filterStorage.removeFilter(filter1);
141 checkKnownFilters(test, "remove filter1", {whitelist: [filter2.text], elemhide : [filter3.text], elemhideexception: [filter5.text, filter7.text], elemhideemula tion: [filter6.text]}); 141 checkKnownFilters(test, "remove filter1", {whitelist: [filter2.text], elemhide : [filter3.text], elemhideexception: [filter5.text, filter7.text], elemhideemula tion: [filter6.text]});
142 filter2.disabled = true; 142 filter2.disabled = true;
143 checkKnownFilters(test, "disable filter2", {elemhide: [filter3.text], elemhide exception: [filter5.text, filter7.text], elemhideemulation: [filter6.text]}); 143 checkKnownFilters(test, "disable filter2", {elemhide: [filter3.text], elemhide exception: [filter5.text, filter7.text], elemhideemulation: [filter6.text]});
144 FilterStorage.removeFilter(filter2); 144 filterStorage.removeFilter(filter2);
145 checkKnownFilters(test, "remove filter2", {elemhide: [filter3.text], elemhidee xception: [filter5.text, filter7.text], elemhideemulation: [filter6.text]}); 145 checkKnownFilters(test, "remove filter2", {elemhide: [filter3.text], elemhidee xception: [filter5.text, filter7.text], elemhideemulation: [filter6.text]});
146 FilterStorage.removeFilter(filter4); 146 filterStorage.removeFilter(filter4);
147 checkKnownFilters(test, "remove filter4", {elemhide: [filter3.text], elemhidee xception: [filter5.text, filter7.text], elemhideemulation: [filter6.text]}); 147 checkKnownFilters(test, "remove filter4", {elemhide: [filter3.text], elemhidee xception: [filter5.text, filter7.text], elemhideemulation: [filter6.text]});
148 148
149 test.done(); 149 test.done();
150 }; 150 };
151 151
152 exports.testDisablingEnablingFiltersNotInTheList = function(test) 152 exports.testDisablingEnablingFiltersNotInTheList = function(test)
153 { 153 {
154 let filter1 = Filter.fromText("filter1"); 154 let filter1 = Filter.fromText("filter1");
155 let filter2 = Filter.fromText("@@filter2"); 155 let filter2 = Filter.fromText("@@filter2");
156 let filter3 = Filter.fromText("##filter3"); 156 let filter3 = Filter.fromText("##filter3");
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
198 filter2.disabled = true; 198 filter2.disabled = true;
199 let filter3 = Filter.fromText("##filter3"); 199 let filter3 = Filter.fromText("##filter3");
200 let filter4 = Filter.fromText("!filter4"); 200 let filter4 = Filter.fromText("!filter4");
201 let filter5 = Filter.fromText("#@#filter5"); 201 let filter5 = Filter.fromText("#@#filter5");
202 let filter6 = Filter.fromText("example.com#?#:-abp-properties(filter6)"); 202 let filter6 = Filter.fromText("example.com#?#:-abp-properties(filter6)");
203 let filter7 = Filter.fromText("example.com#@#[-abp-properties='filter7']"); 203 let filter7 = Filter.fromText("example.com#@#[-abp-properties='filter7']");
204 204
205 let subscription = Subscription.fromURL("http://test1/"); 205 let subscription = Subscription.fromURL("http://test1/");
206 subscription.filters = [filter1, filter2, filter3, filter4, filter5, filter6, filter7]; 206 subscription.filters = [filter1, filter2, filter3, filter4, filter5, filter6, filter7];
207 207
208 FilterStorage.addSubscription(subscription); 208 filterStorage.addSubscription(subscription);
209 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]}); 209 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]});
210 210
211 filter2.disabled = false; 211 filter2.disabled = false;
212 checkKnownFilters(test, "enable @@filter2", {blacklist: [filter1.text], whitel ist: [filter2.text], elemhide: [filter3.text], elemhideexception: [filter5.text, filter7.text], elemhideemulation: [filter6.text]}); 212 checkKnownFilters(test, "enable @@filter2", {blacklist: [filter1.text], whitel ist: [filter2.text], elemhide: [filter3.text], elemhideexception: [filter5.text, filter7.text], elemhideemulation: [filter6.text]});
213 213
214 FilterStorage.addFilter(filter1); 214 filterStorage.addFilter(filter1);
215 checkKnownFilters(test, "add filter1", {blacklist: [filter1.text], whitelist: [filter2.text], elemhide: [filter3.text], elemhideexception: [filter5.text, filt er7.text], elemhideemulation: [filter6.text]}); 215 checkKnownFilters(test, "add filter1", {blacklist: [filter1.text], whitelist: [filter2.text], elemhide: [filter3.text], elemhideexception: [filter5.text, filt er7.text], elemhideemulation: [filter6.text]});
216 216
217 FilterStorage.updateSubscriptionFilters(subscription, [filter4]); 217 filterStorage.updateSubscriptionFilters(subscription, [filter4]);
218 checkKnownFilters(test, "change subscription filters to filter4", {blacklist: [filter1.text]}); 218 checkKnownFilters(test, "change subscription filters to filter4", {blacklist: [filter1.text]});
219 219
220 FilterStorage.removeFilter(filter1); 220 filterStorage.removeFilter(filter1);
221 checkKnownFilters(test, "remove filter1", {}); 221 checkKnownFilters(test, "remove filter1", {});
222 222
223 FilterStorage.updateSubscriptionFilters(subscription, [filter1, filter2]); 223 filterStorage.updateSubscriptionFilters(subscription, [filter1, filter2]);
224 checkKnownFilters(test, "change subscription filters to filter1, filter2", {bl acklist: [filter1.text], whitelist: [filter2.text]}); 224 checkKnownFilters(test, "change subscription filters to filter1, filter2", {bl acklist: [filter1.text], whitelist: [filter2.text]});
225 225
226 filter1.disabled = true; 226 filter1.disabled = true;
227 checkKnownFilters(test, "disable filter1", {whitelist: [filter2.text]}); 227 checkKnownFilters(test, "disable filter1", {whitelist: [filter2.text]});
228 filter2.disabled = true; 228 filter2.disabled = true;
229 checkKnownFilters(test, "disable filter2", {}); 229 checkKnownFilters(test, "disable filter2", {});
230 filter1.disabled = false; 230 filter1.disabled = false;
231 filter2.disabled = false; 231 filter2.disabled = false;
232 checkKnownFilters(test, "enable filter1, filter2", {blacklist: [filter1.text], whitelist: [filter2.text]}); 232 checkKnownFilters(test, "enable filter1, filter2", {blacklist: [filter1.text], whitelist: [filter2.text]});
233 233
234 FilterStorage.addFilter(filter1); 234 filterStorage.addFilter(filter1);
235 checkKnownFilters(test, "add filter1", {blacklist: [filter1.text], whitelist: [filter2.text]}); 235 checkKnownFilters(test, "add filter1", {blacklist: [filter1.text], whitelist: [filter2.text]});
236 236
237 subscription.disabled = true; 237 subscription.disabled = true;
238 checkKnownFilters(test, "disable subscription", {blacklist: [filter1.text]}); 238 checkKnownFilters(test, "disable subscription", {blacklist: [filter1.text]});
239 239
240 FilterStorage.removeSubscription(subscription); 240 filterStorage.removeSubscription(subscription);
241 checkKnownFilters(test, "remove subscription", {blacklist: [filter1.text]}); 241 checkKnownFilters(test, "remove subscription", {blacklist: [filter1.text]});
242 242
243 FilterStorage.addSubscription(subscription); 243 filterStorage.addSubscription(subscription);
244 checkKnownFilters(test, "add subscription", {blacklist: [filter1.text]}); 244 checkKnownFilters(test, "add subscription", {blacklist: [filter1.text]});
245 245
246 subscription.disabled = false; 246 subscription.disabled = false;
247 checkKnownFilters(test, "enable subscription", {blacklist: [filter1.text], whi telist: [filter2.text]}); 247 checkKnownFilters(test, "enable subscription", {blacklist: [filter1.text], whi telist: [filter2.text]});
248 248
249 subscription.disabled = true; 249 subscription.disabled = true;
250 checkKnownFilters(test, "disable subscription", {blacklist: [filter1.text]}); 250 checkKnownFilters(test, "disable subscription", {blacklist: [filter1.text]});
251 251
252 FilterStorage.addFilter(filter2); 252 filterStorage.addFilter(filter2);
253 checkKnownFilters(test, "add filter2", {blacklist: [filter1.text], whitelist: [filter2.text]}); 253 checkKnownFilters(test, "add filter2", {blacklist: [filter1.text], whitelist: [filter2.text]});
254 254
255 FilterStorage.removeFilter(filter2); 255 filterStorage.removeFilter(filter2);
256 checkKnownFilters(test, "remove filter2", {blacklist: [filter1.text]}); 256 checkKnownFilters(test, "remove filter2", {blacklist: [filter1.text]});
257 257
258 subscription.disabled = false; 258 subscription.disabled = false;
259 checkKnownFilters(test, "enable subscription", {blacklist: [filter1.text], whi telist: [filter2.text]}); 259 checkKnownFilters(test, "enable subscription", {blacklist: [filter1.text], whi telist: [filter2.text]});
260 260
261 FilterStorage.removeSubscription(subscription); 261 filterStorage.removeSubscription(subscription);
262 checkKnownFilters(test, "remove subscription", {blacklist: [filter1.text]}); 262 checkKnownFilters(test, "remove subscription", {blacklist: [filter1.text]});
263 263
264 test.done(); 264 test.done();
265 }; 265 };
266 266
267 exports.testFilterGroupOperations = function(test) 267 exports.testFilterGroupOperations = function(test)
268 { 268 {
269 let filter1 = Filter.fromText("filter1"); 269 let filter1 = Filter.fromText("filter1");
270 let filter2 = Filter.fromText("@@filter2"); 270 let filter2 = Filter.fromText("@@filter2");
271 let filter3 = Filter.fromText("filter3"); 271 let filter3 = Filter.fromText("filter3");
272 let filter4 = Filter.fromText("@@filter4"); 272 let filter4 = Filter.fromText("@@filter4");
273 let filter5 = Filter.fromText("!filter5"); 273 let filter5 = Filter.fromText("!filter5");
274 274
275 let subscription = Subscription.fromURL("http://test1/"); 275 let subscription = Subscription.fromURL("http://test1/");
276 subscription.filters = [filter1, filter2]; 276 subscription.filters = [filter1, filter2];
277 277
278 FilterStorage.addSubscription(subscription); 278 filterStorage.addSubscription(subscription);
279 FilterStorage.addFilter(filter1); 279 filterStorage.addFilter(filter1);
280 checkKnownFilters(test, "initial setup", {blacklist: [filter1.text], whitelist : [filter2.text]}); 280 checkKnownFilters(test, "initial setup", {blacklist: [filter1.text], whitelist : [filter2.text]});
281 281
282 let subscription2 = Subscription.fromURL("~fl~"); 282 let subscription2 = Subscription.fromURL("~fl~");
283 subscription2.disabled = true; 283 subscription2.disabled = true;
284 checkKnownFilters(test, "disable blocking filters", {blacklist: [filter1.text] , whitelist: [filter2.text]}); 284 checkKnownFilters(test, "disable blocking filters", {blacklist: [filter1.text] , whitelist: [filter2.text]});
285 285
286 FilterStorage.removeSubscription(subscription); 286 filterStorage.removeSubscription(subscription);
287 checkKnownFilters(test, "remove subscription", {}); 287 checkKnownFilters(test, "remove subscription", {});
288 288
289 subscription2.disabled = false; 289 subscription2.disabled = false;
290 checkKnownFilters(test, "enable blocking filters", {blacklist: [filter1.text]} ); 290 checkKnownFilters(test, "enable blocking filters", {blacklist: [filter1.text]} );
291 291
292 let subscription3 = Subscription.fromURL("~wl~"); 292 let subscription3 = Subscription.fromURL("~wl~");
293 subscription3.disabled = true; 293 subscription3.disabled = true;
294 checkKnownFilters(test, "disable exception rules", {blacklist: [filter1.text]} ); 294 checkKnownFilters(test, "disable exception rules", {blacklist: [filter1.text]} );
295 295
296 FilterStorage.addFilter(filter2); 296 filterStorage.addFilter(filter2);
297 checkKnownFilters(test, "add @@filter2", {blacklist: [filter1.text], whitelist : [filter2.text]}); 297 checkKnownFilters(test, "add @@filter2", {blacklist: [filter1.text], whitelist : [filter2.text]});
298 test.equal(filter2.subscriptionCount, 1, "@@filter2.subscriptionCount"); 298 test.equal(filter2.subscriptionCount, 1, "@@filter2.subscriptionCount");
299 test.ok([...filter2.subscriptions()][0] instanceof SpecialSubscription, "@@fil ter2 added to a new filter group"); 299 test.ok([...filter2.subscriptions()][0] instanceof SpecialSubscription, "@@fil ter2 added to a new filter group");
300 test.ok([...filter2.subscriptions()][0] != subscription3, "@@filter2 filter gr oup is not the disabled exceptions group"); 300 test.ok([...filter2.subscriptions()][0] != subscription3, "@@filter2 filter gr oup is not the disabled exceptions group");
301 301
302 subscription3.disabled = false; 302 subscription3.disabled = false;
303 checkKnownFilters(test, "enable exception rules", {blacklist: [filter1.text], whitelist: [filter2.text]}); 303 checkKnownFilters(test, "enable exception rules", {blacklist: [filter1.text], whitelist: [filter2.text]});
304 304
305 FilterStorage.removeFilter(filter2); 305 filterStorage.removeFilter(filter2);
306 FilterStorage.addFilter(filter2); 306 filterStorage.addFilter(filter2);
307 checkKnownFilters(test, "re-add @@filter2", {blacklist: [filter1.text], whitel ist: [filter2.text]}); 307 checkKnownFilters(test, "re-add @@filter2", {blacklist: [filter1.text], whitel ist: [filter2.text]});
308 test.equal(filter2.subscriptionCount, 1, "@@filter2.subscriptionCount"); 308 test.equal(filter2.subscriptionCount, 1, "@@filter2.subscriptionCount");
309 test.ok([...filter2.subscriptions()][0] == subscription3, "@@filter2 added to the default exceptions group"); 309 test.ok([...filter2.subscriptions()][0] == subscription3, "@@filter2 added to the default exceptions group");
310 310
311 let subscription4 = Subscription.fromURL("http://test/"); 311 let subscription4 = Subscription.fromURL("http://test/");
312 FilterStorage.updateSubscriptionFilters(subscription4, [filter3, filter4, filt er5]); 312 filterStorage.updateSubscriptionFilters(subscription4, [filter3, filter4, filt er5]);
313 checkKnownFilters(test, "update subscription not in the list yet", {blacklist: [filter1.text], whitelist: [filter2.text]}); 313 checkKnownFilters(test, "update subscription not in the list yet", {blacklist: [filter1.text], whitelist: [filter2.text]});
314 314
315 FilterStorage.addSubscription(subscription4); 315 filterStorage.addSubscription(subscription4);
316 checkKnownFilters(test, "add subscription to the list", {blacklist: [filter1.t ext, filter3.text], whitelist: [filter2.text, filter4.text]}); 316 checkKnownFilters(test, "add subscription to the list", {blacklist: [filter1.t ext, filter3.text], whitelist: [filter2.text, filter4.text]});
317 317
318 FilterStorage.updateSubscriptionFilters(subscription4, [filter3, filter2, filt er5]); 318 filterStorage.updateSubscriptionFilters(subscription4, [filter3, filter2, filt er5]);
319 checkKnownFilters(test, "update subscription while in the list", {blacklist: [ filter1.text, filter3.text], whitelist: [filter2.text]}); 319 checkKnownFilters(test, "update subscription while in the list", {blacklist: [ filter1.text, filter3.text], whitelist: [filter2.text]});
320 320
321 subscription3.disabled = true; 321 subscription3.disabled = true;
322 checkKnownFilters(test, "disable exception rules", {blacklist: [filter1.text, filter3.text], whitelist: [filter2.text]}); 322 checkKnownFilters(test, "disable exception rules", {blacklist: [filter1.text, filter3.text], whitelist: [filter2.text]});
323 323
324 FilterStorage.removeSubscription(subscription4); 324 filterStorage.removeSubscription(subscription4);
325 checkKnownFilters(test, "remove subscription from the list", {blacklist: [filt er1.text]}); 325 checkKnownFilters(test, "remove subscription from the list", {blacklist: [filt er1.text]});
326 326
327 subscription3.disabled = false; 327 subscription3.disabled = false;
328 checkKnownFilters(test, "enable exception rules", {blacklist: [filter1.text], whitelist: [filter2.text]}); 328 checkKnownFilters(test, "enable exception rules", {blacklist: [filter1.text], whitelist: [filter2.text]});
329 329
330 test.done(); 330 test.done();
331 }; 331 };
332 332
333 exports.testSnippetFilters = function(test) 333 exports.testSnippetFilters = function(test)
334 { 334 {
335 let filter1 = Filter.fromText("example.com#$#filter1"); 335 let filter1 = Filter.fromText("example.com#$#filter1");
336 let filter2 = Filter.fromText("example.com#$#filter2"); 336 let filter2 = Filter.fromText("example.com#$#filter2");
337 let filter3 = Filter.fromText("example.com#$#filter3"); 337 let filter3 = Filter.fromText("example.com#$#filter3");
338 338
339 let subscription1 = Subscription.fromURL("http://test1/"); 339 let subscription1 = Subscription.fromURL("http://test1/");
340 subscription1.filters = [filter1, filter2]; 340 subscription1.filters = [filter1, filter2];
341 341
342 FilterStorage.addSubscription(subscription1); 342 filterStorage.addSubscription(subscription1);
343 checkKnownFilters(test, "add subscription with filter1 and filter2", {}); 343 checkKnownFilters(test, "add subscription with filter1 and filter2", {});
344 344
345 let subscription2 = Subscription.fromURL("http://test2/"); 345 let subscription2 = Subscription.fromURL("http://test2/");
346 subscription2.type = "circumvention"; 346 subscription2.type = "circumvention";
347 subscription2.filters = [filter1]; 347 subscription2.filters = [filter1];
348 348
349 FilterStorage.addSubscription(subscription2); 349 filterStorage.addSubscription(subscription2);
350 checkKnownFilters(test, "add subscription of type circumvention with filter1", {snippets: [filter1.text]}); 350 checkKnownFilters(test, "add subscription of type circumvention with filter1", {snippets: [filter1.text]});
351 351
352 let subscription3 = Subscription.fromURL("~foo"); 352 let subscription3 = Subscription.fromURL("~foo");
353 subscription3.filters = [filter2]; 353 subscription3.filters = [filter2];
354 354
355 FilterStorage.addSubscription(subscription3); 355 filterStorage.addSubscription(subscription3);
356 checkKnownFilters(test, "add special subscription with filter2", {snippets: [f ilter1.text, filter2.text]}); 356 checkKnownFilters(test, "add special subscription with filter2", {snippets: [f ilter1.text, filter2.text]});
357 357
358 let subscription4 = Subscription.fromURL("https://easylist-downloads.adblockpl us.org/abp-filters-anti-cv.txt"); 358 let subscription4 = Subscription.fromURL("https://easylist-downloads.adblockpl us.org/abp-filters-anti-cv.txt");
359 subscription4.filters = [filter3]; 359 subscription4.filters = [filter3];
360 360
361 FilterStorage.addSubscription(subscription4); 361 filterStorage.addSubscription(subscription4);
362 checkKnownFilters(test, "add ABP anti-circumvention subscription with filter3" , {snippets: [filter1.text, filter2.text, filter3.text]}); 362 checkKnownFilters(test, "add ABP anti-circumvention subscription with filter3" , {snippets: [filter1.text, filter2.text, filter3.text]});
363 363
364 test.done(); 364 test.done();
365 }; 365 };
LEFTRIGHT

Powered by Google App Engine
This is Rietveld