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 185 additions and 41 deletions
......@@ -33,6 +33,10 @@ public class PageWithGrid extends DomiSMPPage {
PageFactory.initElements(new AjaxElementLocatorFactory(driver, data.getTIMEOUT()), this);
}
public SmallGrid getGrid() {
return new SmallGrid(driver, dataPanel);
}
public GridPagination getPagination() {
return new GridPagination(driver, dataPanel);
}
......
package ddsl;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
public class StorePage extends PageWithGrid {
/**
* Common page used for Keystore and Truststore
*/
@FindBy(id = "publicKeyType_id")
private WebElement publicKeyTypeLbl;
@FindBy(id = "alias_id")
private WebElement aliasIdLbl;
@FindBy(id = "certificateId_id")
private WebElement smpCertificateIdLbl;
@FindBy(id = "subject_id")
private WebElement subjectNameLbl;
@FindBy(css = "certificate-panel [placeholder=\"Valid from date\"]")
private WebElement validFromLbl;
@FindBy(css = "certificate-panel [placeholder=\"Valid to date\"]")
private WebElement validToLbl;
@FindBy(id = "issuer_id")
private WebElement issuerLbl;
@FindBy(id = "servialNumber_id")
private WebElement serialNumberLbl;
@FindBy(id = "clrUrl_id")
private WebElement certificateRevolcationListURLlbl;
@FindBy(css = ".smp-warning-panel span")
private WebElement smpWarningLbl;
public StorePage(WebDriver driver) {
super(driver);
}
public String getPublicKeyTypeLbl() {
return publicKeyTypeLbl.getText();
}
public String getAliasIdLbl() {
return aliasIdLbl.getText();
}
public String getSmpCertificateIdLbl() {
return smpCertificateIdLbl.getText();
}
public String getSubjectNameLbl() {
return subjectNameLbl.getText();
}
public String getValidFromLbl() {
return validFromLbl.getText();
}
public String getValidToLbl() {
return validToLbl.getText();
}
public String getIssuerLbl() {
return issuerLbl.getText();
}
public String getSerialNumberLbl() {
return serialNumberLbl.getText();
}
public String getCertificateRevolcationListURLlbl() {
return certificateRevolcationListURLlbl.getText();
}
}
......@@ -40,7 +40,7 @@ public class SmallGrid extends DComponent {
return row.findElements(By.cssSelector("td"));
}
public WebElement searchValueInColumn(String columnName, String value) {
public WebElement searchAndGetElementInColumn(String columnName, String value) {
wait.forXMillis(100);
Integer numOfPages = getGridPagination().getTotalPageNumber();
......
......@@ -7,7 +7,7 @@ import org.openqa.selenium.support.PageFactory;
import org.openqa.selenium.support.pagefactory.AjaxElementLocatorFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import pages.profilePage.SuccesfullPasswordChangedPopup;
import pages.userSettings.SuccesfullPasswordChangedPopup;
import java.util.ArrayList;
import java.util.List;
......
......@@ -10,12 +10,13 @@ import org.openqa.selenium.support.PageFactory;
import org.openqa.selenium.support.pagefactory.AjaxElementLocatorFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import pages.DomainsPage.DomainsPage;
import pages.TruststorePage;
import pages.UsersPage;
import pages.editDomainsPage.EditDomainsPage;
import pages.profilePage.ProfilePage;
import pages.propertiesPage.PropertiesPage;
import pages.administration.EditDomainsPage;
import pages.systemSettings.TruststorePage;
import pages.systemSettings.UsersPage;
import pages.systemSettings.domainsPage.DomainsPage;
import pages.systemSettings.keyStorePage.KeystorePage;
import pages.systemSettings.propertiesPage.PropertiesPage;
import pages.userSettings.ProfilePage;
import java.util.Objects;
......@@ -129,9 +130,11 @@ public class SideNavigationComponent extends DomiSMPPage {
return (T) new DomainsPage(driver);
}
// case SYSTEM_SETTINGS_KEYSTORE:
// expandSection(systemSettingsExpand);
// return new DLink(driver, keystoreLnk);
if (page == Pages.SYSTEM_SETTINGS_KEYSTORE) {
openSubmenu(systemSettingsExpand, keystoreLnk);
return (T) new KeystorePage(driver);
}
if (page == Pages.SYSTEM_SETTINGS_TRUSTSTORE) {
openSubmenu(systemSettingsExpand, truststoreLnk);
return (T) new TruststorePage(driver);
......
......@@ -39,14 +39,14 @@ public class MembersComponent extends DComponent {
}
public void removeUser(String username) throws Exception {
getMembersGrid().searchValueInColumn("Username", username).click();
getMembersGrid().searchAndGetElementInColumn("Username", username).click();
weToDButton(removeMemberBtn).click();
ConfirmationDialog confirmationDialog = new ConfirmationDialog(driver);
confirmationDialog.confirm();
}
public void changeRoleOfUser(String username, String newRole) throws Exception {
getMembersGrid().searchValueInColumn("Username", username).click();
getMembersGrid().searchAndGetElementInColumn("Username", username).click();
weToDButton(sidePanel.findElement(By.id("editButton"))).click();
getInviteMembersPopup().changeRole(newRole);
......
......@@ -24,6 +24,7 @@ public class DSelect extends DObject {
if (forceSelection) {
select.getWrappedElement().sendKeys(Keys.ENTER);
}
wait.forXMillis(10);
select.selectByVisibleText(value);
}
......
package ddsl.enums;
public enum KeyStoreTypes {
PKCS12,
JKS
}
package pages.editDomainsPage;
package pages.administration;
import ddsl.PageWithGrid;
import org.openqa.selenium.WebDriver;
......
package pages;
package pages.systemSettings;
import ddsl.PageWithGrid;
import ddsl.dcomponents.Grid.SmallGrid;
import ddsl.StorePage;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
......@@ -9,31 +8,18 @@ import org.openqa.selenium.support.FindBy;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class TruststorePage extends PageWithGrid {
public class TruststorePage extends StorePage {
/**
* Page object for the Truststorepage. This contains the locators of the page and the methods for the behaviour of the page
*/
//TODO work in progress
@FindBy(id = "custom-file-upload")
private WebElement uploadInput;
@FindBy(id = "publicKeyType_id")
private WebElement publicKeyTypeLbl;
@FindBy(id = "alias_id")
private WebElement aliasIdLbl;
@FindBy(id = "certificateId_id")
private WebElement smpCertificateId;
@FindBy(id = "subject_id")
private WebElement subjectName;
public TruststorePage(WebDriver driver) {
super(driver);
}
public SmallGrid getGrid() {
return new SmallGrid(driver, dataPanel);
}
public String addCertificateAndReturnAlias(String filePath) {
uploadInput.sendKeys(filePath);
......
package pages;
package pages.systemSettings;
import ddsl.PageWithGrid;
import ddsl.dcomponents.commonComponents.UserDataCommonComponent;
......@@ -72,12 +72,10 @@ public class UsersPage extends PageWithGrid {
public String getSelectedThemeValue() {
return userData.getSelectedTheme();
}
public String getSelectedLocaleValue() {
return userData.getSelectedLocale();
}
......
package pages.DomainsPage;
package pages.systemSettings.domainsPage;
import ddsl.dcomponents.DComponent;
import org.openqa.selenium.WebDriver;
......
package pages.DomainsPage;
package pages.systemSettings.domainsPage;
import ddsl.PageWithGrid;
import ddsl.dobjects.DButton;
......
package pages.DomainsPage;
package pages.systemSettings.domainsPage;
import ddsl.dcomponents.commonComponents.members.MembersComponent;
import org.openqa.selenium.WebDriver;
......
package pages.DomainsPage;
package pages.systemSettings.domainsPage;
import ddsl.dcomponents.DComponent;
import org.openqa.selenium.WebDriver;
......
package pages.DomainsPage;
package pages.systemSettings.domainsPage;
import ddsl.dcomponents.ConfirmationDialog;
import ddsl.dcomponents.DComponent;
......
package pages.systemSettings.keyStorePage;
import ddsl.dcomponents.DComponent;
import ddsl.enums.KeyStoreTypes;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.PageFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class KeyStoreImportDialog extends DComponent {
/**
* This is the page object for the Keystore import dialog. It contains the webelements and the methods specific to the dialog.
*/
private final static Logger LOG = LoggerFactory.getLogger(KeyStoreImportDialog.class);
@FindBy(id = "keystore-file-upload")
private WebElement importKeyStoreInput;
@FindBy(id = "keystoreFilename")
private WebElement keyStoreFileNameLbl;
@FindBy(id = "keystoretype_id")
private WebElement keyStoreTypeDdl;
@FindBy(id = "password_id")
private WebElement passwordIdInput;
@FindBy(css = "mat-dialog-actions button:first-of-type")
private WebElement importBtn;
public KeyStoreImportDialog(WebDriver driver) {
super(driver);
PageFactory.initElements(driver, this);
}
public void addCertificate(String filepath, KeyStoreTypes keyStoreTypes, String password) {
try {
importKeyStoreInput.sendKeys(filepath);
weToDSelect(keyStoreTypeDdl).selectValue(keyStoreTypes.toString());
weToDInput(passwordIdInput).fill(password);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
public void clickImport() {
try {
if (importBtn.isEnabled()) {
weToDButton(importBtn).click();
}
} catch (Exception e) {
LOG.error("Could not press Import Keystore button", e);
throw new RuntimeException(e);
}
}
}
package pages.systemSettings.keyStorePage;
import ddsl.StorePage;
import org.openqa.selenium.WebDriver;
public class KeystorePage extends StorePage {
public KeystorePage(WebDriver driver) {
super(driver);
}
public KeyStoreImportDialog clickImportkeyStoreBtn() throws Exception {
weToDButton(addBtn).click();
return new KeyStoreImportDialog(driver);
}
}
package pages.propertiesPage;
package pages.systemSettings.propertiesPage;
import ddsl.dcomponents.Grid.BasicGrid;
import org.openqa.selenium.WebDriver;
......
package pages.propertiesPage;
package pages.systemSettings.propertiesPage;
import ddsl.DomiSMPPage;
import ddsl.dcomponents.ConfirmationDialog;
......
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