| 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 |