package org.keycloak.testsuite.console.page.authentication; import org.openqa.selenium.By; import org.openqa.selenium.WebElement; import org.openqa.selenium.support.FindBy; import org.openqa.selenium.support.ui.Select; /** * @author tkyjovsk * @author mhajas */ public class Flows extends Authentication { @Override public String getUriFragment() { return super.getUriFragment() + "/flows"; } @FindBy(tagName = "select") private Select flowSelect; @FindBy(linkText = "New") private WebElement newButton; @FindBy(linkText = "Copy") private WebElement copyButton; @FindBy(tagName = "table") private WebElement flowsTable; public enum FlowSelectValues { DIRECT_GRANT("Direct grant"), REGISTRATION("Registration"), BROWSER("Browser"), RESET_CREDENTIALS("Reset credentials"), CLIENTS("Clients"); private String name; private FlowSelectValues(String name) { this.name = name; } public String getName() { return name; } } public void changeFlowSelect(FlowSelectValues value) { flowSelect.selectByVisibleText(value.getName()); } public void clickNew() { newButton.click(); } public void clickCopy() { copyButton.click(); } private void clickRadioButton(String row, int column) { flowsTable.findElement(By.xpath("//td[text()[contains(.,'" + row + "')]]/../td[" + String.valueOf(column) + "]//input[@type='radio']")).click(); } // Direct grant public void setPasswordRequired() { clickRadioButton("Password", 2); } public void setPasswordDisabled() { clickRadioButton("Password", 3); } public void setOTPRequired() { clickRadioButton("O T P", 2); } public void setOTPOptional() { clickRadioButton("O T P", 3); } public void setOTPDisabled() { clickRadioButton("O T P", 4); } // Registration public void setRegistrationFormRequired() { clickRadioButton("Registration form", 3); } public void setRegistrationFormDisabled() { clickRadioButton("Registration form", 4); } public void setRegistrationUserCreationRequired() { clickRadioButton("Registration User Creation", 3); } public void setRegistrationUserCreationDisabled() { clickRadioButton("Registration User Creation", 4); } public void setProfileValidationRequired() { clickRadioButton("Profile Validation", 3); } public void setProfileValidationDisabled() { clickRadioButton("Profile Validation", 4); } public void setPasswordValidationRequired() { clickRadioButton("Password Validation", 3); } public void setPasswordValidationDisabled() { clickRadioButton("Password Validation", 4); } public void setRecaptchaRequired() { clickRadioButton("Recaptcha", 3); } public void setRecaptchaDisabled() { clickRadioButton("Recaptcha", 4); } // Browser public void setCookieAlternative() { clickRadioButton("Cookie", 3); } public void setCookieDisabled() { clickRadioButton("Cookie", 4); } public void setKerberosAlternative() { clickRadioButton("Kerberos", 3); } public void setKerberosRequired() { clickRadioButton("Kerberos", 4); } public void setKerberosDisabled() { clickRadioButton("Kerberos", 5); } public void setFormsAlternative() { clickRadioButton("Forms", 3); } public void setFormsRequired() { clickRadioButton("Forms", 4); } public void setFormsDisabled() { clickRadioButton("Forms", 5); } public void setOTPFormRequired() { clickRadioButton(" O T P Form", 3); } public void setOTPFormOptional() { clickRadioButton(" O T P Form", 4); } public void setOTPFormDisabled() { clickRadioButton(" O T P Form", 5); } // Reset credentials public void setResetPasswordRequired() { clickRadioButton("Reset Password", 2); } public void setResetPasswordOptional() { clickRadioButton("Reset Password", 3); } public void setResetPasswordDisabled() { clickRadioButton("Reset Password", 4); } public void setResetOTPRequired() { clickRadioButton("Reset O T P", 2); } public void setResetOTPOptional() { clickRadioButton("Reset O T P", 3); } public void setResetOTPDisabled() { clickRadioButton("Reset O T P", 4); } // Clients public void setClientIdAndSecretAlternative() { clickRadioButton("Client Id and Secret", 2); } public void setClientIdAndSecretDisabled() { clickRadioButton("Client Id and Secret", 3); } public void setSignedJwtAlternative() { clickRadioButton(" Signed Jwt", 2); } public void setSignedJwtDisabled() { clickRadioButton(" Signed Jwt", 3); } }