Issue #1816582 by klausi, Crell: Fixed Fatal error in exception handler on 405 HTML responses.
parent
3e790105d7
commit
a213f3102a
|
@ -86,7 +86,7 @@ class ExceptionController extends ContainerAware {
|
|||
* The request object that triggered this exception.
|
||||
*/
|
||||
public function on405Html(FlattenException $exception, Request $request) {
|
||||
$event->setResponse(new Response('Method Not Allowed', 405));
|
||||
return new Response('Method Not Allowed', 405);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -0,0 +1,39 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* Definition of Drupal\system\Tests\System\ExceptionControllerTest.
|
||||
*/
|
||||
|
||||
namespace Drupal\system\Tests\System;
|
||||
|
||||
use \Drupal\Core\ContentNegotiation;
|
||||
use \Drupal\Core\ExceptionController;
|
||||
use \Drupal\simpletest\UnitTestBase;
|
||||
use \Symfony\Component\HttpFoundation\Request;
|
||||
use \Symfony\Component\HttpKernel\Exception\FlattenException;
|
||||
|
||||
/**
|
||||
* Tests exception controller.
|
||||
*/
|
||||
class ExceptionControllerTest extends UnitTestBase {
|
||||
|
||||
public static function getInfo() {
|
||||
return array(
|
||||
'name' => 'Exception controller',
|
||||
'description' => 'Performs tests on the exception handler controller class.',
|
||||
'group' => 'System',
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Ensure the execute() method returns a valid response on 405 exceptions.
|
||||
*/
|
||||
public function test405HTML() {
|
||||
$exception = new \Exception('Test exception');
|
||||
$flat_exception = FlattenException::create($exception, 405);
|
||||
$exception_controller = new ExceptionController(new ContentNegotiation());
|
||||
$response = $exception_controller->execute($flat_exception, new Request());
|
||||
$this->assertEqual($response->getStatusCode(), 405, 'HTTP status of response is correct.');
|
||||
$this->assertEqual($response->getContent(), 'Method Not Allowed', 'HTTP response body is correct.');
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue