Left: | ||
Right: |
LEFT | RIGHT |
---|---|
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 | |
5 let publickeys = { | |
6 /* | |
7 -----BEGIN RSA PRIVATE KEY----- | |
8 MIIBOgIBAAJBANLNgMGCl6kc3QE/73/ESBsuhzCNQWApqWS1nKVWf+RjDTiF80LD | |
9 2TiTdQhlW9mlWsDDbttsDlEcCmPVz6H3OUMCAwEAAQJBALo/ZSYTqsl4ve7vvTwG | |
10 gKq7ZihIdV1wEcDwELGoBiESo87zl//7q2q9/7VE3dB3Qp6uZMLtxVvXzF8bh074 | |
11 OuECIQDzzenwgPVMtg6OjMtZBAB95oKaTzd+x/8JienKW4edEQIhAN1Y+vlB/waB | |
12 miRjGMrsOQDHhUbxyL6NXaPfxYlosYETAiBg0M9qgztl+BH1x7FkqvMrC+OnNXf7 | |
13 L552gj7F7ez/kQIgOBNhyaHxlNlijpNYZZhAvLTPS/DXFYdE0M5RAgW26mcCIDrR | |
14 fi2xaM2NqJQCmyshtNmDxW2FCrtrQn1n0211WCEe | |
15 -----END RSA PRIVATE KEY----- | |
16 */ | |
17 foo: "MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBANLNgMGCl6kc3QE/73/ESBsuhzCNQWApqWS1nK VWf+RjDTiF80LD2TiTdQhlW9mlWsDDbttsDlEcCmPVz6H3OUMCAwEAAQ", | |
18 /* | |
19 -----BEGIN RSA PRIVATE KEY----- | |
20 MIIBOgIBAAJBALlKJGIBHYU3rIWyGmiwUgK1BUUomSBgLzSngoE7gBc7mqgCsEbj | |
21 f9EJ5AvQIM1x7MhVsD5djpqHLcjiQlZFXfECAwEAAQJABEK7MXG7HwwXsH9W8h9T | |
22 03IcK+nyE3eCvmA3tQcMO/x93imcBdNiz7ev09wGIPDN3Kmauf70/QnjebuDSV9A | |
23 XQIhAN57+YUwDdGccxqZyj+wRuU5pA1rltIDBQByBLRGd6YjAiEA1TPE2PdWrSsp | |
24 S6VZoRPWIEebfH/ufWZEFfYKDwP9qtsCIEk3JSr2YGXNhXeIiq0g1oPSzzD3af+c | |
25 rMWzv+aPlgpfAiAvtSLiTg6GN3dJJxn0UmUC2iMv68ypIN4xb9n2XDVCKwIhAJkd | |
26 evN4qUcg1kCeQ4LZ5F4WUus+4kd2+Y1nnYQbOrE9 | |
27 -----END RSA PRIVATE KEY----- | |
28 */ | |
29 bar: "MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALlKJGIBHYU3rIWyGmiwUgK1BUUomSBgLzSngo E7gBc7mqgCsEbjf9EJ5AvQIM1x7MhVsD5djpqHLcjiQlZFXfECAwEAAQ" | |
30 }; | |
Wladimir Palant
2014/09/10 21:55:06
Given that no signatures are being verified here a
Thomas Greiner
2014/12/11 14:33:55
Done. That was a leftover from my previous approac
| |
31 | |
32 function beautifyKeys(str) | |
33 { | |
34 if (typeof str != "string") | |
35 return str; | |
36 | |
37 return str.replace(publickeys.foo, "foo-publickey", "g") | |
38 .replace(publickeys.bar, "bar-publickey", "g"); | |
39 } | |
40 | 4 |
41 function compareKeywords(text, expected) | 5 function compareKeywords(text, expected) |
42 { | 6 { |
43 for (let filter of [Filter.fromText(text), Filter.fromText("@@" + text)]) | 7 for (let filter of [Filter.fromText(text), Filter.fromText("@@" + text)]) |
44 { | 8 { |
45 let matcher = new Matcher(); | 9 let matcher = new Matcher(); |
46 let result = []; | 10 let result = []; |
47 for (let dummy of expected) | 11 for (let dummy of expected) |
48 { | 12 { |
49 keyword = matcher.findKeyword(filter); | 13 keyword = matcher.findKeyword(filter); |
(...skipping 13 matching lines...) Expand all Loading... | |
63 function checkMatch(filters, location, contentType, docDomain, thirdParty, sit ekey, expected) | 27 function checkMatch(filters, location, contentType, docDomain, thirdParty, sit ekey, expected) |
64 { | 28 { |
65 let matcher = new Matcher(); | 29 let matcher = new Matcher(); |
66 for (let filter of filters) | 30 for (let filter of filters) |
67 matcher.add(Filter.fromText(filter)); | 31 matcher.add(Filter.fromText(filter)); |
68 | 32 |
69 let result = matcher.matchesAny(location, contentType, docDomain, thirdParty , sitekey); | 33 let result = matcher.matchesAny(location, contentType, docDomain, thirdParty , sitekey); |
70 if (result) | 34 if (result) |
71 result = result.text; | 35 result = result.text; |
72 | 36 |
73 equal(beautifyKeys(result), beautifyKeys(expected), "match(" + location + ", " + contentType + ", " + docDomain + ", " + (thirdParty ? "third-party" : "firs t-party") + ", " + (sitekey ? beautifyKeys(sitekey) : "no-sitekey") + ") with:\n " + beautifyKeys(filters.join("\n"))); | 37 equal(result, expected, "match(" + location + ", " + contentType + ", " + do cDomain + ", " + (thirdParty ? "third-party" : "first-party") + ", " + (sitekey || "no-sitekey") + ") with:\n" + filters.join("\n")); |
74 | 38 |
75 let combinedMatcher = new CombinedMatcher(); | 39 let combinedMatcher = new CombinedMatcher(); |
76 for (let i = 0; i < 2; i++) | 40 for (let i = 0; i < 2; i++) |
77 { | 41 { |
78 for (let filter of filters) | 42 for (let filter of filters) |
79 combinedMatcher.add(Filter.fromText(filter)); | 43 combinedMatcher.add(Filter.fromText(filter)); |
80 | 44 |
81 let result = combinedMatcher.matchesAny(location, contentType, docDomain, thirdParty, sitekey); | 45 let result = combinedMatcher.matchesAny(location, contentType, docDomain, thirdParty, sitekey); |
82 if (result) | 46 if (result) |
83 result = result.text; | 47 result = result.text; |
84 | 48 |
85 equal(beautifyKeys(result), beautifyKeys(expected), "combinedMatch(" + loc ation + ", " + contentType + ", " + docDomain + ", " + (thirdParty ? "third-part y" : "first-party") + ", " + (sitekey ? beautifyKeys(sitekey) : "no-sitekey") + ") with:\n" + beautifyKeys(filters.join("\n"))); | 49 equal(result, expected, "combinedMatch(" + location + ", " + contentType + ", " + docDomain + ", " + (thirdParty ? "third-party" : "first-party") + ", " + (sitekey || "no-sitekey") + ") with:\n" + filters.join("\n")); |
86 | 50 |
87 // For next run: add whitelisting filters | 51 // For next run: add whitelisting filters |
88 filters = filters.map((text) => "@@" + text); | 52 filters = filters.map((text) => "@@" + text); |
89 if (expected) | 53 if (expected) |
90 expected = "@@" + expected; | 54 expected = "@@" + expected; |
91 } | 55 } |
92 } | 56 } |
93 | 57 |
94 function cacheCheck(matcher, location, contentType, docDomain, thirdParty, exp ected) | 58 function cacheCheck(matcher, location, contentType, docDomain, thirdParty, exp ected) |
95 { | 59 { |
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
181 checkMatch(["//abc/def", "abc$image", "abc$~image"], "http://abc/def", "IMAG E", null, false, null, "//abc/def"); | 145 checkMatch(["//abc/def", "abc$image", "abc$~image"], "http://abc/def", "IMAG E", null, false, null, "//abc/def"); |
182 checkMatch(["abc$image", "abc$~image", "//abc/def$image"], "http://abc/def", "IMAGE", null, false, null, "//abc/def$image"); | 146 checkMatch(["abc$image", "abc$~image", "//abc/def$image"], "http://abc/def", "IMAGE", null, false, null, "//abc/def$image"); |
183 checkMatch(["abc$image", "abc$~image", "//abc/def$script"], "http://abc/def" , "IMAGE", null, false, null, "abc$image"); | 147 checkMatch(["abc$image", "abc$~image", "//abc/def$script"], "http://abc/def" , "IMAGE", null, false, null, "abc$image"); |
184 checkMatch(["abc$domain=foo.com", "abc$domain=bar.com", "abc$domain=~foo.com |~bar.com"], "http://abc/def", "IMAGE", "foo.com", false, null, "abc$domain=foo. com"); | 148 checkMatch(["abc$domain=foo.com", "abc$domain=bar.com", "abc$domain=~foo.com |~bar.com"], "http://abc/def", "IMAGE", "foo.com", false, null, "abc$domain=foo. com"); |
185 checkMatch(["abc$domain=foo.com", "abc$domain=bar.com", "abc$domain=~foo.com |~bar.com"], "http://abc/def", "IMAGE", "bar.com", false, null, "abc$domain=bar. com"); | 149 checkMatch(["abc$domain=foo.com", "abc$domain=bar.com", "abc$domain=~foo.com |~bar.com"], "http://abc/def", "IMAGE", "bar.com", false, null, "abc$domain=bar. com"); |
186 checkMatch(["abc$domain=foo.com", "abc$domain=bar.com", "abc$domain=~foo.com |~bar.com"], "http://abc/def", "IMAGE", "baz.com", false, null, "abc$domain=~foo .com|~bar.com"); | 150 checkMatch(["abc$domain=foo.com", "abc$domain=bar.com", "abc$domain=~foo.com |~bar.com"], "http://abc/def", "IMAGE", "baz.com", false, null, "abc$domain=~foo .com|~bar.com"); |
187 checkMatch(["abc$domain=foo.com", "cba$domain=bar.com", "ccc$domain=~foo.com |~bar.com"], "http://abc/def", "IMAGE", "foo.com", false, null, "abc$domain=foo. com"); | 151 checkMatch(["abc$domain=foo.com", "cba$domain=bar.com", "ccc$domain=~foo.com |~bar.com"], "http://abc/def", "IMAGE", "foo.com", false, null, "abc$domain=foo. com"); |
188 checkMatch(["abc$domain=foo.com", "cba$domain=bar.com", "ccc$domain=~foo.com |~bar.com"], "http://abc/def", "IMAGE", "bar.com", false, null, null); | 152 checkMatch(["abc$domain=foo.com", "cba$domain=bar.com", "ccc$domain=~foo.com |~bar.com"], "http://abc/def", "IMAGE", "bar.com", false, null, null); |
189 checkMatch(["abc$domain=foo.com", "cba$domain=bar.com", "ccc$domain=~foo.com |~bar.com"], "http://abc/def", "IMAGE", "baz.com", false, null, null); | 153 checkMatch(["abc$domain=foo.com", "cba$domain=bar.com", "ccc$domain=~foo.com |~bar.com"], "http://abc/def", "IMAGE", "baz.com", false, null, null); |
190 checkMatch(["abc$domain=foo.com", "cba$domain=bar.com", "ccc$domain=~foo.com |~bar.com"], "http://ccc/def", "IMAGE", "baz.com", false, null, "ccc$domain=~foo .com|~bar.com"); | 154 checkMatch(["abc$domain=foo.com", "cba$domain=bar.com", "ccc$domain=~foo.com |~bar.com"], "http://ccc/def", "IMAGE", "baz.com", false, null, "ccc$domain=~foo .com|~bar.com"); |
191 checkMatch(["abc$sitekey=" + publickeys.foo, "abc$sitekey=" + publickeys.bar ], "http://abc/def", "IMAGE", "foo.com", false, publickeys.foo, "abc$sitekey=" + publickeys.foo); | 155 checkMatch(["abc$sitekey=foo-publickey", "abc$sitekey=bar-publickey"], "http ://abc/def", "IMAGE", "foo.com", false, "foo-publickey", "abc$sitekey=foo-public key"); |
192 checkMatch(["abc$sitekey=" + publickeys.foo, "abc$sitekey=" + publickeys.bar ], "http://abc/def", "IMAGE", "bar.com", false, publickeys.bar, "abc$sitekey=" + publickeys.bar); | 156 checkMatch(["abc$sitekey=foo-publickey", "abc$sitekey=bar-publickey"], "http ://abc/def", "IMAGE", "bar.com", false, "bar-publickey", "abc$sitekey=bar-public key"); |
193 checkMatch(["abc$sitekey=" + publickeys.foo, "cba$sitekey=" + publickeys.bar ], "http://abc/def", "IMAGE", "bar.com", false, publickeys.bar, null); | 157 checkMatch(["abc$sitekey=foo-publickey", "cba$sitekey=bar-publickey"], "http ://abc/def", "IMAGE", "bar.com", false, "bar-publickey", null); |
194 checkMatch(["abc$sitekey=" + publickeys.foo, "cba$sitekey=" + publickeys.bar ], "http://abc/def", "IMAGE", "baz.com", false, null, null); | 158 checkMatch(["abc$sitekey=foo-publickey", "cba$sitekey=bar-publickey"], "http ://abc/def", "IMAGE", "baz.com", false, null, null); |
Wladimir Palant
2014/09/10 21:55:06
Please test the scenarios where the filter combine
Thomas Greiner
2014/12/11 14:33:55
Done.
| |
159 checkMatch(["abc$sitekey=foo-publickey,domain=foo.com", "abc$sitekey=bar-pub lickey,domain=bar.com"], "http://abc/def", "IMAGE", "foo.com", false, "foo-publi ckey", "abc$sitekey=foo-publickey,domain=foo.com"); | |
160 checkMatch(["abc$sitekey=foo-publickey,domain=foo.com", "abc$sitekey=bar-pub lickey,domain=bar.com"], "http://abc/def", "IMAGE", "foo.com", false, "bar-publi ckey", null); | |
161 checkMatch(["abc$sitekey=foo-publickey,domain=foo.com", "abc$sitekey=bar-pub lickey,domain=bar.com"], "http://abc/def", "IMAGE", "bar.com", false, "foo-publi ckey", null); | |
162 checkMatch(["abc$sitekey=foo-publickey,domain=foo.com", "abc$sitekey=bar-pub lickey,domain=bar.com"], "http://abc/def", "IMAGE", "bar.com", false, "bar-publi ckey", "abc$sitekey=bar-publickey,domain=bar.com"); | |
195 }); | 163 }); |
196 | 164 |
197 test("Result cache checks", function() | 165 test("Result cache checks", function() |
198 { | 166 { |
199 let matcher = new CombinedMatcher(); | 167 let matcher = new CombinedMatcher(); |
200 matcher.add(Filter.fromText("abc$image")); | 168 matcher.add(Filter.fromText("abc$image")); |
201 matcher.add(Filter.fromText("abc$script")); | 169 matcher.add(Filter.fromText("abc$script")); |
202 matcher.add(Filter.fromText("abc$~image,~script,~document")); | 170 matcher.add(Filter.fromText("abc$~image,~script,~document")); |
203 matcher.add(Filter.fromText("cba$third-party")); | 171 matcher.add(Filter.fromText("cba$third-party")); |
204 matcher.add(Filter.fromText("cba$~third-party,~script")); | 172 matcher.add(Filter.fromText("cba$~third-party,~script")); |
(...skipping 14 matching lines...) Expand all Loading... | |
219 cacheCheck(matcher, "http://fed", "IMAGE", null, false, "http://fed$~third-p arty,~script"); | 187 cacheCheck(matcher, "http://fed", "IMAGE", null, false, "http://fed$~third-p arty,~script"); |
220 cacheCheck(matcher, "http://fed", "IMAGE", null, true, "http://fed$third-par ty"); | 188 cacheCheck(matcher, "http://fed", "IMAGE", null, true, "http://fed$third-par ty"); |
221 cacheCheck(matcher, "http://abc_cba", "DOCUMENT", null, false, "cba$~third-p arty,~script"); | 189 cacheCheck(matcher, "http://abc_cba", "DOCUMENT", null, false, "cba$~third-p arty,~script"); |
222 cacheCheck(matcher, "http://abc_cba", "DOCUMENT", null, true, "cba$third-par ty"); | 190 cacheCheck(matcher, "http://abc_cba", "DOCUMENT", null, true, "cba$third-par ty"); |
223 cacheCheck(matcher, "http://abc_cba", "SCRIPT", null, false, "abc$script"); | 191 cacheCheck(matcher, "http://abc_cba", "SCRIPT", null, false, "abc$script"); |
224 cacheCheck(matcher, "http://def?http://fed", "DOCUMENT", null, false, "http: //fed$~third-party,~script"); | 192 cacheCheck(matcher, "http://def?http://fed", "DOCUMENT", null, false, "http: //fed$~third-party,~script"); |
225 cacheCheck(matcher, "http://def?http://fed", "DOCUMENT", null, true, "http:/ /fed$third-party"); | 193 cacheCheck(matcher, "http://def?http://fed", "DOCUMENT", null, true, "http:/ /fed$third-party"); |
226 cacheCheck(matcher, "http://def?http://fed", "SCRIPT", null, false, "http:// def$script"); | 194 cacheCheck(matcher, "http://def?http://fed", "SCRIPT", null, false, "http:// def$script"); |
227 }); | 195 }); |
228 })(); | 196 })(); |
LEFT | RIGHT |