diff options
author | Stefano Duo <stefanoduo@google.com> | 2023-07-17 08:44:52 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2023-07-17 08:44:52 +0000 |
commit | cf84d236d3c08e85163fece467ed3b02bb2cb8c8 (patch) | |
tree | 76c52162f108920d442177dc208bed92cfa5f0cf /components/cronet/android/test | |
parent | 03c15bfa4b8ee1b35424b1bff3eb65327b3e513a (diff) | |
download | cronet-cf84d236d3c08e85163fece467ed3b02bb2cb8c8.tar.gz |
Revert "Merge remote-tracking branch 'origin/upstream-staging'"
Revert submission 2647150-httpclient-wrapper
Reason for revert: ndk build break (b/291449552)
Reverted changes: /q/submissionid:2647150-httpclient-wrapper
Change-Id: Id0b17455a7b58ac303dff1c08c391513f7927075
Diffstat (limited to 'components/cronet/android/test')
39 files changed, 822 insertions, 658 deletions
diff --git a/components/cronet/android/test/javatests/src/org/chromium/net/BidirectionalStreamQuicTest.java b/components/cronet/android/test/javatests/src/org/chromium/net/BidirectionalStreamQuicTest.java index 263c2c243..eb75c465f 100644 --- a/components/cronet/android/test/javatests/src/org/chromium/net/BidirectionalStreamQuicTest.java +++ b/components/cronet/android/test/javatests/src/org/chromium/net/BidirectionalStreamQuicTest.java @@ -11,6 +11,14 @@ import static org.junit.Assert.assertTrue; import static org.chromium.base.CollectionUtil.newHashSet; import static org.chromium.net.CronetTestRule.getContext; +import android.net.http.BidirectionalStream; +import android.net.http.ExperimentalBidirectionalStream; +import android.net.http.ExperimentalHttpEngine; +import android.net.http.NetworkException; +import android.net.http.QuicException; +import android.net.http.RequestFinishedInfo; +import android.net.http.UrlResponseInfo; + import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.filters.SmallTest; @@ -24,7 +32,7 @@ import org.junit.runner.RunWith; import org.chromium.net.CronetTestRule.OnlyRunNativeCronet; import java.nio.ByteBuffer; -import java.util.Date; +import java.time.Instant; import java.util.HashSet; /** @@ -35,18 +43,18 @@ public class BidirectionalStreamQuicTest { @Rule public final CronetTestRule mTestRule = new CronetTestRule(); - private ExperimentalCronetEngine mCronetEngine; + private ExperimentalHttpEngine mCronetEngine; @Before public void setUp() throws Exception { // Load library first to create MockCertVerifier. System.loadLibrary("cronet_tests"); - ExperimentalCronetEngine.Builder builder = - new ExperimentalCronetEngine.Builder(getContext()); + ExperimentalHttpEngine.Builder builder = + new ExperimentalHttpEngine.Builder(getContext()); QuicTestServer.startQuicTestServer(getContext()); - builder.enableQuic(true); + builder.setEnableQuic(true); JSONObject quicParams = new JSONObject(); JSONObject hostResolverParams = CronetTestUtil.generateHostResolverRules(); JSONObject experimentalOptions = new JSONObject() @@ -103,21 +111,22 @@ public class BidirectionalStreamQuicTest { callback.addWriteData("woot!".getBytes()); TestRequestFinishedListener requestFinishedListener = new TestRequestFinishedListener(); mCronetEngine.addRequestFinishedListener(requestFinishedListener); - BidirectionalStream stream = - mCronetEngine - .newBidirectionalStreamBuilder(quicURL, callback, callback.getExecutor()) + ExperimentalBidirectionalStream.Builder streamBuilder = + (ExperimentalBidirectionalStream.Builder) mCronetEngine + .newBidirectionalStreamBuilder(quicURL, callback, callback.getExecutor()); + BidirectionalStream stream = streamBuilder .addHeader("foo", "bar") .addHeader("empty", "") .addHeader("Content-Type", "zebra") .addRequestAnnotation("request annotation") .addRequestAnnotation(this) .build(); - Date startTime = new Date(); + Instant startTime = Instant.now(); stream.start(); callback.blockForDone(); assertTrue(stream.isDone()); requestFinishedListener.blockUntilDone(); - Date endTime = new Date(); + Instant endTime = Instant.now(); RequestFinishedInfo finishedInfo = requestFinishedListener.getRequestInfo(); MetricsTestUtil.checkRequestFinishedInfo(finishedInfo, quicURL, startTime, endTime); assertEquals(RequestFinishedInfo.SUCCEEDED, finishedInfo.getFinishedReason()); @@ -146,7 +155,8 @@ public class BidirectionalStreamQuicTest { BidirectionalStream stream = mCronetEngine .newBidirectionalStreamBuilder( quicURL, callback, callback.getExecutor()) - .delayRequestHeadersUntilFirstFlush(i == 0) + .setDelayRequestHeadersUntilFirstFlushEnabled( + i == 0) .addHeader("foo", "bar") .addHeader("empty", "") .addHeader("Content-Type", "zebra") @@ -181,7 +191,8 @@ public class BidirectionalStreamQuicTest { BidirectionalStream stream = mCronetEngine .newBidirectionalStreamBuilder( quicURL, callback, callback.getExecutor()) - .delayRequestHeadersUntilFirstFlush(i == 0) + .setDelayRequestHeadersUntilFirstFlushEnabled( + i == 0) .addHeader("foo", "bar") .addHeader("empty", "") .addHeader("Content-Type", "zebra") @@ -217,7 +228,7 @@ public class BidirectionalStreamQuicTest { mCronetEngine .newBidirectionalStreamBuilder(url, callback, callback.getExecutor()) .setHttpMethod("GET") - .delayRequestHeadersUntilFirstFlush(i == 0) + .setDelayRequestHeadersUntilFirstFlushEnabled(i == 0) .addHeader("foo", "bar") .addHeader("empty", "") .build(); @@ -253,7 +264,7 @@ public class BidirectionalStreamQuicTest { BidirectionalStream stream = mCronetEngine .newBidirectionalStreamBuilder(url, callback, callback.getExecutor()) - .delayRequestHeadersUntilFirstFlush(i == 0) + .setDelayRequestHeadersUntilFirstFlushEnabled(i == 0) .addHeader("foo", "bar") .addHeader("empty", "") .addHeader("Content-Type", "zebra") @@ -311,9 +322,9 @@ public class BidirectionalStreamQuicTest { assertNotNull(callback.mError); assertTrue(callback.mError instanceof NetworkException); NetworkException networkError = (NetworkException) callback.mError; - assertTrue(NetError.ERR_QUIC_PROTOCOL_ERROR == networkError.getCronetInternalErrorCode() - || NetError.ERR_CONNECTION_REFUSED == networkError.getCronetInternalErrorCode()); - if (NetError.ERR_CONNECTION_REFUSED == networkError.getCronetInternalErrorCode()) return; + assertTrue(NetError.ERR_QUIC_PROTOCOL_ERROR == networkError.getInternalErrorCode() + || NetError.ERR_CONNECTION_REFUSED == networkError.getInternalErrorCode()); + if (NetError.ERR_CONNECTION_REFUSED == networkError.getInternalErrorCode()) return; assertTrue(callback.mError instanceof QuicException); } @@ -335,7 +346,7 @@ public class BidirectionalStreamQuicTest { mCronetEngine .newBidirectionalStreamBuilder(quicURL, callback, callback.getExecutor()) .setHttpMethod("GET") - .delayRequestHeadersUntilFirstFlush(true) + .setDelayRequestHeadersUntilFirstFlushEnabled(true) .addHeader("Content-Type", "zebra") .build(); stream.start(); diff --git a/components/cronet/android/test/javatests/src/org/chromium/net/BidirectionalStreamTest.java b/components/cronet/android/test/javatests/src/org/chromium/net/BidirectionalStreamTest.java index 8b68868e9..e758713fb 100644 --- a/components/cronet/android/test/javatests/src/org/chromium/net/BidirectionalStreamTest.java +++ b/components/cronet/android/test/javatests/src/org/chromium/net/BidirectionalStreamTest.java @@ -17,6 +17,14 @@ import static org.chromium.net.CronetTestRule.SERVER_KEY_PKCS8_PEM; import static org.chromium.net.CronetTestRule.assertContains; import static org.chromium.net.CronetTestRule.getContext; +import android.net.http.BidirectionalStream; +import android.net.http.HttpEngine; +import android.net.http.HttpException; +import android.net.http.ExperimentalBidirectionalStream; +import android.net.http.ExperimentalHttpEngine; +import android.net.http.NetworkException; +import android.net.http.RequestFinishedInfo; +import android.net.http.UrlResponseInfo; import android.os.Build; import android.os.ConditionVariable; import android.os.Process; @@ -62,14 +70,14 @@ public class BidirectionalStreamTest { @Rule public final CronetTestRule mTestRule = new CronetTestRule(); - private ExperimentalCronetEngine mCronetEngine; + private ExperimentalHttpEngine mCronetEngine; @Before public void setUp() throws Exception { // Load library first to create MockCertVerifier. System.loadLibrary("cronet_tests"); - ExperimentalCronetEngine.Builder builder = - new ExperimentalCronetEngine.Builder(getContext()); + ExperimentalHttpEngine.Builder builder = + new ExperimentalHttpEngine.Builder(getContext()); CronetTestUtil.setMockCertVerifierForTesting( builder, QuicTestServer.createMockCertVerifier()); @@ -206,7 +214,7 @@ public class BidirectionalStreamTest { assertTrue(stream.isDone()); assertContains("Exception in BidirectionalStream: net::ERR_DISALLOWED_URL_SCHEME", callback.mError.getMessage()); - assertEquals(-301, ((NetworkException) callback.mError).getCronetInternalErrorCode()); + assertEquals(-301, ((NetworkException) callback.mError).getInternalErrorCode()); } @Test @@ -831,12 +839,12 @@ public class BidirectionalStreamTest { public void testCustomCronetEngineUserAgent() throws Exception { String userAgentName = "User-Agent"; String userAgentValue = "User-Agent-Value"; - ExperimentalCronetEngine.Builder engineBuilder = - new ExperimentalCronetEngine.Builder(getContext()); + ExperimentalHttpEngine.Builder engineBuilder = + new ExperimentalHttpEngine.Builder(getContext()); engineBuilder.setUserAgent(userAgentValue); CronetTestUtil.setMockCertVerifierForTesting( engineBuilder, QuicTestServer.createMockCertVerifier()); - ExperimentalCronetEngine engine = engineBuilder.build(); + ExperimentalHttpEngine engine = engineBuilder.build(); TestBidirectionalStreamCallback callback = new TestBidirectionalStreamCallback(); BidirectionalStream.Builder builder = engine.newBidirectionalStreamBuilder( Http2TestServer.getEchoHeaderUrl(userAgentName), callback, callback.getExecutor()); @@ -859,7 +867,7 @@ public class BidirectionalStreamTest { builder.build().start(); callback.blockForDone(); assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); - assertEquals(new CronetEngine.Builder(getContext()).getDefaultUserAgent(), + assertEquals(new HttpEngine.Builder(getContext()).getDefaultUserAgent(), callback.mResponseAsString); } @@ -1245,8 +1253,8 @@ public class BidirectionalStreamTest { private void throwOrCancel( FailureType failureType, ResponseStep failureStep, boolean expectError) { // Use a fresh CronetEngine each time so Http2 session is not reused. - ExperimentalCronetEngine.Builder builder = - new ExperimentalCronetEngine.Builder(getContext()); + ExperimentalHttpEngine.Builder builder = + new ExperimentalHttpEngine.Builder(getContext()); CronetTestUtil.setMockCertVerifierForTesting( builder, QuicTestServer.createMockCertVerifier()); mCronetEngine = builder.build(); @@ -1398,7 +1406,7 @@ public class BidirectionalStreamTest { @Override public void onFailed( - BidirectionalStream stream, UrlResponseInfo info, CronetException error) { + BidirectionalStream stream, UrlResponseInfo info, HttpException error) { mCronetEngine.shutdown(); // Clear mCronetEngine so it doesn't get shut down second time in tearDown(). mCronetEngine = null; @@ -1554,8 +1562,8 @@ public class BidirectionalStreamTest { int netError, int errorCode, boolean immediatelyRetryable) throws Exception { NetworkException exception = new BidirectionalStreamNetworkException("", errorCode, netError); - assertEquals(immediatelyRetryable, exception.immediatelyRetryable()); - assertEquals(netError, exception.getCronetInternalErrorCode()); + assertEquals(immediatelyRetryable, exception.isImmediatelyRetryable()); + assertEquals(netError, exception.getInternalErrorCode()); assertEquals(errorCode, exception.getErrorCode()); } diff --git a/components/cronet/android/test/javatests/src/org/chromium/net/BrotliTest.java b/components/cronet/android/test/javatests/src/org/chromium/net/BrotliTest.java index 40e02713d..72de9931e 100644 --- a/components/cronet/android/test/javatests/src/org/chromium/net/BrotliTest.java +++ b/components/cronet/android/test/javatests/src/org/chromium/net/BrotliTest.java @@ -12,6 +12,10 @@ import static org.chromium.net.CronetTestRule.SERVER_CERT_PEM; import static org.chromium.net.CronetTestRule.SERVER_KEY_PKCS8_PEM; import static org.chromium.net.CronetTestRule.getContext; +import android.net.http.HttpEngine; +import android.net.http.ExperimentalHttpEngine; +import android.net.http.UrlRequest; + import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.filters.SmallTest; @@ -34,7 +38,7 @@ public class BrotliTest { @Rule public final CronetTestRule mTestRule = new CronetTestRule(); - private CronetEngine mCronetEngine; + private HttpEngine mCronetEngine; @Before public void setUp() throws Exception { @@ -54,22 +58,24 @@ public class BrotliTest { @SmallTest @OnlyRunNativeCronet public void testBrotliAdvertised() throws Exception { - ExperimentalCronetEngine.Builder builder = - new ExperimentalCronetEngine.Builder(getContext()); - builder.enableBrotli(true); + ExperimentalHttpEngine.Builder builder = + new ExperimentalHttpEngine.Builder(getContext()); + builder.setEnableBrotli(true); mCronetEngine = builder.build(); String url = NativeTestServer.getEchoAllHeadersURL(); TestUrlRequestCallback callback = startAndWaitForComplete(url); assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); - assertTrue(callback.mResponseAsString.contains("Accept-Encoding: gzip, deflate, br")); + assertTrue( + "[" + callback.mResponseAsString + "] should reference Brotli", + callback.mResponseAsString.matches("(?is).*accept-encoding: gzip, deflate, br.*")); } @Test @SmallTest @OnlyRunNativeCronet public void testBrotliNotAdvertised() throws Exception { - ExperimentalCronetEngine.Builder builder = - new ExperimentalCronetEngine.Builder(getContext()); + ExperimentalHttpEngine.Builder builder = + new ExperimentalHttpEngine.Builder(getContext()); mCronetEngine = builder.build(); String url = NativeTestServer.getEchoAllHeadersURL(); TestUrlRequestCallback callback = startAndWaitForComplete(url); @@ -82,16 +88,18 @@ public class BrotliTest { @OnlyRunNativeCronet @Ignore // TODO(danstahr): Add test server support for setting the Brotli header public void testBrotliDecoded() throws Exception { - ExperimentalCronetEngine.Builder builder = - new ExperimentalCronetEngine.Builder(getContext()); - builder.enableBrotli(true); + ExperimentalHttpEngine.Builder builder = + new ExperimentalHttpEngine.Builder(getContext()); + builder.setEnableBrotli(true); mCronetEngine = builder.build(); String url = Http2TestServer.getServeSimpleBrotliResponse(); TestUrlRequestCallback callback = startAndWaitForComplete(url); assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); String expectedResponse = "The quick brown fox jumps over the lazy dog"; assertEquals(expectedResponse, callback.mResponseAsString); - assertEquals(callback.mResponseInfo.getAllHeaders().get("content-encoding").get(0), "br"); + assertEquals( + callback.mResponseInfo.getHeaders().getAsMap().get("content-encoding").get(0), + "br"); } private TestUrlRequestCallback startAndWaitForComplete(String url) { diff --git a/components/cronet/android/test/javatests/src/org/chromium/net/CronetLoggerTestRule.java b/components/cronet/android/test/javatests/src/org/chromium/net/CronetLoggerTestRule.java index 81508bdd1..1ca6c6ddb 100644 --- a/components/cronet/android/test/javatests/src/org/chromium/net/CronetLoggerTestRule.java +++ b/components/cronet/android/test/javatests/src/org/chromium/net/CronetLoggerTestRule.java @@ -11,7 +11,7 @@ import org.junit.runner.Description; import org.junit.runners.model.Statement; import org.chromium.net.impl.CronetLogger; -import org.chromium.net.impl.CronetLoggerFactory.SwapLoggerForTesting; +import org.chromium.net.impl.CronetLoggerFactory; /** * Custom TestRule that instantiates a new fake CronetLogger for each test. @@ -20,17 +20,15 @@ import org.chromium.net.impl.CronetLoggerFactory.SwapLoggerForTesting; public class CronetLoggerTestRule<T extends CronetLogger> implements TestRule { private static final String TAG = CronetLoggerTestRule.class.getSimpleName(); - private Class<T> mTestLoggerClazz; - // Expose the fake logger to the test. public T mTestLogger; - public CronetLoggerTestRule(@NonNull Class<T> testLoggerClazz) { - if (testLoggerClazz == null) { - throw new NullPointerException("TestLoggerClazz is required."); + public CronetLoggerTestRule(@NonNull T testLogger) { + if (testLogger == null) { + throw new NullPointerException("TestLogger is required."); } - mTestLoggerClazz = testLoggerClazz; + mTestLogger = testLogger; } @Override @@ -38,24 +36,32 @@ public class CronetLoggerTestRule<T extends CronetLogger> implements TestRule { return new Statement() { @Override public void evaluate() throws Throwable { - try (SwapLoggerForTesting swapper = buildSwapper()) { + try (SwapLoggerForTesting swapper = new SwapLoggerForTesting(mTestLogger)) { base.evaluate(); - } finally { - mTestLogger = null; } } }; } - private SwapLoggerForTesting buildSwapper() { - assert mTestLoggerClazz != null; + /** + * Utility class to safely use a custom CronetLogger for the duration of a test. + * To be used within a try-with-resources statement within the test. + */ + public static class SwapLoggerForTesting implements AutoCloseable { + /** + * Forces {@code CronetLoggerFactory#createLogger} to return {@code testLogger} instead of + * what it would have normally returned. + */ + public SwapLoggerForTesting(CronetLogger testLogger) { + CronetLoggerFactory.setLoggerForTesting(testLogger); + } - try { - mTestLogger = mTestLoggerClazz.getConstructor().newInstance(); - return new SwapLoggerForTesting(mTestLogger); - } catch (ReflectiveOperationException e) { - throw new IllegalArgumentException( - "CronetTestBase#runTest failed while swapping TestLogger.", e); + /** + * Restores CronetLoggerFactory to its original state. + */ + @Override + public void close() { + CronetLoggerFactory.setLoggerForTesting(null); } } } diff --git a/components/cronet/android/test/javatests/src/org/chromium/net/CronetStressTest.java b/components/cronet/android/test/javatests/src/org/chromium/net/CronetStressTest.java index fabb8720a..480312490 100644 --- a/components/cronet/android/test/javatests/src/org/chromium/net/CronetStressTest.java +++ b/components/cronet/android/test/javatests/src/org/chromium/net/CronetStressTest.java @@ -9,6 +9,8 @@ import static org.junit.Assert.assertTrue; import static org.chromium.net.CronetTestRule.getContext; +import android.net.http.UrlRequest; + import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.filters.LargeTest; @@ -18,6 +20,7 @@ import java.util.Random; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; +import android.net.http.apihelpers.UploadDataProviders; import org.junit.After; import org.junit.Before; import org.junit.Rule; diff --git a/components/cronet/android/test/javatests/src/org/chromium/net/CronetTestRule.java b/components/cronet/android/test/javatests/src/org/chromium/net/CronetTestRule.java index fea259b37..b451fd229 100644 --- a/components/cronet/android/test/javatests/src/org/chromium/net/CronetTestRule.java +++ b/components/cronet/android/test/javatests/src/org/chromium/net/CronetTestRule.java @@ -6,6 +6,10 @@ package org.chromium.net; import static org.junit.Assume.assumeTrue; +import android.net.http.ApiVersion; +import android.net.http.HttpEngine; +import android.net.http.ExperimentalHttpEngine; +import android.net.http.UrlResponseInfo; import android.content.Context; import android.os.Build; import android.os.StrictMode; @@ -60,8 +64,8 @@ public class CronetTestRule implements TestRule { * Creates and holds pointer to CronetEngine. */ public static class CronetTestFramework { - public ExperimentalCronetEngine mCronetEngine; - public ExperimentalCronetEngine.Builder mBuilder; + public ExperimentalHttpEngine mCronetEngine; + public ExperimentalHttpEngine.Builder mBuilder; private Context mContext; @@ -74,7 +78,7 @@ public class CronetTestRule implements TestRule { return new CronetTestFramework(context); } - public ExperimentalCronetEngine startEngine() { + public ExperimentalHttpEngine startEngine() { assert mCronetEngine == null; mCronetEngine = mBuilder.build(); @@ -91,8 +95,8 @@ public class CronetTestRule implements TestRule { mCronetEngine = null; } - private ExperimentalCronetEngine.Builder createNativeEngineBuilder() { - return CronetTestRule.createNativeEngineBuilder(mContext).enableQuic(true); + private ExperimentalHttpEngine.Builder createNativeEngineBuilder() { + return CronetTestRule.createNativeEngineBuilder(mContext).setEnableQuic(true); } } @@ -270,18 +274,18 @@ public class CronetTestRule implements TestRule { } /** - * Creates and returns {@link ExperimentalCronetEngine.Builder} that creates - * Chromium (native) based {@link CronetEngine.Builder}. + * Creates and returns {@link ExperimentalHttpEngine.Builder} that creates + * Chromium (native) based {@link HttpEngine.Builder}. * * @return the {@code CronetEngine.Builder} that builds Chromium-based {@code Cronet engine}. */ - public static ExperimentalCronetEngine.Builder createNativeEngineBuilder(Context context) { - return new ExperimentalCronetEngine.Builder(context); + public static ExperimentalHttpEngine.Builder createNativeEngineBuilder(Context context) { + return new ExperimentalHttpEngine.Builder(context); } public void assertResponseEquals(UrlResponseInfo expected, UrlResponseInfo actual) { - Assert.assertEquals(expected.getAllHeaders(), actual.getAllHeaders()); - Assert.assertEquals(expected.getAllHeadersAsList(), actual.getAllHeadersAsList()); + Assert.assertEquals(expected.getHeaders().getAsMap(), actual.getHeaders().getAsMap()); + Assert.assertEquals(expected.getHeaders().getAsList(), actual.getHeaders().getAsList()); Assert.assertEquals(expected.getHttpStatusCode(), actual.getHttpStatusCode()); Assert.assertEquals(expected.getHttpStatusText(), actual.getHttpStatusText()); Assert.assertEquals(expected.getUrlChain(), actual.getUrlChain()); @@ -303,9 +307,9 @@ public class CronetTestRule implements TestRule { } } - public CronetEngine.Builder enableDiskCache(CronetEngine.Builder cronetEngineBuilder) { + public HttpEngine.Builder enableDiskCache(HttpEngine.Builder cronetEngineBuilder) { cronetEngineBuilder.setStoragePath(getTestStorage(getContext())); - cronetEngineBuilder.enableHttpCache(CronetEngine.Builder.HTTP_CACHE_DISK, 1000 * 1024); + cronetEngineBuilder.setEnableHttpCache(HttpEngine.Builder.HTTP_CACHE_DISK, 1000 * 1024); return cronetEngineBuilder; } @@ -313,12 +317,12 @@ public class CronetTestRule implements TestRule { * Sets the {@link URLStreamHandlerFactory} from {@code cronetEngine}. This should be called * during setUp() and is installed by {@link runTest()} as the default when Cronet is tested. */ - public void setStreamHandlerFactory(CronetEngine cronetEngine) { + public void setStreamHandlerFactory(HttpEngine cronetEngine) { // This clears the cached URL handlers if (testingSystemHttpURLConnection()) { URL.setURLStreamHandlerFactory(null); } else { - URL.setURLStreamHandlerFactory(cronetEngine.createURLStreamHandlerFactory()); + URL.setURLStreamHandlerFactory(cronetEngine.createUrlStreamHandlerFactory()); } } diff --git a/components/cronet/android/test/javatests/src/org/chromium/net/CronetUploadTest.java b/components/cronet/android/test/javatests/src/org/chromium/net/CronetUploadTest.java index 288198c9c..5a54f52d3 100644 --- a/components/cronet/android/test/javatests/src/org/chromium/net/CronetUploadTest.java +++ b/components/cronet/android/test/javatests/src/org/chromium/net/CronetUploadTest.java @@ -10,6 +10,8 @@ import static org.junit.Assert.assertTrue; import static org.chromium.net.CronetTestRule.getContext; +import android.net.http.UrlRequest; + import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.filters.SmallTest; diff --git a/components/cronet/android/test/javatests/src/org/chromium/net/CronetUrlRequestContextTest.java b/components/cronet/android/test/javatests/src/org/chromium/net/CronetUrlRequestContextTest.java index d728ec924..e48cb8a0c 100644 --- a/components/cronet/android/test/javatests/src/org/chromium/net/CronetUrlRequestContextTest.java +++ b/components/cronet/android/test/javatests/src/org/chromium/net/CronetUrlRequestContextTest.java @@ -11,11 +11,17 @@ import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; -import static org.chromium.net.CronetEngine.Builder.HTTP_CACHE_IN_MEMORY; +import static android.net.http.HttpEngine.Builder.HTTP_CACHE_IN_MEMORY; import static org.chromium.net.CronetTestRule.assertContains; import static org.chromium.net.CronetTestRule.getContext; import static org.chromium.net.CronetTestRule.getTestStorage; +import android.net.http.HttpEngine; +import android.net.http.HttpException; +import android.net.http.ExperimentalHttpEngine; +import android.net.http.ExperimentalUrlRequest; +import android.net.http.UrlRequest; +import android.net.http.UrlResponseInfo; import android.content.Context; import android.content.ContextWrapper; import android.net.Network; @@ -108,10 +114,10 @@ public class CronetUrlRequestContextTest { @Override public void run() { mRunBlocker.block(); - CronetEngine cronetEngine = new CronetEngine.Builder(getContext()).build(); + HttpEngine cronetEngine = new HttpEngine.Builder(getContext()).build(); mCallback = new TestUrlRequestCallback(); UrlRequest.Builder urlRequestBuilder = - cronetEngine.newUrlRequestBuilder(mUrl, mCallback, mCallback.getExecutor()); + cronetEngine.newUrlRequestBuilder(mUrl, mCallback.getExecutor(), mCallback); urlRequestBuilder.build().start(); mCallback.blockForDone(); } @@ -122,10 +128,10 @@ public class CronetUrlRequestContextTest { * or failed. */ static class ShutdownTestUrlRequestCallback extends TestUrlRequestCallback { - private final CronetEngine mCronetEngine; + private final HttpEngine mCronetEngine; private final ConditionVariable mCallbackCompletionBlock = new ConditionVariable(); - ShutdownTestUrlRequestCallback(CronetEngine cronetEngine) { + ShutdownTestUrlRequestCallback(HttpEngine cronetEngine) { mCronetEngine = cronetEngine; } @@ -137,7 +143,7 @@ public class CronetUrlRequestContextTest { } @Override - public void onFailed(UrlRequest request, UrlResponseInfo info, CronetException error) { + public void onFailed(UrlRequest request, UrlResponseInfo info, HttpException error) { super.onFailed(request, info, error); mCronetEngine.shutdown(); mCallbackCompletionBlock.open(); @@ -155,16 +161,16 @@ public class CronetUrlRequestContextTest { public void testConfigUserAgent() throws Exception { String userAgentName = "User-Agent"; String userAgentValue = "User-Agent-Value"; - ExperimentalCronetEngine.Builder cronetEngineBuilder = - new ExperimentalCronetEngine.Builder(getContext()); + ExperimentalHttpEngine.Builder cronetEngineBuilder = + new ExperimentalHttpEngine.Builder(getContext()); cronetEngineBuilder.setUserAgent(userAgentValue); - final CronetEngine cronetEngine = cronetEngineBuilder.build(); + final HttpEngine cronetEngine = cronetEngineBuilder.build(); NativeTestServer.shutdownNativeTestServer(); // startNativeTestServer returns false if it's // already running assertTrue(NativeTestServer.startNativeTestServer(getContext())); TestUrlRequestCallback callback = new TestUrlRequestCallback(); UrlRequest.Builder urlRequestBuilder = cronetEngine.newUrlRequestBuilder( - NativeTestServer.getEchoHeaderURL(userAgentName), callback, callback.getExecutor()); + NativeTestServer.getEchoHeaderURL(userAgentName), callback.getExecutor(), callback); urlRequestBuilder.build().start(); callback.blockForDone(); assertEquals(userAgentValue, callback.mResponseAsString); @@ -182,7 +188,7 @@ public class CronetUrlRequestContextTest { // if there are active requests. callback.setAutoAdvance(false); UrlRequest.Builder urlRequestBuilder = testFramework.mCronetEngine.newUrlRequestBuilder( - mUrl, callback, callback.getExecutor()); + mUrl, callback.getExecutor(), callback); UrlRequest urlRequest = urlRequestBuilder.build(); urlRequest.start(); try { @@ -246,7 +252,7 @@ public class CronetUrlRequestContextTest { // Create new request context, but its initialization on the main thread // will be stuck behind blockingTask. final CronetUrlRequestContext cronetEngine = - (CronetUrlRequestContext) new CronetEngine.Builder(getContext()).build(); + (CronetUrlRequestContext) new HttpEngine.Builder(getContext()).build(); // Unblock the main thread, so context gets initialized and shutdown on // it. block.open(); @@ -273,7 +279,7 @@ public class CronetUrlRequestContextTest { public void run() { // Create new request context, loading the library. final CronetUrlRequestContext cronetEngine = - (CronetUrlRequestContext) new CronetEngine.Builder(getContext()).build(); + (CronetUrlRequestContext) new HttpEngine.Builder(getContext()).build(); // Shutdown right after init. cronetEngine.shutdown(); // Verify that context is shutdown. @@ -314,7 +320,7 @@ public class CronetUrlRequestContextTest { ShutdownTestUrlRequestCallback callback = new ShutdownTestUrlRequestCallback(testFramework.mCronetEngine); UrlRequest.Builder urlRequestBuilder = testFramework.mCronetEngine.newUrlRequestBuilder( - MOCK_CRONET_TEST_FAILED_URL, callback, callback.getExecutor()); + MOCK_CRONET_TEST_FAILED_URL, callback.getExecutor(), callback); urlRequestBuilder.build().start(); callback.blockForDone(); assertTrue(callback.mOnErrorCalled); @@ -332,7 +338,7 @@ public class CronetUrlRequestContextTest { // if there are active requests. callback.setAutoAdvance(false); UrlRequest.Builder urlRequestBuilder = testFramework.mCronetEngine.newUrlRequestBuilder( - mUrl, callback, callback.getExecutor()); + mUrl, callback.getExecutor(), callback); UrlRequest urlRequest = urlRequestBuilder.build(); urlRequest.start(); try { @@ -366,10 +372,10 @@ public class CronetUrlRequestContextTest { // progress. callback.setAutoAdvance(false); - ExperimentalUrlRequest.Builder urlRequestBuilder = (ExperimentalUrlRequest.Builder) + UrlRequest.Builder urlRequestBuilder = testFramework.mCronetEngine.newUrlRequestBuilder( - mUrl, callback, callback.getExecutor()); - urlRequestBuilder.bindToNetwork(defaultNetwork.getNetworkHandle()); + mUrl, callback.getExecutor(), callback); + urlRequestBuilder.bindToNetwork(defaultNetwork); UrlRequest urlRequest = urlRequestBuilder.build(); assertFalse( @@ -421,7 +427,7 @@ public class CronetUrlRequestContextTest { final CronetTestFramework testFramework = mTestRule.startCronetTestFramework(); TestUrlRequestCallback callback = new TestUrlRequestCallback(); callback.setAutoAdvance(false); - ExperimentalUrlRequest.Builder urlRequestBuilder = (ExperimentalUrlRequest.Builder) + UrlRequest.Builder urlRequestBuilder = testFramework.mCronetEngine.newUrlRequestBuilder( mUrl, callback, callback.getExecutor()); ConnectivityManagerDelegate delegate = new ConnectivityManagerDelegate(getContext()); @@ -431,7 +437,7 @@ public class CronetUrlRequestContextTest { return; } - urlRequestBuilder.bindToNetwork(defaultNetwork.getNetworkHandle()); + urlRequestBuilder.bindToNetwork(defaultNetwork); UrlRequest urlRequest = urlRequestBuilder.build(); assertFalse( @@ -473,7 +479,7 @@ public class CronetUrlRequestContextTest { Context context = getContext(); File directory = new File(PathUtils.getDataDirectory()); File file = File.createTempFile("cronet", "json", directory); - CronetEngine cronetEngine = new CronetEngine.Builder(context).build(); + HttpEngine cronetEngine = new HttpEngine.Builder(context).build(); // Start NetLog immediately after the request context is created to make // sure that the call won't crash the app even when the native request // context is not fully initialized. See crbug.com/470196. @@ -482,7 +488,7 @@ public class CronetUrlRequestContextTest { // Start a request. TestUrlRequestCallback callback = new TestUrlRequestCallback(); UrlRequest.Builder urlRequestBuilder = - cronetEngine.newUrlRequestBuilder(mUrl, callback, callback.getExecutor()); + cronetEngine.newUrlRequestBuilder(mUrl, callback.getExecutor(), callback); urlRequestBuilder.build().start(); callback.blockForDone(); cronetEngine.stopNetLog(); @@ -503,8 +509,8 @@ public class CronetUrlRequestContextTest { assertFalse(netLogDir.exists()); assertTrue(netLogDir.mkdir()); File logFile = new File(netLogDir, "netlog.json"); - ExperimentalCronetEngine cronetEngine = - new ExperimentalCronetEngine.Builder(context).build(); + ExperimentalHttpEngine cronetEngine = + new ExperimentalHttpEngine.Builder(context).build(); // Start NetLog immediately after the request context is created to make // sure that the call won't crash the app even when the native request // context is not fully initialized. See crbug.com/470196. @@ -533,13 +539,13 @@ public class CronetUrlRequestContextTest { Context context = getContext(); File directory = new File(PathUtils.getDataDirectory()); File file = File.createTempFile("cronet", "json", directory); - CronetEngine cronetEngine = new CronetEngine.Builder(context).build(); + HttpEngine cronetEngine = new HttpEngine.Builder(context).build(); cronetEngine.startNetLogToFile(file.getPath(), false); // Start a request. TestUrlRequestCallback callback = new TestUrlRequestCallback(); UrlRequest.Builder urlRequestBuilder = - cronetEngine.newUrlRequestBuilder(mUrl, callback, callback.getExecutor()); + cronetEngine.newUrlRequestBuilder(mUrl, callback.getExecutor(), callback); urlRequestBuilder.build().start(); callback.blockForDone(); // Shut down the engine without calling stopNetLog. @@ -563,8 +569,8 @@ public class CronetUrlRequestContextTest { assertFalse(netLogDir.exists()); assertTrue(netLogDir.mkdir()); File logFile = new File(netLogDir, "netlog.json"); - ExperimentalCronetEngine cronetEngine = - new ExperimentalCronetEngine.Builder(context).build(); + ExperimentalHttpEngine cronetEngine = + new ExperimentalHttpEngine.Builder(context).build(); cronetEngine.startNetLogToDisk(netLogDir.getPath(), false, MAX_FILE_SIZE); // Start a request. @@ -586,7 +592,7 @@ public class CronetUrlRequestContextTest { @SmallTest public void testGetActiveRequestCount() throws Exception { final CronetTestFramework testFramework = mTestRule.startCronetTestFramework(); - CronetEngine cronetEngine = testFramework.mCronetEngine; + HttpEngine cronetEngine = testFramework.mCronetEngine; TestUrlRequestCallback callback1 = new TestUrlRequestCallback(); TestUrlRequestCallback callback2 = new TestUrlRequestCallback(); callback1.setAutoAdvance(false); @@ -615,7 +621,7 @@ public class CronetUrlRequestContextTest { @SmallTest public void testGetActiveRequestCountOnReachingSucceeded() throws Exception { final CronetTestFramework testFramework = mTestRule.startCronetTestFramework(); - CronetEngine cronetEngine = testFramework.mCronetEngine; + HttpEngine cronetEngine = testFramework.mCronetEngine; TestUrlRequestCallback callback = new TestUrlRequestCallback(); callback.setAutoAdvance(false); callback.setBlockOnTerminalState(true); @@ -637,7 +643,7 @@ public class CronetUrlRequestContextTest { @SmallTest public void testGetActiveRequestCountOnReachingCancel() throws Exception { final CronetTestFramework testFramework = mTestRule.startCronetTestFramework(); - CronetEngine cronetEngine = testFramework.mCronetEngine; + HttpEngine cronetEngine = testFramework.mCronetEngine; TestUrlRequestCallback callback = new TestUrlRequestCallback(); callback.setAutoAdvance(false); callback.setBlockOnTerminalState(true); @@ -659,7 +665,7 @@ public class CronetUrlRequestContextTest { public void testGetActiveRequestCountOnReachingFail() throws Exception { final String badUrl = "www.unreachable-url.com"; final CronetTestFramework testFramework = mTestRule.startCronetTestFramework(); - CronetEngine cronetEngine = testFramework.mCronetEngine; + HttpEngine cronetEngine = testFramework.mCronetEngine; TestUrlRequestCallback callback = new TestUrlRequestCallback(); callback.setAutoAdvance(false); callback.setBlockOnTerminalState(true); @@ -679,7 +685,7 @@ public class CronetUrlRequestContextTest { @SmallTest public void testGetActiveRequestCountWithCancel() throws Exception { final CronetTestFramework testFramework = mTestRule.startCronetTestFramework(); - CronetEngine cronetEngine = testFramework.mCronetEngine; + HttpEngine cronetEngine = testFramework.mCronetEngine; TestUrlRequestCallback callback1 = new TestUrlRequestCallback(); TestUrlRequestCallback callback2 = new TestUrlRequestCallback(); callback1.setAutoAdvance(false); @@ -709,7 +715,7 @@ public class CronetUrlRequestContextTest { public void testGetActiveRequestCountWithError() throws Exception { final String badUrl = "www.unreachable-url.com"; final CronetTestFramework testFramework = mTestRule.startCronetTestFramework(); - CronetEngine cronetEngine = testFramework.mCronetEngine; + HttpEngine cronetEngine = testFramework.mCronetEngine; TestUrlRequestCallback callback1 = new TestUrlRequestCallback(); TestUrlRequestCallback callback2 = new TestUrlRequestCallback(); callback1.setAutoAdvance(false); @@ -743,8 +749,8 @@ public class CronetUrlRequestContextTest { File directory = new File(PathUtils.getDataDirectory()); File file1 = File.createTempFile("cronet1", "json", directory); File file2 = File.createTempFile("cronet2", "json", directory); - CronetEngine cronetEngine1 = new CronetEngine.Builder(context).build(); - CronetEngine cronetEngine2 = new CronetEngine.Builder(context).build(); + HttpEngine cronetEngine1 = new HttpEngine.Builder(context).build(); + HttpEngine cronetEngine2 = new HttpEngine.Builder(context).build(); cronetEngine1.startNetLogToFile(file1.getPath(), false); cronetEngine2.startNetLogToFile(file2.getPath(), false); @@ -790,10 +796,10 @@ public class CronetUrlRequestContextTest { File logFile1 = new File(netLogDir1, "netlog.json"); File logFile2 = new File(netLogDir2, "netlog.json"); - ExperimentalCronetEngine cronetEngine1 = - new ExperimentalCronetEngine.Builder(context).build(); - ExperimentalCronetEngine cronetEngine2 = - new ExperimentalCronetEngine.Builder(context).build(); + ExperimentalHttpEngine cronetEngine1 = + new ExperimentalHttpEngine.Builder(context).build(); + ExperimentalHttpEngine cronetEngine2 = + new ExperimentalHttpEngine.Builder(context).build(); cronetEngine1.startNetLogToDisk(netLogDir1.getPath(), false, MAX_FILE_SIZE); cronetEngine2.startNetLogToDisk(netLogDir2.getPath(), false, MAX_FILE_SIZE); @@ -830,13 +836,13 @@ public class CronetUrlRequestContextTest { assertFalse(netLogDir2.exists()); } - private CronetEngine createCronetEngineWithCache(int cacheType) { - CronetEngine.Builder builder = new CronetEngine.Builder(getContext()); - if (cacheType == CronetEngine.Builder.HTTP_CACHE_DISK - || cacheType == CronetEngine.Builder.HTTP_CACHE_DISK_NO_HTTP) { + private HttpEngine createCronetEngineWithCache(int cacheType) { + HttpEngine.Builder builder = new HttpEngine.Builder(getContext()); + if (cacheType == HttpEngine.Builder.HTTP_CACHE_DISK + || cacheType == HttpEngine.Builder.HTTP_CACHE_DISK_NO_HTTP) { builder.setStoragePath(getTestStorage(getContext())); } - builder.enableHttpCache(cacheType, 100 * 1024); + builder.setEnableHttpCache(cacheType, 100 * 1024); // Don't check the return value here, because startNativeTestServer() returns false when the // NativeTestServer is already running and this method needs to be called twice without // shutting down the NativeTestServer in between. @@ -850,8 +856,8 @@ public class CronetUrlRequestContextTest { // Tests that if CronetEngine is shut down on the network thread, an appropriate exception // is thrown. public void testShutDownEngineOnNetworkThread() throws Exception { - final CronetEngine cronetEngine = - createCronetEngineWithCache(CronetEngine.Builder.HTTP_CACHE_DISK); + final HttpEngine cronetEngine = + createCronetEngineWithCache(HttpEngine.Builder.HTTP_CACHE_DISK); String url = NativeTestServer.getFileURL("/cacheable.txt"); // Make a request to a cacheable resource. checkRequestCaching(cronetEngine, url, false); @@ -880,7 +886,7 @@ public class CronetUrlRequestContextTest { } @Override - public void onFailed(UrlRequest request, UrlResponseInfo info, CronetException error) { + public void onFailed(UrlRequest request, UrlResponseInfo info, HttpException error) { throw new RuntimeException("Unexpected"); } } @@ -894,7 +900,7 @@ public class CronetUrlRequestContextTest { callback.setAllowDirectExecutor(true); UrlRequest.Builder urlRequestBuilder = cronetEngine.newUrlRequestBuilder(url, callback, directExecutor); - urlRequestBuilder.allowDirectExecutor(); + urlRequestBuilder.setDirectExecutorAllowed(true); urlRequestBuilder.build().start(); callback.blockForDone(); assertTrue(thrown.get() instanceof RuntimeException); @@ -907,8 +913,8 @@ public class CronetUrlRequestContextTest { // Tests that if CronetEngine is shut down when reading from disk cache, // there isn't a crash. See crbug.com/486120. public void testShutDownEngineWhenReadingFromDiskCache() throws Exception { - final CronetEngine cronetEngine = - createCronetEngineWithCache(CronetEngine.Builder.HTTP_CACHE_DISK); + final HttpEngine cronetEngine = + createCronetEngineWithCache(HttpEngine.Builder.HTTP_CACHE_DISK); String url = NativeTestServer.getFileURL("/cacheable.txt"); // Make a request to a cacheable resource. checkRequestCaching(cronetEngine, url, false); @@ -932,13 +938,13 @@ public class CronetUrlRequestContextTest { } @Override - public void onFailed(UrlRequest request, UrlResponseInfo info, CronetException error) { + public void onFailed(UrlRequest request, UrlResponseInfo info, HttpException error) { throw new RuntimeException("Unexpected"); } } CancelUrlRequestCallback callback = new CancelUrlRequestCallback(); UrlRequest.Builder urlRequestBuilder = - cronetEngine.newUrlRequestBuilder(url, callback, callback.getExecutor()); + cronetEngine.newUrlRequestBuilder(url, callback.getExecutor(), callback); urlRequestBuilder.build().start(); callback.blockForDone(); assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); @@ -953,7 +959,7 @@ public class CronetUrlRequestContextTest { final CronetTestFramework testFramework = mTestRule.startCronetTestFramework(); TestUrlRequestCallback callback = new TestUrlRequestCallback(); UrlRequest.Builder urlRequestBuilder = testFramework.mCronetEngine.newUrlRequestBuilder( - mUrl, callback, callback.getExecutor()); + mUrl, callback.getExecutor(), callback); urlRequestBuilder.build().start(); callback.blockForDone(); testFramework.mCronetEngine.shutdown(); @@ -1015,7 +1021,7 @@ public class CronetUrlRequestContextTest { // Start a request. TestUrlRequestCallback callback = new TestUrlRequestCallback(); UrlRequest.Builder urlRequestBuilder = testFramework.mCronetEngine.newUrlRequestBuilder( - mUrl, callback, callback.getExecutor()); + mUrl, callback.getExecutor(), callback); urlRequestBuilder.build().start(); callback.blockForDone(); testFramework.mCronetEngine.stopNetLog(); @@ -1067,7 +1073,7 @@ public class CronetUrlRequestContextTest { // Start a request. TestUrlRequestCallback callback = new TestUrlRequestCallback(); UrlRequest.Builder urlRequestBuilder = testFramework.mCronetEngine.newUrlRequestBuilder( - mUrl, callback, callback.getExecutor()); + mUrl, callback.getExecutor(), callback); urlRequestBuilder.build().start(); callback.blockForDone(); // Stop NetLog multiple times. @@ -1121,13 +1127,13 @@ public class CronetUrlRequestContextTest { Context context = getContext(); File directory = new File(PathUtils.getDataDirectory()); File file = File.createTempFile("cronet", "json", directory); - CronetEngine cronetEngine = new CronetEngine.Builder(context).build(); + HttpEngine cronetEngine = new HttpEngine.Builder(context).build(); // Start NetLog with logAll as true. cronetEngine.startNetLogToFile(file.getPath(), true); // Start a request. TestUrlRequestCallback callback = new TestUrlRequestCallback(); UrlRequest.Builder urlRequestBuilder = - cronetEngine.newUrlRequestBuilder(mUrl, callback, callback.getExecutor()); + cronetEngine.newUrlRequestBuilder(mUrl, callback.getExecutor(), callback); urlRequestBuilder.build().start(); callback.blockForDone(); cronetEngine.stopNetLog(); @@ -1148,8 +1154,8 @@ public class CronetUrlRequestContextTest { assertFalse(netLogDir.exists()); assertTrue(netLogDir.mkdir()); File logFile = new File(netLogDir, "netlog.json"); - ExperimentalCronetEngine cronetEngine = - new ExperimentalCronetEngine.Builder(context).build(); + ExperimentalHttpEngine cronetEngine = + new ExperimentalHttpEngine.Builder(context).build(); // Start NetLog with logAll as true. cronetEngine.startNetLogToDisk(netLogDir.getPath(), true, MAX_FILE_SIZE); // Start a request. @@ -1191,26 +1197,26 @@ public class CronetUrlRequestContextTest { * complete, and check that the status code is the same as {@code expectedStatusCode}. */ private void makeRequestAndCheckStatus( - CronetEngine engine, String url, int expectedStatusCode) { + HttpEngine engine, String url, int expectedStatusCode) { TestUrlRequestCallback callback = new TestUrlRequestCallback(); UrlRequest request = - engine.newUrlRequestBuilder(url, callback, callback.getExecutor()).build(); + engine.newUrlRequestBuilder(url, callback.getExecutor(), callback).build(); request.start(); callback.blockForDone(); assertEquals(expectedStatusCode, callback.mResponseInfo.getHttpStatusCode()); } - private void checkRequestCaching(CronetEngine engine, String url, boolean expectCached) { + private void checkRequestCaching(HttpEngine engine, String url, boolean expectCached) { checkRequestCaching(engine, url, expectCached, false); } private void checkRequestCaching( - CronetEngine engine, String url, boolean expectCached, boolean disableCache) { + HttpEngine engine, String url, boolean expectCached, boolean disableCache) { TestUrlRequestCallback callback = new TestUrlRequestCallback(); UrlRequest.Builder urlRequestBuilder = - engine.newUrlRequestBuilder(url, callback, callback.getExecutor()); + engine.newUrlRequestBuilder(url, callback.getExecutor(), callback); if (disableCache) { - urlRequestBuilder.disableCache(); + urlRequestBuilder.setCacheDisabled(true); } urlRequestBuilder.build().start(); callback.blockForDone(); @@ -1222,8 +1228,8 @@ public class CronetUrlRequestContextTest { @SmallTest @OnlyRunNativeCronet public void testEnableHttpCacheDisabled() throws Exception { - CronetEngine cronetEngine = - createCronetEngineWithCache(CronetEngine.Builder.HTTP_CACHE_DISABLED); + HttpEngine cronetEngine = + createCronetEngineWithCache(HttpEngine.Builder.HTTP_CACHE_DISABLED); String url = NativeTestServer.getFileURL("/cacheable.txt"); checkRequestCaching(cronetEngine, url, false); checkRequestCaching(cronetEngine, url, false); @@ -1234,8 +1240,8 @@ public class CronetUrlRequestContextTest { @Test @SmallTest public void testEnableHttpCacheInMemory() throws Exception { - CronetEngine cronetEngine = - createCronetEngineWithCache(CronetEngine.Builder.HTTP_CACHE_IN_MEMORY); + HttpEngine cronetEngine = + createCronetEngineWithCache(HttpEngine.Builder.HTTP_CACHE_IN_MEMORY); String url = NativeTestServer.getFileURL("/cacheable.txt"); checkRequestCaching(cronetEngine, url, false); checkRequestCaching(cronetEngine, url, true); @@ -1247,8 +1253,8 @@ public class CronetUrlRequestContextTest { @Test @SmallTest public void testEnableHttpCacheDisk() throws Exception { - CronetEngine cronetEngine = - createCronetEngineWithCache(CronetEngine.Builder.HTTP_CACHE_DISK); + HttpEngine cronetEngine = + createCronetEngineWithCache(HttpEngine.Builder.HTTP_CACHE_DISK); String url = NativeTestServer.getFileURL("/cacheable.txt"); checkRequestCaching(cronetEngine, url, false); checkRequestCaching(cronetEngine, url, true); @@ -1261,10 +1267,10 @@ public class CronetUrlRequestContextTest { @SmallTest @OnlyRunNativeCronet public void testNoConcurrentDiskUsage() throws Exception { - CronetEngine cronetEngine = - createCronetEngineWithCache(CronetEngine.Builder.HTTP_CACHE_DISK); + HttpEngine cronetEngine = + createCronetEngineWithCache(HttpEngine.Builder.HTTP_CACHE_DISK); try { - createCronetEngineWithCache(CronetEngine.Builder.HTTP_CACHE_DISK); + createCronetEngineWithCache(HttpEngine.Builder.HTTP_CACHE_DISK); fail(); } catch (IllegalStateException e) { assertEquals("Disk cache storage path already in use", e.getMessage()); @@ -1281,8 +1287,8 @@ public class CronetUrlRequestContextTest { @SmallTest @OnlyRunNativeCronet public void testEnableHttpCacheDiskNoHttp() throws Exception { - CronetEngine cronetEngine = - createCronetEngineWithCache(CronetEngine.Builder.HTTP_CACHE_DISK_NO_HTTP); + HttpEngine cronetEngine = + createCronetEngineWithCache(HttpEngine.Builder.HTTP_CACHE_DISK_NO_HTTP); String url = NativeTestServer.getFileURL("/cacheable.txt"); checkRequestCaching(cronetEngine, url, false); checkRequestCaching(cronetEngine, url, false); @@ -1291,7 +1297,7 @@ public class CronetUrlRequestContextTest { // Make a new CronetEngine and try again to make sure the response didn't get cached on the // first request. See https://crbug.com/743232. cronetEngine.shutdown(); - cronetEngine = createCronetEngineWithCache(CronetEngine.Builder.HTTP_CACHE_DISK_NO_HTTP); + cronetEngine = createCronetEngineWithCache(HttpEngine.Builder.HTTP_CACHE_DISK_NO_HTTP); checkRequestCaching(cronetEngine, url, false); checkRequestCaching(cronetEngine, url, false); checkRequestCaching(cronetEngine, url, false); @@ -1301,8 +1307,8 @@ public class CronetUrlRequestContextTest { @Test @SmallTest public void testDisableCache() throws Exception { - CronetEngine cronetEngine = - createCronetEngineWithCache(CronetEngine.Builder.HTTP_CACHE_DISK); + HttpEngine cronetEngine = + createCronetEngineWithCache(HttpEngine.Builder.HTTP_CACHE_DISK); String url = NativeTestServer.getFileURL("/cacheable.txt"); // When cache is disabled, making a request does not write to the cache. @@ -1320,8 +1326,8 @@ public class CronetUrlRequestContextTest { // Cache is disabled after server is shut down, request should fail. TestUrlRequestCallback callback = new TestUrlRequestCallback(); UrlRequest.Builder urlRequestBuilder = - cronetEngine.newUrlRequestBuilder(url, callback, callback.getExecutor()); - urlRequestBuilder.disableCache(); + cronetEngine.newUrlRequestBuilder(url, callback.getExecutor(), callback); + urlRequestBuilder.setCacheDisabled(true); urlRequestBuilder.build().start(); callback.blockForDone(); assertNotNull(callback.mError); @@ -1333,8 +1339,8 @@ public class CronetUrlRequestContextTest { @Test @SmallTest public void testEnableHttpCacheDiskNewEngine() throws Exception { - CronetEngine cronetEngine = - createCronetEngineWithCache(CronetEngine.Builder.HTTP_CACHE_DISK); + HttpEngine cronetEngine = + createCronetEngineWithCache(HttpEngine.Builder.HTTP_CACHE_DISK); String url = NativeTestServer.getFileURL("/cacheable.txt"); checkRequestCaching(cronetEngine, url, false); checkRequestCaching(cronetEngine, url, true); @@ -1344,7 +1350,7 @@ public class CronetUrlRequestContextTest { // Shutdown original context and create another that uses the same cache. cronetEngine.shutdown(); cronetEngine = - mTestRule.enableDiskCache(new CronetEngine.Builder(getContext())).build(); + mTestRule.enableDiskCache(new HttpEngine.Builder(getContext())).build(); checkRequestCaching(cronetEngine, url, true); cronetEngine.shutdown(); } @@ -1353,10 +1359,10 @@ public class CronetUrlRequestContextTest { @SmallTest public void testInitEngineAndStartRequest() { // Immediately make a request after initializing the engine. - CronetEngine cronetEngine = new CronetEngine.Builder(getContext()).build(); + HttpEngine cronetEngine = new HttpEngine.Builder(getContext()).build(); TestUrlRequestCallback callback = new TestUrlRequestCallback(); UrlRequest.Builder urlRequestBuilder = - cronetEngine.newUrlRequestBuilder(mUrl, callback, callback.getExecutor()); + cronetEngine.newUrlRequestBuilder(mUrl, callback.getExecutor(), callback); urlRequestBuilder.build().start(); callback.blockForDone(); assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); @@ -1367,13 +1373,13 @@ public class CronetUrlRequestContextTest { @SmallTest public void testInitEngineStartTwoRequests() throws Exception { // Make two requests after initializing the context. - CronetEngine cronetEngine = new CronetEngine.Builder(getContext()).build(); + HttpEngine cronetEngine = new HttpEngine.Builder(getContext()).build(); int[] statusCodes = {0, 0}; String[] urls = {mUrl, mUrl404}; for (int i = 0; i < 2; i++) { TestUrlRequestCallback callback = new TestUrlRequestCallback(); UrlRequest.Builder urlRequestBuilder = - cronetEngine.newUrlRequestBuilder(urls[i], callback, callback.getExecutor()); + cronetEngine.newUrlRequestBuilder(urls[i], callback.getExecutor(), callback); urlRequestBuilder.build().start(); callback.blockForDone(); statusCodes[i] = callback.mResponseInfo.getHttpStatusCode(); @@ -1421,11 +1427,10 @@ public class CronetUrlRequestContextTest { // Test that concurrently instantiating Cronet context's upon various // different versions of the same Android Context does not cause crashes // like crbug.com/453845 - CronetEngine firstEngine = new CronetEngine.Builder(getContext()).build(); - CronetEngine secondEngine = - new CronetEngine.Builder(getContext()).build(); - CronetEngine thirdEngine = - new CronetEngine.Builder(new ContextWrapper(getContext())).build(); + HttpEngine firstEngine = new HttpEngine.Builder(getContext()).build(); + HttpEngine secondEngine = new HttpEngine.Builder(getContext()).build(); + HttpEngine thirdEngine = + new HttpEngine.Builder(new ContextWrapper(getContext())).build(); firstEngine.shutdown(); secondEngine.shutdown(); thirdEngine.shutdown(); @@ -1441,7 +1446,7 @@ public class CronetUrlRequestContextTest { TestUrlRequestCallback callback = new TestUrlRequestCallback(); UrlRequest.Builder builder = testFramework.mCronetEngine.newUrlRequestBuilder( - mUrl, callback, callback.getExecutor()); + mUrl, callback.getExecutor(), callback); builder.build().start(); callback.blockForDone(); // Fetch deltas on a different thread the second time to make sure this is permitted. @@ -1464,16 +1469,16 @@ public class CronetUrlRequestContextTest { // This is to prompt load of native library. mTestRule.startCronetTestFramework(); // Verify CronetEngine.Builder config is passed down accurately to native code. - ExperimentalCronetEngine.Builder builder = - new ExperimentalCronetEngine.Builder(getContext()); - builder.enableHttp2(false); - builder.enableQuic(true); + ExperimentalHttpEngine.Builder builder = + new ExperimentalHttpEngine.Builder(getContext()); + builder.setEnableHttp2(false); + builder.setEnableQuic(true); builder.addQuicHint("example.com", 12, 34); - builder.enableHttpCache(HTTP_CACHE_IN_MEMORY, 54321); + builder.setEnableHttpCache(HTTP_CACHE_IN_MEMORY, 54321); builder.setUserAgent("efgh"); builder.setExperimentalOptions(""); builder.setStoragePath(getTestStorage(getContext())); - builder.enablePublicKeyPinningBypassForLocalTrustAnchors(false); + builder.setEnablePublicKeyPinningBypassForLocalTrustAnchors(false); CronetUrlRequestContextTestJni.get().verifyUrlRequestContextConfig( CronetUrlRequestContext.createNativeUrlRequestContextConfig( CronetTestUtil.getCronetEngineBuilderImpl(builder)), @@ -1486,17 +1491,17 @@ public class CronetUrlRequestContextTest { // This is to prompt load of native library. mTestRule.startCronetTestFramework(); // Verify CronetEngine.Builder config is passed down accurately to native code. - ExperimentalCronetEngine.Builder builder = - new ExperimentalCronetEngine.Builder(getContext()); - builder.enableHttp2(false); + ExperimentalHttpEngine.Builder builder = + new ExperimentalHttpEngine.Builder(getContext()); + builder.setEnableHttp2(false); // QUIC is on by default. Disabling it here to make sure the built config can correctly // reflect the change. - builder.enableQuic(false); - builder.enableHttpCache(HTTP_CACHE_IN_MEMORY, 54321); + builder.setEnableQuic(false); + builder.setEnableHttpCache(HTTP_CACHE_IN_MEMORY, 54321); builder.setExperimentalOptions(""); builder.setUserAgent("efgh"); builder.setStoragePath(getTestStorage(getContext())); - builder.enablePublicKeyPinningBypassForLocalTrustAnchors(false); + builder.setEnablePublicKeyPinningBypassForLocalTrustAnchors(false); CronetUrlRequestContextTestJni.get().verifyUrlRequestContextQuicOffConfig( CronetUrlRequestContext.createNativeUrlRequestContextConfig( CronetTestUtil.getCronetEngineBuilderImpl(builder)), @@ -1513,12 +1518,12 @@ public class CronetUrlRequestContextTest { new Handler(Looper.getMainLooper()).post(new Runnable() { @Override public void run() { - final ExperimentalCronetEngine.Builder builder = - new ExperimentalCronetEngine.Builder(getContext()); + final ExperimentalHttpEngine.Builder builder = + new ExperimentalHttpEngine.Builder(getContext()); new Thread() { @Override public void run() { - CronetEngine cronetEngine = builder.build(); + HttpEngine cronetEngine = builder.build(); otherThreadDone.open(); cronetEngine.shutdown(); } @@ -1537,20 +1542,20 @@ public class CronetUrlRequestContextTest { public void testHostResolverRules() throws Exception { String resolverTestHostname = "some-weird-hostname"; URL testUrl = new URL(mUrl); - ExperimentalCronetEngine.Builder cronetEngineBuilder = - new ExperimentalCronetEngine.Builder(getContext()); + ExperimentalHttpEngine.Builder cronetEngineBuilder = + new ExperimentalHttpEngine.Builder(getContext()); JSONObject hostResolverRules = new JSONObject().put( "host_resolver_rules", "MAP " + resolverTestHostname + " " + testUrl.getHost()); JSONObject experimentalOptions = new JSONObject().put("HostResolverRules", hostResolverRules); cronetEngineBuilder.setExperimentalOptions(experimentalOptions.toString()); - final CronetEngine cronetEngine = cronetEngineBuilder.build(); + final HttpEngine cronetEngine = cronetEngineBuilder.build(); TestUrlRequestCallback callback = new TestUrlRequestCallback(); URL requestUrl = new URL("http", resolverTestHostname, testUrl.getPort(), testUrl.getFile()); UrlRequest.Builder urlRequestBuilder = cronetEngine.newUrlRequestBuilder( - requestUrl.toString(), callback, callback.getExecutor()); + requestUrl.toString(), callback.getExecutor(), callback); urlRequestBuilder.build().start(); callback.blockForDone(); assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); @@ -1559,7 +1564,7 @@ public class CronetUrlRequestContextTest { /** * Runs {@code r} on {@code engine}'s network thread. */ - private static void postToNetworkThread(final CronetEngine engine, final Runnable r) { + private static void postToNetworkThread(final HttpEngine engine, final Runnable r) { // Works by requesting an invalid URL which results in onFailed() being called, which is // done through a direct executor which causes onFailed to be run on the network thread. Executor directExecutor = new Executor() { @@ -1582,20 +1587,20 @@ public class CronetUrlRequestContextTest { @Override public void onFailed( - UrlRequest request, UrlResponseInfo responseInfo, CronetException error) { + UrlRequest request, UrlResponseInfo responseInfo, HttpException error) { r.run(); } @Override public void onCanceled(UrlRequest request, UrlResponseInfo responseInfo) {} }; - engine.newUrlRequestBuilder("", callback, directExecutor).build().start(); + engine.newUrlRequestBuilder("", directExecutor, callback).build().start(); } /** * @returns the thread priority of {@code engine}'s network thread. */ private static class ApiHelper { - public static boolean doesContextExistForNetwork(CronetEngine engine, Network network) + public static boolean doesContextExistForNetwork(HttpEngine engine, Network network) throws Exception { FutureTask<Boolean> task = new FutureTask<Boolean>(new Callable<Boolean>() { @Override @@ -1611,7 +1616,7 @@ public class CronetUrlRequestContextTest { /** * @returns the thread priority of {@code engine}'s network thread. */ - private int getThreadPriority(CronetEngine engine) throws Exception { + private int getThreadPriority(HttpEngine engine) throws Exception { FutureTask<Integer> task = new FutureTask<Integer>(new Callable<Integer>() { @Override public Integer call() { @@ -1626,8 +1631,8 @@ public class CronetUrlRequestContextTest { @SmallTest @RequiresMinApi(6) // setThreadPriority added in API 6: crrev.com/472449 public void testCronetEngineThreadPriority() throws Exception { - ExperimentalCronetEngine.Builder builder = - new ExperimentalCronetEngine.Builder(getContext()); + ExperimentalHttpEngine.Builder builder = + new ExperimentalHttpEngine.Builder(getContext()); // Try out of bounds thread priorities. try { builder.setThreadPriority(-21); @@ -1644,7 +1649,7 @@ public class CronetUrlRequestContextTest { // Test that valid thread priority range (-20..19) is working. for (int threadPriority = -20; threadPriority < 20; threadPriority++) { builder.setThreadPriority(threadPriority); - CronetEngine engine = builder.build(); + HttpEngine engine = builder.build(); assertEquals(threadPriority, getThreadPriority(engine)); engine.shutdown(); } diff --git a/components/cronet/android/test/javatests/src/org/chromium/net/CronetUrlRequestTest.java b/components/cronet/android/test/javatests/src/org/chromium/net/CronetUrlRequestTest.java index b76f18298..5a53fec37 100644 --- a/components/cronet/android/test/javatests/src/org/chromium/net/CronetUrlRequestTest.java +++ b/components/cronet/android/test/javatests/src/org/chromium/net/CronetUrlRequestTest.java @@ -14,6 +14,14 @@ import static org.junit.Assert.fail; import static org.chromium.net.CronetTestRule.assertContains; import static org.chromium.net.CronetTestRule.getContext; +import android.net.http.HttpException; +import android.net.http.ExperimentalUrlRequest; +import android.net.http.NetworkException; +import android.net.http.QuicException; +import android.net.http.UploadDataProvider; +import android.net.http.UploadDataSink; +import android.net.http.UrlRequest; +import android.net.http.UrlResponseInfo; import android.os.Build; import android.os.ConditionVariable; import android.os.Process; @@ -22,6 +30,7 @@ import android.os.StrictMode; import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.filters.SmallTest; +import android.net.http.apihelpers.UploadDataProviders; import org.junit.After; import org.junit.Before; import org.junit.Ignore; @@ -96,7 +105,7 @@ public class CronetUrlRequestTest { TestUrlRequestCallback callback = new TestUrlRequestCallback(); // Create request. UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestBuilder( - url, callback, callback.getExecutor()); + url, callback.getExecutor(), callback); UrlRequest urlRequest = builder.build(); urlRequest.start(); callback.blockForDone(); @@ -120,7 +129,7 @@ public class CronetUrlRequestTest { private void checkResponseInfoHeader( UrlResponseInfo responseInfo, String headerName, String headerValue) { Map<String, List<String>> responseHeaders = - responseInfo.getAllHeaders(); + responseInfo.getHeaders().getAsMap(); List<String> header = responseHeaders.get(headerName); assertNotNull(header); assertTrue(header.contains(headerValue)); @@ -132,14 +141,14 @@ public class CronetUrlRequestTest { TestUrlRequestCallback callback = new TestUrlRequestCallback(); try { mTestFramework.mCronetEngine.newUrlRequestBuilder( - null, callback, callback.getExecutor()); + null, callback.getExecutor(), callback); fail("URL not null-checked"); } catch (NullPointerException e) { assertEquals("URL is required.", e.getMessage()); } try { mTestFramework.mCronetEngine.newUrlRequestBuilder( - NativeTestServer.getRedirectURL(), null, callback.getExecutor()); + NativeTestServer.getRedirectURL(), callback.getExecutor(), null); fail("Callback not null-checked"); } catch (NullPointerException e) { assertEquals("Callback is required.", e.getMessage()); @@ -153,7 +162,7 @@ public class CronetUrlRequestTest { } // Verify successful creation doesn't throw. mTestFramework.mCronetEngine.newUrlRequestBuilder( - NativeTestServer.getRedirectURL(), callback, callback.getExecutor()); + NativeTestServer.getRedirectURL(), callback.getExecutor(), callback); } @Test @@ -234,7 +243,7 @@ public class CronetUrlRequestTest { TestUrlRequestCallback callback = new TestUrlRequestCallback(); callback.setAutoAdvance(false); UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestBuilder( - NativeTestServer.getRedirectURL(), callback, callback.getExecutor()); + NativeTestServer.getRedirectURL(), callback.getExecutor(), callback); UrlRequest urlRequest = builder.build(); urlRequest.start(); callback.waitForNextStep(); @@ -319,7 +328,7 @@ public class CronetUrlRequestTest { TestUrlRequestCallback callback = new TestUrlRequestCallback(); UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestBuilder( - url, callback, callback.getExecutor()); + url, callback.getExecutor(), callback); final UrlRequest urlRequest = builder.build(); urlRequest.start(); callback.blockForDone(); @@ -370,7 +379,7 @@ public class CronetUrlRequestTest { } @Override - public void onFailed(UrlRequest request, UrlResponseInfo info, CronetException error) { + public void onFailed(UrlRequest request, UrlResponseInfo info, HttpException error) { failedExpectation.set(true); fail(); } @@ -384,7 +393,7 @@ public class CronetUrlRequestTest { }; UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestBuilder( - NativeTestServer.getMultiRedirectURL(), callback, callback.getExecutor()); + NativeTestServer.getMultiRedirectURL(), callback.getExecutor(), callback); final UrlRequest urlRequest = builder.build(); urlRequest.start(); @@ -440,7 +449,7 @@ public class CronetUrlRequestTest { TestUrlRequestCallback callback = new TestUrlRequestCallback(); String methodName = "HEAD"; UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestBuilder( - NativeTestServer.getEchoMethodURL(), callback, callback.getExecutor()); + NativeTestServer.getEchoMethodURL(), callback.getExecutor(), callback); // Try to set 'null' method. try { builder.setHttpMethod(null); @@ -461,7 +470,7 @@ public class CronetUrlRequestTest { public void testBadMethod() throws Exception { TestUrlRequestCallback callback = new TestUrlRequestCallback(); UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestBuilder( - TEST_URL, callback, callback.getExecutor()); + TEST_URL, callback.getExecutor(), callback); try { builder.setHttpMethod("bad:method!"); builder.build().start(); @@ -477,7 +486,7 @@ public class CronetUrlRequestTest { public void testBadHeaderName() throws Exception { TestUrlRequestCallback callback = new TestUrlRequestCallback(); UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestBuilder( - TEST_URL, callback, callback.getExecutor()); + TEST_URL, callback.getExecutor(), callback); try { builder.addHeader("header:name", "headervalue"); builder.build().start(); @@ -493,7 +502,7 @@ public class CronetUrlRequestTest { public void testAcceptEncodingIgnored() throws Exception { TestUrlRequestCallback callback = new TestUrlRequestCallback(); UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestBuilder( - NativeTestServer.getEchoAllHeadersURL(), callback, callback.getExecutor()); + NativeTestServer.getEchoAllHeadersURL(), callback.getExecutor(), callback); // This line should eventually throw an exception, once callers have migrated builder.addHeader("accept-encoding", "foozip"); builder.build().start(); @@ -506,7 +515,7 @@ public class CronetUrlRequestTest { public void testBadHeaderValue() throws Exception { TestUrlRequestCallback callback = new TestUrlRequestCallback(); UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestBuilder( - TEST_URL, callback, callback.getExecutor()); + TEST_URL, callback.getExecutor(), callback); try { builder.addHeader("headername", "bad header\r\nvalue"); builder.build().start(); @@ -524,7 +533,7 @@ public class CronetUrlRequestTest { String headerName = "header-name"; String headerValue = "header-value"; UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestBuilder( - NativeTestServer.getEchoHeaderURL(headerName), callback, callback.getExecutor()); + NativeTestServer.getEchoHeaderURL(headerName), callback.getExecutor(), callback); builder.addHeader(headerName, headerValue); builder.build().start(); @@ -541,7 +550,7 @@ public class CronetUrlRequestTest { String headerValue1 = "header-value1"; String headerValue2 = "header-value2"; UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestBuilder( - NativeTestServer.getEchoAllHeadersURL(), callback, callback.getExecutor()); + NativeTestServer.getEchoAllHeadersURL(), callback.getExecutor(), callback); builder.addHeader(headerName, headerValue1); builder.addHeader(headerName, headerValue2); builder.build().start(); @@ -565,7 +574,7 @@ public class CronetUrlRequestTest { String refererName = "Referer"; String refererValue = "http://example.com/"; UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestBuilder( - NativeTestServer.getEchoHeaderURL(refererName), callback, callback.getExecutor()); + NativeTestServer.getEchoHeaderURL(refererName), callback.getExecutor(), callback); builder.addHeader(refererName, refererValue); builder.build().start(); callback.blockForDone(); @@ -581,7 +590,7 @@ public class CronetUrlRequestTest { String refererName = "Referer"; String refererValueNoTrailingSlash = "http://example.com"; UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestBuilder( - NativeTestServer.getEchoHeaderURL(refererName), callback, callback.getExecutor()); + NativeTestServer.getEchoHeaderURL(refererName), callback.getExecutor(), callback); builder.addHeader(refererName, refererValueNoTrailingSlash); builder.build().start(); callback.blockForDone(); @@ -597,7 +606,7 @@ public class CronetUrlRequestTest { String refererName = "Referer"; String invalidRefererValue = "foobar"; UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestBuilder( - NativeTestServer.getEchoHeaderURL(refererName), callback, callback.getExecutor()); + NativeTestServer.getEchoHeaderURL(refererName), callback.getExecutor(), callback); builder.addHeader(refererName, invalidRefererValue); builder.build().start(); callback.blockForDone(); @@ -612,7 +621,7 @@ public class CronetUrlRequestTest { String userAgentName = "User-Agent"; String userAgentValue = "User-Agent-Value"; UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestBuilder( - NativeTestServer.getEchoHeaderURL(userAgentName), callback, callback.getExecutor()); + NativeTestServer.getEchoHeaderURL(userAgentName), callback.getExecutor(), callback); builder.addHeader(userAgentName, userAgentValue); builder.build().start(); callback.blockForDone(); @@ -626,7 +635,7 @@ public class CronetUrlRequestTest { TestUrlRequestCallback callback = new TestUrlRequestCallback(); String headerName = "User-Agent"; UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestBuilder( - NativeTestServer.getEchoHeaderURL(headerName), callback, callback.getExecutor()); + NativeTestServer.getEchoHeaderURL(headerName), callback.getExecutor(), callback); builder.build().start(); callback.blockForDone(); assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); @@ -644,7 +653,7 @@ public class CronetUrlRequestTest { assertEquals(0, callback.mRedirectResponseInfoList.size()); assertTrue(callback.mHttpResponseDataLength != 0); assertEquals(callback.mResponseStep, ResponseStep.ON_SUCCEEDED); - Map<String, List<String>> responseHeaders = callback.mResponseInfo.getAllHeaders(); + Map<String, List<String>> responseHeaders = callback.mResponseInfo.getHeaders().getAsMap(); assertEquals("header-value", responseHeaders.get("header-name").get(0)); List<String> multiHeader = responseHeaders.get("multi-header-name"); assertEquals(2, multiHeader.size()); @@ -658,7 +667,7 @@ public class CronetUrlRequestTest { TestUrlRequestCallback callback = startAndWaitForComplete(NativeTestServer.getSuccessURL()); assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); List<Map.Entry<String, String>> responseHeaders = - callback.mResponseInfo.getAllHeadersAsList(); + callback.mResponseInfo.getHeaders().getAsList(); assertEquals(responseHeaders.get(0), new AbstractMap.SimpleEntry<>("Content-Type", "text/plain")); @@ -728,7 +737,7 @@ public class CronetUrlRequestTest { assertNull(callback.mResponseInfo); assertNotNull(callback.mError); assertEquals(arbitraryNetError, - ((NetworkException) callback.mError).getCronetInternalErrorCode()); + ((NetworkException) callback.mError).getInternalErrorCode()); assertEquals(0, callback.mRedirectCount); assertTrue(callback.mOnErrorCalled); assertEquals(ResponseStep.ON_FAILED, callback.mResponseStep); @@ -746,7 +755,7 @@ public class CronetUrlRequestTest { assertEquals(15, callback.mResponseInfo.getReceivedByteCount()); assertNotNull(callback.mError); assertEquals(arbitraryNetError, - ((NetworkException) callback.mError).getCronetInternalErrorCode()); + ((NetworkException) callback.mError).getInternalErrorCode()); assertEquals(0, callback.mRedirectCount); assertTrue(callback.mOnErrorCalled); assertEquals(ResponseStep.ON_FAILED, callback.mResponseStep); @@ -766,7 +775,7 @@ public class CronetUrlRequestTest { assertEquals(15, callback.mResponseInfo.getReceivedByteCount()); assertNotNull(callback.mError); assertEquals(arbitraryNetError, - ((NetworkException) callback.mError).getCronetInternalErrorCode()); + ((NetworkException) callback.mError).getInternalErrorCode()); assertEquals(0, callback.mRedirectCount); assertTrue(callback.mOnErrorCalled); assertEquals(ResponseStep.ON_FAILED, callback.mResponseStep); @@ -801,7 +810,7 @@ public class CronetUrlRequestTest { assertNull(callback.mResponseInfo); assertNotNull(callback.mError); assertTrue(callback.mOnErrorCalled); - assertEquals(-201, ((NetworkException) callback.mError).getCronetInternalErrorCode()); + assertEquals(-201, ((NetworkException) callback.mError).getInternalErrorCode()); assertContains("Exception in CronetUrlRequest: net::ERR_CERT_DATE_INVALID", callback.mError.getMessage()); assertEquals(ResponseStep.ON_FAILED, callback.mResponseStep); @@ -822,7 +831,7 @@ public class CronetUrlRequestTest { // getContext(), ServerCertificate.CERT_EXPIRED); TestUrlRequestCallback callback = new TestUrlRequestCallback(); UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestBuilder( - /* sslServer.getURL("/") */ null, callback, callback.getExecutor()); + /* sslServer.getURL("/") */ null, callback.getExecutor(), callback); TestUploadDataProvider dataProvider = new TestUploadDataProvider( TestUploadDataProvider.SuccessCallbackMode.SYNC, callback.getExecutor()); @@ -836,7 +845,7 @@ public class CronetUrlRequestTest { assertNull(callback.mResponseInfo); assertNotNull(callback.mError); assertTrue(callback.mOnErrorCalled); - assertEquals(-201, ((NetworkException) callback.mError).getCronetInternalErrorCode()); + assertEquals(-201, ((NetworkException) callback.mError).getInternalErrorCode()); assertContains("Exception in CronetUrlRequest: net::ERR_CERT_DATE_INVALID", callback.mError.getMessage()); assertEquals(ResponseStep.ON_FAILED, callback.mResponseStep); @@ -855,7 +864,7 @@ public class CronetUrlRequestTest { // Since the default method is "GET", the expected response body is also // "GET". UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestBuilder( - NativeTestServer.getEchoMethodURL(), callback, callback.getExecutor()); + NativeTestServer.getEchoMethodURL(), callback.getExecutor(), callback); UrlRequest urlRequest = builder.build(); urlRequest.start(); callback.waitForNextStep(); @@ -937,7 +946,7 @@ public class CronetUrlRequestTest { TestUrlRequestCallback callback = new TestUrlRequestCallback(); callback.setAutoAdvance(false); UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestBuilder( - NativeTestServer.getEchoMethodURL(), callback, callback.getExecutor()); + NativeTestServer.getEchoMethodURL(), callback.getExecutor(), callback); UrlRequest urlRequest = builder.build(); urlRequest.start(); callback.waitForNextStep(); @@ -980,7 +989,7 @@ public class CronetUrlRequestTest { final UrlRequest urlRequest = mTestFramework.mCronetEngine .newUrlRequestBuilder(NativeTestServer.getEchoHeaderURL("blah-header"), - callback, callback.getExecutor()) + callback.getExecutor(), callback) .addHeader("blah-header", "blahblahblah") .build(); urlRequest.start(); @@ -1010,7 +1019,7 @@ public class CronetUrlRequestTest { final UrlRequest urlRequest = mTestFramework.mCronetEngine .newUrlRequestBuilder( - NativeTestServer.getRedirectURL(), callback, callback.getExecutor()) + NativeTestServer.getRedirectURL(), callback.getExecutor(), callback) .build(); // Try to read before starting request. @@ -1086,7 +1095,7 @@ public class CronetUrlRequestTest { final UrlRequest urlRequest = mTestFramework.mCronetEngine .newUrlRequestBuilder( - NativeTestServer.getRedirectURL(), callback, callback.getExecutor()) + NativeTestServer.getRedirectURL(), callback.getExecutor(), callback) .build(); // Try to follow a redirect before starting the request. @@ -1157,7 +1166,7 @@ public class CronetUrlRequestTest { public void testUploadSetDataProvider() throws Exception { TestUrlRequestCallback callback = new TestUrlRequestCallback(); UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestBuilder( - NativeTestServer.getEchoBodyURL(), callback, callback.getExecutor()); + NativeTestServer.getEchoBodyURL(), callback.getExecutor(), callback); try { builder.setUploadDataProvider(null, callback.getExecutor()); @@ -1181,7 +1190,7 @@ public class CronetUrlRequestTest { public void testUploadEmptyBodySync() throws Exception { TestUrlRequestCallback callback = new TestUrlRequestCallback(); UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestBuilder( - NativeTestServer.getEchoBodyURL(), callback, callback.getExecutor()); + NativeTestServer.getEchoBodyURL(), callback.getExecutor(), callback); TestUploadDataProvider dataProvider = new TestUploadDataProvider( TestUploadDataProvider.SuccessCallbackMode.SYNC, callback.getExecutor()); @@ -1204,7 +1213,7 @@ public class CronetUrlRequestTest { public void testUploadSync() throws Exception { TestUrlRequestCallback callback = new TestUrlRequestCallback(); UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestBuilder( - NativeTestServer.getEchoBodyURL(), callback, callback.getExecutor()); + NativeTestServer.getEchoBodyURL(), callback.getExecutor(), callback); TestUploadDataProvider dataProvider = new TestUploadDataProvider( TestUploadDataProvider.SuccessCallbackMode.SYNC, callback.getExecutor()); @@ -1228,7 +1237,7 @@ public class CronetUrlRequestTest { public void testUploadMultiplePiecesSync() throws Exception { TestUrlRequestCallback callback = new TestUrlRequestCallback(); UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestBuilder( - NativeTestServer.getEchoBodyURL(), callback, callback.getExecutor()); + NativeTestServer.getEchoBodyURL(), callback.getExecutor(), callback); TestUploadDataProvider dataProvider = new TestUploadDataProvider( TestUploadDataProvider.SuccessCallbackMode.SYNC, callback.getExecutor()); @@ -1256,7 +1265,7 @@ public class CronetUrlRequestTest { public void testUploadMultiplePiecesAsync() throws Exception { TestUrlRequestCallback callback = new TestUrlRequestCallback(); UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestBuilder( - NativeTestServer.getEchoBodyURL(), callback, callback.getExecutor()); + NativeTestServer.getEchoBodyURL(), callback.getExecutor(), callback); TestUploadDataProvider dataProvider = new TestUploadDataProvider( TestUploadDataProvider.SuccessCallbackMode.ASYNC, callback.getExecutor()); @@ -1284,7 +1293,7 @@ public class CronetUrlRequestTest { public void testUploadChangesDefaultMethod() throws Exception { TestUrlRequestCallback callback = new TestUrlRequestCallback(); UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestBuilder( - NativeTestServer.getEchoMethodURL(), callback, callback.getExecutor()); + NativeTestServer.getEchoMethodURL(), callback.getExecutor(), callback); TestUploadDataProvider dataProvider = new TestUploadDataProvider( TestUploadDataProvider.SuccessCallbackMode.SYNC, callback.getExecutor()); @@ -1304,7 +1313,7 @@ public class CronetUrlRequestTest { public void testUploadWithSetMethod() throws Exception { TestUrlRequestCallback callback = new TestUrlRequestCallback(); UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestBuilder( - NativeTestServer.getEchoMethodURL(), callback, callback.getExecutor()); + NativeTestServer.getEchoMethodURL(), callback.getExecutor(), callback); final String method = "PUT"; builder.setHttpMethod(method); @@ -1327,7 +1336,7 @@ public class CronetUrlRequestTest { public void testUploadRedirectSync() throws Exception { TestUrlRequestCallback callback = new TestUrlRequestCallback(); UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestBuilder( - NativeTestServer.getRedirectToEchoBody(), callback, callback.getExecutor()); + NativeTestServer.getRedirectToEchoBody(), callback.getExecutor(), callback); TestUploadDataProvider dataProvider = new TestUploadDataProvider( TestUploadDataProvider.SuccessCallbackMode.SYNC, callback.getExecutor()); @@ -1351,7 +1360,7 @@ public class CronetUrlRequestTest { public void testUploadRedirectAsync() throws Exception { TestUrlRequestCallback callback = new TestUrlRequestCallback(); UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestBuilder( - NativeTestServer.getRedirectToEchoBody(), callback, callback.getExecutor()); + NativeTestServer.getRedirectToEchoBody(), callback.getExecutor(), callback); TestUploadDataProvider dataProvider = new TestUploadDataProvider( TestUploadDataProvider.SuccessCallbackMode.ASYNC, callback.getExecutor()); @@ -1375,7 +1384,7 @@ public class CronetUrlRequestTest { public void testUploadWithBadLength() throws Exception { TestUrlRequestCallback callback = new TestUrlRequestCallback(); UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestBuilder( - NativeTestServer.getEchoBodyURL(), callback, callback.getExecutor()); + NativeTestServer.getEchoBodyURL(), callback.getExecutor(), callback); TestUploadDataProvider dataProvider = new TestUploadDataProvider( TestUploadDataProvider.SuccessCallbackMode.SYNC, callback.getExecutor()) { @@ -1408,7 +1417,7 @@ public class CronetUrlRequestTest { public void testUploadWithBadLengthBufferAligned() throws Exception { TestUrlRequestCallback callback = new TestUrlRequestCallback(); UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestBuilder( - NativeTestServer.getEchoBodyURL(), callback, callback.getExecutor()); + NativeTestServer.getEchoBodyURL(), callback.getExecutor(), callback); TestUploadDataProvider dataProvider = new TestUploadDataProvider( TestUploadDataProvider.SuccessCallbackMode.SYNC, callback.getExecutor()) { @@ -1440,7 +1449,7 @@ public class CronetUrlRequestTest { public void testUploadReadFailSync() throws Exception { TestUrlRequestCallback callback = new TestUrlRequestCallback(); UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestBuilder( - NativeTestServer.getEchoBodyURL(), callback, callback.getExecutor()); + NativeTestServer.getEchoBodyURL(), callback.getExecutor(), callback); TestUploadDataProvider dataProvider = new TestUploadDataProvider( TestUploadDataProvider.SuccessCallbackMode.SYNC, callback.getExecutor()); @@ -1467,7 +1476,7 @@ public class CronetUrlRequestTest { public void testUploadLengthFailSync() throws Exception { TestUrlRequestCallback callback = new TestUrlRequestCallback(); UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestBuilder( - NativeTestServer.getEchoBodyURL(), callback, callback.getExecutor()); + NativeTestServer.getEchoBodyURL(), callback.getExecutor(), callback); TestUploadDataProvider dataProvider = new TestUploadDataProvider( TestUploadDataProvider.SuccessCallbackMode.SYNC, callback.getExecutor()); @@ -1494,7 +1503,7 @@ public class CronetUrlRequestTest { public void testUploadReadFailAsync() throws Exception { TestUrlRequestCallback callback = new TestUrlRequestCallback(); UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestBuilder( - NativeTestServer.getEchoBodyURL(), callback, callback.getExecutor()); + NativeTestServer.getEchoBodyURL(), callback.getExecutor(), callback); TestUploadDataProvider dataProvider = new TestUploadDataProvider( TestUploadDataProvider.SuccessCallbackMode.SYNC, callback.getExecutor()); @@ -1529,7 +1538,7 @@ public class CronetUrlRequestTest { } }; UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestBuilder( - NativeTestServer.getEchoBodyURL(), callback, callback.getExecutor()); + NativeTestServer.getEchoBodyURL(), callback.getExecutor(), callback); TestUploadDataProvider dataProvider = new TestUploadDataProvider( TestUploadDataProvider.SuccessCallbackMode.SYNC, myExecutor); @@ -1604,7 +1613,7 @@ public class CronetUrlRequestTest { UploadDataProvider dataProvider = UploadDataProviders.create("test".getBytes()); builder.setUploadDataProvider(dataProvider, myExecutor); builder.addHeader("Content-Type", "useless/string"); - builder.allowDirectExecutor(); + builder.setDirectExecutorAllowed(true); builder.build().start(); callback.blockForDone(); @@ -1621,7 +1630,7 @@ public class CronetUrlRequestTest { public void testUploadReadFailThrown() throws Exception { TestUrlRequestCallback callback = new TestUrlRequestCallback(); UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestBuilder( - NativeTestServer.getEchoBodyURL(), callback, callback.getExecutor()); + NativeTestServer.getEchoBodyURL(), callback.getExecutor(), callback); TestUploadDataProvider dataProvider = new TestUploadDataProvider( TestUploadDataProvider.SuccessCallbackMode.SYNC, callback.getExecutor()); @@ -1648,7 +1657,7 @@ public class CronetUrlRequestTest { public void testUploadRewindFailSync() throws Exception { TestUrlRequestCallback callback = new TestUrlRequestCallback(); UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestBuilder( - NativeTestServer.getRedirectToEchoBody(), callback, callback.getExecutor()); + NativeTestServer.getRedirectToEchoBody(), callback.getExecutor(), callback); TestUploadDataProvider dataProvider = new TestUploadDataProvider( TestUploadDataProvider.SuccessCallbackMode.SYNC, callback.getExecutor()); @@ -1673,7 +1682,7 @@ public class CronetUrlRequestTest { public void testUploadRewindFailAsync() throws Exception { TestUrlRequestCallback callback = new TestUrlRequestCallback(); UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestBuilder( - NativeTestServer.getRedirectToEchoBody(), callback, callback.getExecutor()); + NativeTestServer.getRedirectToEchoBody(), callback.getExecutor(), callback); TestUploadDataProvider dataProvider = new TestUploadDataProvider( TestUploadDataProvider.SuccessCallbackMode.ASYNC, callback.getExecutor()); @@ -1698,7 +1707,7 @@ public class CronetUrlRequestTest { public void testUploadRewindFailThrown() throws Exception { TestUrlRequestCallback callback = new TestUrlRequestCallback(); UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestBuilder( - NativeTestServer.getRedirectToEchoBody(), callback, callback.getExecutor()); + NativeTestServer.getRedirectToEchoBody(), callback.getExecutor(), callback); TestUploadDataProvider dataProvider = new TestUploadDataProvider( TestUploadDataProvider.SuccessCallbackMode.SYNC, callback.getExecutor()); @@ -1723,7 +1732,7 @@ public class CronetUrlRequestTest { public void testUploadChunked() throws Exception { TestUrlRequestCallback callback = new TestUrlRequestCallback(); UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestBuilder( - NativeTestServer.getEchoBodyURL(), callback, callback.getExecutor()); + NativeTestServer.getEchoBodyURL(), callback.getExecutor(), callback); TestUploadDataProvider dataProvider = new TestUploadDataProvider( TestUploadDataProvider.SuccessCallbackMode.SYNC, callback.getExecutor()); @@ -1748,7 +1757,7 @@ public class CronetUrlRequestTest { public void testUploadChunkedLastReadZeroLengthBody() throws Exception { TestUrlRequestCallback callback = new TestUrlRequestCallback(); UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestBuilder( - NativeTestServer.getEchoBodyURL(), callback, callback.getExecutor()); + NativeTestServer.getEchoBodyURL(), callback.getExecutor(), callback); TestUploadDataProvider dataProvider = new TestUploadDataProvider( TestUploadDataProvider.SuccessCallbackMode.SYNC, callback.getExecutor()); @@ -1779,7 +1788,7 @@ public class CronetUrlRequestTest { TestUrlRequestCallback callback = new TestUrlRequestCallback(); // The port for PTP will always refuse a TCP connection UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestBuilder( - "http://127.0.0.1:319", callback, callback.getExecutor()); + "http://127.0.0.1:319", callback.getExecutor(), callback); TestUploadDataProvider dataProvider = new TestUploadDataProvider( TestUploadDataProvider.SuccessCallbackMode.SYNC, callback.getExecutor()); @@ -1808,7 +1817,7 @@ public class CronetUrlRequestTest { TestUrlRequestCallback callback = new TestUrlRequestCallback(); callback.setFailure(failureType, failureStep); UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestBuilder( - NativeTestServer.getRedirectURL(), callback, callback.getExecutor()); + NativeTestServer.getRedirectURL(), callback.getExecutor(), callback); UrlRequest urlRequest = builder.build(); urlRequest.start(); callback.blockForDone(); @@ -1876,7 +1885,7 @@ public class CronetUrlRequestTest { TestUrlRequestCallback callback = new TestUrlRequestCallback(); callback.setFailure(type, ResponseStep.ON_SUCCEEDED); UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestBuilder( - NativeTestServer.getEchoMethodURL(), callback, callback.getExecutor()); + NativeTestServer.getEchoMethodURL(), callback.getExecutor(), callback); UrlRequest urlRequest = builder.build(); urlRequest.start(); callback.blockForDone(); @@ -1904,7 +1913,7 @@ public class CronetUrlRequestTest { TestUrlRequestCallback callback = new TestUrlRequestCallback(); callback.setFailure(type, ResponseStep.ON_FAILED); UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestBuilder( - url, callback, callback.getExecutor()); + url, callback.getExecutor(), callback); UrlRequest urlRequest = builder.build(); urlRequest.start(); callback.blockForDone(); @@ -1934,7 +1943,7 @@ public class CronetUrlRequestTest { }; callback.setFailure(type, ResponseStep.ON_CANCELED); UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestBuilder( - NativeTestServer.getEchoBodyURL(), callback, callback.getExecutor()); + NativeTestServer.getEchoBodyURL(), callback.getExecutor(), callback); UrlRequest urlRequest = builder.build(); urlRequest.start(); callback.blockForDone(); @@ -1956,7 +1965,7 @@ public class CronetUrlRequestTest { callback.setAutoAdvance(false); UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestBuilder( - NativeTestServer.getEchoBodyURL(), callback, callback.getExecutor()); + NativeTestServer.getEchoBodyURL(), callback.getExecutor(), callback); CronetUrlRequest urlRequest = (CronetUrlRequest) builder.build(); urlRequest.start(); callback.waitForNextStep(); @@ -2011,7 +2020,7 @@ public class CronetUrlRequestTest { TestUrlRequestCallback callback = new TestUrlRequestCallback(); UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestBuilder( - NativeTestServer.getEchoBodyURL(), callback, callback.getExecutor()); + NativeTestServer.getEchoBodyURL(), callback.getExecutor(), callback); ExecutorService uploadExecutor = Executors.newSingleThreadExecutor(); HangingUploadDataProvider dataProvider = new HangingUploadDataProvider(); @@ -2054,7 +2063,7 @@ public class CronetUrlRequestTest { public void testDestroyUploadDataStreamAdapterOnSucceededCallback() throws Exception { TestUrlRequestCallback callback = new QuitOnSuccessCallback(); UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestBuilder( - NativeTestServer.getEchoBodyURL(), callback, callback.getExecutor()); + NativeTestServer.getEchoBodyURL(), callback.getExecutor(), callback); TestUploadDataProvider dataProvider = new TestUploadDataProvider( TestUploadDataProvider.SuccessCallbackMode.SYNC, callback.getExecutor()); @@ -2114,7 +2123,7 @@ public class CronetUrlRequestTest { String url = NativeTestServer.getFileURL("/set_cookie.html"); TestUrlRequestCallback callback = startAndWaitForComplete(url); assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); - assertEquals("A=B", callback.mResponseInfo.getAllHeaders().get("Set-Cookie").get(0)); + assertEquals("A=B", callback.mResponseInfo.getHeaders().getAsMap().get("Set-Cookie").get(0)); // Make a request that check that cookie header isn't sent. String headerName = "Cookie"; @@ -2199,11 +2208,11 @@ public class CronetUrlRequestTest { } @Override - public void onFailed(UrlRequest request, UrlResponseInfo info, CronetException error) { + public void onFailed(UrlRequest request, UrlResponseInfo info, HttpException error) { assertTrue(error instanceof NetworkException); - assertEquals(netError, ((NetworkException) error).getCronetInternalErrorCode()); + assertEquals(netError, ((NetworkException) error).getInternalErrorCode()); failedExpectation.set( - ((NetworkException) error).getCronetInternalErrorCode() != netError); + ((NetworkException) error).getInternalErrorCode() != netError); done.open(); } @@ -2230,10 +2239,10 @@ public class CronetUrlRequestTest { MockUrlRequestJobFactory.getMockUrlWithFailure(FailurePhase.START, netError)); assertNull(callback.mResponseInfo); assertNotNull(callback.mError); - assertEquals(netError, ((NetworkException) callback.mError).getCronetInternalErrorCode()); + assertEquals(netError, ((NetworkException) callback.mError).getInternalErrorCode()); assertEquals(errorCode, ((NetworkException) callback.mError).getErrorCode()); assertEquals( - immediatelyRetryable, ((NetworkException) callback.mError).immediatelyRetryable()); + immediatelyRetryable, ((NetworkException) callback.mError).isImmediatelyRetryable()); assertContains( "Exception in CronetUrlRequest: net::ERR_" + name, callback.mError.getMessage()); assertEquals(0, callback.mRedirectCount); @@ -2277,7 +2286,7 @@ public class CronetUrlRequestTest { assertNull(callback.mResponseInfo); assertNotNull(callback.mError); assertEquals(cleartextNotPermitted, - ((NetworkException) callback.mError).getCronetInternalErrorCode()); + ((NetworkException) callback.mError).getInternalErrorCode()); } @Test @@ -2293,7 +2302,7 @@ public class CronetUrlRequestTest { callback.setAutoAdvance(false); UrlRequest urlRequest = mTestFramework.mCronetEngine - .newUrlRequestBuilder(url, callback, callback.getExecutor()) + .newUrlRequestBuilder(url, callback.getExecutor(), callback) .build(); urlRequest.start(); urlRequest.cancel(); @@ -2322,7 +2331,7 @@ public class CronetUrlRequestTest { public void test404Head() throws Exception { TestUrlRequestCallback callback = new TestUrlRequestCallback(); UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestBuilder( - NativeTestServer.getFileURL("/notfound.html"), callback, callback.getExecutor()); + NativeTestServer.getFileURL("/notfound.html"), callback.getExecutor(), callback); builder.setHttpMethod("HEAD").build().start(); callback.blockForDone(); } @@ -2342,8 +2351,8 @@ public class CronetUrlRequestTest { int tag = 0; long priorBytes = CronetTestUtil.nativeGetTaggedBytes(tag); TestUrlRequestCallback callback = new TestUrlRequestCallback(); - ExperimentalUrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestBuilder( - url, callback, callback.getExecutor()); + UrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestBuilder( + url, callback.getExecutor(), callback); builder.build().start(); callback.blockForDone(); assertTrue(CronetTestUtil.nativeGetTaggedBytes(tag) > priorBytes); @@ -2353,7 +2362,7 @@ public class CronetUrlRequestTest { priorBytes = CronetTestUtil.nativeGetTaggedBytes(tag); callback = new TestUrlRequestCallback(); builder = mTestFramework.mCronetEngine.newUrlRequestBuilder( - url, callback, callback.getExecutor()); + url, callback.getExecutor(), callback); assertEquals(builder.setTrafficStatsTag(tag), builder); builder.build().start(); callback.blockForDone(); @@ -2364,7 +2373,7 @@ public class CronetUrlRequestTest { priorBytes = CronetTestUtil.nativeGetTaggedBytes(tag); callback = new TestUrlRequestCallback(); builder = mTestFramework.mCronetEngine.newUrlRequestBuilder( - url, callback, callback.getExecutor()); + url, callback.getExecutor(), callback); assertEquals(builder.setTrafficStatsTag(tag), builder); builder.build().start(); callback.blockForDone(); @@ -2375,7 +2384,7 @@ public class CronetUrlRequestTest { priorBytes = CronetTestUtil.nativeGetTaggedBytes(tag); callback = new TestUrlRequestCallback(); builder = mTestFramework.mCronetEngine.newUrlRequestBuilder( - url, callback, callback.getExecutor()); + url, callback.getExecutor(), callback); assertEquals(builder.setTrafficStatsUid(Process.myUid()), builder); builder.build().start(); callback.blockForDone(); @@ -2421,7 +2430,7 @@ public class CronetUrlRequestTest { public void testSetIdempotency() throws Exception { TestUrlRequestCallback callback = new TestUrlRequestCallback(); ExperimentalUrlRequest.Builder builder = mTestFramework.mCronetEngine.newUrlRequestBuilder( - NativeTestServer.getEchoMethodURL(), callback, callback.getExecutor()); + NativeTestServer.getEchoMethodURL(), callback.getExecutor(), callback); assertEquals(builder.setIdempotency(ExperimentalUrlRequest.Builder.IDEMPOTENT), builder); TestUploadDataProvider dataProvider = new TestUploadDataProvider( diff --git a/components/cronet/android/test/javatests/src/org/chromium/net/DiskStorageTest.java b/components/cronet/android/test/javatests/src/org/chromium/net/DiskStorageTest.java index 59dfeed4b..1e16e8ea8 100644 --- a/components/cronet/android/test/javatests/src/org/chromium/net/DiskStorageTest.java +++ b/components/cronet/android/test/javatests/src/org/chromium/net/DiskStorageTest.java @@ -12,6 +12,10 @@ import static org.junit.Assert.fail; import static org.chromium.net.CronetTestRule.getContext; import static org.chromium.net.CronetTestRule.getTestStorage; +import android.net.http.HttpEngine; +import android.net.http.ExperimentalHttpEngine; +import android.net.http.UrlRequest; + import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.filters.SmallTest; @@ -66,12 +70,12 @@ public class DiskStorageTest { assertTrue(readOnlyStorage.mkdir()); // Setting the storage directory as readonly has no effect. assertTrue(readOnlyStorage.setReadOnly()); - ExperimentalCronetEngine.Builder builder = - new ExperimentalCronetEngine.Builder(getContext()); + ExperimentalHttpEngine.Builder builder = + new ExperimentalHttpEngine.Builder(getContext()); builder.setStoragePath(mReadOnlyStoragePath); - builder.enableHttpCache(CronetEngine.Builder.HTTP_CACHE_DISK, 1024 * 1024); + builder.setEnableHttpCache(HttpEngine.Builder.HTTP_CACHE_DISK, 1024 * 1024); - CronetEngine cronetEngine = builder.build(); + HttpEngine cronetEngine = builder.build(); TestUrlRequestCallback callback = new TestUrlRequestCallback(); String url = NativeTestServer.getFileURL("/cacheable.txt"); UrlRequest.Builder requestBuilder = @@ -129,12 +133,12 @@ public class DiskStorageTest { } } - ExperimentalCronetEngine.Builder builder = - new ExperimentalCronetEngine.Builder(getContext()); + ExperimentalHttpEngine.Builder builder = + new ExperimentalHttpEngine.Builder(getContext()); builder.setStoragePath(getTestStorage(getContext())); - builder.enableHttpCache(CronetEngine.Builder.HTTP_CACHE_DISK, 1024 * 1024); + builder.setEnableHttpCache(HttpEngine.Builder.HTTP_CACHE_DISK, 1024 * 1024); - CronetEngine cronetEngine = builder.build(); + HttpEngine cronetEngine = builder.build(); TestUrlRequestCallback callback = new TestUrlRequestCallback(); String url = NativeTestServer.getFileURL("/cacheable.txt"); UrlRequest.Builder requestBuilder = @@ -170,12 +174,12 @@ public class DiskStorageTest { // Tests that if cache version is current, Cronet does not purge the directory. public void testCacheVersionCurrent() throws Exception { // Initialize a CronetEngine and shut it down. - ExperimentalCronetEngine.Builder builder = - new ExperimentalCronetEngine.Builder(getContext()); + ExperimentalHttpEngine.Builder builder = + new ExperimentalHttpEngine.Builder(getContext()); builder.setStoragePath(getTestStorage(getContext())); - builder.enableHttpCache(CronetEngine.Builder.HTTP_CACHE_DISK, 1024 * 1024); + builder.setEnableHttpCache(HttpEngine.Builder.HTTP_CACHE_DISK, 1024 * 1024); - CronetEngine cronetEngine = builder.build(); + HttpEngine cronetEngine = builder.build(); TestUrlRequestCallback callback = new TestUrlRequestCallback(); String url = NativeTestServer.getFileURL("/cacheable.txt"); UrlRequest.Builder requestBuilder = @@ -201,7 +205,7 @@ public class DiskStorageTest { } // Creates a new CronetEngine and make a request. - CronetEngine engine = builder.build(); + HttpEngine engine = builder.build(); TestUrlRequestCallback callback2 = new TestUrlRequestCallback(); String url2 = NativeTestServer.getFileURL("/cacheable.txt"); UrlRequest.Builder requestBuilder2 = @@ -232,16 +236,16 @@ public class DiskStorageTest { // Tests that enableHttpCache throws if storage path not set public void testEnableHttpCacheThrowsIfStoragePathNotSet() throws Exception { // Initialize a CronetEngine and shut it down. - ExperimentalCronetEngine.Builder builder = - new ExperimentalCronetEngine.Builder(getContext()); + ExperimentalHttpEngine.Builder builder = + new ExperimentalHttpEngine.Builder(getContext()); try { - builder.enableHttpCache(CronetEngine.Builder.HTTP_CACHE_DISK, 1024 * 1024); + builder.setEnableHttpCache(HttpEngine.Builder.HTTP_CACHE_DISK, 1024 * 1024); fail("Enabling http cache without a storage path should throw an exception"); } catch (IllegalArgumentException e) { // Expected } - CronetEngine cronetEngine = builder.build(); + HttpEngine cronetEngine = builder.build(); TestUrlRequestCallback callback = new TestUrlRequestCallback(); String url = NativeTestServer.getFileURL("/cacheable.txt"); UrlRequest.Builder requestBuilder = @@ -266,11 +270,11 @@ public class DiskStorageTest { public void testPrefsFileCreatedWithoutHttpCache() throws Exception { // Initialize a CronetEngine and shut it down. String testStorage = getTestStorage(getContext()); - ExperimentalCronetEngine.Builder builder = - new ExperimentalCronetEngine.Builder(getContext()); + ExperimentalHttpEngine.Builder builder = + new ExperimentalHttpEngine.Builder(getContext()); builder.setStoragePath(testStorage); - CronetEngine cronetEngine = builder.build(); + HttpEngine cronetEngine = builder.build(); TestUrlRequestCallback callback = new TestUrlRequestCallback(); String url = NativeTestServer.getFileURL("/cacheable.txt"); UrlRequest.Builder requestBuilder = diff --git a/components/cronet/android/test/javatests/src/org/chromium/net/ExperimentalOptionsTest.java b/components/cronet/android/test/javatests/src/org/chromium/net/ExperimentalOptionsTest.java index 8c3ed567f..91069a994 100644 --- a/components/cronet/android/test/javatests/src/org/chromium/net/ExperimentalOptionsTest.java +++ b/components/cronet/android/test/javatests/src/org/chromium/net/ExperimentalOptionsTest.java @@ -4,14 +4,10 @@ package org.chromium.net; -import static com.google.common.truth.Truth.assertWithMessage; -import static com.google.common.truth.Truth.assertThat; - import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; -import static org.junit.Assert.assertThrows; import static org.junit.Assert.fail; import static org.chromium.net.CronetTestRule.SERVER_CERT_PEM; @@ -20,6 +16,16 @@ import static org.chromium.net.CronetTestRule.assertContains; import static org.chromium.net.CronetTestRule.getContext; import static org.chromium.net.CronetTestRule.getTestStorage; +import android.net.http.BidirectionalStream; +import android.net.http.ConnectionMigrationOptions; +import android.net.http.DnsOptions; +import android.net.http.ExperimentalHttpEngine; +import android.net.http.HttpEngine; +import android.net.http.IHttpEngineBuilder; +import android.net.http.NetworkException; +import android.net.http.QuicOptions; +import android.net.http.UrlRequest; + import androidx.annotation.OptIn; import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.filters.LargeTest; @@ -41,7 +47,7 @@ import org.chromium.base.annotations.JNINamespace; import org.chromium.base.annotations.NativeMethods; import org.chromium.base.test.util.DisabledTest; import org.chromium.net.CronetTestRule.OnlyRunNativeCronet; -import org.chromium.net.DnsOptions.StaleDnsOptions; +import android.net.http.DnsOptions.StaleDnsOptions; import org.chromium.net.impl.CronetUrlRequestContext; import java.io.File; @@ -49,6 +55,8 @@ import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.net.URL; +import java.time.Duration; +import java.time.Instant; import java.util.Collections; import java.util.Date; import java.util.HashMap; @@ -74,15 +82,15 @@ public class ExperimentalOptionsTest { public ExpectedException expectedException = ExpectedException.none(); private static final String TAG = ExperimentalOptionsTest.class.getSimpleName(); - private ExperimentalCronetEngine.Builder mBuilder; + private ExperimentalHttpEngine.Builder mBuilder; private CountDownLatch mHangingUrlLatch; @Before public void setUp() throws Exception { - mBuilder = new ExperimentalCronetEngine.Builder(getContext()); + mBuilder = new ExperimentalHttpEngine.Builder(getContext()); mHangingUrlLatch = new CountDownLatch(1); CronetTestUtil.setMockCertVerifierForTesting( - mBuilder, QuicTestServer.createMockCertVerifier()); + mBuilder, QuicTestServer.createMockCertVerifier()); assertTrue(Http2TestServer.startHttp2TestServer( getContext(), SERVER_CERT_PEM, SERVER_KEY_PKCS8_PEM, mHangingUrlLatch)); } @@ -106,7 +114,7 @@ public class ExperimentalOptionsTest { new JSONObject().put("HostResolverRules", hostResolverParams); mBuilder.setExperimentalOptions(experimentalOptions.toString()); - CronetEngine cronetEngine = mBuilder.build(); + HttpEngine cronetEngine = mBuilder.build(); cronetEngine.startNetLogToFile(logfile.getPath(), false); String url = Http2TestServer.getEchoMethodUrl(); TestUrlRequestCallback callback = new TestUrlRequestCallback(); @@ -131,7 +139,7 @@ public class ExperimentalOptionsTest { JSONObject experimentalOptions = new JSONObject().put("enable_telemetry", true); mBuilder.setExperimentalOptions(experimentalOptions.toString()); - CronetEngine cronetEngine = mBuilder.build(); + HttpEngine cronetEngine = mBuilder.build(); CronetUrlRequestContext context = (CronetUrlRequestContext) mBuilder.build(); assertTrue(context.getEnableTelemetryForTesting()); cronetEngine.shutdown(); @@ -141,7 +149,7 @@ public class ExperimentalOptionsTest { @MediumTest @OnlyRunNativeCronet public void testEnableTelemetryDefault() throws Exception { - CronetEngine cronetEngine = mBuilder.build(); + HttpEngine cronetEngine = mBuilder.build(); CronetUrlRequestContext context = (CronetUrlRequestContext) mBuilder.build(); assertFalse(context.getEnableTelemetryForTesting()); cronetEngine.shutdown(); @@ -159,7 +167,7 @@ public class ExperimentalOptionsTest { JSONObject experimentalOptions = new JSONObject().put("ssl_key_log_file", file.getPath()); mBuilder.setExperimentalOptions(experimentalOptions.toString()); - CronetEngine cronetEngine = mBuilder.build(); + HttpEngine cronetEngine = mBuilder.build(); TestUrlRequestCallback callback = new TestUrlRequestCallback(); UrlRequest.Builder builder = @@ -231,7 +239,7 @@ public class ExperimentalOptionsTest { String testUrl = new URL("http", testHost, realPort, javaUrl.getPath()).toString(); mBuilder.setStoragePath(getTestStorage(getContext())) - .enableHttpCache(CronetEngine.Builder.HTTP_CACHE_DISK, 0); + .setEnableHttpCache(HttpEngine.Builder.HTTP_CACHE_DISK, 0); // Set a short delay so the pref gets written quickly. JSONObject staleDns = new JSONObject() @@ -284,7 +292,7 @@ public class ExperimentalOptionsTest { public void testWrongJsonExperimentalOptions() throws Exception { try { mBuilder.setExperimentalOptions("Not a serialized JSON object"); - CronetEngine cronetEngine = mBuilder.build(); + HttpEngine cronetEngine = mBuilder.build(); fail("Setting invalid JSON should have thrown an exception."); } catch (IllegalArgumentException e) { assertTrue(e.getMessage().contains("Experimental options parsing failed")); @@ -301,10 +309,10 @@ public class ExperimentalOptionsTest { JSONObject experimentalOptions = new JSONObject().put("bidi_stream_detect_broken_connection", heartbeatIntervalSecs); mBuilder.setExperimentalOptions(experimentalOptions.toString()); - ExperimentalCronetEngine cronetEngine = (ExperimentalCronetEngine) mBuilder.build(); + HttpEngine cronetEngine = mBuilder.build(); TestBidirectionalStreamCallback callback = new TestBidirectionalStreamCallback(); - ExperimentalBidirectionalStream.Builder builder = + BidirectionalStream.Builder builder = cronetEngine.newBidirectionalStreamBuilder(url, callback, callback.getExecutor()) .setHttpMethod("GET"); BidirectionalStream stream = builder.build(); @@ -330,9 +338,9 @@ public class ExperimentalOptionsTest { JSONObject experimentalOptions = new JSONObject().put("bidi_stream_detect_broken_connection", heartbeatIntervalSecs); mBuilder.setExperimentalOptions(experimentalOptions.toString()); - ExperimentalCronetEngine cronetEngine = (ExperimentalCronetEngine) mBuilder.build(); + ExperimentalHttpEngine cronetEngine = mBuilder.build(); cronetEngine.addRequestFinishedListener(requestFinishedListener); - ExperimentalBidirectionalStream.Builder builder = + BidirectionalStream.Builder builder = cronetEngine .newBidirectionalStreamBuilder(hangingUrl, callback, callback.getExecutor()) .setHttpMethod("GET"); @@ -344,119 +352,135 @@ public class ExperimentalOptionsTest { assertContains("Exception in BidirectionalStream: net::ERR_HTTP2_PING_FAILED", callback.mError.getMessage()); assertEquals(NetError.ERR_HTTP2_PING_FAILED, - ((NetworkException) callback.mError).getCronetInternalErrorCode()); + ((NetworkException) callback.mError).getInternalErrorCode()); cronetEngine.shutdown(); } @Test @MediumTest + @OnlyRunNativeCronet public void testEnableDefaultNetworkConnectionMigrationApi_noBuilderSupport() { MockCronetBuilderImpl mockBuilderImpl = MockCronetBuilderImpl.withoutNativeSetterSupport(); - CronetEngine.Builder builder = new CronetEngine.Builder(mockBuilderImpl); + mBuilder = new ExperimentalHttpEngine.Builder(mockBuilderImpl); - builder.setConnectionMigrationOptions( - ConnectionMigrationOptions.builder().enableDefaultNetworkMigration(true)); - builder.build(); + mBuilder.setConnectionMigrationOptions( + ConnectionMigrationOptions.builder() + .setDefaultNetworkMigration( + ConnectionMigrationOptions.MIGRATION_OPTION_ENABLED)); + mBuilder.build(); - assertThat(mockBuilderImpl.mConnectionMigrationOptions).isNull(); + assertNull(mockBuilderImpl.mConnectionMigrationOptions); assertJsonEquals(EXPECTED_CONNECTION_MIGRATION_ENABLED_STRING, mockBuilderImpl.mEffectiveExperimentalOptions); } @Test @MediumTest + @OnlyRunNativeCronet public void enableDefaultNetworkConnectionMigrationApi_builderSupport() { MockCronetBuilderImpl mockBuilderImpl = MockCronetBuilderImpl.withNativeSetterSupport(); - CronetEngine.Builder builder = new CronetEngine.Builder(mockBuilderImpl); + mBuilder = new ExperimentalHttpEngine.Builder(mockBuilderImpl); - builder.setConnectionMigrationOptions( - ConnectionMigrationOptions.builder().enableDefaultNetworkMigration(true)); - builder.build(); + mBuilder.setConnectionMigrationOptions( + ConnectionMigrationOptions.builder() + .setDefaultNetworkMigration( + ConnectionMigrationOptions.MIGRATION_OPTION_ENABLED)); + mBuilder.build(); - assertThat(mockBuilderImpl.mConnectionMigrationOptions.getEnableDefaultNetworkMigration()) - .isTrue(); - assertThat(mockBuilderImpl.mEffectiveExperimentalOptions).isNull(); + assertEquals(ConnectionMigrationOptions.MIGRATION_OPTION_ENABLED, + mockBuilderImpl.mConnectionMigrationOptions.getDefaultNetworkMigration()); + assertNull(mockBuilderImpl.mEffectiveExperimentalOptions); } @Test @MediumTest + @OnlyRunNativeCronet public void testEnableDefaultNetworkConnectionMigrationApi_noBuilderSupport_setterTakesPrecedence() { MockCronetBuilderImpl mockBuilderImpl = MockCronetBuilderImpl.withoutNativeSetterSupport(); - // This test must instantiate an ExperimentalCronetEngine.Builder since we want to call - // setExperimentalOptions. We still cast it down to CronetEngine.Builder to confirm - // things work properly when using that (see crbug/1448520). - CronetEngine.Builder builder = new ExperimentalCronetEngine.Builder(mockBuilderImpl); - - builder.setConnectionMigrationOptions( - ConnectionMigrationOptions.builder().enableDefaultNetworkMigration(true)); - ((ExperimentalCronetEngine.Builder) builder) - .setExperimentalOptions( - "{\"QUIC\": {\"migrate_sessions_on_network_change_v2\": false}}"); - builder.build(); - - assertThat(mockBuilderImpl.mConnectionMigrationOptions).isNull(); + mBuilder = new ExperimentalHttpEngine.Builder(mockBuilderImpl); + + mBuilder.setConnectionMigrationOptions( + ConnectionMigrationOptions.builder() + .setDefaultNetworkMigration( + ConnectionMigrationOptions.MIGRATION_OPTION_ENABLED)); + mBuilder.setExperimentalOptions( + "{\"QUIC\": {\"migrate_sessions_on_network_change_v2\": false}}"); + mBuilder.build(); + + assertNull(mockBuilderImpl.mConnectionMigrationOptions); assertJsonEquals(EXPECTED_CONNECTION_MIGRATION_ENABLED_STRING, mockBuilderImpl.mEffectiveExperimentalOptions); } @Test @MediumTest + @OnlyRunNativeCronet public void testEnablePathDegradingConnectionMigration_justNonDefaultNetwork() { MockCronetBuilderImpl mockBuilderImpl = MockCronetBuilderImpl.withoutNativeSetterSupport(); - CronetEngine.Builder builder = new CronetEngine.Builder(mockBuilderImpl); + mBuilder = new ExperimentalHttpEngine.Builder(mockBuilderImpl); - builder.setConnectionMigrationOptions( - ConnectionMigrationOptions.builder().allowNonDefaultNetworkUsage(true)); - builder.build(); + mBuilder.setConnectionMigrationOptions( + ConnectionMigrationOptions.builder() + .setAllowNonDefaultNetworkUsage( + ConnectionMigrationOptions.MIGRATION_OPTION_ENABLED)); + mBuilder.build(); - assertThat(mockBuilderImpl.mConnectionMigrationOptions).isNull(); + assertNull(mockBuilderImpl.mConnectionMigrationOptions); assertJsonEquals("{\"QUIC\":{}}", mockBuilderImpl.mEffectiveExperimentalOptions); } @Test @MediumTest + @OnlyRunNativeCronet public void testEnablePathDegradingConnectionMigration_justPort() { MockCronetBuilderImpl mockBuilderImpl = MockCronetBuilderImpl.withoutNativeSetterSupport(); - CronetEngine.Builder builder = new CronetEngine.Builder(mockBuilderImpl); + mBuilder = new ExperimentalHttpEngine.Builder(mockBuilderImpl); - builder.setConnectionMigrationOptions( - ConnectionMigrationOptions.builder().enablePathDegradationMigration(true)); - builder.build(); + mBuilder.setConnectionMigrationOptions( + ConnectionMigrationOptions.builder() + .setPathDegradationMigration( + ConnectionMigrationOptions.MIGRATION_OPTION_ENABLED)); + mBuilder.build(); - assertThat(mockBuilderImpl.mConnectionMigrationOptions).isNull(); + assertNull(mockBuilderImpl.mConnectionMigrationOptions); assertJsonEquals("{\"QUIC\":{\"allow_port_migration\":true}}", mockBuilderImpl.mEffectiveExperimentalOptions); } @Test @MediumTest + @OnlyRunNativeCronet + @Ignore("b/267353182 fix failure") public void testEnablePathDegradingConnectionMigration_bothTrue() { MockCronetBuilderImpl mockBuilderImpl = MockCronetBuilderImpl.withoutNativeSetterSupport(); - CronetEngine.Builder builder = new CronetEngine.Builder(mockBuilderImpl); + mBuilder = new ExperimentalHttpEngine.Builder(mockBuilderImpl); - builder.setConnectionMigrationOptions(ConnectionMigrationOptions.builder() - .enablePathDegradationMigration(true) - .allowNonDefaultNetworkUsage(true)); - builder.build(); + mBuilder.setConnectionMigrationOptions(ConnectionMigrationOptions.builder() + .setPathDegradationMigration(ConnectionMigrationOptions.MIGRATION_OPTION_ENABLED) + .setAllowNonDefaultNetworkUsage( + ConnectionMigrationOptions.MIGRATION_OPTION_ENABLED)); + mBuilder.build(); - assertThat(mockBuilderImpl.mConnectionMigrationOptions).isNull(); + assertNull(mockBuilderImpl.mConnectionMigrationOptions); assertJsonEquals("{\"QUIC\":{\"migrate_sessions_early_v2\":true}}", mockBuilderImpl.mEffectiveExperimentalOptions); } @Test @MediumTest + @OnlyRunNativeCronet public void testEnablePathDegradingConnectionMigration_trueAndFalse() throws Exception { MockCronetBuilderImpl mockBuilderImpl = MockCronetBuilderImpl.withoutNativeSetterSupport(); - CronetEngine.Builder builder = new CronetEngine.Builder(mockBuilderImpl); + mBuilder = new ExperimentalHttpEngine.Builder(mockBuilderImpl); - builder.setConnectionMigrationOptions(ConnectionMigrationOptions.builder() - .enablePathDegradationMigration(true) - .allowNonDefaultNetworkUsage(false)); - builder.build(); + mBuilder.setConnectionMigrationOptions(ConnectionMigrationOptions.builder() + .setPathDegradationMigration(ConnectionMigrationOptions.MIGRATION_OPTION_ENABLED) + .setAllowNonDefaultNetworkUsage( + ConnectionMigrationOptions.MIGRATION_OPTION_DISABLED)); + mBuilder.build(); - assertThat(mockBuilderImpl.mConnectionMigrationOptions).isNull(); + assertNull(mockBuilderImpl.mConnectionMigrationOptions); assertJsonEquals( "{\"QUIC\":{\"migrate_sessions_early_v2\":false,\"allow_port_migration\":true}}", mockBuilderImpl.mEffectiveExperimentalOptions); @@ -464,37 +488,47 @@ public class ExperimentalOptionsTest { @Test @MediumTest + @OnlyRunNativeCronet public void testEnablePathDegradingConnectionMigration_invalid() { MockCronetBuilderImpl mockBuilderImpl = MockCronetBuilderImpl.withoutNativeSetterSupport(); - CronetEngine.Builder builder = new CronetEngine.Builder(mockBuilderImpl); + mBuilder = new ExperimentalHttpEngine.Builder(mockBuilderImpl); - builder.setConnectionMigrationOptions(ConnectionMigrationOptions.builder() - .enablePathDegradationMigration(false) - .allowNonDefaultNetworkUsage(true)); + mBuilder.setConnectionMigrationOptions(ConnectionMigrationOptions.builder() + .setPathDegradationMigration(ConnectionMigrationOptions.MIGRATION_OPTION_DISABLED) + .setAllowNonDefaultNetworkUsage( + ConnectionMigrationOptions.MIGRATION_OPTION_ENABLED)); - IllegalArgumentException e = assertThrows(IllegalArgumentException.class, builder::build); - assertThat(e).hasMessageThat().contains( - "Unable to turn on non-default network usage without path degradation migration"); + try { + mBuilder.build(); + fail(); + } catch (IllegalArgumentException expected) { + assertTrue(expected.getMessage().contains( + "Unable to turn on non-default network usage without path degradation" + + " migration")); + } } @Test @MediumTest + @OnlyRunNativeCronet public void testExperimentalOptions_allSet_viaExperimentalEngine() throws Exception { MockCronetBuilderImpl mockBuilderImpl = MockCronetBuilderImpl.withoutNativeSetterSupport(); testExperimentalOptionsAllSetImpl( - new CronetEngine.Builder(mockBuilderImpl), mockBuilderImpl); + new ExperimentalHttpEngine.Builder(mockBuilderImpl), mockBuilderImpl); } @Test @MediumTest + @OnlyRunNativeCronet public void testExperimentalOptions_allSet_viaNonExperimentalEngine() throws Exception { MockCronetBuilderImpl mockBuilderImpl = MockCronetBuilderImpl.withoutNativeSetterSupport(); testExperimentalOptionsAllSetImpl( - new CronetEngine.Builder(mockBuilderImpl), mockBuilderImpl); + new HttpEngine.Builder(mockBuilderImpl), mockBuilderImpl); } private static void testExperimentalOptionsAllSetImpl( - CronetEngine.Builder builder, MockCronetBuilderImpl mockBuilderImpl) throws Exception { + HttpEngine.Builder builder, + MockCronetBuilderImpl mockBuilderImpl) throws Exception { QuicOptions quicOptions = QuicOptions.builder() .addAllowedQuicHost("quicHost1.com") @@ -511,56 +545,70 @@ public class ExperimentalOptionsTest { .addExtraQuicheFlag("extraQuicheFlag1") .addExtraQuicheFlag("extraQuicheFlag2") .addExtraQuicheFlag("extraQuicheFlag1") - .setCryptoHandshakeTimeoutSeconds(toTelephoneKeyboardSequence("cryptoHs")) - .setIdleConnectionTimeoutSeconds( - toTelephoneKeyboardSequence("idleConTimeout")) + .setCryptoHandshakeTimeout(Duration.ofSeconds( + toTelephoneKeyboardSequence("cryptoHs"))) + .setIdleConnectionTimeout( + Duration.ofSeconds( + toTelephoneKeyboardSequence("idleConTimeout"))) .setHandshakeUserAgent("handshakeUserAgent") .setInitialBrokenServicePeriodSeconds( - toTelephoneKeyboardSequence("initialBrokenServicePeriod")) + Duration.ofSeconds( + toTelephoneKeyboardSequence( + "initialBrokenServicePeriod"))) .setInMemoryServerConfigsCacheSize( toTelephoneKeyboardSequence("inMemoryCacheSize")) - .setPreCryptoHandshakeIdleTimeoutSeconds( - toTelephoneKeyboardSequence("preCryptoHs")) - .setRetransmittableOnWireTimeoutMillis( - toTelephoneKeyboardSequence("retransmitOnWireTo")) - .retryWithoutAltSvcOnQuicErrors(false) - .enableTlsZeroRtt(true) - .closeSessionsOnIpChange(false) - .goawaySessionsOnIpChange(true) - .delayJobsWithAvailableSpdySession(false) - .increaseBrokenServicePeriodExponentially(true) + .setPreCryptoHandshakeIdleTimeout( + Duration.ofSeconds(toTelephoneKeyboardSequence("preCryptoHs"))) + .setRetransmittableOnWireTimeout( + Duration.ofMillis( + toTelephoneKeyboardSequence("retransmitOnWireTo"))) + .setRetryWithoutAltSvcOnQuicErrors(false) + .setEnableTlsZeroRtt(true) + .setCloseSessionsOnIpChange(false) + .setGoawaySessionsOnIpChange(true) + .setDelayJobsWithAvailableSpdySession(false) + .setIncreaseBrokenServicePeriodExponentially(true) .build(); DnsOptions dnsOptions = DnsOptions.builder() - .enableStaleDns(true) - .preestablishConnectionsToStaleDnsResults(false) - .persistHostCache(true) - .setPersistHostCachePeriodMillis( - toTelephoneKeyboardSequence("persistDelay")) - .useBuiltInDnsResolver(false) + .setStaleDns(DnsOptions.DNS_OPTION_ENABLED) + .setPreestablishConnectionsToStaleDnsResults(DnsOptions.DNS_OPTION_DISABLED) + .setPersistHostCache(DnsOptions.DNS_OPTION_ENABLED) + .setPersistHostCachePeriod( + Duration.ofMillis( + toTelephoneKeyboardSequence("persistDelay"))) + .setUseHttpStackDnsResolver(DnsOptions.DNS_OPTION_DISABLED) .setStaleDnsOptions( StaleDnsOptions.builder() - .allowCrossNetworkUsage(true) - .setFreshLookupTimeoutMillis( - toTelephoneKeyboardSequence("freshLookup")) - .setMaxExpiredDelayMillis( - toTelephoneKeyboardSequence("maxExpAge")) - .useStaleOnNameNotResolved(false)) + .setAllowCrossNetworkUsage(DnsOptions.DNS_OPTION_ENABLED) + .setFreshLookupTimeout( + Duration.ofMillis( + toTelephoneKeyboardSequence( + "freshLookup"))) + .setMaxExpiredDelay( + Duration.ofMillis( + toTelephoneKeyboardSequence( + "maxExpAge"))) + .setUseStaleOnNameNotResolved( + DnsOptions.DNS_OPTION_DISABLED)) .build(); ConnectionMigrationOptions connectionMigrationOptions = ConnectionMigrationOptions.builder() - .enableDefaultNetworkMigration(false) - .enablePathDegradationMigration(true) - .allowServerMigration(false) - .migrateIdleConnections(true) - .setIdleConnectionMigrationPeriodSeconds( - toTelephoneKeyboardSequence("idlePeriod")) - .retryPreHandshakeErrorsOnNonDefaultNetwork(false) - .allowNonDefaultNetworkUsage(true) + .setDefaultNetworkMigration( + ConnectionMigrationOptions.MIGRATION_OPTION_DISABLED) + .setPathDegradationMigration( + ConnectionMigrationOptions.MIGRATION_OPTION_ENABLED) + .setAllowServerMigration(false) + .setMigrateIdleConnections(true) + .setIdleMigrationPeriodSeconds( + Duration.ofSeconds(toTelephoneKeyboardSequence("idlePeriod"))) + .setAllowNonDefaultNetworkUsage( + ConnectionMigrationOptions.MIGRATION_OPTION_ENABLED) .setMaxTimeOnNonDefaultNetworkSeconds( - toTelephoneKeyboardSequence("maxTimeNotDefault")) + Duration.ofSeconds(toTelephoneKeyboardSequence( + "maxTimeNotDefault"))) .setMaxWriteErrorNonDefaultNetworkMigrationsCount( toTelephoneKeyboardSequence("writeErr")) .setMaxPathDegradingNonDefaultNetworkMigrationsCount( @@ -591,7 +639,6 @@ public class ExperimentalOptionsTest { + " \"allow_server_migration\": false," + " \"migrate_idle_sessions\": true," + " \"idle_session_migration_period_seconds\": 435370463," - + " \"retry_on_alternate_network_before_handshake\": false," + " \"max_time_on_non_default_network_seconds\": 629840858," + " \"max_migrations_to_non_default_network_on_path_degrading\": 223720377," + " \"max_migrations_to_non_default_network_on_write_error\": 7483377," @@ -623,15 +670,16 @@ public class ExperimentalOptionsTest { @Test @MediumTest + @OnlyRunNativeCronet public void testExperimentalOptions_noneSet() { MockCronetBuilderImpl mockBuilderImpl = MockCronetBuilderImpl.withoutNativeSetterSupport(); - CronetEngine.Builder builder = - new CronetEngine.Builder(mockBuilderImpl) - .setQuicOptions(QuicOptions.builder().build()) - .setConnectionMigrationOptions(ConnectionMigrationOptions.builder().build()) - .setDnsOptions(DnsOptions.builder().build()); + mBuilder = new ExperimentalHttpEngine.Builder(mockBuilderImpl); + + mBuilder.setQuicOptions(QuicOptions.builder().build()) + .setConnectionMigrationOptions(ConnectionMigrationOptions.builder().build()) + .setDnsOptions(DnsOptions.builder().build()); - builder.build(); + mBuilder.build(); assertJsonEquals("{\"QUIC\":{},\"AsyncDNS\":{},\"StaleDNS\":{}}", mockBuilderImpl.mEffectiveExperimentalOptions); } @@ -674,15 +722,15 @@ public class ExperimentalOptionsTest { JSONObject expectedJson = new JSONObject(expected); JSONObject actualJson = new JSONObject(actual); - assertJsonEquals(expectedJson, actualJson, ""); + assertJsonEquals(expectedJson, actualJson); } catch (JSONException e) { throw new AssertionError(e); } } - private static void assertJsonEquals(JSONObject expected, JSONObject actual, String currentPath) + private static void assertJsonEquals(JSONObject expected, JSONObject actual) throws JSONException { - assertThat(jsonKeys(actual)).isEqualTo(jsonKeys(expected)); + assertEquals(jsonKeys(expected), jsonKeys(actual)); for (String key : jsonKeys(expected)) { Object expectedValue = expected.get(key); @@ -690,16 +738,15 @@ public class ExperimentalOptionsTest { if (expectedValue == actualValue) { continue; } - String fullKey = currentPath.isEmpty() ? key : currentPath + "." + key; if (expectedValue instanceof JSONObject) { - assertWithMessage("key is '" + fullKey + "'") - .that(actualValue) - .isInstanceOf(JSONObject.class); - assertJsonEquals((JSONObject) expectedValue, (JSONObject) actualValue, fullKey); + if (actualValue instanceof JSONObject) { + assertJsonEquals((JSONObject) expectedValue, (JSONObject) actualValue); + } else { + fail("key [" + key + "]: expected [" + expectedValue + "] but got [" + + actualValue + "]"); + } } else { - assertWithMessage("key is '" + fullKey + "'") - .that(actualValue) - .isEqualTo(expectedValue); + assertEquals(expectedValue, actualValue); } } } @@ -718,7 +765,7 @@ public class ExperimentalOptionsTest { } // Mocks make life downstream miserable so use a custom mock-like class. - private static class MockCronetBuilderImpl extends ICronetEngineBuilder { + private static class MockCronetBuilderImpl extends IHttpEngineBuilder { private ConnectionMigrationOptions mConnectionMigrationOptions; private String mTempExperimentalOptions; private String mEffectiveExperimentalOptions; @@ -738,60 +785,55 @@ public class ExperimentalOptionsTest { } @Override - public ICronetEngineBuilder addPublicKeyPins(String hostName, Set<byte[]> pinsSha256, - boolean includeSubdomains, Date expirationDate) { + public IHttpEngineBuilder addPublicKeyPins(String hostName, Set<byte[]> pinsSha256, + boolean includeSubdomains, Instant expirationDate) { throw new UnsupportedOperationException(); } @Override - public ICronetEngineBuilder addQuicHint(String host, int port, int alternatePort) { + public IHttpEngineBuilder addQuicHint(String host, int port, int alternatePort) { throw new UnsupportedOperationException(); } @Override - public ICronetEngineBuilder enableHttp2(boolean value) { + public IHttpEngineBuilder enableHttp2(boolean value) { throw new UnsupportedOperationException(); } @Override - public ICronetEngineBuilder enableHttpCache(int cacheMode, long maxSize) { + public IHttpEngineBuilder enableHttpCache(int cacheMode, long maxSize) { throw new UnsupportedOperationException(); } @Override - public ICronetEngineBuilder enablePublicKeyPinningBypassForLocalTrustAnchors( + public IHttpEngineBuilder enablePublicKeyPinningBypassForLocalTrustAnchors( boolean value) { throw new UnsupportedOperationException(); } @Override - public ICronetEngineBuilder enableQuic(boolean value) { + public IHttpEngineBuilder enableQuic(boolean value) { throw new UnsupportedOperationException(); } @Override - public ICronetEngineBuilder enableSdch(boolean value) { + public IHttpEngineBuilder enableSdch(boolean value) { throw new UnsupportedOperationException(); } @Override - public ICronetEngineBuilder setExperimentalOptions(String options) { + public IHttpEngineBuilder setExperimentalOptions(String options) { mTempExperimentalOptions = options; return this; } @Override - public ICronetEngineBuilder setLibraryLoader(CronetEngine.Builder.LibraryLoader loader) { - throw new UnsupportedOperationException(); - } - - @Override - public ICronetEngineBuilder setStoragePath(String value) { + public IHttpEngineBuilder setStoragePath(String value) { throw new UnsupportedOperationException(); } @Override - public ICronetEngineBuilder setUserAgent(String userAgent) { + public IHttpEngineBuilder setUserAgent(String userAgent) { throw new UnsupportedOperationException(); } @@ -801,7 +843,7 @@ public class ExperimentalOptionsTest { } @Override - public ICronetEngineBuilder setConnectionMigrationOptions( + public IHttpEngineBuilder setConnectionMigrationOptions( ConnectionMigrationOptions options) { mConnectionMigrationOptions = options; return this; @@ -810,14 +852,14 @@ public class ExperimentalOptionsTest { @Override public Set<Integer> getSupportedConfigOptions() { if (mSupportsConnectionMigrationConfigOption) { - return Collections.singleton(ICronetEngineBuilder.CONNECTION_MIGRATION_OPTIONS); + return Collections.singleton(IHttpEngineBuilder.CONNECTION_MIGRATION_OPTIONS); } else { return Collections.emptySet(); } } @Override - public ExperimentalCronetEngine build() { + public ExperimentalHttpEngine build() { mEffectiveExperimentalOptions = mTempExperimentalOptions; return null; } diff --git a/components/cronet/android/test/javatests/src/org/chromium/net/GetStatusTest.java b/components/cronet/android/test/javatests/src/org/chromium/net/GetStatusTest.java index d2844c3b2..4e3a0a432 100644 --- a/components/cronet/android/test/javatests/src/org/chromium/net/GetStatusTest.java +++ b/components/cronet/android/test/javatests/src/org/chromium/net/GetStatusTest.java @@ -10,6 +10,7 @@ import static org.junit.Assert.fail; import static org.chromium.net.CronetTestRule.getContext; +import android.net.http.UrlRequest; import android.os.ConditionVariable; import androidx.test.ext.junit.runners.AndroidJUnit4; @@ -25,8 +26,8 @@ import org.junit.runner.RunWith; import org.chromium.net.CronetTestRule.CronetTestFramework; import org.chromium.net.CronetTestRule.OnlyRunNativeCronet; import org.chromium.net.TestUrlRequestCallback.ResponseStep; -import org.chromium.net.UrlRequest.Status; -import org.chromium.net.UrlRequest.StatusListener; +import android.net.http.UrlRequest.Status; +import android.net.http.UrlRequest.StatusListener; import org.chromium.net.impl.LoadState; import org.chromium.net.impl.UrlRequestBase; @@ -47,7 +48,7 @@ public class GetStatusTest { private CronetTestFramework mTestFramework; - private static class TestStatusListener extends StatusListener { + private static class TestStatusListener implements StatusListener { boolean mOnStatusCalled; int mStatus = Integer.MAX_VALUE; private final ConditionVariable mBlock = new ConditionVariable(); diff --git a/components/cronet/android/test/javatests/src/org/chromium/net/MetricsTestUtil.java b/components/cronet/android/test/javatests/src/org/chromium/net/MetricsTestUtil.java index 2cbbe76db..b40114eb8 100644 --- a/components/cronet/android/test/javatests/src/org/chromium/net/MetricsTestUtil.java +++ b/components/cronet/android/test/javatests/src/org/chromium/net/MetricsTestUtil.java @@ -4,12 +4,16 @@ package org.chromium.net; +import static java.time.temporal.ChronoUnit.MILLIS; + import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; -import java.util.Date; +import android.net.http.RequestFinishedInfo; + +import java.time.Instant; import java.util.LinkedList; import java.util.NoSuchElementException; import java.util.concurrent.Executor; @@ -42,11 +46,12 @@ public class MetricsTestUtil { } // Helper method to assert date1 is equals to or after date2. - // Some implementation of java.util.Date broke the symmetric property, so - // check both directions. - public static void assertAfter(Date date1, Date date2) { - assertTrue("date1: " + date1.getTime() + ", date2: " + date2.getTime(), - date1.after(date2) || date1.equals(date2) || date2.equals(date1)); + // Truncate to MILLIS because CronetMetrics are in MILLIS. + public static void assertAfter(Instant date1, Instant date2) { + Instant date1Ms = date1.truncatedTo(MILLIS); + Instant date2Ms = date2.truncatedTo(MILLIS); + assertTrue("date1: " + date1 + ", date2: " + date2Ms, + date1Ms.isAfter(date2Ms) || date1Ms.equals(date2Ms)); } /** @@ -57,7 +62,7 @@ public class MetricsTestUtil { * Don't check push times here. */ public static void checkTimingMetrics( - RequestFinishedInfo.Metrics metrics, Date startTime, Date endTime) { + RequestFinishedInfo.Metrics metrics, Instant startTime, Instant endTime) { assertNotNull(metrics.getRequestStart()); assertAfter(metrics.getRequestStart(), startTime); assertNotNull(metrics.getSendingStart()); @@ -76,7 +81,7 @@ public class MetricsTestUtil { * except SSL times in the case of non-https requests. */ public static void checkHasConnectTiming( - RequestFinishedInfo.Metrics metrics, Date startTime, Date endTime, boolean isSsl) { + RequestFinishedInfo.Metrics metrics, Instant startTime, Instant endTime, boolean isSsl) { assertNotNull(metrics.getDnsStart()); assertAfter(metrics.getDnsStart(), startTime); assertNotNull(metrics.getDnsEnd()); @@ -112,16 +117,13 @@ public class MetricsTestUtil { * Check that RequestFinishedInfo looks the way it should look for a normal successful request. */ public static void checkRequestFinishedInfo( - RequestFinishedInfo info, String url, Date startTime, Date endTime) { + RequestFinishedInfo info, String url, Instant startTime, Instant endTime) { assertNotNull("RequestFinishedInfo.Listener must be called", info); assertEquals(url, info.getUrl()); assertNotNull(info.getResponseInfo()); assertNull(info.getException()); RequestFinishedInfo.Metrics metrics = info.getMetrics(); assertNotNull("RequestFinishedInfo.getMetrics() must not be null", metrics); - // Check old (deprecated) timing metrics - assertTrue(metrics.getTotalTimeMs() >= 0); - assertTrue(metrics.getTotalTimeMs() >= metrics.getTtfbMs()); // Check new timing metrics checkTimingMetrics(metrics, startTime, endTime); assertNull(metrics.getPushStart()); diff --git a/components/cronet/android/test/javatests/src/org/chromium/net/MockCertVerifierTest.java b/components/cronet/android/test/javatests/src/org/chromium/net/MockCertVerifierTest.java index b6edd457e..809cda051 100644 --- a/components/cronet/android/test/javatests/src/org/chromium/net/MockCertVerifierTest.java +++ b/components/cronet/android/test/javatests/src/org/chromium/net/MockCertVerifierTest.java @@ -10,6 +10,9 @@ import static org.chromium.net.CronetTestRule.SERVER_CERT_PEM; import static org.chromium.net.CronetTestRule.SERVER_KEY_PKCS8_PEM; import static org.chromium.net.CronetTestRule.getContext; +import android.net.http.ExperimentalHttpEngine; +import android.net.http.UrlRequest; + import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.filters.SmallTest; @@ -29,7 +32,7 @@ public class MockCertVerifierTest { @Rule public final CronetTestRule mTestRule = new CronetTestRule(); - private ExperimentalCronetEngine mCronetEngine; + private ExperimentalHttpEngine mCronetEngine; @Before public void setUp() throws Exception { @@ -51,8 +54,8 @@ public class MockCertVerifierTest { @Test @SmallTest public void testRequest_failsWithoutMockVerifier() { - ExperimentalCronetEngine.Builder builder = - new ExperimentalCronetEngine.Builder(getContext()); + ExperimentalHttpEngine.Builder builder = + new ExperimentalHttpEngine.Builder(getContext()); mCronetEngine = builder.build(); String url = Http2TestServer.getEchoAllHeadersUrl(); @@ -64,8 +67,8 @@ public class MockCertVerifierTest { @Test @SmallTest public void testRequest_passesWithMockVerifier() { - ExperimentalCronetEngine.Builder builder = - new ExperimentalCronetEngine.Builder(getContext()); + ExperimentalHttpEngine.Builder builder = + new ExperimentalHttpEngine.Builder(getContext()); CronetTestUtil.setMockCertVerifierForTesting( builder, MockCertVerifier.createFreeForAllMockCertVerifier()); diff --git a/components/cronet/android/test/javatests/src/org/chromium/net/NQETest.java b/components/cronet/android/test/javatests/src/org/chromium/net/NQETest.java index f63b3ae80..097ea880a 100644 --- a/components/cronet/android/test/javatests/src/org/chromium/net/NQETest.java +++ b/components/cronet/android/test/javatests/src/org/chromium/net/NQETest.java @@ -11,6 +11,8 @@ import static org.junit.Assert.fail; import static org.chromium.net.CronetTestRule.getContext; import static org.chromium.net.CronetTestRule.getTestStorage; +import android.net.http.ExperimentalHttpEngine; +import android.net.http.UrlRequest; import android.os.StrictMode; import androidx.test.ext.junit.runners.AndroidJUnit4; @@ -92,9 +94,9 @@ public class NQETest { @SmallTest @OnlyRunNativeCronet public void testNotEnabled() throws Exception { - ExperimentalCronetEngine.Builder cronetEngineBuilder = - new ExperimentalCronetEngine.Builder(getContext()); - final ExperimentalCronetEngine cronetEngine = cronetEngineBuilder.build(); + ExperimentalHttpEngine.Builder cronetEngineBuilder = + new ExperimentalHttpEngine.Builder(getContext()); + final ExperimentalHttpEngine cronetEngine = cronetEngineBuilder.build(); Executor networkQualityExecutor = Executors.newSingleThreadExecutor(); TestNetworkQualityRttListener rttListener = new TestNetworkQualityRttListener(networkQualityExecutor); @@ -126,13 +128,13 @@ public class NQETest { @SmallTest @OnlyRunNativeCronet public void testListenerRemoved() throws Exception { - ExperimentalCronetEngine.Builder cronetEngineBuilder = - new ExperimentalCronetEngine.Builder(getContext()); + ExperimentalHttpEngine.Builder cronetEngineBuilder = + new ExperimentalHttpEngine.Builder(getContext()); TestExecutor networkQualityExecutor = new TestExecutor(); TestNetworkQualityRttListener rttListener = new TestNetworkQualityRttListener(networkQualityExecutor); cronetEngineBuilder.enableNetworkQualityEstimator(true); - final ExperimentalCronetEngine cronetEngine = cronetEngineBuilder.build(); + final ExperimentalHttpEngine cronetEngine = cronetEngineBuilder.build(); cronetEngine.configureNetworkQualityEstimatorForTesting(true, true, false); cronetEngine.addRttListener(rttListener); @@ -164,15 +166,16 @@ public class NQETest { @DisabledTest(message = "crbug.com/796260") @Ignore("crbug.com/796260") public void testQuicDisabled() throws Exception { - ExperimentalCronetEngine.Builder cronetEngineBuilder = - new ExperimentalCronetEngine.Builder(getContext()); + ExperimentalHttpEngine.Builder cronetEngineBuilder = + new ExperimentalHttpEngine.Builder(getContext()); assertTrue(RttThroughputValues.INVALID_RTT_THROUGHPUT < 0); Executor listenersExecutor = Executors.newSingleThreadExecutor(new ExecutorThreadFactory()); TestNetworkQualityRttListener rttListener = new TestNetworkQualityRttListener(listenersExecutor); TestNetworkQualityThroughputListener throughputListener = new TestNetworkQualityThroughputListener(listenersExecutor); - cronetEngineBuilder.enableNetworkQualityEstimator(true).enableHttp2(true).enableQuic(false); + cronetEngineBuilder.enableNetworkQualityEstimator(true).setEnableHttp2(true) + .setEnableQuic(false); // The pref may not be written if the computed Effective Connection Type (ECT) matches the // default ECT for the current connection type. Force the ECT to "Slow-2G". Since "Slow-2G" @@ -184,7 +187,7 @@ public class NQETest { cronetEngineBuilder.setExperimentalOptions(experimentalOptions.toString()); cronetEngineBuilder.setStoragePath(getTestStorage(getContext())); - final ExperimentalCronetEngine cronetEngine = cronetEngineBuilder.build(); + final ExperimentalHttpEngine cronetEngine = cronetEngineBuilder.build(); cronetEngine.configureNetworkQualityEstimatorForTesting(true, true, true); cronetEngine.addRttListener(rttListener); @@ -276,15 +279,15 @@ public class NQETest { // When the loop is run for the first time, network quality is written to the disk. The // test verifies that in the next loop, the network quality is read back. for (int i = 0; i <= 1; ++i) { - ExperimentalCronetEngine.Builder cronetEngineBuilder = - new ExperimentalCronetEngine.Builder(getContext()); + ExperimentalHttpEngine.Builder cronetEngineBuilder = + new ExperimentalHttpEngine.Builder(getContext()); assertTrue(RttThroughputValues.INVALID_RTT_THROUGHPUT < 0); Executor listenersExecutor = Executors.newSingleThreadExecutor(new ExecutorThreadFactory()); TestNetworkQualityRttListener rttListener = new TestNetworkQualityRttListener(listenersExecutor); - cronetEngineBuilder.enableNetworkQualityEstimator(true).enableHttp2(true).enableQuic( - false); + cronetEngineBuilder.enableNetworkQualityEstimator(true).setEnableHttp2(true) + .setEnableQuic(false); // The pref may not be written if the computed Effective Connection Type (ECT) matches // the default ECT for the current connection type. Force the ECT to "Slow-2G". Since @@ -299,7 +302,7 @@ public class NQETest { cronetEngineBuilder.setStoragePath(getTestStorage(getContext())); - final ExperimentalCronetEngine cronetEngine = cronetEngineBuilder.build(); + final ExperimentalHttpEngine cronetEngine = cronetEngineBuilder.build(); cronetEngine.configureNetworkQualityEstimatorForTesting(true, true, true); cronetEngine.addRttListener(rttListener); @@ -374,8 +377,8 @@ public class NQETest { @DisabledTest(message = "crbug.com/796260") @Ignore("crbug.com/796260") public void testQuicDisabledWithParams() throws Exception { - ExperimentalCronetEngine.Builder cronetEngineBuilder = - new ExperimentalCronetEngine.Builder(getContext()); + ExperimentalHttpEngine.Builder cronetEngineBuilder = + new ExperimentalHttpEngine.Builder(getContext()); Executor listenersExecutor = Executors.newSingleThreadExecutor(new ExecutorThreadFactory()); TestNetworkQualityRttListener rttListener = new TestNetworkQualityRttListener(listenersExecutor); @@ -391,9 +394,10 @@ public class NQETest { new JSONObject().put("NetworkQualityEstimator", nqeOptions); experimentalOptions.put("SomeOtherFieldTrialName", new JSONObject()); - cronetEngineBuilder.enableNetworkQualityEstimator(true).enableHttp2(true).enableQuic(false); + cronetEngineBuilder.enableNetworkQualityEstimator(true).setEnableHttp2(true) + .setEnableQuic(false); cronetEngineBuilder.setExperimentalOptions(experimentalOptions.toString()); - final ExperimentalCronetEngine cronetEngine = cronetEngineBuilder.build(); + final ExperimentalHttpEngine cronetEngine = cronetEngineBuilder.build(); cronetEngine.configureNetworkQualityEstimatorForTesting(true, true, false); cronetEngine.addRttListener(rttListener); diff --git a/components/cronet/android/test/javatests/src/org/chromium/net/NetworkChangeNotifierTest.java b/components/cronet/android/test/javatests/src/org/chromium/net/NetworkChangeNotifierTest.java index 457737c9d..0d4ed6a31 100644 --- a/components/cronet/android/test/javatests/src/org/chromium/net/NetworkChangeNotifierTest.java +++ b/components/cronet/android/test/javatests/src/org/chromium/net/NetworkChangeNotifierTest.java @@ -13,6 +13,8 @@ import static org.junit.Assert.assertTrue; import static org.chromium.net.CronetTestRule.assertContains; +import android.net.http.NetworkException; +import android.net.http.UrlRequest; import android.os.Build; import android.system.Os; @@ -93,7 +95,8 @@ public class NetworkChangeNotifierTest { CronetLibraryLoader.postToInitThread(new Runnable() { @Override public void run() { - NetworkChangeNotifier.getInstance().notifyObserversOfConnectionTypeChange( + NetworkChangeNotifier.fakeDefaultNetwork( + NetworkChangeNotifier.getInstance().getCurrentDefaultNetId(), ConnectionType.CONNECTION_4G); } }); @@ -103,7 +106,7 @@ public class NetworkChangeNotifierTest { assertNotNull(callback.mError); assertTrue(callback.mOnErrorCalled); assertEquals(NetError.ERR_NETWORK_CHANGED, - ((NetworkException) callback.mError).getCronetInternalErrorCode()); + ((NetworkException) callback.mError).getInternalErrorCode()); assertContains("Exception in CronetUrlRequest: net::ERR_NETWORK_CHANGED", callback.mError.getMessage()); } diff --git a/components/cronet/android/test/javatests/src/org/chromium/net/NetworkErrorLoggingTest.java b/components/cronet/android/test/javatests/src/org/chromium/net/NetworkErrorLoggingTest.java index 1ea48f07f..942728ad5 100644 --- a/components/cronet/android/test/javatests/src/org/chromium/net/NetworkErrorLoggingTest.java +++ b/components/cronet/android/test/javatests/src/org/chromium/net/NetworkErrorLoggingTest.java @@ -11,6 +11,10 @@ import static org.chromium.net.CronetTestRule.SERVER_CERT_PEM; import static org.chromium.net.CronetTestRule.SERVER_KEY_PKCS8_PEM; import static org.chromium.net.CronetTestRule.getContext; +import android.net.http.HttpEngine; +import android.net.http.ExperimentalHttpEngine; +import android.net.http.UrlRequest; + import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.filters.SmallTest; @@ -30,7 +34,7 @@ public class NetworkErrorLoggingTest { @Rule public final CronetTestRule mTestRule = new CronetTestRule(); - private CronetEngine mCronetEngine; + private HttpEngine mCronetEngine; @Before public void setUp() throws Exception { @@ -51,8 +55,8 @@ public class NetworkErrorLoggingTest { @SmallTest @OnlyRunNativeCronet public void testManualReportUpload() throws Exception { - ExperimentalCronetEngine.Builder builder = - new ExperimentalCronetEngine.Builder(getContext()); + ExperimentalHttpEngine.Builder builder = + new ExperimentalHttpEngine.Builder(getContext()); CronetTestUtil.setMockCertVerifierForTesting( builder, QuicTestServer.createMockCertVerifier()); mCronetEngine = builder.build(); @@ -77,8 +81,8 @@ public class NetworkErrorLoggingTest { @SmallTest @OnlyRunNativeCronet public void testUploadNELReportsFromHeaders() throws Exception { - ExperimentalCronetEngine.Builder builder = - new ExperimentalCronetEngine.Builder(getContext()); + ExperimentalHttpEngine.Builder builder = + new ExperimentalHttpEngine.Builder(getContext()); builder.setExperimentalOptions("{\"NetworkErrorLogging\": {\"enable\": true}}"); CronetTestUtil.setMockCertVerifierForTesting( builder, QuicTestServer.createMockCertVerifier()); @@ -112,8 +116,8 @@ public class NetworkErrorLoggingTest { @SmallTest @OnlyRunNativeCronet public void testUploadNELReportsFromPreloadedPolicy() throws Exception { - ExperimentalCronetEngine.Builder builder = - new ExperimentalCronetEngine.Builder(getContext()); + ExperimentalHttpEngine.Builder builder = + new ExperimentalHttpEngine.Builder(getContext()); String serverOrigin = Http2TestServer.getServerUrl(); String collectorUrl = Http2TestServer.getReportingCollectorUrl(); builder.setExperimentalOptions("" diff --git a/components/cronet/android/test/javatests/src/org/chromium/net/PkpTest.java b/components/cronet/android/test/javatests/src/org/chromium/net/PkpTest.java index 4d96be3fd..7a232aae9 100644 --- a/components/cronet/android/test/javatests/src/org/chromium/net/PkpTest.java +++ b/components/cronet/android/test/javatests/src/org/chromium/net/PkpTest.java @@ -14,6 +14,11 @@ import static org.chromium.net.CronetTestRule.SERVER_KEY_PKCS8_PEM; import static org.chromium.net.CronetTestRule.getContext; import static org.chromium.net.CronetTestRule.getTestStorage; +import android.net.http.HttpEngine; +import android.net.http.ExperimentalHttpEngine; +import android.net.http.NetworkException; +import android.net.http.UrlRequest; + import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.filters.SmallTest; @@ -30,9 +35,9 @@ import org.chromium.net.test.util.CertTestUtil; import java.io.ByteArrayInputStream; import java.security.cert.CertificateFactory; import java.security.cert.X509Certificate; +import java.time.Duration; +import java.time.Instant; import java.util.Arrays; -import java.util.Calendar; -import java.util.Date; import java.util.HashSet; import java.util.Set; @@ -41,7 +46,7 @@ import java.util.Set; */ @RunWith(AndroidJUnit4.class) public class PkpTest { - private static final int DISTANT_FUTURE = Integer.MAX_VALUE; + private static final Duration DISTANT_FUTURE = Duration.ofDays(999999); private static final boolean INCLUDE_SUBDOMAINS = true; private static final boolean EXCLUDE_SUBDOMAINS = false; private static final boolean KNOWN_ROOT = true; @@ -52,8 +57,8 @@ public class PkpTest { @Rule public final CronetTestRule mTestRule = new CronetTestRule(); - private CronetEngine mCronetEngine; - private ExperimentalCronetEngine.Builder mBuilder; + private HttpEngine mCronetEngine; + private ExperimentalHttpEngine.Builder mBuilder; private TestUrlRequestCallback mListener; private String mServerUrl; // https://test.example.com:8443 private String mServerHost; // test.example.com @@ -344,7 +349,7 @@ public class PkpTest { /** * Tests that NullPointerException is thrown if the host name or the collection of pins or - * the expiration date is null. + * the expiration instant is null. * * @throws Exception */ @@ -382,7 +387,7 @@ public class PkpTest { */ private void assertErrorResponse() { assertNotNull("Expected an error", mListener.mError); - int errorCode = ((NetworkException) mListener.mError).getCronetInternalErrorCode(); + int errorCode = ((NetworkException) mListener.mError).getInternalErrorCode(); Set<Integer> expectedErrors = new HashSet<>(); expectedErrors.add(NetError.ERR_CONNECTION_REFUSED); expectedErrors.add(NetError.ERR_SSL_PINNED_KEY_NOT_IN_CERT_CHAIN); @@ -397,7 +402,7 @@ public class PkpTest { private void assertSuccessfulResponse() { if (mListener.mError != null) { fail("Did not expect an error but got error code " - + ((NetworkException) mListener.mError).getCronetInternalErrorCode()); + + ((NetworkException) mListener.mError).getInternalErrorCode()); } assertNotNull("Expected non-null response from the server", mListener.mResponseInfo); assertEquals(200, mListener.mResponseInfo.getHttpStatusCode()); @@ -406,14 +411,14 @@ public class PkpTest { private void createCronetEngineBuilder(boolean bypassPinningForLocalAnchors, boolean knownRoot) throws Exception { // Set common CronetEngine parameters - mBuilder = new ExperimentalCronetEngine.Builder(getContext()); - mBuilder.enablePublicKeyPinningBypassForLocalTrustAnchors(bypassPinningForLocalAnchors); + mBuilder = new ExperimentalHttpEngine.Builder(getContext()); + mBuilder.setEnablePublicKeyPinningBypassForLocalTrustAnchors(bypassPinningForLocalAnchors); JSONObject hostResolverParams = CronetTestUtil.generateHostResolverRules(); JSONObject experimentalOptions = new JSONObject() .put("HostResolverRules", hostResolverParams); mBuilder.setExperimentalOptions(experimentalOptions.toString()); mBuilder.setStoragePath(getTestStorage(getContext())); - mBuilder.enableHttpCache(CronetEngine.Builder.HTTP_CACHE_DISK_NO_HTTP, 1000 * 1024); + mBuilder.setEnableHttpCache(HttpEngine.Builder.HTTP_CACHE_DISK_NO_HTTP, 1000 * 1024); final String[] server_certs = {SERVER_CERT_PEM}; CronetTestUtil.setMockCertVerifierForTesting( mBuilder, MockCertVerifier.createMockCertVerifier(server_certs, knownRoot)); @@ -438,10 +443,10 @@ public class PkpTest { @SuppressWarnings("ArrayAsKeyOfSetOrMap") private void addPkpSha256( - String host, byte[] pinHashValue, boolean includeSubdomain, int maxAgeInSec) { + String host, byte[] pinHashValue, boolean includeSubdomain, Duration maxAge) { Set<byte[]> hashes = new HashSet<>(); hashes.add(pinHashValue); - mBuilder.addPublicKeyPins(host, hashes, includeSubdomain, dateInFuture(maxAgeInSec)); + mBuilder.addPublicKeyPins(host, hashes, includeSubdomain, instantInFuture(maxAge)); } private void sendRequestAndWaitForResult() { @@ -460,10 +465,8 @@ public class PkpTest { return (X509Certificate) certFactory.generateCertificate(new ByteArrayInputStream(certDer)); } - private Date dateInFuture(int secondsIntoFuture) { - Calendar cal = Calendar.getInstance(); - cal.add(Calendar.SECOND, secondsIntoFuture); - return cal.getTime(); + private Instant instantInFuture(Duration howFarFromNow) { + return Instant.now().plus(howFarFromNow); } private void assertNoExceptionWhenHostNameIsValid(String hostName) { @@ -487,14 +490,14 @@ public class PkpTest { @SuppressWarnings("ArrayAsKeyOfSetOrMap") private void verifyExceptionWhenAddPkpArgumentIsNull( - boolean hostNameIsNull, boolean pinsAreNull, boolean expirationDataIsNull) { + boolean hostNameIsNull, boolean pinsAreNull, boolean expirationInstantIsNull) { String hostName = hostNameIsNull ? null : "some-host.com"; - Set<byte[]> pins = pinsAreNull ? null : new HashSet<byte[]>(); - Date expirationDate = expirationDataIsNull ? null : new Date(); + Set<byte[]> pins = pinsAreNull ? null : new HashSet<>(); + Instant expirationInstant = expirationInstantIsNull ? null : Instant.now(); - boolean shouldThrowNpe = hostNameIsNull || pinsAreNull || expirationDataIsNull; + boolean shouldThrowNpe = hostNameIsNull || pinsAreNull || expirationInstantIsNull; try { - mBuilder.addPublicKeyPins(hostName, pins, INCLUDE_SUBDOMAINS, expirationDate); + mBuilder.addPublicKeyPins(hostName, pins, INCLUDE_SUBDOMAINS, expirationInstant); } catch (NullPointerException ex) { if (!shouldThrowNpe) { fail("Null pointer exception was not expected: " + ex.toString()); diff --git a/components/cronet/android/test/javatests/src/org/chromium/net/QuicTest.java b/components/cronet/android/test/javatests/src/org/chromium/net/QuicTest.java index 472ba25c0..185f4db8e 100644 --- a/components/cronet/android/test/javatests/src/org/chromium/net/QuicTest.java +++ b/components/cronet/android/test/javatests/src/org/chromium/net/QuicTest.java @@ -10,6 +10,12 @@ import static org.junit.Assert.assertTrue; import static org.chromium.net.CronetTestRule.getContext; import static org.chromium.net.CronetTestRule.getTestStorage; +import android.net.http.HttpEngine; +import android.net.http.ExperimentalHttpEngine; +import android.net.http.RequestFinishedInfo; +import android.net.http.UrlRequest; +import android.net.http.UrlResponseInfo; + import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.filters.LargeTest; import androidx.test.filters.SmallTest; @@ -28,7 +34,7 @@ import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; -import java.util.Date; +import java.time.Instant; import java.util.concurrent.Executors; /** @@ -40,7 +46,7 @@ public class QuicTest { public final CronetTestRule mTestRule = new CronetTestRule(); private static final String TAG = QuicTest.class.getSimpleName(); - private ExperimentalCronetEngine.Builder mBuilder; + private ExperimentalHttpEngine.Builder mBuilder; @Before public void setUp() throws Exception { @@ -48,8 +54,8 @@ public class QuicTest { System.loadLibrary("cronet_tests"); QuicTestServer.startQuicTestServer(getContext()); - mBuilder = new ExperimentalCronetEngine.Builder(getContext()); - mBuilder.enableNetworkQualityEstimator(true).enableQuic(true); + mBuilder = new ExperimentalHttpEngine.Builder(getContext()); + mBuilder.enableNetworkQualityEstimator(true).setEnableQuic(true); mBuilder.addQuicHint(QuicTestServer.getServerHost(), QuicTestServer.getServerPort(), QuicTestServer.getServerPort()); @@ -73,7 +79,7 @@ public class QuicTest { .put("NetworkQualityEstimator", nqeParams); mBuilder.setExperimentalOptions(experimentalOptions.toString()); mBuilder.setStoragePath(getTestStorage(getContext())); - mBuilder.enableHttpCache(CronetEngine.Builder.HTTP_CACHE_DISK_NO_HTTP, 1000 * 1024); + mBuilder.setEnableHttpCache(HttpEngine.Builder.HTTP_CACHE_DISK_NO_HTTP, 1000 * 1024); CronetTestUtil.setMockCertVerifierForTesting( mBuilder, QuicTestServer.createMockCertVerifier()); } @@ -87,7 +93,7 @@ public class QuicTest { @LargeTest @OnlyRunNativeCronet public void testQuicLoadUrl() throws Exception { - ExperimentalCronetEngine cronetEngine = mBuilder.build(); + ExperimentalHttpEngine cronetEngine = mBuilder.build(); String quicURL = QuicTestServer.getServerURL() + "/simple.txt"; TestUrlRequestCallback callback = new TestUrlRequestCallback(); @@ -125,11 +131,11 @@ public class QuicTest { cronetEngine.shutdown(); // Make another request using a new context but with no QUIC hints. - ExperimentalCronetEngine.Builder builder = - new ExperimentalCronetEngine.Builder(getContext()); + ExperimentalHttpEngine.Builder builder = + new ExperimentalHttpEngine.Builder(getContext()); builder.setStoragePath(getTestStorage(getContext())); - builder.enableHttpCache(CronetEngine.Builder.HTTP_CACHE_DISK, 1000 * 1024); - builder.enableQuic(true); + builder.setEnableHttpCache(HttpEngine.Builder.HTTP_CACHE_DISK, 1000 * 1024); + builder.setEnableQuic(true); JSONObject hostResolverParams = CronetTestUtil.generateHostResolverRules(); JSONObject experimentalOptions = new JSONObject() .put("HostResolverRules", hostResolverParams); @@ -169,7 +175,7 @@ public class QuicTest { @OnlyRunNativeCronet @SuppressWarnings("deprecation") public void testNQEWithQuic() throws Exception { - ExperimentalCronetEngine cronetEngine = mBuilder.build(); + ExperimentalHttpEngine cronetEngine = mBuilder.build(); String quicURL = QuicTestServer.getServerURL() + "/simple.txt"; TestNetworkQualityRttListener rttListener = @@ -247,7 +253,7 @@ public class QuicTest { @SmallTest @OnlyRunNativeCronet public void testMetricsWithQuic() throws Exception { - ExperimentalCronetEngine cronetEngine = mBuilder.build(); + ExperimentalHttpEngine cronetEngine = mBuilder.build(); TestRequestFinishedListener requestFinishedListener = new TestRequestFinishedListener(); cronetEngine.addRequestFinishedListener(requestFinishedListener); @@ -256,11 +262,11 @@ public class QuicTest { UrlRequest.Builder requestBuilder = cronetEngine.newUrlRequestBuilder(quicURL, callback, callback.getExecutor()); - Date startTime = new Date(); + Instant startTime = Instant.now(); requestBuilder.build().start(); callback.blockForDone(); requestFinishedListener.blockUntilDone(); - Date endTime = new Date(); + Instant endTime = Instant.now(); assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); assertIsQuic(callback.mResponseInfo); @@ -275,11 +281,11 @@ public class QuicTest { requestFinishedListener.reset(); requestBuilder = cronetEngine.newUrlRequestBuilder(quicURL, callback, callback.getExecutor()); - startTime = new Date(); + startTime = Instant.now(); requestBuilder.build().start(); callback.blockForDone(); requestFinishedListener.blockUntilDone(); - endTime = new Date(); + endTime = Instant.now(); assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); assertIsQuic(callback.mResponseInfo); diff --git a/components/cronet/android/test/javatests/src/org/chromium/net/RequestFinishedInfoTest.java b/components/cronet/android/test/javatests/src/org/chromium/net/RequestFinishedInfoTest.java index fd7b3f48a..b40ee3480 100644 --- a/components/cronet/android/test/javatests/src/org/chromium/net/RequestFinishedInfoTest.java +++ b/components/cronet/android/test/javatests/src/org/chromium/net/RequestFinishedInfoTest.java @@ -13,6 +13,12 @@ import static org.junit.Assert.fail; import static org.chromium.base.CollectionUtil.newHashSet; import static org.chromium.net.CronetTestRule.getContext; +import android.net.http.ExperimentalHttpEngine; +import android.net.http.ExperimentalUrlRequest; +import android.net.http.NetworkException; +import android.net.http.RequestFinishedInfo; +import android.net.http.UrlRequest; +import android.net.http.UrlResponseInfo; import android.os.ConditionVariable; import androidx.test.ext.junit.runners.AndroidJUnit4; @@ -30,6 +36,7 @@ import org.chromium.net.CronetTestRule.RequiresMinApi; import org.chromium.net.MetricsTestUtil.TestExecutor; import org.chromium.net.impl.CronetMetrics; +import java.time.Instant; import java.util.ArrayList; import java.util.Date; import java.util.HashSet; @@ -78,7 +85,7 @@ public class RequestFinishedInfoTest { @After public void tearDown() throws Exception { - mTestFramework.shutdownEngine(); + mTestFramework.mCronetEngine.shutdown(); NativeTestServer.shutdownNativeTestServer(); } @@ -124,14 +131,14 @@ public class RequestFinishedInfoTest { ExperimentalUrlRequest.Builder urlRequestBuilder = (ExperimentalUrlRequest.Builder) mTestFramework.mCronetEngine.newUrlRequestBuilder( mUrl, callback, callback.getExecutor()); - Date startTime = new Date(); + Instant startTime = Instant.now(); urlRequestBuilder.addRequestAnnotation("request annotation") .addRequestAnnotation(this) .build() .start(); callback.blockForDone(); requestFinishedListener.blockUntilDone(); - Date endTime = new Date(); + Instant endTime = Instant.now(); RequestFinishedInfo requestInfo = requestFinishedListener.getRequestInfo(); MetricsTestUtil.checkRequestFinishedInfo(requestInfo, mUrl, startTime, endTime); @@ -154,7 +161,7 @@ public class RequestFinishedInfoTest { ExperimentalUrlRequest.Builder urlRequestBuilder = (ExperimentalUrlRequest.Builder) mTestFramework.mCronetEngine.newUrlRequestBuilder( mUrl, callback, callback.getExecutor()); - Date startTime = new Date(); + Instant startTime = Instant.now(); urlRequestBuilder.addRequestAnnotation("request annotation") .addRequestAnnotation(this) .build() @@ -163,7 +170,7 @@ public class RequestFinishedInfoTest { // Block on the executor, not the listener, since blocking on the listener doesn't work when // it's created with a non-default executor. testExecutor.blockUntilDone(); - Date endTime = new Date(); + Instant endTime = Instant.now(); RequestFinishedInfo requestInfo = requestFinishedListener.getRequestInfo(); MetricsTestUtil.checkRequestFinishedInfo(requestInfo, mUrl, startTime, endTime); @@ -186,7 +193,7 @@ public class RequestFinishedInfoTest { ExperimentalUrlRequest.Builder urlRequestBuilder = (ExperimentalUrlRequest.Builder) mTestFramework.mCronetEngine.newUrlRequestBuilder( mUrl, callback, callback.getExecutor()); - Date startTime = new Date(); + Instant startTime = Instant.now(); urlRequestBuilder.addRequestAnnotation("request annotation") .addRequestAnnotation(this) .build() @@ -194,7 +201,7 @@ public class RequestFinishedInfoTest { callback.blockForDone(); firstListener.blockUntilDone(); secondListener.blockUntilDone(); - Date endTime = new Date(); + Instant endTime = Instant.now(); RequestFinishedInfo firstRequestInfo = firstListener.getRequestInfo(); RequestFinishedInfo secondRequestInfo = secondListener.getRequestInfo(); @@ -226,12 +233,12 @@ public class RequestFinishedInfoTest { TestUrlRequestCallback callback = new TestUrlRequestCallback(); UrlRequest.Builder urlRequestBuilder = mTestFramework.mCronetEngine.newUrlRequestBuilder( connectionRefusedUrl, callback, callback.getExecutor()); - Date startTime = new Date(); + Instant startTime = Instant.now(); urlRequestBuilder.build().start(); callback.blockForDone(); assertTrue(callback.mOnErrorCalled); requestFinishedListener.blockUntilDone(); - Date endTime = new Date(); + Instant endTime = Instant.now(); RequestFinishedInfo requestInfo = requestFinishedListener.getRequestInfo(); assertNotNull("RequestFinishedInfo.Listener must be called", requestInfo); @@ -243,9 +250,6 @@ public class RequestFinishedInfoTest { ((NetworkException) requestInfo.getException()).getErrorCode()); RequestFinishedInfo.Metrics metrics = requestInfo.getMetrics(); assertNotNull("RequestFinishedInfo.getMetrics() must not be null", metrics); - // The failure is occasionally fast enough that time reported is 0, so just check for null - assertNotNull(metrics.getTotalTimeMs()); - assertNull(metrics.getTtfbMs()); // Check the timing metrics assertNotNull(metrics.getRequestStart()); @@ -297,16 +301,16 @@ public class RequestFinishedInfoTest { } }; ExperimentalUrlRequest.Builder urlRequestBuilder = - mTestFramework.mCronetEngine.newUrlRequestBuilder( + (ExperimentalUrlRequest.Builder) mTestFramework.mCronetEngine.newUrlRequestBuilder( mUrl, callback, callback.getExecutor()); - Date startTime = new Date(); + Instant startTime = Instant.now(); urlRequestBuilder.addRequestAnnotation("request annotation") .addRequestAnnotation(this) .build() .start(); callback.blockForDone(); requestFinishedListener.blockUntilDone(); - Date endTime = new Date(); + Instant endTime = Instant.now(); RequestFinishedInfo requestInfo = requestFinishedListener.getRequestInfo(); MetricsTestUtil.checkRequestFinishedInfo(requestInfo, mUrl, startTime, endTime); @@ -336,7 +340,7 @@ public class RequestFinishedInfoTest { new TestRequestFinishedListener(executor); mTestFramework.mCronetEngine.addRequestFinishedListener(requestFinishedListener); TestUrlRequestCallback callback = new TestUrlRequestCallback(); - ExperimentalUrlRequest.Builder urlRequestBuilder = + UrlRequest.Builder urlRequestBuilder = mTestFramework.mCronetEngine.newUrlRequestBuilder( mUrl, callback, callback.getExecutor()); // Empty headers are invalid and will cause start() to throw an exception. @@ -372,18 +376,18 @@ public class RequestFinishedInfoTest { RequestFinishedInfo.Metrics metrics = new CronetMetrics(requestStart, dnsStart, dnsEnd, connectStart, connectEnd, sslStart, sslEnd, sendingStart, sendingEnd, pushStart, pushEnd, responseStart, requestEnd, socketReused, sentByteCount, receivedByteCount); - assertEquals(new Date(requestStart), metrics.getRequestStart()); + assertEquals(Instant.ofEpochMilli(requestStart), metrics.getRequestStart()); // -1 timestamp should translate to null assertNull(metrics.getDnsEnd()); - assertEquals(new Date(dnsStart), metrics.getDnsStart()); - assertEquals(new Date(connectStart), metrics.getConnectStart()); - assertEquals(new Date(connectEnd), metrics.getConnectEnd()); - assertEquals(new Date(sslStart), metrics.getSslStart()); - assertEquals(new Date(sslEnd), metrics.getSslEnd()); - assertEquals(new Date(pushStart), metrics.getPushStart()); - assertEquals(new Date(pushEnd), metrics.getPushEnd()); - assertEquals(new Date(responseStart), metrics.getResponseStart()); - assertEquals(new Date(requestEnd), metrics.getRequestEnd()); + assertEquals(Instant.ofEpochMilli(dnsStart), metrics.getDnsStart()); + assertEquals(Instant.ofEpochMilli(connectStart), metrics.getConnectStart()); + assertEquals(Instant.ofEpochMilli(connectEnd), metrics.getConnectEnd()); + assertEquals(Instant.ofEpochMilli(sslStart), metrics.getSslStart()); + assertEquals(Instant.ofEpochMilli(sslEnd), metrics.getSslEnd()); + assertEquals(Instant.ofEpochMilli(pushStart), metrics.getPushStart()); + assertEquals(Instant.ofEpochMilli(pushEnd), metrics.getPushEnd()); + assertEquals(Instant.ofEpochMilli(responseStart), metrics.getResponseStart()); + assertEquals(Instant.ofEpochMilli(requestEnd), metrics.getRequestEnd()); assertEquals(socketReused, metrics.getSocketReused()); assertEquals(sentByteCount, (long) metrics.getSentByteCount()); assertEquals(receivedByteCount, (long) metrics.getReceivedByteCount()); @@ -401,14 +405,14 @@ public class RequestFinishedInfoTest { ExperimentalUrlRequest.Builder urlRequestBuilder = (ExperimentalUrlRequest.Builder) mTestFramework.mCronetEngine.newUrlRequestBuilder( mUrl, callback, callback.getExecutor()); - Date startTime = new Date(); + Instant startTime = Instant.now(); urlRequestBuilder.addRequestAnnotation("request annotation") .addRequestAnnotation(this) .build() .start(); callback.blockForDone(); requestFinishedListener.blockUntilDone(); - Date endTime = new Date(); + Instant endTime = Instant.now(); RequestFinishedInfo requestInfo = requestFinishedListener.getRequestInfo(); MetricsTestUtil.checkRequestFinishedInfo(requestInfo, mUrl, startTime, endTime); @@ -438,14 +442,14 @@ public class RequestFinishedInfoTest { ExperimentalUrlRequest.Builder urlRequestBuilder = (ExperimentalUrlRequest.Builder) mTestFramework.mCronetEngine.newUrlRequestBuilder( mUrl, callback, callback.getExecutor()); - Date startTime = new Date(); + Instant startTime = Instant.now(); urlRequestBuilder.addRequestAnnotation(requestAnnotation) .setRequestFinishedListener(requestFinishedListener) .build() .start(); callback.blockForDone(); requestFinishedListener.blockUntilDone(); - Date endTime = new Date(); + Instant endTime = Instant.now(); RequestFinishedInfo requestInfo = requestFinishedListener.getRequestInfo(); MetricsTestUtil.checkRequestFinishedInfo(requestInfo, mUrl, startTime, endTime); assertEquals(RequestFinishedInfo.SUCCEEDED, requestInfo.getFinishedReason()); @@ -531,16 +535,16 @@ public class RequestFinishedInfoTest { new AssertCallbackDoneRequestFinishedListener(callback); mTestFramework.mCronetEngine.addRequestFinishedListener(requestFinishedListener); ExperimentalUrlRequest.Builder urlRequestBuilder = - mTestFramework.mCronetEngine.newUrlRequestBuilder( + (ExperimentalUrlRequest.Builder) mTestFramework.mCronetEngine.newUrlRequestBuilder( mUrl, callback, callback.getExecutor()); - Date startTime = new Date(); + Instant startTime = Instant.now(); urlRequestBuilder.addRequestAnnotation("request annotation") .addRequestAnnotation(this) .build() .start(); callback.blockForDone(); requestFinishedListener.blockUntilDone(); - Date endTime = new Date(); + Instant endTime = Instant.now(); RequestFinishedInfo requestInfo = requestFinishedListener.getRequestInfo(); MetricsTestUtil.checkRequestFinishedInfo(requestInfo, mUrl, startTime, endTime); diff --git a/components/cronet/android/test/javatests/src/org/chromium/net/TestBidirectionalStreamCallback.java b/components/cronet/android/test/javatests/src/org/chromium/net/TestBidirectionalStreamCallback.java index b006c7d94..11d728b0c 100644 --- a/components/cronet/android/test/javatests/src/org/chromium/net/TestBidirectionalStreamCallback.java +++ b/components/cronet/android/test/javatests/src/org/chromium/net/TestBidirectionalStreamCallback.java @@ -4,6 +4,10 @@ package org.chromium.net; +import android.net.http.BidirectionalStream; +import android.net.http.HttpException; +import android.net.http.HeaderBlock; +import android.net.http.UrlResponseInfo; import android.os.ConditionVariable; import static junit.framework.Assert.assertEquals; @@ -24,9 +28,9 @@ import java.util.concurrent.ThreadFactory; * method to block thread until the stream completes on another thread. * Allows to cancel, block stream or throw an exception from an arbitrary step. */ -public class TestBidirectionalStreamCallback extends BidirectionalStream.Callback { +public class TestBidirectionalStreamCallback implements BidirectionalStream.Callback { public UrlResponseInfo mResponseInfo; - public CronetException mError; + public HttpException mError; public ResponseStep mResponseStep = ResponseStep.NOTHING; @@ -36,7 +40,7 @@ public class TestBidirectionalStreamCallback extends BidirectionalStream.Callbac public int mHttpResponseDataLength; public String mResponseAsString = ""; - public UrlResponseInfo.HeaderBlock mTrailers; + public HeaderBlock mTrailers; private static final int READ_BUFFER_SIZE = 32 * 1024; @@ -262,7 +266,7 @@ public class TestBidirectionalStreamCallback extends BidirectionalStream.Callbac @Override public void onResponseTrailersReceived(BidirectionalStream stream, UrlResponseInfo info, - UrlResponseInfo.HeaderBlock trailers) { + HeaderBlock trailers) { checkOnValidThread(); assertFalse(stream.isDone()); assertNull(mError); @@ -295,7 +299,7 @@ public class TestBidirectionalStreamCallback extends BidirectionalStream.Callbac } @Override - public void onFailed(BidirectionalStream stream, UrlResponseInfo info, CronetException error) { + public void onFailed(BidirectionalStream stream, UrlResponseInfo info, HttpException error) { checkOnValidThread(); assertTrue(stream.isDone()); // Shouldn't happen after success. diff --git a/components/cronet/android/test/javatests/src/org/chromium/net/TestDrivenDataProvider.java b/components/cronet/android/test/javatests/src/org/chromium/net/TestDrivenDataProvider.java index 812d17951..cd41e370d 100644 --- a/components/cronet/android/test/javatests/src/org/chromium/net/TestDrivenDataProvider.java +++ b/components/cronet/android/test/javatests/src/org/chromium/net/TestDrivenDataProvider.java @@ -4,6 +4,8 @@ package org.chromium.net; +import android.net.http.UploadDataProvider; +import android.net.http.UploadDataSink; import android.os.ConditionVariable; import java.io.IOException; diff --git a/components/cronet/android/test/javatests/src/org/chromium/net/TestNetworkQualityRttListener.java b/components/cronet/android/test/javatests/src/org/chromium/net/TestNetworkQualityRttListener.java index 16f3470bb..cd737927e 100644 --- a/components/cronet/android/test/javatests/src/org/chromium/net/TestNetworkQualityRttListener.java +++ b/components/cronet/android/test/javatests/src/org/chromium/net/TestNetworkQualityRttListener.java @@ -6,9 +6,11 @@ package org.chromium.net; import static junit.framework.Assert.assertEquals; +import android.net.http.NetworkQualityRttListener; import android.os.ConditionVariable; import android.util.SparseIntArray; +import java.time.Instant; import java.util.concurrent.Executor; class TestNetworkQualityRttListener extends NetworkQualityRttListener { @@ -35,7 +37,7 @@ class TestNetworkQualityRttListener extends NetworkQualityRttListener { } @Override - public void onRttObservation(int rttMs, long when, int source) { + public void onRttObservation(int rttMs, Instant when, int source) { synchronized (mLock) { if (source == 0) { // Source 0 indicates that the RTT was observed at the URL request layer. diff --git a/components/cronet/android/test/javatests/src/org/chromium/net/TestNetworkQualityThroughputListener.java b/components/cronet/android/test/javatests/src/org/chromium/net/TestNetworkQualityThroughputListener.java index e549347cd..525d7077c 100644 --- a/components/cronet/android/test/javatests/src/org/chromium/net/TestNetworkQualityThroughputListener.java +++ b/components/cronet/android/test/javatests/src/org/chromium/net/TestNetworkQualityThroughputListener.java @@ -6,8 +6,10 @@ package org.chromium.net; import static junit.framework.Assert.assertEquals; +import android.net.http.NetworkQualityThroughputListener; import android.os.ConditionVariable; +import java.time.Instant; import java.util.concurrent.Executor; class TestNetworkQualityThroughputListener extends NetworkQualityThroughputListener { @@ -29,7 +31,7 @@ class TestNetworkQualityThroughputListener extends NetworkQualityThroughputListe } @Override - public void onThroughputObservation(int throughputKbps, long when, int source) { + public void onThroughputObservation(int throughputKbps, Instant when, int source) { synchronized (mLock) { mWaitForThroughput.open(); mThroughputObservationCount++; diff --git a/components/cronet/android/test/javatests/src/org/chromium/net/TestRequestFinishedListener.java b/components/cronet/android/test/javatests/src/org/chromium/net/TestRequestFinishedListener.java index b717c5c2f..b795c17f1 100644 --- a/components/cronet/android/test/javatests/src/org/chromium/net/TestRequestFinishedListener.java +++ b/components/cronet/android/test/javatests/src/org/chromium/net/TestRequestFinishedListener.java @@ -7,6 +7,7 @@ package org.chromium.net; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; +import android.net.http.RequestFinishedInfo; import android.os.ConditionVariable; import java.util.concurrent.Executor; diff --git a/components/cronet/android/test/javatests/src/org/chromium/net/TestUploadDataProvider.java b/components/cronet/android/test/javatests/src/org/chromium/net/TestUploadDataProvider.java index aea39a868..2dd01cc0f 100644 --- a/components/cronet/android/test/javatests/src/org/chromium/net/TestUploadDataProvider.java +++ b/components/cronet/android/test/javatests/src/org/chromium/net/TestUploadDataProvider.java @@ -4,6 +4,8 @@ package org.chromium.net; +import android.net.http.UploadDataProvider; +import android.net.http.UploadDataSink; import android.os.ConditionVariable; import java.io.IOException; diff --git a/components/cronet/android/test/javatests/src/org/chromium/net/TestUrlRequestCallback.java b/components/cronet/android/test/javatests/src/org/chromium/net/TestUrlRequestCallback.java index 9f4213c54..692fe2a9e 100644 --- a/components/cronet/android/test/javatests/src/org/chromium/net/TestUrlRequestCallback.java +++ b/components/cronet/android/test/javatests/src/org/chromium/net/TestUrlRequestCallback.java @@ -12,6 +12,11 @@ import static junit.framework.Assert.assertTrue; import static org.chromium.net.CronetTestRule.assertContains; +import android.net.http.CallbackException; +import android.net.http.HttpException; +import android.net.http.InlineExecutionProhibitedException; +import android.net.http.UrlRequest; +import android.net.http.UrlResponseInfo; import android.os.ConditionVariable; import android.os.StrictMode; @@ -27,11 +32,11 @@ import java.util.concurrent.TimeUnit; * method to block thread until the request completes on another thread. * Allows to cancel, block request or throw an exception from an arbitrary step. */ -public class TestUrlRequestCallback extends UrlRequest.Callback { +public class TestUrlRequestCallback implements UrlRequest.Callback { public ArrayList<UrlResponseInfo> mRedirectResponseInfoList = new ArrayList<UrlResponseInfo>(); public ArrayList<String> mRedirectUrlList = new ArrayList<String>(); public UrlResponseInfo mResponseInfo; - public CronetException mError; + public HttpException mError; public ResponseStep mResponseStep = ResponseStep.NOTHING; @@ -294,7 +299,7 @@ public class TestUrlRequestCallback extends UrlRequest.Callback { } @Override - public void onFailed(UrlRequest request, UrlResponseInfo info, CronetException error) { + public void onFailed(UrlRequest request, UrlResponseInfo info, HttpException error) { // If the failure is because of prohibited direct execution, the test shouldn't fail // since the request already did. if (error.getCause() instanceof InlineExecutionProhibitedException) { diff --git a/components/cronet/android/test/javatests/src/org/chromium/net/UrlResponseInfoTest.java b/components/cronet/android/test/javatests/src/org/chromium/net/UrlResponseInfoTest.java index 40897cd69..4538d89a0 100644 --- a/components/cronet/android/test/javatests/src/org/chromium/net/UrlResponseInfoTest.java +++ b/components/cronet/android/test/javatests/src/org/chromium/net/UrlResponseInfoTest.java @@ -4,6 +4,8 @@ package org.chromium.net; +import android.net.http.UrlResponseInfo; + import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.filters.SmallTest; @@ -55,21 +57,22 @@ public class UrlResponseInfoTest { } Assert.assertEquals(info.getHttpStatusCode(), httpStatusCode); Assert.assertEquals(info.getHttpStatusText(), httpStatusText); - Assert.assertEquals(info.getAllHeadersAsList(), allHeadersList); + Assert.assertEquals(info.getHeaders().getAsList(), allHeadersList); try { - info.getAllHeadersAsList().add( + info.getHeaders().getAsList().add( new AbstractMap.SimpleImmutableEntry<String, String>("X", "Y")); - Assert.fail("getAllHeadersAsList() returned modifyable list."); + Assert.fail("getHeaders().getAsList() returned modifyable list."); } catch (UnsupportedOperationException e) { // Expected. } - Assert.assertEquals(info.getAllHeaders().size(), allHeadersList.size()); - Assert.assertEquals(info.getAllHeaders().get(allHeadersList.get(0).getKey()).size(), 1); - Assert.assertEquals(info.getAllHeaders().get(allHeadersList.get(0).getKey()).get(0), + Assert.assertEquals(info.getHeaders().getAsMap().size(), allHeadersList.size()); + Assert.assertEquals( + info.getHeaders().getAsMap().get(allHeadersList.get(0).getKey()).size(), 1); + Assert.assertEquals(info.getHeaders().getAsMap().get(allHeadersList.get(0).getKey()).get(0), allHeadersList.get(0).getValue()); Assert.assertEquals(info.wasCached(), wasCached); Assert.assertEquals(info.getNegotiatedProtocol(), negotiatedProtocol); Assert.assertEquals(info.getProxyServer(), proxyServer); Assert.assertEquals(info.getReceivedByteCount(), receivedByteCount); } -}
\ No newline at end of file +} diff --git a/components/cronet/android/test/javatests/src/org/chromium/net/apihelpers/ContentTypeParametersParserTest.java b/components/cronet/android/test/javatests/src/org/chromium/net/apihelpers/ContentTypeParametersParserTest.java index ddb9673d1..94eecdd53 100644 --- a/components/cronet/android/test/javatests/src/org/chromium/net/apihelpers/ContentTypeParametersParserTest.java +++ b/components/cronet/android/test/javatests/src/org/chromium/net/apihelpers/ContentTypeParametersParserTest.java @@ -9,6 +9,8 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; +import android.net.http.apihelpers.ContentTypeParametersParser; + import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.filters.SmallTest; diff --git a/components/cronet/android/test/javatests/src/org/chromium/net/apihelpers/UploadDataProvidersTest.java b/components/cronet/android/test/javatests/src/org/chromium/net/apihelpers/UploadDataProvidersTest.java index a77d3c4d2..912bc7daa 100644 --- a/components/cronet/android/test/javatests/src/org/chromium/net/apihelpers/UploadDataProvidersTest.java +++ b/components/cronet/android/test/javatests/src/org/chromium/net/apihelpers/UploadDataProvidersTest.java @@ -11,6 +11,7 @@ import static org.junit.Assert.assertTrue; import static org.chromium.net.CronetTestRule.assertContains; import static org.chromium.net.CronetTestRule.getContext; +import android.net.http.apihelpers.UploadDataProviders; import android.os.ConditionVariable; import android.os.ParcelFileDescriptor; @@ -23,15 +24,15 @@ import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; -import org.chromium.net.CallbackException; +import android.net.http.CallbackException; import org.chromium.net.CronetTestRule; import org.chromium.net.CronetTestRule.CronetTestFramework; import org.chromium.net.CronetTestRule.OnlyRunNativeCronet; import org.chromium.net.NativeTestServer; import org.chromium.net.TestUrlRequestCallback; -import org.chromium.net.UploadDataProvider; -import org.chromium.net.UploadDataSink; -import org.chromium.net.UrlRequest; +import android.net.http.UploadDataProvider; +import android.net.http.UploadDataSink; +import android.net.http.UrlRequest; import java.io.File; import java.io.FileOutputStream; diff --git a/components/cronet/android/test/javatests/src/org/chromium/net/impl/CronetLoggerTest.java b/components/cronet/android/test/javatests/src/org/chromium/net/impl/CronetLoggerTest.java index 999401ed9..039c53b25 100644 --- a/components/cronet/android/test/javatests/src/org/chromium/net/impl/CronetLoggerTest.java +++ b/components/cronet/android/test/javatests/src/org/chromium/net/impl/CronetLoggerTest.java @@ -13,9 +13,11 @@ import static org.junit.Assert.assertNotEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; -import static org.chromium.net.CronetEngine.Builder.HTTP_CACHE_DISK_NO_HTTP; +import static android.net.http.HttpEngine.Builder.HTTP_CACHE_DISK_NO_HTTP; import android.content.Context; +import android.net.http.HeaderBlock; +import android.net.http.HttpEngine; import android.os.Build; import android.os.ConditionVariable; @@ -31,16 +33,15 @@ import org.junit.rules.RuleChain; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; -import org.chromium.net.CronetEngine; import org.chromium.net.CronetLoggerTestRule; import org.chromium.net.CronetTestRule; import org.chromium.net.CronetTestRule.CronetTestFramework; import org.chromium.net.CronetTestRule.OnlyRunNativeCronet; import org.chromium.net.CronetTestRule.RequiresMinAndroidApi; -import org.chromium.net.ExperimentalCronetEngine; +import android.net.http.ExperimentalHttpEngine; import org.chromium.net.NativeTestServer; import org.chromium.net.TestUrlRequestCallback; -import org.chromium.net.UrlRequest; +import android.net.http.UrlRequest; import org.chromium.net.impl.CronetEngineBuilderImpl.HttpCacheMode; import org.chromium.net.impl.CronetLogger.CronetEngineBuilderInfo; import org.chromium.net.impl.CronetLogger.CronetSource; @@ -65,7 +66,7 @@ import java.util.concurrent.atomic.AtomicReference; @RequiresMinAndroidApi(Build.VERSION_CODES.O) public final class CronetLoggerTest { private final CronetTestRule mTestRule = new CronetTestRule(); - private final CronetLoggerTestRule mLoggerTestRule = new CronetLoggerTestRule(TestLogger.class); + private final CronetLoggerTestRule mLoggerTestRule = new CronetLoggerTestRule(new TestLogger()); @Rule public final RuleChain chain = RuleChain.outerRule(mTestRule).around(mLoggerTestRule); @@ -172,7 +173,7 @@ public final class CronetLoggerTest { assertEquals(builder.quicEnabled(), builderInfo.isQuicEnabled()); assertEquals(builder.http2Enabled(), builderInfo.isHttp2Enabled()); assertEquals(builder.brotliEnabled(), builderInfo.isBrotliEnabled()); - assertEquals(builder.publicBuilderHttpCacheMode(), builderInfo.getHttpCacheMode()); + assertEquals(builder.httpCacheMode(), builderInfo.getHttpCacheMode()); assertEquals(builder.experimentalOptions(), builderInfo.getExperimentalOptions()); assertEquals(builder.networkQualityEstimatorEnabled(), builderInfo.isNetworkQualityEstimatorEnabled()); @@ -198,9 +199,9 @@ public final class CronetLoggerTest { @Test @SmallTest public void testHttpCacheModeEnum() { - final int publicBuilderHttpCacheModes[] = {CronetEngine.Builder.HTTP_CACHE_DISABLED, - CronetEngine.Builder.HTTP_CACHE_IN_MEMORY, - CronetEngine.Builder.HTTP_CACHE_DISK_NO_HTTP, CronetEngine.Builder.HTTP_CACHE_DISK}; + final int publicBuilderHttpCacheModes[] = {HttpEngine.Builder.HTTP_CACHE_DISABLED, + HttpEngine.Builder.HTTP_CACHE_IN_MEMORY, + HttpEngine.Builder.HTTP_CACHE_DISK_NO_HTTP, HttpEngine.Builder.HTTP_CACHE_DISK}; for (int publicBuilderHttpCacheMode : publicBuilderHttpCacheModes) { HttpCacheMode cacheModeEnum = HttpCacheMode.fromPublicBuilderCacheMode(publicBuilderHttpCacheMode); @@ -231,7 +232,7 @@ public final class CronetLoggerTest { final String url = NativeTestServer.getEchoBodyURL(); TestUrlRequestCallback callback = new TestUrlRequestCallback(); - CronetEngine engine = mTestFramework.startEngine(); + HttpEngine engine = mTestFramework.startEngine(); UrlRequest.Builder requestBuilder = engine.newUrlRequestBuilder(url, callback, callback.getExecutor()); UrlRequest request = requestBuilder.build(); @@ -266,22 +267,23 @@ public final class CronetLoggerTest { final boolean isNetworkQualityEstimatorEnabled = true; final int threadPriority = THREAD_PRIORITY_DEFAULT; - ExperimentalCronetEngine.Builder builder = - (ExperimentalCronetEngine.Builder) mTestFramework.mBuilder; + ExperimentalHttpEngine.Builder builder = + (ExperimentalHttpEngine.Builder) mTestFramework.mBuilder; builder.setExperimentalOptions(experimentalOptions); - builder.enablePublicKeyPinningBypassForLocalTrustAnchors( + builder.setEnablePublicKeyPinningBypassForLocalTrustAnchors( isPublicKeyPinningBypassForLocalTrustAnchorsEnabled); builder.setUserAgent(userAgent); builder.setStoragePath(storagePath); - builder.enableQuic(isQuicEnabled); - builder.enableHttp2(isHttp2Enabled); - builder.enableBrotli(isBrotliEnabled); - builder.enableHttpCache(cacheMode, 0); + builder.setEnableQuic(isQuicEnabled); + builder.setEnableHttp2(isHttp2Enabled); + builder.setEnableBrotli(isBrotliEnabled); + builder.setEnableHttpCache(cacheMode, 0); + builder.enableNetworkQualityEstimator(isNetworkQualityEstimatorEnabled); builder.setThreadPriority(threadPriority); - CronetEngine engine = mTestFramework.startEngine(); + mTestFramework.startEngine(); final CronetEngineBuilderInfo builderInfo = mTestLogger.getLastCronetEngineBuilderInfo(); final CronetVersion version = mTestLogger.getLastCronetVersion(); final CronetSource source = mTestLogger.getLastCronetSource(); @@ -296,7 +298,7 @@ public final class CronetLoggerTest { assertEquals(cacheMode, builderInfo.getHttpCacheMode()); assertEquals(experimentalOptions, builderInfo.getExperimentalOptions()); assertEquals( - isNetworkQualityEstimatorEnabled, builderInfo.isNetworkQualityEstimatorEnabled()); + isNetworkQualityEstimatorEnabled, builderInfo.isNetworkQualityEstimatorEnabled()); assertEquals(threadPriority, builderInfo.getThreadPriority()); assertEquals(ImplVersion.getCronetVersion(), version.toString()); if (mTestRule.testingJavaImpl()) { @@ -316,10 +318,10 @@ public final class CronetLoggerTest { JSONObject jsonExperimentalOptions = new JSONObject().put("enable_telemetry", true); final String experimentalOptions = jsonExperimentalOptions.toString(); final String url = "www.example.com"; - ExperimentalCronetEngine.Builder builder = - (ExperimentalCronetEngine.Builder) mTestFramework.mBuilder; + ExperimentalHttpEngine.Builder builder = + (ExperimentalHttpEngine.Builder) mTestFramework.mBuilder; builder.setExperimentalOptions(experimentalOptions); - CronetEngine engine = mTestFramework.startEngine(); + HttpEngine engine = mTestFramework.startEngine(); final int engineId = mTestLogger.getLastCronetEngineId(); TestUrlRequestCallback callback1 = new TestUrlRequestCallback(); @@ -355,13 +357,13 @@ public final class CronetLoggerTest { JSONObject jsonExperimentalOptions = new JSONObject().put("enable_telemetry", true); final String experimentalOptions = jsonExperimentalOptions.toString(); final String url = "www.example.com"; - ExperimentalCronetEngine.Builder engineBuilder = - (ExperimentalCronetEngine.Builder) mTestFramework.mBuilder; + ExperimentalHttpEngine.Builder engineBuilder = + (ExperimentalHttpEngine.Builder) mTestFramework.mBuilder; engineBuilder.setExperimentalOptions(experimentalOptions); - CronetEngine engine1 = engineBuilder.build(); + HttpEngine engine1 = engineBuilder.build(); final int engine1Id = mTestLogger.getLastCronetEngineId(); - CronetEngine engine2 = engineBuilder.build(); + HttpEngine engine2 = engineBuilder.build(); final int engine2Id = mTestLogger.getLastCronetEngineId(); TestUrlRequestCallback callback1 = new TestUrlRequestCallback(); @@ -400,10 +402,10 @@ public final class CronetLoggerTest { JSONObject jsonExperimentalOptions = new JSONObject().put("enable_telemetry", true); final String experimentalOptions = jsonExperimentalOptions.toString(); final String url = NativeTestServer.getEchoBodyURL(); - ExperimentalCronetEngine.Builder engineBuilder = - (ExperimentalCronetEngine.Builder) mTestFramework.mBuilder; + ExperimentalHttpEngine.Builder engineBuilder = + (ExperimentalHttpEngine.Builder) mTestFramework.mBuilder; engineBuilder.setExperimentalOptions(experimentalOptions); - CronetEngine engine = mTestFramework.startEngine(); + HttpEngine engine = mTestFramework.startEngine(); TestUrlRequestCallback callback = new TestUrlRequestCallback(); UrlRequest.Builder requestBuilder = @@ -438,10 +440,10 @@ public final class CronetLoggerTest { JSONObject jsonExperimentalOptions = new JSONObject().put("enable_telemetry", true); final String url = "www.unreachable-url.com"; final String experimentalOptions = jsonExperimentalOptions.toString(); - ExperimentalCronetEngine.Builder engineBuilder = - (ExperimentalCronetEngine.Builder) mTestFramework.mBuilder; + ExperimentalHttpEngine.Builder engineBuilder = + (ExperimentalHttpEngine.Builder) mTestFramework.mBuilder; engineBuilder.setExperimentalOptions(experimentalOptions); - CronetEngine engine = mTestFramework.startEngine(); + HttpEngine engine = mTestFramework.startEngine(); TestUrlRequestCallback callback = new TestUrlRequestCallback(); UrlRequest.Builder requestBuilder = @@ -477,10 +479,10 @@ public final class CronetLoggerTest { JSONObject jsonExperimentalOptions = new JSONObject().put("enable_telemetry", true); final String experimentalOptions = jsonExperimentalOptions.toString(); final String url = NativeTestServer.getEchoBodyURL(); - ExperimentalCronetEngine.Builder engineBuilder = - (ExperimentalCronetEngine.Builder) mTestFramework.mBuilder; + ExperimentalHttpEngine.Builder engineBuilder = + (ExperimentalHttpEngine.Builder) mTestFramework.mBuilder; engineBuilder.setExperimentalOptions(experimentalOptions); - CronetEngine engine = mTestFramework.startEngine(); + HttpEngine engine = mTestFramework.startEngine(); TestUrlRequestCallback callback = new TestUrlRequestCallback(); callback.setAutoAdvance(false); @@ -520,10 +522,10 @@ public final class CronetLoggerTest { headers = null; assertEquals(0, CronetUrlRequest.estimateHeadersSizeInBytes(headers)); - CronetUrlRequest.HeadersList headersList = new CronetUrlRequest.HeadersList(); - assertEquals(0, CronetUrlRequest.estimateHeadersSizeInBytes(headersList)); - headersList = null; - assertEquals(0, CronetUrlRequest.estimateHeadersSizeInBytes(headersList)); + HeaderBlock headerBlock = asHeaderBlock(new CronetUrlRequest.HeadersList()); + assertEquals(0, CronetUrlRequest.estimateHeadersSizeInBytes(headerBlock)); + headerBlock = null; + assertEquals(0, CronetUrlRequest.estimateHeadersSizeInBytes(headerBlock)); } @Test @@ -553,6 +555,10 @@ public final class CronetLoggerTest { headersList.add( new AbstractMap.SimpleImmutableEntry<String, String>(null, "") // 33 + 0 + 0 = 33 ); - assertEquals(33, CronetUrlRequest.estimateHeadersSizeInBytes(headersList)); + assertEquals(33, CronetUrlRequest.estimateHeadersSizeInBytes(asHeaderBlock(headersList))); + } + + private static HeaderBlock asHeaderBlock(List<Map.Entry<String, String>> headers) { + return new HeaderBlockImpl(headers); } } diff --git a/components/cronet/android/test/javatests/src/org/chromium/net/urlconnection/CronetBufferedOutputStreamTest.java b/components/cronet/android/test/javatests/src/org/chromium/net/urlconnection/CronetBufferedOutputStreamTest.java index f65359c5a..6faeea798 100644 --- a/components/cronet/android/test/javatests/src/org/chromium/net/urlconnection/CronetBufferedOutputStreamTest.java +++ b/components/cronet/android/test/javatests/src/org/chromium/net/urlconnection/CronetBufferedOutputStreamTest.java @@ -19,7 +19,7 @@ import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; -import org.chromium.net.CronetEngine; +import android.net.http.HttpEngine; import org.chromium.net.CronetTestRule; import org.chromium.net.CronetTestRule.CompareDefaultWithCronet; import org.chromium.net.CronetTestRule.OnlyRunCronetHttpURLConnection; @@ -40,7 +40,7 @@ public class CronetBufferedOutputStreamTest { @Before public void setUp() throws Exception { - mTestRule.setStreamHandlerFactory(new CronetEngine.Builder(getContext()).build()); + mTestRule.setStreamHandlerFactory(new HttpEngine.Builder(getContext()).build()); assertTrue(NativeTestServer.startNativeTestServer(getContext())); } diff --git a/components/cronet/android/test/javatests/src/org/chromium/net/urlconnection/CronetChunkedOutputStreamTest.java b/components/cronet/android/test/javatests/src/org/chromium/net/urlconnection/CronetChunkedOutputStreamTest.java index f203dae1b..da15186a6 100644 --- a/components/cronet/android/test/javatests/src/org/chromium/net/urlconnection/CronetChunkedOutputStreamTest.java +++ b/components/cronet/android/test/javatests/src/org/chromium/net/urlconnection/CronetChunkedOutputStreamTest.java @@ -19,12 +19,12 @@ import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; -import org.chromium.net.CronetEngine; +import android.net.http.HttpEngine; import org.chromium.net.CronetTestRule; import org.chromium.net.CronetTestRule.CompareDefaultWithCronet; import org.chromium.net.CronetTestRule.OnlyRunCronetHttpURLConnection; import org.chromium.net.NativeTestServer; -import org.chromium.net.NetworkException; +import android.net.http.NetworkException; import java.io.IOException; import java.io.OutputStream; @@ -51,7 +51,7 @@ public class CronetChunkedOutputStreamTest { @Before public void setUp() throws Exception { - mTestRule.setStreamHandlerFactory(new CronetEngine.Builder(getContext()).build()); + mTestRule.setStreamHandlerFactory(new HttpEngine.Builder(getContext()).build()); assertTrue(NativeTestServer.startNativeTestServer(getContext())); } diff --git a/components/cronet/android/test/javatests/src/org/chromium/net/urlconnection/CronetFixedModeOutputStreamTest.java b/components/cronet/android/test/javatests/src/org/chromium/net/urlconnection/CronetFixedModeOutputStreamTest.java index 936bb3351..8acbdf191 100644 --- a/components/cronet/android/test/javatests/src/org/chromium/net/urlconnection/CronetFixedModeOutputStreamTest.java +++ b/components/cronet/android/test/javatests/src/org/chromium/net/urlconnection/CronetFixedModeOutputStreamTest.java @@ -24,12 +24,12 @@ import org.junit.Test; import org.junit.rules.ExpectedException; import org.junit.runner.RunWith; -import org.chromium.net.CronetEngine; +import android.net.http.HttpEngine; import org.chromium.net.CronetTestRule; import org.chromium.net.CronetTestRule.CompareDefaultWithCronet; import org.chromium.net.CronetTestRule.OnlyRunCronetHttpURLConnection; import org.chromium.net.NativeTestServer; -import org.chromium.net.NetworkException; +import android.net.http.NetworkException; import org.chromium.net.impl.CallbackExceptionImpl; import java.io.IOException; @@ -57,7 +57,7 @@ public class CronetFixedModeOutputStreamTest { @Before public void setUp() throws Exception { - mTestRule.setStreamHandlerFactory(new CronetEngine.Builder(getContext()).build()); + mTestRule.setStreamHandlerFactory(new HttpEngine.Builder(getContext()).build()); assertTrue(NativeTestServer.startNativeTestServer(getContext())); } diff --git a/components/cronet/android/test/javatests/src/org/chromium/net/urlconnection/CronetHttpURLConnectionTest.java b/components/cronet/android/test/javatests/src/org/chromium/net/urlconnection/CronetHttpURLConnectionTest.java index 8a76b21c4..33d6eb944 100644 --- a/components/cronet/android/test/javatests/src/org/chromium/net/urlconnection/CronetHttpURLConnectionTest.java +++ b/components/cronet/android/test/javatests/src/org/chromium/net/urlconnection/CronetHttpURLConnectionTest.java @@ -26,8 +26,8 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.chromium.base.Log; -import org.chromium.net.CronetEngine; -import org.chromium.net.CronetException; +import android.net.http.HttpEngine; +import android.net.http.HttpException; import org.chromium.net.CronetTestRule; import org.chromium.net.CronetTestRule.CompareDefaultWithCronet; import org.chromium.net.CronetTestRule.OnlyRunCronetHttpURLConnection; @@ -74,11 +74,11 @@ public class CronetHttpURLConnectionTest { @Rule public final CronetTestRule mTestRule = new CronetTestRule(); - private CronetEngine mCronetEngine; + private HttpEngine mCronetEngine; @Before public void setUp() throws Exception { - mCronetEngine = mTestRule.enableDiskCache(new CronetEngine.Builder(getContext())).build(); + mCronetEngine = mTestRule.enableDiskCache(new HttpEngine.Builder(getContext())).build(); mTestRule.setStreamHandlerFactory(mCronetEngine); assertTrue(NativeTestServer.startNativeTestServer(getContext())); } @@ -309,7 +309,7 @@ public class CronetHttpURLConnectionTest { secondConnection.getResponseCode(); fail(); } catch (IOException e) { - assertTrue(e instanceof java.net.ConnectException || e instanceof CronetException); + assertTrue(e instanceof java.net.ConnectException || e instanceof HttpException); assertTrue(e.getMessage().contains("ECONNREFUSED") || e.getMessage().contains("Connection refused") || e.getMessage().contains("net::ERR_CONNECTION_REFUSED") @@ -336,7 +336,7 @@ public class CronetHttpURLConnectionTest { urlConnection.getResponseCode(); fail(); } catch (IOException e) { - assertTrue(e instanceof java.net.ConnectException || e instanceof CronetException); + assertTrue(e instanceof java.net.ConnectException || e instanceof HttpException); assertTrue(e.getMessage().contains("ECONNREFUSED") || e.getMessage().contains("Connection refused") || e.getMessage().contains("net::ERR_CONNECTION_REFUSED") @@ -361,7 +361,7 @@ public class CronetHttpURLConnectionTest { fail(); } catch (java.net.UnknownHostException e) { // Expected. - } catch (CronetException e) { + } catch (HttpException e) { // Expected. } checkExceptionsAreThrown(urlConnection); diff --git a/components/cronet/android/test/javatests/src/org/chromium/net/urlconnection/QuicUploadTest.java b/components/cronet/android/test/javatests/src/org/chromium/net/urlconnection/QuicUploadTest.java index fc93a9e33..bfb044c9f 100644 --- a/components/cronet/android/test/javatests/src/org/chromium/net/urlconnection/QuicUploadTest.java +++ b/components/cronet/android/test/javatests/src/org/chromium/net/urlconnection/QuicUploadTest.java @@ -17,11 +17,11 @@ import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; -import org.chromium.net.CronetEngine; +import android.net.http.HttpEngine; import org.chromium.net.CronetTestRule; import org.chromium.net.CronetTestRule.OnlyRunNativeCronet; import org.chromium.net.CronetTestUtil; -import org.chromium.net.ExperimentalCronetEngine; +import android.net.http.ExperimentalHttpEngine; import org.chromium.net.QuicTestServer; import java.io.OutputStream; @@ -37,18 +37,18 @@ public class QuicUploadTest { @Rule public final CronetTestRule mTestRule = new CronetTestRule(); - private CronetEngine mCronetEngine; + private HttpEngine mCronetEngine; @Before public void setUp() throws Exception { // Load library first to create MockCertVerifier. System.loadLibrary("cronet_tests"); - ExperimentalCronetEngine.Builder builder = - new ExperimentalCronetEngine.Builder(getContext()); + ExperimentalHttpEngine.Builder builder = + new ExperimentalHttpEngine.Builder(getContext()); QuicTestServer.startQuicTestServer(getContext()); - builder.enableQuic(true); + builder.setEnableQuic(true); JSONObject hostResolverParams = CronetTestUtil.generateHostResolverRules(); JSONObject experimentalOptions = new JSONObject() .put("HostResolverRules", hostResolverParams); diff --git a/components/cronet/android/test/src/org/chromium/net/CronetTestUtil.java b/components/cronet/android/test/src/org/chromium/net/CronetTestUtil.java index 7023fa59a..19ab9fec8 100644 --- a/components/cronet/android/test/src/org/chromium/net/CronetTestUtil.java +++ b/components/cronet/android/test/src/org/chromium/net/CronetTestUtil.java @@ -5,8 +5,10 @@ package org.chromium.net; import android.net.Network; -import org.chromium.net.CronetEngine; -import org.chromium.net.UrlRequest; +import android.net.http.ExperimentalHttpEngine; +import android.net.http.ExperimentalOptionsTranslatingHttpEngineBuilder; +import android.net.http.HttpEngine; +import android.net.http.UrlRequest; import org.json.JSONException; import org.json.JSONObject; @@ -63,7 +65,7 @@ public class CronetTestUtil { public static class NetworkThreadTestConnector { private final CronetUrlRequestContext mRequestContext; - public NetworkThreadTestConnector(CronetEngine cronetEngine) { + public NetworkThreadTestConnector(HttpEngine cronetEngine) { mRequestContext = (CronetUrlRequestContext) cronetEngine; CronetTestUtilJni.get().prepareNetworkThread( mRequestContext.getUrlRequestContextAdapter()); @@ -85,20 +87,20 @@ public class CronetTestUtil { } public static boolean doesURLRequestContextExistForTesting( - CronetEngine engine, Network network) { + HttpEngine engine, Network network) { CronetUrlRequestContext context = (CronetUrlRequestContext) engine; return CronetTestUtilJni.get().uRLRequestContextExistsForTesting( context.getUrlRequestContextAdapter(), network.getNetworkHandle()); } public static void setMockCertVerifierForTesting( - ExperimentalCronetEngine.Builder builder, long mockCertVerifier) { + ExperimentalHttpEngine.Builder builder, long mockCertVerifier) { getCronetEngineBuilderImpl(builder).setMockCertVerifierForTesting(mockCertVerifier); } public static CronetEngineBuilderImpl getCronetEngineBuilderImpl( - ExperimentalCronetEngine.Builder builder) { - return (CronetEngineBuilderImpl) ((ExperimentalOptionsTranslatingCronetEngineBuilder) + ExperimentalHttpEngine.Builder builder) { + return (CronetEngineBuilderImpl) ((ExperimentalOptionsTranslatingHttpEngineBuilder) builder.getBuilderDelegate()) .getDelegate(); } 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 5aa93cfcf..d1d2e7fd4 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,7 @@ package org.chromium.net; import static junit.framework.Assert.assertTrue; -import org.chromium.net.CronetEngine; +import android.net.http.HttpEngine; import org.chromium.base.annotations.JNINamespace; import org.chromium.base.annotations.NativeMethods; @@ -24,7 +24,7 @@ public final class MockUrlRequestJobFactory { /** * Sets up URL interceptors. */ - public MockUrlRequestJobFactory(CronetEngine cronetEngine) { + public MockUrlRequestJobFactory(HttpEngine cronetEngine) { mNetworkThreadTestConnector = new CronetTestUtil.NetworkThreadTestConnector(cronetEngine); mInterceptorHandle = MockUrlRequestJobFactoryJni.get().addUrlInterceptors( diff --git a/components/cronet/android/test/src/org/chromium/net/TestUploadDataStreamHandler.java b/components/cronet/android/test/src/org/chromium/net/TestUploadDataStreamHandler.java index af64409ce..cb6840ba7 100644 --- a/components/cronet/android/test/src/org/chromium/net/TestUploadDataStreamHandler.java +++ b/components/cronet/android/test/src/org/chromium/net/TestUploadDataStreamHandler.java @@ -5,7 +5,7 @@ package org.chromium.net; import android.content.Context; -import org.chromium.net.CronetEngine; +import android.net.http.HttpEngine; import android.os.ConditionVariable; import org.junit.Assert; @@ -23,7 +23,7 @@ import org.chromium.net.impl.CronetUrlRequestContext; @JNINamespace("cronet") public final class TestUploadDataStreamHandler { private final CronetTestUtil.NetworkThreadTestConnector mNetworkThreadTestConnector; - private final CronetEngine mCronetEngine; + private final HttpEngine mCronetEngine; private long mTestUploadDataStreamHandler; private ConditionVariable mWaitInitCalled = new ConditionVariable(); private ConditionVariable mWaitInitComplete = new ConditionVariable(); @@ -38,7 +38,7 @@ public final class TestUploadDataStreamHandler { private String mData = ""; public TestUploadDataStreamHandler(Context context, final long uploadDataStream) { - mCronetEngine = new CronetEngine.Builder(context).build(); + mCronetEngine = new HttpEngine.Builder(context).build(); mNetworkThreadTestConnector = new CronetTestUtil.NetworkThreadTestConnector(mCronetEngine); CronetUrlRequestContext requestContext = (CronetUrlRequestContext) mCronetEngine; mTestUploadDataStreamHandler = |