From d83d4cac999032be278d53609e254019089a22fd Mon Sep 17 00:00:00 2001 From: monhaso <sonali.mohanty@ext.ec.europa.eu> Date: Fri, 9 Sep 2022 00:12:06 +0200 Subject: [PATCH] New Test cases has been added. --- .../main/java/pages/domain/DomainPopup.java | 86 +++++++--- .../src/main/java/pages/users/UserPopup.java | 63 ++++++- .../src/main/java/pages/users/UsersGrid.java | 5 + .../src/main/java/pages/users/UsersPage.java | 48 +++++- .../main/java/utils/enums/SMPMessages.java | 2 + .../src/test/java/ui/DomainPgTest.java | 46 +++++ .../src/test/java/ui/LoginPgTest.java | 53 +++++- .../src/test/java/ui/UsersPgTest.java | 158 ++++++++++++++++-- 8 files changed, 405 insertions(+), 56 deletions(-) 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 de3b5367c..c659df403 100644 --- a/smp-ui-tests/src/main/java/pages/domain/DomainPopup.java +++ b/smp-ui-tests/src/main/java/pages/domain/DomainPopup.java @@ -13,50 +13,60 @@ import utils.PROPERTIES; public class DomainPopup extends PageComponent { public DomainPopup(WebDriver driver) { super(driver); - PageFactory.initElements( new AjaxElementLocatorFactory(driver, PROPERTIES.TIMEOUT), this); + PageFactory.initElements(new AjaxElementLocatorFactory(driver, PROPERTIES.TIMEOUT), this); signatureCertSelect = new GenericSelect(driver, signatureCertSelectContainer); smlClientAliasSelect = new GenericSelect(driver, smlClientAliasSelectContainer); } - + @FindBy(css = "domain-details-dialog button:nth-child(1)") WebElement okBtn; - + @FindBy(css = "domain-details-dialog button:nth-child(2)") WebElement cancelBtn; - + @FindBy(css = "#domainCode_id") WebElement domainCodeInput; - + @FindBy(css = "#smldomain_id") WebElement smlDomainInput; - + @FindBy(css = "#signatureKeyAlias_id") WebElement signatureCertSelectContainer; GenericSelect signatureCertSelect; @FindBy(css = "#smlSMPId_id") WebElement smlSMPIdInput; - + + @FindBy(css = "span.mat-slide-toggle-bar") + WebElement userClientCertHeaderToggle; + + @FindBy(css = "#smlClientCertHeaderAuth_id-input") + WebElement userClientCertHeaderToggleInput; + + /*@FindBy(css = "div.mat-form-field-infix > div.ng-star-inserted") + WebElement invalidSmlSmpIdErrorMsg;*/ + // @FindBy(css = "#smlClientHeader_id") // WebElement smlClientHeaderInput; - + @FindBy(css = "#smlClientKeyAlias_id") WebElement smlClientAliasSelectContainer; GenericSelect smlClientAliasSelect; - public void clickOK(){ + public void clickOK() { waitForElementToBeClickable(okBtn).click(); waitForElementToBeGone(okBtn); } + public void clickCancel() { waitForElementToBeClickable(cancelBtn).click(); waitForElementToBeGone(cancelBtn); } - + public boolean isLoaded() { log.info("checking if domain popup is properly loaded"); return isVisible(okBtn) @@ -70,16 +80,20 @@ public class DomainPopup extends PageComponent { public boolean isDomainCodeInputEnabled() { log.info("domain code input"); - return isEnabled(domainCodeInput);} - public boolean isSMLDomainInputEnabled() {return isEnabled(smlDomainInput);} + return isEnabled(domainCodeInput); + } - public void fillSMLSMPIdInput(String text){ + public boolean isSMLDomainInputEnabled() { + return isEnabled(smlDomainInput); + } + + public void fillSMLSMPIdInput(String text) { log.info("fill sml smp input with " + text); waitForXMillis(500); clearAndFillInput(smlSMPIdInput, text); } - public void fillDataForNewDomain(String domainCode, String smlDomain, String smlSmpID, String clientCertHeader){ + public void fillDataForNewDomain(String domainCode, String smlDomain, String smlSmpID, String clientCertHeader) { log.info("filling data for new domain"); clearAndFillInput(domainCodeInput, domainCode); clearAndFillInput(smlDomainInput, smlDomain); @@ -88,31 +102,34 @@ public class DomainPopup extends PageComponent { smlClientAliasSelect.selectFirstOption(); } - public String getDuplicateDomainErrorMsgText() - { + public String getDuplicateDomainErrorMsgText() { WebElement duplicateDomainErrorMsg = driver.findElement(By.cssSelector(".mat-form-field-infix > div.ng-star-inserted")); return duplicateDomainErrorMsg.getText(); + } - + public String getSmlSmpIdValidationMsg() { + WebElement invalidSmlSmpIdErrorMsg = driver.findElement(By.cssSelector("div.mat-form-field-infix > div.ng-star-inserted")); + try { + waitForElementToBeVisible(invalidSmlSmpIdErrorMsg); + return invalidSmlSmpIdErrorMsg.getText(); + } catch (Exception e) { + } + return null; } - public boolean isEnableOkButton() - { + + public boolean isEnableOkButton() { try { return okBtn.isEnabled(); - } - catch(Exception e) - { + } catch (Exception e) { e.printStackTrace(); return false; } } - public boolean isEnableCancelButton() - { + + public boolean isEnableCancelButton() { try { return cancelBtn.isEnabled(); - } - catch(Exception e) - { + } catch (Exception e) { e.printStackTrace(); return false; } @@ -129,5 +146,20 @@ public class DomainPopup extends PageComponent { clearAndFillInput(smlDomainInput, SMLDomain); } + public void clickUserClientCertHeaderToggle() { + waitForElementToBeClickable(userClientCertHeaderToggle); + waitForXMillis(500); + userClientCertHeaderToggle.click(); + waitForXMillis(500); + + } + + public String checkedUserClientCertHeaderToggl() { + + return userClientCertHeaderToggleInput.getAttribute("aria-checked"); + + + } + } 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 0c9780333..4049bb5e9 100644 --- a/smp-ui-tests/src/main/java/pages/users/UserPopup.java +++ b/smp-ui-tests/src/main/java/pages/users/UserPopup.java @@ -65,6 +65,23 @@ public class UserPopup extends PageComponent { @FindBy(css = "#role_id") WebElement rolesSelectContainer; + + @FindBy(xpath = "//span[text()='Regenerate access token']") + WebElement regenarateAccessTokenBtn; + + @FindBy(css = "label > button.mat-focus-indicator.mat-flat-button.mat-button-base.mat-primary") + WebElement importBtn; + + @FindBy(xpath = "//span[text()='Show details']") + WebElement showDetailsBtn; + + @FindBy(xpath = "//span[text()='Clear']") + WebElement clearBtn; + + @FindBy(css = ".has-error.ng-star-inserted") + WebElement emailValidationError; + + public UserPopup(WebDriver driver) { super(driver); PageFactory.initElements(driver, this); @@ -91,7 +108,7 @@ public class UserPopup extends PageComponent { return isEnabled(okBtn); } - public boolean isChangePasswordActive() { + public boolean isChangedPasswordActive() { return isEnabled(passChangedClose); } @@ -135,12 +152,9 @@ public class UserPopup extends PageComponent { waitForElementToBeEnabled(userNameInput); } - //public void fillDetailsForm(String username, String pass, String confirmation) - public void fillDetailsForm(String username) { + public void fillDetailsForm(String username,String email) { clearAndFillInput(userNameInput, username); - //clearAndFillInput(passwordInput, pass); - //clearAndFillInput(confirmationInput, confirmation); - emailInput.click(); + clearAndFillInput(emailInput,email); } public void clickSetOrChangePassword() { @@ -201,6 +215,15 @@ public class UserPopup extends PageComponent { return null; } + public String userEmailValidationGetErrMsg(){ + try { + waitForElementToBeVisible(emailValidationError); + return emailValidationError.getText(); + } catch (Exception e) { + } + return null; + } + public String getPassValidationError() { try { waitForElementToBeVisible(passValidationError); @@ -234,4 +257,32 @@ public class UserPopup extends PageComponent { return passMatchValidationError.getText(); //".mat-form-field-infix > div.has-error" } + + public boolean isUsernameFieldEnabled(){ + return isEnabled(userNameInput); + } + + public boolean isEmailFieldEnabled(){ + return isEnabled(emailInput); + } + public boolean isRoleSelectFieldEnabled(){ + return isEnabled(rolesSelectContainer); + } + public boolean isSetOrChangePassOptionBtnEnabled(){ + return isEnabled(changePassword); + } + + public boolean isRegenerateAccesstokenBtnEnabled(){ + return isEnabled(regenarateAccessTokenBtn); + } + public boolean isImportButtonActive(){ + return isEnabled(importBtn); + } + public boolean isShowDetailsButtonActive(){ + return isEnabled(showDetailsBtn); + } + public boolean isClearButtonActive(){ + return isEnabled(clearBtn); + } + } 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 f83fc1d0d..6ed41935a 100644 --- a/smp-ui-tests/src/main/java/pages/users/UsersGrid.java +++ b/smp-ui-tests/src/main/java/pages/users/UsersGrid.java @@ -90,6 +90,11 @@ public class UsersGrid extends BasicGrid { } while (pagination.hasNextPage()); return -1; } + public boolean userHasCertificate(int index){ + List<UserRowInfo> rows = getRows(); + int i=index; + return rows.get(i).getCertificate().isEmpty(); + } } 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 04b95c528..355894c43 100644 --- a/smp-ui-tests/src/main/java/pages/users/UsersPage.java +++ b/smp-ui-tests/src/main/java/pages/users/UsersPage.java @@ -24,6 +24,8 @@ public class UsersPage extends SMPPage { private WebElement editBtn; @FindBy(id = "deleteButton") private WebElement deleteBtn; + @FindBy(xpath = "//span[text()=' Edit truststore']") + private WebElement editTruststore; public UsersPage(WebDriver driver) { super(driver); @@ -51,6 +53,10 @@ public class UsersPage extends SMPPage { log.info("save button"); return isEnabled(saveBtn); } + public boolean isEditButtonEnabled() { + log.info("save button"); + return isEnabled(editBtn); + } public boolean isDeleteButtonEnabled() { waitForXMillis(200); @@ -106,7 +112,33 @@ public class UsersPage extends SMPPage { public boolean isNewButtonEnabled() { try { - return newBtn.isEnabled(); + return isEnabled(newBtn); + } catch (Exception e) { + e.printStackTrace(); + } + return false; + } + public boolean isEditTruststoreButtonEnabled(){ + try { + return isEnabled(editTruststore); + } catch (Exception e) { + e.printStackTrace(); + } + return false; + + } + public boolean isDeleteButtonVisibled(){ + try { + return isVisible(deleteBtn); + } catch (Exception e) { + e.printStackTrace(); + } + return false; + } + + public boolean isEditButtonVisibled(){ + try { + return isVisible(editBtn); } catch (Exception e) { e.printStackTrace(); } @@ -114,4 +146,18 @@ public class UsersPage extends SMPPage { } + public boolean isCancelButtonVisibled() { + + return isVisible(cancelBtn); + } + + public boolean isSaveButtonVisibled() { + + return isVisible(saveBtn); + } + + + + + } diff --git a/smp-ui-tests/src/main/java/utils/enums/SMPMessages.java b/smp-ui-tests/src/main/java/utils/enums/SMPMessages.java index b85f2fd8f..17e23c793 100644 --- a/smp-ui-tests/src/main/java/utils/enums/SMPMessages.java +++ b/smp-ui-tests/src/main/java/utils/enums/SMPMessages.java @@ -77,4 +77,6 @@ public class SMPMessages { public static final String KEYSTORE_IMPORTED_MSG = "Keystore %s imported!"; public static final String KEYSTORE_DELETION_MSG = "Certificate %s deleted!"; + public static final String SMLSMPID_VALIDATION_MESSAGE = "SML SMP ID should be up to 63 characters long, should only contain alphanumeric and hyphen characters, should not start with a digit nor a hyphen and should not end with a hyphen."; + public static final String USER_EMAIL_VALIDATION_MESSAGE ="Email is invalid!"; } diff --git a/smp-ui-tests/src/test/java/ui/DomainPgTest.java b/smp-ui-tests/src/test/java/ui/DomainPgTest.java index 301a131d4..9f9e87f04 100644 --- a/smp-ui-tests/src/test/java/ui/DomainPgTest.java +++ b/smp-ui-tests/src/test/java/ui/DomainPgTest.java @@ -435,5 +435,51 @@ public class DomainPgTest extends BaseTest { soft.assertAll(); } + @Test(description = "DMN-110") + public void mandatoryDomainIdFieldVerification() + { + SoftAssert soft = new SoftAssert(); + DomainPage page = new DomainPage(driver); + String randstring =Generator.randomAlphaNumeric(10); + soft.assertTrue(page.isLoaded(), "Check that the page is loaded"); + DomainPopup popup = page.clickNew(); + popup.fillDataForNewDomain("",randstring,randstring,randstring); + soft.assertTrue(!popup.isEnableOkButton(),"Ok button is not disabled after leave domain input empty"); + soft.assertAll(); + } + + @Test(description = "DMN-120") + public void verifyInvalidSMLSMPIDField(){ + SoftAssert soft = new SoftAssert(); + DomainPage page = new DomainPage(driver); + String randstring =Generator.randomAlphaNumeric(10); + ArrayList<String> smlsmpId = new ArrayList<>(Arrays.asList("abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnop", + "abc@k", + "abcd-", + "-abgxknvlk", + "1qwertyuvbnm")); + soft.assertTrue(page.isLoaded(), "Check that the page is loaded"); + DomainPopup popup = page.clickNew(); + for(String smlsmpid : smlsmpId) { + popup.fillDataForNewDomain(randstring, randstring, smlsmpid, randstring); + soft.assertTrue(!popup.isEnableOkButton(),"OK button is enable after sending the invalid smlsmpId"); + soft.assertEquals(popup.getSmlSmpIdValidationMsg(), SMPMessages.SMLSMPID_VALIDATION_MESSAGE,"Error message is not in list"); + + } + soft.assertAll(); + } + + @Test(description = "DMN-130") + public void clientCertHeaderToggleTest() + { + SoftAssert soft = new SoftAssert(); + DomainPage page = new DomainPage(driver); + soft.assertTrue(page.isLoaded(), "Check that the page is loaded"); + DomainPopup popup = page.clickNew(); + soft.assertEquals(popup.checkedUserClientCertHeaderToggl(),"false","The user toggle is on"); + popup.clickUserClientCertHeaderToggle(); + soft.assertEquals(popup.checkedUserClientCertHeaderToggl(),"true","The user toggle is off"); + soft.assertAll(); + } } diff --git a/smp-ui-tests/src/test/java/ui/LoginPgTest.java b/smp-ui-tests/src/test/java/ui/LoginPgTest.java index 732a86327..a0112ef70 100644 --- a/smp-ui-tests/src/test/java/ui/LoginPgTest.java +++ b/smp-ui-tests/src/test/java/ui/LoginPgTest.java @@ -10,6 +10,8 @@ import pages.password.PasswordChangepopup; import pages.service_groups.search.SearchPage; import pages.components.baseComponents.SMPPage; import pages.login.LoginPage; +import pages.users.UserPopup; +import pages.users.UsersPage; import utils.Generator; import utils.enums.SMPMessages; import utils.rest.SMPRestClient; @@ -255,23 +257,58 @@ public class LoginPgTest extends BaseTest { public void passwordChangeForLoggedUser() { SoftAssert soft = new SoftAssert(); - String username = Generator.randomAlphaNumeric(10); + String userName = Generator.randomAlphaNumeric(10); String validPass = "Aabcdefghijklm1@"; - SMPRestClient.createUser(username,"SYSTEM_ADMIN"); - logger.info("created user " + username); + String validPass1 = "Aabcdefghijklm1@2"; + SMPPage page = new SMPPage(driver); logger.info("Going to login page"); page.pageHeader.goToLogin(); - LoginPage loginPage = new LoginPage(driver); - SearchPage searchPage = loginPage.login(username, "QW!@qw12"); + LoginPage loginPage = new LoginPage(driver); + HashMap<String, String> user = testDataProvider.getUserWithRole("SYS_ADMIN"); + SearchPage searchPage = loginPage.login(user.get("username"), user.get("password")); soft.assertTrue(searchPage.pageHeader.sandwichMenu.isLoggedIn(), "User is logged in"); - soft.assertTrue(searchPage.isLoaded(), "Search page is loaded"); + logger.info("Going to login page"); + SMPRestClient.createUser(userName,"SMP_ADMIN"); + logger.info("created user " + userName); + page.sidebar.goToPage(UsersPage.class); + UsersPage usersPage = new UsersPage(driver); + int index = usersPage.grid().scrollToUser(userName); + String adminPass = "123456"; + usersPage.grid().selectRow(index); + UserPopup popup = usersPage.clickEdit(); + + try { + Thread.sleep(1000); + } catch (Exception e) { + e.printStackTrace(); + } + popup.clickSetOrChangePassword(); + popup.setOrChangePassword(adminPass, validPass, validPass); + popup.clickChangedPassword(); + popup.clickCloseAfterChangedPass(); + try { + Thread.sleep(1000); + } catch (Exception e) { + } + popup.clickOK(); + usersPage.pageHeader.sandwichMenu.logout(); + SearchPage searchpage = new SearchPage(driver); + logger.info("Going to login page"); + searchpage.pageHeader.goToLogin(); + /* page.pageHeader.goToLogin();*/ + LoginPage loginpage = new LoginPage(driver); + searchpage = loginpage.login(userName, "validPass"); + + soft.assertTrue(searchpage.pageHeader.sandwichMenu.isLoggedIn(), "User is logged in"); + soft.assertTrue(searchpage.isLoaded(), "Search page is loaded"); - PasswordChangepopup passDialog = searchPage.pageHeader.sandwichMenu.clickChangePasswordOption(); - passDialog.fillDataForLoggedUser("QW!@qw12",validPass,validPass); + PasswordChangepopup passDialog = searchpage.pageHeader.sandwichMenu.clickChangePasswordOption(); + passDialog.fillDataForLoggedUser(validPass,validPass1,validPass1); passDialog.clickChangedPassword(); + passDialog.clickClosePasswordDialog(); /*SearchPage page = passDialog.clickCloseAfterChangedPassForLoggedUser(); soft.assertEquals(page.getTitle(),"Search");*/ //passDialog.clickOK(); diff --git a/smp-ui-tests/src/test/java/ui/UsersPgTest.java b/smp-ui-tests/src/test/java/ui/UsersPgTest.java index e52d21f45..15f964c0f 100644 --- a/smp-ui-tests/src/test/java/ui/UsersPgTest.java +++ b/smp-ui-tests/src/test/java/ui/UsersPgTest.java @@ -42,10 +42,11 @@ public class UsersPgTest extends BaseTest { public void existingUserPasswordDialogView() { SoftAssert soft = new SoftAssert(); String username = Generator.randomAlphaNumeric(10); + String email = "system@gmail.com"; UsersPage usersPage = new UsersPage(driver); UserPopup popup = usersPage.clickNew(); soft.assertTrue(!popup.isOKButtonActive(), "OK button should be disabled until valid data is filled in the popup"); - popup.fillDetailsForm(username); + popup.fillDetailsForm(username,email); popup.rolesSelect.selectOptionWithText("SYSTEM_ADMIN"); popup.clickOK(); soft.assertTrue(usersPage.isSaveButtonEnabled(), "Save button is enabled"); @@ -91,6 +92,7 @@ public class UsersPgTest extends BaseTest { public void newUser() { String username = Generator.randomAlphaNumeric(10); String validPass = "Aabcdefghijklm1@"; + String email = "system@gmail.com"; SoftAssert soft = new SoftAssert(); @@ -100,7 +102,7 @@ public class UsersPgTest extends BaseTest { UserPopup popup = usersPage.clickNew(); soft.assertTrue(!popup.isOKButtonActive(), "OK button should be disabled until valid data is filled in the popup"); - popup.fillDetailsForm(username); + popup.fillDetailsForm(username,email); popup.rolesSelect.selectOptionWithText("SYSTEM_ADMIN"); popup.clickOK(); @@ -152,7 +154,7 @@ public class UsersPgTest extends BaseTest { UsersPage usersPage = new UsersPage(driver); UserPopup popup = usersPage.clickNew(); soft.assertTrue(!popup.isOKButtonActive(), "OK button should be disabled until valid data is filled in the popup"); - popup.fillDetailsForm("tst"); + popup.fillDetailsForm("tst","smp@gmail.com"); popup.rolesSelect.selectOptionWithText("SMP_ADMIN"); //popup.clickUserDetailsToggle(); @@ -160,11 +162,11 @@ public class UsersPgTest extends BaseTest { //popup.fillDetailsForm("tst"); soft.assertTrue(!popup.isOKButtonActive(), "OK button should be disabled until valid data is filled in the popup(2)"); soft.assertEquals(popup.getUsernameValidationError(), SMPMessages.USERNAME_VALIDATION_MESSAGE, "Validation error message is displayed(2)"); - popup.fillDetailsForm("#$^&*^%&$#@%@$#%$"); + popup.fillDetailsForm("#$^&*^%&$#@%@$#%$","system@gmail.com"); soft.assertTrue(!popup.isOKButtonActive(), "OK button should be disabled until valid data is filled in the popup(3)"); soft.assertEquals(popup.getUsernameValidationError(), SMPMessages.USERNAME_VALIDATION_MESSAGE, "Validation error message is displayed(3)"); //noinspection SpellCheckingInspection - popup.fillDetailsForm("QWERQWERQWERQWERQWERQWERQWERQWE33"); + popup.fillDetailsForm("QWERQWERQWERQWERQWERQWERQWERQWE33","system@gmail.com"); soft.assertTrue(!popup.isOKButtonActive(), "OK button should be disabled until valid data is filled in the popup(4)"); soft.assertEquals(popup.getUsernameValidationError(), SMPMessages.USERNAME_VALIDATION_MESSAGE, "Validation error message is displayed(4)"); @@ -176,6 +178,7 @@ public class UsersPgTest extends BaseTest { @Test(description = "USR-30") public void passwordValidation() { String username = Generator.randomAlphaNumeric(10); + String email = "system@gmail.com"; ArrayList<String> passToValidate = new ArrayList<>(Arrays.asList("qwqw", "QWERQWERQWERQWERQWERQWERQWERQWE33", // "QWERTYUIOP", @@ -191,7 +194,7 @@ public class UsersPgTest extends BaseTest { usersPage.clickVoidSpace(); UserPopup popup = usersPage.clickNew(); - popup.fillDetailsForm(username); + popup.fillDetailsForm(username,email); popup.rolesSelect.selectOptionWithText("SMP_ADMIN"); popup.clickOK(); usersPage.clickSave().confirm(); @@ -208,7 +211,7 @@ public class UsersPgTest extends BaseTest { popup.clickClosePasswordDialog(); popup.clickCancel(); - soft.assertTrue(!popup.isChangePasswordActive(), String.format("ChangePassword button should be disabled until valid data is filled in the popup - %s ", pass)); + soft.assertTrue(!popup.isChangedPasswordActive(), String.format("ChangePassword button should be disabled until valid data is filled in the popup - %s ", pass)); //soft.assertEquals(popup.getPassValidationError(), SMPMessages.PASS_POLICY_MESSAGE, String.format("Pass policy message is displayed - %s", pass)); } @@ -317,6 +320,17 @@ public class UsersPgTest extends BaseTest { 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\""); + popup.clickCancel(); + int index2 = page.grid().scrollToUserWithRole("SERVICE_GROUP_ADMIN"); + + page.grid().selectRow(index2); + popup = page.clickEdit(); + + 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(); } @@ -515,18 +529,19 @@ public class UsersPgTest extends BaseTest { soft.assertAll(); } - @Test(description = "USR-121") + @Test(description = "USR-130") public void duplicateUserCreation() { SoftAssert soft = new SoftAssert(); String userName = Generator.randomAlphaNumeric(10); String validPass = "Aabcdefghijklm1@"; + String email = "system@gmail.com"; UsersPage page = new UsersPage(driver); soft.assertTrue(page.isNewButtonEnabled(), "New button should be enabled"); UserPopup popup = page.clickNew(); soft.assertTrue(!popup.isOKButtonActive(), "OK button is enable before valid data is filled in the popup"); - popup.fillDetailsForm(userName); + popup.fillDetailsForm(userName,email); popup.rolesSelect.selectOptionWithText("SYSTEM_ADMIN"); popup.clickOK(); soft.assertTrue(page.isSaveButtonEnabled(), "Save button is enabled"); @@ -549,7 +564,7 @@ public class UsersPgTest extends BaseTest { page.clickNew(); - popup.fillDetailsForm(userName); + popup.fillDetailsForm(userName,email); popup.rolesSelect.selectOptionWithText("SYSTEM_ADMIN"); // popup.clickUserDetailsToggle(); //popup.fillDetailsForm(userName); @@ -560,18 +575,19 @@ public class UsersPgTest extends BaseTest { soft.assertAll(); } - @Test(description = "USR-122") + @Test(description = "USR-140") public void verifyPasswordDoNotMatch() { String username = Generator.randomAlphaNumeric(10); String validPass = "Aabcdefghijklm1@"; String confirmPass = "AS@!gh12fxghfnh43546"; + String email = "system@gmail.com"; String errorMsg = "Confirm valued does not match new password!"; String adminPass = "123456"; SoftAssert soft = new SoftAssert(); UsersPage usersPage = new UsersPage(driver); UserPopup popup = usersPage.clickNew(); soft.assertTrue(!popup.isOKButtonActive(), "OK button is enable before valid data is filled in the popup"); - popup.fillDetailsForm(username); + popup.fillDetailsForm(username,email); popup.rolesSelect.selectOptionWithText("SMP_ADMIN"); popup.clickOK(); soft.assertTrue(usersPage.isSaveButtonEnabled(), "Save button is enabled"); @@ -589,10 +605,11 @@ public class UsersPgTest extends BaseTest { soft.assertAll(); } - @Test(description = "USR-123") + @Test(description = "USR-150") public void verifySuspendedUserwithoutPassword() { String username = Generator.randomAlphaNumeric(10); String password = "Aabcdefghijklm1@"; + String email = "system@gmail.com"; SoftAssert soft = new SoftAssert(); @@ -600,7 +617,7 @@ public class UsersPgTest extends BaseTest { UserPopup popup = usersPage.clickNew(); soft.assertTrue(!popup.isOKButtonActive(), "OK button should be disabled until valid data is filled in the popup"); - popup.fillDetailsForm(username); + popup.fillDetailsForm(username,email); popup.rolesSelect.selectOptionWithText("SYSTEM_ADMIN"); popup.clickOK(); @@ -647,4 +664,117 @@ public class UsersPgTest extends BaseTest { soft.assertAll(); } + + /* @Test(description = "USR-124") + public void creteInvalidUser() { + + ArrayList<String> usernameToValidate = new ArrayList<>(Arrays.asList("qwq", + "QWERQWERQWERQWERQWERQWERQWERQWE33s", + "~1a#2d2dds")); + SoftAssert soft = new SoftAssert(); + UsersPage usersPage = new UsersPage(driver); + usersPage.clickVoidSpace(); + UserPopup popup = usersPage.clickNew(); + for (String username : usernameToValidate) { + popup.fillDetailsForm(username); + popup.rolesSelect.selectOptionWithText("SYSTEM_ADMIN"); + soft.assertTrue(!popup.isOKButtonActive(), "OK button is active after putting the invalidusername"); + soft.assertEquals(popup.getUsernameValidationError(),SMPMessages.USERNAME_VALIDATION_MESSAGE,String.format("Username policy message is displayed - %s", username)); + } + }*/ + + @Test(description = "USR-160") + public void userPageUIAppearanceAndBehaviour(){ + SoftAssert soft = new SoftAssert(); + + UsersPage page = new UsersPage(driver); + soft.assertTrue(page.isLoaded()); + soft.assertTrue(page.isNewButtonEnabled(), "New button is not enable"); + soft.assertTrue(page.isEditTruststoreButtonEnabled(),"EditTruststore Button is not enabled"); + soft.assertTrue(page.isDeleteButtonVisibled(),"Delete button is not visibled"); + soft.assertTrue(page.isEditButtonVisibled(), "Edit button is not visibled"); + soft.assertTrue(page.isSaveButtonVisibled(),"Save button is not visibled"); + soft.assertTrue(page.isCancelButtonVisibled(), "Cancel button is not visibled"); + soft.assertTrue(!page.isEditButtonEnabled(), "Edit button is enabled"); + soft.assertTrue(!page.isSaveButtonEnabled(),"Save button is enabled"); + soft.assertTrue(!page.isCancelButtonEnabled(), "Cancel button is enabled"); + int index = 0; + page.grid().selectRow(index); + soft.assertTrue(page.isDeleteButtonEnabled(), "Delete button is not enabled after row select(2)"); + soft.assertTrue(page.isEditButtonEnabled(), "Edit button is not enabled after row select(2)"); + + + soft.assertAll(); + } + + @Test(description = "USR-170") + public void editUserUIAppearanceAndBehaviour(){ + SoftAssert soft = new SoftAssert(); + UsersPage page = new UsersPage(driver); + soft.assertTrue(page.isLoaded()); + String username = Generator.randomAlphaNumeric(10); + String email = "system@gmail.com"; + UserPopup popup = page.clickNew(); + soft.assertTrue(!popup.isOKButtonActive(), "OK button should be disabled until valid data is filled in the popup"); + popup.fillDetailsForm(username,email); + popup.rolesSelect.selectOptionWithText("SYSTEM_ADMIN"); + popup.clickOK(); + soft.assertTrue(page.isSaveButtonEnabled(), "Save button is enabled"); + soft.assertTrue(page.isCancelButtonEnabled(), "Cancel button is enabled"); + + page.clickSave().confirm(); + + soft.assertTrue(!page.alertArea.getAlertMessage().isError(), "Message listed is success"); + soft.assertTrue(page.alertArea.getAlertMessage().getMessage().equalsIgnoreCase(SMPMessages.MSG_18), "Message listed is as expected"); + + int index = page.grid().scrollToUser(username); + page.grid().selectRow(index); + popup = page.clickEdit(); + soft.assertTrue(!popup.isUsernameFieldEnabled(),"Username field is enabled for an existing user"); + soft.assertTrue(popup.isEmailFieldEnabled(),"Email field is not enabled for an existing user"); + soft.assertTrue(popup.isRoleSelectFieldEnabled(),"Role field is not enabled for an existing user"); + soft.assertTrue(popup.isSetOrChangePassOptionBtnEnabled(),"SetOrChangePassOptionBtn field is not enabled for an existing user"); + soft.assertTrue(popup.isRegenerateAccesstokenBtnEnabled(),"Email field is not enabled for an existing user"); + soft.assertTrue(popup.isOKButtonActive(),"Ok btn is not enabled for an existing user in user popup"); + soft.assertTrue(popup.isCancelButtonActive(),"Cancel btn is not enabled for an existing user in user popup"); + soft.assertTrue(popup.isImportButtonActive(),"Import btn is not enabled for an existing user in user popup"); + if(page.grid().userHasCertificate(index)) { + soft.assertTrue(popup.isShowDetailsButtonActive(), "ShowDetails btn is not enabled for an existing user in user popup"); + soft.assertTrue(popup.isClearButtonActive(), "Clear btn is not enabled for an existing user in user popup"); + } + else{ + soft.assertTrue(!popup.isShowDetailsButtonActive(), "ShowDetails btn is enabled for an existing user in user popup"); + soft.assertTrue(!popup.isClearButtonActive(), "Clear btn is enabled for an existing user in user popup"); + + } + + soft.assertAll(); + + + } + + @Test(description = "USR-180") + public void userEmailValidation(){ + SoftAssert soft = new SoftAssert(); + UsersPage page = new UsersPage(driver); + soft.assertTrue(page.isLoaded()); + String username = Generator.randomAlphaNumeric(10); + ArrayList<String> email = new ArrayList<>(Arrays.asList("sdfdgfdghxvfv@gmail.c", + "sdfdgfdghxvfv$gmail.com", + "hdbvsdkvdsvf", + "dshujhfgbid@gmail.co", + "sdfdgfdghxvfv@cmail.com")); + UserPopup popup = page.clickNew(); + soft.assertTrue(!popup.isOKButtonActive(), "OK button should be disabled until valid data is filled in the popup"); + for(String emailId:email) + { + popup.fillDetailsForm(username,emailId); + popup.rolesSelect.selectOptionWithText("SYSTEM_ADMIN"); + soft.assertTrue(!popup.isOKButtonActive(),"OK button is active after s4ending invalid email"); + soft.assertEquals(popup.userEmailValidationGetErrMsg(),SMPMessages.USER_EMAIL_VALIDATION_MESSAGE,"Message is not in the list"); + } + soft.assertAll(); + } + + } -- GitLab