16
16
17
17
package org .springframework .web .context .request ;
18
18
19
+ import java .text .ParseException ;
19
20
import java .text .SimpleDateFormat ;
20
21
import java .util .Arrays ;
21
22
import java .util .Date ;
35
36
import static org .junit .Assert .*;
36
37
37
38
/**
38
- * Parameterized tests for ServletWebRequest
39
+ * Parameterized tests for {@link ServletWebRequest}.
40
+ *
39
41
* @author Juergen Hoeller
40
42
* @author Brian Clozel
41
43
* @author Markus Malkusch
@@ -61,8 +63,7 @@ public class ServletWebRequestHttpMethodsTests {
61
63
@ Parameters (name = "{0}" )
62
64
static public Iterable <Object []> safeMethods () {
63
65
return Arrays .asList (new Object [][] {
64
- {"GET" },
65
- {"HEAD" }
66
+ {"GET" }, {"HEAD" }
66
67
});
67
68
}
68
69
@@ -100,11 +101,11 @@ public void checkNotModifiedInvalidStatus() {
100
101
101
102
@ Test // SPR-14559
102
103
public void checkNotModifiedInvalidIfNoneMatchHeader () {
103
- String eTag = "\" etagvalue\" " ;
104
+ String etag = "\" etagvalue\" " ;
104
105
servletRequest .addHeader ("If-None-Match" , "missingquotes" );
105
- assertFalse (request .checkNotModified (eTag ));
106
+ assertFalse (request .checkNotModified (etag ));
106
107
assertEquals (200 , servletResponse .getStatus ());
107
- assertEquals (eTag , servletResponse .getHeader ("ETag" ));
108
+ assertEquals (etag , servletResponse .getHeader ("ETag" ));
108
109
}
109
110
110
111
@ Test
@@ -120,12 +121,11 @@ public void checkNotModifiedHeaderAlreadySet() {
120
121
}
121
122
122
123
@ Test
123
- public void checkNotModifiedTimestamp () throws Exception {
124
+ public void checkNotModifiedTimestamp () {
124
125
long epochTime = currentDate .getTime ();
125
126
servletRequest .addHeader ("If-Modified-Since" , epochTime );
126
127
127
128
assertTrue (request .checkNotModified (epochTime ));
128
-
129
129
assertEquals (304 , servletResponse .getStatus ());
130
130
assertEquals (dateFormat .format (epochTime ), servletResponse .getHeader ("Last-Modified" ));
131
131
}
@@ -136,185 +136,170 @@ public void checkModifiedTimestamp() {
136
136
servletRequest .addHeader ("If-Modified-Since" , oneMinuteAgo );
137
137
138
138
assertFalse (request .checkNotModified (currentDate .getTime ()));
139
-
140
139
assertEquals (200 , servletResponse .getStatus ());
141
140
assertEquals (dateFormat .format (currentDate .getTime ()), servletResponse .getHeader ("Last-Modified" ));
142
141
}
143
142
144
143
@ Test
145
144
public void checkNotModifiedETag () {
146
- String eTag = "\" Foo\" " ;
147
- servletRequest .addHeader ("If-None-Match" , eTag );
148
-
149
- assertTrue (request .checkNotModified (eTag ));
145
+ String etag = "\" Foo\" " ;
146
+ servletRequest .addHeader ("If-None-Match" , etag );
150
147
148
+ assertTrue (request .checkNotModified (etag ));
151
149
assertEquals (304 , servletResponse .getStatus ());
152
- assertEquals (eTag , servletResponse .getHeader ("ETag" ));
150
+ assertEquals (etag , servletResponse .getHeader ("ETag" ));
153
151
}
154
152
155
153
@ Test
156
154
public void checkNotModifiedETagWithSeparatorChars () {
157
- String eTag = "\" Foo, Bar\" " ;
158
- servletRequest .addHeader ("If-None-Match" , eTag );
159
-
160
- assertTrue (request .checkNotModified (eTag ));
155
+ String etag = "\" Foo, Bar\" " ;
156
+ servletRequest .addHeader ("If-None-Match" , etag );
161
157
158
+ assertTrue (request .checkNotModified (etag ));
162
159
assertEquals (304 , servletResponse .getStatus ());
163
- assertEquals (eTag , servletResponse .getHeader ("ETag" ));
160
+ assertEquals (etag , servletResponse .getHeader ("ETag" ));
164
161
}
165
162
166
163
167
164
@ Test
168
165
public void checkModifiedETag () {
169
166
String currentETag = "\" Foo\" " ;
170
- String oldEtag = "Bar" ;
171
- servletRequest .addHeader ("If-None-Match" , oldEtag );
167
+ String oldETag = "Bar" ;
168
+ servletRequest .addHeader ("If-None-Match" , oldETag );
172
169
173
170
assertFalse (request .checkNotModified (currentETag ));
174
-
175
171
assertEquals (200 , servletResponse .getStatus ());
176
172
assertEquals (currentETag , servletResponse .getHeader ("ETag" ));
177
173
}
178
174
179
175
@ Test
180
176
public void checkNotModifiedUnpaddedETag () {
181
- String eTag = "Foo" ;
182
- String paddedEtag = String .format ("\" %s\" " , eTag );
183
- servletRequest .addHeader ("If-None-Match" , paddedEtag );
184
-
185
- assertTrue (request .checkNotModified (eTag ));
177
+ String etag = "Foo" ;
178
+ String paddedETag = String .format ("\" %s\" " , etag );
179
+ servletRequest .addHeader ("If-None-Match" , paddedETag );
186
180
181
+ assertTrue (request .checkNotModified (etag ));
187
182
assertEquals (304 , servletResponse .getStatus ());
188
- assertEquals (paddedEtag , servletResponse .getHeader ("ETag" ));
183
+ assertEquals (paddedETag , servletResponse .getHeader ("ETag" ));
189
184
}
190
185
191
186
@ Test
192
187
public void checkModifiedUnpaddedETag () {
193
188
String currentETag = "Foo" ;
194
- String oldEtag = "Bar" ;
195
- servletRequest .addHeader ("If-None-Match" , oldEtag );
189
+ String oldETag = "Bar" ;
190
+ servletRequest .addHeader ("If-None-Match" , oldETag );
196
191
197
192
assertFalse (request .checkNotModified (currentETag ));
198
-
199
193
assertEquals (200 , servletResponse .getStatus ());
200
194
assertEquals (String .format ("\" %s\" " , currentETag ), servletResponse .getHeader ("ETag" ));
201
195
}
202
196
203
197
@ Test
204
198
public void checkNotModifiedWildcardIsIgnored () {
205
- String eTag = "\" Foo\" " ;
199
+ String etag = "\" Foo\" " ;
206
200
servletRequest .addHeader ("If-None-Match" , "*" );
207
201
208
- assertFalse (request .checkNotModified (eTag ));
209
-
202
+ assertFalse (request .checkNotModified (etag ));
210
203
assertEquals (200 , servletResponse .getStatus ());
211
- assertEquals (eTag , servletResponse .getHeader ("ETag" ));
204
+ assertEquals (etag , servletResponse .getHeader ("ETag" ));
212
205
}
213
206
214
207
@ Test
215
208
public void checkNotModifiedETagAndTimestamp () {
216
- String eTag = "\" Foo\" " ;
217
- servletRequest .addHeader ("If-None-Match" , eTag );
209
+ String etag = "\" Foo\" " ;
210
+ servletRequest .addHeader ("If-None-Match" , etag );
218
211
servletRequest .addHeader ("If-Modified-Since" , currentDate .getTime ());
219
212
220
- assertTrue (request .checkNotModified (eTag , currentDate .getTime ()));
221
-
213
+ assertTrue (request .checkNotModified (etag , currentDate .getTime ()));
222
214
assertEquals (304 , servletResponse .getStatus ());
223
- assertEquals (eTag , servletResponse .getHeader ("ETag" ));
215
+ assertEquals (etag , servletResponse .getHeader ("ETag" ));
224
216
assertEquals (dateFormat .format (currentDate .getTime ()), servletResponse .getHeader ("Last-Modified" ));
225
217
}
226
218
227
219
@ Test // SPR-14224
228
220
public void checkNotModifiedETagAndModifiedTimestamp () {
229
- String eTag = "\" Foo\" " ;
230
- servletRequest .addHeader ("If-None-Match" , eTag );
221
+ String etag = "\" Foo\" " ;
222
+ servletRequest .addHeader ("If-None-Match" , etag );
231
223
long currentEpoch = currentDate .getTime ();
232
224
long oneMinuteAgo = currentEpoch - (1000 * 60 );
233
225
servletRequest .addHeader ("If-Modified-Since" , oneMinuteAgo );
234
226
235
- assertTrue (request .checkNotModified (eTag , currentEpoch ));
236
-
227
+ assertTrue (request .checkNotModified (etag , currentEpoch ));
237
228
assertEquals (304 , servletResponse .getStatus ());
238
- assertEquals (eTag , servletResponse .getHeader ("ETag" ));
229
+ assertEquals (etag , servletResponse .getHeader ("ETag" ));
239
230
assertEquals (dateFormat .format (currentEpoch ), servletResponse .getHeader ("Last-Modified" ));
240
231
}
241
232
242
233
@ Test
243
- public void checkModifiedETagAndNotModifiedTimestamp () throws Exception {
234
+ public void checkModifiedETagAndNotModifiedTimestamp () {
244
235
String currentETag = "\" Foo\" " ;
245
- String oldEtag = "\" Bar\" " ;
246
- servletRequest .addHeader ("If-None-Match" , oldEtag );
236
+ String oldETag = "\" Bar\" " ;
237
+ servletRequest .addHeader ("If-None-Match" , oldETag );
247
238
long epochTime = currentDate .getTime ();
248
239
servletRequest .addHeader ("If-Modified-Since" , epochTime );
249
240
250
241
assertFalse (request .checkNotModified (currentETag , epochTime ));
251
-
252
242
assertEquals (200 , servletResponse .getStatus ());
253
243
assertEquals (currentETag , servletResponse .getHeader ("ETag" ));
254
244
assertEquals (dateFormat .format (epochTime ), servletResponse .getHeader ("Last-Modified" ));
255
245
}
256
246
257
247
@ Test
258
248
public void checkNotModifiedETagWeakStrong () {
259
- String eTag = "\" Foo\" " ;
260
- String weakEtag = String .format ("W/%s" , eTag );
261
- servletRequest .addHeader ("If-None-Match" , eTag );
262
-
263
- assertTrue (request .checkNotModified (weakEtag ));
249
+ String etag = "\" Foo\" " ;
250
+ String weakETag = String .format ("W/%s" , etag );
251
+ servletRequest .addHeader ("If-None-Match" , etag );
264
252
253
+ assertTrue (request .checkNotModified (weakETag ));
265
254
assertEquals (304 , servletResponse .getStatus ());
266
- assertEquals (weakEtag , servletResponse .getHeader ("ETag" ));
255
+ assertEquals (weakETag , servletResponse .getHeader ("ETag" ));
267
256
}
268
257
269
258
@ Test
270
259
public void checkNotModifiedETagStrongWeak () {
271
- String eTag = "\" Foo\" " ;
272
- servletRequest .addHeader ("If-None-Match" , String .format ("W/%s" , eTag ));
273
-
274
- assertTrue (request .checkNotModified (eTag ));
260
+ String etag = "\" Foo\" " ;
261
+ servletRequest .addHeader ("If-None-Match" , String .format ("W/%s" , etag ));
275
262
263
+ assertTrue (request .checkNotModified (etag ));
276
264
assertEquals (304 , servletResponse .getStatus ());
277
- assertEquals (eTag , servletResponse .getHeader ("ETag" ));
265
+ assertEquals (etag , servletResponse .getHeader ("ETag" ));
278
266
}
279
267
280
268
@ Test
281
269
public void checkNotModifiedMultipleETags () {
282
- String eTag = "\" Bar\" " ;
283
- String multipleETags = String .format ("\" Foo\" , %s" , eTag );
270
+ String etag = "\" Bar\" " ;
271
+ String multipleETags = String .format ("\" Foo\" , %s" , etag );
284
272
servletRequest .addHeader ("If-None-Match" , multipleETags );
285
273
286
- assertTrue (request .checkNotModified (eTag ));
287
-
274
+ assertTrue (request .checkNotModified (etag ));
288
275
assertEquals (304 , servletResponse .getStatus ());
289
- assertEquals (eTag , servletResponse .getHeader ("ETag" ));
276
+ assertEquals (etag , servletResponse .getHeader ("ETag" ));
290
277
}
291
278
292
279
@ Test
293
- public void checkNotModifiedTimestampWithLengthPart () throws Exception {
280
+ public void checkNotModifiedTimestampWithLengthPart () throws ParseException {
294
281
long epochTime = dateFormat .parse (CURRENT_TIME ).getTime ();
295
282
servletRequest .setMethod ("GET" );
296
283
servletRequest .addHeader ("If-Modified-Since" , "Wed, 09 Apr 2014 09:57:42 GMT; length=13774" );
297
284
298
285
assertTrue (request .checkNotModified (epochTime ));
299
-
300
286
assertEquals (304 , servletResponse .getStatus ());
301
287
assertEquals (dateFormat .format (epochTime ), servletResponse .getHeader ("Last-Modified" ));
302
288
}
303
289
304
290
@ Test
305
- public void checkModifiedTimestampWithLengthPart () throws Exception {
291
+ public void checkModifiedTimestampWithLengthPart () throws ParseException {
306
292
long epochTime = dateFormat .parse (CURRENT_TIME ).getTime ();
307
293
servletRequest .setMethod ("GET" );
308
294
servletRequest .addHeader ("If-Modified-Since" , "Wed, 08 Apr 2014 09:57:42 GMT; length=13774" );
309
295
310
296
assertFalse (request .checkNotModified (epochTime ));
311
-
312
297
assertEquals (200 , servletResponse .getStatus ());
313
298
assertEquals (dateFormat .format (epochTime ), servletResponse .getHeader ("Last-Modified" ));
314
299
}
315
300
316
301
@ Test
317
- public void checkNotModifiedTimestampConditionalPut () throws Exception {
302
+ public void checkNotModifiedTimestampConditionalPut () {
318
303
long currentEpoch = currentDate .getTime ();
319
304
long oneMinuteAgo = currentEpoch - (1000 * 60 );
320
305
servletRequest .setMethod ("PUT" );
@@ -326,7 +311,7 @@ public void checkNotModifiedTimestampConditionalPut() throws Exception {
326
311
}
327
312
328
313
@ Test
329
- public void checkNotModifiedTimestampConditionalPutConflict () throws Exception {
314
+ public void checkNotModifiedTimestampConditionalPutConflict () {
330
315
long currentEpoch = currentDate .getTime ();
331
316
long oneMinuteAgo = currentEpoch - (1000 * 60 );
332
317
servletRequest .setMethod ("PUT" );
0 commit comments