org.springframework.mock.web
Class MockHttpServletRequest

java.lang.Object
  extended by org.springframework.mock.web.MockHttpServletRequest
Direct Known Subclasses:
MockMultipartHttpServletRequest

public class MockHttpServletRequest
extends java.lang.Object

Mock implementation of the javax.servlet.http.HttpServletRequest interface.

Compatible with Servlet 2.5 and partially with Servlet 3.0 (notable exceptions: the getPart(s) and startAsync families of methods).

Since:
1.0.2
Author:
Juergen Hoeller, Rod Johnson, Rick Evans, Mark Fisher

Field Summary
private  boolean active
           
private  java.util.Map<java.lang.String,java.lang.Object> attributes
           
private  java.lang.String authType
           
private  java.lang.String characterEncoding
           
private static java.lang.String CHARSET_PREFIX
           
private  byte[] content
           
private static java.lang.String CONTENT_TYPE_HEADER
           
private  java.lang.String contentType
           
private  java.lang.String contextPath
           
private  Cookie[] cookies
           
static java.lang.String DEFAULT_PROTOCOL
          The default protocol: 'http'.
static java.lang.String DEFAULT_REMOTE_ADDR
          The default remote address: '127.0.0.1'.
static java.lang.String DEFAULT_REMOTE_HOST
          The default remote host: 'localhost'.
static java.lang.String DEFAULT_SERVER_ADDR
          The default server address: '127.0.0.1'.
static java.lang.String DEFAULT_SERVER_NAME
          The default server name: 'localhost'.
static int DEFAULT_SERVER_PORT
          The default server port: '80'.
private  java.util.Map<java.lang.String,HeaderValueHolder> headers
           
private  java.lang.String localAddr
           
private  java.util.List<java.util.Locale> locales
          List of locales in descending order
private  java.lang.String localName
           
private  int localPort
           
private  java.lang.String method
           
private  java.util.Map<java.lang.String,java.lang.String[]> parameters
           
private  java.lang.String pathInfo
           
private  java.lang.String protocol
           
private  java.lang.String queryString
           
private  java.lang.String remoteAddr
           
private  java.lang.String remoteHost
           
private  int remotePort
           
private  java.lang.String remoteUser
           
private  java.lang.String requestedSessionId
           
private  boolean requestedSessionIdFromCookie
           
private  boolean requestedSessionIdFromURL
           
private  boolean requestedSessionIdValid
           
private  java.lang.String requestURI
           
private  java.lang.String scheme
           
private  boolean secure
           
private  java.lang.String serverName
           
private  int serverPort
           
private  ServletContext servletContext
           
private  java.lang.String servletPath
           
private  HttpSession session
           
private  java.security.Principal userPrincipal
           
private  java.util.Set<java.lang.String> userRoles
           
 
Constructor Summary
MockHttpServletRequest()
          Create a new MockHttpServletRequest with a default MockServletContext.
MockHttpServletRequest(ServletContext servletContext)
          Create a new MockHttpServletRequest.
MockHttpServletRequest(ServletContext servletContext, java.lang.String method, java.lang.String requestURI)
          Create a new MockHttpServletRequest.
MockHttpServletRequest(java.lang.String method, java.lang.String requestURI)
          Create a new MockHttpServletRequest with a default MockServletContext.
 
