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..735b23622791429d49ce8a8462e47e0d3e56efce 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; @@ -15,7 +16,7 @@ public class DomainGrid extends BasicGrid { private By cellSelector = By.tagName("datatable-body-cell"); - public List<DomainRow> getRowsInfo(){ + public List<DomainRow> getRowsInfo() { log.info("getting all row info"); List<DomainRow> rowInfos = new ArrayList<>(); @@ -25,7 +26,7 @@ public class DomainGrid extends BasicGrid { DomainRow row = new DomainRow(); for (int i = 0; i < headerTxt.size(); i++) { - switch (headerTxt.get(i)){ + switch (headerTxt.get(i)) { case "Domain code": row.setDomainCode(cells.get(i).getText().trim()); break; @@ -47,6 +48,11 @@ 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(); + } - -} +} \ No newline at end of file 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..62fc8590ae5487133086be74a638149313848735 100644 --- a/smp-ui-tests/src/main/java/pages/domain/DomainPopup.java +++ b/smp-ui-tests/src/main/java/pages/domain/DomainPopup.java @@ -38,6 +38,13 @@ public class DomainPopup extends PageComponent { @FindBy(css = "#smlSMPId_id") WebElement smlSMPIdInput; + + @FindBy(xpath = "//div[contains(text(),' The Domain code already exists! ')]") + WebElement duplicateDomainErrorMsg; + + + + // @FindBy(css = "#smlClientHeader_id") // WebElement smlClientHeaderInput; @@ -87,6 +94,40 @@ public class DomainPopup extends PageComponent { smlClientAliasSelect.selectFirstOption(); } + public String getDuplicateDomainErrorMsgText() + { + String duplicateDomainMsg = duplicateDomainErrorMsg.getText(); + return duplicateDomainMsg; + + } + public boolean isEnableOkButton() + { + try { + return okBtn.isEnabled(); + } + catch(Exception e) + { + e.printStackTrace(); + return false; + } + } + public boolean isEnableCancelButton() + { + try { + return cancelBtn.isEnabled(); + } + catch(Exception e) + { + e.printStackTrace(); + return false; + } + + } + + public void clearAndFillDomainCodeInput(String domainCode) { + log.info("filling only domain code data for new domain"); + clearAndFillInput(domainCodeInput, domainCode); + } } 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..69d09936d31204da143837331d80f321d771d121 100644 --- a/smp-ui-tests/src/main/java/pages/users/UserPopup.java +++ b/smp-ui-tests/src/main/java/pages/users/UserPopup.java @@ -49,6 +49,9 @@ public class UserPopup extends PageComponent { @FindBy(css = "mat-dialog-content > table > tbody > tr > td > button:nth-child(2)") WebElement cancelBtn; + @FindBy(xpath = "//div[text()=\'Passwords do not match \']") + WebElement passwordUnmatchingMsg; + @FindBy(css = "#role_id") WebElement rolesSelectContainer; public GenericSelect rolesSelect; @@ -129,4 +132,9 @@ public class UserPopup extends PageComponent { } return null; } + + public String getPasswordUnmatchingMsg() + { + return passwordUnmatchingMsg.getText(); + } } 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..c42da40ce89e75b64c15f2260651a3f6169ebc7f 100644 --- a/smp-ui-tests/src/main/java/pages/users/UsersPage.java +++ b/smp-ui-tests/src/main/java/pages/users/UsersPage.java @@ -41,6 +41,9 @@ public class UsersPage extends SMPPage { @FindBy(id = "deleteButton") private WebElement deleteBtn; + + @FindBy(xpath = "//div[contains(text(),'Unexpected technical error occurred.')]") + private WebElement duplicateUserCreationMsg; public boolean isLoaded(){ @@ -113,10 +116,26 @@ public class UsersPage extends SMPPage { popup.clickOK(); } + + public boolean isNewButtonEnabled() + + { + try{ + return newBtn.isEnabled(); + } + catch(Exception e) + { + e.printStackTrace(); + throw e; + } + } - - - + public String getDuplicateUserErrorMsg() + { + return duplicateUserCreationMsg.getText(); + } + + } diff --git a/smp-ui-tests/src/test/java/ui/DomainPgTest.java b/smp-ui-tests/src/test/java/ui/DomainPgTest.java index 6f46e83555731145b0a9418ec7de25f19f1985a8..c200395b7744a5035d0a8b48eb21780fee4b53ad 100644 --- a/smp-ui-tests/src/test/java/ui/DomainPgTest.java +++ b/smp-ui-tests/src/test/java/ui/DomainPgTest.java @@ -20,306 +20,391 @@ import java.util.Arrays; import java.util.List; public class DomainPgTest extends BaseTest { - - @AfterMethod - public void logoutAndReset(){ - genericLogoutProcedure(); - } - - @BeforeMethod - public void loginAndGoToDomainPage(){ - - SMPPage page = genericLoginProcedure("SYS_ADMIN"); + @AfterMethod + public void logoutAndReset() { + genericLogoutProcedure(); + } - logger.info("Going to Domain page"); - page.sidebar.goToPage(DomainPage.class); - } - - @Test(description = "DMN-0") - public void openDomainPage(){ - SoftAssert soft = new SoftAssert(); - DomainPage page = new DomainPage(driver); - soft.assertTrue(page.isLoaded(), "Check that the page is loaded"); - DomainGrid grid = page.grid(); - DomainRow row0 = grid.getRowsInfo().get(0); - grid.doubleClickRow(0); - - DomainPopup popup = new DomainPopup(driver); + @BeforeMethod + public void loginAndGoToDomainPage() { - soft.assertTrue(popup.isLoaded(), "Domain popup is loaded"); + SMPPage page = genericLoginProcedure("SYS_ADMIN"); - soft.assertTrue(!popup.isDomainCodeInputEnabled(), "On double click Domain Code input is disabled"); - soft.assertTrue(!popup.isSMLDomainInputEnabled(), "On double click SML Domain input is disabled"); + logger.info("Going to Domain page"); + page.sidebar.goToPage(DomainPage.class); + } - popup.clickCancel(); - - soft.assertEquals(row0, page.grid().getRowsInfo().get(0), "Row is unchanged"); - soft.assertTrue(!page.isSaveButtonEnabled(), "Save button is not enabled"); + @Test(description = "DMN-0") + public void openDomainPage() { + SoftAssert soft = new SoftAssert(); + DomainPage page = new DomainPage(driver); - soft.assertAll(); - } + soft.assertTrue(page.isLoaded(), "Check that the page is loaded"); + DomainGrid grid = page.grid(); + DomainRow row0 = grid.getRowsInfo().get(0); + grid.doubleClickRow(0); - @Test(description = "DMN-10") - public void editDomain(){ + DomainPopup popup = new DomainPopup(driver); - SoftAssert soft = new SoftAssert(); - DomainPage page = new DomainPage(driver); + soft.assertTrue(popup.isLoaded(), "Domain popup is loaded"); - soft.assertTrue(page.isLoaded(), "Check that the page is loaded"); - DomainGrid grid = page.grid(); - DomainRow row0 = grid.getRowsInfo().get(0); - grid.doubleClickRow(0); + soft.assertTrue(!popup.isDomainCodeInputEnabled(), "On double click Domain Code input is disabled"); + soft.assertTrue(!popup.isSMLDomainInputEnabled(), "On double click SML Domain input is disabled"); - DomainPopup popup = new DomainPopup(driver); + popup.clickCancel(); - soft.assertTrue(popup.isLoaded(), "Domain popup is loaded"); + soft.assertEquals(row0, page.grid().getRowsInfo().get(0), "Row is unchanged"); + soft.assertTrue(!page.isSaveButtonEnabled(), "Save button is not enabled"); - soft.assertTrue(!popup.isDomainCodeInputEnabled(), "On double click Domain Code input is disabled"); - soft.assertTrue(!popup.isSMLDomainInputEnabled(), "On double click SML Domain input is disabled"); + soft.assertAll(); + } - String rndString = Generator.randomAlphaNumeric(10); - popup.fillSMLSMPIdInput(rndString); - popup.clickCancel(); + @Test(description = "DMN-10") + public void editDomain() { - soft.assertEquals(row0, page.grid().getRowsInfo().get(0), "Row 0 is not changed"); + SoftAssert soft = new SoftAssert(); + DomainPage page = new DomainPage(driver); - page.grid().doubleClickRow(0); - popup = new DomainPopup(driver); - popup.fillSMLSMPIdInput(rndString); - popup.clickOK(); + soft.assertTrue(page.isLoaded(), "Check that the page is loaded"); + DomainGrid grid = page.grid(); + DomainRow row0 = grid.getRowsInfo().get(0); + grid.doubleClickRow(0); - soft.assertTrue(page.isSaveButtonEnabled(), "Save button is enabled"); - soft.assertNotEquals(row0, page.grid().getRowsInfo().get(0), "Row 0 is changed"); + DomainPopup popup = new DomainPopup(driver); - page.clickSave().confirm(); + soft.assertTrue(popup.isLoaded(), "Domain popup is loaded"); - DomainRow newRow0 = page.grid().getRowsInfo().get(0); - soft.assertNotEquals(row0, newRow0, "Row 0 is changed after save"); - soft.assertEquals(newRow0.getSmlSmpID(), rndString, "SML SMP ID is changed to the desired string"); + soft.assertTrue(!popup.isDomainCodeInputEnabled(), "On double click Domain Code input is disabled"); + soft.assertTrue(!popup.isSMLDomainInputEnabled(), "On double click SML Domain input is disabled"); - soft.assertEquals(page.alertArea.getAlertMessage().getMessage(), SMPMessages.MSG_18, "Proper message displayed"); + String rndString = Generator.randomAlphaNumeric(10); + popup.fillSMLSMPIdInput(rndString); + popup.clickCancel(); - soft.assertAll(); - } + soft.assertEquals(row0, page.grid().getRowsInfo().get(0), "Row 0 is not changed"); + page.grid().doubleClickRow(0); + popup = new DomainPopup(driver); + popup.fillSMLSMPIdInput(rndString); + popup.clickOK(); - @Test(description = "DMN-20") - public void newDomain(){ - SoftAssert soft = new SoftAssert(); - DomainPage page = new DomainPage(driver); + soft.assertTrue(page.isSaveButtonEnabled(), "Save button is enabled"); + soft.assertNotEquals(row0, page.grid().getRowsInfo().get(0), "Row 0 is changed"); - soft.assertTrue(page.isLoaded(), "Check that the page is loaded"); + page.clickSave().confirm(); - DomainPopup popup = page.clickNew(); - soft.assertTrue(popup.isLoaded(), "Domain popup is loaded"); + DomainRow newRow0 = page.grid().getRowsInfo().get(0); + soft.assertNotEquals(row0, newRow0, "Row 0 is changed after save"); + soft.assertEquals(newRow0.getSmlSmpID(), rndString, "SML SMP ID is changed to the desired string"); - 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"); + soft.assertEquals(page.alertArea.getAlertMessage().getMessage(), SMPMessages.MSG_18, "Proper message displayed"); - String rndString = Generator.randomAlphaNumeric(10); + soft.assertAll(); + } - popup.fillDataForNewDomain(rndString, rndString, rndString, rndString); - popup.clickCancel(); + @Test(description = "DMN-20") + public void newDomain() { + SoftAssert soft = new SoftAssert(); + DomainPage page = new DomainPage(driver); - soft.assertTrue(!page.isSaveButtonEnabled(), "Save button is NOT enabled"); + soft.assertTrue(page.isLoaded(), "Check that the page is loaded"); - popup = page.clickNew(); - popup.fillDataForNewDomain(rndString, rndString, rndString, rndString); - popup.clickOK(); + DomainPopup popup = page.clickNew(); + soft.assertTrue(popup.isLoaded(), "Domain popup is loaded"); - soft.assertTrue(page.isSaveButtonEnabled(), "Save button is enabled"); + 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"); - page.clickSave().confirm(); + String rndString = Generator.randomAlphaNumeric(10); - soft.assertTrue(page.alertArea.getAlertMessage().getMessage().equalsIgnoreCase(SMPMessages.MSG_18), - "Success message is as expected"); - List<DomainRow> rows = page.grid().getRowsInfo(); - while (page.pagination.hasNextPage()){ - page.pagination.goToNextPage(); - rows.addAll(page.grid().getRowsInfo()); - } + popup.fillDataForNewDomain(rndString, rndString, rndString, rndString); + popup.clickCancel(); - boolean found = false; - for (DomainRow row : rows) { - if(row.getDomainCode().equalsIgnoreCase(rndString)){ - found = true; - break; - } - } + soft.assertTrue(!page.isSaveButtonEnabled(), "Save button is NOT enabled"); - soft.assertTrue(found, "Found new domain in the list of domains"); + popup = page.clickNew(); + popup.fillDataForNewDomain(rndString, rndString, rndString, rndString); + popup.clickOK(); - soft.assertAll(); - } + soft.assertTrue(page.isSaveButtonEnabled(), "Save button is enabled"); - @Test(description = "DMN-30") - public void cancelNewDomainCreation(){ - SoftAssert soft = new SoftAssert(); - DomainPage page = new DomainPage(driver); + page.clickSave().confirm(); - soft.assertTrue(page.isLoaded(), "Check that the page is loaded"); + soft.assertTrue(page.alertArea.getAlertMessage().getMessage().equalsIgnoreCase(SMPMessages.MSG_18), + "Success message is as expected"); - DomainPopup popup = page.clickNew(); - soft.assertTrue(popup.isLoaded(), "Domain popup is loaded"); + List<DomainRow> rows = page.grid().getRowsInfo(); + while (page.pagination.hasNextPage()) { + page.pagination.goToNextPage(); + rows.addAll(page.grid().getRowsInfo()); + } - 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"); + boolean found = false; + for (DomainRow row : rows) { + if (row.getDomainCode().equalsIgnoreCase(rndString)) { + found = true; + break; + } + } - String rndString = Generator.randomAlphaNumeric(10); + soft.assertTrue(found, "Found new domain in the list of domains"); + soft.assertAll(); + } - popup.fillDataForNewDomain(rndString, rndString, rndString, rndString); - popup.clickOK(); + @Test(description = "DMN-30") + public void cancelNewDomainCreation() { + SoftAssert soft = new SoftAssert(); + DomainPage page = new DomainPage(driver); - soft.assertTrue(page.isSaveButtonEnabled(), "Save button is enabled"); + soft.assertTrue(page.isLoaded(), "Check that the page is loaded"); - page.clickCancel().confirm(); - new ConfirmationDialog(driver).confirm(); + DomainPopup popup = page.clickNew(); + soft.assertTrue(popup.isLoaded(), "Domain popup is loaded"); - List<DomainRow> rows = page.grid().getRowsInfo(); - while (page.pagination.hasNextPage()){ - page.pagination.goToNextPage(); - rows.addAll(page.grid().getRowsInfo()); - } + 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"); - boolean found = false; - for (DomainRow row : rows) { - if(row.getDomainCode().equalsIgnoreCase(rndString)){ - found = true; - break; - } - } + String rndString = Generator.randomAlphaNumeric(10); - soft.assertTrue(!found, "New domain NOT in the list of domains"); - soft.assertAll(); - } + popup.fillDataForNewDomain(rndString, rndString, rndString, rndString); + popup.clickOK(); - @Test(description = "DMN-40") - public void deleteDomain(){ - String rndStr = Generator.randomAlphaNumeric(10); - SMPRestClient.createDomain(rndStr); + soft.assertTrue(page.isSaveButtonEnabled(), "Save button is enabled"); - SoftAssert soft = new SoftAssert(); - DomainPage page = new DomainPage(driver); + page.clickCancel().confirm(); + new ConfirmationDialog(driver).confirm(); - page.refreshPage(); + List<DomainRow> rows = page.grid().getRowsInfo(); + while (page.pagination.hasNextPage()) { + page.pagination.goToNextPage(); + rows.addAll(page.grid().getRowsInfo()); + } - soft.assertTrue(page.isLoaded(), "Check that the page is loaded"); - soft.assertTrue(!page.isDeleteButtonEnabled(), "Delete button is not enabled"); + boolean found = false; + for (DomainRow row : rows) { + if (row.getDomainCode().equalsIgnoreCase(rndString)) { + found = true; + break; + } + } - int index = scrollToDomain(rndStr); + soft.assertTrue(!found, "New domain NOT in the list of domains"); - page.grid().selectRow(index); + soft.assertAll(); + } - soft.assertTrue(page.isDeleteButtonEnabled(), "Delete button is enabled after row selected"); + @Test(description = "DMN-40") + public void deleteDomain() { + String rndStr = Generator.randomAlphaNumeric(10); + SMPRestClient.createDomain(rndStr); - page.clickDelete(); - soft.assertTrue(!page.isDeleteButtonEnabled(), "Delete button is not enabled (2)"); - soft.assertTrue(page.isCancelButtonEnabled(), "Cancel button is enabled"); - soft.assertTrue(page.isSaveButtonEnabled(), "Save button is enabled"); + SoftAssert soft = new SoftAssert(); + DomainPage page = new DomainPage(driver); - page.clickCancel().confirm(); - new ConfirmationDialog(driver).confirm(); + page.refreshPage(); - soft.assertTrue(isDomainStillPresent(rndStr), "Row is still present"); + soft.assertTrue(page.isLoaded(), "Check that the page is loaded"); + soft.assertTrue(!page.isDeleteButtonEnabled(), "Delete button is not enabled"); - index = scrollToDomain(rndStr); - page.grid().selectRow(index); - page.clickDelete(); - page.clickSave().confirm(); - - soft.assertTrue(!isDomainStillPresent(rndStr), "Row is still NOT present after delete"); - - - soft.assertAll(); - } - - @Test(description = "DMN-50") - public void deleteDomainWithSG(){ - - String domainName = Generator.randomAlphaNumeric(10); - String pi = Generator.randomAlphaNumeric(10); - String ps = Generator.randomAlphaNumeric(10); - - String expectedErrorMess = String.format("Delete validation error Could not delete domains used by Service groups! Domain: %s (%s ) uses by:1 SG.", domainName, domainName); - - SMPRestClient.createDomain(domainName); - SMPRestClient.createServiceGroup(pi, ps, new ArrayList<>(Arrays.asList("smp")),new ArrayList<>(Arrays.asList(domainName))); - - SoftAssert soft = new SoftAssert(); - - 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"); - - page.clickDelete(); - AlertMessage message = page.alertArea.getAlertMessage(); - soft.assertTrue(message.isError(), "Page shows error message when deleting domain with SG"); - soft.assertTrue(message.getMessage().equalsIgnoreCase(expectedErrorMess), "Desired message appears"); - - SMPRestClient.deleteSG(pi); - SMPRestClient.deleteDomain(domainName); - - 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; - } + int index = scrollToDomain(rndStr); + page.grid().selectRow(index); + soft.assertTrue(page.isDeleteButtonEnabled(), "Delete button is enabled after row selected"); + page.clickDelete(); + soft.assertTrue(!page.isDeleteButtonEnabled(), "Delete button is not enabled (2)"); + soft.assertTrue(page.isCancelButtonEnabled(), "Cancel button is enabled"); + soft.assertTrue(page.isSaveButtonEnabled(), "Save button is enabled"); + + page.clickCancel().confirm(); + new ConfirmationDialog(driver).confirm(); + + soft.assertTrue(isDomainStillPresent(rndStr), "Row is still present"); + + index = scrollToDomain(rndStr); + page.grid().selectRow(index); + page.clickDelete(); + page.clickSave().confirm(); + + soft.assertTrue(!isDomainStillPresent(rndStr), "Row is still NOT present after delete"); + + + soft.assertAll(); + } + + @Test(description = "DMN-50") + public void deleteDomainWithSG() { + + String domainName = Generator.randomAlphaNumeric(10); + String pi = Generator.randomAlphaNumeric(10); + String ps = Generator.randomAlphaNumeric(10); + + String expectedErrorMess = String.format("Delete validation error Could not delete domains used by Service groups! Domain: %s (%s ) uses by:1 SG.", domainName, domainName); + + SMPRestClient.createDomain(domainName); + SMPRestClient.createServiceGroup(pi, ps, new ArrayList<>(Arrays.asList("smp")), new ArrayList<>(Arrays.asList(domainName))); + + SoftAssert soft = new SoftAssert(); + + 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"); + + page.clickDelete(); + AlertMessage message = page.alertArea.getAlertMessage(); + soft.assertTrue(message.isError(), "Page shows error message when deleting domain with SG"); + soft.assertTrue(message.getMessage().equalsIgnoreCase(expectedErrorMess), "Desired message appears"); + + SMPRestClient.deleteSG(pi); + SMPRestClient.deleteDomain(domainName); + + soft.assertAll(); + } + + @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"); + DomainGrid grid = page.grid(); + DomainRow row0 = grid.getRowsInfo().get(0); + 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"); + String rndString = Generator.randomAlphaNumeric(10); + popup.fillDataForNewDomain(row0.getDomainCode(), 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 disable"); + popup.clickCancel(); + soft.assertFalse(page.isSaveButtonEnabled(), "Save button is enabled"); + 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 = scrollToSmlDomain(""); + if (index >= 0) { + try { + page.grid().selectRow(index); + page.clickDelete(); + page.clickSave().confirm(); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + 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 disable"); + 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 = 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(); + } + + 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; + } + + private int scrollToSmlDomain(String smlDomain) { + try { + 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).getSmlDomain().equalsIgnoreCase(smlDomain)) { + return i; + } + } + if (page.pagination.hasNextPage()) { + page.pagination.goToNextPage(); + } else { + end = true; + } + } + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + return -1; + } } diff --git a/smp-ui-tests/src/test/java/ui/UsersPgTest.java b/smp-ui-tests/src/test/java/ui/UsersPgTest.java index e196b1a2ca204176a98f834a030109e580f1be42..a23996f72b3e88fcdc34ddc075a9c3af95b6e9b2 100644 --- a/smp-ui-tests/src/test/java/ui/UsersPgTest.java +++ b/smp-ui-tests/src/test/java/ui/UsersPgTest.java @@ -22,496 +22,557 @@ 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-10") + public void newUser() { + String username = Generator.randomAlphaNumeric(10); + String validPass = "QW!@qw12"; - SoftAssert soft = new SoftAssert(); + SoftAssert soft = new SoftAssert(); - UsersPage usersPage = new UsersPage(driver); + UsersPage usersPage = new UsersPage(driver); -// soft.assertTrue(usersPage.isNewButtonEnabled(), "New button should be enabled"); + 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"); + UserPopup popup = usersPage.clickNew(); + soft.assertTrue(!popup.isOKButtonActive(), "OK button should be disabled until valid data is filled in the popup"); - popup.rolesSelect.selectOptionWithText("SYSTEM_ADMIN"); + popup.rolesSelect.selectOptionWithText("SYSTEM_ADMIN"); - popup.clickUserDetailsToggle(); + popup.clickUserDetailsToggle(); - popup.fillDetailsForm(username, validPass, validPass); - popup.clickOK(); + popup.fillDetailsForm(username, validPass, validPass); + popup.clickOK(); - soft.assertTrue(usersPage.isSaveButtonEnabled(), "Save button is enabled"); - soft.assertTrue(usersPage.isCancelButtonEnabled(), "Cancel button is enabled"); + soft.assertTrue(usersPage.isSaveButtonEnabled(), "Save button is enabled"); + soft.assertTrue(usersPage.isCancelButtonEnabled(), "Cancel button is enabled"); - usersPage.clickSave().confirm(); + usersPage.clickSave().confirm(); - soft.assertTrue(!usersPage.alertArea.getAlertMessage().isError(), "Message listed is success"); - soft.assertTrue(usersPage.alertArea.getAlertMessage().getMessage().equalsIgnoreCase(SMPMessages.MSG_18), "Message listed is as expected"); + soft.assertTrue(!usersPage.alertArea.getAlertMessage().isError(), "Message listed is success"); + soft.assertTrue(usersPage.alertArea.getAlertMessage().getMessage().equalsIgnoreCase(SMPMessages.MSG_18), "Message listed is as expected"); - soft.assertTrue(isUserListed(username), "User present in the page"); + soft.assertTrue(isUserListed(username), "User present in the page"); - soft.assertAll(); - } + soft.assertAll(); + } - @Test(description = "USR-20") - public void usernameValidation() { - String username = Generator.randomAlphaNumeric(10); - String validPass = "QW!@qw12"; + @Test(description = "USR-20") + public void usernameValidation() { + String username = Generator.randomAlphaNumeric(10); + String validPass = "QW!@qw12"; - SoftAssert soft = new SoftAssert(); + 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"); + 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.rolesSelect.selectOptionWithText("SMP_ADMIN"); + popup.rolesSelect.selectOptionWithText("SMP_ADMIN"); - popup.clickUserDetailsToggle(); + popup.clickUserDetailsToggle(); - 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.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)"); - soft.assertAll(); - } + soft.assertAll(); + } - @SuppressWarnings("SpellCheckingInspection") - @Test(description = "USR-30") - public void passwordValidation() { + @SuppressWarnings("SpellCheckingInspection") + @Test(description = "USR-30") + public void passwordValidation() { - ArrayList<String> passToValidate = new ArrayList<>(Arrays.asList("qwqw", - "QWERQWERQWERQWERQWERQWERQWERQWE33", + 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); - for (String pass : passToValidate) { + for (String pass : passToValidate) { // usersPage.refreshPage(); - usersPage.clickVoidSpace(); + usersPage.clickVoidSpace(); - UserPopup popup = usersPage.clickNew(); - popup.rolesSelect.selectOptionWithText("SMP_ADMIN"); - popup.clickUserDetailsToggle(); + UserPopup popup = usersPage.clickNew(); + popup.rolesSelect.selectOptionWithText("SMP_ADMIN"); + popup.clickUserDetailsToggle(); - 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)); - } + 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.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(); - log.info("created user " + username); - UsersPage page = new UsersPage(driver); - page.refreshPage(); + log.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 = scrollToUser(username); - page.grid().selectRow(index); - soft.assertTrue(page.isDeleteButtonEnabled(), "Delete button is enabled after row select"); + int index = 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(); - soft.assertTrue(isUserListed(username), "After canceling delete user is still listed"); + page.clickCancel().confirm(); + new ConfirmationDialog(driver).confirm(); + soft.assertTrue(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 = 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)"); - 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(!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(!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 = scrollToUserWithRole("SYSTEM_ADMIN"); + UsersPage page = new UsersPage(driver); + int index = 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 = scrollToUserWithRole("SMP_ADMIN"); + UsersPage page = new UsersPage(driver); + int index = 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 = scrollToUser(username); - page.grid().selectRow(index); - soft.assertTrue(page.isDeleteButtonEnabled(), "Delete button is enabled after row select"); + int index = 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(); - log.info("Created username " + username); + log.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 = scrollToUser(username); - page.grid().selectRow(index); - soft.assertTrue(page.isDeleteButtonEnabled(), "Delete button is enabled after row select"); + int index = 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(); - soft.assertTrue(isUserListed(username), "After canceling delete user is still listed"); + page.clickCancel().confirm(); + new ConfirmationDialog(driver).confirm(); + soft.assertTrue(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 = scrollToUser(username); + 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(!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(!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"); - log.info("Created username" + username); - SoftAssert soft = new SoftAssert(); + String username = Generator.randomAlphaNumeric(10); + SMPRestClient.createUser(username, "SERVICE_GROUP_ADMIN"); + log.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 = scrollToUser(username); - page.grid().selectRow(index); - soft.assertTrue(page.isDeleteButtonEnabled(), "Delete button is enabled after row select"); + int index = 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(); - page.waitForRowsToLoad(); - soft.assertTrue(isUserListed(username), "After canceling delete user is still listed"); + page.clickCancel().confirm(); + new ConfirmationDialog(driver).confirm(); + page.waitForRowsToLoad(); + soft.assertTrue(isUserListed(username), "After canceling delete user is still listed"); - index = scrollToUser(username); - page.grid().selectRow(index); + index = 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(!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(!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))) + ); - log.info("Created username " + username); - log.info("Created service group " + pi); + log.info("Created username " + username); + log.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 = scrollToUser(username); - page.grid().selectRow(index); - soft.assertTrue(page.isDeleteButtonEnabled(), "Delete button is enabled after row select"); + int index = 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))) + ); - log.info("Created username "+ username); + log.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 = scrollToUser(username); - page.grid().selectRow(index); - soft.assertTrue(page.isDeleteButtonEnabled(), "Delete button is enabled after row select"); + int index = 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(); - } + soft.assertAll(); + } + @Test(description = "USR-121") + public void duplicateUserCreation() { + SoftAssert soft = new SoftAssert(); + String validPass = "QW!@qw12"; + String errorMsg = "×\n" + "The operation 'update' not completed successfully. Unexpected technical error occurred."; + UsersPage page = new UsersPage(driver); + List<UserRowInfo> rows = page.grid().getRows(); + UserRowInfo userRowInfo = null; + for (UserRowInfo row : rows) { + if (!row.getUsername().equalsIgnoreCase("smp")) { + userRowInfo = row; + break; + } + } + if (null != userRowInfo) { + String userName = userRowInfo.getUsername(); + soft.assertTrue(page.isNewButtonEnabled(), "New button should be enabled"); - 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; - } + 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"); + soft.assertTrue(page.isCancelButtonEnabled(), "Cancel button is enabled"); + + page.clickSave().confirm(); + soft.assertEquals(page.getDuplicateUserErrorMsg(), errorMsg, "The user page is not containing the expeced error message"); + soft.assertAll(); + } else { + soft.fail("unable to retrieve existing user details"); + } + } + + @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.assertEquals(popup.getPasswordUnmatchingMsg(),errorMsg,"confirmation input does not contain the message 'Passwords do not match' ."); + soft.assertTrue(!popup.isOKButtonActive(), "OK button is enabled before valid data is filled in the popup(2)"); + 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; + } }