I use the FacebookBundle
to authenticate users in my Symfony2 application. However, I would like to create functional tests with phpunit which uses an authenticated user.
Moreover, I don't want to use a facebook开发者_运维知识库 user for this, but harcoded one.
Does anybody know how to implement this?
It's actually quite simple.
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"
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
精彩评论