Index: adblock-android-tests/src/org/adblockplus/libadblockplus/tests/AndroidWebRequestTest.java |
diff --git a/adblock-android-tests/src/org/adblockplus/libadblockplus/tests/AndroidWebRequestTest.java b/adblock-android-tests/src/org/adblockplus/libadblockplus/tests/AndroidWebRequestTest.java |
index 659a8f27631b8acdbad89eda9f97e41ea21df265..16fd82325bd6f704554bf7d89ab86901052c515b 100644 |
--- a/adblock-android-tests/src/org/adblockplus/libadblockplus/tests/AndroidWebRequestTest.java |
+++ b/adblock-android-tests/src/org/adblockplus/libadblockplus/tests/AndroidWebRequestTest.java |
@@ -17,7 +17,10 @@ |
package org.adblockplus.libadblockplus.tests; |
-import org.adblockplus.libadblockplus.JsEngine; |
+import android.os.SystemClock; |
+ |
+import org.adblockplus.libadblockplus.BaseFilterEngineTest; |
+import org.adblockplus.libadblockplus.HeaderEntry; |
import org.adblockplus.libadblockplus.WebRequest; |
import org.adblockplus.libadblockplus.android.AndroidWebRequest; |
import org.adblockplus.libadblockplus.JsValue; |
@@ -34,16 +37,37 @@ import java.util.List; |
// FilterEngine. |
public class AndroidWebRequestTest extends BaseFilterEngineTest |
{ |
+ private static class AndroidWebRequestWrapper implements WebRequest |
+ { |
+ private AndroidWebRequest androidWebRequest = new AndroidWebRequest(true, true); |
+ private volatile int requestCount; |
+ |
+ public int getRequestCount() |
+ { |
+ return requestCount; |
+ } |
+ |
+ @Override |
+ public ServerResponse httpGET(String url, List<HeaderEntry> headers) |
+ { |
+ ServerResponse response = androidWebRequest.httpGET(url, headers); |
+ requestCount++; |
+ return response; |
+ } |
+ } |
+ |
+ private AndroidWebRequestWrapper webRequestWrapper = new AndroidWebRequestWrapper(); |
+ |
@Override |
- protected WebRequest createWebRequest() |
+ protected void setUp() throws Exception |
{ |
- return new AndroidWebRequest(true, true); |
+ setWebRequest(webRequestWrapper); |
+ super.setUp(); |
} |
@Test |
public void testRealWebRequest() |
{ |
- JsEngine jsEngine = platform.getJsEngine(); |
// This URL should redirect to easylist-downloads.adblockplus.org and we |
// should get the actual filter list back. |
jsEngine.evaluate( |
@@ -51,14 +75,7 @@ public class AndroidWebRequestTest extends BaseFilterEngineTest |
"function(result) {foo = result;} )"); |
do |
{ |
- try |
- { |
- Thread.sleep(200); |
- } |
- catch (InterruptedException e) |
- { |
- throw new RuntimeException(e); |
- } |
+ SystemClock.sleep(50); |
} while (jsEngine.evaluate("foo").isUndefined()); |
String response = jsEngine.evaluate("foo.responseText").asString(); |
@@ -84,7 +101,6 @@ public class AndroidWebRequestTest extends BaseFilterEngineTest |
@Test |
public void testXMLHttpRequest() |
{ |
- JsEngine jsEngine = platform.getJsEngine(); |
jsEngine.evaluate( |
"var result;\n" + |
"var request = new XMLHttpRequest();\n" + |
@@ -98,14 +114,7 @@ public class AndroidWebRequestTest extends BaseFilterEngineTest |
do |
{ |
- try |
- { |
- Thread.sleep(200); |
- } |
- catch (InterruptedException e) |
- { |
- throw new RuntimeException(e); |
- } |
+ SystemClock.sleep(50); |
} while (jsEngine.evaluate("result").isUndefined()); |
assertEquals( |
@@ -121,9 +130,15 @@ public class AndroidWebRequestTest extends BaseFilterEngineTest |
} |
@Test |
- public void testGetElemhideElements() throws MalformedURLException, InterruptedException |
+ public void testGetElemhideElements() throws MalformedURLException |
{ |
- Thread.sleep(20 * 1000); // wait for the subscription to be downloaded |
+ // Wait for Easylist & AA |
+ while (webRequestWrapper.getRequestCount() < 2) |
+ { |
+ SystemClock.sleep(UPDATE_SUBSCRIPTIONS_WAIT_DELAY_MS / UPDATE_SUBSCRIPTIONS_WAIT_CHUNKS); |
+ } |
+ // A grace period, just in case |
+ SystemClock.sleep(UPDATE_SUBSCRIPTIONS_WAIT_DELAY_MS / UPDATE_SUBSCRIPTIONS_WAIT_CHUNKS); |
final String url = "www.mobile01.com/somepage.html"; |