@ParameterizedTest
    @ArgumentsSource(ClientAndProtocolProvider.class)
    void testHeaders(WebClient client) throws Exception {
        final CompletableFuture<AggregatedHttpResponse> f = client.get("/headers").aggregate();

        final AggregatedHttpResponse res = f.get();

        assertThat(res.status()).isEqualTo(HttpStatus.OK);

        // Verify all header names are in lowercase
        for (AsciiString headerName : res.headers().names()) {
            headerName.chars().filter(Character::isAlphabetic)
                      .forEach(c -> assertThat(Character.isLowerCase(c)).isTrue());
        }

        assertThat(res.headers().get(HttpHeaderNames.of("x-custom-header1"))).isEqualTo("custom1");
        assertThat(res.headers().get(HttpHeaderNames.of("x-custom-header2"))).isEqualTo("custom2");
        assertThat(res.contentUtf8()).isEqualTo("headers");
    }
Similar to {@link #testTimeoutAfterPartialContent(WebClient)}, but tests the case where the service
produces a pooled buffers.
core/src/test/java/com/linecorp/armeria/server/HttpServerTest.java