From def0967fd010edfd96362cca715d22e8b9a3d019 Mon Sep 17 00:00:00 2001 From: Catalin Comanici <Catalin.COMANICI@ext.ec.europa.eu> Date: Thu, 13 Oct 2022 14:01:24 +0200 Subject: [PATCH] minor fixes --- .../baseComponents/PageComponent.java | 350 +++-- .../java/pages/components/grid/BasicGrid.java | 87 +- .../main/java/pages/domain/DomainPopup.java | 31 +- .../pages/password/PasswordChangepopup.java | 237 ++-- .../service_groups/edit/AccordionSection.java | 19 +- .../pages/service_groups/edit/EditPage.java | 2 + .../edit/ServiceGroupPopup.java | 4 +- .../src/main/java/pages/users/UserPopup.java | 499 +++---- .../src/main/java/utils/DriverManager.java | 20 +- .../src/main/java/utils/Generator.java | 15 +- .../customReporter/ExcelTestReporter.java | 1 - .../src/test/java/ui/DomainPgTest.java | 17 +- smp-ui-tests/src/test/java/ui/EditPgTest.java | 51 +- .../src/test/java/ui/UsersPgTest.java | 1231 ++++++++--------- 14 files changed, 1256 insertions(+), 1308 deletions(-) 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 91bda2be3..c882b8d5e 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 @@ -1,7 +1,6 @@ package pages.components.baseComponents; -import com.google.common.base.Stopwatch; import org.apache.log4j.Logger; import org.openqa.selenium.By; import org.openqa.selenium.JavascriptExecutor; @@ -15,184 +14,177 @@ import utils.PROPERTIES; public class PageComponent { - protected WebDriver driver; - protected WebDriverWait wait; - protected Logger log = Logger.getLogger(this.getClass()); - protected By loadingBar = By.cssSelector(".container .bar"); - - - public PageComponent(WebDriver driver) { - this.driver = driver; - this.wait = new WebDriverWait(this.driver, PROPERTIES.TIMEOUT); - } - - public WebElement waitForElementToBeClickable(WebElement element) { - return wait.until(ExpectedConditions.elementToBeClickable(element)); - } - - public WebElement waitForElementToBeVisible(WebElement element) { - return wait.until(ExpectedConditions.visibilityOf(element)); - } - - public WebElement waitForElementToBeVisible(By elementSelector) { - return wait.until(ExpectedConditions.visibilityOfElementLocated(elementSelector)); - } - - public void waitForElementToBeEnabled(WebElement element) { - int maxTimeout = PROPERTIES.SHORT_UI_TIMEOUT * 1000; - int waitedSoFar = 0; - while ((null != element.getAttribute("disabled")) && (waitedSoFar < maxTimeout)) { - waitedSoFar += 100; - waitForXMillis(100); - } - } - - public void waitForElementToBeDisabled(WebElement element) { - int maxTimeout = PROPERTIES.SHORT_UI_TIMEOUT * 1000; - int waitedSoFar = 0; - while ((null == element.getAttribute("disabled")) && (waitedSoFar < maxTimeout)) { - waitedSoFar += 100; - waitForXMillis(100); - } - } - - public void waitForElementToBeGone(WebElement element) { - waitForXMillis(1000); - } - - - public void waitForNumberOfWindowsToBe(int noOfWindows) { - try { - wait.until(numberOfWindowsToBe(noOfWindows)); - } catch (Exception e) { - } - } - - public void clearAndFillInput(WebElement element, String toFill) { - - log.info("clearing input"); - waitForElementToBeEnabled(element); - element.clear(); - element.sendKeys(toFill); - log.info("filled in text " + toFill); - } - - public void clickVoidSpace() { - log.info("clicking void"); - try { - waitForXMillis(500); - ((JavascriptExecutor) driver).executeScript("document.querySelector('[class*=\"overlay-backdrop\"]').click()"); - waitForXMillis(500); - } catch (Exception e) { - } - waitForXMillis(500); - } - - private ExpectedCondition<Boolean> numberOfWindowsToBe(final int numberOfWindows) { - return new ExpectedCondition<Boolean>() { - @Override - public Boolean apply(WebDriver driver) { - 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(ExpectedConditions.visibilityOf(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; - } - - public void waitForRowsToLoad() { - - log.info("waiting for rows to load"); - try { - waitForXMillis(100); - int bars = 1; - int waits = 0; - while (bars > 0 && waits < 30) { - Object tmp = ((JavascriptExecutor) driver).executeScript("return document.querySelectorAll('.container .bar').length;"); - bars = Integer.valueOf(tmp.toString()); - waits++; - waitForXMillis(200); - } - log.debug("waited for rows to load for ms = 200*" + waits); - waitForXMillis(200); - } catch (Exception e) { - } - - } + protected WebDriver driver; + protected WebDriverWait wait; + protected Logger log = Logger.getLogger(this.getClass()); + protected By loadingBar = By.cssSelector(".container .bar"); + + + public PageComponent(WebDriver driver) { + this.driver = driver; + this.wait = new WebDriverWait(this.driver, PROPERTIES.TIMEOUT); + } + + public WebElement waitForElementToBeClickable(WebElement element) { + return wait.until(ExpectedConditions.elementToBeClickable(element)); + } + + public WebElement waitForElementToBeVisible(WebElement element) { + return wait.until(ExpectedConditions.visibilityOf(element)); + } + + public WebElement waitForElementToBeVisible(By elementSelector) { + return wait.until(ExpectedConditions.visibilityOfElementLocated(elementSelector)); + } + + public void waitForElementToBeEnabled(WebElement element) { + int maxTimeout = PROPERTIES.SHORT_UI_TIMEOUT * 1000; + int waitedSoFar = 0; + while ((null != element.getAttribute("disabled")) && (waitedSoFar < maxTimeout)) { + waitedSoFar += 100; + waitForXMillis(100); + } + } + + public void waitForElementToBeDisabled(WebElement element) { + int maxTimeout = PROPERTIES.SHORT_UI_TIMEOUT * 1000; + int waitedSoFar = 0; + while ((null == element.getAttribute("disabled")) && (waitedSoFar < maxTimeout)) { + waitedSoFar += 100; + waitForXMillis(100); + } + } + + public void waitForElementToBeGone(WebElement element) { + waitForXMillis(1000); + } + + + public void waitForNumberOfWindowsToBe(int noOfWindows) { + try { + wait.until(numberOfWindowsToBe(noOfWindows)); + } catch (Exception e) { + } + } + + public void clearAndFillInput(WebElement element, String toFill) { + + log.info("clearing input"); + waitForElementToBeEnabled(element); + element.clear(); + element.sendKeys(toFill); + log.info("filled in text " + toFill); + } + + public void clickVoidSpace() { + log.info("clicking void"); + try { + waitForXMillis(500); + ((JavascriptExecutor) driver).executeScript("document.querySelector('[class*=\"overlay-backdrop\"]').click()"); + waitForXMillis(500); + } catch (Exception e) { + } + waitForXMillis(500); + } + + private ExpectedCondition<Boolean> numberOfWindowsToBe(final int numberOfWindows) { + return new ExpectedCondition<Boolean>() { + @Override + public Boolean apply(WebDriver driver) { + 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(ExpectedConditions.visibilityOf(element)); + } + + 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; + } + + public void waitForRowsToLoad() { + + log.info("waiting for rows to load"); + try { + waitForXMillis(100); + int bars = 1; + int waits = 0; + while (bars > 0 && waits < 30) { + Object tmp = ((JavascriptExecutor) driver).executeScript("return document.querySelectorAll('.container .bar').length;"); + bars = Integer.valueOf(tmp.toString()); + waits++; + waitForXMillis(200); + } + log.debug("waited for rows to load for ms = 200*" + waits); + waitForXMillis(200); + } catch (Exception e) { + } + + } } 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 9c3d4b281..011f041d9 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 @@ -14,58 +14,59 @@ import java.util.List; public class BasicGrid extends PageComponent { - @FindBy(css = "datatable-header div.datatable-row-center datatable-header-cell") - protected List<WebElement> gridHeaders; - @FindBy(css = "datatable-body-row > div.datatable-row-center.datatable-row-group") - protected List<WebElement> gridRows; - protected ArrayList<String> headerTxt = new ArrayList<String>(); + @FindBy(css = "datatable-header div.datatable-row-center datatable-header-cell") + protected List<WebElement> gridHeaders; + @FindBy(css = "datatable-body-row > div.datatable-row-center.datatable-row-group") + protected List<WebElement> gridRows; + protected ArrayList<String> headerTxt = new ArrayList<String>(); - public BasicGrid(WebDriver driver, WebElement container) { - super(driver); + public BasicGrid(WebDriver driver, WebElement container) { + super(driver); - log.info("Loading basic grid"); - waitForRowsToLoad(); - PageFactory.initElements(new DefaultElementLocatorFactory(container), this); + log.info("Loading basic grid"); + waitForRowsToLoad(); + PageFactory.initElements(new DefaultElementLocatorFactory(container), this); - for (int i = 0; i < gridHeaders.size(); i++) { - headerTxt.add(gridHeaders.get(i).getText().trim()); - } + for (int i = 0; i < gridHeaders.size(); i++) { + headerTxt.add(gridHeaders.get(i).getText().trim()); + } - } + } - public void selectRow(int rowNumber) { - log.info("selecting row with number ... " + rowNumber); - if (rowNumber >= gridRows.size()) { - return; - } - gridRows.get(rowNumber).click(); - waitForXMillis(500); - } + public void selectRow(int rowNumber) { + log.info("selecting row with number ... " + rowNumber); + waitForRowsToLoad(); + if (rowNumber >= gridRows.size()) { + return; + } + gridRows.get(rowNumber).click(); + waitForXMillis(500); + } - public void doubleClickRow(int rowNumber) { + public void doubleClickRow(int rowNumber) { - log.info("double clicking row ... " + rowNumber); - waitForXMillis(500); - if (rowNumber >= gridRows.size()) { - return; - } - Actions action = new Actions(driver); - action.doubleClick(gridRows.get(rowNumber)).perform(); - } + log.info("double clicking row ... " + rowNumber); + waitForXMillis(500); + if (rowNumber >= gridRows.size()) { + return; + } + Actions action = new Actions(driver); + action.doubleClick(gridRows.get(rowNumber)).perform(); + } - public int getColumnsNo() { - log.info("getting number of columns"); - return gridHeaders.size(); - } + public int getColumnsNo() { + log.info("getting number of columns"); + return gridHeaders.size(); + } - public int getRowsNo() { - return gridRows.size(); - } + public int getRowsNo() { + return gridRows.size(); + } - public void scrollRow(int index) { - JavascriptExecutor js = (JavascriptExecutor) driver; - js.executeScript("arguments[0].scrollIntoView();", gridRows.get(index)); - waitForXMillis(500); - } + public void scrollRow(int index) { + JavascriptExecutor js = (JavascriptExecutor) driver; + js.executeScript("arguments[0].scrollIntoView();", gridRows.get(index)); + waitForXMillis(500); + } } 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 a5ced38bd..d490355da 100644 --- a/smp-ui-tests/src/main/java/pages/domain/DomainPopup.java +++ b/smp-ui-tests/src/main/java/pages/domain/DomainPopup.java @@ -11,48 +11,38 @@ 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(css = "span.mat-slide-toggle-bar") WebElement userClientCertHeaderToggle; - @FindBy(css = "#smlClientCertHeaderAuth_id-input") WebElement userClientCertHeaderToggleInput; - @FindBy(css = "div.mat-form-field-infix > div.ng-star-inserted") WebElement domainCodeValidationError; - @FindBy(css = "#smlClientKeyAlias_id") WebElement smlClientAliasSelectContainer; GenericSelect smlClientAliasSelect; + public DomainPopup(WebDriver driver) { + super(driver); + PageFactory.initElements(new AjaxElementLocatorFactory(driver, PROPERTIES.TIMEOUT), this); + + signatureCertSelect = new GenericSelect(driver, signatureCertSelectContainer); + smlClientAliasSelect = new GenericSelect(driver, smlClientAliasSelectContainer); + + + } public void clickOK() { waitForElementToBeClickable(okBtn).click(); @@ -67,6 +57,9 @@ public class DomainPopup extends PageComponent { public boolean isLoaded() { log.info("checking if domain popup is properly loaded"); + + waitForElementToBeEnabled(okBtn); + return isVisible(okBtn) && isVisible(domainCodeInput) && isVisible(smlDomainInput) diff --git a/smp-ui-tests/src/main/java/pages/password/PasswordChangepopup.java b/smp-ui-tests/src/main/java/pages/password/PasswordChangepopup.java index f666d74fd..b0534d9d8 100644 --- a/smp-ui-tests/src/main/java/pages/password/PasswordChangepopup.java +++ b/smp-ui-tests/src/main/java/pages/password/PasswordChangepopup.java @@ -14,126 +14,125 @@ import utils.PROPERTIES; public class PasswordChangepopup extends PageComponent { - @FindBy(id = "username_id") - WebElement userNameInput; - @FindBy(id = "emailAddress_id") - WebElement emailInput; - @FindBy(id = "np_id") - WebElement newPasswordInput; - @FindBy(id = "cnp_id") - WebElement confirmationInput; - /* @FindBy(css = "input#cp_id") - WebElement adminPassInput; + @FindBy(id = "username_id") + WebElement userNameInput; + @FindBy(id = "emailAddress_id") + WebElement emailInput; + @FindBy(id = "np_id") + WebElement newPasswordInput; + @FindBy(id = "cnp_id") + WebElement confirmationInput; + /* @FindBy(css = "input#cp_id") + WebElement adminPassInput; */ - @FindBy(xpath = "//input[@data-placeholder='Admin password for user [system]']") - WebElement adminPassInput; - @FindBy(xpath = "//input[@data-placeholder='Current password']") - WebElement currentPassInput; - @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; - @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; - - public PasswordChangepopup(WebDriver driver) { - super(driver); - PageFactory.initElements(new AjaxElementLocatorFactory(driver, PROPERTIES.TIMEOUT), this); - } - - 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 clickChangePassword() { - log.info("click change password"); - waitForElementToBeClickable(changePassword); - changePassword.click(); - //waitForElementToBeGone(changePassword); - } - - public SearchPage clickCloseAfterChangedPassForLoggedUser() { - log.info("click close after change password"); - waitForElementToBeClickable(passChangedClose); - passChangedClose.click(); - waitForElementToBeGone(passChangedClose); - return new SearchPage(driver); - } - - public void clickCloseAfterChangedPass() { - log.info("click close after change password"); - - waitForElementToBeClickable(passChangedClose); - passChangedClose.click(); - waitForElementToBeGone(passChangedClose); - - } - - public void setOrChangePassword(String adminPass, String newPass, String confirmPass) { - - clearAndFillInput(adminPassInput, adminPass); - clearAndFillInput(newPasswordInput, newPass); - clearAndFillInput(confirmationInput, confirmPass); - } - - public void fillDataForLoggedUser(String currentPass, String newPass, String confirmPass) { - clearAndFillInput(currentPassInput, currentPass); - clearAndFillInput(newPasswordInput, newPass); - clearAndFillInput(confirmationInput, confirmPass); - } - - public ConfirmationDialog clickChangedPassword() { - log.info("click changed password"); - waitForElementToBeClickable(changedPassword); - changedPassword.click(); - waitForElementToBeGone(changedPassword); - return new ConfirmationDialog(driver); - } - - public SearchPage clickClosePasswordDialog() { - passwordDialogClose.click(); - waitForElementToBeGone(passwordDialogClose); - return new SearchPage(driver); - } - - public boolean isCurrentPasswordInputEnable() { - boolean bool = currentPassInput.isEnabled(); - return bool; - } - - public boolean isNewPasswordInputEnable() { - boolean bool = newPasswordInput.isEnabled(); - return bool; - } - - public boolean isConfirmPasswordInputEnable() { - boolean bool = confirmationInput.isEnabled(); - return bool; - } + @FindBy(xpath = "//input[@data-placeholder='Admin password for user [system]']") + WebElement adminPassInput; + @FindBy(xpath = "//input[@data-placeholder='Current password']") + WebElement currentPassInput; + @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; + @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; + + public PasswordChangepopup(WebDriver driver) { + super(driver); + PageFactory.initElements(new AjaxElementLocatorFactory(driver, PROPERTIES.TIMEOUT), this); + } + + 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 clickChangePassword() { + log.info("click change password"); + waitForElementToBeClickable(changePassword); + changePassword.click(); + } + + public SearchPage clickCloseAfterChangedPassForLoggedUser() { + log.info("click close after change password"); + waitForElementToBeClickable(passChangedClose); + passChangedClose.click(); + waitForElementToBeGone(passChangedClose); + return new SearchPage(driver); + } + + public void clickCloseAfterChangedPass() { + log.info("click close after change password"); + + waitForElementToBeClickable(passChangedClose); + passChangedClose.click(); + waitForElementToBeGone(passChangedClose); + + } + + public void setOrChangePassword(String adminPass, String newPass, String confirmPass) { + + clearAndFillInput(adminPassInput, adminPass); + clearAndFillInput(newPasswordInput, newPass); + clearAndFillInput(confirmationInput, confirmPass); + } + + public void fillDataForLoggedUser(String currentPass, String newPass, String confirmPass) { + clearAndFillInput(currentPassInput, currentPass); + clearAndFillInput(newPasswordInput, newPass); + clearAndFillInput(confirmationInput, confirmPass); + } + + public ConfirmationDialog clickChangedPassword() { + log.info("click changed password"); + waitForElementToBeClickable(changedPassword); + changedPassword.click(); + waitForElementToBeGone(changedPassword); + return new ConfirmationDialog(driver); + } + + public SearchPage clickClosePasswordDialog() { + passwordDialogClose.click(); + waitForElementToBeGone(passwordDialogClose); + return new SearchPage(driver); + } + + public boolean isCurrentPasswordInputEnable() { + boolean bool = currentPassInput.isEnabled(); + return bool; + } + + public boolean isNewPasswordInputEnable() { + boolean bool = newPasswordInput.isEnabled(); + return bool; + } + + public boolean isConfirmPasswordInputEnable() { + boolean bool = confirmationInput.isEnabled(); + return bool; + } } 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 3135ddcd0..e19087bee 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 @@ -5,7 +5,6 @@ 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; @@ -13,24 +12,20 @@ import java.util.ArrayList; 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); - } - @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 AccordionSection(WebDriver driver, WebElement container) { + super(driver); + PageFactory.initElements(new AjaxElementLocatorFactory(container, PROPERTIES.TIMEOUT), this); + } + public boolean isExpanded() { log.info("check if expanded"); return isVisible(options.get(0)); @@ -85,15 +80,13 @@ public class AccordionSection extends PageComponent { if (option.getAttribute("aria-selected").contains("true")) { return; } - - option.click(); + waitForElementToBeClickable(option).click(); return; } 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; } 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 2681efd43..e9a496609 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 @@ -146,6 +146,8 @@ public class EditPage extends SMPPage { log.info("saving.."); waitForElementToBeClickable(saveButton).click(); new ConfirmationDialog(driver).confirm(); + + waitForRowsToLoad(); } } 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 18f711888..27bbc475f 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 @@ -43,10 +43,10 @@ public class ServiceGroupPopup extends PageComponent { try { ownersPanel = new AccordionSection(driver, ownersPanelContainer); } catch (Exception e) { - + log.error("Owners panel is not present"); } domainsPanel = new AccordionSection(driver, domainsPanelContainer); - + waitForElementToBeVisible(okButton); } public boolean isOKButtonPresent() { 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 4049bb5e9..af40d3f1e 100644 --- a/smp-ui-tests/src/main/java/pages/users/UserPopup.java +++ b/smp-ui-tests/src/main/java/pages/users/UserPopup.java @@ -10,279 +10,282 @@ import pages.components.GenericSelect; import pages.components.baseComponents.PageComponent; public class UserPopup extends PageComponent { - public GenericSelect rolesSelect; - @FindBy(id = "userDetailsToggle_id") - WebElement userDetailsToggle; + public GenericSelect rolesSelect; + @FindBy(id = "userDetailsToggle_id") + WebElement userDetailsToggle; - @FindBy(css = "#active_id > label > div > div") - WebElement activeToggle; + @FindBy(css = "#active_id > label > div > div") + WebElement activeToggle; - @FindBy(id = "username_id") - WebElement userNameInput; + @FindBy(id = "username_id") + WebElement userNameInput; - @FindBy(id = "emailAddress_id") - WebElement emailInput; + @FindBy(id = "emailAddress_id") + WebElement emailInput; - @FindBy(id = "np_id") - WebElement newPasswordInput; + @FindBy(id = "np_id") + WebElement newPasswordInput; - @SuppressWarnings("SpellCheckingInspection") - @FindBy(id = "cnp_id") - WebElement confirmationInput; + @SuppressWarnings("SpellCheckingInspection") + @FindBy(id = "cnp_id") + WebElement confirmationInput; - @FindBy(css = "input#cp_id") - WebElement adminPassInput; + @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.username> div > div.mat-form-field-flex > div > div") + WebElement usernameValidationError; - @FindBy(css = "smp-password-change-dialog .password-panel mat-form-field:nth-child(2) .mat-form-field-subscript-wrapper mat-error") - WebElement passValidationError; + @FindBy(css = "smp-password-change-dialog .password-panel mat-form-field:nth-child(2) .mat-form-field-subscript-wrapper mat-error") + WebElement passValidationError; - @FindBy(css = "mat-form-field.password-confirmation > div > div.mat-form-field-flex > div > div") - WebElement passConfirmationValidationError; + @FindBy(css = "mat-form-field.password-confirmation > div > div.mat-form-field-flex > div > div") + WebElement passConfirmationValidationError; - @FindBy(css = ".ng-trigger.ng-trigger-transitionMessages.ng-star-inserted > mat-error") - WebElement passMatchValidationError; + @FindBy(css = ".ng-trigger.ng-trigger-transitionMessages.ng-star-inserted > mat-error") + WebElement passMatchValidationError; - @FindBy(css = "mat-dialog-actions button:nth-child(1)") - WebElement okBtn; + @FindBy(css = "mat-dialog-actions button:nth-child(1)") + WebElement okBtn; - @FindBy(css = "mat-dialog-actions button:nth-child(2)") - WebElement cancelBtn; + @FindBy(css = "mat-dialog-actions button:nth-child(2)") + WebElement cancelBtn; - @FindBy(css = "#changePassword_id") - WebElement changePassword; + @FindBy(css = "#changePassword_id") + WebElement changePassword; - @FindBy(css = "smp-password-change-dialog mat-dialog-actions button:nth-child(1)") - WebElement changedPassword; + @FindBy(css = "smp-password-change-dialog mat-dialog-actions button:nth-child(1)") + WebElement changedPassword; - @FindBy(css = "#closebuttondialog_id") - WebElement passChangedClose; + @FindBy(css = "#closebuttondialog_id") + WebElement passChangedClose; - @FindBy(css = "smp-password-change-dialog mat-dialog-actions button:nth-child(2)") - WebElement passwordDialogClose; + @FindBy(css = "smp-password-change-dialog mat-dialog-actions button:nth-child(2)") + WebElement passwordDialogClose; - @FindBy(css = "#role_id") - WebElement rolesSelectContainer; + @FindBy(css = "#role_id") + WebElement rolesSelectContainer; - @FindBy(xpath = "//span[text()='Regenerate access token']") - WebElement regenarateAccessTokenBtn; + @FindBy(xpath = "//span[text()='Regenerate access token']") + WebElement regenarateAccessTokenBtn; - @FindBy(css = "label > button.mat-focus-indicator.mat-flat-button.mat-button-base.mat-primary") - WebElement importBtn; + @FindBy(css = "label > button.mat-focus-indicator.mat-flat-button.mat-button-base.mat-primary") + WebElement importBtn; - @FindBy(xpath = "//span[text()='Show details']") - WebElement showDetailsBtn; + @FindBy(xpath = "//span[text()='Show details']") + WebElement showDetailsBtn; - @FindBy(xpath = "//span[text()='Clear']") - WebElement clearBtn; + @FindBy(xpath = "//span[text()='Clear']") + WebElement clearBtn; - @FindBy(css = ".has-error.ng-star-inserted") - WebElement emailValidationError; + @FindBy(css = ".has-error.ng-star-inserted") + WebElement emailValidationError; - public UserPopup(WebDriver driver) { - super(driver); - PageFactory.initElements(driver, this); - rolesSelect = new GenericSelect(driver, rolesSelectContainer); - } - - public boolean isAdminPasswordInputEnable() { - boolean bool = adminPassInput.isEnabled(); - return bool; - } + public UserPopup(WebDriver driver) { + super(driver); + PageFactory.initElements(driver, this); + rolesSelect = new GenericSelect(driver, rolesSelectContainer); + } + + public boolean isAdminPasswordInputEnable() { + boolean bool = adminPassInput.isEnabled(); + return bool; + } - public boolean isNewPasswordInputEnable() { - boolean bool = newPasswordInput.isEnabled(); - return bool; - } - - public boolean isConfirmPasswordInputEnable() { - boolean bool = confirmationInput.isEnabled(); - return bool; - } - - - public boolean isOKButtonActive() { - return isEnabled(okBtn); - } + public boolean isNewPasswordInputEnable() { + boolean bool = newPasswordInput.isEnabled(); + return bool; + } + + public boolean isConfirmPasswordInputEnable() { + boolean bool = confirmationInput.isEnabled(); + return bool; + } + + + public boolean isOKButtonActive() { + return isEnabled(okBtn); + } - public boolean isChangedPasswordActive() { - 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(newPasswordInput, 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 email) { - clearAndFillInput(userNameInput, username); - clearAndFillInput(emailInput,email); - } - - public void clickSetOrChangePassword() { - log.info("click change password"); - waitForElementToBeClickable(changePassword); - waitForXMillis(500); - changePassword.click(); - waitForXMillis(500); - } - - 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); - waitForXMillis(500); - changedPassword.click(); - waitForElementToBeGone(changedPassword); - return new ConfirmationDialog(driver); - } - - public boolean isPopupChangedPasswordEnabled() { - return changedPassword.isEnabled(); - } - - public void setOrChangePassword(String adminPass, String newPass, String confirmPass) { - - clearAndFillInput(adminPassInput, adminPass); - clearAndFillInput(newPasswordInput, newPass); - clearAndFillInput(confirmationInput, confirmPass); - } - - public void clickClosePasswordDialog() { - passwordDialogClose.click(); - waitForElementToBeGone(passwordDialogClose); - } - - - public String getUsernameValidationError() { - try { - waitForElementToBeVisible(usernameValidationError); - return usernameValidationError.getText(); - } catch (Exception e) { - } - return null; - } - - public String userEmailValidationGetErrMsg(){ - try { - waitForElementToBeVisible(emailValidationError); - return emailValidationError.getText(); - } catch (Exception e) { - } - return null; - } - - public String getPassValidationError() { - try { - waitForElementToBeVisible(passValidationError); - return passValidationError.getText(); - } catch (Exception e) { - } - return null; - } - - public String getConfirmationPassValidationError() { - - try { - waitForElementToBeVisible(passConfirmationValidationError); - return passConfirmationValidationError.getText(); - } catch (Exception e) { - } - return null; - } - - public boolean isDuplicateUserNameErrorMsgDisPlayed() { - try { - return driver.findElement(By.cssSelector("mat-form-field.username > div .has-error")).isDisplayed(); - } catch (Exception e) { - e.printStackTrace(); - return false; - } - } - - public String getPassDontMatchValidationMsg() { - //WebElement passwordUnmatchingMsg = driver.findElement(By.cssSelector(".ng-trigger.ng-trigger-transitionMessages.ng-star-inserted > mat-error")); - return passMatchValidationError.getText(); - //".mat-form-field-infix > div.has-error" - } - - public boolean isUsernameFieldEnabled(){ - return isEnabled(userNameInput); - } - - public boolean isEmailFieldEnabled(){ - return isEnabled(emailInput); - } - public boolean isRoleSelectFieldEnabled(){ - return isEnabled(rolesSelectContainer); - } - public boolean isSetOrChangePassOptionBtnEnabled(){ - return isEnabled(changePassword); - } - - public boolean isRegenerateAccesstokenBtnEnabled(){ - return isEnabled(regenarateAccessTokenBtn); - } - public boolean isImportButtonActive(){ - return isEnabled(importBtn); - } - public boolean isShowDetailsButtonActive(){ - return isEnabled(showDetailsBtn); - } - public boolean isClearButtonActive(){ - return isEnabled(clearBtn); - } + public boolean isChangedPasswordActive() { + 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(newPasswordInput, 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 email) { + clearAndFillInput(userNameInput, username); + clearAndFillInput(emailInput, email); + } + + public void clickSetOrChangePassword() { + log.info("click change password"); + waitForElementToBeClickable(changePassword); + waitForXMillis(500); + changePassword.click(); + waitForXMillis(500); + } + + 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); + waitForXMillis(500); + changedPassword.click(); + waitForElementToBeGone(changedPassword); + return new ConfirmationDialog(driver); + } + + public boolean isPopupChangedPasswordEnabled() { + return changedPassword.isEnabled(); + } + + public void setOrChangePassword(String adminPass, String newPass, String confirmPass) { + + clearAndFillInput(adminPassInput, adminPass); + clearAndFillInput(newPasswordInput, newPass); + clearAndFillInput(confirmationInput, confirmPass); + } + + public void clickClosePasswordDialog() { + passwordDialogClose.click(); + waitForElementToBeGone(passwordDialogClose); + } + + + public String getUsernameValidationError() { + try { + waitForElementToBeVisible(usernameValidationError); + return usernameValidationError.getText(); + } catch (Exception e) { + } + return null; + } + + public String userEmailValidationGetErrMsg() { + try { + waitForElementToBeVisible(emailValidationError); + return emailValidationError.getText(); + } catch (Exception e) { + } + return null; + } + + public String getPassValidationError() { + try { + waitForElementToBeVisible(passValidationError); + return passValidationError.getText(); + } catch (Exception e) { + } + return null; + } + + public String getConfirmationPassValidationError() { + + try { + waitForElementToBeVisible(passConfirmationValidationError); + return passConfirmationValidationError.getText(); + } catch (Exception e) { + } + return null; + } + + public boolean isDuplicateUserNameErrorMsgDisPlayed() { + try { + return driver.findElement(By.cssSelector("mat-form-field.username > div .has-error")).isDisplayed(); + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + public String getPassDontMatchValidationMsg() { + return passMatchValidationError.getText(); + } + + public boolean isUsernameFieldEnabled() { + return isEnabled(userNameInput); + } + + public boolean isEmailFieldEnabled() { + return isEnabled(emailInput); + } + + public boolean isRoleSelectFieldEnabled() { + return isEnabled(rolesSelectContainer); + } + + public boolean isSetOrChangePassOptionBtnEnabled() { + return isEnabled(changePassword); + } + + public boolean isRegenerateAccesstokenBtnEnabled() { + return isEnabled(regenarateAccessTokenBtn); + } + + public boolean isImportButtonActive() { + return isEnabled(importBtn); + } + + public boolean isShowDetailsButtonActive() { + return isEnabled(showDetailsBtn); + } + + public boolean isClearButtonActive() { + return isEnabled(clearBtn); + } } diff --git a/smp-ui-tests/src/main/java/utils/DriverManager.java b/smp-ui-tests/src/main/java/utils/DriverManager.java index e16a0469e..3a2fdade7 100644 --- a/smp-ui-tests/src/main/java/utils/DriverManager.java +++ b/smp-ui-tests/src/main/java/utils/DriverManager.java @@ -8,20 +8,8 @@ import java.util.concurrent.TimeUnit; public class DriverManager { -// public static WebDriver getDriver(){ -// -// ChromeOptions options = new ChromeOptions(); -// options.addArguments("--headless"); -// options.addArguments("--window-size=1920x1080"); -// options.addArguments("--no-sandbox"); -// -// WebDriver driver = new ChromeDriver(options); -// driver.manage().window().maximize(); -// -// return driver; -// } - - public static WebDriver getDriver() { + + public static WebDriver getDriver() { ChromeOptions options = new ChromeOptions(); options.setHeadless(Boolean.valueOf(PROPERTIES.HEADLESS)); @@ -33,13 +21,11 @@ public class DriverManager { WebDriver driver = new ChromeDriver(options); - driver.manage().timeouts().implicitlyWait(1, TimeUnit.SECONDS); + driver.manage().timeouts().implicitlyWait(1, TimeUnit.SECONDS); driver.manage().window().maximize(); return driver; } - - } diff --git a/smp-ui-tests/src/main/java/utils/Generator.java b/smp-ui-tests/src/main/java/utils/Generator.java index 92b90026f..69b3a7a2b 100644 --- a/smp-ui-tests/src/main/java/utils/Generator.java +++ b/smp-ui-tests/src/main/java/utils/Generator.java @@ -1,16 +1,21 @@ package utils; public class Generator { - + @SuppressWarnings("SpellCheckingInspection") private static final String ALPHA_NUMERIC_STRING = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; - - + private static final String ALPHA_STRING = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; + + public static String randomAlphaNumeric(int count) { + return randomAlpha(count); + } + + public static String randomAlpha(int count) { StringBuilder builder = new StringBuilder(); while (count-- != 0) { - int character = (int)(Math.random()*ALPHA_NUMERIC_STRING.length()); - builder.append(ALPHA_NUMERIC_STRING.charAt(character)); + int character = (int) (Math.random() * ALPHA_STRING.length()); + builder.append(ALPHA_STRING.charAt(character)); } return builder.toString(); } diff --git a/smp-ui-tests/src/test/java/customReporter/ExcelTestReporter.java b/smp-ui-tests/src/test/java/customReporter/ExcelTestReporter.java index 049b4a0a3..f7de23995 100644 --- a/smp-ui-tests/src/test/java/customReporter/ExcelTestReporter.java +++ b/smp-ui-tests/src/test/java/customReporter/ExcelTestReporter.java @@ -160,7 +160,6 @@ public class ExcelTestReporter implements ITestListener { Row currentRow = reportSheet.createRow(rowNum); currentRow.createCell(0).setCellValue(testType); -// currentRow.createCell(0).setCellValue("UI"); currentRow.createCell(1).setCellValue(iTestResult.getTestContext().getSuite().getName()); currentRow.createCell(2).setCellValue(iTestResult.getMethod().getConstructorOrMethod().getMethod().getAnnotation(Test.class).description()); currentRow.createCell(3).setCellValue(iTestResult.getName()); diff --git a/smp-ui-tests/src/test/java/ui/DomainPgTest.java b/smp-ui-tests/src/test/java/ui/DomainPgTest.java index 054710a91..848a63d8c 100644 --- a/smp-ui-tests/src/test/java/ui/DomainPgTest.java +++ b/smp-ui-tests/src/test/java/ui/DomainPgTest.java @@ -69,7 +69,7 @@ public class DomainPgTest extends BaseTest { SoftAssert soft = new SoftAssert(); DomainPage page = new DomainPage(driver); - + soft.assertTrue(page.isLoaded(), "Check that the page is loaded"); DomainGrid grid = page.grid(); DomainRow row0 = grid.getRowsInfo().get(0); @@ -280,7 +280,7 @@ public class DomainPgTest extends BaseTest { DomainPage page = new DomainPage(driver); String errorMsg = "The Domain code already exists!"; soft.assertTrue(page.isLoaded(), "Check that the page is loaded"); - String rndString = Generator.randomAlphaNumeric(10); + String rndString = Generator.randomAlpha(10); DomainPopup popup = page.clickNew(); soft.assertTrue(popup.isLoaded(), "Domain popup is loaded"); soft.assertTrue(popup.isDomainCodeInputEnabled(), "When defining new domain - Domain Code input is disabled"); @@ -316,7 +316,7 @@ public class DomainPgTest extends BaseTest { e.printStackTrace(); } } - String rndString = Generator.randomAlphaNumeric(10); + String rndString = Generator.randomAlpha(10); DomainPopup popup = page.clickNew(); soft.assertTrue(popup.isLoaded(), "Domain popup is loaded"); soft.assertTrue(popup.isDomainCodeInputEnabled(), "When defining new domain - Domain Code input is disabled"); @@ -450,9 +450,8 @@ public class DomainPgTest extends BaseTest { public void verifyInvalidSMLSMPIDField() { SoftAssert soft = new SoftAssert(); DomainPage page = new DomainPage(driver); - String randstring = Generator.randomAlphaNumeric(10); - ArrayList<String> smlsmpId = new ArrayList<>(Arrays.asList("abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopmkjh", - "abc@k", + String randstring = Generator.randomAlpha(10); + ArrayList<String> smlsmpId = new ArrayList<>(Arrays.asList("abc@k", "abcd-", "-abgxknvlk", "1qwertyuvbnm")); @@ -486,8 +485,7 @@ public class DomainPgTest extends BaseTest { soft.assertTrue(page.isLoaded(), "Check that the page is loaded"); ArrayList<String> domainCode = new ArrayList<>(Arrays.asList("sddfgf@", - "123%", - "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz12345678901g")); + "123%")); DomainPopup popup = page.clickNew(); soft.assertTrue(popup.isLoaded(), "Domain popup is loaded"); @@ -499,7 +497,8 @@ public class DomainPgTest extends BaseTest { for (String domain : domainCode) { popup.fillDataForNewDomain(domain, rndString, rndString, rndString); - soft.assertTrue(!popup.isEnableOkButton(), "OK button is active after s4ending invalid domain code"); + + soft.assertTrue(!popup.isEnableOkButton(), "OK button is active after sending invalid domain code"); soft.assertEquals(popup.domainCodeValidationGetErrMsg(), SMPMessages.DOMAINCODE_VALIDATION_MESSAGE, "Message is not in the list"); } diff --git a/smp-ui-tests/src/test/java/ui/EditPgTest.java b/smp-ui-tests/src/test/java/ui/EditPgTest.java index 876238d33..b5af643d3 100644 --- a/smp-ui-tests/src/test/java/ui/EditPgTest.java +++ b/smp-ui-tests/src/test/java/ui/EditPgTest.java @@ -363,6 +363,7 @@ public class EditPgTest extends BaseTest { soft.assertTrue(page.isCancelButtonEnabled(), "Cancel button is now active (2)"); page.clickSave().confirm(); + page.waitForRowsToLoad(); page.filterArea.filter(identifier, "", ""); soft.assertTrue(page.getGrid().getRowsNo() == 0 @@ -380,57 +381,57 @@ public class EditPgTest extends BaseTest { ServiceGroupGrid grid = page.getGrid(); Integer index = 0; ServiceGroupRowE row0 = grid.getRowsAs(ServiceGroupRowE.class).get(index); - ServiceMetadataPopup metadataPopup= row0.clickAddMetadata(); - soft.assertTrue(!metadataPopup.isParticipantIdentifierEnabled(),"participantId field is enabled for an existing service group in service metadata popup"); - soft.assertTrue(!metadataPopup.isParticipantSchemeEnabled(),"participantScheme field is enabled for an existing service group in service metadata popup"); - soft.assertEquals(metadataPopup.docIDFieldValue(),"","docIDField is not empty"); - soft.assertEquals(metadataPopup.docIDSchemeFieldValue(),"","docIDField is not empty"); + ServiceMetadataPopup metadataPopup = row0.clickAddMetadata(); + soft.assertTrue(!metadataPopup.isParticipantIdentifierEnabled(), "participantId field is enabled for an existing service group in service metadata popup"); + soft.assertTrue(!metadataPopup.isParticipantSchemeEnabled(), "participantScheme field is enabled for an existing service group in service metadata popup"); + soft.assertEquals(metadataPopup.docIDFieldValue(), "", "docIDField is not empty"); + soft.assertEquals(metadataPopup.docIDSchemeFieldValue(), "", "docIDField is not empty"); soft.assertTrue(row0.getParticipantIdentifier().equalsIgnoreCase(metadataPopup.getParticipantIdentifierValue()), "ServiceMetadata dialog opened for appropriate service group"); soft.assertTrue(row0.getParticipantScheme().equalsIgnoreCase(metadataPopup.getParticipantSchemeValue()), "ServiceMetadata dialog opened for appropriate service group"); - metadataPopup.fillForm(generator,generator,generator); + metadataPopup.fillForm(generator, generator, generator); ServiceMetadataWizardPopup metadataWizaedPopup = metadataPopup.clickMetadataWizard(); - metadataWizaedPopup.fillForm(generator,generator,generator,generator,"bdxr-transport-ebms3-as4-v1p0","internal/rest/domain"); + metadataWizaedPopup.fillForm(generator, generator, generator, generator, "bdxr-transport-ebms3-as4-v1p0", "internal/rest/domain"); metadataWizaedPopup.fillCerificateBox(generator); - soft.assertTrue(metadataWizaedPopup.isEnableOkBtn(),"ok button is disabled after providing the valid data"); + soft.assertTrue(metadataWizaedPopup.isEnableOkBtn(), "ok button is disabled after providing the valid data"); metadataPopup = metadataWizaedPopup.clickOK(); - soft.assertEquals(metadataPopup.docIDFieldValue(),generator,"After saving the servicemetadata wizard popup with valid data the docID field of service metadata popup doc id contain the coressponding value"); - soft.assertEquals(metadataPopup.docIDSchemeFieldValue(),generator,"After saving the servicemetadata wizard popup with valid data the docIDScheme field of service metadata popup doc id scheme contain the coressponding value"); - soft.assertTrue(metadataPopup.isOKBtnEnabled(),"OK button is not enabled"); + soft.assertEquals(metadataPopup.docIDFieldValue(), generator, "After saving the servicemetadata wizard popup with valid data the docID field of service metadata popup doc id contain the coressponding value"); + soft.assertEquals(metadataPopup.docIDSchemeFieldValue(), generator, "After saving the servicemetadata wizard popup with valid data the docIDScheme field of service metadata popup doc id scheme contain the coressponding value"); + soft.assertTrue(metadataPopup.isOKBtnEnabled(), "OK button is not enabled"); soft.assertAll(); } @Test(description = "EDT-120") - public void verifyServicemtadataWizardDilogField(){ + public void verifyServicemtadataWizardDilogField() { SoftAssert soft = new SoftAssert(); EditPage page = new EditPage(driver); String generator = Generator.randomAlphaNumeric(10); ServiceGroupGrid grid = page.getGrid(); Integer index = 0; ServiceGroupRowE row0 = grid.getRowsAs(ServiceGroupRowE.class).get(index); - ServiceMetadataPopup metadataPopup= row0.clickAddMetadata(); - soft.assertTrue(!metadataPopup.isParticipantIdentifierEnabled(),"participantId field is enabled for an existing service group in service metadata popup"); - soft.assertTrue(!metadataPopup.isParticipantSchemeEnabled(),"participantScheme field is enabled for an existing service group in service metadata popup"); - metadataPopup.fillForm(generator,generator,generator); - ServiceMetadataWizardPopup metadataWizard= metadataPopup.clickMetadataWizard(); - soft.assertEquals(metadataWizard.docIDFieldValue(),generator,"document identifier field of metdata wizard popup not contain the corresponding doc id filled in sevice metadata popup"); - soft.assertEquals(metadataWizard.docIDSchemeFieldValue(),generator,"document identifier field of metdata wizard popup not contain the corresponding doc id scheme filled in sevice metadata popup"); + ServiceMetadataPopup metadataPopup = row0.clickAddMetadata(); + soft.assertTrue(!metadataPopup.isParticipantIdentifierEnabled(), "participantId field is enabled for an existing service group in service metadata popup"); + soft.assertTrue(!metadataPopup.isParticipantSchemeEnabled(), "participantScheme field is enabled for an existing service group in service metadata popup"); + metadataPopup.fillForm(generator, generator, generator); + ServiceMetadataWizardPopup metadataWizard = metadataPopup.clickMetadataWizard(); + soft.assertEquals(metadataWizard.docIDFieldValue(), generator, "document identifier field of metdata wizard popup not contain the corresponding doc id filled in sevice metadata popup"); + soft.assertEquals(metadataWizard.docIDSchemeFieldValue(), generator, "document identifier field of metdata wizard popup not contain the corresponding doc id scheme filled in sevice metadata popup"); soft.assertAll(); } @Test(description = "EDT-130") - public void verifyTransportProfile(){ + public void verifyTransportProfile() { SoftAssert soft = new SoftAssert(); EditPage page = new EditPage(driver); String generator = Generator.randomAlphaNumeric(10); ServiceGroupGrid grid = page.getGrid(); Integer index = 0; ServiceGroupRowE row0 = grid.getRowsAs(ServiceGroupRowE.class).get(index); - ServiceMetadataPopup metadataPopup= row0.clickAddMetadata(); - soft.assertTrue(!metadataPopup.isParticipantIdentifierEnabled(),"participantId field is enabled for an existing service group in service metadata popup"); - soft.assertTrue(!metadataPopup.isParticipantSchemeEnabled(),"participantScheme field is enabled for an existing service group in service metadata popup"); - ServiceMetadataWizardPopup metadataWizard= metadataPopup.clickMetadataWizard(); - soft.assertEquals(metadataWizard.transportProfileFieldContent(),"bdxr-transport-ebms3-as4-v1p0","The transport profile field in service metadata wizard popup not contain the default value"); + ServiceMetadataPopup metadataPopup = row0.clickAddMetadata(); + soft.assertTrue(!metadataPopup.isParticipantIdentifierEnabled(), "participantId field is enabled for an existing service group in service metadata popup"); + soft.assertTrue(!metadataPopup.isParticipantSchemeEnabled(), "participantScheme field is enabled for an existing service group in service metadata popup"); + ServiceMetadataWizardPopup metadataWizard = metadataPopup.clickMetadataWizard(); + soft.assertEquals(metadataWizard.transportProfileFieldContent(), "bdxr-transport-ebms3-as4-v1p0", "The transport profile field in service metadata wizard popup not contain the default value"); soft.assertAll(); } diff --git a/smp-ui-tests/src/test/java/ui/UsersPgTest.java b/smp-ui-tests/src/test/java/ui/UsersPgTest.java index 69b4f9dd1..66cf03187 100644 --- a/smp-ui-tests/src/test/java/ui/UsersPgTest.java +++ b/smp-ui-tests/src/test/java/ui/UsersPgTest.java @@ -23,738 +23,713 @@ import java.util.List; public class UsersPgTest extends BaseTest { - @AfterMethod - public void logoutAndReset() { - genericLogoutProcedure(); - } + @AfterMethod + public void logoutAndReset() { + genericLogoutProcedure(); + } - @BeforeMethod - public void loginAndGoToUsersPage() { + @BeforeMethod + public void loginAndGoToUsersPage() { - SMPPage page = genericLoginProcedure("SYS_ADMIN"); + SMPPage page = genericLoginProcedure("SYS_ADMIN"); - logger.info("Going to Users page"); - page.sidebar.goToPage(UsersPage.class); - } + logger.info("Going to Users page"); + page.sidebar.goToPage(UsersPage.class); + } - @Test(description = "USR-0") - public void existingUserPasswordDialogView() { - SoftAssert soft = new SoftAssert(); - String username = Generator.randomAlphaNumeric(10); - String email = "system@gmail.com"; - UsersPage usersPage = new UsersPage(driver); - UserPopup popup = usersPage.clickNew(); - soft.assertTrue(!popup.isOKButtonActive(), "OK button should be disabled until valid data is filled in the popup"); - popup.fillDetailsForm(username,email); - popup.rolesSelect.selectOptionWithText("SYSTEM_ADMIN"); - popup.clickOK(); - soft.assertTrue(usersPage.isSaveButtonEnabled(), "Save button is enabled"); - soft.assertTrue(usersPage.isCancelButtonEnabled(), "Cancel button is enabled"); + @Test(description = "USR-0") + public void existingUserPasswordDialogView() { + SoftAssert soft = new SoftAssert(); + String username = Generator.randomAlphaNumeric(10); + String email = "system@gmail.com"; + UsersPage usersPage = new UsersPage(driver); + UserPopup popup = usersPage.clickNew(); + soft.assertTrue(!popup.isOKButtonActive(), "OK button should be disabled until valid data is filled in the popup"); + popup.fillDetailsForm(username, email); + popup.rolesSelect.selectOptionWithText("SYSTEM_ADMIN"); + popup.clickOK(); + soft.assertTrue(usersPage.isSaveButtonEnabled(), "Save button is enabled"); + soft.assertTrue(usersPage.isCancelButtonEnabled(), "Cancel button is enabled"); - usersPage.clickSave().confirm(); + usersPage.clickSave().confirm(); - soft.assertTrue(!usersPage.alertArea.getAlertMessage().isError(), "Message listed is success"); - soft.assertTrue(usersPage.alertArea.getAlertMessage().getMessage().equalsIgnoreCase(SMPMessages.MSG_18), "Message listed is as expected"); + soft.assertTrue(!usersPage.alertArea.getAlertMessage().isError(), "Message listed is success"); + soft.assertTrue(usersPage.alertArea.getAlertMessage().getMessage().equalsIgnoreCase(SMPMessages.MSG_18), "Message listed is as expected"); - soft.assertTrue(usersPage.grid().isUserListed(username), "User present in the page"); + soft.assertTrue(usersPage.grid().isUserListed(username), "User present in the page"); - int index = usersPage.grid().scrollToUser(username); + int index = usersPage.grid().scrollToUser(username); - usersPage.grid().selectRow(index); - popup = usersPage.clickEdit(); + usersPage.grid().selectRow(index); + popup = usersPage.clickEdit(); - popup.clickSetOrChangePassword(); - //PasswordChangepopup passPopup = searchPage.pageHeader.sandwichMenu.clickChangePasswordOption(); - soft.assertTrue(popup.isAdminPasswordInputEnable(), "Admin password field input is not enabled after open password change popup for an existing user"); - soft.assertTrue(popup.isNewPasswordInputEnable(), "New password field input is not enabled after open password change popup for an existing user"); - soft.assertTrue(popup.isConfirmPasswordInputEnable(), "Confirm password field input is not enabled after open password change popup for an existing user"); + popup.clickSetOrChangePassword(); + soft.assertTrue(popup.isAdminPasswordInputEnable(), "Admin password field input is not enabled after open password change popup for an existing user"); + soft.assertTrue(popup.isNewPasswordInputEnable(), "New password field input is not enabled after open password change popup for an existing user"); + soft.assertTrue(popup.isConfirmPasswordInputEnable(), "Confirm password field input is not enabled after open password change popup for an existing user"); - popup.clickClosePasswordDialog(); - popup.clickOK(); - usersPage.clickDelete(); - usersPage.waitForXMillis(200); - soft.assertTrue(!usersPage.isDeleteButtonEnabled(), "Delete button is not enabled after user is deleted(2)"); - soft.assertTrue(usersPage.isSaveButtonEnabled(), "Save button is enabled after user is deleted(2)"); - soft.assertTrue(usersPage.isCancelButtonEnabled(), "Cancel button is enabled after user is deleted(2)"); + popup.clickClosePasswordDialog(); + popup.clickOK(); + usersPage.clickDelete(); + usersPage.waitForXMillis(200); + soft.assertTrue(!usersPage.isDeleteButtonEnabled(), "Delete button is not enabled after user is deleted(2)"); + soft.assertTrue(usersPage.isSaveButtonEnabled(), "Save button is enabled after user is deleted(2)"); + soft.assertTrue(usersPage.isCancelButtonEnabled(), "Cancel button is enabled after user is deleted(2)"); - usersPage.clickSave().confirm(); + usersPage.clickSave().confirm(); - soft.assertTrue(usersPage.alertArea.getAlertMessage().getMessage().equalsIgnoreCase(SMPMessages.MSG_18), "Message is as expected"); - soft.assertTrue(!usersPage.grid().isUserListed(username), "After saving deleted user is not listed"); - - soft.assertAll(); - - } - - - @Test(description = "USR-10") - public void newUser() { - String username = Generator.randomAlphaNumeric(10); - String validPass = "Aabcdefghijklm1@"; - String email = "system@gmail.com"; + soft.assertTrue(usersPage.alertArea.getAlertMessage().getMessage().equalsIgnoreCase(SMPMessages.MSG_18), "Message is as expected"); + soft.assertTrue(!usersPage.grid().isUserListed(username), "After saving deleted user is not listed"); - SoftAssert soft = new SoftAssert(); - - UsersPage usersPage = new UsersPage(driver); - -// soft.assertTrue(usersPage.isNewButtonEnabled(), "New button should be enabled"); - - UserPopup popup = usersPage.clickNew(); - soft.assertTrue(!popup.isOKButtonActive(), "OK button should be disabled until valid data is filled in the popup"); - popup.fillDetailsForm(username,email); - popup.rolesSelect.selectOptionWithText("SYSTEM_ADMIN"); - popup.clickOK(); - - //popup.clickUserDetailsToggle(); - //popup.fillDetailsForm(username, validPass, validPass); - - - soft.assertTrue(usersPage.isSaveButtonEnabled(), "Save button is enabled"); - soft.assertTrue(usersPage.isCancelButtonEnabled(), "Cancel button is enabled"); - - usersPage.clickSave().confirm(); - - soft.assertTrue(!usersPage.alertArea.getAlertMessage().isError(), "Message listed is success"); - soft.assertTrue(usersPage.alertArea.getAlertMessage().getMessage().equalsIgnoreCase(SMPMessages.MSG_18), "Message listed is as expected"); - - soft.assertTrue(usersPage.grid().isUserListed(username), "User present in the page"); - String adminPass = "123456"; - int index = usersPage.grid().scrollToUser(username); - - usersPage.grid().selectRow(index); - popup = usersPage.clickEdit(); - try { - Thread.sleep(10000); - } catch (Exception e) { - e.printStackTrace(); - } - popup.clickSetOrChangePassword(); - popup.setOrChangePassword(adminPass, validPass, validPass); - popup.clickChangedPassword(); - popup.clickCloseAfterChangedPass(); - try { - Thread.sleep(1000); - } catch (Exception e) { - } - popup.clickOK(); - soft.assertTrue(usersPage.grid().isUserListed(username), "User present in the page"); - - soft.assertAll(); - } - - - @Test(description = "USR-20") - public void usernameValidation() { - String username = Generator.randomAlphaNumeric(10); - String validPass = "QW!@qw12"; + soft.assertAll(); - SoftAssert soft = new SoftAssert(); + } - UsersPage usersPage = new UsersPage(driver); - UserPopup popup = usersPage.clickNew(); - soft.assertTrue(!popup.isOKButtonActive(), "OK button should be disabled until valid data is filled in the popup"); - popup.fillDetailsForm("tst","smp@gmail.com"); - popup.rolesSelect.selectOptionWithText("SMP_ADMIN"); - //popup.clickUserDetailsToggle(); + @Test(description = "USR-10") + public void newUser() { + String username = Generator.randomAlphaNumeric(10); + String validPass = "Aabcdefghijklm1@"; + String email = "system@gmail.com"; + + SoftAssert soft = new SoftAssert(); + + UsersPage usersPage = new UsersPage(driver); - //popup.fillDetailsForm("tst"); - soft.assertTrue(!popup.isOKButtonActive(), "OK button should be disabled until valid data is filled in the popup(2)"); - soft.assertEquals(popup.getUsernameValidationError(), SMPMessages.USERNAME_VALIDATION_MESSAGE, "Validation error message is displayed(2)"); - popup.fillDetailsForm("#$^&*^%&$#@%@$#%$","system@gmail.com"); - soft.assertTrue(!popup.isOKButtonActive(), "OK button should be disabled until valid data is filled in the popup(3)"); - soft.assertEquals(popup.getUsernameValidationError(), SMPMessages.USERNAME_VALIDATION_MESSAGE, "Validation error message is displayed(3)"); - //noinspection SpellCheckingInspection - popup.fillDetailsForm("QWERQWERQWERQWERQWERQWERQWERQWE33","system@gmail.com"); - soft.assertTrue(!popup.isOKButtonActive(), "OK button should be disabled until valid data is filled in the popup(4)"); - soft.assertEquals(popup.getUsernameValidationError(), SMPMessages.USERNAME_VALIDATION_MESSAGE, "Validation error message is displayed(4)"); + UserPopup popup = usersPage.clickNew(); + soft.assertTrue(!popup.isOKButtonActive(), "OK button should be disabled until valid data is filled in the popup"); + popup.fillDetailsForm(username, email); + popup.rolesSelect.selectOptionWithText("SYSTEM_ADMIN"); + popup.clickOK(); - soft.assertAll(); - } - @SuppressWarnings("SpellCheckingInspection") - @Test(description = "USR-30") - public void passwordValidation() { - String username = Generator.randomAlphaNumeric(10); - String email = "system@gmail.com"; - ArrayList<String> passToValidate = new ArrayList<>(Arrays.asList("qwqw", - "QWERQWERQWERQWERQWERQWERQWERQWE33", -// "QWERTYUIOP", -// "qwertyuiop", -// "321654987", -// "~!@#$%^&*()_", -// "~1Aa#", - "~1a#2d2dds")); + soft.assertTrue(usersPage.isSaveButtonEnabled(), "Save button is enabled"); + soft.assertTrue(usersPage.isCancelButtonEnabled(), "Cancel button is enabled"); - SoftAssert soft = new SoftAssert(); - - UsersPage usersPage = new UsersPage(driver); - usersPage.clickVoidSpace(); + usersPage.clickSave().confirm(); - UserPopup popup = usersPage.clickNew(); - popup.fillDetailsForm(username,email); - popup.rolesSelect.selectOptionWithText("SMP_ADMIN"); - popup.clickOK(); - usersPage.clickSave().confirm(); - soft.assertTrue(usersPage.grid().isUserListed(username), "User present in the page"); - int index = usersPage.grid().scrollToUser(username); - usersPage.grid().selectRow(index); - String adminPass = "123456"; - for (String pass : passToValidate) { - - popup = usersPage.clickEdit(); + soft.assertTrue(!usersPage.alertArea.getAlertMessage().isError(), "Message listed is success"); + soft.assertTrue(usersPage.alertArea.getAlertMessage().getMessage().equalsIgnoreCase(SMPMessages.MSG_18), "Message listed is as expected"); - popup.clickSetOrChangePassword(); - popup.setOrChangePassword(adminPass, pass, pass); - popup.clickClosePasswordDialog(); - popup.clickCancel(); - - soft.assertTrue(!popup.isChangedPasswordActive(), String.format("ChangePassword button should be disabled until valid data is filled in the popup - %s ", pass)); - //soft.assertEquals(popup.getPassValidationError(), SMPMessages.PASS_POLICY_MESSAGE, String.format("Pass policy message is displayed - %s", pass)); - } - - soft.assertAll(); - } - - @Test(description = "USR-40") - public void listedRoles() { - - ArrayList<String> expectedRoleValues = new ArrayList<>(Arrays.asList("SYSTEM_ADMIN", "SMP_ADMIN", "SERVICE_GROUP_ADMIN")); - - SoftAssert soft = new SoftAssert(); - - UsersPage usersPage = new UsersPage(driver); - UserPopup popup = usersPage.clickNew(); - List<String> listedRoles = popup.rolesSelect.getOptionTexts(); + soft.assertTrue(usersPage.grid().isUserListed(username), "User present in the page"); + String adminPass = "123456"; + int index = usersPage.grid().scrollToUser(username); - soft.assertTrue(expectedRoleValues.size() == listedRoles.size(), "Number of roles is the same as expected"); + usersPage.grid().selectRow(index); + popup = usersPage.clickEdit(); + try { + Thread.sleep(10000); + } catch (Exception e) { + e.printStackTrace(); + } + popup.clickSetOrChangePassword(); + popup.setOrChangePassword(adminPass, validPass, validPass); + popup.clickChangedPassword(); + popup.clickCloseAfterChangedPass(); + try { + Thread.sleep(1000); + } catch (Exception e) { + } + popup.clickOK(); + soft.assertTrue(usersPage.grid().isUserListed(username), "User present in the page"); + + soft.assertAll(); + } - for (String expected : expectedRoleValues) { - boolean found = false; - for (String listedRole : listedRoles) { - if (listedRole.equalsIgnoreCase(expected)) { - found = true; - } - } - soft.assertTrue(found, "Role found in page " + expected); - } - soft.assertAll(); - } + @Test(description = "USR-20") + public void usernameValidation() { + String username = Generator.randomAlphaNumeric(10); + String validPass = "QW!@qw12"; + + SoftAssert soft = new SoftAssert(); - @Test(description = "USR-50") - public void deleteSYS_ADMIN() { + UsersPage usersPage = new UsersPage(driver); + UserPopup popup = usersPage.clickNew(); + soft.assertTrue(!popup.isOKButtonActive(), "OK button should be disabled until valid data is filled in the popup"); + popup.fillDetailsForm("tst", "smp@gmail.com"); + popup.rolesSelect.selectOptionWithText("SMP_ADMIN"); - String username = Generator.randomAlphaNumeric(10); - SMPRestClient.createUser(username, "SYSTEM_ADMIN"); - SoftAssert soft = new SoftAssert(); + soft.assertTrue(!popup.isOKButtonActive(), "OK button should be disabled until valid data is filled in the popup(2)"); + soft.assertEquals(popup.getUsernameValidationError(), SMPMessages.USERNAME_VALIDATION_MESSAGE, "Validation error message is displayed(2)"); + popup.fillDetailsForm("#$^&*^%&$#@%@$#%$", "system@gmail.com"); + soft.assertTrue(!popup.isOKButtonActive(), "OK button should be disabled until valid data is filled in the popup(3)"); + soft.assertEquals(popup.getUsernameValidationError(), SMPMessages.USERNAME_VALIDATION_MESSAGE, "Validation error message is displayed(3)"); + //noinspection SpellCheckingInspection + popup.fillDetailsForm("QWERQWERQWERQWERQWERQWERQWERQWE33", "system@gmail.com"); + soft.assertTrue(!popup.isOKButtonActive(), "OK button should be disabled until valid data is filled in the popup(4)"); + soft.assertEquals(popup.getUsernameValidationError(), SMPMessages.USERNAME_VALIDATION_MESSAGE, "Validation error message is displayed(4)"); - logger.info("created user " + username); - UsersPage page = new UsersPage(driver); - page.refreshPage(); - soft.assertTrue(!page.isDeleteButtonEnabled(), "Delete button is not enabled"); + soft.assertAll(); + } - int index = page.grid().scrollToUser(username); - page.grid().selectRow(index); - soft.assertTrue(page.isDeleteButtonEnabled(), "Delete button is enabled after row select"); + @SuppressWarnings("SpellCheckingInspection") + @Test(description = "USR-30") + public void passwordValidation() { + String username = Generator.randomAlphaNumeric(10); + String email = "system@gmail.com"; + ArrayList<String> passToValidate = new ArrayList<>(Arrays.asList("qwqw", + "QWERQWERQWERQWERQWERQWERQWERQWE33")); - page.clickDelete(); - soft.assertTrue(!page.isDeleteButtonEnabled(), "Delete button is not enabled after user is deleted"); - soft.assertTrue(page.isSaveButtonEnabled(), "Save button is enabled after user is deleted"); - soft.assertTrue(page.isCancelButtonEnabled(), "Cancel button is enabled after user is deleted"); + SoftAssert soft = new SoftAssert(); - page.clickCancel().confirm(); - new ConfirmationDialog(driver).confirm(); - soft.assertTrue(page.grid().isUserListed(username), "After canceling delete user is still listed"); + UsersPage usersPage = new UsersPage(driver); + usersPage.clickVoidSpace(); + UserPopup popup = usersPage.clickNew(); + popup.fillDetailsForm(username, email); + popup.rolesSelect.selectOptionWithText("SMP_ADMIN"); + popup.clickOK(); + usersPage.clickSave().confirm(); + soft.assertTrue(usersPage.grid().isUserListed(username), "User present in the page"); + int index = usersPage.grid().scrollToUser(username); + usersPage.grid().selectRow(index); + String adminPass = "123456"; + for (String pass : passToValidate) { - index = page.grid().scrollToUser(username); - page.grid().selectRow(index); - soft.assertTrue(page.isDeleteButtonEnabled(), "Delete button is enabled after row select(2)"); + popup = usersPage.clickEdit(); - page.clickDelete(); - soft.assertTrue(!page.isDeleteButtonEnabled(), "Delete button is not enabled after user is deleted(2)"); - soft.assertTrue(page.isSaveButtonEnabled(), "Save button is enabled after user is deleted(2)"); - soft.assertTrue(page.isCancelButtonEnabled(), "Cancel button is enabled after user is deleted(2)"); + popup.clickSetOrChangePassword(); + popup.setOrChangePassword(adminPass, pass, pass); + popup.clickClosePasswordDialog(); + popup.clickCancel(); - page.clickSave().confirm(); + soft.assertTrue(!popup.isChangedPasswordActive(), String.format("ChangePassword button should be disabled until valid data is filled in the popup - %s ", pass)); + } - soft.assertTrue(page.alertArea.getAlertMessage().getMessage().equalsIgnoreCase(SMPMessages.MSG_18), "Message listed is as expected"); - soft.assertTrue(!page.grid().isUserListed(username), "After saving deleted user is not listed"); + soft.assertAll(); + } - soft.assertAll(); - } + @Test(description = "USR-40") + public void listedRoles() { - @Test(description = "USR-60") - public void changeRoleSYS_ADMIN() { + ArrayList<String> expectedRoleValues = new ArrayList<>(Arrays.asList("SYSTEM_ADMIN", "SMP_ADMIN", "SERVICE_GROUP_ADMIN")); - SoftAssert soft = new SoftAssert(); + SoftAssert soft = new SoftAssert(); - UsersPage page = new UsersPage(driver); - int index = page.grid().scrollToUserWithRole("SYSTEM_ADMIN"); + UsersPage usersPage = new UsersPage(driver); + UserPopup popup = usersPage.clickNew(); + List<String> listedRoles = popup.rolesSelect.getOptionTexts(); - page.grid().selectRow(index); - UserPopup popup = page.clickEdit(); - List<String> options = popup.rolesSelect.getOptionTexts(); - soft.assertTrue(options.size() == 1, "Role dropdown has only one value"); - soft.assertTrue(options.get(0).equalsIgnoreCase("SYSTEM_ADMIN"), "Role dropdown has only one value and that is \"SYSTEM_ADMIN\""); + soft.assertTrue(expectedRoleValues.size() == listedRoles.size(), "Number of roles is the same as expected"); - soft.assertAll(); - } + for (String expected : expectedRoleValues) { + boolean found = false; + for (String listedRole : listedRoles) { + if (listedRole.equalsIgnoreCase(expected)) { + found = true; + } + } + soft.assertTrue(found, "Role found in page " + expected); + } - @Test(description = "USR-70") - public void changeRoleNON_SYS_ADMIN() { + soft.assertAll(); + } - SoftAssert soft = new SoftAssert(); + @Test(description = "USR-50") + public void deleteSYS_ADMIN() { - UsersPage page = new UsersPage(driver); - int index = page.grid().scrollToUserWithRole("SMP_ADMIN"); + String username = Generator.randomAlphaNumeric(10); + SMPRestClient.createUser(username, "SYSTEM_ADMIN"); + SoftAssert soft = new SoftAssert(); - page.grid().selectRow(index); - UserPopup popup = page.clickEdit(); + logger.info("created user " + username); + UsersPage page = new UsersPage(driver); + page.refreshPage(); - List<String> options = popup.rolesSelect.getOptionTexts(); - soft.assertTrue(options.size() == 2, "Role dropdown has only two values"); - soft.assertTrue(options.get(0).equalsIgnoreCase("SMP_ADMIN"), "Role dropdown has value \"SMP_ADMIN\""); - soft.assertTrue(options.get(1).equalsIgnoreCase("SERVICE_GROUP_ADMIN"), "Role dropdown has value \"SERVICE_GROUP_ADMIN\""); - page.refreshPage(); + soft.assertTrue(!page.isDeleteButtonEnabled(), "Delete button is not enabled"); - int index2 = page.grid().scrollToUserWithRole("SERVICE_GROUP_ADMIN"); + int index = page.grid().scrollToUser(username); + page.grid().selectRow(index); + soft.assertTrue(page.isDeleteButtonEnabled(), "Delete button is enabled after row select"); - page.grid().selectRow(index2); - popup = page.clickEdit(); + page.clickDelete(); + soft.assertTrue(!page.isDeleteButtonEnabled(), "Delete button is not enabled after user is deleted"); + soft.assertTrue(page.isSaveButtonEnabled(), "Save button is enabled after user is deleted"); + soft.assertTrue(page.isCancelButtonEnabled(), "Cancel button is enabled after user is deleted"); - options = popup.rolesSelect.getOptionTexts(); - soft.assertTrue(options.size() == 2, "Role dropdown has only two values"); - soft.assertTrue(options.get(0).equalsIgnoreCase("SMP_ADMIN"), "Role dropdown has value \"SMP_ADMIN\""); - soft.assertTrue(options.get(1).equalsIgnoreCase("SERVICE_GROUP_ADMIN"), "Role dropdown has value \"SERVICE_GROUP_ADMIN\""); + page.clickCancel().confirm(); + new ConfirmationDialog(driver).confirm(); + soft.assertTrue(page.grid().isUserListed(username), "After canceling delete user is still listed"); - soft.assertAll(); - } - @Test(description = "USR-80") - public void deleteOWNUserRecord() { + index = page.grid().scrollToUser(username); + page.grid().selectRow(index); + soft.assertTrue(page.isDeleteButtonEnabled(), "Delete button is enabled after row select(2)"); - String username = new TestDataProvider().getUserWithRole("SYS_ADMIN").get("username"); + page.clickDelete(); + soft.assertTrue(!page.isDeleteButtonEnabled(), "Delete button is not enabled after user is deleted(2)"); + soft.assertTrue(page.isSaveButtonEnabled(), "Save button is enabled after user is deleted(2)"); + soft.assertTrue(page.isCancelButtonEnabled(), "Cancel button is enabled after user is deleted(2)"); - SoftAssert soft = new SoftAssert(); + page.clickSave().confirm(); - UsersPage page = new UsersPage(driver); - soft.assertTrue(!page.isDeleteButtonEnabled(), "Delete button is not enabled"); + soft.assertTrue(page.alertArea.getAlertMessage().getMessage().equalsIgnoreCase(SMPMessages.MSG_18), "Message listed is as expected"); + soft.assertTrue(!page.grid().isUserListed(username), "After saving deleted user is not listed"); - int index = page.grid().scrollToUser(username); - page.grid().selectRow(index); - soft.assertTrue(page.isDeleteButtonEnabled(), "Delete button is enabled after row select"); + soft.assertAll(); + } - page.clickDelete(); - AlertMessage message = page.alertArea.getAlertMessage(); - soft.assertTrue(message.isError(), "Listed message is error"); - soft.assertTrue(message.getMessage().equalsIgnoreCase(SMPMessages.USER_OWN_DELETE_ERR), "Listed message has appropriate text"); + @Test(description = "USR-60") + public void changeRoleSYS_ADMIN() { - soft.assertAll(); - } + SoftAssert soft = new SoftAssert(); - @Test(description = "USR-90") - public void deleteSMP_ADMIN() { + UsersPage page = new UsersPage(driver); + int index = page.grid().scrollToUserWithRole("SYSTEM_ADMIN"); - String username = Generator.randomAlphaNumeric(10); - SMPRestClient.createUser(username, "SMP_ADMIN"); - SoftAssert soft = new SoftAssert(); + page.grid().selectRow(index); + UserPopup popup = page.clickEdit(); + List<String> options = popup.rolesSelect.getOptionTexts(); + soft.assertTrue(options.size() == 1, "Role dropdown has only one value"); + soft.assertTrue(options.get(0).equalsIgnoreCase("SYSTEM_ADMIN"), "Role dropdown has only one value and that is \"SYSTEM_ADMIN\""); - logger.info("Created username " + username); + soft.assertAll(); + } + @Test(description = "USR-70") + public void changeRoleNON_SYS_ADMIN() { - UsersPage page = new UsersPage(driver); - page.refreshPage(); - soft.assertTrue(!page.isDeleteButtonEnabled(), "Delete button is not enabled"); + SoftAssert soft = new SoftAssert(); - int index = page.grid().scrollToUser(username); - page.grid().selectRow(index); - soft.assertTrue(page.isDeleteButtonEnabled(), "Delete button is enabled after row select"); + UsersPage page = new UsersPage(driver); + int index = page.grid().scrollToUserWithRole("SMP_ADMIN"); - page.clickDelete(); - soft.assertTrue(!page.isDeleteButtonEnabled(), "Delete button is not enabled after user is deleted"); - soft.assertTrue(page.isSaveButtonEnabled(), "Save button is enabled after user is deleted"); - soft.assertTrue(page.isCancelButtonEnabled(), "Cancel button is enabled after user is deleted"); + page.grid().selectRow(index); + UserPopup popup = page.clickEdit(); - page.clickCancel().confirm(); - new ConfirmationDialog(driver).confirm(); - soft.assertTrue(page.grid().isUserListed(username), "After canceling delete user is still listed"); + List<String> options = popup.rolesSelect.getOptionTexts(); + soft.assertTrue(options.size() == 2, "Role dropdown has only two values"); + soft.assertTrue(options.get(0).equalsIgnoreCase("SMP_ADMIN"), "Role dropdown has value \"SMP_ADMIN\""); + soft.assertTrue(options.get(1).equalsIgnoreCase("SERVICE_GROUP_ADMIN"), "Role dropdown has value \"SERVICE_GROUP_ADMIN\""); + page.refreshPage(); + int index2 = page.grid().scrollToUserWithRole("SERVICE_GROUP_ADMIN"); - index = page.grid().scrollToUser(username); - page.grid().selectRow(index); - soft.assertTrue(page.isDeleteButtonEnabled(), "Delete button is enabled after row select(2)"); + page.grid().selectRow(index2); + popup = page.clickEdit(); - page.clickDelete(); - page.waitForXMillis(200); - soft.assertTrue(!page.isDeleteButtonEnabled(), "Delete button is not enabled after user is deleted(2)"); - soft.assertTrue(page.isSaveButtonEnabled(), "Save button is enabled after user is deleted(2)"); - soft.assertTrue(page.isCancelButtonEnabled(), "Cancel button is enabled after user is deleted(2)"); + options = popup.rolesSelect.getOptionTexts(); + soft.assertTrue(options.size() == 2, "Role dropdown has only two values"); + soft.assertTrue(options.get(0).equalsIgnoreCase("SMP_ADMIN"), "Role dropdown has value \"SMP_ADMIN\""); + soft.assertTrue(options.get(1).equalsIgnoreCase("SERVICE_GROUP_ADMIN"), "Role dropdown has value \"SERVICE_GROUP_ADMIN\""); - page.clickSave().confirm(); + soft.assertAll(); + } - soft.assertTrue(page.alertArea.getAlertMessage().getMessage().equalsIgnoreCase(SMPMessages.MSG_18), "Message is as expected"); - soft.assertTrue(!page.grid().isUserListed(username), "After saving deleted user is not listed"); + @Test(description = "USR-80") + public void deleteOWNUserRecord() { - soft.assertAll(); - } + String username = new TestDataProvider().getUserWithRole("SYS_ADMIN").get("username"); - @Test(description = "USR-100") - public void deleteSERVICE_GROUP_ADMIN() { + SoftAssert soft = new SoftAssert(); - String username = Generator.randomAlphaNumeric(10); - SMPRestClient.createUser(username, "SERVICE_GROUP_ADMIN"); - logger.info("Created username" + username); - SoftAssert soft = new SoftAssert(); + UsersPage page = new UsersPage(driver); + soft.assertTrue(!page.isDeleteButtonEnabled(), "Delete button is not enabled"); - UsersPage page = new UsersPage(driver); - page.refreshPage(); - page.waitForRowsToLoad(); + int index = page.grid().scrollToUser(username); + page.grid().selectRow(index); + soft.assertTrue(page.isDeleteButtonEnabled(), "Delete button is enabled after row select"); - soft.assertTrue(!page.isDeleteButtonEnabled(), "Delete button is not enabled"); + page.clickDelete(); + AlertMessage message = page.alertArea.getAlertMessage(); + soft.assertTrue(message.isError(), "Listed message is error"); + soft.assertTrue(message.getMessage().equalsIgnoreCase(SMPMessages.USER_OWN_DELETE_ERR), "Listed message has appropriate text"); - int index = page.grid().scrollToUser(username); - page.grid().selectRow(index); - soft.assertTrue(page.isDeleteButtonEnabled(), "Delete button is enabled after row select"); + soft.assertAll(); + } - page.clickDelete(); - page.waitForRowsToLoad(); + @Test(description = "USR-90") + public void deleteSMP_ADMIN() { - soft.assertTrue(!page.isDeleteButtonEnabled(), "Delete button is not enabled after user is deleted"); - soft.assertTrue(page.isSaveButtonEnabled(), "Save button is enabled after user is deleted"); - soft.assertTrue(page.isCancelButtonEnabled(), "Cancel button is enabled after user is deleted"); + String username = Generator.randomAlphaNumeric(10); + SMPRestClient.createUser(username, "SMP_ADMIN"); + SoftAssert soft = new SoftAssert(); - page.clickCancel().confirm(); - new ConfirmationDialog(driver).confirm(); - page.waitForRowsToLoad(); - soft.assertTrue(page.grid().isUserListed(username), "After canceling delete user is still listed"); + logger.info("Created username " + username); - index = page.grid().scrollToUser(username); - page.grid().selectRow(index); + UsersPage page = new UsersPage(driver); + page.refreshPage(); + soft.assertTrue(!page.isDeleteButtonEnabled(), "Delete button is not enabled"); - soft.assertTrue(page.isDeleteButtonEnabled(), "Delete button is enabled after row select(2)"); + int index = page.grid().scrollToUser(username); + page.grid().selectRow(index); + soft.assertTrue(page.isDeleteButtonEnabled(), "Delete button is enabled after row select"); - page.clickDelete(); - page.waitForRowsToLoad(); - soft.assertTrue(!page.isDeleteButtonEnabled(), "Delete button is not enabled after user is deleted(2)"); - soft.assertTrue(page.isSaveButtonEnabled(), "Save button is enabled after user is deleted(2)"); - soft.assertTrue(page.isCancelButtonEnabled(), "Cancel button is enabled after user is deleted(2)"); + page.clickDelete(); + soft.assertTrue(!page.isDeleteButtonEnabled(), "Delete button is not enabled after user is deleted"); + soft.assertTrue(page.isSaveButtonEnabled(), "Save button is enabled after user is deleted"); + soft.assertTrue(page.isCancelButtonEnabled(), "Cancel button is enabled after user is deleted"); - page.clickSave().confirm(); + page.clickCancel().confirm(); + new ConfirmationDialog(driver).confirm(); + soft.assertTrue(page.grid().isUserListed(username), "After canceling delete user is still listed"); - soft.assertTrue(page.alertArea.getAlertMessage().getMessage().equalsIgnoreCase(SMPMessages.MSG_18), "Message is as expected"); - soft.assertTrue(!page.grid().isUserListed(username), "After saving deleted user is not listed"); - soft.assertAll(); - } + index = page.grid().scrollToUser(username); + page.grid().selectRow(index); + soft.assertTrue(page.isDeleteButtonEnabled(), "Delete button is enabled after row select(2)"); - @Test(description = "USR-110") - public void deleteSG_ADMINWithSG() { + page.clickDelete(); + page.waitForXMillis(200); + soft.assertTrue(!page.isDeleteButtonEnabled(), "Delete button is not enabled after user is deleted(2)"); + soft.assertTrue(page.isSaveButtonEnabled(), "Save button is enabled after user is deleted(2)"); + soft.assertTrue(page.isCancelButtonEnabled(), "Cancel button is enabled after user is deleted(2)"); - String username = Generator.randomAlphaNumeric(10); - String pi = Generator.randomAlphaNumeric(10); - String ps = Generator.randomAlphaNumeric(10); + page.clickSave().confirm(); - String expectedErrorMess = String.format("Delete validation error Could not delete user with ownerships! User: %s owns SG count: 1.", username); + soft.assertTrue(page.alertArea.getAlertMessage().getMessage().equalsIgnoreCase(SMPMessages.MSG_18), "Message is as expected"); + soft.assertTrue(!page.grid().isUserListed(username), "After saving deleted user is not listed"); - SMPRestClient.createUser(username, "SERVICE_GROUP_ADMIN"); - SMPRestClient.createServiceGroup(pi, ps, - new ArrayList<>(Arrays.asList(username)), - new ArrayList<>(Arrays.asList(createdDomains.get(0))) - ); + soft.assertAll(); + } - logger.info("Created username " + username); - logger.info("Created service group " + pi); + @Test(description = "USR-100") + public void deleteSERVICE_GROUP_ADMIN() { - SoftAssert soft = new SoftAssert(); + String username = Generator.randomAlphaNumeric(10); + SMPRestClient.createUser(username, "SERVICE_GROUP_ADMIN"); + logger.info("Created username" + username); + SoftAssert soft = new SoftAssert(); - UsersPage page = new UsersPage(driver); - page.refreshPage(); + UsersPage page = new UsersPage(driver); + page.refreshPage(); + page.waitForRowsToLoad(); - int index = page.grid().scrollToUser(username); - page.grid().selectRow(index); - soft.assertTrue(page.isDeleteButtonEnabled(), "Delete button is enabled after row select"); + soft.assertTrue(!page.isDeleteButtonEnabled(), "Delete button is not enabled"); - page.clickDelete(); - AlertMessage message = page.alertArea.getAlertMessage(); - soft.assertTrue(message.isError(), "Page shows error message when deleting user with SG"); - soft.assertTrue(message.getMessage().equalsIgnoreCase(expectedErrorMess), "Desired message appears"); + int index = page.grid().scrollToUser(username); + page.grid().selectRow(index); + soft.assertTrue(page.isDeleteButtonEnabled(), "Delete button is enabled after row select"); - SMPRestClient.deleteSG(pi); - SMPRestClient.deleteUser(username); + page.clickDelete(); + page.waitForRowsToLoad(); - soft.assertAll(); - } + soft.assertTrue(!page.isDeleteButtonEnabled(), "Delete button is not enabled after user is deleted"); + soft.assertTrue(page.isSaveButtonEnabled(), "Save button is enabled after user is deleted"); + soft.assertTrue(page.isCancelButtonEnabled(), "Cancel button is enabled after user is deleted"); - @Test(description = "USR-120") - public void deleteSMP_ADMINWithSG() { + page.clickCancel().confirm(); + new ConfirmationDialog(driver).confirm(); + page.waitForRowsToLoad(); + soft.assertTrue(page.grid().isUserListed(username), "After canceling delete user is still listed"); - String username = Generator.randomAlphaNumeric(10); - String pi = Generator.randomAlphaNumeric(10); - String ps = Generator.randomAlphaNumeric(10); - - String expectedErrorMess = String.format("Delete validation error Could not delete user with ownerships! User: %s owns SG count: 1.", username); - - SMPRestClient.createUser(username, "SMP_ADMIN"); - SMPRestClient.createServiceGroup(pi, ps, - new ArrayList<>(Arrays.asList(username)), - new ArrayList<>(Arrays.asList(createdDomains.get(0))) - ); - - logger.info("Created username " + username); - - SoftAssert soft = new SoftAssert(); - - UsersPage page = new UsersPage(driver); - page.refreshPage(); - - int index = page.grid().scrollToUser(username); - page.grid().selectRow(index); - soft.assertTrue(page.isDeleteButtonEnabled(), "Delete button is enabled after row select"); - - page.clickDelete(); - page.waitForXMillis(500); - AlertMessage message = page.alertArea.getAlertMessage(); - soft.assertTrue(message.isError(), "Page shows error message when deleting user with SG"); - soft.assertTrue(message.getMessage().equalsIgnoreCase(expectedErrorMess), "Desired message appears"); - - SMPRestClient.deleteSG(pi); - SMPRestClient.deleteUser(username); - - soft.assertAll(); - } - - @Test(description = "USR-130") - public void duplicateUserCreation() { - SoftAssert soft = new SoftAssert(); - String userName = Generator.randomAlphaNumeric(10); - String validPass = "Aabcdefghijklm1@"; - String email = "system@gmail.com"; - UsersPage page = new UsersPage(driver); - - soft.assertTrue(page.isNewButtonEnabled(), "New button should be enabled"); - - UserPopup popup = page.clickNew(); - soft.assertTrue(!popup.isOKButtonActive(), "OK button is enable before valid data is filled in the popup"); - popup.fillDetailsForm(userName,email); - popup.rolesSelect.selectOptionWithText("SYSTEM_ADMIN"); - popup.clickOK(); - soft.assertTrue(page.isSaveButtonEnabled(), "Save button is enabled"); - page.clickSave().confirm(); - String adminPass = "123456"; - int index = page.grid().scrollToUser(userName); - - page.grid().selectRow(index); - popup = page.clickEdit(); - popup.clickSetOrChangePassword(); - popup.setOrChangePassword(adminPass, validPass, validPass); - popup.clickChangedPassword(); - popup.clickCloseAfterChangedPass(); - popup.clickCancel(); - soft.assertTrue(page.grid().isUserListed(userName), "User present in the page"); - - //popup.clickUserDetailsToggle(); - //popup.fillDetailsForm(userName,validPass,validPass); - - - page.clickNew(); - - popup.fillDetailsForm(userName,email); - popup.rolesSelect.selectOptionWithText("SYSTEM_ADMIN"); - // popup.clickUserDetailsToggle(); - //popup.fillDetailsForm(userName); - soft.assertFalse(popup.isOKButtonActive(), "OK button is enable after duplicate user name is filled in the popup"); - - soft.assertTrue(popup.isDuplicateUserNameErrorMsgDisPlayed(), "The user page is not containing the expected error message"); - popup.clickCancel(); - soft.assertAll(); - } - - @Test(description = "USR-140") - public void verifyPasswordDoNotMatch() { - String username = Generator.randomAlphaNumeric(10); - String validPass = "Aabcdefghijklm1@"; - String confirmPass = "AS@!gh12fxghfnh43546"; - String email = "system@gmail.com"; - String errorMsg = "Confirm valued does not match new password!"; - String adminPass = "123456"; - SoftAssert soft = new SoftAssert(); - UsersPage usersPage = new UsersPage(driver); - UserPopup popup = usersPage.clickNew(); - soft.assertTrue(!popup.isOKButtonActive(), "OK button is enable before valid data is filled in the popup"); - popup.fillDetailsForm(username,email); - popup.rolesSelect.selectOptionWithText("SMP_ADMIN"); - popup.clickOK(); - soft.assertTrue(usersPage.isSaveButtonEnabled(), "Save button is enabled"); - usersPage.clickSave().confirm(); - int index = usersPage.grid().scrollToUser(username); - usersPage.grid().selectRow(index); - popup = usersPage.clickEdit(); - popup.clickSetOrChangePassword(); - popup.setOrChangePassword(adminPass, validPass, confirmPass); - //popup.clickVoidSpace(); - soft.assertTrue(!popup.isChangePasswordButtonActive(), "password change button is enabled before valid data is filled in the popup(2)"); - //logger.info("Msg is :"+popup.getPassDontMatchValidationMsg()); - // soft.assertEquals(popup.getPassDontMatchValidationMsg(), errorMsg, "confirmation input does not contain the message 'Confirm valued does not match new password!'"); - soft.assertTrue(!popup.isPopupChangedPasswordEnabled(), "Chagepassword option is not disable after giving the wrong data in cofirmation password"); - soft.assertAll(); - } - - @Test(description = "USR-150") - public void verifySuspendedUserwithoutPassword() { - String username = Generator.randomAlphaNumeric(10); - String password = "Aabcdefghijklm1@"; - String email = "system@gmail.com"; - - SoftAssert soft = new SoftAssert(); - - UsersPage usersPage = new UsersPage(driver); - - UserPopup popup = usersPage.clickNew(); - soft.assertTrue(!popup.isOKButtonActive(), "OK button should be disabled until valid data is filled in the popup"); - popup.fillDetailsForm(username,email); - popup.rolesSelect.selectOptionWithText("SYSTEM_ADMIN"); - popup.clickOK(); - - soft.assertTrue(usersPage.isSaveButtonEnabled(), "Save button is enabled"); - soft.assertTrue(usersPage.isCancelButtonEnabled(), "Cancel button is enabled"); - - usersPage.clickSave().confirm(); - - soft.assertTrue(!usersPage.alertArea.getAlertMessage().isError(), "Message listed is success"); - soft.assertTrue(usersPage.alertArea.getAlertMessage().getMessage().equalsIgnoreCase(SMPMessages.MSG_18), "Message listed is as expected"); - - soft.assertTrue(usersPage.grid().isUserListed(username), "User present in the page"); - - usersPage.pageHeader.sandwichMenu.logout(); - SearchPage page = new SearchPage(driver); - logger.info("Going to login page"); - LoginPage loginPage = page.pageHeader.goToLogin(); - for (int i = 0; i < 5; i++) { - loginPage.invalidLogin(username, password); - loginPage.waitForXMillis(2000); - } - soft.assertTrue(loginPage.isLoginButtonEnable(), "Login Button Is Disabled"); - logger.info(loginPage.alertArea.getAlertMessage().getMessage()); - soft.assertTrue(loginPage.alertArea.getAlertMessage().getMessage().contains(SMPMessages.MSG_22), "Message listed is as expected"); - - SMPPage smpPage = genericLoginProcedure("SYS_ADMIN"); - logger.info("Going to User page"); - smpPage.sidebar.goToPage(UsersPage.class); - usersPage = new UsersPage(driver); - int index = usersPage.grid().scrollToUser(username); - usersPage.grid().selectRow(index); - soft.assertTrue(usersPage.isDeleteButtonEnabled(), "Delete button is enabled after row select(2)"); - - usersPage.clickDelete(); - usersPage.waitForXMillis(200); - soft.assertTrue(!usersPage.isDeleteButtonEnabled(), "Delete button is not enabled after user is deleted(2)"); - soft.assertTrue(usersPage.isSaveButtonEnabled(), "Save button is enabled after user is deleted(2)"); - soft.assertTrue(usersPage.isCancelButtonEnabled(), "Cancel button is enabled after user is deleted(2)"); - - usersPage.clickSave().confirm(); - - soft.assertTrue(usersPage.alertArea.getAlertMessage().getMessage().equalsIgnoreCase(SMPMessages.MSG_18), "Message is as expected"); - soft.assertTrue(!usersPage.grid().isUserListed(username), "After saving deleted user is not listed"); - - soft.assertAll(); - } - - @Test(description = "USR-160") - public void userPageUIAppearanceAndBehaviour(){ - SoftAssert soft = new SoftAssert(); - - UsersPage page = new UsersPage(driver); - soft.assertTrue(page.isLoaded()); - soft.assertTrue(page.isNewButtonEnabled(), "New button is not enable"); - soft.assertTrue(page.isEditTruststoreButtonEnabled(),"EditTruststore Button is not enabled"); - soft.assertTrue(page.isDeleteButtonVisibled(),"Delete button is not visibled"); - soft.assertTrue(page.isEditButtonVisibled(), "Edit button is not visibled"); - soft.assertTrue(page.isSaveButtonVisibled(),"Save button is not visibled"); - soft.assertTrue(page.isCancelButtonVisibled(), "Cancel button is not visibled"); - soft.assertTrue(!page.isEditButtonEnabled(), "Edit button is enabled"); - soft.assertTrue(!page.isSaveButtonEnabled(),"Save button is enabled"); - soft.assertTrue(!page.isCancelButtonEnabled(), "Cancel button is enabled"); - int index = 0; - page.grid().selectRow(index); - soft.assertTrue(page.isDeleteButtonEnabled(), "Delete button is not enabled after row select(2)"); - soft.assertTrue(page.isEditButtonEnabled(), "Edit button is not enabled after row select(2)"); - - - soft.assertAll(); - } - - @Test(description = "USR-170") - public void editUserUIAppearanceAndBehaviour(){ - SoftAssert soft = new SoftAssert(); - UsersPage page = new UsersPage(driver); - soft.assertTrue(page.isLoaded()); - String username = Generator.randomAlphaNumeric(10); - String email = "system@gmail.com"; - UserPopup popup = page.clickNew(); - soft.assertTrue(!popup.isOKButtonActive(), "OK button should be disabled until valid data is filled in the popup"); - popup.fillDetailsForm(username,email); - popup.rolesSelect.selectOptionWithText("SYSTEM_ADMIN"); - popup.clickOK(); - soft.assertTrue(page.isSaveButtonEnabled(), "Save button is enabled"); - soft.assertTrue(page.isCancelButtonEnabled(), "Cancel button is enabled"); - - page.clickSave().confirm(); - - soft.assertTrue(!page.alertArea.getAlertMessage().isError(), "Message listed is success"); - soft.assertTrue(page.alertArea.getAlertMessage().getMessage().equalsIgnoreCase(SMPMessages.MSG_18), "Message listed is as expected"); - - int index = page.grid().scrollToUser(username); - page.grid().selectRow(index); - popup = page.clickEdit(); - soft.assertTrue(!popup.isUsernameFieldEnabled(),"Username field is enabled for an existing user"); - soft.assertTrue(popup.isEmailFieldEnabled(),"Email field is not enabled for an existing user"); - soft.assertTrue(popup.isRoleSelectFieldEnabled(),"Role field is not enabled for an existing user"); - soft.assertTrue(popup.isSetOrChangePassOptionBtnEnabled(),"SetOrChangePassOptionBtn field is not enabled for an existing user"); - soft.assertTrue(popup.isRegenerateAccesstokenBtnEnabled(),"Email field is not enabled for an existing user"); - soft.assertTrue(popup.isOKButtonActive(),"Ok btn is not enabled for an existing user in user popup"); - soft.assertTrue(popup.isCancelButtonActive(),"Cancel btn is not enabled for an existing user in user popup"); - soft.assertTrue(popup.isImportButtonActive(),"Import btn is not enabled for an existing user in user popup"); - if(page.grid().userHasCertificate(index)) { - soft.assertTrue(popup.isShowDetailsButtonActive(), "ShowDetails btn is not enabled for an existing user in user popup"); - soft.assertTrue(popup.isClearButtonActive(), "Clear btn is not enabled for an existing user in user popup"); - } - else{ - soft.assertTrue(!popup.isShowDetailsButtonActive(), "ShowDetails btn is enabled for an existing user in user popup"); - soft.assertTrue(!popup.isClearButtonActive(), "Clear btn is enabled for an existing user in user popup"); - - } - - soft.assertAll(); - - - } - - @Test(description = "USR-180") - public void userEmailValidation(){ - SoftAssert soft = new SoftAssert(); - UsersPage page = new UsersPage(driver); - soft.assertTrue(page.isLoaded()); - String username = Generator.randomAlphaNumeric(10); - ArrayList<String> email = new ArrayList<>(Arrays.asList("sdfdgfdghxvfv@gmail.c", - "sdfdgfdghxvfv$gmail.com", - "hdbvsdkvdsvf")); - UserPopup popup = page.clickNew(); - soft.assertTrue(!popup.isOKButtonActive(), "OK button should be disabled until valid data is filled in the popup"); - for(String emailId:email) - { - popup.fillDetailsForm(username,emailId); - popup.rolesSelect.selectOptionWithText("SYSTEM_ADMIN"); - soft.assertTrue(!popup.isOKButtonActive(),"OK button is active after s4ending invalid email"); - soft.assertEquals(popup.userEmailValidationGetErrMsg(),SMPMessages.USER_EMAIL_VALIDATION_MESSAGE,"Message is not in the list"); - } - soft.assertAll(); - } + + index = page.grid().scrollToUser(username); + page.grid().selectRow(index); + + soft.assertTrue(page.isDeleteButtonEnabled(), "Delete button is enabled after row select(2)"); + + page.clickDelete(); + page.waitForRowsToLoad(); + soft.assertTrue(!page.isDeleteButtonEnabled(), "Delete button is not enabled after user is deleted(2)"); + soft.assertTrue(page.isSaveButtonEnabled(), "Save button is enabled after user is deleted(2)"); + soft.assertTrue(page.isCancelButtonEnabled(), "Cancel button is enabled after user is deleted(2)"); + + page.clickSave().confirm(); + + soft.assertTrue(page.alertArea.getAlertMessage().getMessage().equalsIgnoreCase(SMPMessages.MSG_18), "Message is as expected"); + soft.assertTrue(!page.grid().isUserListed(username), "After saving deleted user is not listed"); + + soft.assertAll(); + } + + @Test(description = "USR-110") + public void deleteSG_ADMINWithSG() { + + String username = Generator.randomAlphaNumeric(10); + String pi = Generator.randomAlphaNumeric(10); + String ps = Generator.randomAlphaNumeric(10); + + String expectedErrorMess = String.format("Delete validation error Could not delete user with ownerships! User: %s owns SG count: 1.", username); + + SMPRestClient.createUser(username, "SERVICE_GROUP_ADMIN"); + SMPRestClient.createServiceGroup(pi, ps, + new ArrayList<>(Arrays.asList(username)), + new ArrayList<>(Arrays.asList(createdDomains.get(0))) + ); + + logger.info("Created username " + username); + logger.info("Created service group " + pi); + + SoftAssert soft = new SoftAssert(); + + UsersPage page = new UsersPage(driver); + page.refreshPage(); + + int index = page.grid().scrollToUser(username); + page.grid().selectRow(index); + soft.assertTrue(page.isDeleteButtonEnabled(), "Delete button is enabled after row select"); + + page.clickDelete(); + AlertMessage message = page.alertArea.getAlertMessage(); + soft.assertTrue(message.isError(), "Page shows error message when deleting user with SG"); + soft.assertTrue(message.getMessage().equalsIgnoreCase(expectedErrorMess), "Desired message appears"); + + SMPRestClient.deleteSG(pi); + SMPRestClient.deleteUser(username); + + soft.assertAll(); + } + + @Test(description = "USR-120") + public void deleteSMP_ADMINWithSG() { + + String username = Generator.randomAlphaNumeric(10); + String pi = Generator.randomAlphaNumeric(10); + String ps = Generator.randomAlphaNumeric(10); + + String expectedErrorMess = String.format("Delete validation error Could not delete user with ownerships! User: %s owns SG count: 1.", username); + + SMPRestClient.createUser(username, "SMP_ADMIN"); + SMPRestClient.createServiceGroup(pi, ps, + new ArrayList<>(Arrays.asList(username)), + new ArrayList<>(Arrays.asList(createdDomains.get(0))) + ); + + logger.info("Created username " + username); + + SoftAssert soft = new SoftAssert(); + + UsersPage page = new UsersPage(driver); + page.refreshPage(); + + int index = page.grid().scrollToUser(username); + page.grid().selectRow(index); + soft.assertTrue(page.isDeleteButtonEnabled(), "Delete button is enabled after row select"); + + page.clickDelete(); + page.waitForXMillis(500); + AlertMessage message = page.alertArea.getAlertMessage(); + soft.assertTrue(message.isError(), "Page shows error message when deleting user with SG"); + soft.assertTrue(message.getMessage().equalsIgnoreCase(expectedErrorMess), "Desired message appears"); + + SMPRestClient.deleteSG(pi); + SMPRestClient.deleteUser(username); + + soft.assertAll(); + } + + @Test(description = "USR-130") + public void duplicateUserCreation() { + SoftAssert soft = new SoftAssert(); + String userName = Generator.randomAlphaNumeric(10); + String validPass = "Aabcdefghijklm1@"; + String email = "system@gmail.com"; + UsersPage page = new UsersPage(driver); + + soft.assertTrue(page.isNewButtonEnabled(), "New button should be enabled"); + + UserPopup popup = page.clickNew(); + soft.assertTrue(!popup.isOKButtonActive(), "OK button is enable before valid data is filled in the popup"); + popup.fillDetailsForm(userName, email); + popup.rolesSelect.selectOptionWithText("SYSTEM_ADMIN"); + popup.clickOK(); + soft.assertTrue(page.isSaveButtonEnabled(), "Save button is enabled"); + page.clickSave().confirm(); + String adminPass = "123456"; + int index = page.grid().scrollToUser(userName); + + page.grid().selectRow(index); + popup = page.clickEdit(); + popup.clickSetOrChangePassword(); + popup.setOrChangePassword(adminPass, validPass, validPass); + popup.clickChangedPassword(); + popup.clickCloseAfterChangedPass(); + popup.clickCancel(); + soft.assertTrue(page.grid().isUserListed(userName), "User present in the page"); + + page.clickNew(); + + popup.fillDetailsForm(userName, email); + popup.rolesSelect.selectOptionWithText("SYSTEM_ADMIN"); + + soft.assertFalse(popup.isOKButtonActive(), "OK button is enable after duplicate user name is filled in the popup"); + + soft.assertTrue(popup.isDuplicateUserNameErrorMsgDisPlayed(), "The user page is not containing the expected error message"); + popup.clickCancel(); + soft.assertAll(); + } + + @Test(description = "USR-140") + public void verifyPasswordDoNotMatch() { + String username = Generator.randomAlphaNumeric(10); + String validPass = "Aabcdefghijklm1@"; + String confirmPass = "AS@!gh12fxghfnh43546"; + String email = "system@gmail.com"; + String errorMsg = "Confirm valued does not match new password!"; + String adminPass = "123456"; + SoftAssert soft = new SoftAssert(); + UsersPage usersPage = new UsersPage(driver); + UserPopup popup = usersPage.clickNew(); + soft.assertTrue(!popup.isOKButtonActive(), "OK button is enable before valid data is filled in the popup"); + popup.fillDetailsForm(username, email); + popup.rolesSelect.selectOptionWithText("SMP_ADMIN"); + popup.clickOK(); + soft.assertTrue(usersPage.isSaveButtonEnabled(), "Save button is enabled"); + usersPage.clickSave().confirm(); + int index = usersPage.grid().scrollToUser(username); + usersPage.grid().selectRow(index); + popup = usersPage.clickEdit(); + popup.clickSetOrChangePassword(); + popup.setOrChangePassword(adminPass, validPass, confirmPass); + soft.assertTrue(!popup.isChangePasswordButtonActive(), "password change button is enabled before valid data is filled in the popup(2)"); + soft.assertTrue(!popup.isPopupChangedPasswordEnabled(), "Change password option is not disable after giving the wrong data in cofirmation password"); + soft.assertAll(); + } + + @Test(description = "USR-150") + public void verifySuspendedUserwithoutPassword() { + String username = Generator.randomAlphaNumeric(10); + String password = "Aabcdefghijklm1@"; + String email = "system@gmail.com"; + + SoftAssert soft = new SoftAssert(); + + UsersPage usersPage = new UsersPage(driver); + + UserPopup popup = usersPage.clickNew(); + soft.assertTrue(!popup.isOKButtonActive(), "OK button should be disabled until valid data is filled in the popup"); + popup.fillDetailsForm(username, email); + popup.rolesSelect.selectOptionWithText("SYSTEM_ADMIN"); + popup.clickOK(); + + soft.assertTrue(usersPage.isSaveButtonEnabled(), "Save button is enabled"); + soft.assertTrue(usersPage.isCancelButtonEnabled(), "Cancel button is enabled"); + + usersPage.clickSave().confirm(); + + soft.assertTrue(!usersPage.alertArea.getAlertMessage().isError(), "Message listed is success"); + soft.assertTrue(usersPage.alertArea.getAlertMessage().getMessage().equalsIgnoreCase(SMPMessages.MSG_18), "Message listed is as expected"); + + soft.assertTrue(usersPage.grid().isUserListed(username), "User present in the page"); + + usersPage.pageHeader.sandwichMenu.logout(); + SearchPage page = new SearchPage(driver); + logger.info("Going to login page"); + LoginPage loginPage = page.pageHeader.goToLogin(); + for (int i = 0; i < 5; i++) { + loginPage.invalidLogin(username, password); + loginPage.waitForXMillis(2000); + } + soft.assertTrue(loginPage.isLoginButtonEnable(), "Login Button Is Disabled"); + logger.info(loginPage.alertArea.getAlertMessage().getMessage()); + soft.assertTrue(loginPage.alertArea.getAlertMessage().getMessage().contains(SMPMessages.MSG_22), "Message listed is as expected"); + + SMPPage smpPage = genericLoginProcedure("SYS_ADMIN"); + logger.info("Going to User page"); + smpPage.sidebar.goToPage(UsersPage.class); + usersPage = new UsersPage(driver); + int index = usersPage.grid().scrollToUser(username); + usersPage.grid().selectRow(index); + soft.assertTrue(usersPage.isDeleteButtonEnabled(), "Delete button is enabled after row select(2)"); + + usersPage.clickDelete(); + usersPage.waitForXMillis(200); + soft.assertTrue(!usersPage.isDeleteButtonEnabled(), "Delete button is not enabled after user is deleted(2)"); + soft.assertTrue(usersPage.isSaveButtonEnabled(), "Save button is enabled after user is deleted(2)"); + soft.assertTrue(usersPage.isCancelButtonEnabled(), "Cancel button is enabled after user is deleted(2)"); + + usersPage.clickSave().confirm(); + + soft.assertTrue(usersPage.alertArea.getAlertMessage().getMessage().equalsIgnoreCase(SMPMessages.MSG_18), "Message is as expected"); + soft.assertTrue(!usersPage.grid().isUserListed(username), "After saving deleted user is not listed"); + + soft.assertAll(); + } + + @Test(description = "USR-160") + public void userPageUIAppearanceAndBehaviour() { + SoftAssert soft = new SoftAssert(); + + UsersPage page = new UsersPage(driver); + soft.assertTrue(page.isLoaded()); + soft.assertTrue(page.isNewButtonEnabled(), "New button is not enable"); + soft.assertTrue(page.isEditTruststoreButtonEnabled(), "EditTruststore Button is not enabled"); + soft.assertTrue(page.isDeleteButtonVisibled(), "Delete button is not visibled"); + soft.assertTrue(page.isEditButtonVisibled(), "Edit button is not visibled"); + soft.assertTrue(page.isSaveButtonVisibled(), "Save button is not visibled"); + soft.assertTrue(page.isCancelButtonVisibled(), "Cancel button is not visibled"); + soft.assertTrue(!page.isEditButtonEnabled(), "Edit button is enabled"); + soft.assertTrue(!page.isSaveButtonEnabled(), "Save button is enabled"); + soft.assertTrue(!page.isCancelButtonEnabled(), "Cancel button is enabled"); + int index = 0; + page.grid().selectRow(index); + soft.assertTrue(page.isDeleteButtonEnabled(), "Delete button is not enabled after row select(2)"); + soft.assertTrue(page.isEditButtonEnabled(), "Edit button is not enabled after row select(2)"); + + + soft.assertAll(); + } + + @Test(description = "USR-170") + public void editUserUIAppearanceAndBehaviour() { + SoftAssert soft = new SoftAssert(); + UsersPage page = new UsersPage(driver); + soft.assertTrue(page.isLoaded()); + String username = Generator.randomAlphaNumeric(10); + String email = "system@gmail.com"; + UserPopup popup = page.clickNew(); + soft.assertTrue(!popup.isOKButtonActive(), "OK button should be disabled until valid data is filled in the popup"); + popup.fillDetailsForm(username, email); + popup.rolesSelect.selectOptionWithText("SYSTEM_ADMIN"); + popup.clickOK(); + soft.assertTrue(page.isSaveButtonEnabled(), "Save button is enabled"); + soft.assertTrue(page.isCancelButtonEnabled(), "Cancel button is enabled"); + + page.clickSave().confirm(); + + soft.assertTrue(!page.alertArea.getAlertMessage().isError(), "Message listed is success"); + soft.assertTrue(page.alertArea.getAlertMessage().getMessage().equalsIgnoreCase(SMPMessages.MSG_18), "Message listed is as expected"); + + int index = page.grid().scrollToUser(username); + page.grid().selectRow(index); + popup = page.clickEdit(); + soft.assertTrue(!popup.isUsernameFieldEnabled(), "Username field is enabled for an existing user"); + soft.assertTrue(popup.isEmailFieldEnabled(), "Email field is not enabled for an existing user"); + soft.assertTrue(popup.isRoleSelectFieldEnabled(), "Role field is not enabled for an existing user"); + soft.assertTrue(popup.isSetOrChangePassOptionBtnEnabled(), "SetOrChangePassOptionBtn field is not enabled for an existing user"); + soft.assertTrue(popup.isRegenerateAccesstokenBtnEnabled(), "Email field is not enabled for an existing user"); + soft.assertTrue(popup.isOKButtonActive(), "Ok btn is not enabled for an existing user in user popup"); + soft.assertTrue(popup.isCancelButtonActive(), "Cancel btn is not enabled for an existing user in user popup"); + soft.assertTrue(popup.isImportButtonActive(), "Import btn is not enabled for an existing user in user popup"); + if (page.grid().userHasCertificate(index)) { + soft.assertTrue(popup.isShowDetailsButtonActive(), "ShowDetails btn is not enabled for an existing user in user popup"); + soft.assertTrue(popup.isClearButtonActive(), "Clear btn is not enabled for an existing user in user popup"); + } else { + soft.assertTrue(!popup.isShowDetailsButtonActive(), "ShowDetails btn is enabled for an existing user in user popup"); + soft.assertTrue(!popup.isClearButtonActive(), "Clear btn is enabled for an existing user in user popup"); + + } + + soft.assertAll(); + + + } + + @Test(description = "USR-180") + public void userEmailValidation() { + SoftAssert soft = new SoftAssert(); + UsersPage page = new UsersPage(driver); + soft.assertTrue(page.isLoaded()); + String username = Generator.randomAlphaNumeric(10); + ArrayList<String> email = new ArrayList<>(Arrays.asList("sdfdgfdghxvfv@gmail.c", + "sdfdgfdghxvfv$gmail.com", + "hdbvsdkvdsvf")); + UserPopup popup = page.clickNew(); + soft.assertTrue(!popup.isOKButtonActive(), "OK button should be disabled until valid data is filled in the popup"); + for (String emailId : email) { + popup.fillDetailsForm(username, emailId); + popup.rolesSelect.selectOptionWithText("SYSTEM_ADMIN"); + soft.assertTrue(!popup.isOKButtonActive(), "OK button is active after s4ending invalid email"); + soft.assertEquals(popup.userEmailValidationGetErrMsg(), SMPMessages.USER_EMAIL_VALIDATION_MESSAGE, "Message is not in the list"); + } + soft.assertAll(); + } } -- GitLab