From f9bc5b4cae05c0c67f77ff5078b5f1ec94a9f77e Mon Sep 17 00:00:00 2001
From: Mihai BOZ <Mihai.BOZ@ext.ec.europa.eu>
Date: Thu, 28 Sep 2023 16:05:13 +0300
Subject: [PATCH] fixed test TRST-01 System admin is able to import
 certificates ADDED TRST-02 System admin is able to import duplicated
 certificates

---
 .../main/java/ddsl/CommonCertificatePage.java | 18 ++++----
 .../pages/systemSettings/TruststorePage.java  |  5 ++-
 .../{test.cer => expiredCertificate.cer}      |  0
 .../resources/truststore/validCertificate.cer | 19 ++++++++
 .../java/domiSMPTests/ui/KeystorePgTests.java |  2 +
 .../java/domiSMPTests/ui/TrustorePgTests.java | 44 ++++++++++++++++---
 6 files changed, 73 insertions(+), 15 deletions(-)
 rename domiSMP-ui-tests/src/main/resources/truststore/{test.cer => expiredCertificate.cer} (100%)
 create mode 100644 domiSMP-ui-tests/src/main/resources/truststore/validCertificate.cer

diff --git a/domiSMP-ui-tests/src/main/java/ddsl/CommonCertificatePage.java b/domiSMP-ui-tests/src/main/java/ddsl/CommonCertificatePage.java
index 3ca28b4b8..933925d0b 100644
--- a/domiSMP-ui-tests/src/main/java/ddsl/CommonCertificatePage.java
+++ b/domiSMP-ui-tests/src/main/java/ddsl/CommonCertificatePage.java
@@ -34,38 +34,38 @@ public class CommonCertificatePage extends CommonPageWithGrid {
     }
 
     public String getPublicKeyTypeLbl() {
-        return publicKeyTypeLbl.getText();
+        return publicKeyTypeLbl.getAttribute("value");
     }
 
     public String getAliasIdLbl() {
-        return aliasIdLbl.getText();
+        return aliasIdLbl.getAttribute("value");
     }
 
     public String getSmpCertificateIdLbl() {
-        return smpCertificateIdLbl.getText();
+        return smpCertificateIdLbl.getAttribute("value");
     }
 
     public String getSubjectNameLbl() {
-        return subjectNameLbl.getText();
+        return subjectNameLbl.getAttribute("value");
     }
 
     public String getValidFromLbl() {
-        return validFromLbl.getText();
+        return validFromLbl.getAttribute("value");
     }
 
     public String getValidToLbl() {
-        return validToLbl.getText();
+        return validToLbl.getAttribute("value");
     }
 
     public String getIssuerLbl() {
-        return issuerLbl.getText();
+        return issuerLbl.getAttribute("value");
     }
 
     public String getSerialNumberLbl() {
-        return serialNumberLbl.getText();
+        return serialNumberLbl.getAttribute("value");
     }
 
     public String getCertificateRevolcationListURLlbl() {
-        return certificateRevolcationListURLlbl.getText();
+        return certificateRevolcationListURLlbl.getAttribute("value");
     }
 }
diff --git a/domiSMP-ui-tests/src/main/java/pages/systemSettings/TruststorePage.java b/domiSMP-ui-tests/src/main/java/pages/systemSettings/TruststorePage.java
index 9a47d96cc..76eced09d 100644
--- a/domiSMP-ui-tests/src/main/java/pages/systemSettings/TruststorePage.java
+++ b/domiSMP-ui-tests/src/main/java/pages/systemSettings/TruststorePage.java
@@ -1,6 +1,7 @@
 package pages.systemSettings;
 
 import ddsl.CommonCertificatePage;
+import ddsl.dcomponents.Grid.SmallGrid;
 import org.openqa.selenium.WebDriver;
 import org.openqa.selenium.WebElement;
 import org.openqa.selenium.support.FindBy;
@@ -20,7 +21,9 @@ public class TruststorePage extends CommonCertificatePage {
         super(driver);
     }
 
-
+    public SmallGrid getCertificateGrid() {
+        return new SmallGrid(driver, rightPanel);
+    }
     public String addCertificateAndReturnAlias(String filePath) {
         uploadInput.sendKeys(filePath);
         String certificateAlias = getAlertMessageAndClose();
diff --git a/domiSMP-ui-tests/src/main/resources/truststore/test.cer b/domiSMP-ui-tests/src/main/resources/truststore/expiredCertificate.cer
similarity index 100%
rename from domiSMP-ui-tests/src/main/resources/truststore/test.cer
rename to domiSMP-ui-tests/src/main/resources/truststore/expiredCertificate.cer
diff --git a/domiSMP-ui-tests/src/main/resources/truststore/validCertificate.cer b/domiSMP-ui-tests/src/main/resources/truststore/validCertificate.cer
new file mode 100644
index 000000000..9a84d763f
--- /dev/null
+++ b/domiSMP-ui-tests/src/main/resources/truststore/validCertificate.cer
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDAzCCAeugAwIBAgIEEQ+g2DANBgkqhkiG9w0BAQsFADAyMQ8wDQYDVQQDDAZy
+ZWRfZ3cxEjAQBgNVBAoTCWVEZWxpdmVyeTELMAkGA1UEBhMCQkUwHhcNMjMwMzIz
+MDg0OTIyWhcNMzMwMzIyMDg0OTIyWjAyMQ8wDQYDVQQDDAZyZWRfZ3cxEjAQBgNV
+BAoTCWVEZWxpdmVyeTELMAkGA1UEBhMCQkUwggEiMA0GCSqGSIb3DQEBAQUAA4IB
+DwAwggEKAoIBAQCTt2UA2xulSq7S4XbazB7j2fquW+N/ybl4YI7ViwNjYbnFF9Hr
+TCy5q36UVHzioInn0qjqhz16pzAyF+0zCQFGFhG0hC/zrODdYXk6YgGsxiecQr7K
+Ac7OsCqAmRC6Y4hKoFmgunLEq3GwRpL4gMlZpd0nkfJaWpfgwJn6ZKebrs5u+71D
+q+lMlROPH1lWyeq6vuzGeVhMR3jf1o8s77SRcpBS/ZsXWQ7AM8/Lih3etPzqmt/R
+p9LAh49DOfmQF5BhANE5rETUpJkL1hc9lBTXh8f8XUcG/X0vvqZqO8CSuIqerC42
+T5AEBLjJRINEpM6tl5rI9U1c4zUnffyhkRh7AgMBAAGjITAfMB0GA1UdDgQWBBQL
+X5ndwOUTSkSKKXxSbgSuyUeJPTANBgkqhkiG9w0BAQsFAAOCAQEAMS0qoxzmYmrm
+kT2PiFnVoUKbx057DgaHzBa0lPNJX2tXxR05v/ZRGKImiTuij9WiCc0GRJF6llwd
+19BzwC5z/hSoxH40nFaXjH9OXtANF+G6UmbiwltUcW9NSlnIR2yVDJGRwvpzLdTE
+HEUiws4u80CNiz9ylVPJ58XclTlDiRLR2Glhq0zmFX+buMOjJRVT9RaLHgMZWJV0
+i506YSrKgjjNXIcL3PyR7ahBLEWw/qolgZtmAq/bgGIZe3bt/g6lF5wnpKZ3+P48
+h9v17PrxbDOyc7QDw9PEs6h4L1t06yUwK8gE96wyJBsnLZybkf4X/HyKA1yinJy9
+SXAnr3u8EA==
+-----END CERTIFICATE-----
diff --git a/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/KeystorePgTests.java b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/KeystorePgTests.java
index ade1185ab..949f1010b 100644
--- a/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/KeystorePgTests.java
+++ b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/KeystorePgTests.java
@@ -5,6 +5,7 @@ import ddsl.enums.Pages;
 import domiSMPTests.SeleniumTest;
 import org.testng.annotations.BeforeClass;
 import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Ignore;
 import org.testng.annotations.Test;
 import org.testng.asserts.SoftAssert;
 import pages.LoginPage;
@@ -36,6 +37,7 @@ public class KeystorePgTests extends SeleniumTest {
     }
 
     //TODO: wait until the mat-select for certificate type is changed to select
+    @Ignore
     @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");
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 eab74a9f2..29b74ad98 100644
--- a/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/TrustorePgTests.java
+++ b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/TrustorePgTests.java
@@ -3,6 +3,7 @@ package domiSMPTests.ui;
 import ddsl.DomiSMPPage;
 import ddsl.enums.Pages;
 import domiSMPTests.SeleniumTest;
+import org.openqa.selenium.WebElement;
 import org.testng.annotations.Test;
 import org.testng.asserts.SoftAssert;
 import pages.LoginPage;
@@ -11,7 +12,6 @@ import utils.FileUtils;
 
 public class TrustorePgTests extends SeleniumTest {
 
-    //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 {
@@ -23,16 +23,50 @@ public class TrustorePgTests extends SeleniumTest {
         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 path = FileUtils.getAbsolutePath("./src/main/resources/truststore/validCertificate.cer");
 
         String certificateALias = truststorepage.addCertificateAndReturnAlias(path);
         soft.assertNotNull(certificateALias);
-        //  soft.assertEquals(truststorepage.getPublicKeyTypeLbl(), "RSA");
-        // soft.assertEquals(truststorepage.getAliasIdLbl(), "smp_domain_02");
+        soft.assertEquals(truststorepage.getPublicKeyTypeLbl(), "RSA");
+        soft.assertEquals(truststorepage.getAliasIdLbl(), certificateALias);
+        soft.assertEquals(truststorepage.getSmpCertificateIdLbl(), "CN=red_gw,O=eDelivery,C=BE:00000000110fa0d8");
+        soft.assertEquals(truststorepage.getSubjectNameLbl(), "C=BE,O=eDelivery,CN=red_gw");
+        soft.assertEquals(truststorepage.getValidFromLbl(), "23-3-2023, 10:49:22");
+        soft.assertEquals(truststorepage.getValidToLbl(), "22-3-2033, 10:49:22");
+        soft.assertEquals(truststorepage.getIssuerLbl(), "C=BE,O=eDelivery,CN=red_gw");
+        soft.assertEquals(truststorepage.getSerialNumberLbl(), "110fa0d8");
+        soft.assertAll();
+
+    }
 
+    @Test(description = "TRST-02 System admin is able to import duplicated certificates")
+    public void SystemAdminIsAbleToImportDuplicatedCertificates() throws Exception {
 
-        soft.assertAll();
+        SoftAssert soft = new SoftAssert();
+        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/validCertificate.cer");
 
+        String certificateALias = truststorepage.addCertificateAndReturnAlias(path);
+        String duplicatedCertificateALias = truststorepage.addCertificateAndReturnAlias(path);
+        WebElement certificate = truststorepage.getCertificateGrid().searchAndGetElementInColumn("Alias", certificateALias);
+        soft.assertNotNull(certificate);
+        truststorepage.getDataPanelGrid().searchAndGetElementInColumn("Alias", duplicatedCertificateALias);
+
+        soft.assertNotNull(duplicatedCertificateALias);
+        soft.assertEquals(truststorepage.getPublicKeyTypeLbl(), "RSA");
+        soft.assertEquals(truststorepage.getAliasIdLbl(), duplicatedCertificateALias);
+        soft.assertEquals(truststorepage.getSmpCertificateIdLbl(), "CN=red_gw,O=eDelivery,C=BE:00000000110fa0d8");
+        soft.assertEquals(truststorepage.getSubjectNameLbl(), "C=BE,O=eDelivery,CN=red_gw");
+        soft.assertEquals(truststorepage.getValidFromLbl(), "23-3-2023, 10:49:22");
+        soft.assertEquals(truststorepage.getValidToLbl(), "22-3-2033, 10:49:22");
+        soft.assertEquals(truststorepage.getIssuerLbl(), "C=BE,O=eDelivery,CN=red_gw");
+        soft.assertEquals(truststorepage.getSerialNumberLbl(), "110fa0d8");
+        soft.assertAll();
 
     }
 
-- 
GitLab