Method Summary
 void addHeader(java.lang.String name, java.lang.Object value)
          Add a header entry for the given name.
 void addParameter(java.lang.String name, java.lang.String value)
          Add a single value for the specified HTTP parameter.
 void addParameter(java.lang.String name, java.lang.String[] values)
          Add an array of values for the specified HTTP parameter.
 void addParameters(java.util.Map params)
          Adds all provided parameters without replacing any existing values.
 void addPreferredLocale(java.util.Locale locale)
          Add a new preferred locale, before any existing locales.
 void addUserRole(java.lang.String role)
           
 boolean authenticate(HttpServletResponse response)
           
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.
private  void doAddHeaderValue(java.lang.String name, java.lang.Object value, boolean replace)
           
 java.lang.Object getAttribute(java.lang.String name)
           
 java.util.Enumeration<java.lang.String> getAttributeNames()
           
 java.lang.String getAuthType()
           
 java.lang.String getCharacterEncoding()
           
 int getContentLength()
           
 java.lang.String getContentType()
           
 java.lang.String getContextPath()
           
 Cookie[] getCookies()
           
 long getDateHeader(java.lang.String name)
           
 java.lang.String getHeader(java.lang.String name)
           
 java.util.Enumeration<java.lang.String> getHeaderNames()
           
 java.util.Enumeration<java.lang.String> getHeaders(java.lang.String name)
           
 ServletInputStream getInputStream()
           
 int getIntHeader(java.lang.String name)
           
 java.lang.String getLocalAddr()
           
 java.util.Locale getLocale()
           
 java.util.Enumeration<java.util.Locale> getLocales()
           
 java.lang.String getLocalName()
           
 int getLocalPort()
           
 java.lang.String getMethod()
           
 java.lang.String getParameter(java.lang.String name)
           
 java.util.Map<java.lang.String,java.lang.String[]> getParameterMap()
           
 java.util.Enumeration<java.lang.String> getParameterNames()
           
 java.lang.String[] getParameterValues(java.lang.String name)
           
 java.lang.String getPathInfo()
           
 java.lang.String getPathTranslated()
           
 java.lang.String getProtocol()
           
 java.lang.String getQueryString()
           
 java.io.BufferedReader getReader()
           
 java.lang.String getRealPath(java.lang.String path)
           
 java.lang.String getRemoteAddr()
           
 java.lang.String getRemoteHost()
           
 int getRemotePort()
           
 java.lang.String getRemoteUser()
           
 RequestDispatcher getRequestDispatcher(java.lang.String path)
           
 java.lang.String getRequestedSessionId()
           
 java.lang.String getRequestURI()
           
 java.lang.StringBuffer getRequestURL()
           
 java.lang.String getScheme()
           
 java.lang.String getServerName()
           
 int getServerPort()
           
 ServletContext getServletContext()
          Return the ServletContext that this request is associated with.
 java.lang.String getServletPath()
           
 HttpSession getSession()
           
 HttpSession getSession(boolean create)
           
 java.security.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 isRequestedSessionIdFromCookie()
           
 boolean isRequestedSessionIdFromUrl()
           
 boolean isRequestedSessionIdFromURL()
           
 boolean isRequestedSessionIdValid()
           
 boolean isSecure()
           
 boolean isUserInRole(java.lang.String role)
           
 void login(java.lang.String username, java.lang.String password)
           
 void logout()
           
 void removeAllParameters()
          Removes all existing parameters.
 void removeAttribute(java.lang.String name)
           
 void removeParameter(java.lang.String name)
          Remove already registered values for the specified HTTP parameter, if any.
 void setAttribute(java.lang.String name, java.lang.Object value)
           
 void setAuthType(java.lang.String authType)
           
 void setCharacterEncoding(java.lang.String characterEncoding)
           
 void setContent(byte[] content)
           
 void setContentType(java.lang.String contentType)
           
 void setContextPath(java.lang.String contextPath)
           
 void setCookies(Cookie... cookies)
           
 void setLocalAddr(java.lang.String localAddr)
           
 void setLocalName(java.lang.String localName)
           
 void setLocalPort(int localPort)
           
 void setMethod(java.lang.String method)
           
 void setParameter(java.lang.String name, java.lang.String value)
          Set a single value for the specified HTTP parameter.
 void setParameter(java.lang.String name, java.lang.String[] values)
          Set an array of values for the specified HTTP parameter.
 void setParameters(java.util.Map params)
          Sets all provided parameters replacing any existing values for the provided parameter names.
 void setPathInfo(java.lang.String pathInfo)
           
 void setProtocol(java.lang.String protocol)
           
 void setQueryString(java.lang.String queryString)
           
 void setRemoteAddr(java.lang.String remoteAddr)
           
 void setRemoteHost(java.lang.String remoteHost)
           
 void setRemotePort(int remotePort)
           
 void setRemoteUser(java.lang.String remoteUser)
           
 void setRequestedSessionId(java.lang.String requestedSessionId)
           
 void setRequestedSessionIdFromCookie(boolean requestedSessionIdFromCookie)
           
 void setRequestedSessionIdFromURL(boolean requestedSessionIdFromURL)
           
 void setRequestedSessionIdValid(boolean requestedSessionIdValid)
           
 void setRequestURI(java.lang.String requestURI)
           
 void setScheme(java.lang.String scheme)
           
 void setSecure(boolean secure)
           
 void setServerName(java.lang.String serverName)
           
 void setServerPort(int serverPort)
           
 void setServletPath(java.lang.String servletPath)
           
 void setSession(HttpSession session)
           
 void setUserPrincipal(java.security.Principal userPrincipal)
           
