32
32
33
33
import static org .assertj .core .api .Assertions .assertThat ;
34
34
import static org .mockito .ArgumentMatchers .anyBoolean ;
35
- import static org .mockito .Mockito . mock ;
35
+ import static org .mockito .ArgumentMatchers . anyString ;
36
36
import static org .mockito .Mockito .never ;
37
+ import static org .mockito .Mockito .spy ;
37
38
import static org .mockito .Mockito .verify ;
38
39
39
40
/**
@@ -100,7 +101,7 @@ public void testCustomSessionAttrName() {
100
101
public void getMatchingRequestWhenMatchingRequestParameterNameSetThenSessionNotAccessed () {
101
102
HttpSessionRequestCache cache = new HttpSessionRequestCache ();
102
103
cache .setMatchingRequestParameterName ("success" );
103
- HttpServletRequest request = mock ( HttpServletRequest . class );
104
+ HttpServletRequest request = spy ( new MockHttpServletRequest () );
104
105
HttpServletRequest matchingRequest = cache .getMatchingRequest (request , new MockHttpServletResponse ());
105
106
assertThat (matchingRequest ).isNull ();
106
107
verify (request , never ()).getSession ();
@@ -115,7 +116,6 @@ public void getMatchingRequestWhenMatchingRequestParameterNameSetAndParameterExi
115
116
cache .saveRequest (request , new MockHttpServletResponse ());
116
117
MockHttpServletRequest requestToMatch = new MockHttpServletRequest ();
117
118
requestToMatch .setQueryString ("success" ); // gh-12665
118
- requestToMatch .setParameter ("success" , "" );
119
119
requestToMatch .setSession (request .getSession ());
120
120
HttpServletRequest matchingRequest = cache .getMatchingRequest (requestToMatch , new MockHttpServletResponse ());
121
121
assertThat (matchingRequest ).isNotNull ();
@@ -131,7 +131,6 @@ public void getMatchingRequestWhenMatchingRequestParameterNameSetAndParameterExi
131
131
cache .saveRequest (request , new MockHttpServletResponse ());
132
132
MockHttpServletRequest requestToMatch = new MockHttpServletRequest ();
133
133
requestToMatch .setQueryString ("param=true&success" );
134
- requestToMatch .setParameter ("success" , "" );
135
134
requestToMatch .setSession (request .getSession ());
136
135
HttpServletRequest matchingRequest = cache .getMatchingRequest (requestToMatch , new MockHttpServletResponse ());
137
136
assertThat (matchingRequest ).isNotNull ();
@@ -146,13 +145,28 @@ public void getMatchingRequestWhenMatchesThenRemoved() {
146
145
assertThat (request .getSession ().getAttribute (HttpSessionRequestCache .SAVED_REQUEST )).isNotNull ();
147
146
MockHttpServletRequest requestToMatch = new MockHttpServletRequest ();
148
147
requestToMatch .setQueryString ("success" );
149
- requestToMatch .setParameter ("success" , "" );
150
148
requestToMatch .setSession (request .getSession ());
151
149
HttpServletRequest matchingRequest = cache .getMatchingRequest (requestToMatch , new MockHttpServletResponse ());
152
150
assertThat (matchingRequest ).isNotNull ();
153
151
assertThat (request .getSession ().getAttribute (HttpSessionRequestCache .SAVED_REQUEST )).isNull ();
154
152
}
155
153
154
+ // gh-13731
155
+ @ Test
156
+ public void getMatchingRequestWhenMatchingRequestParameterNameSetThenDoesNotInvokeGetParameterMethods () {
157
+ HttpSessionRequestCache cache = new HttpSessionRequestCache ();
158
+ cache .setMatchingRequestParameterName ("success" );
159
+ MockHttpServletRequest mockRequest = new MockHttpServletRequest ();
160
+ mockRequest .setQueryString ("success" );
161
+ HttpServletRequest request = spy (mockRequest );
162
+ HttpServletRequest matchingRequest = cache .getMatchingRequest (request , new MockHttpServletResponse ());
163
+ assertThat (matchingRequest ).isNull ();
164
+ verify (request , never ()).getParameter (anyString ());
165
+ verify (request , never ()).getParameterValues (anyString ());
166
+ verify (request , never ()).getParameterNames ();
167
+ verify (request , never ()).getParameterMap ();
168
+ }
169
+
156
170
private static final class CustomSavedRequest implements SavedRequest {
157
171
158
172
private final SavedRequest delegate ;
0 commit comments