16
16
use Symfony \Component \HttpFoundation \Request ;
17
17
use Symfony \Component \HttpFoundation \Response ;
18
18
use Symfony \Component \HttpKernel \Attribute \Cache ;
19
- use Symfony \Component \HttpKernel \Event \ControllerEvent ;
19
+ use Symfony \Component \HttpKernel \Event \ControllerArgumentsEvent ;
20
20
use Symfony \Component \HttpKernel \Event \ResponseEvent ;
21
21
use Symfony \Component \HttpKernel \EventListener \CacheAttributeListener ;
22
22
use Symfony \Component \HttpKernel \HttpKernelInterface ;
@@ -170,35 +170,48 @@ public function testCacheMaxAgeSupportsStrtotimeFormat()
170
170
$ this ->assertSame ('86400 ' , $ this ->response ->headers ->getCacheControlDirective ('stale-if-error ' ));
171
171
}
172
172
173
- public function testLastModifiedNotModifiedResponse ()
173
+ /**
174
+ * @testWith ["test.getDate()"]
175
+ * ["date"]
176
+ */
177
+ public function testLastModifiedNotModifiedResponse (string $ expression )
174
178
{
175
- $ request = $ this ->createRequest (new Cache (lastModified: 'test.getDate() ' ));
176
- $ request ->attributes ->set ('test ' , new TestEntity ());
179
+ $ entity = new TestEntity ();
180
+
181
+ $ request = $ this ->createRequest (new Cache (lastModified: $ expression ));
182
+ $ request ->attributes ->set ('date ' , new \DateTimeImmutable ('Fri, 23 Aug 2013 00:00:00 GMT ' ));
177
183
$ request ->headers ->add (['If-Modified-Since ' => 'Fri, 23 Aug 2013 00:00:00 GMT ' ]);
178
184
179
185
$ listener = new CacheAttributeListener ();
180
- $ controllerEvent = new ControllerEvent ($ this ->getKernel (), function () {
186
+ $ controllerArgumentsEvent = new ControllerArgumentsEvent ($ this ->getKernel (), function (TestEntity $ test ) {
181
187
return new Response ();
182
- }, $ request , null );
188
+ }, [ $ entity ], $ request , null );
183
189
184
- $ listener ->onKernelController ( $ controllerEvent );
185
- $ response = \call_user_func ( $ controllerEvent ->getController ());
190
+ $ listener ->onKernelControllerArguments ( $ controllerArgumentsEvent );
191
+ $ response = $ controllerArgumentsEvent ->getController ()( $ entity );
186
192
187
193
$ this ->assertSame (304 , $ response ->getStatusCode ());
188
194
}
189
195
190
- public function testLastModifiedHeader ()
196
+ /**
197
+ * @testWith ["test.getDate()"]
198
+ * ["date"]
199
+ */
200
+ public function testLastModifiedHeader (string $ expression )
191
201
{
192
- $ request = $ this ->createRequest (new Cache (lastModified: 'test.getDate() ' ));
193
- $ request ->attributes ->set ('test ' , new TestEntity ());
202
+ $ entity = new TestEntity ();
203
+
204
+ $ request = $ this ->createRequest (new Cache (lastModified: $ expression ));
205
+ $ request ->attributes ->set ('date ' , new \DateTimeImmutable ('Fri, 23 Aug 2013 00:00:00 GMT ' ));
194
206
195
207
$ listener = new CacheAttributeListener ();
196
- $ controllerEvent = new ControllerEvent ($ this ->getKernel (), function () {
208
+ $ controllerArgumentsEvent = new ControllerArgumentsEvent ($ this ->getKernel (), function (TestEntity $ test ) {
197
209
return new Response ();
198
- }, $ request , null );
199
- $ listener ->onKernelController ( $ controllerEvent );
210
+ }, [ $ entity ], $ request , null );
211
+ $ listener ->onKernelControllerArguments ( $ controllerArgumentsEvent );
200
212
201
- $ responseEvent = new ResponseEvent ($ this ->getKernel (), $ request , HttpKernelInterface::MAIN_REQUEST , \call_user_func ($ controllerEvent ->getController ()));
213
+ $ controllerResponse = $ controllerArgumentsEvent ->getController ()($ entity );
214
+ $ responseEvent = new ResponseEvent ($ this ->getKernel (), $ request , HttpKernelInterface::MAIN_REQUEST , $ controllerResponse );
202
215
$ listener ->onKernelResponse ($ responseEvent );
203
216
204
217
$ response = $ responseEvent ->getResponse ();
@@ -208,35 +221,48 @@ public function testLastModifiedHeader()
208
221
$ this ->assertSame ('Fri, 23 Aug 2013 00:00:00 GMT ' , $ response ->headers ->get ('Last-Modified ' ));
209
222
}
210
223
211
- public function testEtagNotModifiedResponse ()
224
+ /**
225
+ * @testWith ["test.getId()"]
226
+ * ["id"]
227
+ */
228
+ public function testEtagNotModifiedResponse (string $ expression )
212
229
{
213
- $ request = $ this ->createRequest (new Cache (etag: 'test.getId() ' ));
214
- $ request ->attributes ->set ('test ' , $ entity = new TestEntity ());
230
+ $ entity = new TestEntity ();
231
+
232
+ $ request = $ this ->createRequest (new Cache (etag: $ expression ));
233
+ $ request ->attributes ->set ('id ' , '12345 ' );
215
234
$ request ->headers ->add (['If-None-Match ' => sprintf ('"%s" ' , hash ('sha256 ' , $ entity ->getId ()))]);
216
235
217
236
$ listener = new CacheAttributeListener ();
218
- $ controllerEvent = new ControllerEvent ($ this ->getKernel (), function () {
237
+ $ controllerArgumentsEvent = new ControllerArgumentsEvent ($ this ->getKernel (), function (TestEntity $ test ) {
219
238
return new Response ();
220
- }, $ request , null );
239
+ }, [ $ entity ], $ request , null );
221
240
222
- $ listener ->onKernelController ( $ controllerEvent );
223
- $ response = \call_user_func ( $ controllerEvent ->getController ());
241
+ $ listener ->onKernelControllerArguments ( $ controllerArgumentsEvent );
242
+ $ response = $ controllerArgumentsEvent ->getController ()( $ entity );
224
243
225
244
$ this ->assertSame (304 , $ response ->getStatusCode ());
226
245
}
227
246
228
- public function testEtagHeader ()
247
+ /**
248
+ * @testWith ["test.getId()"]
249
+ * ["id"]
250
+ */
251
+ public function testEtagHeader (string $ expression )
229
252
{
230
- $ request = $ this ->createRequest (new Cache (etag: 'test.getId() ' ));
231
- $ request ->attributes ->set ('test ' , $ entity = new TestEntity ());
253
+ $ entity = new TestEntity ();
254
+
255
+ $ request = $ this ->createRequest (new Cache (etag: $ expression ));
256
+ $ request ->attributes ->set ('id ' , '12345 ' );
232
257
233
258
$ listener = new CacheAttributeListener ();
234
- $ controllerEvent = new ControllerEvent ($ this ->getKernel (), function () {
259
+ $ controllerArgumentsEvent = new ControllerArgumentsEvent ($ this ->getKernel (), function (TestEntity $ test ) {
235
260
return new Response ();
236
- }, $ request , null );
237
- $ listener ->onKernelController ( $ controllerEvent );
261
+ }, [ $ entity ], $ request , null );
262
+ $ listener ->onKernelControllerArguments ( $ controllerArgumentsEvent );
238
263
239
- $ responseEvent = new ResponseEvent ($ this ->getKernel (), $ request , HttpKernelInterface::MAIN_REQUEST , \call_user_func ($ controllerEvent ->getController ()));
264
+ $ controllerResponse = $ controllerArgumentsEvent ->getController ()($ entity );
265
+ $ responseEvent = new ResponseEvent ($ this ->getKernel (), $ request , HttpKernelInterface::MAIN_REQUEST , $ controllerResponse );
240
266
$ listener ->onKernelResponse ($ responseEvent );
241
267
242
268
$ response = $ responseEvent ->getResponse ();
@@ -280,8 +306,8 @@ public function testConfigurationDoesNotOverrideAlreadySetResponseHeaders()
280
306
public function testAttribute ()
281
307
{
282
308
$ request = new Request ();
283
- $ event = new ControllerEvent ($ this ->getKernel (), [new CacheAttributeController (), 'foo ' ], $ request , null );
284
- $ this ->listener ->onKernelController ($ event );
309
+ $ event = new ControllerArgumentsEvent ($ this ->getKernel (), [new CacheAttributeController (), 'foo ' ], [ ], $ request , null );
310
+ $ this ->listener ->onKernelControllerArguments ($ event );
285
311
286
312
$ response = new Response ();
287
313
$ event = new ResponseEvent ($ this ->getKernel (), $ request , HttpKernelInterface::MAIN_REQUEST , $ response );
@@ -290,8 +316,8 @@ public function testAttribute()
290
316
$ this ->assertSame (CacheAttributeController::METHOD_SMAXAGE , $ response ->getMaxAge ());
291
317
292
318
$ request = new Request ();
293
- $ event = new ControllerEvent ($ this ->getKernel (), [new CacheAttributeController (), 'bar ' ], $ request , null );
294
- $ this ->listener ->onKernelController ($ event );
319
+ $ event = new ControllerArgumentsEvent ($ this ->getKernel (), [new CacheAttributeController (), 'bar ' ], [ ], $ request , null );
320
+ $ this ->listener ->onKernelControllerArguments ($ event );
295
321
296
322
$ response = new Response ();
297
323
$ event = new ResponseEvent ($ this ->getKernel (), $ request , HttpKernelInterface::MAIN_REQUEST , $ response );
0 commit comments