private Builder removeCookiesIf(Predicate<String> removeIfName) { Predicate<ResponseCookie> keepIf = cookie -> !removeIfName.test(cookie.name()); List<ResponseCookie> newCookies = decode(headers.getAll(SET_COOKIE)).stream() .filter(keepIf) .collect(toList()); return cookies(newCookies); }
/** * Sets the cookies on this response by removing existing "Set-Cookie" headers and adding new ones. * * @param cookies cookies * @return {@code this} */ public Builder cookies(ResponseCookie... cookies) { return cookies(asList(cookies)); }
@Test(expectedExceptions = NullPointerException.class) public void rejectsNullCookie() { HttpResponse.response().cookies((ResponseCookie) null).build(); }
@Test public void convertsToStreamingHttpResponse() throws Exception { HttpResponse response = response(CREATED) .version(HTTP_1_1) .header("HeaderName", "HeaderValue") .cookies(responseCookie("CookieName", "CookieValue").build()) .body("message content", UTF_8) .build(); LiveHttpResponse streaming = response.stream(); assertThat(streaming.version(), is(HTTP_1_1)); assertThat(streaming.status(), is(CREATED)); assertThat(streaming.headers(), containsInAnyOrder( header("Content-Length", "15"), header("HeaderName", "HeaderValue"), header("Set-Cookie", "CookieName=CookieValue") )); assertThat(streaming.cookies(), contains(responseCookie("CookieName", "CookieValue").build())); StepVerifier.create(streaming.aggregate(0x100000).map(it -> it.bodyAs(UTF_8))) .expectNext("message content") .verifyComplete(); }
@Test public void setsMultipleOutboundCookies() { HttpResponse response = HttpResponse.response() .cookies( responseCookie("a", "b").build(), responseCookie("c", "d").build()) .build(); Set<ResponseCookie> cookies = response.cookies(); assertThat(cookies, containsInAnyOrder( responseCookie("a", "b").build(), responseCookie("c", "d").build() )); }
@Test public void newCookiesWithDuplicateNamesOverridePreviousOnes() { HttpResponse r1 = response() .cookies(responseCookie("y", "y1").build()) .build(); HttpResponse r2 = r1.newBuilder().addCookies( responseCookie("y", "y2").build()) .build(); assertThat(r2.cookies(), containsInAnyOrder(responseCookie("y", "y2").build())); }
@Test public void getASingleCookieValue() { HttpResponse response = HttpResponse.response() .cookies( responseCookie("a", "b").build(), responseCookie("c", "d").build()) .build(); assertThat(response.cookie("c"), isValue(responseCookie("c", "d").build())); }
@Test(expectedExceptions = NullPointerException.class) public void rejectsNullCookieValue() { HttpResponse.response().cookies(responseCookie("name", null).build()).build(); }
@Test(expectedExceptions = NullPointerException.class) public void rejectsNullCookieName() { HttpResponse.response().cookies(responseCookie(null, "value").build()).build(); }
@Test public void setsASingleOutboundCookie() { HttpResponse response = HttpResponse.response() .cookies(responseCookie("user", "QSplbl9HX1VL").domain(".hotels.com").path("/").maxAge(3600).build()) .build(); assertThat(response.cookie("user"), isValue(responseCookie("user", "QSplbl9HX1VL").domain(".hotels.com").path("/").maxAge(3600).build())); }