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

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

Pull request #32: added KeyStore page and KeyStore tests.

Merge in EDELIVERY/smp from EDELIVERY-11943-Progress-on-the-automation-of-the-DomiSMP-UI-tests---Part-4 to development

* commit '94c1d84a':
  added KeyStore page and KeyStore tests. extracted common StorePage for similar page Keystore and Truststore renamed some methods to be more clear group pages in packages based on menulinks
parents 0d625f73 94c1d84a
No related branches found
No related tags found
No related merge requests found
Pipeline #88008 passed with warnings
Showing
with 137 additions and 67 deletions
package pages.propertiesPage;
package pages.systemSettings.propertiesPage;
import ddsl.dcomponents.DComponent;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.NoSuchElementException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
......@@ -52,15 +53,31 @@ public class PropertyPopup extends DComponent {
}
}
public PropertiesPage clickOK() throws Exception {
public void clickOK() throws Exception {
LOG.info("click OK");
wait.forElementToBeClickable(popupOkBtn);
weToDButton(popupOkBtn).click();
if (!errorMessageLbl.isDisplayed()) {
wait.forElementToBeGone(popupOkBtn);
return new PropertiesPage(driver);
try {
if (!errorMessageLbl.isDisplayed()) {
wait.forElementToBeGone(popupOkBtn);
}
} catch (RuntimeException e) {
LOG.debug("No error are present");
}
}
public void clickOK2() throws Exception {
LOG.info("click OK");
wait.forElementToBeClickable(popupOkBtn);
weToDButton(popupOkBtn).click();
try {
if (!errorMessageLbl.isDisplayed()) {
wait.forElementToBeGone(popupOkBtn);
}
} catch (NoSuchElementException e) {
throw new RuntimeException(e);
}
return null;
}
public PropertiesPage clickCancel() {
......
package pages.profilePage;
package pages.userSettings;
import ddsl.PageWithGrid;
import ddsl.dcomponents.commonComponents.UserDataCommonComponent;
......@@ -12,8 +12,6 @@ public class ProfilePage extends PageWithGrid {
*/
private final static Logger LOG = LoggerFactory.getLogger(ProfilePage.class);
public UserDataCommonComponent userData;
public ProfilePage(WebDriver driver) {
super(driver);
userData = new UserDataCommonComponent(driver);
......
package pages.profilePage;
package pages.userSettings;
import ddsl.dcomponents.DComponent;
import org.openqa.selenium.WebDriver;
......
File added
File added
File added
......@@ -4,12 +4,13 @@ import ddsl.DomiSMPPage;
import ddsl.enums.Pages;
import domiSMPTests.SeleniumTest;
import org.openqa.selenium.WebElement;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import pages.DomainsPage.DomainsPage;
import org.testng.asserts.SoftAssert;
import pages.LoginPage;
import pages.SmlPage;
import pages.editDomainsPage.EditDomainsPage;
import pages.administration.EditDomainsPage;
import pages.systemSettings.domainsPage.DomainsPage;
import rest.models.DomainModel;
import rest.models.UserModel;
......@@ -18,98 +19,99 @@ public class DomainsPgTests extends SeleniumTest {
/**
* This class has the tests against Domains Page
*/
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);
}
@Test(description = "DOM-01 System admin is able to create Domains")
public void SystemAdminIsAbleToCreateDomains() throws Exception {
DomainModel domainModel = DomainModel.generatePublicDomainModelWithoutSML();
DomiSMPPage homePage = new DomiSMPPage(driver);
LoginPage loginPage = homePage.goToLoginPage();
loginPage.login(data.getAdminUser().get("username"), data.getAdminUser().get("password"));
DomainsPage domainsPage = homePage.getSidebar().navigateTo(Pages.SYSTEM_SETTINGS_DOMAINS);
domainsPage.getCreateDomainBtn().click();
domainsPage.getDomainTab().fillDomainData(domainModel);
domainsPage.getDomainTab().saveChanges();
String alert = domainsPage.getAlertMessageAndClose();
Assert.assertEquals(alert, "Domain: [" + domainModel.getDomainCode() + "] was created!");
soft.assertEquals(alert, "Domain: [" + domainModel.getDomainCode() + "] was created!");
domainsPage.getDataPanelGrid().searchValueInColumn("Domain code", domainModel.getDomainCode()).click();
Assert.assertEquals(domainModel.getSignatureKeyAlias(), domainsPage.getDomainTab().getResponseSignatureCertificateSelectedValue());
Assert.assertEquals(domainModel.getVisibility(), domainsPage.getDomainTab().getVisibilityOfDomainSelectedValue());
Assert.assertEquals("To complete domain configuration, please select at least one resource type from the Resource Types tab", domainsPage.getDomainWarningMessage());
domainsPage.getDataPanelGrid().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());
soft.assertAll();
}
@Test(description = "DOM-02 System admin can integrates domain with SMP")
public void SystemAdminCanIntegrateDomainWithSMP() throws Exception {
DomainModel domainModel = DomainModel.generatePublicDomainModelWithSML();
DomiSMPPage homePage = new DomiSMPPage(driver);
LoginPage loginPage = homePage.goToLoginPage();
loginPage.login(data.getAdminUser().get("username"), data.getAdminUser().get("password"));
DomainsPage domainsPage = homePage.getSidebar().navigateTo(Pages.SYSTEM_SETTINGS_DOMAINS);
domainsPage.getCreateDomainBtn().click();
domainsPage.getDomainTab().fillDomainData(domainModel);
domainsPage.getDomainTab().saveChanges();
String alert = domainsPage.getAlertMessageAndClose();
Assert.assertEquals(alert, "Domain: [" + domainModel.getDomainCode() + "] was created!");
soft.assertEquals(alert, "Domain: [" + domainModel.getDomainCode() + "] was created!");
domainsPage.getDataPanelGrid().searchValueInColumn("Domain code", domainModel.getDomainCode()).click();
domainsPage.getDataPanelGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode()).click();
domainsPage.goToTab("SML integration");
domainsPage.getSMLIntegrationTab().fillSMLIntegrationTab(domainModel);
domainsPage.getSMLIntegrationTab().saveChanges();
domainsPage.getSMLIntegrationTab().registerToSML();
alert = domainsPage.getAlertMessageAndClose();
Assert.assertEquals(alert, "Domain [" + domainModel.getDomainCode() + "] registered to sml!");
soft.assertEquals(alert, "Domain [" + domainModel.getDomainCode() + "] registered to sml!");
//Go to SML
driver.get(data.getSMLUrl());
SmlPage smlPage = new SmlPage(driver);
Assert.assertTrue(smlPage.isDomainRegistered(domainModel), "Domain is not present in SML");
soft.assertTrue(smlPage.isDomainRegistered(domainModel), "Domain is not present in SML");
soft.assertAll();
}
@Test(description = "DOM-03 System admin is able to Invite/Remove users from domains")
public void SystemAdminIsAbleToInviteRemoveUsersFromDomains() throws Exception {
UserModel normalUser = UserModel.generateUserWithUSERrole();
rest.users().createUser(normalUser);
DomainModel domainModel = DomainModel.generatePublicDomainModelWithoutSML();
DomiSMPPage homePage = new DomiSMPPage(driver);
LoginPage loginPage = homePage.goToLoginPage();
loginPage.login(data.getAdminUser().get("username"), data.getAdminUser().get("password"));
rest.users().createUser(normalUser);
DomainsPage domainsPage = homePage.getSidebar().navigateTo(Pages.SYSTEM_SETTINGS_DOMAINS);
domainsPage.getCreateDomainBtn().click();
domainsPage.getDomainTab().fillDomainData(domainModel);
domainsPage.getDomainTab().saveChanges();
String alert = domainsPage.getAlertMessageAndClose();
Assert.assertEquals(alert, "Domain: [" + domainModel.getDomainCode() + "] was created!");
soft.assertEquals(alert, "Domain: [" + domainModel.getDomainCode() + "] was created!");
//Invite user as VIEW and check if he has admin rights for domain
domainsPage.goToTab("Members");
domainsPage.getMembersTab().getInviteMemberBtn().click();
domainsPage.getMembersTab().getInviteMembersPopup().selectMember(normalUser.getUsername(), "VIEWER");
WebElement userMemberElement = domainsPage.getMembersTab().getMembersGrid().searchValueInColumn("Username", normalUser.getUsername());
Assert.assertNotNull(userMemberElement, "Invited user not found");
WebElement userMemberElement = domainsPage.getMembersTab().getMembersGrid().searchAndGetElementInColumn("Username", normalUser.getUsername());
soft.assertNotNull(userMemberElement, "Invited user not found");
//check if user has admin rights to domain as VIEWER
homePage.logout();
homePage.goToLoginPage();
loginPage.login(normalUser.getUsername(), data.getNewPassword());
EditDomainsPage editDomainsPage = homePage.getSidebar().navigateTo(Pages.ADMINISTRATION_EDIT_DOMAINS);
WebElement domainElement = editDomainsPage.getDataPanelGrid().searchValueInColumn("Domain code", domainModel.getDomainCode());
Assert.assertNull(domainElement, "Domain found for user which doesn't have rights");
WebElement domainElement = editDomainsPage.getDataPanelGrid().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().searchValueInColumn("Domain code", domainModel.getDomainCode()).click();
domainsPage.getDataPanelGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode()).click();
domainsPage.goToTab("Members");
domainsPage.getMembersTab().changeRoleOfUser(normalUser.getUsername(), "ADMIN");
......@@ -118,8 +120,8 @@ public class DomainsPgTests extends SeleniumTest {
homePage.goToLoginPage();
loginPage.login(normalUser.getUsername(), data.getNewPassword());
editDomainsPage = homePage.getSidebar().navigateTo(Pages.ADMINISTRATION_EDIT_DOMAINS);
domainElement = editDomainsPage.getDataPanelGrid().searchValueInColumn("Domain code", domainModel.getDomainCode());
Assert.assertNotNull(domainElement, "Domain found for user which doesn't have rights");
domainElement = editDomainsPage.getDataPanelGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode());
soft.assertNotNull(domainElement, "Domain found for user which doesn't have rights");
//Remove member user and check if he has access to the domain
......@@ -127,25 +129,22 @@ 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().searchValueInColumn("Domain code", domainModel.getDomainCode()).click();
domainsPage.getDataPanelGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode()).click();
domainsPage.goToTab("Members");
domainsPage.getMembersTab().removeUser(normalUser.getUsername());
userMemberElement = domainsPage.getMembersTab().getMembersGrid().searchValueInColumn("Username", normalUser.getUsername());
Assert.assertNull(userMemberElement, "Domain found for user which doesn't have rights");
userMemberElement = domainsPage.getMembersTab().getMembersGrid().searchAndGetElementInColumn("Username", normalUser.getUsername());
soft.assertNull(userMemberElement, "Domain found for user which doesn't have rights");
homePage.logout();
homePage.goToLoginPage();
loginPage.login(normalUser.getUsername(), data.getNewPassword());
editDomainsPage = homePage.getSidebar().navigateTo(Pages.ADMINISTRATION_EDIT_DOMAINS);
domainElement = editDomainsPage.getDataPanelGrid().searchValueInColumn("Domain code", domainModel.getDomainCode());
Assert.assertNull(domainElement, "Domain found for user which doesn't have rights");
domainElement = editDomainsPage.getDataPanelGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode());
soft.assertNull(domainElement, "Domain found for user which doesn't have rights");
soft.assertAll();
}
@Test(description = "DOM-03 System admin is able to Invite/Remove users from domains")
public void EditRsource() throws Exception {
}
}
\ No newline at end of file
package domiSMPTests.ui;
import ddsl.DomiSMPPage;
import ddsl.enums.Pages;
import domiSMPTests.SeleniumTest;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import org.testng.asserts.SoftAssert;
import pages.LoginPage;
import pages.systemSettings.keyStorePage.KeyStoreImportDialog;
import pages.systemSettings.keyStorePage.KeystorePage;
import rest.models.UserModel;
import utils.FileUtils;
public class KeystorePgTests extends SeleniumTest {
DomiSMPPage homePage;
UserModel adminUser;
KeystorePage keystorePage;
SoftAssert soft;
@BeforeClass(alwaysRun = true)
public void beforeClass() {
adminUser = UserModel.generateUserWithADMINrole();
rest.users().createUser(adminUser);
}
@BeforeMethod(alwaysRun = true)
public void beforeTest() throws Exception {
soft = new SoftAssert();
homePage = new DomiSMPPage(driver);
LoginPage loginPage = homePage.goToLoginPage();
loginPage.login(adminUser.getUsername(), data.getNewPassword());
keystorePage = homePage.getSidebar().navigateTo(Pages.SYSTEM_SETTINGS_KEYSTORE);
}
//TODO: wait until the mat-select for certificate type is changed to select
@Test(description = "KEYS-02 System admin is able to import PKCS 12 Keystore")
public void SystemAdminIsAbleToImportPKCS12() throws Exception {
String path = FileUtils.getAbsolutePath("./src/main/resources/keystore/expired_keystore_JKS.jks");
KeyStoreImportDialog keyStoreImportDialog = keystorePage.clickImportkeyStoreBtn();
//keyStoreImportDialog.addCertificate(path, KeyStoreTypes.JKS, "test123");
//keyStoreImportDialog.clickImport();
}
}
......@@ -6,9 +6,9 @@ import domiSMPTests.SeleniumTest;
import org.testng.Assert;
import org.testng.annotations.Test;
import pages.LoginPage;
import pages.profilePage.ProfilePage;
import pages.propertiesPage.PropertiesPage;
import pages.propertiesPage.PropertyPopup;
import pages.systemSettings.propertiesPage.PropertiesPage;
import pages.systemSettings.propertiesPage.PropertyPopup;
import pages.userSettings.ProfilePage;
import rest.models.UserModel;
import utils.Generator;
......
......@@ -8,8 +8,8 @@ import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import org.testng.asserts.SoftAssert;
import pages.LoginPage;
import pages.propertiesPage.PropertiesPage;
import pages.propertiesPage.PropertyPopup;
import pages.systemSettings.propertiesPage.PropertiesPage;
import pages.systemSettings.propertiesPage.PropertyPopup;
import rest.models.UserModel;
import utils.Generator;
......
......@@ -3,20 +3,20 @@ package domiSMPTests.ui;
import ddsl.DomiSMPPage;
import ddsl.enums.Pages;
import domiSMPTests.SeleniumTest;
import org.testng.Assert;
import org.testng.annotations.Test;
import org.testng.asserts.SoftAssert;
import pages.LoginPage;
import pages.TruststorePage;
import pages.systemSettings.TruststorePage;
import utils.FileUtils;
public class TrustorePgTests extends SeleniumTest {
//TODO work in progress
//TODO work in progress - wait for input elements to get text
@Test(description = "TRST-01 System admin is able to import certificates")
public void SystemAdminIsAbleToImportCertificates() throws Exception {
SoftAssert soft = new SoftAssert();
DomiSMPPage homePage = new DomiSMPPage(driver);
LoginPage loginPage = homePage.goToLoginPage();
......@@ -26,7 +26,13 @@ public class TrustorePgTests extends SeleniumTest {
String path = FileUtils.getAbsolutePath("./src/main/resources/truststore/test.cer");
String certificateALias = truststorepage.addCertificateAndReturnAlias(path);
Assert.assertNotNull(certificateALias);
soft.assertNotNull(certificateALias);
// soft.assertEquals(truststorepage.getPublicKeyTypeLbl(), "RSA");
// soft.assertEquals(truststorepage.getAliasIdLbl(), "smp_domain_02");
soft.assertAll();
}
......
......@@ -7,7 +7,7 @@ import org.openqa.selenium.WebElement;
import org.testng.Assert;
import org.testng.annotations.Test;
import pages.LoginPage;
import pages.UsersPage;
import pages.systemSettings.UsersPage;
import rest.models.UserModel;
public class UsersPgTests extends SeleniumTest {
......@@ -25,7 +25,7 @@ public class UsersPgTests extends SeleniumTest {
usersPage.refreshPage();
// usersPage.filter(adminNewUserData.getUsername());
WebElement newUser = usersPage.getDataPanelGrid().searchValueInColumn("Username", adminNewUserData.getUsername());
WebElement newUser = usersPage.getDataPanelGrid().searchAndGetElementInColumn("Username", adminNewUserData.getUsername());
Assert.assertNotNull(newUser);
newUser.click();
......
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