Class MockResponse

  • All Implemented Interfaces:
    javax.servlet.http.HttpServletResponse, javax.servlet.ServletResponse

    public class MockResponse
    extends Object
    implements javax.servlet.http.HttpServletResponse

    Mock implementation of HttpServletResponse.

    Implements all of the methods from the standard HttpServletResponse class plus helper methods to aid viewing the generated response.

    This class was adapted from Apache Wicket.

    Since:
    17.10.0
    • Constructor Detail

      • MockResponse

        public MockResponse()
        Create the response object.
    • Method Detail

      • addCookie

        public void addCookie​(javax.servlet.http.Cookie cookie)
        Add a cookie to the response.
        Specified by:
        addCookie in interface javax.servlet.http.HttpServletResponse
        Parameters:
        cookie - The cookie to add
      • addDateHeader

        public void addDateHeader​(String name,
                                  long l)
        Add a date header.
        Specified by:
        addDateHeader in interface javax.servlet.http.HttpServletResponse
        Parameters:
        name - The header value
        l - The long value
      • addHeader

        public void addHeader​(String name,
                              String value)
        Add the given header value, including an additional entry if one already exists.
        Specified by:
        addHeader in interface javax.servlet.http.HttpServletResponse
        Parameters:
        name - The name for the header
        value - The value for the header
      • addIntHeader

        public void addIntHeader​(String name,
                                 int i)
        Add an int header value.
        Specified by:
        addIntHeader in interface javax.servlet.http.HttpServletResponse
        Parameters:
        name - The header name
        i - The value
      • containsHeader

        public boolean containsHeader​(String name)
        Check if the response contains the given header name.
        Specified by:
        containsHeader in interface javax.servlet.http.HttpServletResponse
        Parameters:
        name - The name to check
        Returns:
        Whether header in response or not
      • encodeRedirectUrl

        public String encodeRedirectUrl​(String url)
        Encode the redirectUrl. Does no changes as this test implementation uses cookie based url tracking.
        Specified by:
        encodeRedirectUrl in interface javax.servlet.http.HttpServletResponse
        Parameters:
        url - The url to encode
        Returns:
        The encoded url
      • encodeRedirectURL

        public String encodeRedirectURL​(String url)
        Encode the redirectUrl. Does no changes as this test implementation uses cookie based url tracking.
        Specified by:
        encodeRedirectURL in interface javax.servlet.http.HttpServletResponse
        Parameters:
        url - The url to encode
        Returns:
        The encoded url
      • encodeUrl

        public String encodeUrl​(String url)
        Encode thr URL. Does no changes as this test implementation uses cookie based url tracking.
        Specified by:
        encodeUrl in interface javax.servlet.http.HttpServletResponse
        Parameters:
        url - The url to encode
        Returns:
        The encoded url
      • encodeURL

        public String encodeURL​(String url)
        Encode thr URL. Does no changes as this test implementation uses cookie based url tracking.
        Specified by:
        encodeURL in interface javax.servlet.http.HttpServletResponse
        Parameters:
        url - The url to encode
        Returns:
        The encoded url
      • flushBuffer

        public void flushBuffer()
                         throws IOException
        Flush the buffer.
        Specified by:
        flushBuffer in interface javax.servlet.ServletResponse
        Throws:
        IOException - if exception occurs during flush
      • getBinaryContent

        public byte[] getBinaryContent()
        Get the binary content that was written to the servlet stream.
        Returns:
        The binary content
      • getBufferSize

        public int getBufferSize()
        Return the current buffer size.
        Specified by:
        getBufferSize in interface javax.servlet.ServletResponse
        Returns:
        The buffer size
      • getCharacterEncoding

        public String getCharacterEncoding()
        Get the character encoding of the response.
        Specified by:
        getCharacterEncoding in interface javax.servlet.ServletResponse
        Returns:
        The character encoding
      • getCode

        public int getCode()
        Get the response code for this request.
        Returns:
        The response code
      • getCookies

        public Collection<javax.servlet.http.Cookie> getCookies()
        Get all of the cookies that have been added to the response.
        Returns:
        The collection of cookies
      • getDocument

        public String getDocument()
        Get the text document that was written as part of this response.
        Returns:
        The document
      • getErrorMessage

        public String getErrorMessage()
        Get the error message.
        Returns:
        The error message, or null if no message
      • getHeader

        public String getHeader​(String name)
        Return the value of the given named header.
        Specified by:
        getHeader in interface javax.servlet.http.HttpServletResponse
        Parameters:
        name - The header name
        Returns:
        The value, or null
      • getHeaderNames

        public Set<String> getHeaderNames()
        Get the names of all of the headers.
        Specified by:
        getHeaderNames in interface javax.servlet.http.HttpServletResponse
        Returns:
        The header names
      • getLocale

        public Locale getLocale()
        Get the encoded locale.
        Specified by:
        getLocale in interface javax.servlet.ServletResponse
        Returns:
        The locale
      • getOutputStream

        public javax.servlet.ServletOutputStream getOutputStream()
        Get the output stream for writing binary data from the servlet.
        Specified by:
        getOutputStream in interface javax.servlet.ServletResponse
        Returns:
        The binary output stream.
      • getRedirectUrl

        public String getRedirectUrl()
        Get the location that was redirected to.
        Returns:
        The redirect url, or null if not a redirect
      • getStatus

        public int getStatus()
        Get the status code.
        Specified by:
        getStatus in interface javax.servlet.http.HttpServletResponse
        Returns:
        The status code
      • getWriter

        public PrintWriter getWriter()
                              throws IOException
        Get the print writer for writing text output for this response.
        Specified by:
        getWriter in interface javax.servlet.ServletResponse
        Returns:
        The writer
        Throws:
        IOException - - if an input or output exception occurred
      • initialize

        public void initialize()
        Reset the response ready for reuse.
      • reset

        public void reset()
        Delegate to initialise method.
        Specified by:
        reset in interface javax.servlet.ServletResponse
      • isCommitted

        public boolean isCommitted()
        Always returns false.
        Specified by:
        isCommitted in interface javax.servlet.ServletResponse
        Returns:
        Always false
      • isError

        public boolean isError()
        Return whether the servlet returned an error code or not.
        Returns:
        Whether an error occurred or not
      • isRedirect

        public boolean isRedirect()
        Check whether the response was redirected or not.
        Returns:
        Whether the state was redirected or not
      • resetBuffer

        public void resetBuffer()
        Clears the buffer.
        Specified by:
        resetBuffer in interface javax.servlet.ServletResponse
      • sendError

        public void sendError​(int code)
                       throws IOException
        Send an error code. This implementation just sets the internal error state information.
        Specified by:
        sendError in interface javax.servlet.http.HttpServletResponse
        Parameters:
        code - The code
        Throws:
        IOException - Not used
      • sendError

        public void sendError​(int code,
                              String msg)
                       throws IOException
        Send an error code. This implementation just sets the internal error state information.
        Specified by:
        sendError in interface javax.servlet.http.HttpServletResponse
        Parameters:
        code - The error code
        msg - The error message
        Throws:
        IOException - Not used
      • sendRedirect

        public void sendRedirect​(String url)
                          throws IOException

        Indicate sending of a redirectUrl to a particular named resource.

        This implementation just keeps hold of the redirectUrl info and makes it available for querying.

        Specified by:
        sendRedirect in interface javax.servlet.http.HttpServletResponse
        Parameters:
        url - The url to set redirectUrl to
        Throws:
        IOException - Not used
      • setBufferSize

        public void setBufferSize​(int size)
        Method ignored.
        Specified by:
        setBufferSize in interface javax.servlet.ServletResponse
        Parameters:
        size - The size
      • setCharacterEncoding

        public void setCharacterEncoding​(String characterEncoding)
        Set the character encoding.
        Specified by:
        setCharacterEncoding in interface javax.servlet.ServletResponse
        Parameters:
        characterEncoding - The character encoding
      • setContentLength

        public void setContentLength​(int length)
        Set the content length.
        Specified by:
        setContentLength in interface javax.servlet.ServletResponse
        Parameters:
        length - The length
      • setContentType

        public void setContentType​(String type)
        Set the content type.
        Specified by:
        setContentType in interface javax.servlet.ServletResponse
        Parameters:
        type - The content type
      • getContentType

        public String getContentType()
        Return the response content type.
        Specified by:
        getContentType in interface javax.servlet.ServletResponse
        Returns:
        the response content type
      • setDateHeader

        public void setDateHeader​(String name,
                                  long l)
        Set a date header.
        Specified by:
        setDateHeader in interface javax.servlet.http.HttpServletResponse
        Parameters:
        name - The header name
        l - The long value
      • formatDate

        public static String formatDate​(long value)
        Formats the specified long value as a date.
        Parameters:
        value - the specified long value to format
        Returns:
        the formatted date
      • formatDate

        public static void formatDate​(StringBuffer buf,
                                      Calendar calendar,
                                      boolean cookie)
        Format HTTP date "EEE, dd MMM yyyy HH:mm:ss 'GMT'" or "EEE, dd-MMM-yy HH:mm:ss 'GMT'" for cookies.
        Parameters:
        buf - the buffer to render to formatted date to
        calendar - the date to format
        cookie - should date be formatted for usage in a cookie
      • append2digits

        public static void append2digits​(StringBuffer buf,
                                         int i)
        Append two digits if specified int is less than 100.
        Parameters:
        buf - the buffer to add 2 digits to
        i - the digits to add
      • setHeader

        public void setHeader​(String name,
                              String value)
        Set the given header value.
        Specified by:
        setHeader in interface javax.servlet.http.HttpServletResponse
        Parameters:
        name - The name for the header
        value - The value for the header
      • setIntHeader

        public void setIntHeader​(String name,
                                 int i)
        Set an int header value.
        Specified by:
        setIntHeader in interface javax.servlet.http.HttpServletResponse
        Parameters:
        name - The header name
        i - The value
      • setLocale

        public void setLocale​(Locale locale)
        Set the locale in the response header.
        Specified by:
        setLocale in interface javax.servlet.ServletResponse
        Parameters:
        locale - The locale
      • setStatus

        public void setStatus​(int status)
        Set the status for this response.
        Specified by:
        setStatus in interface javax.servlet.http.HttpServletResponse
        Parameters:
        status - The status
      • setStatus

        public void setStatus​(int status,
                              String msg)
        Deprecated.
        Set the status for this response.
        Specified by:
        setStatus in interface javax.servlet.http.HttpServletResponse
        Parameters:
        status - The status
        msg - The message
      • setContentLengthLong

        public void setContentLengthLong​(long len)
        Set the content length long.
        Specified by:
        setContentLengthLong in interface javax.servlet.ServletResponse
        Parameters:
        len - the content length
      • getHeaders

        public Collection<String> getHeaders​(String name)
        Return the request headers.
        Specified by:
        getHeaders in interface javax.servlet.http.HttpServletResponse
        Parameters:
        name - the header name
        Returns:
        headers