Add tests for PathPatternRequestMatcher path caching

Verify parsed request path is cleared when matcher parses it, and preserved when already present.

Signed-off-by: coehgns <modooboiroo@gmail.com>
This commit is contained in:
coehgns 2026-02-12 11:13:02 +09:00
parent fb2f0d5c38
commit 0d3a5d210a

View File

@ -154,6 +154,25 @@ public class PathPatternRequestMatcherTests {
assertThat(matcher.matches(mock)).isFalse();
}
@Test
void matcherWhenRequestPathNotParsedThenDoesNotLeaveParsedRequestPath() {
RequestMatcher matcher = pathPattern("/uri");
MockHttpServletRequest request = new MockHttpServletRequest("GET", "/uri");
assertThat(ServletRequestPathUtils.hasParsedRequestPath(request)).isFalse();
assertThat(matcher.matches(request)).isTrue();
assertThat(ServletRequestPathUtils.hasParsedRequestPath(request)).isFalse();
}
@Test
void matcherWhenRequestPathAlreadyParsedThenLeavesParsedRequestPath() {
RequestMatcher matcher = pathPattern("/uri");
MockHttpServletRequest request = new MockHttpServletRequest("GET", "/uri");
ServletRequestPathUtils.parseAndCache(request);
assertThat(ServletRequestPathUtils.hasParsedRequestPath(request)).isTrue();
assertThat(matcher.matches(request)).isTrue();
assertThat(ServletRequestPathUtils.hasParsedRequestPath(request)).isTrue();
}
MockHttpServletRequest request(String uri) {
MockHttpServletRequest request = new MockHttpServletRequest("GET", uri);
ServletRequestPathUtils.parseAndCache(request);