Test against latest Framework 5.1 snapshot

This updates REST Docs to test against Framework's latest 5.1
snapshot. Due to a bug in the behaviour of HttpHeaders' key set [1],
HeaderRemovingOperationPreprocessor has been updated to no longer use
it when removing headers from a request or response prior to it being
documented.

[1] https://github.com/spring-projects/spring-framework/issues/22821
This commit is contained in:
Andy Wilkinson
2019-09-14 17:38:29 +01:00
parent 4bbc5b37b5
commit ef0973c548
4 changed files with 8 additions and 9 deletions

View File

@@ -67,6 +67,6 @@ test {
matrixTest {
springFramework {
group = 'org.springframework'
versions = ['5.1.0.BUILD-SNAPSHOT']
versions = ['5.1.10.BUILD-SNAPSHOT']
}
}

View File

@@ -16,7 +16,8 @@
package org.springframework.restdocs.operation.preprocess;
import java.util.Iterator;
import java.util.List;
import java.util.Map.Entry;
import org.springframework.http.HttpHeaders;
import org.springframework.restdocs.operation.OperationRequest;
@@ -55,11 +56,9 @@ class HeaderRemovingOperationPreprocessor implements OperationPreprocessor {
private HttpHeaders removeHeaders(HttpHeaders originalHeaders) {
HttpHeaders processedHeaders = new HttpHeaders();
processedHeaders.putAll(originalHeaders);
Iterator<String> headers = processedHeaders.keySet().iterator();
while (headers.hasNext()) {
if (this.headerFilter.excludeHeader(headers.next())) {
headers.remove();
for (Entry<String, List<String>> header : originalHeaders.entrySet()) {
if (!this.headerFilter.excludeHeader(header.getKey())) {
processedHeaders.put(header.getKey(), header.getValue());
}
}
return processedHeaders;

View File

@@ -21,6 +21,6 @@ test {
matrixTest {
springFramework {
group = 'org.springframework'
versions = ['5.1.0.BUILD-SNAPSHOT']
versions = ['5.1.10.BUILD-SNAPSHOT']
}
}

View File

@@ -19,6 +19,6 @@ test {
matrixTest {
springFramework {
group = 'org.springframework'
versions = ['5.1.0.BUILD-SNAPSHOT']
versions = ['5.1.10.BUILD-SNAPSHOT']
}
}