added initial tests and page for assigning user role mappings

This commit is contained in:
fkiss 2015-06-10 15:02:25 +02:00
parent 9dd7a947e9
commit 15f8e83d4a
6 changed files with 145 additions and 4 deletions

View file

@ -0,0 +1,71 @@
package org.keycloak.testsuite.ui.page.settings.user;
import org.keycloak.testsuite.ui.page.AbstractPage;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.ui.Select;
import static org.keycloak.testsuite.ui.util.SeleniumUtils.waitGuiForElement;
/**
* Created by fkiss.
*/
public class RoleMappingsPage extends AbstractPage {
@FindBy(id = "available")
private Select availableRolesSelect;
@FindBy(id = "assigned")
private Select assignedRolesSelect;
@FindBy(id = "realm-composite")
private Select effectiveRolesSelect;
@FindBy(id = "available-client")
private Select availableClientRolesSelect;
@FindBy(id = "assigned-client")
private Select assignedClientRolesSelect;
@FindBy(css = "button[ng-click*='addRealm']")
private WebElement addSelected;
@FindBy(css = "button[ng-click*='addRealm']")
private WebElement addSelectedButton;
@FindBy(css = "button[ng-click*='deleteRealm']")
private WebElement removeSelectedButton;
@FindBy(id = "clients")
private Select clientRolesSelect;
public void addAvailableRole(String role){
waitGuiForElement(By.id("available"));
availableRolesSelect.selectByVisibleText(role);
addSelected.click();
}
public void removeAssignedRole(String client){
waitGuiForElement(By.id("assigned"));
assignedRolesSelect.selectByVisibleText(client);
removeSelectedButton.click();
}
public void selectClientRole(String client){
waitGuiForElement(By.id("clients"));
clientRolesSelect.selectByVisibleText(client);
}
public void addAvailableClientRole(String role){
waitGuiForElement(By.id("available-client"));
availableRolesSelect.selectByVisibleText(role);
addSelected.click();
}
public void removeAssignedClientRole(String client){
waitGuiForElement(By.id("assigned-client"));
assignedClientRolesSelect.selectByVisibleText(client);
removeSelectedButton.click();
}
}

View file

@ -16,7 +16,7 @@
* limitations under the License. * limitations under the License.
*/ */
package org.keycloak.testsuite.ui.page.settings; package org.keycloak.testsuite.ui.page.settings.user;
import org.jboss.arquillian.graphene.findby.FindByJQuery; import org.jboss.arquillian.graphene.findby.FindByJQuery;
import org.keycloak.testsuite.ui.model.User; import org.keycloak.testsuite.ui.model.User;

View file

@ -17,7 +17,7 @@ import org.junit.Before;
import org.junit.Ignore; import org.junit.Ignore;
import org.keycloak.testsuite.ui.AbstractKeyCloakTest; import org.keycloak.testsuite.ui.AbstractKeyCloakTest;
import org.keycloak.testsuite.ui.fragment.FlashMessage; import org.keycloak.testsuite.ui.fragment.FlashMessage;
import org.keycloak.testsuite.ui.page.settings.UserPage; import org.keycloak.testsuite.ui.page.settings.user.UserPage;
import static org.openqa.selenium.By.id; import static org.openqa.selenium.By.id;
import org.openqa.selenium.support.ui.Select; import org.openqa.selenium.support.ui.Select;

View file

@ -22,7 +22,7 @@ import org.jboss.arquillian.graphene.findby.FindByJQuery;
import org.junit.Test; import org.junit.Test;
import org.keycloak.testsuite.ui.fragment.FlashMessage; import org.keycloak.testsuite.ui.fragment.FlashMessage;
import org.keycloak.testsuite.ui.model.User; import org.keycloak.testsuite.ui.model.User;
import org.keycloak.testsuite.ui.page.settings.UserPage; import org.keycloak.testsuite.ui.page.settings.user.UserPage;
import static org.junit.Assert.*; import static org.junit.Assert.*;

View file

@ -25,7 +25,7 @@ import org.junit.Test;
import org.keycloak.testsuite.ui.fragment.FlashMessage; import org.keycloak.testsuite.ui.fragment.FlashMessage;
import org.keycloak.testsuite.ui.model.User; import org.keycloak.testsuite.ui.model.User;
import org.keycloak.testsuite.ui.page.RegisterPage; import org.keycloak.testsuite.ui.page.RegisterPage;
import org.keycloak.testsuite.ui.page.settings.UserPage; import org.keycloak.testsuite.ui.page.settings.user.UserPage;
import static org.junit.Assert.*; import static org.junit.Assert.*;
import org.junit.Before; import org.junit.Before;

View file

@ -0,0 +1,70 @@
package org.keycloak.testsuite.ui.test.user;
import org.jboss.arquillian.graphene.findby.FindByJQuery;
import org.jboss.arquillian.graphene.page.Page;
import org.junit.Before;
import org.junit.Test;
import org.keycloak.testsuite.ui.AbstractKeyCloakTest;
import org.keycloak.testsuite.ui.fragment.FlashMessage;
import org.keycloak.testsuite.ui.model.User;
import org.keycloak.testsuite.ui.page.settings.user.RoleMappingsPage;
import org.keycloak.testsuite.ui.page.settings.user.UserPage;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.openqa.selenium.By.linkText;
/**
* Created by fkiss.
*/
public class RoleMappingsTest extends AbstractKeyCloakTest<RoleMappingsPage> {
@Page
private UserPage userPage;
@FindByJQuery(".alert")
private FlashMessage flashMessage;
@Before
public void beforeAddNewUserTest() {
navigation.users();
}
@Test
public void addUserAndAssignRole() {
String testUsername = "tester1";
User testUser = new User(testUsername, "pass");
userPage.addUser(testUser);
flashMessage.waitUntilPresent();
assertTrue(flashMessage.getText(), flashMessage.isSuccess());
navigation.users();
userPage.findUser(testUsername);
driver.findElement(linkText(testUsername)).click();
navigation.roleMappings();
page.addAvailableRole("create-realm");
assertTrue(flashMessage.getText(), flashMessage.isSuccess());
navigation.users();
userPage.deleteUser(testUsername);
}
@Test
public void addAndRemoveUserAndAssignRole() {
String testUsername = "tester2";
User testUser = new User(testUsername, "pass");
userPage.addUser(testUser);
flashMessage.waitUntilPresent();
assertTrue(flashMessage.getText(), flashMessage.isSuccess());
navigation.users();
userPage.findUser(testUsername);
driver.findElement(linkText(testUsername)).click();
navigation.roleMappings();
page.addAvailableRole("create-realm");
assertTrue(flashMessage.getText(), flashMessage.isSuccess());
page.removeAssignedRole("create-realm");
assertTrue(flashMessage.getText(), flashMessage.isSuccess());
navigation.users();
userPage.deleteUser(testUsername);
}
}