In my controller, I use the security.token_storage service to get the user connected like :
$client = $this->container->get('security.token_storage')->getToken()->getUser();
$username = $client->getNom()." ".$client->getPrenom();
In my functional test, I try to log in a user to retrieve it in my controller but if I debug inside, it says me that i'm anonymous :
private function logIn()
{
$client = static::createClient();
$firewallName = 'main';
$token = new UsernamePasswordToken("admin", "admin", "main", array());
static::$kernel->getContainer()->get('security.token_storage')->setToken($token);
$session = static::$kernel->getContainer()->get('session');
$session->set('_security_'.$firewallName, serialize($token));
$session->save();
$cookie = new Cookie($session->getName(), $session->getId());
$client->getCookieJar()->set($cookie);
return $client;
}
public function testIndex()
{
$client = $this->logIn();
$crawler = $client->request('GET', '/');
$login = $crawler->filter("#username_index")->text();
$this->assertEquals($login, 'ADMIN NOM Admin Prenom');
}
How i can pass my user of my test to my main code ?