From 214c068ece9de4231f08d9c94c2c4df4bd0d444f Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Sat, 1 Jul 2017 16:05:31 +0100 Subject: [PATCH] Remove Accept: */* header from REST Assured requests Closes gh-404 --- .../restassured/RestAssuredRequestConverter.java | 9 ++++++++- .../RestAssuredRequestConverter.java | 9 ++++++++- .../RestAssuredRequestConverterTests.java | 16 +++++++++++++++- .../RestAssuredRequestConverterTests.java | 16 +++++++++++++++- 4 files changed, 46 insertions(+), 4 deletions(-) diff --git a/spring-restdocs-restassured/src/main/java/org/springframework/restdocs/restassured/RestAssuredRequestConverter.java b/spring-restdocs-restassured/src/main/java/org/springframework/restdocs/restassured/RestAssuredRequestConverter.java index 852db3a2..0d0e82c2 100644 --- a/spring-restdocs-restassured/src/main/java/org/springframework/restdocs/restassured/RestAssuredRequestConverter.java +++ b/spring-restdocs-restassured/src/main/java/org/springframework/restdocs/restassured/RestAssuredRequestConverter.java @@ -126,11 +126,18 @@ class RestAssuredRequestConverter private HttpHeaders extractHeaders(FilterableRequestSpecification requestSpec) { HttpHeaders httpHeaders = new HttpHeaders(); for (Header header : requestSpec.getHeaders()) { - httpHeaders.add(header.getName(), header.getValue()); + if (!isAllMediaTypesAcceptHeader(header)) { + httpHeaders.add(header.getName(), header.getValue()); + } } return httpHeaders; } + private boolean isAllMediaTypesAcceptHeader(Header header) { + return HttpHeaders.ACCEPT.equals(header.getName()) + && "*/*".equals(header.getValue()); + } + private Parameters extractParameters(FilterableRequestSpecification requestSpec) { Parameters parameters = new Parameters(); for (Entry entry : requestSpec.getQueryParams().entrySet()) { diff --git a/spring-restdocs-restassured/src/main/java/org/springframework/restdocs/restassured3/RestAssuredRequestConverter.java b/spring-restdocs-restassured/src/main/java/org/springframework/restdocs/restassured3/RestAssuredRequestConverter.java index f44dabbf..13427ab3 100644 --- a/spring-restdocs-restassured/src/main/java/org/springframework/restdocs/restassured3/RestAssuredRequestConverter.java +++ b/spring-restdocs-restassured/src/main/java/org/springframework/restdocs/restassured3/RestAssuredRequestConverter.java @@ -125,11 +125,18 @@ class RestAssuredRequestConverter private HttpHeaders extractHeaders(FilterableRequestSpecification requestSpec) { HttpHeaders httpHeaders = new HttpHeaders(); for (Header header : requestSpec.getHeaders()) { - httpHeaders.add(header.getName(), header.getValue()); + if (!isAllMediaTypesAcceptHeader(header)) { + httpHeaders.add(header.getName(), header.getValue()); + } } return httpHeaders; } + private boolean isAllMediaTypesAcceptHeader(Header header) { + return HttpHeaders.ACCEPT.equals(header.getName()) + && "*/*".equals(header.getValue()); + } + private Parameters extractParameters(FilterableRequestSpecification requestSpec) { Parameters parameters = new Parameters(); for (Entry entry : requestSpec.getQueryParams().entrySet()) { diff --git a/spring-restdocs-restassured/src/test/java/org/springframework/restdocs/restassured/RestAssuredRequestConverterTests.java b/spring-restdocs-restassured/src/test/java/org/springframework/restdocs/restassured/RestAssuredRequestConverterTests.java index 64faae05..c9220e01 100644 --- a/spring-restdocs-restassured/src/test/java/org/springframework/restdocs/restassured/RestAssuredRequestConverterTests.java +++ b/spring-restdocs-restassured/src/test/java/org/springframework/restdocs/restassured/RestAssuredRequestConverterTests.java @@ -125,11 +125,25 @@ public class RestAssuredRequestConverterTests { RequestSpecification requestSpec = RestAssured.given().port(tomcat.getPort()) .header("Foo", "bar"); requestSpec.get("/"); + OperationRequest request = this.factory + .convert((FilterableRequestSpecification) requestSpec); + assertThat(request.getHeaders().toString(), request.getHeaders().size(), is(2)); + assertThat(request.getHeaders().get("Foo"), is(equalTo(Arrays.asList("bar")))); + assertThat(request.getHeaders().get("Host"), + is(equalTo(Arrays.asList("localhost:" + tomcat.getPort())))); + } + + @Test + public void headersWithCustomAccept() { + RequestSpecification requestSpec = RestAssured.given().port(tomcat.getPort()) + .header("Foo", "bar").accept("application/json"); + requestSpec.get("/"); OperationRequest request = this.factory .convert((FilterableRequestSpecification) requestSpec); assertThat(request.getHeaders().toString(), request.getHeaders().size(), is(3)); assertThat(request.getHeaders().get("Foo"), is(equalTo(Arrays.asList("bar")))); - assertThat(request.getHeaders().get("Accept"), is(equalTo(Arrays.asList("*/*")))); + assertThat(request.getHeaders().get("Accept"), + is(equalTo(Arrays.asList("application/json")))); assertThat(request.getHeaders().get("Host"), is(equalTo(Arrays.asList("localhost:" + tomcat.getPort())))); } diff --git a/spring-restdocs-restassured/src/test/java/org/springframework/restdocs/restassured3/RestAssuredRequestConverterTests.java b/spring-restdocs-restassured/src/test/java/org/springframework/restdocs/restassured3/RestAssuredRequestConverterTests.java index 36ba6de0..b044fb0a 100644 --- a/spring-restdocs-restassured/src/test/java/org/springframework/restdocs/restassured3/RestAssuredRequestConverterTests.java +++ b/spring-restdocs-restassured/src/test/java/org/springframework/restdocs/restassured3/RestAssuredRequestConverterTests.java @@ -125,11 +125,25 @@ public class RestAssuredRequestConverterTests { RequestSpecification requestSpec = RestAssured.given().port(tomcat.getPort()) .header("Foo", "bar"); requestSpec.get("/"); + OperationRequest request = this.factory + .convert((FilterableRequestSpecification) requestSpec); + assertThat(request.getHeaders().toString(), request.getHeaders().size(), is(2)); + assertThat(request.getHeaders().get("Foo"), is(equalTo(Arrays.asList("bar")))); + assertThat(request.getHeaders().get("Host"), + is(equalTo(Arrays.asList("localhost:" + tomcat.getPort())))); + } + + @Test + public void headersWithCustomAccept() { + RequestSpecification requestSpec = RestAssured.given().port(tomcat.getPort()) + .header("Foo", "bar").accept("application/json"); + requestSpec.get("/"); OperationRequest request = this.factory .convert((FilterableRequestSpecification) requestSpec); assertThat(request.getHeaders().toString(), request.getHeaders().size(), is(3)); assertThat(request.getHeaders().get("Foo"), is(equalTo(Arrays.asList("bar")))); - assertThat(request.getHeaders().get("Accept"), is(equalTo(Arrays.asList("*/*")))); + assertThat(request.getHeaders().get("Accept"), + is(equalTo(Arrays.asList("application/json")))); assertThat(request.getHeaders().get("Host"), is(equalTo(Arrays.asList("localhost:" + tomcat.getPort())))); }