Code development platform for open source projects from the European Union institutions

Skip to content
Snippets Groups Projects
UserPopup.java 5.91 KiB
Newer Older
package pages.users;

import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.PageFactory;
import pages.components.ConfirmationDialog;
import pages.components.GenericSelect;
import pages.components.baseComponents.PageComponent;

import static org.openqa.selenium.remote.DriverCommand.CLICK_ELEMENT;

public class UserPopup extends PageComponent {
	public UserPopup(WebDriver driver) {
		super(driver);
		PageFactory.initElements(driver, this);
		rolesSelect = new GenericSelect(driver, rolesSelectContainer);
	}


	@FindBy(id = "userDetailsToggle_id")
	WebElement userDetailsToggle;
	@FindBy(css = "#active_id > label > div > div")
	WebElement activeToggle;

	@FindBy(id = "username_id")
	WebElement userNameInput;
	@FindBy(id = "emailAddress_id")
	WebElement emailInput;
	WebElement passwordInput;
	@SuppressWarnings("SpellCheckingInspection")
	WebElement confirmationInput;
	@FindBy(css = "input#cp_id")
	WebElement adminPassInput;

	@FindBy(css = "mat-form-field.username> div > div.mat-form-field-flex > div > div")
	WebElement usernameValidationError;

	@FindBy(css = "mat-form-field.password > div > div.mat-form-field-flex > div > div")
	WebElement passValidationError;

	@FindBy(css = "mat-form-field.password-confirmation > div > div.mat-form-field-flex > div > div")
	WebElement passConfirmationValidationError;

Catalin QA's avatar
Catalin QA committed
	@FindBy(css = ".mat-form-field-infix > div.has-error")
	WebElement passMatchValidationError;

	@FindBy(css = "mat-dialog-actions button:nth-child(1)")
	WebElement okBtn;
	@FindBy(css = "mat-dialog-actions button:nth-child(2)")
	WebElement cancelBtn;
	@FindBy(css ="#changePassword_id")
	WebElement changePassword;

	@FindBy(css ="smp-password-change-dialog mat-dialog-actions button:nth-child(1)")
	WebElement changedPassword;

	@FindBy(css = "#closebuttondialog_id")
	WebElement passChangedClose;

	@FindBy(css = "smp-password-change-dialog mat-dialog-actions button:nth-child(2)")
	WebElement passwordDialogClose;

	@FindBy(css = "#role_id")
	WebElement rolesSelectContainer;
	public GenericSelect rolesSelect;


	public boolean isOKButtonActive() {
		return isEnabled(okBtn);
	public boolean isChangePasswordActive() {
		return isEnabled(passChangedClose);
	}
	public boolean isChangePasswordButtonActive() {
		return isEnabled(changedPassword);
	}

	public boolean isCancelButtonActive() {
		return isEnabled(cancelBtn);
	public void fillData(String user, String email, String role, String password, String confirmation) {
		clearAndFillInput(userNameInput, user);
		clearAndFillInput(emailInput, email);
		clearAndFillInput(passwordInput, password);
		clearAndFillInput(confirmationInput, confirmation);
		GenericSelect rolesSelect = new GenericSelect(driver, rolesSelectContainer);
		rolesSelect.selectOptionByText(role);

	}

	public void clickOK() {
		log.info("click OK");
		waitForElementToBeClickable(okBtn);
		okBtn.click();
		waitForElementToBeGone(okBtn);
	}

	public void clickCancel() {
		log.info("click cancel");
		waitForElementToBeClickable(cancelBtn);
		cancelBtn.click();
		waitForElementToBeGone(cancelBtn);
	}
	public void clickUserDetailsToggle() {
		log.info("details toggle");
		waitForElementToBeClickable(userDetailsToggle).click();
		waitForElementToBeEnabled(userNameInput);
	}
	//public void fillDetailsForm(String username, String pass, String confirmation)
	public void fillDetailsForm(String username){
		clearAndFillInput(userNameInput, username);
		//clearAndFillInput(passwordInput, pass);
		//clearAndFillInput(confirmationInput, confirmation);
		emailInput.click();
	}
	public void clickChangePassword(){
		log.info("click change password");
		waitForElementToBeClickable(changePassword);
		changePassword.click();
		//waitForElementToBeGone(changePassword);
	}
	public void clickCloseAfterChangedPass()
	{
		log.info("click close after change password");
		try {
			Thread.sleep(10000);
		}
		catch (Exception e){
			e.printStackTrace();
		}
		waitForElementToBeClickable(passChangedClose);
		log.info("ab");
		passChangedClose.click();
		log.info("bd");
		waitForElementToBeGone(passChangedClose);
		log.info("cd");
	}
	public ConfirmationDialog clickChangedPassword()
	{
		log.info("click changed password");
		waitForElementToBeClickable(changedPassword);
		changedPassword.click();
		waitForElementToBeGone(changedPassword);
		//return new UsersPage(driver);
		return new ConfirmationDialog(driver);
	}
	public void setOrChangePassword(String adminPass,String newPass,String confirmPass)
	{

		clearAndFillInput(adminPassInput,adminPass);
		clearAndFillInput(passwordInput,newPass);
		clearAndFillInput(confirmationInput,confirmPass);
	}
	public void clickClosePasswordDialog()
	{
		passwordDialogClose.click();
		waitForElementToBeGone(passwordDialogClose);
	}
	public String getUsernameValidationError() {
			waitForElementToBeVisible(usernameValidationError);
			return usernameValidationError.getText();
		} catch (Exception e) {
		}
	public String getPassValidationError() {
			waitForElementToBeVisible(passValidationError);
			return passValidationError.getText();
		} catch (Exception e) {
		}
	public String getConfirmationPassValidationError() {
			waitForElementToBeVisible(passConfirmationValidationError);
			return passConfirmationValidationError.getText();
		} catch (Exception e) {
		}
Catalin QA's avatar
Catalin QA committed
	public boolean isDuplicateUserNameErrorMsgDisPlayed() {
		try {
			return driver.findElement(By.cssSelector("mat-form-field.username > div .has-error")).isDisplayed();
Catalin QA's avatar
Catalin QA committed
		} catch (Exception e) {
Catalin QA's avatar
Catalin QA committed
	public String getPassDontMatchValidationMsg() {
//		WebElement passwordUnmatchingMsg = driver.findElement(By.cssSelector(".mat-form-field-infix > div.has-error"));
		return passMatchValidationError.getText();