ErrorHandler: Don't wrap the response if a content-type is defined
This commit is contained in:
parent
2570418e9f
commit
3c8d0eeb44
|
@ -46,7 +46,13 @@ class ErrorHandler implements MiddlewareInterface
|
|||
}
|
||||
|
||||
$statusCode = $response->getStatusCode();
|
||||
if ($statusCode < 400 || !$response instanceof Response) {
|
||||
$contentType = $response->getHeader('content-type');
|
||||
$contentType = array_shift($contentType);
|
||||
if (
|
||||
$statusCode < 400
|
||||
|| !$response instanceof Response
|
||||
|| !empty($contentType)
|
||||
) {
|
||||
return $response;
|
||||
}
|
||||
|
||||
|
|
|
@ -32,6 +32,10 @@ class ErrorHandlerTest extends TestCase
|
|||
$psrResponse->expects($this->once())
|
||||
->method('getStatusCode')
|
||||
->willReturn(505);
|
||||
$psrResponse->expects($this->once())
|
||||
->method('getHeader')
|
||||
->with('content-type')
|
||||
->willReturn([]);
|
||||
|
||||
$errorHandler = new ErrorHandler($twigLoader);
|
||||
|
||||
|
@ -41,13 +45,22 @@ class ErrorHandlerTest extends TestCase
|
|||
/** @var Response|MockObject $response */
|
||||
$response = $this->createMock(Response::class);
|
||||
|
||||
$response->expects($this->exactly(3))
|
||||
$response->expects($this->exactly(4))
|
||||
->method('getStatusCode')
|
||||
->willReturnOnConsecutiveCalls(
|
||||
200,
|
||||
418,
|
||||
505,
|
||||
505
|
||||
);
|
||||
$response->expects($this->exactly(4))
|
||||
->method('getHeader')
|
||||
->willReturnOnConsecutiveCalls(
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
['application/json']
|
||||
);
|
||||
|
||||
$returnResponseHandler->setResponse($response);
|
||||
$return = $errorHandler->process($request, $returnResponseHandler);
|
||||
|
@ -85,6 +98,7 @@ class ErrorHandlerTest extends TestCase
|
|||
|
||||
$errorHandler->process($request, $returnResponseHandler);
|
||||
$errorHandler->process($request, $returnResponseHandler);
|
||||
$errorHandler->process($request, $returnResponseHandler);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -104,6 +118,10 @@ class ErrorHandlerTest extends TestCase
|
|||
$psrResponse->expects($this->once())
|
||||
->method('getStatusCode')
|
||||
->willReturn(300);
|
||||
$psrResponse->expects($this->once())
|
||||
->method('getHeader')
|
||||
->with('content-type')
|
||||
->willReturn([]);
|
||||
|
||||
$returnResponseHandler->expects($this->once())
|
||||
->method('handle')
|
||||
|
|
Loading…
Reference in New Issue