Class MockWebRequest

    • Constructor Detail

      • MockWebRequest

        public MockWebRequest​(Url url,
                              String contextPath,
                              String filterPath,
                              String prefixToContextPath)
        Construct.
        Parameters:
        url -
        contextPath -
        filterPath -
        prefixToContextPath -
    • Method Detail

      • setUrl

        public void setUrl​(Url url)
        Parameters:
        url -
      • getUrl

        public Url getUrl()
        Description copied from class: Request
        Returns the URL for this request. URL is relative to Wicket filter path.
        Specified by:
        getUrl in class Request
        Returns:
        Url instance
      • setCookies

        public void setCookies​(List<javax.servlet.http.Cookie> cookies)
        Sets cookies for current request.
        Parameters:
        cookies -
      • addCookie

        public void addCookie​(javax.servlet.http.Cookie cookie)
        Parameters:
        cookie -
      • getDateHeader

        public Instant getDateHeader​(String name)
        Description copied from class: WebRequest
        Returns the value of the specified request header as a long value that represents a Date object. Use this method with headers that contain dates, such as If-Modified-Since.
        Specified by:
        getDateHeader in class WebRequest
        Returns:
        date value of request header or null if not found
      • setDateHeader

        public void setDateHeader​(String name,
                                  Time value)
        Sets date header for given name.
        Parameters:
        name -
        value -
      • addDateHeader

        public void addDateHeader​(String name,
                                  Time value)
        Adds date header for given name.
        Parameters:
        name -
        value -
      • setHeader

        public void setHeader​(String name,
                              String value)
        Sets header for given name.
        Parameters:
        name -
        value -
      • addHeader

        public void addHeader​(String name,
                              String value)
        Adds header for given name.
        Parameters:
        name -
        value -
      • setLocale

        public void setLocale​(Locale locale)
        Sets request locale.
        Parameters:
        locale -
      • removeHeader

        public void removeHeader​(String header)
        Removes header with specified name.
        Parameters:
        header -
      • getClientUrl

        public Url getClientUrl()
        Description copied from class: Request
        Returns the url against which the client, usually the browser, will resolve relative urls in the rendered markup. If the client is a browser this is the url in the browser's address bar.

        Under normal circumstances the client and request (Request.getUrl()) urls are the same. Handling an Ajax request, however, is a good example of when they may be different. Technologies such as XHR are free to request whatever url they wish without modifying the client url; however, any produced urls will be evaluated by the client against the client url - not against the request url.

        Lets take a simple example:
        Suppose we are on a client detail page. This page contains an Ajax link which opens a list of client's orders. Each order has a link that goes to the order detail page. The client detail page is located at

         /detail/customer/15
         
        and the order detail page is located at
         /order/22
         
        The Ajax link which renders the detail section is located at
          /detail/wicket?page 3
         
        Lets run through the execution and see what happens when the XHR request is processed:
         request 1: /details/customer/15
         client url: details/customer/15 (the url in the browser's address bar)
         request url: details/customer/15
         Wicket renders relative Ajax details anchor as ../../wicket/page?3  
         
         ../../wicket/page?3 resolved against current client url details/customer/15 yields:
         request 2: /wicket/page?3
         client url: customer/15 (unchanged since XHRs requests dont change it)
         request url: wicket/ajax/page?3
         
         now Wicket has to render a relative url to /details/order/22. If Wicket renders 
         it against the request url it will be: ../order/22, and later evaluated on the
         client will result in /customer/order/22 which is incorrect.
         
        This is why implementations of Request must track the client url, so that relative urls can be rendered against the same url they will be evaluated against on the client - which is not always the same as the request url. For example, Wicket's Ajax implementation always sends the current client url in a header along with the XHR request so that Wicket can correctly render relative urls against it.

        Specified by:
        getClientUrl in class Request
        Returns:
        client url
      • getContainerRequest

        public Object getContainerRequest()
        Description copied from class: Request
        Provides access to the low-level container request object that implementaion of this Request delegate to. This allows users to access features provided by the container requests but not by generalized Wicket Request objects.
        Specified by:
        getContainerRequest in class Request
        Returns:
        low-level container request object, or null if none
      • getContextPath

        public String getContextPath()
        Description copied from class: Request
        Returns the context path or an empty string if the application is running under root context. Returned path, unless an empty string, will always start with a slash and will never end with a slash.
        Overrides:
        getContextPath in class Request
        Returns:
        context path
      • getFilterPath

        public String getFilterPath()
        Description copied from class: Request
        Returns the path to which wicket Filter is mapped or an empty string if the filter is mapped to /*. Returned path, unless an empty string, will always start with a slash and will never end with a slash.
        Overrides:
        getFilterPath in class Request
        Returns:
        filter path
      • getPrefixToContextPath

        public String getPrefixToContextPath()
        Description copied from class: Request
        Returns prefix from Wicket Filter mapping to context path. This method does not take the actual URL into account.

        For example if Wicket filter is mapped to hello/* this method should return ../ regardless of actual URL (after Wicket filter)

        Overrides:
        getPrefixToContextPath in class Request
        Returns:
        prefix to context path for this request.