From e31ece95d79f500c08c5fdd78c60f52a78201f50 Mon Sep 17 00:00:00 2001 From: jinan159 Date: Thu, 21 Jul 2022 22:55:35 +0900 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20:sparkles:=20=ED=9A=8C=EC=9B=90?= =?UTF-8?q?=EA=B0=80=EC=9E=85=20=ED=9B=84=20302=20=EC=83=81=ED=83=9C?= =?UTF-8?q?=EC=BD=94=EB=93=9C=EC=99=80=20=ED=95=A8=EA=BB=98=20index.html?= =?UTF-8?q?=20=EB=A1=9C=20=EB=A6=AC=EB=8B=A4=EC=9D=B4=EB=A0=89=ED=8A=B8=20?= =?UTF-8?q?=EB=90=98=EB=8F=84=EB=A1=9D=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/webserver/RequestHandler.java | 19 ++++++++++++++++++- .../java/webserver/RequestHandlerTest.java | 12 +++++++++++- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/src/main/java/webserver/RequestHandler.java b/src/main/java/webserver/RequestHandler.java index 1edcd62..71079b5 100644 --- a/src/main/java/webserver/RequestHandler.java +++ b/src/main/java/webserver/RequestHandler.java @@ -45,7 +45,7 @@ public void run() { HttpRequestBody body = requestMessage.body(); registerNewUser(body); - responseDynamic(out); + responseRedirect(out, URI.create("/index.html")); } } catch (IOException e) { @@ -81,6 +81,13 @@ private void responseDynamic(OutputStream out) { responseBody(dos, body); } + private void responseRedirect(OutputStream out, URI uri) { + DataOutputStream dos = new DataOutputStream(out); + byte[] body = new byte[]{}; + response302Header(dos, uri); + responseBody(dos, body); + } + private boolean isStaticResourceRequest(URI uri) { return !uri.getPath().equals(USER_CREATE_URI_PATH); } @@ -96,6 +103,16 @@ private void response200Header(DataOutputStream dos, int lengthOfBodyContent) { } } + private void response302Header(DataOutputStream dos, URI uri) { + try { + dos.writeBytes("HTTP/1.1 302 FOUND \r\n"); + dos.writeBytes("Location: " + uri.getPath() + "\r\n"); + dos.writeBytes("\r\n"); + } catch (IOException e) { + log.error(e.getMessage()); + } + } + private void responseBody(DataOutputStream dos, byte[] body) { try { dos.write(body, 0, body.length); diff --git a/src/test/java/webserver/RequestHandlerTest.java b/src/test/java/webserver/RequestHandlerTest.java index da431d1..f1fbdce 100644 --- a/src/test/java/webserver/RequestHandlerTest.java +++ b/src/test/java/webserver/RequestHandlerTest.java @@ -13,11 +13,13 @@ import java.net.ServerSocket; import java.net.URI; import java.net.http.HttpClient; +import java.net.http.HttpHeaders; import java.net.http.HttpRequest; import java.net.http.HttpRequest.BodyPublisher; import java.net.http.HttpRequest.BodyPublishers; import java.net.http.HttpResponse; import java.net.http.HttpResponse.BodyHandlers; +import java.util.Optional; import java.util.Random; import static org.assertj.core.api.Assertions.assertThat; @@ -61,7 +63,15 @@ void createUserTest() throws IOException, InterruptedException { User savedUser = DataBase.findUserById(expectedUser.getUserId()); // then - assertThat(response.statusCode()).isEqualTo(200); + assertThat(response.statusCode()).isEqualTo(302); + + HttpHeaders headers = response.headers(); + assertThat(headers).isNotNull(); + + Optional locationHeader = headers.firstValue("Location"); + assertThat(locationHeader.isPresent()).isTrue(); + assertThat(locationHeader.orElseThrow()).isEqualTo("/index.html"); + assertThat(savedUser).isNotNull(); assertThat(savedUser).isEqualTo(expectedUser); } From b9edd55281daf7bc9972469f4372c452bb73ac55 Mon Sep 17 00:00:00 2001 From: jinan159 Date: Thu, 21 Jul 2022 23:05:24 +0900 Subject: [PATCH 2/2] =?UTF-8?q?test:=20:white=5Fcheck=5Fmark:=20=EB=B6=88?= =?UTF-8?q?=ED=95=84=EC=9A=94=ED=95=9C=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20?= =?UTF-8?q?=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/test/java/webserver/HttpRequestMessageTest.java | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/test/java/webserver/HttpRequestMessageTest.java b/src/test/java/webserver/HttpRequestMessageTest.java index e384009..bed13ad 100644 --- a/src/test/java/webserver/HttpRequestMessageTest.java +++ b/src/test/java/webserver/HttpRequestMessageTest.java @@ -74,11 +74,4 @@ void parseTest() throws IOException { assertThat(body.get("password")).isEqualTo("1234"); } } - - @Test - void test() { - String str = "userId=jay&password=1234"; - System.out.println(str.length()); - System.out.println(str.getBytes().length); - } } \ No newline at end of file