Browse Source

AbstractMockHttpServletRequestBuilder exposes HttpHeaders

Closes gh-35576
pull/35641/head
rstoyanchev 2 months ago
parent
commit
9a2bfeae2f
  1. 45
      spring-test/src/main/java/org/springframework/test/web/servlet/request/AbstractMockHttpServletRequestBuilder.java

45
spring-test/src/main/java/org/springframework/test/web/servlet/request/AbstractMockHttpServletRequestBuilder.java

@ -26,6 +26,7 @@ import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.security.Principal; import java.security.Principal;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.time.ZonedDateTime;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collection; import java.util.Collection;
@ -35,6 +36,7 @@ import java.util.List;
import java.util.Locale; import java.util.Locale;
import java.util.Map; import java.util.Map;
import java.util.TimeZone; import java.util.TimeZone;
import java.util.function.Consumer;
import jakarta.servlet.ServletContext; import jakarta.servlet.ServletContext;
import jakarta.servlet.ServletRequest; import jakarta.servlet.ServletRequest;
@ -348,6 +350,37 @@ public abstract class AbstractMockHttpServletRequestBuilder<B extends AbstractMo
return self(); return self();
} }
/**
* Set the list of acceptable {@linkplain Charset charsets}, as specified
* by the {@code Accept-Charset} header.
* @param acceptableCharsets the acceptable charsets
* @since 7.0
*/
public B acceptCharset(Charset... acceptableCharsets) {
this.headers.setAcceptCharset(Arrays.asList(acceptableCharsets));
return self();
}
/**
* Set the value of the {@code If-Modified-Since} header.
* @param ifModifiedSince the new value of the header
* @since 7.0
*/
public B ifModifiedSince(ZonedDateTime ifModifiedSince) {
this.headers.setIfModifiedSince(ifModifiedSince);
return self();
}
/**
* Set the values of the {@code If-None-Match} header.
* @param ifNoneMatches the new value of the header
* @since 7.0
*/
public B ifNoneMatch(String... ifNoneMatches) {
this.headers.setIfNoneMatch(Arrays.asList(ifNoneMatches));
return self();
}
/** /**
* Add a header to the request. Values are always added. * Add a header to the request. Values are always added.
* @param name the header name * @param name the header name
@ -386,6 +419,18 @@ public abstract class AbstractMockHttpServletRequestBuilder<B extends AbstractMo
return self(); return self();
} }
/**
* Provides access to every header declared so far with the possibility
* to add, replace, or remove values.
* @param headersConsumer the consumer to provide access to
* @return this builder
* @since 7.0
*/
public B headers(Consumer<HttpHeaders> headersConsumer) {
headersConsumer.accept(this.headers);
return self();
}
/** /**
* Add a request parameter to {@link MockHttpServletRequest#getParameterMap()}. * Add a request parameter to {@link MockHttpServletRequest#getParameterMap()}.
* <p>In the Servlet API, a request parameter may be parsed from the query * <p>In the Servlet API, a request parameter may be parsed from the query

Loading…
Cancel
Save