2010-10-15 3 views
0

Grails 1.3.5 et ont installé des plugins selenium-rc, easyb et spring-security-core. Tout semble fonctionner très bien sauf ce cas que j'ai rencontré. J'ai une page que je suis en train de tester qui a le balisage suivant:Grails + Selenium + EasyB + ressort-noyau de sécurité: ifAnyGranted ne fonctionne pas

<sec:ifAnyGranted roles='ROLE_ADMIN'> 
    <span class="menuButton"> 
     <g:link mapping="adminPage"> 
     <g:message code="default.admin.label" default="--Admin--"/> 
     </g:link> 
    </span> 
</sec:ifAnyGranted> 

Lorsque vous exécutez l'application normalement, tout fonctionne correctement. Si je suis connecté en tant qu'utilisateur standard, le lien Admin n'apparaît pas. Si je me connecte en tant qu'administrateur, le lien s'affiche. Lors de l'exécution de mon test, peu importe qui est connecté, la vérification échoue, de sorte que le lien Admin n'est jamais rendu.

scenario "An Admin User logs into the system", { 
    when "the user completes the login form with proper credentials", { 

    grailsApplication = ApplicationHolder.application 
    springSecurityService = ApplicationHolder.application.mainContext.getBean("springSecurityService") 

    def userAdmin = new User(username: 'testAdmin', firstName: 'Test', lastName: 'Admin', enabled: true, password: springSecurityService.encodePassword("password")).save(flush: true) 
    def roleAdmin = new Role(authority: 'ROLE_ADMIN').save(flush: true) 
    UserRole.create(userAdmin, roleAdmin) 

    selenium.openAndWait("/platform/login/auth") 
    selenium.type('j_username', 'testAdmin') 
    selenium.type('j_password', 'password') 
    selenium.clickAndWait('signInBtn') 

} 
then "the user should be logged in and viewing their My Account page, as an admin", { 
    selenium.isTextPresent("Welcome Test").shouldBe true 
    selenium.isElementPresent('link=Admin').shouldBe true 

} 
} 

D'autres variables fonctionnent très bien comme ifLoggedIn et ifNotLoggedIn. Quelqu'un sait-il si c'est un problème connu ou d'autres informations à ce sujet? Merci.

Répondre

Questions connexes