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