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 public void encodesToFullHttpResponse() { LiveHttpResponse response = response(CREATED) .version(HTTP_1_0) .header("HeaderName", "HeaderValue") .cookies(responseCookie("CookieName", "CookieValue").build()) .body(new ByteStream(Flux.just("foo", "bar").map(it -> new Buffer(copiedBuffer(it, UTF_8))))) .build(); HttpResponse full = Mono.from(response.aggregate(0x1000)).block(); assertThat(full.status(), is(CREATED)); assertThat(full.version(), is(HTTP_1_0)); assertThat(full.headers(), containsInAnyOrder(header("HeaderName", "HeaderValue"), header("Set-Cookie", "CookieName=CookieValue"))); assertThat(full.cookies(), contains(responseCookie("CookieName", "CookieValue").build())); assertThat(full.body(), is(bytes("foobar"))); }
@Test(expectedExceptions = NullPointerException.class) public void rejectsNullCookieValue() { response().cookies(responseCookie("name", null).build()).build(); }
@Test(expectedExceptions = NullPointerException.class) public void rejectsNullCookieName() { response().cookies(responseCookie(null, "value").build()).build(); }
@Test(expectedExceptions = NullPointerException.class) public void rejectsNullCookie() { response().cookies((ResponseCookie) null).build(); }
@Test public void getASingleCookieValue() { LiveHttpResponse response = response() .cookies( responseCookie("a", "b").build(), responseCookie("c", "d").build()) .build(); assertThat(response.cookie("c"), isValue(responseCookie("c", "d").build())); }
@Test public void setsMultipleOutboundCookies() { LiveHttpResponse response = 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 setsASingleOutboundCookie() { LiveHttpResponse response = 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())); }
@Override public Transformer cookies(ResponseCookie... cookies) { builder.cookies(cookies); return this; }
@Test public void newCookiesWithDuplicateNamesOverridePreviousOnes() { LiveHttpResponse r1 = response() .cookies(responseCookie("y", "y1").build()) .build(); LiveHttpResponse r2 = r1.newBuilder().addCookies( responseCookie("y", "y2").build()) .build(); assertThat(r2.cookies(), containsInAnyOrder(responseCookie("y", "y2").build())); }
@Override public Transformer cookies(Collection<ResponseCookie> cookies) { builder.cookies(cookies); return this; }