| 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-2017 eyeo GmbH | 3  * Copyright (C) 2006-2017 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 12 matching lines...) Expand all  Loading... | 
| 23 let InvalidFilter = null; | 23 let InvalidFilter = null; | 
| 24 let CommentFilter = null; | 24 let CommentFilter = null; | 
| 25 let ActiveFilter = null; | 25 let ActiveFilter = null; | 
| 26 let RegExpFilter = null; | 26 let RegExpFilter = null; | 
| 27 let BlockingFilter = null; | 27 let BlockingFilter = null; | 
| 28 let WhitelistFilter = null; | 28 let WhitelistFilter = null; | 
| 29 let ElemHideBase = null; | 29 let ElemHideBase = null; | 
| 30 let ElemHideFilter = null; | 30 let ElemHideFilter = null; | 
| 31 let ElemHideException = null; | 31 let ElemHideException = null; | 
| 32 let ElemHideEmulationFilter = null; | 32 let ElemHideEmulationFilter = null; | 
|  | 33 let FilterNotifier = null; | 
| 33 | 34 | 
| 34 exports.setUp = function(callback) | 35 exports.setUp = function(callback) | 
| 35 { | 36 { | 
| 36   let sandboxedRequire = createSandbox(); | 37   let sandboxedRequire = createSandbox(); | 
| 37   ( | 38   ( | 
| 38     { | 39     { | 
| 39       Filter, InvalidFilter, CommentFilter, ActiveFilter, RegExpFilter, | 40       Filter, InvalidFilter, CommentFilter, ActiveFilter, RegExpFilter, | 
| 40       BlockingFilter, WhitelistFilter, ElemHideBase, ElemHideFilter, | 41       BlockingFilter, WhitelistFilter, ElemHideBase, ElemHideFilter, | 
| 41       ElemHideException, ElemHideEmulationFilter | 42       ElemHideException, ElemHideEmulationFilter | 
| 42     } = sandboxedRequire("../lib/filterClasses") | 43     } = sandboxedRequire("../lib/filterClasses") | 
| 43   ); | 44   ); | 
|  | 45   ({FilterNotifier} = sandboxedRequire("../lib/filterNotifier")); | 
| 44   callback(); | 46   callback(); | 
| 45 }; | 47 }; | 
| 46 | 48 | 
| 47 exports.testFromText = function(test) | 49 exports.testFromText = function(test) | 
| 48 { | 50 { | 
| 49   let tests = [ | 51   let tests = [ | 
| 50     ["!asdf", CommentFilter, "comment"], | 52     ["!asdf", CommentFilter, "comment"], | 
| 51     ["asdf", BlockingFilter, "blocking"], | 53     ["asdf", BlockingFilter, "blocking"], | 
| 52     ["asdf$image,~collapse", BlockingFilter, "blocking"], | 54     ["asdf$image,~collapse", BlockingFilter, "blocking"], | 
| 53     ["/asdf/", BlockingFilter, "blocking"], | 55     ["/asdf/", BlockingFilter, "blocking"], | 
| (...skipping 308 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 362   ]; | 364   ]; | 
| 363 | 365 | 
| 364   for (let [text, selector, selectorDomain] of tests) | 366   for (let [text, selector, selectorDomain] of tests) | 
| 365   { | 367   { | 
| 366     doTest(text, selector, selectorDomain); | 368     doTest(text, selector, selectorDomain); | 
| 367     doTest(text.replace("##", "#@#"), selector, selectorDomain); | 369     doTest(text.replace("##", "#@#"), selector, selectorDomain); | 
| 368   } | 370   } | 
| 369 | 371 | 
| 370   test.done(); | 372   test.done(); | 
| 371 }; | 373 }; | 
|  | 374 | 
|  | 375 exports.testNotifications = function(test) | 
|  | 376 { | 
|  | 377   function checkNotifications(action, expected, message) | 
|  | 378   { | 
|  | 379     let result = null; | 
|  | 380     let listener = (topic, filter, newValue, oldValue) => | 
|  | 381     { | 
|  | 382       if (result) | 
|  | 383         test.ok(false, "Got more that one notification - " + message); | 
|  | 384       else | 
|  | 385         result = [topic, filter.text, newValue, oldValue]; | 
|  | 386     }; | 
|  | 387     FilterNotifier.addListener(listener); | 
|  | 388     action(); | 
|  | 389     FilterNotifier.removeListener(listener); | 
|  | 390     test.deepEqual(result, expected, message); | 
|  | 391   } | 
|  | 392 | 
|  | 393   let filter = Filter.fromText("foobar"); | 
|  | 394   checkNotifications(() => | 
|  | 395   { | 
|  | 396     filter.disabled = true; | 
|  | 397   }, ["filter.disabled", "foobar", true, false], "Disabling filter"); | 
|  | 398   checkNotifications(() => | 
|  | 399   { | 
|  | 400     filter.disabled = true; | 
|  | 401   }, null, "Disabling already disabled filter"); | 
|  | 402   checkNotifications(() => | 
|  | 403   { | 
|  | 404     filter.disabled = false; | 
|  | 405   }, ["filter.disabled", "foobar", false, true], "Enabling filter"); | 
|  | 406 | 
|  | 407   checkNotifications(() => | 
|  | 408   { | 
|  | 409     filter.lastHit = 1234; | 
|  | 410   }, ["filter.lastHit", "foobar", 1234, 0], "Changing last filter hit"); | 
|  | 411   checkNotifications(() => | 
|  | 412   { | 
|  | 413     filter.lastHit = 1234; | 
|  | 414   }, null, "Changing last filter hit to same value"); | 
|  | 415   checkNotifications(() => | 
|  | 416   { | 
|  | 417     filter.lastHit = 0; | 
|  | 418   }, ["filter.lastHit", "foobar", 0, 1234], "Resetting last filter hit"); | 
|  | 419 | 
|  | 420   checkNotifications(() => | 
|  | 421   { | 
|  | 422     filter.hitCount++; | 
|  | 423   }, ["filter.hitCount", "foobar", 1, 0], "Increasing filter hit counts"); | 
|  | 424   checkNotifications(() => | 
|  | 425   { | 
|  | 426     filter.hitCount = 0; | 
|  | 427   }, ["filter.hitCount", "foobar", 0, 1], "Resetting filter hit counts"); | 
|  | 428 | 
|  | 429   filter.delete(); | 
|  | 430   test.done(); | 
|  | 431 }; | 
| OLD | NEW | 
|---|