|
|
|
|
@ -1,5 +1,5 @@
@@ -1,5 +1,5 @@
|
|
|
|
|
/* |
|
|
|
|
* Copyright 2002-2020 the original author or authors. |
|
|
|
|
* Copyright 2002-2022 the original author or authors. |
|
|
|
|
* |
|
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
|
|
|
|
* you may not use this file except in compliance with the License. |
|
|
|
|
@ -29,6 +29,7 @@ import jakarta.servlet.ServletException;
@@ -29,6 +29,7 @@ import jakarta.servlet.ServletException;
|
|
|
|
|
import jakarta.servlet.http.HttpServletRequest; |
|
|
|
|
import jakarta.servlet.http.HttpServletRequestWrapper; |
|
|
|
|
import jakarta.servlet.http.HttpServletResponse; |
|
|
|
|
import org.assertj.core.api.InstanceOfAssertFactories; |
|
|
|
|
import org.junit.jupiter.api.BeforeEach; |
|
|
|
|
import org.junit.jupiter.api.Test; |
|
|
|
|
|
|
|
|
|
@ -169,7 +170,7 @@ public class DispatcherServletTests {
@@ -169,7 +170,7 @@ public class DispatcherServletTests {
|
|
|
|
|
request.addUserRole("role1"); |
|
|
|
|
MockHttpServletResponse response = new MockHttpServletResponse(); |
|
|
|
|
complexDispatcherServlet.service(request, response); |
|
|
|
|
assertThat("myform.jsp".equals(response.getForwardedUrl())).as("forwarded to form").isTrue(); |
|
|
|
|
assertThat(response.getForwardedUrl()).as("forwarded URL").isEqualTo("myform.jsp"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
@ -197,7 +198,7 @@ public class DispatcherServletTests {
@@ -197,7 +198,7 @@ public class DispatcherServletTests {
|
|
|
|
|
MockHttpServletRequest request = new MockHttpServletRequest(getServletContext(), "GET", "/unknown.do"); |
|
|
|
|
MockHttpServletResponse response = new MockHttpServletResponse(); |
|
|
|
|
complexDispatcherServlet.service(request, response); |
|
|
|
|
assertThat(response.getForwardedUrl()).as("forwarded to failed").isEqualTo("failed0.jsp"); |
|
|
|
|
assertThat(response.getForwardedUrl()).as("forwarded URL").isEqualTo("failed0.jsp"); |
|
|
|
|
assertThat(request.getAttribute("exception").getClass().equals(ServletException.class)).as("Exception exposed").isTrue(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -262,10 +263,10 @@ public class DispatcherServletTests {
@@ -262,10 +263,10 @@ public class DispatcherServletTests {
|
|
|
|
|
request.setAttribute("fail", Boolean.TRUE); |
|
|
|
|
MockHttpServletResponse response = new MockHttpServletResponse(); |
|
|
|
|
complexDispatcherServlet.service(request, response); |
|
|
|
|
assertThat("failed0.jsp".equals(response.getForwardedUrl())).as("forwarded to failed").isTrue(); |
|
|
|
|
assertThat(response.getForwardedUrl()).as("forwarded URL").isEqualTo("failed0.jsp"); |
|
|
|
|
assertThat(response.getStatus()).isEqualTo(200); |
|
|
|
|
assertThat(request.getAttribute( |
|
|
|
|
SimpleMappingExceptionResolver.DEFAULT_EXCEPTION_ATTRIBUTE) instanceof MaxUploadSizeExceededException).as("correct exception").isTrue(); |
|
|
|
|
assertThat(request.getAttribute(SimpleMappingExceptionResolver.DEFAULT_EXCEPTION_ATTRIBUTE)) |
|
|
|
|
.isInstanceOf(MaxUploadSizeExceededException.class); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
@ -294,7 +295,7 @@ public class DispatcherServletTests {
@@ -294,7 +295,7 @@ public class DispatcherServletTests {
|
|
|
|
|
MockHttpServletResponse response = new MockHttpServletResponse(); |
|
|
|
|
complexDispatcherServlet.service(request, response); |
|
|
|
|
assertThat(response.getStatus()).isEqualTo(200); |
|
|
|
|
assertThat("failed1.jsp".equals(response.getForwardedUrl())).as("forwarded to failed").isTrue(); |
|
|
|
|
assertThat(response.getForwardedUrl()).as("forwarded URL").isEqualTo("failed1.jsp"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
@ -306,7 +307,7 @@ public class DispatcherServletTests {
@@ -306,7 +307,7 @@ public class DispatcherServletTests {
|
|
|
|
|
MockHttpServletResponse response = new MockHttpServletResponse(); |
|
|
|
|
complexDispatcherServlet.service(request, response); |
|
|
|
|
assertThat(response.getStatus()).isEqualTo(200); |
|
|
|
|
assertThat(response.getForwardedUrl()).as("forwarded to failed").isEqualTo("failed2.jsp"); |
|
|
|
|
assertThat(response.getForwardedUrl()).as("forwarded URL").isEqualTo("failed2.jsp"); |
|
|
|
|
assertThat(request.getAttribute("exception") instanceof IllegalAccessException).as("Exception exposed").isTrue(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -319,7 +320,7 @@ public class DispatcherServletTests {
@@ -319,7 +320,7 @@ public class DispatcherServletTests {
|
|
|
|
|
MockHttpServletResponse response = new MockHttpServletResponse(); |
|
|
|
|
complexDispatcherServlet.service(request, response); |
|
|
|
|
assertThat(response.getStatus()).isEqualTo(200); |
|
|
|
|
assertThat(response.getForwardedUrl()).as("forwarded to failed").isEqualTo("failed3.jsp"); |
|
|
|
|
assertThat(response.getForwardedUrl()).as("forwarded URL").isEqualTo("failed3.jsp"); |
|
|
|
|
assertThat(request.getAttribute("exception") instanceof ServletException).as("Exception exposed").isTrue(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -332,7 +333,7 @@ public class DispatcherServletTests {
@@ -332,7 +333,7 @@ public class DispatcherServletTests {
|
|
|
|
|
MockHttpServletResponse response = new MockHttpServletResponse(); |
|
|
|
|
complexDispatcherServlet.service(request, response); |
|
|
|
|
assertThat(response.getStatus()).isEqualTo(500); |
|
|
|
|
assertThat(response.getForwardedUrl()).as("forwarded to failed").isEqualTo("failed1.jsp"); |
|
|
|
|
assertThat(response.getForwardedUrl()).as("forwarded URL").isEqualTo("failed1.jsp"); |
|
|
|
|
assertThat(request.getAttribute("exception") instanceof IllegalAccessException).as("Exception exposed").isTrue(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -345,7 +346,7 @@ public class DispatcherServletTests {
@@ -345,7 +346,7 @@ public class DispatcherServletTests {
|
|
|
|
|
MockHttpServletResponse response = new MockHttpServletResponse(); |
|
|
|
|
complexDispatcherServlet.service(request, response); |
|
|
|
|
assertThat(response.getStatus()).isEqualTo(500); |
|
|
|
|
assertThat(response.getForwardedUrl()).as("forwarded to failed").isEqualTo("failed1.jsp"); |
|
|
|
|
assertThat(response.getForwardedUrl()).as("forwarded URL").isEqualTo("failed1.jsp"); |
|
|
|
|
assertThat(request.getAttribute("exception") instanceof ServletException).as("Exception exposed").isTrue(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -358,7 +359,7 @@ public class DispatcherServletTests {
@@ -358,7 +359,7 @@ public class DispatcherServletTests {
|
|
|
|
|
MockHttpServletResponse response = new MockHttpServletResponse(); |
|
|
|
|
complexDispatcherServlet.service(request, response); |
|
|
|
|
assertThat(response.getStatus()).isEqualTo(200); |
|
|
|
|
assertThat(response.getForwardedUrl()).as("forwarded to failed").isEqualTo("failed0.jsp"); |
|
|
|
|
assertThat(response.getForwardedUrl()).as("forwarded URL").isEqualTo("failed0.jsp"); |
|
|
|
|
assertThat(request.getAttribute("exception").getClass().equals(RuntimeException.class)).as("Exception exposed").isTrue(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -371,7 +372,7 @@ public class DispatcherServletTests {
@@ -371,7 +372,7 @@ public class DispatcherServletTests {
|
|
|
|
|
MockHttpServletResponse response = new MockHttpServletResponse(); |
|
|
|
|
complexDispatcherServlet.service(request, response); |
|
|
|
|
assertThat(response.getStatus()).isEqualTo(200); |
|
|
|
|
assertThat(response.getForwardedUrl()).as("forwarded to failed").isEqualTo("failed0.jsp"); |
|
|
|
|
assertThat(response.getForwardedUrl()).as("forwarded URL").isEqualTo("failed0.jsp"); |
|
|
|
|
assertThat(request.getAttribute("exception").getClass().equals(ServletException.class)).as("Exception exposed").isTrue(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -396,7 +397,7 @@ public class DispatcherServletTests {
@@ -396,7 +397,7 @@ public class DispatcherServletTests {
|
|
|
|
|
MockHttpServletResponse response = new MockHttpServletResponse(); |
|
|
|
|
complexDispatcherServlet.service(request, response); |
|
|
|
|
assertThat(response.getStatus()).isEqualTo(200); |
|
|
|
|
assertThat(response.getForwardedUrl()).as("forwarded to failed").isEqualTo("failed0.jsp"); |
|
|
|
|
assertThat(response.getForwardedUrl()).as("forwarded URL").isEqualTo("failed0.jsp"); |
|
|
|
|
assertThat(request.getAttribute("exception").getClass().equals(ServletException.class)).as("Exception exposed").isTrue(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -518,7 +519,10 @@ public class DispatcherServletTests {
@@ -518,7 +519,10 @@ public class DispatcherServletTests {
|
|
|
|
|
|
|
|
|
|
request = new MockHttpServletRequest(getServletContext(), "GET", "/form.do"); |
|
|
|
|
response = new MockHttpServletResponse(); |
|
|
|
|
request.addParameter("fail", "yes"); |
|
|
|
|
complexDispatcherServlet.service(request, response); |
|
|
|
|
assertThat(response.getForwardedUrl()).as("forwarded URL").isEqualTo("failed1.jsp"); |
|
|
|
|
assertThat(request.getAttribute("exception")).isNull(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
@ -535,12 +539,15 @@ public class DispatcherServletTests {
@@ -535,12 +539,15 @@ public class DispatcherServletTests {
|
|
|
|
|
complexDispatcherServlet.service(request, response); |
|
|
|
|
assertThat(response.getContentAsString()).isEqualTo("body"); |
|
|
|
|
|
|
|
|
|
// SimpleControllerHandlerAdapter not detected
|
|
|
|
|
// MyHandlerAdapter not detected
|
|
|
|
|
request = new MockHttpServletRequest(getServletContext(), "GET", "/form.do"); |
|
|
|
|
response = new MockHttpServletResponse(); |
|
|
|
|
request.addParameter("fail", "yes"); |
|
|
|
|
complexDispatcherServlet.service(request, response); |
|
|
|
|
assertThat(response.getForwardedUrl()).as("forwarded to failed").isEqualTo("failed0.jsp"); |
|
|
|
|
assertThat(request.getAttribute("exception").getClass().equals(ServletException.class)).as("Exception exposed").isTrue(); |
|
|
|
|
assertThat(response.getForwardedUrl()).as("forwarded URL").isEqualTo("failed0.jsp"); |
|
|
|
|
assertThat(request.getAttribute("exception")) |
|
|
|
|
.asInstanceOf(InstanceOfAssertFactories.type(ServletException.class)) |
|
|
|
|
.extracting(Throwable::getMessage).asString().startsWith("No adapter for handler"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
|