Тест symfony app.user в ветке пуст - PullRequest
0 голосов
/ 12 мая 2018

Я использую app.user в ветке. Когда я пишу тест, я вошел в систему, и он отлично работает в контроллере. Но в ветке при доступе к app.user он нулевой.

Вот как я регистрирую пользователя в тестовом модуле:

    $user = new User;
    $user->setRole('ROLE_ADMIN');
    $user->setUsername('admin');
    $firewallContext = 'main';
    $token = new UsernamePasswordToken(serialize($user), null, $firewallContext, array('ROLE_ADMIN'));
    $session->set('_security_'.$firewallContext, serialize($token));
    $session->save();

    $cookie = new Cookie($session->getName(), $session->getId());
    $this->client->getCookieJar()->set($cookie);

Чего мне не хватает, чтобы заставить его работать в ветке?

1 Ответ

0 голосов
/ 15 мая 2018

У меня была похожая проблема (вход в систему), что окончательно решило ее для меня, так как я изменил способ входа в систему, это мой авторизованный клиент, и вы можете адаптировать его для своих целей. (версия symfony: 2.8)

private function createAuthorizedClient() 
{
      $client = static::createClient();
      $container = static::$kernel->getContainer();
      $session = $container->get('session');
      $token = new UsernamePasswordToken('john.doe', null, 'main', array('ROLE_ADMIN'));
      $session->set('_security_main', serialize($token));
      $session->save();
      $client->getCookieJar()->set(new Cookie($session->getName(), $session->getId()));
      return $client;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...