diff --git a/smp-ui-tests/src/main/java/pages/components/ConfirmationDialog.java b/smp-ui-tests/src/main/java/pages/components/ConfirmationDialog.java index 42b771964e7442b2f2b1f8f1ebdf97f137f0ae0a..7d0f9dd365f1d8644dafb4bd15709e5250ceafc3 100644 --- a/smp-ui-tests/src/main/java/pages/components/ConfirmationDialog.java +++ b/smp-ui-tests/src/main/java/pages/components/ConfirmationDialog.java @@ -29,7 +29,6 @@ public class ConfirmationDialog extends PageComponent { waitForElementToBeClickable(yesBtn); yesBtn.click(); waitForElementToBeGone(yesBtn); - } public void cancel(){ diff --git a/smp-ui-tests/src/main/java/pages/components/GenericSelect.java b/smp-ui-tests/src/main/java/pages/components/GenericSelect.java index 02f5c0eb16ab48eb6216c1984f39d60e75dae837..76ea20bc0d599615bfad6a7f1cdf4a6460f0bbc5 100644 --- a/smp-ui-tests/src/main/java/pages/components/GenericSelect.java +++ b/smp-ui-tests/src/main/java/pages/components/GenericSelect.java @@ -13,8 +13,11 @@ import java.util.ArrayList; import java.util.List; public class GenericSelect extends PageComponent { + public GenericSelect(WebDriver driver, WebElement container) { super(driver); + + log.info("select init"); this.container = container; PageFactory.initElements(new DefaultElementLocatorFactory(container), this); @@ -32,15 +35,18 @@ public class GenericSelect extends PageComponent { private void expandSelect(){ + log.info("expand select"); waitForElementToBeClickable(expandoButton).click(); } private List<WebElement> getOptions(){ expandSelect(); - return webDriverWait.until(ExpectedConditions.visibilityOfAllElementsLocatedBy(optionSelector)); + log.info("getting options"); + return wait.until(ExpectedConditions.visibilityOfAllElementsLocatedBy(optionSelector)); } public List<String> getOptionTexts(){ + log.info("get displayed option texts"); List<WebElement> options = getOptions(); List<String> optionTexts = new ArrayList<>(); @@ -51,6 +57,7 @@ public class GenericSelect extends PageComponent { } public boolean selectOptionWithText(String text){ + log.info("selecting option with text" + text); List<WebElement> options = getOptions(); @@ -61,10 +68,12 @@ public class GenericSelect extends PageComponent { return true; } } + log.info(text + " option not found, could not select it"); return false; } public boolean selectFirstOption(){ + log.info("selecting first option"); List<WebElement> options = getOptions(); WebElement option = options.get(1); @@ -75,13 +84,16 @@ public class GenericSelect extends PageComponent { public String getSelectedValue() { + log.info("getting current selected value"); return currentValueElement.getText().trim(); } public boolean selectOptionByText(String text) { + log.info("(2) selecting option with text" + text); + expandoButton.click(); - List<WebElement> options = webDriverWait.until(ExpectedConditions.visibilityOfAllElementsLocatedBy(optionSelector)); + List<WebElement> options = wait.until(ExpectedConditions.visibilityOfAllElementsLocatedBy(optionSelector)); for (WebElement option : options) { String optionDomain = option.getText().trim(); if(optionDomain.equalsIgnoreCase(text)){ @@ -90,11 +102,13 @@ public class GenericSelect extends PageComponent { return true; } } - + log.info(text + " option not found, could not select it (2)" ); return false; } public boolean isLoaded() { + log.info("assert loaded state"); + waitForElementToBeVisible(expandoButton); if(!expandoButton.isDisplayed()){ return false;} return currentValueElement.isDisplayed(); } diff --git a/smp-ui-tests/src/main/java/pages/components/SandwichMenu.java b/smp-ui-tests/src/main/java/pages/components/SandwichMenu.java index 52958fb302b75459368cb7902f1bf55249420136..b652d6674b0eae9128693f1614619f5f123b8fc3 100644 --- a/smp-ui-tests/src/main/java/pages/components/SandwichMenu.java +++ b/smp-ui-tests/src/main/java/pages/components/SandwichMenu.java @@ -59,5 +59,10 @@ public class SandwichMenu extends PageComponent { return new SearchPage(driver); } + public void waitForSandwichMenu(){ + log.info("waiting for sandwich menu"); + waitForXMillis(500); + waitForElementToBeVisible(expandoButton); + } } diff --git a/smp-ui-tests/src/main/java/pages/components/Sidebar.java b/smp-ui-tests/src/main/java/pages/components/Sidebar.java index 072bc772fa135ab77150ea210b1a3896716e94f5..29f59a1de1970396022149e7ca56cd54ebaab4a6 100644 --- a/smp-ui-tests/src/main/java/pages/components/Sidebar.java +++ b/smp-ui-tests/src/main/java/pages/components/Sidebar.java @@ -43,6 +43,7 @@ public class Sidebar extends PageComponent { and returns an instance of that class */ public <T extends SMPPage> T goToPage(Class<T> expect){ log.info("Navigating to " + expect.getSimpleName()); + switch (expect.getSimpleName()) { case "SearchPage": waitForElementToBeClickable(searchLnk).click(); @@ -59,33 +60,23 @@ public class Sidebar extends PageComponent { } waitForXMillis(500); + new Header(driver).waitForTitleToBe(); + return PageFactory.initElements(driver, expect); } - public boolean isSearchLnkVisible(){ - try { - return searchLnk.isDisplayed() && searchLnk.isEnabled(); - } catch (Exception e) { } - return false; + public boolean isSearchLnkEnabled(){ + return isVisible(searchLnk) && isEnabled(searchLnk); } - public boolean isEditLnkVisible(){ - try { - return editLnk.isDisplayed() && editLnk.isEnabled(); - } catch (Exception e) { } - return false; + public boolean isEditLnkEnabled(){ + return isVisible(editLnk) && isEnabled(editLnk); } - public boolean isDomainLnkVisible(){ - try { - return domainLnk.isDisplayed() && domainLnk.isEnabled(); - } catch (Exception e) { } - return false; + public boolean isDomainLnkEnabled(){ + return isVisible(domainLnk) && isEnabled(domainLnk); } - public boolean isUsersLnkVisible(){ - try { - return userLnk.isDisplayed() && userLnk.isEnabled(); - } catch (Exception e) { } - return false; + public boolean isUsersLnkEnabled(){ + return isVisible(userLnk) && isEnabled(userLnk); } } diff --git a/smp-ui-tests/src/main/java/pages/components/baseComponents/Header.java b/smp-ui-tests/src/main/java/pages/components/baseComponents/Header.java index 7ea13821ef982c59ab0a84a98a35d12ffb58231e..76896e99b2f91a03356a0207529f3f1b49c6f36f 100644 --- a/smp-ui-tests/src/main/java/pages/components/baseComponents/Header.java +++ b/smp-ui-tests/src/main/java/pages/components/baseComponents/Header.java @@ -1,13 +1,11 @@ package pages.components.baseComponents; -import org.openqa.selenium.By; 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 org.openqa.selenium.support.ui.ExpectedConditions; -import pages.components.GenericSelect; import pages.components.SandwichMenu; import pages.login.LoginPage; import utils.PROPERTIES; @@ -31,17 +29,20 @@ public class Header extends PageComponent{ public SandwichMenu sandwichMenu = new SandwichMenu(driver); public LoginPage goToLogin(){ + log.info("Going to login page"); waitForElementToBeClickable(loginLnk).click(); return new LoginPage(driver); } public void waitForTitleToBe(String title){ + log.info("waiting for page title to be " + title); waitForXMillis(500); - webDriverWait.until(ExpectedConditions.textToBePresentInElement(pageTitle, title)); + waitForElementToHaveText(pageTitle, title); } public void waitForTitleToBe(){ + log.info("waiting for page title to be present"); waitForXMillis(500); waitForElementToBeVisible(pageTitle); } diff --git a/smp-ui-tests/src/main/java/pages/components/baseComponents/PageComponent.java b/smp-ui-tests/src/main/java/pages/components/baseComponents/PageComponent.java index 6a2647c5c40432b97bc69c13607fa9822502ac48..7eda2babdc45a32be2a92fb51983ff7bc3b5053f 100644 --- a/smp-ui-tests/src/main/java/pages/components/baseComponents/PageComponent.java +++ b/smp-ui-tests/src/main/java/pages/components/baseComponents/PageComponent.java @@ -3,72 +3,67 @@ package pages.components.baseComponents; import org.apache.log4j.Logger; import org.openqa.selenium.*; -import org.openqa.selenium.interactions.Actions; import org.openqa.selenium.support.ui.ExpectedCondition; import org.openqa.selenium.support.ui.ExpectedConditions; import org.openqa.selenium.support.ui.WebDriverWait; import utils.PROPERTIES; -import java.time.Duration; -import java.time.temporal.ChronoUnit; -import java.time.temporal.TemporalUnit; -import java.util.concurrent.TimeUnit; - public class PageComponent { protected WebDriver driver; - protected WebDriverWait webDriverWait; + protected WebDriverWait wait; protected Logger log = Logger.getLogger(this.getClass()); public PageComponent(WebDriver driver) { this.driver = driver; - this.webDriverWait = new WebDriverWait(this.driver, PROPERTIES.TIMEOUT); + this.wait = new WebDriverWait(this.driver, PROPERTIES.TIMEOUT); } - public void waitForXMillis(Integer millis) { - try { - Thread.sleep(millis); - } catch (InterruptedException e) { e.printStackTrace(); } - } public WebElement waitForElementToBeClickable(WebElement element) { - return webDriverWait.until(ExpectedConditions.elementToBeClickable(element)); + return wait.until(ExpectedConditions.elementToBeClickable(element)); } public WebElement waitForElementToBeVisible(WebElement element) { - return webDriverWait.until(ExpectedConditions.visibilityOf(element)); + return wait.until(ExpectedConditions.visibilityOf(element)); } public WebElement waitForElementToBeVisible(By elementSelector) { - return webDriverWait.until(ExpectedConditions.visibilityOfElementLocated(elementSelector)); + return wait.until(ExpectedConditions.visibilityOfElementLocated(elementSelector)); } public void waitForElementToBeEnabled(WebElement element) { - int maxTimeout = PROPERTIES.TIMEOUT * 1000; + int maxTimeout = PROPERTIES.SHORT_UI_TIMEOUT * 1000; + int waitedSoFar = 0; + while ((null != element.getAttribute("disabled")) && (waitedSoFar < maxTimeout)) { + waitedSoFar += 300; + waitForXMillis(300); + } + } + + public void waitForElementToBeDisabled(WebElement element) { + int maxTimeout = PROPERTIES.SHORT_UI_TIMEOUT * 1000; int waitedSoFar = 0; - while ((null != element.getAttribute("disabled")) && (waitedSoFar < maxTimeout)){ + while ((null == element.getAttribute("disabled")) && (waitedSoFar < maxTimeout)) { waitedSoFar += 300; waitForXMillis(300); } } -// public void waitForElementToBeGone(WebElement element) { -// try { -// webDriverWait.until(ExpectedConditions.not(ExpectedConditions.visibilityOf(element))); -// } catch (Exception e) { } -// } public void waitForElementToBeGone(WebElement element) { WebDriverWait myWait = new WebDriverWait(driver, PROPERTIES.SHORT_UI_TIMEOUT); try { myWait.until(ExpectedConditions.visibilityOf(element)); - } catch (Exception e) { return;} + } catch (Exception e) { + return; + } int waitTime = PROPERTIES.SHORT_UI_TIMEOUT * 1000; - while (waitTime >0){ + while (waitTime > 0) { boolean displayed = true; try { @@ -77,7 +72,7 @@ public class PageComponent { return; } - if(!displayed){ + if (!displayed) { return; } waitForXMillis(500); @@ -87,26 +82,30 @@ public class PageComponent { public void waitForNumberOfWindowsToBe(int noOfWindows) { try { - webDriverWait.until(numberOfWindowsToBe(noOfWindows)); - } catch (Exception e) { } + wait.until(numberOfWindowsToBe(noOfWindows)); + } catch (Exception e) { + } } public void clearAndFillInput(WebElement element, String toFill) { - waitForElementToBeVisible(element).clear(); + log.info("cleared input"); + waitForElementToBeEnabled(element); element.sendKeys(toFill); + log.info("filled in text " + toFill); } - public void clickVoidSpace(){ + public void clickVoidSpace() { + log.info("clicking void"); try { waitForXMillis(500); - ((JavascriptExecutor)driver).executeScript("document.querySelector('[class*=\"overlay-backdrop\"]').click()"); + ((JavascriptExecutor) driver).executeScript("document.querySelector('[class*=\"overlay-backdrop\"]').click()"); waitForXMillis(500); - } catch (Exception e) { } + } catch (Exception e) { + } waitForXMillis(500); } - private ExpectedCondition<Boolean> numberOfWindowsToBe(final int numberOfWindows) { return new ExpectedCondition<Boolean>() { @Override @@ -114,8 +113,82 @@ public class PageComponent { driver.getWindowHandles(); return driver.getWindowHandles().size() == numberOfWindows; } - };} + }; + } + + public void waitForXMillis(Integer millis) { + try { + Thread.sleep(millis); + } catch (InterruptedException e) { + log.error("EXCEPTION: ", e); + } + } + + public void waitForAttributeNotEmpty(WebElement element, String attributeName) { + wait.until(ExpectedConditions.attributeToBeNotEmpty(element, attributeName)); + } + + public void waitForElementToHaveText(WebElement element, String title) { + wait.until(ExpectedConditions.textToBePresentInElement(element, title)); + } + + public void waitForElementToBe(WebElement element) { + + wait.until(new ExpectedCondition<Boolean>() { + @Override + public Boolean apply(WebDriver driver) { + return element.getLocation() != null; + } + }); + + } + + public void waitForAttributeToContain(WebElement element, String attributeName, String value) { + wait.until(ExpectedConditions.attributeContains(element, attributeName, value)); + } + + public void waitForElementToHaveText(WebElement element) { + wait.until(new ExpectedCondition<Boolean>() { + @Override + public Boolean apply(WebDriver driver) { + return !element.getText().trim().isEmpty(); + } + }); + } + public void waitForElementToContainText(WebElement element, String text) { + wait.until(ExpectedConditions.textToBePresentInElement(element, text)); + } + + public boolean isVisible(WebElement element){ + log.info("checking if element is visible"); + + try { + waitForElementToBe(element); + return element.isDisplayed(); + } catch (Exception e) { } + return false; + } + + public boolean isEnabled(WebElement element){ + log.info("checking if element is enabled"); + try { + waitForElementToBeEnabled(element); + } catch (Exception e) { + return false; + } + return element.isEnabled(); + } + + public boolean isDisabled(WebElement element){ + log.info("checking if element is disabled"); + try { + waitForElementToBeDisabled(element); + } catch (Exception e) { + return false; + } + return true; + } } diff --git a/smp-ui-tests/src/main/java/pages/components/baseComponents/SMPPage.java b/smp-ui-tests/src/main/java/pages/components/baseComponents/SMPPage.java index 49184788f6e57ca3674232dc5fd70149a04df763..1d1f8e83aa2785852f9cd537844bdcfc88262353 100644 --- a/smp-ui-tests/src/main/java/pages/components/baseComponents/SMPPage.java +++ b/smp-ui-tests/src/main/java/pages/components/baseComponents/SMPPage.java @@ -19,10 +19,11 @@ public class SMPPage extends PageComponent { public void refreshPage() { driver.navigate().refresh(); try { - new SMPPage(driver).pageHeader.waitForTitleToBe(); + pageHeader.sandwichMenu.waitForSandwichMenu(); } catch (Exception e) { e.printStackTrace(); } + waitForXMillis(500); } diff --git a/smp-ui-tests/src/main/java/pages/components/grid/BasicGrid.java b/smp-ui-tests/src/main/java/pages/components/grid/BasicGrid.java index 0421d1b44b131bc67761067e88509354e13fbe53..469639be47b5bf0aa684dec429b2cd4fd5fc2a8d 100644 --- a/smp-ui-tests/src/main/java/pages/components/grid/BasicGrid.java +++ b/smp-ui-tests/src/main/java/pages/components/grid/BasicGrid.java @@ -55,8 +55,8 @@ public class BasicGrid extends PageComponent { waitForXMillis(500); } log.debug("waited for rows to load for ms = 500*" + waits); - waitForXMillis(500); } catch (Exception e) { } + waitForXMillis(500); } @FindBy(css = "datatable-header div.datatable-row-center datatable-header-cell") diff --git a/smp-ui-tests/src/main/java/pages/components/messageArea/AlertArea.java b/smp-ui-tests/src/main/java/pages/components/messageArea/AlertArea.java index c8e6c6ede7341a20e75ba051605d4b33aa1e12bc..3d51fb45b517c2eaf43291b8c6eb595b0e5cae3d 100644 --- a/smp-ui-tests/src/main/java/pages/components/messageArea/AlertArea.java +++ b/smp-ui-tests/src/main/java/pages/components/messageArea/AlertArea.java @@ -23,6 +23,12 @@ public class AlertArea extends PageComponent { private WebElement closeAlertSpan; public AlertMessage getAlertMessage(){ + try { + waitForElementToBeVisible(alertMessage); + } catch (Exception e) { + e.printStackTrace(); + } + if(!alertMessage.isDisplayed()){ log.warn("No messages displayed."); return null; diff --git a/smp-ui-tests/src/main/java/pages/domain/DomainGrid.java b/smp-ui-tests/src/main/java/pages/domain/DomainGrid.java index c0befa30141c6b94c576b2aefad1c70f7ac224ef..01f8b936c21cb60b473b11fd8bf745123b234b46 100644 --- a/smp-ui-tests/src/main/java/pages/domain/DomainGrid.java +++ b/smp-ui-tests/src/main/java/pages/domain/DomainGrid.java @@ -16,6 +16,7 @@ public class DomainGrid extends BasicGrid { private By cellSelector = By.tagName("datatable-body-cell"); public List<DomainRow> getRowsInfo(){ + log.info("getting all row info"); List<DomainRow> rowInfos = new ArrayList<>(); for (WebElement gridRow : gridRows) { diff --git a/smp-ui-tests/src/main/java/pages/domain/DomainPage.java b/smp-ui-tests/src/main/java/pages/domain/DomainPage.java index a610c60c71360d2b25d41cae77b51ca84ca5bc8f..721e079750e1733acd8deb552942f0bb667d0402 100644 --- a/smp-ui-tests/src/main/java/pages/domain/DomainPage.java +++ b/smp-ui-tests/src/main/java/pages/domain/DomainPage.java @@ -42,52 +42,60 @@ public class DomainPage extends SMPPage { public boolean isLoaded(){ - - waitForElementToBeVisible(newBtn); - - if(!cancelBtn.isDisplayed()){return false;} - if(!saveBtn.isDisplayed()){return false;} - if(!newBtn.isDisplayed()){return false;} - if(!newBtn.isEnabled()){return false;} - if(!editBtn.isDisplayed()){return false;} - return deleteBtn.isDisplayed(); + log.info("checking if Domain page is loaded"); + return isVisible(cancelBtn) + && isVisible(saveBtn) + && isVisible(newBtn) + && isEnabled(newBtn) + && isVisible(editBtn) + && isVisible(deleteBtn); } public boolean isCancelButtonEnabled(){ - return cancelBtn.isEnabled(); + log.info("cancel button"); + return isEnabled(cancelBtn); } public boolean isSaveButtonEnabled(){ - return saveBtn.isEnabled(); + log.info("save button"); + return isEnabled(saveBtn); } public boolean isDeleteButtonEnabled(){ - return deleteBtn.isEnabled(); + log.info("delete button"); + return isEnabled(deleteBtn); } public boolean isEditButtonEnabled(){ - return editBtn.isEnabled(); + log.info("edit button"); + return isEnabled(editBtn); } public boolean isNewButtonEnabled(){ - return newBtn.isEnabled(); + log.info("new button"); + return isEnabled(newBtn); } public ConfirmationDialog clickCancel(){ + log.info("cancelling .."); waitForElementToBeClickable(cancelBtn).click(); return new ConfirmationDialog(driver); } public ConfirmationDialog clickSave(){ + log.info("saving ..."); waitForElementToBeClickable(saveBtn).click(); return new ConfirmationDialog(driver); } public void clickDelete(){ + log.info("deleting ..."); waitForElementToBeClickable(deleteBtn).click(); waitForElementToBeEnabled(saveBtn); } public DomainPopup clickNew(){ + log.info("clicking new ..."); waitForElementToBeClickable(newBtn).click(); return new DomainPopup(driver); } public DomainPopup clickEdit(){ + log.info("editing ..."); waitForElementToBeClickable(editBtn).click(); return new DomainPopup(driver); } diff --git a/smp-ui-tests/src/main/java/pages/domain/DomainPopup.java b/smp-ui-tests/src/main/java/pages/domain/DomainPopup.java index 3af71add136348ed36f84c2531d925e3579bd012..8ec1c6d701e8514d92a7f36a4bb5c0fcb27743bc 100644 --- a/smp-ui-tests/src/main/java/pages/domain/DomainPopup.java +++ b/smp-ui-tests/src/main/java/pages/domain/DomainPopup.java @@ -57,30 +57,33 @@ public class DomainPopup extends PageComponent { } public boolean isLoaded() { - waitForElementToBeVisible(okBtn); - if(!okBtn.isDisplayed()){return false;} - if(!domainCodeInput.isDisplayed()){return false;} - if(!smlDomainInput.isDisplayed()){return false;} - if(null == signatureCertSelect){return false;} -// if(!smlClientHeaderInput.isDisplayed()){return false;} - if(null == smlClientAliasSelect){return false;} - return cancelBtn.isDisplayed() && cancelBtn.isEnabled(); + 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() {return waitForElementToBeVisible(domainCodeInput).isEnabled();} - public boolean isSMLDomainInputEnabled() {return waitForElementToBeVisible(smlDomainInput).isEnabled();} + 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); -// clearAndFillInput(smlClientHeaderInput, clientCertHeader); smlClientAliasSelect.selectFirstOption(); } diff --git a/smp-ui-tests/src/main/java/pages/login/LoginPage.java b/smp-ui-tests/src/main/java/pages/login/LoginPage.java index 50f4eef0d414c40eb5fbb63aa1290a1051aff4f2..b75540eae70347583725d554ec86fe1900f39ece 100644 --- a/smp-ui-tests/src/main/java/pages/login/LoginPage.java +++ b/smp-ui-tests/src/main/java/pages/login/LoginPage.java @@ -41,22 +41,22 @@ public class LoginPage extends SMPPage { public boolean isLoaded(){ - log.info("check if is loaded"); + log.info("check if Login page is loaded"); - if(!username.isEnabled()){ + if(!isEnabled(username)){ log.error("Could not find username input!"); return false; } - if(!password.isEnabled()){ + if(!isEnabled(password)){ log.error("Could not find password input!"); return false; } - if(!loginBtn.isDisplayed()){ + if(!isVisible(loginBtn)){ log.error("Could not find login button!"); return false; } - if(!smpVersion.isDisplayed()){ + if(!isVisible(smpVersion)){ log.error("Could not find version text!"); return false; } @@ -66,10 +66,11 @@ public class LoginPage extends SMPPage { public <T extends SMPPage> T login(String user, String pass, Class<T> expect){ log.info("Login started!!"); - username.clear(); - username.sendKeys(user); - password.clear(); - password.sendKeys(pass); + + clearAndFillInput(username, user); + clearAndFillInput(password, pass); + + waitForElementToBeClickable(loginBtn); loginBtn.click(); closeChangePassModal(); @@ -85,6 +86,7 @@ public class LoginPage extends SMPPage { clearAndFillInput(username, user); clearAndFillInput(password, pass); + waitForElementToBeClickable(loginBtn); loginBtn.click(); closeChangePassModal(); @@ -94,9 +96,12 @@ public class LoginPage extends SMPPage { } public void invalidLogin(String user, String pass){ + log.info("Invalid login started!!"); + clearAndFillInput(username, user); clearAndFillInput(password, pass); + waitForElementToBeClickable(loginBtn); loginBtn.click(); } @@ -108,8 +113,11 @@ public class LoginPage extends SMPPage { clearAndFillInput(username, user.get("username")); clearAndFillInput(password, user.get("password")); + waitForElementToBeClickable(loginBtn); loginBtn.click(); + closeChangePassModal(); + log.info("Login action done!"); return new SearchPage(driver); @@ -117,18 +125,22 @@ public class LoginPage extends SMPPage { public String getListedSMPVersion(){ + log.info("getting listed version"); return waitForElementToBeVisible(smpVersion).getText().trim(); } public String getTextInUsernameInput(){ + log.info("getting text in username input"); return waitForElementToBeVisible(username).getText().trim(); } public String getTextInPasswordInput(){ + log.info("getting text in pass input"); return waitForElementToBeVisible(password).getText().trim(); } private void closeChangePassModal(){ + log.info("Closing Change password modal"); try{ waitForElementToBeClickable(dialogOKBtn).click(); waitForElementToBeGone(dialogOKBtn); diff --git a/smp-ui-tests/src/main/java/pages/service_groups/FilterArea.java b/smp-ui-tests/src/main/java/pages/service_groups/FilterArea.java index 5a82558b7da000bf5c7d6e97b2c12b39ff8a43cb..f4fdca14c124c18f7fbc830d17e212f9d173899c 100644 --- a/smp-ui-tests/src/main/java/pages/service_groups/FilterArea.java +++ b/smp-ui-tests/src/main/java/pages/service_groups/FilterArea.java @@ -37,24 +37,30 @@ public class FilterArea extends PageComponent { public String getParticipantIdentifierInputValue() { + log.info("getting text in participant Identifier Input"); + waitForElementToBeVisible(participantIdentifierInput); return participantIdentifierInput.getText().trim(); } public String getParticipantSchemeInputValue() { + log.info("getting text in participant Scheme Input"); + waitForElementToBeVisible(participantSchemeInput); return participantSchemeInput.getText().trim(); } public boolean isLoaded(){ - if(!participantIdentifierInput.isDisplayed()){ + log.info("checking filter area is properly loaded"); + if(!isVisible(participantIdentifierInput)){ return false; } - if(!participantSchemeInput.isDisplayed()){ + if(!isVisible(participantSchemeInput)){ return false; } return domainSelect.isLoaded(); } public void filter(String identifier, String scheme, String domain){ + log.info(String.format("filtering by %s, %s, %s", identifier, scheme, domain)); clearAndFillInput(participantIdentifierInput, identifier); clearAndFillInput(participantSchemeInput, scheme); @@ -62,7 +68,9 @@ public class FilterArea extends PageComponent { domainSelect.selectOptionByText(domain); } - searchButton.click(); + log.info("clicking search"); + waitForElementToBeClickable(searchButton).click(); + waitForXMillis(1000); } diff --git a/smp-ui-tests/src/main/java/pages/service_groups/MetadataGrid.java b/smp-ui-tests/src/main/java/pages/service_groups/MetadataGrid.java index 33bbe533790a622ba2090de731f02fa159fbc111..bd614ea29f824e1a803927adc2905bdbfdb8f750 100644 --- a/smp-ui-tests/src/main/java/pages/service_groups/MetadataGrid.java +++ b/smp-ui-tests/src/main/java/pages/service_groups/MetadataGrid.java @@ -21,6 +21,7 @@ public class MetadataGrid extends PageComponent{ List<WebElement> rowContainers; public List<MetadataRow> getMetadataRows(){ + log.info("getting metadata info"); List<MetadataRow> rowList = new ArrayList<>(); for (WebElement rowContainer : rowContainers) { rowList.add(new MetadataRow(driver, rowContainer)); diff --git a/smp-ui-tests/src/main/java/pages/service_groups/ServiceGroupGrid.java b/smp-ui-tests/src/main/java/pages/service_groups/ServiceGroupGrid.java index 1d3d90c732564a8eeedff2fa79084047072443cd..637c9e7b055f3cd7ba869e6ce8a96e7c48ea7b85 100644 --- a/smp-ui-tests/src/main/java/pages/service_groups/ServiceGroupGrid.java +++ b/smp-ui-tests/src/main/java/pages/service_groups/ServiceGroupGrid.java @@ -27,6 +27,7 @@ public class ServiceGroupGrid extends PageComponent { List<WebElement> rowWrappers; public List<ServiceGroupRow> getRows() { + log.info("getting row info"); List<ServiceGroupRow> rows = new ArrayList<>(); for (WebElement rowWrapper : rowWrappers) { @@ -47,6 +48,7 @@ public class ServiceGroupGrid extends PageComponent { waitForElementToBeClickable(rowWrappers.get(rowNumber)); Actions action = new Actions(driver); action.doubleClick(rowWrappers.get(rowNumber)).perform(); + waitForXMillis(500); } public void selectRow(int rowNumber) { @@ -54,6 +56,7 @@ public class ServiceGroupGrid extends PageComponent { waitForXMillis(500); if(rowNumber>=rowWrappers.size()){return ;} rowWrappers.get(rowNumber).click(); + waitForXMillis(500); } public List<String> getHeaders(){ diff --git a/smp-ui-tests/src/main/java/pages/service_groups/edit/AccordionSection.java b/smp-ui-tests/src/main/java/pages/service_groups/edit/AccordionSection.java index ff08e95a3777614e8fc0a6ef73acd3172e7498ba..3135ddcd03d599c7f9501feb91831db0aea6e62c 100644 --- a/smp-ui-tests/src/main/java/pages/service_groups/edit/AccordionSection.java +++ b/smp-ui-tests/src/main/java/pages/service_groups/edit/AccordionSection.java @@ -15,7 +15,7 @@ import java.util.List; public class AccordionSection extends PageComponent { public AccordionSection(WebDriver driver, WebElement container) { super(driver); - PageFactory.initElements( new AjaxElementLocatorFactory(container, PROPERTIES.TIMEOUT) , this); + PageFactory.initElements(new AjaxElementLocatorFactory(container, PROPERTIES.TIMEOUT), this); } @FindBy(css = "span.mat-content > mat-panel-title") @@ -31,54 +31,75 @@ public class AccordionSection extends PageComponent { @FindBy(tagName = "mat-list-option") List<WebElement> options; - public boolean isExpanded(){ - return options.get(0).isDisplayed(); + public boolean isExpanded() { + log.info("check if expanded"); + return isVisible(options.get(0)); } - public String getTitle(){ + public String getTitle() { + log.info("getting title text"); + waitForElementToBeVisible(title); return title.getText().replaceAll("\\W", "").trim(); } - public String getSelectedCountFullText(){ + + public String getSelectedCountFullText() { + log.info("get Selected Count Full Text"); + waitForElementToBeVisible(selectCount); return selectCount.getText().trim(); } - public Integer getSelectedCount(){ + + public Integer getSelectedCount() { String fullText = getSelectedCountFullText(); return Integer.valueOf(fullText.replaceAll("\\D", "")); } - public void expandSection(){ + + public void expandSection() { + log.info("expanding..."); waitForElementToBeClickable(expandButton).click(); waitForElementToBeVisible(options.get(0)); } - public void selectOptionWithText(String text){ + public void selectOptionWithText(String text) { + log.info("selecting option " + text); for (WebElement option : options) { - if(option.getAttribute("aria-selected").contains("true")){continue;} + if (option.getAttribute("aria-selected").contains("true")) { + continue; + } - if(option.getText().trim().equalsIgnoreCase(text)){ + if (option.getText().trim().equalsIgnoreCase(text)) { + log.info("option found ... selecting"); option.click(); return; } } } - public void selectOptionWithIndex(Integer index){ - if(index>=options.size()){return;} + public void selectOptionWithIndex(Integer index) { + log.info("selecting option " + index); + if (index >= options.size()) { + return; + } WebElement option = options.get(index); - if(option.getAttribute("aria-selected").contains("true")){return;} + if (option.getAttribute("aria-selected").contains("true")) { + return; + } option.click(); return; } - public boolean optionsEnabled(){ + public boolean optionsEnabled() { + log.info("checking if options are enabled"); waitForElementToBeVisible(title); +// waitForElementToBeVisible(options.get(0)); boolean isDisabled = options.get(0).getAttribute("aria-disabled").equalsIgnoreCase("true"); return !isDisabled; } - public List<String> getOptions(){ + public List<String> getOptions() { + log.info("getting options"); List<String> optionStr = new ArrayList<>(); for (WebElement option : options) { optionStr.add(option.getText().trim()); @@ -87,7 +108,4 @@ public class AccordionSection extends PageComponent { } - - - } diff --git a/smp-ui-tests/src/main/java/pages/service_groups/edit/AcordionSection.java b/smp-ui-tests/src/main/java/pages/service_groups/edit/AcordionSection.java deleted file mode 100644 index 36a449a9b862f2acf404a2bd57256a33fab8d980..0000000000000000000000000000000000000000 --- a/smp-ui-tests/src/main/java/pages/service_groups/edit/AcordionSection.java +++ /dev/null @@ -1,93 +0,0 @@ -package pages.service_groups.edit; - -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 org.openqa.selenium.support.pagefactory.DefaultElementLocatorFactory; -import pages.components.baseComponents.PageComponent; -import utils.PROPERTIES; - -import java.util.ArrayList; -import java.util.List; - -public class AcordionSection extends PageComponent { - public AcordionSection(WebDriver driver, WebElement container) { - super(driver); - PageFactory.initElements( new AjaxElementLocatorFactory(container, PROPERTIES.TIMEOUT) , this); - } - - @FindBy(css = "span.mat-content > mat-panel-title") - WebElement title; - - @FindBy(css = "span.mat-content > mat-panel-description > div") - WebElement selectCount; - - - @FindBy(css = ".mat-expansion-indicator") - WebElement expandButton; - - @FindBy(tagName = "mat-list-option") - List<WebElement> options; - - public boolean isExpanded(){ - return options.get(0).isDisplayed(); - } - - public String getTitle(){ - return title.getText().replaceAll("\\W", "").trim(); - } - public String getSelectedCountFullText(){ - return selectCount.getText().trim(); - } - public Integer getSelectedCount(){ - String fullText = getSelectedCountFullText(); - return Integer.valueOf(fullText.replaceAll("\\D", "")); - } - public void expandSection(){ - waitForElementToBeClickable(expandButton).click(); - waitForElementToBeVisible(options.get(0)); - } - - public void selectOptionWithText(String text){ - for (WebElement option : options) { - - if(option.getAttribute("aria-selected").contains("true")){continue;} - - if(option.getText().trim().equalsIgnoreCase(text)){ - option.click(); - return; - } - } - } - - public void selectOptionWithIndex(Integer index){ - if(index>=options.size()){return;} - - WebElement option = options.get(index); - if(option.getAttribute("aria-selected").contains("true")){return;} - - option.click(); - return; - } - - public boolean optionsEnabled(){ - waitForElementToBeVisible(title); - boolean isDisabled = options.get(0).getAttribute("aria-disabled").equalsIgnoreCase("true"); - return !isDisabled; - } - - public List<String> getOptions(){ - List<String> optionStr = new ArrayList<>(); - for (WebElement option : options) { - optionStr.add(option.getText().trim()); - } - return optionStr; - } - - - - - -} diff --git a/smp-ui-tests/src/main/java/pages/service_groups/edit/EditPage.java b/smp-ui-tests/src/main/java/pages/service_groups/edit/EditPage.java index 97ef1902e6dc3842d8451015c292514fbc7a0708..3ea1034abdd49b0ca5f1879083db97f757dd7ad5 100644 --- a/smp-ui-tests/src/main/java/pages/service_groups/edit/EditPage.java +++ b/smp-ui-tests/src/main/java/pages/service_groups/edit/EditPage.java @@ -19,7 +19,7 @@ public class EditPage extends SMPPage { public EditPage(WebDriver driver) { super(driver); this.pageHeader.waitForTitleToBe("Edit"); - PageFactory.initElements( new AjaxElementLocatorFactory(driver, PROPERTIES.TIMEOUT), this); + PageFactory.initElements(new AjaxElementLocatorFactory(driver, PROPERTIES.TIMEOUT), this); filterArea = new FilterArea(driver); } @@ -46,23 +46,37 @@ public class EditPage extends SMPPage { public PaginationControls pagination = new PaginationControls(driver); - public boolean isCancelButtonEnabled(){ - return cancelButton.isEnabled(); + public boolean isCancelButtonEnabled() { + log.info("cancel button"); + return isEnabled(cancelButton); } - public boolean isSaveButtonEnabled(){ - return saveButton.isEnabled(); + + public boolean isSaveButtonEnabled() { + log.info("save button"); + return isEnabled(saveButton); + } + + public boolean isDeleteButtonEnabled() { + log.info("delete button"); + return isEnabled(deleteButton); } - public boolean isDeleteButtonEnabled(){ - return deleteButton.isEnabled(); + + public boolean isEditButtonEnabled() { + log.info("edit button"); + return isEnabled(editButton); } - public boolean isEditButtonEnabled(){ - return editButton.isEnabled(); + + public boolean isNewButtonEnabled() { + log.info("new button"); + return isEnabled(newButton); } - public boolean isNewButtonEnabled(){ return newButton.isEnabled(); } - public ServiceGroupPopup clickEdit(){ - if(!isEditButtonEnabled()){return null;} + public ServiceGroupPopup clickEdit() { + log.info("editing ..."); + if (!isEditButtonEnabled()) { + return null; + } editButton.click(); @@ -70,40 +84,42 @@ public class EditPage extends SMPPage { } - public ServiceGroupPopup clickNew(){ + public ServiceGroupPopup clickNew() { + log.info("new ..."); waitForElementToBeClickable(newButton).click(); return new ServiceGroupPopup(driver); } - public ConfirmationDialog clickSave(){ + + public ConfirmationDialog clickSave() { + log.info("saving ..."); waitForElementToBeClickable(saveButton).click(); return new ConfirmationDialog(driver); } - public ConfirmationDialog clickCancel(){ + public ConfirmationDialog clickCancel() { + log.info("canceling ..."); waitForElementToBeClickable(cancelButton).click(); return new ConfirmationDialog(driver); } - public void clickDelete(){ + public void clickDelete() { + log.info("deleting ..."); waitForElementToBeClickable(deleteButton).click(); } - public boolean isNewButtonPresent(){ - try { - return waitForElementToBeVisible(newButton).isDisplayed(); - } catch (Exception e) { } - return false; + public boolean isNewButtonPresent() { + log.info("check if NEW button is visible"); + return isVisible(newButton); } - public boolean isDeleteButtonPresent(){ - try { - return waitForElementToBeVisible(deleteButton).isDisplayed(); - } catch (Exception e) { } - return false; + public boolean isDeleteButtonPresent() { + log.info("check if DELETE button is visible"); + return isVisible(deleteButton); } - public ServiceGroupGrid getGrid(){ + public ServiceGroupGrid getGrid() { + log.info("getting grid"); waitForElementToBeVisible(searchTable); ServiceGroupGrid grid = new ServiceGroupGrid(driver, searchTable); return grid; @@ -111,15 +127,18 @@ public class EditPage extends SMPPage { public void addNewServiceGroup(String identifier, String scheme, List<String> owners, List<String> domains, String extension) { + log.info("adding new service group"); waitForElementToBeClickable(newButton).click(); ServiceGroupPopup popup = new ServiceGroupPopup(driver); popup.fillForm(identifier, scheme, owners, domains, extension); popup.clickOK(); + waitForXMillis(300); } - public void saveChangesAndConfirm(){ + public void saveChangesAndConfirm() { + log.info("saving.."); waitForElementToBeClickable(saveButton).click(); new ConfirmationDialog(driver).confirm(); } diff --git a/smp-ui-tests/src/main/java/pages/service_groups/edit/MetadataRowE.java b/smp-ui-tests/src/main/java/pages/service_groups/edit/MetadataRowE.java index 2b91f23525cc81dc0345e70322fc74de9c5dc6e3..a536e956b413926cae833e93c57941bd0c6d3747 100644 --- a/smp-ui-tests/src/main/java/pages/service_groups/edit/MetadataRowE.java +++ b/smp-ui-tests/src/main/java/pages/service_groups/edit/MetadataRowE.java @@ -23,16 +23,15 @@ public class MetadataRowE extends MetadataRow { @FindBy(css = "datatable-body-cell:nth-child(5) > div > div > button:nth-child(2)") WebElement deleteMetadataButton; - public void clickEdit(){ + public void clickEdit() { + log.info("row action - editing .."); waitForElementToBeClickable(editMetadataButton).click(); } - public void clickDelete(){ + public void clickDelete() { + log.info("row action - deleting .."); waitForElementToBeClickable(deleteMetadataButton).click(); } - - - } diff --git a/smp-ui-tests/src/main/java/pages/service_groups/edit/ServiceGroupPopup.java b/smp-ui-tests/src/main/java/pages/service_groups/edit/ServiceGroupPopup.java index 5c58733a84fe6dccbd909783d28d1b588ece138d..0191de265381141550cd1b71afedf9dc600d6f44 100644 --- a/smp-ui-tests/src/main/java/pages/service_groups/edit/ServiceGroupPopup.java +++ b/smp-ui-tests/src/main/java/pages/service_groups/edit/ServiceGroupPopup.java @@ -62,51 +62,64 @@ public class ServiceGroupPopup extends PageComponent { public boolean isOKButtonPresent(){ - return okButton.isDisplayed(); + log.info("is ok button visible"); + return isVisible(okButton); } public boolean isCancelButtonPresent(){ - return cancelButton.isDisplayed(); + log.info("is cancel button visible"); + return isVisible(cancelButton); } public boolean isExtensionAreaEditable(){ - return null == extensionTextArea.getAttribute("disabled"); + log.info("is Extension Area Editable"); + return isEnabled( extensionTextArea); } public boolean isParticipantIdentifierInputEnabled(){ - return null == participantIdentifierInput.getAttribute("disabled"); + log.info("is Participant Identifier Input Enabled"); + return isEnabled( participantIdentifierInput); } public boolean isParticipantSchemeInputEnabled(){ - return null == participantSchemeInput.getAttribute("disabled"); + log.info("is Participant Scheme Input Enabled"); + return isEnabled( participantSchemeInput); } public boolean isOwnersPanelEnabled(){ + log.info("check owner panel is enabled"); return ownersPanel.optionsEnabled(); } public boolean isOwnersPanelPresent(){ + log.info("check owner panel is present"); return null == ownersPanel; } public boolean isDomainsPanelEnabled(){ + log.info("check domains panel is enabled"); return domainsPanel.optionsEnabled(); } public void clickOK(){ + log.info("click ok.."); waitForElementToBeClickable(okButton).click(); waitForElementToBeGone(okButton); } public void clickClear(){ + log.info("click clear.."); waitForElementToBeClickable(clearExtensionButton).click(); waitForXMillis(100); } public void clickCancel(){ + log.info("click cancel.."); waitForElementToBeClickable(cancelButton).click(); waitForElementToBeGone(okButton); } public void fillForm(String identifier, String scheme, List<String> owners, List<String> domains, String extension){ + log.info("filling form.."); + waitForElementToBeVisible(participantIdentifierInput); clearAndFillInput(participantIdentifierInput, identifier); @@ -139,6 +152,8 @@ public class ServiceGroupPopup extends PageComponent { } public String getExtensionAreaContent(){ + log.info("getting Extension Area Content"); + waitForElementToBeVisible(extensionTextArea); waitForXMillis(500); return extensionTextArea.getAttribute("value").trim(); diff --git a/smp-ui-tests/src/main/java/pages/service_groups/edit/ServiceMetadataPopup.java b/smp-ui-tests/src/main/java/pages/service_groups/edit/ServiceMetadataPopup.java index 2da6b032a27ce95ebe06bd11dcd04d173261f534..8e73058c22a534c25ccaee3126d79d434843618e 100644 --- a/smp-ui-tests/src/main/java/pages/service_groups/edit/ServiceMetadataPopup.java +++ b/smp-ui-tests/src/main/java/pages/service_groups/edit/ServiceMetadataPopup.java @@ -13,7 +13,7 @@ public class ServiceMetadataPopup extends PageComponent { public ServiceMetadataPopup(WebDriver driver) { super(driver); - PageFactory.initElements( new AjaxElementLocatorFactory(driver, PROPERTIES.TIMEOUT), this); + PageFactory.initElements(new AjaxElementLocatorFactory(driver, PROPERTIES.TIMEOUT), this); domainSelect = new GenericSelect(driver, domainSelectContainer); } @@ -64,20 +64,46 @@ public class ServiceMetadataPopup extends PageComponent { } - public String getParticipantSchemeValue(){return participantSchemaInput.getAttribute("value").trim();} - public String getParticipantIdentifierValue(){return participantIdentifierInput.getAttribute("value").trim();} - public String getDocumentIdentifierValue(){return documentIdentifierInput.getAttribute("value").trim();} - public String getDocumentSchemeValue(){return documentSchemeInput.getAttribute("value").trim();} + public String getParticipantSchemeValue() { + waitForElementToBeVisible(participantSchemaInput); + return participantSchemaInput.getAttribute("value").trim(); + } + + public String getParticipantIdentifierValue() { + waitForElementToBeVisible(participantIdentifierInput); + return participantIdentifierInput.getAttribute("value").trim(); + } + + public String getDocumentIdentifierValue() { + waitForElementToBeVisible(documentIdentifierInput); + return documentIdentifierInput.getAttribute("value").trim(); + } + + public String getDocumentSchemeValue() { + waitForElementToBeVisible(documentSchemeInput); + return documentSchemeInput.getAttribute("value").trim(); + } - public boolean isParticipantSchemeEnabled(){return null == participantSchemaInput.getAttribute("disabled");} - public boolean isParticipantIdentifierEnabled(){return null == participantIdentifierInput.getAttribute("disabled");} - public boolean isDocumentIdentifierEnabled(){return null == documentIdentifierInput.getAttribute("disabled");} - public boolean isDocumentSchemeEnabled(){return null == documentSchemeInput.getAttribute("disabled");} + public boolean isParticipantSchemeEnabled() { + return isEnabled(participantSchemaInput); + } + public boolean isParticipantIdentifierEnabled() { + return isEnabled(participantIdentifierInput); + } + public boolean isDocumentIdentifierEnabled() { + return isEnabled(documentIdentifierInput); + } + + public boolean isDocumentSchemeEnabled() { + return isEnabled(documentSchemeInput); + } - public String getListedDomain(){return domainSelect.getSelectedValue().trim();} + public String getListedDomain() { + return domainSelect.getSelectedValue().trim(); + } } diff --git a/smp-ui-tests/src/main/java/pages/service_groups/search/SearchPage.java b/smp-ui-tests/src/main/java/pages/service_groups/search/SearchPage.java index a5946408ff4404e57fd4decf00bb69e3ad95ff6b..a725fb76e3cebb63c45ebf868a3105439caa8c01 100644 --- a/smp-ui-tests/src/main/java/pages/service_groups/search/SearchPage.java +++ b/smp-ui-tests/src/main/java/pages/service_groups/search/SearchPage.java @@ -29,6 +29,7 @@ public class SearchPage extends SMPPage { public boolean isLoaded() { + log.info("checking if search page is loaded"); if(!filters.isLoaded()){ return false;} return serviceGroupGrid.isLoaded(); } diff --git a/smp-ui-tests/src/main/java/pages/users/UserPopup.java b/smp-ui-tests/src/main/java/pages/users/UserPopup.java index 32794e7133830b80cfea54fee511abbbc102b3aa..748478d7a8061b8a4adabc1ce45a739972922e6d 100644 --- a/smp-ui-tests/src/main/java/pages/users/UserPopup.java +++ b/smp-ui-tests/src/main/java/pages/users/UserPopup.java @@ -15,27 +15,25 @@ public class UserPopup extends PageComponent { } - - @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; - + @FindBy(id = "password_id") WebElement passwordInput; - + @SuppressWarnings("SpellCheckingInspection") @FindBy(id = "usernameconfirmation_id") WebElement confirmationInput; - + @FindBy(css = "mat-form-field.username> div > div.mat-form-field-flex > div > div") WebElement usernameValidationError; @@ -47,54 +45,55 @@ public class UserPopup extends PageComponent { @FindBy(css = "mat-dialog-content > table > tbody > tr > td > button:nth-child(1)") WebElement okBtn; - + @FindBy(css = "mat-dialog-content > table > tbody > tr > td > button:nth-child(2)") WebElement cancelBtn; - + @FindBy(css = "#role_id") WebElement rolesSelectContainer; public GenericSelect rolesSelect; - - - public boolean isOKButtonActive(){ - return waitForElementToBeVisible(okBtn).isEnabled(); + public boolean isOKButtonActive() { + return isEnabled(okBtn); } - - public boolean isCancelButtonActive(){ - return waitForElementToBeVisible(cancelBtn).isEnabled(); + + public boolean isCancelButtonActive() { + return isEnabled(cancelBtn); } - public void fillData(String user, String email, String role, String password, String confirmation){ + 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(){ + + public void clickOK() { + log.info("click OK"); waitForElementToBeClickable(okBtn); okBtn.click(); waitForElementToBeGone(okBtn); } - - public void clickCancel(){ + + public void clickCancel() { + log.info("click cancel"); waitForElementToBeClickable(cancelBtn); cancelBtn.click(); waitForElementToBeGone(cancelBtn); } - - + + public void clickUserDetailsToggle() { - userDetailsToggle.click(); + log.info("details toggle"); + waitForElementToBeClickable(userDetailsToggle).click(); waitForElementToBeEnabled(userNameInput); } - + public void fillDetailsForm(String username, String pass, String confirmation) { clearAndFillInput(userNameInput, username); clearAndFillInput(passwordInput, pass); @@ -103,26 +102,31 @@ public class UserPopup extends PageComponent { } - public String getUsernameValidationError(){ + public String getUsernameValidationError() { try { + waitForElementToBeVisible(usernameValidationError); return usernameValidationError.getText(); - } catch (Exception e) { } + } catch (Exception e) { + } return null; } - public String getPassValidationError(){ - + public String getPassValidationError() { try { + waitForElementToBeVisible(passValidationError); return passValidationError.getText(); - } catch (Exception e) { } + } catch (Exception e) { + } return null; } - public String getConfirmationPassValidationError(){ + public String getConfirmationPassValidationError() { try { + waitForElementToBeVisible(passConfirmationValidationError); return passConfirmationValidationError.getText(); - } catch (Exception e) { } + } catch (Exception e) { + } return null; } } diff --git a/smp-ui-tests/src/main/java/pages/users/UsersPage.java b/smp-ui-tests/src/main/java/pages/users/UsersPage.java index 8464baa49671eb9ccce6cae485a82e4b1deb81c9..6c9b0b67d67b722e4b5191351839d9b9896a1832 100644 --- a/smp-ui-tests/src/main/java/pages/users/UsersPage.java +++ b/smp-ui-tests/src/main/java/pages/users/UsersPage.java @@ -44,46 +44,54 @@ public class UsersPage extends SMPPage { public boolean isLoaded(){ - - if(!cancelBtn.isDisplayed()){return false;} - if(!saveBtn.isDisplayed()){return false;} - if(!newBtn.isDisplayed()){return false;} - if(!newBtn.isEnabled()){return false;} - if(!editBtn.isDisplayed()){return false;} - return deleteBtn.isDisplayed(); + log.info("checking Users page is loaded"); + + return isVisible(cancelBtn) + && isVisible(saveBtn) + && isVisible(newBtn) + && isEnabled(newBtn) + && isVisible(editBtn) + && isVisible(deleteBtn); } public boolean isCancelButtonEnabled(){ - waitForElementToBeEnabled(cancelBtn); - return cancelBtn.isEnabled(); + log.info("cancel button"); + return isEnabled(cancelBtn); } public boolean isSaveButtonEnabled(){ - waitForElementToBeEnabled(saveBtn); - return saveBtn.isEnabled(); + log.info("save button"); + return isEnabled(saveBtn); } public boolean isDeleteButtonEnabled(){ waitForXMillis(200); - return deleteBtn.isEnabled(); + log.info("delete button"); + return isEnabled(deleteBtn); } public ConfirmationDialog clickCancel(){ + log.info("click cancel button"); waitForElementToBeClickable(cancelBtn).click(); return new ConfirmationDialog(driver); } public ConfirmationDialog clickSave(){ + log.info("click save button"); waitForElementToBeClickable(saveBtn).click(); return new ConfirmationDialog(driver); } public void clickDelete(){ + log.info("click delete button"); waitForElementToBeClickable(deleteBtn).click(); } public UserPopup clickNew(){ + log.info("click new button"); waitForElementToBeClickable(newBtn).click(); return new UserPopup(driver); } + public UserPopup clickEdit(){ + log.info("click edit button"); waitForElementToBeClickable(editBtn).click(); return new UserPopup(driver); } @@ -96,10 +104,11 @@ public class UsersPage extends SMPPage { public void createUser(){ + log.info("create user"); + waitForElementToBeClickable(newBtn).click(); UserPopup popup = new UserPopup(driver); -// popup.fillData(user,"",role,password,password); popup.clickOK(); } diff --git a/smp-ui-tests/src/main/resources/log4j.properties b/smp-ui-tests/src/main/resources/log4j.properties index 2498cfec2b33432b20707943fca37a3c16a15052..5322420656ba03cc44e7d06ef2eff77ac371e57a 100644 --- a/smp-ui-tests/src/main/resources/log4j.properties +++ b/smp-ui-tests/src/main/resources/log4j.properties @@ -6,4 +6,5 @@ log4j.appender.A1=org.apache.log4j.ConsoleAppender # A1 uses PatternLayout. log4j.appender.A1.layout=org.apache.log4j.PatternLayout -log4j.appender.A1.layout.ConversionPattern=%d %-5p %c - %m%n \ No newline at end of file +#log4j.appender.A1.layout.ConversionPattern=%d %-5p %c - %m%n +log4j.appender.A1.layout.ConversionPattern=%d %x %5p [%t] - (%c:%L) - %m%n \ No newline at end of file diff --git a/smp-ui-tests/src/test/java/ui/LoginPgTest.java b/smp-ui-tests/src/test/java/ui/LoginPgTest.java index f35f6f8e9852d891cb5b8ab5107b4be72094898d..68788d9f1dc01185f6e0de88bfaa5955bbe4c9eb 100644 --- a/smp-ui-tests/src/test/java/ui/LoginPgTest.java +++ b/smp-ui-tests/src/test/java/ui/LoginPgTest.java @@ -13,8 +13,6 @@ import utils.Generator; import utils.enums.SMPMessages; import utils.rest.SMPRestClient; -import java.util.HashMap; - public class LoginPgTest extends BaseTest { @@ -97,11 +95,11 @@ public class LoginPgTest extends BaseTest { soft.assertTrue(loginPage.getTextInPasswordInput().isEmpty(), "User input is empty by default"); soft.assertTrue(loginPage.getTextInUsernameInput().isEmpty(), "Password input is empty by default"); - soft.assertTrue(loginPage.sidebar.isSearchLnkVisible(), "Search link is visible"); + soft.assertTrue(loginPage.sidebar.isSearchLnkEnabled(), "Search link is visible"); - soft.assertFalse(loginPage.sidebar.isEditLnkVisible(), "Edit link is not visible"); - soft.assertFalse(loginPage.sidebar.isDomainLnkVisible(), "Domain link is not visible"); - soft.assertFalse(loginPage.sidebar.isUsersLnkVisible(), "Users link is not visible"); + soft.assertFalse(loginPage.sidebar.isEditLnkEnabled(), "Edit link is not visible"); + soft.assertFalse(loginPage.sidebar.isDomainLnkEnabled(), "Domain link is not visible"); + soft.assertFalse(loginPage.sidebar.isUsersLnkEnabled(), "Users link is not visible"); soft.assertAll(); } @@ -147,11 +145,11 @@ public class LoginPgTest extends BaseTest { soft.assertEquals(message.getMessage(), SMPMessages.MSG_1, "Check the error message content"); - soft.assertTrue(loginPage.sidebar.isSearchLnkVisible(), "Search link is still available in the sidebar"); - soft.assertFalse(loginPage.sidebar.isEditLnkVisible(), "Edit link is NOT available in the sidebar"); + soft.assertTrue(loginPage.sidebar.isSearchLnkEnabled(), "Search link is still available in the sidebar"); + soft.assertFalse(loginPage.sidebar.isEditLnkEnabled(), "Edit link is NOT available in the sidebar"); - soft.assertFalse(loginPage.sidebar.isDomainLnkVisible(), "Domain link is NOT available in the sidebar"); - soft.assertFalse(loginPage.sidebar.isUsersLnkVisible(), "Users link is NOT available in the sidebar"); + soft.assertFalse(loginPage.sidebar.isDomainLnkEnabled(), "Domain link is NOT available in the sidebar"); + soft.assertFalse(loginPage.sidebar.isUsersLnkEnabled(), "Users link is NOT available in the sidebar"); soft.assertAll(); diff --git a/smp-ui-tests/src/test/java/ui/PrivilegesTests.java b/smp-ui-tests/src/test/java/ui/PrivilegesTests.java index 703d5693c6d9b8e56dd80a98a1ea72a7a9db2ba1..58a0f265da7d4202d63c880f2f847fe2f0fc7956 100644 --- a/smp-ui-tests/src/test/java/ui/PrivilegesTests.java +++ b/smp-ui-tests/src/test/java/ui/PrivilegesTests.java @@ -40,19 +40,19 @@ public class PrivilegesTests extends BaseTest { SearchPage page = new SearchPage(driver); - soft.assertTrue(page.sidebar.isSearchLnkVisible(), "Search link is visible on Search page"); - soft.assertFalse(page.sidebar.isEditLnkVisible(), "Edit link is NOT visible on Search page"); - soft.assertFalse(page.sidebar.isDomainLnkVisible(), "Domain link is NOT visible on Search page"); - soft.assertFalse(page.sidebar.isUsersLnkVisible(), "Users link is NOT visible on Search page"); + soft.assertTrue(page.sidebar.isSearchLnkEnabled(), "Search link is visible on Search page"); + soft.assertFalse(page.sidebar.isEditLnkEnabled(), "Edit link is NOT visible on Search page"); + soft.assertFalse(page.sidebar.isDomainLnkEnabled(), "Domain link is NOT visible on Search page"); + soft.assertFalse(page.sidebar.isUsersLnkEnabled(), "Users link is NOT visible on Search page"); logger.info("Going to the login page"); page.pageHeader.goToLogin(); LoginPage loginPage = new LoginPage(driver); - soft.assertTrue(loginPage.sidebar.isSearchLnkVisible(), "Search link is visible on Login page"); - soft.assertFalse(loginPage.sidebar.isEditLnkVisible(), "Edit link is NOT visible on Login page"); - soft.assertFalse(loginPage.sidebar.isDomainLnkVisible(), "Domain link is NOT visible on Login page"); - soft.assertFalse(loginPage.sidebar.isUsersLnkVisible(), "Users link is NOT visible on Login page"); + soft.assertTrue(loginPage.sidebar.isSearchLnkEnabled(), "Search link is visible on Login page"); + soft.assertFalse(loginPage.sidebar.isEditLnkEnabled(), "Edit link is NOT visible on Login page"); + soft.assertFalse(loginPage.sidebar.isDomainLnkEnabled(), "Domain link is NOT visible on Login page"); + soft.assertFalse(loginPage.sidebar.isUsersLnkEnabled(), "Users link is NOT visible on Login page"); soft.assertAll(); } @@ -84,11 +84,11 @@ public class PrivilegesTests extends BaseTest { soft.assertTrue(loginPage.pageHeader.sandwichMenu.isLoggedIn(), "Check that the user is logged in"); - soft.assertTrue(loginPage.sidebar.isSearchLnkVisible(), "Search link is visible after login for SG_ADMIN"); - soft.assertTrue(loginPage.sidebar.isEditLnkVisible(), "Edit link is visible after login for SG_ADMIN"); + soft.assertTrue(loginPage.sidebar.isSearchLnkEnabled(), "Search link is visible after login for SG_ADMIN"); + soft.assertTrue(loginPage.sidebar.isEditLnkEnabled(), "Edit link is visible after login for SG_ADMIN"); - soft.assertFalse(loginPage.sidebar.isDomainLnkVisible(), "Domain link is NOT visible after login for SG_ADMIN"); - soft.assertFalse(loginPage.sidebar.isUsersLnkVisible(), "Users link is NOT visible after login for SG_ADMIN"); + soft.assertFalse(loginPage.sidebar.isDomainLnkEnabled(), "Domain link is NOT visible after login for SG_ADMIN"); + soft.assertFalse(loginPage.sidebar.isUsersLnkEnabled(), "Users link is NOT visible after login for SG_ADMIN"); // going to check privileges on Edit page for SG_ADMIN logger.info("Going to edit page"); @@ -109,11 +109,11 @@ public class PrivilegesTests extends BaseTest { soft.assertFalse(loginPage.pageHeader.sandwichMenu.isLoggedIn(), "Check that the user is logged out"); - soft.assertTrue(loginPage.sidebar.isSearchLnkVisible(), "Search link is visible after logout"); - soft.assertFalse(loginPage.sidebar.isEditLnkVisible(), "Edit link is NOT visible after logout"); + soft.assertTrue(loginPage.sidebar.isSearchLnkEnabled(), "Search link is visible after logout"); + soft.assertFalse(loginPage.sidebar.isEditLnkEnabled(), "Edit link is NOT visible after logout"); - soft.assertFalse(loginPage.sidebar.isDomainLnkVisible(), "Domain link is NOT visible after logout"); - soft.assertFalse(loginPage.sidebar.isUsersLnkVisible(), "Users link is NOT visible after logout"); + soft.assertFalse(loginPage.sidebar.isDomainLnkEnabled(), "Domain link is NOT visible after logout"); + soft.assertFalse(loginPage.sidebar.isUsersLnkEnabled(), "Users link is NOT visible after logout"); SMPRestClient.deleteSG(pi); @@ -134,11 +134,11 @@ public class PrivilegesTests extends BaseTest { soft.assertTrue(loginPage.pageHeader.sandwichMenu.isLoggedIn()); - soft.assertTrue(loginPage.sidebar.isSearchLnkVisible()); - soft.assertFalse(loginPage.sidebar.isEditLnkVisible()); + soft.assertTrue(loginPage.sidebar.isSearchLnkEnabled()); + soft.assertFalse(loginPage.sidebar.isEditLnkEnabled()); - soft.assertTrue(loginPage.sidebar.isDomainLnkVisible()); - soft.assertTrue(loginPage.sidebar.isUsersLnkVisible()); + soft.assertTrue(loginPage.sidebar.isDomainLnkEnabled()); + soft.assertTrue(loginPage.sidebar.isUsersLnkEnabled()); soft.assertAll(); @@ -162,11 +162,11 @@ public class PrivilegesTests extends BaseTest { soft.assertTrue(loginPage.pageHeader.sandwichMenu.isLoggedIn(), "Check that the user is logged in"); - soft.assertTrue(loginPage.sidebar.isSearchLnkVisible(), "Search link is visible after login for SMP_ADMIN"); - soft.assertTrue(loginPage.sidebar.isEditLnkVisible(), "Edit link is visible after login for SMP_ADMIN"); + soft.assertTrue(loginPage.sidebar.isSearchLnkEnabled(), "Search link is visible after login for SMP_ADMIN"); + soft.assertTrue(loginPage.sidebar.isEditLnkEnabled(), "Edit link is visible after login for SMP_ADMIN"); - soft.assertFalse(loginPage.sidebar.isDomainLnkVisible(), "Domain link is NOT visible after login for SMP_ADMIN"); - soft.assertFalse(loginPage.sidebar.isUsersLnkVisible(), "Users link is NOT visible after login for SMP_ADMIN"); + soft.assertFalse(loginPage.sidebar.isDomainLnkEnabled(), "Domain link is NOT visible after login for SMP_ADMIN"); + soft.assertFalse(loginPage.sidebar.isUsersLnkEnabled(), "Users link is NOT visible after login for SMP_ADMIN"); // going to check privileges on Edit page for SMP_ADMIN logger.info("Going to edit page"); @@ -187,11 +187,11 @@ public class PrivilegesTests extends BaseTest { soft.assertFalse(loginPage.pageHeader.sandwichMenu.isLoggedIn(), "Check that the user is logged out"); - soft.assertTrue(loginPage.sidebar.isSearchLnkVisible(), "Search link is visible after logout"); - soft.assertFalse(loginPage.sidebar.isEditLnkVisible(), "Edit link is NOT visible after logout"); + soft.assertTrue(loginPage.sidebar.isSearchLnkEnabled(), "Search link is visible after logout"); + soft.assertFalse(loginPage.sidebar.isEditLnkEnabled(), "Edit link is NOT visible after logout"); - soft.assertFalse(loginPage.sidebar.isDomainLnkVisible(), "Domain link is NOT visible after logout"); - soft.assertFalse(loginPage.sidebar.isUsersLnkVisible(), "Users link is NOT visible after logout"); + soft.assertFalse(loginPage.sidebar.isDomainLnkEnabled(), "Domain link is NOT visible after logout"); + soft.assertFalse(loginPage.sidebar.isUsersLnkEnabled(), "Users link is NOT visible after logout"); soft.assertAll(); } diff --git a/smp-ui-tests/src/test/java/ui/SearchPgTest.java b/smp-ui-tests/src/test/java/ui/SearchPgTest.java index 3e179e8b1d809f685d2cd8396e35d631f02cb98a..99daa9e8a3938ea8141591520705c03c9f56b2cf 100644 --- a/smp-ui-tests/src/test/java/ui/SearchPgTest.java +++ b/smp-ui-tests/src/test/java/ui/SearchPgTest.java @@ -316,7 +316,6 @@ public class SearchPgTest extends BaseTest { searchPage.filters.filter(participantID, participantScheme, SMPRestClient.getDomainSubDomainCombo(createdDomains.get(0))); List<ServiceGroupRow> results = searchPage.serviceGroupGrid.getRows(); -// soft.assertTrue(results.size() == 1, "Results size is 1 (first search)"); soft.assertEquals(results.size() , 1, "Results size is 1 (first search)"); soft.assertEquals(results.get(0).getParticipantIdentifier().toLowerCase(), participantID.toLowerCase(), "First and only result is the one we entered and is found when filtering by first domain");