diff --git a/smp-ui-tests/pom.xml b/smp-ui-tests/pom.xml index cb633d0f4d280fbd4bf99613019aa94ce8efe133..a4fb20c3e49ea18e52b967a527395bb508fd9bce 100644 --- a/smp-ui-tests/pom.xml +++ b/smp-ui-tests/pom.xml @@ -77,7 +77,7 @@ <failIfNoTests>true</failIfNoTests> <systemPropertyVariables> <webdriver.chrome.driver>${chrome.driver.path}</webdriver.chrome.driver> - <webdriver.gecko.driver>geckodriver.exe</webdriver.gecko.driver> + <webdriver.gecko.driver>chromedriver.exe</webdriver.gecko.driver> <reports.folder>./target/</reports.folder> <data.folder>.\src\main\resources\</data.folder> <testdata.file>testData.json</testdata.file> @@ -110,7 +110,7 @@ <failIfNoTests>true</failIfNoTests> <systemPropertyVariables> - <webdriver.gecko.driver>${gecko.driver.path}</webdriver.gecko.driver> + <webdriver.chrome.driver>${chrome.driver.path}</webdriver.chrome.driver> <reports.folder>./target/</reports.folder> <data.folder>./src/main/resources/</data.folder> <testdata.file>testData.json</testdata.file> diff --git a/smp-ui-tests/src/main/java/pages/components/ConfirmationDialog.java b/smp-ui-tests/src/main/java/pages/components/ConfirmationDialog.java index 7d0f9dd365f1d8644dafb4bd15709e5250ceafc3..c3f5c709ad733c94c8c8ca0b4f6f92dad9a4a605 100644 --- a/smp-ui-tests/src/main/java/pages/components/ConfirmationDialog.java +++ b/smp-ui-tests/src/main/java/pages/components/ConfirmationDialog.java @@ -1,7 +1,9 @@ package pages.components; +import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; +import org.openqa.selenium.interactions.Actions; import org.openqa.selenium.support.FindBy; import org.openqa.selenium.support.PageFactory; import org.openqa.selenium.support.pagefactory.AjaxElementLocatorFactory; @@ -34,6 +36,9 @@ public class ConfirmationDialog extends PageComponent { public void cancel(){ log.info("dialog .. cancel"); waitForElementToBeClickable(noBtn); +/* Actions actions = new Actions(driver); + actions.moveToElement(noBtn).click().build().perform();*/ + //((JavascriptExecutor) driver).executeScript("arguments[0].click();", noBtn); noBtn.click(); waitForElementToBeGone(noBtn); } diff --git a/smp-ui-tests/src/main/java/pages/components/GenericSelect.java b/smp-ui-tests/src/main/java/pages/components/GenericSelect.java index 76ea20bc0d599615bfad6a7f1cdf4a6460f0bbc5..3e27a25548b7f07a7208a1d35c03f22dd5eacd6e 100644 --- a/smp-ui-tests/src/main/java/pages/components/GenericSelect.java +++ b/smp-ui-tests/src/main/java/pages/components/GenericSelect.java @@ -65,6 +65,7 @@ public class GenericSelect extends PageComponent { if(option.getText().trim().equalsIgnoreCase(text)){ waitForElementToBeClickable(option).click(); waitForElementToBeGone(option); + log.info("return type is True"); return true; } } diff --git a/smp-ui-tests/src/main/java/pages/components/SandwichMenu.java b/smp-ui-tests/src/main/java/pages/components/SandwichMenu.java index 815f5ebdb34f62307b2cf5de42c7a511586ac18e..cea32852cb3623d952d4a84c63718dd36119e559 100644 --- a/smp-ui-tests/src/main/java/pages/components/SandwichMenu.java +++ b/smp-ui-tests/src/main/java/pages/components/SandwichMenu.java @@ -6,6 +6,7 @@ import org.openqa.selenium.support.FindBy; import org.openqa.selenium.support.PageFactory; import org.openqa.selenium.support.pagefactory.AjaxElementLocatorFactory; import pages.components.baseComponents.PageComponent; +import pages.password.PasswordChangepopup; import pages.service_groups.search.SearchPage; import utils.PROPERTIES; @@ -32,6 +33,10 @@ public class SandwichMenu extends PageComponent { @FindBy(id = "logout_id") WebElement logoutLnk; + @FindBy(id = "changePassword_id") + WebElement passChangeLnk; + + public boolean isLoggedIn(){ clickVoidSpace(); @@ -48,6 +53,12 @@ public class SandwichMenu extends PageComponent { clickVoidSpace(); return isLoggedIn; } + public PasswordChangepopup clickChangePasswordOption() + { + waitForElementToBeClickable(expandoButton).click(); + waitForElementToBeClickable(passChangeLnk).click(); + return new PasswordChangepopup(driver); + } public SearchPage logout(){ clickVoidSpace(); diff --git a/smp-ui-tests/src/main/java/pages/components/Sidebar.java b/smp-ui-tests/src/main/java/pages/components/Sidebar.java index b08531486f4b32f323de620b3fc9ac00a71c9b64..4364cdc909b4adf4de7070ee24f16092a9846b06 100644 --- a/smp-ui-tests/src/main/java/pages/components/Sidebar.java +++ b/smp-ui-tests/src/main/java/pages/components/Sidebar.java @@ -9,6 +9,7 @@ import org.openqa.selenium.support.pagefactory.AjaxElementLocatorFactory; import pages.components.baseComponents.Header; import pages.components.baseComponents.SMPPage; import pages.components.baseComponents.PageComponent; +import pages.service_groups.search.SearchPage; import utils.PROPERTIES; import java.security.PublicKey; @@ -40,6 +41,9 @@ public class Sidebar extends PageComponent { @FindBy(id = "sidebar_user_id") private WebElement userLnk; + @FindBy(id = "sidebar_property_id") + private WebElement propertyLnk; + @FindBy(css = "mat-icon[role=img][mattooltip=Collapse]") private WebElement collapseButton; @@ -64,6 +68,9 @@ public class Sidebar extends PageComponent { case "UsersPage": waitForElementToBeClickable(userLnk).click(); break; + case "PropertiesPage": + waitForElementToBeClickable(propertyLnk).click(); + break; } waitForXMillis(500); diff --git a/smp-ui-tests/src/main/java/pages/components/baseComponents/Header.java b/smp-ui-tests/src/main/java/pages/components/baseComponents/Header.java index 71ac9a72e6d39ad00df19a39083e108bb516bda7..7e81bd57fb19b02e92f021a2c6e20664eb0928ac 100644 --- a/smp-ui-tests/src/main/java/pages/components/baseComponents/Header.java +++ b/smp-ui-tests/src/main/java/pages/components/baseComponents/Header.java @@ -5,9 +5,9 @@ import org.openqa.selenium.WebElement; import org.openqa.selenium.support.FindBy; import org.openqa.selenium.support.PageFactory; import org.openqa.selenium.support.pagefactory.AjaxElementLocatorFactory; -import org.openqa.selenium.support.ui.ExpectedConditions; import pages.components.SandwichMenu; import pages.login.LoginPage; +import pages.password.PasswordChangepopup; import utils.PROPERTIES; public class Header extends PageComponent{ @@ -29,8 +29,18 @@ public class Header extends PageComponent{ @FindBy(css = "#sandwichMenu .ng-star-inserted") private WebElement role; + @FindBy(css = "#changePassword_id") + private WebElement changePasswordOption; + public SandwichMenu sandwichMenu = new SandwichMenu(driver); + public PasswordChangepopup clickChangePasswordOption() + { + log.info("Clicking on changepassword option"); + waitForElementToBeClickable(changePasswordOption).click(); + return new PasswordChangepopup(driver); + } + public LoginPage goToLogin(){ log.info("Going to login page"); waitForElementToBeClickable(loginLnk).click(); 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 90c62399fdc41629130f498fa677edb2ebeba240..909709e0cdf23ceff53e5fe804d5c75101efeb46 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 @@ -2,7 +2,10 @@ package pages.components.baseComponents; import org.apache.log4j.Logger; -import org.openqa.selenium.*; +import org.openqa.selenium.By; +import org.openqa.selenium.JavascriptExecutor; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; import org.openqa.selenium.support.ui.ExpectedCondition; import org.openqa.selenium.support.ui.ExpectedConditions; import org.openqa.selenium.support.ui.WebDriverWait; @@ -11,235 +14,220 @@ import utils.PROPERTIES; public class PageComponent { - protected WebDriver driver; - protected WebDriverWait wait; - protected Logger log = Logger.getLogger(this.getClass()); - - - 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 += 300; - waitForXMillis(300); - } - } - - public void waitForElementToBeDisabled(WebElement element) { - int maxTimeout = PROPERTIES.SHORT_UI_TIMEOUT * 1000; - int waitedSoFar = 0; - while ((null == element.getAttribute("disabled")) && (waitedSoFar < maxTimeout)) { - waitedSoFar += 300; - waitForXMillis(300); - } - } - - - public void waitForElementToBeGone(WebElement element) { - WebDriverWait myWait = new WebDriverWait(driver, PROPERTIES.SHORT_UI_TIMEOUT); - - try { - myWait.until(ExpectedConditions.visibilityOf(element)); - } catch (Exception e) { - return; - } - - int waitTime = PROPERTIES.SHORT_UI_TIMEOUT * 1000; - while (waitTime > 0) { - boolean displayed = true; - - try { - displayed = element.isDisplayed(); - } catch (Exception e) { - return; - } - - if (!displayed) { - return; - } - waitForXMillis(500); - waitTime = waitTime - 500; - } - } - - public void waitForElementToBeGone(By locator) { - WebDriverWait myWait = new WebDriverWait(driver, PROPERTIES.SHORT_UI_TIMEOUT); - - try { - myWait.until(ExpectedConditions.visibilityOfElementLocated(locator)); - } catch (Exception e) { - return; - } - - int waitTime = PROPERTIES.SHORT_UI_TIMEOUT * 1000; - while (waitTime > 0) { - boolean displayed = true; - - try { - displayed = driver.findElement(locator).isDisplayed(); - } catch (Exception e) { - return; - } - - if (!displayed) { - return; - } - - waitForXMillis(500); - waitTime = waitTime - 500; - } - } - - public void waitForNumberOfWindowsToBe(int noOfWindows) { - try { - wait.until(numberOfWindowsToBe(noOfWindows)); - } catch (Exception e) { - } - } - - public void clearAndFillInput(WebElement element, String toFill) { - waitForElementToBeVisible(element).clear(); - log.info("cleared input"); - waitForElementToBeEnabled(element); - element.sendKeys(toFill); - log.info("filled in text " + toFill); - } - - public void clickVoidSpace() { - 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(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; - } - - - protected By loadingBar = By.className("mat-ripple-element"); - - public void waitForRowsToLoad() { - log.info("waiting for rows to load"); - try { - waitForElementToBeGone(loadingBar); -// waitForElementToBeVisible(loadingBar); -// -// int bars = 1; -// int waits = 0; -// while (bars > 0 && waits < 30) { -// Object tmp = ((JavascriptExecutor) driver).executeScript("return document.querySelectorAll('.mat-ripple-element').length;"); -// bars = Integer.valueOf(tmp.toString()); -// waits++; -// waitForXMillis(500); -// } -// log.debug("waited for rows to load for ms = 500*" + waits); - } catch (Exception e) { } - waitForXMillis(500); - } - + protected WebDriver driver; + protected WebDriverWait wait; + protected Logger log = Logger.getLogger(this.getClass()); + protected By loadingBar = By.className("mat-ripple-element"); + + + 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 += 300; + waitForXMillis(300); + } + } + + public void waitForElementToBeDisabled(WebElement element) { + int maxTimeout = PROPERTIES.SHORT_UI_TIMEOUT * 1000; + int waitedSoFar = 0; + while ((null == element.getAttribute("disabled")) && (waitedSoFar < maxTimeout)) { + waitedSoFar += 300; + waitForXMillis(300); + } + } + + public void waitForElementToBeGone(WebElement element) { + WebDriverWait myWait = new WebDriverWait(driver, 1); + + try { + myWait.until(ExpectedConditions.visibilityOf(element)); + myWait.until(ExpectedConditions.invisibilityOf(element)); + } catch (Exception e) { + return; + } + + int waitTime = PROPERTIES.SHORT_UI_TIMEOUT * 1000; + while (waitTime > 0) { + + try { + if (!element.isDisplayed()) { + return; + } + } catch (Exception e) { + return; + } + waitForXMillis(500); + waitTime = waitTime - 500; + } + } + + public void waitForElementToBeGone(By locator) { + WebDriverWait myWait = new WebDriverWait(driver, PROPERTIES.SHORT_UI_TIMEOUT); + + try { + myWait.until(ExpectedConditions.visibilityOfElementLocated(locator)); + } catch (Exception e) { + return; + } + + int waitTime = PROPERTIES.SHORT_UI_TIMEOUT * 1000; + while (waitTime > 0) { + boolean displayed = true; + + try { + displayed = driver.findElement(locator).isDisplayed(); + } catch (Exception e) { + return; + } + + if (!displayed) { + return; + } + + waitForXMillis(500); + waitTime = waitTime - 500; + } + } + + 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(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 { + waitForElementToBeGone(loadingBar); + } catch (Exception e) { + } + waitForXMillis(500); + } } diff --git a/smp-ui-tests/src/main/java/pages/components/grid/BasicGrid.java b/smp-ui-tests/src/main/java/pages/components/grid/BasicGrid.java index 6b7bbc777a7b895cd6515b3ac1b2dc7318e3ac8e..9c3d4b281f03c1c1974e27d65a4a74a847f17423 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 @@ -1,6 +1,5 @@ package pages.components.grid; -import org.openqa.selenium.By; import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; @@ -8,67 +7,65 @@ import org.openqa.selenium.interactions.Actions; import org.openqa.selenium.support.FindBy; import org.openqa.selenium.support.PageFactory; import org.openqa.selenium.support.pagefactory.DefaultElementLocatorFactory; -import org.openqa.selenium.support.ui.ExpectedConditions; import pages.components.baseComponents.PageComponent; -import java.lang.reflect.Constructor; import java.util.ArrayList; import java.util.List; public class BasicGrid extends PageComponent { - public BasicGrid(WebDriver driver, WebElement container) { - super(driver); - - log.info("Loading basic grid"); - waitForRowsToLoad(); - PageFactory.initElements( new DefaultElementLocatorFactory(container) , this); + @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>(); - for (int i = 0; i < gridHeaders.size(); i++) { - headerTxt.add(gridHeaders.get(i).getText().trim()); - } - } + public BasicGrid(WebDriver driver, WebElement container) { + super(driver); + 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()); + } - @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 void selectRow(int rowNumber){ - log.info("selecting row with number ... " + rowNumber); - if(rowNumber>=gridRows.size()){return;} - gridRows.get(rowNumber).click(); - waitForXMillis(500); - } - - 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(); - } + public void selectRow(int rowNumber) { + log.info("selecting row with number ... " + rowNumber); + if (rowNumber >= gridRows.size()) { + return; + } + gridRows.get(rowNumber).click(); + waitForXMillis(500); + } - public int getColumnsNo(){ - log.info("getting number of columns"); - return gridHeaders.size(); - } + public void doubleClickRow(int rowNumber) { - public int getRowsNo(){ - return gridRows.size(); - } + 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 void scrollRow(int index) { - JavascriptExecutor js = (JavascriptExecutor) driver; - js.executeScript("arguments[0].scrollIntoView();",gridRows.get(index)); - waitForXMillis(500); - } + public int getColumnsNo() { + log.info("getting number of columns"); + return gridHeaders.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); + } } diff --git a/smp-ui-tests/src/main/java/pages/components/messageArea/AlertMessage.java b/smp-ui-tests/src/main/java/pages/components/messageArea/AlertMessage.java index e2442e3ac7235c96c94ee98a8a71551747ca6d01..a2e92d6421c8a1179a71f2eccfc8eb40e23a0044 100644 --- a/smp-ui-tests/src/main/java/pages/components/messageArea/AlertMessage.java +++ b/smp-ui-tests/src/main/java/pages/components/messageArea/AlertMessage.java @@ -11,7 +11,8 @@ public class AlertMessage { } public String getMessage() { - return message.replaceAll("×", "").trim(); + System.out.println("message = " + message); + return message.replaceAll("×", "").trim(); } public void setMessage(String message) { diff --git a/smp-ui-tests/src/main/java/pages/password/PasswordChangepopup.java b/smp-ui-tests/src/main/java/pages/password/PasswordChangepopup.java new file mode 100644 index 0000000000000000000000000000000000000000..f666d74fdb0c6aa465c68f82cfdfbdd9805996bc --- /dev/null +++ b/smp-ui-tests/src/main/java/pages/password/PasswordChangepopup.java @@ -0,0 +1,139 @@ +package pages.password; + + +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.FindBy; +import org.openqa.selenium.support.PageFactory; +import org.openqa.selenium.support.pagefactory.AjaxElementLocatorFactory; +import pages.components.ConfirmationDialog; +import pages.components.baseComponents.PageComponent; +import pages.service_groups.search.SearchPage; +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(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; + } + +} + diff --git a/smp-ui-tests/src/main/java/pages/properties/PropertiesGrid.java b/smp-ui-tests/src/main/java/pages/properties/PropertiesGrid.java new file mode 100644 index 0000000000000000000000000000000000000000..baca43b15b72f7ae092505063018c9068bb65372 --- /dev/null +++ b/smp-ui-tests/src/main/java/pages/properties/PropertiesGrid.java @@ -0,0 +1,41 @@ +package pages.properties; + +import org.openqa.selenium.By; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.FindBy; +import pages.components.grid.BasicGrid; +import pages.properties.PropertyRowInfo; +import pages.users.UserRowInfo; + +import java.util.ArrayList; +import java.util.List; + +public class PropertiesGrid extends BasicGrid { + + + public PropertiesGrid(WebDriver driver, WebElement container) { + super(driver, container); + } + public List<PropertyRowInfo> getRows() { + List<PropertyRowInfo> rowInfos = new ArrayList<>(); + + for (WebElement gridRow : gridRows) { + List<WebElement> cells = gridRow.findElements(By.tagName("datatable-body-cell")); + PropertyRowInfo rowInfo = new PropertyRowInfo(); + rowInfo.setPropertyname(cells.get(0).getText().trim()); + rowInfo.setPropertyvalue(cells.get(1).getText().trim()); + rowInfos.add(rowInfo); + } + return rowInfos; + } + + public Boolean rowContainPropertyName(String property){ + List<PropertyRowInfo> rows = getRows(); + int i = rows.size(); + Boolean bool=rows.size() == 1 && rows.get(i-1).getPropertyname().equalsIgnoreCase(property); + + return bool; + + } +} diff --git a/smp-ui-tests/src/main/java/pages/properties/PropertiesPage.java b/smp-ui-tests/src/main/java/pages/properties/PropertiesPage.java new file mode 100644 index 0000000000000000000000000000000000000000..c954988a319f50eaec1881d6bbf8438507343c49 --- /dev/null +++ b/smp-ui-tests/src/main/java/pages/properties/PropertiesPage.java @@ -0,0 +1,96 @@ +package pages.properties; + +import org.openqa.selenium.By; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.FindBy; +import org.openqa.selenium.support.PageFactory; +import org.openqa.selenium.support.pagefactory.AjaxElementLocatorFactory; +import pages.components.ConfirmationDialog; +import pages.components.baseComponents.PaginationControls; +import pages.components.baseComponents.SMPPage; +import pages.users.UserPopup; +import pages.users.UsersGrid; +import utils.PROPERTIES; + +public class PropertiesPage extends SMPPage { + public PropertiesPage(WebDriver driver) { + super(driver); + this.pageHeader.waitForTitleToBe("Properties"); + PageFactory.initElements(new AjaxElementLocatorFactory(driver, PROPERTIES.TIMEOUT), this); + } + public PaginationControls pagination = new PaginationControls(driver); + + @FindBy(id = "searchTable") + private WebElement propertyTableContainer; + + @FindBy(id = "cancelButton") + private WebElement cancelBtn; + + @FindBy(id = "saveButton") + private WebElement saveBtn; + + @FindBy(id = "editButton") + private WebElement editBtn; + + @FindBy(id = "searchProperty") + private WebElement searchPropertyField; + + @FindBy(id = "searchbutton_id") + private WebElement searchBtn; + + public String getErrorMessage() + { + return driver.findElement(By.cssSelector(".alert-message-error")).getText(); + } + + + + public boolean isLoaded(){ + log.info("checking if Property page is loaded"); + return isVisible(cancelBtn) + && isVisible(saveBtn) + && isVisible(editBtn); + } + + public boolean isCancelButtonEnabled() { + log.info("checking cancel button is enabled"); + return isEnabled(cancelBtn); + } + + public boolean isSaveButtonEnabled() { + log.info("checking save button is enabled"); + return isEnabled(saveBtn); + } + public ConfirmationDialog clickCancel() { + log.info("click cancel button"); + waitForElementToBeClickable(cancelBtn).click(); + return new ConfirmationDialog(driver); + } + public boolean isEditButtonEnabled() { + log.info("checking edit button is enabled"); + return isEnabled(editBtn); + } + + + + public ConfirmationDialog clickSave() { + log.info("click save button"); + waitForElementToBeClickable(saveBtn).click(); + return new ConfirmationDialog(driver); + } + public PropertyPopup clickEdit() { + log.info("click edit button"); + waitForElementToBeClickable(editBtn).click(); + return new PropertyPopup(driver); + } + public void propertySearch(String propertyname) + { + log.info("Search for property"); + waitForElementToBeVisible(searchPropertyField).sendKeys(propertyname); + waitForElementToBeClickable(searchBtn).click(); + } + public PropertiesGrid grid() { + return new PropertiesGrid(driver, propertyTableContainer); + } +} diff --git a/smp-ui-tests/src/main/java/pages/properties/PropertyPopup.java b/smp-ui-tests/src/main/java/pages/properties/PropertyPopup.java new file mode 100644 index 0000000000000000000000000000000000000000..464be67c4b84742a39c3ece806e33e7168f7456c --- /dev/null +++ b/smp-ui-tests/src/main/java/pages/properties/PropertyPopup.java @@ -0,0 +1,90 @@ +package pages.properties; + +import org.openqa.selenium.JavascriptExecutor; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.FindBy; +import org.openqa.selenium.support.PageFactory; +import pages.components.GenericSelect; +import pages.components.baseComponents.PageComponent; + +public class PropertyPopup extends PageComponent { + + public PropertyPopup(WebDriver driver) { + super(driver); + PageFactory.initElements(driver, this); + } + + @FindBy(css = "mat-dialog-actions button:nth-child(1)") + WebElement popupOkBtn; + + @FindBy(css = "mat-dialog-actions button:nth-child(2)") + WebElement popupCancelBtn; + + @FindBy(css = "span.mat-checkbox-inner-container input") + WebElement propertyCheckbox; + + @FindBy(css = ".mat-input-element.mat-form-field-autofill-control[type='text']") + WebElement propertryEditInput; + + public boolean isOKButtonActive() { + return isEnabled(popupOkBtn); + } + + public boolean isCancelButtonActive() { + return isEnabled(popupCancelBtn); + } + public PropertiesPage clickOK() { + log.info("click OK"); + waitForElementToBeClickable(popupOkBtn); + popupOkBtn.click(); + waitForElementToBeGone(popupOkBtn); + return new PropertiesPage(driver); + } + + public PropertiesPage clickCancel() { + log.info("click cancel"); + waitForElementToBeClickable(popupCancelBtn); + popupCancelBtn.click(); + waitForElementToBeGone(popupCancelBtn); + return new PropertiesPage(driver); + } + public PropertiesPage enableCheckboxOfProperty() { + Boolean bool = propertyCheckbox.isSelected(); + + if (bool == false) { + propertyCheckbox.click(); + popupOkBtn.click(); + } + else + { + popupCancelBtn.click(); + } + return new PropertiesPage(driver); + } + public PropertiesPage disableCheckboxOfProperty(){ + Boolean bool = propertyCheckbox.isSelected(); + if(bool == true){ + JavascriptExecutor executor = (JavascriptExecutor)driver; + executor.executeScript("arguments[0].click();", propertyCheckbox); + try { + Thread.sleep(1000); + } catch (Exception e) { + e.printStackTrace(); + } + popupOkBtn.click(); + } + else + { + popupCancelBtn.click(); + } + return new PropertiesPage(driver); + + } + public void editInputField(String string) + { + propertryEditInput.sendKeys(string); + } + + + } diff --git a/smp-ui-tests/src/main/java/pages/properties/PropertyRowInfo.java b/smp-ui-tests/src/main/java/pages/properties/PropertyRowInfo.java new file mode 100644 index 0000000000000000000000000000000000000000..3f5f344136d274089199ac1919dbebe5aa814aa9 --- /dev/null +++ b/smp-ui-tests/src/main/java/pages/properties/PropertyRowInfo.java @@ -0,0 +1,22 @@ +package pages.properties; + +public class PropertyRowInfo { + private String propertyname; + private String propertyvalue; + + public String getPropertyname() { + return propertyname; + } + + public void setPropertyname(String propertyname) { + this.propertyname = propertyname; + } + + public String getPropertyvalue() { + return propertyvalue; + } + + public void setPropertyvalue(String propertyvalue) { + this.propertyvalue = propertyvalue; + } +} 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 3ea1034abdd49b0ca5f1879083db97f757dd7ad5..7792f9a4c820339a7eec5cb76b9421df876a939a 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 @@ -29,6 +29,9 @@ public class EditPage extends SMPPage { @FindBy(id = "searchTable") private WebElement searchTable; + @FindBy(id = "okButton") + private WebElement okButton; + @FindBy(id = "cancelButton") private WebElement cancelButton; @@ -101,6 +104,11 @@ public class EditPage extends SMPPage { waitForElementToBeClickable(cancelButton).click(); return new ConfirmationDialog(driver); } + public ConfirmationDialog clickOk() { + log.info("canceling ..."); + waitForElementToBeClickable(okButton).click(); + return new ConfirmationDialog(driver); + } public void clickDelete() { log.info("deleting ..."); 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 0191de265381141550cd1b71afedf9dc600d6f44..5844a1dedb6032b665ac794464664dfe4360795e 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 @@ -33,10 +33,10 @@ public class ServiceGroupPopup extends PageComponent { private WebElement domainsPanelContainer; public AccordionSection domainsPanel; - @FindBy(css = "mat-dialog-actions > div > button:nth-child(1)") + @FindBy(css = "mat-dialog-actions button:nth-child(1)") private WebElement okButton; - @FindBy(css = "mat-dialog-actions > div > button:nth-child(2)") + @FindBy(css = "mat-dialog-actions button:nth-child(2)") private WebElement cancelButton; @FindBy(css = "#participantIdentifier_id") @@ -57,7 +57,7 @@ public class ServiceGroupPopup extends PageComponent { @FindBy(css = "mat-card-content > mat-toolbar > mat-toolbar-row > button:nth-child(3)") private WebElement validateExtensionButton; - @FindBy(css = "mat-card-content > div > div.ng-star-inserted") + @FindBy(css = "mat-card-content > div.ng-star-inserted") private WebElement errorContainer; @@ -69,6 +69,14 @@ public class ServiceGroupPopup extends PageComponent { log.info("is cancel button visible"); return isVisible(cancelButton); } + public boolean isOKButtonEnable(){ + log.info("is ok button visible"); + return isEnabled(okButton); + } + public boolean isCancelButtonEnable(){ + log.info("is cancel button visible"); + return isEnabled(cancelButton); + } public boolean isExtensionAreaEditable(){ log.info("is Extension Area Editable"); @@ -114,7 +122,7 @@ public class ServiceGroupPopup extends PageComponent { public void clickCancel(){ log.info("click cancel.."); waitForElementToBeClickable(cancelButton).click(); - waitForElementToBeGone(okButton); + waitForElementToBeGone(cancelButton); } public void fillForm(String identifier, String scheme, List<String> owners, List<String> domains, String extension){ 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 c6bc2a45a7665d311bdaadcb71308682393e4655..0c97803330b5e2069ea29462fe1ed774de5bddcc 100644 --- a/smp-ui-tests/src/main/java/pages/users/UserPopup.java +++ b/smp-ui-tests/src/main/java/pages/users/UserPopup.java @@ -5,146 +5,233 @@ import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.support.FindBy; import org.openqa.selenium.support.PageFactory; +import pages.components.ConfirmationDialog; import pages.components.GenericSelect; import pages.components.baseComponents.PageComponent; public class UserPopup extends PageComponent { - public UserPopup(WebDriver driver) { - super(driver); - PageFactory.initElements(driver, this); - rolesSelect = new GenericSelect(driver, rolesSelectContainer); - } + public GenericSelect rolesSelect; + @FindBy(id = "userDetailsToggle_id") + WebElement userDetailsToggle; + @FindBy(css = "#active_id > label > div > div") + WebElement activeToggle; - @FindBy(id = "userDetailsToggle_id") - WebElement userDetailsToggle; + @FindBy(id = "username_id") + WebElement userNameInput; - @FindBy(css = "#active_id > label > div > div") - WebElement activeToggle; + @FindBy(id = "emailAddress_id") + WebElement emailInput; - @FindBy(id = "username_id") - WebElement userNameInput; + @FindBy(id = "np_id") + WebElement newPasswordInput; - @FindBy(id = "emailAddress_id") - WebElement emailInput; + @SuppressWarnings("SpellCheckingInspection") + @FindBy(id = "cnp_id") + WebElement confirmationInput; - @FindBy(id = "password_id") - WebElement passwordInput; + @FindBy(css = "input#cp_id") + WebElement adminPassInput; - @SuppressWarnings("SpellCheckingInspection") - @FindBy(id = "usernameconfirmation_id") - WebElement confirmationInput; + @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 = "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-content > table > tr > td > button:nth-child(1)") - WebElement okBtn; - - @FindBy(css = "mat-dialog-content > table > tr > td > button:nth-child(2)") - WebElement cancelBtn; - - @FindBy(css = "#role_id") - WebElement rolesSelectContainer; - public GenericSelect rolesSelect; - - - public boolean isOKButtonActive() { - return isEnabled(okBtn); - } - - public boolean isCancelButtonActive() { - return isEnabled(cancelBtn); - } - - public void fillData(String user, String email, String role, String password, String confirmation) { - clearAndFillInput(userNameInput, user); - clearAndFillInput(emailInput, email); - clearAndFillInput(passwordInput, password); - clearAndFillInput(confirmationInput, confirmation); - - GenericSelect rolesSelect = new GenericSelect(driver, rolesSelectContainer); - rolesSelect.selectOptionByText(role); - - } - - public void clickOK() { - log.info("click OK"); - waitForElementToBeClickable(okBtn); - okBtn.click(); - waitForElementToBeGone(okBtn); - } - - public void clickCancel() { - log.info("click cancel"); - waitForElementToBeClickable(cancelBtn); - cancelBtn.click(); - waitForElementToBeGone(cancelBtn); - } - - - public void clickUserDetailsToggle() { - log.info("details toggle"); - waitForElementToBeClickable(userDetailsToggle).click(); - waitForElementToBeEnabled(userNameInput); - } - - public void fillDetailsForm(String username, String pass, String confirmation) { - clearAndFillInput(userNameInput, username); - clearAndFillInput(passwordInput, pass); - clearAndFillInput(confirmationInput, confirmation); - emailInput.click(); - } - - - public String getUsernameValidationError() { - try { - waitForElementToBeVisible(usernameValidationError); - return usernameValidationError.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(".mat-form-field-infix > div.has-error")); - return passMatchValidationError.getText(); - } + @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 = ".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(2)") + WebElement cancelBtn; + + @FindBy(css = "#changePassword_id") + WebElement changePassword; + + @FindBy(css = "smp-password-change-dialog mat-dialog-actions button:nth-child(1)") + WebElement changedPassword; + + @FindBy(css = "#closebuttondialog_id") + WebElement passChangedClose; + + @FindBy(css = "smp-password-change-dialog mat-dialog-actions button:nth-child(2)") + WebElement passwordDialogClose; + + @FindBy(css = "#role_id") + WebElement rolesSelectContainer; + public 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 isChangePasswordActive() { + return isEnabled(passChangedClose); + } + + public boolean isChangePasswordButtonActive() { + return isEnabled(changedPassword); + } + + public boolean isCancelButtonActive() { + return isEnabled(cancelBtn); + } + + public void fillData(String user, String email, String role, String password, String confirmation) { + clearAndFillInput(userNameInput, user); + clearAndFillInput(emailInput, email); + clearAndFillInput(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 pass, String confirmation) + public void fillDetailsForm(String username) { + clearAndFillInput(userNameInput, username); + //clearAndFillInput(passwordInput, pass); + //clearAndFillInput(confirmationInput, confirmation); + emailInput.click(); + } + + 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 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" + } } diff --git a/smp-ui-tests/src/main/java/pages/users/UserRowInfo.java b/smp-ui-tests/src/main/java/pages/users/UserRowInfo.java index 0c17dcda9a3d8504384f2af61ff3c1c33a5120d4..962d388ee690430e1a628ccffb57bb2ccb484088 100644 --- a/smp-ui-tests/src/main/java/pages/users/UserRowInfo.java +++ b/smp-ui-tests/src/main/java/pages/users/UserRowInfo.java @@ -1,38 +1,33 @@ package pages.users; -import org.openqa.selenium.WebDriver; -import org.openqa.selenium.WebElement; - -import java.util.ArrayList; - -public class UserRowInfo{ - - private String username; - private String role; - private String certificate; - - - public String getUsername() { - return username; - } - - public void setUsername(String username) { - this.username = username; - } - - public String getRole() { - return role; - } - - public void setRole(String role) { - this.role = role; - } - - public String getCertificate() { - return certificate; - } - - public void setCertificate(String certificate) { - this.certificate = certificate; - } +public class UserRowInfo { + + private String username; + private String role; + private String certificate; + + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public String getRole() { + return role; + } + + public void setRole(String role) { + this.role = role; + } + + public String getCertificate() { + return certificate; + } + + public void setCertificate(String certificate) { + this.certificate = certificate; + } } diff --git a/smp-ui-tests/src/main/java/pages/users/UsersPage.java b/smp-ui-tests/src/main/java/pages/users/UsersPage.java index cb232f7ee73c27a62ea0d4b867dcce52b4abb463..04b95c528ccb8f8ead392e243040810028299e05 100644 --- a/smp-ui-tests/src/main/java/pages/users/UsersPage.java +++ b/smp-ui-tests/src/main/java/pages/users/UsersPage.java @@ -1,130 +1,117 @@ package pages.users; -import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.support.FindBy; import org.openqa.selenium.support.PageFactory; import org.openqa.selenium.support.pagefactory.AjaxElementLocatorFactory; -import org.openqa.selenium.support.ui.ExpectedConditions; import pages.components.ConfirmationDialog; import pages.components.baseComponents.PaginationControls; import pages.components.baseComponents.SMPPage; -import pages.components.grid.BasicGrid; import utils.PROPERTIES; -import java.util.List; - public class UsersPage extends SMPPage { - public UsersPage(WebDriver driver) { - super(driver); - this.pageHeader.waitForTitleToBe("Users"); - PageFactory.initElements(new AjaxElementLocatorFactory(driver, PROPERTIES.TIMEOUT), this); - } - - - public PaginationControls pagination = new PaginationControls(driver); - - @FindBy(id = "searchTable") - private WebElement userTableContainer; - - @FindBy(id = "cancelButton") - private WebElement cancelBtn; - - @FindBy(id = "saveButton") - private WebElement saveBtn; - - @FindBy(id = "newButton") - private WebElement newBtn; - - @FindBy(id = "editButton") - private WebElement editBtn; - - @FindBy(id = "deleteButton") - private WebElement deleteBtn; - - - public boolean isLoaded() { - log.info("checking Users page is loaded"); - - return isVisible(cancelBtn) - && isVisible(saveBtn) - && isVisible(newBtn) - && isEnabled(newBtn) - && isVisible(editBtn) - && isVisible(deleteBtn); - } - - public boolean isCancelButtonEnabled() { - log.info("cancel button"); - return isEnabled(cancelBtn); - } - - public boolean isSaveButtonEnabled() { - log.info("save button"); - return isEnabled(saveBtn); - } - - public boolean isDeleteButtonEnabled() { - waitForXMillis(200); - log.info("delete button"); - return isEnabled(deleteBtn); - } - - public ConfirmationDialog clickCancel() { - log.info("click cancel button"); - waitForElementToBeClickable(cancelBtn).click(); - return new ConfirmationDialog(driver); - } - - public ConfirmationDialog clickSave() { - log.info("click save button"); - waitForElementToBeClickable(saveBtn).click(); - return new ConfirmationDialog(driver); - } - - public void clickDelete() { - log.info("click delete button"); - waitForElementToBeClickable(deleteBtn).click(); - waitForRowsToLoad(); - } - - public UserPopup clickNew() { - log.info("click new button"); - waitForElementToBeClickable(newBtn).click(); - return new UserPopup(driver); - } - - public UserPopup clickEdit() { - log.info("click edit button"); - waitForElementToBeClickable(editBtn).click(); - return new UserPopup(driver); - } - - - public UsersGrid grid() { - return new UsersGrid(driver, userTableContainer); - } - - - public void createUser() { - log.info("create user"); - - waitForElementToBeClickable(newBtn).click(); - - UserPopup popup = new UserPopup(driver); - popup.clickOK(); - - } - - public boolean isNewButtonEnabled() { - try { - return newBtn.isEnabled(); - } catch (Exception e) { - e.printStackTrace(); - } - return false; - } + public PaginationControls pagination = new PaginationControls(driver); + @FindBy(id = "searchTable") + private WebElement userTableContainer; + @FindBy(id = "cancelButton") + private WebElement cancelBtn; + @FindBy(id = "saveButton") + private WebElement saveBtn; + @FindBy(id = "newButton") + private WebElement newBtn; + @FindBy(id = "editButton") + private WebElement editBtn; + @FindBy(id = "deleteButton") + private WebElement deleteBtn; + + public UsersPage(WebDriver driver) { + super(driver); + this.pageHeader.waitForTitleToBe("Users"); + PageFactory.initElements(new AjaxElementLocatorFactory(driver, PROPERTIES.TIMEOUT), this); + } + + public boolean isLoaded() { + log.info("checking Users page is loaded"); + + return isVisible(cancelBtn) + && isVisible(saveBtn) + && isVisible(newBtn) + && isEnabled(newBtn) + && isVisible(editBtn) + && isVisible(deleteBtn); + } + + public boolean isCancelButtonEnabled() { + log.info("cancel button"); + return isEnabled(cancelBtn); + } + + public boolean isSaveButtonEnabled() { + log.info("save button"); + return isEnabled(saveBtn); + } + + public boolean isDeleteButtonEnabled() { + waitForXMillis(200); + log.info("delete button"); + return isEnabled(deleteBtn); + } + + public ConfirmationDialog clickCancel() { + log.info("click cancel button"); + waitForElementToBeClickable(cancelBtn).click(); + return new ConfirmationDialog(driver); + } + + public ConfirmationDialog clickSave() { + log.info("click save button"); + waitForElementToBeClickable(saveBtn).click(); + return new ConfirmationDialog(driver); + } + + public void clickDelete() { + log.info("click delete button"); + waitForElementToBeClickable(deleteBtn).click(); + waitForRowsToLoad(); + } + + public UserPopup clickNew() { + log.info("click new button"); + waitForElementToBeClickable(newBtn).click(); + return new UserPopup(driver); + } + + public UserPopup clickEdit() { + log.info("click edit button"); + waitForElementToBeClickable(editBtn).click(); + return new UserPopup(driver); + } + + + public UsersGrid grid() { + return new UsersGrid(driver, userTableContainer); + } + + + public void createUser() { + log.info("create user"); + + waitForElementToBeClickable(newBtn).click(); + + UserPopup popup = new UserPopup(driver); + popup.clickOK(); + + } + + public boolean isNewButtonEnabled() { + try { + return newBtn.isEnabled(); + } catch (Exception e) { + e.printStackTrace(); + } + return false; + } } diff --git a/smp-ui-tests/src/main/java/utils/DriverManager.java b/smp-ui-tests/src/main/java/utils/DriverManager.java index 6dc8ac2ab066618e7fc598448ad4a699b98eca66..07371e6ebe39a9566f50a612d289322e0be3cef1 100644 --- a/smp-ui-tests/src/main/java/utils/DriverManager.java +++ b/smp-ui-tests/src/main/java/utils/DriverManager.java @@ -1,13 +1,9 @@ package utils; import org.openqa.selenium.WebDriver; -import org.openqa.selenium.firefox.FirefoxDriver; -import org.openqa.selenium.firefox.FirefoxDriverLogLevel; -import org.openqa.selenium.firefox.FirefoxOptions; -import org.openqa.selenium.firefox.FirefoxProfile; +import org.openqa.selenium.chrome.ChromeDriver; import java.util.concurrent.TimeUnit; -import java.util.logging.Level; public class DriverManager { @@ -24,24 +20,16 @@ public class DriverManager { // return driver; // } - public static WebDriver getDriver(){ - System.setProperty(FirefoxDriver.SystemProperty.DRIVER_USE_MARIONETTE,"true"); -// System.setProperty(FirefoxDriver.SystemProperty.BROWSER_LOGFILE,"C:\\temp\\logs.txt"); - FirefoxOptions options = new FirefoxOptions(); - FirefoxProfile profile= new FirefoxProfile(); - profile.setPreference( "layout.css.devPixelsPerPx", "0.8" ); - options.setProfile(profile); - WebDriver driver = new FirefoxDriver(options); - driver.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS); - driver.manage().timeouts().pageLoadTimeout(5, TimeUnit.SECONDS); - driver.manage().timeouts().setScriptTimeout(2, TimeUnit.SECONDS); + public static WebDriver getDriver() { + WebDriver driver = new ChromeDriver(); + driver.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS); + driver.manage().timeouts().pageLoadTimeout(20, TimeUnit.SECONDS); + driver.manage().timeouts().setScriptTimeout(10, TimeUnit.SECONDS); driver.manage().window().maximize(); - return driver; + return driver; } - - } diff --git a/smp-ui-tests/src/main/java/utils/enums/SMPMessages.java b/smp-ui-tests/src/main/java/utils/enums/SMPMessages.java index 89da050ed737a5991f63c9d57b1723eb7e1d2eef..b85f2fd8f7130887a1a5a9e0e865db27d1156919 100644 --- a/smp-ui-tests/src/main/java/utils/enums/SMPMessages.java +++ b/smp-ui-tests/src/main/java/utils/enums/SMPMessages.java @@ -66,16 +66,12 @@ public class SMPMessages { public static final String MSG_19 = "Domain ${BDMSL_DOMAIN} is already registered with id ${DOMAIN_ID}"; public static final String MSG_20 = "All changes were aborted and data restored into the present window"; public static final String MSG_21 = "Unable to login. SMP is not running."; + public static final String MSG_22 = "The user is suspended. Please try again later or contact your administrator."; + public static final String MSG_23 = "Configuration error: Subject must have less than 256 character!"; public static final String USERNAME_VALIDATION_MESSAGE = "Username is case insensitive and can only contain alphanumeric characters (letters a-zA-Z, numbers 0-9) and must have from 4 to 32 characters!"; - public static final String PASS_POLICY_MESSAGE = "Password should follow all of these rules:\n" + - "- Minimum length: 8 characters\n" + - "- Maximum length: 32 characters\n" + - "- At least one letter in lowercase\n" + - "- At least one letter in uppercase\n" + - "- At least one digit\n" + - "- At least one special character"; + public static final String PASS_POLICY_MESSAGE = "Minimum length: 16 characters;Maximum length: 32 characters;At least one letter in lowercase;At least one letter in uppercase;At least one digit;At least one special character"; public static final String PASS_NO_MATCH_MESSAGE = "Passwords do not match"; public static final String PASS_NO_EMPTY_MESSAGE = "You should type a password"; diff --git a/smp-ui-tests/src/test/java/ui/BaseTest.java b/smp-ui-tests/src/test/java/ui/BaseTest.java index b5ec6b4c3f0d9a08f4ac5749d0f6bbb3e04ebe81..701012ff3bb609db7e71079253e10640308d43d8 100644 --- a/smp-ui-tests/src/test/java/ui/BaseTest.java +++ b/smp-ui-tests/src/test/java/ui/BaseTest.java @@ -21,184 +21,173 @@ import java.util.List; @Listeners({ExcelTestReporter.class, TestProgressReporter.class}) public class BaseTest { - static int methodCount = 1; + static int methodCount = 1; - static WebDriver driver; - protected Logger logger = Logger.getLogger(this.getClass()); - static TestDataProvider testDataProvider = new TestDataProvider(); + static WebDriver driver; + static TestDataProvider testDataProvider = new TestDataProvider(); + static ArrayList<String> createdDomains = new ArrayList<>(); + static ArrayList<String> createdUsers = new ArrayList<>(); + static ArrayList<String> createdServiceGroups = new ArrayList<>(); + protected Logger logger = Logger.getLogger(this.getClass()); - static ArrayList<String> createdDomains = new ArrayList<>(); - static ArrayList<String> createdUsers = new ArrayList<>(); - static ArrayList<String> createdServiceGroups = new ArrayList<>(); - - @BeforeSuite(alwaysRun = true) + @BeforeSuite(alwaysRun = true) /*Starts the browser and navigates to the homepage. This happens once before the test suite and the browser window is reused for all tests in suite*/ - public void beforeSuite() { - logger.info("Creating necessary data !!!!"); - createDomains(); - createUsers(); - createSGs(); - -// logger.info("Starting this puppy!!!!"); -// driver = DriverManager.getDriver(); -// driver.get(PROPERTIES.UI_BASE_URL); - } - - - @AfterSuite(alwaysRun = true) - /*After the test suite is done we close the browser*/ - public void afterSuite() { - logger.info("Deleting created data!!!"); - - deleteTestData(); - - logger.info("Quitting!!!! Buh bye!!!"); - try { - if(null!=driver){ - driver.quit(); - } - } catch (Exception e) { - logger.warn("Closing the driver failed !!!!"); - e.printStackTrace(); - } - } - - @AfterClass(alwaysRun = true) - public void afterClass() { - if(null!=driver){ - driver.quit(); - } -// driver.get(PROPERTIES.UI_BASE_URL); -// SMPPage page = new SMPPage(driver); -// page.refreshPage(); -// -// if(page.pageHeader.sandwichMenu.isLoggedIn()){ -// logger.info("Logout!!"); -// page.pageHeader.sandwichMenu.logout(); -// } - } - - @BeforeClass(alwaysRun = true) - public void beforeClass() { - driver = DriverManager.getDriver(); - driver.get(PROPERTIES.UI_BASE_URL); - } - - @BeforeMethod(alwaysRun = true) - protected void logSeparator(Method method) throws Exception { - - logger.info("--------------------------- Running test number: " + methodCount); - logger.info("--------------------------- Running test method: " + method.getDeclaringClass().getSimpleName() + "." + method.getName()); - methodCount++; - } - - - private void createDomains() { - for (int i = 0; i < 5; i++) { - String generated = Generator.randomAlphaNumeric(10); - logger.info("creating domain whose value is :"+generated); - boolean created = SMPRestClient.createDomain(generated); - if (created) { - createdDomains.add(generated); - } else { - logger.warn("Test data creation: Domain creation failed for " + generated); - System.exit(-1); - } - } - } - - private void createUsers() { - String[] roles = {"SMP_ADMIN", "SERVICE_GROUP_ADMIN", "SYSTEM_ADMIN"}; - for (int i = 0; i < 6; i++) { - String generated = Generator.randomAlphaNumeric(10); - String role = roles[i % roles.length]; - boolean created = SMPRestClient.createUser(generated, role); - if (created) { - createdUsers.add(generated); - } else { - logger.warn("Test data creation: User creation failed for " + generated); - System.exit(-1); - } - } - } - - private void createSGs() { - for (int i = 0; i < 5; i++) { - String generated = Generator.randomAlphaNumeric(10); - String generatedHyphen = generated.substring(0,3)+"-"+generated.substring(3,6)+"-"+generated.substring(6,9); - List<String> users = Arrays.asList(createdUsers.get(0)); - List<String> domains = Arrays.asList(createdDomains.get(0)); - boolean created = SMPRestClient.createServiceGroup(generated, generatedHyphen, users, domains); - if (created) { - createdServiceGroups.add(generated); - } else { - logger.warn("Test data creation: SG creation failed for " + generated); - System.exit(-1); - } - } - } - - private void deleteTestData() { - for (String createdServiceGroup : createdServiceGroups) { - try { - SMPRestClient.deleteSG(createdServiceGroup); - } catch (Exception e) { - e.printStackTrace(); - } - } - for (String createdUser : createdUsers) { - try { - SMPRestClient.deleteUser(createdUser); - } catch (Exception e) { - e.printStackTrace(); - } - } - for (String createdDomain : createdDomains) { - try { - SMPRestClient.deleteDomain(createdDomain); - } catch (Exception e) { - e.printStackTrace(); - } - } - } - - - protected void genericLogoutProcedure() { - logger.info("executing the generic logout procedure"); - - SMPPage page = new SMPPage(driver); - page.refreshPage(); - - try { - if (page.pageHeader.sandwichMenu.isLoggedIn()) { - logger.info("Logout!!"); - page.pageHeader.sandwichMenu.logout(); - } - } catch (Exception e) { - e.printStackTrace(); - } - - driver.manage().deleteAllCookies(); - ((JavascriptExecutor) driver).executeScript("localStorage.clear();"); - - page.refreshPage(); - page.waitForXMillis(100); - } - - protected SMPPage genericLoginProcedure(String role) { - SMPPage page = new SMPPage(driver); - - genericLogoutProcedure(); - - if (!page.pageHeader.sandwichMenu.isLoggedIn()) { - logger.info("Login!!"); - page.pageHeader.goToLogin().login(role); - } - - page.waitForRowsToLoad(); - return page; - } + public void beforeSuite() { + logger.info("Creating necessary data !!!!"); + createDomains(); + createUsers(); + createSGs(); + } + + + @AfterSuite(alwaysRun = true) + /*After the test suite is done we close the browser*/ + public void afterSuite() { + logger.info("Deleting created data!!!"); + + deleteTestData(); + + logger.info("Quitting!!!! Buh bye!!!"); + try { + if (null != driver) { + driver.quit(); + } + } catch (Exception e) { + logger.warn("Closing the driver failed !!!!"); + e.printStackTrace(); + } + } + + @AfterClass(alwaysRun = true) + public void afterClass() { + if (null != driver) { + driver.quit(); + } + } + + @BeforeClass(alwaysRun = true) + public void beforeClass() { + logger.info("beforeClass entry"); + driver = DriverManager.getDriver(); + driver.get(PROPERTIES.UI_BASE_URL); + logger.info("beforeClass exit"); + } + + @BeforeMethod(alwaysRun = true) + protected void logSeparator(Method method) throws Exception { + + logger.info("--------------------------- Running test number: " + methodCount); + logger.info("--------------------------- Running test method: " + method.getDeclaringClass().getSimpleName() + "." + method.getName()); + methodCount++; + } + + + private void createDomains() { + for (int i = 0; i < 5; i++) { + String generated = Generator.randomAlphaNumeric(10); + logger.info("creating domain whose value is :" + generated); + boolean created = SMPRestClient.createDomain(generated); + if (created) { + createdDomains.add(generated); + } else { + logger.warn("Test data creation: Domain creation failed for " + generated); + System.exit(-1); + } + } + } + + private void createUsers() { + String[] roles = {"SMP_ADMIN", "SERVICE_GROUP_ADMIN", "SYSTEM_ADMIN"}; + for (int i = 0; i < 6; i++) { + String generated = Generator.randomAlphaNumeric(10); + String role = roles[i % roles.length]; + boolean created = SMPRestClient.createUser(generated, role); + if (created) { + createdUsers.add(generated); + } else { + logger.warn("Test data creation: User creation failed for " + generated); + System.exit(-1); + } + } + } + + private void createSGs() { + for (int i = 0; i < 5; i++) { + String generated = Generator.randomAlphaNumeric(10); + String generatedHyphen = generated.substring(0, 3) + "-" + generated.substring(3, 6) + "-" + generated.substring(6, 9); + List<String> users = Arrays.asList(createdUsers.get(0)); + List<String> domains = Arrays.asList(createdDomains.get(0)); + boolean created = SMPRestClient.createServiceGroup(generated, generatedHyphen, users, domains); + if (created) { + createdServiceGroups.add(generated); + } else { + logger.warn("Test data creation: SG creation failed for " + generated); + System.exit(-1); + } + } + } + + private void deleteTestData() { + for (String createdServiceGroup : createdServiceGroups) { + try { + SMPRestClient.deleteSG(createdServiceGroup); + } catch (Exception e) { + e.printStackTrace(); + } + } + for (String createdUser : createdUsers) { + try { + SMPRestClient.deleteUser(createdUser); + } catch (Exception e) { + e.printStackTrace(); + } + } + for (String createdDomain : createdDomains) { + try { + SMPRestClient.deleteDomain(createdDomain); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + + + protected void genericLogoutProcedure() { + logger.info("executing the generic logout procedure"); + + SMPPage page = new SMPPage(driver); + page.refreshPage(); + + try { + if (page.pageHeader.sandwichMenu.isLoggedIn()) { + logger.info("Logout!!"); + page.pageHeader.sandwichMenu.logout(); + } + } catch (Exception e) { + e.printStackTrace(); + } + + driver.manage().deleteAllCookies(); + ((JavascriptExecutor) driver).executeScript("localStorage.clear();"); + + page.refreshPage(); + page.waitForXMillis(100); + } + + protected SMPPage genericLoginProcedure(String role) { + SMPPage page = new SMPPage(driver); + + genericLogoutProcedure(); + + if (!page.pageHeader.sandwichMenu.isLoggedIn()) { + logger.info("Login!!"); + page.pageHeader.goToLogin().login(role); + } + + page.waitForRowsToLoad(); + return page; + } } diff --git a/smp-ui-tests/src/test/java/ui/LoginPgTest.java b/smp-ui-tests/src/test/java/ui/LoginPgTest.java index 9bcf4004da84b36444f5377d9df786e9143376db..732a86327d8c6c4bb8b9fa3c3e52b0dab15fa707 100644 --- a/smp-ui-tests/src/test/java/ui/LoginPgTest.java +++ b/smp-ui-tests/src/test/java/ui/LoginPgTest.java @@ -6,6 +6,7 @@ import org.testng.annotations.AfterMethod; import org.testng.annotations.Test; import org.testng.asserts.SoftAssert; import pages.components.messageArea.AlertMessage; +import pages.password.PasswordChangepopup; import pages.service_groups.search.SearchPage; import pages.components.baseComponents.SMPPage; import pages.login.LoginPage; @@ -217,5 +218,66 @@ public class LoginPgTest extends BaseTest { soft.assertAll(); } + @Test(description = "LGN-100") + public void loggedUserPasswordDialogView() + { + SoftAssert soft = new SoftAssert(); + + + String username = Generator.randomAlphaNumeric(10); + SMPRestClient.createUser(username, "SYSTEM_ADMIN"); + logger.info("created user " + username); + + SMPPage page = new SMPPage(driver); + logger.info("Going to login page"); + page.pageHeader.goToLogin(); -} + logger.info("trying to login with " + username); + LoginPage loginPage = new LoginPage(driver); + SearchPage searchPage = loginPage.login(username, "QW!@qw12"); + + soft.assertTrue(searchPage.pageHeader.sandwichMenu.isLoggedIn(), "User is not logged in"); + soft.assertTrue(searchPage.isLoaded(), "Search page is not loaded"); + + PasswordChangepopup passPopup = searchPage.pageHeader.sandwichMenu.clickChangePasswordOption(); + soft.assertTrue(passPopup.isCurrentPasswordInputEnable(),"Current password input is not enable in the password dialog for logged user"); + soft.assertTrue(passPopup.isNewPasswordInputEnable(),"New password input is not enable in the password dialog for logged user"); + soft.assertTrue(passPopup.isConfirmPasswordInputEnable(),"Confirm password input is not enable in the password dialog for logged user"); + + searchPage = passPopup.clickClosePasswordDialog(); + + soft.assertAll(); + + } + + + @Test(description = "LGN-100") + public void passwordChangeForLoggedUser() + { + SoftAssert soft = new SoftAssert(); + String username = Generator.randomAlphaNumeric(10); + String validPass = "Aabcdefghijklm1@"; + SMPRestClient.createUser(username,"SYSTEM_ADMIN"); + logger.info("created user " + username); + SMPPage page = new SMPPage(driver); + logger.info("Going to login page"); + page.pageHeader.goToLogin(); + LoginPage loginPage = new LoginPage(driver); + SearchPage searchPage = loginPage.login(username, "QW!@qw12"); + + soft.assertTrue(searchPage.pageHeader.sandwichMenu.isLoggedIn(), "User is logged in"); + soft.assertTrue(searchPage.isLoaded(), "Search page is loaded"); + + PasswordChangepopup passDialog = searchPage.pageHeader.sandwichMenu.clickChangePasswordOption(); + passDialog.fillDataForLoggedUser("QW!@qw12",validPass,validPass); + + passDialog.clickChangedPassword(); + /*SearchPage page = passDialog.clickCloseAfterChangedPassForLoggedUser(); + soft.assertEquals(page.getTitle(),"Search");*/ + //passDialog.clickOK(); + //soft.assertTrue(usersPage.grid().isUserListed(username), "User present in the page"); + + soft.assertAll(); + + } +} \ No newline at end of file diff --git a/smp-ui-tests/src/test/java/ui/PropertiesPgTest.java b/smp-ui-tests/src/test/java/ui/PropertiesPgTest.java new file mode 100644 index 0000000000000000000000000000000000000000..848378fa1745b54faf46b80cfd5ad3e021a7c5f5 --- /dev/null +++ b/smp-ui-tests/src/test/java/ui/PropertiesPgTest.java @@ -0,0 +1,115 @@ +package ui; + +import org.testng.annotations.AfterMethod; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.Test; +import org.testng.asserts.SoftAssert; +import pages.components.ConfirmationDialog; +import pages.components.baseComponents.SMPPage; +import pages.components.messageArea.AlertMessage; +import pages.domain.DomainRow; +import pages.login.LoginPage; +import pages.properties.PropertiesPage; +import pages.properties.PropertyPopup; +import pages.properties.PropertyRowInfo; +import pages.service_groups.edit.EditPage; +import pages.service_groups.edit.ServiceGroupPopup; +import pages.service_groups.search.SearchPage; +import utils.Generator; +import utils.enums.SMPMessages; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class PropertiesPgTest extends BaseTest{ + @AfterMethod + public void logoutAndReset(){ + genericLogoutProcedure(); + } + + + @BeforeMethod + public void loginAndGoToDomainPage(){ + + SMPPage page = genericLoginProcedure("SYS_ADMIN"); + + logger.info("Going to Property page"); + page.sidebar.goToPage(PropertiesPage.class); + } + + @Test(description = "PROP-0") + public void verifyParticipantschemeMandatoryProperty(){ + + SoftAssert soft = new SoftAssert(); + String property = "identifiersBehaviour.scheme.mandatory"; + + PropertiesPage propertiesPage = new PropertiesPage(driver); + propertiesPage.propertySearch(property); + soft.assertTrue(propertiesPage.grid().rowContainPropertyName(property),"The row does not contain the searching property"); + PropertyRowInfo newRow0 = propertiesPage.grid().getRows().get(0); + System.out.println("newRow0.getPropertyvalue() "+newRow0.getPropertyvalue()); + if(newRow0.getPropertyvalue().equals("true")) + { + propertiesPage.grid().selectRow(0); + PropertyPopup popup = propertiesPage.clickEdit(); + propertiesPage = popup.disableCheckboxOfProperty(); + soft.assertTrue(propertiesPage.isSaveButtonEnabled(),"Save button is disbled"); + propertiesPage.clickSave().confirm(); + soft.assertTrue(propertiesPage.alertArea.getAlertMessage().isError(), "Message listed is success"); + soft.assertTrue(propertiesPage.alertArea.getAlertMessage().getMessage().equalsIgnoreCase(SMPMessages.MSG_18), "Message is not listed is as expected"); + } + + propertiesPage.pageHeader.sandwichMenu.logout(); + SearchPage page = new SearchPage(driver); + logger.info("Going to login page"); + page.pageHeader.goToLogin(); + SMPPage smpPage= genericLoginProcedure("SMP_ADMIN"); + smpPage.sidebar.goToPage(EditPage.class); + EditPage editPage = new EditPage(driver); + ServiceGroupPopup servicePopup = editPage.clickNew(); + soft.assertTrue(servicePopup.isParticipantIdentifierInputEnabled(), "Participant Identifier field is disabled"); + soft.assertTrue(servicePopup.isParticipantSchemeInputEnabled(), "Participant Scheme field is disabled"); + soft.assertTrue(servicePopup.isOwnersPanelEnabled(), "Owners panel is enabled"); + soft.assertTrue(servicePopup.isDomainsPanelEnabled(), "Domain panel is enabled"); + servicePopup.fillParticipantIdentifier("sonbrat1223"); + servicePopup.chooseFirstOwner(); + servicePopup.chooseFirstDomain(); + + soft.assertTrue(servicePopup.isOKButtonEnable(),"Ok button is not enabled after creating servicegroup without scheme"); + soft.assertTrue(servicePopup.isCancelButtonEnable(),"cancel button is not enabled after creating servicegroup without scheme"); + + servicePopup.clickOK(); + + soft.assertTrue(editPage.isSaveButtonEnabled(),"Save button is not enable after cration of servicegroup without scheme"); + soft.assertTrue(editPage.isCancelButtonEnabled(),"Cancel button is not enable after cration of servicegroup without scheme"); + editPage.clickSave().confirm();; + + soft.assertTrue(editPage.alertArea.getAlertMessage().getMessage().equalsIgnoreCase(SMPMessages.MSG_18), "Message is not listed is as expected"); + + soft.assertAll(); + } + + @Test(description = "PROP-10") + public void smpAlertPasswordExpiredMailSubjectAllowString() + { + SoftAssert soft = new SoftAssert(); + String property = "smp.alert.password.expired.mail.subject"; + String string = Generator.randomAlphaNumeric(10); + + PropertiesPage propertiesPage = new PropertiesPage(driver); + propertiesPage.propertySearch(property); + soft.assertTrue(propertiesPage.grid().rowContainPropertyName(property),"The row does not contain the searching property"); + int index = 0; + propertiesPage.grid().selectRow(index); + PropertyPopup popup = propertiesPage.clickEdit(); + String sentence = " "; + for(int i=0;i<26;i++) { + sentence = sentence + string; + } + popup.editInputField(sentence); + popup.clickOK(); + soft.assertTrue(propertiesPage.getErrorMessage().equalsIgnoreCase(SMPMessages.MSG_23),"the errors message is not showing"); + popup.clickCancel(); + soft.assertAll(); + } +} diff --git a/smp-ui-tests/src/test/java/ui/SearchPgTest.java b/smp-ui-tests/src/test/java/ui/SearchPgTest.java index 71fe2caf90e11ea9568f367a015c4377860ba62d..cb709ae2ddeed533dc1da4dcc25bd1e23c6c8796 100644 --- a/smp-ui-tests/src/test/java/ui/SearchPgTest.java +++ b/smp-ui-tests/src/test/java/ui/SearchPgTest.java @@ -1,6 +1,5 @@ package ui; -import org.testng.SkipException; import org.testng.annotations.AfterMethod; import org.testng.annotations.Ignore; import org.testng.annotations.Test; @@ -22,372 +21,371 @@ import java.util.Set; public class SearchPgTest extends BaseTest { - @AfterMethod - public void resetFilters() { - SMPPage page = new SMPPage(driver); - page.refreshPage(); - page.waitForXMillis(500); + @AfterMethod + public void resetFilters() { + SMPPage page = new SMPPage(driver); + page.refreshPage(); + page.waitForXMillis(500); - } + } - @Test(description = "SRCH-0") - public void searchPgInitialState() { - SoftAssert soft = new SoftAssert(); + @Test(description = "SRCH-0") + public void searchPgInitialState() { + SoftAssert soft = new SoftAssert(); - SearchPage page = new SearchPage(driver); - soft.assertTrue(page.isLoaded()); - soft.assertTrue(page.filters.isSearchButtonVisible(), "Search button is not visible"); - soft.assertTrue(page.filters.isSearchButtonEnable(), "Search button is not enable"); - soft.assertTrue(page.filters.getParticipantIdentifierInputValue().isEmpty()); - soft.assertTrue(page.filters.getParticipantSchemeInputValue().isEmpty()); - soft.assertEquals(page.filters.domainSelect.getSelectedValue(), "All Domains"); + SearchPage page = new SearchPage(driver); + soft.assertTrue(page.isLoaded()); + soft.assertTrue(page.filters.isSearchButtonVisible(), "Search button is not visible"); + soft.assertTrue(page.filters.isSearchButtonEnable(), "Search button is not enable"); + soft.assertTrue(page.filters.getParticipantIdentifierInputValue().isEmpty()); + soft.assertTrue(page.filters.getParticipantSchemeInputValue().isEmpty()); + soft.assertEquals(page.filters.domainSelect.getSelectedValue(), "All Domains"); - soft.assertAll(); - } + soft.assertAll(); + } - @Test(description = "SRCH-10") - public void domainSelectContent() { - SoftAssert soft = new SoftAssert(); - SearchPage page = new SearchPage(driver); - soft.assertTrue(page.isLoaded()); + @Test(description = "SRCH-10") + public void domainSelectContent() { + SoftAssert soft = new SoftAssert(); + SearchPage page = new SearchPage(driver); + soft.assertTrue(page.isLoaded()); - List<String> uiDomains = page.filters.domainSelect.getOptionTexts(); - List<String> restDomains = SMPRestClient.getDomainAndSubdomains(); + List<String> uiDomains = page.filters.domainSelect.getOptionTexts(); + List<String> restDomains = SMPRestClient.getDomainAndSubdomains(); - for (String restDomain : restDomains) { - boolean found = false; - for (String uiDomain : uiDomains) { - if (uiDomain.equalsIgnoreCase(restDomain)) { - found = true; - } - } - soft.assertTrue(found, "Domain was found in domain dropdown " + restDomain); - } + for (String restDomain : restDomains) { + boolean found = false; + for (String uiDomain : uiDomains) { + if (uiDomain.equalsIgnoreCase(restDomain)) { + found = true; + } + } + soft.assertTrue(found, "Domain was found in domain dropdown " + restDomain); + } - soft.assertAll(); + soft.assertAll(); - } + } - @Test(description = "SRCH-20") - public void searchGridInitialState() { - SoftAssert soft = new SoftAssert(); + @Test(description = "SRCH-20") + public void searchGridInitialState() { + SoftAssert soft = new SoftAssert(); - SearchPage page = new SearchPage(driver); - soft.assertTrue(page.isLoaded()); + SearchPage page = new SearchPage(driver); + soft.assertTrue(page.isLoaded()); - List<String> headers = page.getServiceGroupGrid().getHeaders(); - soft.assertTrue(headers.contains("Participant identifier")); - soft.assertTrue(headers.contains("Participant scheme")); - soft.assertTrue(headers.contains("OASIS ServiceGroup URL")); - soft.assertTrue(headers.contains("Metadata size")); + List<String> headers = page.getServiceGroupGrid().getHeaders(); + soft.assertTrue(headers.contains("Participant identifier")); + soft.assertTrue(headers.contains("Participant scheme")); + soft.assertTrue(headers.contains("OASIS ServiceGroup URL")); + soft.assertTrue(headers.contains("Metadata size")); - soft.assertAll(); - } + soft.assertAll(); + } - @Test(description = "SRCH-30") - public void searchFilterResults() { - SoftAssert soft = new SoftAssert(); + @Test(description = "SRCH-30") + public void searchFilterResults() { + SoftAssert soft = new SoftAssert(); - SearchPage page = new SearchPage(driver); - soft.assertTrue(page.isLoaded()); + SearchPage page = new SearchPage(driver); + soft.assertTrue(page.isLoaded()); - ServiceGroupRow row0 = page.getServiceGroupGrid().getRows().get(0); - String pScheme = row0.getParticipantScheme(); - String pIdentifier = row0.getParticipantIdentifier(); + ServiceGroupRow row0 = page.getServiceGroupGrid().getRows().get(0); + String pScheme = row0.getParticipantScheme(); + String pIdentifier = row0.getParticipantIdentifier(); // looking for exact match - page.filters.filter(pIdentifier, pScheme, ""); + page.filters.filter(pIdentifier, pScheme, ""); - List<ServiceGroupRow> rows = page.getServiceGroupGrid().getRows(); + List<ServiceGroupRow> rows = page.getServiceGroupGrid().getRows(); - for (ServiceGroupRow row : rows) { - soft.assertTrue(row.getParticipantIdentifier().contains(pIdentifier)); - soft.assertTrue(row.getParticipantScheme().contains(pScheme)); - } + for (ServiceGroupRow row : rows) { + soft.assertTrue(row.getParticipantIdentifier().contains(pIdentifier)); + soft.assertTrue(row.getParticipantScheme().contains(pScheme)); + } // Search for substring - page.filters.filter(pIdentifier.substring(2), pScheme.substring(2), ""); - rows = page.getServiceGroupGrid().getRows(); + page.filters.filter(pIdentifier.substring(2), pScheme.substring(2), ""); + rows = page.getServiceGroupGrid().getRows(); - for (ServiceGroupRow row : rows) { + for (ServiceGroupRow row : rows) { - String identifier = row.getParticipantIdentifier(); - String scheme = row.getParticipantScheme(); + String identifier = row.getParticipantIdentifier(); + String scheme = row.getParticipantScheme(); - soft.assertTrue(identifier.contains(pIdentifier), String.format("Identifier %s, found %s", pIdentifier, identifier)); - soft.assertTrue(scheme.contains(pScheme), String.format("Scheme %s, found %s", pScheme, scheme)); - } + soft.assertTrue(identifier.contains(pIdentifier), String.format("Identifier %s, found %s", pIdentifier, identifier)); + soft.assertTrue(scheme.contains(pScheme), String.format("Scheme %s, found %s", pScheme, scheme)); + } - soft.assertAll(); - } + soft.assertAll(); + } - @Test(description = "SRCH-40") - public void openURLLink() { - SoftAssert soft = new SoftAssert(); + @Test(description = "SRCH-40") + public void openURLLink() { + SoftAssert soft = new SoftAssert(); - SearchPage page = new SearchPage(driver); - soft.assertTrue(page.isLoaded()); + SearchPage page = new SearchPage(driver); + soft.assertTrue(page.isLoaded()); - ServiceGroupRow row0 = page.getServiceGroupGrid().getRows().get(0); - String listedURL = row0.getServiceGroupURL(); - String pScheme = row0.getParticipantScheme(); - String pIdentifier = row0.getParticipantIdentifier(); + ServiceGroupRow row0 = page.getServiceGroupGrid().getRows().get(0); + String listedURL = row0.getServiceGroupURL(); + String pScheme = row0.getParticipantScheme(); + String pIdentifier = row0.getParticipantIdentifier(); // verify proper URL format - String tmpURLPart = null; - try { - tmpURLPart = URLDecoder.decode(listedURL, "UTF-8").split("smp/")[1].trim(); - soft.assertEquals(tmpURLPart, pScheme + "::" + pIdentifier, "URL contains the proper scheme and identifier"); - } catch (UnsupportedEncodingException e) { - e.printStackTrace(); - } + String tmpURLPart = null; + try { + tmpURLPart = URLDecoder.decode(listedURL, "UTF-8").split("smp/")[1].trim(); + soft.assertEquals(tmpURLPart, pScheme + "::" + pIdentifier, "URL contains the proper scheme and identifier"); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } - ServiceGroup serviceGroup = SMPRestClient.getServiceGroup(listedURL); + ServiceGroup serviceGroup = SMPRestClient.getServiceGroup(listedURL); - soft.assertTrue(row0.getMetadataSize() == serviceGroup.getServiceMetadataReferenceCollection().size(), - "Number of listed MetadataReferences in XML matches UI"); + soft.assertTrue(row0.getMetadataSize() == serviceGroup.getServiceMetadataReferenceCollection().size(), + "Number of listed MetadataReferences in XML matches UI"); - soft.assertAll(); - } + soft.assertAll(); + } - @Test(description = "SRCH-50") - @Ignore - public void expandServiceGroupCheckMetadata() { - SoftAssert soft = new SoftAssert(); + @Test(description = "SRCH-50") + @Ignore + public void expandServiceGroupCheckMetadata() { + SoftAssert soft = new SoftAssert(); - SearchPage page = new SearchPage(driver); - soft.assertTrue(page.isLoaded()); + SearchPage page = new SearchPage(driver); + soft.assertTrue(page.isLoaded()); - ServiceGroupRow row0 = page.getServiceGroupGrid().getRows().get(0); - String listedURL = row0.getServiceGroupURL(); - String pScheme = row0.getParticipantScheme(); - String pIdentifier = row0.getParticipantIdentifier(); + ServiceGroupRow row0 = page.getServiceGroupGrid().getRows().get(0); + String listedURL = row0.getServiceGroupURL(); + String pScheme = row0.getParticipantScheme(); + String pIdentifier = row0.getParticipantIdentifier(); // verify proper URL format - ServiceGroup serviceGroup = SMPRestClient.getServiceGroup(listedURL); + ServiceGroup serviceGroup = SMPRestClient.getServiceGroup(listedURL); - MetadataGrid metadataGrid = row0.expandMetadata(); + MetadataGrid metadataGrid = row0.expandMetadata(); - List<MetadataRow> metadataRows = metadataGrid.getMetadataRows(); + List<MetadataRow> metadataRows = metadataGrid.getMetadataRows(); - soft.assertTrue(row0.getMetadataSize() == metadataRows.size(), "Metadata size field compared with the size of the list containing the metadata"); + soft.assertTrue(row0.getMetadataSize() == metadataRows.size(), "Metadata size field compared with the size of the list containing the metadata"); - for (MetadataRow metadataRow : metadataRows) { - String docScheme = metadataRow.getDocumentIdentifierScheme(); - String docId = metadataRow.getDocumentIdentifier(); - String url = metadataRow.getURL(); + for (MetadataRow metadataRow : metadataRows) { + String docScheme = metadataRow.getDocumentIdentifierScheme(); + String docId = metadataRow.getDocumentIdentifier(); + String url = metadataRow.getURL(); - soft.assertTrue(url.contains(String.format("%s::%s/services/%s::%s", pScheme, pIdentifier, docScheme, docId)), "Checking URL format for metadata " + docId); + soft.assertTrue(url.contains(String.format("%s::%s/services/%s::%s", pScheme, pIdentifier, docScheme, docId)), "Checking URL format for metadata " + docId); - String metadata = SMPRestClient.getMetadataString(url); + String metadata = SMPRestClient.getMetadataString(url); - soft.assertTrue(metadata.contains(pScheme), "Checking XML contains proper participant scheme for metadata " + docId); - soft.assertTrue(metadata.contains(pIdentifier), "Checking XML contains proper participant ID for metadata " + docId); - soft.assertTrue(metadata.toLowerCase().contains(docId.toLowerCase()), "Checking XML contains proper document ID for metadata " + docId); - soft.assertTrue(metadata.contains(docScheme), "Checking XML contains proper document scheme for metadata " + docId); + soft.assertTrue(metadata.contains(pScheme), "Checking XML contains proper participant scheme for metadata " + docId); + soft.assertTrue(metadata.contains(pIdentifier), "Checking XML contains proper participant ID for metadata " + docId); + soft.assertTrue(metadata.toLowerCase().contains(docId.toLowerCase()), "Checking XML contains proper document ID for metadata " + docId); + soft.assertTrue(metadata.contains(docScheme), "Checking XML contains proper document scheme for metadata " + docId); - } + } - soft.assertAll(); - } + soft.assertAll(); + } - @Test(description = "SRCH-60") - public void collapseMetadata() { - SoftAssert soft = new SoftAssert(); + @Test(description = "SRCH-60") + public void collapseMetadata() { + SoftAssert soft = new SoftAssert(); - SearchPage page = new SearchPage(driver); - soft.assertTrue(page.isLoaded()); + SearchPage page = new SearchPage(driver); + soft.assertTrue(page.isLoaded()); - ServiceGroupRow row0 = null; - List<ServiceGroupRow> rows = page.getServiceGroupGrid().getRows(); - for (int i = 0; i < rows.size(); i++) { - if (rows.get(i).getMetadataSize() > 0) { - row0 = rows.get(i); - } - } + ServiceGroupRow row0 = null; + List<ServiceGroupRow> rows = page.getServiceGroupGrid().getRows(); + for (int i = 0; i < rows.size(); i++) { + if (rows.get(i).getMetadataSize() > 0) { + row0 = rows.get(i); + } + } - if (null == row0) { - row0 = rows.get(0); - SMPRestClient.createMetadata(row0.getParticipantIdentifier()); - page.refreshPage(); - logger.info("Created Metadata for row 0"); - row0 = page.getServiceGroupGrid().getRows().get(0); - } + if (null == row0) { + row0 = rows.get(0); + SMPRestClient.createMetadata(row0.getParticipantIdentifier()); + page.refreshPage(); + logger.info("Created Metadata for row 0"); + row0 = page.getServiceGroupGrid().getRows().get(0); + } - soft.assertTrue(row0.verifyMetadataExpandButton(), "Initially the row has expanding symbol on it"); - row0.expandMetadata(); + soft.assertTrue(row0.verifyMetadataExpandButton(), "Initially the row has expanding symbol on it"); + row0.expandMetadata(); - soft.assertTrue(row0.verifyMetadataCollapseButton(), "Row has collapsing symbol on it after first click"); + soft.assertTrue(row0.verifyMetadataCollapseButton(), "Row has collapsing symbol on it after first click"); - row0.collapseMetadata(); - soft.assertTrue(row0.verifyMetadataExpandButton(), "Row has expanding symbol on it after collapse"); - soft.assertFalse(row0.isMetadataExpanded(), "Metadata table is not present no more"); + row0.collapseMetadata(); + soft.assertTrue(row0.verifyMetadataExpandButton(), "Row has expanding symbol on it after collapse"); + soft.assertFalse(row0.isMetadataExpanded(), "Metadata table is not present no more"); - soft.assertAll(); - } + soft.assertAll(); + } - @Test(description = "SRCH-70") - public void verifyOpenMetadataURL() { - SoftAssert soft = new SoftAssert(); + @Test(description = "SRCH-70") + public void verifyOpenMetadataURL() { + SoftAssert soft = new SoftAssert(); - SearchPage page = new SearchPage(driver); - soft.assertTrue(page.isLoaded()); + SearchPage page = new SearchPage(driver); + soft.assertTrue(page.isLoaded()); - ServiceGroupRow row0 = null; - List<ServiceGroupRow> rows = page.getServiceGroupGrid().getRows(); - for (int i = 0; i < rows.size(); i++) { - if (rows.get(i).getMetadataSize() > 0) { - row0 = rows.get(i); - } - } + ServiceGroupRow row0 = null; + List<ServiceGroupRow> rows = page.getServiceGroupGrid().getRows(); + for (int i = 0; i < rows.size(); i++) { + if (rows.get(i).getMetadataSize() > 0) { + row0 = rows.get(i); + } + } - if (null == row0) { - row0 = rows.get(0); - SMPRestClient.createMetadata(row0.getParticipantIdentifier()); - page.refreshPage(); - logger.info("Created Metadata for row 0"); - row0 = page.getServiceGroupGrid().getRows().get(0); - } + if (null == row0) { + row0 = rows.get(0); + SMPRestClient.createMetadata(row0.getParticipantIdentifier()); + page.refreshPage(); + logger.info("Created Metadata for row 0"); + row0 = page.getServiceGroupGrid().getRows().get(0); + } - String listedURL = row0.getServiceGroupURL(); - String pScheme = row0.getParticipantScheme(); - String pIdentifier = row0.getParticipantIdentifier(); + String listedURL = row0.getServiceGroupURL(); + String pScheme = row0.getParticipantScheme(); + String pIdentifier = row0.getParticipantIdentifier(); // verify proper URL format - ServiceGroup serviceGroup = SMPRestClient.getServiceGroup(listedURL); + ServiceGroup serviceGroup = SMPRestClient.getServiceGroup(listedURL); - MetadataGrid metadataGrid = row0.expandMetadata(); + MetadataGrid metadataGrid = row0.expandMetadata(); - List<MetadataRow> metadataRows = metadataGrid.getMetadataRows(); + List<MetadataRow> metadataRows = metadataGrid.getMetadataRows(); - soft.assertTrue(row0.getMetadataSize() == metadataRows.size(), "Metadata size field compared with the size of the list containing the metadata"); + soft.assertTrue(row0.getMetadataSize() == metadataRows.size(), "Metadata size field compared with the size of the list containing the metadata"); - for (MetadataRow metadataRow : metadataRows) { - String docScheme = metadataRow.getDocumentIdentifierScheme(); - String docId = metadataRow.getDocumentIdentifier(); - String url = null; - try { - url = URLDecoder.decode(metadataRow.getURL(), "UTF-8"); - } catch (UnsupportedEncodingException e) { - e.printStackTrace(); - } + for (MetadataRow metadataRow : metadataRows) { + String docScheme = metadataRow.getDocumentIdentifierScheme(); + String docId = metadataRow.getDocumentIdentifier(); + String url = null; + try { + url = URLDecoder.decode(metadataRow.getURL(), "UTF-8"); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } - soft.assertTrue(url.contains(String.format("%s::%s/services/%s::%s", pScheme, pIdentifier, docScheme, docId)), "Checking URL format for metadata " + docId); + soft.assertTrue(url.contains(String.format("%s::%s/services/%s::%s", pScheme, pIdentifier, docScheme, docId)), "Checking URL format for metadata " + docId); - String mainWindow = driver.getWindowHandle(); + String mainWindow = driver.getWindowHandle(); - metadataRow.clickURL(); - page.waitForNumberOfWindowsToBe(2); - Set<String> handleSet = driver.getWindowHandles(); - String[] handles = handleSet.toArray(new String[handleSet.size()]); + metadataRow.clickURL(); + page.waitForNumberOfWindowsToBe(2); + Set<String> handleSet = driver.getWindowHandles(); + String[] handles = handleSet.toArray(new String[handleSet.size()]); - soft.assertTrue(handles.length == 2); + soft.assertTrue(handles.length == 2); - driver.switchTo().window(handles[1]); - driver.close(); - driver.switchTo().window(handles[0]); + driver.switchTo().window(handles[1]); + driver.close(); + driver.switchTo().window(handles[0]); - } + } - soft.assertAll(); - } + soft.assertAll(); + } - @Test(description = "SRCH-80") - public void filterByDifferentDomains() { - SoftAssert soft = new SoftAssert(); + @Test(description = "SRCH-80") + public void filterByDifferentDomains() { + SoftAssert soft = new SoftAssert(); - String participantID = Generator.randomAlphaNumeric(5); - String tmp = Generator.randomAlphaNumeric(3).toLowerCase(); - String participantScheme = String.format("%s-%s-%s", tmp, tmp, tmp); + String participantID = Generator.randomAlphaNumeric(5); + String tmp = Generator.randomAlphaNumeric(3).toLowerCase(); + String participantScheme = String.format("%s-%s-%s", tmp, tmp, tmp); - List<String> domains = Arrays.asList(createdDomains.get(0), createdDomains.get(1)); - List<String> owners = Arrays.asList(createdUsers.get(0)); + List<String> domains = Arrays.asList(createdDomains.get(0), createdDomains.get(1)); + List<String> owners = Arrays.asList(createdUsers.get(0)); - logger.info("Creating service group with participant id: " + participantID); - SMPRestClient.createServiceGroup(participantID, participantScheme, owners, domains); + logger.info("Creating service group with participant id: " + participantID); + SMPRestClient.createServiceGroup(participantID, participantScheme, owners, domains); - SearchPage searchPage = new SearchPage(driver); - searchPage.refreshPage(); + SearchPage searchPage = new SearchPage(driver); + searchPage.refreshPage(); - searchPage.filters.filter(participantID, participantScheme, SMPRestClient.getDomainSubDomainCombo(createdDomains.get(0))); - List<ServiceGroupRow> results = searchPage.getServiceGroupGrid().getRows(); + searchPage.filters.filter(participantID, participantScheme, SMPRestClient.getDomainSubDomainCombo(createdDomains.get(0))); + List<ServiceGroupRow> results = searchPage.getServiceGroupGrid().getRows(); - soft.assertEquals(results.size(), 1, "Results size is 1 (first search)"); - soft.assertEquals(results.get(0).getParticipantIdentifier().toLowerCase(), participantID.toLowerCase(), - "First and only result is the one we entered and is found when filtering by first domain"); + soft.assertEquals(results.size(), 1, "Results size is 1 (first search)"); + soft.assertEquals(results.get(0).getParticipantIdentifier().toLowerCase(), participantID.toLowerCase(), + "First and only result is the one we entered and is found when filtering by first domain"); - searchPage.filters.filter(participantID, participantScheme, SMPRestClient.getDomainSubDomainCombo(createdDomains.get(1))); - results = searchPage.getServiceGroupGrid().getRows(); + searchPage.filters.filter(participantID, participantScheme, SMPRestClient.getDomainSubDomainCombo(createdDomains.get(1))); + results = searchPage.getServiceGroupGrid().getRows(); - soft.assertEquals(results.size(), 1, "Results size is 1 (second search)"); - soft.assertEquals(results.get(0).getParticipantIdentifier().toLowerCase(), participantID.toLowerCase(), - "First and only result is the one we entered and is found when filtering by second domain"); + soft.assertEquals(results.size(), 1, "Results size is 1 (second search)"); + soft.assertEquals(results.get(0).getParticipantIdentifier().toLowerCase(), participantID.toLowerCase(), + "First and only result is the one we entered and is found when filtering by second domain"); - SMPRestClient.deleteSG(participantID); + SMPRestClient.deleteSG(participantID); - soft.assertAll(); - } + soft.assertAll(); + } - @Test(description = "SRCH-90") - public void verifyDifferentParticipantIdAndSchemeResult() { - SoftAssert soft = new SoftAssert(); + @Test(description = "SRCH-90") + public void verifyDifferentParticipantIdAndSchemeResult() { + SoftAssert soft = new SoftAssert(); - SearchPage page = new SearchPage(driver); - soft.assertTrue(page.isLoaded()); - String emptyMsg = "No data to display"; + SearchPage page = new SearchPage(driver); + soft.assertTrue(page.isLoaded()); + String emptyMsg = "No data to display"; - ServiceGroupRow row0 = page.getServiceGroupGrid().getRows().get(0); - String pScheme = row0.getParticipantScheme(); + ServiceGroupRow row0 = page.getServiceGroupGrid().getRows().get(0); + String pScheme = row0.getParticipantScheme(); - ServiceGroupRow row1 = page.getServiceGroupGrid().getRows().get(1); - String pIdentifier = row1.getParticipantIdentifier(); + ServiceGroupRow row1 = page.getServiceGroupGrid().getRows().get(1); + String pIdentifier = row1.getParticipantIdentifier(); - page.filters.filter(pIdentifier, pScheme, ""); + page.filters.filter(pIdentifier, pScheme, ""); - soft.assertEquals(page.getServiceGroupGrid().getEmptyTableText(), emptyMsg, "empty table not found"); - soft.assertAll(); - } + soft.assertEquals(page.getServiceGroupGrid().getEmptyTableText(), emptyMsg, "empty table not found"); + soft.assertAll(); + } - @Test(description = "SRCH-100") - public void metadataTableContent() { - SoftAssert soft = new SoftAssert(); + @Test(description = "SRCH-100") + public void metadataTableContent() { + SoftAssert soft = new SoftAssert(); - SearchPage page = new SearchPage(driver); - soft.assertTrue(page.isLoaded()); - ServiceGroupRow row0 = null; - List<ServiceGroupRow> rows = page.getServiceGroupGrid().getRows(); - row0 = rows.get(0); - MetadataGrid metadataGrid = row0.expandMetadata(); - List<MetadataRow> metadataRows = metadataGrid.getMetadataRows(); - if (row0.getMetadataSize() == 0) { - //row0.emptyMetadataContentText() - soft.assertEquals(row0.emptyMetadataContentText(), "No service metadata"); - } else { - if (row0.getMetadataSize() > 0) { - soft.assertTrue(row0.getMetadataSize() == metadataRows.size(), "metadata size is not equal to no of metadata present inside the corressponding row"); - } + SearchPage page = new SearchPage(driver); + soft.assertTrue(page.isLoaded()); + ServiceGroupRow row0 = null; + List<ServiceGroupRow> rows = page.getServiceGroupGrid().getRows(); + row0 = rows.get(0); + MetadataGrid metadataGrid = row0.expandMetadata(); + List<MetadataRow> metadataRows = metadataGrid.getMetadataRows(); + if (row0.getMetadataSize() == 0) { + //row0.emptyMetadataContentText() + soft.assertEquals(row0.emptyMetadataContentText(), "No service metadata"); + } else { + if (row0.getMetadataSize() > 0) { + soft.assertTrue(row0.getMetadataSize() == metadataRows.size(), "metadata size is not equal to no of metadata present inside the corressponding row"); + } - } - soft.assertAll(); - } + } + soft.assertAll(); + } - @Test(description = "SRCH-101") - public void verifyCollapsingSidebarPageAfterLogin() - { - SoftAssert soft = new SoftAssert(); - SearchPage page = new SearchPage(driver); - soft.assertTrue(page.isLoaded()); - page.sidebar.collapsingSideBar(); - soft.assertFalse(page.sidebar.isSidebarSearchTextEnable(),"Search button is visible so sidebar page is not collpased"); + @Test(description = "SRCH-101") + public void verifyCollapsingSidebarPageAfterLogin() { + SoftAssert soft = new SoftAssert(); + SearchPage page = new SearchPage(driver); + soft.assertTrue(page.isLoaded()); + page.sidebar.collapsingSideBar(); + soft.assertFalse(page.sidebar.isSidebarSearchTextEnable(), "Search button is visible so sidebar page is not collpased"); page.sidebar.expandingSideBar(); - soft.assertTrue(page.sidebar.isSidebarSearchTextEnable(),"Search button is not visible so sidebar page is not expanding"); - soft.assertAll(); - } + soft.assertTrue(page.sidebar.isSidebarSearchTextEnable(), "Search button is not visible so sidebar page is not expanding"); + 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 47fd13702fb65355b83c996976e60c9227e3f4f0..e52d21f457c749c43ae07dede297c9d67f837de8 100644 --- a/smp-ui-tests/src/test/java/ui/UsersPgTest.java +++ b/smp-ui-tests/src/test/java/ui/UsersPgTest.java @@ -7,6 +7,8 @@ import org.testng.asserts.SoftAssert; import pages.components.ConfirmationDialog; import pages.components.baseComponents.SMPPage; import pages.components.messageArea.AlertMessage; +import pages.login.LoginPage; +import pages.service_groups.search.SearchPage; import pages.users.UserPopup; import pages.users.UsersPage; import utils.Generator; @@ -21,166 +23,245 @@ 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-10") - public void newUser() { - String username = Generator.randomAlphaNumeric(10); - String validPass = "QW!@qw12"; + @Test(description = "USR-0") + public void existingUserPasswordDialogView() { + SoftAssert soft = new SoftAssert(); + String username = Generator.randomAlphaNumeric(10); + 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); + popup.rolesSelect.selectOptionWithText("SYSTEM_ADMIN"); + popup.clickOK(); + soft.assertTrue(usersPage.isSaveButtonEnabled(), "Save button is enabled"); + soft.assertTrue(usersPage.isCancelButtonEnabled(), "Cancel button is enabled"); - SoftAssert soft = new SoftAssert(); + usersPage.clickSave().confirm(); - UsersPage usersPage = new UsersPage(driver); + 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.isNewButtonEnabled(), "New button should be enabled"); + soft.assertTrue(usersPage.grid().isUserListed(username), "User present in the page"); - UserPopup popup = usersPage.clickNew(); - soft.assertTrue(!popup.isOKButtonActive(), "OK button should be disabled until valid data is filled in the popup"); + int index = usersPage.grid().scrollToUser(username); - popup.rolesSelect.selectOptionWithText("SYSTEM_ADMIN"); + usersPage.grid().selectRow(index); + popup = usersPage.clickEdit(); - popup.clickUserDetailsToggle(); + 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.fillDetailsForm(username, validPass, validPass); - popup.clickOK(); + 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)"); - 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().getMessage().equalsIgnoreCase(SMPMessages.MSG_18), "Message is as expected"); + soft.assertTrue(!usersPage.grid().isUserListed(username), "After saving deleted user is not listed"); - 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.assertAll(); + + } - soft.assertTrue(usersPage.grid().isUserListed(username), "User present in the page"); - soft.assertAll(); - } + @Test(description = "USR-10") + public void newUser() { + String username = Generator.randomAlphaNumeric(10); + String validPass = "Aabcdefghijklm1@"; + 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); + 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"); - @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"); + @Test(description = "USR-20") + public void usernameValidation() { + String username = Generator.randomAlphaNumeric(10); + String validPass = "QW!@qw12"; - popup.rolesSelect.selectOptionWithText("SMP_ADMIN"); + SoftAssert soft = new SoftAssert(); - popup.clickUserDetailsToggle(); + 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"); + popup.rolesSelect.selectOptionWithText("SMP_ADMIN"); - popup.fillDetailsForm("tst", validPass, validPass); - 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("#$^&*^%&$#@%@$#%$", validPass, validPass); - 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", validPass, validPass); - 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)"); + //popup.clickUserDetailsToggle(); + //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("#$^&*^%&$#@%@$#%$"); + 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"); + 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)"); - soft.assertAll(); - } - @SuppressWarnings("SpellCheckingInspection") - @Test(description = "USR-30") - public void passwordValidation() { + soft.assertAll(); + } - ArrayList<String> passToValidate = new ArrayList<>(Arrays.asList("qwqw", - "QWERQWERQWERQWERQWERQWERQWERQWE33", + @SuppressWarnings("SpellCheckingInspection") + @Test(description = "USR-30") + public void passwordValidation() { + String username = Generator.randomAlphaNumeric(10); + ArrayList<String> passToValidate = new ArrayList<>(Arrays.asList("qwqw", + "QWERQWERQWERQWERQWERQWERQWERQWE33", // "QWERTYUIOP", // "qwertyuiop", // "321654987", // "~!@#$%^&*()_", // "~1Aa#", - "~1a#2d2dds")); + "~1a#2d2dds")); - SoftAssert soft = new SoftAssert(); + SoftAssert soft = new SoftAssert(); - UsersPage usersPage = new UsersPage(driver); + UsersPage usersPage = new UsersPage(driver); + usersPage.clickVoidSpace(); - for (String pass : passToValidate) { -// usersPage.refreshPage(); - usersPage.clickVoidSpace(); + UserPopup popup = usersPage.clickNew(); + popup.fillDetailsForm(username); + 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(); - UserPopup popup = usersPage.clickNew(); - popup.rolesSelect.selectOptionWithText("SMP_ADMIN"); - popup.clickUserDetailsToggle(); + popup.clickSetOrChangePassword(); + popup.setOrChangePassword(adminPass, pass, pass); + popup.clickClosePasswordDialog(); + popup.clickCancel(); - popup.fillDetailsForm("test11", pass, pass); - soft.assertTrue(!popup.isOKButtonActive(), String.format("OK 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.assertTrue(!popup.isChangePasswordActive(), 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(); - } + soft.assertAll(); + } - @Test(description = "USR-40") - public void listedRoles() { + @Test(description = "USR-40") + public void listedRoles() { - ArrayList<String> expectedRoleValues = new ArrayList<>(Arrays.asList("SYSTEM_ADMIN", "SMP_ADMIN", "SERVICE_GROUP_ADMIN")); + ArrayList<String> expectedRoleValues = new ArrayList<>(Arrays.asList("SYSTEM_ADMIN", "SMP_ADMIN", "SERVICE_GROUP_ADMIN")); - SoftAssert soft = new SoftAssert(); + SoftAssert soft = new SoftAssert(); - UsersPage usersPage = new UsersPage(driver); - UserPopup popup = usersPage.clickNew(); - List<String> listedRoles = popup.rolesSelect.getOptionTexts(); + UsersPage usersPage = new UsersPage(driver); + UserPopup popup = usersPage.clickNew(); + List<String> listedRoles = popup.rolesSelect.getOptionTexts(); - soft.assertTrue(expectedRoleValues.size() == listedRoles.size(), "Number of roles is the same as expected"); + soft.assertTrue(expectedRoleValues.size() == listedRoles.size(), "Number of roles is the same as expected"); - 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); - } + 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(); - } + soft.assertAll(); + } - @Test(description = "USR-50") - public void deleteSYS_ADMIN() { + @Test(description = "USR-50") + public void deleteSYS_ADMIN() { - String username = Generator.randomAlphaNumeric(10); - SMPRestClient.createUser(username, "SYSTEM_ADMIN"); - SoftAssert soft = new SoftAssert(); + String username = Generator.randomAlphaNumeric(10); + SMPRestClient.createUser(username, "SYSTEM_ADMIN"); + SoftAssert soft = new SoftAssert(); - logger.info("created user " + username); - UsersPage page = new UsersPage(driver); - page.refreshPage(); + logger.info("created user " + username); + UsersPage page = new UsersPage(driver); + page.refreshPage(); - soft.assertTrue(!page.isDeleteButtonEnabled(), "Delete button is not enabled"); + soft.assertTrue(!page.isDeleteButtonEnabled(), "Delete button is not enabled"); int index = page.grid().scrollToUser(username); page.grid().selectRow(index); soft.assertTrue(page.isDeleteButtonEnabled(), "Delete button is enabled after row select"); - 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.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.clickCancel().confirm(); new ConfirmationDialog(driver).confirm(); @@ -191,99 +272,99 @@ public class UsersPgTest extends BaseTest { page.grid().selectRow(index); soft.assertTrue(page.isDeleteButtonEnabled(), "Delete button is enabled after row select(2)"); - 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)"); + 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)"); - page.clickSave().confirm(); + page.clickSave().confirm(); 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-60") - public void changeRoleSYS_ADMIN() { + @Test(description = "USR-60") + public void changeRoleSYS_ADMIN() { - SoftAssert soft = new SoftAssert(); + SoftAssert soft = new SoftAssert(); UsersPage page = new UsersPage(driver); int index = page.grid().scrollToUserWithRole("SYSTEM_ADMIN"); - 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\""); + 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.assertAll(); - } + soft.assertAll(); + } - @Test(description = "USR-70") - public void changeRoleNON_SYS_ADMIN() { + @Test(description = "USR-70") + public void changeRoleNON_SYS_ADMIN() { - SoftAssert soft = new SoftAssert(); + SoftAssert soft = new SoftAssert(); UsersPage page = new UsersPage(driver); int index = page.grid().scrollToUserWithRole("SMP_ADMIN"); - page.grid().selectRow(index); - UserPopup popup = page.clickEdit(); + page.grid().selectRow(index); + UserPopup popup = page.clickEdit(); - 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\""); + 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\""); - soft.assertAll(); - } + soft.assertAll(); + } - @Test(description = "USR-80") - public void deleteOWNUserRecord() { + @Test(description = "USR-80") + public void deleteOWNUserRecord() { - String username = new TestDataProvider().getUserWithRole("SYS_ADMIN").get("username"); + String username = new TestDataProvider().getUserWithRole("SYS_ADMIN").get("username"); - SoftAssert soft = new SoftAssert(); + SoftAssert soft = new SoftAssert(); - UsersPage page = new UsersPage(driver); - soft.assertTrue(!page.isDeleteButtonEnabled(), "Delete button is not enabled"); + UsersPage page = new UsersPage(driver); + soft.assertTrue(!page.isDeleteButtonEnabled(), "Delete button is not enabled"); 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(), "Listed message is error"); - soft.assertTrue(message.getMessage().equalsIgnoreCase(SMPMessages.USER_OWN_DELETE_ERR), "Listed message has appropriate text"); + 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"); - soft.assertAll(); - } + soft.assertAll(); + } - @Test(description = "USR-90") - public void deleteSMP_ADMIN() { + @Test(description = "USR-90") + public void deleteSMP_ADMIN() { - String username = Generator.randomAlphaNumeric(10); - SMPRestClient.createUser(username, "SMP_ADMIN"); - SoftAssert soft = new SoftAssert(); + String username = Generator.randomAlphaNumeric(10); + SMPRestClient.createUser(username, "SMP_ADMIN"); + SoftAssert soft = new SoftAssert(); - logger.info("Created username " + username); + logger.info("Created username " + username); - UsersPage page = new UsersPage(driver); - page.refreshPage(); - soft.assertTrue(!page.isDeleteButtonEnabled(), "Delete button is not enabled"); + UsersPage page = new UsersPage(driver); + page.refreshPage(); + soft.assertTrue(!page.isDeleteButtonEnabled(), "Delete button is not enabled"); int index = page.grid().scrollToUser(username); page.grid().selectRow(index); soft.assertTrue(page.isDeleteButtonEnabled(), "Delete button is enabled after row select"); - 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.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.clickCancel().confirm(); new ConfirmationDialog(driver).confirm(); @@ -294,44 +375,44 @@ public class UsersPgTest extends BaseTest { page.grid().selectRow(index); soft.assertTrue(page.isDeleteButtonEnabled(), "Delete button is enabled after row select(2)"); - 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)"); + 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)"); - page.clickSave().confirm(); + 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(); - } + soft.assertAll(); + } - @Test(description = "USR-100") - public void deleteSERVICE_GROUP_ADMIN() { + @Test(description = "USR-100") + public void deleteSERVICE_GROUP_ADMIN() { - String username = Generator.randomAlphaNumeric(10); - SMPRestClient.createUser(username, "SERVICE_GROUP_ADMIN"); - logger.info("Created username" + username); - 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(); - page.waitForRowsToLoad(); + UsersPage page = new UsersPage(driver); + page.refreshPage(); + page.waitForRowsToLoad(); - soft.assertTrue(!page.isDeleteButtonEnabled(), "Delete button is not enabled"); + soft.assertTrue(!page.isDeleteButtonEnabled(), "Delete button is not enabled"); - int index =page.grid(). scrollToUser(username); + 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(); + page.clickDelete(); + page.waitForRowsToLoad(); - 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"); + 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.clickCancel().confirm(); new ConfirmationDialog(driver).confirm(); @@ -342,94 +423,94 @@ public class UsersPgTest extends BaseTest { index = page.grid().scrollToUser(username); page.grid().selectRow(index); - soft.assertTrue(page.isDeleteButtonEnabled(), "Delete button is enabled after row select(2)"); + 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.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(); + 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(); - } + soft.assertAll(); + } - @Test(description = "USR-110") - public void deleteSG_ADMINWithSG() { + @Test(description = "USR-110") + public void deleteSG_ADMINWithSG() { - String username = Generator.randomAlphaNumeric(10); - String pi = Generator.randomAlphaNumeric(10); - String ps = Generator.randomAlphaNumeric(10); + 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); + 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))) - ); + 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); + logger.info("Created username " + username); + logger.info("Created service group " + pi); - SoftAssert soft = new SoftAssert(); + SoftAssert soft = new SoftAssert(); - UsersPage page = new UsersPage(driver); - page.refreshPage(); + 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"); + 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); + SMPRestClient.deleteSG(pi); + SMPRestClient.deleteUser(username); - soft.assertAll(); - } + soft.assertAll(); + } - @Test(description = "USR-120") - public void deleteSMP_ADMINWithSG() { + @Test(description = "USR-120") + public void deleteSMP_ADMINWithSG() { - String username = Generator.randomAlphaNumeric(10); - String pi = Generator.randomAlphaNumeric(10); - String ps = Generator.randomAlphaNumeric(10); + 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); + 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))) - ); + 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); + logger.info("Created username " + username); - SoftAssert soft = new SoftAssert(); + SoftAssert soft = new SoftAssert(); - UsersPage page = new UsersPage(driver); - page.refreshPage(); + 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"); + 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); + SMPRestClient.deleteSG(pi); + SMPRestClient.deleteUser(username); soft.assertAll(); } @@ -438,51 +519,132 @@ public class UsersPgTest extends BaseTest { public void duplicateUserCreation() { SoftAssert soft = new SoftAssert(); String userName = Generator.randomAlphaNumeric(10); - String validPass = "QW!@qw12"; + String validPass = "Aabcdefghijklm1@"; 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); popup.rolesSelect.selectOptionWithText("SYSTEM_ADMIN"); - popup.clickUserDetailsToggle(); - popup.fillDetailsForm(userName, validPass, validPass); 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(); - soft.assertTrue(!popup.isOKButtonActive(), "OK button is enable before valid data is filled in the popup"); + + popup.fillDetailsForm(userName); popup.rolesSelect.selectOptionWithText("SYSTEM_ADMIN"); - popup.clickUserDetailsToggle(); - popup.fillDetailsForm(userName, validPass, validPass); + // 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-122") public void verifyPasswordDoNotMatch() { String username = Generator.randomAlphaNumeric(10); - String validPass = "QW!@qw12"; - String confirmPass = "AS@!gh12"; - String errorMsg = "Passwords do not match"; + String validPass = "Aabcdefghijklm1@"; + String confirmPass = "AS@!gh12fxghfnh43546"; + 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); 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(); + } - popup.clickUserDetailsToggle(); + @Test(description = "USR-123") + public void verifySuspendedUserwithoutPassword() { + String username = Generator.randomAlphaNumeric(10); + String password = "Aabcdefghijklm1@"; + + 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); + 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"); - popup.fillDetailsForm(username, validPass, confirmPass); - soft.assertTrue(!popup.isOKButtonActive(), "OK button is enabled before valid data is filled in the popup(2)"); - soft.assertEquals(popup.getPassDontMatchValidationMsg(), errorMsg, "confirmation input does not contain the message 'Passwords do not match' ."); soft.assertAll(); } - }