diff --git a/spring-test/src/main/java/org/springframework/mock/web/MockHttpServletRequest.java b/spring-test/src/main/java/org/springframework/mock/web/MockHttpServletRequest.java
index 732e453f28..870ada7d5a 100644
--- a/spring-test/src/main/java/org/springframework/mock/web/MockHttpServletRequest.java
+++ b/spring-test/src/main/java/org/springframework/mock/web/MockHttpServletRequest.java
@@ -86,10 +86,46 @@ public class MockHttpServletRequest implements HttpServletRequest {
private static final String HTTPS = "https";
+ private static final String CONTENT_TYPE_HEADER = "Content-Type";
+
+ private static final String HOST_HEADER = "Host";
+
+ private static final String CHARSET_PREFIX = "charset=";
+
+ private static final TimeZone GMT = TimeZone.getTimeZone("GMT");
+
+ private static final ServletInputStream EMPTY_SERVLET_INPUT_STREAM =
+ new DelegatingServletInputStream(StreamUtils.emptyInput());
+
+ private static final BufferedReader EMPTY_BUFFERED_READER =
+ new BufferedReader(new StringReader(""));
+
/**
- * The default protocol: 'http'.
+ * Date formats as specified in the HTTP RFC
+ * @see Section 7.1.1.1 of RFC 7231
*/
- public static final String DEFAULT_PROTOCOL = HTTP;
+ private static final String[] DATE_FORMATS = new String[] {
+ "EEE, dd MMM yyyy HH:mm:ss zzz",
+ "EEE, dd-MMM-yy HH:mm:ss zzz",
+ "EEE MMM dd HH:mm:ss yyyy"
+ };
+
+
+ // ---------------------------------------------------------------------
+ // Public constants
+ // ---------------------------------------------------------------------
+
+ /**
+ * The default protocol: 'HTTP/1.1'.
+ * @since 4.3.7
+ */
+ public static final String DEFAULT_PROTOCOL = "HTTP/1.1";
+
+ /**
+ * The default scheme: 'http'.
+ * @since 4.3.7
+ */
+ public static final String DEFAULT_SCHEME = HTTP;
/**
* The default server address: '127.0.0.1'.
@@ -116,30 +152,12 @@ public class MockHttpServletRequest implements HttpServletRequest {
*/
public static final String DEFAULT_REMOTE_HOST = "localhost";
- private static final String CONTENT_TYPE_HEADER = "Content-Type";
- private static final String HOST_HEADER = "Host";
-
- private static final String CHARSET_PREFIX = "charset=";
-
- private static final ServletInputStream EMPTY_SERVLET_INPUT_STREAM =
- new DelegatingServletInputStream(StreamUtils.emptyInput());
-
- private static final BufferedReader EMPTY_BUFFERED_READER =
- new BufferedReader(new StringReader(""));
-
- /**
- * Date formats as specified in the HTTP RFC
- * @see Section 7.1.1.1 of RFC 7231
- */
- private static final String[] DATE_FORMATS = new String[] {
- "EEE, dd MMM yyyy HH:mm:ss zzz",
- "EEE, dd-MMM-yy HH:mm:ss zzz",
- "EEE MMM dd HH:mm:ss yyyy"
- };
-
- private static final TimeZone GMT = TimeZone.getTimeZone("GMT");
+ // ---------------------------------------------------------------------
+ // Lifecycle properties
+ // ---------------------------------------------------------------------
+ private final ServletContext servletContext;
private boolean active = true;
@@ -160,7 +178,7 @@ public class MockHttpServletRequest implements HttpServletRequest {
private String protocol = DEFAULT_PROTOCOL;
- private String scheme = DEFAULT_PROTOCOL;
+ private String scheme = DEFAULT_SCHEME;
private String serverName = DEFAULT_SERVER_NAME;
@@ -175,8 +193,6 @@ public class MockHttpServletRequest implements HttpServletRequest {
private boolean secure = false;
- private final ServletContext servletContext;
-
private int remotePort = DEFAULT_SERVER_PORT;
private String localName = DEFAULT_SERVER_NAME;
@@ -1088,16 +1104,13 @@ public class MockHttpServletRequest implements HttpServletRequest {
@Override
public StringBuffer getRequestURL() {
StringBuffer url = new StringBuffer(this.scheme).append("://").append(this.serverName);
-
- if (this.serverPort > 0
- && ((HTTP.equalsIgnoreCase(this.scheme) && this.serverPort != 80) || (HTTPS.equalsIgnoreCase(this.scheme) && this.serverPort != 443))) {
+ if (this.serverPort > 0 && ((HTTP.equalsIgnoreCase(this.scheme) && this.serverPort != 80) ||
+ (HTTPS.equalsIgnoreCase(this.scheme) && this.serverPort != 443))) {
url.append(':').append(this.serverPort);
}
-
if (StringUtils.hasText(getRequestURI())) {
url.append(getRequestURI());
}
-
return url;
}
diff --git a/spring-test/src/test/java/org/springframework/mock/web/MockHttpServletRequestTests.java b/spring-test/src/test/java/org/springframework/mock/web/MockHttpServletRequestTests.java
index 5b5643183e..343c667039 100644
--- a/spring-test/src/test/java/org/springframework/mock/web/MockHttpServletRequestTests.java
+++ b/spring-test/src/test/java/org/springframework/mock/web/MockHttpServletRequestTests.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2002-2015 the original author or authors.
+ * Copyright 2002-2017 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -27,7 +27,6 @@ import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
-
import javax.servlet.http.Cookie;
import org.junit.Test;
@@ -54,11 +53,21 @@ public class MockHttpServletRequestTests {
private static final String IF_MODIFIED_SINCE = "If-Modified-Since";
- private MockHttpServletRequest request = new MockHttpServletRequest();
+ private final MockHttpServletRequest request = new MockHttpServletRequest();
@Test
- public void content() throws IOException {
+ public void protocolAndScheme() {
+ assertEquals(MockHttpServletRequest.DEFAULT_PROTOCOL, request.getProtocol());
+ assertEquals(MockHttpServletRequest.DEFAULT_SCHEME, request.getScheme());
+ request.setProtocol("HTTP/2.0");
+ request.setScheme("https");
+ assertEquals("HTTP/2.0", request.getProtocol());
+ assertEquals("https", request.getScheme());
+ }
+
+ @Test
+ public void setContentAndGetInputStream() throws IOException {
byte[] bytes = "body".getBytes(Charset.defaultCharset());
request.setContent(bytes);
assertEquals(bytes.length, request.getContentLength());
@@ -109,9 +118,7 @@ public class MockHttpServletRequestTests {
assertEquals("UTF-8", request.getCharacterEncoding());
}
- // SPR-12677
-
- @Test
+ @Test // SPR-12677
public void setContentTypeHeaderWithMoreComplexCharsetSyntax() {
String contentType = "test/plain;charset=\"utf-8\";foo=\"charset=bar\";foocharset=bar;foo=bar";
request.addHeader("Content-Type", contentType);
@@ -157,7 +164,7 @@ public class MockHttpServletRequestTests {
public void setMultipleParameters() {
request.setParameter("key1", "value1");
request.setParameter("key2", "value2");
- Map params = new HashMap(2);
+ Map params = new HashMap<>(2);
params.put("key1", "newValue1");
params.put("key3", new String[] { "value3A", "value3B" });
request.setParameters(params);
@@ -175,7 +182,7 @@ public class MockHttpServletRequestTests {
public void addMultipleParameters() {
request.setParameter("key1", "value1");
request.setParameter("key2", "value2");
- Map params = new HashMap(2);
+ Map params = new HashMap<>(2);
params.put("key1", "newValue1");
params.put("key3", new String[] { "value3A", "value3B" });
request.addParameters(params);
@@ -193,7 +200,7 @@ public class MockHttpServletRequestTests {
@Test
public void removeAllParameters() {
request.setParameter("key1", "value1");
- Map params = new HashMap(2);
+ Map params = new HashMap<>(2);
params.put("key2", "value2");
params.put("key3", new String[] { "value3A", "value3B" });
request.addParameters(params);
@@ -245,7 +252,7 @@ public class MockHttpServletRequestTests {
@Test(expected = IllegalArgumentException.class)
public void setPreferredLocalesWithEmptyList() {
- request.setPreferredLocales(new ArrayList());
+ request.setPreferredLocales(new ArrayList<>());
}
@Test
diff --git a/spring-web/src/test/java/org/springframework/mock/web/test/MockHttpServletRequest.java b/spring-web/src/test/java/org/springframework/mock/web/test/MockHttpServletRequest.java
index eee12b5540..e44bd0873b 100644
--- a/spring-web/src/test/java/org/springframework/mock/web/test/MockHttpServletRequest.java
+++ b/spring-web/src/test/java/org/springframework/mock/web/test/MockHttpServletRequest.java
@@ -86,10 +86,46 @@ public class MockHttpServletRequest implements HttpServletRequest {
private static final String HTTPS = "https";
+ private static final String CONTENT_TYPE_HEADER = "Content-Type";
+
+ private static final String HOST_HEADER = "Host";
+
+ private static final String CHARSET_PREFIX = "charset=";
+
+ private static final TimeZone GMT = TimeZone.getTimeZone("GMT");
+
+ private static final ServletInputStream EMPTY_SERVLET_INPUT_STREAM =
+ new DelegatingServletInputStream(StreamUtils.emptyInput());
+
+ private static final BufferedReader EMPTY_BUFFERED_READER =
+ new BufferedReader(new StringReader(""));
+
/**
- * The default protocol: 'http'.
+ * Date formats as specified in the HTTP RFC
+ * @see Section 7.1.1.1 of RFC 7231
*/
- public static final String DEFAULT_PROTOCOL = HTTP;
+ private static final String[] DATE_FORMATS = new String[] {
+ "EEE, dd MMM yyyy HH:mm:ss zzz",
+ "EEE, dd-MMM-yy HH:mm:ss zzz",
+ "EEE MMM dd HH:mm:ss yyyy"
+ };
+
+
+ // ---------------------------------------------------------------------
+ // Public constants
+ // ---------------------------------------------------------------------
+
+ /**
+ * The default protocol: 'HTTP/1.1'.
+ * @since 4.3.7
+ */
+ public static final String DEFAULT_PROTOCOL = "HTTP/1.1";
+
+ /**
+ * The default scheme: 'http'.
+ * @since 4.3.7
+ */
+ public static final String DEFAULT_SCHEME = HTTP;
/**
* The default server address: '127.0.0.1'.
@@ -116,30 +152,12 @@ public class MockHttpServletRequest implements HttpServletRequest {
*/
public static final String DEFAULT_REMOTE_HOST = "localhost";
- private static final String CONTENT_TYPE_HEADER = "Content-Type";
- private static final String HOST_HEADER = "Host";
-
- private static final String CHARSET_PREFIX = "charset=";
-
- private static final ServletInputStream EMPTY_SERVLET_INPUT_STREAM =
- new DelegatingServletInputStream(StreamUtils.emptyInput());
-
- private static final BufferedReader EMPTY_BUFFERED_READER =
- new BufferedReader(new StringReader(""));
-
- /**
- * Date formats as specified in the HTTP RFC
- * @see Section 7.1.1.1 of RFC 7231
- */
- private static final String[] DATE_FORMATS = new String[] {
- "EEE, dd MMM yyyy HH:mm:ss zzz",
- "EEE, dd-MMM-yy HH:mm:ss zzz",
- "EEE MMM dd HH:mm:ss yyyy"
- };
-
- private static final TimeZone GMT = TimeZone.getTimeZone("GMT");
+ // ---------------------------------------------------------------------
+ // Lifecycle properties
+ // ---------------------------------------------------------------------
+ private final ServletContext servletContext;
private boolean active = true;
@@ -160,7 +178,7 @@ public class MockHttpServletRequest implements HttpServletRequest {
private String protocol = DEFAULT_PROTOCOL;
- private String scheme = DEFAULT_PROTOCOL;
+ private String scheme = DEFAULT_SCHEME;
private String serverName = DEFAULT_SERVER_NAME;
@@ -175,8 +193,6 @@ public class MockHttpServletRequest implements HttpServletRequest {
private boolean secure = false;
- private final ServletContext servletContext;
-
private int remotePort = DEFAULT_SERVER_PORT;
private String localName = DEFAULT_SERVER_NAME;
@@ -1088,16 +1104,13 @@ public class MockHttpServletRequest implements HttpServletRequest {
@Override
public StringBuffer getRequestURL() {
StringBuffer url = new StringBuffer(this.scheme).append("://").append(this.serverName);
-
- if (this.serverPort > 0
- && ((HTTP.equalsIgnoreCase(this.scheme) && this.serverPort != 80) || (HTTPS.equalsIgnoreCase(this.scheme) && this.serverPort != 443))) {
+ if (this.serverPort > 0 && ((HTTP.equalsIgnoreCase(this.scheme) && this.serverPort != 80) ||
+ (HTTPS.equalsIgnoreCase(this.scheme) && this.serverPort != 443))) {
url.append(':').append(this.serverPort);
}
-
if (StringUtils.hasText(getRequestURI())) {
url.append(getRequestURI());
}
-
return url;
}