Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 57008ea

Browse files
committed
[HttpKernel] Fix a regression in the RequestDataCollector
1 parent 26b90e4 commit 57008ea

File tree

2 files changed

+23
-1
lines changed

2 files changed

+23
-1
lines changed

src/Symfony/Component/HttpKernel/DataCollector/RequestDataCollector.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -374,7 +374,7 @@ protected function parseController($controller)
374374
);
375375
}
376376

377-
return (string) $controller ?: 'n/a';
377+
return is_string($controller) ? $controller : 'n/a';
378378
}
379379

380380
private function getCookieHeader($name, $value, $expires, $path, $domain, $secure, $httponly)

src/Symfony/Component/HttpKernel/Tests/DataCollector/RequestDataCollectorTest.php

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
namespace Symfony\Component\HttpKernel\Tests\DataCollector;
1313

14+
use Symfony\Component\HttpFoundation\RedirectResponse;
1415
use Symfony\Component\HttpFoundation\Session\Session;
1516
use Symfony\Component\HttpFoundation\Session\Storage\MockArraySessionStorage;
1617
use Symfony\Component\HttpKernel\Controller\ArgumentResolverInterface;
@@ -182,6 +183,17 @@ function () { return 'foo'; },
182183
);
183184
}
184185

186+
public function testItIgnoresInvalidCallables()
187+
{
188+
$request = $this->createRequestWithSession();
189+
$response = new RedirectResponse('/');
190+
191+
$c = new RequestDataCollector();
192+
$c->collect($request, $response);
193+
194+
$this->assertSame('n/a', $c->getController());
195+
}
196+
185197
protected function createRequest()
186198
{
187199
$request = Request::create('http://test.com/foo?bar=baz');
@@ -194,6 +206,16 @@ protected function createRequest()
194206
return $request;
195207
}
196208

209+
private function createRequestWithSession()
210+
{
211+
$request = $this->createRequest();
212+
$request->attributes->set('_controller', 'Foo::bar');
213+
$request->setSession(new Session(new MockArraySessionStorage()));
214+
$request->getSession()->start();
215+
216+
return $request;
217+
}
218+
197219
protected function createResponse()
198220
{
199221
$response = new Response();

0 commit comments

Comments
 (0)