Left: | ||
Right: |
OLD | NEW |
---|---|
1 /* | 1 /* |
2 * This file is part of Adblock Plus <https://adblockplus.org/>, | 2 * This file is part of Adblock Plus <https://adblockplus.org/>, |
3 * Copyright (C) 2006-present eyeo GmbH | 3 * Copyright (C) 2006-present eyeo GmbH |
4 * | 4 * |
5 * Adblock Plus is free software: you can redistribute it and/or modify | 5 * Adblock Plus is free software: you can redistribute it and/or modify |
6 * it under the terms of the GNU General Public License version 3 as | 6 * it under the terms of the GNU General Public License version 3 as |
7 * published by the Free Software Foundation. | 7 * published by the Free Software Foundation. |
8 * | 8 * |
9 * Adblock Plus is distributed in the hope that it will be useful, | 9 * Adblock Plus is distributed in the hope that it will be useful, |
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
12 * GNU General Public License for more details. | 12 * GNU General Public License for more details. |
13 * | 13 * |
14 * You should have received a copy of the GNU General Public License | 14 * You should have received a copy of the GNU General Public License |
15 * along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>. | 15 * along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>. |
16 */ | 16 */ |
17 | 17 |
18 package org.adblockplus.libadblockplus.tests; | 18 package org.adblockplus.libadblockplus.tests; |
19 | 19 |
20 import android.util.Log; | |
21 | |
22 import org.adblockplus.libadblockplus.BaseFilterEngineTest; | |
20 import org.adblockplus.libadblockplus.Filter; | 23 import org.adblockplus.libadblockplus.Filter; |
21 import org.adblockplus.libadblockplus.FilterEngine; | 24 import org.adblockplus.libadblockplus.FilterEngine; |
22 import org.adblockplus.libadblockplus.MockFilterChangeCallback; | 25 import org.adblockplus.libadblockplus.MockFilterChangeCallback; |
23 import org.adblockplus.libadblockplus.Subscription; | 26 import org.adblockplus.libadblockplus.Subscription; |
24 | 27 |
25 import org.junit.Test; | 28 import org.junit.Test; |
26 | 29 |
27 import java.util.List; | 30 import java.util.List; |
28 | 31 |
29 public class FilterEngineTest extends BaseFilterEngineTest | 32 public class FilterEngineTest extends BaseFilterEngineTest |
30 { | 33 { |
34 private static final String TAG = FilterEngineTest.class.getSimpleName(); | |
35 | |
31 @Test | 36 @Test |
32 public void testFilterCreation() | 37 public void testFilterCreation() |
33 { | 38 { |
34 Filter filter1 = filterEngine.getFilter("foo"); | 39 Filter filter1 = filterEngine.getFilter("foo"); |
35 assertEquals(Filter.Type.BLOCKING, filter1.getType()); | 40 assertEquals(Filter.Type.BLOCKING, filter1.getType()); |
36 Filter filter2 = filterEngine.getFilter("@@foo"); | 41 Filter filter2 = filterEngine.getFilter("@@foo"); |
37 assertEquals(Filter.Type.EXCEPTION, filter2.getType()); | 42 assertEquals(Filter.Type.EXCEPTION, filter2.getType()); |
38 Filter filter3 = filterEngine.getFilter("example.com##foo"); | 43 Filter filter3 = filterEngine.getFilter("example.com##foo"); |
39 assertEquals(Filter.Type.ELEMHIDE, filter3.getType()); | 44 assertEquals(Filter.Type.ELEMHIDE, filter3.getType()); |
40 Filter filter4 = filterEngine.getFilter("example.com#@#foo"); | 45 Filter filter4 = filterEngine.getFilter("example.com#@#foo"); |
41 assertEquals(Filter.Type.ELEMHIDE_EXCEPTION, filter4.getType()); | 46 assertEquals(Filter.Type.ELEMHIDE_EXCEPTION, filter4.getType()); |
42 Filter filter5 = filterEngine.getFilter(" foo "); | 47 Filter filter5 = filterEngine.getFilter(" foo "); |
43 assertEquals(filter1, filter5); | 48 assertEquals(filter1, filter5); |
44 } | 49 } |
45 | 50 |
46 @Test | 51 @Test |
47 public void testAddRemoveFilters() | 52 public void testAddRemoveFilters() |
48 { | 53 { |
49 while (filterEngine.getListedFilters().size() > 0) | 54 while (filterEngine.getListedFilters().size() > 0) |
50 { | 55 { |
56 int prev = filterEngine.getListedFilters().size(); | |
anton
2018/08/24 12:25:04
Can you please explain what's happening here?
Is i
René Jeschke
2018/08/27 20:02:15
There was a change in the way subscriptions work i
| |
51 filterEngine.getListedFilters().get(0).removeFromList(); | 57 filterEngine.getListedFilters().get(0).removeFromList(); |
58 if (prev == filterEngine.getListedFilters().size()) | |
59 { | |
60 Log.e(TAG, "Failed to clear listed filters."); | |
61 } | |
52 } | 62 } |
53 | 63 |
54 assertEquals(0, filterEngine.getListedFilters().size()); | 64 assertEquals(0, filterEngine.getListedFilters().size()); |
55 Filter filter = filterEngine.getFilter("foo"); | 65 Filter filter = filterEngine.getFilter("foo"); |
56 assertEquals(0, filterEngine.getListedFilters().size()); | 66 assertEquals(0, filterEngine.getListedFilters().size()); |
57 assertFalse(filter.isListed()); | 67 assertFalse(filter.isListed()); |
58 | 68 |
59 filter.addToList(); | 69 filter.addToList(); |
60 assertEquals(1, filterEngine.getListedFilters().size()); | 70 assertEquals(1, filterEngine.getListedFilters().size()); |
61 assertEquals(filter, filterEngine.getListedFilters().get(0)); | 71 assertEquals(filter, filterEngine.getListedFilters().get(0)); |
62 assertTrue(filter.isListed()); | 72 assertTrue(filter.isListed()); |
63 | 73 |
64 filter.addToList(); | 74 filter.addToList(); |
65 assertEquals(1, filterEngine.getListedFilters().size()); | 75 assertEquals(1, filterEngine.getListedFilters().size()); |
66 assertEquals(filter, filterEngine.getListedFilters().get(0)); | 76 assertEquals(filter, filterEngine.getListedFilters().get(0)); |
67 assertTrue(filter.isListed()); | 77 assertTrue(filter.isListed()); |
68 | 78 |
69 filter.removeFromList(); | 79 filter.removeFromList(); |
70 assertEquals(0, filterEngine.getListedFilters().size()); | 80 assertEquals(0, filterEngine.getListedFilters().size()); |
71 assertFalse(filter.isListed()); | 81 assertFalse(filter.isListed()); |
72 | 82 |
73 filter.removeFromList(); | 83 filter.removeFromList(); |
74 assertEquals(0, filterEngine.getListedFilters().size()); | 84 assertEquals(0, filterEngine.getListedFilters().size()); |
75 assertFalse(filter.isListed()); | 85 assertFalse(filter.isListed()); |
76 } | 86 } |
77 | 87 |
78 @Test | 88 @Test |
89 public void testAddedSubscriptionIsEnabled() | |
90 { | |
91 Subscription subscription = filterEngine.getSubscription("foo"); | |
92 assertFalse(subscription.isDisabled()); | |
93 } | |
94 | |
95 @Test | |
96 public void testDisablingSubscriptionDisablesItAndFiresEvent() | |
97 { | |
98 Subscription subscription = filterEngine.getSubscription("foo"); | |
99 MockFilterChangeCallback callback = new MockFilterChangeCallback("subscripti on.disabled", "url","foo"); | |
100 filterEngine.setFilterChangeCallback(callback); | |
101 assertFalse(subscription.isDisabled()); | |
102 subscription.setDisabled(true); | |
103 assertEquals(1, callback.getTimesCalled()); | |
104 assertTrue(subscription.isDisabled()); | |
105 filterEngine.removeFilterChangeCallback(); | |
106 } | |
107 | |
108 @Test | |
109 public void testEnablingSubscriptionEnablesItAndFiresEvent() | |
110 { | |
111 Subscription subscription = filterEngine.getSubscription("foo"); | |
112 assertFalse(subscription.isDisabled()); | |
113 subscription.setDisabled(true); | |
114 assertTrue(subscription.isDisabled()); | |
115 | |
116 MockFilterChangeCallback callback = new MockFilterChangeCallback("subscripti on.disabled", "url", "foo"); | |
117 filterEngine.setFilterChangeCallback(callback); | |
118 subscription.setDisabled(false); | |
119 assertEquals(1, callback.getTimesCalled()); | |
120 assertFalse(subscription.isDisabled()); | |
121 filterEngine.removeFilterChangeCallback(); | |
122 } | |
123 | |
124 @Test | |
79 public void testAddRemoveSubscriptions() | 125 public void testAddRemoveSubscriptions() |
80 { | 126 { |
81 while (filterEngine.getListedSubscriptions().size() > 0) | 127 while (filterEngine.getListedSubscriptions().size() > 0) |
anton
2018/08/24 12:25:04
copy-paste from above. Can you create separate fun
René Jeschke
2018/08/27 20:02:15
Done.
| |
82 { | 128 { |
129 int prev = filterEngine.getListedSubscriptions().size(); | |
83 filterEngine.getListedSubscriptions().get(0).removeFromList(); | 130 filterEngine.getListedSubscriptions().get(0).removeFromList(); |
131 if (prev == filterEngine.getListedSubscriptions().size()) | |
132 { | |
133 Log.e(TAG, "Failed to clear listed subscriptions."); | |
134 break; | |
135 } | |
84 } | 136 } |
85 | 137 |
86 assertEquals(0, filterEngine.getListedSubscriptions().size()); | 138 assertEquals(0, filterEngine.getListedSubscriptions().size()); |
87 Subscription subscription = filterEngine.getSubscription("foo"); | 139 Subscription subscription = filterEngine.getSubscription("foo"); |
88 assertEquals(0, filterEngine.getListedSubscriptions().size()); | 140 assertEquals(0, filterEngine.getListedSubscriptions().size()); |
89 assertFalse(subscription.isListed()); | 141 assertFalse(subscription.isListed()); |
90 subscription.addToList(); | 142 subscription.addToList(); |
91 assertEquals(1, filterEngine.getListedSubscriptions().size()); | 143 assertEquals(1, filterEngine.getListedSubscriptions().size()); |
92 assertEquals(subscription, filterEngine.getListedSubscriptions().get(0)); | 144 assertEquals(subscription, filterEngine.getListedSubscriptions().get(0)); |
93 assertTrue(subscription.isListed()); | 145 assertTrue(subscription.isListed()); |
(...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
317 { | 369 { |
318 "http://ads.com/frame/", | 370 "http://ads.com/frame/", |
319 "http://example.org/", | 371 "http://example.org/", |
320 "http://example.com/" | 372 "http://example.com/" |
321 }); | 373 }); |
322 assertNotNull(match5); | 374 assertNotNull(match5); |
323 assertEquals(Filter.Type.EXCEPTION, match5.getType()); | 375 assertEquals(Filter.Type.EXCEPTION, match5.getType()); |
324 } | 376 } |
325 | 377 |
326 @Test | 378 @Test |
327 public void testFirstRunFlag() | |
328 { | |
329 assertFalse(filterEngine.isFirstRun()); | |
330 } | |
331 | |
332 @Test | |
333 public void testSetRemoveFilterChangeCallback() | 379 public void testSetRemoveFilterChangeCallback() |
334 { | 380 { |
335 MockFilterChangeCallback mockFilterChangeCallback = new MockFilterChangeCall back(0); | 381 MockFilterChangeCallback callback = new MockFilterChangeCallback("subscripti on.added", "defaults", "blocking"); |
336 | 382 |
337 filterEngine.setFilterChangeCallback(mockFilterChangeCallback); | 383 filterEngine.setFilterChangeCallback(callback); |
338 filterEngine.getFilter("foo").addToList(); | 384 Filter filter = filterEngine.getFilter("foo"); |
339 assertEquals(1, mockFilterChangeCallback.getTimesCalled()); | 385 assertFalse(filter.isListed()); |
386 filter.addToList(); | |
387 assertEquals(1, callback.getTimesCalled()); | |
340 | 388 |
341 filterEngine.removeFilterChangeCallback(); | 389 filterEngine.removeFilterChangeCallback(); |
342 filterEngine.getFilter("foo").removeFromList(); | 390 callback.clearCheckValues(); |
343 assertEquals(1, mockFilterChangeCallback.getTimesCalled()); | 391 filter.removeFromList(); |
392 assertFalse(filter.isListed()); | |
393 assertEquals(1, callback.getTimesCalled()); | |
344 } | 394 } |
345 | 395 |
346 @Test | 396 @Test |
347 public void testDocumentWhitelisting() | 397 public void testDocumentWhitelisting() |
348 { | 398 { |
349 filterEngine.getFilter("@@||example.org^$document").addToList(); | 399 filterEngine.getFilter("@@||example.org^$document").addToList(); |
350 filterEngine.getFilter("@@||example.com^$document,domain=example.de").addToL ist(); | 400 filterEngine.getFilter("@@||example.com^$document,domain=example.de").addToL ist(); |
351 | 401 |
352 String[] emptyArray = new String[] | 402 String[] emptyArray = new String[] |
353 { | 403 { |
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
478 listedSubscriptions = filterEngine.getListedSubscriptions(); | 528 listedSubscriptions = filterEngine.getListedSubscriptions(); |
479 for (Subscription eachSubscription : listedSubscriptions) | 529 for (Subscription eachSubscription : listedSubscriptions) |
480 { | 530 { |
481 if (eachSubscription.isAcceptableAds()) | 531 if (eachSubscription.isAcceptableAds()) |
482 { | 532 { |
483 assertFalse(eachSubscription.isDisabled()); | 533 assertFalse(eachSubscription.isDisabled()); |
484 } | 534 } |
485 } | 535 } |
486 } | 536 } |
487 } | 537 } |
OLD | NEW |