From 94c1d84a4948661e5f534ea98194d2fdac043dfc Mon Sep 17 00:00:00 2001
From: Mihai BOZ <Mihai.BOZ@ext.ec.europa.eu>
Date: Thu, 31 Aug 2023 16:20:01 +0300
Subject: [PATCH] added KeyStore page and KeyStore tests. extracted common
 StorePage for similar page Keystore and Truststore renamed some methods to be
 more clear group pages in packages based on menulinks

---
 .../src/main/java/ddsl/PageWithGrid.java      |   4 +
 .../src/main/java/ddsl/StorePage.java         |  71 ++++++++++++++
 .../java/ddsl/dcomponents/Grid/SmallGrid.java |   2 +-
 .../dcomponents/SetChangePasswordDialog.java  |   2 +-
 .../dcomponents/SideNavigationComponent.java  |  21 +++--
 .../members/MembersComponent.java             |   4 +-
 .../src/main/java/ddsl/dobjects/DSelect.java  |   1 +
 .../main/java/ddsl/enums/KeyStoreTypes.java   |   7 ++
 .../EditDomainsPage.java                      |   2 +-
 .../{ => systemSettings}/TruststorePage.java  |  20 +---
 .../pages/{ => systemSettings}/UsersPage.java |   4 +-
 .../domainsPage}/DomainTab.java               |   2 +-
 .../domainsPage}/DomainsPage.java             |   2 +-
 .../domainsPage}/MembersTab.java              |   2 +-
 .../domainsPage}/ResourceTab.java             |   2 +-
 .../domainsPage}/SMLIntegrationTab.java       |   2 +-
 .../keyStorePage/KeyStoreImportDialog.java    |  57 +++++++++++
 .../keyStorePage/KeystorePage.java            |  17 ++++
 .../propertiesPage/PropGrid.java              |   2 +-
 .../propertiesPage/PropertiesPage.java        |   2 +-
 .../propertiesPage/PropertyPopup.java         |  29 ++++--
 .../ProfilePage.java                          |   4 +-
 .../SuccesfullPasswordChangedPopup.java       |   2 +-
 .../resources/keystore/asdasdsadasda.pkcs12   | Bin 0 -> 2087 bytes
 .../keystore/expired_keystore_JKS.jks         | Bin 0 -> 2096 bytes
 .../resources/keystore/gateway_keystore.jks   | Bin 0 -> 2096 bytes
 .../java/domiSMPTests/ui/DomainsPgTests.java  |  89 +++++++++---------
 .../java/domiSMPTests/ui/KeystorePgTests.java |  50 ++++++++++
 .../java/domiSMPTests/ui/ProfilePgTests.java  |   6 +-
 .../domiSMPTests/ui/PropertiesPgTests.java    |   4 +-
 .../java/domiSMPTests/ui/TrustorePgTests.java |  16 +++-
 .../java/domiSMPTests/ui/UsersPgTests.java    |   4 +-
 32 files changed, 322 insertions(+), 108 deletions(-)
 create mode 100644 domiSMP-ui-tests/src/main/java/ddsl/StorePage.java
 create mode 100644 domiSMP-ui-tests/src/main/java/ddsl/enums/KeyStoreTypes.java
 rename domiSMP-ui-tests/src/main/java/pages/{editDomainsPage => administration}/EditDomainsPage.java (86%)
 rename domiSMP-ui-tests/src/main/java/pages/{ => systemSettings}/TruststorePage.java (63%)
 rename domiSMP-ui-tests/src/main/java/pages/{ => systemSettings}/UsersPage.java (98%)
 rename domiSMP-ui-tests/src/main/java/pages/{DomainsPage => systemSettings/domainsPage}/DomainTab.java (98%)
 rename domiSMP-ui-tests/src/main/java/pages/{DomainsPage => systemSettings/domainsPage}/DomainsPage.java (96%)
 rename domiSMP-ui-tests/src/main/java/pages/{DomainsPage => systemSettings/domainsPage}/MembersTab.java (91%)
 rename domiSMP-ui-tests/src/main/java/pages/{DomainsPage => systemSettings/domainsPage}/ResourceTab.java (97%)
 rename domiSMP-ui-tests/src/main/java/pages/{DomainsPage => systemSettings/domainsPage}/SMLIntegrationTab.java (98%)
 create mode 100644 domiSMP-ui-tests/src/main/java/pages/systemSettings/keyStorePage/KeyStoreImportDialog.java
 create mode 100644 domiSMP-ui-tests/src/main/java/pages/systemSettings/keyStorePage/KeystorePage.java
 rename domiSMP-ui-tests/src/main/java/pages/{ => systemSettings}/propertiesPage/PropGrid.java (93%)
 rename domiSMP-ui-tests/src/main/java/pages/{ => systemSettings}/propertiesPage/PropertiesPage.java (98%)
 rename domiSMP-ui-tests/src/main/java/pages/{ => systemSettings}/propertiesPage/PropertyPopup.java (80%)
 rename domiSMP-ui-tests/src/main/java/pages/{profilePage => userSettings}/ProfilePage.java (95%)
 rename domiSMP-ui-tests/src/main/java/pages/{profilePage => userSettings}/SuccesfullPasswordChangedPopup.java (97%)
 create mode 100644 domiSMP-ui-tests/src/main/resources/keystore/asdasdsadasda.pkcs12
 create mode 100644 domiSMP-ui-tests/src/main/resources/keystore/expired_keystore_JKS.jks
 create mode 100644 domiSMP-ui-tests/src/main/resources/keystore/gateway_keystore.jks
 create mode 100644 domiSMP-ui-tests/src/test/java/domiSMPTests/ui/KeystorePgTests.java

