 Issue 29574665:
  Issue 5159 - Expose collapse property for BlockingFilter  (Closed) 
  Base URL: https://hg.adblockplus.org/adblockpluscore/
    
  
    Issue 29574665:
  Issue 5159 - Expose collapse property for BlockingFilter  (Closed) 
  Base URL: https://hg.adblockplus.org/adblockpluscore/| Index: test/filterClasses.js | 
| =================================================================== | 
| --- a/test/filterClasses.js | 
| +++ b/test/filterClasses.js | 
| @@ -43,42 +43,44 @@ | 
| } = sandboxedRequire("../lib/filterClasses") | 
| ); | 
| ({FilterNotifier} = sandboxedRequire("../lib/filterNotifier")); | 
| callback(); | 
| }; | 
| exports.testFromText = function(test) | 
| { | 
| + // fields are: | 
| + // text, type, typeName, collapse (optional, BlockingFilter only) | 
| let tests = [ | 
| ["!asdf", CommentFilter, "comment"], | 
| - ["asdf", BlockingFilter, "blocking"], | 
| - ["asdf$image,~collapse", BlockingFilter, "blocking"], | 
| - ["/asdf/", BlockingFilter, "blocking"], | 
| + ["asdf", BlockingFilter, "blocking", 1], | 
| + ["asdf$image,~collapse", BlockingFilter, "blocking", 0], | 
| + ["/asdf/", BlockingFilter, "blocking", 1], | 
| ["/asdf??+/", InvalidFilter, "invalid"], | 
| ["@@asdf", WhitelistFilter, "whitelist"], | 
| - ["@@asdf$image,~collapse", WhitelistFilter, "whitelist"], | 
| + ["@@asdf$image,~collapse", WhitelistFilter, "whitelist", 0], | 
| ["@@/asdf/", WhitelistFilter, "whitelist"], | 
| ["@@/asdf??+/", InvalidFilter, "invalid"], | 
| ["##asdf", ElemHideFilter, "elemhide"], | 
| ["#@#asdf", ElemHideException, "elemhideexception"], | 
| ["foobar##asdf", ElemHideFilter, "elemhide"], | 
| ["foobar#@#asdf", ElemHideException, "elemhideexception"], | 
| ["foobar##a", ElemHideFilter, "elemhide"], | 
| ["foobar#@#a", ElemHideException, "elemhideexception"], | 
| - ["foobar#asdf", BlockingFilter, "blocking"], | 
| - ["foobar|foobas##asdf", BlockingFilter, "blocking"], | 
| - ["foobar##asdf{asdf}", BlockingFilter, "blocking"], | 
| - ["foobar##", BlockingFilter, "blocking"], | 
| - ["foobar#@#", BlockingFilter, "blocking"], | 
| + ["foobar#asdf", BlockingFilter, "blocking", 1], | 
| + ["foobar|foobas##asdf", BlockingFilter, "blocking", 1], | 
| + ["foobar##asdf{asdf}", BlockingFilter, "blocking", 1], | 
| + ["foobar##", BlockingFilter, "blocking", 1], | 
| + ["foobar#@#", BlockingFilter, "blocking", 1], | 
| ["asdf$foobar", InvalidFilter, "invalid"], | 
| ["asdf$image,foobar", InvalidFilter, "invalid"], | 
| - ["asdf$image=foobar", BlockingFilter, "blocking"], | 
| - ["asdf$image=foobar=xyz,~collapse", BlockingFilter, "blocking"], | 
| + ["asdf$image=foobar", BlockingFilter, "blocking", 1], | 
| + ["asdf$image=foobar=xyz,~collapse", BlockingFilter, "blocking", 0], | 
| ["##foo[-abp-properties='something']bar", InvalidFilter, "invalid"], | 
| ["#@#foo[-abp-properties='something']bar", ElemHideException, "elemhideexception"], | 
| ["example.com##foo[-abp-properties='something']bar", ElemHideEmulationFilter, "elemhideemulation"], | 
| ["example.com#@#foo[-abp-properties='something']bar", ElemHideException, "elemhideexception"], | 
| ["~example.com##foo[-abp-properties='something']bar", InvalidFilter, "invalid"], | 
| ["~example.com#@#foo[-abp-properties='something']bar", ElemHideException, "elemhideexception"], | 
| ["~example.com,~example.info##foo[-abp-properties='something']bar", InvalidFilter, "invalid"], | 
| @@ -89,23 +91,25 @@ | 
| ["example.com,~sub.example.com#@#foo[-abp-properties='something']bar", ElemHideException, "elemhideexception"], | 
| ["example.com##[-abp-properties='something']", ElemHideEmulationFilter, "elemhideemulation"], | 
| ["example.com#@#[-abp-properties='something']", ElemHideException, "elemhideexception"], | 
| ["example.com##[-abp-properties=\"something\"]", ElemHideEmulationFilter, "elemhideemulation"], | 
| ["example.com#@#[-abp-properties=\"something\"]", ElemHideException, "elemhideexception"], | 
| ["example.com##[-abp-properties=(something)]", ElemHideEmulationFilter, "elemhideemulation"], | 
| ["example.com#@#[-abp-properties=(something)]", ElemHideException, "elemhideexception"] | 
| ]; | 
| - for (let [text, type, typeName] of tests) | 
| + for (let [text, type, typeName, collapse] of tests) | 
| { | 
| let filter = Filter.fromText(text); | 
| test.ok(filter instanceof Filter, "Got filter for " + text); | 
| test.equal(filter.text, text, "Correct filter text for " + text); | 
| test.ok(filter instanceof type, "Correct filter type for " + text); | 
| test.equal(filter.type, typeName, "Type name for " + text + " is " + typeName); | 
| + if (filter instanceof BlockingFilter) | 
| 
sergei
2017/11/21 16:17:01
What about checking that `filter.collapse` and `co
 
hub
2017/11/21 17:42:47
done.
 | 
| + test.equal(filter.collapse, collapse); | 
| if (type == InvalidFilter) | 
| test.ok(filter.reason, "Invalid filter " + text + " has a reason set"); | 
| filter.delete(); | 
| } | 
| test.done(); | 
| }; | 
| exports.testClassHierarchy = function(test) | 
| @@ -230,27 +234,29 @@ | 
| test.done(); | 
| }; | 
| exports.testSerialize = function(test) | 
| { | 
| // Comment | 
| let filter = Filter.fromText("! serialize"); | 
| test.equal(filter.serialize(), "[Filter]\ntext=! serialize\n"); | 
| + test.equal(filter.collapse, undefined); | 
| filter.delete(); | 
| // Blocking filter | 
| filter = Filter.fromText("serialize"); | 
| test.equal(filter.serialize(), "[Filter]\ntext=serialize\n"); | 
| filter.disabled = true; | 
| test.equal(filter.serialize(), "[Filter]\ntext=serialize\ndisabled=true\n"); | 
| filter.disabled = false; | 
| filter.hitCount = 10; | 
| filter.lastHit = 12; | 
| test.equal(filter.serialize(), "[Filter]\ntext=serialize\nhitCount=10\nlastHit=12\n"); | 
| + test.ok(filter.collapse); | 
| filter.delete(); | 
| // Invalid filter | 
| filter = Filter.fromText("serialize$foobar"); | 
| test.equal(filter.serialize(), "[Filter]\ntext=serialize$foobar\n"); | 
| filter.delete(); | 
| // Element hiding filter |