From ea5ef13cfbd6bb29f27dd4a0738c57af14871ee2 Mon Sep 17 00:00:00 2001 From: Philipp Czora Date: Mon, 30 Jul 2018 17:07:22 +0200 Subject: [PATCH] Added tests for AuthenticationResource --- .../resources/AuthenticationResourceTest.java | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/scm-webapp/src/test/java/sonia/scm/api/v2/resources/AuthenticationResourceTest.java b/scm-webapp/src/test/java/sonia/scm/api/v2/resources/AuthenticationResourceTest.java index b3f023e78d..67eb935670 100644 --- a/scm-webapp/src/test/java/sonia/scm/api/v2/resources/AuthenticationResourceTest.java +++ b/scm-webapp/src/test/java/sonia/scm/api/v2/resources/AuthenticationResourceTest.java @@ -66,6 +66,8 @@ public class AuthenticationResourceTest { "\t\"password\": \"secret\"\n" + "}"; + private static final String AUTH_FORMENCODED_TRILLIAN = "cookie=true&grant_type=password&username=trillian&password=secret"; + private static final String AUTH_JSON_TRILLIAN_WRONG_PW = "{\n" + "\t\"cookie\": true,\n" + "\t\"grant_type\": \"password\",\n" + @@ -138,6 +140,18 @@ public class AuthenticationResourceTest { assertEquals(HttpServletResponse.SC_NO_CONTENT, response.getStatus()); } + @Test + public void shouldAuthCorrectlyWithFormencodedData() throws URISyntaxException { + + MockHttpRequest request = getMockHttpRequestUrlEncoded(AUTH_FORMENCODED_TRILLIAN); + MockHttpResponse response = new MockHttpResponse(); + + dispatcher.invoke(request, response); + + assertEquals(HttpServletResponse.SC_NO_CONTENT, response.getStatus()); + } + + @Test public void shouldNotAuthUserWithWrongPassword() throws URISyntaxException { @@ -179,6 +193,17 @@ public class AuthenticationResourceTest { shouldReturnBadRequest(AUTH_JSON_WITH_INVALID_GRANT_TYPE); } + @Test + @SubjectAware(username = "trillian", password = "secret") + public void shouldSuccessfullyLogoutUser() throws URISyntaxException { + MockHttpRequest request = MockHttpRequest.delete("/" + AuthenticationResource.PATH + "/access_token"); + MockHttpResponse response = new MockHttpResponse(); + + dispatcher.invoke(request, response); + assertEquals(HttpServletResponse.SC_NO_CONTENT, response.getStatus()); + } + + private void shouldReturnBadRequest(String requestBody) throws URISyntaxException { MockHttpRequest request = getMockHttpRequest(requestBody); MockHttpResponse response = new MockHttpResponse(); @@ -196,4 +221,12 @@ public class AuthenticationResourceTest { return request; } + private MockHttpRequest getMockHttpRequestUrlEncoded(String payload) throws URISyntaxException { + MockHttpRequest request = MockHttpRequest.post("/" + AuthenticationResource.PATH + "/access_token"); + + request.content(payload.getBytes()); + request.contentType(MediaType.APPLICATION_FORM_URLENCODED_TYPE); + return request; + } + }