diff --git a/domiSMP-ui-tests/src/main/java/ddsl/PageWithGrid.java b/domiSMP-ui-tests/src/main/java/ddsl/PageWithGrid.java
index a4f5dad87..320cb2d3d 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 000000000..aaf37c842
--- /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 b8487f411..c9df4660e 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 cf2e8e841..86a677541 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 b05e5b7e7..9cd2d792c 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 34c0292c0..3072a66ee 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 13e1bb2d6..74bc2eb6f 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 000000000..1bf0d23a6
--- /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 60915be69..c59a39cbf 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 f0e2053fb..37565ccf0 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 d6d8ea1c9..e620cddba 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 1253fa58e..9db932540 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 542358520..45d32effe 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 8b2bd5651..bc8b23280 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 891b63733..dda2784fa 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 e40600c09..189097e98 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 000000000..ef14d8e8d
--- /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 000000000..fe709ba55
--- /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 2fcbff624..68b275f5f 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 85d561f49..fc8eebe09 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 0db1c40dd..663c2ba24 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 918e72fa5..51572c697 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 0d88b9571..b619886ca 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
GIT binary patch
literal 2087
zcmb7^dpOgJAIJCIY%ZHy$PsfV6gIaoxeiBcBw|#wQ!BzGt2jzVZizT#DlM0Fl1rLv
ziPl1Mo686*B=_W+LRde)^Zfoe|Nj1X|MB|g^Sqz;=XqX&1;GLc1Oo2{_$R`|5X#wr
zb60jbX{*9783cj?D5}s7N&+T!00syFdSGb)fP#dmLUSBt^9^3m27}edY<|u!S#qk}
zf1nq!zCG@Y;n8$M>w2i}e0*`CMQ{E!OSPEVwm3Aef-W(~^|C!U?1b%l1-GI-jz+2#
zs=v#*uJci;ff;1}!2erBBy)1H54e}&x|+Aw@VDuPqB6nEg8_9LwhL00Kd7ly4{UDl
z?I?oCEp6RLDtN`TgD{gOXdlrUNxE90c|WPj#Pbm65dWmZ#GnC2HLq?hy0SX!Rl}ES
zRR{5V3@-_^3y2&(X9rhUxGu)eQx?5NKQG^6k|(&|qt<>w@2eu*CFJ&#fckXcM6cA(
z=L{w`53_Bk5=iN_QL-GWlkrHLts5AT^LrCU7&O^D1Zf7#Eg&Vd2myuTFzh`>hucx2
zzUSyDWye{SY3bM|ewE3U#p~GIEQ{czsczay0ORDCWzuVKoB0yr?mLdRdE6N1PP3I-
zyTMWro*`-GFg~n}-CTpjCpq5%D4DI*`yva@DC~bsmYEBs&ZU>Rx}|mdDZ)8^dlpv_
zDd*7MGRn<G-=zIi!dm&scXu@L0`gSsvCZ+oj3e74wKqfK<aEc(1U+BlGv+Up0t4Tz
zklA%!=sMeDxPIY|8mT&2kA;#&>6F_?Ed`%vZTH>#<4nQDNpk@($Qur-_yZf>zi8P0
z_KS|s@jZVXO|#36rh{NFh@^2oM49{0(l^z=y4h8_G2%-B?Fnzgk#0T77zl3~)Z6aO
z3ZIwK>QX4zA_V&<hZaYdpgm7j&3qi9vAoHzeoajmLzf$`goe51ihNYn7iUR3$Gtlf
zWB9nC=9+ZJ{K>mxrY6t3pH?6g5(SOd<))#Sqh6-?Cac;;{iPyfolxS*Y~SFeGc34w
zSBQR^x^UTn`6CcpO9P+ChEGlDC99{g75Wcu<;Cv})vLcj6BSF+tv(TDEq{Y&$2IWM
z!?oHXE!PKl)Sn^&oX$^RX2?qN%H)0bFDQ&PnVK)<_)SoWEwuq9kDZ;^qEXWm@tO=G
zZQC?@DM+~IM(vwm?ZdMUmz<Pbe3%&$zCqMg2gL-rCf?QXn~+XyJXd*PR*jZEDlaGf
zRMcUJpy3)QmBF`jyZ9j*r$o>-mBJ4<TYF>^8Cr>*eYrnWFM$+d^i1-94^%v|>;mqn
zM@EIrd}^0CD&?}0Pk+P`O`sx>?U34^-0nSB*gCJrK`ji>{;bQf;SxVrMUx~b1G$ps
zwCiQx-?c)v1Dowi`HuN(YFARk)kumYr%oUzr~AeFdHslU2QA7aJFv3H#=fEMhuF(1
zT~JR{q-0xGPIad=ofu*-(KDXkbeY@l<Tm2jd=N1Zq$zeR-y%-<HRv}=*;LCmt`r*X
z6<I$iey5Pom1Sg?+9%5#I{8SBZMa0UGHMX4YG$g;e=k)^?}wjgvndcV>pCo`kf$E8
z-arFE`^bBru2r|~#KFUY!=L9X>o2o7>lYV|C#bO<ukyN`2uzY`n9v~B@NG!(H6?C2
zAQqWznuM~xq%OZ+mRX)q=pobLNZ~f>7Cg(<!p$jwIUxz27*8vM;?6@ZdC||_J3H_m
zYKXiaxsW7@cXX32v>TmCKK>Om;jg*IZKPy2KM9VGRBK_*4!$YOVxzZABSH;MfpMVz
zoyXP7?-za~bca_lCN>$b<=LJmvXWHd-;#}PpBA(mYM=h}=^ryfeGN=e7Q3z-MNz?g
z6cu1Uf`9=qSm+D^z@o%qqI!wHC$5VF02~TJ8KU7RQ5eKq2qpuzcSK8|5dQ@+1QhGy
z?Ba!%+STbULlDCDZr+Xo&ORt*d2u6Slqt#_ZGtj3G56a=lU+RYKm7j>QUUdUm)cb}
zgbGN4c6*C~sQ>`#sbADe92xt&>a%B|shh|#xVitm%C9U^nz)qxOVac$3y)|TcisO5
zH=am}*8ZI7Yhf>Z-fnbVb=}K7)V??*0i)RXFnNw=(_f|M?l738(oi-3K{+$zsr+*F
zt>(0z;Y0;eikZn_1abNaiC%CRC63%8^!^B7=`8*#(t*o3SF@8>QqLL9tQps|WV{rT
z#i@QshfH4_!FYM^c*Zo9D@BMxlpNCS7yV1sH3)q^L(fW8(YcA?@_`*AIpZFq6zJAM
z$+M`bU(11U`yafqTl&-g^UkTK;no&ri*6TM)n?WA!7yUSuLtHw)YdobyR98N)O1<=
z@-XdX2&{7v3Wfk6;NJ`FzHN6Q03@!w`qJW0vgCL9MlvSj<4eRwTq;iY2n(2wUu8ZZ
z25+-ZUL{)O6Q7N0?r6l5lOSD0x@(K>!U`kl9*oPl0=xZ97@Z|C{eqo7<!+?gRBp?;
ztEJAn>q~7K5hK)Owsh$y<D-fs6b$MT6;u7_$j^gom6nsI^W_Zu{x(h(i8rIX+JMU*
z-+H5)g)xu2WE)z{uKgGkmV?=B>@Qkj2}4_udVAPa=!1Rs2{OC`3a1DeqB$9(vC^?3
z44h7-#*N5_8WzYBp9QtE52xMz2l;Yd_A?)NEWL@kBJJY2R_DuE<fUA^sD0Gsw=yZd
p=Nu76`hT_eR(H>LPoNDiB4BCpZIWL)mCloX(xakrH4ro0e*k|prf>iN

literal 0
HcmV?d00001

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
GIT binary patch
literal 2096
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

literal 0
HcmV?d00001

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
GIT binary patch
literal 2096
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

literal 0
HcmV?d00001

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 696d5b092..d56c1473b 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 000000000..ade1185ab
--- /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 6a2a64793..4cf0a1fb1 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 fdb0429bf..ac82632da 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 27bb41cc5..eab74a9f2 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 013bfef98..3eb0429a5 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();
 
-- 
GitLab