bug #10820 [WebProfilerBundle] Fixed profiler seach/homepage with empty token (tucksaun)
This PR was merged into the 2.3 branch. Discussion ---------- [WebProfilerBundle] Fixed profiler seach/homepage with empty token | Q | A | ------------- | --- | Bug fix? | yes | New feature? | no | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | #10806 | License | MIT | Doc PR | none Commits -------16dd0e5
[WebProfilerBundle] added test case for #107735b91e70
[WebProfilerBundle] fixed profiler homepage, fixed #108067b425d2
[WebProfilerBundle] Added test case for #10806
This commit is contained in:
commit
b471dbe27d
|
@ -232,7 +232,7 @@ class ProfilerController
|
|||
$session->getFlashBag()->setAll($session->getFlashBag()->peekAll());
|
||||
}
|
||||
|
||||
if (null === $token) {
|
||||
if ('empty' === $token || null === $token) {
|
||||
return new Response('', 200, array('Content-Type' => 'text/html'));
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,77 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Symfony package.
|
||||
*
|
||||
* (c) Fabien Potencier <fabien@symfony.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Symfony\Bundle\WebProfilerBundle\Tests\Controller;
|
||||
|
||||
use Symfony\Bundle\FrameworkBundle\Tests\TestCase;
|
||||
use Symfony\Bundle\WebProfilerBundle\Controller\ProfilerController;
|
||||
use Symfony\Component\HttpKernel\Profiler\Profile;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
|
||||
class ProfilerControllerTest extends TestCase
|
||||
{
|
||||
/**
|
||||
* @dataProvider getEmptyTokenCases
|
||||
*/
|
||||
public function testEmptyToken($token)
|
||||
{
|
||||
$urlGenerator = $this->getMock('Symfony\Component\Routing\Generator\UrlGeneratorInterface');
|
||||
$twig = $this->getMock('Twig_Environment');
|
||||
$profiler = $this
|
||||
->getMockBuilder('Symfony\Component\HttpKernel\Profiler\Profiler')
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
|
||||
$controller = new ProfilerController($urlGenerator, $profiler, $twig, array());
|
||||
|
||||
$response = $controller->toolbarAction(Request::create('/_wdt/empty'), $token);
|
||||
$this->assertEquals(200, $response->getStatusCode());
|
||||
}
|
||||
|
||||
public function getEmptyTokenCases()
|
||||
{
|
||||
return array(
|
||||
array(null),
|
||||
// "empty" is also a valid empty token case, see https://github.com/symfony/symfony/issues/10806
|
||||
array('empty'),
|
||||
);
|
||||
}
|
||||
|
||||
public function testReturns404onTokenNotFound()
|
||||
{
|
||||
$urlGenerator = $this->getMock('Symfony\Component\Routing\Generator\UrlGeneratorInterface');
|
||||
$twig = $this->getMock('Twig_Environment');
|
||||
$profiler = $this
|
||||
->getMockBuilder('Symfony\Component\HttpKernel\Profiler\Profiler')
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
|
||||
$controller = new ProfilerController($urlGenerator, $profiler, $twig, array());
|
||||
|
||||
$profiler
|
||||
->expects($this->exactly(2))
|
||||
->method('loadProfile')
|
||||
->will($this->returnCallback(function ($token) {
|
||||
if ('found' == $token) {
|
||||
return new Profile($token);
|
||||
}
|
||||
|
||||
return;
|
||||
}))
|
||||
;
|
||||
|
||||
$response = $controller->toolbarAction(Request::create('/_wdt/found'), 'found');
|
||||
$this->assertEquals(200, $response->getStatusCode());
|
||||
|
||||
$response = $controller->toolbarAction(Request::create('/_wdt/notFound'), 'notFound');
|
||||
$this->assertEquals(404, $response->getStatusCode());
|
||||
}
|
||||
}
|
Reference in New Issue