OLD | NEW |
1 (function() | 1 (function() |
2 { | 2 { |
3 module("Filter matcher", {setup: prepareFilterComponents, teardown: restoreFil
terComponents}); | 3 module("Filter matcher", {setup: prepareFilterComponents, teardown: restoreFil
terComponents}); |
4 | 4 |
5 function compareKeywords(text, expected) | 5 function compareKeywords(text, expected) |
6 { | 6 { |
7 for each (let filter in [Filter.fromText(text), Filter.fromText("@@" + text)
]) | 7 for (let filter of [Filter.fromText(text), Filter.fromText("@@" + text)]) |
8 { | 8 { |
9 let matcher = new Matcher(); | 9 let matcher = new Matcher(); |
10 let result = []; | 10 let result = []; |
11 for each (let dummy in expected) | 11 for (let dummy of expected) |
12 { | 12 { |
13 keyword = matcher.findKeyword(filter); | 13 keyword = matcher.findKeyword(filter); |
14 result.push(keyword); | 14 result.push(keyword); |
15 if (keyword) | 15 if (keyword) |
16 { | 16 { |
17 let dummyFilter = Filter.fromText('^' + keyword + '^'); | 17 let dummyFilter = Filter.fromText('^' + keyword + '^'); |
18 dummyFilter.filterCount = Infinity; | 18 dummyFilter.filterCount = Infinity; |
19 matcher.add(dummyFilter); | 19 matcher.add(dummyFilter); |
20 } | 20 } |
21 } | 21 } |
22 | 22 |
23 equal(result.join(", "), expected.join(", "), "Keyword candidates for " +
filter.text); | 23 equal(result.join(", "), expected.join(", "), "Keyword candidates for " +
filter.text); |
24 } | 24 } |
25 } | 25 } |
26 | 26 |
27 function checkMatch(filters, location, contentType, docDomain, thirdParty, exp
ected) | 27 function checkMatch(filters, location, contentType, docDomain, thirdParty, exp
ected) |
28 { | 28 { |
29 let matcher = new Matcher(); | 29 let matcher = new Matcher(); |
30 for each (let filter in filters) | 30 for (let filter of filters) |
31 matcher.add(Filter.fromText(filter)); | 31 matcher.add(Filter.fromText(filter)); |
32 | 32 |
33 let result = matcher.matchesAny(location, contentType, docDomain, thirdParty
); | 33 let result = matcher.matchesAny(location, contentType, docDomain, thirdParty
); |
34 if (result) | 34 if (result) |
35 result = result.text; | 35 result = result.text; |
36 | 36 |
37 equal(result, expected, "match(" + location + ", " + contentType + ", " + do
cDomain + ", " + (thirdParty ? "third-party" : "first-party") + ") with:\n" + fi
lters.join("\n")); | 37 equal(result, expected, "match(" + location + ", " + contentType + ", " + do
cDomain + ", " + (thirdParty ? "third-party" : "first-party") + ") with:\n" + fi
lters.join("\n")); |
38 | 38 |
39 let combinedMatcher = new CombinedMatcher(); | 39 let combinedMatcher = new CombinedMatcher(); |
40 for (let i = 0; i < 2; i++) | 40 for (let i = 0; i < 2; i++) |
41 { | 41 { |
42 for each (let filter in filters) | 42 for (let filter of filters) |
43 combinedMatcher.add(Filter.fromText(filter)); | 43 combinedMatcher.add(Filter.fromText(filter)); |
44 | 44 |
45 let result = combinedMatcher.matchesAny(location, contentType, docDomain,
thirdParty); | 45 let result = combinedMatcher.matchesAny(location, contentType, docDomain,
thirdParty); |
46 if (result) | 46 if (result) |
47 result = result.text; | 47 result = result.text; |
48 | 48 |
49 equal(result, expected, "combinedMatch(" + location + ", " + contentType +
", " + docDomain + ", " + (thirdParty ? "third-party" : "first-party") + ") wit
h:\n" + filters.join("\n")); | 49 equal(result, expected, "combinedMatch(" + location + ", " + contentType +
", " + docDomain + ", " + (thirdParty ? "third-party" : "first-party") + ") wit
h:\n" + filters.join("\n")); |
50 | 50 |
51 // For next run: add whitelisting filters | 51 // For next run: add whitelisting filters |
52 filters = filters.map(function(text) "@@" + text); | 52 filters = filters.map(function(text) "@@" + text); |
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
179 cacheCheck(matcher, "http://fed", "IMAGE", null, false, "http://fed$~third-p
arty,~script"); | 179 cacheCheck(matcher, "http://fed", "IMAGE", null, false, "http://fed$~third-p
arty,~script"); |
180 cacheCheck(matcher, "http://fed", "IMAGE", null, true, "http://fed$third-par
ty"); | 180 cacheCheck(matcher, "http://fed", "IMAGE", null, true, "http://fed$third-par
ty"); |
181 cacheCheck(matcher, "http://abc_cba", "DOCUMENT", null, false, "cba$~third-p
arty,~script"); | 181 cacheCheck(matcher, "http://abc_cba", "DOCUMENT", null, false, "cba$~third-p
arty,~script"); |
182 cacheCheck(matcher, "http://abc_cba", "DOCUMENT", null, true, "cba$third-par
ty"); | 182 cacheCheck(matcher, "http://abc_cba", "DOCUMENT", null, true, "cba$third-par
ty"); |
183 cacheCheck(matcher, "http://abc_cba", "SCRIPT", null, false, "abc$script"); | 183 cacheCheck(matcher, "http://abc_cba", "SCRIPT", null, false, "abc$script"); |
184 cacheCheck(matcher, "http://def?http://fed", "DOCUMENT", null, false, "http:
//fed$~third-party,~script"); | 184 cacheCheck(matcher, "http://def?http://fed", "DOCUMENT", null, false, "http:
//fed$~third-party,~script"); |
185 cacheCheck(matcher, "http://def?http://fed", "DOCUMENT", null, true, "http:/
/fed$third-party"); | 185 cacheCheck(matcher, "http://def?http://fed", "DOCUMENT", null, true, "http:/
/fed$third-party"); |
186 cacheCheck(matcher, "http://def?http://fed", "SCRIPT", null, false, "http://
def$script"); | 186 cacheCheck(matcher, "http://def?http://fed", "SCRIPT", null, false, "http://
def$script"); |
187 }); | 187 }); |
188 })(); | 188 })(); |
OLD | NEW |