From 91f23ac8663214403e3d37f983649718b577af70 Mon Sep 17 00:00:00 2001
From: Mihai BOZ <Mihai.BOZ@ext.ec.europa.eu>
Date: Thu, 28 Sep 2023 18:15:08 +0300
Subject: [PATCH] created common page with tabs, created pages for EditGroups.

---
 .../main/java/ddsl/CommonCertificatePage.java |  2 +-
 .../main/java/ddsl/CommonPageWithTabs.java    | 35 +++++++++++++
 ...id.java => CommonPageWithTabsAndGrid.java} | 31 ++----------
 .../dcomponents/SideNavigationComponent.java  |  9 ++--
 .../SubcategoryTabComponent.java              |  6 +--
 .../CreateGroupDetailsDialog.java             | 31 ++++++++++++
 .../editDomainsPage/EditDomainsPage.java      | 10 +++-
 .../editDomainsPage/GroupTab.java             |  8 ++-
 .../editGroupsPage/EditGroupsPage.java        | 34 +++++++++++++
 .../editGroupsPage/GroupMembersTab.java       | 15 ++++++
 .../editGroupsPage/ResourceTab.java           | 20 ++++++++
 .../java/pages/systemSettings/UsersPage.java  |  4 +-
 .../domainsPage/DomainsPage.java              |  4 +-
 .../src/main/java/rest/models/GroupModel.java | 50 +++++++++++++++++++
 .../java/domiSMPTests/ui/DomainsPgTests.java  | 14 +++---
 .../domiSMPTests/ui/EditDomainsPgTests.java   | 34 ++++++++++---
 .../java/domiSMPTests/ui/TrustorePgTests.java |  2 +-
 .../java/domiSMPTests/ui/UsersPgTests.java    |  2 +-
 18 files changed, 254 insertions(+), 57 deletions(-)
 create mode 100644 domiSMP-ui-tests/src/main/java/ddsl/CommonPageWithTabs.java
 rename domiSMP-ui-tests/src/main/java/ddsl/{CommonPageWithGrid.java => CommonPageWithTabsAndGrid.java} (54%)
 create mode 100644 domiSMP-ui-tests/src/main/java/pages/administration/editGroupsPage/EditGroupsPage.java
 create mode 100644 domiSMP-ui-tests/src/main/java/pages/administration/editGroupsPage/GroupMembersTab.java
 create mode 100644 domiSMP-ui-tests/src/main/java/pages/administration/editGroupsPage/ResourceTab.java
 create mode 100644 domiSMP-ui-tests/src/main/java/rest/models/GroupModel.java

diff --git a/domiSMP-ui-tests/src/main/java/ddsl/CommonCertificatePage.java b/domiSMP-ui-tests/src/main/java/ddsl/CommonCertificatePage.java
index 933925d0b..fe796bd3e 100644
--- a/domiSMP-ui-tests/src/main/java/ddsl/CommonCertificatePage.java
+++ b/domiSMP-ui-tests/src/main/java/ddsl/CommonCertificatePage.java
@@ -4,7 +4,7 @@ import org.openqa.selenium.WebDriver;
 import org.openqa.selenium.WebElement;
 import org.openqa.selenium.support.FindBy;
 
