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

Side by Side Diff: test/filterListener.js

Issue 30025555: Issue 6820 - Move tests to mocha (Closed) Base URL: https://hg.adblockplus.org/adblockpluscore/
Patch Set: Rebased Created April 10, 2019, 6:33 p.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
« no previous file with comments | « test/filterClasses.js ('k') | test/filterNotifier.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 assert = require("assert");
20 const {createSandbox} = require("./_common"); 21 const {createSandbox} = require("./_common");
21 let sandboxedRequire = null; 22 let sandboxedRequire = null;
22 23
23 let filterStorage = null; 24 let filterStorage = null;
24 let Subscription = null; 25 let Subscription = null;
25 let Filter = null; 26 let Filter = null;
26 let defaultMatcher = null; 27 let defaultMatcher = null;
27 let SpecialSubscription = null; 28 let SpecialSubscription = null;
28 29
29 exports.setUp = function(callback) 30 describe("Filter Listener", () =>
30 { 31 {
31 sandboxedRequire = createSandbox({ 32 beforeEach(() =>
32 extraExports: { 33 {
33 elemHide: ["knownFilters"], 34 sandboxedRequire = createSandbox({
34 elemHideEmulation: ["filters"], 35 extraExports: {
35 elemHideExceptions: ["knownExceptions"] 36 elemHide: ["knownFilters"],
36 } 37 elemHideEmulation: ["filters"],
37 }); 38 elemHideExceptions: ["knownExceptions"]
38 39 }
39 // We need to require the filterListener module so that filter changes will be 40 });
40 // noticed, even though we don't directly use the module here. 41
41 sandboxedRequire("../lib/filterListener"); 42 // We need to require the filterListener module so that filter changes will be
42 43 // noticed, even though we don't directly use the module here.
43 ( 44 sandboxedRequire("../lib/filterListener");
44 {filterStorage} = sandboxedRequire("../lib/filterStorage"), 45
45 {Subscription, SpecialSubscription} = sandboxedRequire("../lib/subscriptionC lasses"), 46 (
46 {Filter} = sandboxedRequire("../lib/filterClasses"), 47 {filterStorage} = sandboxedRequire("../lib/filterStorage"),
47 {defaultMatcher} = sandboxedRequire("../lib/matcher") 48 {Subscription, SpecialSubscription} = sandboxedRequire("../lib/subscriptio nClasses"),
48 ); 49 {Filter} = sandboxedRequire("../lib/filterClasses"),
49 50 {defaultMatcher} = sandboxedRequire("../lib/matcher")
50 filterStorage.addSubscription(Subscription.fromURL("~fl~")); 51 );
51 filterStorage.addSubscription(Subscription.fromURL("~wl~")); 52
52 filterStorage.addSubscription(Subscription.fromURL("~eh~")); 53 filterStorage.addSubscription(Subscription.fromURL("~fl~"));
53 54 filterStorage.addSubscription(Subscription.fromURL("~wl~"));
54 Subscription.fromURL("~fl~").defaults = ["blocking"]; 55 filterStorage.addSubscription(Subscription.fromURL("~eh~"));
55 Subscription.fromURL("~wl~").defaults = ["whitelist"]; 56
56 Subscription.fromURL("~eh~").defaults = ["elemhide"]; 57 Subscription.fromURL("~fl~").defaults = ["blocking"];
57 58 Subscription.fromURL("~wl~").defaults = ["whitelist"];
58 callback(); 59 Subscription.fromURL("~eh~").defaults = ["elemhide"];
59 }; 60 });
60 61
61 function checkKnownFilters(test, text, expected) 62 function checkKnownFilters(text, expected)
62 { 63 {
63 let result = {}; 64 let result = {};
64 for (let type of ["blacklist", "whitelist"]) 65 for (let type of ["blacklist", "whitelist"])
65 {
66 let matcher = defaultMatcher["_" + type];
67 let filters = [];
68 for (let map of [matcher._simpleFiltersByKeyword,
69 matcher._complexFiltersByKeyword])
70 { 66 {
71 for (let [keyword, set] of map) 67 let matcher = defaultMatcher["_" + type];
68 let filters = [];
69 for (let map of [matcher._simpleFiltersByKeyword,
70 matcher._complexFiltersByKeyword])
72 { 71 {
73 for (let filter of set) 72 for (let [keyword, set] of map)
74 { 73 {
75 test.equal(matcher.findKeyword(filter), keyword, 74 for (let filter of set)
76 "Keyword of filter " + filter.text); 75 {
77 filters.push(filter.text); 76 assert.equal(matcher.findKeyword(filter), keyword,
77 "Keyword of filter " + filter.text);
78 filters.push(filter.text);
79 }
78 } 80 }
79 } 81 }
82 result[type] = filters;
80 } 83 }
81 result[type] = filters; 84
85 let elemHide = sandboxedRequire("../lib/elemHide");
86 result.elemhide = [];
87 for (let filter of elemHide.knownFilters)
88 result.elemhide.push(filter.text);
89
90 let elemHideExceptions = sandboxedRequire("../lib/elemHideExceptions");
91 result.elemhideexception = [];
92 for (let exception of elemHideExceptions.knownExceptions)
93 result.elemhideexception.push(exception.text);
94
95 let elemHideEmulation = sandboxedRequire("../lib/elemHideEmulation");
96 result.elemhideemulation = [];
97 for (let filter of elemHideEmulation.filters)
98 result.elemhideemulation.push(filter.text);
99
100 let {snippets} = sandboxedRequire("../lib/snippets");
101 result.snippets = [];
102 for (let filter of snippets._filters)
103 result.snippets.push(filter.text);
104
105 let types = ["blacklist", "whitelist", "elemhide", "elemhideexception",
106 "elemhideemulation", "snippets"];
107 for (let type of types)
108 {
109 if (!(type in expected))
110 expected[type] = [];
111 else
112 expected[type].sort();
113 result[type].sort();
114 }
115
116 assert.deepEqual(result, expected, text);
82 } 117 }
83 118
84 let elemHide = sandboxedRequire("../lib/elemHide"); 119 it("Add and remove filters", () =>
85 result.elemhide = []; 120 {
86 for (let filter of elemHide.knownFilters) 121 let filter1 = Filter.fromText("filter1");
87 result.elemhide.push(filter.text); 122 let filter2 = Filter.fromText("@@filter2");
88 123 let filter3 = Filter.fromText("##filter3");
89 let elemHideExceptions = sandboxedRequire("../lib/elemHideExceptions"); 124 let filter4 = Filter.fromText("!filter4");
90 result.elemhideexception = []; 125 let filter5 = Filter.fromText("#@#filter5");
91 for (let exception of elemHideExceptions.knownExceptions) 126 let filter6 = Filter.fromText("example.com#?#:-abp-properties(filter6')");
92 result.elemhideexception.push(exception.text); 127 let filter7 = Filter.fromText("example.com#@#[-abp-properties='filter7']");
93 128
94 let elemHideEmulation = sandboxedRequire("../lib/elemHideEmulation"); 129 filterStorage.addFilter(filter1);
95 result.elemhideemulation = []; 130 checkKnownFilters("add filter1", {blacklist: [filter1.text]});
96 for (let filter of elemHideEmulation.filters) 131 filterStorage.addFilter(filter2);
97 result.elemhideemulation.push(filter.text); 132 checkKnownFilters("add @@filter2", {blacklist: [filter1.text], whitelist: [f ilter2.text]});
98 133 filterStorage.addFilter(filter3);
99 let {snippets} = sandboxedRequire("../lib/snippets"); 134 checkKnownFilters("add ##filter3", {blacklist: [filter1.text], whitelist: [f ilter2.text], elemhide: [filter3.text]});
100 result.snippets = []; 135 filterStorage.addFilter(filter4);
101 for (let filter of snippets._filters) 136 checkKnownFilters("add !filter4", {blacklist: [filter1.text], whitelist: [fi lter2.text], elemhide: [filter3.text]});
102 result.snippets.push(filter.text); 137 filterStorage.addFilter(filter5);
103 138 checkKnownFilters("add #@#filter5", {blacklist: [filter1.text], whitelist: [ filter2.text], elemhide: [filter3.text], elemhideexception: [filter5.text]});
104 let types = ["blacklist", "whitelist", "elemhide", "elemhideexception", 139 filterStorage.addFilter(filter6);
105 "elemhideemulation", "snippets"]; 140 checkKnownFilters("add example.com##:-abp-properties(filter6)", {blacklist: [filter1.text], whitelist: [filter2.text], elemhide: [filter3.text], elemhideexc eption: [filter5.text], elemhideemulation: [filter6.text]});
106 for (let type of types) 141 filterStorage.addFilter(filter7);
107 { 142 checkKnownFilters("add example.com#@#[-abp-properties='filter7']", {blacklis t: [filter1.text], whitelist: [filter2.text], elemhide: [filter3.text], elemhide exception: [filter5.text, filter7.text], elemhideemulation: [filter6.text]});
108 if (!(type in expected)) 143
109 expected[type] = []; 144 filterStorage.removeFilter(filter1);
110 else 145 checkKnownFilters("remove filter1", {whitelist: [filter2.text], elemhide: [f ilter3.text], elemhideexception: [filter5.text, filter7.text], elemhideemulation : [filter6.text]});
111 expected[type].sort(); 146 filter2.disabled = true;
112 result[type].sort(); 147 checkKnownFilters("disable filter2", {elemhide: [filter3.text], elemhideexce ption: [filter5.text, filter7.text], elemhideemulation: [filter6.text]});
113 } 148 filterStorage.removeFilter(filter2);
114 149 checkKnownFilters("remove filter2", {elemhide: [filter3.text], elemhideexcep tion: [filter5.text, filter7.text], elemhideemulation: [filter6.text]});
115 test.deepEqual(result, expected, text); 150 filterStorage.removeFilter(filter4);
116 } 151 checkKnownFilters("remove filter4", {elemhide: [filter3.text], elemhideexcep tion: [filter5.text, filter7.text], elemhideemulation: [filter6.text]});
117 152 });
118 exports.testAddingAndRemovingFilters = function(test) 153
119 { 154 it("Disabling / Enabling Filters not in the list", () =>
120 let filter1 = Filter.fromText("filter1"); 155 {
121 let filter2 = Filter.fromText("@@filter2"); 156 let filter1 = Filter.fromText("filter1");
122 let filter3 = Filter.fromText("##filter3"); 157 let filter2 = Filter.fromText("@@filter2");
123 let filter4 = Filter.fromText("!filter4"); 158 let filter3 = Filter.fromText("##filter3");
124 let filter5 = Filter.fromText("#@#filter5"); 159 let filter4 = Filter.fromText("#@#filter4");
125 let filter6 = Filter.fromText("example.com#?#:-abp-properties(filter6')"); 160 let filter5 = Filter.fromText("example.com#?#:-abp-properties(filter5)");
126 let filter7 = Filter.fromText("example.com#@#[-abp-properties='filter7']"); 161 let filter6 = Filter.fromText("example.com#@#[-abp-properties='filter6']");
127 162
128 filterStorage.addFilter(filter1); 163 filter1.disabled = true;
129 checkKnownFilters(test, "add filter1", {blacklist: [filter1.text]}); 164 checkKnownFilters("disable filter1 while not in list", {});
130 filterStorage.addFilter(filter2); 165 filter1.disabled = false;
131 checkKnownFilters(test, "add @@filter2", {blacklist: [filter1.text], whitelist : [filter2.text]}); 166 checkKnownFilters("enable filter1 while not in list", {});
132 filterStorage.addFilter(filter3); 167
133 checkKnownFilters(test, "add ##filter3", {blacklist: [filter1.text], whitelist : [filter2.text], elemhide: [filter3.text]}); 168 filter2.disabled = true;
134 filterStorage.addFilter(filter4); 169 checkKnownFilters("disable @@filter2 while not in list", {});
135 checkKnownFilters(test, "add !filter4", {blacklist: [filter1.text], whitelist: [filter2.text], elemhide: [filter3.text]}); 170 filter2.disabled = false;
136 filterStorage.addFilter(filter5); 171 checkKnownFilters("enable @@filter2 while not in list", {});
137 checkKnownFilters(test, "add #@#filter5", {blacklist: [filter1.text], whitelis t: [filter2.text], elemhide: [filter3.text], elemhideexception: [filter5.text]}) ; 172
138 filterStorage.addFilter(filter6); 173 filter3.disabled = true;
139 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]}); 174 checkKnownFilters("disable ##filter3 while not in list", {});
140 filterStorage.addFilter(filter7); 175 filter3.disabled = false;
141 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]}) ; 176 checkKnownFilters("enable ##filter3 while not in list", {});
142 177
143 filterStorage.removeFilter(filter1); 178 filter4.disabled = true;
144 checkKnownFilters(test, "remove filter1", {whitelist: [filter2.text], elemhide : [filter3.text], elemhideexception: [filter5.text, filter7.text], elemhideemula tion: [filter6.text]}); 179 checkKnownFilters("disable #@#filter4 while not in list", {});
145 filter2.disabled = true; 180 filter4.disabled = false;
146 checkKnownFilters(test, "disable filter2", {elemhide: [filter3.text], elemhide exception: [filter5.text, filter7.text], elemhideemulation: [filter6.text]}); 181 checkKnownFilters("enable #@#filter4 while not in list", {});
147 filterStorage.removeFilter(filter2); 182
148 checkKnownFilters(test, "remove filter2", {elemhide: [filter3.text], elemhidee xception: [filter5.text, filter7.text], elemhideemulation: [filter6.text]}); 183 filter5.disabled = true;
149 filterStorage.removeFilter(filter4); 184 checkKnownFilters("disable example.com#?#:-abp-properties(filter5) while not in list", {});
150 checkKnownFilters(test, "remove filter4", {elemhide: [filter3.text], elemhidee xception: [filter5.text, filter7.text], elemhideemulation: [filter6.text]}); 185 filter5.disabled = false;
151 186 checkKnownFilters("enable example.com#?#:-abp-properties(filter5) while not in list", {});
152 test.done(); 187
153 }; 188 filter6.disabled = true;
154 189 checkKnownFilters("disable example.com#@#[-abp-properties='filter6'] while n ot in list", {});
155 exports.testDisablingEnablingFiltersNotInTheList = function(test) 190 filter6.disabled = false;
156 { 191 checkKnownFilters("enable example.com#@#[-abp-properties='filter6'] while no t in list", {});
157 let filter1 = Filter.fromText("filter1"); 192 });
158 let filter2 = Filter.fromText("@@filter2"); 193
159 let filter3 = Filter.fromText("##filter3"); 194 it("Filter subscription Operations", () =>
160 let filter4 = Filter.fromText("#@#filter4"); 195 {
161 let filter5 = Filter.fromText("example.com#?#:-abp-properties(filter5)"); 196 let filter1 = Filter.fromText("filter1");
162 let filter6 = Filter.fromText("example.com#@#[-abp-properties='filter6']"); 197 let filter2 = Filter.fromText("@@filter2");
163 198 filter2.disabled = true;
164 filter1.disabled = true; 199 let filter3 = Filter.fromText("##filter3");
165 checkKnownFilters(test, "disable filter1 while not in list", {}); 200 let filter4 = Filter.fromText("!filter4");
166 filter1.disabled = false; 201 let filter5 = Filter.fromText("#@#filter5");
167 checkKnownFilters(test, "enable filter1 while not in list", {}); 202 let filter6 = Filter.fromText("example.com#?#:-abp-properties(filter6)");
168 203 let filter7 = Filter.fromText("example.com#@#[-abp-properties='filter7']");
169 filter2.disabled = true; 204
170 checkKnownFilters(test, "disable @@filter2 while not in list", {}); 205 let subscription = Subscription.fromURL("http://test1/");
171 filter2.disabled = false; 206 subscription.addFilter(filter1);
172 checkKnownFilters(test, "enable @@filter2 while not in list", {}); 207 subscription.addFilter(filter2);
173 208 subscription.addFilter(filter3);
174 filter3.disabled = true; 209 subscription.addFilter(filter4);
175 checkKnownFilters(test, "disable ##filter3 while not in list", {}); 210 subscription.addFilter(filter5);
176 filter3.disabled = false; 211 subscription.addFilter(filter6);
177 checkKnownFilters(test, "enable ##filter3 while not in list", {}); 212 subscription.addFilter(filter7);
178 213
179 filter4.disabled = true; 214 filterStorage.addSubscription(subscription);
180 checkKnownFilters(test, "disable #@#filter4 while not in list", {}); 215 checkKnownFilters("add subscription with filter1, @@filter2, ##filter3, !fil ter4, #@#filter5, example.com#?#:-abp-properties(filter6), example.com#@#[-abp-p roperties='filter7']", {blacklist: [filter1.text], elemhide: [filter3.text], ele mhideexception: [filter5.text, filter7.text], elemhideemulation: [filter6.text]} );
181 filter4.disabled = false; 216
182 checkKnownFilters(test, "enable #@#filter4 while not in list", {}); 217 filter2.disabled = false;
183 218 checkKnownFilters("enable @@filter2", {blacklist: [filter1.text], whitelist: [filter2.text], elemhide: [filter3.text], elemhideexception: [filter5.text, fil ter7.text], elemhideemulation: [filter6.text]});
184 filter5.disabled = true; 219
185 checkKnownFilters(test, "disable example.com#?#:-abp-properties(filter5) while not in list", {}); 220 filterStorage.addFilter(filter1);
186 filter5.disabled = false; 221 checkKnownFilters("add filter1", {blacklist: [filter1.text], whitelist: [fil ter2.text], elemhide: [filter3.text], elemhideexception: [filter5.text, filter7. text], elemhideemulation: [filter6.text]});
187 checkKnownFilters(test, "enable example.com#?#:-abp-properties(filter5) while not in list", {}); 222
188 223 filterStorage.updateSubscriptionFilters(subscription, [filter4.text]);
189 filter6.disabled = true; 224 checkKnownFilters("change subscription filters to filter4", {blacklist: [fil ter1.text]});
190 checkKnownFilters(test, "disable example.com#@#[-abp-properties='filter6'] whi le not in list", {}); 225
191 filter6.disabled = false; 226 filterStorage.removeFilter(filter1);
192 checkKnownFilters(test, "enable example.com#@#[-abp-properties='filter6'] whil e not in list", {}); 227 checkKnownFilters("remove filter1", {});
193 228
194 test.done(); 229 filterStorage.updateSubscriptionFilters(subscription, [filter1.text, filter2 .text]);
195 }; 230 checkKnownFilters("change subscription filters to filter1, filter2", {blackl ist: [filter1.text], whitelist: [filter2.text]});
196 231
197 exports.testFilterSubscriptionOperations = function(test) 232 filter1.disabled = true;
198 { 233 checkKnownFilters("disable filter1", {whitelist: [filter2.text]});
199 let filter1 = Filter.fromText("filter1"); 234 filter2.disabled = true;
200 let filter2 = Filter.fromText("@@filter2"); 235 checkKnownFilters("disable filter2", {});
201 filter2.disabled = true; 236 filter1.disabled = false;
202 let filter3 = Filter.fromText("##filter3"); 237 filter2.disabled = false;
203 let filter4 = Filter.fromText("!filter4"); 238 checkKnownFilters("enable filter1, filter2", {blacklist: [filter1.text], whi telist: [filter2.text]});
204 let filter5 = Filter.fromText("#@#filter5"); 239
205 let filter6 = Filter.fromText("example.com#?#:-abp-properties(filter6)"); 240 filterStorage.addFilter(filter1);
206 let filter7 = Filter.fromText("example.com#@#[-abp-properties='filter7']"); 241 checkKnownFilters("add filter1", {blacklist: [filter1.text], whitelist: [fil ter2.text]});
207 242
208 let subscription = Subscription.fromURL("http://test1/"); 243 subscription.disabled = true;
209 subscription.addFilter(filter1); 244 checkKnownFilters("disable subscription", {blacklist: [filter1.text]});
210 subscription.addFilter(filter2); 245
211 subscription.addFilter(filter3); 246 filterStorage.removeSubscription(subscription);
212 subscription.addFilter(filter4); 247 checkKnownFilters("remove subscription", {blacklist: [filter1.text]});
213 subscription.addFilter(filter5); 248
214 subscription.addFilter(filter6); 249 filterStorage.addSubscription(subscription);
215 subscription.addFilter(filter7); 250 checkKnownFilters("add subscription", {blacklist: [filter1.text]});
216 251
217 filterStorage.addSubscription(subscription); 252 subscription.disabled = false;
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]}); 253 checkKnownFilters("enable subscription", {blacklist: [filter1.text], whiteli st: [filter2.text]});
219 254
220 filter2.disabled = false; 255 subscription.disabled = true;
221 checkKnownFilters(test, "enable @@filter2", {blacklist: [filter1.text], whitel ist: [filter2.text], elemhide: [filter3.text], elemhideexception: [filter5.text, filter7.text], elemhideemulation: [filter6.text]}); 256 checkKnownFilters("disable subscription", {blacklist: [filter1.text]});
222 257
223 filterStorage.addFilter(filter1); 258 filterStorage.addFilter(filter2);
224 checkKnownFilters(test, "add filter1", {blacklist: [filter1.text], whitelist: [filter2.text], elemhide: [filter3.text], elemhideexception: [filter5.text, filt er7.text], elemhideemulation: [filter6.text]}); 259 checkKnownFilters("add filter2", {blacklist: [filter1.text], whitelist: [fil ter2.text]});
225 260
226 filterStorage.updateSubscriptionFilters(subscription, [filter4.text]); 261 filterStorage.removeFilter(filter2);
227 checkKnownFilters(test, "change subscription filters to filter4", {blacklist: [filter1.text]}); 262 checkKnownFilters("remove filter2", {blacklist: [filter1.text]});
228 263
229 filterStorage.removeFilter(filter1); 264 subscription.disabled = false;
230 checkKnownFilters(test, "remove filter1", {}); 265 checkKnownFilters("enable subscription", {blacklist: [filter1.text], whiteli st: [filter2.text]});
231 266
232 filterStorage.updateSubscriptionFilters(subscription, [filter1.text, filter2.t ext]); 267 filterStorage.removeSubscription(subscription);
233 checkKnownFilters(test, "change subscription filters to filter1, filter2", {bl acklist: [filter1.text], whitelist: [filter2.text]}); 268 checkKnownFilters("remove subscription", {blacklist: [filter1.text]});
234 269 });
235 filter1.disabled = true; 270
236 checkKnownFilters(test, "disable filter1", {whitelist: [filter2.text]}); 271 it("Filter Group operations", () =>
237 filter2.disabled = true; 272 {
238 checkKnownFilters(test, "disable filter2", {}); 273 let filter1 = Filter.fromText("filter1");
239 filter1.disabled = false; 274 let filter2 = Filter.fromText("@@filter2");
240 filter2.disabled = false; 275 let filter3 = Filter.fromText("filter3");
241 checkKnownFilters(test, "enable filter1, filter2", {blacklist: [filter1.text], whitelist: [filter2.text]}); 276 let filter4 = Filter.fromText("@@filter4");
242 277 let filter5 = Filter.fromText("!filter5");
243 filterStorage.addFilter(filter1); 278
244 checkKnownFilters(test, "add filter1", {blacklist: [filter1.text], whitelist: [filter2.text]}); 279 let subscription = Subscription.fromURL("http://test1/");
245 280 subscription.addFilter(filter1);
246 subscription.disabled = true; 281 subscription.addFilter(filter2);
247 checkKnownFilters(test, "disable subscription", {blacklist: [filter1.text]}); 282
248 283 filterStorage.addSubscription(subscription);
249 filterStorage.removeSubscription(subscription); 284 filterStorage.addFilter(filter1);
250 checkKnownFilters(test, "remove subscription", {blacklist: [filter1.text]}); 285 checkKnownFilters("initial setup", {blacklist: [filter1.text], whitelist: [f ilter2.text]});
251 286
252 filterStorage.addSubscription(subscription); 287 let subscription2 = Subscription.fromURL("~fl~");
253 checkKnownFilters(test, "add subscription", {blacklist: [filter1.text]}); 288 subscription2.disabled = true;
254 289 checkKnownFilters("disable blocking filters", {blacklist: [filter1.text], wh itelist: [filter2.text]});
255 subscription.disabled = false; 290
256 checkKnownFilters(test, "enable subscription", {blacklist: [filter1.text], whi telist: [filter2.text]}); 291 filterStorage.removeSubscription(subscription);
257 292 checkKnownFilters("remove subscription", {});
258 subscription.disabled = true; 293
259 checkKnownFilters(test, "disable subscription", {blacklist: [filter1.text]}); 294 subscription2.disabled = false;
260 295 checkKnownFilters("enable blocking filters", {blacklist: [filter1.text]});
261 filterStorage.addFilter(filter2); 296
262 checkKnownFilters(test, "add filter2", {blacklist: [filter1.text], whitelist: [filter2.text]}); 297 let subscription3 = Subscription.fromURL("~wl~");
263 298 subscription3.disabled = true;
264 filterStorage.removeFilter(filter2); 299 checkKnownFilters("disable exception rules", {blacklist: [filter1.text]});
265 checkKnownFilters(test, "remove filter2", {blacklist: [filter1.text]}); 300
266 301 filterStorage.addFilter(filter2);
267 subscription.disabled = false; 302 checkKnownFilters("add @@filter2", {blacklist: [filter1.text], whitelist: [f ilter2.text]});
268 checkKnownFilters(test, "enable subscription", {blacklist: [filter1.text], whi telist: [filter2.text]}); 303 assert.equal([...filterStorage.subscriptions(filter2.text)].length, 1, "@@fi lter2.subscriptionCount");
269 304 assert.ok([...filterStorage.subscriptions(filter2.text)][0] instanceof Speci alSubscription, "@@filter2 added to a new filter group");
270 filterStorage.removeSubscription(subscription); 305 assert.ok([...filterStorage.subscriptions(filter2.text)][0] != subscription3 , "@@filter2 filter group is not the disabled exceptions group");
271 checkKnownFilters(test, "remove subscription", {blacklist: [filter1.text]}); 306
272 307 subscription3.disabled = false;
273 test.done(); 308 checkKnownFilters("enable exception rules", {blacklist: [filter1.text], whit elist: [filter2.text]});
274 }; 309
275 310 filterStorage.removeFilter(filter2);
276 exports.testFilterGroupOperations = function(test) 311 filterStorage.addFilter(filter2);
277 { 312 checkKnownFilters("re-add @@filter2", {blacklist: [filter1.text], whitelist: [filter2.text]});
278 let filter1 = Filter.fromText("filter1"); 313 assert.equal([...filterStorage.subscriptions(filter2.text)].length, 1, "@@fi lter2.subscriptionCount");
279 let filter2 = Filter.fromText("@@filter2"); 314 assert.ok([...filterStorage.subscriptions(filter2.text)][0] == subscription3 , "@@filter2 added to the default exceptions group");
280 let filter3 = Filter.fromText("filter3"); 315
281 let filter4 = Filter.fromText("@@filter4"); 316 let subscription4 = Subscription.fromURL("http://test/");
282 let filter5 = Filter.fromText("!filter5"); 317 filterStorage.updateSubscriptionFilters(subscription4, [filter3.text, filter 4.text, filter5.text]);
283 318 checkKnownFilters("update subscription not in the list yet", {blacklist: [fi lter1.text], whitelist: [filter2.text]});
284 let subscription = Subscription.fromURL("http://test1/"); 319
285 subscription.addFilter(filter1); 320 filterStorage.addSubscription(subscription4);
286 subscription.addFilter(filter2); 321 checkKnownFilters("add subscription to the list", {blacklist: [filter1.text, filter3.text], whitelist: [filter2.text, filter4.text]});
287 322
288 filterStorage.addSubscription(subscription); 323 filterStorage.updateSubscriptionFilters(subscription4, [filter3.text, filter 2.text, filter5.text]);
289 filterStorage.addFilter(filter1); 324 checkKnownFilters("update subscription while in the list", {blacklist: [filt er1.text, filter3.text], whitelist: [filter2.text]});
290 checkKnownFilters(test, "initial setup", {blacklist: [filter1.text], whitelist : [filter2.text]}); 325
291 326 subscription3.disabled = true;
292 let subscription2 = Subscription.fromURL("~fl~"); 327 checkKnownFilters("disable exception rules", {blacklist: [filter1.text, filt er3.text], whitelist: [filter2.text]});
293 subscription2.disabled = true; 328
294 checkKnownFilters(test, "disable blocking filters", {blacklist: [filter1.text] , whitelist: [filter2.text]}); 329 filterStorage.removeSubscription(subscription4);
295 330 checkKnownFilters("remove subscription from the list", {blacklist: [filter1. text]});
296 filterStorage.removeSubscription(subscription); 331
297 checkKnownFilters(test, "remove subscription", {}); 332 subscription3.disabled = false;
298 333 checkKnownFilters("enable exception rules", {blacklist: [filter1.text], whit elist: [filter2.text]});
299 subscription2.disabled = false; 334 });
300 checkKnownFilters(test, "enable blocking filters", {blacklist: [filter1.text]} ); 335
301 336 it("Snippet Filters", () =>
302 let subscription3 = Subscription.fromURL("~wl~"); 337 {
303 subscription3.disabled = true; 338 let filter1 = Filter.fromText("example.com#$#filter1");
304 checkKnownFilters(test, "disable exception rules", {blacklist: [filter1.text]} ); 339 let filter2 = Filter.fromText("example.com#$#filter2");
305 340 let filter3 = Filter.fromText("example.com#$#filter3");
306 filterStorage.addFilter(filter2); 341
307 checkKnownFilters(test, "add @@filter2", {blacklist: [filter1.text], whitelist : [filter2.text]}); 342 let subscription1 = Subscription.fromURL("http://test1/");
308 test.equal([...filterStorage.subscriptions(filter2.text)].length, 1, "@@filter 2 subscription count"); 343 subscription1.addFilter(filter1);
309 test.ok([...filterStorage.subscriptions(filter2.text)][0] instanceof SpecialSu bscription, "@@filter2 added to a new filter group"); 344 subscription1.addFilter(filter2);
310 test.ok([...filterStorage.subscriptions(filter2.text)][0] != subscription3, "@ @filter2 filter group is not the disabled exceptions group"); 345
311 346 filterStorage.addSubscription(subscription1);
312 subscription3.disabled = false; 347 checkKnownFilters("add subscription with filter1 and filter2", {});
313 checkKnownFilters(test, "enable exception rules", {blacklist: [filter1.text], whitelist: [filter2.text]}); 348
314 349 let subscription2 = Subscription.fromURL("http://test2/");
315 filterStorage.removeFilter(filter2); 350 subscription2.type = "circumvention";
316 filterStorage.addFilter(filter2); 351 subscription2.addFilter(filter1);
317 checkKnownFilters(test, "re-add @@filter2", {blacklist: [filter1.text], whitel ist: [filter2.text]}); 352
318 test.equal([...filterStorage.subscriptions(filter2.text)].length, 1, "@@filter 2 subscription count"); 353 filterStorage.addSubscription(subscription2);
319 test.ok([...filterStorage.subscriptions(filter2.text)][0] == subscription3, "@ @filter2 added to the default exceptions group"); 354 checkKnownFilters("add subscription of type circumvention with filter1", {sn ippets: [filter1.text]});
320 355
321 let subscription4 = Subscription.fromURL("http://test/"); 356 let subscription3 = Subscription.fromURL("~foo");
322 filterStorage.updateSubscriptionFilters(subscription4, [filter3.text, filter4. text, filter5.text]); 357 subscription3.addFilter(filter2);
323 checkKnownFilters(test, "update subscription not in the list yet", {blacklist: [filter1.text], whitelist: [filter2.text]}); 358
324 359 filterStorage.addSubscription(subscription3);
325 filterStorage.addSubscription(subscription4); 360 checkKnownFilters("add special subscription with filter2", {snippets: [filte r1.text, filter2.text]});
326 checkKnownFilters(test, "add subscription to the list", {blacklist: [filter1.t ext, filter3.text], whitelist: [filter2.text, filter4.text]}); 361
327 362 let subscription4 = Subscription.fromURL("https://easylist-downloads.adblock plus.org/abp-filters-anti-cv.txt");
328 filterStorage.updateSubscriptionFilters(subscription4, [filter3.text, filter2. text, filter5.text]); 363 subscription4.addFilter(filter3);
329 checkKnownFilters(test, "update subscription while in the list", {blacklist: [ filter1.text, filter3.text], whitelist: [filter2.text]}); 364
330 365 filterStorage.addSubscription(subscription4);
331 subscription3.disabled = true; 366 checkKnownFilters("add ABP anti-circumvention subscription with filter3", {s nippets: [filter1.text, filter2.text, filter3.text]});
332 checkKnownFilters(test, "disable exception rules", {blacklist: [filter1.text, filter3.text], whitelist: [filter2.text]}); 367 });
333 368 });
334 filterStorage.removeSubscription(subscription4);
335 checkKnownFilters(test, "remove subscription from the list", {blacklist: [filt er1.text]});
336
337 subscription3.disabled = false;
338 checkKnownFilters(test, "enable exception rules", {blacklist: [filter1.text], whitelist: [filter2.text]});
339
340 test.done();
341 };
342
343 exports.testSnippetFilters = function(test)
344 {
345 let filter1 = Filter.fromText("example.com#$#filter1");
346 let filter2 = Filter.fromText("example.com#$#filter2");
347 let filter3 = Filter.fromText("example.com#$#filter3");
348
349 let subscription1 = Subscription.fromURL("http://test1/");
350 subscription1.addFilter(filter1);
351 subscription1.addFilter(filter2);
352
353 filterStorage.addSubscription(subscription1);
354 checkKnownFilters(test, "add subscription with filter1 and filter2", {});
355
356 let subscription2 = Subscription.fromURL("http://test2/");
357 subscription2.type = "circumvention";
358 subscription2.addFilter(filter1);
359
360 filterStorage.addSubscription(subscription2);
361 checkKnownFilters(test, "add subscription of type circumvention with filter1", {snippets: [filter1.text]});
362
363 let subscription3 = Subscription.fromURL("~foo");
364 subscription3.addFilter(filter2);
365
366 filterStorage.addSubscription(subscription3);
367 checkKnownFilters(test, "add special subscription with filter2", {snippets: [f ilter1.text, filter2.text]});
368
369 let subscription4 = Subscription.fromURL("https://easylist-downloads.adblockpl us.org/abp-filters-anti-cv.txt");
370 subscription4.addFilter(filter3);
371
372 filterStorage.addSubscription(subscription4);
373 checkKnownFilters(test, "add ABP anti-circumvention subscription with filter3" , {snippets: [filter1.text, filter2.text, filter3.text]});
374
375 test.done();
376 };
OLDNEW
« no previous file with comments | « test/filterClasses.js ('k') | test/filterNotifier.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld