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 2ba567b4d4f5a2fc2432e0d47a48c20913994df3..aa9ca5eff99d0788a0d366394746ec8716dc3669 100644 --- a/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/SideNavigationComponent.java +++ b/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/SideNavigationComponent.java @@ -10,6 +10,7 @@ import org.openqa.selenium.support.PageFactory; import org.openqa.selenium.support.pagefactory.AjaxElementLocatorFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import pages.TruststorePage; import pages.UsersPage; import pages.domainsPage.DomainsPage; import pages.editDomainsPage.EditDomainsPage; @@ -127,9 +128,10 @@ public class SideNavigationComponent extends DomiSMPPage { // case SYSTEM_SETTINGS_KEYSTORE: // expandSection(systemSettingsExpand); // return new DLink(driver, keystoreLnk); - // case SYSTEM_SETTINGS_TRUSTSTORE: - // expandSection(systemSettingsExpand); - // return new DLink(driver, truststoreLnk); + if (page == Pages.SYSTEM_SETTINGS_TRUSTSTORE) { + openSubmenu(systemSettingsExpand, truststoreLnk); + return (T) new TruststorePage(driver); + } // case SYSTEM_SETTINGS_EXTENSIONS: // expandSection(systemSettingsExpand); // return new DLink(driver, extensionsLnk); diff --git a/domiSMP-ui-tests/src/main/java/pages/TruststorePage.java b/domiSMP-ui-tests/src/main/java/pages/TruststorePage.java new file mode 100644 index 0000000000000000000000000000000000000000..f0e2053fb6a5880c53c52215f3d0355154ceffca --- /dev/null +++ b/domiSMP-ui-tests/src/main/java/pages/TruststorePage.java @@ -0,0 +1,52 @@ +package pages; + +import ddsl.PageWithGrid; +import ddsl.dcomponents.Grid.SmallGrid; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.FindBy; + +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class TruststorePage extends PageWithGrid { + /** + * 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); + String certificateAlias = getAlertMessageAndClose(); + + Pattern pattern = Pattern.compile("(?<=alias \\[)(.*?)(?=\\])"); + Matcher matcher = pattern.matcher(certificateAlias); + if (matcher.find()) { + String result = matcher.group(1); + return result; + } + return null; + } + + +} diff --git a/domiSMP-ui-tests/src/main/java/utils/FileUtils.java b/domiSMP-ui-tests/src/main/java/utils/FileUtils.java new file mode 100644 index 0000000000000000000000000000000000000000..605ad4bff868455be0c06a4451e1b15ef8e982d3 --- /dev/null +++ b/domiSMP-ui-tests/src/main/java/utils/FileUtils.java @@ -0,0 +1,10 @@ +package utils; + +import java.io.File; + +public class FileUtils { + public static String getAbsolutePath(String relativePath) { + return new File(relativePath).getAbsolutePath(); + } + +} diff --git a/domiSMP-ui-tests/src/main/resources/truststore/test.cer b/domiSMP-ui-tests/src/main/resources/truststore/test.cer new file mode 100644 index 0000000000000000000000000000000000000000..4082e07fbd6fd5bda3f9676a5aca06aa6f519d12 --- /dev/null +++ b/domiSMP-ui-tests/src/main/resources/truststore/test.cer @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE----- +MIICyjCCAbKgAwIBAgIEX3SoITANBgkqhkiG9w0BAQsFADAnMQswCQYDVQQGEwJC +RTELMAkGA1UECwwCU1QxCzAJBgNVBAMMAlRFMB4XDTIwMDkzMDE1NDUzN1oXDTIx +MDkzMDE1NDUzN1owJzELMAkGA1UEBhMCQkUxCzAJBgNVBAsMAlNUMQswCQYDVQQD +DAJURTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKPhUN8vXynyj41Y +W8S+KIYqz+9TOyaVW2blAEqc3jiN83baPBnjEqPQjnTuWGTBE4jV4rR9FGjp48z9 +evhEvhoKjntzmN6UnsWELMFC6l3JgP6fci7WdEgS3gw7lgYxfbU4VNXtC4cSRbkD +vV5ccZa3EW3FzRk9PWRCL18xdh3BC/vwZ+FZ85Vv80F1PdO7gu+jPihT4lkWrZ0j +8dVUoMtwul5yXXrTR/cePJjG7jo+lamy7bIiBYxHFYq79ZbVaYfpjuhIsd83LR8u +LV3DrSFcSJ7SUPBWzEwLWh57SfnnEfy+CApufWioYgEkRoV0v6gvEO3cBRwyMenH +V4FuhncCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAHCnhGR9VlKSDmQw2j/tSwdOc +nfhctdOZNvlLzUBIPC4S4w49WtegwQEdxSN2+X/icJTJGUnnxeC3GPamH/2bOG5j +hw+5BYDYj3PfRHwvvhA/W2HwRXWdR4/WqVZhNKYI4qp1+zKV5B5oKmpy/K08aele +tlMSP4e8Pu9cABa3mhMj8oEC/DEkV44yTGphnNnKyBlCaL9vRzRJzHEzLV/RC8H2 +RpJrS3m8DTUaIsp+Ysm3j+hyYlUrd4+Yt/LDuyI2ZwsyRq/leaHJe13BguUniu73 +XXHsZEj9hLkTpclz7q0g38XqYiMr4bizHi02sDujpzpACo/iec8PUeB3aAsrhA== +-----END CERTIFICATE----- diff --git a/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/TrustorePgTests.java b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/TrustorePgTests.java new file mode 100644 index 0000000000000000000000000000000000000000..27bb41cc57d53281b88d6f1b69651fefde72eccd --- /dev/null +++ b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/TrustorePgTests.java @@ -0,0 +1,33 @@ +package domiSMPTests.ui; + +import ddsl.DomiSMPPage; +import ddsl.enums.Pages; +import domiSMPTests.SeleniumTest; +import org.testng.Assert; +import org.testng.annotations.Test; +import pages.LoginPage; +import pages.TruststorePage; +import utils.FileUtils; + +public class TrustorePgTests extends SeleniumTest { + + //TODO work in progress + + @Test(description = "TRST-01 System admin is able to import certificates") + public void SystemAdminIsAbleToImportCertificates() throws Exception { + + + DomiSMPPage homePage = new DomiSMPPage(driver); + + LoginPage loginPage = homePage.goToLoginPage(); + loginPage.login(data.getAdminUser().get("username"), data.getAdminUser().get("password")); + + TruststorePage truststorepage = homePage.getSidebar().navigateTo(Pages.SYSTEM_SETTINGS_TRUSTSTORE); + String path = FileUtils.getAbsolutePath("./src/main/resources/truststore/test.cer"); + + String certificateALias = truststorepage.addCertificateAndReturnAlias(path); + Assert.assertNotNull(certificateALias); + + } + +}