How to use an authenticated user in a Symfony2 functional test?

前端 未结 1 934
傲寒
傲寒 2020-12-10 05:02

I use the FacebookBundle to authenticate users in my Symfony2 application. However, I would like to create functional tests with phpunit which uses an authentic

相关标签:
1条回答
  • 2020-12-10 05:27

    It's actually quite simple.

    1. Setup security.yml for test environment (it's a snippet from Symfony 2.0-RC3)

      security:
          encoders:
              Symfony\Component\Security\Core\User\User: plaintext
      
          providers:
              in_memory:
                  users:
                      user:  { password: userpass, roles: [ 'ROLE_USER' ] }
                      admin: { password: adminpass, roles: [ 'ROLE_ADMIN' ] }
      
          firewalls:
               secured-area:
                   pattern:    ^/demo/secured/
                   http_basic:
                       realm: "Secured Demo Area"
      
    2. As you can see there is HTTP Authentication defined. So now, all you have to do is to setup a client in functional test:

      $client = static::createClient(array(), array(
          'PHP_AUTH_USER' => 'user',
          'PHP_AUTH_PW'   => 'userpass',
      ));
      

    This link might be useful: http://symfony.com/doc/current/testing.html

    0 讨论(0)
提交回复
热议问题