| Index: test/snippets.js |
| =================================================================== |
| --- a/test/snippets.js |
| +++ b/test/snippets.js |
| @@ -20,57 +20,70 @@ |
| "use strict"; |
| const {createSandbox} = require("./_common"); |
| let Snippets = null; |
| let parseScript = null; |
| let compileScript = null; |
| let Filter = null; |
| +let SnippetFilter = null; |
| exports.setUp = function(callback) |
| { |
| let sandboxedRequire = createSandbox(); |
| ( |
| - {Filter} = sandboxedRequire("../lib/filterClasses"), |
| + {Filter, SnippetFilter} = sandboxedRequire("../lib/filterClasses"), |
| {Snippets, parseScript, compileScript} = sandboxedRequire("../lib/snippets") |
| ); |
| callback(); |
| }; |
| exports.testDomainRestrictions = function(test) |
| { |
| function testScriptMatches(description, filters, domain, expectedMatches) |
| { |
| - for (let filter of filters) |
| - Snippets.add(Filter.fromText(filter)); |
| + for (let filter of filters.map(Filter.fromText)) |
| + { |
| + if (filter instanceof SnippetFilter) |
| + Snippets.add(filter); |
| + } |
| let matches = Snippets.getScriptsForDomain(domain); |
| test.deepEqual(matches.sort(), expectedMatches.sort(), description); |
| Snippets.clear(); |
| } |
| testScriptMatches( |
| + "Ignore generic filters", |
| + [ |
| + "#$#foo-1", "example.com#$#foo-2", |
| + "~example.com#$#foo-3" |
| + ], |
| + "example.com", |
| + ["foo-2"] |
| + ); |
| + testScriptMatches( |
| "Ignore filters that include parent domain but exclude subdomain", |
| [ |
| "~www.example.com,example.com#$#foo" |
| ], |
| "www.example.com", |
| [] |
| ); |
| testScriptMatches( |
| "Ignore filters for other subdomain", |
| [ |
| - "www.example.com#$#foo", |
| - "other.example.com#$#foo" |
| + "www.example.com#$#foo-1", |
| + "other.example.com#$#foo-2" |
| ], |
| "other.example.com", |
| - ["foo"] |
| + ["foo-2"] |
| ); |
| test.done(); |
| }; |
| exports.testSnippetFiltersContainer = function(test) |
| { |
| function compareRules(description, domain, expectedMatches) |