I have the following controller:
namespace AppBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
class SidebarController extends Controller
{
public function displayCurrentUserInfoToTheSideBarAction()
{
$auth_checker = $this->get('security.authorization_checker');
$token = $this->get('security.token_storage')->getToken();
$user = $token->getUser();
return $this->render('widgets/sidebar_profile.html.twig',['user'=>$user]);
}
}
And I want somehow to test it but I am stuck because I invoke this method via twig's render
function:
{{ render(controller('AppBundle:Sidebar:displayCurrentUserInfoToTheSideBar')) }}
What actually I want t ensure is that this particular controller renders the correct html. Usual functional tests on controllers in symphony is by emulating a homepage visit and checking any http related such as headers, response code and parsing the html in order to see if the site's behavior is as it should be, for example:
namespace Tests\AppBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
class DefaultControllerTest extends WebTestCase
{
public function testIndex()
{
$client = static::createClient();
$crawler = $client->request('GET', '/');
$response=$client->getResponse();
$this->assertEquals(302, $response->getStatusCode());
$this->assertEquals('/login',$response->headers->get('Location'));
}
}
This test checks whether a visit to the homepage redirects to the login screen. But on the controller above how I can perform similar tests?