public static Response DELETE(String url) { return DELETE(newRequest(), url); }
public static Response GET(Object url) { return GET(newRequest(), url); }
/** * Sends a POST request to the application under tests as a multipart form. Designed for file upload testing. * * @param url * relative url such as <em>"/products/1234"</em> * @param parameters * map of parameters to be posted * @param files * map containing files to be uploaded * @return the response */ public static Response POST(Object url, Map<String, String> parameters, Map<String, File> files) { return POST(newRequest(), url, parameters, files); }
/** * Exact equality assertion on response body * * @param content * expected body content * @param response * server response */ public static void assertContentEquals(String content, Response response) { assertEquals(content, getContent(response)); }
public static Response PUT(Object url, String contenttype, String body) { return PUT(newRequest(), url, contenttype, body); }
/** * Verify the response content-type * * @param contentType * expected content-type without any charset extension, such as "text/html" * @param response * server response */ public static void assertContentType(String contentType, Response response) { String responseContentType = response.contentType; assertNotNull("Response contentType missing", responseContentType); assertTrue("Response contentType unmatched : '" + contentType + "' !~ '" + responseContentType + "'", responseContentType.startsWith(contentType)); }
/** * Asserts response body matched a pattern or contains some text. * * @param pattern * a regular expression pattern or a regular text, ( which must be escaped using Pattern.quote) * @param response * server response */ public static void assertContentMatch(String pattern, Response response) { Pattern ptn = Pattern.compile(pattern); boolean ok = ptn.matcher(getContent(response)).find(); assertTrue("Response content does not match '" + pattern + "'", ok); }
/** * Exact equality assertion on a response header value * * @param headerName * header to verify. case-insensitive * @param value * expected header value * @param response * server response */ public static void assertHeaderEquals(String headerName, String value, Response response) { assertNotNull("Response header " + headerName + " missing", response.headers.get(headerName)); assertEquals("Response header " + headerName + " mismatch", value, response.headers.get(headerName).value()); }
public static Response makeRequest(Request request) { Response response = newResponse(); makeRequest(request, response); if (response.status == 302) { // redirect // if Location-header is pressent, fix it to "look like" a // functional-test-url Http.Header locationHeader = response.headers.get("Location"); if (locationHeader != null) { String locationUrl = locationHeader.value(); if (locationUrl.startsWith("http://localhost/")) { locationHeader.values.clear(); locationHeader.values.add(locationUrl.substring(16));// skip // 'http://localhost' } } } return response; }
public static Response POST(Object url) { return POST(url, APPLICATION_X_WWW_FORM_URLENCODED, ""); }
/** * Sends a GET request to the application under tests. * * @param request * The given request * @param url * relative url such as <em>"/products/1234"</em> * @return the response */ public static Response GET(Request request, Object url) { String path = ""; String queryString = ""; String turl = url.toString(); if (turl.contains("?")) { path = turl.substring(0, turl.indexOf("?")); queryString = turl.substring(turl.indexOf("?") + 1); } else { path = turl; } request.method = "GET"; request.url = turl; request.path = path; request.querystring = queryString; request.body = new ByteArrayInputStream(new byte[0]); if (savedCookies != null) request.cookies = savedCookies; return makeRequest(request); }
/** * Asserts a <em>2OO Success</em> response * * @param response * server response */ public static void assertIsOk(Response response) { assertStatus(200, response); }
/** * Asserts response status code * * @param status * expected HTTP response code * @param response * server response */ public static void assertStatus(int status, Response response) { assertEquals("Response status ", (Object) status, response.status); }
/** * sends a GET request to the application under tests. * * @param url * relative url such as <em>"/products/1234"</em> * @param followRedirect * indicates if request have to follow redirection (status 302) * @return the response */ public static Response GET(Object url, boolean followRedirect) { Response response = GET(url); if (Http.StatusCode.FOUND == response.status && followRedirect) { Http.Header redirectedTo = response.headers.get("Location"); String location = redirectedTo.value(); if (location.contains("http")) { java.net.URL redirectedUrl = null; try { redirectedUrl = new java.net.URL(redirectedTo.value()); } catch (MalformedURLException e) { throw new RuntimeException(e); } response = GET(redirectedUrl.getPath()); } else { response = GET(location); } } return response; }
public static Response POST(Request request, Object url) { return POST(request, url, APPLICATION_X_WWW_FORM_URLENCODED, ""); }
/** * Sends a DELETE request to the application under tests. * * @param request * The given request * @param url * relative url eg. <em>"/products/1234"</em> * @return the response */ public static Response DELETE(Request request, Object url) { String path = ""; String queryString = ""; String turl = url.toString(); if (turl.contains("?")) { path = turl.substring(0, turl.indexOf("?")); queryString = turl.substring(turl.indexOf("?") + 1); } else { path = turl; } request.method = "DELETE"; request.url = turl; request.path = path; request.querystring = queryString; if (savedCookies != null) request.cookies = savedCookies; request.body = new ByteArrayInputStream(new byte[0]); return makeRequest(request); }
/** * Asserts a <em>404 (not found)</em> response * * @param response * server response */ public static void assertIsNotFound(Response response) { assertStatus(404, response); }
/** * Verify response charset encoding, as returned by the server in the Content-Type header. Be aware that if no * charset is returned, assertion will fail. * * @param charset * expected charset encoding such as "utf-8" or "iso8859-1". * @param response * server response */ public static void assertCharset(String charset, Response response) { int pos = response.contentType.indexOf("charset=") + 8; String responseCharset = (pos > 7) ? response.contentType.substring(pos).toLowerCase() : ""; assertEquals("Response charset", charset.toLowerCase(), responseCharset); }
public static Response POST(Object url, String contenttype, String body) { return POST(newRequest(), url, contenttype, body); }
public static Response POST(Request request, Object url, String contenttype, String body) { return POST(request, url, contenttype, new ByteArrayInputStream(body.getBytes())); }