summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNarayan Kamath <narayan@google.com>2013-08-21 14:00:00 +0100
committerNarayan Kamath <narayan@google.com>2013-08-21 16:57:42 +0100
commite44762f71ed6eeb718a0bb6f3848beb7696fd97d (patch)
treec5d2faf42c2c7ca8583d782401b8a9139a342b80
parentcb8ab9cb9f5da083e7390920f0f7d0c8a879cb6b (diff)
downloadmockwebserver-e44762f71ed6eeb718a0bb6f3848beb7696fd97d.tar.gz
Useful for writing tests related to POST requests with retryable and unretryable bodies. (cherry picked from 3088bcc1d22f3e163e5e7ecbc997daadfdaaeec3) bug: 10211309 Change-Id: Icb042d5875c4651348103be4eed7a2e248449b52
-rw-r--r--src/main/java/com/google/mockwebserver/MockWebServer.java4
-rw-r--r--src/main/java/com/google/mockwebserver/SocketPolicy.java6
2 files changed, 10 insertions, 0 deletions
diff --git a/src/main/java/com/google/mockwebserver/MockWebServer.java b/src/main/java/com/google/mockwebserver/MockWebServer.java
index 5e3a1d7..f7930bc 100644
--- a/src/main/java/com/google/mockwebserver/MockWebServer.java
+++ b/src/main/java/com/google/mockwebserver/MockWebServer.java
@@ -330,6 +330,10 @@ public final class MockWebServer {
requestCount.incrementAndGet();
requestQueue.add(request);
MockResponse response = dispatcher.dispatch(request);
+ if (response.getSocketPolicy() == SocketPolicy.DISCONNECT_AFTER_READING_REQUEST) {
+ logger.info("Received request: " + request + " and disconnected without responding");
+ return false;
+ }
writeResponse(out, response);
if (response.getSocketPolicy() == SocketPolicy.DISCONNECT_AT_END) {
in.close();
diff --git a/src/main/java/com/google/mockwebserver/SocketPolicy.java b/src/main/java/com/google/mockwebserver/SocketPolicy.java
index 3a6797b..121fe80 100644
--- a/src/main/java/com/google/mockwebserver/SocketPolicy.java
+++ b/src/main/java/com/google/mockwebserver/SocketPolicy.java
@@ -51,6 +51,12 @@ public enum SocketPolicy {
DISCONNECT_AT_START,
/**
+ * Request immediate close of connection after reading the entire
+ * request (and before any response is sent).
+ */
+ DISCONNECT_AFTER_READING_REQUEST,
+
+ /**
* Don't trust the client during the SSL handshake.
*/
FAIL_HANDSHAKE,