Issue #1816582 by klausi, Crell: Fixed Fatal error in exception handler on 405 HTML responses.

8.0.x
webchick 2012-11-01 15:08:13 -07:00
parent 3e790105d7
commit a213f3102a
2 changed files with 40 additions and 1 deletions

View File

@ -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);
}
/**

View File

@ -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.');
}
}