-public class CommonCertificatePage extends CommonPageWithGrid {
+public class CommonCertificatePage extends CommonPageWithTabsAndGrid {
     /**
      * Common page used for Keystore and Truststore
      */
diff --git a/domiSMP-ui-tests/src/main/java/ddsl/CommonPageWithTabs.java b/domiSMP-ui-tests/src/main/java/ddsl/CommonPageWithTabs.java
new file mode 100644
index 000000000..72ca6afc3
--- /dev/null
+++ b/domiSMP-ui-tests/src/main/java/ddsl/CommonPageWithTabs.java
@@ -0,0 +1,35 @@
+package ddsl;
+
+import org.openqa.selenium.WebDriver;
+import org.openqa.selenium.WebElement;
+import org.openqa.selenium.support.FindBy;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.List;
+
+public class CommonPageWithTabs extends DomiSMPPage {
+    private final static Logger LOG = LoggerFactory.getLogger(CommonPageWithTabs.class);
+
+    @FindBy(css = "[role = \"tab\"]")
+    private List<WebElement> tabList;
+
+    public CommonPageWithTabs(WebDriver driver) {
+        super(driver);
+    }
+
+    public void goToTab(String tabName) {
+        for (WebElement element : tabList) {
+            if (element.getText().contains(tabName)) {
+                element.click();
+                wait.forAttributeToContain(element, "aria-selected", "true");
+                LOG.debug("Domain tab {} is opened", tabName);
+            }
+        }
+    }
+
+    public String getAlertMessageAndClose() {
+
+        return getAlertArea().getAlertMessage();
+    }
+}
diff --git a/domiSMP-ui-tests/src/main/java/ddsl/CommonPageWithGrid.java b/domiSMP-ui-tests/src/main/java/ddsl/CommonPageWithTabsAndGrid.java
similarity index 54%
rename from domiSMP-ui-tests/src/main/java/ddsl/CommonPageWithGrid.java
rename to domiSMP-ui-tests/src/main/java/ddsl/CommonPageWithTabsAndGrid.java
index 85e6da14a..89dc47fe6 100644
--- a/domiSMP-ui-tests/src/main/java/ddsl/CommonPageWithGrid.java
+++ b/domiSMP-ui-tests/src/main/java/ddsl/CommonPageWithTabsAndGrid.java
@@ -9,10 +9,8 @@ import org.openqa.selenium.support.pagefactory.AjaxElementLocatorFactory;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.util.List;
-
-public class CommonPageWithGrid extends DomiSMPPage {
-    private final static Logger LOG = LoggerFactory.getLogger(CommonPageWithGrid.class);
+public class CommonPageWithTabsAndGrid extends CommonPageWithTabs {
+    private final static Logger LOG = LoggerFactory.getLogger(CommonPageWithTabsAndGrid.class);
 
     /**
      * Generic page used for pages which have small grid in the right of the page. This element gives access to action buttons and elements of the page.
@@ -22,38 +20,17 @@ public class CommonPageWithGrid extends DomiSMPPage {
     public WebElement filterInput;
     @FindBy(css = "data-panel >div >div> mat-toolbar button:first-of-type")
     public WebElement addBtn;
-    @FindBy(css = "[class=smp-column-data]")
-    public WebElement dataPanel;
     @FindBy(css = "[class~=smp-column-label]")
     public WebElement rightPanel;
-    @FindBy(css = "[role = \"tab\"]")
-    private List<WebElement> tabList;
 
-    public CommonPageWithGrid(WebDriver driver) {
+    public CommonPageWithTabsAndGrid(WebDriver driver) {
         super(driver);
         PageFactory.initElements(new AjaxElementLocatorFactory(driver, data.getTIMEOUT()), this);
     }
 
-    public SmallGrid getGrid() {
+    public SmallGrid getLeftSideGrid() {
         return new SmallGrid(driver, rightPanel);
     }
 
-    public SmallGrid getDataPanelGrid() {
-        return new SmallGrid(driver, rightPanel);
-    }
 
-    public void goToTab(String tabName) {
-        for (WebElement element : tabList) {
-            if (element.getText().contains(tabName)) {
-                element.click();
-                wait.forAttributeToContain(element, "aria-selected", "true");
-                LOG.debug("Domain tab {} is opened", tabName);
-            }
-        }
-    }
-
-    public String getAlertMessageAndClose() {
-
-        return getAlertArea().getAlertMessage();
-    }
 }
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 c4af21825..b382c9709 100644
--- a/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/SideNavigationComponent.java
+++ b/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/SideNavigationComponent.java
@@ -11,6 +11,7 @@ import org.openqa.selenium.support.pagefactory.AjaxElementLocatorFactory;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import pages.administration.editDomainsPage.EditDomainsPage;
+import pages.administration.editGroupsPage.EditGroupsPage;
 import pages.systemSettings.TruststorePage;
 import pages.systemSettings.UsersPage;
 import pages.systemSettings.domainsPage.DomainsPage;
@@ -113,10 +114,12 @@ public class SideNavigationComponent extends DomiSMPPage {
             openSubmenu(administrationExpand, editDomainsLnk);
             return (T) new EditDomainsPage(driver);
         }
+        if (page == Pages.ADMINISTRATION_EDIT_GROUPS) {
+            openSubmenu(administrationExpand, editGroupsLnk);
+            return (T) new EditGroupsPage(driver);
+        }
+
 
-        //            case ADMINISTRATION_EDIT_GROUPS:
-        //                expandSection(administrationExpand);
-        //                return new DLink(driver, editGroupsLnk);
         //            case ADMINISTRATION_EDIT_RESOURCES:
         //                expandSection(administrationExpand);
         //                return new DLink(driver, editResourcesLnk);
diff --git a/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/commonComponents/subcategoryTab/SubcategoryTabComponent.java b/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/commonComponents/subcategoryTab/SubcategoryTabComponent.java
index c6b23c347..0080f3187 100644
--- a/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/commonComponents/subcategoryTab/SubcategoryTabComponent.java
+++ b/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/commonComponents/subcategoryTab/SubcategoryTabComponent.java
@@ -20,15 +20,15 @@ public class SubcategoryTabComponent extends DComponent {
     private WebElement resourceMembersBtn;
     @FindBy(id = "deleteButton")
     private WebElement deleteBtn;
-    @FindBy(css = "div smp-column-data")
-    private WebElement sidePanel;
+    @FindBy(css = "[class=smp-column-data]")
+    private WebElement rightSidePanel;
 
     public SubcategoryTabComponent(WebDriver driver) {
         super(driver);
     }
 
     public SmallGrid getGrid() {
-        return new SmallGrid(driver, sidePanel);
+        return new SmallGrid(driver, rightSidePanel);
     }
 
     public DComponent create() throws Exception {
diff --git a/domiSMP-ui-tests/src/main/java/pages/administration/editDomainsPage/CreateGroupDetailsDialog.java b/domiSMP-ui-tests/src/main/java/pages/administration/editDomainsPage/CreateGroupDetailsDialog.java
index 210a94000..dbd956cf4 100644
--- a/domiSMP-ui-tests/src/main/java/pages/administration/editDomainsPage/CreateGroupDetailsDialog.java
+++ b/domiSMP-ui-tests/src/main/java/pages/administration/editDomainsPage/CreateGroupDetailsDialog.java
@@ -2,9 +2,40 @@ package pages.administration.editDomainsPage;
 
 import ddsl.dcomponents.DComponent;
 import org.openqa.selenium.WebDriver;
+import org.openqa.selenium.WebElement;
+import org.openqa.selenium.support.FindBy;
+import org.openqa.selenium.support.PageFactory;
+import org.openqa.selenium.support.pagefactory.AjaxElementLocatorFactory;
+import rest.models.GroupModel;
 
 public class CreateGroupDetailsDialog extends DComponent {
+    @FindBy(id = "name_id")
+    private WebElement groupNameLbl;
+    @FindBy(id = "description_id")
+    private WebElement groupDescriptionLbl;
+    @FindBy(id = "group_id")
+    private WebElement groupVisibilityDdl;
+    @FindBy(id = "saveButton")
+    private WebElement saveBtn;
     public CreateGroupDetailsDialog(WebDriver driver) {
         super(driver);
+        PageFactory.initElements(new AjaxElementLocatorFactory(driver, data.getTIMEOUT()), this);
+
+    }
+
+    public void fillGroupDetails(GroupModel group) {
+        groupNameLbl.sendKeys(group.getGroupName());
+        groupDescriptionLbl.sendKeys(group.getGroupDescription());
+        weToDSelect(groupVisibilityDdl).selectValue(group.getVisibility());
+    }
+
+    public Boolean tryClickOnSave() throws Exception {
+        wait.forElementToBeClickable(saveBtn);
+        if (weToDButton(saveBtn).isEnabled()) {
+            weToDButton(saveBtn).click();
+            return true;
+        } else {
+            return false;
+        }
     }
 }
diff --git a/domiSMP-ui-tests/src/main/java/pages/administration/editDomainsPage/EditDomainsPage.java b/domiSMP-ui-tests/src/main/java/pages/administration/editDomainsPage/EditDomainsPage.java
index b91b7f265..0b637b123 100644
--- a/domiSMP-ui-tests/src/main/java/pages/administration/editDomainsPage/EditDomainsPage.java
+++ b/domiSMP-ui-tests/src/main/java/pages/administration/editDomainsPage/EditDomainsPage.java
@@ -1,11 +1,11 @@
 package pages.administration.editDomainsPage;
 
-import ddsl.CommonPageWithGrid;
+import ddsl.CommonPageWithTabsAndGrid;
 import org.openqa.selenium.WebDriver;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public class EditDomainsPage extends CommonPageWithGrid {
+public class EditDomainsPage extends CommonPageWithTabsAndGrid {
     /**
      * Page object for the Edit domains page. This contains the locators of the page and the methods for the behaviour of the page
      */
@@ -21,4 +21,10 @@ public class EditDomainsPage extends CommonPageWithGrid {
 
         return new DomainMembersTab(driver);
     }
+
+    public GroupTab getGroupTab() {
+
+        return new GroupTab(driver);
+    }
+
 }
diff --git a/domiSMP-ui-tests/src/main/java/pages/administration/editDomainsPage/GroupTab.java b/domiSMP-ui-tests/src/main/java/pages/administration/editDomainsPage/GroupTab.java
index 7af831e34..f5a48a8d0 100644
--- a/domiSMP-ui-tests/src/main/java/pages/administration/editDomainsPage/GroupTab.java
+++ b/domiSMP-ui-tests/src/main/java/pages/administration/editDomainsPage/GroupTab.java
@@ -2,14 +2,18 @@ package pages.administration.editDomainsPage;
 
 import ddsl.dcomponents.commonComponents.subcategoryTab.SubcategoryTabComponent;
 import org.openqa.selenium.WebDriver;
+import org.openqa.selenium.support.PageFactory;
+import org.openqa.selenium.support.pagefactory.AjaxElementLocatorFactory;
 
 public class GroupTab extends SubcategoryTabComponent {
     public GroupTab(WebDriver driver) {
         super(driver);
+        PageFactory.initElements(new AjaxElementLocatorFactory(driver, data.getTIMEOUT()), this);
+
     }
 
-    @Override
-    public CreateGroupDetailsDialog create() {
+    public CreateGroupDetailsDialog clickOnCreateNewGroup() throws Exception {
+        create();
         return new CreateGroupDetailsDialog(driver);
     }
 }
diff --git a/domiSMP-ui-tests/src/main/java/pages/administration/editGroupsPage/EditGroupsPage.java b/domiSMP-ui-tests/src/main/java/pages/administration/editGroupsPage/EditGroupsPage.java
new file mode 100644
index 000000000..065874f84
--- /dev/null
+++ b/domiSMP-ui-tests/src/main/java/pages/administration/editGroupsPage/EditGroupsPage.java
@@ -0,0 +1,34 @@
+package pages.administration.editGroupsPage;
+
+import ddsl.CommonPageWithTabs;
+import org.openqa.selenium.WebDriver;
+import org.openqa.selenium.WebElement;
+import org.openqa.selenium.support.FindBy;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class EditGroupsPage extends CommonPageWithTabs {
+    /**
+     * Page object for the Edit groups page. This contains the locators of the page and the methods for the behaviour of the page
+     */
+    private final static Logger LOG = LoggerFactory.getLogger(EditGroupsPage.class);
+
+    @FindBy(id = "domain_id")
+    private WebElement domainDdl;
+    @FindBy(id = "group_id")
+    private WebElement groupDdl;
+
+    public EditGroupsPage(WebDriver driver) {
+        super(driver);
+        LOG.debug("Loading Edit groups page.");
+    }
+
+    public GroupMembersTab getDomainMembersTab() {
+        return new GroupMembersTab(driver);
+    }
+
+    public ResourceTab getGroupTab() {
+        return new ResourceTab(driver);
+    }
+
+}
diff --git a/domiSMP-ui-tests/src/main/java/pages/administration/editGroupsPage/GroupMembersTab.java b/domiSMP-ui-tests/src/main/java/pages/administration/editGroupsPage/GroupMembersTab.java
new file mode 100644
index 000000000..90a8177dc
--- /dev/null
+++ b/domiSMP-ui-tests/src/main/java/pages/administration/editGroupsPage/GroupMembersTab.java
@@ -0,0 +1,15 @@
+package pages.administration.editGroupsPage;
+
+import ddsl.dcomponents.commonComponents.members.MembersComponent;
+import org.openqa.selenium.WebDriver;
+import org.openqa.selenium.support.PageFactory;
+import org.openqa.selenium.support.pagefactory.AjaxElementLocatorFactory;
+
+public class GroupMembersTab extends MembersComponent {
+
+    public GroupMembersTab(WebDriver driver) {
+        super(driver);
+        PageFactory.initElements(new AjaxElementLocatorFactory(driver, data.getTIMEOUT()), this);
+    }
+}
+
diff --git a/domiSMP-ui-tests/src/main/java/pages/administration/editGroupsPage/ResourceTab.java b/domiSMP-ui-tests/src/main/java/pages/administration/editGroupsPage/ResourceTab.java
new file mode 100644
index 000000000..f3d1fe86a
--- /dev/null
+++ b/domiSMP-ui-tests/src/main/java/pages/administration/editGroupsPage/ResourceTab.java
@@ -0,0 +1,20 @@
+package pages.administration.editGroupsPage;
+
+import ddsl.dcomponents.commonComponents.subcategoryTab.SubcategoryTabComponent;
+import org.openqa.selenium.WebDriver;
+import org.openqa.selenium.support.PageFactory;
+import org.openqa.selenium.support.pagefactory.AjaxElementLocatorFactory;
+import pages.administration.editDomainsPage.CreateGroupDetailsDialog;
+
+public class ResourceTab extends SubcategoryTabComponent {
+    public ResourceTab(WebDriver driver) {
+        super(driver);
+        PageFactory.initElements(new AjaxElementLocatorFactory(driver, data.getTIMEOUT()), this);
+
+    }
+
+    public CreateGroupDetailsDialog clickOnCreateNewResource() throws Exception {
+        create();
+        return new CreateGroupDetailsDialog(driver);
+    }
+}
diff --git a/domiSMP-ui-tests/src/main/java/pages/systemSettings/UsersPage.java b/domiSMP-ui-tests/src/main/java/pages/systemSettings/UsersPage.java
index 44cdb562f..9a931a152 100644
--- a/domiSMP-ui-tests/src/main/java/pages/systemSettings/UsersPage.java
+++ b/domiSMP-ui-tests/src/main/java/pages/systemSettings/UsersPage.java
@@ -1,6 +1,6 @@
 package pages.systemSettings;
 
-import ddsl.CommonPageWithGrid;
+import ddsl.CommonPageWithTabsAndGrid;
 import ddsl.dcomponents.commonComponents.UserDataCommonComponent;
 import ddsl.dobjects.DButton;
 import org.openqa.selenium.WebDriver;
@@ -10,7 +10,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import rest.models.UserModel;
 
-public class UsersPage extends CommonPageWithGrid {
+public class UsersPage extends CommonPageWithTabsAndGrid {
     /**
      * Page object for the Users page. This contains the locators of the page and the methods for the behaviour of the page
      */
diff --git a/domiSMP-ui-tests/src/main/java/pages/systemSettings/domainsPage/DomainsPage.java b/domiSMP-ui-tests/src/main/java/pages/systemSettings/domainsPage/DomainsPage.java
index 9376628de..7d1657e5b 100644
--- a/domiSMP-ui-tests/src/main/java/pages/systemSettings/domainsPage/DomainsPage.java
+++ b/domiSMP-ui-tests/src/main/java/pages/systemSettings/domainsPage/DomainsPage.java
@@ -1,6 +1,6 @@
 package pages.systemSettings.domainsPage;
 
-import ddsl.CommonPageWithGrid;
+import ddsl.CommonPageWithTabsAndGrid;
 import ddsl.dobjects.DButton;
 import org.openqa.selenium.WebDriver;
 import org.openqa.selenium.WebElement;
@@ -8,7 +8,7 @@ import org.openqa.selenium.support.FindBy;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public class DomainsPage extends CommonPageWithGrid {
+public class DomainsPage extends CommonPageWithTabsAndGrid {
     /**
      * Page object for the Users page. This contains the locators of the page and the methods for the behaviour of the page
      */
diff --git a/domiSMP-ui-tests/src/main/java/rest/models/GroupModel.java b/domiSMP-ui-tests/src/main/java/rest/models/GroupModel.java
new file mode 100644
index 000000000..cf5e6a666
--- /dev/null
+++ b/domiSMP-ui-tests/src/main/java/rest/models/GroupModel.java
@@ -0,0 +1,50 @@
+package rest.models;
+
+
+import utils.Generator;
+
+public class GroupModel {
+    private String groupName;
+    private String visibility;
+    private String groupDescription;
+
+    public static GroupModel generatePublicDomain() {
+        GroupModel groupModel = new GroupModel();
+        groupModel.groupName = ("AUT_groupName_" + Generator.randomAlphaNumeric(4)).toLowerCase();
+        groupModel.groupDescription = Generator.randomAlphaNumeric(10).toLowerCase();
+        groupModel.visibility = "PUBLIC";
+        return groupModel;
+    }
+
+    public static GroupModel generatePrivateDomain() {
+        GroupModel groupModel = new GroupModel();
+        groupModel.groupName = ("AUT_groupName_" + Generator.randomAlphaNumeric(4)).toLowerCase();
+        groupModel.groupDescription = Generator.randomAlphaNumeric(10).toLowerCase();
+        groupModel.visibility = "PRIVATE";
+        return groupModel;
+    }
+
+    public String getGroupName() {
+        return groupName;
+    }
+
+    public void setGroupName(String groupName) {
+        this.groupName = groupName;
+    }
+
+    public String getVisibility() {
+        return visibility;
+    }
+
+    public void setVisibility(String visibility) {
+        this.visibility = visibility;
+    }
+
+    public String getGroupDescription() {
+        return groupDescription;
+    }
+
+    public void setGroupDescription(String groupDescription) {
+        this.groupDescription = groupDescription;
+    }
+}
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 c72fd95c1..cbfd7c534 100644
--- a/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/DomainsPgTests.java
+++ b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/DomainsPgTests.java
@@ -44,7 +44,7 @@ public class DomainsPgTests extends SeleniumTest {
         String alert = domainsPage.getAlertMessageAndClose();
         soft.assertEquals(alert, "Domain: [" + domainModel.getDomainCode() + "] was created!");
 
-        domainsPage.getDataPanelGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode()).click();
+        domainsPage.getLeftSideGrid().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());
@@ -62,7 +62,7 @@ public class DomainsPgTests extends SeleniumTest {
         String alert = domainsPage.getAlertMessageAndClose();
         soft.assertEquals(alert, "Domain: [" + domainModel.getDomainCode() + "] was created!");
 
-        domainsPage.getDataPanelGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode()).click();
+        domainsPage.getLeftSideGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode()).click();
         domainsPage.goToTab("SML integration");
         domainsPage.getSMLIntegrationTab().fillSMLIntegrationTab(domainModel);
         domainsPage.getSMLIntegrationTab().saveChanges();
@@ -104,14 +104,14 @@ public class DomainsPgTests extends SeleniumTest {
         homePage.goToLoginPage();
         loginPage.login(normalUser.getUsername(), data.getNewPassword());
         EditDomainsPage editDomainsPage = homePage.getSidebar().navigateTo(Pages.ADMINISTRATION_EDIT_DOMAINS);
-        WebElement domainElement = editDomainsPage.getDataPanelGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode());
+        WebElement domainElement = editDomainsPage.getLeftSideGrid().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().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode()).click();
+        domainsPage.getLeftSideGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode()).click();
         domainsPage.goToTab("Members");
         domainsPage.getMembersTab().changeRoleOfUser(normalUser.getUsername(), "ADMIN");
 
@@ -120,7 +120,7 @@ public class DomainsPgTests extends SeleniumTest {
         homePage.goToLoginPage();
         loginPage.login(normalUser.getUsername(), data.getNewPassword());
         editDomainsPage = homePage.getSidebar().navigateTo(Pages.ADMINISTRATION_EDIT_DOMAINS);
-        domainElement = editDomainsPage.getDataPanelGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode());
+        domainElement = editDomainsPage.getLeftSideGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode());
         soft.assertNotNull(domainElement, "Domain found for user which doesn't have rights");
 
 
@@ -129,7 +129,7 @@ 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().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode()).click();
+        domainsPage.getLeftSideGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode()).click();
         domainsPage.goToTab("Members");
         domainsPage.getMembersTab().removeUser(normalUser.getUsername());
         userMemberElement = domainsPage.getMembersTab().getMembersGrid().searchAndGetElementInColumn("Username", normalUser.getUsername());
@@ -139,7 +139,7 @@ public class DomainsPgTests extends SeleniumTest {
         homePage.goToLoginPage();
         loginPage.login(normalUser.getUsername(), data.getNewPassword());
         editDomainsPage = homePage.getSidebar().navigateTo(Pages.ADMINISTRATION_EDIT_DOMAINS);
-        domainElement = editDomainsPage.getDataPanelGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode());
+        domainElement = editDomainsPage.getLeftSideGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode());
         soft.assertNull(domainElement, "Domain found for user which doesn't have rights");
 
         soft.assertAll();
