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 this.removeListedSubscriptions(); |
50 { | |
51 filterEngine.getListedFilters().get(0).removeFromList(); | |
52 } | |
53 | 55 |
54 assertEquals(0, filterEngine.getListedFilters().size()); | 56 assertEquals(0, filterEngine.getListedFilters().size()); |
55 Filter filter = filterEngine.getFilter("foo"); | 57 Filter filter = filterEngine.getFilter("foo"); |
56 assertEquals(0, filterEngine.getListedFilters().size()); | 58 assertEquals(0, filterEngine.getListedFilters().size()); |
57 assertFalse(filter.isListed()); | 59 assertFalse(filter.isListed()); |
58 | 60 |
59 filter.addToList(); | 61 filter.addToList(); |
60 assertEquals(1, filterEngine.getListedFilters().size()); | 62 assertEquals(1, filterEngine.getListedFilters().size()); |
61 assertEquals(filter, filterEngine.getListedFilters().get(0)); | 63 assertEquals(filter, filterEngine.getListedFilters().get(0)); |
62 assertTrue(filter.isListed()); | 64 assertTrue(filter.isListed()); |
63 | 65 |
64 filter.addToList(); | 66 filter.addToList(); |
65 assertEquals(1, filterEngine.getListedFilters().size()); | 67 assertEquals(1, filterEngine.getListedFilters().size()); |
66 assertEquals(filter, filterEngine.getListedFilters().get(0)); | 68 assertEquals(filter, filterEngine.getListedFilters().get(0)); |
67 assertTrue(filter.isListed()); | 69 assertTrue(filter.isListed()); |
68 | 70 |
69 filter.removeFromList(); | 71 filter.removeFromList(); |
70 assertEquals(0, filterEngine.getListedFilters().size()); | 72 assertEquals(0, filterEngine.getListedFilters().size()); |
71 assertFalse(filter.isListed()); | 73 assertFalse(filter.isListed()); |
72 | 74 |
73 filter.removeFromList(); | 75 filter.removeFromList(); |
74 assertEquals(0, filterEngine.getListedFilters().size()); | 76 assertEquals(0, filterEngine.getListedFilters().size()); |
75 assertFalse(filter.isListed()); | 77 assertFalse(filter.isListed()); |
76 } | 78 } |
77 | 79 |
78 @Test | 80 @Test |
| 81 public void testAddedSubscriptionIsEnabled() |
| 82 { |
| 83 Subscription subscription = filterEngine.getSubscription("foo"); |
| 84 assertFalse(subscription.isDisabled()); |
| 85 } |
| 86 |
| 87 @Test |
| 88 public void testDisablingSubscriptionDisablesItAndFiresEvent() |
| 89 { |
| 90 Subscription subscription = filterEngine.getSubscription("foo"); |
| 91 MockFilterChangeCallback callback = new MockFilterChangeCallback("subscripti
on.disabled", "url","foo"); |
| 92 filterEngine.setFilterChangeCallback(callback); |
| 93 assertFalse(subscription.isDisabled()); |
| 94 subscription.setDisabled(true); |
| 95 assertEquals(1, callback.getTimesCalled()); |
| 96 assertTrue(subscription.isDisabled()); |
| 97 filterEngine.removeFilterChangeCallback(); |
| 98 } |
| 99 |
| 100 @Test |
| 101 public void testEnablingSubscriptionEnablesItAndFiresEvent() |
| 102 { |
| 103 Subscription subscription = filterEngine.getSubscription("foo"); |
| 104 assertFalse(subscription.isDisabled()); |
| 105 subscription.setDisabled(true); |
| 106 assertTrue(subscription.isDisabled()); |
| 107 |
| 108 MockFilterChangeCallback callback = new MockFilterChangeCallback("subscripti
on.disabled", "url", "foo"); |
| 109 filterEngine.setFilterChangeCallback(callback); |
| 110 subscription.setDisabled(false); |
| 111 assertEquals(1, callback.getTimesCalled()); |
| 112 assertFalse(subscription.isDisabled()); |
| 113 filterEngine.removeFilterChangeCallback(); |
| 114 } |
| 115 |
| 116 @Test |
79 public void testAddRemoveSubscriptions() | 117 public void testAddRemoveSubscriptions() |
80 { | 118 { |
81 while (filterEngine.getListedSubscriptions().size() > 0) | 119 this.removeListedSubscriptions(); |
82 { | |
83 filterEngine.getListedSubscriptions().get(0).removeFromList(); | |
84 } | |
85 | 120 |
86 assertEquals(0, filterEngine.getListedSubscriptions().size()); | 121 assertEquals(0, filterEngine.getListedSubscriptions().size()); |
87 Subscription subscription = filterEngine.getSubscription("foo"); | 122 Subscription subscription = filterEngine.getSubscription("foo"); |
88 assertEquals(0, filterEngine.getListedSubscriptions().size()); | 123 assertEquals(0, filterEngine.getListedSubscriptions().size()); |
89 assertFalse(subscription.isListed()); | 124 assertFalse(subscription.isListed()); |
90 subscription.addToList(); | 125 subscription.addToList(); |
91 assertEquals(1, filterEngine.getListedSubscriptions().size()); | 126 assertEquals(1, filterEngine.getListedSubscriptions().size()); |
92 assertEquals(subscription, filterEngine.getListedSubscriptions().get(0)); | 127 assertEquals(subscription, filterEngine.getListedSubscriptions().get(0)); |
93 assertTrue(subscription.isListed()); | 128 assertTrue(subscription.isListed()); |
94 subscription.addToList(); | 129 subscription.addToList(); |
(...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
317 { | 352 { |
318 "http://ads.com/frame/", | 353 "http://ads.com/frame/", |
319 "http://example.org/", | 354 "http://example.org/", |
320 "http://example.com/" | 355 "http://example.com/" |
321 }); | 356 }); |
322 assertNotNull(match5); | 357 assertNotNull(match5); |
323 assertEquals(Filter.Type.EXCEPTION, match5.getType()); | 358 assertEquals(Filter.Type.EXCEPTION, match5.getType()); |
324 } | 359 } |
325 | 360 |
326 @Test | 361 @Test |
327 public void testFirstRunFlag() | |
328 { | |
329 assertFalse(filterEngine.isFirstRun()); | |
330 } | |
331 | |
332 @Test | |
333 public void testSetRemoveFilterChangeCallback() | 362 public void testSetRemoveFilterChangeCallback() |
334 { | 363 { |
335 MockFilterChangeCallback mockFilterChangeCallback = new MockFilterChangeCall
back(0); | 364 MockFilterChangeCallback callback = new MockFilterChangeCallback("subscripti
on.added", "defaults", "blocking"); |
336 | 365 |
337 filterEngine.setFilterChangeCallback(mockFilterChangeCallback); | 366 filterEngine.setFilterChangeCallback(callback); |
338 filterEngine.getFilter("foo").addToList(); | 367 Filter filter = filterEngine.getFilter("foo"); |
339 assertEquals(1, mockFilterChangeCallback.getTimesCalled()); | 368 assertFalse(filter.isListed()); |
| 369 filter.addToList(); |
| 370 assertEquals(1, callback.getTimesCalled()); |
340 | 371 |
341 filterEngine.removeFilterChangeCallback(); | 372 filterEngine.removeFilterChangeCallback(); |
342 filterEngine.getFilter("foo").removeFromList(); | 373 callback.clearCheckValues(); |
343 assertEquals(1, mockFilterChangeCallback.getTimesCalled()); | 374 filter.removeFromList(); |
| 375 assertFalse(filter.isListed()); |
| 376 assertEquals(1, callback.getTimesCalled()); |
344 } | 377 } |
345 | 378 |
346 @Test | 379 @Test |
347 public void testDocumentWhitelisting() | 380 public void testDocumentWhitelisting() |
348 { | 381 { |
349 filterEngine.getFilter("@@||example.org^$document").addToList(); | 382 filterEngine.getFilter("@@||example.org^$document").addToList(); |
350 filterEngine.getFilter("@@||example.com^$document,domain=example.de").addToL
ist(); | 383 filterEngine.getFilter("@@||example.com^$document,domain=example.de").addToL
ist(); |
351 | 384 |
352 String[] emptyArray = new String[] | 385 String[] emptyArray = new String[] |
353 { | 386 { |
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
478 listedSubscriptions = filterEngine.getListedSubscriptions(); | 511 listedSubscriptions = filterEngine.getListedSubscriptions(); |
479 for (Subscription eachSubscription : listedSubscriptions) | 512 for (Subscription eachSubscription : listedSubscriptions) |
480 { | 513 { |
481 if (eachSubscription.isAcceptableAds()) | 514 if (eachSubscription.isAcceptableAds()) |
482 { | 515 { |
483 assertFalse(eachSubscription.isDisabled()); | 516 assertFalse(eachSubscription.isDisabled()); |
484 } | 517 } |
485 } | 518 } |
486 } | 519 } |
487 } | 520 } |
OLD | NEW |