@Test public void shouldReturnCompressedResponse() { final ArmeriaReactiveWebServerFactory factory = factory(); final Compression compression = new Compression(); compression.setEnabled(true); compression.setMinResponseSize(DataSize.ofBytes(1)); compression.setMimeTypes(new String[] { "text/plain" }); compression.setExcludedUserAgents(new String[] { "unknown-agent/[0-9]+\\.[0-9]+\\.[0-9]+$" }); factory.setCompression(compression); runEchoServer(factory, server -> { final AggregatedHttpMessage res = sendPostRequest(httpClient(server)); assertThat(res.status()).isEqualTo(com.linecorp.armeria.common.HttpStatus.OK); assertThat(res.headers().get(HttpHeaderNames.CONTENT_ENCODING)).isEqualTo("gzip"); assertThat(res.content().toStringUtf8()).isNotEqualTo("hello"); }); }
@Test public void shouldReturnNonCompressedResponse_dueToUserAgent() { final ArmeriaReactiveWebServerFactory factory = factory(); final Compression compression = new Compression(); compression.setEnabled(true); compression.setMinResponseSize(DataSize.ofBytes(1)); compression.setExcludedUserAgents(new String[] { "test-agent/[0-9]+\\.[0-9]+\\.[0-9]+$" }); factory.setCompression(compression); runEchoServer(factory, server -> { final AggregatedHttpMessage res = sendPostRequest(httpClient(server)); validateEchoResponse(res); assertThat(res.headers().get(HttpHeaderNames.CONTENT_ENCODING)).isNull(); }); }
@Test public void shouldReturnNonCompressedResponse_dueToContentType() { final ArmeriaReactiveWebServerFactory factory = factory(); final Compression compression = new Compression(); compression.setEnabled(true); compression.setMinResponseSize(DataSize.ofBytes(1)); compression.setMimeTypes(new String[] { "text/html" }); factory.setCompression(compression); runEchoServer(factory, server -> { final AggregatedHttpMessage res = sendPostRequest(httpClient(server)); validateEchoResponse(res); assertThat(res.headers().get(HttpHeaderNames.CONTENT_ENCODING)).isNull(); }); }