diff --git a/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/EditDomainsPgTests.java b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/EditDomainsPgTests.java
index a11f76ee3..4f001274d 100644
--- a/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/EditDomainsPgTests.java
+++ b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/EditDomainsPgTests.java
@@ -9,8 +9,11 @@ import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
 import org.testng.asserts.SoftAssert;
 import pages.LoginPage;
+import pages.administration.editDomainsPage.CreateGroupDetailsDialog;
 import pages.administration.editDomainsPage.EditDomainsPage;
+import pages.administration.editGroupsPage.EditGroupsPage;
 import rest.models.DomainModel;
+import rest.models.GroupModel;
 import rest.models.MemberModel;
 import rest.models.UserModel;
 
@@ -51,7 +54,7 @@ public class EditDomainsPgTests extends SeleniumTest {
         rest.users().createUser(memberUser);
 
         //Invite user as VIEW and check if he has admin rights for domain
-        editDomainPage.getDataPanelGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode()).click();
+        editDomainPage.getLeftSideGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode()).click();
         editDomainPage.getDomainMembersTab().getInviteMemberBtn().click();
         editDomainPage.getDomainMembersTab().getInviteMembersPopup().selectMember(memberUser.getUsername(), "VIEWER");
         WebElement userMemberElement = editDomainPage.getDomainMembersTab().getMembersGrid().searchAndGetElementInColumn("Username", memberUser.getUsername());
