package org.keycloak.testsuite.console.page.clients;
import org.jboss.arquillian.graphene.fragment.Root;
import org.keycloak.testsuite.console.page.fragment.Breadcrumb;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import static org.keycloak.testsuite.console.page.fragment.Breadcrumb.BREADCRUMB_XPATH;
import org.openqa.selenium.NoSuchElementException;
/**
*
* @author tkyjovsk
*/
public class Client extends Clients {
public static final String ID = "id"; // TODO client.id vs client.clientId
@Override
public String getUriFragment() {
return super.getUriFragment() + "/{" + ID + "}";
}
public final void setId(String id) {
setUriParameter(ID, id);
}
public String getId() {
return getUriParameter(ID).toString();
}
@FindBy(xpath = BREADCRUMB_XPATH)
private Breadcrumb breadcrumb;
public Breadcrumb breadcrumb() {
return breadcrumb;
}
public void backToClientsViaBreadcrumb() {
breadcrumb.clickItemOneLevelUp();
}
@FindBy(id = "removeClient")
private WebElement deleteIcon;
public void delete() {
deleteIcon.click();
modalDialog.confirmDeletion();
}
@FindBy(xpath = "//div[@data-ng-controller='ClientTabCtrl']/ul")
protected ClientTabs clientTabs;
public ClientTabs tabs() {
return clientTabs;
}
public class ClientTabs {
@Root
private WebElement tabs;
@FindBy(linkText = "Settings")
private WebElement settingsLink;
@FindBy(linkText = "Roles")
private WebElement rolesLink;
@FindBy(linkText = "Mappers")
private WebElement mappersLink;
@FindBy(linkText = "Scope")
private WebElement scopeLink;
@FindBy(linkText = "Revocation")
private WebElement revocationLink;
@FindBy(linkText = "Sessions")
private WebElement sessionsLink;
@FindBy(linkText = "Installation")
private WebElement installationLink;
@FindBy(linkText = "Service Account Roles")
private WebElement serviceAccountRoles;
@FindBy(linkText = "Authorization")
private WebElement authorizationLink;
public void settings() {
settingsLink.click();
}
public void roles() {
rolesLink.click();
}
public void mappers() {
mappersLink.click();
}
public void scope() {
scopeLink.click();
}
public void revocation() {
revocationLink.click();
}
public void sessions() {
sessionsLink.click();
}
public void installation() {
installationLink.click();
}
public void authorization() {
authorizationLink.click();
}
public boolean isServiceAccountRolesDisplayed() {
try {
return serviceAccountRoles.isDisplayed();
} catch (NoSuchElementException ex) {
}
return false;
}
public WebElement getTabs() {
return tabs;
}
}
}