Class MockServletContext

java.lang.Object
org.apache.wicket.protocol.http.mock.MockServletContext
All Implemented Interfaces:
jakarta.servlet.ServletContext

public class MockServletContext extends Object implements jakarta.servlet.ServletContext
Mock implementation of the servlet context for testing purposes. This implementation supports all of the standard context methods except that request dispatching just indicates what is being dispatched to, rather than doing the actual dispatch.

The context can be configured with a path parameter that should point to an absolute directory location that represents the place where the contents of the WAR bundle are located. Setting this value allows all of the resource location functionality to work as in a fully functioning web application. This value is not set then not resource location functionality will work and instead null will always be returned.

Author:
Chris Turner
  • Constructor Details

    • MockServletContext

      public MockServletContext(Application application, String path)
      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"
      Parameters:
      application - The application that this context is for
      path - The path to the root of the web application
  • Method Details

    • addInitParameter

      public void addInitParameter(String name, String value)
      Add an init parameter.
      Parameters:
      name - The parameter name
      value - The parameter value
    • addMimeType

      public void addMimeType(String fileExtension, 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 Object getAttribute(String name)
      Get an attribute with the given name.
      Specified by:
      getAttribute in interface jakarta.servlet.ServletContext
      Parameters:
      name - The attribute name
      Returns:
      The value, or null
    • getAttributeNames

      Get all of the attribute names.
      Specified by:
      getAttributeNames in interface jakarta.servlet.ServletContext
      Returns:
      The attribute names
    • getContext

      public jakarta.servlet.ServletContext getContext(String name)
      Get the context for the given URL path
      Specified by:
      getContext in interface jakarta.servlet.ServletContext
      Parameters:
      name - The url path
      Returns:
      Always returns this
    • getInitParameter

      Get the init parameter with the given name.
      Specified by:
      getInitParameter in interface jakarta.servlet.ServletContext
      Parameters:
      name - The name
      Returns:
      The parameter, or null if no such parameter
    • getInitParameterNames

      Get the name of all of the init parameters.
      Specified by:
      getInitParameterNames in interface jakarta.servlet.ServletContext
      Returns:
      The init parameter names
    • setInitParameter

      public boolean setInitParameter(String name, String value)
      Specified by:
      setInitParameter in interface jakarta.servlet.ServletContext
    • getMimeType

      public String getMimeType(String name)
      Get the mime type for the given file. Uses a hardcoded map of mime types set at Initialization time.
      Specified by:
      getMimeType in interface jakarta.servlet.ServletContext
      Parameters:
      name - The name to get the mime type for
      Returns:
      The mime type
    • getMajorVersion

      public int getMajorVersion()
      Specified by:
      getMajorVersion in interface jakarta.servlet.ServletContext
    • getMinorVersion

      public int getMinorVersion()
      Specified by:
      getMinorVersion in interface jakarta.servlet.ServletContext
    • getEffectiveMajorVersion

      Specified by:
      getEffectiveMajorVersion in interface jakarta.servlet.ServletContext
    • getEffectiveMinorVersion

      Specified by:
      getEffectiveMinorVersion in interface jakarta.servlet.ServletContext
    • getNamedDispatcher

      public jakarta.servlet.RequestDispatcher getNamedDispatcher(String name)
      Wicket does not use the RequestDispatcher, so this implementation just returns a dummy value.
      Specified by:
      getNamedDispatcher in interface jakarta.servlet.ServletContext
      Parameters:
      name - The name of the servlet or JSP
      Returns:
      The dispatcher
    • getRealPath

      public String getRealPath(String name)
      Get the real file path of the given resource name.
      Specified by:
      getRealPath in interface jakarta.servlet.ServletContext
      Parameters:
      name - The name
      Returns:
      The real path or null
    • getRequestDispatcher

      public jakarta.servlet.RequestDispatcher getRequestDispatcher(String name)
      Wicket does not use the RequestDispatcher, so this implementation just returns a dummy value.
      Specified by:
      getRequestDispatcher in interface jakarta.servlet.ServletContext
      Parameters:
      name - The name of the resource to get the dispatcher for
      Returns:
      The dispatcher
    • getResource

      Get the URL for a particular resource that is relative to the web app root directory.
      Specified by:
      getResource in interface jakarta.servlet.ServletContext
      Parameters:
      name - The name of the resource to get
      Returns:
      The resource, or null if resource not found
      Throws:
      MalformedURLException - If the URL is invalid
    • getResourceAsStream

      Get an input stream for a particular resource that is relative to the web app root directory.
      Specified by:
      getResourceAsStream in interface jakarta.servlet.ServletContext
      Parameters:
      name - The name of the resource to get
      Returns:
      The input stream for the resource, or null of resource is not found
    • getResourcePaths

      Get the resource paths starting from the web app root directory and then relative to the the given name.
      Specified by:
      getResourcePaths in interface jakarta.servlet.ServletContext
      Parameters:
      name - The starting name
      Returns:
      The set of resource paths at this location
    • getServerInfo

      Get the server info.
      Specified by:
      getServerInfo in interface jakarta.servlet.ServletContext
      Returns:
      The server info
    • getServletContextName

      Return the name of the servlet context.
      Specified by:
      getServletContextName in interface jakarta.servlet.ServletContext
      Returns:
      The name
    • addServlet

      public jakarta.servlet.ServletRegistration.Dynamic addServlet(String servletName, String className)
      Specified by:
      addServlet in interface jakarta.servlet.ServletContext
    • addServlet

      public jakarta.servlet.ServletRegistration.Dynamic addServlet(String servletName, jakarta.servlet.Servlet servlet)
      Specified by:
      addServlet in interface jakarta.servlet.ServletContext
    • addServlet

      public jakarta.servlet.ServletRegistration.Dynamic addServlet(String servletName, Class<? extends jakarta.servlet.Servlet> servletClass)
      Specified by:
      addServlet in interface jakarta.servlet.ServletContext
    • addJspFile

      public jakarta.servlet.ServletRegistration.Dynamic addJspFile(String s, String s1)
      Specified by:
      addJspFile in interface jakarta.servlet.ServletContext
    • createServlet

      public <T extends jakarta.servlet.Servlet> T createServlet(Class<T> clazz) throws jakarta.servlet.ServletException
      Specified by:
      createServlet in interface jakarta.servlet.ServletContext
      Throws:
      jakarta.servlet.ServletException
    • getServletRegistration

      public jakarta.servlet.ServletRegistration getServletRegistration(String servletName)
      Specified by:
      getServletRegistration in interface jakarta.servlet.ServletContext
    • getServletRegistrations

      public Map<String,? extends jakarta.servlet.ServletRegistration> getServletRegistrations()
      Specified by:
      getServletRegistrations in interface jakarta.servlet.ServletContext
    • addFilter

      public jakarta.servlet.FilterRegistration.Dynamic addFilter(String filterName, String className)
      Specified by:
      addFilter in interface jakarta.servlet.ServletContext
    • addFilter

      public jakarta.servlet.FilterRegistration.Dynamic addFilter(String filterName, jakarta.servlet.Filter filter)
      Specified by:
      addFilter in interface jakarta.servlet.ServletContext
    • addFilter

      public jakarta.servlet.FilterRegistration.Dynamic addFilter(String filterName, Class<? extends jakarta.servlet.Filter> filterClass)
      Specified by:
      addFilter in interface jakarta.servlet.ServletContext
    • createFilter

      public <T extends jakarta.servlet.Filter> T createFilter(Class<T> clazz) throws jakarta.servlet.ServletException
      Specified by:
      createFilter in interface jakarta.servlet.ServletContext
      Throws:
      jakarta.servlet.ServletException
    • getFilterRegistration

      public jakarta.servlet.FilterRegistration getFilterRegistration(String filterName)
      Specified by:
      getFilterRegistration in interface jakarta.servlet.ServletContext
    • getFilterRegistrations

      public Map<String,? extends jakarta.servlet.FilterRegistration> getFilterRegistrations()
      Specified by:
      getFilterRegistrations in interface jakarta.servlet.ServletContext
    • getSessionCookieConfig

      public jakarta.servlet.SessionCookieConfig getSessionCookieConfig()
      Specified by:
      getSessionCookieConfig in interface jakarta.servlet.ServletContext
    • setSessionTrackingModes

      public void setSessionTrackingModes(Set<jakarta.servlet.SessionTrackingMode> sessionTrackingModes)
      Specified by:
      setSessionTrackingModes in interface jakarta.servlet.ServletContext
    • getDefaultSessionTrackingModes

      public Set<jakarta.servlet.SessionTrackingMode> getDefaultSessionTrackingModes()
      Specified by:
      getDefaultSessionTrackingModes in interface jakarta.servlet.ServletContext
    • getEffectiveSessionTrackingModes

      public Set<jakarta.servlet.SessionTrackingMode> getEffectiveSessionTrackingModes()
      Specified by:
      getEffectiveSessionTrackingModes in interface jakarta.servlet.ServletContext
    • addListener

      public void addListener(String className)
      Specified by:
      addListener in interface jakarta.servlet.ServletContext
    • addListener

      public <T extends EventListener> void addListener(T t)
      Specified by:
      addListener in interface jakarta.servlet.ServletContext
    • addListener

      public void addListener(Class<? extends EventListener> listenerClass)
      Specified by:
      addListener in interface jakarta.servlet.ServletContext
    • createListener

      public <T extends EventListener> T createListener(Class<T> clazz) throws jakarta.servlet.ServletException
      Specified by:
      createListener in interface jakarta.servlet.ServletContext
      Throws:
      jakarta.servlet.ServletException
    • getJspConfigDescriptor

      public jakarta.servlet.descriptor.JspConfigDescriptor getJspConfigDescriptor()
      Specified by:
      getJspConfigDescriptor in interface jakarta.servlet.ServletContext
    • getClassLoader

      Specified by:
      getClassLoader in interface jakarta.servlet.ServletContext
    • declareRoles

      public void declareRoles(String... roleNames)
      Specified by:
      declareRoles in interface jakarta.servlet.ServletContext
    • getVirtualServerName

      Specified by:
      getVirtualServerName in interface jakarta.servlet.ServletContext
    • getSessionTimeout

      public int getSessionTimeout()
      Specified by:
      getSessionTimeout in interface jakarta.servlet.ServletContext
    • setSessionTimeout

      public void setSessionTimeout(int sessionTimeout)
      Specified by:
      setSessionTimeout in interface jakarta.servlet.ServletContext
    • getRequestCharacterEncoding

      Specified by:
      getRequestCharacterEncoding in interface jakarta.servlet.ServletContext
    • setRequestCharacterEncoding

      public void setRequestCharacterEncoding(String requestCharacterEncoding)
      Specified by:
      setRequestCharacterEncoding in interface jakarta.servlet.ServletContext
    • getResponseCharacterEncoding

      Specified by:
      getResponseCharacterEncoding in interface jakarta.servlet.ServletContext
    • setResponseCharacterEncoding

      public void setResponseCharacterEncoding(String responseCharacterEncoding)
      Specified by:
      setResponseCharacterEncoding in interface jakarta.servlet.ServletContext
    • log

      public void log(String msg)
      As part of testing we always log to the console.
      Specified by:
      log in interface jakarta.servlet.ServletContext
      Parameters:
      msg - The message to log
    • log

      public void log(String msg, Throwable cause)
      As part of testing we always log to the console.
      Specified by:
      log in interface jakarta.servlet.ServletContext
      Parameters:
      msg - The message to log
      cause - The cause exception
    • removeAttribute

      public void removeAttribute(String name)
      Remove an attribute with the given name.
      Specified by:
      removeAttribute in interface jakarta.servlet.ServletContext
      Parameters:
      name - The name
    • setAttribute

      public void setAttribute(String name, Object o)
      Set an attribute.
      Specified by:
      setAttribute in interface jakarta.servlet.ServletContext
      Parameters:
      name - The name of the attribute
      o - The value
    • getContextPath

      Specified by:
      getContextPath in interface jakarta.servlet.ServletContext
      Returns:
      context path