Skip to content

Commit

Permalink
bug #10820 [WebProfilerBundle] Fixed profiler seach/homepage with emp…
Browse files Browse the repository at this point in the history
…ty 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 #10773
5b91e70 [WebProfilerBundle] fixed profiler homepage, fixed #10806
7b425d2 [WebProfilerBundle] Added test case for #10806
  • Loading branch information
fabpot committed Apr 30, 2014
2 parents 4b56c69 + 16dd0e5 commit b471dbe
Show file tree
Hide file tree
Showing 2 changed files with 78 additions and 1 deletion.
Expand Up @@ -232,7 +232,7 @@ public function toolbarAction(Request $request, $token)
$session->getFlashBag()->setAll($session->getFlashBag()->peekAll());
}

if (null === $token) {
if ('empty' === $token || null === $token) {
return new Response('', 200, array('Content-Type' => 'text/html'));
}

Expand Down
@@ -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());
}
}

0 comments on commit b471dbe

Please sign in to comment.