[HttpKernel] Fix a regression in the RequestDataCollector

This commit is contained in:
Jakub Zalas 2016-10-18 06:32:56 +01:00
parent 26b90e47c0
commit 57008ea42b
No known key found for this signature in database
GPG Key ID: 15614199651BDE8D
2 changed files with 23 additions and 1 deletions

View File

@ -374,7 +374,7 @@ class RequestDataCollector extends DataCollector implements EventSubscriberInter
);
}
return (string) $controller ?: 'n/a';
return is_string($controller) ? $controller : 'n/a';
}
private function getCookieHeader($name, $value, $expires, $path, $domain, $secure, $httponly)

View File

@ -11,6 +11,7 @@
namespace Symfony\Component\HttpKernel\Tests\DataCollector;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\Session\Session;
use Symfony\Component\HttpFoundation\Session\Storage\MockArraySessionStorage;
use Symfony\Component\HttpKernel\Controller\ArgumentResolverInterface;
@ -182,6 +183,17 @@ class RequestDataCollectorTest extends \PHPUnit_Framework_TestCase
);
}
public function testItIgnoresInvalidCallables()
{
$request = $this->createRequestWithSession();
$response = new RedirectResponse('/');
$c = new RequestDataCollector();
$c->collect($request, $response);
$this->assertSame('n/a', $c->getController());
}
protected function createRequest()
{
$request = Request::create('http://test.com/foo?bar=baz');
@ -194,6 +206,16 @@ class RequestDataCollectorTest extends \PHPUnit_Framework_TestCase
return $request;
}
private function createRequestWithSession()
{
$request = $this->createRequest();
$request->attributes->set('_controller', 'Foo::bar');
$request->setSession(new Session(new MockArraySessionStorage()));
$request->getSession()->start();
return $request;
}
protected function createResponse()
{
$response = new Response();