package org.keycloak.testsuite.console.roles;
import org.jboss.arquillian.graphene.page.Page;
import org.junit.Before;
import org.junit.Test;
import org.keycloak.admin.client.resource.RolesResource;
import org.keycloak.representations.idm.RoleRepresentation;
import org.keycloak.representations.idm.UserRepresentation;
import org.keycloak.testsuite.console.page.roles.DefaultRoles;
import org.keycloak.testsuite.console.page.users.UserRoleMappings;
import org.keycloak.testsuite.console.page.users.Users;
import static org.junit.Assert.assertTrue;
import static org.keycloak.testsuite.admin.ApiUtil.createUserWithAdminClient;
/**
* Created by fkiss.
*/
public class DefaultRolesTest extends AbstractRolesTest {
@Page
private DefaultRoles defaultRolesPage;
@Page
private UserRoleMappings userRolesPage;
private RoleRepresentation defaultRoleRep;
@Page
private Users users;
@Before
public void beforeDefaultRolesTest() {
// create a role via admin client
defaultRoleRep = new RoleRepresentation("default-role", "", false);
rolesResource().create(defaultRoleRep);
defaultRolesPage.navigateTo();
// navigate to default roles page
// rolesPage.tabs().defaultRoles();
}
@Test
public void defaultRoleAssignedToNewUser() {
String defaultRoleName = defaultRoleRep.getName();
defaultRolesPage.form().addAvailableRole(defaultRoleName);
assertAlertSuccess();
UserRepresentation newUser = new UserRepresentation();
newUser.setUsername("new_user");
createUserWithAdminClient(testRealmResource(), newUser);
users.navigateTo();
users.table().search(newUser.getUsername());
users.table().clickUser(newUser.getUsername());
userPage.tabs().roleMappings();
assertTrue(userRolesPage.form().isAssignedRole(defaultRoleName));
}
public RolesResource rolesResource() {
return testRealmResource().roles();
}
}