@@ -62,14 +65,14 @@ public class EditDomainsPgTests extends SeleniumTest {
         homePage.goToLoginPage();
         loginPage.login(memberUser.getUsername(), data.getNewPassword());
         EditDomainsPage editDomainsPage = homePage.getSidebar().navigateTo(Pages.ADMINISTRATION_EDIT_DOMAINS);
-        WebElement domainElement = editDomainsPage.getDataPanelGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode());
+        WebElement domainElement = editDomainsPage.getLeftSideGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode());
         soft.assertNull(domainElement, "Domain found for user which doesn't have rights");
 
         homePage.logout();
         loginPage = homePage.goToLoginPage();
         loginPage.login(adminUser.getUsername(), data.getNewPassword());
         editDomainPage = homePage.getSidebar().navigateTo(Pages.ADMINISTRATION_EDIT_DOMAINS);
-        editDomainPage.getDataPanelGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode()).click();
+        editDomainPage.getLeftSideGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode()).click();
         editDomainPage.getDomainMembersTab().changeRoleOfUser(memberUser.getUsername(), "ADMIN");
 
         //check if user has admin rights to domain as Admin
@@ -77,7 +80,7 @@ public class EditDomainsPgTests extends SeleniumTest {
         homePage.goToLoginPage();
         loginPage.login(memberUser.getUsername(), data.getNewPassword());
         editDomainsPage = homePage.getSidebar().navigateTo(Pages.ADMINISTRATION_EDIT_DOMAINS);
-        domainElement = editDomainsPage.getDataPanelGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode());
+        domainElement = editDomainsPage.getLeftSideGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode());
         soft.assertNotNull(domainElement, "Domain found for user which doesn't have rights");
 
 
