Merge "Add Cronet to the Tethering apex."
diff --git a/Cronet/tests/cts/src/android/net/http/cts/CronetUrlRequestTest.java b/Cronet/tests/cts/src/android/net/http/cts/CronetUrlRequestTest.java
index 2898f54..09f880b 100644
--- a/Cronet/tests/cts/src/android/net/http/cts/CronetUrlRequestTest.java
+++ b/Cronet/tests/cts/src/android/net/http/cts/CronetUrlRequestTest.java
@@ -23,6 +23,7 @@
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.http.cts.util.CronetCtsTestServer;
+import android.net.http.cts.util.TestStatusListener;
import android.net.http.cts.util.TestUrlRequestCallback;
import android.net.http.cts.util.TestUrlRequestCallback.ResponseStep;
@@ -32,6 +33,7 @@
import org.chromium.net.CronetEngine;
import org.chromium.net.UrlRequest;
+import org.chromium.net.UrlRequest.Status;
import org.chromium.net.UrlResponseInfo;
import org.junit.After;
import org.junit.Before;
@@ -43,6 +45,7 @@
private static final String TAG = CronetUrlRequestTest.class.getSimpleName();
@NonNull private CronetEngine mCronetEngine;
+ @NonNull private TestUrlRequestCallback mCallback;
@NonNull private ConnectivityManager mCm;
@NonNull private CronetCtsTestServer mTestServer;
@@ -56,6 +59,7 @@
// .enableBrotli(true)
.enableQuic(true);
mCronetEngine = builder.build();
+ mCallback = new TestUrlRequestCallback();
mTestServer = new CronetCtsTestServer(context);
}
@@ -73,21 +77,33 @@
assertNotNull("This test requires a working Internet connection", mCm.getActiveNetwork());
}
+ private UrlRequest buildUrlRequest(String url) {
+ return mCronetEngine.newUrlRequestBuilder(url, mCallback, mCallback.getExecutor()).build();
+ }
+
@Test
public void testUrlRequestGet_CompletesSuccessfully() throws Exception {
assertHasTestableNetworks();
String url = mTestServer.getSuccessUrl();
- TestUrlRequestCallback callback = new TestUrlRequestCallback();
- UrlRequest.Builder builder =
- mCronetEngine.newUrlRequestBuilder(url, callback, callback.getExecutor());
- builder.build().start();
+ UrlRequest request = buildUrlRequest(url);
+ request.start();
- callback.expectCallback(ResponseStep.ON_SUCCEEDED);
+ mCallback.expectCallback(ResponseStep.ON_SUCCEEDED);
- UrlResponseInfo info = callback.mResponseInfo;
+ UrlResponseInfo info = mCallback.mResponseInfo;
assertEquals(
"Unexpected http status code from " + url + ".", 200, info.getHttpStatusCode());
assertGreaterThan(
"Received byte from " + url + " is 0.", (int) info.getReceivedByteCount(), 0);
}
+
+ @Test
+ public void testUrlRequestStatus_InvalidBeforeRequestStarts() throws Exception {
+ UrlRequest request = buildUrlRequest(mTestServer.getSuccessUrl());
+ // Calling before request is started should give Status.INVALID,
+ // since the native adapter is not created.
+ TestStatusListener statusListener = new TestStatusListener();
+ request.getStatus(statusListener);
+ statusListener.expectStatus(Status.INVALID);
+ }
}
diff --git a/Cronet/tests/cts/src/android/net/http/cts/util/TestStatusListener.kt b/Cronet/tests/cts/src/android/net/http/cts/util/TestStatusListener.kt
index bcd9dd0..4d26ec0 100644
--- a/Cronet/tests/cts/src/android/net/http/cts/util/TestStatusListener.kt
+++ b/Cronet/tests/cts/src/android/net/http/cts/util/TestStatusListener.kt
@@ -18,7 +18,6 @@
import java.util.concurrent.CompletableFuture
import java.util.concurrent.TimeUnit
-import org.chromium.net.UrlRequest.Status
import org.chromium.net.UrlRequest.StatusListener
import org.junit.Assert.assertSame
@@ -33,7 +32,7 @@
}
/** Fails if the expected status is not the returned status */
- fun expectStatus(expected: Status) {
+ fun expectStatus(expected: Int) {
assertSame(expected, statusFuture.get(TIMEOUT_MS, TimeUnit.MILLISECONDS))
}
}