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

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

created basis for adding domain members rest call

parent 94c1d84a
No related branches found
No related tags found
No related merge requests found
Showing
with 190 additions and 4 deletions
......@@ -10,7 +10,7 @@ import org.openqa.selenium.support.PageFactory;
import org.openqa.selenium.support.pagefactory.AjaxElementLocatorFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import pages.administration.EditDomainsPage;
import pages.administration.editDomainsPage.EditDomainsPage;
import pages.systemSettings.TruststorePage;
import pages.systemSettings.UsersPage;
import pages.systemSettings.domainsPage.DomainsPage;
......
package ddsl.dcomponents.commonComponents.subcategoryTab;
import ddsl.dcomponents.DComponent;
import ddsl.dcomponents.Grid.SmallGrid;
import org.apache.poi.ss.formula.functions.T;
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 SubcategoryTabComponent extends DComponent {
private final static Logger LOG = LoggerFactory.getLogger(SubcategoryTabComponent.class);
@FindBy(id = "createButton")
private WebElement createBtn;
@FindBy(id = "editButton")
private WebElement editBtn;
@FindBy(id = "groupMembersButton")
private WebElement resourceMembersBtn;
@FindBy(id = "deleteButton")
private WebElement deleteBtn;
@FindBy(css = "div smp-column-data")
private WebElement sidePanel;
public SubcategoryTabComponent(WebDriver driver) {
super(driver);
}
public SmallGrid getGrid() {
return new SmallGrid(driver, sidePanel);
}
public DComponent create() throws Exception {
weToDButton(createBtn).click();
return new DComponent(driver);
}
public T edit(String columnName, String value) throws Exception {
WebElement tobeEdited = getGrid().searchAndGetElementInColumn(columnName, value);
tobeEdited.click();
wait.forElementToBeEnabled(editBtn);
weToDButton(editBtn).click();
return new T();
}
}
package pages.administration.editDomainsPage;
import ddsl.dcomponents.DComponent;
import org.openqa.selenium.WebDriver;
public class CreateGroupDetailsDialog extends DComponent {
public CreateGroupDetailsDialog(WebDriver driver) {
super(driver);
}
}
package pages.administration;
package pages.administration.editDomainsPage;
import ddsl.PageWithGrid;
import ddsl.dcomponents.commonComponents.members.MembersComponent;
import org.openqa.selenium.WebDriver;
public class EditDomainsPage extends PageWithGrid {
public EditDomainsPage(WebDriver driver) {
super(driver);
}
public MembersComponent getMembersTab() {
return new MembersComponent(driver);
}
}
package pages.administration.editDomainsPage;
import ddsl.dcomponents.commonComponents.subcategoryTab.SubcategoryTabComponent;
import org.openqa.selenium.WebDriver;
public class GroupTab extends SubcategoryTabComponent {
public GroupTab(WebDriver driver) {
super(driver);
}
@Override
public CreateGroupDetailsDialog create() {
return new CreateGroupDetailsDialog(driver);
}
}
package pages.administration.editDomainsPage;
import ddsl.dcomponents.commonComponents.members.MembersComponent;
import org.openqa.selenium.WebDriver;
public class MembersTab extends MembersComponent {
public MembersTab(WebDriver driver) {
super(driver);
}
}
......@@ -25,7 +25,7 @@ public class DomainClient extends BaseRestClient {
}
}
String createDomainPath = RestServicePaths.getDomainPath(data.userId);
String createDomainPath = RestServicePaths.getCreateDomainPath(data.userId);
ClientResponse response = jsonPUT(resource.path(createDomainPath), domainJson);
JSONObject responseBody = new JSONObject(response.getEntity(String.class));
......@@ -42,4 +42,35 @@ public class DomainClient extends BaseRestClient {
}
public JSONObject AddMembersToDomain(String domainId, String username, String roleType) {
JSONObject json = new JSONObject();
json.put("memberOf", "DOMAIN");
json.put("username", username);
json.put("roleType", roleType);
JSONObject membersJson = new JSONObject(json);
if (!isLoggedIn()) {
try {
refreshCookies();
} catch (Exception e) {
throw new RuntimeException(e);
}
}
String addMemberPath = RestServicePaths.getDomainAddMemberPath(data.userId, domainId);
ClientResponse response = jsonPUT(resource.path(addMemberPath), membersJson);
if (response.getStatus() != 200) {
try {
throw new SMPRestException("Could not create domain", response);
} catch (SMPRestException e) {
throw new RuntimeException(e);
}
}
log.debug("Domain: " + "" + " has been created successfully!");
return membersJson;
}
}
......@@ -19,10 +19,15 @@ public class RestServicePaths {
//Domains paths
public static String getDomainPath(String currentUserId) {
public static String getCreateDomainPath(String currentUserId) {
return "/internal/rest/domain/" + currentUserId + "/create";
}
public static String getDomainAddMemberPath(String currentUserId, String domainId) {
return "/edit/rest/" + currentUserId + "/domain/" + domainId + "/member/put";
}
}
......@@ -9,7 +9,7 @@ import org.testng.annotations.Test;
import org.testng.asserts.SoftAssert;
import pages.LoginPage;
import pages.SmlPage;
import pages.administration.EditDomainsPage;
import pages.administration.editDomainsPage.EditDomainsPage;
import pages.systemSettings.domainsPage.DomainsPage;
import rest.models.DomainModel;
import rest.models.UserModel;
......@@ -146,5 +146,10 @@ public class DomainsPgTests extends SeleniumTest {
}
@Test(description = "DOM-03 System admin is able to Invite/Remove users from domains")
public void SystemAdminIsAbleToInviteRemoveUsersFromDomains22() throws Exception {
rest.domains().createDomain(DomainModel.generatePublicDomainModelWithoutSML());
}
}
\ No newline at end of file
package domiSMPTests.ui;
import ddsl.DomiSMPPage;
import ddsl.enums.Pages;
import domiSMPTests.SeleniumTest;
import org.json.JSONObject;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import org.testng.asserts.SoftAssert;
import pages.LoginPage;
import pages.systemSettings.domainsPage.DomainsPage;
import rest.models.DomainModel;
import rest.models.UserModel;
public class EditDomainsPgTests extends SeleniumTest {
DomiSMPPage homePage;
LoginPage loginPage;
DomainsPage domainsPage;
SoftAssert soft;
@BeforeMethod(alwaysRun = true)
public void beforeTest() throws Exception {
soft = new SoftAssert();
DomainModel domainModel = DomainModel.generatePublicDomainModelWithSML();
UserModel adminUser = UserModel.generateUserWithADMINrole();
rest.users().createUser(adminUser);
JSONObject domainJson = rest.domains().createDomain(domainModel);
String domainId = domainJson.get("domainId").toString();
rest.domains().AddMembersToDomain(domainId, adminUser.getUsername(), "ADMIN");
homePage = new DomiSMPPage(driver);
loginPage = homePage.goToLoginPage();
loginPage.login(data.getAdminUser().get("username"), data.getAdminUser().get("password"));
domainsPage = homePage.getSidebar().navigateTo(Pages.ADMINISTRATION_EDIT_DOMAINS);
}
@Test(description = "DOM-02 System admin can integrates domain with SMP")
public void SystemAdminCanIntegrateDomainWithSMssP() throws Exception {
}
}
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