Class MockHttpServletRequest
- java.lang.Object
- org.springframework.mock.web.MockHttpServletRequest
- All Implemented Interfaces:
HttpServletRequest
,ServletRequest
- Direct Known Subclasses:
MockMultipartHttpServletRequest
public class MockHttpServletRequest extends Object implements HttpServletRequest
Mock implementation of theHttpServletRequest
interface.The default, preferred
Locale
for the server mocked by this request isLocale.ENGLISH
. This value can be changed viaaddPreferredLocale(java.util.Locale)
orsetPreferredLocales(java.util.List<java.util.Locale>)
.As of Spring Framework 4.0, this set of mocks is designed on a Servlet 3.0 baseline.
- Since:
- 1.0.2
- Author:
- Juergen Hoeller, Rod Johnson, Rick Evans, Mark Fisher, Chris Beams, Sam Brannen, Brian Clozel
Field Summary
Fields Modifier and Type Field Description static String
DEFAULT_PROTOCOL
The default protocol: 'HTTP/1.1'.static String
DEFAULT_REMOTE_ADDR
The default remote address: '127.0.0.1'.static String
DEFAULT_REMOTE_HOST
The default remote host: 'localhost'.static String
DEFAULT_SCHEME
The default scheme: 'http'.static String
DEFAULT_SERVER_ADDR
The default server address: '127.0.0.1'.static String
DEFAULT_SERVER_NAME
The default server name: 'localhost'.static int
DEFAULT_SERVER_PORT
The default server port: '80'.Fields inherited from interface javax.servlet.http.HttpServletRequest
BASIC_AUTH, CLIENT_CERT_AUTH, DIGEST_AUTH, FORM_AUTH
Constructor Summary
Constructors Constructor Description MockHttpServletRequest()
Create a newMockHttpServletRequest
with a defaultMockServletContext
.MockHttpServletRequest(String method, String requestURI)
Create a newMockHttpServletRequest
with a defaultMockServletContext
.MockHttpServletRequest(ServletContext servletContext)
Create a newMockHttpServletRequest
with the suppliedServletContext
.MockHttpServletRequest(ServletContext servletContext, String method, String requestURI)
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description void
addHeader(String name, Object value)
Add an HTTP header entry for the given name.void
addParameter(String name, String value)
Add a single value for the specified HTTP parameter.void
addParameter(String name, String... values)
Add an array of values for the specified HTTP parameter.void
addParameters(Map<String,?> params)
Add all provided parameters without replacing any existing values.void
addPart(Part part)
void
addPreferredLocale(Locale locale)
Add a new preferred locale, before any existing locales.void
addUserRole(String role)
boolean
authenticate(HttpServletResponse response)
String
changeSessionId()
The implementation of this (Servlet 3.1+) method callsMockHttpSession.changeSessionId()
if the session is a mock session.protected void
checkActive()
Check whether this request is still active (that is, not completed yet), throwing an IllegalStateException if not active anymore.void
clearAttributes()
Clear all of this request's attributes.void
close()
Mark this request as completed, keeping its state.AsyncContext
getAsyncContext()
Object
getAttribute(String name)
Enumeration<String>
getAttributeNames()
String
getAuthType()
String
getCharacterEncoding()
int
getContentLength()
long
getContentLengthLong()
String
getContentType()
String
getContextPath()
Cookie[]
getCookies()
long
getDateHeader(String name)
Return the long timestamp for the date header with the givenname
.DispatcherType
getDispatcherType()
String
getHeader(String name)
Enumeration<String>
getHeaderNames()
Enumeration<String>
getHeaders(String name)
ServletInputStream
getInputStream()
int
getIntHeader(String name)
String
getLocalAddr()
Locale
getLocale()
Return the first preferred locale configured in this mock request.Enumeration<Locale>
getLocales()
Return an enumeration of the preferred locales configured in this mock request.String
getLocalName()
int
getLocalPort()
String
getMethod()
String
getParameter(String name)
Map<String,String[]>
getParameterMap()
Enumeration<String>
getParameterNames()
String[]
getParameterValues(String name)
Part
getPart(String name)
Collection<Part>
getParts()
String
getPathInfo()
String
getPathTranslated()
String
getProtocol()
String
getQueryString()
BufferedReader
getReader()
String
getRealPath(String path)
Deprecated.String
getRemoteAddr()
String
getRemoteHost()
int
getRemotePort()
String
getRemoteUser()
RequestDispatcher
getRequestDispatcher(String path)
String
getRequestedSessionId()
String
getRequestURI()
StringBuffer
getRequestURL()
String
getScheme()
String
getServerName()
int
getServerPort()
ServletContext
getServletContext()
Return the ServletContext that this request is associated with.String
getServletPath()
HttpSession
getSession()
HttpSession
getSession(boolean create)
Principal
getUserPrincipal()
void
invalidate()
Invalidate this request, clearing its state.boolean
isActive()
Return whether this request is still active (that is, not completed yet).boolean
isAsyncStarted()
boolean
isAsyncSupported()
boolean
isRequestedSessionIdFromCookie()
boolean
isRequestedSessionIdFromUrl()
Deprecated.boolean
isRequestedSessionIdFromURL()
boolean
isRequestedSessionIdValid()
boolean
isSecure()
boolean
isUserInRole(String role)
void
login(String username, String password)
void
logout()
void
removeAllParameters()
Remove all existing parameters.void
removeAttribute(String name)
void
removeHeader(String name)
Remove already registered entries for the specified HTTP header, if any.void
removeParameter(String name)
Remove already registered values for the specified HTTP parameter, if any.void
setAsyncContext(MockAsyncContext asyncContext)
void
setAsyncStarted(boolean asyncStarted)
void
setAsyncSupported(boolean asyncSupported)
void
setAttribute(String name, Object value)
void
setAuthType(String authType)
void
setCharacterEncoding(String characterEncoding)
void
setContent(byte[] content)
void
setContentType(String contentType)
void
setContextPath(String contextPath)
void
setCookies(Cookie... cookies)
void
setDispatcherType(DispatcherType dispatcherType)
void
setLocalAddr(String localAddr)
void
setLocalName(String localName)
void
setLocalPort(int localPort)
void
setMethod(String method)
void
setParameter(String name, String value)
Set a single value for the specified HTTP parameter.void
setParameter(String name, String... values)
Set an array of values for the specified HTTP parameter.void
setParameters(Map<String,?> params)
Set all provided parameters replacing any existing values for the provided parameter names.void
setPathInfo(String pathInfo)
void
setPreferredLocales(List<Locale> locales)
Set the list of preferred locales, in descending order, effectively replacing any existing locales.void
setProtocol(String protocol)
void
setQueryString(String queryString)
void
setRemoteAddr(String remoteAddr)
void
setRemoteHost(String remoteHost)
void
setRemotePort(int remotePort)
void
setRemoteUser(String remoteUser)
void
setRequestedSessionId(String requestedSessionId)
void
setRequestedSessionIdFromCookie(boolean requestedSessionIdFromCookie)
void
setRequestedSessionIdFromURL(boolean requestedSessionIdFromURL)
void
setRequestedSessionIdValid(boolean requestedSessionIdValid)
void
setRequestURI(String requestURI)
void
setScheme(String scheme)
void
setSecure(boolean secure)
Set the booleansecure
flag indicating whether the mock request was made using a secure channel, such as HTTPS.void
setServerName(String serverName)
void
setServerPort(int serverPort)
void
setServletPath(String servletPath)
void
setSession(HttpSession session)
void
setUserPrincipal(Principal userPrincipal)
AsyncContext
startAsync()
AsyncContext
startAsync(ServletRequest request, ServletResponse response)
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface javax.servlet.http.HttpServletRequest
upgrade
Field Detail
DEFAULT_PROTOCOL
public static final String DEFAULT_PROTOCOL
The default protocol: 'HTTP/1.1'.- Since:
- 4.3.7
- See Also:
- Constant Field Values
DEFAULT_SCHEME
public static final String DEFAULT_SCHEME
The default scheme: 'http'.- Since:
- 4.3.7
- See Also:
- Constant Field Values
DEFAULT_SERVER_ADDR
public static final String DEFAULT_SERVER_ADDR
The default server address: '127.0.0.1'.- See Also:
- Constant Field Values
DEFAULT_SERVER_NAME
public static final String DEFAULT_SERVER_NAME
The default server name: 'localhost'.- See Also:
- Constant Field Values
DEFAULT_SERVER_PORT
public static final int DEFAULT_SERVER_PORT
The default server port: '80'.- See Also:
- Constant Field Values
DEFAULT_REMOTE_ADDR
public static final String DEFAULT_REMOTE_ADDR
The default remote address: '127.0.0.1'.- See Also:
- Constant Field Values
DEFAULT_REMOTE_HOST
public static final String DEFAULT_REMOTE_HOST
The default remote host: 'localhost'.- See Also:
- Constant Field Values
Constructor Detail
MockHttpServletRequest
public MockHttpServletRequest()
Create a newMockHttpServletRequest
with a defaultMockServletContext
.
MockHttpServletRequest
public MockHttpServletRequest(String method, String requestURI)
Create a newMockHttpServletRequest
with a defaultMockServletContext
.- Parameters:
method
- the request method (may benull
)requestURI
- the request URI (may benull
)- See Also:
setMethod(java.lang.String)
,setRequestURI(java.lang.String)
,MockHttpServletRequest(ServletContext, String, String)
MockHttpServletRequest
public MockHttpServletRequest(ServletContext servletContext)
Create a newMockHttpServletRequest
with the suppliedServletContext
.- Parameters:
servletContext
- the ServletContext that the request runs in (may benull
to use a defaultMockServletContext
)- See Also:
MockHttpServletRequest(ServletContext, String, String)
MockHttpServletRequest
public MockHttpServletRequest(ServletContext servletContext, String method, String requestURI)
Create a newMockHttpServletRequest
with the suppliedServletContext
,method
, andrequestURI
.The preferred locale will be set to
Locale.ENGLISH
.- Parameters:
servletContext
- the ServletContext that the request runs in (may benull
to use a defaultMockServletContext
)method
- the request method (may benull
)requestURI
- the request URI (may benull
)- See Also:
setMethod(java.lang.String)
,setRequestURI(java.lang.String)
,setPreferredLocales(java.util.List<java.util.Locale>)
,MockServletContext
Method Detail
getServletContext
public ServletContext getServletContext()
Return the ServletContext that this request is associated with. (Not available in the standard HttpServletRequest interface for some reason.)- Specified by:
getServletContext
in interfaceServletRequest
isActive
public boolean isActive()
Return whether this request is still active (that is, not completed yet).
close
public void close()
Mark this request as completed, keeping its state.
invalidate
public void invalidate()
Invalidate this request, clearing its state.
checkActive
protected void checkActive() throws IllegalStateException
Check whether this request is still active (that is, not completed yet), throwing an IllegalStateException if not active anymore.- Throws:
IllegalStateException
getAttribute
public Object getAttribute(String name)
- Specified by:
getAttribute
in interfaceServletRequest
getAttributeNames
public Enumeration<String> getAttributeNames()
- Specified by:
getAttributeNames
in interfaceServletRequest
getCharacterEncoding
public String getCharacterEncoding()
- Specified by:
getCharacterEncoding
in interfaceServletRequest
setCharacterEncoding
public void setCharacterEncoding(String characterEncoding)
- Specified by:
setCharacterEncoding
in interfaceServletRequest
setContent
public void setContent(byte[] content)
getContentLength
public int getContentLength()
- Specified by:
getContentLength
in interfaceServletRequest
getContentLengthLong
public long getContentLengthLong()
- Specified by:
getContentLengthLong
in interfaceServletRequest
setContentType
public void setContentType(String contentType)
getContentType
public String getContentType()
- Specified by:
getContentType
in interfaceServletRequest
getInputStream
public ServletInputStream getInputStream()
- Specified by:
getInputStream
in interfaceServletRequest
setParameter
public void setParameter(String name, String value)
Set a single value for the specified HTTP parameter.If there are already one or more values registered for the given parameter name, they will be replaced.
setParameter
public void setParameter(String name, String... values)
Set an array of values for the specified HTTP parameter.If there are already one or more values registered for the given parameter name, they will be replaced.
setParameters
public void setParameters(Map<String,?> params)
Set all provided parameters replacing any existing values for the provided parameter names. To add without replacing existing values, useaddParameters(java.util.Map)
.
addParameter
public void addParameter(String name, String value)
Add a single value for the specified HTTP parameter.If there are already one or more values registered for the given parameter name, the given value will be added to the end of the list.
addParameter
public void addParameter(String name, String... values)
Add an array of values for the specified HTTP parameter.If there are already one or more values registered for the given parameter name, the given values will be added to the end of the list.
addParameters
public void addParameters(Map<String,?> params)
Add all provided parameters without replacing any existing values. To replace existing values, usesetParameters(java.util.Map)
.
removeParameter
public void removeParameter(String name)
Remove already registered values for the specified HTTP parameter, if any.
removeAllParameters
public void removeAllParameters()
Remove all existing parameters.
getParameter
public String getParameter(String name)
- Specified by:
getParameter
in interfaceServletRequest
getParameterNames
public Enumeration<String> getParameterNames()
- Specified by:
getParameterNames
in interfaceServletRequest
getParameterValues
public String[] getParameterValues(String name)
- Specified by:
getParameterValues
in interfaceServletRequest
getParameterMap
public Map<String,String[]> getParameterMap()
- Specified by:
getParameterMap
in interfaceServletRequest
setProtocol
public void setProtocol(String protocol)
getProtocol
public String getProtocol()
- Specified by:
getProtocol
in interfaceServletRequest
getScheme
public String getScheme()
- Specified by:
getScheme
in interfaceServletRequest
setServerName
public void setServerName(String serverName)
getServerName
public String getServerName()
- Specified by:
getServerName
in interfaceServletRequest
setServerPort
public void setServerPort(int serverPort)
getServerPort
public int getServerPort()
- Specified by:
getServerPort
in interfaceServletRequest
getReader
public BufferedReader getReader() throws UnsupportedEncodingException
- Specified by:
getReader
in interfaceServletRequest
- Throws:
UnsupportedEncodingException
setRemoteAddr
public void setRemoteAddr(String remoteAddr)
getRemoteAddr
public String getRemoteAddr()
- Specified by:
getRemoteAddr
in interfaceServletRequest
setRemoteHost
public void setRemoteHost(String remoteHost)
getRemoteHost
public String getRemoteHost()
- Specified by:
getRemoteHost
in interfaceServletRequest
setAttribute
public void setAttribute(String name, Object value)
- Specified by:
setAttribute
in interfaceServletRequest
removeAttribute
public void removeAttribute(String name)
- Specified by:
removeAttribute
in interfaceServletRequest
clearAttributes
public void clearAttributes()
Clear all of this request's attributes.
addPreferredLocale
public void addPreferredLocale(Locale locale)
Add a new preferred locale, before any existing locales.
setPreferredLocales
public void setPreferredLocales(List<Locale> locales)
Set the list of preferred locales, in descending order, effectively replacing any existing locales.- Since:
- 3.2
- See Also:
addPreferredLocale(java.util.Locale)
getLocale
public Locale getLocale()
Return the first preferred locale configured in this mock request.If no locales have been explicitly configured, the default, preferred
Locale
for the server mocked by this request isLocale.ENGLISH
.In contrast to the Servlet specification, this mock implementation does not take into consideration any locales specified via the
Accept-Language
header.- Specified by:
getLocale
in interfaceServletRequest
- See Also:
ServletRequest.getLocale()
,addPreferredLocale(Locale)
,setPreferredLocales(List)
getLocales
public Enumeration<Locale> getLocales()
Return an enumeration of the preferred locales configured in this mock request.If no locales have been explicitly configured, the default, preferred
Locale
for the server mocked by this request isLocale.ENGLISH
.In contrast to the Servlet specification, this mock implementation does not take into consideration any locales specified via the
Accept-Language
header.- Specified by:
getLocales
in interfaceServletRequest
- See Also:
ServletRequest.getLocales()
,addPreferredLocale(Locale)
,setPreferredLocales(List)
setSecure
public void setSecure(boolean secure)
Set the booleansecure
flag indicating whether the mock request was made using a secure channel, such as HTTPS.- See Also:
isSecure()
,getScheme()
,setScheme(String)
isSecure
public boolean isSecure()
- Specified by:
isSecure
in interfaceServletRequest
- See Also:
ServletRequest.isSecure()
getRequestDispatcher
public RequestDispatcher getRequestDispatcher(String path)
- Specified by:
getRequestDispatcher
in interfaceServletRequest
getRealPath
@Deprecated public String getRealPath(String path)
Deprecated.- Specified by:
getRealPath
in interfaceServletRequest
setRemotePort
public void setRemotePort(int remotePort)
getRemotePort
public int getRemotePort()
- Specified by:
getRemotePort
in interfaceServletRequest
setLocalName
public void setLocalName(String localName)
getLocalName
public String getLocalName()
- Specified by:
getLocalName
in interfaceServletRequest
setLocalAddr
public void setLocalAddr(String localAddr)
getLocalAddr
public String getLocalAddr()
- Specified by:
getLocalAddr
in interfaceServletRequest
setLocalPort
public void setLocalPort(int localPort)
getLocalPort
public int getLocalPort()
- Specified by:
getLocalPort
in interfaceServletRequest
startAsync
public AsyncContext startAsync()
- Specified by:
startAsync
in interfaceServletRequest
startAsync
public AsyncContext startAsync(ServletRequest request, ServletResponse response)
- Specified by:
startAsync
in interfaceServletRequest
setAsyncStarted
public void setAsyncStarted(boolean asyncStarted)
isAsyncStarted
public boolean isAsyncStarted()
- Specified by:
isAsyncStarted
in interfaceServletRequest
setAsyncSupported
public void setAsyncSupported(boolean asyncSupported)
isAsyncSupported
public boolean isAsyncSupported()
- Specified by:
isAsyncSupported
in interfaceServletRequest
setAsyncContext
public void setAsyncContext(MockAsyncContext asyncContext)
getAsyncContext
public AsyncContext getAsyncContext()
- Specified by:
getAsyncContext
in interfaceServletRequest
setDispatcherType
public void setDispatcherType(DispatcherType dispatcherType)
getDispatcherType
public DispatcherType getDispatcherType()
- Specified by:
getDispatcherType
in interfaceServletRequest
setAuthType
public void setAuthType(String authType)
getAuthType
public String getAuthType()
- Specified by:
getAuthType
in interfaceHttpServletRequest
setCookies
public void setCookies(Cookie... cookies)
getCookies
public Cookie[] getCookies()
- Specified by:
getCookies
in interfaceHttpServletRequest
addHeader
public void addHeader(String name, Object value)
Add an HTTP header entry for the given name.While this method can take any
Object
as a parameter, it is recommended to use the following types:- String or any Object to be converted using
toString()
; seegetHeader(java.lang.String)
. - String, Number, or Date for date headers; see
getDateHeader(java.lang.String)
. - String or Number for integer headers; see
getIntHeader(java.lang.String)
. String[]
orCollection<String>
for multiple values; seegetHeaders(java.lang.String)
.
- String or any Object to be converted using
removeHeader
public void removeHeader(String name)
Remove already registered entries for the specified HTTP header, if any.- Since:
- 4.3.20
getDateHeader
public long getDateHeader(String name)
Return the long timestamp for the date header with the givenname
.If the internal value representation is a String, this method will try to parse it as a date using the supported date formats:
- "EEE, dd MMM yyyy HH:mm:ss zzz"
- "EEE, dd-MMM-yy HH:mm:ss zzz"
- "EEE MMM dd HH:mm:ss yyyy"
- Specified by:
getDateHeader
in interfaceHttpServletRequest
- Parameters:
name
- the header name- See Also:
- Section 7.1.1.1 of RFC 7231
getHeader
public String getHeader(String name)
- Specified by:
getHeader
in interfaceHttpServletRequest
getHeaders
public Enumeration<String> getHeaders(String name)
- Specified by:
getHeaders
in interfaceHttpServletRequest
getHeaderNames
public Enumeration<String> getHeaderNames()
- Specified by:
getHeaderNames
in interfaceHttpServletRequest
getIntHeader
public int getIntHeader(String name)
- Specified by:
getIntHeader
in interfaceHttpServletRequest
getMethod
public String getMethod()
- Specified by:
getMethod
in interfaceHttpServletRequest
setPathInfo
public void setPathInfo(String pathInfo)
getPathInfo
public String getPathInfo()
- Specified by:
getPathInfo
in interfaceHttpServletRequest
getPathTranslated
public String getPathTranslated()
- Specified by:
getPathTranslated
in interfaceHttpServletRequest
setContextPath
public void setContextPath(String contextPath)
getContextPath
public String getContextPath()
- Specified by:
getContextPath
in interfaceHttpServletRequest
setQueryString
public void setQueryString(String queryString)
getQueryString
public String getQueryString()
- Specified by:
getQueryString
in interfaceHttpServletRequest
setRemoteUser
public void setRemoteUser(String remoteUser)
getRemoteUser
public String getRemoteUser()
- Specified by:
getRemoteUser
in interfaceHttpServletRequest
addUserRole
public void addUserRole(String role)
isUserInRole
public boolean isUserInRole(String role)
- Specified by:
isUserInRole
in interfaceHttpServletRequest
setUserPrincipal
public void setUserPrincipal(Principal userPrincipal)
getUserPrincipal
public Principal getUserPrincipal()
- Specified by:
getUserPrincipal
in interfaceHttpServletRequest
setRequestedSessionId
public void setRequestedSessionId(String requestedSessionId)
getRequestedSessionId
public String getRequestedSessionId()
- Specified by:
getRequestedSessionId
in interfaceHttpServletRequest
setRequestURI
public void setRequestURI(String requestURI)
getRequestURI
public String getRequestURI()
- Specified by:
getRequestURI
in interfaceHttpServletRequest
getRequestURL
public StringBuffer getRequestURL()
- Specified by:
getRequestURL
in interfaceHttpServletRequest
setServletPath
public void setServletPath(String servletPath)
getServletPath
public String getServletPath()
- Specified by:
getServletPath
in interfaceHttpServletRequest
setSession
public void setSession(HttpSession session)
getSession
public HttpSession getSession(boolean create)
- Specified by:
getSession
in interfaceHttpServletRequest
getSession
public HttpSession getSession()
- Specified by:
getSession
in interfaceHttpServletRequest
changeSessionId
public String changeSessionId()
The implementation of this (Servlet 3.1+) method callsMockHttpSession.changeSessionId()
if the session is a mock session. Otherwise it simply returns the current session id.- Specified by:
changeSessionId
in interfaceHttpServletRequest
- Since:
- 4.0.3
setRequestedSessionIdValid
public void setRequestedSessionIdValid(boolean requestedSessionIdValid)
isRequestedSessionIdValid
public boolean isRequestedSessionIdValid()
- Specified by:
isRequestedSessionIdValid
in interfaceHttpServletRequest
setRequestedSessionIdFromCookie
public void setRequestedSessionIdFromCookie(boolean requestedSessionIdFromCookie)
isRequestedSessionIdFromCookie
public boolean isRequestedSessionIdFromCookie()
- Specified by:
isRequestedSessionIdFromCookie
in interfaceHttpServletRequest
setRequestedSessionIdFromURL
public void setRequestedSessionIdFromURL(boolean requestedSessionIdFromURL)
isRequestedSessionIdFromURL
public boolean isRequestedSessionIdFromURL()
- Specified by:
isRequestedSessionIdFromURL
in interfaceHttpServletRequest
isRequestedSessionIdFromUrl
@Deprecated public boolean isRequestedSessionIdFromUrl()
Deprecated.- Specified by:
isRequestedSessionIdFromUrl
in interfaceHttpServletRequest
authenticate
public boolean authenticate(HttpServletResponse response) throws IOException, ServletException
- Specified by:
authenticate
in interfaceHttpServletRequest
- Throws:
IOException
ServletException
login
public void login(String username, String password) throws ServletException
- Specified by:
login
in interfaceHttpServletRequest
- Throws:
ServletException
logout
public void logout() throws ServletException
- Specified by:
logout
in interfaceHttpServletRequest
- Throws:
ServletException
getPart
public Part getPart(String name) throws IOException, ServletException
- Specified by:
getPart
in interfaceHttpServletRequest
- Throws:
IOException
ServletException
getParts
public Collection<Part> getParts() throws IOException, ServletException
- Specified by:
getParts
in interfaceHttpServletRequest
- Throws:
IOException
ServletException