Code development platform for open source projects from the European Union institutions

Skip to content
Snippets Groups Projects
Commit 77c7408d authored by Mihai BOZ's avatar Mihai BOZ
Browse files

added text for EditGroups, added tests for SearchResources page

parent 8f6ceaf8
No related branches found
No related tags found
No related merge requests found
......@@ -50,6 +50,7 @@ public class CreateResourceDetailsDialog extends DComponent {
wait.forElementToBeClickable(saveBtn);
if (weToDButton(saveBtn).isEnabled()) {
weToDButton(saveBtn).click();
wait.forXMillis(data.getWaitTimeoutShortMilliseconds());
return true;
} else {
return false;
......
......@@ -42,6 +42,7 @@ public class ResourcesPage extends DomiSMPPage {
LOG.debug("Click on Open URL for " + resourceIdentifier);
weToDButton(searchBtn).click();
getGrid().searchAndClickElementInColumn("Resource URL", "Open URL");
wait.forXMillis(data.getWaitTimeoutShortMilliseconds());
Set<String> handles = driver.getWindowHandles();
Iterator<String> iterator = handles.iterator();
......
......@@ -15,6 +15,7 @@ import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.NewCookie;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class BaseRestClient {
protected final Logger log = LoggerFactory.getLogger(this.getClass());
......@@ -77,6 +78,19 @@ public class BaseRestClient {
return builder.type(MediaType.APPLICATION_JSON).get(ClientResponse.class);
}
protected ClientResponse requestGET(WebResource resource, HashMap<String, String> params) throws Exception {
if (params != null) {
for (Map.Entry<String, String> param : params.entrySet()) {
resource = resource.queryParam(param.getKey(), param.getValue());
}
}
WebResource.Builder builder = decorateBuilder(resource);
ClientResponse response = builder.get(ClientResponse.class);
return response;
}
// -------------------------------------------- Login --------------------------------------------------------------
......
......@@ -22,6 +22,10 @@ public class DomiSMPRestClient extends BaseRestClient {
return new KeystoreClient();
}
public PropertiesClient propertiesClient() {
return new PropertiesClient();
}
}
......
package rest;
import com.sun.jersey.api.client.ClientResponse;
import org.json.JSONArray;
import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.HashMap;
/**
* Rest client for group actions
*/
public class PropertiesClient extends BaseRestClient {
private final static Logger LOG = LoggerFactory.getLogger(PropertiesClient.class);
public JSONObject getProperty(String propertyName) throws Exception {
startSession();
HashMap<String, String> params = new HashMap<>();
params.put("property", propertyName);
ClientResponse clientResponse = requestGET(resource.path(RestServicePaths.property()), params);
if (clientResponse.getStatus() != 200) {
throw new Exception("Could not get properties ");
}
return new JSONObject(clientResponse.getEntity(String.class)).getJSONArray("serviceEntities").getJSONObject(0);
}
public void setPropertyValue(JSONObject propertyObject) throws Exception {
startSession();
JSONArray list = new JSONArray();
list.put(propertyObject);
ClientResponse clientResponse = jsonPUT(resource.path(RestServicePaths.property()), list.toString());
if (clientResponse.getStatus() != 200) {
throw new Exception("Could not get properties ");
}
}
}
......@@ -67,4 +67,13 @@ public class RestServicePaths {
return CONTEXT_PATH_INTERNAL + "keystore/" + currentUserId;
}
//Properties
public static String property() {
return CONTEXT_PATH_INTERNAL + "property";
}
}
......@@ -4,6 +4,7 @@ import ddsl.DomiSMPPage;
import ddsl.enums.Pages;
import ddsl.enums.ResourceTypes;
import domiSMPTests.SeleniumTest;
import org.json.JSONObject;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import org.testng.asserts.SoftAssert;
......@@ -110,6 +111,52 @@ public class EditGroupsPgTests extends SeleniumTest {
soft.assertAll();
}
@Test(description = "EDTGRP-03 Resource schema field is according to properties")
public void resourceSchemeFieldIsAccordingToProperties() throws Exception {
// Update identifiersBehaviour.ParticipantIdentifierScheme.validationRegex property value
JSONObject propertyRegex = rest.propertiesClient().getProperty("identifiersBehaviour.ParticipantIdentifierScheme.validationRegex");
propertyRegex.put("value", ".");
rest.propertiesClient().setPropertyValue(propertyRegex);
// Validate if the new value of property is used
ResourceModel resourceModel = ResourceModel.generatePublicResource();
resourceModel.setIdentifierScheme("2");
editGroupPage.selectDomain(domainModel, groupModel);
editGroupPage.goToTab("Resources");
CreateResourceDetailsDialog createResourceDetailsDialog = editGroupPage.getResourceTab().clickOnCreateNewResource();
createResourceDetailsDialog.fillResourceDetails(resourceModel);
createResourceDetailsDialog.tryClickOnSave();
soft.assertTrue(editGroupPage.getResourceTab().getGrid().isValuePresentInColumn("Identifier", resourceModel.getIdentifierValue()));
//Restore the old value
propertyRegex.put("value", "^$|^(?!^.{26})([a-z0-9]+-[a-z0-9]+-[a-z0-9]+)$|^urn:oasis:names:tc:ebcore:partyid-type:(iso6523|unregistered)(:.+)?$");
rest.propertiesClient().setPropertyValue(propertyRegex);
// Update identifiersBehaviour.scheme.mandatory property value
JSONObject propertyMandatory = rest.propertiesClient().getProperty("identifiersBehaviour.scheme.mandatory");
propertyMandatory.put("value", "false");
//Restore the old value
rest.propertiesClient().setPropertyValue(propertyMandatory);
// Validate if the new value of property is used
ResourceModel resourceModelForMandatory = ResourceModel.generatePublicResource();
resourceModelForMandatory.setIdentifierScheme("");
editGroupPage.refreshPage();
editGroupPage.selectDomain(domainModel, groupModel);
editGroupPage.goToTab("Resources");
createResourceDetailsDialog = editGroupPage.getResourceTab().clickOnCreateNewResource();
createResourceDetailsDialog.fillResourceDetails(resourceModelForMandatory);
createResourceDetailsDialog.tryClickOnSave();
soft.assertTrue(editGroupPage.getResourceTab().getGrid().isValuePresentInColumn("Identifier", resourceModelForMandatory.getIdentifierValue()));
//Restore the old value
propertyMandatory.put("value", "true");
rest.propertiesClient().setPropertyValue(propertyMandatory);
soft.assertAll();
}
@Test(description = "EDTGRP-04 Group admins are not able to create duplicated resources with same identifier and schema")
public void groupsAdminsAreNotAbleToCreateDuplicatedResourcesWithSameIdentifierAndSchema() {
ResourceModel resourceModel = ResourceModel.generatePublicResource();
......
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 pages.search.ResourcesPage;
import rest.models.*;
import utils.TestRunData;
import utils.XMLUtils;
import java.util.Arrays;
import java.util.List;
public class SearchResourcesOgTests extends SeleniumTest {
DomiSMPPage homePage;
LoginPage loginPage;
EditResourcePage editResourcePage;
UserModel adminUser;
DomainModel domainModel;
GroupModel groupModel;
SoftAssert soft;
MemberModel adminMember;
ResourcesPage resourcesPage;
@BeforeMethod(alwaysRun = true)
public void beforeTest() throws Exception {
soft = new SoftAssert();
domainModel = DomainModel.generatePublicDomainModelWithSML();
adminUser = UserModel.generateUserWithADMINrole();
groupModel = GroupModel.generatePublicGroup();
adminMember = new MemberModel() {
};
adminMember.setUsername(adminUser.getUsername());
adminMember.setRoleType("ADMIN");
adminMember.setHasPermissionReview(true);
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);
homePage = new DomiSMPPage(driver);
loginPage = homePage.goToLoginPage();
loginPage.login(adminUser.getUsername(), TestRunData.getInstance().getNewPassword());
resourcesPage = homePage.getSidebar().navigateTo(Pages.SEARCH_RESOURCES);
}
@Test(description = "SRCRES-09 User is able to Open URL for resource with OASIS 1.0")
public void userIsAbleToOpenURLForResourceWithOASIS1() throws Exception {
ResourceModel resourceModelOasis1 = ResourceModel.generatePublicResourceUnregisteredToSML();
resourceModelOasis1.setResourceTypeIdentifier(ResourceTypes.OASIS1.getName());
resourceModelOasis1 = rest.resources().createResourceForGroup(domainModel, groupModel, resourceModelOasis1);
rest.resources().addMembersToResource(domainModel, groupModel, resourceModelOasis1, adminMember);
XMLUtils documentXML = resourcesPage.openURLResouceDocument(resourceModelOasis1.getIdentifierValue(), resourceModelOasis1.getIdentifierScheme());
soft.assertEquals(documentXML.getNodeValue("ParticipantIdentifier"), resourceModelOasis1.getIdentifierValue(), "ParticipantIdentifier value is wrong");
soft.assertAll();
}
@Test(description = "SRCRES-09 User is able to Open URL for resource with OASIS 1.0")
public void userIsAbleToOpenURLForResourceWithOASIS2() throws Exception {
ResourceModel resourceModelOasis2 = ResourceModel.generatePublicResourceUnregisteredToSML();
resourceModelOasis2.setResourceTypeIdentifier(ResourceTypes.OASIS2.getName());
resourceModelOasis2 = rest.resources().createResourceForGroup(domainModel, groupModel, resourceModelOasis2);
rest.resources().addMembersToResource(domainModel, groupModel, resourceModelOasis2, adminMember);
XMLUtils documentXML = resourcesPage.openURLResouceDocument(resourceModelOasis2.getIdentifierValue(), resourceModelOasis2.getIdentifierScheme());
soft.assertEquals(documentXML.getNodeValue("ParticipantID"), resourceModelOasis2.getIdentifierValue(), "ParticipantIdentifier value is wrong");
soft.assertAll();
}
@Test(description = "SRCRES-09 User is able to Open URL for resource with OASIS 1.0")
public void userIsAbleToOpenURLForResourceWithOASIS3() throws Exception {
ResourceModel resourceModelOasis3 = ResourceModel.generatePublicResourceUnregisteredToSML();
resourceModelOasis3.setResourceTypeIdentifier(ResourceTypes.OASIS3.getName());
resourceModelOasis3 = rest.resources().createResourceForGroup(domainModel, groupModel, resourceModelOasis3);
rest.resources().addMembersToResource(domainModel, groupModel, resourceModelOasis3, adminMember);
XMLUtils documentXML = resourcesPage.openURLResouceDocument(resourceModelOasis3.getIdentifierValue(), resourceModelOasis3.getIdentifierScheme());
soft.assertEquals(documentXML.getNodeValue("PartyName"), resourceModelOasis3.getIdentifierValue(), "ParticipantIdentifier value is wrong");
soft.assertAll();
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment