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

Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
DomainPopup.java 3.40 KiB
package pages.domain;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.PageFactory;
import org.openqa.selenium.support.pagefactory.AjaxElementLocatorFactory;
import pages.components.GenericSelect;
import pages.components.baseComponents.PageComponent;
import utils.PROPERTIES;

public class DomainPopup extends PageComponent {
	public DomainPopup(WebDriver driver) {
		super(driver);
		PageFactory.initElements( new AjaxElementLocatorFactory(driver, PROPERTIES.TIMEOUT), this);

		signatureCertSelect = new GenericSelect(driver, signatureCertSelectContainer);
		smlClientAliasSelect = new GenericSelect(driver, smlClientAliasSelectContainer);


	}
	
	@FindBy(css = "domain-details-dialog button:nth-child(1)")
	WebElement okBtn;
	
	@FindBy(css = "domain-details-dialog button:nth-child(2)")
	WebElement cancelBtn;
	
	@FindBy(css = "#domainCode_id")
	WebElement domainCodeInput;
	
	@FindBy(css = "#smldomain_id")
	WebElement smlDomainInput;
	
	@FindBy(css = "#signatureKeyAlias_id")
	WebElement signatureCertSelectContainer;
	GenericSelect signatureCertSelect;

	@FindBy(css = "#smlSMPId_id")
	WebElement smlSMPIdInput;

	@FindBy(xpath = "//div[contains(text(),' The Domain code already exists! ')]")
	WebElement duplicateDomainErrorMsg;




	
//	@FindBy(css = "#smlClientHeader_id")
//	WebElement smlClientHeaderInput;
	
	@FindBy(css = "#smlClientKeyAlias_id")
	WebElement smlClientAliasSelectContainer;
	GenericSelect smlClientAliasSelect;


	public void clickOK(){
		waitForElementToBeClickable(okBtn).click();
		waitForElementToBeGone(okBtn);
	}
	public void clickCancel() {
		waitForElementToBeClickable(cancelBtn).click();
		waitForElementToBeGone(cancelBtn);
	}
	
	public boolean isLoaded() {
		log.info("checking if domain popup is properly loaded");
		return isVisible(okBtn)
				&& isVisible(domainCodeInput)
				&& isVisible(smlDomainInput)
				&& isVisible(cancelBtn)
				&& isEnabled(cancelBtn)
				&& (null != signatureCertSelect)
				&& (null != smlClientAliasSelect);
	}

	public boolean isDomainCodeInputEnabled() {
		log.info("domain code input");
		return isEnabled(domainCodeInput);}
	public boolean isSMLDomainInputEnabled() {return isEnabled(smlDomainInput);}

	public void fillSMLSMPIdInput(String text){
		log.info("fill sml smp input with " + text);
		waitForXMillis(500);
		clearAndFillInput(smlSMPIdInput, text);
	}

	public void fillDataForNewDomain(String domainCode, String smlDomain, String smlSmpID, String clientCertHeader){
		log.info("filling data for new domain");
		clearAndFillInput(domainCodeInput, domainCode);
		clearAndFillInput(smlDomainInput, smlDomain);
		signatureCertSelect.selectFirstOption();
		clearAndFillInput(smlSMPIdInput, smlSmpID);
		smlClientAliasSelect.selectFirstOption();
	}

    public String getDuplicateDomainErrorMsgText()
	{
		String duplicateDomainMsg = duplicateDomainErrorMsg.getText();
		return duplicateDomainMsg;

	}
	public boolean isEnableOkButton()
	{
		try {
			return okBtn.isEnabled();
		}
		catch(Exception e)
		{
			e.printStackTrace();
			return false;
		}
	}
	public boolean isEnableCancelButton()
	{
		try {
			return cancelBtn.isEnabled();
		}
		catch(Exception e)
		{
			e.printStackTrace();
			return false;
		}

	}

	public void clearAndFillDomainCodeInput(String domainCode) {
		log.info("filling only domain code data for new domain");
		clearAndFillInput(domainCodeInput, domainCode);
	}


}