Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
Voici mon problème:
Dans la méthode onBootstrap de mon module, je vérifie les permissions de l'utilisateur via un Event Listener qui est appellé comme ceci:
[lang=php] // attach permission listener to route event $eventManager = $e->getApplication()->getEventManager(); $sm = $e->getApplication()->getServiceManager(); $permissionsListener = $sm->get('MonModule\Listener\Permissions'); $permissionsListener->attach($eventManager);
Ceci fonctionne très bien et mon service de permission renvoie une exception lorsque l'utilisateur n'a pas le droit d'accéder à tel ou tel controlleur.
Je désire désormais tester mes controlleurs avec PHPUnit, et une approche qui me semble correcte est de tester les controlleurs en passant outre ce système de permissions (ces permissions changent régulièrement, d'ailleurs).
J'avais donc l'idée de détacher mon Event Listener au début des tests, comme ceci :
[lang=php]$sm = Bootstrap::getServiceManager(); $eventManager = $sm->get('Application')->getEventManager(); $notifyListener = $sm->get('MonModule\Listener\Permissions'); $notifyListener->detach($eventManager);
Malheureusement, ceci ne résout pas le problème, les permissions sont toujours vérifiées. J'imagine que cet "EventManager" en test n'est pas le même que dans le module, mais alors comment faire pour que mon idée fonctionne?
Dernière modification par vanpet (29-02-2016 13:42:34)
Hors ligne
Salut, ce que tu peux faire c'est de créer un utilisateur lorsque tu fais tes tests qui a toutes les permissions comme ça ça règle ton problème.
Sinon tu peux faire en sorte d'executer tes tests dans un environnement différent et dans le cas de cet environnement tu ne check pas les permissions.
Hors ligne
Ok merci, on a finalement décidé de faire un mock du permission service pour tjrs retourner true.
Hors ligne