Class MockWebRequest
- java.lang.Object
-
- org.apache.wicket.request.Request
-
- org.apache.wicket.request.http.WebRequest
-
- org.apache.wicket.mock.MockWebRequest
-
public class MockWebRequest extends WebRequest
Mutable mockWebRequest
.- Author:
- Matej Knopp
-
-
Field Summary
-
Fields inherited from class org.apache.wicket.request.http.WebRequest
HEADER_AJAX, HEADER_AJAX_BASE_URL, HEADER_ORIGIN, HEADER_REFERER, PARAM_AJAX, PARAM_AJAX_BASE_URL, PARAM_AJAX_REQUEST_ANTI_CACHE
-
-
Constructor Summary
Constructors Constructor Description MockWebRequest(Url url)
Construct.MockWebRequest(Url url, String contextPath, String filterPath, String prefixToContextPath)
Construct.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addCookie(javax.servlet.http.Cookie cookie)
void
addDateHeader(String name, Time value)
Adds date header for given name.void
addHeader(String name, String value)
Adds header for given name.MockWebRequest
cloneWithUrl(Url url)
Returns request with specified URL and same POST parameters as this request.Charset
getCharset()
Gets charset of the requestUrl
getClientUrl()
Returns the url against which the client, usually the browser, will resolve relative urls in the rendered markup.Object
getContainerRequest()
Provides access to the low-level container request object that implementaion of thisRequest
delegate to.String
getContextPath()
Returns the context path or an empty string if the application is running under root context.List<javax.servlet.http.Cookie>
getCookies()
Instant
getDateHeader(String name)
Returns the value of the specified request header as along
value that represents aDate
object.String
getFilterPath()
Returns the path to which wicket Filter is mapped or an empty string if the filter is mapped to/*
.String
getHeader(String name)
Returns the value of the specified request header as aString
List<String>
getHeaders(String name)
Returns all the values of the specified request header.Locale
getLocale()
Returns locale for this request.MockRequestParameters
getPostParameters()
String
getPrefixToContextPath()
Returns prefix from Wicket Filter mapping to context path.Url
getUrl()
Returns the URL for this request.void
removeHeader(String header)
Removes header with specified name.MockWebRequest
setContextPath(String contextPath)
void
setCookies(List<javax.servlet.http.Cookie> cookies)
Sets cookies for current request.void
setDateHeader(String name, Time value)
Sets date header for given name.MockWebRequest
setFilterPath(String filterPath)
void
setHeader(String name, String value)
Sets header for given name.void
setLocale(Locale locale)
Sets request locale.MockWebRequest
setPrefixToContextPath(String prefixToContextPath)
void
setUrl(Url url)
String
toString()
-
Methods inherited from class org.apache.wicket.request.http.WebRequest
getCookie, getIfModifiedSinceHeader, isAjax, shouldPreserveClientUrl
-
Methods inherited from class org.apache.wicket.request.Request
getOriginalUrl, getQueryParameters, getRequestParameters
-
-
-
-
Constructor Detail
-
MockWebRequest
public MockWebRequest(Url url)
Construct.- Parameters:
url
-
-
MockWebRequest
public MockWebRequest(Url url, String contextPath, String filterPath, String prefixToContextPath)
Construct.- Parameters:
url
-contextPath
-filterPath
-prefixToContextPath
-
-
-
Method Detail
-
cloneWithUrl
public MockWebRequest cloneWithUrl(Url url)
Description copied from class:WebRequest
Returns request with specified URL and same POST parameters as this request.- Overrides:
cloneWithUrl
in classWebRequest
- Parameters:
url
- Url instance- Returns:
- request with specified URL.
-
getUrl
public Url getUrl()
Description copied from class:Request
Returns the URL for this request. URL is relative to Wicket filter path.
-
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
-
-
getCookies
public List<javax.servlet.http.Cookie> getCookies()
- Specified by:
getCookies
in classWebRequest
- Returns:
- request cookies
-
getDateHeader
public Instant getDateHeader(String name)
Description copied from class:WebRequest
Returns the value of the specified request header as along
value that represents aDate
object. Use this method with headers that contain dates, such asIf-Modified-Since
.- Specified by:
getDateHeader
in classWebRequest
- 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
-
-
getHeader
public String getHeader(String name)
Description copied from class:WebRequest
Returns the value of the specified request header as aString
- Specified by:
getHeader
in classWebRequest
- Returns:
- string value of request header
-
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
-
-
getLocale
public Locale getLocale()
Description copied from class:Request
Returns locale for this request.
-
getHeaders
public List<String> getHeaders(String name)
Description copied from class:WebRequest
Returns all the values of the specified request header.- Specified by:
getHeaders
in classWebRequest
- Returns:
- unmodifiable list of header values
-
removeHeader
public void removeHeader(String header)
Removes header with specified name.- Parameters:
header
-
-
getPostParameters
public MockRequestParameters getPostParameters()
- Overrides:
getPostParameters
in classRequest
- Returns:
- POST request parameters for this request.
-
getCharset
public Charset getCharset()
Description copied from class:Request
Gets charset of the request- Specified by:
getCharset
in classRequest
- Returns:
- request charset
-
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 ofRequest
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 classRequest
- Returns:
- client url
-
getContainerRequest
public Object getContainerRequest()
Description copied from class:Request
Provides access to the low-level container request object that implementaion of thisRequest
delegate to. This allows users to access features provided by the container requests but not by generalized WicketRequest
objects.- Specified by:
getContainerRequest
in classRequest
- 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 classRequest
- Returns:
- context path
-
setContextPath
public MockWebRequest setContextPath(String contextPath)
- Parameters:
contextPath
-- Returns:
- this
-
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 classRequest
- Returns:
- filter path
-
setFilterPath
public MockWebRequest setFilterPath(String filterPath)
- Parameters:
filterPath
-- Returns:
- this
-
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 classRequest
- Returns:
- prefix to context path for this request.
-
setPrefixToContextPath
public MockWebRequest setPrefixToContextPath(String prefixToContextPath)
- Parameters:
prefixToContextPath
-- Returns:
- this
-
-