OLD | NEW |
1 (function() | 1 (function() |
2 { | 2 { |
3 module("Filter listener", { | 3 module("Filter listener", { |
4 setup: function() | 4 setup: function() |
5 { | 5 { |
6 prepareFilterComponents.call(this, true); | 6 prepareFilterComponents.call(this, true); |
7 preparePrefs.call(this); | 7 preparePrefs.call(this); |
8 | 8 |
9 FilterStorage.addSubscription(Subscription.fromURL("~fl~")); | 9 FilterStorage.addSubscription(Subscription.fromURL("~fl~")); |
10 FilterStorage.addSubscription(Subscription.fromURL("~wl~")); | 10 FilterStorage.addSubscription(Subscription.fromURL("~wl~")); |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
43 | 43 |
44 let ElemHideGlobal = getModuleGlobal("elemHide"); | 44 let ElemHideGlobal = getModuleGlobal("elemHide"); |
45 result.elemhide = []; | 45 result.elemhide = []; |
46 for (let key in ElemHideGlobal.filterByKey) | 46 for (let key in ElemHideGlobal.filterByKey) |
47 result.elemhide.push(ElemHideGlobal.filterByKey[key].text); | 47 result.elemhide.push(ElemHideGlobal.filterByKey[key].text); |
48 | 48 |
49 result.elemhideexception = []; | 49 result.elemhideexception = []; |
50 for (let selector in ElemHideGlobal.exceptions) | 50 for (let selector in ElemHideGlobal.exceptions) |
51 { | 51 { |
52 let list = ElemHideGlobal.exceptions[selector]; | 52 let list = ElemHideGlobal.exceptions[selector]; |
53 for (let i = 0; i < list.length; i++) | 53 for (let exception of list) |
54 result.elemhideexception.push(list[i].text); | 54 result.elemhideexception.push(exception.text); |
55 } | 55 } |
56 | 56 |
57 for (let type of ["blacklist", "whitelist", "elemhide", "elemhideexception"]
) | 57 let CSSRulesGlobal = getModuleGlobal("cssRules"); |
| 58 result.cssrule = []; |
| 59 for (let filterText in CSSRulesGlobal.filters) |
| 60 result.cssrule.push(filterText); |
| 61 |
| 62 let types = ["blacklist", "whitelist", "elemhide", "elemhideexception", |
| 63 "cssrule"]; |
| 64 for (let type of types) |
58 if (!(type in expected)) | 65 if (!(type in expected)) |
59 expected[type] = []; | 66 expected[type] = []; |
60 | 67 |
61 deepEqual(result, expected, text); | 68 deepEqual(result, expected, text); |
62 } | 69 } |
63 | 70 |
64 test("Adding and removing filters", function() | 71 test("Adding and removing filters", function() |
65 { | 72 { |
66 let filter1 = Filter.fromText("filter1"); | 73 let filter1 = Filter.fromText("filter1"); |
67 let filter2 = Filter.fromText("@@filter2"); | 74 let filter2 = Filter.fromText("@@filter2"); |
68 let filter3 = Filter.fromText("#filter3"); | 75 let filter3 = Filter.fromText("#filter3"); |
69 let filter4 = Filter.fromText("!filter4"); | 76 let filter4 = Filter.fromText("!filter4"); |
70 let filter5 = Filter.fromText("#@#filter5"); | 77 let filter5 = Filter.fromText("#@#filter5"); |
| 78 let filter6 = Filter.fromText("example.com##[-abp-properties='filter6']"); |
| 79 let filter7 = Filter.fromText("example.com#@#[-abp-properties='filter7']"); |
71 | 80 |
72 FilterStorage.addFilter(filter1); | 81 FilterStorage.addFilter(filter1); |
73 checkKnownFilters("add filter1", {blacklist: [filter1.text]}); | 82 checkKnownFilters("add filter1", {blacklist: [filter1.text]}); |
74 FilterStorage.addFilter(filter2); | 83 FilterStorage.addFilter(filter2); |
75 checkKnownFilters("add @@filter2", {blacklist: [filter1.text], whitelist: [f
ilter2.text]}); | 84 checkKnownFilters("add @@filter2", {blacklist: [filter1.text], whitelist: [f
ilter2.text]}); |
76 FilterStorage.addFilter(filter3); | 85 FilterStorage.addFilter(filter3); |
77 checkKnownFilters("add #filter3", {blacklist: [filter1.text], whitelist: [fi
lter2.text], elemhide: [filter3.text]}); | 86 checkKnownFilters("add #filter3", {blacklist: [filter1.text], whitelist: [fi
lter2.text], elemhide: [filter3.text]}); |
78 FilterStorage.addFilter(filter4); | 87 FilterStorage.addFilter(filter4); |
79 checkKnownFilters("add !filter4", {blacklist: [filter1.text], whitelist: [fi
lter2.text], elemhide: [filter3.text]}); | 88 checkKnownFilters("add !filter4", {blacklist: [filter1.text], whitelist: [fi
lter2.text], elemhide: [filter3.text]}); |
80 FilterStorage.addFilter(filter5); | 89 FilterStorage.addFilter(filter5); |
81 checkKnownFilters("add #@#filter5", {blacklist: [filter1.text], whitelist: [
filter2.text], elemhide: [filter3.text], elemhideexception: [filter5.text]}); | 90 checkKnownFilters("add #@#filter5", {blacklist: [filter1.text], whitelist: [
filter2.text], elemhide: [filter3.text], elemhideexception: [filter5.text]}); |
| 91 FilterStorage.addFilter(filter6); |
| 92 checkKnownFilters("add example.com##[-abp-properties='filter6']", {blacklist
: [filter1.text], whitelist: [filter2.text], elemhide: [filter3.text], elemhidee
xception: [filter5.text], cssrule: [filter6.text]}); |
| 93 FilterStorage.addFilter(filter7); |
| 94 checkKnownFilters("add example.com#@#[-abp-properties='filter7']", {blacklis
t: [filter1.text], whitelist: [filter2.text], elemhide: [filter3.text], elemhide
exception: [filter5.text, filter7.text], cssrule: [filter6.text]}); |
82 | 95 |
83 FilterStorage.removeFilter(filter1); | 96 FilterStorage.removeFilter(filter1); |
84 checkKnownFilters("remove filter1", {whitelist: [filter2.text], elemhide: [f
ilter3.text], elemhideexception: [filter5.text]}); | 97 checkKnownFilters("remove filter1", {whitelist: [filter2.text], elemhide: [f
ilter3.text], elemhideexception: [filter5.text, filter7.text], cssrule: [filter6
.text]}); |
85 filter2.disabled = true; | 98 filter2.disabled = true; |
86 checkKnownFilters("disable filter2", {elemhide: [filter3.text], elemhideexce
ption: [filter5.text]}); | 99 checkKnownFilters("disable filter2", {elemhide: [filter3.text], elemhideexce
ption: [filter5.text, filter7.text], cssrule: [filter6.text]}); |
87 FilterStorage.removeFilter(filter2); | 100 FilterStorage.removeFilter(filter2); |
88 checkKnownFilters("remove filter2", {elemhide: [filter3.text], elemhideexcep
tion: [filter5.text]}); | 101 checkKnownFilters("remove filter2", {elemhide: [filter3.text], elemhideexcep
tion: [filter5.text, filter7.text], cssrule: [filter6.text]}); |
89 FilterStorage.removeFilter(filter4); | 102 FilterStorage.removeFilter(filter4); |
90 checkKnownFilters("remove filter4", {elemhide: [filter3.text], elemhideexcep
tion: [filter5.text]}); | 103 checkKnownFilters("remove filter4", {elemhide: [filter3.text], elemhideexcep
tion: [filter5.text, filter7.text], cssrule: [filter6.text]}); |
91 }); | 104 }); |
92 | 105 |
93 test("Disabling/enabling filters not in the list", function() | 106 test("Disabling/enabling filters not in the list", function() |
94 { | 107 { |
95 let filter1 = Filter.fromText("filter1"); | 108 let filter1 = Filter.fromText("filter1"); |
96 let filter2 = Filter.fromText("@@filter2"); | 109 let filter2 = Filter.fromText("@@filter2"); |
97 let filter3 = Filter.fromText("#filter3"); | 110 let filter3 = Filter.fromText("#filter3"); |
98 let filter4 = Filter.fromText("#@#filter4"); | 111 let filter4 = Filter.fromText("#@#filter4"); |
| 112 let filter5 = Filter.fromText("example.com##[-abp-properties='filter5']"); |
| 113 let filter6 = Filter.fromText("example.com#@#[-abp-properties='filter6']"); |
99 | 114 |
100 filter1.disabled = true; | 115 filter1.disabled = true; |
101 checkKnownFilters("disable filter1 while not in list", {}); | 116 checkKnownFilters("disable filter1 while not in list", {}); |
102 filter1.disabled = false; | 117 filter1.disabled = false; |
103 checkKnownFilters("enable filter1 while not in list", {}); | 118 checkKnownFilters("enable filter1 while not in list", {}); |
104 | 119 |
105 filter2.disabled = true; | 120 filter2.disabled = true; |
106 checkKnownFilters("disable @@filter2 while not in list", {}); | 121 checkKnownFilters("disable @@filter2 while not in list", {}); |
107 filter2.disabled = false; | 122 filter2.disabled = false; |
108 checkKnownFilters("enable @@filter2 while not in list", {}); | 123 checkKnownFilters("enable @@filter2 while not in list", {}); |
109 | 124 |
110 filter3.disabled = true; | 125 filter3.disabled = true; |
111 checkKnownFilters("disable #filter3 while not in list", {}); | 126 checkKnownFilters("disable #filter3 while not in list", {}); |
112 filter3.disabled = false; | 127 filter3.disabled = false; |
113 checkKnownFilters("enable #filter3 while not in list", {}); | 128 checkKnownFilters("enable #filter3 while not in list", {}); |
114 | 129 |
115 filter4.disabled = true; | 130 filter4.disabled = true; |
116 checkKnownFilters("disable #@#filter4 while not in list", {}); | 131 checkKnownFilters("disable #@#filter4 while not in list", {}); |
117 filter4.disabled = false; | 132 filter4.disabled = false; |
118 checkKnownFilters("enable #@#filter4 while not in list", {}); | 133 checkKnownFilters("enable #@#filter4 while not in list", {}); |
| 134 |
| 135 filter5.disabled = true; |
| 136 checkKnownFilters("disable example.com##[-abp-properties='filter5'] while no
t in list", {}); |
| 137 filter5.disabled = false; |
| 138 checkKnownFilters("enable example.com##[-abp-properties='filter5'] while not
in list", {}); |
| 139 |
| 140 filter6.disabled = true; |
| 141 checkKnownFilters("disable example.com#@#[-abp-properties='filter6'] while n
ot in list", {}); |
| 142 filter6.disabled = false; |
| 143 checkKnownFilters("enable example.com#@#[-abp-properties='filter6'] while no
t in list", {}); |
119 }); | 144 }); |
120 | 145 |
121 test("Filter subscription operations", function() | 146 test("Filter subscription operations", function() |
122 { | 147 { |
123 let filter1 = Filter.fromText("filter1"); | 148 let filter1 = Filter.fromText("filter1"); |
124 let filter2 = Filter.fromText("@@filter2"); | 149 let filter2 = Filter.fromText("@@filter2"); |
125 filter2.disabled = true; | 150 filter2.disabled = true; |
126 let filter3 = Filter.fromText("#filter3"); | 151 let filter3 = Filter.fromText("#filter3"); |
127 let filter4 = Filter.fromText("!filter4"); | 152 let filter4 = Filter.fromText("!filter4"); |
128 let filter5 = Filter.fromText("#@#filter5"); | 153 let filter5 = Filter.fromText("#@#filter5"); |
| 154 let filter6 = Filter.fromText("example.com##[-abp-properties='filter6']"); |
| 155 let filter7 = Filter.fromText("example.com#@#[-abp-properties='filter7']"); |
129 | 156 |
130 let subscription = Subscription.fromURL("http://test1/"); | 157 let subscription = Subscription.fromURL("http://test1/"); |
131 subscription.filters = [filter1, filter2, filter3, filter4, filter5]; | 158 subscription.filters = [filter1, filter2, filter3, filter4, filter5, filter6
, filter7]; |
132 | 159 |
133 FilterStorage.addSubscription(subscription); | 160 FilterStorage.addSubscription(subscription); |
134 checkKnownFilters("add subscription with filter1, @@filter2, #filter3, !filt
er4, #@#filter5", {blacklist: [filter1.text], elemhide: [filter3.text], elemhide
exception: [filter5.text]}); | 161 checkKnownFilters("add subscription with filter1, @@filter2, #filter3, !filt
er4, #@#filter5, example.com##[-abp-properties='filter6'], example.com#@#[-abp-p
roperties='filter7']", {blacklist: [filter1.text], elemhide: [filter3.text], ele
mhideexception: [filter5.text, filter7.text], cssrule: [filter6.text]}); |
135 | 162 |
136 filter2.disabled = false; | 163 filter2.disabled = false; |
137 checkKnownFilters("enable @@filter2", {blacklist: [filter1.text], whitelist:
[filter2.text], elemhide: [filter3.text], elemhideexception: [filter5.text]}); | 164 checkKnownFilters("enable @@filter2", {blacklist: [filter1.text], whitelist:
[filter2.text], elemhide: [filter3.text], elemhideexception: [filter5.text, fil
ter7.text], cssrule: [filter6.text]}); |
138 | 165 |
139 FilterStorage.addFilter(filter1); | 166 FilterStorage.addFilter(filter1); |
140 checkKnownFilters("add filter1", {blacklist: [filter1.text], whitelist: [fil
ter2.text], elemhide: [filter3.text], elemhideexception: [filter5.text]}); | 167 checkKnownFilters("add filter1", {blacklist: [filter1.text], whitelist: [fil
ter2.text], elemhide: [filter3.text], elemhideexception: [filter5.text, filter7.
text], cssrule: [filter6.text]}); |
141 | 168 |
142 FilterStorage.updateSubscriptionFilters(subscription, [filter4]); | 169 FilterStorage.updateSubscriptionFilters(subscription, [filter4]); |
143 checkKnownFilters("change subscription filters to filter4", {blacklist: [fil
ter1.text]}); | 170 checkKnownFilters("change subscription filters to filter4", {blacklist: [fil
ter1.text]}); |
144 | 171 |
145 FilterStorage.removeFilter(filter1); | 172 FilterStorage.removeFilter(filter1); |
146 checkKnownFilters("remove filter1", {}); | 173 checkKnownFilters("remove filter1", {}); |
147 | 174 |
148 FilterStorage.updateSubscriptionFilters(subscription, [filter1, filter2]); | 175 FilterStorage.updateSubscriptionFilters(subscription, [filter1, filter2]); |
149 checkKnownFilters("change subscription filters to filter1, filter2", {blackl
ist: [filter1.text], whitelist: [filter2.text]}); | 176 checkKnownFilters("change subscription filters to filter1, filter2", {blackl
ist: [filter1.text], whitelist: [filter2.text]}); |
150 | 177 |
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
244 subscription3.disabled = true; | 271 subscription3.disabled = true; |
245 checkKnownFilters("disable exception rules", {blacklist: [filter1.text, filt
er3.text], whitelist: [filter2.text]}); | 272 checkKnownFilters("disable exception rules", {blacklist: [filter1.text, filt
er3.text], whitelist: [filter2.text]}); |
246 | 273 |
247 FilterStorage.removeSubscription(subscription4); | 274 FilterStorage.removeSubscription(subscription4); |
248 checkKnownFilters("remove subscription from the list", {blacklist: [filter1.
text]}); | 275 checkKnownFilters("remove subscription from the list", {blacklist: [filter1.
text]}); |
249 | 276 |
250 subscription3.disabled = false; | 277 subscription3.disabled = false; |
251 checkKnownFilters("enable exception rules", {blacklist: [filter1.text], whit
elist: [filter2.text]}); | 278 checkKnownFilters("enable exception rules", {blacklist: [filter1.text], whit
elist: [filter2.text]}); |
252 }); | 279 }); |
253 })(); | 280 })(); |
OLD | NEW |