diff --git a/modules/jooby-undertow/src/main/java/io/jooby/internal/undertow/UndertowHandler.java b/modules/jooby-undertow/src/main/java/io/jooby/internal/undertow/UndertowHandler.java index 9e33f66609..c0a3899947 100644 --- a/modules/jooby-undertow/src/main/java/io/jooby/internal/undertow/UndertowHandler.java +++ b/modules/jooby-undertow/src/main/java/io/jooby/internal/undertow/UndertowHandler.java @@ -52,7 +52,7 @@ public void handleRequest(HttpServerExchange exchange) throws Exception { if (context.isHttpGet()) { router.match(context).execute(context); } else { - // possibly HTTP body + // possibly HTTP body HeaderMap headers = exchange.getRequestHeaders(); long len = parseLen(headers.getFirst(Headers.CONTENT_LENGTH)); String chunked = headers.getFirst(Headers.TRANSFER_ENCODING); diff --git a/tests/src/test/java/io/jooby/i2525/Issue2525.java b/tests/src/test/java/io/jooby/i2525/Issue2525.java index 7d12e2b885..977b68bdd7 100644 --- a/tests/src/test/java/io/jooby/i2525/Issue2525.java +++ b/tests/src/test/java/io/jooby/i2525/Issue2525.java @@ -7,6 +7,8 @@ import static org.junit.jupiter.api.Assertions.assertEquals; +import java.util.Map; + import io.jooby.jackson.Jackson2Module; import io.jooby.junit.ServerTest; import io.jooby.junit.ServerTestRunner; @@ -36,8 +38,16 @@ public void shouldHandleMultipleAcceptHeaders(ServerTestRunner runner) { rsp -> { assertEquals("[]", rsp.body().string()); }); + Map queryParams = + Map.of( + "foo[0][a]", 10, + "foo[0][b]", 20, + "foo[1][a]", 30, + "foo[1][b]", 40, + "something", "else"); http.get( - "/2525?foo[0][a]=10&foo[0][b]=20&foo[1][a]=30&foo[1][b]=40&something=else", + "/2525", + queryParams, rsp -> { assertEquals("[{\"a\":10,\"b\":20},{\"a\":30,\"b\":40}]", rsp.body().string()); }); diff --git a/tests/src/test/java/io/jooby/i3863/AbstractTrpcProtocolTest.java b/tests/src/test/java/io/jooby/i3863/AbstractTrpcProtocolTest.java index 787e9d6bb7..7e43528c55 100644 --- a/tests/src/test/java/io/jooby/i3863/AbstractTrpcProtocolTest.java +++ b/tests/src/test/java/io/jooby/i3863/AbstractTrpcProtocolTest.java @@ -68,8 +68,10 @@ void shouldHandleBasicAndMultiArgumentCalls(ServerTestRunner runner) { }); // Search (Multi-Argument Tuple) + Map queryMap = Map.of("input", "[\"Pulp Fiction\", 1994]"); http.get( - "/trpc/movies.search?input=[\"Pulp Fiction\", 1994]", + "/trpc/movies.search", + queryMap, rsp -> { assertThat(rsp.code()).isEqualTo(200); assertThat(rsp.body().string()) @@ -195,8 +197,10 @@ void shouldHandleNullabilityValidation(ServerTestRunner runner) { .ready( http -> { // Validating a nullable parameter is accepted (Integer) + Map input = Map.of("input", "[\"The Godfather\", null]"); http.get( - "/trpc/movies.search?input=[\"The Godfather\", null]", + "/trpc/movies.search", + input, rsp -> { assertThat(rsp.code()).isEqualTo(200); assertThat(rsp.body().string()).contains("\"The Godfather\"");