This is an automated email from the ASF dual-hosted git repository. thiagohp pushed a commit to branch rest in repository https://gitbox.apache.org/repos/asf/tapestry-5.git
commit 9b8e09893d5a27843064a1239272589f229ed3cb Author: Thiago H. de Paula Figueiredo <[email protected]> AuthorDate: Wed Dec 1 22:23:10 2021 -0300 TAP5-2696: adding some methods to HttpStatus --- .../org/apache/tapestry5/services/HttpStatus.java | 40 ++++++++++++++++++++++ .../apache/tapestry5/services/HttpStatusTest.java | 28 +++++++++++++++ 2 files changed, 68 insertions(+) diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/services/HttpStatus.java b/tapestry-core/src/main/java/org/apache/tapestry5/services/HttpStatus.java index 907f1c3..1d8210b 100644 --- a/tapestry-core/src/main/java/org/apache/tapestry5/services/HttpStatus.java +++ b/tapestry-core/src/main/java/org/apache/tapestry5/services/HttpStatus.java @@ -80,6 +80,38 @@ public final class HttpStatus } /** + * Creates an instance with status code <code>404 Not Found</code>. + */ + public static HttpStatus notFound() + { + return new HttpStatus(HttpServletResponse.SC_NOT_FOUND); + } + + /** + * Creates an instance with status code <code>403 Forbidden</code>. + */ + public static HttpStatus forbidden() + { + return new HttpStatus(HttpServletResponse.SC_FORBIDDEN); + } + + /** + * Creates an instance with status code <code>400 Bad Request</code>. + */ + public static HttpStatus badRequest() + { + return new HttpStatus(HttpServletResponse.SC_BAD_REQUEST); + } + + /** + * Creates an instance with status code <code>401 Unauthorized</code>. + */ + public static HttpStatus unauthorized() + { + return new HttpStatus(HttpServletResponse.SC_UNAUTHORIZED); + } + + /** * Creates an instance with status code <code>303 See Other</code>. * @param location the value of the <code>Location</code> header. */ @@ -184,6 +216,14 @@ public final class HttpStatus } /** + * Sets the <code>Content-Location</code> HTTP header. + */ + public HttpStatus withContentLocation(Link link) + { + return withHttpHeader(CONTENT_LOCATION_HTTP_HEADER, link.toRedirectURI()); + } + + /** * Sets an HTTP header. If an existing value for this header already exists, * it gets overwritten. If you need to set multiple headers or add them without * overwriting existing ones, you need to implement {@link StreamResponse} instead. diff --git a/tapestry-core/src/test/java/org/apache/tapestry5/services/HttpStatusTest.java b/tapestry-core/src/test/java/org/apache/tapestry5/services/HttpStatusTest.java index a09ea82..f759eae 100644 --- a/tapestry-core/src/test/java/org/apache/tapestry5/services/HttpStatusTest.java +++ b/tapestry-core/src/test/java/org/apache/tapestry5/services/HttpStatusTest.java @@ -64,8 +64,36 @@ public class HttpStatusTest HttpStatus status = HttpStatus.accepted(); assertEquals(status.getStatusCode(), HttpServletResponse.SC_ACCEPTED); } + + @Test + public void notFound() + { + HttpStatus status = HttpStatus.notFound(); + assertEquals(status.getStatusCode(), HttpServletResponse.SC_NOT_FOUND); + } + + @Test + public void forbidden() + { + HttpStatus status = HttpStatus.forbidden(); + assertEquals(status.getStatusCode(), HttpServletResponse.SC_FORBIDDEN); + } @Test + public void unauthorized() + { + HttpStatus status = HttpStatus.unauthorized(); + assertEquals(status.getStatusCode(), HttpServletResponse.SC_UNAUTHORIZED); + } + + @Test + public void badRequest() + { + HttpStatus status = HttpStatus.badRequest(); + assertEquals(status.getStatusCode(), HttpServletResponse.SC_BAD_REQUEST); + } + + @Test public void seeOtherWithString() { HttpStatus status = HttpStatus.seeOther(TEST_URL);