@@ -86,7 +89,7 @@ public class EditDomainsPgTests extends SeleniumTest {
         homePage.goToLoginPage();
         loginPage.login(adminUser.getUsername(), data.getNewPassword());
         editDomainPage = homePage.getSidebar().navigateTo(Pages.ADMINISTRATION_EDIT_DOMAINS);
-        editDomainPage.getDataPanelGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode()).click();
+        editDomainPage.getLeftSideGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode()).click();
         editDomainPage.getDomainMembersTab().removeUser(memberUser.getUsername());
         userMemberElement = editDomainPage.getDomainMembersTab().getMembersGrid().searchAndGetElementInColumn("Username", memberUser.getUsername());
         soft.assertNull(userMemberElement, "Domain found for user which doesn't have rights");
@@ -95,9 +98,28 @@ public class EditDomainsPgTests extends SeleniumTest {
         homePage.goToLoginPage();
         loginPage.login(memberUser.getUsername(), data.getNewPassword());
         editDomainsPage = homePage.getSidebar().navigateTo(Pages.ADMINISTRATION_EDIT_DOMAINS);
-        domainElement = editDomainsPage.getDataPanelGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode());
+        domainElement = editDomainsPage.getLeftSideGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode());
         soft.assertNull(domainElement, "Domain found for user which doesn't have rights");
