public class MockServletContext extends Object implements javax.servlet.ServletContext
ServletContext
interface.
Compatible with Servlet 2.5 and partially with Servlet 3.0. Can be configured to
expose a specific version through setMajorVersion(int)
/setMinorVersion(int)
;
default is 2.5. Note that Servlet 3.0 support is limited: servlet, filter and listener
registration methods are not supported; neither is cookie or JSP configuration.
We generally do not recommend to unit-test your ServletContainerInitializers and
WebApplicationInitializers which is where those registration methods would be used.
Used for testing the Spring web framework; only rarely necessary for testing application controllers. As long as application components don't explicitly access the ServletContext, ClassPathXmlApplicationContext or FileSystemXmlApplicationContext can be used to load the context files for testing, even for DispatcherServlet context definitions.
For setting up a full WebApplicationContext in a test environment, you can use XmlWebApplicationContext (or GenericWebApplicationContext), passing in an appropriate MockServletContext instance. You might want to configure your MockServletContext with a FileSystemResourceLoader in that case, to make your resource paths interpreted as relative file system locations.
A common setup is to point your JVM working directory to the root of your web application directory, in combination with filesystem-based resource loading. This allows to load the context files as used in the web application, with relative paths getting interpreted correctly. Such a setup will work with both FileSystemXmlApplicationContext (which will load straight from the file system) and XmlWebApplicationContext with an underlying MockServletContext (as long as the MockServletContext has been configured with a FileSystemResourceLoader).
MockServletContext(org.springframework.core.io.ResourceLoader)
,
XmlWebApplicationContext
,
GenericWebApplicationContext
,
ClassPathXmlApplicationContext
,
FileSystemXmlApplicationContext
Constructor and Description |
---|
MockServletContext()
Create a new MockServletContext, using no base path and a
DefaultResourceLoader (i.e. the classpath root as WAR root).
|
MockServletContext(ResourceLoader resourceLoader)
Create a new MockServletContext, using the specified ResourceLoader
and no base path.
|
MockServletContext(String resourceBasePath)
Create a new MockServletContext, using a DefaultResourceLoader.
|
MockServletContext(String resourceBasePath,
ResourceLoader resourceLoader)
Create a new MockServletContext.
|
Modifier and Type | Method and Description |
---|---|
javax.servlet.FilterRegistration.Dynamic |
addFilter(String filterName,
Class<? extends javax.servlet.Filter> filterClass) |
javax.servlet.FilterRegistration.Dynamic |
addFilter(String filterName,
javax.servlet.Filter filter) |
javax.servlet.FilterRegistration.Dynamic |
addFilter(String filterName,
String className) |
void |
addInitParameter(String name,
String value) |
void |
addListener(Class<? extends EventListener> listenerClass) |
void |
addListener(String className) |
<T extends EventListener> |
addListener(T t) |
javax.servlet.ServletRegistration.Dynamic |
addServlet(String servletName,
Class<? extends javax.servlet.Servlet> servletClass) |
javax.servlet.ServletRegistration.Dynamic |
addServlet(String servletName,
javax.servlet.Servlet servlet) |
javax.servlet.ServletRegistration.Dynamic |
addServlet(String servletName,
String className) |
<T extends javax.servlet.Filter> |
createFilter(Class<T> c) |
<T extends EventListener> |
createListener(Class<T> c) |
<T extends javax.servlet.Servlet> |
createServlet(Class<T> c) |
void |
declareRoles(String... roleNames) |
Object |
getAttribute(String name) |
Enumeration<String> |
getAttributeNames() |
ClassLoader |
getClassLoader() |
javax.servlet.ServletContext |
getContext(String contextPath) |
String |
getContextPath() |
Set<String> |
getDeclaredRoles() |
Set<javax.servlet.SessionTrackingMode> |
getDefaultSessionTrackingModes() |
int |
getEffectiveMajorVersion() |
int |
getEffectiveMinorVersion() |
Set<javax.servlet.SessionTrackingMode> |
getEffectiveSessionTrackingModes() |
javax.servlet.FilterRegistration |
getFilterRegistration(String filterName) |
Map<String,? extends javax.servlet.FilterRegistration> |
getFilterRegistrations() |
String |
getInitParameter(String name) |
Enumeration<String> |
getInitParameterNames() |
javax.servlet.descriptor.JspConfigDescriptor |
getJspConfigDescriptor() |
int |
getMajorVersion() |
String |
getMimeType(String filePath) |
int |
getMinorVersion() |
javax.servlet.RequestDispatcher |
getNamedDispatcher(String path) |
String |
getRealPath(String path) |
javax.servlet.RequestDispatcher |
getRequestDispatcher(String path) |
URL |
getResource(String path) |
InputStream |
getResourceAsStream(String path) |
protected String |
getResourceLocation(String path)
Build a full resource location for the given path,
prepending the resource base path of this MockServletContext.
|
Set<String> |
getResourcePaths(String path) |
String |
getServerInfo() |
javax.servlet.Servlet |
getServlet(String name) |
String |
getServletContextName() |
Enumeration<String> |
getServletNames() |
javax.servlet.ServletRegistration |
getServletRegistration(String servletName) |
Map<String,? extends javax.servlet.ServletRegistration> |
getServletRegistrations() |
Enumeration<javax.servlet.Servlet> |
getServlets() |
javax.servlet.SessionCookieConfig |
getSessionCookieConfig() |
void |
log(Exception ex,
String message) |
void |
log(String message) |
void |
log(String message,
Throwable ex) |
void |
registerContext(String contextPath,
javax.servlet.ServletContext context) |
void |
removeAttribute(String name) |
void |
setAttribute(String name,
Object value) |
void |
setContextPath(String contextPath) |
void |
setEffectiveMajorVersion(int effectiveMajorVersion) |
void |
setEffectiveMinorVersion(int effectiveMinorVersion) |
boolean |
setInitParameter(String name,
String value) |
void |
setMajorVersion(int majorVersion) |
void |
setMinorVersion(int minorVersion) |
void |
setServletContextName(String servletContextName) |
void |
setSessionTrackingModes(Set<javax.servlet.SessionTrackingMode> sessionTrackingModes) |
public MockServletContext()
DefaultResourceLoader
public MockServletContext(String resourceBasePath)
resourceBasePath
- the WAR root directory (should not end with a slash)DefaultResourceLoader
public MockServletContext(ResourceLoader resourceLoader)
resourceLoader
- the ResourceLoader to use (or null for the default)public MockServletContext(String resourceBasePath, ResourceLoader resourceLoader)
resourceBasePath
- the WAR root directory (should not end with a slash)resourceLoader
- the ResourceLoader to use (or null for the default)protected String getResourceLocation(String path)
path
- the path as specifiedpublic void setContextPath(String contextPath)
public String getContextPath()
getContextPath
in interface javax.servlet.ServletContext
public void registerContext(String contextPath, javax.servlet.ServletContext context)
public javax.servlet.ServletContext getContext(String contextPath)
getContext
in interface javax.servlet.ServletContext
public void setMajorVersion(int majorVersion)
public int getMajorVersion()
getMajorVersion
in interface javax.servlet.ServletContext
public void setMinorVersion(int minorVersion)
public int getMinorVersion()
getMinorVersion
in interface javax.servlet.ServletContext
public void setEffectiveMajorVersion(int effectiveMajorVersion)
public int getEffectiveMajorVersion()
getEffectiveMajorVersion
in interface javax.servlet.ServletContext
public void setEffectiveMinorVersion(int effectiveMinorVersion)
public int getEffectiveMinorVersion()
getEffectiveMinorVersion
in interface javax.servlet.ServletContext
public String getMimeType(String filePath)
getMimeType
in interface javax.servlet.ServletContext
public Set<String> getResourcePaths(String path)
getResourcePaths
in interface javax.servlet.ServletContext
public URL getResource(String path) throws MalformedURLException
getResource
in interface javax.servlet.ServletContext
MalformedURLException
public InputStream getResourceAsStream(String path)
getResourceAsStream
in interface javax.servlet.ServletContext
public javax.servlet.RequestDispatcher getRequestDispatcher(String path)
getRequestDispatcher
in interface javax.servlet.ServletContext
public javax.servlet.RequestDispatcher getNamedDispatcher(String path)
getNamedDispatcher
in interface javax.servlet.ServletContext
public javax.servlet.Servlet getServlet(String name)
getServlet
in interface javax.servlet.ServletContext
public Enumeration<javax.servlet.Servlet> getServlets()
getServlets
in interface javax.servlet.ServletContext
public Enumeration<String> getServletNames()
getServletNames
in interface javax.servlet.ServletContext
public void log(String message)
log
in interface javax.servlet.ServletContext
public void log(Exception ex, String message)
log
in interface javax.servlet.ServletContext
public void log(String message, Throwable ex)
log
in interface javax.servlet.ServletContext
public String getRealPath(String path)
getRealPath
in interface javax.servlet.ServletContext
public String getServerInfo()
getServerInfo
in interface javax.servlet.ServletContext
public String getInitParameter(String name)
getInitParameter
in interface javax.servlet.ServletContext
public Enumeration<String> getInitParameterNames()
getInitParameterNames
in interface javax.servlet.ServletContext
public boolean setInitParameter(String name, String value)
setInitParameter
in interface javax.servlet.ServletContext
public Object getAttribute(String name)
getAttribute
in interface javax.servlet.ServletContext
public Enumeration<String> getAttributeNames()
getAttributeNames
in interface javax.servlet.ServletContext
public void setAttribute(String name, Object value)
setAttribute
in interface javax.servlet.ServletContext
public void removeAttribute(String name)
removeAttribute
in interface javax.servlet.ServletContext
public void setServletContextName(String servletContextName)
public String getServletContextName()
getServletContextName
in interface javax.servlet.ServletContext
public ClassLoader getClassLoader()
getClassLoader
in interface javax.servlet.ServletContext
public void declareRoles(String... roleNames)
declareRoles
in interface javax.servlet.ServletContext
public javax.servlet.descriptor.JspConfigDescriptor getJspConfigDescriptor()
getJspConfigDescriptor
in interface javax.servlet.ServletContext
public javax.servlet.ServletRegistration.Dynamic addServlet(String servletName, String className)
addServlet
in interface javax.servlet.ServletContext
public javax.servlet.ServletRegistration.Dynamic addServlet(String servletName, javax.servlet.Servlet servlet)
addServlet
in interface javax.servlet.ServletContext
public javax.servlet.ServletRegistration.Dynamic addServlet(String servletName, Class<? extends javax.servlet.Servlet> servletClass)
addServlet
in interface javax.servlet.ServletContext
public <T extends javax.servlet.Servlet> T createServlet(Class<T> c) throws javax.servlet.ServletException
createServlet
in interface javax.servlet.ServletContext
javax.servlet.ServletException
public javax.servlet.ServletRegistration getServletRegistration(String servletName)
getServletRegistration
in interface javax.servlet.ServletContext
public Map<String,? extends javax.servlet.ServletRegistration> getServletRegistrations()
getServletRegistrations
in interface javax.servlet.ServletContext
public javax.servlet.FilterRegistration.Dynamic addFilter(String filterName, String className)
addFilter
in interface javax.servlet.ServletContext
public javax.servlet.FilterRegistration.Dynamic addFilter(String filterName, javax.servlet.Filter filter)
addFilter
in interface javax.servlet.ServletContext
public javax.servlet.FilterRegistration.Dynamic addFilter(String filterName, Class<? extends javax.servlet.Filter> filterClass)
addFilter
in interface javax.servlet.ServletContext
public <T extends javax.servlet.Filter> T createFilter(Class<T> c) throws javax.servlet.ServletException
createFilter
in interface javax.servlet.ServletContext
javax.servlet.ServletException
public javax.servlet.FilterRegistration getFilterRegistration(String filterName)
getFilterRegistration
in interface javax.servlet.ServletContext
public Map<String,? extends javax.servlet.FilterRegistration> getFilterRegistrations()
getFilterRegistrations
in interface javax.servlet.ServletContext
public void addListener(Class<? extends EventListener> listenerClass)
addListener
in interface javax.servlet.ServletContext
public void addListener(String className)
addListener
in interface javax.servlet.ServletContext
public <T extends EventListener> void addListener(T t)
addListener
in interface javax.servlet.ServletContext
public <T extends EventListener> T createListener(Class<T> c) throws javax.servlet.ServletException
createListener
in interface javax.servlet.ServletContext
javax.servlet.ServletException
public javax.servlet.SessionCookieConfig getSessionCookieConfig()
getSessionCookieConfig
in interface javax.servlet.ServletContext
public Set<javax.servlet.SessionTrackingMode> getDefaultSessionTrackingModes()
getDefaultSessionTrackingModes
in interface javax.servlet.ServletContext
public Set<javax.servlet.SessionTrackingMode> getEffectiveSessionTrackingModes()
getEffectiveSessionTrackingModes
in interface javax.servlet.ServletContext
public void setSessionTrackingModes(Set<javax.servlet.SessionTrackingMode> sessionTrackingModes) throws IllegalStateException, IllegalArgumentException
setSessionTrackingModes
in interface javax.servlet.ServletContext
IllegalStateException
IllegalArgumentException
Copyright © 2014. All rights reserved.