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