. Я пытаюсь создать функциональный тест, который включает в себя сохранение переменной сеанса при переадресации. Частично работает запись, но я не могу установить и сохранить переменную сеанса.Настройка переменной сеанса для использования в контроллере Symfony. Тесты PHPUnit с переадресацией.
Испытательный класс расширяет WebTestCase.
$this->client = static::createClient();
$this->client->followRedirects();
аутентичности
$user = $em->getRepository('MyApp\AppBundle\Entity\User')
->findOneByUsername('gagarin');
$firewall = 'secured_area';
$token = new UsernamePasswordToken($user, $user->getPassword(),
$firewall, $user->getRoles());
self::$kernel->getContainer()->get('security.context')->setToken($token);
$session = $this->client->getContainer()->get('session');
$session->set('_security_' . $firewall, serialize($token));
// tried $session->set('color_id', 1234) here
$session->save();
$cookie = new Cookie($session->getName(), $session->getId());
$this->client->getCookieJar()->set($cookie);
устройство «/» маршрут будет перенаправлять на страницу входа в систему, а затем обратно в «/» страницы потому что followRedirects устанавливается истина.
$crawler = $this->client->request(
'GET',
'http://myapp.test/');
$this->assertTrue($this->client->getResponse()->isSuccessful());
То, что я хотел бы сделать, это установить переменную сеанса (color_id
), который я могу утверждать, существует на запрошенный маршрут, следуя переадресаций авторизоваться или других страниц, что «/» маршрутов на основе color_id. Как мне это сделать?