| Index: libadblockplus-android-tests/src/org/adblockplus/libadblockplus/tests/AndroidWebRequestResourceWrapperTest.java |
| diff --git a/libadblockplus-android-tests/src/org/adblockplus/libadblockplus/tests/AndroidWebRequestResourceWrapperTest.java b/libadblockplus-android-tests/src/org/adblockplus/libadblockplus/tests/AndroidWebRequestResourceWrapperTest.java |
| deleted file mode 100644 |
| index 1970e677ca261d07c6134744d45c541b460a85ae..0000000000000000000000000000000000000000 |
| --- a/libadblockplus-android-tests/src/org/adblockplus/libadblockplus/tests/AndroidWebRequestResourceWrapperTest.java |
| +++ /dev/null |
| @@ -1,337 +0,0 @@ |
| -/* |
| - * This file is part of Adblock Plus <https://adblockplus.org/>, |
| - * Copyright (C) 2006-present eyeo GmbH |
| - * |
| - * Adblock Plus is free software: you can redistribute it and/or modify |
| - * it under the terms of the GNU General Public License version 3 as |
| - * published by the Free Software Foundation. |
| - * |
| - * Adblock Plus is distributed in the hope that it will be useful, |
| - * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| - * GNU General Public License for more details. |
| - * |
| - * You should have received a copy of the GNU General Public License |
| - * along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>. |
| - */ |
| - |
| -package org.adblockplus.libadblockplus.tests; |
| - |
| -import android.os.SystemClock; |
| - |
| -import org.adblockplus.libadblockplus.HeaderEntry; |
| -import org.adblockplus.libadblockplus.ServerResponse; |
| -import org.adblockplus.libadblockplus.Subscription; |
| -import org.adblockplus.libadblockplus.WebRequest; |
| -import org.adblockplus.libadblockplus.android.AndroidWebRequest; |
| -import org.adblockplus.libadblockplus.android.AndroidWebRequestResourceWrapper; |
| -import org.adblockplus.libadblockplus.android.Utils; |
| -import org.adblockplus.libadblockplus.tests.test.R; |
| -import org.junit.Test; |
| - |
| -import java.util.Collection; |
| -import java.util.HashMap; |
| -import java.util.HashSet; |
| -import java.util.LinkedList; |
| -import java.util.List; |
| -import java.util.Map; |
| -import java.util.Set; |
| - |
| -public class AndroidWebRequestResourceWrapperTest extends BaseFilterEngineTest |
| -{ |
| - private static final int UPDATE_SUBSCRIPTIONS_WAIT_DELAY_MS = 5 * 1000; // 5s |
| - |
| - private static final class TestRequest extends AndroidWebRequest |
| - { |
| - private List<String> urls = new LinkedList<String>(); |
| - |
| - public List<String> getUrls() |
| - { |
| - return urls; |
| - } |
| - |
| - @Override |
| - public ServerResponse httpGET(String urlStr, List<HeaderEntry> headers) |
| - { |
| - urls.add(urlStr); |
| - return super.httpGET(urlStr, headers); |
| - } |
| - } |
| - |
| - // in-memory storage for testing only |
| - private static final class TestStorage implements AndroidWebRequestResourceWrapper.Storage |
| - { |
| - private Set<String> interceptedUrls = new HashSet<String>(); |
| - |
| - public Set<String> getInterceptedUrls() |
| - { |
| - return interceptedUrls; |
| - } |
| - |
| - @Override |
| - public synchronized void put(String url) |
| - { |
| - interceptedUrls.add(url); |
| - } |
| - |
| - @Override |
| - public synchronized boolean contains(String url) |
| - { |
| - return interceptedUrls.contains(url); |
| - } |
| - } |
| - |
| - private static final class TestWrapperListener implements AndroidWebRequestResourceWrapper.Listener |
| - { |
| - private Map<String, Integer> urlsToResourceId = new HashMap<String, Integer>(); |
| - |
| - public Map<String, Integer> getUrlsToResourceId() |
| - { |
| - return urlsToResourceId; |
| - } |
| - |
| - @Override |
| - public void onIntercepted(String url, int resourceId) |
| - { |
| - urlsToResourceId.put(url, resourceId); |
| - } |
| - } |
| - |
| - private TestRequest request; |
| - private Map<String, Integer> preloadMap; |
| - private TestStorage storage; |
| - private AndroidWebRequestResourceWrapper wrapper; |
| - private TestWrapperListener wrapperListener; |
| - |
| - @Override |
| - protected void setUp() throws Exception |
| - { |
| - request = new TestRequest(); |
| - preloadMap = new HashMap<String, Integer>(); |
| - storage = new TestStorage(); |
| - wrapper = new AndroidWebRequestResourceWrapper( |
| - getInstrumentation().getContext(), request, preloadMap, storage); |
| - wrapperListener = new TestWrapperListener(); |
| - wrapper.setListener(wrapperListener); |
| - |
| - super.setUp(); |
| - } |
| - |
| - @Override |
| - protected WebRequest createWebRequest() |
| - { |
| - return wrapper; |
| - } |
| - |
| - private void updateSubscriptions() |
| - { |
| - for (final Subscription s : this.filterEngine.getListedSubscriptions()) |
| - { |
| - try |
| - { |
| - s.updateFilters(); |
| - } |
| - finally |
| - { |
| - s.dispose(); |
| - } |
| - } |
| - } |
| - |
| - private List<String> getUrlsListWithoutParams(Collection<String> urlWithParams) |
| - { |
| - List<String> list = new LinkedList<String>(); |
| - for (String eachUrl : urlWithParams) |
| - { |
| - list.add(Utils.getUrlWithoutParams(eachUrl)); |
| - } |
| - return list; |
| - } |
| - |
| - private void testIntercepted(final String preloadUrl, final int resourceId) |
| - { |
| - preloadMap.clear(); |
| - preloadMap.put(preloadUrl, resourceId); |
| - |
| - assertEquals(0, request.getUrls().size()); |
| - |
| - assertEquals(0, storage.getInterceptedUrls().size()); |
| - |
| - assertEquals(0, wrapperListener.getUrlsToResourceId().size()); |
| - |
| - updateSubscriptions(); |
| - SystemClock.sleep(UPDATE_SUBSCRIPTIONS_WAIT_DELAY_MS); |
| - |
| - if (request.getUrls().size() > 0) |
| - { |
| - List<String> requestsWithoutParams = getUrlsListWithoutParams(request.getUrls()); |
| - assertFalse(requestsWithoutParams.contains(preloadUrl)); |
| - } |
| - |
| - assertEquals(1, storage.getInterceptedUrls().size()); |
| - assertTrue(storage.getInterceptedUrls().contains(preloadUrl)); |
| - |
| - assertTrue(wrapperListener.getUrlsToResourceId().size() >= 0); |
| - List<String> notifiedInterceptedUrls = getUrlsListWithoutParams( |
| - wrapperListener.getUrlsToResourceId().keySet()); |
| - assertTrue(notifiedInterceptedUrls.contains(preloadUrl)); |
| - |
| - for (String eachString : wrapperListener.getUrlsToResourceId().keySet()) |
| - { |
| - if (Utils.getUrlWithoutParams(eachString).equals(preloadUrl)) |
| - { |
| - assertEquals(resourceId, wrapperListener.getUrlsToResourceId().get(eachString).intValue()); |
| - break; |
| - } |
| - } |
| - } |
| - |
| - @Test |
| - public void testIntercepted_Easylist() |
| - { |
| - testIntercepted( |
| - AndroidWebRequestResourceWrapper.EASYLIST, R.raw.easylist); |
| - } |
| - |
| - @Test |
| - public void testIntercepted_AcceptableAds() |
| - { |
| - testIntercepted( |
| - AndroidWebRequestResourceWrapper.ACCEPTABLE_ADS, R.raw.exceptionrules); |
| - } |
| - |
| - @Test |
| - public void testIntercepted_OnceOnly() |
| - { |
| - final String preloadUrl = AndroidWebRequestResourceWrapper.EASYLIST; |
| - |
| - preloadMap.clear(); |
| - preloadMap.put(preloadUrl, R.raw.easylist); |
| - |
| - assertEquals(0, request.getUrls().size()); |
| - |
| - assertEquals(0, storage.getInterceptedUrls().size()); |
| - |
| - assertEquals(0, wrapperListener.getUrlsToResourceId().size()); |
| - |
| - // update #1 - should be intercepted |
| - updateSubscriptions(); |
| - SystemClock.sleep(UPDATE_SUBSCRIPTIONS_WAIT_DELAY_MS); |
| - |
| - int requestsCount = request.getUrls().size(); |
| - if (requestsCount > 0) |
| - { |
| - List<String> requestsWithoutParams = getUrlsListWithoutParams(request.getUrls()); |
| - assertFalse(requestsWithoutParams.contains(preloadUrl)); |
| - } |
| - |
| - assertEquals(1, storage.getInterceptedUrls().size()); |
| - assertTrue(storage.getInterceptedUrls().contains(preloadUrl)); |
| - |
| - assertTrue(wrapperListener.getUrlsToResourceId().size() >= 0); |
| - List<String> notifiedInterceptedUrls = getUrlsListWithoutParams( |
| - wrapperListener.getUrlsToResourceId().keySet()); |
| - assertTrue(notifiedInterceptedUrls.contains(preloadUrl)); |
| - |
| - // update #2 - should NOT be intercepted but actually requested from the web |
| - wrapperListener.getUrlsToResourceId().clear(); |
| - |
| - updateSubscriptions(); |
| - SystemClock.sleep(UPDATE_SUBSCRIPTIONS_WAIT_DELAY_MS); |
| - |
| - assertTrue(request.getUrls().size() > requestsCount); |
| - List<String> requestsWithoutParams = getUrlsListWithoutParams(request.getUrls()); |
| - assertTrue(requestsWithoutParams.contains(preloadUrl)); |
| - |
| - assertEquals(0, wrapperListener.getUrlsToResourceId().size()); |
| - } |
| - |
| - private void testNotIntercepted(final String interceptedUrl, final int resourceId, |
| - final String notInterceptedUrl) |
| - { |
| - preloadMap.clear(); |
| - preloadMap.put(interceptedUrl, resourceId); |
| - |
| - assertEquals(0, request.getUrls().size()); |
| - assertEquals(0, storage.getInterceptedUrls().size()); |
| - assertEquals(0, wrapperListener.getUrlsToResourceId().size()); |
| - |
| - updateSubscriptions(); |
| - SystemClock.sleep(UPDATE_SUBSCRIPTIONS_WAIT_DELAY_MS); |
| - |
| - assertEquals(1, request.getUrls().size()); |
| - List<String> requestUrlsWithoutParams = getUrlsListWithoutParams(request.getUrls()); |
| - assertFalse(requestUrlsWithoutParams.contains(interceptedUrl)); |
| - assertTrue(requestUrlsWithoutParams.contains(notInterceptedUrl)); |
| - assertEquals(1, storage.getInterceptedUrls().size()); |
| - assertTrue(storage.getInterceptedUrls().contains(interceptedUrl)); |
| - assertFalse(storage.getInterceptedUrls().contains(notInterceptedUrl)); |
| - assertTrue(wrapperListener.getUrlsToResourceId().size() > 0); |
| - |
| - for (String eachString : wrapperListener.getUrlsToResourceId().keySet()) |
| - { |
| - if (Utils.getUrlWithoutParams(eachString).equals(notInterceptedUrl)) |
| - { |
| - fail(); |
| - } |
| - } |
| - } |
| - |
| - @Test |
| - public void testInterceptedAll() |
| - { |
| - preloadMap.clear(); |
| - preloadMap.put(AndroidWebRequestResourceWrapper.EASYLIST, R.raw.easylist); |
| - preloadMap.put(AndroidWebRequestResourceWrapper.ACCEPTABLE_ADS, R.raw.exceptionrules); |
| - |
| - assertEquals(0, request.getUrls().size()); |
| - |
| - assertEquals(0, storage.getInterceptedUrls().size()); |
| - |
| - assertEquals(0, wrapperListener.getUrlsToResourceId().size()); |
| - |
| - updateSubscriptions(); |
| - SystemClock.sleep(UPDATE_SUBSCRIPTIONS_WAIT_DELAY_MS); |
| - |
| - assertEquals(0, request.getUrls().size()); |
| - assertEquals(2, storage.getInterceptedUrls().size()); |
| - assertTrue(storage.getInterceptedUrls().contains(AndroidWebRequestResourceWrapper.EASYLIST)); |
| - assertTrue(storage.getInterceptedUrls().contains(AndroidWebRequestResourceWrapper.ACCEPTABLE_ADS)); |
| - |
| - assertTrue(wrapperListener.getUrlsToResourceId().size() >= 0); |
| - List<String> notifiedInterceptedUrls = getUrlsListWithoutParams( |
| - wrapperListener.getUrlsToResourceId().keySet()); |
| - assertTrue(notifiedInterceptedUrls.contains(AndroidWebRequestResourceWrapper.EASYLIST)); |
| - assertTrue(notifiedInterceptedUrls.contains(AndroidWebRequestResourceWrapper.ACCEPTABLE_ADS)); |
| - |
| - for (String eachString : wrapperListener.getUrlsToResourceId().keySet()) |
| - { |
| - String urlWithoutParams = Utils.getUrlWithoutParams(eachString); |
| - if (urlWithoutParams.equals(AndroidWebRequestResourceWrapper.EASYLIST)) |
| - { |
| - assertEquals(R.raw.easylist, wrapperListener.getUrlsToResourceId().get(eachString).intValue()); |
| - } |
| - |
| - if (urlWithoutParams.equals(AndroidWebRequestResourceWrapper.ACCEPTABLE_ADS)) |
| - { |
| - assertEquals(R.raw.exceptionrules, wrapperListener.getUrlsToResourceId().get(eachString).intValue()); |
| - } |
| - } |
| - } |
| - |
| - @Test |
| - public void testNotIntercepted_Easylist() |
| - { |
| - testNotIntercepted( |
| - AndroidWebRequestResourceWrapper.ACCEPTABLE_ADS, R.raw.exceptionrules, |
| - AndroidWebRequestResourceWrapper.EASYLIST); |
| - } |
| - |
| - @Test |
| - public void testNotIntercepted_AcceptableAds() |
| - { |
| - testNotIntercepted( |
| - AndroidWebRequestResourceWrapper.EASYLIST, R.raw.easylist, |
| - AndroidWebRequestResourceWrapper.ACCEPTABLE_ADS); |
| - } |
| -} |