From f4e1ed8ab6f57a5b23f0f4efe873beedea2318e5 Mon Sep 17 00:00:00 2001 From: Catalin Comanici <Catalin.COMANICI@ext.ec.europa.eu> Date: Tue, 18 Oct 2022 13:25:37 +0200 Subject: [PATCH] minor fixes for stability --- .../java/pages/components/SandwichMenu.java | 34 ++-- .../components/baseComponents/Header.java | 33 ++-- .../pages/password/PasswordChangepopup.java | 8 +- .../edit/ServiceMetadataPopup.java | 70 ++++---- .../edit/ServiceMetadataWizardPopup.java | 167 +++++++++--------- smp-ui-tests/src/test/java/ui/EditPgTest.java | 12 +- .../src/test/java/ui/LoginPgTest.java | 13 +- 7 files changed, 148 insertions(+), 189 deletions(-) diff --git a/smp-ui-tests/src/main/java/pages/components/SandwichMenu.java b/smp-ui-tests/src/main/java/pages/components/SandwichMenu.java index cea32852c..73204029c 100644 --- a/smp-ui-tests/src/main/java/pages/components/SandwichMenu.java +++ b/smp-ui-tests/src/main/java/pages/components/SandwichMenu.java @@ -11,33 +11,27 @@ import pages.service_groups.search.SearchPage; import utils.PROPERTIES; public class SandwichMenu extends PageComponent { - public SandwichMenu(WebDriver driver) { - super(driver); - log.info("sandwich menu init"); - - PageFactory.initElements( new AjaxElementLocatorFactory(driver, PROPERTIES.TIMEOUT), this); - } - - @SuppressWarnings("SpellCheckingInspection") @FindBy(id = "settingsmenu_id") WebElement expandoButton; - @FindBy(css = "div.mat-menu-content") WebElement lnkContainer; - @SuppressWarnings("SpellCheckingInspection") @FindBy(id = "currentuser_id") WebElement currentUserID; - @FindBy(id = "logout_id") WebElement logoutLnk; - @FindBy(id = "changePassword_id") WebElement passChangeLnk; + public SandwichMenu(WebDriver driver) { + super(driver); + log.info("sandwich menu init"); + + PageFactory.initElements(new AjaxElementLocatorFactory(driver, PROPERTIES.TIMEOUT), this); + } - public boolean isLoggedIn(){ + public boolean isLoggedIn() { clickVoidSpace(); waitForElementToBeClickable(expandoButton).click(); @@ -46,24 +40,26 @@ public class SandwichMenu extends PageComponent { try { String text = waitForElementToBeVisible(lnkContainer).getText(); isLoggedIn = !text.contains("Not logged in"); - } catch (Exception e) { } + } catch (Exception e) { + } log.info("User login status is: " + isLoggedIn); clickVoidSpace(); return isLoggedIn; } - public PasswordChangepopup clickChangePasswordOption() - { + + public PasswordChangepopup clickChangePasswordOption() { waitForElementToBeClickable(expandoButton).click(); + waitForElementToBeGone(expandoButton); waitForElementToBeClickable(passChangeLnk).click(); return new PasswordChangepopup(driver); } - public SearchPage logout(){ + public SearchPage logout() { clickVoidSpace(); - if(isLoggedIn()){ + if (isLoggedIn()) { waitForElementToBeClickable(expandoButton).click(); waitForElementToBeClickable(logoutLnk).click(); log.info("Logging out..."); @@ -71,7 +67,7 @@ public class SandwichMenu extends PageComponent { return new SearchPage(driver); } - public void waitForSandwichMenu(){ + public void waitForSandwichMenu() { log.info("waiting for sandwich menu"); waitForXMillis(500); waitForElementToBeVisible(expandoButton); diff --git a/smp-ui-tests/src/main/java/pages/components/baseComponents/Header.java b/smp-ui-tests/src/main/java/pages/components/baseComponents/Header.java index 7e81bd57f..e5535ddcf 100644 --- a/smp-ui-tests/src/main/java/pages/components/baseComponents/Header.java +++ b/smp-ui-tests/src/main/java/pages/components/baseComponents/Header.java @@ -7,16 +7,11 @@ import org.openqa.selenium.support.PageFactory; import org.openqa.selenium.support.pagefactory.AjaxElementLocatorFactory; import pages.components.SandwichMenu; import pages.login.LoginPage; -import pages.password.PasswordChangepopup; import utils.PROPERTIES; -public class Header extends PageComponent{ - - public Header(WebDriver driver) { - super(driver); - PageFactory.initElements( new AjaxElementLocatorFactory(driver, PROPERTIES.TIMEOUT), this); - } +public class Header extends PageComponent { + public SandwichMenu sandwichMenu = new SandwichMenu(driver); @FindBy(id = "_header_id") private WebElement pageTitle; @@ -29,41 +24,33 @@ public class Header extends PageComponent{ @FindBy(css = "#sandwichMenu .ng-star-inserted") private WebElement role; - @FindBy(css = "#changePassword_id") - private WebElement changePasswordOption; - - public SandwichMenu sandwichMenu = new SandwichMenu(driver); - - public PasswordChangepopup clickChangePasswordOption() - { - log.info("Clicking on changepassword option"); - waitForElementToBeClickable(changePasswordOption).click(); - return new PasswordChangepopup(driver); + public Header(WebDriver driver) { + super(driver); + PageFactory.initElements(new AjaxElementLocatorFactory(driver, PROPERTIES.TIMEOUT), this); } - public LoginPage goToLogin(){ + public LoginPage goToLogin() { log.info("Going to login page"); waitForElementToBeClickable(loginLnk).click(); return new LoginPage(driver); } - public void waitForTitleToBe(String title){ + public void waitForTitleToBe(String title) { log.info("waiting for page title to be " + title); waitForXMillis(500); waitForElementToHaveText(pageTitle, title); } - public void waitForTitleToBe(){ + public void waitForTitleToBe() { log.info("waiting for page title to be present"); waitForXMillis(500); waitForElementToBeVisible(pageTitle); } - public String getRoleName() - { + public String getRoleName() { String getUserRole = role.getText(); - String roleName= getUserRole.split(":")[0].trim(); + String roleName = getUserRole.split(":")[0].trim(); return roleName; } } diff --git a/smp-ui-tests/src/main/java/pages/password/PasswordChangepopup.java b/smp-ui-tests/src/main/java/pages/password/PasswordChangepopup.java index b0534d9d8..cfb1e5e5a 100644 --- a/smp-ui-tests/src/main/java/pages/password/PasswordChangepopup.java +++ b/smp-ui-tests/src/main/java/pages/password/PasswordChangepopup.java @@ -41,8 +41,7 @@ public class PasswordChangepopup extends PageComponent { WebElement okBtn; @FindBy(css = "mat-dialog-actions button:nth-child(2)") WebElement cancelBtn; - @FindBy(css = "#changePassword_id") - WebElement changePassword; + @FindBy(css = "smp-password-change-dialog mat-dialog-actions button:nth-child(1)") WebElement changedPassword; @FindBy(css = "#closebuttondialog_id") @@ -69,11 +68,6 @@ public class PasswordChangepopup extends PageComponent { waitForElementToBeGone(cancelBtn); } - public void clickChangePassword() { - log.info("click change password"); - waitForElementToBeClickable(changePassword); - changePassword.click(); - } public SearchPage clickCloseAfterChangedPassForLoggedUser() { log.info("click close after change password"); diff --git a/smp-ui-tests/src/main/java/pages/service_groups/edit/ServiceMetadataPopup.java b/smp-ui-tests/src/main/java/pages/service_groups/edit/ServiceMetadataPopup.java index b3998e758..7d1e05192 100644 --- a/smp-ui-tests/src/main/java/pages/service_groups/edit/ServiceMetadataPopup.java +++ b/smp-ui-tests/src/main/java/pages/service_groups/edit/ServiceMetadataPopup.java @@ -10,74 +10,62 @@ import pages.components.baseComponents.PageComponent; import utils.PROPERTIES; public class ServiceMetadataPopup extends PageComponent { - public ServiceMetadataPopup(WebDriver driver) { - super(driver); - - PageFactory.initElements(new AjaxElementLocatorFactory(driver, PROPERTIES.TIMEOUT), this); - - domainSelect = new GenericSelect(driver, domainSelectContainer); - } - @FindBy(css = "mat-dialog-actions > button:nth-child(1)") private WebElement okButton; - @FindBy(css = "mat-dialog-actions > button:nth-child(2)") private WebElement cancelButton; - @FindBy(css = "mat-card-content > mat-toolbar > mat-toolbar-row > button:nth-child(1)") private WebElement clearButton; @FindBy(css = "mat-card-content > mat-toolbar > mat-toolbar-row > button:nth-child(2)") private WebElement generateXMLButton; @FindBy(css = "mat-card-content > mat-toolbar > mat-toolbar-row > button:nth-child(4)") private WebElement validateButton; - @FindBy(css = "#MetadataTextArea") private WebElement metadataTextArea; - @FindBy(css = "#participanSchema_id") private WebElement participantSchemaInput; - @FindBy(css = "#participantIdentifier_id") private WebElement participantIdentifierInput; - @FindBy(css = "#documentScheme_id") private WebElement documentSchemeInput; - @FindBy(css = "#documentIdentifier_id") private WebElement documentIdentifierInput; - @FindBy(xpath = "//span[text() ='Metadata wizard']") private WebElement metadataWizardBtn; - @FindBy(css = "mat-card-content > div > div.ng-star-inserted:nth-child(2)") private WebElement xmlValidationMsg; - @FindBy(css = "mat-dialog-content #domain_id") private WebElement domainSelectContainer; private GenericSelect domainSelect; + public ServiceMetadataPopup(WebDriver driver) { + super(driver); - public EditPage clickOK(){ - /*waitForElementToBeClickable(okButton); - okButton.click(); - waitForElementToBeGone(okButton); - return new EditPage(driver);*/ - waitForElementToBeVisible(okButton); + PageFactory.initElements(new AjaxElementLocatorFactory(driver, PROPERTIES.TIMEOUT), this); + + waitForElementToBeVisible(domainSelectContainer); + domainSelect = new GenericSelect(driver, domainSelectContainer); + } + + public EditPage clickOK() { + waitForElementToBeClickable(okButton); okButton.click(); return new EditPage(driver); } - public boolean isOKBtnEnabled(){ + + public boolean isOKBtnEnabled() { return okButton.isEnabled(); } - public void fillDocIdAndDocIdScheme(String docID, String docScheme){ + + public void fillDocIdAndDocIdScheme(String docID, String docScheme) { waitForElementToBeVisible(documentIdentifierInput); clearAndFillInput(documentIdentifierInput, docID); clearAndFillInput(documentSchemeInput, docScheme); } - public String xmlFieldVALUE(){ - log.info("value is "+metadataTextArea.getAttribute("value")); + public String xmlFieldVALUE() { + log.info("value is " + metadataTextArea.getAttribute("value")); return metadataTextArea.getAttribute("value"); } @@ -91,32 +79,37 @@ public class ServiceMetadataPopup extends PageComponent { generateXMLButton.click(); } - public String captureTextOfMetadataTextArea(){ + + public String captureTextOfMetadataTextArea() { return metadataTextArea.getText(); } - public void clickValidateBtn(){ + public void clickValidateBtn() { waitForElementToBeClickable(validateButton).click(); } - public void clickGenerateXMLBtn(){ + + public void clickGenerateXMLBtn() { waitForElementToBeClickable(generateXMLButton).click(); } - public void clickClearBtn(){ + + public void clickClearBtn() { waitForElementToBeClickable(clearButton).click(); } - public String getXMLValidationMessage(){ + + public String getXMLValidationMessage() { return xmlValidationMsg.getText(); } - public void addTextToMetadataTextArea(String generator){ + + public void addTextToMetadataTextArea(String generator) { metadataTextArea.sendKeys(generator); } - public String docIDFieldValue(){ + public String docIDFieldValue() { return documentIdentifierInput.getAttribute("value"); } - public String docIDSchemeFieldValue(){ + public String docIDSchemeFieldValue() { return documentSchemeInput.getAttribute("value"); } @@ -153,9 +146,8 @@ public class ServiceMetadataPopup extends PageComponent { return isEnabled(documentIdentifierInput); } - public ServiceMetadataWizardPopup clickMetadataWizard(){ - waitForElementToBeClickable(metadataWizardBtn); - metadataWizardBtn.click(); + public ServiceMetadataWizardPopup clickMetadataWizard() { + waitForElementToBeClickable(metadataWizardBtn).click(); return new ServiceMetadataWizardPopup(driver); } diff --git a/smp-ui-tests/src/main/java/pages/service_groups/edit/ServiceMetadataWizardPopup.java b/smp-ui-tests/src/main/java/pages/service_groups/edit/ServiceMetadataWizardPopup.java index 7bc5a3092..96a194847 100644 --- a/smp-ui-tests/src/main/java/pages/service_groups/edit/ServiceMetadataWizardPopup.java +++ b/smp-ui-tests/src/main/java/pages/service_groups/edit/ServiceMetadataWizardPopup.java @@ -11,92 +11,83 @@ import utils.PROPERTIES; import java.io.File; public class ServiceMetadataWizardPopup extends PageComponent { - public ServiceMetadataWizardPopup(WebDriver driver) { - super(driver); - PageFactory.initElements( new AjaxElementLocatorFactory(driver, PROPERTIES.TIMEOUT), this); - } - @FindBy(css = "#documentIdentifierScheme_id") - private WebElement docIdSchemeField; - - @FindBy(css = "#processSchema_id") - private WebElement processSchemeField; - - @FindBy(css = "service-metadata-wizard-dialog input#documentIdentifier_id") - private WebElement docIdField; - - @FindBy(css = "#processidentifier_id") - private WebElement processIdField; - - @FindBy(css = "#endpointUrl_id") - private WebElement endpointUrl; - - @FindBy(css = "#transportProfiler_id") - private WebElement transportProfileField; - - @FindBy(css = "service-metadata-wizard-dialog > mat-dialog-actions > button[type='button']:nth-child(1)") - private WebElement okButton; - - @FindBy(css = "service-metadata-wizard-dialog > mat-dialog-actions > button[type='button']:nth-child(2)") - private WebElement cancelButton; - - @FindBy(css="input#certificate-file-upload") - private WebElement uploadCertificateBtn; - - - @FindBy(css="#metadatacertificate_id") - private WebElement certificateDescriptionBox; - - - public String docIDFieldValue(){ - return docIdField.getAttribute("value"); - } - - public String docIDSchemeFieldValue(){ - return docIdSchemeField.getAttribute("value"); - } - - public String transportProfileFieldContent(){ - return transportProfileField.getAttribute("value"); - } - - - public void clickUploadCertificate(){ - waitForElementToBeVisible(uploadCertificateBtn); - uploadCertificateBtn.click(); - } - - public void fillCerificateBox(String generator){ - certificateDescriptionBox.sendKeys(generator); - } - - public void uploadCertificate(String relativePath){ - waitForElementToBeVisible(uploadCertificateBtn); - uploadCertificateBtn.click(); - String path = new File(relativePath).getAbsolutePath(); - uploadCertificateBtn.sendKeys(path); - } - - public boolean isEnableOkBtn(){ - waitForElementToBeVisible(okButton); - return okButton.isEnabled(); - } - - public ServiceMetadataPopup clickOK(){ - waitForElementToBeVisible(okButton); - okButton.click(); - return new ServiceMetadataPopup(driver); - } - - public void fillForm(String docID,String docScheme,String processID,String processScheme,String transportProfile,String url){ - waitForElementToBeVisible(docIdField); - - clearAndFillInput(docIdField, docID); - clearAndFillInput(docIdSchemeField, docScheme); - clearAndFillInput(processIdField, processID); - clearAndFillInput(processSchemeField, processScheme); - clearAndFillInput(transportProfileField, transportProfile); - clearAndFillInput(endpointUrl,url); - - - } + @FindBy(css = "#documentIdentifierScheme_id") + private WebElement docIdSchemeField; + @FindBy(css = "#processSchema_id") + private WebElement processSchemeField; + @FindBy(css = "service-metadata-wizard-dialog input#documentIdentifier_id") + private WebElement docIdField; + @FindBy(css = "#processidentifier_id") + private WebElement processIdField; + @FindBy(css = "#endpointUrl_id") + private WebElement endpointUrl; + @FindBy(css = "#transportProfiler_id") + private WebElement transportProfileField; + @FindBy(css = "service-metadata-wizard-dialog > mat-dialog-actions > button[type='button']:nth-child(1)") + private WebElement okButton; + @FindBy(css = "service-metadata-wizard-dialog > mat-dialog-actions > button[type='button']:nth-child(2)") + private WebElement cancelButton; + @FindBy(css = "input#certificate-file-upload") + private WebElement uploadCertificateBtn; + @FindBy(css = "#metadatacertificate_id") + private WebElement certificateDescriptionBox; + + + public ServiceMetadataWizardPopup(WebDriver driver) { + super(driver); + PageFactory.initElements(new AjaxElementLocatorFactory(driver, PROPERTIES.TIMEOUT), this); + } + + public String docIDFieldValue() { + return docIdField.getAttribute("value"); + } + + public String docIDSchemeFieldValue() { + return docIdSchemeField.getAttribute("value"); + } + + public String transportProfileFieldContent() { + return transportProfileField.getAttribute("value"); + } + + + public void clickUploadCertificate() { + waitForElementToBeVisible(uploadCertificateBtn); + uploadCertificateBtn.click(); + } + + public void fillCerificateBox(String generator) { + certificateDescriptionBox.sendKeys(generator); + } + + public void uploadCertificate(String relativePath) { + waitForElementToBeVisible(uploadCertificateBtn); + uploadCertificateBtn.click(); + String path = new File(relativePath).getAbsolutePath(); + uploadCertificateBtn.sendKeys(path); + } + + public boolean isEnabledOkBtn() { + waitForElementToBeEnabled(okButton); + return okButton.isEnabled(); + } + + public ServiceMetadataPopup clickOK() { + waitForElementToBeVisible(okButton); + okButton.click(); + return new ServiceMetadataPopup(driver); + } + + public void fillForm(String docID, String docScheme, String processID, String processScheme, String transportProfile, String url) { + waitForElementToBeVisible(docIdField); + + clearAndFillInput(docIdField, docID); + clearAndFillInput(docIdSchemeField, docScheme); + clearAndFillInput(processIdField, processID); + clearAndFillInput(processSchemeField, processScheme); + clearAndFillInput(transportProfileField, transportProfile); + clearAndFillInput(endpointUrl, url); + + + } } diff --git a/smp-ui-tests/src/test/java/ui/EditPgTest.java b/smp-ui-tests/src/test/java/ui/EditPgTest.java index d56bfc8cf..db0638c60 100644 --- a/smp-ui-tests/src/test/java/ui/EditPgTest.java +++ b/smp-ui-tests/src/test/java/ui/EditPgTest.java @@ -393,7 +393,7 @@ public class EditPgTest extends BaseTest { ServiceMetadataWizardPopup metadataWizaedPopup = metadataPopup.clickMetadataWizard(); metadataWizaedPopup.fillForm(generator, generator, generator, generator, "bdxr-transport-ebms3-as4-v1p0", "internal/rest/domain"); metadataWizaedPopup.fillCerificateBox(generator); - soft.assertTrue(metadataWizaedPopup.isEnableOkBtn(), "ok button is disabled after providing the valid data"); + soft.assertTrue(metadataWizaedPopup.isEnabledOkBtn(), "ok button is disabled after providing the valid data"); metadataPopup = metadataWizaedPopup.clickOK(); soft.assertEquals(metadataPopup.docIDFieldValue(), generator, "After saving the servicemetadata wizard popup with valid data the docID field of service metadata popup doc id contain the coressponding value"); soft.assertEquals(metadataPopup.docIDSchemeFieldValue(), generator, "After saving the servicemetadata wizard popup with valid data the docIDScheme field of service metadata popup doc id scheme contain the coressponding value"); @@ -490,16 +490,20 @@ public class EditPgTest extends BaseTest { EditPage page = new EditPage(driver); String generator = Generator.randomAlphaNumeric(10); ServiceGroupGrid grid = page.getGrid(); + grid.waitForRowsToLoad(); int index = 0; ServiceGroupRowE row0 = grid.getRowsAs(ServiceGroupRowE.class).get(index); ServiceMetadataPopup metadataPopup = row0.clickAddMetadata(); - ServiceMetadataWizardPopup metadataWizard = metadataPopup.clickMetadataWizard(); soft.assertTrue(!metadataPopup.isParticipantIdentifierEnabled(), "participantId field is enabled for an existing service group in service metadata popup"); soft.assertTrue(!metadataPopup.isParticipantSchemeEnabled(), "participantScheme field is enabled for an existing service group in service metadata popup"); - soft.assertFalse(metadataWizard.isEnableOkBtn(), "OK button is enabled before providing the valid data"); + + + ServiceMetadataWizardPopup metadataWizard = metadataPopup.clickMetadataWizard(); + + soft.assertFalse(metadataWizard.isEnabledOkBtn(), "OK button is enabled before providing the valid data"); metadataWizard.fillForm(generator, generator, generator, generator, "bdxr-transport-ebms3-as4-v1p0", "internal/rest/domain"); metadataWizard.fillCerificateBox(generator); - soft.assertTrue(metadataWizard.isEnableOkBtn(), "OK button is disable after providing the valid data"); + soft.assertTrue(metadataWizard.isEnabledOkBtn(), "OK button is disabled after providing the valid data"); 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 9fbf83192..db5617e0c 100644 --- a/smp-ui-tests/src/test/java/ui/LoginPgTest.java +++ b/smp-ui-tests/src/test/java/ui/LoginPgTest.java @@ -257,19 +257,14 @@ public class LoginPgTest extends BaseTest { SearchPage searchPage = loginPage.login(userName, "QW!@qw12"); PasswordChangepopup passDialog = searchPage.pageHeader.sandwichMenu.clickChangePasswordOption(); - try { - Thread.sleep(1000); - } catch (Exception e) { - e.printStackTrace(); - } + passDialog.waitForXMillis(1000); passDialog.fillDataForLoggedUser("QW!@qw12", validPass, validPass); passDialog.clickChangedPassword(); searchPage = passDialog.clickCloseAfterChangedPassForLoggedUser(); - try { - Thread.sleep(10000); - } catch (Exception e) { - } + + passDialog.waitForXMillis(1000); + soft.assertTrue(searchPage.isLoaded(), "After changing the password for a logged user the page is not redirecting to searchpage"); SMPPage page1 = genericLoginProcedure("SYS_ADMIN"); logger.info("Going to Users page"); -- GitLab