You should be able to setup remote debugging in your application and debug tests or when it's running. I do this in IDEA by creating a "Remote" configuration and setting my MAVEN_OPTS to "-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005". Then I run "mvn whatever" and start the remote configuration in debug mode.
Matt On Thu, Sep 17, 2009 at 10:41 AM, measwel <marek_karczew...@yahoo.com.au>wrote: > > I have extended appfuse roles. In the role table I have added a varcahar(3) > specifying the sort of the role; currently I have "sys" for system roles > (only to be added or removed by an system admin) and "usr" for user roles, > that the user can add or remove himself. > > This is a nice feature; depending on the roles the user assignes to > himself, > the menus rendered are dynamic. It works fine when I test it in the life > webapp, but it fails on SecurityAdviceTest. This is the code for testing if > a user tries to add / remove a system role: > > // get the list of roles the user currently has > Set<Role> currentRoles = new HashSet<Role>(); > for (GrantedAuthority role : roles) { > currentRoles.add((Role) role); > } > > Boolean modifySystemRole = false; > > // determine the list of roles the user tries to add or remove > if (user.getRoles() != null) { > > // check the list of roles the user wants to add > for (Object o : user.getRoles()) { <-- THIS LOOP CAUSES THE > ERROR > Role role = (Role) o; > // check if the user tries to add a system role - this is > forbidden > if (role.getSort().equalsIgnoreCase("sys") && > !currentRoles.contains(role)) { > modifySystemRole = true; > } > } > > // check the list of roles the user wants to remove > for (Object o : currentRoles) { <-- THIS LOOP ALSO CAUSES THE > ERROR > Role role = (Role) o; > // check if the user tries to remove a system role - this is > forbidden > if (role.getSort().equalsIgnoreCase("sys") && > !user.getRoles().contains(role)) { > modifySystemRole = true; > } > } > } > > // regular users aren't allowed to change system roles > if (modifySystemRole) { > log.warn("Access Denied: '" + currentUser.getUsername() + "' > tried to change system role(s)!"); > throw new AccessDeniedException(ACCESS_DENIED); > } > > As mentioned, this works fine in the life webapp. But the > SecurityAdviceTest > fails on 4 methods, the first one being: > > @Test > public void testUpdateUserProfile() throws Exception { > UserManager userManager = makeInterceptedTarget(); > final User user = new User("user"); > user.setId(1L); > user.getRoles().add(new Role(Constants.USER_ROLE)); > > context.checking(new Expectations() { > > { > one(userDao).saveUser(with(same(user))); > } > }); > > userManager.saveUser(user); <-- THIS LINE PRODUCES A NULL POINTER > EXCEPTION > } > > I have a feeling, the problem could be with the currentRoles set, but I am > unable to attach the debugger to the webtests run, so I can not trace it. > > Please help me solve this. I think letting the user add / remove non > critical roles and have his menu's rendered dynamically is a very nice > addition to standard appfuse behavior. Once it works, I would like to add > it > as a proposed improvement to JIRA. > -- > View this message in context: > http://www.nabble.com/extension-of-appfuse-roles-not-testing-correctly-tp25491920s2369p25491920.html > Sent from the AppFuse - User mailing list archive at Nabble.com. > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@appfuse.dev.java.net > For additional commands, e-mail: users-h...@appfuse.dev.java.net > >