You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by th...@apache.org on 2021/12/02 01:23:22 UTC

[tapestry-5] 02/02: TAP5-2696: adding some methods to HttpStatus

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 <th...@arsmachina.com.br>
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);