| Index: components/cronet/android/test/src/org/chromium/net/MockUrlRequestJobFactory.java
|
| diff --git a/components/cronet/android/test/src/org/chromium/net/MockUrlRequestJobFactory.java b/components/cronet/android/test/src/org/chromium/net/MockUrlRequestJobFactory.java
|
| index 96750028ea374fcdf297bbdc0fd113dffd9af363..89e863756d72b302172f23615af2327aefe97087 100644
|
| --- a/components/cronet/android/test/src/org/chromium/net/MockUrlRequestJobFactory.java
|
| +++ b/components/cronet/android/test/src/org/chromium/net/MockUrlRequestJobFactory.java
|
| @@ -6,7 +6,10 @@ package org.chromium.net;
|
|
|
| import static junit.framework.Assert.assertTrue;
|
|
|
| +import android.os.ConditionVariable;
|
| +
|
| import org.chromium.base.annotations.JNINamespace;
|
| +import org.chromium.net.impl.CronetUrlRequestContext;
|
| import org.chromium.net.test.FailurePhase;
|
|
|
| /**
|
| @@ -14,11 +17,46 @@ import org.chromium.net.test.FailurePhase;
|
| */
|
| @JNINamespace("cronet")
|
| public final class MockUrlRequestJobFactory {
|
| + private static CronetEngine sCronetEngine;
|
| +
|
| /**
|
| * Sets up URL interceptors.
|
| */
|
| - public static void setUp() {
|
| - nativeAddUrlInterceptors();
|
| + public static void setUp(final CronetEngine cronetEngine) {
|
| + sCronetEngine = cronetEngine;
|
| + CronetTestUtil.prepareNetworkThreadForTesting(cronetEngine);
|
| +
|
| + // Hop over to network thread and install URL interceptors at the native level.
|
| + final ConditionVariable done = new ConditionVariable();
|
| + CronetTestUtil.postToNetworkThread(cronetEngine, new Runnable() {
|
| + @Override
|
| + public void run() {
|
| + long requestContext =
|
| + ((CronetUrlRequestContext) cronetEngine).getUrlRequestContextForTesting();
|
| + nativeAddUrlInterceptors();
|
| + nativeAddUrlInterceptorJobFactory(requestContext);
|
| + done.open();
|
| + }
|
| + });
|
| + done.block();
|
| + }
|
| +
|
| + /**
|
| + * Remove URL Interceptors.
|
| + */
|
| + public static void shutdown() {
|
| + // Hop over to network thread and remove URL interceptors at the native level.
|
| + final long requestContext =
|
| + ((CronetUrlRequestContext) sCronetEngine).getUrlRequestContextForTesting();
|
| + CronetTestUtil.postToNetworkThread(sCronetEngine, new Runnable() {
|
| + @Override
|
| + public void run() {
|
| + nativeRemoveUrlInterceptorJobFactory(requestContext);
|
| + }
|
| + });
|
| +
|
| + CronetTestUtil.cleanupNetorkThreadForTesting();
|
| + sCronetEngine = null;
|
| }
|
|
|
| /**
|
| @@ -77,6 +115,10 @@ public final class MockUrlRequestJobFactory {
|
|
|
| private static native void nativeAddUrlInterceptors();
|
|
|
| + private static native void nativeAddUrlInterceptorJobFactory(long requestContext);
|
| +
|
| + private static native void nativeRemoveUrlInterceptorJobFactory(long requestContext);
|
| +
|
| private static native String nativeGetMockUrlWithFailure(int phase, int netError);
|
|
|
| private static native String nativeGetMockUrlForData(String data,
|
|
|