@@ -83,13 +83,15 @@ public void notAnError() throws Exception {
83
83
@ Test
84
84
public void notAnErrorButNotOK () throws Exception {
85
85
this .chain = new MockFilterChain () {
86
+
86
87
@ Override
87
88
public void doFilter (ServletRequest request , ServletResponse response )
88
89
throws IOException , ServletException {
89
90
((HttpServletResponse ) response ).setStatus (201 );
90
91
super .doFilter (request , response );
91
92
response .flushBuffer ();
92
93
}
94
+
93
95
};
94
96
this .filter .doFilter (this .request , this .response , this .chain );
95
97
assertThat (((HttpServletResponse ) this .chain .getResponse ()).getStatus ())
@@ -103,12 +105,14 @@ public void doFilter(ServletRequest request, ServletResponse response)
103
105
public void unauthorizedWithErrorPath () throws Exception {
104
106
this .filter .addErrorPages (new ErrorPage ("/error" ));
105
107
this .chain = new MockFilterChain () {
108
+
106
109
@ Override
107
110
public void doFilter (ServletRequest request , ServletResponse response )
108
111
throws IOException , ServletException {
109
112
((HttpServletResponse ) response ).sendError (401 , "UNAUTHORIZED" );
110
113
super .doFilter (request , response );
111
114
}
115
+
112
116
};
113
117
this .filter .doFilter (this .request , this .response , this .chain );
114
118
assertThat (this .chain .getRequest ()).isEqualTo (this .request );
@@ -127,12 +131,14 @@ public void responseCommitted() throws Exception {
127
131
this .filter .addErrorPages (new ErrorPage ("/error" ));
128
132
this .response .setCommitted (true );
129
133
this .chain = new MockFilterChain () {
134
+
130
135
@ Override
131
136
public void doFilter (ServletRequest request , ServletResponse response )
132
137
throws IOException , ServletException {
133
138
((HttpServletResponse ) response ).sendError (400 , "BAD" );
134
139
super .doFilter (request , response );
135
140
}
141
+
136
142
};
137
143
this .filter .doFilter (this .request , this .response , this .chain );
138
144
assertThat (this .chain .getRequest ()).isEqualTo (this .request );
@@ -147,12 +153,14 @@ public void doFilter(ServletRequest request, ServletResponse response)
147
153
@ Test
148
154
public void responseUncommittedWithoutErrorPage () throws Exception {
149
155
this .chain = new MockFilterChain () {
156
+
150
157
@ Override
151
158
public void doFilter (ServletRequest request , ServletResponse response )
152
159
throws IOException , ServletException {
153
160
((HttpServletResponse ) response ).sendError (400 , "BAD" );
154
161
super .doFilter (request , response );
155
162
}
163
+
156
164
};
157
165
this .filter .doFilter (this .request , this .response , this .chain );
158
166
assertThat (this .chain .getRequest ()).isEqualTo (this .request );
@@ -167,13 +175,15 @@ public void doFilter(ServletRequest request, ServletResponse response)
167
175
@ Test
168
176
public void oncePerRequest () throws Exception {
169
177
this .chain = new MockFilterChain () {
178
+
170
179
@ Override
171
180
public void doFilter (ServletRequest request , ServletResponse response )
172
181
throws IOException , ServletException {
173
182
((HttpServletResponse ) response ).sendError (400 , "BAD" );
174
183
assertThat (request .getAttribute ("FILTER.FILTERED" )).isNotNull ();
175
184
super .doFilter (request , response );
176
185
}
186
+
177
187
};
178
188
this .filter .init (new MockFilterConfig ("FILTER" ));
179
189
this .filter .doFilter (this .request , this .response , this .chain );
@@ -183,12 +193,14 @@ public void doFilter(ServletRequest request, ServletResponse response)
183
193
public void globalError () throws Exception {
184
194
this .filter .addErrorPages (new ErrorPage ("/error" ));
185
195
this .chain = new MockFilterChain () {
196
+
186
197
@ Override
187
198
public void doFilter (ServletRequest request , ServletResponse response )
188
199
throws IOException , ServletException {
189
200
((HttpServletResponse ) response ).sendError (400 , "BAD" );
190
201
super .doFilter (request , response );
191
202
}
203
+
192
204
};
193
205
this .filter .doFilter (this .request , this .response , this .chain );
194
206
assertThat (((HttpServletResponseWrapper ) this .chain .getResponse ()).getStatus ())
@@ -207,12 +219,14 @@ public void doFilter(ServletRequest request, ServletResponse response)
207
219
public void statusError () throws Exception {
208
220
this .filter .addErrorPages (new ErrorPage (HttpStatus .BAD_REQUEST , "/400" ));
209
221
this .chain = new MockFilterChain () {
222
+
210
223
@ Override
211
224
public void doFilter (ServletRequest request , ServletResponse response )
212
225
throws IOException , ServletException {
213
226
((HttpServletResponse ) response ).sendError (400 , "BAD" );
214
227
super .doFilter (request , response );
215
228
}
229
+
216
230
};
217
231
this .filter .doFilter (this .request , this .response , this .chain );
218
232
assertThat (((HttpServletResponseWrapper ) this .chain .getResponse ()).getStatus ())
@@ -231,13 +245,15 @@ public void doFilter(ServletRequest request, ServletResponse response)
231
245
public void statusErrorWithCommittedResponse () throws Exception {
232
246
this .filter .addErrorPages (new ErrorPage (HttpStatus .BAD_REQUEST , "/400" ));
233
247
this .chain = new MockFilterChain () {
248
+
234
249
@ Override
235
250
public void doFilter (ServletRequest request , ServletResponse response )
236
251
throws IOException , ServletException {
237
252
((HttpServletResponse ) response ).sendError (400 , "BAD" );
238
253
response .flushBuffer ();
239
254
super .doFilter (request , response );
240
255
}
256
+
241
257
};
242
258
this .filter .doFilter (this .request , this .response , this .chain );
243
259
assertThat (((HttpServletResponseWrapper ) this .chain .getResponse ()).getStatus ())
@@ -250,12 +266,14 @@ public void doFilter(ServletRequest request, ServletResponse response)
250
266
public void exceptionError () throws Exception {
251
267
this .filter .addErrorPages (new ErrorPage (RuntimeException .class , "/500" ));
252
268
this .chain = new MockFilterChain () {
269
+
253
270
@ Override
254
271
public void doFilter (ServletRequest request , ServletResponse response )
255
272
throws IOException , ServletException {
256
273
super .doFilter (request , response );
257
274
throw new RuntimeException ("BAD" );
258
275
}
276
+
259
277
};
260
278
this .filter .doFilter (this .request , this .response , this .chain );
261
279
assertThat (((HttpServletResponseWrapper ) this .chain .getResponse ()).getStatus ())
@@ -282,13 +300,15 @@ public void doFilter(ServletRequest request, ServletResponse response)
282
300
public void exceptionErrorWithCommittedResponse () throws Exception {
283
301
this .filter .addErrorPages (new ErrorPage (RuntimeException .class , "/500" ));
284
302
this .chain = new MockFilterChain () {
303
+
285
304
@ Override
286
305
public void doFilter (ServletRequest request , ServletResponse response )
287
306
throws IOException , ServletException {
288
307
super .doFilter (request , response );
289
308
response .flushBuffer ();
290
309
throw new RuntimeException ("BAD" );
291
310
}
311
+
292
312
};
293
313
this .filter .doFilter (this .request , this .response , this .chain );
294
314
assertThat (this .response .getForwardedUrl ()).isNull ();
@@ -297,12 +317,14 @@ public void doFilter(ServletRequest request, ServletResponse response)
297
317
@ Test
298
318
public void statusCode () throws Exception {
299
319
this .chain = new MockFilterChain () {
320
+
300
321
@ Override
301
322
public void doFilter (ServletRequest request , ServletResponse response )
302
323
throws IOException , ServletException {
303
324
assertThat (((HttpServletResponse ) response ).getStatus ()).isEqualTo (200 );
304
325
super .doFilter (request , response );
305
326
}
327
+
306
328
};
307
329
this .filter .doFilter (this .request , this .response , this .chain );
308
330
assertThat (((HttpServletResponseWrapper ) this .chain .getResponse ()).getStatus ())
@@ -313,12 +335,14 @@ public void doFilter(ServletRequest request, ServletResponse response)
313
335
public void subClassExceptionError () throws Exception {
314
336
this .filter .addErrorPages (new ErrorPage (RuntimeException .class , "/500" ));
315
337
this .chain = new MockFilterChain () {
338
+
316
339
@ Override
317
340
public void doFilter (ServletRequest request , ServletResponse response )
318
341
throws IOException , ServletException {
319
342
super .doFilter (request , response );
320
343
throw new IllegalStateException ("BAD" );
321
344
}
345
+
322
346
};
323
347
this .filter .doFilter (this .request , this .response , this .chain );
324
348
assertThat (((HttpServletResponseWrapper ) this .chain .getResponse ()).getStatus ())
@@ -356,12 +380,14 @@ public void responseIsCommittedWhenRequestIsAsyncAndExceptionIsThrown()
356
380
this .filter .addErrorPages (new ErrorPage ("/error" ));
357
381
this .request .setAsyncStarted (true );
358
382
this .chain = new MockFilterChain () {
383
+
359
384
@ Override
360
385
public void doFilter (ServletRequest request , ServletResponse response )
361
386
throws IOException , ServletException {
362
387
super .doFilter (request , response );
363
388
throw new RuntimeException ("BAD" );
364
389
}
390
+
365
391
};
366
392
this .filter .doFilter (this .request , this .response , this .chain );
367
393
assertThat (this .chain .getRequest ()).isEqualTo (this .request );
@@ -376,12 +402,14 @@ public void responseIsCommittedWhenRequestIsAsyncAndStatusIs400Plus()
376
402
this .filter .addErrorPages (new ErrorPage ("/error" ));
377
403
this .request .setAsyncStarted (true );
378
404
this .chain = new MockFilterChain () {
405
+
379
406
@ Override
380
407
public void doFilter (ServletRequest request , ServletResponse response )
381
408
throws IOException , ServletException {
382
409
super .doFilter (request , response );
383
410
((HttpServletResponse ) response ).sendError (400 , "BAD" );
384
411
}
412
+
385
413
};
386
414
this .filter .doFilter (this .request , this .response , this .chain );
387
415
assertThat (this .chain .getRequest ()).isEqualTo (this .request );
@@ -406,12 +434,14 @@ public void responseIsCommittedWhenExceptionIsThrownDuringAsyncDispatch()
406
434
this .filter .addErrorPages (new ErrorPage ("/error" ));
407
435
setUpAsyncDispatch ();
408
436
this .chain = new MockFilterChain () {
437
+
409
438
@ Override
410
439
public void doFilter (ServletRequest request , ServletResponse response )
411
440
throws IOException , ServletException {
412
441
super .doFilter (request , response );
413
442
throw new RuntimeException ("BAD" );
414
443
}
444
+
415
445
};
416
446
this .filter .doFilter (this .request , this .response , this .chain );
417
447
assertThat (this .chain .getRequest ()).isEqualTo (this .request );
@@ -426,12 +456,14 @@ public void responseIsCommittedWhenStatusIs400PlusDuringAsyncDispatch()
426
456
this .filter .addErrorPages (new ErrorPage ("/error" ));
427
457
setUpAsyncDispatch ();
428
458
this .chain = new MockFilterChain () {
459
+
429
460
@ Override
430
461
public void doFilter (ServletRequest request , ServletResponse response )
431
462
throws IOException , ServletException {
432
463
super .doFilter (request , response );
433
464
((HttpServletResponse ) response ).sendError (400 , "BAD" );
434
465
}
466
+
435
467
};
436
468
this .filter .doFilter (this .request , this .response , this .chain );
437
469
assertThat (this .chain .getRequest ()).isEqualTo (this .request );
@@ -493,12 +525,14 @@ public void doFilter(ServletRequest request, ServletResponse response)
493
525
public void nestedServletExceptionIsUnwrapped () throws Exception {
494
526
this .filter .addErrorPages (new ErrorPage (RuntimeException .class , "/500" ));
495
527
this .chain = new MockFilterChain () {
528
+
496
529
@ Override
497
530
public void doFilter (ServletRequest request , ServletResponse response )
498
531
throws IOException , ServletException {
499
532
super .doFilter (request , response );
500
533
throw new NestedServletException ("Wrapper" , new RuntimeException ("BAD" ));
501
534
}
535
+
502
536
};
503
537
this .filter .doFilter (this .request , this .response , this .chain );
504
538
assertThat (((HttpServletResponseWrapper ) this .chain .getResponse ()).getStatus ())
@@ -525,13 +559,15 @@ public void doFilter(ServletRequest request, ServletResponse response)
525
559
public void whenErrorIsSentAndWriterIsFlushedErrorIsSentToTheClient ()
526
560
throws Exception {
527
561
this .chain = new MockFilterChain () {
562
+
528
563
@ Override
529
564
public void doFilter (ServletRequest request , ServletResponse response )
530
565
throws IOException , ServletException {
531
566
((HttpServletResponse ) response ).sendError (400 );
532
567
response .getWriter ().flush ();
533
568
super .doFilter (request , response );
534
569
}
570
+
535
571
};
536
572
this .filter .doFilter (this .request , this .response , this .chain );
537
573
assertThat (this .response .getStatus ()).isEqualTo (400 );
0 commit comments