diff --git a/domiSMP-ui-tests/src/main/java/ddsl/PageWithGrid.java b/domiSMP-ui-tests/src/main/java/ddsl/PageWithGrid.java index a4f5dad87f4073f24d6b581cd44342f2392992ab..320cb2d3d908f56a5f1462dcc6a40e5145f62e88 100644 --- a/domiSMP-ui-tests/src/main/java/ddsl/PageWithGrid.java +++ b/domiSMP-ui-tests/src/main/java/ddsl/PageWithGrid.java @@ -33,6 +33,10 @@ public class PageWithGrid extends DomiSMPPage { PageFactory.initElements(new AjaxElementLocatorFactory(driver, data.getTIMEOUT()), this); } + public SmallGrid getGrid() { + return new SmallGrid(driver, dataPanel); + } + public GridPagination getPagination() { return new GridPagination(driver, dataPanel); } diff --git a/domiSMP-ui-tests/src/main/java/ddsl/StorePage.java b/domiSMP-ui-tests/src/main/java/ddsl/StorePage.java new file mode 100644 index 0000000000000000000000000000000000000000..aaf37c84292428ba03a5411fc9f2d4ff2ea48e7b --- /dev/null +++ b/domiSMP-ui-tests/src/main/java/ddsl/StorePage.java @@ -0,0 +1,71 @@ +package ddsl; + +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.FindBy; + +public class StorePage extends PageWithGrid { + /** + * Common page used for Keystore and Truststore + */ + @FindBy(id = "publicKeyType_id") + private WebElement publicKeyTypeLbl; + @FindBy(id = "alias_id") + private WebElement aliasIdLbl; + @FindBy(id = "certificateId_id") + private WebElement smpCertificateIdLbl; + @FindBy(id = "subject_id") + private WebElement subjectNameLbl; + @FindBy(css = "certificate-panel [placeholder=\"Valid from date\"]") + private WebElement validFromLbl; + @FindBy(css = "certificate-panel [placeholder=\"Valid to date\"]") + private WebElement validToLbl; + @FindBy(id = "issuer_id") + private WebElement issuerLbl; + @FindBy(id = "servialNumber_id") + private WebElement serialNumberLbl; + @FindBy(id = "clrUrl_id") + private WebElement certificateRevolcationListURLlbl; + @FindBy(css = ".smp-warning-panel span") + private WebElement smpWarningLbl; + + public StorePage(WebDriver driver) { + super(driver); + } + + public String getPublicKeyTypeLbl() { + return publicKeyTypeLbl.getText(); + } + + public String getAliasIdLbl() { + return aliasIdLbl.getText(); + } + + public String getSmpCertificateIdLbl() { + return smpCertificateIdLbl.getText(); + } + + public String getSubjectNameLbl() { + return subjectNameLbl.getText(); + } + + public String getValidFromLbl() { + return validFromLbl.getText(); + } + + public String getValidToLbl() { + return validToLbl.getText(); + } + + public String getIssuerLbl() { + return issuerLbl.getText(); + } + + public String getSerialNumberLbl() { + return serialNumberLbl.getText(); + } + + public String getCertificateRevolcationListURLlbl() { + return certificateRevolcationListURLlbl.getText(); + } +} diff --git a/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/Grid/SmallGrid.java b/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/Grid/SmallGrid.java index b8487f411e797c70ffbd31de3d3dc4441d550eed..c9df4660ede02bdc0fbd9858d6888ffc6bd459e7 100644 --- a/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/Grid/SmallGrid.java +++ b/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/Grid/SmallGrid.java @@ -40,7 +40,7 @@ public class SmallGrid extends DComponent { return row.findElements(By.cssSelector("td")); } - public WebElement searchValueInColumn(String columnName, String value) { + public WebElement searchAndGetElementInColumn(String columnName, String value) { wait.forXMillis(100); Integer numOfPages = getGridPagination().getTotalPageNumber(); diff --git a/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/SetChangePasswordDialog.java b/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/SetChangePasswordDialog.java index cf2e8e8417b7a7430954d23b6cfeac077c543714..86a6775418a28e2673424d2a05a26413cf0740ec 100644 --- a/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/SetChangePasswordDialog.java +++ b/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/SetChangePasswordDialog.java @@ -7,7 +7,7 @@ import org.openqa.selenium.support.PageFactory; import org.openqa.selenium.support.pagefactory.AjaxElementLocatorFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import pages.profilePage.SuccesfullPasswordChangedPopup; +import pages.userSettings.SuccesfullPasswordChangedPopup; import java.util.ArrayList; import java.util.List; diff --git a/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/SideNavigationComponent.java b/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/SideNavigationComponent.java index b05e5b7e7a7e223e4c60ffd5feed27cf4accff1b..9cd2d792c10344bc92b0a87ca3ab9b2a27d5b628 100644 --- a/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/SideNavigationComponent.java +++ b/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/SideNavigationComponent.java @@ -10,12 +10,13 @@ import org.openqa.selenium.support.PageFactory; import org.openqa.selenium.support.pagefactory.AjaxElementLocatorFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import pages.DomainsPage.DomainsPage; -import pages.TruststorePage; -import pages.UsersPage; -import pages.editDomainsPage.EditDomainsPage; -import pages.profilePage.ProfilePage; -import pages.propertiesPage.PropertiesPage; +import pages.administration.EditDomainsPage; +import pages.systemSettings.TruststorePage; +import pages.systemSettings.UsersPage; +import pages.systemSettings.domainsPage.DomainsPage; +import pages.systemSettings.keyStorePage.KeystorePage; +import pages.systemSettings.propertiesPage.PropertiesPage; +import pages.userSettings.ProfilePage; import java.util.Objects; @@ -129,9 +130,11 @@ public class SideNavigationComponent extends DomiSMPPage { return (T) new DomainsPage(driver); } - // case SYSTEM_SETTINGS_KEYSTORE: - // expandSection(systemSettingsExpand); - // return new DLink(driver, keystoreLnk); + if (page == Pages.SYSTEM_SETTINGS_KEYSTORE) { + openSubmenu(systemSettingsExpand, keystoreLnk); + return (T) new KeystorePage(driver); + } + if (page == Pages.SYSTEM_SETTINGS_TRUSTSTORE) { openSubmenu(systemSettingsExpand, truststoreLnk); return (T) new TruststorePage(driver); diff --git a/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/commonComponents/members/MembersComponent.java b/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/commonComponents/members/MembersComponent.java index 34c0292c0e19736e67f28b9bbd7a07e51f34d708..3072a66eecb6ac0d2d0dd3f0d9cf0283a3786e91 100644 --- a/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/commonComponents/members/MembersComponent.java +++ b/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/commonComponents/members/MembersComponent.java @@ -39,14 +39,14 @@ public class MembersComponent extends DComponent { } public void removeUser(String username) throws Exception { - getMembersGrid().searchValueInColumn("Username", username).click(); + getMembersGrid().searchAndGetElementInColumn("Username", username).click(); weToDButton(removeMemberBtn).click(); ConfirmationDialog confirmationDialog = new ConfirmationDialog(driver); confirmationDialog.confirm(); } public void changeRoleOfUser(String username, String newRole) throws Exception { - getMembersGrid().searchValueInColumn("Username", username).click(); + getMembersGrid().searchAndGetElementInColumn("Username", username).click(); weToDButton(sidePanel.findElement(By.id("editButton"))).click(); getInviteMembersPopup().changeRole(newRole); diff --git a/domiSMP-ui-tests/src/main/java/ddsl/dobjects/DSelect.java b/domiSMP-ui-tests/src/main/java/ddsl/dobjects/DSelect.java index 13e1bb2d6954d611a3c040f97fc313c88bcef990..74bc2eb6f6677ba64838db8df2d3c808bdaa1352 100644 --- a/domiSMP-ui-tests/src/main/java/ddsl/dobjects/DSelect.java +++ b/domiSMP-ui-tests/src/main/java/ddsl/dobjects/DSelect.java @@ -24,6 +24,7 @@ public class DSelect extends DObject { if (forceSelection) { select.getWrappedElement().sendKeys(Keys.ENTER); } + wait.forXMillis(10); select.selectByVisibleText(value); } diff --git a/domiSMP-ui-tests/src/main/java/ddsl/enums/KeyStoreTypes.java b/domiSMP-ui-tests/src/main/java/ddsl/enums/KeyStoreTypes.java new file mode 100644 index 0000000000000000000000000000000000000000..1bf0d23a64ce46f3fbd5a6a1a5054b223d49edc0 --- /dev/null +++ b/domiSMP-ui-tests/src/main/java/ddsl/enums/KeyStoreTypes.java @@ -0,0 +1,7 @@ +package ddsl.enums; + +public enum KeyStoreTypes { + PKCS12, + JKS + +} diff --git a/domiSMP-ui-tests/src/main/java/pages/editDomainsPage/EditDomainsPage.java b/domiSMP-ui-tests/src/main/java/pages/administration/EditDomainsPage.java similarity index 86% rename from domiSMP-ui-tests/src/main/java/pages/editDomainsPage/EditDomainsPage.java rename to domiSMP-ui-tests/src/main/java/pages/administration/EditDomainsPage.java index 60915be694f858e0fbe36ed2640dec953e0fa5a9..c59a39cbf248e52bb041bf77266e58fe02ac8225 100644 --- a/domiSMP-ui-tests/src/main/java/pages/editDomainsPage/EditDomainsPage.java +++ b/domiSMP-ui-tests/src/main/java/pages/administration/EditDomainsPage.java @@ -1,4 +1,4 @@ -package pages.editDomainsPage; +package pages.administration; import ddsl.PageWithGrid; import org.openqa.selenium.WebDriver; diff --git a/domiSMP-ui-tests/src/main/java/pages/TruststorePage.java b/domiSMP-ui-tests/src/main/java/pages/systemSettings/TruststorePage.java similarity index 63% rename from domiSMP-ui-tests/src/main/java/pages/TruststorePage.java rename to domiSMP-ui-tests/src/main/java/pages/systemSettings/TruststorePage.java index f0e2053fb6a5880c53c52215f3d0355154ceffca..37565ccf084827da9c43338f58bc2c8298700f9c 100644 --- a/domiSMP-ui-tests/src/main/java/pages/TruststorePage.java +++ b/domiSMP-ui-tests/src/main/java/pages/systemSettings/TruststorePage.java @@ -1,7 +1,6 @@ -package pages; +package pages.systemSettings; -import ddsl.PageWithGrid; -import ddsl.dcomponents.Grid.SmallGrid; +import ddsl.StorePage; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.support.FindBy; @@ -9,31 +8,18 @@ import org.openqa.selenium.support.FindBy; import java.util.regex.Matcher; import java.util.regex.Pattern; -public class TruststorePage extends PageWithGrid { +public class TruststorePage extends StorePage { /** * Page object for the Truststorepage. This contains the locators of the page and the methods for the behaviour of the page */ - //TODO work in progress @FindBy(id = "custom-file-upload") private WebElement uploadInput; - @FindBy(id = "publicKeyType_id") - private WebElement publicKeyTypeLbl; - @FindBy(id = "alias_id") - private WebElement aliasIdLbl; - @FindBy(id = "certificateId_id") - private WebElement smpCertificateId; - @FindBy(id = "subject_id") - private WebElement subjectName; - public TruststorePage(WebDriver driver) { super(driver); } - public SmallGrid getGrid() { - return new SmallGrid(driver, dataPanel); - } public String addCertificateAndReturnAlias(String filePath) { uploadInput.sendKeys(filePath); diff --git a/domiSMP-ui-tests/src/main/java/pages/UsersPage.java b/domiSMP-ui-tests/src/main/java/pages/systemSettings/UsersPage.java similarity index 98% rename from domiSMP-ui-tests/src/main/java/pages/UsersPage.java rename to domiSMP-ui-tests/src/main/java/pages/systemSettings/UsersPage.java index d6d8ea1c9cdbdebef6cc373704c742339b19c6a4..e620cddba3e610ed47a0a561f20ae6626ca97516 100644 --- a/domiSMP-ui-tests/src/main/java/pages/UsersPage.java +++ b/domiSMP-ui-tests/src/main/java/pages/systemSettings/UsersPage.java @@ -1,4 +1,4 @@ -package pages; +package pages.systemSettings; import ddsl.PageWithGrid; import ddsl.dcomponents.commonComponents.UserDataCommonComponent; @@ -72,12 +72,10 @@ public class UsersPage extends PageWithGrid { public String getSelectedThemeValue() { return userData.getSelectedTheme(); - } public String getSelectedLocaleValue() { return userData.getSelectedLocale(); - } diff --git a/domiSMP-ui-tests/src/main/java/pages/DomainsPage/DomainTab.java b/domiSMP-ui-tests/src/main/java/pages/systemSettings/domainsPage/DomainTab.java similarity index 98% rename from domiSMP-ui-tests/src/main/java/pages/DomainsPage/DomainTab.java rename to domiSMP-ui-tests/src/main/java/pages/systemSettings/domainsPage/DomainTab.java index 1253fa58e73f6da23b45aa4dfc7df1b40fffc9a7..9db932540e41c0c2080bec01e0222f0d54010417 100644 --- a/domiSMP-ui-tests/src/main/java/pages/DomainsPage/DomainTab.java +++ b/domiSMP-ui-tests/src/main/java/pages/systemSettings/domainsPage/DomainTab.java @@ -1,4 +1,4 @@ -package pages.DomainsPage; +package pages.systemSettings.domainsPage; import ddsl.dcomponents.DComponent; import org.openqa.selenium.WebDriver; diff --git a/domiSMP-ui-tests/src/main/java/pages/DomainsPage/DomainsPage.java b/domiSMP-ui-tests/src/main/java/pages/systemSettings/domainsPage/DomainsPage.java similarity index 96% rename from domiSMP-ui-tests/src/main/java/pages/DomainsPage/DomainsPage.java rename to domiSMP-ui-tests/src/main/java/pages/systemSettings/domainsPage/DomainsPage.java index 542358520a99f4da879942b317b7444561e54362..45d32effe89dca9fcf84e2e9185d29fbbf9f58d1 100644 --- a/domiSMP-ui-tests/src/main/java/pages/DomainsPage/DomainsPage.java +++ b/domiSMP-ui-tests/src/main/java/pages/systemSettings/domainsPage/DomainsPage.java @@ -1,4 +1,4 @@ -package pages.DomainsPage; +package pages.systemSettings.domainsPage; import ddsl.PageWithGrid; import ddsl.dobjects.DButton; diff --git a/domiSMP-ui-tests/src/main/java/pages/DomainsPage/MembersTab.java b/domiSMP-ui-tests/src/main/java/pages/systemSettings/domainsPage/MembersTab.java similarity index 91% rename from domiSMP-ui-tests/src/main/java/pages/DomainsPage/MembersTab.java rename to domiSMP-ui-tests/src/main/java/pages/systemSettings/domainsPage/MembersTab.java index 8b2bd56518aa133d25f138bf95705dd6471191c3..bc8b23280832f54ac62ea132e38db4bd98388c61 100644 --- a/domiSMP-ui-tests/src/main/java/pages/DomainsPage/MembersTab.java +++ b/domiSMP-ui-tests/src/main/java/pages/systemSettings/domainsPage/MembersTab.java @@ -1,4 +1,4 @@ -package pages.DomainsPage; +package pages.systemSettings.domainsPage; import ddsl.dcomponents.commonComponents.members.MembersComponent; import org.openqa.selenium.WebDriver; diff --git a/domiSMP-ui-tests/src/main/java/pages/DomainsPage/ResourceTab.java b/domiSMP-ui-tests/src/main/java/pages/systemSettings/domainsPage/ResourceTab.java similarity index 97% rename from domiSMP-ui-tests/src/main/java/pages/DomainsPage/ResourceTab.java rename to domiSMP-ui-tests/src/main/java/pages/systemSettings/domainsPage/ResourceTab.java index 891b637331fa88c1223374e6fa9eab9911f8cf91..dda2784fa67aaf28be4e3a0fc176cc72100b9106 100644 --- a/domiSMP-ui-tests/src/main/java/pages/DomainsPage/ResourceTab.java +++ b/domiSMP-ui-tests/src/main/java/pages/systemSettings/domainsPage/ResourceTab.java @@ -1,4 +1,4 @@ -package pages.DomainsPage; +package pages.systemSettings.domainsPage; import ddsl.dcomponents.DComponent; import org.openqa.selenium.WebDriver; diff --git a/domiSMP-ui-tests/src/main/java/pages/DomainsPage/SMLIntegrationTab.java b/domiSMP-ui-tests/src/main/java/pages/systemSettings/domainsPage/SMLIntegrationTab.java similarity index 98% rename from domiSMP-ui-tests/src/main/java/pages/DomainsPage/SMLIntegrationTab.java rename to domiSMP-ui-tests/src/main/java/pages/systemSettings/domainsPage/SMLIntegrationTab.java index e40600c0947d257353ed057d1cfedf2c2500da1c..189097e989b0153a693bfae06ee06a3729386fe0 100644 --- a/domiSMP-ui-tests/src/main/java/pages/DomainsPage/SMLIntegrationTab.java +++ b/domiSMP-ui-tests/src/main/java/pages/systemSettings/domainsPage/SMLIntegrationTab.java @@ -1,4 +1,4 @@ -package pages.DomainsPage; +package pages.systemSettings.domainsPage; import ddsl.dcomponents.ConfirmationDialog; import ddsl.dcomponents.DComponent; diff --git a/domiSMP-ui-tests/src/main/java/pages/systemSettings/keyStorePage/KeyStoreImportDialog.java b/domiSMP-ui-tests/src/main/java/pages/systemSettings/keyStorePage/KeyStoreImportDialog.java new file mode 100644 index 0000000000000000000000000000000000000000..ef14d8e8dfdbd3388fb17c9fe8b2a8c93ca0be16 --- /dev/null +++ b/domiSMP-ui-tests/src/main/java/pages/systemSettings/keyStorePage/KeyStoreImportDialog.java @@ -0,0 +1,57 @@ +package pages.systemSettings.keyStorePage; + +import ddsl.dcomponents.DComponent; +import ddsl.enums.KeyStoreTypes; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.FindBy; +import org.openqa.selenium.support.PageFactory; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class KeyStoreImportDialog extends DComponent { + /** + * This is the page object for the Keystore import dialog. It contains the webelements and the methods specific to the dialog. + */ + private final static Logger LOG = LoggerFactory.getLogger(KeyStoreImportDialog.class); + + @FindBy(id = "keystore-file-upload") + private WebElement importKeyStoreInput; + @FindBy(id = "keystoreFilename") + private WebElement keyStoreFileNameLbl; + @FindBy(id = "keystoretype_id") + private WebElement keyStoreTypeDdl; + @FindBy(id = "password_id") + private WebElement passwordIdInput; + @FindBy(css = "mat-dialog-actions button:first-of-type") + private WebElement importBtn; + + public KeyStoreImportDialog(WebDriver driver) { + super(driver); + PageFactory.initElements(driver, this); + + } + + public void addCertificate(String filepath, KeyStoreTypes keyStoreTypes, String password) { + try { + importKeyStoreInput.sendKeys(filepath); + weToDSelect(keyStoreTypeDdl).selectValue(keyStoreTypes.toString()); + weToDInput(passwordIdInput).fill(password); + + } catch (Exception e) { + throw new RuntimeException(e); + } + } + + public void clickImport() { + try { + if (importBtn.isEnabled()) { + weToDButton(importBtn).click(); + } + } catch (Exception e) { + LOG.error("Could not press Import Keystore button", e); + throw new RuntimeException(e); + } + } +} + diff --git a/domiSMP-ui-tests/src/main/java/pages/systemSettings/keyStorePage/KeystorePage.java b/domiSMP-ui-tests/src/main/java/pages/systemSettings/keyStorePage/KeystorePage.java new file mode 100644 index 0000000000000000000000000000000000000000..fe709ba5523428f1524449663d9a58fcc8adedd7 --- /dev/null +++ b/domiSMP-ui-tests/src/main/java/pages/systemSettings/keyStorePage/KeystorePage.java @@ -0,0 +1,17 @@ +package pages.systemSettings.keyStorePage; + +import ddsl.StorePage; +import org.openqa.selenium.WebDriver; + + +public class KeystorePage extends StorePage { + + public KeystorePage(WebDriver driver) { + super(driver); + } + + public KeyStoreImportDialog clickImportkeyStoreBtn() throws Exception { + weToDButton(addBtn).click(); + return new KeyStoreImportDialog(driver); + } +} diff --git a/domiSMP-ui-tests/src/main/java/pages/propertiesPage/PropGrid.java b/domiSMP-ui-tests/src/main/java/pages/systemSettings/propertiesPage/PropGrid.java similarity index 93% rename from domiSMP-ui-tests/src/main/java/pages/propertiesPage/PropGrid.java rename to domiSMP-ui-tests/src/main/java/pages/systemSettings/propertiesPage/PropGrid.java index 2fcbff624a6ca11161eb96d5c64ae88a396e2677..68b275f5f72a2d397bd629d97599a7dcc9cdf8ed 100644 --- a/domiSMP-ui-tests/src/main/java/pages/propertiesPage/PropGrid.java +++ b/domiSMP-ui-tests/src/main/java/pages/systemSettings/propertiesPage/PropGrid.java @@ -1,4 +1,4 @@ -package pages.propertiesPage; +package pages.systemSettings.propertiesPage; import ddsl.dcomponents.Grid.BasicGrid; import org.openqa.selenium.WebDriver; diff --git a/domiSMP-ui-tests/src/main/java/pages/propertiesPage/PropertiesPage.java b/domiSMP-ui-tests/src/main/java/pages/systemSettings/propertiesPage/PropertiesPage.java similarity index 98% rename from domiSMP-ui-tests/src/main/java/pages/propertiesPage/PropertiesPage.java rename to domiSMP-ui-tests/src/main/java/pages/systemSettings/propertiesPage/PropertiesPage.java index 85d561f4996bca624532748c4ec4c96f4df33d4a..fc8eebe09d2410ea040397b3d3d4a317b3ff7db4 100644 --- a/domiSMP-ui-tests/src/main/java/pages/propertiesPage/PropertiesPage.java +++ b/domiSMP-ui-tests/src/main/java/pages/systemSettings/propertiesPage/PropertiesPage.java @@ -1,4 +1,4 @@ -package pages.propertiesPage; +package pages.systemSettings.propertiesPage; import ddsl.DomiSMPPage; import ddsl.dcomponents.ConfirmationDialog; diff --git a/domiSMP-ui-tests/src/main/java/pages/propertiesPage/PropertyPopup.java b/domiSMP-ui-tests/src/main/java/pages/systemSettings/propertiesPage/PropertyPopup.java similarity index 80% rename from domiSMP-ui-tests/src/main/java/pages/propertiesPage/PropertyPopup.java rename to domiSMP-ui-tests/src/main/java/pages/systemSettings/propertiesPage/PropertyPopup.java index 0db1c40dde60038d01ca4ac46602cdfe1517b494..663c2ba2417dcb4da80d01160e1d0345dafb8713 100644 --- a/domiSMP-ui-tests/src/main/java/pages/propertiesPage/PropertyPopup.java +++ b/domiSMP-ui-tests/src/main/java/pages/systemSettings/propertiesPage/PropertyPopup.java @@ -1,7 +1,8 @@ -package pages.propertiesPage; +package pages.systemSettings.propertiesPage; import ddsl.dcomponents.DComponent; import org.openqa.selenium.JavascriptExecutor; +import org.openqa.selenium.NoSuchElementException; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.support.FindBy; @@ -52,15 +53,31 @@ public class PropertyPopup extends DComponent { } } - public PropertiesPage clickOK() throws Exception { + public void clickOK() throws Exception { LOG.info("click OK"); wait.forElementToBeClickable(popupOkBtn); weToDButton(popupOkBtn).click(); - if (!errorMessageLbl.isDisplayed()) { - wait.forElementToBeGone(popupOkBtn); - return new PropertiesPage(driver); + try { + if (!errorMessageLbl.isDisplayed()) { + wait.forElementToBeGone(popupOkBtn); + } + } catch (RuntimeException e) { + LOG.debug("No error are present"); + } + } + + public void clickOK2() throws Exception { + LOG.info("click OK"); + wait.forElementToBeClickable(popupOkBtn); + weToDButton(popupOkBtn).click(); + try { + if (!errorMessageLbl.isDisplayed()) { + wait.forElementToBeGone(popupOkBtn); + } + } catch (NoSuchElementException e) { + throw new RuntimeException(e); } - return null; + } public PropertiesPage clickCancel() { diff --git a/domiSMP-ui-tests/src/main/java/pages/profilePage/ProfilePage.java b/domiSMP-ui-tests/src/main/java/pages/userSettings/ProfilePage.java similarity index 95% rename from domiSMP-ui-tests/src/main/java/pages/profilePage/ProfilePage.java rename to domiSMP-ui-tests/src/main/java/pages/userSettings/ProfilePage.java index 918e72fa5faf06926b19a20c7da48501074a92e2..51572c69746a912a6c50f3906d8bf05d8ad282ca 100644 --- a/domiSMP-ui-tests/src/main/java/pages/profilePage/ProfilePage.java +++ b/domiSMP-ui-tests/src/main/java/pages/userSettings/ProfilePage.java @@ -1,4 +1,4 @@ -package pages.profilePage; +package pages.userSettings; import ddsl.PageWithGrid; import ddsl.dcomponents.commonComponents.UserDataCommonComponent; @@ -12,8 +12,6 @@ public class ProfilePage extends PageWithGrid { */ private final static Logger LOG = LoggerFactory.getLogger(ProfilePage.class); public UserDataCommonComponent userData; - - public ProfilePage(WebDriver driver) { super(driver); userData = new UserDataCommonComponent(driver); diff --git a/domiSMP-ui-tests/src/main/java/pages/profilePage/SuccesfullPasswordChangedPopup.java b/domiSMP-ui-tests/src/main/java/pages/userSettings/SuccesfullPasswordChangedPopup.java similarity index 97% rename from domiSMP-ui-tests/src/main/java/pages/profilePage/SuccesfullPasswordChangedPopup.java rename to domiSMP-ui-tests/src/main/java/pages/userSettings/SuccesfullPasswordChangedPopup.java index 0d88b9571012caf158074cf7b87826a43f4ddbf4..b619886ca5e04c605cd6953f177bb6b24a33773b 100644 --- a/domiSMP-ui-tests/src/main/java/pages/profilePage/SuccesfullPasswordChangedPopup.java +++ b/domiSMP-ui-tests/src/main/java/pages/userSettings/SuccesfullPasswordChangedPopup.java @@ -1,4 +1,4 @@ -package pages.profilePage; +package pages.userSettings; import ddsl.dcomponents.DComponent; import org.openqa.selenium.WebDriver; diff --git a/domiSMP-ui-tests/src/main/resources/keystore/asdasdsadasda.pkcs12 b/domiSMP-ui-tests/src/main/resources/keystore/asdasdsadasda.pkcs12 new file mode 100644 index 0000000000000000000000000000000000000000..54b16d78eac3d42387776857b95287a01effc620 Binary files /dev/null and b/domiSMP-ui-tests/src/main/resources/keystore/asdasdsadasda.pkcs12 differ diff --git a/domiSMP-ui-tests/src/main/resources/keystore/expired_keystore_JKS.jks b/domiSMP-ui-tests/src/main/resources/keystore/expired_keystore_JKS.jks new file mode 100644 index 0000000000000000000000000000000000000000..67238a542de8c6cc42b8ee0862a0e85e16732f18 Binary files /dev/null and b/domiSMP-ui-tests/src/main/resources/keystore/expired_keystore_JKS.jks differ diff --git a/domiSMP-ui-tests/src/main/resources/keystore/gateway_keystore.jks b/domiSMP-ui-tests/src/main/resources/keystore/gateway_keystore.jks new file mode 100644 index 0000000000000000000000000000000000000000..7bc7aa87a8ca3973ea7c7c65016211dd164a05bc Binary files /dev/null and b/domiSMP-ui-tests/src/main/resources/keystore/gateway_keystore.jks differ diff --git a/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/DomainsPgTests.java b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/DomainsPgTests.java index 696d5b092ef9f42fa07aca88ef61599e1b2eb2b7..d56c1473b0822c61601fe7888a4bfab9116a095c 100644 --- a/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/DomainsPgTests.java +++ b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/DomainsPgTests.java @@ -4,12 +4,13 @@ import ddsl.DomiSMPPage; import ddsl.enums.Pages; import domiSMPTests.SeleniumTest; import org.openqa.selenium.WebElement; -import org.testng.Assert; +import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; -import pages.DomainsPage.DomainsPage; +import org.testng.asserts.SoftAssert; import pages.LoginPage; import pages.SmlPage; -import pages.editDomainsPage.EditDomainsPage; +import pages.administration.EditDomainsPage; +import pages.systemSettings.domainsPage.DomainsPage; import rest.models.DomainModel; import rest.models.UserModel; @@ -18,98 +19,99 @@ public class DomainsPgTests extends SeleniumTest { /** * This class has the tests against Domains Page */ + DomiSMPPage homePage; + LoginPage loginPage; + DomainsPage domainsPage; + SoftAssert soft; + + @BeforeMethod(alwaysRun = true) + public void beforeTest() throws Exception { + soft = new SoftAssert(); + homePage = new DomiSMPPage(driver); + loginPage = homePage.goToLoginPage(); + loginPage.login(data.getAdminUser().get("username"), data.getAdminUser().get("password")); + domainsPage = homePage.getSidebar().navigateTo(Pages.SYSTEM_SETTINGS_DOMAINS); + } + @Test(description = "DOM-01 System admin is able to create Domains") public void SystemAdminIsAbleToCreateDomains() throws Exception { DomainModel domainModel = DomainModel.generatePublicDomainModelWithoutSML(); - DomiSMPPage homePage = new DomiSMPPage(driver); - - LoginPage loginPage = homePage.goToLoginPage(); - loginPage.login(data.getAdminUser().get("username"), data.getAdminUser().get("password")); - DomainsPage domainsPage = homePage.getSidebar().navigateTo(Pages.SYSTEM_SETTINGS_DOMAINS); domainsPage.getCreateDomainBtn().click(); domainsPage.getDomainTab().fillDomainData(domainModel); domainsPage.getDomainTab().saveChanges(); String alert = domainsPage.getAlertMessageAndClose(); - Assert.assertEquals(alert, "Domain: [" + domainModel.getDomainCode() + "] was created!"); + soft.assertEquals(alert, "Domain: [" + domainModel.getDomainCode() + "] was created!"); - domainsPage.getDataPanelGrid().searchValueInColumn("Domain code", domainModel.getDomainCode()).click(); - Assert.assertEquals(domainModel.getSignatureKeyAlias(), domainsPage.getDomainTab().getResponseSignatureCertificateSelectedValue()); - Assert.assertEquals(domainModel.getVisibility(), domainsPage.getDomainTab().getVisibilityOfDomainSelectedValue()); - Assert.assertEquals("To complete domain configuration, please select at least one resource type from the Resource Types tab", domainsPage.getDomainWarningMessage()); + domainsPage.getDataPanelGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode()).click(); + soft.assertEquals(domainModel.getSignatureKeyAlias(), domainsPage.getDomainTab().getResponseSignatureCertificateSelectedValue()); + soft.assertEquals(domainModel.getVisibility(), domainsPage.getDomainTab().getVisibilityOfDomainSelectedValue()); + soft.assertEquals("To complete domain configuration, please select at least one resource type from the Resource Types tab", domainsPage.getDomainWarningMessage()); + soft.assertAll(); } @Test(description = "DOM-02 System admin can integrates domain with SMP") public void SystemAdminCanIntegrateDomainWithSMP() throws Exception { DomainModel domainModel = DomainModel.generatePublicDomainModelWithSML(); - DomiSMPPage homePage = new DomiSMPPage(driver); - LoginPage loginPage = homePage.goToLoginPage(); - loginPage.login(data.getAdminUser().get("username"), data.getAdminUser().get("password")); - DomainsPage domainsPage = homePage.getSidebar().navigateTo(Pages.SYSTEM_SETTINGS_DOMAINS); domainsPage.getCreateDomainBtn().click(); domainsPage.getDomainTab().fillDomainData(domainModel); domainsPage.getDomainTab().saveChanges(); String alert = domainsPage.getAlertMessageAndClose(); - Assert.assertEquals(alert, "Domain: [" + domainModel.getDomainCode() + "] was created!"); + soft.assertEquals(alert, "Domain: [" + domainModel.getDomainCode() + "] was created!"); - domainsPage.getDataPanelGrid().searchValueInColumn("Domain code", domainModel.getDomainCode()).click(); + domainsPage.getDataPanelGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode()).click(); domainsPage.goToTab("SML integration"); domainsPage.getSMLIntegrationTab().fillSMLIntegrationTab(domainModel); domainsPage.getSMLIntegrationTab().saveChanges(); domainsPage.getSMLIntegrationTab().registerToSML(); alert = domainsPage.getAlertMessageAndClose(); - Assert.assertEquals(alert, "Domain [" + domainModel.getDomainCode() + "] registered to sml!"); + soft.assertEquals(alert, "Domain [" + domainModel.getDomainCode() + "] registered to sml!"); //Go to SML driver.get(data.getSMLUrl()); SmlPage smlPage = new SmlPage(driver); - Assert.assertTrue(smlPage.isDomainRegistered(domainModel), "Domain is not present in SML"); + soft.assertTrue(smlPage.isDomainRegistered(domainModel), "Domain is not present in SML"); + soft.assertAll(); } @Test(description = "DOM-03 System admin is able to Invite/Remove users from domains") public void SystemAdminIsAbleToInviteRemoveUsersFromDomains() throws Exception { UserModel normalUser = UserModel.generateUserWithUSERrole(); - - rest.users().createUser(normalUser); - DomainModel domainModel = DomainModel.generatePublicDomainModelWithoutSML(); - DomiSMPPage homePage = new DomiSMPPage(driver); - LoginPage loginPage = homePage.goToLoginPage(); - loginPage.login(data.getAdminUser().get("username"), data.getAdminUser().get("password")); + rest.users().createUser(normalUser); - DomainsPage domainsPage = homePage.getSidebar().navigateTo(Pages.SYSTEM_SETTINGS_DOMAINS); domainsPage.getCreateDomainBtn().click(); domainsPage.getDomainTab().fillDomainData(domainModel); domainsPage.getDomainTab().saveChanges(); String alert = domainsPage.getAlertMessageAndClose(); - Assert.assertEquals(alert, "Domain: [" + domainModel.getDomainCode() + "] was created!"); + soft.assertEquals(alert, "Domain: [" + domainModel.getDomainCode() + "] was created!"); //Invite user as VIEW and check if he has admin rights for domain domainsPage.goToTab("Members"); domainsPage.getMembersTab().getInviteMemberBtn().click(); domainsPage.getMembersTab().getInviteMembersPopup().selectMember(normalUser.getUsername(), "VIEWER"); - WebElement userMemberElement = domainsPage.getMembersTab().getMembersGrid().searchValueInColumn("Username", normalUser.getUsername()); - Assert.assertNotNull(userMemberElement, "Invited user not found"); + WebElement userMemberElement = domainsPage.getMembersTab().getMembersGrid().searchAndGetElementInColumn("Username", normalUser.getUsername()); + soft.assertNotNull(userMemberElement, "Invited user not found"); //check if user has admin rights to domain as VIEWER homePage.logout(); homePage.goToLoginPage(); loginPage.login(normalUser.getUsername(), data.getNewPassword()); EditDomainsPage editDomainsPage = homePage.getSidebar().navigateTo(Pages.ADMINISTRATION_EDIT_DOMAINS); - WebElement domainElement = editDomainsPage.getDataPanelGrid().searchValueInColumn("Domain code", domainModel.getDomainCode()); - Assert.assertNull(domainElement, "Domain found for user which doesn't have rights"); + WebElement domainElement = editDomainsPage.getDataPanelGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode()); + soft.assertNull(domainElement, "Domain found for user which doesn't have rights"); homePage.logout(); loginPage = homePage.goToLoginPage(); loginPage.login(data.getAdminUser().get("username"), data.getAdminUser().get("password")); domainsPage = homePage.getSidebar().navigateTo(Pages.SYSTEM_SETTINGS_DOMAINS); - domainsPage.getDataPanelGrid().searchValueInColumn("Domain code", domainModel.getDomainCode()).click(); + domainsPage.getDataPanelGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode()).click(); domainsPage.goToTab("Members"); domainsPage.getMembersTab().changeRoleOfUser(normalUser.getUsername(), "ADMIN"); @@ -118,8 +120,8 @@ public class DomainsPgTests extends SeleniumTest { homePage.goToLoginPage(); loginPage.login(normalUser.getUsername(), data.getNewPassword()); editDomainsPage = homePage.getSidebar().navigateTo(Pages.ADMINISTRATION_EDIT_DOMAINS); - domainElement = editDomainsPage.getDataPanelGrid().searchValueInColumn("Domain code", domainModel.getDomainCode()); - Assert.assertNotNull(domainElement, "Domain found for user which doesn't have rights"); + domainElement = editDomainsPage.getDataPanelGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode()); + soft.assertNotNull(domainElement, "Domain found for user which doesn't have rights"); //Remove member user and check if he has access to the domain @@ -127,25 +129,22 @@ public class DomainsPgTests extends SeleniumTest { homePage.goToLoginPage(); loginPage.login(data.getAdminUser().get("username"), data.getAdminUser().get("password")); domainsPage = homePage.getSidebar().navigateTo(Pages.SYSTEM_SETTINGS_DOMAINS); - domainsPage.getDataPanelGrid().searchValueInColumn("Domain code", domainModel.getDomainCode()).click(); + domainsPage.getDataPanelGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode()).click(); domainsPage.goToTab("Members"); domainsPage.getMembersTab().removeUser(normalUser.getUsername()); - userMemberElement = domainsPage.getMembersTab().getMembersGrid().searchValueInColumn("Username", normalUser.getUsername()); - Assert.assertNull(userMemberElement, "Domain found for user which doesn't have rights"); + userMemberElement = domainsPage.getMembersTab().getMembersGrid().searchAndGetElementInColumn("Username", normalUser.getUsername()); + soft.assertNull(userMemberElement, "Domain found for user which doesn't have rights"); homePage.logout(); homePage.goToLoginPage(); loginPage.login(normalUser.getUsername(), data.getNewPassword()); editDomainsPage = homePage.getSidebar().navigateTo(Pages.ADMINISTRATION_EDIT_DOMAINS); - domainElement = editDomainsPage.getDataPanelGrid().searchValueInColumn("Domain code", domainModel.getDomainCode()); - Assert.assertNull(domainElement, "Domain found for user which doesn't have rights"); + domainElement = editDomainsPage.getDataPanelGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode()); + soft.assertNull(domainElement, "Domain found for user which doesn't have rights"); + soft.assertAll(); } - @Test(description = "DOM-03 System admin is able to Invite/Remove users from domains") - public void EditRsource() throws Exception { - - } } \ No newline at end of file diff --git a/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/KeystorePgTests.java b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/KeystorePgTests.java new file mode 100644 index 0000000000000000000000000000000000000000..ade1185ab1f488cb8cc7c311a199772ed51f45b2 --- /dev/null +++ b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/KeystorePgTests.java @@ -0,0 +1,50 @@ +package domiSMPTests.ui; + +import ddsl.DomiSMPPage; +import ddsl.enums.Pages; +import domiSMPTests.SeleniumTest; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.Test; +import org.testng.asserts.SoftAssert; +import pages.LoginPage; +import pages.systemSettings.keyStorePage.KeyStoreImportDialog; +import pages.systemSettings.keyStorePage.KeystorePage; +import rest.models.UserModel; +import utils.FileUtils; + +public class KeystorePgTests extends SeleniumTest { + + DomiSMPPage homePage; + UserModel adminUser; + KeystorePage keystorePage; + SoftAssert soft; + + @BeforeClass(alwaysRun = true) + public void beforeClass() { + adminUser = UserModel.generateUserWithADMINrole(); + rest.users().createUser(adminUser); + } + + @BeforeMethod(alwaysRun = true) + public void beforeTest() throws Exception { + soft = new SoftAssert(); + homePage = new DomiSMPPage(driver); + LoginPage loginPage = homePage.goToLoginPage(); + loginPage.login(adminUser.getUsername(), data.getNewPassword()); + keystorePage = homePage.getSidebar().navigateTo(Pages.SYSTEM_SETTINGS_KEYSTORE); + } + + //TODO: wait until the mat-select for certificate type is changed to select + @Test(description = "KEYS-02 System admin is able to import PKCS 12 Keystore") + public void SystemAdminIsAbleToImportPKCS12() throws Exception { + String path = FileUtils.getAbsolutePath("./src/main/resources/keystore/expired_keystore_JKS.jks"); + + KeyStoreImportDialog keyStoreImportDialog = keystorePage.clickImportkeyStoreBtn(); + //keyStoreImportDialog.addCertificate(path, KeyStoreTypes.JKS, "test123"); + //keyStoreImportDialog.clickImport(); + + + } + +} diff --git a/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/ProfilePgTests.java b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/ProfilePgTests.java index 6a2a64793f971aa5ccfc7d4b346fd7bc5458e1fd..4cf0a1fb1fe8075a5b286de424a9c88f4726d7d7 100644 --- a/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/ProfilePgTests.java +++ b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/ProfilePgTests.java @@ -6,9 +6,9 @@ import domiSMPTests.SeleniumTest; import org.testng.Assert; import org.testng.annotations.Test; import pages.LoginPage; -import pages.profilePage.ProfilePage; -import pages.propertiesPage.PropertiesPage; -import pages.propertiesPage.PropertyPopup; +import pages.systemSettings.propertiesPage.PropertiesPage; +import pages.systemSettings.propertiesPage.PropertyPopup; +import pages.userSettings.ProfilePage; import rest.models.UserModel; import utils.Generator; diff --git a/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/PropertiesPgTests.java b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/PropertiesPgTests.java index fdb0429bfb8d2536cb5f3dec2998abcbb8577c95..ac82632da55e6f9cd7272988c540df476100333f 100644 --- a/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/PropertiesPgTests.java +++ b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/PropertiesPgTests.java @@ -8,8 +8,8 @@ import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; import org.testng.asserts.SoftAssert; import pages.LoginPage; -import pages.propertiesPage.PropertiesPage; -import pages.propertiesPage.PropertyPopup; +import pages.systemSettings.propertiesPage.PropertiesPage; +import pages.systemSettings.propertiesPage.PropertyPopup; import rest.models.UserModel; import utils.Generator; diff --git a/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/TrustorePgTests.java b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/TrustorePgTests.java index 27bb41cc57d53281b88d6f1b69651fefde72eccd..eab74a9f293741221809091076bef77398dd8a0e 100644 --- a/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/TrustorePgTests.java +++ b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/TrustorePgTests.java @@ -3,20 +3,20 @@ package domiSMPTests.ui; import ddsl.DomiSMPPage; import ddsl.enums.Pages; import domiSMPTests.SeleniumTest; -import org.testng.Assert; import org.testng.annotations.Test; +import org.testng.asserts.SoftAssert; import pages.LoginPage; -import pages.TruststorePage; +import pages.systemSettings.TruststorePage; import utils.FileUtils; public class TrustorePgTests extends SeleniumTest { - //TODO work in progress + //TODO work in progress - wait for input elements to get text @Test(description = "TRST-01 System admin is able to import certificates") public void SystemAdminIsAbleToImportCertificates() throws Exception { - + SoftAssert soft = new SoftAssert(); DomiSMPPage homePage = new DomiSMPPage(driver); LoginPage loginPage = homePage.goToLoginPage(); @@ -26,7 +26,13 @@ public class TrustorePgTests extends SeleniumTest { String path = FileUtils.getAbsolutePath("./src/main/resources/truststore/test.cer"); String certificateALias = truststorepage.addCertificateAndReturnAlias(path); - Assert.assertNotNull(certificateALias); + soft.assertNotNull(certificateALias); + // soft.assertEquals(truststorepage.getPublicKeyTypeLbl(), "RSA"); + // soft.assertEquals(truststorepage.getAliasIdLbl(), "smp_domain_02"); + + + soft.assertAll(); + } diff --git a/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/UsersPgTests.java b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/UsersPgTests.java index 013bfef98783ee39fbe59671b76dfbb0386cdf97..3eb0429a518db76ac368f35e2c23b7d92e154abd 100644 --- a/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/UsersPgTests.java +++ b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/UsersPgTests.java @@ -7,7 +7,7 @@ import org.openqa.selenium.WebElement; import org.testng.Assert; import org.testng.annotations.Test; import pages.LoginPage; -import pages.UsersPage; +import pages.systemSettings.UsersPage; import rest.models.UserModel; public class UsersPgTests extends SeleniumTest { @@ -25,7 +25,7 @@ public class UsersPgTests extends SeleniumTest { usersPage.refreshPage(); // usersPage.filter(adminNewUserData.getUsername()); - WebElement newUser = usersPage.getDataPanelGrid().searchValueInColumn("Username", adminNewUserData.getUsername()); + WebElement newUser = usersPage.getDataPanelGrid().searchAndGetElementInColumn("Username", adminNewUserData.getUsername()); Assert.assertNotNull(newUser); newUser.click();