diff --git a/commafeed-server/pom.xml b/commafeed-server/pom.xml
index c33fcae8..c6ccc505 100644
--- a/commafeed-server/pom.xml
+++ b/commafeed-server/pom.xml
@@ -477,7 +477,7 @@
org.mock-server
mockserver-junit-jupiter
- 7.2.0
+ 7.3.0
test
diff --git a/commafeed-server/src/test/java/com/commafeed/backend/HttpGetterTest.java b/commafeed-server/src/test/java/com/commafeed/backend/HttpGetterTest.java
index e56fee34..f029c61f 100644
--- a/commafeed-server/src/test/java/com/commafeed/backend/HttpGetterTest.java
+++ b/commafeed-server/src/test/java/com/commafeed/backend/HttpGetterTest.java
@@ -1,6 +1,8 @@
package com.commafeed.backend;
+import java.io.ByteArrayOutputStream;
import java.io.IOException;
+import java.io.OutputStream;
import java.math.BigInteger;
import java.net.NoRouteToHostException;
import java.net.SocketTimeoutException;
@@ -11,6 +13,8 @@ import java.util.Arrays;
import java.util.Objects;
import java.util.Optional;
import java.util.concurrent.atomic.AtomicInteger;
+import java.util.zip.DeflaterOutputStream;
+import java.util.zip.GZIPOutputStream;
import org.apache.commons.io.IOUtils;
import org.apache.hc.client5.http.ConnectTimeoutException;
@@ -315,15 +319,15 @@ class HttpGetterTest {
@Test
void gzip() throws Exception {
- supportsCompression("gzip");
+ supportsCompression("gzip", GZIPOutputStream::new);
}
@Test
void deflate() throws Exception {
- supportsCompression("deflate");
+ supportsCompression("deflate", DeflaterOutputStream::new);
}
- void supportsCompression(String encoding) throws Exception {
+ void supportsCompression(String encoding, CompressionFunction compressionFunction) throws Exception {
String body = "my body";
HttpGetterTest.this.mockServerClient.when(HttpRequest.request().withMethod("GET")).respond(req -> {
@@ -333,14 +337,23 @@ class HttpGetterTest {
acceptEncodingHeader));
}
- // MockServer 6.x automatically compresses the body based on the Content-Encoding header
- return HttpResponse.response().withBody(body.getBytes()).withHeader(HttpHeaders.CONTENT_ENCODING, encoding);
+ ByteArrayOutputStream output = new ByteArrayOutputStream();
+ try (OutputStream compressionOutputStream = compressionFunction.apply(output)) {
+ compressionOutputStream.write(body.getBytes());
+ }
+
+ return HttpResponse.response().withBody(output.toByteArray()).withHeader(HttpHeaders.CONTENT_ENCODING, encoding);
});
HttpResult result = getter.get(HttpGetterTest.this.feedUrl);
Assertions.assertEquals(body, new String(result.content()));
}
+ @FunctionalInterface
+ public interface CompressionFunction {
+ OutputStream apply(OutputStream input) throws IOException;
+ }
+
}
@Nested