From eaa94f096fe138179d3dd37842691823e2f1d760 Mon Sep 17 00:00:00 2001 From: monhaso <sonali.mohanty@ext.ec.europa.eu> Date: Wed, 20 Jul 2022 12:03:30 +0200 Subject: [PATCH] 1)some locators got changed and new locators have added. --- .../edit/ServiceGroupPopup.java | 6 +- .../src/main/java/pages/users/UserPopup.java | 83 ++++++++++- .../main/java/utils/enums/SMPMessages.java | 10 +- .../src/test/java/ui/UsersPgTest.java | 134 +++++++++++++----- 4 files changed, 182 insertions(+), 51 deletions(-) diff --git a/smp-ui-tests/src/main/java/pages/service_groups/edit/ServiceGroupPopup.java b/smp-ui-tests/src/main/java/pages/service_groups/edit/ServiceGroupPopup.java index 0191de265..819a08f56 100644 --- a/smp-ui-tests/src/main/java/pages/service_groups/edit/ServiceGroupPopup.java +++ b/smp-ui-tests/src/main/java/pages/service_groups/edit/ServiceGroupPopup.java @@ -33,10 +33,10 @@ public class ServiceGroupPopup extends PageComponent { private WebElement domainsPanelContainer; public AccordionSection domainsPanel; - @FindBy(css = "mat-dialog-actions > div > button:nth-child(1)") + @FindBy(css = "mat-dialog-actions button:nth-child(1)") private WebElement okButton; - @FindBy(css = "mat-dialog-actions > div > button:nth-child(2)") + @FindBy(css = "mat-dialog-actions button:nth-child(2)") private WebElement cancelButton; @FindBy(css = "#participantIdentifier_id") @@ -57,7 +57,7 @@ public class ServiceGroupPopup extends PageComponent { @FindBy(css = "mat-card-content > mat-toolbar > mat-toolbar-row > button:nth-child(3)") private WebElement validateExtensionButton; - @FindBy(css = "mat-card-content > div > div.ng-star-inserted") + @FindBy(css = "mat-card-content > div.ng-star-inserted") private WebElement errorContainer; 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 c6bc2a45a..33f3654fa 100644 --- a/smp-ui-tests/src/main/java/pages/users/UserPopup.java +++ b/smp-ui-tests/src/main/java/pages/users/UserPopup.java @@ -1,13 +1,17 @@ package pages.users; import org.openqa.selenium.By; +import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.support.FindBy; import org.openqa.selenium.support.PageFactory; +import pages.components.ConfirmationDialog; import pages.components.GenericSelect; import pages.components.baseComponents.PageComponent; +import static org.openqa.selenium.remote.DriverCommand.CLICK_ELEMENT; + public class UserPopup extends PageComponent { public UserPopup(WebDriver driver) { super(driver); @@ -28,13 +32,16 @@ public class UserPopup extends PageComponent { @FindBy(id = "emailAddress_id") WebElement emailInput; - @FindBy(id = "password_id") + @FindBy(id = "np_id") WebElement passwordInput; @SuppressWarnings("SpellCheckingInspection") - @FindBy(id = "usernameconfirmation_id") + @FindBy(id = "cnp_id") WebElement confirmationInput; + @FindBy(css = "input#cp_id") + WebElement adminPassInput; + @FindBy(css = "mat-form-field.username> div > div.mat-form-field-flex > div > div") WebElement usernameValidationError; @@ -47,12 +54,24 @@ public class UserPopup extends PageComponent { @FindBy(css = ".mat-form-field-infix > div.has-error") WebElement passMatchValidationError; - @FindBy(css = "mat-dialog-content > table > tr > td > button:nth-child(1)") + @FindBy(css = "mat-dialog-actions button:nth-child(1)") WebElement okBtn; - @FindBy(css = "mat-dialog-content > table > tr > td > button:nth-child(2)") + @FindBy(css = "mat-dialog-actions button:nth-child(2)") WebElement cancelBtn; + @FindBy(css ="#changePassword_id") + WebElement changePassword; + + @FindBy(css ="smp-password-change-dialog mat-dialog-actions button:nth-child(1)") + WebElement changedPassword; + + @FindBy(css = "#nobuttondialog_id") + WebElement passChangedClose; + + @FindBy(css = "smp-password-change-dialog mat-dialog-actions button:nth-child(2)") + WebElement passwordDialogClose; + @FindBy(css = "#role_id") WebElement rolesSelectContainer; public GenericSelect rolesSelect; @@ -61,6 +80,12 @@ public class UserPopup extends PageComponent { public boolean isOKButtonActive() { return isEnabled(okBtn); } + public boolean isChangePasswordActive() { + return isEnabled(passChangedClose); + } + public boolean isChangePasswordButtonActive() { + return isEnabled(changedPassword); + } public boolean isCancelButtonActive() { return isEnabled(cancelBtn); @@ -98,12 +123,56 @@ public class UserPopup extends PageComponent { waitForElementToBeEnabled(userNameInput); } - public void fillDetailsForm(String username, String pass, String confirmation) { + //public void fillDetailsForm(String username, String pass, String confirmation) + public void fillDetailsForm(String username){ clearAndFillInput(userNameInput, username); - clearAndFillInput(passwordInput, pass); - clearAndFillInput(confirmationInput, confirmation); + //clearAndFillInput(passwordInput, pass); + //clearAndFillInput(confirmationInput, confirmation); emailInput.click(); } + public void clickChangePassword(){ + log.info("click change password"); + waitForElementToBeClickable(changePassword); + changePassword.click(); + //waitForElementToBeGone(changePassword); + } + public void clickCloseAfterChangedPass() + { + log.info("click close after change password"); + try { + Thread.sleep(10000); + } + catch (Exception e){ + e.printStackTrace(); + } + waitForElementToBeClickable(passChangedClose); + log.info("ab"); + passChangedClose.click(); + log.info("bd"); + waitForElementToBeGone(passChangedClose); + log.info("cd"); + } + public ConfirmationDialog clickChangedPassword() + { + log.info("click changed password"); + waitForElementToBeClickable(changedPassword); + changedPassword.click(); + waitForElementToBeGone(changedPassword); + //return new UsersPage(driver); + return new ConfirmationDialog(driver); + } + public void setPassword(String adminPass,String newPass,String confirmPass) + { + + clearAndFillInput(adminPassInput,adminPass); + clearAndFillInput(passwordInput,newPass); + clearAndFillInput(confirmationInput,confirmPass); + } + public void clickClosePasswordDialog() + { + passwordDialogClose.click(); + waitForElementToBeGone(passwordDialogClose); + } public String getUsernameValidationError() { 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 89da050ed..d43525c19 100644 --- a/smp-ui-tests/src/main/java/utils/enums/SMPMessages.java +++ b/smp-ui-tests/src/main/java/utils/enums/SMPMessages.java @@ -68,14 +68,8 @@ public class SMPMessages { public static final String MSG_21 = "Unable to login. SMP is not running."; - public static final String USERNAME_VALIDATION_MESSAGE = "Username is case insensitive and can only contain alphanumeric characters (letters a-zA-Z, numbers 0-9) and must have from 4 to 32 characters!"; - public static final String PASS_POLICY_MESSAGE = "Password should follow all of these rules:\n" + - "- Minimum length: 8 characters\n" + - "- Maximum length: 32 characters\n" + - "- At least one letter in lowercase\n" + - "- At least one letter in uppercase\n" + - "- At least one digit\n" + - "- At least one special character"; + public static final String USERNAME_VALIDATION_MESSAGE = "Username can only contain alphanumeric characters (letters A-Z, numbers 0-9) and must have from 4 to 32 characters!"; + public static final String PASS_POLICY_MESSAGE = "Minimum length: 16 characters;Maximum length: 32 characters;At least one letter in lowercase;At least one letter in uppercase;At least one digit;At least one special character"; public static final String PASS_NO_MATCH_MESSAGE = "Passwords do not match"; public static final String PASS_NO_EMPTY_MESSAGE = "You should type a password"; diff --git a/smp-ui-tests/src/test/java/ui/UsersPgTest.java b/smp-ui-tests/src/test/java/ui/UsersPgTest.java index 47fd13702..beb55bf0e 100644 --- a/smp-ui-tests/src/test/java/ui/UsersPgTest.java +++ b/smp-ui-tests/src/test/java/ui/UsersPgTest.java @@ -39,7 +39,7 @@ public class UsersPgTest extends BaseTest { @Test(description = "USR-10") public void newUser() { String username = Generator.randomAlphaNumeric(10); - String validPass = "QW!@qw12"; + String validPass = "Aabcdefghijklm1@"; SoftAssert soft = new SoftAssert(); @@ -49,13 +49,13 @@ 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.rolesSelect.selectOptionWithText("SYSTEM_ADMIN"); + popup.clickOK(); - popup.clickUserDetailsToggle(); + //popup.clickUserDetailsToggle(); + //popup.fillDetailsForm(username, validPass, validPass); - popup.fillDetailsForm(username, validPass, validPass); - popup.clickOK(); soft.assertTrue(usersPage.isSaveButtonEnabled(), "Save button is enabled"); soft.assertTrue(usersPage.isCancelButtonEnabled(), "Cancel button is enabled"); @@ -66,6 +66,23 @@ public class UsersPgTest extends BaseTest { soft.assertTrue(usersPage.alertArea.getAlertMessage().getMessage().equalsIgnoreCase(SMPMessages.MSG_18), "Message listed is as expected"); soft.assertTrue(usersPage.grid().isUserListed(username), "User present in the page"); + String adminPass = "123456"; + int index = usersPage.grid().scrollToUser(username); + + usersPage.grid().selectRow(index); + popup = usersPage.clickEdit(); + try{ + Thread.sleep(10000); + } + catch(Exception e){ + e.printStackTrace(); + } + popup.clickChangePassword(); + popup.setPassword(adminPass,validPass,validPass); + popup.clickChangedPassword().cancel(); + //popup.clickCloseAfterChangedPass(); + popup.clickOK(); + soft.assertTrue(usersPage.grid().isUserListed(username), "User present in the page"); soft.assertAll(); } @@ -81,19 +98,19 @@ 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.rolesSelect.selectOptionWithText("SMP_ADMIN"); - popup.clickUserDetailsToggle(); + //popup.clickUserDetailsToggle(); - popup.fillDetailsForm("tst", validPass, validPass); + //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("#$^&*^%&$#@%@$#%$", validPass, validPass); + popup.fillDetailsForm("#$^&*^%&$#@%@$#%$"); soft.assertTrue(!popup.isOKButtonActive(), "OK button should be disabled until valid data is filled in the popup(3)"); soft.assertEquals(popup.getUsernameValidationError(), SMPMessages.USERNAME_VALIDATION_MESSAGE, "Validation error message is displayed(3)"); //noinspection SpellCheckingInspection - popup.fillDetailsForm("QWERQWERQWERQWERQWERQWERQWERQWE33", validPass, validPass); + popup.fillDetailsForm("QWERQWERQWERQWERQWERQWERQWERQWE33"); soft.assertTrue(!popup.isOKButtonActive(), "OK button should be disabled until valid data is filled in the popup(4)"); soft.assertEquals(popup.getUsernameValidationError(), SMPMessages.USERNAME_VALIDATION_MESSAGE, "Validation error message is displayed(4)"); @@ -104,7 +121,7 @@ public class UsersPgTest extends BaseTest { @SuppressWarnings("SpellCheckingInspection") @Test(description = "USR-30") public void passwordValidation() { - + String username = Generator.randomAlphaNumeric(10); ArrayList<String> passToValidate = new ArrayList<>(Arrays.asList("qwqw", "QWERQWERQWERQWERQWERQWERQWERQWE33", // "QWERTYUIOP", @@ -117,17 +134,44 @@ public class UsersPgTest extends BaseTest { SoftAssert soft = new SoftAssert(); UsersPage usersPage = new UsersPage(driver); + usersPage.clickVoidSpace(); + UserPopup popup = usersPage.clickNew(); + popup.fillDetailsForm("test11"); + popup.rolesSelect.selectOptionWithText("SMP_ADMIN"); + popup.clickOK(); + usersPage.clickSave().confirm(); + soft.assertTrue(usersPage.grid().isUserListed(username), "User present in the page"); + int index = usersPage.grid().scrollToUser(username); + usersPage.grid().selectRow(index); + String adminPass = "123456"; for (String pass : passToValidate) { // usersPage.refreshPage(); - usersPage.clickVoidSpace(); + /*usersPage.clickVoidSpace(); UserPopup popup = usersPage.clickNew(); + popup.fillDetailsForm("test11"); popup.rolesSelect.selectOptionWithText("SMP_ADMIN"); - popup.clickUserDetailsToggle(); + popup.clickOK(); + + usersPage.clickSave().confirm(); + soft.assertTrue(usersPage.grid().isUserListed("test11"), "User present in the page");*/ + + popup = usersPage.clickEdit(); - 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)); + popup.clickChangePassword(); + popup.setPassword(adminPass,pass,pass); + popup.clickClosePasswordDialog(); + popup.clickCancel(); + //popup.clickChangedPassword(); + //popup.clickCloseAfterChangedPass(); + //popup.clickCancel(); + + + //popup.clickUserDetailsToggle(); + + //popup.fillDetailsForm("test11", pass, pass); + soft.assertTrue(!popup.isChangePasswordActive(), String.format("ChangePassword button should be disabled until valid data is filled in the popup - %s ", pass)); soft.assertEquals(popup.getPassValidationError(), SMPMessages.PASS_POLICY_MESSAGE, String.format("Pass policy message is displayed - %s", pass)); } @@ -438,50 +482,74 @@ public class UsersPgTest extends BaseTest { public void duplicateUserCreation() { SoftAssert soft = new SoftAssert(); String userName = Generator.randomAlphaNumeric(10); - String validPass = "QW!@qw12"; + String validPass = "Aabcdefghijklm1@"; UsersPage page = new UsersPage(driver); soft.assertTrue(page.isNewButtonEnabled(), "New button should be enabled"); UserPopup popup = page.clickNew(); soft.assertTrue(!popup.isOKButtonActive(), "OK button is enable before valid data is filled in the popup"); + popup.fillDetailsForm(userName); popup.rolesSelect.selectOptionWithText("SYSTEM_ADMIN"); - popup.clickUserDetailsToggle(); - popup.fillDetailsForm(userName, validPass, validPass); - popup.clickOK(); - soft.assertTrue(page.isSaveButtonEnabled(), "Save button is enabled"); - page.clickSave().confirm(); + popup.clickOK(); + soft.assertTrue(page.isSaveButtonEnabled(), "Save button is enabled"); + page.clickSave().confirm(); + String adminPass = "123456"; + int index = page.grid().scrollToUser(userName); + + page.grid().selectRow(index); + popup = page.clickEdit(); + + popup.clickChangePassword(); + popup.setPassword(adminPass,validPass,validPass); + popup.clickChangedPassword(); + popup.clickCloseAfterChangedPass(); + popup.clickCancel(); + soft.assertTrue(page.grid().isUserListed(userName), "User present in the page"); + + //popup.clickUserDetailsToggle(); + //popup.fillDetailsForm(userName,validPass,validPass); + page.clickNew(); - soft.assertTrue(!popup.isOKButtonActive(), "OK button is enable before valid data is filled in the popup"); + + popup.fillDetailsForm(userName); popup.rolesSelect.selectOptionWithText("SYSTEM_ADMIN"); - popup.clickUserDetailsToggle(); - popup.fillDetailsForm(userName, validPass, validPass); + // popup.clickUserDetailsToggle(); + //popup.fillDetailsForm(userName); soft.assertFalse(popup.isOKButtonActive(), "OK button is enable after duplicate user name is filled in the popup"); soft.assertTrue(popup.isDuplicateUserNameErrorMsgDisPlayed(), "The user page is not containing the expected error message"); + popup.clickCancel(); soft.assertAll(); } @Test(description = "USR-122") public void verifyPasswordDoNotMatch() { String username = Generator.randomAlphaNumeric(10); - String validPass = "QW!@qw12"; - String confirmPass = "AS@!gh12"; + String validPass = "Aabcdefghijklm1@"; + String confirmPass = "AS@!gh12fxghfnh43546"; 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.fillDetailsForm(username); popup.rolesSelect.selectOptionWithText("SMP_ADMIN"); - - popup.clickUserDetailsToggle(); - - popup.fillDetailsForm(username, validPass, confirmPass); - soft.assertTrue(!popup.isOKButtonActive(), "OK button is enabled before valid data is filled in the popup(2)"); - soft.assertEquals(popup.getPassDontMatchValidationMsg(), errorMsg, "confirmation input does not contain the message 'Passwords do not match' ."); + popup.clickOK(); + String adminPass = "123456"; + int index = usersPage.grid().scrollToUser(username); + + usersPage.grid().selectRow(index); + popup = usersPage.clickEdit(); + + popup.clickChangePassword(); + popup.setPassword(adminPass,validPass,confirmPass); + // popup.clickUserDetailsToggle(); + // popup.fillDetailsForm(username,validPass,confirmPass); + soft.assertTrue(!popup.isChangePasswordButtonActive(), "password change button is enabled before valid data is filled in the popup(2)"); + // soft.assertEquals(popup.getPassDontMatchValidationMsg(), errorMsg, "confirmation input does not contain the message 'Passwords do not match' ."); soft.assertAll(); } -- GitLab