diff --git a/spring-test/src/main/java/org/springframework/mock/http/server/reactive/MockServerHttpResponse.java b/spring-test/src/main/java/org/springframework/mock/http/server/reactive/MockServerHttpResponse.java index b2f2d863e6..ee040c8085 100644 --- a/spring-test/src/main/java/org/springframework/mock/http/server/reactive/MockServerHttpResponse.java +++ b/spring-test/src/main/java/org/springframework/mock/http/server/reactive/MockServerHttpResponse.java @@ -18,6 +18,7 @@ package org.springframework.mock.http.server.reactive; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; +import java.util.function.Function; import java.util.function.Supplier; import org.reactivestreams.Publisher; @@ -56,6 +57,8 @@ public class MockServerHttpResponse implements ServerHttpResponse { private DataBufferFactory bufferFactory = new DefaultDataBufferFactory(); + private Function urlEncoder = url -> url; + @Override public boolean setStatusCode(HttpStatus status) { @@ -111,6 +114,16 @@ public class MockServerHttpResponse implements ServerHttpResponse { return this.bufferFactory; } + @Override + public String encodeUrl(String url) { + return (this.urlEncoder != null ? this.urlEncoder.apply(url) : url); + } + + @Override + public void registerUrlEncoder(Function encoder) { + this.urlEncoder = (this.urlEncoder != null ? this.urlEncoder.andThen(encoder) : encoder); + } + /** * Return the body of the response aggregated and converted to a String * using the charset of the Content-Type response or otherwise defaulting