+        soft.assertAll();
+
+    }
+
+    @Test(description = "EDTDOM-02 Domain admins are able to create new groups")
+    public void DomainAdminsAreAbleToCreate() throws Exception {
+        GroupModel groupToBeCreated = GroupModel.generatePublicDomain();
+        editDomainPage.getLeftSideGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode()).click();
+
+        editDomainPage.goToTab("Group");
+
+        CreateGroupDetailsDialog createGroupDetailsDialog = editDomainPage.getGroupTab().clickOnCreateNewGroup();
+        createGroupDetailsDialog.fillGroupDetails(groupToBeCreated);
+        Boolean isSaveSuccesfully = createGroupDetailsDialog.tryClickOnSave();
+        soft.assertTrue(isSaveSuccesfully);
+
+        WebElement createGroup = editDomainPage.getGroupTab().getGrid().searchAndGetElementInColumn("Group name", groupToBeCreated.getGroupName());
+        soft.assertNotNull(createGroup);
 
+        EditGroupsPage editgroupPage = homePage.getSidebar().navigateTo(Pages.ADMINISTRATION_EDIT_GROUPS);
         soft.assertAll();
 
     }
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 29b74ad98..b1ea514be 100644
--- a/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/TrustorePgTests.java
+++ b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/TrustorePgTests.java
@@ -55,7 +55,7 @@ public class TrustorePgTests extends SeleniumTest {
         String duplicatedCertificateALias = truststorepage.addCertificateAndReturnAlias(path);
         WebElement certificate = truststorepage.getCertificateGrid().searchAndGetElementInColumn("Alias", certificateALias);
         soft.assertNotNull(certificate);
-        truststorepage.getDataPanelGrid().searchAndGetElementInColumn("Alias", duplicatedCertificateALias);
+        truststorepage.getLeftSideGrid().searchAndGetElementInColumn("Alias", duplicatedCertificateALias);
 
         soft.assertNotNull(duplicatedCertificateALias);
         soft.assertEquals(truststorepage.getPublicKeyTypeLbl(), "RSA");
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 1ff5d0ecf..d955fd4a8 100644
--- a/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/UsersPgTests.java
+++ b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/UsersPgTests.java
@@ -34,7 +34,7 @@ public class UsersPgTests extends SeleniumTest {
 
         usersPage.refreshPage();
         // usersPage.filter(adminNewUserData.getUsername());
-        WebElement newUser = usersPage.getDataPanelGrid().searchAndGetElementInColumn("Username", adminNewUserData.getUsername());
+        WebElement newUser = usersPage.getLeftSideGrid().searchAndGetElementInColumn("Username", adminNewUserData.getUsername());
         soft.assertNotNull(newUser);
         newUser.click();
 
-- 
GitLab