Newer
Older

Mihai BOZ
committed
import ddsl.DomiSMPPage;
import ddsl.enums.Pages;

Mihai BOZ
committed
import org.openqa.selenium.WebElement;
import org.testng.annotations.BeforeMethod;
import org.testng.asserts.SoftAssert;

Mihai BOZ
committed
import pages.SmlPage;
import pages.administration.editDomainsPage.EditDomainsPage;
import pages.systemSettings.domainsPage.DomainsPage;
import rest.models.DomainModel;

Mihai BOZ
committed
import rest.models.UserModel;
/**
* This class has the tests against Domains Page
*/
//@Ignore("DomainsPgTests:beforeTest Failing tests: org.openqa.selenium.ElementClickInterceptedException: Element <select id=\"signatureKeyAlias_id\" " +
// "class=\"mat-mdc-input-element mat-mdc-tooltip-trigger ng-tns-c1205077789-11 ng-untouched ng-pristine ng-valid " +
// "mat-mdc-form-field-input-control mdc-text-field__input cdk-text-field-autofill-monitored cdk-focused cdk-program-focused\"> " +
// "is not clickable at point (1014,364) because another element <mat-label class=\"ng-tns-c1205077789-11\"> obscures it" )
public class DomainsPgTests extends SeleniumTest {
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);
}

Mihai BOZ
committed
@Test(description = "DOM-01 System admin is able to create Domains")
public void systemAdminIsAbleToCreateDomains() {
DomainModel domainModel = DomainModel.generatePublicDomainModelWithoutSML();

Mihai BOZ
committed
domainsPage.getCreateDomainBtn().click();
domainsPage.getDomainTab().fillDomainData(domainModel);
domainsPage.getDomainTab().saveChanges();

Mihai BOZ
committed
String alert = domainsPage.getAlertMessageAndClose();
soft.assertEquals(alert, "Domain: [" + domainModel.getDomainCode() + "] was created!");

Mihai BOZ
committed
domainsPage.getLeftSideGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode()).click();
soft.assertEquals(ResponseCertificates.getTextForAlias(domainModel.getSignatureKeyAlias()), domainsPage.getDomainTab().getResponseSignatureCertificateSelectedValue());
soft.assertEquals(domainModel.getVisibility(), domainsPage.getDomainTab().getVisibilityOfDomainSelectedValue());
soft.assertEquals(domainsPage.getDomainWarningMessage(), "To complete domain configuration, please:\n" +
"select at least one resource type from the Resource Types tab\n" +
"add a domain member with 'ADMIN' role from the Members tab!");

Mihai BOZ
committed
}

Mihai BOZ
committed
@Test(description = "DOM-02 System admin can integrates domain with SMP")
public void systemAdminCanIntegrateDomainWithSMP() throws Exception {

Mihai BOZ
committed
DomainModel domainModel = DomainModel.generatePublicDomainModelWithSML();
domainsPage.getCreateDomainBtn().click();

Mihai BOZ
committed
domainsPage.getDomainTab().fillDomainData(domainModel);
domainsPage.getDomainTab().saveChanges();

Mihai BOZ
committed
String alert = domainsPage.getAlertMessageAndClose();
soft.assertEquals(alert, "Domain: [" + domainModel.getDomainCode() + "] was created!");
domainsPage.getLeftSideGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode()).click();

Mihai BOZ
committed
domainsPage.goToTab("SML integration");
domainsPage.getSMLIntegrationTab().fillSMLIntegrationTab(domainModel);
domainsPage.getSMLIntegrationTab().saveChanges();
domainsPage.getSMLIntegrationTab().registerToSML();

Mihai BOZ
committed
alert = domainsPage.getAlertMessageAndClose();
soft.assertEquals(alert, "Domain [" + domainModel.getDomainCode() + "] registered to SML!");

Mihai BOZ
committed
//Go to SML
driver.get(data.getSMLUrl());
SmlPage smlPage = new SmlPage(driver);
soft.assertTrue(smlPage.isDomainRegistered(domainModel), "Domain is not present in SML");
soft.assertAll();

