| 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-2016 Eyeo GmbH | 3  * Copyright (C) 2006-2016 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 let { | 20 let {createSandbox} = require("common"); | 
| 21   Filter, InvalidFilter, CommentFilter, ActiveFilter, RegExpFilter, | 21 | 
| 22   BlockingFilter, WhitelistFilter, ElemHideBase, ElemHideFilter, | 22 let Filter = null; | 
| 23   ElemHideException, CSSPropertyFilter | 23 let InvalidFilter = null; | 
| 24 } = require("../lib/filterClasses"); | 24 let CommentFilter = null; | 
|  | 25 let ActiveFilter = null; | 
|  | 26 let RegExpFilter = null; | 
|  | 27 let BlockingFilter = null; | 
|  | 28 let WhitelistFilter = null; | 
|  | 29 let ElemHideBase = null; | 
|  | 30 let ElemHideFilter = null; | 
|  | 31 let ElemHideException = null; | 
|  | 32 let CSSPropertyFilter = null; | 
|  | 33 | 
|  | 34 let t = null; | 
|  | 35 let defaultTypes = null; | 
|  | 36 | 
|  | 37 exports.setUp = function(callback) | 
|  | 38 { | 
|  | 39   let sandboxedRequire = createSandbox(); | 
|  | 40   ( | 
|  | 41     {Filter, InvalidFilter, CommentFilter, ActiveFilter, RegExpFilter, | 
|  | 42      BlockingFilter, WhitelistFilter, ElemHideBase, ElemHideFilter, | 
|  | 43      ElemHideException, CSSPropertyFilter} = sandboxedRequire("filterClasses") | 
|  | 44   ); | 
|  | 45   t = RegExpFilter.typeMap; | 
|  | 46   defaultTypes = 0x7FFFFFFF & ~(t.ELEMHIDE | t.DOCUMENT | t.POPUP | | 
|  | 47                                 t.GENERICHIDE | t.GENERICBLOCK); | 
|  | 48 | 
|  | 49   callback(); | 
|  | 50 }; | 
| 25 | 51 | 
| 26 function serializeFilter(filter) | 52 function serializeFilter(filter) | 
| 27 { | 53 { | 
| 28   // Filter serialization only writes out essential properties, need to do a ful
     l serialization here | 54   // Filter serialization only writes out essential properties, need to do a ful
     l serialization here | 
| 29   let result = []; | 55   let result = []; | 
| 30   result.push("text=" + filter.text); | 56   result.push("text=" + filter.text); | 
| 31   if (filter instanceof InvalidFilter) | 57   if (filter instanceof InvalidFilter) | 
| 32   { | 58   { | 
| 33     result.push("type=invalid"); | 59     result.push("type=invalid"); | 
| 34     result.push("reason=" + filter.reason); | 60     result.push("reason=" + filter.reason); | 
| (...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 237   compareFilter(test, "blabla_non_default", ["type=filterlist", "text=blabla_non
     _default", "regexp=blabla_non_default", "disabled=true", "hitCount=12", "lastHit
     =20"], function(filter) | 263   compareFilter(test, "blabla_non_default", ["type=filterlist", "text=blabla_non
     _default", "regexp=blabla_non_default", "disabled=true", "hitCount=12", "lastHit
     =20"], function(filter) | 
| 238   { | 264   { | 
| 239     filter.disabled = true; | 265     filter.disabled = true; | 
| 240     filter.hitCount = 12; | 266     filter.hitCount = 12; | 
| 241     filter.lastHit = 20; | 267     filter.lastHit = 20; | 
| 242   }); | 268   }); | 
| 243 | 269 | 
| 244   test.done(); | 270   test.done(); | 
| 245 }; | 271 }; | 
| 246 | 272 | 
| 247 let t = RegExpFilter.typeMap; |  | 
| 248 let defaultTypes = 0x7FFFFFFF & ~(t.ELEMHIDE | t.DOCUMENT | t.POPUP | t.GENERICH
     IDE | t.GENERICBLOCK); |  | 
| 249 |  | 
| 250 exports.testSpecialCharacters = function(test) | 273 exports.testSpecialCharacters = function(test) | 
| 251 { | 274 { | 
| 252   compareFilter(test, "/ddd|f?a[s]d/", ["type=filterlist", "text=/ddd|f?a[s]d/",
      "regexp=ddd|f?a[s]d"]); | 275   compareFilter(test, "/ddd|f?a[s]d/", ["type=filterlist", "text=/ddd|f?a[s]d/",
      "regexp=ddd|f?a[s]d"]); | 
| 253   compareFilter(test, "*asdf*d**dd*", ["type=filterlist", "text=*asdf*d**dd*", "
     regexp=asdf.*d.*dd"]); | 276   compareFilter(test, "*asdf*d**dd*", ["type=filterlist", "text=*asdf*d**dd*", "
     regexp=asdf.*d.*dd"]); | 
| 254   compareFilter(test, "|*asd|f*d**dd*|", ["type=filterlist", "text=|*asd|f*d**dd
     *|", "regexp=^.*asd\\|f.*d.*dd.*$"]); | 277   compareFilter(test, "|*asd|f*d**dd*|", ["type=filterlist", "text=|*asd|f*d**dd
     *|", "regexp=^.*asd\\|f.*d.*dd.*$"]); | 
| 255   compareFilter(test, "dd[]{}$%<>&()d", ["type=filterlist", "text=dd[]{}$%<>&()d
     ", "regexp=dd\\[\\]\\{\\}\\$\\%\\<\\>\\&\\(\\)d"]); | 278   compareFilter(test, "dd[]{}$%<>&()d", ["type=filterlist", "text=dd[]{}$%<>&()d
     ", "regexp=dd\\[\\]\\{\\}\\$\\%\\<\\>\\&\\(\\)d"]); | 
| 256 | 279 | 
| 257   compareFilter(test, "@@/ddd|f?a[s]d/", ["type=whitelist", "text=@@/ddd|f?a[s]d
     /", "regexp=ddd|f?a[s]d", "contentType=" + defaultTypes]); | 280   compareFilter(test, "@@/ddd|f?a[s]d/", ["type=whitelist", "text=@@/ddd|f?a[s]d
     /", "regexp=ddd|f?a[s]d", "contentType=" + defaultTypes]); | 
| 258   compareFilter(test, "@@*asdf*d**dd*", ["type=whitelist", "text=@@*asdf*d**dd*"
     , "regexp=asdf.*d.*dd", "contentType=" + defaultTypes]); | 281   compareFilter(test, "@@*asdf*d**dd*", ["type=whitelist", "text=@@*asdf*d**dd*"
     , "regexp=asdf.*d.*dd", "contentType=" + defaultTypes]); | 
| 259   compareFilter(test, "@@|*asd|f*d**dd*|", ["type=whitelist", "text=@@|*asd|f*d*
     *dd*|", "regexp=^.*asd\\|f.*d.*dd.*$", "contentType=" + defaultTypes]); | 282   compareFilter(test, "@@|*asd|f*d**dd*|", ["type=whitelist", "text=@@|*asd|f*d*
     *dd*|", "regexp=^.*asd\\|f.*d.*dd.*$", "contentType=" + defaultTypes]); | 
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 336   compareFilter(test, "foo.com,~bar##[-abp-properties='abc']", ["type=cssrule", 
     "text=foo.com,~bar##[-abp-properties='abc']", "selectorDomain=foo.com", "selecto
     r=[-abp-properties='abc']", "domains=FOO.COM|~BAR", "regexp=abc"]); | 359   compareFilter(test, "foo.com,~bar##[-abp-properties='abc']", ["type=cssrule", 
     "text=foo.com,~bar##[-abp-properties='abc']", "selectorDomain=foo.com", "selecto
     r=[-abp-properties='abc']", "domains=FOO.COM|~BAR", "regexp=abc"]); | 
| 337   compareFilter(test, "~foo.com,bar.com##[-abp-properties='abc']", ["type=cssrul
     e", "text=~foo.com,bar.com##[-abp-properties='abc']", "selectorDomain=bar.com", 
     "selector=[-abp-properties='abc']", "domains=BAR.COM|~FOO.COM", "regexp=abc"]); | 360   compareFilter(test, "~foo.com,bar.com##[-abp-properties='abc']", ["type=cssrul
     e", "text=~foo.com,bar.com##[-abp-properties='abc']", "selectorDomain=bar.com", 
     "selector=[-abp-properties='abc']", "domains=BAR.COM|~FOO.COM", "regexp=abc"]); | 
| 338 | 361 | 
| 339   compareFilter(test, "##[-abp-properties='']", ["type=elemhide", "text=##[-abp-
     properties='']", "selector=[-abp-properties='']"]); | 362   compareFilter(test, "##[-abp-properties='']", ["type=elemhide", "text=##[-abp-
     properties='']", "selector=[-abp-properties='']"]); | 
| 340   compareFilter(test, "foo.com#@#[-abp-properties='abc']", ["type=elemhideexcept
     ion", "text=foo.com#@#[-abp-properties='abc']", "selectorDomain=foo.com", "selec
     tor=[-abp-properties='abc']", "domains=FOO.COM"]); | 363   compareFilter(test, "foo.com#@#[-abp-properties='abc']", ["type=elemhideexcept
     ion", "text=foo.com#@#[-abp-properties='abc']", "selectorDomain=foo.com", "selec
     tor=[-abp-properties='abc']", "domains=FOO.COM"]); | 
| 341   compareFilter(test, "foo.com##aaa [-abp-properties='abc'] bbb", ["type=cssrule
     ", "text=foo.com##aaa [-abp-properties='abc'] bbb", "selectorDomain=foo.com", "s
     elector=aaa [-abp-properties='abc'] bbb", "domains=FOO.COM", "prefix=aaa ", "reg
     exp=abc", "suffix= bbb"]); | 364   compareFilter(test, "foo.com##aaa [-abp-properties='abc'] bbb", ["type=cssrule
     ", "text=foo.com##aaa [-abp-properties='abc'] bbb", "selectorDomain=foo.com", "s
     elector=aaa [-abp-properties='abc'] bbb", "domains=FOO.COM", "prefix=aaa ", "reg
     exp=abc", "suffix= bbb"]); | 
| 342   compareFilter(test, "foo.com##[-abp-properties='|background-image: url(data:*)
     ']", ["type=cssrule", "text=foo.com##[-abp-properties='|background-image: url(da
     ta:*)']", "selectorDomain=foo.com", "selector=[-abp-properties='|background-imag
     e: url(data:*)']", "domains=FOO.COM", "regexp=^background\\-image\\:\\ url\\(dat
     a\\:.*\\)"]); | 365   compareFilter(test, "foo.com##[-abp-properties='|background-image: url(data:*)
     ']", ["type=cssrule", "text=foo.com##[-abp-properties='|background-image: url(da
     ta:*)']", "selectorDomain=foo.com", "selector=[-abp-properties='|background-imag
     e: url(data:*)']", "domains=FOO.COM", "regexp=^background\\-image\\:\\ url\\(dat
     a\\:.*\\)"]); | 
| 343 | 366 | 
| 344   test.done(); | 367   test.done(); | 
| 345 }; | 368 }; | 
| OLD | NEW | 
|---|