J'écris des cas de test pour un projet qui utilise encore le plugin Acegi (pas le plugin Spring Core Security plus récent) et à partir de maintenant, j'ai réussi à faire ce que ce site (http://www.zorched.net/2008/09/01/grails-testing-acegi-security/)test securityConfig mappage dans grails + acegi
a suggéré en ce qui concerne la détection dont l'utilisateur est actuellement connecté Cependant, dans mon contrôleur, j'ai un truc qui ressemble à ceci:.
def list = {
// code for an "admin account"
}
def list_others = {
// code for other accounts
}
maintenant, je ne pas vérifier dans le contrôleur l'utilisateur connecté. Au lieu de cela, je ces définis dans le SecurityConfig.groovy comme:
security {
...
requestMapString = """\
/someController/list=ROLE_ADMIN
/someController/list_others=ROLE_OTHERS
"""
...
}
Par conséquent, si j'avais un test qui ressemblait à ceci:
void testTrial() {
// define here that otherUser has a role of ROLE_OTHERS
authenticate(otherUser, "other") // this calls the authenticate methode in the site I gave earlier
controller.list()
// I do an assertion here to check where this goes to
}
La chose est, quand je fais l'affirmation, bien sûr la liste me dira qu'elle a été transmise à list.gsp ... même si l'utilisateur "connecté" a un rôle de ROLE_OTHERS et non un admin.
Cependant, ce dont j'ai besoin est de savoir comment tester à quoi un utilisateur connecté est seulement supposé accéder? Dans ce cas, étant donné que l'appel est à * .list() et que l'utilisateur connecté a un rôle ROLE_OTHERS, j'aurais dû être redirigé vers une page "denied".
Aide? Merci!
lolz, avait un peu peur que cela impliquerait des tests fonctionnels. De toute façon, je vais vérifier ceux-là, merci! ça aide un peu :) – callie16