Treat null path as non-matching pattern in AntPathMatcher
Prior to this commit, a null path supplied to the isPattern(), match(), and matchStart() methods in AntPathMatcher resulted in a NullPointerException. This commit addresses this by treating a `null` path as a non-matching pattern. Closes gh-23297
This commit is contained in:
committed by
Sam Brannen
parent
639a254e0d
commit
84200f3141
@@ -42,6 +42,18 @@ public class MockMvcResultMatchersTests {
|
||||
redirectedUrl("/resource/1").match(getRedirectedUrlStubMvcResult("/resource/1"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void redirectNonMatching() {
|
||||
assertThatExceptionOfType(AssertionError.class).isThrownBy(() ->
|
||||
redirectedUrl("/resource/2").match(getRedirectedUrlStubMvcResult("/resource/1")));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void redirectNonMatchingBecauseNotRedirect() {
|
||||
assertThatExceptionOfType(AssertionError.class).isThrownBy(() ->
|
||||
redirectedUrl("/resource/1").match(getForwardedUrlStubMvcResult("/resource/1")));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void redirectWithUrlTemplate() throws Exception {
|
||||
redirectedUrlTemplate("/orders/{orderId}/items/{itemId}", 1, 2).match(getRedirectedUrlStubMvcResult("/orders/1/items/2"));
|
||||
@@ -58,11 +70,29 @@ public class MockMvcResultMatchersTests {
|
||||
redirectedUrlPattern("/resource/").match(getRedirectedUrlStubMvcResult("/resource/1")));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void redirectWithNonMatchingPatternBecauseNotRedirect() {
|
||||
assertThatExceptionOfType(AssertionError.class).isThrownBy(() ->
|
||||
redirectedUrlPattern("/resource/*").match(getForwardedUrlStubMvcResult("/resource/1")));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void forward() throws Exception {
|
||||
forwardedUrl("/api/resource/1").match(getForwardedUrlStubMvcResult("/api/resource/1"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void forwardNonMatching() {
|
||||
assertThatExceptionOfType(AssertionError.class).isThrownBy(() ->
|
||||
forwardedUrlPattern("api/resource/2").match(getForwardedUrlStubMvcResult("api/resource/1")));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void forwardNonMatchingBecauseNotForward() {
|
||||
assertThatExceptionOfType(AssertionError.class).isThrownBy(() ->
|
||||
forwardedUrlPattern("api/resource/1").match(getRedirectedUrlStubMvcResult("api/resource/1")));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void forwardWithQueryString() throws Exception {
|
||||
forwardedUrl("/api/resource/1?arg=value").match(getForwardedUrlStubMvcResult("/api/resource/1?arg=value"));
|
||||
@@ -84,6 +114,12 @@ public class MockMvcResultMatchersTests {
|
||||
forwardedUrlPattern("/resource/").match(getForwardedUrlStubMvcResult("/resource/1")));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void forwardWithNonMatchingPatternBecauseNotForward() {
|
||||
assertThatExceptionOfType(AssertionError.class).isThrownBy(() ->
|
||||
forwardedUrlPattern("/resource/*").match(getRedirectedUrlStubMvcResult("/resource/1")));
|
||||
}
|
||||
|
||||
private StubMvcResult getRedirectedUrlStubMvcResult(String redirectUrl) throws Exception {
|
||||
MockHttpServletResponse response = new MockHttpServletResponse();
|
||||
response.sendRedirect(redirectUrl);
|
||||
|
||||
Reference in New Issue
Block a user