diff --git a/smp-ui-tests/pom.xml b/smp-ui-tests/pom.xml index c33df13cfdd7356e174509673619487164c726a8..321e1925faf6592b9446747832cb0554cbea5c30 100644 --- a/smp-ui-tests/pom.xml +++ b/smp-ui-tests/pom.xml @@ -11,7 +11,7 @@ <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> - <url>http://localhost:57005/smp</url> + <url>http://localhost:8080/smp-4.1.1</url> <gecko.driver.path>drivers/geckodriver.exe</gecko.driver.path> <chrome.driver.path>drivers/chromedriver.exe</chrome.driver.path> </properties> 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 00195ea9daf0b1f8cfe9e5cecf92c480c922a672..680bf656640c09fc6f140d37b605b9b6140db0ac 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 @@ -75,9 +75,10 @@ public class BasicGrid extends PageComponent { 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/domain/DomainGrid.java b/smp-ui-tests/src/main/java/pages/domain/DomainGrid.java index 01f8b936c21cb60b473b11fd8bf745123b234b46..ba6cd51785ad71e00c9a8c17b3c5a19e20bf82a6 100644 --- a/smp-ui-tests/src/main/java/pages/domain/DomainGrid.java +++ b/smp-ui-tests/src/main/java/pages/domain/DomainGrid.java @@ -3,6 +3,7 @@ package pages.domain; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; +import org.openqa.selenium.interactions.Actions; import pages.components.grid.BasicGrid; import java.util.ArrayList; @@ -48,5 +49,80 @@ public class DomainGrid extends BasicGrid { return rowInfos; } + public void mouseHoverOnDomainCode(int rowNumber) { + WebElement element = driver.findElement(By.cssSelector(".datatable-row-wrapper:nth-child(" + rowNumber + ") .datatable-body-cell:nth-child(1) .datatable-body-cell-label span")); + Actions action = new Actions(driver); + action.moveToElement(element).build().perform(); + } + + public boolean isDomainStillPresent(String domainCode) { + boolean end = false; + List<DomainRow> rows = new ArrayList<>(); + DomainPage page = new DomainPage(driver); + page.pagination.skipToFirstPage(); + + while (!end) { + rows.addAll(page.grid().getRowsInfo()); + if (page.pagination.hasNextPage()) { + page.pagination.goToNextPage(); + } else { + end = true; + } + } + + boolean found = false; + for (DomainRow row : rows) { + if (row.getDomainCode().equalsIgnoreCase(domainCode)) { + found = true; + } + } + return found; + } + public int scrollToDomain(String domainCode) { + DomainPage page = new DomainPage(driver); + page.pagination.skipToFirstPage(); + + boolean end = false; + while (!end) { + List<DomainRow> rows = page.grid().getRowsInfo(); + for (int i = 0; i < rows.size(); i++) { + if (rows.get(i).getDomainCode().equalsIgnoreCase(domainCode)) { + return i; + } + } + + if (page.pagination.hasNextPage()) { + page.pagination.goToNextPage(); + } else { + end = true; + } + } + + return -1; + } + + public int scrollToSmlDomain(String smlDomain) { + try { + DomainPage page = new DomainPage(driver); + List<DomainRow> rows; + int count = 0; + do { + if (count != 0) { + page.pagination.goToNextPage(); + } + rows = page.grid().getRowsInfo(); + for (int i = 0; i < rows.size(); i++) { + if (rows.get(i).getSmlDomain().equalsIgnoreCase(smlDomain)) { + return i; + } + } + count++; + } + while (page.pagination.hasNextPage()); + } catch (Exception e) { + e.printStackTrace(); + } + return -1; + } } diff --git a/smp-ui-tests/src/main/java/pages/domain/DomainPage.java b/smp-ui-tests/src/main/java/pages/domain/DomainPage.java index 721e079750e1733acd8deb552942f0bb667d0402..58f3eab67fe45250e569b38b79fcb05a50f63858 100644 --- a/smp-ui-tests/src/main/java/pages/domain/DomainPage.java +++ b/smp-ui-tests/src/main/java/pages/domain/DomainPage.java @@ -8,8 +8,6 @@ import org.openqa.selenium.support.pagefactory.AjaxElementLocatorFactory; import pages.components.ConfirmationDialog; import pages.components.baseComponents.PaginationControls; import pages.components.baseComponents.SMPPage; -import pages.components.grid.BasicGrid; -import pages.users.UserPopup; import utils.PROPERTIES; public class DomainPage extends SMPPage { diff --git a/smp-ui-tests/src/main/java/pages/domain/DomainPopup.java b/smp-ui-tests/src/main/java/pages/domain/DomainPopup.java index 8ec1c6d701e8514d92a7f36a4bb5c0fcb27743bc..135527e96dc19f0fcf2a51d8c17158833a347d6b 100644 --- a/smp-ui-tests/src/main/java/pages/domain/DomainPopup.java +++ b/smp-ui-tests/src/main/java/pages/domain/DomainPopup.java @@ -1,5 +1,6 @@ package pages.domain; +import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.support.FindBy; @@ -87,6 +88,41 @@ public class DomainPopup extends PageComponent { smlClientAliasSelect.selectFirstOption(); } + public String getDuplicateDomainErrorMsgText() + { + WebElement duplicateDomainErrorMsg = driver.findElement(By.cssSelector(".mat-form-field-infix > div.ng-star-inserted")); + return duplicateDomainErrorMsg.getText(); + + + } + public boolean isEnableOkButton() + { + try { + return okBtn.isEnabled(); + } + catch(Exception e) + { + e.printStackTrace(); + return false; + } + } + public boolean isEnableCancelButton() + { + try { + return cancelBtn.isEnabled(); + } + catch(Exception e) + { + e.printStackTrace(); + return false; + } + + } + + public void clearAndFillDomainCodeInput(String domainCode) { + log.info("filling only domain code data for new domain"); + clearAndFillInput(domainCodeInput, domainCode); + } } 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 748478d7a8061b8a4adabc1ce45a739972922e6d..935f8a1cfd716194392b1577dbb77876146606d2 100644 --- a/smp-ui-tests/src/main/java/pages/users/UserPopup.java +++ b/smp-ui-tests/src/main/java/pages/users/UserPopup.java @@ -1,5 +1,6 @@ package pages.users; +import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.support.FindBy; @@ -43,6 +44,9 @@ public class UserPopup extends PageComponent { @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 > tbody > tr > td > button:nth-child(1)") WebElement okBtn; @@ -129,4 +133,18 @@ public class UserPopup extends PageComponent { } 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(); + } } diff --git a/smp-ui-tests/src/main/java/pages/users/UsersGrid.java b/smp-ui-tests/src/main/java/pages/users/UsersGrid.java index 864e47863e96e6ee1f06e2d35c7763c3d56b2b93..d2ef07e7c914ffbeb54b175a8ff1b7895b72eb9c 100644 --- a/smp-ui-tests/src/main/java/pages/users/UsersGrid.java +++ b/smp-ui-tests/src/main/java/pages/users/UsersGrid.java @@ -3,6 +3,7 @@ package pages.users; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; +import pages.components.baseComponents.PaginationControls; import pages.components.grid.BasicGrid; import java.util.ArrayList; @@ -12,10 +13,10 @@ public class UsersGrid extends BasicGrid { public UsersGrid(WebDriver driver, WebElement container) { super(driver, container); } - - public List<UserRowInfo> getRows(){ + + public List<UserRowInfo> getRows() { List<UserRowInfo> rowInfos = new ArrayList<>(); - + for (WebElement gridRow : gridRows) { List<WebElement> cells = gridRow.findElements(By.tagName("datatable-body-cell")); UserRowInfo rowInfo = new UserRowInfo(); @@ -26,7 +27,76 @@ public class UsersGrid extends BasicGrid { } return rowInfos; } - - - + + public boolean isUserListed(String username) { + boolean end = false; + + PaginationControls pagination = new PaginationControls(driver); + pagination.skipToFirstPage(); + + do { + List<UserRowInfo> rows = getRows(); + + for (UserRowInfo row : rows) { + if (row.getUsername().equalsIgnoreCase(username)) { + return true; + } + } + + try { + pagination.goToNextPage(); + } catch (Exception e) { + } + } while (pagination.hasNextPage()); + + return false; + } + + public int scrollToUser(String username) { + + PaginationControls pagination = new PaginationControls(driver); + pagination.skipToFirstPage(); + + do { + + List<UserRowInfo> rows = getRows(); + for (int i = 0; i < rows.size(); i++) { + if (rows.get(i).getUsername().equalsIgnoreCase(username)) { + return i; + } + } + try { + pagination.goToNextPage(); + } catch (Exception e) { + } + + } while (pagination.hasNextPage()); + + return -1; + } + + public int scrollToUserWithRole(String role) { + PaginationControls pagination = new PaginationControls(driver); + pagination.skipToFirstPage(); + + do { + + List<UserRowInfo> rows = getRows(); + for (int i = 0; i < rows.size(); i++) { + if (rows.get(i).getRole().equalsIgnoreCase(role)) { + return i; + } + } + + try { + pagination.goToNextPage(); + } catch (Exception e) { + } + + } while (pagination.hasNextPage()); + + return -1; + } + + } 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 885791aeac0ed2c99263e91fa7ad6c8036c4002f..cb232f7ee73c27a62ea0d4b867dcce52b4abb463 100644 --- a/smp-ui-tests/src/main/java/pages/users/UsersPage.java +++ b/smp-ui-tests/src/main/java/pages/users/UsersPage.java @@ -1,5 +1,6 @@ package pages.users; +import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.support.FindBy; @@ -18,7 +19,7 @@ public class UsersPage extends SMPPage { public UsersPage(WebDriver driver) { super(driver); this.pageHeader.waitForTitleToBe("Users"); - PageFactory.initElements( new AjaxElementLocatorFactory(driver, PROPERTIES.TIMEOUT), this); + PageFactory.initElements(new AjaxElementLocatorFactory(driver, PROPERTIES.TIMEOUT), this); } @@ -26,24 +27,24 @@ public class UsersPage extends SMPPage { @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(){ + + + public boolean isLoaded() { log.info("checking Users page is loaded"); return isVisible(cancelBtn) @@ -53,58 +54,60 @@ public class UsersPage extends SMPPage { && isVisible(editBtn) && isVisible(deleteBtn); } - - public boolean isCancelButtonEnabled(){ + + public boolean isCancelButtonEnabled() { log.info("cancel button"); return isEnabled(cancelBtn); } - public boolean isSaveButtonEnabled(){ + + public boolean isSaveButtonEnabled() { log.info("save button"); return isEnabled(saveBtn); } - public boolean isDeleteButtonEnabled(){ + + public boolean isDeleteButtonEnabled() { waitForXMillis(200); log.info("delete button"); return isEnabled(deleteBtn); } - public ConfirmationDialog clickCancel(){ + public ConfirmationDialog clickCancel() { log.info("click cancel button"); waitForElementToBeClickable(cancelBtn).click(); return new ConfirmationDialog(driver); } - - public ConfirmationDialog clickSave(){ + + public ConfirmationDialog clickSave() { log.info("click save button"); waitForElementToBeClickable(saveBtn).click(); return new ConfirmationDialog(driver); } - - public void clickDelete(){ + + public void clickDelete() { log.info("click delete button"); waitForElementToBeClickable(deleteBtn).click(); waitForRowsToLoad(); } - public UserPopup clickNew(){ + + public UserPopup clickNew() { log.info("click new button"); waitForElementToBeClickable(newBtn).click(); return new UserPopup(driver); } - public UserPopup clickEdit(){ + public UserPopup clickEdit() { log.info("click edit button"); waitForElementToBeClickable(editBtn).click(); return new UserPopup(driver); } - - - public UsersGrid grid(){ + + + public UsersGrid grid() { return new UsersGrid(driver, userTableContainer); } - - public void createUser(){ + public void createUser() { log.info("create user"); waitForElementToBeClickable(newBtn).click(); @@ -113,10 +116,15 @@ public class UsersPage extends SMPPage { popup.clickOK(); } - - - - - - + + public boolean isNewButtonEnabled() { + try { + return newBtn.isEnabled(); + } catch (Exception e) { + e.printStackTrace(); + } + return false; + } + + } diff --git a/smp-ui-tests/src/test/java/ui/DomainPgTest.java b/smp-ui-tests/src/test/java/ui/DomainPgTest.java index 6f46e83555731145b0a9418ec7de25f19f1985a8..ec90e010a82b8affdca4629fbf119bd4dca727f7 100644 --- a/smp-ui-tests/src/test/java/ui/DomainPgTest.java +++ b/smp-ui-tests/src/test/java/ui/DomainPgTest.java @@ -212,7 +212,7 @@ public class DomainPgTest extends BaseTest { soft.assertTrue(page.isLoaded(), "Check that the page is loaded"); soft.assertTrue(!page.isDeleteButtonEnabled(), "Delete button is not enabled"); - int index = scrollToDomain(rndStr); + int index = page.grid().scrollToDomain(rndStr); page.grid().selectRow(index); @@ -226,14 +226,14 @@ public class DomainPgTest extends BaseTest { page.clickCancel().confirm(); new ConfirmationDialog(driver).confirm(); - soft.assertTrue(isDomainStillPresent(rndStr), "Row is still present"); + soft.assertTrue(page.grid().isDomainStillPresent(rndStr), "Row is still present"); - index = scrollToDomain(rndStr); - page.grid().selectRow(index); - page.clickDelete(); - page.clickSave().confirm(); + index = page.grid().scrollToDomain(rndStr); + page.grid().selectRow(index); + page.clickDelete(); + page.clickSave().confirm(); - soft.assertTrue(!isDomainStillPresent(rndStr), "Row is still NOT present after delete"); + soft.assertTrue(!page.grid().isDomainStillPresent(rndStr), "Row is still NOT present after delete"); soft.assertAll(); @@ -256,9 +256,9 @@ public class DomainPgTest extends BaseTest { DomainPage page = new DomainPage(driver); page.refreshPage(); - int index = scrollToDomain(domainName); - page.grid().selectRow(index); - soft.assertTrue(page.isDeleteButtonEnabled(), "Delete button is enabled after row select"); + int index = page.grid().scrollToDomain(domainName); + page.grid().selectRow(index); + soft.assertTrue(page.isDeleteButtonEnabled(), "Delete button is enabled after row select"); page.clickDelete(); AlertMessage message = page.alertArea.getAlertMessage(); @@ -271,55 +271,70 @@ public class DomainPgTest extends BaseTest { soft.assertAll(); } - - - - private boolean isDomainStillPresent(String domainCode){ - boolean end = false; - List<DomainRow> rows = new ArrayList<>(); - DomainPage page = new DomainPage(driver); - page.pagination.skipToFirstPage(); - - while (!end) { - page = new DomainPage(driver); - rows.addAll(page.grid().getRowsInfo()); - if(page.pagination.hasNextPage()){ - page.pagination.goToNextPage(); - }else{end = true;} - } - - boolean found = false; - for (DomainRow row : rows) { - if(row.getDomainCode().equalsIgnoreCase(domainCode)){ - found = true; - } - } - return found; - } - - private int scrollToDomain(String domainCode){ - DomainPage page = new DomainPage(driver); - page.pagination.skipToFirstPage(); - - boolean end = false; - while (!end) { - page = new DomainPage(driver); - - List<DomainRow> rows = page.grid().getRowsInfo(); - for (int i = 0; i < rows.size(); i++) { - if(rows.get(i).getDomainCode().equalsIgnoreCase(domainCode)){ - return i; - } - } - - if(page.pagination.hasNextPage()){ - page.pagination.goToNextPage(); - }else{end = true;} - } - - return -1; - } - + @Test(description = "DMN-60") + public void duplicateDomainCreation() { + SoftAssert soft = new SoftAssert(); + DomainPage page = new DomainPage(driver); + String errorMsg = "The Domain code already exists!"; + soft.assertTrue(page.isLoaded(), "Check that the page is loaded"); + String rndString = Generator.randomAlphaNumeric(10); + DomainPopup popup = page.clickNew(); + soft.assertTrue(popup.isLoaded(), "Domain popup is loaded"); + soft.assertTrue(popup.isDomainCodeInputEnabled(), "When defining new domain - Domain Code input is disabled"); + soft.assertTrue(popup.isSMLDomainInputEnabled(), "When defining new domain -SML Domain input is disabled"); + popup.fillDataForNewDomain(rndString, rndString, rndString, rndString); + popup.clickOK(); + soft.assertTrue(page.isSaveButtonEnabled(), "Save button is enabled"); + page.clickSave().confirm(); + page.clickNew(); + soft.assertTrue(popup.isLoaded(), "Domain popup is loaded"); + soft.assertTrue(popup.isDomainCodeInputEnabled(), "When defining new domain - Domain Code input is disabled"); + soft.assertTrue(popup.isSMLDomainInputEnabled(), "When defining new domain -SML Domain input is disabled"); + popup.fillDataForNewDomain(rndString, rndString, rndString, rndString); + soft.assertEquals(popup.getDuplicateDomainErrorMsgText(), errorMsg, "The message is not matching with our expected error message"); + soft.assertFalse(popup.isEnableOkButton(), "Ok button is enable"); + soft.assertTrue(popup.isEnableCancelButton(), "Cancel button is disabled"); + popup.clickCancel(); + soft.assertAll(); + } + + @Test(description = "DMN-70") + public void onlyDomainCodeSavingMsgVerify() { + SoftAssert soft = new SoftAssert(); + DomainPage page = new DomainPage(driver); +// String errorMsg = "The domain should have a defined signature CertAlias."; + soft.assertTrue(page.isLoaded(), "Check that the page is loaded"); + int index = page.grid().scrollToSmlDomain(""); + if (index >= 0) { + try { + page.grid().selectRow(index); + page.clickDelete(); + page.clickSave().confirm(); + } catch (Exception e) { + e.printStackTrace(); + } + } + String rndString = Generator.randomAlphaNumeric(10); + DomainPopup popup = page.clickNew(); + soft.assertTrue(popup.isLoaded(), "Domain popup is loaded"); + soft.assertTrue(popup.isDomainCodeInputEnabled(), "When defining new domain - Domain Code input is disabled"); + popup.clearAndFillDomainCodeInput(rndString); + soft.assertTrue(popup.isEnableOkButton(), "Ok button is disabled"); + popup.clickOK(); + soft.assertTrue(page.isSaveButtonEnabled(), "Save button is enabled"); + page.clickSave().confirm(); + soft.assertTrue(page.alertArea.getAlertMessage().getMessage().equalsIgnoreCase(SMPMessages.MSG_18), + "Success message is as expected"); + index = page.grid().scrollToSmlDomain(""); + if (index >= 0) { + page.grid().scrollRow(index); + } + int rowNumber = index + 1; + page.grid().mouseHoverOnDomainCode(rowNumber); +// WebElement text = driver.findElement(By.xpath("//*[text()='The domain should have a defined signature CertAlias.']")); +// soft.assertEquals(text.getText(),errorMsg, "the message 'The domain should have a defined signature CertAlias.' is not displayed"); + 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 e196b1a2ca204176a98f834a030109e580f1be42..782d8feac9fb62c76808543df87d247de5817c34 100644 --- a/smp-ui-tests/src/test/java/ui/UsersPgTest.java +++ b/smp-ui-tests/src/test/java/ui/UsersPgTest.java @@ -8,7 +8,6 @@ import pages.components.ConfirmationDialog; import pages.components.baseComponents.SMPPage; import pages.components.messageArea.AlertMessage; import pages.users.UserPopup; -import pages.users.UserRowInfo; import pages.users.UsersPage; import utils.Generator; import utils.TestDataProvider; @@ -66,7 +65,7 @@ public class UsersPgTest extends BaseTest { 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(isUserListed(username), "User present in the page"); + soft.assertTrue(usersPage.grid().isUserListed(username), "User present in the page"); soft.assertAll(); } @@ -174,23 +173,23 @@ public class UsersPgTest extends BaseTest { soft.assertTrue(!page.isDeleteButtonEnabled(), "Delete button is not enabled"); - int index = scrollToUser(username); - page.grid().selectRow(index); - soft.assertTrue(page.isDeleteButtonEnabled(), "Delete button is enabled after row select"); + 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.clickCancel().confirm(); - new ConfirmationDialog(driver).confirm(); - soft.assertTrue(isUserListed(username), "After canceling delete user is still listed"); + page.clickCancel().confirm(); + new ConfirmationDialog(driver).confirm(); + soft.assertTrue(page.grid().isUserListed(username), "After canceling delete user is still listed"); - index = scrollToUser(username); - page.grid().selectRow(index); - soft.assertTrue(page.isDeleteButtonEnabled(), "Delete button is enabled after row select(2)"); + index = page.grid().scrollToUser(username); + 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)"); @@ -199,8 +198,8 @@ public class UsersPgTest extends BaseTest { page.clickSave().confirm(); - soft.assertTrue(page.alertArea.getAlertMessage().getMessage().equalsIgnoreCase(SMPMessages.MSG_18), "Message listed is as expected"); - soft.assertTrue(!isUserListed(username), "After saving deleted user is not listed"); + 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(); } @@ -210,8 +209,8 @@ public class UsersPgTest extends BaseTest { SoftAssert soft = new SoftAssert(); - UsersPage page = new UsersPage(driver); - int index = scrollToUserWithRole("SYSTEM_ADMIN"); + UsersPage page = new UsersPage(driver); + int index = page.grid().scrollToUserWithRole("SYSTEM_ADMIN"); page.grid().selectRow(index); UserPopup popup = page.clickEdit(); @@ -227,8 +226,8 @@ public class UsersPgTest extends BaseTest { SoftAssert soft = new SoftAssert(); - UsersPage page = new UsersPage(driver); - int index = scrollToUserWithRole("SMP_ADMIN"); + UsersPage page = new UsersPage(driver); + int index = page.grid().scrollToUserWithRole("SMP_ADMIN"); page.grid().selectRow(index); UserPopup popup = page.clickEdit(); @@ -251,9 +250,9 @@ public class UsersPgTest extends BaseTest { UsersPage page = new UsersPage(driver); soft.assertTrue(!page.isDeleteButtonEnabled(), "Delete button is not enabled"); - int index = scrollToUser(username); - page.grid().selectRow(index); - soft.assertTrue(page.isDeleteButtonEnabled(), "Delete button is enabled after row select"); + 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(); @@ -277,23 +276,23 @@ public class UsersPgTest extends BaseTest { page.refreshPage(); soft.assertTrue(!page.isDeleteButtonEnabled(), "Delete button is not enabled"); - int index = scrollToUser(username); - page.grid().selectRow(index); - soft.assertTrue(page.isDeleteButtonEnabled(), "Delete button is enabled after row select"); + 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.clickCancel().confirm(); - new ConfirmationDialog(driver).confirm(); - soft.assertTrue(isUserListed(username), "After canceling delete user is still listed"); + page.clickCancel().confirm(); + new ConfirmationDialog(driver).confirm(); + soft.assertTrue(page.grid().isUserListed(username), "After canceling delete user is still listed"); - index = scrollToUser(username); - page.grid().selectRow(index); - soft.assertTrue(page.isDeleteButtonEnabled(), "Delete button is enabled after row select(2)"); + index = page.grid().scrollToUser(username); + page.grid().selectRow(index); + soft.assertTrue(page.isDeleteButtonEnabled(), "Delete button is enabled after row select(2)"); page.clickDelete(); page.waitForXMillis(200); @@ -303,8 +302,8 @@ public class UsersPgTest extends BaseTest { page.clickSave().confirm(); - soft.assertTrue(page.alertArea.getAlertMessage().getMessage().equalsIgnoreCase(SMPMessages.MSG_18), "Message is as expected"); - soft.assertTrue(!isUserListed(username), "After saving deleted user is not listed"); + soft.assertTrue(page.alertArea.getAlertMessage().getMessage().equalsIgnoreCase(SMPMessages.MSG_18), "Message is as expected"); + soft.assertTrue(!page.grid().isUserListed(username), "After saving deleted user is not listed"); soft.assertAll(); } @@ -323,9 +322,9 @@ public class UsersPgTest extends BaseTest { soft.assertTrue(!page.isDeleteButtonEnabled(), "Delete button is not enabled"); - int index = scrollToUser(username); - page.grid().selectRow(index); - soft.assertTrue(page.isDeleteButtonEnabled(), "Delete button is enabled after row select"); + 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(); @@ -334,14 +333,14 @@ public class UsersPgTest extends BaseTest { 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(); - page.waitForRowsToLoad(); - soft.assertTrue(isUserListed(username), "After canceling delete user is still listed"); + page.clickCancel().confirm(); + new ConfirmationDialog(driver).confirm(); + page.waitForRowsToLoad(); + soft.assertTrue(page.grid().isUserListed(username), "After canceling delete user is still listed"); - index = scrollToUser(username); - page.grid().selectRow(index); + index = page.grid().scrollToUser(username); + page.grid().selectRow(index); soft.assertTrue(page.isDeleteButtonEnabled(), "Delete button is enabled after row select(2)"); @@ -353,8 +352,8 @@ public class UsersPgTest extends BaseTest { page.clickSave().confirm(); - soft.assertTrue(page.alertArea.getAlertMessage().getMessage().equalsIgnoreCase(SMPMessages.MSG_18), "Message is as expected"); - soft.assertTrue(!isUserListed(username), "After saving deleted user is not listed"); + soft.assertTrue(page.alertArea.getAlertMessage().getMessage().equalsIgnoreCase(SMPMessages.MSG_18), "Message is as expected"); + soft.assertTrue(!page.grid().isUserListed(username), "After saving deleted user is not listed"); soft.assertAll(); } @@ -382,9 +381,9 @@ public class UsersPgTest extends BaseTest { UsersPage page = new UsersPage(driver); page.refreshPage(); - int index = scrollToUser(username); - page.grid().selectRow(index); - soft.assertTrue(page.isDeleteButtonEnabled(), "Delete button is enabled after row select"); + 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(); @@ -419,9 +418,9 @@ public class UsersPgTest extends BaseTest { UsersPage page = new UsersPage(driver); page.refreshPage(); - int index = scrollToUser(username); - page.grid().selectRow(index); - soft.assertTrue(page.isDeleteButtonEnabled(), "Delete button is enabled after row select"); + 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); @@ -432,86 +431,59 @@ public class UsersPgTest extends BaseTest { SMPRestClient.deleteSG(pi); SMPRestClient.deleteUser(username); - soft.assertAll(); - } - - - private boolean isUserListed(String username) { - boolean end = false; - - UsersPage page = new UsersPage(driver); - page.pagination.skipToFirstPage(); - - while (!end) { - page = new UsersPage(driver); - List<UserRowInfo> rows = page.grid().getRows(); - - for (UserRowInfo row : rows) { - if (row.getUsername().equalsIgnoreCase(username)) { - return true; - } - } - - if (page.pagination.hasNextPage()) { - page.pagination.goToNextPage(); - } else { - end = true; - } - } - - return false; - } - - private int scrollToUser(String username) { - - UsersPage page = new UsersPage(driver); - page.pagination.skipToFirstPage(); - - boolean end = false; - while (!end) { - page = new UsersPage(driver); - - List<UserRowInfo> rows = page.grid().getRows(); - for (int i = 0; i < rows.size(); i++) { - if (rows.get(i).getUsername().equalsIgnoreCase(username)) { - return i; - } - } - - if (page.pagination.hasNextPage()) { - page.pagination.goToNextPage(); - } else { - end = true; - } - } - - return -1; - } - - private int scrollToUserWithRole(String role) { - UsersPage page = new UsersPage(driver); - page.pagination.skipToFirstPage(); - - boolean end = false; - while (!end) { - page = new UsersPage(driver); - - List<UserRowInfo> rows = page.grid().getRows(); - for (int i = 0; i < rows.size(); i++) { - if (rows.get(i).getRole().equalsIgnoreCase(role)) { - return i; - } - } - - if (page.pagination.hasNextPage()) { - page.pagination.goToNextPage(); - } else { - end = true; - } - } - - return -1; - } - + soft.assertAll(); + } + + @Test(description = "USR-121") + public void duplicateUserCreation() { + SoftAssert soft = new SoftAssert(); + String userName = Generator.randomAlphaNumeric(10); + String validPass = "QW!@qw12"; + // String errorMsg = "×\n" + "The operation 'update' not completed successfully. Unexpected technical error occurred."; + 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.rolesSelect.selectOptionWithText("SYSTEM_ADMIN"); + popup.clickUserDetailsToggle(); + popup.fillDetailsForm(userName, validPass, validPass); + popup.clickOK(); + soft.assertTrue(page.isSaveButtonEnabled(), "Save button is enabled"); + page.clickSave().confirm(); + + page.clickNew(); + soft.assertTrue(!popup.isOKButtonActive(), "OK button is enable before valid data is filled in the popup"); + popup.rolesSelect.selectOptionWithText("SYSTEM_ADMIN"); + popup.clickUserDetailsToggle(); + popup.fillDetailsForm(userName, validPass, validPass); + 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"); + 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"; + 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.rolesSelect.selectOptionWithText("SMP_ADMIN"); + + popup.clickUserDetailsToggle(); + + 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(); + } }