@Test public void createsRequestBuilderFromRequest() { LiveHttpRequest originalRequest = get("/home") .cookies(requestCookie("fred", "blogs")) .header("some", "header") .build(); LiveHttpRequest clonedRequest = originalRequest.newBuilder().build(); assertThat(clonedRequest.method(), is(originalRequest.method())); assertThat(clonedRequest.url(), is(originalRequest.url())); assertThat(clonedRequest.headers().toString(), is(originalRequest.headers().toString())); assertThat(clonedRequest.body(), is(originalRequest.body())); }
private static LiveHttpRequest removeBadContentLength(LiveHttpRequest request) { Optional<Long> contentLength = request.contentLength(); if (contentLength.isPresent() && request.chunked()) { return request.newBuilder() .removeHeader(CONTENT_LENGTH) .build(); } return request; } }
@Test public void transformerAddsHeader() { LiveHttpRequest request = LiveHttpRequest.get("/").build() .newBuilder() .addHeader("x", "y") .build(); assertEquals(request.header("x"), Optional.of("y")); }
private LiveHttpRequest enrich(LiveHttpRequest request, Context context) { LiveHttpRequest.Transformer builder = request.newBuilder(); xForwardedFor(request, context) .ifPresent(headerValue -> builder.header(X_FORWARDED_FOR, headerValue)); return builder .header(requestIdHeaderName, request.id()) .header(X_FORWARDED_PROTO, xForwardedProto(request, context.isSecure())) .build(); }
@Test public void transformsCookiesViaList() { LiveHttpRequest request = LiveHttpRequest.get("/").addCookies(requestCookie("cookie", "xyz010")).build() .newBuilder() .cookies(ImmutableList.of(requestCookie("cookie", "xyz202"))) .build(); assertEquals(request.cookie("cookie"), Optional.of(requestCookie("cookie", "xyz202"))); }
@Test public void transformsUrl() { LiveHttpRequest request = LiveHttpRequest.get("/").build() .newBuilder() .url(url("/z").build()) .build(); assertEquals(request.url().path(), "/z"); }
@Test public void transformsHeader() { LiveHttpRequest request = LiveHttpRequest.get("/").header("X-Styx-ID", "test").build() .newBuilder() .header("X-Styx-ID", "bar") .build(); assertEquals(request.header("X-Styx-ID"), Optional.of("bar")); }
@Test public void createsANewRequestWithSameVersionAsBefore() { LiveHttpRequest v10Request = get("/foo/bar").version(HTTP_1_0).build(); LiveHttpRequest newRequest = v10Request.newBuilder().uri("/blah/blah").build(); assertThat(newRequest.version(), is(HTTP_1_0)); }
@Test public void canRemoveAHeader() { Object hdValue = "b"; LiveHttpRequest request = get("/") .header("a", hdValue) .addHeader("c", hdValue) .build(); LiveHttpRequest shouldRemoveHeader = request.newBuilder() .removeHeader("c") .build(); assertThat(shouldRemoveHeader.headers(), contains(header("a", "b"))); }
public static LiveHttpRequest doOnError(LiveHttpRequest request, Consumer<Throwable> action) { return request.newBuilder() .body(it -> it.doOnEnd(ifError(action))) .build(); }
@Test public void transformsByAddingCookiesList() { LiveHttpRequest request = LiveHttpRequest.get("/").build() .newBuilder() .addCookies(ImmutableList.of(requestCookie("cookie", "xyz202"))) .build(); assertEquals(request.cookie("cookie"), Optional.of(requestCookie("cookie", "xyz202"))); }
@Test public void transformerRemovesHeader() { LiveHttpRequest request = LiveHttpRequest.get("/").addHeader("x", "y").build() .newBuilder() .removeHeader("x") .build(); assertEquals(request.header("x"), Optional.empty()); }
@Test public void transformsId() { LiveHttpRequest request = LiveHttpRequest.get("/").id("abc").build() .newBuilder() .id("xyz") .build(); assertEquals(request.id(), "xyz"); }
@Test public void removesCookies() { LiveHttpRequest r1 = LiveHttpRequest.get("/") .addCookies(requestCookie("x", "x1"), requestCookie("y", "y1")) .build(); LiveHttpRequest r2 = r1.newBuilder() .removeCookies("x") .removeCookies("foo") // ensure that trying to remove a non-existent cookie does not cause Exception .build(); assertThat(r2.cookies(), contains(requestCookie("y", "y1"))); }
@Test public void newCookiesWithDuplicateNamesOverridePreviousOnes() { LiveHttpRequest r1 = LiveHttpRequest.get("/") .cookies(requestCookie("y", "y1")) .build(); LiveHttpRequest r2 = r1.newBuilder().addCookies( requestCookie("y", "y2")) .build(); assertThat(r2.cookies(), contains(requestCookie("y", "y2"))); }
private static LiveHttpRequest addUserAgent(String userAgent, LiveHttpRequest request) { if (userAgent != null) { return request.newBuilder() .header(USER_AGENT, userAgent) .build(); } else { return request; } }
@Test public void transformsByRemovingCookies() { LiveHttpRequest request = LiveHttpRequest.get("/").addCookies(requestCookie("cookie", "xyz202")).build() .newBuilder() .removeCookies("cookie") .build(); assertEquals(request.cookie("cookie"), Optional.empty()); }
@Test public void transformsUri() { LiveHttpRequest request = LiveHttpRequest.get("/x").build() .newBuilder() .uri("/y") .build(); assertEquals(request.url().path(), "/y"); }
@Test public void canModifyPreviouslyCreatedRequest() { LiveHttpRequest request = get("/foo") .header("remove", "remove") .build(); LiveHttpRequest newRequest = request.newBuilder() .uri("/home") .header("remove", "notanymore") .build(); assertThat(newRequest.url().path(), is("/home")); assertThat(newRequest.headers(), hasItem(header("remove", "notanymore"))); }
@Test public void transformsByAddingCookies() { LiveHttpRequest request = LiveHttpRequest.get("/").build() .newBuilder() .addCookies(requestCookie("cookie", "xyz202")) .build(); assertEquals(request.cookie("cookie"), Optional.of(requestCookie("cookie", "xyz202"))); }