Class MockServletContext
- All Implemented Interfaces:
javax.servlet.ServletContext
public class MockServletContext
extends java.lang.Object
implements javax.servlet.ServletContext
Mock implementation of ServletContext
. This implementation supports
all of the standard context methods except for request dispatching which just
indicates what is being dispatched to, rather than performing an actual
dispatch. The context can be configured with a path parameter that should point
to an directory location that represents the place where the contents of the WAR
bundle are located. The path can either be an absolute or relative path. If the
path is not found, the classpath will be checked for such a directory. Setting
this value allows all of the resource location functionality to work as in a
fully functioning web application. If this value is not set then not resource
location functionality will work and instead null will always be returned. This
class was adapted from Apache Wicket.
- Since:
- 17.10.0
Field Summary
FieldsModifier and Type | Field | Description |
---|---|---|
static java.lang.String |
DEFAULT_CONTEXT_PATH |
The servlet context default context path, "/mock". |
Fields inherited from interface javax.servlet.ServletContext
ORDERED_LIBS, TEMPDIR
Constructor Summary
ConstructorsConstructor | Description |
---|---|
MockServletContext() |
Default constructor for this mock object. |
|
Create the mock object. |
|
Create the mock object. |
Method Summary
All Methods Instance Methods Concrete MethodsModifier and Type | Method | Description |
---|---|---|
javax.servlet.FilterRegistration.Dynamic |
|
|
javax.servlet.FilterRegistration.Dynamic |
|
|
javax.servlet.FilterRegistration.Dynamic |
|
|
void |
|
Add an init parameter. |
void |
addInitParameters(java.util.Map<java.lang.String,java.lang.String> initParameters)
|
Add the map of init parameters. |
javax.servlet.ServletRegistration.Dynamic |
|
|
void |
addListener(java.lang.Class<? extends
java.util.EventListener> listenerClass)
|
|
void |
addListener(java.lang.String className) |
|
<T extends java.util.EventListener>void |
addListener(T t) |
|
void |
|
Add a new recognized mime type. |
javax.servlet.ServletRegistration.Dynamic |
|
|
javax.servlet.ServletRegistration.Dynamic |
|
|
javax.servlet.ServletRegistration.Dynamic |
|
|
<T extends javax.servlet.Filter>T |
createFilter(java.lang.Class<T> clazz) |
|
<T extends java.util.EventListener>T |
createListener(java.lang.Class<T> clazz) |
|
<T extends javax.servlet.Servlet>T |
createServlet(java.lang.Class<T> clazz) |
|
void |
createTempDir() |
Creates a temporary directory as specified by
getTempPath() .
|
void |
createWebappRoot() |
Creates the web application root File getWebappRoot() .
|
void |
declareRoles(java.lang.String... roleNames) |
|
java.lang.Object |
getAttribute(java.lang.String name) |
Get an attribute with the given name. |
java.util.Enumeration<java.lang.String> |
getAttributeNames() |
Get all of the attribute names. |
java.lang.ClassLoader |
getClassLoader() |
|
javax.servlet.ServletContext |
getContext(java.lang.String name) |
Get the context for the given URL path. |
java.lang.String |
getContextPath() |
Return the servlet context path. |
java.util.Set<javax.servlet.SessionTrackingMode>
|
getDefaultSessionTrackingModes() |
|
int |
getEffectiveMajorVersion() |
|
int |
getEffectiveMinorVersion() |
|
java.util.Set<javax.servlet.SessionTrackingMode>
|
getEffectiveSessionTrackingModes() |
|
javax.servlet.FilterRegistration |
getFilterRegistration(java.lang.String filterName) |
|
java.util.Map<java.lang.String,? extends
javax.servlet.FilterRegistration>
|
getFilterRegistrations() |
|
java.lang.String |
getInitParameter(java.lang.String name) |
Get the init parameter with the given name. |
java.util.Enumeration<java.lang.String> |
getInitParameterNames() |
Get the name of all of the init parameters. |
javax.servlet.descriptor.JspConfigDescriptor |
getJspConfigDescriptor() |
|
int |
getMajorVersion() |
Return the major version of the Servlet spec that this package supports, defaults to 2. |
java.lang.String |
getMimeType(java.lang.String name) |
Get the mime type for the given file. |
int |
getMinorVersion() |
Return the minor version of the Servlet spec that this package supports, defaults to 3. |
javax.servlet.RequestDispatcher |
getNamedDispatcher(java.lang.String name) |
Returns a RequestDispatcher for the specified name. |
java.lang.String |
getRealPath(java.lang.String name) |
Get the real file path of the given resource name. |
java.lang.String |
getRequestCharacterEncoding() |
|
javax.servlet.RequestDispatcher |
getRequestDispatcher(java.lang.String path) |
Returns a RequestDispatcher for the specified path. |
java.net.URL |
getResource(java.lang.String name) |
Get the URL for a particular resource that is relative to the web app root directory. |
java.io.InputStream |
getResourceAsStream(java.lang.String name) |
Get an input stream for a particular resource that is relative to the web app root directory or the current classpath. |
java.util.Set<java.lang.String> |
getResourcePaths(java.lang.String name) |
Get the resource paths starting from the web app root directory and then relative to the given name. |
java.lang.String |
getResponseCharacterEncoding() |
|
java.lang.String |
getServerInfo() |
Get the server info. |
javax.servlet.Servlet |
getServlet(java.lang.String name) |
NOT USED - Servlet Spec requires that this always returns null. |
java.lang.String |
getServletContextName() |
Return the name of the servlet context. |
java.util.Enumeration<java.lang.String> |
getServletNames() |
NOT USED - Servlet spec requires that this always returns null. |
javax.servlet.ServletRegistration |
getServletRegistration(java.lang.String servletName)
|
|
java.util.Map<java.lang.String,? extends
javax.servlet.ServletRegistration>
|
getServletRegistrations() |
|
java.util.Enumeration<javax.servlet.Servlet> |
getServlets() |
NOT USED - Servlet spec requires that this always returns null. |
javax.servlet.SessionCookieConfig |
getSessionCookieConfig() |
|
int |
getSessionTimeout() |
|
java.lang.String |
getTempPath() |
Return the temporary path where files are stored during test runs. |
java.lang.String |
getVirtualServerName() |
|
java.lang.String |
getWebappPath() |
Return the web application path where resources like javascript, css and images can be picked up. |
java.io.File |
getWebappRoot() |
Return the web application root File where resources like javascript, css and images can be picked up. |
void |
|
Log the exception to System.err and the message to System.out. |
void |
log(java.lang.String msg) |
Log the message to System.out. |
void |
|
Log the cause to System.err and the message to System.out. |
void |
removeAttribute(java.lang.String name) |
Remove an attribute with the given name. |
void |
|
Set an attribute. |
void |
setContextPath(java.lang.String contextPath) |
Sets the servlet context path. |
boolean |
|
|
void |
setRequestCharacterEncoding(java.lang.String encoding)
|
|
void |
setResponseCharacterEncoding(java.lang.String encoding)
|
|
void |
setServletContextName(java.lang.String servletContextName)
|
Set the servlet context name to the specified value. |
void |
setSessionTimeout(int time) |
|
void |
setSessionTrackingModes(java.util.Set<javax.servlet.SessionTrackingMode> sessionTrackingModes)
|
|
void |
setTempPath(java.lang.String tempPath) |
Set the temporary path where files are stored during test runs. |
void |
setWebappPath(java.lang.String webappPath) |
Sets the mock web application path to the specified webappPath. |
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString,
wait, wait, wait
Field Detail
DEFAULT_CONTEXT_PATH
public static final java.lang.String DEFAULT_CONTEXT_PATH
The servlet context default context path, "/mock".
- See Also:
- Constant Field Values
Constructor Detail
MockServletContext
public MockServletContext()
Default constructor for this mock object. The servlet context name is set to
'mock'. The web content root and temporary work direcotry are set to null.
MockServletContext
public MockServletContext(java.lang.String contextPath,
java.lang.String webappPath)
Create the mock object. As part of the creation, the context sets the root
directory where web application content is stored. This must be an ABSOLUTE
directory relative to where the tests are being executed. For example:
System.getProperty("user.dir") + "/src/webapp"
In addition to setting the web root directory, this constructor also sets up a
temporary work directory for things like file uploads. Note this temporary work
directory is set as the value of the ServletContext attribute
'javax.servlet.context.tempdir'. The temporary work directory defaults to
System.getProperty("java.io.tmpdir").
- Parameters:
contextPath
- the servlet context pathwebappPath
- The path to the root of the web application
MockServletContext
public MockServletContext(java.lang.String contextPath,
java.lang.String webappPath,
java.lang.String tempPath)
Create the mock object. As part of the creation, the context sets the root
directory where web application content is stored. This must be an ABSOLUTE
directory relative to where the tests are being executed. For example:
System.getProperty("user.dir") + "/src/webapp"
In addition to setting the web root directory, this constructor also sets up a
temporary work directory for things like file uploads. Note this temporary work
directory is set as the value of the ServletContext attribute
'javax.servlet.context.tempdir'.
- Parameters:
contextPath
- the servlet context pathwebappPath
- the path to the root of the web applicationtempPath
- the temporary work directory
Method Detail
createWebappRoot
public void createWebappRoot()
Creates the web application root File getWebappRoot()
.
createTempDir
public void createTempDir()
Creates a temporary directory as specified by getTempPath()
.
setServletContextName
public void setServletContextName(java.lang.String servletContextName)
Set the servlet context name to the specified value.
- Parameters:
servletContextName
- the servlet context name
getTempPath
public java.lang.String getTempPath()
Return the temporary path where files are stored during test runs.
- Returns:
- the temporary path where files are stored during test runs
setTempPath
public void setTempPath(java.lang.String tempPath)
Set the temporary path where files are stored during test runs.
- Parameters:
-
tempPath
- the temporary path where files are stored during test runs
getWebappPath
public java.lang.String getWebappPath()
Return the web application path where resources like javascript, css and images
can be picked up.
- Returns:
- the web application path
getWebappRoot
public java.io.File getWebappRoot()
Return the web application root File where resources like javascript, css and
images can be picked up.
- Returns:
- the web application root File
setWebappPath
public void setWebappPath(java.lang.String webappPath)
Sets the mock web application path to the specified webappPath. Note: this
method will also set the web application's temporary directory to the value
getTempPath()
. If getTempPath()
is not set, this method will default tempPath to:
System.getProperty("java.io.tmpdir").
- Parameters:
webappPath
- set the context web application path
addInitParameter
public void addInitParameter(java.lang.String name,
java.lang.String value)
Add an init parameter.
- Parameters:
name
- The parameter namevalue
- The parameter value
addInitParameters
public void addInitParameters(java.util.Map<java.lang.String,java.lang.String> initParameters)
Add the map of init parameters.
- Parameters:
initParameters
- A map of init parameters
addMimeType
public void addMimeType(java.lang.String fileExtension,
java.lang.String mimeType)
Add a new recognized mime type.
- Parameters:
fileExtension
- The file extension (e.g. "jpg")mimeType
- The mime type (e.g. "image/jpeg")
getAttribute
public java.lang.Object getAttribute(java.lang.String name)
Get an attribute with the given name.
- Specified by:
-
getAttribute
in interfacejavax.servlet.ServletContext
- Parameters:
name
- The attribute name- Returns:
- The value, or null
getAttributeNames
public java.util.Enumeration<java.lang.String> getAttributeNames()
Get all of the attribute names.
- Specified by:
-
getAttributeNames
in interfacejavax.servlet.ServletContext
- Returns:
- The attribute names
getContext
public javax.servlet.ServletContext getContext(java.lang.String name)
Get the context for the given URL path.
- Specified by:
-
getContext
in interfacejavax.servlet.ServletContext
- Parameters:
name
- The url path- Returns:
- Always returns this
getContextPath
public java.lang.String getContextPath()
Return the servlet context path.
- Specified by:
-
getContextPath
in interfacejavax.servlet.ServletContext
- Returns:
- the servletContext path
setContextPath
public void setContextPath(java.lang.String contextPath)
Sets the servlet context path.
- Parameters:
contextPath
- the servlet context path
getInitParameter
public java.lang.String getInitParameter(java.lang.String name)
Get the init parameter with the given name.
- Specified by:
-
getInitParameter
in interfacejavax.servlet.ServletContext
- Parameters:
name
- The name- Returns:
- The parameter, or null if no such parameter
getInitParameterNames
public java.util.Enumeration<java.lang.String> getInitParameterNames()
Get the name of all of the init parameters.
- Specified by:
-
getInitParameterNames
in interfacejavax.servlet.ServletContext
- Returns:
- The init parameter names
getMajorVersion
public int getMajorVersion()
Return the major version of the Servlet spec that this package supports,
defaults to 2.
- Specified by:
-
getMajorVersion
in interfacejavax.servlet.ServletContext
- Returns:
- the major version of the Servlet spec that this package supports, defaults to 2.
getMimeType
public java.lang.String getMimeType(java.lang.String name)
Get the mime type for the given file. Uses a hardcoded map of mime types set at
initialization time. If the mime type was not explicitly set, this method will
fallback to
- Specified by:
-
getMimeType
in interfacejavax.servlet.ServletContext
- Parameters:
name
- The name to get the mime type for- Returns:
- The mime type
getMinorVersion
public int getMinorVersion()
Return the minor version of the Servlet spec that this package supports,
defaults to 3.
- Specified by:
-
getMinorVersion
in interfacejavax.servlet.ServletContext
- Returns:
- the minor version of the Servlet spec that this package supports, defaults to 3.
getRealPath
public java.lang.String getRealPath(java.lang.String name)
Get the real file path of the given resource name.
- Specified by:
-
getRealPath
in interfacejavax.servlet.ServletContext
- Parameters:
name
- The name- Returns:
- The real path or null
getRequestDispatcher
public javax.servlet.RequestDispatcher getRequestDispatcher(java.lang.String path)
Returns a RequestDispatcher for the specified path. The dispatcher will not
dispatch to the resource. It only records the specified path so that one can
test if the correct path was dispatched to.
- Specified by:
-
getRequestDispatcher
in interfacejavax.servlet.ServletContext
- Parameters:
path
- a String specifying the pathname to the resource- Returns:
- a dispatcher for the specified path
getNamedDispatcher
public javax.servlet.RequestDispatcher getNamedDispatcher(java.lang.String name)
Returns a RequestDispatcher for the specified name. The dispatcher will not
dispatch to the resource. It only records the specified name so that one can
test if the correct name was dispatched to.
- Specified by:
-
getNamedDispatcher
in interfacejavax.servlet.ServletContext
- Parameters:
name
- a String specifying the name of a servlet to wrap- Returns:
- a dispatcher for the specified name
getResource
public java.net.URL getResource(java.lang.String name)
throws java.net.MalformedURLException
Get the URL for a particular resource that is relative to the web app root
directory.
- Specified by:
-
getResource
in interfacejavax.servlet.ServletContext
- Parameters:
name
- The name of the resource to get- Returns:
- The resource, or null if resource not found
- Throws:
java.net.MalformedURLException
- If the URL is invalid
getResourceAsStream
public java.io.InputStream getResourceAsStream(java.lang.String name)
Get an input stream for a particular resource that is relative to the web app
root directory or the current classpath. If the webappRoot is not set, this
method will try and load the resource from the classpath.
- Specified by:
-
getResourceAsStream
in interfacejavax.servlet.ServletContext
- Parameters:
name
- The name of the resource to get- Returns:
- The input stream for the resource, or null if resource is not found
getResourcePaths
public java.util.Set<java.lang.String> getResourcePaths(java.lang.String name)
Get the resource paths starting from the web app root directory and then
relative to the given name.
- Specified by:
-
getResourcePaths
in interfacejavax.servlet.ServletContext
- Parameters:
name
- The starting name- Returns:
- The set of resource paths at this location
getServerInfo
public java.lang.String getServerInfo()
Get the server info.
- Specified by:
-
getServerInfo
in interfacejavax.servlet.ServletContext
- Returns:
- The server info
getServlet
public javax.servlet.Servlet getServlet(java.lang.String name)
NOT USED - Servlet Spec requires that this always returns null.
- Specified by:
-
getServlet
in interfacejavax.servlet.ServletContext
- Parameters:
name
- Not used- Returns:
- null
getServletContextName
public java.lang.String getServletContextName()
Return the name of the servlet context.
- Specified by:
-
getServletContextName
in interfacejavax.servlet.ServletContext
- Returns:
- The name
getServletNames
public java.util.Enumeration<java.lang.String> getServletNames()
NOT USED - Servlet spec requires that this always returns null.
- Specified by:
-
getServletNames
in interfacejavax.servlet.ServletContext
- Returns:
- null
getServlets
public java.util.Enumeration<javax.servlet.Servlet> getServlets()
NOT USED - Servlet spec requires that this always returns null.
- Specified by:
-
getServlets
in interfacejavax.servlet.ServletContext
- Returns:
- null
log
public void log(java.lang.Exception e,
java.lang.String msg)
Log the exception to System.err and the message to System.out.
- Specified by:
-
log
in interfacejavax.servlet.ServletContext
- Parameters:
e
- The exception to logmsg
- The message to log
log
public void log(java.lang.String msg)
Log the message to System.out.
- Specified by:
-
log
in interfacejavax.servlet.ServletContext
- Parameters:
msg
- The message to log
log
public void log(java.lang.String msg,
java.lang.Throwable cause)
Log the cause to System.err and the message to System.out.
- Specified by:
-
log
in interfacejavax.servlet.ServletContext
- Parameters:
msg
- The message to logcause
- The cause exception
removeAttribute
public void removeAttribute(java.lang.String name)
Remove an attribute with the given name.
- Specified by:
-
removeAttribute
in interfacejavax.servlet.ServletContext
- Parameters:
name
- The name
setAttribute
public void setAttribute(java.lang.String name,
java.lang.Object o)
Set an attribute.
- Specified by:
-
setAttribute
in interfacejavax.servlet.ServletContext
- Parameters:
name
- The name of the attributeo
- The value
setResponseCharacterEncoding
public void setResponseCharacterEncoding(java.lang.String encoding)
- Specified by:
-
setResponseCharacterEncoding
in interfacejavax.servlet.ServletContext
getResponseCharacterEncoding
public java.lang.String getResponseCharacterEncoding()
- Specified by:
-
getResponseCharacterEncoding
in interfacejavax.servlet.ServletContext
setRequestCharacterEncoding
public void setRequestCharacterEncoding(java.lang.String encoding)
- Specified by:
-
setRequestCharacterEncoding
in interfacejavax.servlet.ServletContext
getRequestCharacterEncoding
public java.lang.String getRequestCharacterEncoding()
- Specified by:
-
getRequestCharacterEncoding
in interfacejavax.servlet.ServletContext
setSessionTimeout
public void setSessionTimeout(int time)
- Specified by:
-
setSessionTimeout
in interfacejavax.servlet.ServletContext
getSessionTimeout
public int getSessionTimeout()
- Specified by:
-
getSessionTimeout
in interfacejavax.servlet.ServletContext
addJspFile
public javax.servlet.ServletRegistration.Dynamic addJspFile(java.lang.String a,
java.lang.String b)
- Specified by:
-
addJspFile
in interfacejavax.servlet.ServletContext
getEffectiveMajorVersion
public int getEffectiveMajorVersion()
- Specified by:
-
getEffectiveMajorVersion
in interfacejavax.servlet.ServletContext
getEffectiveMinorVersion
public int getEffectiveMinorVersion()
- Specified by:
-
getEffectiveMinorVersion
in interfacejavax.servlet.ServletContext
setInitParameter
public boolean setInitParameter(java.lang.String name,
java.lang.String value)
- Specified by:
-
setInitParameter
in interfacejavax.servlet.ServletContext
addServlet
public javax.servlet.ServletRegistration.Dynamic addServlet(java.lang.String servletName,
java.lang.String className)
- Specified by:
-
addServlet
in interfacejavax.servlet.ServletContext
addServlet
public javax.servlet.ServletRegistration.Dynamic addServlet(java.lang.String servletName,
javax.servlet.Servlet servlet)
- Specified by:
-
addServlet
in interfacejavax.servlet.ServletContext
addServlet
public javax.servlet.ServletRegistration.Dynamic addServlet(java.lang.String servletName,
java.lang.Class<? extends javax.servlet.Servlet> servletClass)
- Specified by:
-
addServlet
in interfacejavax.servlet.ServletContext
createServlet
public <T extends
javax.servlet.Servlet> T createServlet(java.lang.Class<T> clazz)
- Specified by:
-
createServlet
in interfacejavax.servlet.ServletContext
getServletRegistration
public javax.servlet.ServletRegistration getServletRegistration(java.lang.String servletName)
- Specified by:
-
getServletRegistration
in interfacejavax.servlet.ServletContext
getServletRegistrations
public java.util.Map<java.lang.String,? extends
javax.servlet.ServletRegistration> getServletRegistrations()
- Specified by:
-
getServletRegistrations
in interfacejavax.servlet.ServletContext
addFilter
public javax.servlet.FilterRegistration.Dynamic addFilter(java.lang.String filterName,
java.lang.String className)
- Specified by:
-
addFilter
in interfacejavax.servlet.ServletContext
addFilter
public javax.servlet.FilterRegistration.Dynamic addFilter(java.lang.String filterName,
javax.servlet.Filter filter)
- Specified by:
-
addFilter
in interfacejavax.servlet.ServletContext
addFilter
public javax.servlet.FilterRegistration.Dynamic addFilter(java.lang.String filterName,
java.lang.Class<? extends javax.servlet.Filter> filterClass)
- Specified by:
-
addFilter
in interfacejavax.servlet.ServletContext
createFilter
public <T extends
javax.servlet.Filter> T createFilter(java.lang.Class<T> clazz)
- Specified by:
-
createFilter
in interfacejavax.servlet.ServletContext
getFilterRegistration
public javax.servlet.FilterRegistration getFilterRegistration(java.lang.String filterName)
- Specified by:
-
getFilterRegistration
in interfacejavax.servlet.ServletContext
getFilterRegistrations
public java.util.Map<java.lang.String,? extends
javax.servlet.FilterRegistration> getFilterRegistrations()
- Specified by:
-
getFilterRegistrations
in interfacejavax.servlet.ServletContext
getSessionCookieConfig
public javax.servlet.SessionCookieConfig getSessionCookieConfig()
- Specified by:
-
getSessionCookieConfig
in interfacejavax.servlet.ServletContext
setSessionTrackingModes
public void setSessionTrackingModes(java.util.Set<javax.servlet.SessionTrackingMode> sessionTrackingModes)
- Specified by:
-
setSessionTrackingModes
in interfacejavax.servlet.ServletContext
getDefaultSessionTrackingModes
public java.util.Set<javax.servlet.SessionTrackingMode> getDefaultSessionTrackingModes()
- Specified by:
-
getDefaultSessionTrackingModes
in interfacejavax.servlet.ServletContext
getEffectiveSessionTrackingModes
public java.util.Set<javax.servlet.SessionTrackingMode> getEffectiveSessionTrackingModes()
- Specified by:
-
getEffectiveSessionTrackingModes
in interfacejavax.servlet.ServletContext
addListener
public void addListener(java.lang.String className)
- Specified by:
-
addListener
in interfacejavax.servlet.ServletContext
addListener
public <T extends java.util.EventListener> void addListener(T t)
- Specified by:
-
addListener
in interfacejavax.servlet.ServletContext
addListener
public void addListener(java.lang.Class<? extends
java.util.EventListener> listenerClass)
- Specified by:
-
addListener
in interfacejavax.servlet.ServletContext
createListener
public <T extends
java.util.EventListener> T createListener(java.lang.Class<T> clazz)
- Specified by:
-
createListener
in interfacejavax.servlet.ServletContext
getJspConfigDescriptor
public javax.servlet.descriptor.JspConfigDescriptor getJspConfigDescriptor()
- Specified by:
-
getJspConfigDescriptor
in interfacejavax.servlet.ServletContext
getClassLoader
public java.lang.ClassLoader getClassLoader()
- Specified by:
-
getClassLoader
in interfacejavax.servlet.ServletContext
declareRoles
public void declareRoles(java.lang.String... roleNames)
- Specified by:
-
declareRoles
in interfacejavax.servlet.ServletContext
getVirtualServerName
public java.lang.String getVirtualServerName()
- Specified by:
-
getVirtualServerName
in interfacejavax.servlet.ServletContext