Chromium Code Reviews| 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()); |
|
xunjieli
2015/10/13 22:31:14
The numbers are a bit magical. It will be nice to
mef
2015/10/15 22:32:24
Acknowledged. I don't like magic, but the best ide
|
| } |
| @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); |