mirror of
https://github.com/square/okhttp.git
synced 2026-01-17 08:42:25 +03:00
Merge pull request #2224 from square/jw/mock-reason
Change default mock reason.
This commit is contained in:
@@ -28,7 +28,7 @@ import okio.Buffer;
|
||||
public final class MockResponse implements Cloneable {
|
||||
private static final String CHUNKED_BODY_HEADER = "Transfer-encoding: chunked";
|
||||
|
||||
private String status = "HTTP/1.1 200 OK";
|
||||
private String status;
|
||||
private Headers.Builder headers = new Headers.Builder();
|
||||
|
||||
private Buffer body;
|
||||
@@ -48,6 +48,7 @@ public final class MockResponse implements Cloneable {
|
||||
|
||||
/** Creates a new mock response with an empty body. */
|
||||
public MockResponse() {
|
||||
setResponseCode(200);
|
||||
setHeader("Content-Length", 0);
|
||||
}
|
||||
|
||||
@@ -68,7 +69,19 @@ public final class MockResponse implements Cloneable {
|
||||
}
|
||||
|
||||
public MockResponse setResponseCode(int code) {
|
||||
return setStatus("HTTP/1.1 " + code + " OK");
|
||||
String reason = "Mock Response";
|
||||
if (code >= 100 && code < 200) {
|
||||
reason = "Informational";
|
||||
} else if (code >= 200 && code < 300) {
|
||||
reason = "OK";
|
||||
} else if (code >= 300 && code < 400) {
|
||||
reason = "Redirection";
|
||||
} else if (code >= 400 && code < 500) {
|
||||
reason = "Client Error";
|
||||
} else if (code >= 500 && code < 600) {
|
||||
reason = "Server Error";
|
||||
}
|
||||
return setStatus("HTTP/1.1 " + code + " " + reason);
|
||||
}
|
||||
|
||||
public MockResponse setStatus(String status) {
|
||||
|
||||
@@ -55,11 +55,34 @@ public final class MockWebServerTest {
|
||||
assertEquals("HTTP/1.1 200 OK", response.getStatus());
|
||||
}
|
||||
|
||||
@Test public void setResponseMockReason() {
|
||||
String[] reasons = {
|
||||
"Mock Response",
|
||||
"Informational",
|
||||
"OK",
|
||||
"Redirection",
|
||||
"Client Error",
|
||||
"Server Error",
|
||||
"Mock Response"
|
||||
};
|
||||
for (int i = 0; i < 600; i++) {
|
||||
MockResponse response = new MockResponse().setResponseCode(i);
|
||||
String expectedReason = reasons[i / 100];
|
||||
assertEquals("HTTP/1.1 " + i + " " + expectedReason, response.getStatus());
|
||||
assertEquals(Arrays.asList("Content-Length: 0"), headersToList(response));
|
||||
}
|
||||
}
|
||||
|
||||
@Test public void setStatusControlsWholeStatusLine() {
|
||||
MockResponse response = new MockResponse().setStatus("HTTP/1.1 202 That'll do pig");
|
||||
assertEquals(Arrays.asList("Content-Length: 0"), headersToList(response));
|
||||
assertEquals("HTTP/1.1 202 That'll do pig", response.getStatus());
|
||||
}
|
||||
|
||||
@Test public void setBodyAdjustsHeaders() throws IOException {
|
||||
MockResponse response = new MockResponse().setBody("ABC");
|
||||
assertEquals(Arrays.asList("Content-Length: 3"), headersToList(response));
|
||||
assertEquals("ABC", response.getBody().readUtf8());
|
||||
assertEquals("HTTP/1.1 200 OK", response.getStatus());
|
||||
}
|
||||
|
||||
@Test public void mockResponseAddHeader() {
|
||||
|
||||
@@ -89,7 +89,7 @@ public final class WebSocketCallTest {
|
||||
}
|
||||
|
||||
@Test public void okButNotOk() {
|
||||
server.enqueue(new MockResponse());
|
||||
server.enqueue(new MockResponse().setResponseCode(200));
|
||||
awaitWebSocket();
|
||||
listener.assertFailure(ProtocolException.class, "Expected HTTP 101 response but was '200 OK'");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user