1
0
mirror of https://github.com/square/okhttp.git synced 2026-01-17 08:42:25 +03:00

Merge pull request #1505 from square/jwilson_0315_relax_streamed_requests

Relax expectations when streamed requests fail.
This commit is contained in:
Jake Wharton
2015-03-15 16:15:38 -05:00

View File

@@ -2570,7 +2570,6 @@ public final class URLConnectionTest {
reusedConnectionFailsWithPost(TransferKind.END_OF_STREAM, 1024);
}
// This test is ignored because we don't (yet) reliably recover for large request bodies.
@Test public void postFailsWithBufferedRequestForLargeRequest() throws Exception {
reusedConnectionFailsWithPost(TransferKind.END_OF_STREAM, 16384);
}
@@ -2603,14 +2602,24 @@ public final class URLConnectionTest {
byte[] requestBody = new byte[requestSize];
new Random(0).nextBytes(requestBody);
connection = client.open(server.getUrl("/b"));
connection.setRequestMethod("POST");
transferKind.setForRequest(connection, requestBody.length);
for (int i = 0; i < requestBody.length; i += 1024) {
connection.getOutputStream().write(requestBody, i, 1024);
for (int j = 0; j < 2; j++) {
try {
connection = client.open(server.getUrl("/b"));
connection.setRequestMethod("POST");
transferKind.setForRequest(connection, requestBody.length);
for (int i = 0; i < requestBody.length; i += 1024) {
connection.getOutputStream().write(requestBody, i, 1024);
}
connection.getOutputStream().close();
assertContent("B", connection);
break;
} catch (IOException socketException) {
// If there's a socket exception, this must have a streamed request body.
assertEquals(0, j);
assertTrue(transferKind == TransferKind.CHUNKED
|| transferKind == TransferKind.FIXED_LENGTH);
}
}
connection.getOutputStream().close();
assertContent("B", connection);
RecordedRequest requestA = server.takeRequest();
assertEquals("/a", requestA.getPath());