2014-09-26 40 views
3

我设法让与认证fosuserbundle测试,但仍然是失败的,我觉得为symfony1.2 2.3解决方案,但它不工作webtests symfony的2.5与Fosuserbundle

https://gist.github.com/deltaepsilon/6391565

我也尝试由两个funcitons创建客户端

protected function createAuthorizedClient2() 
{ 
    $client = static::createClient(); 
    $container = $client->getContainer(); 

    $session = $container->get('session'); 
    /** @var $userManager \FOS\UserBundle\Doctrine\UserManager */ 
    $userManager = $container->get('fos_user.user_manager'); 
    /** @var $loginManager \FOS\UserBundle\Security\LoginManager */ 
    $loginManager = $container->get('fos_user.security.login_manager'); 
    $firewallName = $container->getParameter('fos_user.firewall_name'); 

    $user = $userManager->findUserBy(array('username' => 'admin')); 
    $loginManager->loginUser($firewallName, $user); 

    // save the login token into the session and put it in a cookie 
    $container->get('session')->set('_security_' . $firewallName, serialize($container->get('security.context')->getToken())); 
    $container->get('session')->save(); 
    $client->getCookieJar()->set(new Cookie($session->getName(), $session->getId())); 

    return $client; 
} 

protected function createAuthorizedClient() 
{ 
    $client = static::createClient(); 
    $container = static::$kernel->getContainer(); 
    $session = $container->get('session'); 
    $person = self::$kernel->getContainer()->get('doctrine')->getRepository('BergUserDataBundle:UserLogin')->findOneByUsername('admin'); 

    $token = new UsernamePasswordToken($person, null, 'main', $person->getRoles()); 
    $session->set('_security_main', serialize($token)); 
    $session->save(); 

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

    return $client; 
} 
+1

任何特定的错误消息? – andy 2014-09-26 15:05:32

回答