private  void updateContentTypeHeader()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_PROTOCOL

public static final java.lang.String DEFAULT_PROTOCOL
The default protocol: 'http'.

See Also:
Constant Field Values

DEFAULT_SERVER_ADDR

public static final java.lang.String DEFAULT_SERVER_ADDR
The default server address: '127.0.0.1'.

See Also:
Constant Field Values

DEFAULT_SERVER_NAME

public static final java.lang.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 java.lang.String DEFAULT_REMOTE_ADDR
The default remote address: '127.0.0.1'.

See Also:
Constant Field Values

DEFAULT_REMOTE_HOST

public static final java.lang.String DEFAULT_REMOTE_HOST
The default remote host: 'localhost'.

See Also:
Constant Field Values

CONTENT_TYPE_HEADER

private static final java.lang.String CONTENT_TYPE_HEADER
See Also:
Constant Field Values

CHARSET_PREFIX

private static final java.lang.String CHARSET_PREFIX
See Also:
Constant Field Values

active

private boolean active

attributes

private final java.util.Map<java.lang.String,java.lang.Object> attributes

characterEncoding

private java.lang.String characterEncoding

content

private byte[] content

contentType

private java.lang.String contentType

parameters

private final java.util.Map<java.lang.String,java.lang.String[]> parameters

protocol

private java.lang.String protocol

scheme

private java.lang.String scheme

serverName

private java.lang.String serverName

serverPort

private int serverPort

remoteAddr

private java.lang.String remoteAddr

remoteHost

private java.lang.String remoteHost

locales

private final java.util.List<java.util.Locale> locales
List of locales in descending order


secure

private boolean secure

servletContext

private final ServletContext servletContext

remotePort

private int remotePort

localName

private java.lang.String localName

localAddr

private java.lang.String localAddr

localPort

private int localPort

authType

private java.lang.String authType

cookies

private Cookie[] cookies

headers

private final java.util.Map<java.lang.String,HeaderValueHolder> headers

method

private java.lang.String method

pathInfo

private java.lang.String pathInfo

contextPath

private java.lang.String contextPath

queryString

private java.lang.String queryString

remoteUser

private java.lang.String remoteUser

userRoles

private final java.util.Set<java.lang.String> userRoles

userPrincipal

private java.security.Principal userPrincipal

requestedSessionId

private java.lang.String requestedSessionId

requestURI

private java.lang.String requestURI

servletPath

private java.lang.String servletPath

session

private HttpSession session

requestedSessionIdValid

private boolean requestedSessionIdValid

requestedSessionIdFromCookie

private boolean requestedSessionIdFromCookie

requestedSessionIdFromURL

private boolean requestedSessionIdFromURL
Constructor Detail

MockHttpServletRequest

public MockHttpServletRequest()
Create a new MockHttpServletRequest with a default MockServletContext.

See Also:
MockServletContext

MockHttpServletRequest

public MockHttpServletRequest(java.lang.String method,
                              java.lang.String requestURI)
Create a new MockHttpServletRequest with a default MockServletContext.

Parameters:
method - the request method (may be null)
requestURI - the request URI (may be null)
See Also:
setMethod(java.lang.String), setRequestURI(java.lang.String), MockServletContext

MockHttpServletRequest

public MockHttpServletRequest(ServletContext servletContext)
Create a new MockHttpServletRequest.

Parameters:
servletContext - the ServletContext that the request runs in (may be null to use a default MockServletContext)
See Also:
MockServletContext

