17
17
package org .springframework .web .filter ;
18
18
19
19
import java .io .InputStream ;
20
- import java .nio .charset .StandardCharsets ;
21
20
22
21
import jakarta .servlet .FilterChain ;
23
22
import jakarta .servlet .http .HttpServletResponse ;
24
23
import org .junit .jupiter .api .Test ;
25
24
26
- import org .springframework .http .MediaType ;
27
25
import org .springframework .util .FileCopyUtils ;
28
26
import org .springframework .web .testfixture .servlet .MockHttpServletRequest ;
29
27
import org .springframework .web .testfixture .servlet .MockHttpServletResponse ;
30
28
29
+ import static java .nio .charset .StandardCharsets .UTF_8 ;
31
30
import static org .assertj .core .api .Assertions .assertThat ;
31
+ import static org .springframework .http .MediaType .TEXT_PLAIN_VALUE ;
32
32
33
33
/**
34
34
* Tests for {@link ShallowEtagHeaderFilter}.
35
+ *
35
36
* @author Arjen Poutsma
36
37
* @author Brian Clozel
37
38
* @author Juergen Hoeller
@@ -62,59 +63,59 @@ void isEligibleForEtag() {
62
63
63
64
@ Test
64
65
void filterNoMatch () throws Exception {
65
- final MockHttpServletRequest request = new MockHttpServletRequest ("GET" , "/hotels" );
66
+ MockHttpServletRequest request = new MockHttpServletRequest ("GET" , "/hotels" );
66
67
MockHttpServletResponse response = new MockHttpServletResponse ();
67
68
68
- final byte [] responseBody = "Hello World" .getBytes (StandardCharsets . UTF_8 );
69
+ byte [] responseBody = "Hello World" .getBytes (UTF_8 );
69
70
FilterChain filterChain = (filterRequest , filterResponse ) -> {
70
71
assertThat (filterRequest ).as ("Invalid request passed" ).isEqualTo (request );
71
72
((HttpServletResponse ) filterResponse ).setStatus (HttpServletResponse .SC_OK );
72
- filterResponse .setContentType (MediaType . TEXT_PLAIN_VALUE );
73
+ filterResponse .setContentType (TEXT_PLAIN_VALUE );
73
74
FileCopyUtils .copy (responseBody , filterResponse .getOutputStream ());
74
75
};
75
76
filter .doFilter (request , response , filterChain );
76
77
77
78
assertThat (response .getStatus ()).as ("Invalid status" ).isEqualTo (200 );
78
79
assertThat (response .getHeader ("ETag" )).as ("Invalid ETag" ).isEqualTo ("\" 0b10a8db164e0754105b7a99be72e3fe5\" " );
79
80
assertThat (response .getContentLength ()).as ("Invalid Content-Length header" ).isGreaterThan (0 );
80
- assertThat (response .getContentType ()).as ("Invalid Content-Type header" ).isEqualTo (MediaType . TEXT_PLAIN_VALUE );
81
+ assertThat (response .getContentType ()).as ("Invalid Content-Type header" ).isEqualTo (TEXT_PLAIN_VALUE );
81
82
assertThat (response .getContentAsByteArray ()).as ("Invalid content" ).isEqualTo (responseBody );
82
83
}
83
84
84
85
@ Test
85
86
void filterNoMatchWeakETag () throws Exception {
86
87
this .filter .setWriteWeakETag (true );
87
- final MockHttpServletRequest request = new MockHttpServletRequest ("GET" , "/hotels" );
88
+ MockHttpServletRequest request = new MockHttpServletRequest ("GET" , "/hotels" );
88
89
MockHttpServletResponse response = new MockHttpServletResponse ();
89
90
90
- final byte [] responseBody = "Hello World" .getBytes (StandardCharsets . UTF_8 );
91
+ byte [] responseBody = "Hello World" .getBytes (UTF_8 );
91
92
FilterChain filterChain = (filterRequest , filterResponse ) -> {
92
93
assertThat (filterRequest ).as ("Invalid request passed" ).isEqualTo (request );
93
94
((HttpServletResponse ) filterResponse ).setStatus (HttpServletResponse .SC_OK );
94
- filterResponse .setContentType (MediaType . TEXT_PLAIN_VALUE );
95
+ filterResponse .setContentType (TEXT_PLAIN_VALUE );
95
96
FileCopyUtils .copy (responseBody , filterResponse .getOutputStream ());
96
97
};
97
98
filter .doFilter (request , response , filterChain );
98
99
99
100
assertThat (response .getStatus ()).as ("Invalid status" ).isEqualTo (200 );
100
101
assertThat (response .getHeader ("ETag" )).as ("Invalid ETag" ).isEqualTo ("W/\" 0b10a8db164e0754105b7a99be72e3fe5\" " );
101
102
assertThat (response .getContentLength ()).as ("Invalid Content-Length header" ).isGreaterThan (0 );
102
- assertThat (response .getContentType ()).as ("Invalid Content-Type header" ).isEqualTo (MediaType . TEXT_PLAIN_VALUE );
103
+ assertThat (response .getContentType ()).as ("Invalid Content-Type header" ).isEqualTo (TEXT_PLAIN_VALUE );
103
104
assertThat (response .getContentAsByteArray ()).as ("Invalid content" ).isEqualTo (responseBody );
104
105
}
105
106
106
107
@ Test
107
108
void filterMatch () throws Exception {
108
- final MockHttpServletRequest request = new MockHttpServletRequest ("GET" , "/hotels" );
109
+ MockHttpServletRequest request = new MockHttpServletRequest ("GET" , "/hotels" );
109
110
String etag = "\" 0b10a8db164e0754105b7a99be72e3fe5\" " ;
110
111
request .addHeader ("If-None-Match" , etag );
111
112
MockHttpServletResponse response = new MockHttpServletResponse ();
112
113
113
114
FilterChain filterChain = (filterRequest , filterResponse ) -> {
114
115
assertThat (filterRequest ).as ("Invalid request passed" ).isEqualTo (request );
115
- byte [] responseBody = "Hello World" .getBytes (StandardCharsets . UTF_8 );
116
+ byte [] responseBody = "Hello World" .getBytes (UTF_8 );
116
117
filterResponse .setContentLength (responseBody .length );
117
- filterResponse .setContentType (MediaType . TEXT_PLAIN_VALUE );
118
+ filterResponse .setContentType (TEXT_PLAIN_VALUE );
118
119
FileCopyUtils .copy (responseBody , filterResponse .getOutputStream ());
119
120
};
120
121
filter .doFilter (request , response , filterChain );
@@ -123,20 +124,19 @@ void filterMatch() throws Exception {
123
124
assertThat (response .getHeader ("ETag" )).as ("Invalid ETag" ).isEqualTo ("\" 0b10a8db164e0754105b7a99be72e3fe5\" " );
124
125
assertThat (response .containsHeader ("Content-Length" )).as ("Response has Content-Length header" ).isFalse ();
125
126
assertThat (response .containsHeader ("Content-Type" )).as ("Response has Content-Type header" ).isFalse ();
126
- byte [] expecteds = new byte [0 ];
127
- assertThat (response .getContentAsByteArray ()).as ("Invalid content" ).isEqualTo (expecteds );
127
+ assertThat (response .getContentAsByteArray ()).as ("Invalid content" ).isEmpty ();
128
128
}
129
129
130
130
@ Test
131
131
void filterMatchWeakEtag () throws Exception {
132
- final MockHttpServletRequest request = new MockHttpServletRequest ("GET" , "/hotels" );
132
+ MockHttpServletRequest request = new MockHttpServletRequest ("GET" , "/hotels" );
133
133
String etag = "\" 0b10a8db164e0754105b7a99be72e3fe5\" " ;
134
134
request .addHeader ("If-None-Match" , "W/" + etag );
135
135
MockHttpServletResponse response = new MockHttpServletResponse ();
136
136
137
137
FilterChain filterChain = (filterRequest , filterResponse ) -> {
138
138
assertThat (filterRequest ).as ("Invalid request passed" ).isEqualTo (request );
139
- byte [] responseBody = "Hello World" .getBytes (StandardCharsets . UTF_8 );
139
+ byte [] responseBody = "Hello World" .getBytes (UTF_8 );
140
140
FileCopyUtils .copy (responseBody , filterResponse .getOutputStream ());
141
141
filterResponse .setContentLength (responseBody .length );
142
142
};
@@ -145,13 +145,12 @@ void filterMatchWeakEtag() throws Exception {
145
145
assertThat (response .getStatus ()).as ("Invalid status" ).isEqualTo (304 );
146
146
assertThat (response .getHeader ("ETag" )).as ("Invalid ETag" ).isEqualTo ("\" 0b10a8db164e0754105b7a99be72e3fe5\" " );
147
147
assertThat (response .containsHeader ("Content-Length" )).as ("Response has Content-Length header" ).isFalse ();
148
- byte [] expecteds = new byte [0 ];
149
- assertThat (response .getContentAsByteArray ()).as ("Invalid content" ).isEqualTo (expecteds );
148
+ assertThat (response .getContentAsByteArray ()).as ("Invalid content" ).isEmpty ();
150
149
}
151
150
152
151
@ Test
153
152
void filterWriter () throws Exception {
154
- final MockHttpServletRequest request = new MockHttpServletRequest ("GET" , "/hotels" );
153
+ MockHttpServletRequest request = new MockHttpServletRequest ("GET" , "/hotels" );
155
154
String etag = "\" 0b10a8db164e0754105b7a99be72e3fe5\" " ;
156
155
request .addHeader ("If-None-Match" , etag );
157
156
MockHttpServletResponse response = new MockHttpServletResponse ();
@@ -167,16 +166,15 @@ void filterWriter() throws Exception {
167
166
assertThat (response .getStatus ()).as ("Invalid status" ).isEqualTo (304 );
168
167
assertThat (response .getHeader ("ETag" )).as ("Invalid ETag" ).isEqualTo ("\" 0b10a8db164e0754105b7a99be72e3fe5\" " );
169
168
assertThat (response .containsHeader ("Content-Length" )).as ("Response has Content-Length header" ).isFalse ();
170
- byte [] expecteds = new byte [0 ];
171
- assertThat (response .getContentAsByteArray ()).as ("Invalid content" ).isEqualTo (expecteds );
169
+ assertThat (response .getContentAsByteArray ()).as ("Invalid content" ).isEmpty ();
172
170
}
173
171
174
172
@ Test // SPR-12960
175
173
public void filterWriterWithDisabledCaching () throws Exception {
176
- final MockHttpServletRequest request = new MockHttpServletRequest ("GET" , "/hotels" );
174
+ MockHttpServletRequest request = new MockHttpServletRequest ("GET" , "/hotels" );
177
175
MockHttpServletResponse response = new MockHttpServletResponse ();
178
176
179
- final byte [] responseBody = "Hello World" .getBytes (StandardCharsets . UTF_8 );
177
+ byte [] responseBody = "Hello World" .getBytes (UTF_8 );
180
178
FilterChain filterChain = (filterRequest , filterResponse ) -> {
181
179
assertThat (filterRequest ).as ("Invalid request passed" ).isEqualTo (request );
182
180
((HttpServletResponse ) filterResponse ).setStatus (HttpServletResponse .SC_OK );
@@ -193,10 +191,10 @@ public void filterWriterWithDisabledCaching() throws Exception {
193
191
194
192
@ Test
195
193
void filterSendError () throws Exception {
196
- final MockHttpServletRequest request = new MockHttpServletRequest ("GET" , "/hotels" );
194
+ MockHttpServletRequest request = new MockHttpServletRequest ("GET" , "/hotels" );
197
195
MockHttpServletResponse response = new MockHttpServletResponse ();
198
196
199
- final byte [] responseBody = "Hello World" .getBytes (StandardCharsets . UTF_8 );
197
+ byte [] responseBody = "Hello World" .getBytes (UTF_8 );
200
198
FilterChain filterChain = (filterRequest , filterResponse ) -> {
201
199
assertThat (filterRequest ).as ("Invalid request passed" ).isEqualTo (request );
202
200
response .setContentLength (100 );
@@ -213,10 +211,10 @@ void filterSendError() throws Exception {
213
211
214
212
@ Test
215
213
void filterSendErrorMessage () throws Exception {
216
- final MockHttpServletRequest request = new MockHttpServletRequest ("GET" , "/hotels" );
214
+ MockHttpServletRequest request = new MockHttpServletRequest ("GET" , "/hotels" );
217
215
MockHttpServletResponse response = new MockHttpServletResponse ();
218
216
219
- final byte [] responseBody = "Hello World" .getBytes (StandardCharsets . UTF_8 );
217
+ byte [] responseBody = "Hello World" .getBytes (UTF_8 );
220
218
FilterChain filterChain = (filterRequest , filterResponse ) -> {
221
219
assertThat (filterRequest ).as ("Invalid request passed" ).isEqualTo (request );
222
220
response .setContentLength (100 );
@@ -234,10 +232,10 @@ void filterSendErrorMessage() throws Exception {
234
232
235
233
@ Test
236
234
void filterSendRedirect () throws Exception {
237
- final MockHttpServletRequest request = new MockHttpServletRequest ("GET" , "/hotels" );
235
+ MockHttpServletRequest request = new MockHttpServletRequest ("GET" , "/hotels" );
238
236
MockHttpServletResponse response = new MockHttpServletResponse ();
239
237
240
- final byte [] responseBody = "Hello World" .getBytes (StandardCharsets . UTF_8 );
238
+ byte [] responseBody = "Hello World" .getBytes (UTF_8 );
241
239
FilterChain filterChain = (filterRequest , filterResponse ) -> {
242
240
assertThat (filterRequest ).as ("Invalid request passed" ).isEqualTo (request );
243
241
response .setContentLength (100 );
@@ -255,10 +253,10 @@ void filterSendRedirect() throws Exception {
255
253
256
254
@ Test // SPR-13717
257
255
public void filterFlushResponse () throws Exception {
258
- final MockHttpServletRequest request = new MockHttpServletRequest ("GET" , "/hotels" );
256
+ MockHttpServletRequest request = new MockHttpServletRequest ("GET" , "/hotels" );
259
257
MockHttpServletResponse response = new MockHttpServletResponse ();
260
258
261
- final byte [] responseBody = "Hello World" .getBytes (StandardCharsets . UTF_8 );
259
+ byte [] responseBody = "Hello World" .getBytes (UTF_8 );
262
260
FilterChain filterChain = (filterRequest , filterResponse ) -> {
263
261
assertThat (filterRequest ).as ("Invalid request passed" ).isEqualTo (request );
264
262
((HttpServletResponse ) filterResponse ).setStatus (HttpServletResponse .SC_OK );
0 commit comments