diff --git a/mockwebserver/src/test/java/com/squareup/okhttp/mockwebserver/MockWebServerTest.java b/mockwebserver/src/test/java/com/squareup/okhttp/mockwebserver/MockWebServerTest.java
index 64b39b566..931f6bb0b 100644
--- a/mockwebserver/src/test/java/com/squareup/okhttp/mockwebserver/MockWebServerTest.java
+++ b/mockwebserver/src/test/java/com/squareup/okhttp/mockwebserver/MockWebServerTest.java
@@ -97,61 +97,6 @@ public final class MockWebServerTest {
assertEquals(Arrays.asList("Cookies: delicious", "cookie: r=robot"), response.getHeaders());
}
- /**
- * Clients who adhere to 100
- * Status expect the server to send an interim response with status code
- * 100 before they send their payload.
- *
- *
Note
- *
- * JRE 6 only passes this test if
- * {@code -Dsun.net.http.allowRestrictedHeaders=true} is set.
- */
- @Test public void expect100ContinueWithBody() throws Exception {
- server.enqueue(new MockResponse());
-
- URL url = server.getUrl("/");
- HttpURLConnection connection = (HttpURLConnection) url.openConnection();
- connection.setRequestMethod("PUT");
- connection.setAllowUserInteraction(false);
- connection.setRequestProperty("Expect", "100-continue");
- connection.setDoOutput(true);
- connection.getOutputStream().write("hello".getBytes());
- assertEquals(HttpURLConnection.HTTP_OK, connection.getResponseCode());
-
- assertEquals(server.getRequestCount(), 1);
- RecordedRequest request = server.takeRequest();
- assertEquals(request.getRequestLine(), "PUT / HTTP/1.1");
- assertEquals("5", request.getHeader("Content-Length"));
- assertEquals(5, request.getBodySize());
- assertEquals("hello", request.getBody().readUtf8());
- // below fails on JRE 6 unless -Dsun.net.http.allowRestrictedHeaders=true is set
- assertEquals("100-continue", request.getHeader("Expect"));
- }
-
- @Test public void expect100ContinueWithNoBody() throws Exception {
- server.enqueue(new MockResponse());
-
- URL url = server.getUrl("/");
- HttpURLConnection connection = (HttpURLConnection) url.openConnection();
- connection.setRequestMethod("PUT");
- connection.setAllowUserInteraction(false);
- connection.setRequestProperty("Expect", "100-continue");
- connection.setRequestProperty("Content-Length", "0");
- connection.setDoOutput(true);
- connection.setFixedLengthStreamingMode(0);
- assertEquals(HttpURLConnection.HTTP_OK, connection.getResponseCode());
-
- assertEquals(server.getRequestCount(), 1);
- RecordedRequest request = server.takeRequest();
- assertEquals(request.getRequestLine(), "PUT / HTTP/1.1");
- assertEquals("0", request.getHeader("Content-Length"));
- assertEquals(0, request.getBodySize());
- // below fails on JRE 6 unless -Dsun.net.http.allowRestrictedHeaders=true is set
- assertEquals("100-continue", request.getHeader("Expect"));
- }
-
@Test public void regularResponse() throws Exception {
server.enqueue(new MockResponse().setBody("hello world"));
diff --git a/okhttp-tests/src/test/java/com/squareup/okhttp/CallTest.java b/okhttp-tests/src/test/java/com/squareup/okhttp/CallTest.java
index 8d39d1707..58613fe82 100644
--- a/okhttp-tests/src/test/java/com/squareup/okhttp/CallTest.java
+++ b/okhttp-tests/src/test/java/com/squareup/okhttp/CallTest.java
@@ -1617,6 +1617,36 @@ public final class CallTest {
.assertCode(302);
}
+ @Test public void expect100ContinueNonEmptyRequestBody() throws Exception {
+ server.enqueue(new MockResponse());
+
+ Request request = new Request.Builder()
+ .url(server.getUrl("/"))
+ .header("Expect", "100-continue")
+ .post(RequestBody.create(MediaType.parse("text/plain"), "abc"))
+ .build();
+
+ executeSynchronously(request)
+ .assertCode(200)
+ .assertSuccessful();
+
+ assertEquals("abc", server.takeRequest().getUtf8Body());
+ }
+
+ @Test public void expect100ContinueEmptyRequestBody() throws Exception {
+ server.enqueue(new MockResponse());
+
+ Request request = new Request.Builder()
+ .url(server.getUrl("/"))
+ .header("Expect", "100-continue")
+ .post(RequestBody.create(MediaType.parse("text/plain"), ""))
+ .build();
+
+ executeSynchronously(request)
+ .assertCode(200)
+ .assertSuccessful();
+ }
+
private RecordedResponse executeSynchronously(Request request) throws IOException {
Response response = client.newCall(request).execute();
return new RecordedResponse(request, response, null, response.body().string(), null);