@Test public void serverSendsPushPromise_GET() throws Exception { PushPromise pushPromise = new PushPromise("GET", "/foo/bar", Headers.of("foo", "bar"), new MockResponse().setBody("bar").setStatus("HTTP/1.1 200 Sweet")); server.enqueue(new MockResponse() .setBody("ABCDE") .setStatus("HTTP/1.1 200 Sweet") .withPush(pushPromise)); Call call = client.newCall(new Request.Builder() .url(server.url("/foo")) .build()); Response response = call.execute(); assertEquals("ABCDE", response.body().string()); assertEquals(200, response.code()); assertEquals("Sweet", response.message()); RecordedRequest request = server.takeRequest(); assertEquals("GET /foo HTTP/1.1", request.getRequestLine()); assertEquals("https", request.getHeader(":scheme")); assertEquals(server.getHostName() + ":" + server.getPort(), request.getHeader(":authority")); RecordedRequest pushedRequest = server.takeRequest(); assertEquals("GET /foo/bar HTTP/1.1", pushedRequest.getRequestLine()); assertEquals("bar", pushedRequest.getHeader("foo")); }
@Test public void serverSendsPushPromise_HEAD() throws Exception { PushPromise pushPromise = new PushPromise("HEAD", "/foo/bar", Headers.of("foo", "bar"), new MockResponse().setStatus("HTTP/1.1 204 Sweet")); server.enqueue(new MockResponse() .setBody("ABCDE") .setStatus("HTTP/1.1 200 Sweet") .withPush(pushPromise)); Call call = client.newCall(new Request.Builder() .url(server.url("/foo")) .build()); Response response = call.execute(); assertEquals("ABCDE", response.body().string()); assertEquals(200, response.code()); assertEquals("Sweet", response.message()); RecordedRequest request = server.takeRequest(); assertEquals("GET /foo HTTP/1.1", request.getRequestLine()); assertEquals("https", request.getHeader(":scheme")); assertEquals(server.getHostName() + ":" + server.getPort(), request.getHeader(":authority")); RecordedRequest pushedRequest = server.takeRequest(); assertEquals("HEAD /foo/bar HTTP/1.1", pushedRequest.getRequestLine()); assertEquals("bar", pushedRequest.getHeader("foo")); }
@Test public void serverSendsPushPromise_GET() throws Exception { PushPromise pushPromise = new PushPromise("GET", "/foo/bar", Headers.of("foo", "bar"), new MockResponse().setBody("bar").setStatus("HTTP/1.1 200 Sweet")); server.enqueue(new MockResponse() .setBody("ABCDE") .setStatus("HTTP/1.1 200 Sweet") .withPush(pushPromise)); Call call = client.newCall(new Request.Builder() .url(server.url("/foo")) .build()); Response response = call.execute(); assertEquals("ABCDE", response.body().string()); assertEquals(200, response.code()); assertEquals("", response.message()); RecordedRequest request = server.takeRequest(); assertEquals("GET /foo HTTP/1.1", request.getRequestLine()); assertEquals("https", request.getHeader(":scheme")); assertEquals(server.getHostName() + ":" + server.getPort(), request.getHeader(":authority")); RecordedRequest pushedRequest = server.takeRequest(); assertEquals("GET /foo/bar HTTP/1.1", pushedRequest.getRequestLine()); assertEquals("bar", pushedRequest.getHeader("foo")); }
@Test public void serverSendsPushPromise_HEAD() throws Exception { PushPromise pushPromise = new PushPromise("HEAD", "/foo/bar", Headers.of("foo", "bar"), new MockResponse().setStatus("HTTP/1.1 204 Sweet")); server.enqueue(new MockResponse() .setBody("ABCDE") .setStatus("HTTP/1.1 200 Sweet") .withPush(pushPromise)); Call call = client.newCall(new Request.Builder() .url(server.url("/foo")) .build()); Response response = call.execute(); assertEquals("ABCDE", response.body().string()); assertEquals(200, response.code()); assertEquals("", response.message()); RecordedRequest request = server.takeRequest(); assertEquals("GET /foo HTTP/1.1", request.getRequestLine()); assertEquals("https", request.getHeader(":scheme")); assertEquals(server.getHostName() + ":" + server.getPort(), request.getHeader(":authority")); RecordedRequest pushedRequest = server.takeRequest(); assertEquals("HEAD /foo/bar HTTP/1.1", pushedRequest.getRequestLine()); assertEquals("bar", pushedRequest.getHeader("foo")); }
@Test public void serverSendsPushPromise_GET() throws Exception { PushPromise pushPromise = new PushPromise("GET", "/foo/bar", Headers.of("foo", "bar"), new MockResponse().setBody("bar").setStatus("HTTP/1.1 200 Sweet")); MockResponse response = new MockResponse() .setBody("ABCDE") .setStatus("HTTP/1.1 200 Sweet") .withPush(pushPromise); server.enqueue(response); connection = urlFactory.open(server.url("/foo").url()); assertContent("ABCDE", connection, Integer.MAX_VALUE); assertEquals(200, connection.getResponseCode()); assertEquals("Sweet", connection.getResponseMessage()); RecordedRequest request = server.takeRequest(); assertEquals("GET /foo HTTP/1.1", request.getRequestLine()); assertEquals("https", request.getHeader(":scheme")); assertEquals(server.getHostName() + ":" + server.getPort(), request.getHeader(hostHeader)); RecordedRequest pushedRequest = server.takeRequest(); assertEquals("GET /foo/bar HTTP/1.1", pushedRequest.getRequestLine()); assertEquals("bar", pushedRequest.getHeader("foo")); }
@Test public void serverSendsPushPromise_HEAD() throws Exception { PushPromise pushPromise = new PushPromise("HEAD", "/foo/bar", Headers.of("foo", "bar"), new MockResponse().setStatus("HTTP/1.1 204 Sweet")); MockResponse response = new MockResponse() .setBody("ABCDE") .setStatus("HTTP/1.1 200 Sweet") .withPush(pushPromise); server.enqueue(response); connection = urlFactory.open(server.url("/foo").url()); assertContent("ABCDE", connection, Integer.MAX_VALUE); assertEquals(200, connection.getResponseCode()); assertEquals("Sweet", connection.getResponseMessage()); RecordedRequest request = server.takeRequest(); assertEquals("GET /foo HTTP/1.1", request.getRequestLine()); assertEquals("https", request.getHeader(":scheme")); assertEquals(server.getHostName() + ":" + server.getPort(), request.getHeader(hostHeader)); RecordedRequest pushedRequest = server.takeRequest(); assertEquals("HEAD /foo/bar HTTP/1.1", pushedRequest.getRequestLine()); assertEquals("bar", pushedRequest.getHeader("foo")); }