MockHttpServletRequest

public MockHttpServletRequest(ServletContext servletContext,
                              java.lang.String method,
                              java.lang.String requestURI)
Create a new MockHttpServletRequest.

Parameters:
servletContext - the ServletContext that the request runs in (may be null to use a default MockServletContext)
method - the request method (may be null)
requestURI - the request URI (may be null)
See Also:
setMethod(java.lang.String), setRequestURI(java.lang.String), 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.)


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 java.lang.IllegalStateException
Check whether this request is still active (that is, not completed yet), throwing an IllegalStateException if not active anymore.

Throws:
java.lang.IllegalStateException

getAttribute

public java.lang.Object getAttribute(java.lang.String name)

getAttributeNames

public java.util.Enumeration<java.lang.String> getAttributeNames()

getCharacterEncoding

public java.lang.String getCharacterEncoding()

setCharacterEncoding

public void setCharacterEncoding(java.lang.String characterEncoding)

updateContentTypeHeader

private void updateContentTypeHeader()

setContent

public void setContent(byte[] content)

getContentLength

public int getContentLength()

setContentType

public void setContentType(java.lang.String contentType)

getContentType

public java.lang.String getContentType()

getInputStream

public ServletInputStream getInputStream()

setParameter

public void setParameter(java.lang.String name,
                         java.lang.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(java.lang.String name,
                         java.lang.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(java.util.Map params)
Sets all provided parameters replacing any existing values for the provided parameter names. To add without replacing existing values, use addParameters(java.util.Map).


addParameter

public void addParameter(java.lang.String name,
                         java.lang.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(java.lang.String name,
                         java.lang.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(java.util.Map params)
Adds all provided parameters without replacing any existing values. To replace existing values, use setParameters(java.util.Map).


removeParameter

public void removeParameter(java.lang.String name)
Remove already registered values for the specified HTTP parameter, if any.


removeAllParameters

public void removeAllParameters()
Removes all existing parameters.


getParameter

public java.lang.String getParameter(java.lang.String name)

getParameterNames

public java.util.Enumeration<java.lang.String> getParameterNames()

getParameterValues

public java.lang.String[] getParameterValues(java.lang.String name)

getParameterMap

public java.util.Map<java.lang.String,java.lang.String[]> getParameterMap()

setProtocol

public void setProtocol(java.lang.String protocol)

getProtocol

public java.lang.String getProtocol()

setScheme

public void setScheme(java.lang.String scheme)

getScheme

public java.lang.String getScheme()

setServerName

public void setServerName(java.lang.String serverName)

getServerName

public java.lang.String getServerName()

setServerPort

public void setServerPort(int serverPort)

getServerPort

public int getServerPort()

getReader

public java.io.BufferedReader getReader()
                                 throws java.io.UnsupportedEncodingException
Throws:
java.io.UnsupportedEncodingException

setRemoteAddr

public void setRemoteAddr(java.lang.String remoteAddr)

getRemoteAddr

public java.lang.String getRemoteAddr()

setRemoteHost

public void setRemoteHost(java.lang.String remoteHost)

getRemoteHost

public java.lang.String getRemoteHost()

setAttribute

public void setAttribute(java.lang.String name,
                         java.lang.Object value)

removeAttribute

public void removeAttribute(java.lang.String name)

clearAttributes

public void clearAttributes()
Clear all of this request's attributes.


addPreferredLocale

public void addPreferredLocale(java.util.Locale locale)
Add a new preferred locale, before any existing locales.


getLocale

public java.util.Locale getLocale()

getLocales

public java.util.Enumeration<java.util.Locale> getLocales()

setSecure

public void setSecure(boolean secure)

isSecure

public boolean isSecure()

getRequestDispatcher

public RequestDispatcher getRequestDispatcher(java.lang.String path)

getRealPath

public java.lang.String getRealPath(java.lang.String path)

setRemotePort

public void setRemotePort(int remotePort)

getRemotePort

public int getRemotePort()

setLocalName

public void setLocalName(java.lang.String localName)

getLocalName

public java.lang.String getLocalName()

setLocalAddr

public void setLocalAddr(java.lang.String localAddr)

getLocalAddr

public java.lang.String getLocalAddr()

setLocalPort

public void setLocalPort(int localPort)

getLocalPort

public int getLocalPort()

setAuthType

public void setAuthType(java.lang.String authType)

getAuthType

public java.lang.String getAuthType()

setCookies

public void setCookies(Cookie... cookies)

getCookies

public Cookie[] getCookies()

addHeader

public void addHeader(java.lang.String name,
                      java.lang.Object value)
Add a header entry for the given name.

If there was no entry for that header name before, the value will be used as-is. In case of an existing entry, a String array will be created, adding the given value (more specifically, its toString representation) as further element.

Multiple values can only be stored as list of Strings, following the Servlet spec (see getHeaders accessor). As alternative to repeated addHeader calls for individual elements, you can use a single call with an entire array or Collection of values as parameter.

See Also:
getHeaderNames(), getHeader(java.lang.String), getHeaders(java.lang.String), getDateHeader(java.lang.String), getIntHeader(java.lang.String)

doAddHeaderValue

private void doAddHeaderValue(java.lang.String name,
                              java.lang.Object value,
                              boolean replace)

getDateHeader

public long getDateHeader(java.lang.String name)

getIntHeader

public int getIntHeader(java.lang.String name)

getHeader

public java.lang.String getHeader(java.lang.String name)

getHeaders

public java.util.Enumeration<java.lang.String> getHeaders(java.lang.String name)

getHeaderNames

public java.util.Enumeration<java.lang.String> getHeaderNames()

setMethod

public void setMethod(java.lang.String method)

getMethod

public java.lang.String getMethod()

setPathInfo

public void setPathInfo(java.lang.String pathInfo)

getPathInfo

public java.lang.String getPathInfo()

getPathTranslated

public java.lang.String getPathTranslated()

setContextPath

public void setContextPath(java.lang.String contextPath)

getContextPath

public java.lang.String getContextPath()

setQueryString

public void setQueryString(java.lang.String queryString)

getQueryString

public java.lang.String getQueryString()

setRemoteUser

public void setRemoteUser(java.lang.String remoteUser)

getRemoteUser

public java.lang.String getRemoteUser()

addUserRole

public void addUserRole(java.lang.String role)

isUserInRole

public boolean isUserInRole(java.lang.String role)

setUserPrincipal

public void setUserPrincipal(java.security.Principal userPrincipal)

getUserPrincipal

public java.security.Principal getUserPrincipal()

setRequestedSessionId

public void setRequestedSessionId(java.lang.String requestedSessionId)

getRequestedSessionId

public java.lang.String getRequestedSessionId()

setRequestURI

public void setRequestURI(java.lang.String requestURI)

getRequestURI

public java.lang.String getRequestURI()

getRequestURL

public java.lang.StringBuffer getRequestURL()

setServletPath

public void setServletPath(java.lang.String servletPath)

getServletPath

public java.lang.String getServletPath()

setSession

public void setSession(HttpSession session)

getSession

public HttpSession getSession(boolean create)

getSession

public HttpSession getSession()

setRequestedSessionIdValid

public void setRequestedSessionIdValid(boolean requestedSessionIdValid)

isRequestedSessionIdValid

public boolean isRequestedSessionIdValid()

setRequestedSessionIdFromCookie

public void setRequestedSessionIdFromCookie(boolean requestedSessionIdFromCookie)

isRequestedSessionIdFromCookie

public boolean isRequestedSessionIdFromCookie()

setRequestedSessionIdFromURL

public void setRequestedSessionIdFromURL(boolean requestedSessionIdFromURL)

isRequestedSessionIdFromURL

public boolean isRequestedSessionIdFromURL()

isRequestedSessionIdFromUrl

public boolean isRequestedSessionIdFromUrl()

authenticate

public boolean authenticate(HttpServletResponse response)
                     throws java.io.IOException,
                            ServletException
Throws:
java.io.IOException
ServletException

login

public void login(java.lang.String username,
                  java.lang.String password)
           throws ServletException
Throws:
ServletException

logout

public void logout()
            throws ServletException
Throws:
ServletException