OLD | NEW |
1 /* | 1 /* |
2 * This file is part of Adblock Plus <https://adblockplus.org/>, | 2 * This file is part of Adblock Plus <https://adblockplus.org/>, |
3 * Copyright (C) 2006-present eyeo GmbH | 3 * Copyright (C) 2006-present eyeo GmbH |
4 * | 4 * |
5 * Adblock Plus is free software: you can redistribute it and/or modify | 5 * Adblock Plus is free software: you can redistribute it and/or modify |
6 * it under the terms of the GNU General Public License version 3 as | 6 * it under the terms of the GNU General Public License version 3 as |
7 * published by the Free Software Foundation. | 7 * published by the Free Software Foundation. |
8 * | 8 * |
9 * Adblock Plus is distributed in the hope that it will be useful, | 9 * Adblock Plus is distributed in the hope that it will be useful, |
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
(...skipping 28 matching lines...) Expand all Loading... |
39 callback(); | 39 callback(); |
40 }; | 40 }; |
41 | 41 |
42 function addListener(listener) | 42 function addListener(listener) |
43 { | 43 { |
44 let makeWrapper = name => (...args) => listener(name, ...args); | 44 let makeWrapper = name => (...args) => listener(name, ...args); |
45 | 45 |
46 filterNotifier.on("subscription.added", makeWrapper("subscription.added")); | 46 filterNotifier.on("subscription.added", makeWrapper("subscription.added")); |
47 filterNotifier.on("subscription.removed", | 47 filterNotifier.on("subscription.removed", |
48 makeWrapper("subscription.removed")); | 48 makeWrapper("subscription.removed")); |
49 filterNotifier.on("subscription.moved", makeWrapper("subscription.moved")); | |
50 | 49 |
51 filterNotifier.on("filter.added", makeWrapper("filter.added")); | 50 filterNotifier.on("filter.added", makeWrapper("filter.added")); |
52 filterNotifier.on("filter.removed", makeWrapper("filter.removed")); | 51 filterNotifier.on("filter.removed", makeWrapper("filter.removed")); |
53 filterNotifier.on("filter.moved", makeWrapper("filter.moved")); | 52 filterNotifier.on("filter.moved", makeWrapper("filter.moved")); |
54 | 53 |
55 filterNotifier.on("filter.hitCount", makeWrapper("filter.hitCount")); | 54 filterNotifier.on("filter.hitCount", makeWrapper("filter.hitCount")); |
56 filterNotifier.on("filter.lastHit", makeWrapper("filter.lastHit")); | 55 filterNotifier.on("filter.lastHit", makeWrapper("filter.lastHit")); |
57 } | 56 } |
58 | 57 |
59 function compareSubscriptionList(test, testMessage, list, | 58 function compareSubscriptionList(test, testMessage, list, |
60 knownSubscriptions = null) | 59 knownSubscriptions = null) |
61 { | 60 { |
62 let result = FilterStorage.subscriptions.map(subscription => subscription.url)
; | 61 let result = [...FilterStorage.knownSubscriptions.keys()]; |
63 let expected = list.map(subscription => subscription.url); | 62 let expected = list.map(subscription => subscription.url); |
64 test.deepEqual(result, expected, testMessage); | 63 test.deepEqual(result, expected, testMessage); |
65 | 64 |
66 if (knownSubscriptions) | 65 if (knownSubscriptions) |
67 { | 66 { |
68 test.deepEqual([...Subscription.knownSubscriptions.values()], | 67 test.deepEqual([...Subscription.knownSubscriptions.values()], |
69 knownSubscriptions, testMessage); | 68 knownSubscriptions, testMessage); |
70 } | 69 } |
71 } | 70 } |
72 | 71 |
73 function compareFiltersList(test, testMessage, list) | 72 function compareFiltersList(test, testMessage, list) |
74 { | 73 { |
75 let result = FilterStorage.subscriptions.map( | 74 let result = [...FilterStorage.subscriptions()].map( |
76 subscription => subscription.filters.map( | 75 subscription => subscription.filters.map( |
77 filter => filter.text)); | 76 filter => filter.text)); |
78 test.deepEqual(result, list, testMessage); | 77 test.deepEqual(result, list, testMessage); |
79 } | 78 } |
80 | 79 |
81 function compareFilterSubscriptions(test, testMessage, filter, list) | 80 function compareFilterSubscriptions(test, testMessage, filter, list) |
82 { | 81 { |
83 let result = [...filter.subscriptions()].map(subscription => subscription.url)
; | 82 let result = [...filter.subscriptions()].map(subscription => subscription.url)
; |
84 let expected = list.map(subscription => subscription.url); | 83 let expected = list.map(subscription => subscription.url); |
85 test.deepEqual(result, expected, testMessage); | 84 test.deepEqual(result, expected, testMessage); |
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
201 function listener(action, subscription) | 200 function listener(action, subscription) |
202 { | 201 { |
203 if (action.indexOf("subscription.") == 0) | 202 if (action.indexOf("subscription.") == 0) |
204 changes.push(action + " " + subscription.url); | 203 changes.push(action + " " + subscription.url); |
205 } | 204 } |
206 addListener(listener); | 205 addListener(listener); |
207 | 206 |
208 compareSubscriptionList(test, "Initial state", [subscription1, subscription2,
subscription3]); | 207 compareSubscriptionList(test, "Initial state", [subscription1, subscription2,
subscription3]); |
209 test.deepEqual(changes, [], "Received changes"); | 208 test.deepEqual(changes, [], "Received changes"); |
210 | 209 |
211 changes = []; | |
212 FilterStorage.moveSubscription(subscription1); | |
213 compareSubscriptionList(test, "Move without explicit position", [subscription2
, subscription3, subscription1]); | |
214 test.deepEqual(changes, ["subscription.moved http://test1/"], "Received change
s"); | |
215 | |
216 changes = []; | |
217 FilterStorage.moveSubscription(subscription1); | |
218 compareSubscriptionList(test, "Move without explicit position (subscription al
ready last)", [subscription2, subscription3, subscription1]); | |
219 test.deepEqual(changes, [], "Received changes"); | |
220 | |
221 changes = []; | |
222 FilterStorage.moveSubscription(subscription2, subscription1); | |
223 compareSubscriptionList(test, "Move with explicit position", [subscription3, s
ubscription2, subscription1]); | |
224 test.deepEqual(changes, ["subscription.moved http://test2/"], "Received change
s"); | |
225 | |
226 changes = []; | |
227 FilterStorage.moveSubscription(subscription3, subscription2); | |
228 compareSubscriptionList(test, "Move without explicit position (subscription al
ready at position)", [subscription3, subscription2, subscription1]); | |
229 test.deepEqual(changes, [], "Received changes"); | |
230 | |
231 FilterStorage.removeSubscription(subscription2); | 210 FilterStorage.removeSubscription(subscription2); |
232 compareSubscriptionList(test, "Remove", [subscription3, subscription1]); | 211 compareSubscriptionList(test, "Remove", [subscription1, subscription3]); |
233 | |
234 changes = []; | |
235 FilterStorage.moveSubscription(subscription3, subscription2); | |
236 compareSubscriptionList(test, "Move before removed subscription", [subscriptio
n1, subscription3]); | |
237 test.deepEqual(changes, ["subscription.moved http://test3/"], "Received change
s"); | |
238 | |
239 changes = []; | |
240 FilterStorage.moveSubscription(subscription2); | |
241 compareSubscriptionList(test, "Move of removed subscription", [subscription1,
subscription3]); | |
242 test.deepEqual(changes, [], "Received changes"); | |
243 | 212 |
244 test.done(); | 213 test.done(); |
245 }; | 214 }; |
246 | 215 |
247 exports.testAddingFilters = function(test) | 216 exports.testAddingFilters = function(test) |
248 { | 217 { |
249 let subscription1 = Subscription.fromURL("~blocking"); | 218 let subscription1 = Subscription.fromURL("~blocking"); |
250 subscription1.defaults = ["blocking"]; | 219 subscription1.defaults = ["blocking"]; |
251 | 220 |
252 let subscription2 = Subscription.fromURL("~exceptions"); | 221 let subscription2 = Subscription.fromURL("~exceptions"); |
(...skipping 278 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
531 compareFilterSubscriptions(test, "filter3 subscriptions after updating http://
test3/ filters", filter3, [subscription2]); | 500 compareFilterSubscriptions(test, "filter3 subscriptions after updating http://
test3/ filters", filter3, [subscription2]); |
532 | 501 |
533 FilterStorage.removeSubscription(subscription3); | 502 FilterStorage.removeSubscription(subscription3); |
534 | 503 |
535 compareFilterSubscriptions(test, "filter1 subscriptions after removing http://
test3/", filter1, []); | 504 compareFilterSubscriptions(test, "filter1 subscriptions after removing http://
test3/", filter1, []); |
536 compareFilterSubscriptions(test, "filter2 subscriptions after removing http://
test3/", filter2, [subscription2]); | 505 compareFilterSubscriptions(test, "filter2 subscriptions after removing http://
test3/", filter2, [subscription2]); |
537 compareFilterSubscriptions(test, "filter3 subscriptions after removing http://
test3/", filter3, [subscription2]); | 506 compareFilterSubscriptions(test, "filter3 subscriptions after removing http://
test3/", filter3, [subscription2]); |
538 | 507 |
539 test.done(); | 508 test.done(); |
540 }; | 509 }; |
OLD | NEW |