Come utilizzare un utente autenticato in un test funzionale Symfony2?

Uso FacebookBundle per autenticare gli utenti nella mia applicazione Symfony2. Tuttavia, vorrei creare test funzionali con phpunit che utilizza un utente autenticato.

Inoltre, non voglio usare un utente facebook per questo, ma uno harcoded.

Qualcuno sa come implementarlo?

In realtà è abbastanza semplice.

  1. Setup security.yml per ambiente di test (è un frammento di 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. Come puoi vedere c'è l'authentication HTTP definita. Quindi ora tutto ciò che devi fare è impostare un client nel test funzionale:

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

Questo collegamento potrebbe essere utile: http://symfony.com/doc/current/testing.html