Cronet: add test for handling post request
This tests the API to setUploadDataProvider Test: atest CtsCronetTestCases Change-Id: Iceab323c58890eff7c847585b1f6de5fcd772e70
This commit is contained in:
@@ -21,6 +21,7 @@ import static android.net.http.cts.util.TestUtilsKt.skipIfNoInternetConnection;
|
|||||||
|
|
||||||
import static org.hamcrest.MatcherAssert.assertThat;
|
import static org.hamcrest.MatcherAssert.assertThat;
|
||||||
import static org.hamcrest.Matchers.greaterThan;
|
import static org.hamcrest.Matchers.greaterThan;
|
||||||
|
import static org.junit.Assert.assertEquals;
|
||||||
import static org.junit.Assert.assertSame;
|
import static org.junit.Assert.assertSame;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
@@ -30,6 +31,7 @@ import android.net.http.UrlRequest.Status;
|
|||||||
import android.net.http.UrlResponseInfo;
|
import android.net.http.UrlResponseInfo;
|
||||||
import android.net.http.cts.util.HttpCtsTestServer;
|
import android.net.http.cts.util.HttpCtsTestServer;
|
||||||
import android.net.http.cts.util.TestStatusListener;
|
import android.net.http.cts.util.TestStatusListener;
|
||||||
|
import android.net.http.cts.util.TestUploadDataProvider;
|
||||||
import android.net.http.cts.util.TestUrlRequestCallback;
|
import android.net.http.cts.util.TestUrlRequestCallback;
|
||||||
import android.net.http.cts.util.TestUrlRequestCallback.ResponseStep;
|
import android.net.http.cts.util.TestUrlRequestCallback.ResponseStep;
|
||||||
|
|
||||||
@@ -67,14 +69,14 @@ public class UrlRequestTest {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private UrlRequest buildUrlRequest(String url) {
|
private UrlRequest.Builder createUrlRequestBuilder(String url) {
|
||||||
return mHttpEngine.newUrlRequestBuilder(url, mCallback, mCallback.getExecutor()).build();
|
return mHttpEngine.newUrlRequestBuilder(url, mCallback, mCallback.getExecutor());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testUrlRequestGet_CompletesSuccessfully() throws Exception {
|
public void testUrlRequestGet_CompletesSuccessfully() throws Exception {
|
||||||
String url = mTestServer.getSuccessUrl();
|
String url = mTestServer.getSuccessUrl();
|
||||||
UrlRequest request = buildUrlRequest(url);
|
UrlRequest request = createUrlRequestBuilder(url).build();
|
||||||
request.start();
|
request.start();
|
||||||
|
|
||||||
mCallback.expectCallback(ResponseStep.ON_SUCCEEDED);
|
mCallback.expectCallback(ResponseStep.ON_SUCCEEDED);
|
||||||
@@ -85,7 +87,7 @@ public class UrlRequestTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testUrlRequestStatus_InvalidBeforeRequestStarts() throws Exception {
|
public void testUrlRequestStatus_InvalidBeforeRequestStarts() throws Exception {
|
||||||
UrlRequest request = buildUrlRequest(mTestServer.getSuccessUrl());
|
UrlRequest request = createUrlRequestBuilder(mTestServer.getSuccessUrl()).build();
|
||||||
// Calling before request is started should give Status.INVALID,
|
// Calling before request is started should give Status.INVALID,
|
||||||
// since the native adapter is not created.
|
// since the native adapter is not created.
|
||||||
TestStatusListener statusListener = new TestStatusListener();
|
TestStatusListener statusListener = new TestStatusListener();
|
||||||
@@ -95,7 +97,7 @@ public class UrlRequestTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testUrlRequestCancel_CancelCalled() throws Exception {
|
public void testUrlRequestCancel_CancelCalled() throws Exception {
|
||||||
UrlRequest request = buildUrlRequest(mTestServer.getSuccessUrl());
|
UrlRequest request = createUrlRequestBuilder(mTestServer.getSuccessUrl()).build();
|
||||||
mCallback.setAutoAdvance(false);
|
mCallback.setAutoAdvance(false);
|
||||||
|
|
||||||
request.start();
|
request.start();
|
||||||
@@ -105,4 +107,22 @@ public class UrlRequestTest {
|
|||||||
request.cancel();
|
request.cancel();
|
||||||
mCallback.expectCallback(ResponseStep.ON_CANCELED);
|
mCallback.expectCallback(ResponseStep.ON_CANCELED);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testUrlRequestPost_EchoRequestBody() throws Exception {
|
||||||
|
String testData = "test";
|
||||||
|
UrlRequest.Builder builder = createUrlRequestBuilder(mTestServer.getEchoBodyUrl());
|
||||||
|
|
||||||
|
TestUploadDataProvider dataProvider = new TestUploadDataProvider(
|
||||||
|
TestUploadDataProvider.SuccessCallbackMode.SYNC, mCallback.getExecutor());
|
||||||
|
dataProvider.addRead(testData.getBytes());
|
||||||
|
builder.setUploadDataProvider(dataProvider, mCallback.getExecutor());
|
||||||
|
builder.addHeader("Content-Type", "text/html");
|
||||||
|
builder.build().start();
|
||||||
|
mCallback.expectCallback(ResponseStep.ON_SUCCEEDED);
|
||||||
|
|
||||||
|
assertOKStatusCode(mCallback.mResponseInfo);
|
||||||
|
assertEquals(testData, mCallback.mResponseAsString);
|
||||||
|
dataProvider.assertClosed();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,5 +29,5 @@ fun skipIfNoInternetConnection(context: Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun assertOKStatusCode(info: UrlResponseInfo) {
|
fun assertOKStatusCode(info: UrlResponseInfo) {
|
||||||
assertEquals("Status code must be 200 OK", 200, info.getHttpStatusCode())
|
assertEquals("Status code must be 200 OK", 200, info.httpStatusCode)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user