From c95aebce02f3e8f520e48d871f31b1cb13eb6111 Mon Sep 17 00:00:00 2001 From: bozmiha <Mihai.BOZ@ext.ec.europa.eu> Date: Fri, 3 Nov 2023 17:17:58 +0200 Subject: [PATCH] Mapped Edit resource page, created rest methods to create resource and add member, created tests EDT-RES01, EDT-RES02 Signed-off-by: bozmiha <Mihai.BOZ@ext.ec.europa.eu> --- .../java/ddsl/CommonPageWithTabsAndGrid.java | 4 - .../src/main/java/ddsl/DomiSMPPage.java | 1 + .../dcomponents/SideNavigationComponent.java | 11 +- .../CreateSubresourceDetailsDialog.java | 51 +++++++ .../EditResourceDocumentPage.java | 19 +++ .../editResourcesPage/EditResourcePage.java | 63 ++++++++ .../editResourcesPage/ResourceDetailsTab.java | 29 ++++ .../ResourcesMembersTab.java | 17 +++ .../editResourcesPage/SubresourceTab.java | 17 +++ .../src/main/java/rest/DomiSMPRestClient.java | 6 +- .../src/main/java/rest/ResourceClient.java | 54 +++++++ .../src/main/java/rest/RestServicePaths.java | 12 ++ .../main/java/rest/models/ResourceModel.java | 12 ++ .../src/main/java/utils/TestRunData.java | 5 + .../domiSMPTests/ui/EditGroupsPgTests.java | 5 +- .../domiSMPTests/ui/EditResourcePgTests.java | 144 ++++++++++++++++++ .../java/domiSMPTests/ui/KeystorePgTests.java | 2 +- .../domiSMPTests/ui/PropertiesPgTests.java | 2 +- .../java/domiSMPTests/ui/TrustorePgTests.java | 6 - .../java/domiSMPTests/ui/UsersPgTests.java | 2 +- 20 files changed, 440 insertions(+), 22 deletions(-) create mode 100644 domiSMP-ui-tests/src/main/java/pages/administration/editResourcesPage/CreateSubresourceDetailsDialog.java create mode 100644 domiSMP-ui-tests/src/main/java/pages/administration/editResourcesPage/EditResourceDocumentPage.java create mode 100644 domiSMP-ui-tests/src/main/java/pages/administration/editResourcesPage/EditResourcePage.java create mode 100644 domiSMP-ui-tests/src/main/java/pages/administration/editResourcesPage/ResourceDetailsTab.java create mode 100644 domiSMP-ui-tests/src/main/java/pages/administration/editResourcesPage/ResourcesMembersTab.java create mode 100644 domiSMP-ui-tests/src/main/java/pages/administration/editResourcesPage/SubresourceTab.java create mode 100644 domiSMP-ui-tests/src/main/java/rest/ResourceClient.java create mode 100644 domiSMP-ui-tests/src/test/java/domiSMPTests/ui/EditResourcePgTests.java diff --git a/domiSMP-ui-tests/src/main/java/ddsl/CommonPageWithTabsAndGrid.java b/domiSMP-ui-tests/src/main/java/ddsl/CommonPageWithTabsAndGrid.java index 59878a9be..c59db8243 100644 --- a/domiSMP-ui-tests/src/main/java/ddsl/CommonPageWithTabsAndGrid.java +++ b/domiSMP-ui-tests/src/main/java/ddsl/CommonPageWithTabsAndGrid.java @@ -6,13 +6,10 @@ 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 org.slf4j.Logger; -import org.slf4j.LoggerFactory; /** * Generic page used for pages which have small grid in the right of the page and tabs in the left. This element gives access to action buttons and elements of the page. */ public class CommonPageWithTabsAndGrid extends CommonPageWithTabs { - private final static Logger LOG = LoggerFactory.getLogger(CommonPageWithTabsAndGrid.class); @FindBy(css = "mat-form-field input") public WebElement filterInput; @FindBy(css = "data-panel >div >div> mat-toolbar button:first-of-type") @@ -23,7 +20,6 @@ public class CommonPageWithTabsAndGrid extends CommonPageWithTabs { public CommonPageWithTabsAndGrid(WebDriver driver) { super(driver); PageFactory.initElements(new AjaxElementLocatorFactory(driver, data.getWaitTimeShort()), this); - LOG.debug("CommonPageWithTabs is loaded"); } public SmallGrid getLeftSideGrid() { diff --git a/domiSMP-ui-tests/src/main/java/ddsl/DomiSMPPage.java b/domiSMP-ui-tests/src/main/java/ddsl/DomiSMPPage.java index 8d01055bc..1477809d8 100644 --- a/domiSMP-ui-tests/src/main/java/ddsl/DomiSMPPage.java +++ b/domiSMP-ui-tests/src/main/java/ddsl/DomiSMPPage.java @@ -65,6 +65,7 @@ public class DomiSMPPage extends DComponent { actions.perform(); logoutMenuBtn.click(); + // data.destroySession(); } public void refreshPage() { 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 989c8b63e..85126f9e9 100644 --- a/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/SideNavigationComponent.java +++ b/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/SideNavigationComponent.java @@ -13,6 +13,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import pages.administration.editDomainsPage.EditDomainsPage; import pages.administration.editGroupsPage.EditGroupsPage; +import pages.administration.editResourcesPage.EditResourcePage; import pages.systemSettings.TruststorePage; import pages.systemSettings.UsersPage; import pages.systemSettings.domainsPage.DomainsPage; @@ -121,12 +122,10 @@ public class SideNavigationComponent extends DomiSMPPage { openSubmenu(administrationExpand, editGroupsLnk); return (T) new EditGroupsPage(driver); } - - - // case ADMINISTRATION_EDIT_RESOURCES: - // expandSection(administrationExpand); - // return new DLink(driver, editResourcesLnk); - + if (page == Pages.ADMINISTRATION_EDIT_RESOURCES) { + openSubmenu(administrationExpand, editResourcesLnk); + return (T) new EditResourcePage(driver); + } if (page == Pages.SYSTEM_SETTINGS_USERS) { openSubmenu(systemSettingsExpand, usersLnk); return (T) new UsersPage(driver); diff --git a/domiSMP-ui-tests/src/main/java/pages/administration/editResourcesPage/CreateSubresourceDetailsDialog.java b/domiSMP-ui-tests/src/main/java/pages/administration/editResourcesPage/CreateSubresourceDetailsDialog.java new file mode 100644 index 000000000..063c1163b --- /dev/null +++ b/domiSMP-ui-tests/src/main/java/pages/administration/editResourcesPage/CreateSubresourceDetailsDialog.java @@ -0,0 +1,51 @@ +package pages.administration.editResourcesPage; + +import ddsl.dcomponents.AlertComponent; +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.ResourceModel; + +public class CreateSubresourceDetailsDialog extends DComponent { + + + @FindBy(id = "identifierValue_id") + private WebElement subresourceIdentifierInput; + @FindBy(id = "identifierScheme_id") + private WebElement subresourceSchemeInput; + @FindBy(id = "createButton") + private WebElement createBtn; + private AlertComponent alertComponent = null; + + public CreateSubresourceDetailsDialog(WebDriver driver) { + super(driver); + PageFactory.initElements(new AjaxElementLocatorFactory(driver, data.getWaitTimeShort()), this); + + } + + public AlertComponent getAlertArea() { + if (alertComponent == null) { + alertComponent = new AlertComponent(driver); + } + return alertComponent; + } + + + public void fillResourceDetails(ResourceModel resourceModel) { + weToDInput(subresourceIdentifierInput).fill(resourceModel.getIdentifierValue()); + weToDInput(subresourceSchemeInput).fill(resourceModel.getIdentifierScheme()); + } + + public Boolean tryClickOnSave() { + wait.forElementToBeClickable(createBtn); + if (weToDButton(createBtn).isEnabled()) { + weToDButton(createBtn).click(); + return true; + } else { + return false; + } + } +} diff --git a/domiSMP-ui-tests/src/main/java/pages/administration/editResourcesPage/EditResourceDocumentPage.java b/domiSMP-ui-tests/src/main/java/pages/administration/editResourcesPage/EditResourceDocumentPage.java new file mode 100644 index 000000000..bfe529f59 --- /dev/null +++ b/domiSMP-ui-tests/src/main/java/pages/administration/editResourcesPage/EditResourceDocumentPage.java @@ -0,0 +1,19 @@ +package pages.administration.editResourcesPage; + +import ddsl.DomiSMPPage; +import org.openqa.selenium.WebDriver; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Page object for the Edit resource document page. This contains the locators of the page and the methods for the behaviour of the page + */ +class EditResourceDocumentPage extends DomiSMPPage { + private final static Logger LOG = LoggerFactory.getLogger(EditResourceDocumentPage.class); + + protected EditResourceDocumentPage(WebDriver driver) { + super(driver); + LOG.debug("Loading Edit resource document page."); + + } +} diff --git a/domiSMP-ui-tests/src/main/java/pages/administration/editResourcesPage/EditResourcePage.java b/domiSMP-ui-tests/src/main/java/pages/administration/editResourcesPage/EditResourcePage.java new file mode 100644 index 000000000..8969a7de2 --- /dev/null +++ b/domiSMP-ui-tests/src/main/java/pages/administration/editResourcesPage/EditResourcePage.java @@ -0,0 +1,63 @@ +package pages.administration.editResourcesPage; + +import ddsl.CommonPageWithTabsAndGrid; +import org.openqa.selenium.NoSuchElementException; +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 rest.models.DomainModel; +import rest.models.GroupModel; +import rest.models.ResourceModel; + +/** + * Page object for the Edit resource page. This contains the locators of the page and the methods for the behaviour of the page + */ +public class EditResourcePage extends CommonPageWithTabsAndGrid { + private final static Logger LOG = LoggerFactory.getLogger(EditResourcePage.class); + @FindBy(id = "domain_id") + private WebElement domainDdl; + @FindBy(id = "group_id") + private WebElement groupDdl; + + @FindBy(css = ".smp-warning-panel") + private WebElement notAdministratorWarning; + + + public EditResourcePage(WebDriver driver) { + super(driver); + LOG.debug("Loading Edit resources page."); + } + + public void selectGroup(DomainModel domainModel, GroupModel groupModel) { + weToMatSelect(domainDdl).selectByVisibleText(domainModel.getDomainCode()); + } + + public ResourcesMembersTab getResourceMembersTab() { + return new ResourcesMembersTab(driver); + } + + public ResourceDetailsTab getResourceDetailsTab() { + return new ResourceDetailsTab(driver); + } + + public void selectDomain(DomainModel domainModel, GroupModel groupModel, ResourceModel resourceModel) { + weToMatSelect(domainDdl).selectByVisibleText(domainModel.getDomainCode()); + weToMatSelect(groupDdl).selectByVisibleText(groupModel.getGroupName()); + getLeftSideGrid().searchAndClickElementInColumn("Identifier", resourceModel.getIdentifierValue()); + } + + public boolean isCurrentUserAdministrator() { + try { + if (notAdministratorWarning.isDisplayed()) { + return true; + } + return false; + + } catch (NoSuchElementException e) { + return false; + } + } + +} diff --git a/domiSMP-ui-tests/src/main/java/pages/administration/editResourcesPage/ResourceDetailsTab.java b/domiSMP-ui-tests/src/main/java/pages/administration/editResourcesPage/ResourceDetailsTab.java new file mode 100644 index 000000000..8b4f79e3d --- /dev/null +++ b/domiSMP-ui-tests/src/main/java/pages/administration/editResourcesPage/ResourceDetailsTab.java @@ -0,0 +1,29 @@ +package pages.administration.editResourcesPage; + +import ddsl.dcomponents.DComponent; +import org.openqa.selenium.ElementNotInteractableException; +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; + +/** + * Page object Resource details tab of Edit Resource page. This contains the locators of the page and the methods for the behaviour of the page + */ +public class ResourceDetailsTab extends DComponent { + + @FindBy(id = "showResource") + private WebElement editDocumentBtn; + + public ResourceDetailsTab(WebDriver driver) { + super(driver); + PageFactory.initElements(new AjaxElementLocatorFactory(driver, data.getWaitTimeShort()), this); + + } + + public EditResourceDocumentPage clickOnEditDocument() throws ElementNotInteractableException { + weToDButton(editDocumentBtn).click(); + return new EditResourceDocumentPage(driver); + } +} diff --git a/domiSMP-ui-tests/src/main/java/pages/administration/editResourcesPage/ResourcesMembersTab.java b/domiSMP-ui-tests/src/main/java/pages/administration/editResourcesPage/ResourcesMembersTab.java new file mode 100644 index 000000000..36e248f84 --- /dev/null +++ b/domiSMP-ui-tests/src/main/java/pages/administration/editResourcesPage/ResourcesMembersTab.java @@ -0,0 +1,17 @@ +package pages.administration.editResourcesPage; + +import ddsl.dcomponents.commonComponents.members.MembersComponent; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.support.PageFactory; +import org.openqa.selenium.support.pagefactory.AjaxElementLocatorFactory; + +/** + * Page object Resources members tab of Edit Resource page. This contains the locators of the page and the methods for the behaviour of the page + */ +public class ResourcesMembersTab extends MembersComponent { + public ResourcesMembersTab(WebDriver driver) { + super(driver); + PageFactory.initElements(new AjaxElementLocatorFactory(driver, data.getWaitTimeShort()), this); + } +} + diff --git a/domiSMP-ui-tests/src/main/java/pages/administration/editResourcesPage/SubresourceTab.java b/domiSMP-ui-tests/src/main/java/pages/administration/editResourcesPage/SubresourceTab.java new file mode 100644 index 000000000..659309a73 --- /dev/null +++ b/domiSMP-ui-tests/src/main/java/pages/administration/editResourcesPage/SubresourceTab.java @@ -0,0 +1,17 @@ +package pages.administration.editResourcesPage; + +import ddsl.dcomponents.commonComponents.members.MembersComponent; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.support.PageFactory; +import org.openqa.selenium.support.pagefactory.AjaxElementLocatorFactory; + +/** + * Page object Subresource tab of Edit Resource page. This contains the locators of the page and the methods for the behaviour of the page + */ +public class SubresourceTab extends MembersComponent { + public SubresourceTab(WebDriver driver) { + super(driver); + PageFactory.initElements(new AjaxElementLocatorFactory(driver, data.getWaitTimeShort()), this); + } +} + diff --git a/domiSMP-ui-tests/src/main/java/rest/DomiSMPRestClient.java b/domiSMP-ui-tests/src/main/java/rest/DomiSMPRestClient.java index 45f72156c..451bdc8cc 100644 --- a/domiSMP-ui-tests/src/main/java/rest/DomiSMPRestClient.java +++ b/domiSMP-ui-tests/src/main/java/rest/DomiSMPRestClient.java @@ -10,10 +10,14 @@ public class DomiSMPRestClient extends BaseRestClient { public DomainClient domains() { return new DomainClient(); } - public GroupClient groups() { return new GroupClient(); } + public ResourceClient resources() { + return new ResourceClient(); + } + + } diff --git a/domiSMP-ui-tests/src/main/java/rest/ResourceClient.java b/domiSMP-ui-tests/src/main/java/rest/ResourceClient.java new file mode 100644 index 000000000..7a3f8d9d6 --- /dev/null +++ b/domiSMP-ui-tests/src/main/java/rest/ResourceClient.java @@ -0,0 +1,54 @@ +package rest; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.sun.jersey.api.client.ClientResponse; +import org.json.JSONObject; +import rest.models.DomainModel; +import rest.models.GroupModel; +import rest.models.MemberModel; +import rest.models.ResourceModel; +import utils.TestRunData; + +/** + * Rest client for group actions + */ +public class ResourceClient extends BaseRestClient { + + public ResourceClient() { + super(); + } + + public ResourceModel createResourceForGroup(DomainModel domainModel, GroupModel groupModel, ResourceModel resourceModelToBeCreated) { + JSONObject resourceJson = new JSONObject(resourceModelToBeCreated); + String createResourcePath = RestServicePaths.getCreateResourcePath(TestRunData.getInstance().getUserId(), domainModel.getDomainId(), groupModel.getGroupId()); + ClientResponse response = jsonPUT(resource.path(createResourcePath), resourceJson); + if (response.getStatus() != 200) { + try { + throw new SMPRestException("Could not create resource!", response); + } catch (SMPRestException e) { + throw new RuntimeException(e); + } + } + log.debug("Resource have been added!"); + return response.getEntity(ResourceModel.class); + } + + public MemberModel addMembersToResource(DomainModel domainModel, GroupModel groupModel, ResourceModel resourceModel, MemberModel groupMember) throws JsonProcessingException { + ObjectMapper mapper = new ObjectMapper(); + String membersJson = mapper.writeValueAsString(groupMember); + + String addGroupMemberPath = RestServicePaths.getResourceAddMemberPath(TestRunData.getInstance().getUserId(), domainModel.getDomainId(), groupModel.getGroupId(), resourceModel.getResourceId()); + + ClientResponse response = jsonPUT(resource.path(addGroupMemberPath), membersJson); + if (response.getStatus() != 200) { + try { + throw new SMPRestException("Could not add members to resource", response); + } catch (SMPRestException e) { + throw new RuntimeException(e); + } + } + log.debug("Member: " + groupMember.getUsername() + " has been added!"); + return response.getEntity(MemberModel.class); + } +} diff --git a/domiSMP-ui-tests/src/main/java/rest/RestServicePaths.java b/domiSMP-ui-tests/src/main/java/rest/RestServicePaths.java index 32058cae9..f5a019211 100644 --- a/domiSMP-ui-tests/src/main/java/rest/RestServicePaths.java +++ b/domiSMP-ui-tests/src/main/java/rest/RestServicePaths.java @@ -52,4 +52,16 @@ public class RestServicePaths { return CONTEXT_PATH_EDIT + currentUserId + "/domain/" + domainId + "/group/" + groupId + "/member/put"; } + //Resources + + public static String getCreateResourcePath(String currentUserId, String domainId, String groupId) { + + return CONTEXT_PATH_EDIT + currentUserId + "/domain/" + domainId + "/group/" + groupId + "/resource/create"; + } + + public static String getResourceAddMemberPath(String currentUserId, String domainId, String groupId, String resourceId) { + + return CONTEXT_PATH_EDIT + currentUserId + "/domain/" + domainId + "/group/" + groupId + "/resource/" + resourceId + "/member/put"; + } + } diff --git a/domiSMP-ui-tests/src/main/java/rest/models/ResourceModel.java b/domiSMP-ui-tests/src/main/java/rest/models/ResourceModel.java index 119fb50a7..37213ee3e 100644 --- a/domiSMP-ui-tests/src/main/java/rest/models/ResourceModel.java +++ b/domiSMP-ui-tests/src/main/java/rest/models/ResourceModel.java @@ -85,4 +85,16 @@ public class ResourceModel { public void setVisibility(String visibility) { this.visibility = visibility; } + + public static ResourceModel generatePublicResourceUnregisteredToSML() { + ResourceModel resourceModel = new ResourceModel(); + resourceModel.identifierScheme = StringUtils.lowerCase(Generator.randomAlphabeticalValue(3) + "-" + Generator.randomAlphaNumericValue(3) + "-" + Generator.randomAlphaNumericValue(3)); + resourceModel.identifierValue = "AUT_resIden_" + Generator.randomAlphaNumericValue(4).toLowerCase(); + resourceModel.smlRegistered = false; + resourceModel.resourceTypeIdentifier = StringUtils.lowerCase(Utils.randomEnum(ResourceTypes.values()).getName()); + resourceModel.visibility = "PUBLIC"; + return resourceModel; + } + + } diff --git a/domiSMP-ui-tests/src/main/java/utils/TestRunData.java b/domiSMP-ui-tests/src/main/java/utils/TestRunData.java index f07c50943..1a6020274 100644 --- a/domiSMP-ui-tests/src/main/java/utils/TestRunData.java +++ b/domiSMP-ui-tests/src/main/java/utils/TestRunData.java @@ -116,6 +116,11 @@ public class TestRunData { this.cookies = cookies; } + public void destroySession() { + setUserId(null); + getCookies().clear(); + + } public void setUserId(String userId) { this.userId = userId; } diff --git a/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/EditGroupsPgTests.java b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/EditGroupsPgTests.java index 06f35f31d..0979b64d3 100644 --- a/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/EditGroupsPgTests.java +++ b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/EditGroupsPgTests.java @@ -11,6 +11,7 @@ import pages.LoginPage; import pages.administration.editGroupsPage.CreateResourceDetailsDialog; import pages.administration.editGroupsPage.EditGroupsPage; import rest.models.*; +import utils.TestRunData; import java.util.Arrays; import java.util.List; @@ -36,7 +37,7 @@ public class EditGroupsPgTests extends SeleniumTest { adminMember.setRoleType("ADMIN"); MemberModel superMember = new MemberModel(); - superMember.setUsername(data.getAdminUsername()); + superMember.setUsername(TestRunData.getInstance().getAdminUsername()); superMember.setRoleType("ADMIN"); //create user @@ -62,7 +63,7 @@ public class EditGroupsPgTests extends SeleniumTest { homePage = new DomiSMPPage(driver); loginPage = homePage.goToLoginPage(); - loginPage.login(adminUser.getUsername(), data.getNewPassword()); + loginPage.login(adminUser.getUsername(), TestRunData.getInstance().getNewPassword()); editGroupPage = homePage.getSidebar().navigateTo(Pages.ADMINISTRATION_EDIT_GROUPS); } diff --git a/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/EditResourcePgTests.java b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/EditResourcePgTests.java new file mode 100644 index 000000000..d2feadc20 --- /dev/null +++ b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/EditResourcePgTests.java @@ -0,0 +1,144 @@ +package domiSMPTests.ui; + +import ddsl.DomiSMPPage; +import ddsl.enums.Pages; +import ddsl.enums.ResourceTypes; +import domiSMPTests.SeleniumTest; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.Test; +import org.testng.asserts.SoftAssert; +import pages.LoginPage; +import pages.administration.editResourcesPage.EditResourcePage; +import rest.models.*; +import utils.TestRunData; + +import java.util.Arrays; +import java.util.List; + +public class EditResourcePgTests extends SeleniumTest { + DomiSMPPage homePage; + LoginPage loginPage; + EditResourcePage editResourcePage; + UserModel adminUser; + DomainModel domainModel; + GroupModel groupModel; + ResourceModel resourceModel; + SoftAssert soft; + + @BeforeMethod(alwaysRun = true) + public void beforeTest() throws Exception { + soft = new SoftAssert(); + domainModel = DomainModel.generatePublicDomainModelWithSML(); + adminUser = UserModel.generateUserWithADMINrole(); + groupModel = GroupModel.generatePublicGroup(); + resourceModel = ResourceModel.generatePublicResourceUnregisteredToSML(); + + MemberModel adminMember = new MemberModel() { + }; + adminMember.setUsername(adminUser.getUsername()); + adminMember.setRoleType("ADMIN"); + + MemberModel superMember = new MemberModel(); + superMember.setUsername(TestRunData.getInstance().getAdminUsername()); + superMember.setRoleType("ADMIN"); + + //create user + rest.users().createUser(adminUser).getString("userId"); + + //create domain + domainModel = rest.domains().createDomain(domainModel); + + //add users to domain + rest.domains().addMembersToDomain(domainModel, adminMember); + rest.domains().addMembersToDomain(domainModel, superMember); + + //add resources to domain + List<ResourceTypes> resourcesToBeAdded = Arrays.asList(ResourceTypes.OASIS1, ResourceTypes.OASIS3, ResourceTypes.OASIS2); + domainModel = rest.domains().addResourcesToDomain(domainModel, resourcesToBeAdded); + + //create group for domain + groupModel = rest.domains().createGroupForDomain(domainModel, groupModel); + + //add users to groups + rest.groups().addMembersToGroup(domainModel, groupModel, adminMember); + + //add resource to group + resourceModel = rest.resources().createResourceForGroup(domainModel, groupModel, resourceModel); + rest.resources().addMembersToResource(domainModel, groupModel, resourceModel, adminMember); + + + homePage = new DomiSMPPage(driver); + loginPage = homePage.goToLoginPage(); + loginPage.login(adminUser.getUsername(), TestRunData.getInstance().getNewPassword()); + editResourcePage = homePage.getSidebar().navigateTo(Pages.ADMINISTRATION_EDIT_RESOURCES); + } + + @Test(description = "EDTRES-01 Resource admins are able to invite/edit/remove resource members", priority = 0) + public void resourceAdminsAreAbleToInviteEditRemoveMembers() { + + UserModel domainMember = UserModel.generateUserWithUSERrole(); + rest.users().createUser(domainMember); + + editResourcePage.selectDomain(domainModel, groupModel, resourceModel); + editResourcePage.goToTab("Members"); + //Add user + editResourcePage.getResourceMembersTab().getInviteMemberBtn().click(); + editResourcePage.getResourceMembersTab().getInviteMembersPopup().selectMember(domainMember.getUsername(), "VIEWER"); + soft.assertTrue(editResourcePage.getResourceMembersTab().getMembersGrid().isValuePresentInColumn("Username", domainMember.getUsername())); + + //Change role of user + editResourcePage.getResourceMembersTab().changeRoleOfUser(domainMember.getUsername(), "ADMIN"); + String currentRoleTypeOfuser = editResourcePage.getResourceMembersTab().getMembersGrid().getColumnValueForSpecificRow("Username", domainMember.getUsername(), "Role type"); + soft.assertEquals(currentRoleTypeOfuser, "ADMIN"); + + //Remove user + editResourcePage.getResourceMembersTab().removeUser(domainMember.getUsername()); + soft.assertFalse(editResourcePage.getResourceMembersTab().getMembersGrid().isValuePresentInColumn("Username", domainMember.getUsername())); + + soft.assertAll(); + } + + @Test(description = "EDTRES-02 Resource admins are to view their resources", priority = 1) + public void resourceAdminsAreAbleToViewTheirResources() { + + UserModel domainMember = UserModel.generateUserWithUSERrole(); + rest.users().createUser(domainMember); + + editResourcePage.selectDomain(domainModel, groupModel, resourceModel); + editResourcePage.goToTab("Members"); + //Add user + editResourcePage.getResourceMembersTab().getInviteMemberBtn().click(); + editResourcePage.getResourceMembersTab().getInviteMembersPopup().selectMember(domainMember.getUsername(), "VIEWER"); + soft.assertTrue(editResourcePage.getResourceMembersTab().getMembersGrid().isValuePresentInColumn("Username", domainMember.getUsername())); + } + + @Test(description = "EDTGRP-02 Group admins are able to create new resources", priority = 0) + public void groupsAdminsAreAbleToCreateNewResources() throws Exception { + + UserModel resourseAdmin = UserModel.generateUserWithADMINrole(); + rest.users().createUser(resourseAdmin); + + MemberModel resourceMember = new MemberModel(); + resourceMember.setUsername(resourseAdmin.getUsername()); + resourceMember.setRoleType("VIEWER"); + + homePage.logout(); + loginPage = homePage.goToLoginPage(); + loginPage.login(resourseAdmin.getUsername(), TestRunData.getInstance().getNewPassword()); + editResourcePage = homePage.getSidebar().navigateTo(Pages.ADMINISTRATION_EDIT_RESOURCES); + soft.assertTrue(editResourcePage.isCurrentUserAdministrator()); + + resourceMember = rest.resources().addMembersToResource(domainModel, groupModel, resourceModel, resourceMember); + //Check if viewer can see resources in Edit Resource page + editResourcePage.refreshPage(); + soft.assertTrue(editResourcePage.isCurrentUserAdministrator()); + + resourceMember.setRoleType("ADMIN"); + rest.resources().addMembersToResource(domainModel, groupModel, resourceModel, resourceMember); + //Check if admin can see resources in Edit Resource page + + editResourcePage.refreshPage(); + soft.assertTrue(editResourcePage.getLeftSideGrid().isValuePresentInColumn("Identifier", resourceModel.getIdentifierValue())); + soft.assertAll(); + } +} 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 cf9eb0bed..d0e07c871 100644 --- a/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/KeystorePgTests.java +++ b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/KeystorePgTests.java @@ -73,7 +73,7 @@ public class KeystorePgTests extends SeleniumTest { soft.assertAll(); } - @Test(description = "KEYS-03 SSystem admin is able to import duplicated keystore", priority = 1) + @Test(description = "KEYS-04 SSystem admin is able to import duplicated keystore", priority = 1) public void systemAdminIsAbleToImportDuplicatedKeyStores() throws Exception { String path = FileUtils.getAbsoluteKeystorePath("valid_keystore.jks"); 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 598506a70..4df7fc19e 100644 --- a/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/PropertiesPgTests.java +++ b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/PropertiesPgTests.java @@ -53,7 +53,7 @@ public class PropertiesPgTests extends SeleniumTest { soft.assertAll(); } - @Test(description = "PRP-5 Value is validated according to expected format (URL") + @Test(description = "PRP-5 Value is validated according to expected format (URL)", priority = 4) public void propertyValueURLIsValidatedAccordingToExpectedFormat() throws Exception { String property = "bdmsl.integration.url"; 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 2135517fe..0019f6ddc 100644 --- a/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/TrustorePgTests.java +++ b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/TrustorePgTests.java @@ -34,11 +34,7 @@ public class TrustorePgTests extends SeleniumTest { soft.assertEquals(truststorepage.getValidToValue(), "22/3/2033, 10:49:22"); soft.assertEquals(truststorepage.getIssuerValue(), "C=BE,O=eDelivery,CN=red_gw"); soft.assertEquals(truststorepage.getSerialNumberValue(), "110fa0d8"); - - soft.assertAll(); - - } @Test(description = "TRST-02 System admin is able to import certificates") @@ -60,10 +56,8 @@ public class TrustorePgTests extends SeleniumTest { String duplicatedCertificateALias = truststorepage.addCertificateAndReturnAlias(path); soft.assertNotNull(duplicatedCertificateALias); soft.assertTrue(truststorepage.getLeftSideGrid().isValuePresentInColumn("Alias", duplicatedCertificateALias)); - 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 b122295e7..8301f7975 100644 --- a/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/UsersPgTests.java +++ b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/UsersPgTests.java @@ -51,7 +51,7 @@ public class UsersPgTests extends SeleniumTest { } - @Test(description = "USR-02 USR-02 System admin is not able to create duplicated user") + @Test(description = "USR-02 System admin is not able to create duplicated user") public void systemAdminIsNotAbleToCreateDuplicatedUser() throws Exception { loginPage.login(data.getAdminUser().get("username"), data.getAdminUser().get("password")); -- GitLab