| Index: components/cronet/android/test/javatests/src/org/chromium/net/CronetUrlRequestTest.java
|
| 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 8c33d769de6fe6d93dd73e96ed7744d482804f0c..c401e22843164623451c85da917086f814941b4a 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
|
| @@ -6,7 +6,6 @@ package org.chromium.net;
|
|
|
| import android.os.ConditionVariable;
|
| import android.test.suitebuilder.annotation.SmallTest;
|
| -import android.util.Pair;
|
|
|
| import org.chromium.base.test.util.Feature;
|
| import org.chromium.net.TestUrlRequestListener.FailureType;
|
| @@ -61,19 +60,19 @@ public class CronetUrlRequestTest extends CronetTestBase {
|
| return listener;
|
| }
|
|
|
| - private void checkResponseInfo(ResponseInfo responseInfo,
|
| - String expectedUrl, int expectedHttpStatusCode,
|
| - String expectedHttpStatusText) {
|
| + private void checkResponseInfo(UrlResponseInfo responseInfo, String expectedUrl,
|
| + int expectedHttpStatusCode, String expectedHttpStatusText) {
|
| assertEquals(expectedUrl, responseInfo.getUrl());
|
| - assertEquals(expectedUrl, responseInfo.getUrlChain()[
|
| - responseInfo.getUrlChain().length - 1]);
|
| + assertEquals(
|
| + expectedUrl, responseInfo.getUrlChain().get(responseInfo.getUrlChain().size() - 1));
|
| assertEquals(expectedHttpStatusCode, responseInfo.getHttpStatusCode());
|
| assertEquals(expectedHttpStatusText, responseInfo.getHttpStatusText());
|
| assertFalse(responseInfo.wasCached());
|
| + assertTrue(responseInfo.toString().length() > 0);
|
| }
|
|
|
| - private void checkResponseInfoHeader(ResponseInfo responseInfo,
|
| - String headerName, String headerValue) {
|
| + private void checkResponseInfoHeader(
|
| + UrlResponseInfo responseInfo, String headerName, String headerValue) {
|
| Map<String, List<String>> responseHeaders =
|
| responseInfo.getAllHeaders();
|
| List<String> header = responseHeaders.get(headerName);
|
| @@ -120,17 +119,22 @@ public class CronetUrlRequestTest extends CronetTestBase {
|
| @SmallTest
|
| @Feature({"Cronet"})
|
| public void testSimpleGet() throws Exception {
|
| - TestUrlRequestListener listener = startAndWaitForComplete(
|
| - NativeTestServer.getEchoMethodURL());
|
| + String url = NativeTestServer.getEchoMethodURL();
|
| + TestUrlRequestListener listener = startAndWaitForComplete(url);
|
| assertEquals(200, listener.mResponseInfo.getHttpStatusCode());
|
| // Default method is 'GET'.
|
| assertEquals("GET", listener.mResponseAsString);
|
| assertEquals(0, listener.mRedirectCount);
|
| assertEquals(listener.mResponseStep, ResponseStep.ON_SUCCEEDED);
|
| + assertEquals(String.format("UrlResponseInfo[%s]: urlChain = [%s], httpStatus = 200 OK, "
|
| + + "headers = [Connection=close, Content-Length=3, "
|
| + + "Content-Type=text/plain], wasCached = false, "
|
| + + "negotiatedProtocol = unknown, proxyServer= :0, "
|
| + + "receivedBytesCount = 86",
|
| + url, url),
|
| + listener.mResponseInfo.toString());
|
| checkResponseInfo(listener.mResponseInfo,
|
| NativeTestServer.getEchoMethodURL(), 200, "OK");
|
| - checkResponseInfo(listener.mExtendedResponseInfo.getResponseInfo(),
|
| - NativeTestServer.getEchoMethodURL(), 200, "OK");
|
| }
|
|
|
| /**
|
| @@ -155,12 +159,19 @@ public class CronetUrlRequestTest extends CronetTestBase {
|
| assertEquals(1, listener.mRedirectResponseInfoList.size());
|
| checkResponseInfo(listener.mRedirectResponseInfoList.get(0),
|
| NativeTestServer.getRedirectURL(), 302, "Found");
|
| - assertEquals(1,
|
| - listener.mRedirectResponseInfoList.get(0).getUrlChain().length);
|
| + assertEquals(1, listener.mRedirectResponseInfoList.get(0).getUrlChain().size());
|
| assertEquals(NativeTestServer.getSuccessURL(), listener.mRedirectUrlList.get(0));
|
| checkResponseInfoHeader(listener.mRedirectResponseInfoList.get(0),
|
| "redirect-header", "header-value");
|
|
|
| + assertEquals(String.format("UrlResponseInfo[%s]: urlChain = [%s], httpStatus = 302 Found, "
|
| + + "headers = [Location=/success.txt, "
|
| + + "redirect-header=header-value], wasCached = false, "
|
| + + "negotiatedProtocol = unknown, proxyServer= :0, "
|
| + + "receivedBytesCount = 74",
|
| + NativeTestServer.getRedirectURL(), NativeTestServer.getRedirectURL()),
|
| + listener.mRedirectResponseInfoList.get(0).toString());
|
| +
|
| // Wait for an unrelated request to finish. The request should not
|
| // advance until followRedirect is invoked.
|
| testSimpleGet();
|
| @@ -175,9 +186,10 @@ public class CronetUrlRequestTest extends CronetTestBase {
|
| assertEquals(1, listener.mRedirectResponseInfoList.size());
|
| assertEquals(200, listener.mResponseInfo.getHttpStatusCode());
|
| checkResponseInfo(listener.mResponseInfo, NativeTestServer.getSuccessURL(), 200, "OK");
|
| - assertEquals(2, listener.mResponseInfo.getUrlChain().length);
|
| - assertEquals(NativeTestServer.getRedirectURL(), listener.mResponseInfo.getUrlChain()[0]);
|
| - assertEquals(NativeTestServer.getSuccessURL(), listener.mResponseInfo.getUrlChain()[1]);
|
| + assertEquals(2, listener.mResponseInfo.getUrlChain().size());
|
| + assertEquals(
|
| + NativeTestServer.getRedirectURL(), listener.mResponseInfo.getUrlChain().get(0));
|
| + assertEquals(NativeTestServer.getSuccessURL(), listener.mResponseInfo.getUrlChain().get(1));
|
|
|
| // Wait for an unrelated request to finish. The request should not
|
| // advance until read is invoked.
|
| @@ -203,6 +215,17 @@ public class CronetUrlRequestTest extends CronetTestBase {
|
| assertEquals(ResponseStep.ON_SUCCEEDED, listener.mResponseStep);
|
| assertEquals(NativeTestServer.SUCCESS_BODY, listener.mResponseAsString);
|
|
|
| + assertEquals(String.format("UrlResponseInfo[%s]: urlChain = [%s, %s], httpStatus = 200 OK, "
|
| + + "headers = [Content-Type=text/plain, "
|
| + + "Access-Control-Allow-Origin=*, header-name=header-value, "
|
| + + "multi-header-name=header-value1, "
|
| + + "multi-header-name=header-value2], wasCached = false, "
|
| + + "negotiatedProtocol = unknown, proxyServer= :0, "
|
| + + "receivedBytesCount = 260",
|
| + NativeTestServer.getSuccessURL(), NativeTestServer.getRedirectURL(),
|
| + NativeTestServer.getSuccessURL()),
|
| + listener.mResponseInfo.toString());
|
| +
|
| // Make sure there are no other pending messages, which would trigger
|
| // asserts in TestURLRequestListener.
|
| testSimpleGet();
|
| @@ -214,8 +237,6 @@ public class CronetUrlRequestTest extends CronetTestBase {
|
| String url = NativeTestServer.getFileURL("/notfound.html");
|
| TestUrlRequestListener listener = startAndWaitForComplete(url);
|
| checkResponseInfo(listener.mResponseInfo, url, 404, "Not Found");
|
| - checkResponseInfo(listener.mExtendedResponseInfo.getResponseInfo(),
|
| - url, 404, "Not Found");
|
| assertEquals(
|
| "<!DOCTYPE html>\n<html>\n<head>\n<title>Not found</title>\n"
|
| + "<p>Test page loaded.</p>\n</head>\n</html>\n",
|
| @@ -417,20 +438,19 @@ public class CronetUrlRequestTest extends CronetTestBase {
|
| public void testResponseHeadersList() throws Exception {
|
| TestUrlRequestListener listener = startAndWaitForComplete(NativeTestServer.getSuccessURL());
|
| assertEquals(200, listener.mResponseInfo.getHttpStatusCode());
|
| - List<Pair<String, String>> responseHeaders =
|
| + List<Map.Entry<String, String>> responseHeaders =
|
| listener.mResponseInfo.getAllHeadersAsList();
|
| assertEquals(5, responseHeaders.size());
|
| - assertEquals("Content-Type", responseHeaders.get(0).first);
|
| - assertEquals("text/plain", responseHeaders.get(0).second);
|
| - assertEquals("Access-Control-Allow-Origin",
|
| - responseHeaders.get(1).first);
|
| - assertEquals("*", responseHeaders.get(1).second);
|
| - assertEquals("header-name", responseHeaders.get(2).first);
|
| - assertEquals("header-value", responseHeaders.get(2).second);
|
| - assertEquals("multi-header-name", responseHeaders.get(3).first);
|
| - assertEquals("header-value1", responseHeaders.get(3).second);
|
| - assertEquals("multi-header-name", responseHeaders.get(4).first);
|
| - assertEquals("header-value2", responseHeaders.get(4).second);
|
| + assertEquals("Content-Type", responseHeaders.get(0).getKey());
|
| + assertEquals("text/plain", responseHeaders.get(0).getValue());
|
| + assertEquals("Access-Control-Allow-Origin", responseHeaders.get(1).getKey());
|
| + assertEquals("*", responseHeaders.get(1).getValue());
|
| + assertEquals("header-name", responseHeaders.get(2).getKey());
|
| + assertEquals("header-value", responseHeaders.get(2).getValue());
|
| + assertEquals("multi-header-name", responseHeaders.get(3).getKey());
|
| + assertEquals("header-value1", responseHeaders.get(3).getValue());
|
| + assertEquals("multi-header-name", responseHeaders.get(4).getKey());
|
| + assertEquals("header-value2", responseHeaders.get(4).getValue());
|
| }
|
|
|
| @SmallTest
|
| @@ -438,44 +458,45 @@ public class CronetUrlRequestTest extends CronetTestBase {
|
| public void testMockMultiRedirect() throws Exception {
|
| TestUrlRequestListener listener =
|
| startAndWaitForComplete(NativeTestServer.getMultiRedirectURL());
|
| - ResponseInfo mResponseInfo = listener.mResponseInfo;
|
| + UrlResponseInfo mResponseInfo = listener.mResponseInfo;
|
| assertEquals(2, listener.mRedirectCount);
|
| assertEquals(200, mResponseInfo.getHttpStatusCode());
|
| assertEquals(2, listener.mRedirectResponseInfoList.size());
|
|
|
| // Check first redirect (multiredirect.html -> redirect.html)
|
| - ResponseInfo firstRedirectResponseInfo =
|
| - listener.mRedirectResponseInfoList.get(0);
|
| - assertEquals(1, firstRedirectResponseInfo.getUrlChain().length);
|
| - assertEquals(
|
| - NativeTestServer.getMultiRedirectURL(), firstRedirectResponseInfo.getUrlChain()[0]);
|
| + UrlResponseInfo firstRedirectResponseInfo = listener.mRedirectResponseInfoList.get(0);
|
| + assertEquals(1, firstRedirectResponseInfo.getUrlChain().size());
|
| + assertEquals(NativeTestServer.getMultiRedirectURL(),
|
| + firstRedirectResponseInfo.getUrlChain().get(0));
|
| checkResponseInfo(
|
| firstRedirectResponseInfo, NativeTestServer.getMultiRedirectURL(), 302, "Found");
|
| checkResponseInfoHeader(firstRedirectResponseInfo,
|
| "redirect-header0", "header-value");
|
| + assertEquals(77, firstRedirectResponseInfo.getReceivedBytesCount());
|
|
|
| // Check second redirect (redirect.html -> success.txt)
|
| - ResponseInfo secondRedirectResponseInfo =
|
| - listener.mRedirectResponseInfoList.get(1);
|
| - assertEquals(2, secondRedirectResponseInfo.getUrlChain().length);
|
| + UrlResponseInfo secondRedirectResponseInfo = listener.mRedirectResponseInfoList.get(1);
|
| + assertEquals(2, secondRedirectResponseInfo.getUrlChain().size());
|
| assertEquals(NativeTestServer.getMultiRedirectURL(),
|
| - secondRedirectResponseInfo.getUrlChain()[0]);
|
| + secondRedirectResponseInfo.getUrlChain().get(0));
|
| assertEquals(
|
| - NativeTestServer.getRedirectURL(), secondRedirectResponseInfo.getUrlChain()[1]);
|
| + NativeTestServer.getRedirectURL(), secondRedirectResponseInfo.getUrlChain().get(1));
|
| checkResponseInfo(
|
| secondRedirectResponseInfo, NativeTestServer.getRedirectURL(), 302, "Found");
|
| checkResponseInfoHeader(secondRedirectResponseInfo,
|
| "redirect-header", "header-value");
|
| + assertEquals(151, secondRedirectResponseInfo.getReceivedBytesCount());
|
|
|
| // Check final response (success.txt).
|
| assertEquals(NativeTestServer.getSuccessURL(), mResponseInfo.getUrl());
|
| - assertEquals(3, mResponseInfo.getUrlChain().length);
|
| - assertEquals(NativeTestServer.getMultiRedirectURL(), mResponseInfo.getUrlChain()[0]);
|
| - assertEquals(NativeTestServer.getRedirectURL(), mResponseInfo.getUrlChain()[1]);
|
| - assertEquals(NativeTestServer.getSuccessURL(), mResponseInfo.getUrlChain()[2]);
|
| + assertEquals(3, mResponseInfo.getUrlChain().size());
|
| + assertEquals(NativeTestServer.getMultiRedirectURL(), mResponseInfo.getUrlChain().get(0));
|
| + assertEquals(NativeTestServer.getRedirectURL(), mResponseInfo.getUrlChain().get(1));
|
| + assertEquals(NativeTestServer.getSuccessURL(), mResponseInfo.getUrlChain().get(2));
|
| assertTrue(listener.mHttpResponseDataLength != 0);
|
| assertEquals(2, listener.mRedirectCount);
|
| assertEquals(listener.mResponseStep, ResponseStep.ON_SUCCEEDED);
|
| + assertEquals(337, mResponseInfo.getReceivedBytesCount());
|
| }
|
|
|
| @SmallTest
|
| @@ -484,6 +505,7 @@ public class CronetUrlRequestTest extends CronetTestBase {
|
| TestUrlRequestListener listener =
|
| startAndWaitForComplete(NativeTestServer.getNotFoundURL());
|
| assertEquals(404, listener.mResponseInfo.getHttpStatusCode());
|
| + assertEquals(121, listener.mResponseInfo.getReceivedBytesCount());
|
| assertTrue(listener.mHttpResponseDataLength != 0);
|
| assertEquals(0, listener.mRedirectCount);
|
| assertFalse(listener.mOnErrorCalled);
|
| @@ -513,6 +535,7 @@ public class CronetUrlRequestTest extends CronetTestBase {
|
| startAndWaitForComplete(MockUrlRequestJobFactory.getMockUrlWithFailure(
|
| FailurePhase.READ_SYNC, arbitraryNetError));
|
| assertEquals(200, listener.mResponseInfo.getHttpStatusCode());
|
| + assertEquals(0, listener.mResponseInfo.getReceivedBytesCount());
|
| assertNotNull(listener.mError);
|
| assertEquals(arbitraryNetError, listener.mError.netError());
|
| assertEquals(0, listener.mRedirectCount);
|
| @@ -528,6 +551,7 @@ public class CronetUrlRequestTest extends CronetTestBase {
|
| startAndWaitForComplete(MockUrlRequestJobFactory.getMockUrlWithFailure(
|
| FailurePhase.READ_ASYNC, arbitraryNetError));
|
| assertEquals(200, listener.mResponseInfo.getHttpStatusCode());
|
| + assertEquals(0, listener.mResponseInfo.getReceivedBytesCount());
|
| assertNotNull(listener.mError);
|
| assertEquals(arbitraryNetError, listener.mError.netError());
|
| assertEquals(0, listener.mRedirectCount);
|
|
|