|
20 | 20 | use Symfony\Component\HttpFoundation\Response;
|
21 | 21 | use Symfony\Component\HttpKernel\Controller\ArgumentResolverInterface;
|
22 | 22 | use Symfony\Component\HttpKernel\Controller\ControllerResolverInterface;
|
| 23 | +use Symfony\Component\HttpKernel\Event\ExceptionEvent; |
23 | 24 | use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException;
|
24 | 25 | use Symfony\Component\HttpKernel\Exception\BadRequestHttpException;
|
25 | 26 | use Symfony\Component\HttpKernel\Exception\ControllerDoesNotReturnResponseException;
|
@@ -340,6 +341,22 @@ public function testTerminate()
|
340 | 341 | $this->assertEquals($response, $capturedResponse);
|
341 | 342 | }
|
342 | 343 |
|
| 344 | + public function testTerminateWithException() |
| 345 | + { |
| 346 | + $dispatcher = new EventDispatcher(); |
| 347 | + $requestStack = new RequestStack(); |
| 348 | + $kernel = $this->getHttpKernel($dispatcher, null, $requestStack); |
| 349 | + |
| 350 | + $dispatcher->addListener(KernelEvents::EXCEPTION, function (ExceptionEvent $event) use (&$capturedRequest, $requestStack) { |
| 351 | + $capturedRequest = $requestStack->getCurrentRequest(); |
| 352 | + $event->setResponse(new Response()); |
| 353 | + }); |
| 354 | + |
| 355 | + $kernel->terminateWithException(new \Exception('boo'), $request = Request::create('/')); |
| 356 | + $this->assertSame($request, $capturedRequest); |
| 357 | + $this->assertNull($requestStack->getCurrentRequest()); |
| 358 | + } |
| 359 | + |
343 | 360 | public function testVerifyRequestStackPushPopDuringHandle()
|
344 | 361 | {
|
345 | 362 | $request = new Request();
|
|
0 commit comments