From f4c847b7231b349749794833b15ff9b4b6ae6fed Mon Sep 17 00:00:00 2001 From: Rossen Stoyanchev Date: Tue, 12 Nov 2019 17:32:40 +0000 Subject: [PATCH] MockHttpServletRequestBuilder sets content-length Closes gh-23978 --- .../web/servlet/request/MockHttpServletRequestBuilder.java | 7 +++++++ .../request/MockHttpServletRequestBuilderTests.java | 1 + 2 files changed, 8 insertions(+) diff --git a/spring-test/src/main/java/org/springframework/test/web/servlet/request/MockHttpServletRequestBuilder.java b/spring-test/src/main/java/org/springframework/test/web/servlet/request/MockHttpServletRequestBuilder.java index 6c681e5479..c5b527b4ad 100644 --- a/spring-test/src/main/java/org/springframework/test/web/servlet/request/MockHttpServletRequestBuilder.java +++ b/spring-test/src/main/java/org/springframework/test/web/servlet/request/MockHttpServletRequestBuilder.java @@ -687,6 +687,13 @@ public class MockHttpServletRequestBuilder } }); + if (!ObjectUtils.isEmpty(this.content) && + !this.headers.containsKey(HttpHeaders.CONTENT_LENGTH) && + !this.headers.containsKey(HttpHeaders.TRANSFER_ENCODING)) { + + request.addHeader(HttpHeaders.CONTENT_LENGTH, this.content.length); + } + String query = this.url.getRawQuery(); if (!this.queryParams.isEmpty()) { String s = UriComponentsBuilder.newInstance().queryParams(this.queryParams).build().encode().getQuery(); diff --git a/spring-test/src/test/java/org/springframework/test/web/servlet/request/MockHttpServletRequestBuilderTests.java b/spring-test/src/test/java/org/springframework/test/web/servlet/request/MockHttpServletRequestBuilderTests.java index 405bfdb46d..ae111d7877 100644 --- a/spring-test/src/test/java/org/springframework/test/web/servlet/request/MockHttpServletRequestBuilderTests.java +++ b/spring-test/src/test/java/org/springframework/test/web/servlet/request/MockHttpServletRequestBuilderTests.java @@ -389,6 +389,7 @@ public class MockHttpServletRequestBuilderTests { byte[] result = FileCopyUtils.copyToByteArray(request.getInputStream()); assertThat(result).isEqualTo(body); + assertThat(request.getContentLength()).isEqualTo(body.length); } @Test