| 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"; |