Как использовать аутентифицированного пользователя в функциональном тесте Symfony2? - PullRequest
11 голосов
/ 30 июня 2011

Я использую FacebookBundle для аутентификации пользователей в моем приложении Symfony2. Тем не менее, я хотел бы создать функциональные тесты с phpunit, который использует аутентифицированного пользователя.

Более того, я не хочу использовать пользователя Facebook для этого, но замаскированный.

Кто-нибудь знает, как это реализовать?

1 Ответ

16 голосов
/ 30 июня 2011

Это на самом деле довольно просто.

  1. Настройка security.yml для тестовой среды (фрагмент из 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. Как видите, определена HTTP-аутентификация. Теперь все, что вам нужно сделать, это настроить клиент в функциональном тесте:

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

Эта ссылка может быть полезной: http://symfony.com/doc/current/testing.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...