Index: libadblockplus-android-tests/src/org/adblockplus/libadblockplus/tests/FilterEngineTest.java |
diff --git a/libadblockplus-android-tests/src/org/adblockplus/libadblockplus/tests/FilterEngineTest.java b/libadblockplus-android-tests/src/org/adblockplus/libadblockplus/tests/FilterEngineTest.java |
index c1c74ba74fbae17b0e906f136177d9ae0c4ed077..9c71fc53f01c777b2153f2c51f15ffdc2dd37ba4 100644 |
--- a/libadblockplus-android-tests/src/org/adblockplus/libadblockplus/tests/FilterEngineTest.java |
+++ b/libadblockplus-android-tests/src/org/adblockplus/libadblockplus/tests/FilterEngineTest.java |
@@ -17,7 +17,6 @@ |
package org.adblockplus.libadblockplus.tests; |
-import android.util.Log; |
import org.adblockplus.libadblockplus.Filter; |
import org.adblockplus.libadblockplus.FilterEngine; |
import org.adblockplus.libadblockplus.MockFilterChangeCallback; |
@@ -27,358 +26,362 @@ import org.junit.Test; |
public class FilterEngineTest extends FilterEngineGenericTest |
{ |
- @Test |
- public void testFilterCreation() |
+ @Test |
+ public void testFilterCreation() |
+ { |
+ Filter filter1 = filterEngine.getFilter("foo"); |
+ assertEquals(Filter.Type.BLOCKING, filter1.getType()); |
+ Filter filter2 = filterEngine.getFilter("@@foo"); |
+ assertEquals(Filter.Type.EXCEPTION, filter2.getType()); |
+ Filter filter3 = filterEngine.getFilter("example.com##foo"); |
+ assertEquals(Filter.Type.ELEMHIDE, filter3.getType()); |
+ Filter filter4 = filterEngine.getFilter("example.com#@#foo"); |
+ assertEquals(Filter.Type.ELEMHIDE_EXCEPTION, filter4.getType()); |
+ Filter filter5 = filterEngine.getFilter(" foo "); |
+ assertEquals(filter1, filter5); |
+ } |
+ |
+ @Test |
+ public void testAddRemoveFilters() |
+ { |
+ while (filterEngine.getListedFilters().size() > 0) |
{ |
- Filter filter1 = filterEngine.getFilter("foo"); |
- assertEquals(Filter.Type.BLOCKING, filter1.getType()); |
- Filter filter2 = filterEngine.getFilter("@@foo"); |
- assertEquals(Filter.Type.EXCEPTION, filter2.getType()); |
- Filter filter3 = filterEngine.getFilter("example.com##foo"); |
- assertEquals(Filter.Type.ELEMHIDE, filter3.getType()); |
- Filter filter4 = filterEngine.getFilter("example.com#@#foo"); |
- assertEquals(Filter.Type.ELEMHIDE_EXCEPTION, filter4.getType()); |
- Filter filter5 = filterEngine.getFilter(" foo "); |
- assertEquals(filter1, filter5); |
+ filterEngine.getListedFilters().get(0).removeFromList(); |
} |
- @Test |
- public void testAddRemoveFilters() |
+ assertEquals(0, filterEngine.getListedFilters().size()); |
+ Filter filter = filterEngine.getFilter("foo"); |
+ assertEquals(0, filterEngine.getListedFilters().size()); |
+ assertFalse(filter.isListed()); |
+ |
+ filter.addToList(); |
+ assertEquals(1, filterEngine.getListedFilters().size()); |
+ assertEquals(filter, filterEngine.getListedFilters().get(0)); |
+ assertTrue(filter.isListed()); |
+ |
+ filter.addToList(); |
+ assertEquals(1, filterEngine.getListedFilters().size()); |
+ assertEquals(filter, filterEngine.getListedFilters().get(0)); |
+ assertTrue(filter.isListed()); |
+ |
+ filter.removeFromList(); |
+ assertEquals(0, filterEngine.getListedFilters().size()); |
+ assertFalse(filter.isListed()); |
+ |
+ filter.removeFromList(); |
+ assertEquals(0, filterEngine.getListedFilters().size()); |
+ assertFalse(filter.isListed()); |
+ } |
+ |
+ @Test |
+ public void testAddRemoveSubscriptions() |
+ { |
+ while (filterEngine.getListedSubscriptions().size() > 0) |
{ |
- while (filterEngine.getListedFilters().size() > 0) |
- filterEngine.getListedFilters().get(0).removeFromList(); |
- |
- assertEquals(0, filterEngine.getListedFilters().size()); |
- Filter filter = filterEngine.getFilter("foo"); |
- assertEquals(0, filterEngine.getListedFilters().size()); |
- assertFalse(filter.isListed()); |
- |
- filter.addToList(); |
- assertEquals(1, filterEngine.getListedFilters().size()); |
- assertEquals(filter, filterEngine.getListedFilters().get(0)); |
- assertTrue(filter.isListed()); |
- |
- filter.addToList(); |
- assertEquals(1, filterEngine.getListedFilters().size()); |
- assertEquals(filter, filterEngine.getListedFilters().get(0)); |
- assertTrue(filter.isListed()); |
- |
- filter.removeFromList(); |
- assertEquals(0, filterEngine.getListedFilters().size()); |
- assertFalse(filter.isListed()); |
- |
- filter.removeFromList(); |
- assertEquals(0, filterEngine.getListedFilters().size()); |
- assertFalse(filter.isListed()); |
+ filterEngine.getListedSubscriptions().get(0).removeFromList(); |
} |
- @Test |
- public void testAddRemoveSubscriptions() |
- { |
- while (filterEngine.getListedSubscriptions().size() > 0) |
- filterEngine.getListedSubscriptions().get(0).removeFromList(); |
- |
- assertEquals(0, filterEngine.getListedSubscriptions().size()); |
- Subscription subscription = filterEngine.getSubscription("foo"); |
- assertEquals(0, filterEngine.getListedSubscriptions().size()); |
- assertFalse(subscription.isListed()); |
- subscription.addToList(); |
- assertEquals(1, filterEngine.getListedSubscriptions().size()); |
- assertEquals(subscription, filterEngine.getListedSubscriptions().get(0)); |
- assertTrue(subscription.isListed()); |
- subscription.addToList(); |
- assertEquals(1, filterEngine.getListedSubscriptions().size()); |
- assertEquals(subscription, filterEngine.getListedSubscriptions().get(0)); |
- assertTrue(subscription.isListed()); |
- subscription.removeFromList(); |
- assertEquals(0, filterEngine.getListedSubscriptions().size()); |
- assertFalse(subscription.isListed()); |
- subscription.removeFromList(); |
- assertEquals(0, filterEngine.getListedSubscriptions().size()); |
- assertFalse(subscription.isListed()); |
- } |
- |
- @Test |
- public void testSubscriptionUpdates() |
- { |
- Subscription subscription = filterEngine.getSubscription("foo"); |
- assertFalse(subscription.isUpdating()); |
- subscription.updateFilters(); |
- } |
- |
- @Test |
- public void testMatches() |
- { |
- filterEngine.getFilter("adbanner.gif").addToList(); |
- filterEngine.getFilter("@@notbanner.gif").addToList(); |
- filterEngine.getFilter("tpbanner.gif$third-party").addToList(); |
- filterEngine.getFilter("fpbanner.gif$~third-party").addToList(); |
- filterEngine.getFilter("combanner.gif$domain=example.com").addToList(); |
- filterEngine.getFilter("orgbanner.gif$domain=~example.com").addToList(); |
- |
- Filter match1 = filterEngine.matches( |
- "http://example.org/foobar.gif", |
- FilterEngine.ContentType.IMAGE, |
- ""); |
- assertNull(match1); |
- |
- Filter match2 = filterEngine.matches( |
- "http://example.org/adbanner.gif", |
- FilterEngine.ContentType.IMAGE, |
- ""); |
- assertNotNull(match2); |
- assertEquals(Filter.Type.BLOCKING, match2.getType()); |
- |
- Filter match3 = filterEngine.matches( |
- "http://example.org/notbanner.gif", |
- FilterEngine.ContentType.IMAGE, |
- ""); |
- assertNotNull(match3); |
- assertEquals(Filter.Type.EXCEPTION, match3.getType()); |
- |
- Filter match4 = filterEngine.matches( |
- "http://example.org/notbanner.gif", |
- FilterEngine.ContentType.IMAGE, ""); |
- assertNotNull(match4); |
- assertEquals(Filter.Type.EXCEPTION, match4.getType()); |
- |
- Filter match5 = filterEngine.matches( |
- "http://example.org/tpbanner.gif", |
- FilterEngine.ContentType.IMAGE, |
- "http://example.org/"); |
- assertNull(match5); |
- |
- Filter match6 = filterEngine.matches( |
- "http://example.org/fpbanner.gif", |
- FilterEngine.ContentType.IMAGE, |
- "http://example.org/"); |
- assertNotNull(match6); |
- assertEquals(Filter.Type.BLOCKING, match6.getType()); |
- |
- Filter match7 = filterEngine.matches( |
- "http://example.org/tpbanner.gif", |
- FilterEngine.ContentType.IMAGE, |
- "http://example.com/"); |
- assertNotNull(match7); |
- assertEquals(Filter.Type.BLOCKING, match7.getType()); |
- |
- Filter match8 = filterEngine.matches( |
- "http://example.org/fpbanner.gif", |
- FilterEngine.ContentType.IMAGE, |
- "http://example.com/"); |
- assertNull(match8); |
- |
- Filter match9 = filterEngine.matches( |
- "http://example.org/combanner.gif", |
- FilterEngine.ContentType.IMAGE, |
- "http://example.com/"); |
- assertNotNull(match9); |
- assertEquals(Filter.Type.BLOCKING, match9.getType()); |
- |
- Filter match10 = filterEngine.matches( |
- "http://example.org/combanner.gif", |
- FilterEngine.ContentType.IMAGE, |
- "http://example.org/"); |
- assertNull(match10); |
- |
- Filter match11 = filterEngine.matches( |
- "http://example.org/orgbanner.gif", |
- FilterEngine.ContentType.IMAGE, |
- "http://example.com/"); |
- assertNull(match11); |
- |
- Filter match12 = filterEngine.matches( |
- "http://example.org/orgbanner.gif", |
- FilterEngine.ContentType.IMAGE, |
- "http://example.org/"); |
- assertNotNull(match12); |
- assertEquals(Filter.Type.BLOCKING, match12.getType()); |
- } |
- |
- @Test |
- public void testMatchesOnWhitelistedDomain() |
- { |
- filterEngine.getFilter("adbanner.gif").addToList(); |
- filterEngine.getFilter("@@||example.org^$document").addToList(); |
- |
- Filter match1 = filterEngine.matches( |
- "http://ads.com/adbanner.gif", |
- FilterEngine.ContentType.IMAGE, |
- "http://example.com/"); |
- assertNotNull(match1); |
- assertEquals(Filter.Type.BLOCKING, match1.getType()); |
- |
- Filter match2 = filterEngine.matches( |
- "http://ads.com/adbanner.gif", |
- FilterEngine.ContentType.IMAGE, |
- "http://example.org/"); |
- assertNotNull(match2); |
- assertEquals(Filter.Type.EXCEPTION, match2.getType()); |
- } |
- |
- @Test |
- public void testMatchesNestedFrameRequest() |
- { |
- filterEngine.getFilter("adbanner.gif").addToList(); |
- filterEngine.getFilter("@@adbanner.gif$domain=example.org").addToList(); |
- |
- Filter match1 = filterEngine.matches( |
- "http://ads.com/adbanner.gif", |
- FilterEngine.ContentType.IMAGE, |
- new String[] |
- { |
- "http://ads.com/frame/", |
- "http://example.com/" |
- }); |
- assertNotNull(match1); |
- assertEquals(Filter.Type.BLOCKING, match1.getType()); |
- |
- Filter match2 = filterEngine.matches( |
- "http://ads.com/adbanner.gif", |
- FilterEngine.ContentType.IMAGE, |
- new String[] |
- { |
- "http://ads.com/frame/", |
- "http://example.org/" |
- }); |
- assertNotNull(match2); |
- assertEquals(Filter.Type.EXCEPTION, match2.getType()); |
- |
- Filter match3 = filterEngine.matches( |
- "http://ads.com/adbanner.gif", |
- FilterEngine.ContentType.IMAGE, |
- new String[] |
- { |
- "http://example.org/", |
- "http://ads.com/frame/" |
- }); |
- assertNotNull(match3); |
- assertEquals(Filter.Type.BLOCKING, match3.getType()); |
- } |
- |
- @Test |
- public void testMatchesNestedFrameOnWhitelistedDomain() |
- { |
- filterEngine.getFilter("adbanner.gif").addToList(); |
- filterEngine.getFilter("@@||example.org^$document,domain=ads.com").addToList(); |
- |
- Filter match1 = filterEngine.matches( |
- "http://ads.com/adbanner.gif", |
- FilterEngine.ContentType.IMAGE, |
- new String[] |
- { |
- "http://ads.com/frame/", |
- "http://example.com/" |
- }); |
- assertNotNull(match1); |
- assertEquals(Filter.Type.BLOCKING, match1.getType()); |
- |
- Filter match2 = filterEngine.matches( |
- "http://ads.com/adbanner.gif", |
- FilterEngine.ContentType.IMAGE, |
- new String[] |
- { |
- "http://ads.com/frame/", |
- "http://example.org/" |
- }); |
- assertNotNull(match2); |
- assertEquals(Filter.Type.EXCEPTION, match2.getType()); |
- |
- Filter match3 = filterEngine.matches( |
- "http://ads.com/adbanner.gif", |
- FilterEngine.ContentType.IMAGE, |
- new String[] |
- { |
- "http://example.org/" |
- }); |
- assertNotNull(match3); |
- assertEquals(Filter.Type.BLOCKING, match3.getType()); |
- |
- Filter match4 = filterEngine.matches( |
- "http://ads.com/adbanner.gif", |
- FilterEngine.ContentType.IMAGE, |
- new String[] |
- { |
- "http://example.org/", |
- "http://ads.com/frame/" |
- }); |
- assertNotNull(match4); |
- assertEquals(Filter.Type.BLOCKING, match4.getType()); |
- |
- Filter match5 = filterEngine.matches( |
- "http://ads.com/adbanner.gif", |
- FilterEngine.ContentType.IMAGE, |
- new String[] |
- { |
- "http://ads.com/frame/", |
- "http://example.org/", |
- "http://example.com/" |
- }); |
- assertNotNull(match5); |
- assertEquals(Filter.Type.EXCEPTION, match5.getType()); |
- } |
- |
- @Test |
- public void testFirstRunFlag() |
- { |
- assertFalse(filterEngine.isFirstRun()); |
- } |
- |
- @Test |
- public void testSetRemoveFilterChangeCallback() |
- { |
- MockFilterChangeCallback mockFilterChangeCallback = new MockFilterChangeCallback(0); |
- |
- filterEngine.setFilterChangeCallback(mockFilterChangeCallback); |
- filterEngine.getFilter("foo").addToList(); |
- assertEquals(1, mockFilterChangeCallback.getTimesCalled()); |
- |
- filterEngine.removeFilterChangeCallback(); |
- filterEngine.getFilter("foo").removeFromList(); |
- assertEquals(1, mockFilterChangeCallback.getTimesCalled()); |
- } |
- |
- @Test |
- public void testDocumentWhitelisting() |
- { |
- filterEngine.getFilter("@@||example.org^$document").addToList(); |
- filterEngine.getFilter("@@||example.com^$document,domain=example.de").addToList(); |
- |
- String[] emptyArray = new String[] |
+ assertEquals(0, filterEngine.getListedSubscriptions().size()); |
+ Subscription subscription = filterEngine.getSubscription("foo"); |
+ assertEquals(0, filterEngine.getListedSubscriptions().size()); |
+ assertFalse(subscription.isListed()); |
+ subscription.addToList(); |
+ assertEquals(1, filterEngine.getListedSubscriptions().size()); |
+ assertEquals(subscription, filterEngine.getListedSubscriptions().get(0)); |
+ assertTrue(subscription.isListed()); |
+ subscription.addToList(); |
+ assertEquals(1, filterEngine.getListedSubscriptions().size()); |
+ assertEquals(subscription, filterEngine.getListedSubscriptions().get(0)); |
+ assertTrue(subscription.isListed()); |
+ subscription.removeFromList(); |
+ assertEquals(0, filterEngine.getListedSubscriptions().size()); |
+ assertFalse(subscription.isListed()); |
+ subscription.removeFromList(); |
+ assertEquals(0, filterEngine.getListedSubscriptions().size()); |
+ assertFalse(subscription.isListed()); |
+ } |
+ |
+ @Test |
+ public void testSubscriptionUpdates() |
+ { |
+ Subscription subscription = filterEngine.getSubscription("foo"); |
+ assertFalse(subscription.isUpdating()); |
+ subscription.updateFilters(); |
+ } |
+ |
+ @Test |
+ public void testMatches() |
+ { |
+ filterEngine.getFilter("adbanner.gif").addToList(); |
+ filterEngine.getFilter("@@notbanner.gif").addToList(); |
+ filterEngine.getFilter("tpbanner.gif$third-party").addToList(); |
+ filterEngine.getFilter("fpbanner.gif$~third-party").addToList(); |
+ filterEngine.getFilter("combanner.gif$domain=example.com").addToList(); |
+ filterEngine.getFilter("orgbanner.gif$domain=~example.com").addToList(); |
+ |
+ Filter match1 = filterEngine.matches( |
+ "http://example.org/foobar.gif", |
+ FilterEngine.ContentType.IMAGE, |
+ ""); |
+ assertNull(match1); |
+ |
+ Filter match2 = filterEngine.matches( |
+ "http://example.org/adbanner.gif", |
+ FilterEngine.ContentType.IMAGE, |
+ ""); |
+ assertNotNull(match2); |
+ assertEquals(Filter.Type.BLOCKING, match2.getType()); |
+ |
+ Filter match3 = filterEngine.matches( |
+ "http://example.org/notbanner.gif", |
+ FilterEngine.ContentType.IMAGE, |
+ ""); |
+ assertNotNull(match3); |
+ assertEquals(Filter.Type.EXCEPTION, match3.getType()); |
+ |
+ Filter match4 = filterEngine.matches( |
+ "http://example.org/notbanner.gif", |
+ FilterEngine.ContentType.IMAGE, ""); |
+ assertNotNull(match4); |
+ assertEquals(Filter.Type.EXCEPTION, match4.getType()); |
+ |
+ Filter match5 = filterEngine.matches( |
+ "http://example.org/tpbanner.gif", |
+ FilterEngine.ContentType.IMAGE, |
+ "http://example.org/"); |
+ assertNull(match5); |
+ |
+ Filter match6 = filterEngine.matches( |
+ "http://example.org/fpbanner.gif", |
+ FilterEngine.ContentType.IMAGE, |
+ "http://example.org/"); |
+ assertNotNull(match6); |
+ assertEquals(Filter.Type.BLOCKING, match6.getType()); |
+ |
+ Filter match7 = filterEngine.matches( |
+ "http://example.org/tpbanner.gif", |
+ FilterEngine.ContentType.IMAGE, |
+ "http://example.com/"); |
+ assertNotNull(match7); |
+ assertEquals(Filter.Type.BLOCKING, match7.getType()); |
+ |
+ Filter match8 = filterEngine.matches( |
+ "http://example.org/fpbanner.gif", |
+ FilterEngine.ContentType.IMAGE, |
+ "http://example.com/"); |
+ assertNull(match8); |
+ |
+ Filter match9 = filterEngine.matches( |
+ "http://example.org/combanner.gif", |
+ FilterEngine.ContentType.IMAGE, |
+ "http://example.com/"); |
+ assertNotNull(match9); |
+ assertEquals(Filter.Type.BLOCKING, match9.getType()); |
+ |
+ Filter match10 = filterEngine.matches( |
+ "http://example.org/combanner.gif", |
+ FilterEngine.ContentType.IMAGE, |
+ "http://example.org/"); |
+ assertNull(match10); |
+ |
+ Filter match11 = filterEngine.matches( |
+ "http://example.org/orgbanner.gif", |
+ FilterEngine.ContentType.IMAGE, |
+ "http://example.com/"); |
+ assertNull(match11); |
+ |
+ Filter match12 = filterEngine.matches( |
+ "http://example.org/orgbanner.gif", |
+ FilterEngine.ContentType.IMAGE, |
+ "http://example.org/"); |
+ assertNotNull(match12); |
+ assertEquals(Filter.Type.BLOCKING, match12.getType()); |
+ } |
+ |
+ @Test |
+ public void testMatchesOnWhitelistedDomain() |
+ { |
+ filterEngine.getFilter("adbanner.gif").addToList(); |
+ filterEngine.getFilter("@@||example.org^$document").addToList(); |
+ |
+ Filter match1 = filterEngine.matches( |
+ "http://ads.com/adbanner.gif", |
+ FilterEngine.ContentType.IMAGE, |
+ "http://example.com/"); |
+ assertNotNull(match1); |
+ assertEquals(Filter.Type.BLOCKING, match1.getType()); |
+ |
+ Filter match2 = filterEngine.matches( |
+ "http://ads.com/adbanner.gif", |
+ FilterEngine.ContentType.IMAGE, |
+ "http://example.org/"); |
+ assertNotNull(match2); |
+ assertEquals(Filter.Type.EXCEPTION, match2.getType()); |
+ } |
+ |
+ @Test |
+ public void testMatchesNestedFrameRequest() |
+ { |
+ filterEngine.getFilter("adbanner.gif").addToList(); |
+ filterEngine.getFilter("@@adbanner.gif$domain=example.org").addToList(); |
+ |
+ Filter match1 = filterEngine.matches( |
+ "http://ads.com/adbanner.gif", |
+ FilterEngine.ContentType.IMAGE, |
+ new String[] |
{ |
- }; |
- |
- assertTrue(filterEngine.isDocumentWhitelisted("http://example.org", emptyArray)); |
- assertFalse(filterEngine.isDocumentWhitelisted("http://example.co.uk", emptyArray)); |
- assertFalse(filterEngine.isDocumentWhitelisted("http://example.com", emptyArray)); |
- |
- String[] documentUrls1 = new String[] |
+ "http://ads.com/frame/", |
+ "http://example.com/" |
+ }); |
+ assertNotNull(match1); |
+ assertEquals(Filter.Type.BLOCKING, match1.getType()); |
+ |
+ Filter match2 = filterEngine.matches( |
+ "http://ads.com/adbanner.gif", |
+ FilterEngine.ContentType.IMAGE, |
+ new String[] |
{ |
- "http://example.de" |
- }; |
- assertTrue(filterEngine.isDocumentWhitelisted("http://example.com", documentUrls1)); |
- assertFalse(filterEngine.isDocumentWhitelisted("http://example.co.uk", documentUrls1)); |
- } |
- |
- @Test |
- public void testElemhideWhitelisting() |
- { |
- filterEngine.getFilter("@@||example.org^$elemhide").addToList(); |
- filterEngine.getFilter("@@||example.com^$elemhide,domain=example.de").addToList(); |
- |
- String[] emptyArray = new String[] |
+ "http://ads.com/frame/", |
+ "http://example.org/" |
+ }); |
+ assertNotNull(match2); |
+ assertEquals(Filter.Type.EXCEPTION, match2.getType()); |
+ |
+ Filter match3 = filterEngine.matches( |
+ "http://ads.com/adbanner.gif", |
+ FilterEngine.ContentType.IMAGE, |
+ new String[] |
{ |
- }; |
- |
- assertTrue(filterEngine.isElemhideWhitelisted("http://example.org", emptyArray)); |
- assertFalse(filterEngine.isElemhideWhitelisted("http://example.co.uk", emptyArray)); |
- assertFalse(filterEngine.isElemhideWhitelisted("http://example.com", emptyArray)); |
- |
- String[] documentUrls1 = new String[] |
+ "http://example.org/", |
+ "http://ads.com/frame/" |
+ }); |
+ assertNotNull(match3); |
+ assertEquals(Filter.Type.BLOCKING, match3.getType()); |
+ } |
+ |
+ @Test |
+ public void testMatchesNestedFrameOnWhitelistedDomain() |
+ { |
+ filterEngine.getFilter("adbanner.gif").addToList(); |
+ filterEngine.getFilter("@@||example.org^$document,domain=ads.com").addToList(); |
+ |
+ Filter match1 = filterEngine.matches( |
+ "http://ads.com/adbanner.gif", |
+ FilterEngine.ContentType.IMAGE, |
+ new String[] |
{ |
- "http://example.de" |
- }; |
- assertTrue(filterEngine.isElemhideWhitelisted("http://example.com", documentUrls1)); |
- assertFalse(filterEngine.isElemhideWhitelisted("http://example.co.uk", documentUrls1)); |
- } |
+ "http://ads.com/frame/", |
+ "http://example.com/" |
+ }); |
+ assertNotNull(match1); |
+ assertEquals(Filter.Type.BLOCKING, match1.getType()); |
+ |
+ Filter match2 = filterEngine.matches( |
+ "http://ads.com/adbanner.gif", |
+ FilterEngine.ContentType.IMAGE, |
+ new String[] |
+ { |
+ "http://ads.com/frame/", |
+ "http://example.org/" |
+ }); |
+ assertNotNull(match2); |
+ assertEquals(Filter.Type.EXCEPTION, match2.getType()); |
+ |
+ Filter match3 = filterEngine.matches( |
+ "http://ads.com/adbanner.gif", |
+ FilterEngine.ContentType.IMAGE, |
+ new String[] |
+ { |
+ "http://example.org/" |
+ }); |
+ assertNotNull(match3); |
+ assertEquals(Filter.Type.BLOCKING, match3.getType()); |
+ |
+ Filter match4 = filterEngine.matches( |
+ "http://ads.com/adbanner.gif", |
+ FilterEngine.ContentType.IMAGE, |
+ new String[] |
+ { |
+ "http://example.org/", |
+ "http://ads.com/frame/" |
+ }); |
+ assertNotNull(match4); |
+ assertEquals(Filter.Type.BLOCKING, match4.getType()); |
+ |
+ Filter match5 = filterEngine.matches( |
+ "http://ads.com/adbanner.gif", |
+ FilterEngine.ContentType.IMAGE, |
+ new String[] |
+ { |
+ "http://ads.com/frame/", |
+ "http://example.org/", |
+ "http://example.com/" |
+ }); |
+ assertNotNull(match5); |
+ assertEquals(Filter.Type.EXCEPTION, match5.getType()); |
+ } |
+ |
+ @Test |
+ public void testFirstRunFlag() |
+ { |
+ assertTrue(filterEngine.isFirstRun()); |
+ } |
+ |
+ @Test |
+ public void testSetRemoveFilterChangeCallback() |
+ { |
+ MockFilterChangeCallback mockFilterChangeCallback = new MockFilterChangeCallback(0); |
+ |
+ filterEngine.setFilterChangeCallback(mockFilterChangeCallback); |
+ filterEngine.getFilter("foo").addToList(); |
+ assertEquals(1, mockFilterChangeCallback.getTimesCalled()); |
+ |
+ filterEngine.removeFilterChangeCallback(); |
+ filterEngine.getFilter("foo").removeFromList(); |
+ assertEquals(1, mockFilterChangeCallback.getTimesCalled()); |
+ } |
+ |
+ @Test |
+ public void testDocumentWhitelisting() |
+ { |
+ filterEngine.getFilter("@@||example.org^$document").addToList(); |
+ filterEngine.getFilter("@@||example.com^$document,domain=example.de").addToList(); |
+ |
+ String[] emptyArray = new String[] |
+ { |
+ }; |
+ |
+ assertTrue(filterEngine.isDocumentWhitelisted("http://example.org", emptyArray)); |
+ assertFalse(filterEngine.isDocumentWhitelisted("http://example.co.uk", emptyArray)); |
+ assertFalse(filterEngine.isDocumentWhitelisted("http://example.com", emptyArray)); |
+ |
+ String[] documentUrls1 = new String[] |
+ { |
+ "http://example.de" |
+ }; |
+ assertTrue(filterEngine.isDocumentWhitelisted("http://example.com", documentUrls1)); |
+ assertFalse(filterEngine.isDocumentWhitelisted("http://example.co.uk", documentUrls1)); |
+ } |
+ |
+ @Test |
+ public void testElemhideWhitelisting() |
+ { |
+ filterEngine.getFilter("@@||example.org^$elemhide").addToList(); |
+ filterEngine.getFilter("@@||example.com^$elemhide,domain=example.de").addToList(); |
+ |
+ String[] emptyArray = new String[] |
+ { |
+ }; |
+ |
+ assertTrue(filterEngine.isElemhideWhitelisted("http://example.org", emptyArray)); |
+ assertFalse(filterEngine.isElemhideWhitelisted("http://example.co.uk", emptyArray)); |
+ assertFalse(filterEngine.isElemhideWhitelisted("http://example.com", emptyArray)); |
+ |
+ String[] documentUrls1 = new String[] |
+ { |
+ "http://example.de" |
+ }; |
+ assertTrue(filterEngine.isElemhideWhitelisted("http://example.com", documentUrls1)); |
+ assertFalse(filterEngine.isElemhideWhitelisted("http://example.co.uk", documentUrls1)); |
+ } |
} |