Mihai BOZ
committed
@Test(description = "DOM-03 System admin is able to Invite/Remove users from domains")
public void systemAdminIsAbleToInviteRemoveUsersFromDomains() throws Exception {

Mihai BOZ
committed
UserModel normalUser = UserModel.generateUserWithUSERrole();
DomainModel domainModel = DomainModel.generatePublicDomainModelWithoutSML();

Mihai BOZ
committed

Mihai BOZ
committed
domainsPage.getCreateDomainBtn().click();
domainsPage.getDomainTab().fillDomainData(domainModel);
domainsPage.getDomainTab().saveChanges();

Mihai BOZ
committed
String alert = domainsPage.getAlertMessageAndClose();
soft.assertEquals(alert, "Domain: [" + domainModel.getDomainCode() + "] was created!");

Mihai BOZ
committed

Mihai BOZ
committed
//Invite user as VIEW and check if he has admin rights for domain

Mihai BOZ
committed
domainsPage.goToTab("Members");
domainsPage.getMembersTab().getInviteMemberBtn().click();
domainsPage.getMembersTab().getInviteMembersPopup().selectMember(normalUser.getUsername(), "VIEWER");
WebElement userMemberElement = domainsPage.getMembersTab().getMembersGrid().searchAndGetElementInColumn("Username", normalUser.getUsername());
soft.assertNotNull(userMemberElement, "Invited user not found");

Mihai BOZ
committed

Mihai BOZ
committed
//check if user has admin rights to domain as VIEWER

Mihai BOZ
committed
homePage.logout();
homePage.goToLoginPage();
loginPage.login(normalUser.getUsername(), data.getNewPassword());

Mihai BOZ
committed
EditDomainsPage editDomainsPage = homePage.getSidebar().navigateTo(Pages.ADMINISTRATION_EDIT_DOMAINS);
WebElement domainElement = editDomainsPage.getLeftSideGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode());
soft.assertNull(domainElement, "Domain found for user which doesn't have rights");

Mihai BOZ
committed
homePage.logout();
loginPage = homePage.goToLoginPage();
loginPage.login(data.getAdminUser().get("username"), data.getAdminUser().get("password"));
domainsPage = homePage.getSidebar().navigateTo(Pages.SYSTEM_SETTINGS_DOMAINS);
domainsPage.getLeftSideGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode()).click();

Mihai BOZ
committed
domainsPage.goToTab("Members");
domainsPage.getMembersTab().changeRoleOfUser(normalUser.getUsername(), "ADMIN");
//check if user has admin rights to domain as Admin
homePage.logout();
homePage.goToLoginPage();
loginPage.login(normalUser.getUsername(), data.getNewPassword());
editDomainsPage = homePage.getSidebar().navigateTo(Pages.ADMINISTRATION_EDIT_DOMAINS);
domainElement = editDomainsPage.getLeftSideGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode());
soft.assertNotNull(domainElement, "Domain found for user which doesn't have rights");

Mihai BOZ
committed
//Remove member user and check if he has access to the domain
homePage.logout();
homePage.goToLoginPage();
loginPage.login(data.getAdminUser().get("username"), data.getAdminUser().get("password"));
domainsPage = homePage.getSidebar().navigateTo(Pages.SYSTEM_SETTINGS_DOMAINS);
domainsPage.getLeftSideGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode()).click();

Mihai BOZ
committed
domainsPage.goToTab("Members");
domainsPage.getMembersTab().removeUser(normalUser.getUsername());
userMemberElement = domainsPage.getMembersTab().getMembersGrid().searchAndGetElementInColumn("Username", normalUser.getUsername());
soft.assertNull(userMemberElement, "Domain found for user which doesn't have rights");

Mihai BOZ
committed
homePage.logout();
homePage.goToLoginPage();
loginPage.login(normalUser.getUsername(), data.getNewPassword());
editDomainsPage = homePage.getSidebar().navigateTo(Pages.ADMINISTRATION_EDIT_DOMAINS);
domainElement = editDomainsPage.getLeftSideGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode());
soft.assertNull(domainElement, "Domain found for user which doesn't have rights");

Mihai BOZ
committed

Mihai BOZ
committed
}

Mihai BOZ
committed
@Test(description = "DOM-04 System admin is not able to create duplicated Domains")
public void systemAdminIsNotAbleToCreateDuplicatedDomains() {
UserModel normalUser = UserModel.generateUserWithUSERrole();
DomainModel domainModel = DomainModel.generatePublicDomainModelWithoutSML();
rest.users().createUser(normalUser);
domainsPage.getCreateDomainBtn().click();
domainsPage.getDomainTab().fillDomainData(domainModel);
domainsPage.getDomainTab().saveChanges();
String alert = domainsPage.getAlertMessageAndClose();
soft.assertEquals(alert, "Domain: [" + domainModel.getDomainCode() + "] was created!");
domainsPage.getCreateDomainBtn().click();
domainsPage.getDomainTab().fillDomainData(domainModel);
domainsPage.getDomainTab().saveChanges();
alert = domainsPage.getAlertMessageAndClose();
soft.assertEquals(alert, "Invalid domain data! Domain with code [" + domainModel.getDomainCode() + "] already exists!");
soft.assertAll();

Mihai BOZ
committed