J'ai une application qui se trouve derrière un login et utilise zend_acl et zend_auth.Test d'unité PHP avec Zend Auth et Zend ACL
Lors de la pré-expédition, j'ai un plugin ACL qui crée toutes les règles pour la liste de contrôle d'accès. J'ai aussi un plugin Auth qui vérifie si vous êtes connecté ou pas et si c'est le cas si vous avez accès à la ressource demandée en fonction de la liste de contrôle d'accès.
Comme l'application est entièrement derrière une connexion l'ACL est créé uniquement si vous êtes connecté.
Les tests unitaires cela semble impossible, ou un peu plus probable que je me manque quelque chose évidente.
Dans ma méthode de configuration de test unitaire, je simule une connexion réussie qui renvoie une instance de zend_auth. Les tests qui réussissent indiquent que cette connexion a réussi.
Cependant, si j'essaie ensuite de tester l'envoi vers un autre emplacement, ou si l'utilisateur connecté a accès à une ressource donnée, il est toujours rejeté par le plugin car il n'est toujours pas connecté. Je ne suis pas sûr pourquoi c'est, quelqu'un peut-il conseiller?
Par exemple, cela passe:
public function testLoggedIn()
{
$this->assertTrue(Zend_Auth::getInstance()->hasIdentity());
}
Cela échoue car il est rejeté par le plug-in:
public function testUserAccess()
{
$this->dispatch('/home');
$this->assertResponseCode(200);
$this->assertQueryContentContains('#nav_side');
$this->resetRequest()
->resetResponse();
}
Ce, j'ai trouvé semble encore être rediriger vers la page de connexion que les plug-ins ne sait pas que l'utilisateur est connecté.
Toute aide très appréciée.
Oui- merci qui semble être le problème. –