|
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