diff --git a/domiSMP-ui-tests/src/main/java/ddsl/CommonCertificatePage.java b/domiSMP-ui-tests/src/main/java/ddsl/CommonCertificatePage.java index 3ca28b4b8a04506d25c96b8acd29a44d205788fa..9ca9ae8eb7bc3b9f73ed1ab66aed73b68a902d45 100644 --- a/domiSMP-ui-tests/src/main/java/ddsl/CommonCertificatePage.java +++ b/domiSMP-ui-tests/src/main/java/ddsl/CommonCertificatePage.java @@ -3,11 +3,10 @@ package ddsl; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.support.FindBy; - -public class CommonCertificatePage extends CommonPageWithGrid { - /** - * Common page used for Keystore and Truststore - */ +/** + * Common page used for Keystore and Truststore + */ +public class CommonCertificatePage extends CommonPageWithTabsAndGrid { @FindBy(id = "publicKeyType_id") private WebElement publicKeyTypeLbl; @FindBy(id = "alias_id") @@ -34,38 +33,38 @@ public class CommonCertificatePage extends CommonPageWithGrid { } public String getPublicKeyTypeLbl() { - return publicKeyTypeLbl.getText(); + return weToDInput(publicKeyTypeLbl).getText(); } public String getAliasIdLbl() { - return aliasIdLbl.getText(); + return weToDInput(aliasIdLbl).getText(); } public String getSmpCertificateIdLbl() { - return smpCertificateIdLbl.getText(); + return weToDInput(smpCertificateIdLbl).getText(); } public String getSubjectNameLbl() { - return subjectNameLbl.getText(); + return weToDInput(subjectNameLbl).getText(); } public String getValidFromLbl() { - return validFromLbl.getText(); + return weToDInput(validFromLbl).getText(); } public String getValidToLbl() { - return validToLbl.getText(); + return weToDInput(validToLbl).getText(); } public String getIssuerLbl() { - return issuerLbl.getText(); + return weToDInput(issuerLbl).getText(); } public String getSerialNumberLbl() { - return serialNumberLbl.getText(); + return weToDInput(serialNumberLbl).getText(); } public String getCertificateRevolcationListURLlbl() { - return certificateRevolcationListURLlbl.getText(); + return weToDInput(certificateRevolcationListURLlbl).getText(); } } diff --git a/domiSMP-ui-tests/src/main/java/ddsl/CommonPageWithGrid.java b/domiSMP-ui-tests/src/main/java/ddsl/CommonPageWithGrid.java deleted file mode 100644 index b44802252370fb63eb88114f2a9e5d0a5c235d31..0000000000000000000000000000000000000000 --- a/domiSMP-ui-tests/src/main/java/ddsl/CommonPageWithGrid.java +++ /dev/null @@ -1,59 +0,0 @@ -package ddsl; - -import ddsl.dcomponents.Grid.SmallGrid; -import org.openqa.selenium.WebDriver; -import org.openqa.selenium.WebElement; -import org.openqa.selenium.support.FindBy; -import org.openqa.selenium.support.PageFactory; -import org.openqa.selenium.support.pagefactory.AjaxElementLocatorFactory; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.List; - -public class CommonPageWithGrid extends DomiSMPPage { - private final static Logger LOG = LoggerFactory.getLogger(CommonPageWithGrid.class); - - /** - * Generic page used for pages which have small grid in the right of the page. This element gives access to action buttons and elements of the page. - */ - - @FindBy(css = "mat-form-field input") - public WebElement filterInput; - @FindBy(css = "data-panel >div >div> mat-toolbar button:first-of-type") - public WebElement addBtn; - @FindBy(css = "[class=smp-column-data]") - public WebElement dataPanel; - @FindBy(css = "[class~=smp-column-label]") - public WebElement rightPanel; - @FindBy(css = "[role = \"tab\"]") - private List<WebElement> tabList; - - public CommonPageWithGrid(WebDriver driver) { - super(driver); - PageFactory.initElements(new AjaxElementLocatorFactory(driver, data.getWaitTimeShort()), this); - } - - public SmallGrid getGrid() { - return new SmallGrid(driver, rightPanel); - } - - public SmallGrid getDataPanelGrid() { - return new SmallGrid(driver, rightPanel); - } - - public void goToTab(String tabName) { - for (WebElement element : tabList) { - if (element.getText().contains(tabName)) { - element.click(); - wait.forAttributeToContain(element, "aria-selected", "true"); - LOG.debug("Domain tab {} is opened", tabName); - } - } - } - - public String getAlertMessageAndClose() { - - return getAlertArea().getAlertMessage(); - } -} diff --git a/domiSMP-ui-tests/src/main/java/ddsl/CommonPageWithTabs.java b/domiSMP-ui-tests/src/main/java/ddsl/CommonPageWithTabs.java new file mode 100644 index 0000000000000000000000000000000000000000..8f645a4535c039f523ede04ccb159253b75262d0 --- /dev/null +++ b/domiSMP-ui-tests/src/main/java/ddsl/CommonPageWithTabs.java @@ -0,0 +1,37 @@ +package ddsl; + +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.FindBy; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.List; +/** + * Generic page used for pages which have tabs in the left part. This element gives access to action buttons and elements of the page. + */ +public class CommonPageWithTabs extends DomiSMPPage { + private final static Logger LOG = LoggerFactory.getLogger(CommonPageWithTabs.class); + @FindBy(css = "[role = \"tab\"]") + private List<WebElement> tabList; + + public CommonPageWithTabs(WebDriver driver) { + super(driver); + } + + public void goToTab(String tabName) { + for (WebElement element : tabList) { + if (element.getText().contains(tabName)) { + element.click(); + wait.forAttributeToContain(element, "aria-selected", "true"); + LOG.debug("Domain tab {} is opened", tabName); + break; + } + } + } + + public String getAlertMessageAndClose() { + + return getAlertArea().getAlertMessage(); + } +} diff --git a/domiSMP-ui-tests/src/main/java/ddsl/CommonPageWithTabsAndGrid.java b/domiSMP-ui-tests/src/main/java/ddsl/CommonPageWithTabsAndGrid.java new file mode 100644 index 0000000000000000000000000000000000000000..59878a9beaf613fe2ce1e2803d3a6f00727d1a90 --- /dev/null +++ b/domiSMP-ui-tests/src/main/java/ddsl/CommonPageWithTabsAndGrid.java @@ -0,0 +1,34 @@ +package ddsl; + +import ddsl.dcomponents.Grid.SmallGrid; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.FindBy; +import org.openqa.selenium.support.PageFactory; +import org.openqa.selenium.support.pagefactory.AjaxElementLocatorFactory; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +/** + * Generic page used for pages which have small grid in the right of the page and tabs in the left. This element gives access to action buttons and elements of the page. + */ +public class CommonPageWithTabsAndGrid extends CommonPageWithTabs { + private final static Logger LOG = LoggerFactory.getLogger(CommonPageWithTabsAndGrid.class); + @FindBy(css = "mat-form-field input") + public WebElement filterInput; + @FindBy(css = "data-panel >div >div> mat-toolbar button:first-of-type") + public WebElement addBtn; + @FindBy(css = "[class~=smp-column-label]") + public WebElement rightPanel; + + public CommonPageWithTabsAndGrid(WebDriver driver) { + super(driver); + PageFactory.initElements(new AjaxElementLocatorFactory(driver, data.getWaitTimeShort()), this); + LOG.debug("CommonPageWithTabs is loaded"); + } + + public SmallGrid getLeftSideGrid() { + return new SmallGrid(driver, rightPanel); + } + + +} diff --git a/domiSMP-ui-tests/src/main/java/ddsl/DomiSMPPage.java b/domiSMP-ui-tests/src/main/java/ddsl/DomiSMPPage.java index 8581cebdbe0a52b67f5784caf04e45a8140e9dd1..bef1988c8d19a95fda8ef325a4ec9125d4738049 100644 --- a/domiSMP-ui-tests/src/main/java/ddsl/DomiSMPPage.java +++ b/domiSMP-ui-tests/src/main/java/ddsl/DomiSMPPage.java @@ -16,12 +16,10 @@ import org.openqa.selenium.support.pagefactory.AjaxElementLocatorFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import pages.LoginPage; - +/** + * Page object for the common components from Domismp like navigation, right menu. This contains the locators of the page and the methods for the behaviour of the page + */ public class DomiSMPPage extends DComponent { - - /** - * Page object for the common components from Domismp like navigation, right menu. This contains the locators of the page and the methods for the behaviour of the page - */ private final static Logger LOG = LoggerFactory.getLogger(DomiSMPPage.class); @FindBy(css = "cdk-overlay-backdrop cdk-overlay-dark-backdrop cdk-overlay-backdrop-showing") protected WebElement overlay; @@ -34,6 +32,9 @@ public class DomiSMPPage extends DComponent { @FindBy(css = "#okbuttondialog_id ") private WebElement dialogOKbutton; + private AlertComponent alertComponent = null; + + public DomiSMPPage(WebDriver driver) { super(driver); @@ -70,9 +71,16 @@ public class DomiSMPPage extends DComponent { driver.navigate().refresh(); waitForPageToLoaded(); } - - public AlertComponent getAlertArea() { - return new AlertComponent(driver); +// +// public AlertComponent getAlertArea() { +// return new AlertComponent(driver); +// } + + public AlertComponent getAlertArea(){ + if ( alertComponent == null){ + alertComponent = new AlertComponent(driver); + } + return alertComponent; } public DButton getExpiredDialoginbutton() { diff --git a/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/ConfirmationDialog.java b/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/ConfirmationDialog.java index 55b2b77e55efaddcbfd839344021819e2af1e42c..d417b1f15bca712cfbdd028f83b788fbeac0b367 100644 --- a/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/ConfirmationDialog.java +++ b/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/ConfirmationDialog.java @@ -7,13 +7,11 @@ import org.openqa.selenium.support.PageFactory; import org.openqa.selenium.support.pagefactory.AjaxElementLocatorFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; - +/** + * Page component for conformation popups/dialogs for different actions + */ public class ConfirmationDialog extends DComponent { - /** - * Page component for conformation popups/dialogs for different actions - */ private final static Logger LOG = LoggerFactory.getLogger(ConfirmationDialog.class); - @FindBy(id = "yesbuttondialog_id") private WebElement yesBtn; @SuppressWarnings("SpellCheckingInspection") diff --git a/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/DComponent.java b/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/DComponent.java index d2831d4db27203463bb3e419ffa343a3b613b3f6..1211e6fd633bf6a6a471954cb06359978f779d2a 100644 --- a/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/DComponent.java +++ b/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/DComponent.java @@ -8,17 +8,13 @@ import ddsl.dobjects.DWait; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import utils.TestRunData; - +/** + * Generic component which gives access of driver, wait and wrappers of elements. This should be inhered by each component class. + */ public class DComponent { - - /** - * Generic component which gives access of driver, wait and wrappers of elements. This should be inhered by each component class. - */ - public DWait wait; protected WebDriver driver; protected TestRunData data = TestRunData.getInstance(); - public DComponent(WebDriver driver) { this.driver = driver; this.wait = new DWait(driver); diff --git a/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/SetChangePasswordDialog.java b/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/SetChangePasswordDialog.java index 9cb1f77fe1ab569deb2fbf607821dfb4a8eac7f1..6ab008011eb954b69fac10b5c0a056486268f32f 100644 --- a/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/SetChangePasswordDialog.java +++ b/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/SetChangePasswordDialog.java @@ -12,12 +12,10 @@ import pages.userSettings.SuccesfullPasswordChangedPopup; import java.util.ArrayList; import java.util.List; - +/** + * Page object for the Set/change password dialog. This contains the locators of the page and the methods for the behaviour of the page + */ public class SetChangePasswordDialog extends DComponent { - - /** - * Page object for the Set/change password dialog. This contains the locators of the page and the methods for the behaviour of the page - */ private final static Logger LOG = LoggerFactory.getLogger(SetChangePasswordDialog.class); @FindBy(css = ".smp-field-error") List<WebElement> fieldsError; @@ -44,7 +42,7 @@ public class SetChangePasswordDialog extends DComponent { weToDInput(confirmationPasswordInput).fill(newPassword, true); } - public DomiSMPPage TryClickOnChangePassword() throws Exception { + public DomiSMPPage TryClickOnChangePassword(){ wait.forElementToBeClickable(setPasswordBtn); if (weToDButton(setPasswordBtn).isEnabled() && fieldsError.isEmpty()) { weToDButton(setPasswordBtn).click(); diff --git a/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/SideNavigationComponent.java b/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/SideNavigationComponent.java index 0ad5ee76623174e27d3e188e3c515d4f4a5b7edc..989c8b63e7a6b16524ea76107f64e05ebf3b6ed6 100644 --- a/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/SideNavigationComponent.java +++ b/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/SideNavigationComponent.java @@ -12,6 +12,7 @@ import org.openqa.selenium.support.pagefactory.AjaxElementLocatorFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import pages.administration.editDomainsPage.EditDomainsPage; +import pages.administration.editGroupsPage.EditGroupsPage; import pages.systemSettings.TruststorePage; import pages.systemSettings.UsersPage; import pages.systemSettings.domainsPage.DomainsPage; @@ -20,14 +21,11 @@ import pages.systemSettings.propertiesPage.PropertiesPage; import pages.userSettings.ProfilePage; import java.util.Objects; - +/** + * Navigation object to navigate through application. + */ public class SideNavigationComponent extends DomiSMPPage { - - /** - * Navigation object to navigate through application. - */ private final static Logger LOG = LoggerFactory.getLogger(SideNavigationComponent.class); - @FindBy(id = "window-sidenav-panel") public WebElement sideBar; @@ -119,10 +117,12 @@ public class SideNavigationComponent extends DomiSMPPage { openSubmenu(administrationExpand, editDomainsLnk); return (T) new EditDomainsPage(driver); } + if (page == Pages.ADMINISTRATION_EDIT_GROUPS) { + openSubmenu(administrationExpand, editGroupsLnk); + return (T) new EditGroupsPage(driver); + } + - // case ADMINISTRATION_EDIT_GROUPS: - // expandSection(administrationExpand); - // return new DLink(driver, editGroupsLnk); // case ADMINISTRATION_EDIT_RESOURCES: // expandSection(administrationExpand); // return new DLink(driver, editResourcesLnk); diff --git a/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/commonComponents/UserDataCommonComponent.java b/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/commonComponents/UserDataCommonComponent.java index 9c71651a85ffc557801bb52d7d3c2f85c77962c1..976baf529821b5041a047b591092232ea7764d03 100644 --- a/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/commonComponents/UserDataCommonComponent.java +++ b/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/commonComponents/UserDataCommonComponent.java @@ -7,12 +7,10 @@ import org.openqa.selenium.WebElement; import org.openqa.selenium.support.FindBy; import org.slf4j.Logger; import org.slf4j.LoggerFactory; - +/** + * Common component for user data used in Profile and Users page. This contains the locators of the page and the methods for the behaviour of the page + */ public class UserDataCommonComponent extends DomiSMPPage { - - /** - * Common component for user data used in Profile and Users page. This contains the locators of the page and the methods for the behaviour of the page - */ private final static Logger LOG = LoggerFactory.getLogger(UserDataCommonComponent.class); @FindBy(id = "changePassword_id") private WebElement setChangePasswordBtn; @@ -59,7 +57,7 @@ public class UserDataCommonComponent extends DomiSMPPage { return passwordExpiresOnLbl.getAttribute("value"); } - public SetChangePasswordDialog clickOnChangePassword() throws InterruptedException { + public SetChangePasswordDialog clickOnChangePassword(){ setChangePasswordBtn.click(); return new SetChangePasswordDialog(driver); } diff --git a/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/commonComponents/members/InviteMembersPopup.java b/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/commonComponents/members/InviteMembersPopup.java index 3ec5442ab351f1996c7d2a584e820bb217c94b65..2c933469d18f505ad2a43bc5e0b222632e59bf35 100644 --- a/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/commonComponents/members/InviteMembersPopup.java +++ b/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/commonComponents/members/InviteMembersPopup.java @@ -9,8 +9,12 @@ import org.openqa.selenium.support.PageFactory; import org.openqa.selenium.support.pagefactory.AjaxElementLocatorFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; - +/** + * Generic component for Invite members popup. It contains the WebElements and the methods specific to the dialog. + * + */ public class InviteMembersPopup extends DComponent { + private final static Logger LOG = LoggerFactory.getLogger(InviteMembersPopup.class); @FindBy(id = "saveButton") public WebElement saveBtn; diff --git a/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/commonComponents/members/MembersComponent.java b/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/commonComponents/members/MembersComponent.java index 3072a66eecb6ac0d2d0dd3f0d9cf0283a3786e91..63e945f9568eed5cf3b4f0ba9e79c49b2f701158 100644 --- a/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/commonComponents/members/MembersComponent.java +++ b/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/commonComponents/members/MembersComponent.java @@ -10,8 +10,12 @@ import org.openqa.selenium.WebElement; import org.openqa.selenium.support.FindBy; import org.slf4j.Logger; import org.slf4j.LoggerFactory; - +/** + * Generic component for Members tab. It contains the WebElements and the methods specific to the dialog. + * + */ public class MembersComponent extends DComponent { + private final static Logger LOG = LoggerFactory.getLogger(MembersComponent.class); @FindBy(id = "addMemberButton") @@ -38,14 +42,14 @@ public class MembersComponent extends DComponent { return weToDButton(inviteMemberBtn); } - public void removeUser(String username) throws Exception { + public void removeUser(String username){ getMembersGrid().searchAndGetElementInColumn("Username", username).click(); weToDButton(removeMemberBtn).click(); ConfirmationDialog confirmationDialog = new ConfirmationDialog(driver); confirmationDialog.confirm(); } - public void changeRoleOfUser(String username, String newRole) throws Exception { + public void changeRoleOfUser(String username, String newRole){ getMembersGrid().searchAndGetElementInColumn("Username", username).click(); weToDButton(sidePanel.findElement(By.id("editButton"))).click(); getInviteMembersPopup().changeRole(newRole); diff --git a/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/commonComponents/subcategoryTab/SubcategoryTabComponent.java b/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/commonComponents/subcategoryTab/SubcategoryTabComponent.java index c6b23c347d7c78c5559d89e2d55f30e668b34c73..529dfab8fc577cef631a0ff47036bf26c4e27322 100644 --- a/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/commonComponents/subcategoryTab/SubcategoryTabComponent.java +++ b/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/commonComponents/subcategoryTab/SubcategoryTabComponent.java @@ -1,15 +1,20 @@ package ddsl.dcomponents.commonComponents.subcategoryTab; +import ddsl.dcomponents.ConfirmationDialog; import ddsl.dcomponents.DComponent; import ddsl.dcomponents.Grid.SmallGrid; -import org.apache.poi.ss.formula.functions.T; +import org.openqa.selenium.ElementNotInteractableException; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.support.FindBy; import org.slf4j.Logger; import org.slf4j.LoggerFactory; - +/** + * Generic component for Subcategory tabs. It contains the WebElements and the methods specific to the dialog. + * + */ public class SubcategoryTabComponent extends DComponent { + private final static Logger LOG = LoggerFactory.getLogger(SubcategoryTabComponent.class); @FindBy(id = "createButton") @@ -20,27 +25,34 @@ public class SubcategoryTabComponent extends DComponent { private WebElement resourceMembersBtn; @FindBy(id = "deleteButton") private WebElement deleteBtn; - @FindBy(css = "div smp-column-data") - private WebElement sidePanel; + @FindBy(css = "[class=smp-column-data]") + private WebElement rightSidePanel; public SubcategoryTabComponent(WebDriver driver) { super(driver); } public SmallGrid getGrid() { - return new SmallGrid(driver, sidePanel); + return new SmallGrid(driver, rightSidePanel); } - public DComponent create() throws Exception { + public void create() throws ElementNotInteractableException { weToDButton(createBtn).click(); - return new DComponent(driver); } - public T edit(String columnName, String value) throws Exception { + protected void edit(String columnName, String value) throws Exception { WebElement tobeEdited = getGrid().searchAndGetElementInColumn(columnName, value); tobeEdited.click(); wait.forElementToBeEnabled(editBtn); weToDButton(editBtn).click(); - return new T(); + } + + protected void delete(String columnName, String value){ + WebElement tobeDeleted = getGrid().searchAndGetElementInColumn(columnName, value); + tobeDeleted.click(); + wait.forElementToBeEnabled(deleteBtn); + weToDButton(deleteBtn).click(); + ConfirmationDialog confirmationDialog = new ConfirmationDialog(driver); + confirmationDialog.confirm(); } } diff --git a/domiSMP-ui-tests/src/main/java/ddsl/dobjects/DButton.java b/domiSMP-ui-tests/src/main/java/ddsl/dobjects/DButton.java index fb17c359393790bd64369f6dec8e35993e5a3d74..97327b1693b925c450d118e5747e8a5c18b972b3 100644 --- a/domiSMP-ui-tests/src/main/java/ddsl/dobjects/DButton.java +++ b/domiSMP-ui-tests/src/main/java/ddsl/dobjects/DButton.java @@ -3,15 +3,13 @@ package ddsl.dobjects; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; - +/** + * Generic wrapper for button element. + */ public class DButton extends DObject { - /** - * Generic wrapper for button element. - */ public DButton(WebDriver driver, WebElement element) { super(driver, element); } - @Override public String getText() { return element.findElement(By.cssSelector("span > span")).getText().trim(); diff --git a/domiSMP-ui-tests/src/main/java/ddsl/dobjects/DInput.java b/domiSMP-ui-tests/src/main/java/ddsl/dobjects/DInput.java index b8450846a5a5b4731c632476f7769dcb2b6fff4d..9f9b9a4b52d55d5e9051635a560649f8193158e4 100644 --- a/domiSMP-ui-tests/src/main/java/ddsl/dobjects/DInput.java +++ b/domiSMP-ui-tests/src/main/java/ddsl/dobjects/DInput.java @@ -3,16 +3,15 @@ package ddsl.dobjects; import org.openqa.selenium.ElementNotInteractableException; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; - +/** + * Generic wrapper for input element. + */ public class DInput extends DObject { - /** - * Generic wrapper for input element. - */ public DInput(WebDriver driver, WebElement element) { super(driver, element); } - public void fill(String value) throws Exception { + public void fill(String value){ if (null == value) { return; } @@ -27,7 +26,7 @@ public class DInput extends DObject { /** * Method to send values which are bigger which can't be handled by Angular issue */ - public void fill(String value, Boolean slowSendValues) throws Exception { + public void fill(String value, Boolean slowSendValues){ if (null == value) { return; } @@ -37,7 +36,7 @@ public class DInput extends DObject { if (slowSendValues) { for (int i = 0; i < value.length(); i++) { char c = value.charAt(i); - String s = new StringBuilder().append(c).toString(); + String s = String.valueOf(c); element.sendKeys(s); } } else { diff --git a/domiSMP-ui-tests/src/main/java/ddsl/dobjects/DLink.java b/domiSMP-ui-tests/src/main/java/ddsl/dobjects/DLink.java index 9563dbc21dca90f0c3762f2c6b2bb4cb2880a84e..db18d592aca417e7b80016187abe2c6a6eb87350 100644 --- a/domiSMP-ui-tests/src/main/java/ddsl/dobjects/DLink.java +++ b/domiSMP-ui-tests/src/main/java/ddsl/dobjects/DLink.java @@ -2,11 +2,10 @@ package ddsl.dobjects; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; - +/** + * Generic wrapper for link element. + */ public class DLink extends DObject { - /** - * Generic wrapper for link element. - */ public DLink(WebDriver driver, WebElement element) { super(driver, element); } diff --git a/domiSMP-ui-tests/src/main/java/ddsl/dobjects/DObject.java b/domiSMP-ui-tests/src/main/java/ddsl/dobjects/DObject.java index 8839146c0e678fc336c1d08ef79902ec332cb1f3..15045f67fc75d222ca38cf770c7d9f4c964ccefe 100644 --- a/domiSMP-ui-tests/src/main/java/ddsl/dobjects/DObject.java +++ b/domiSMP-ui-tests/src/main/java/ddsl/dobjects/DObject.java @@ -1,20 +1,19 @@ package ddsl.dobjects; +import org.openqa.selenium.ElementNotInteractableException; import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.slf4j.Logger; import org.slf4j.LoggerFactory; - +/** + * Generic element object used to have access to element actions. + */ public class DObject { - /** - * Generic element object used to have access to element actions. - */ protected final Logger log = LoggerFactory.getLogger(this.getClass()); public WebElement element; protected WebDriver driver; protected DWait wait; - public DObject(WebDriver driver, WebElement element) { wait = new DWait(driver); this.driver = driver; @@ -31,12 +30,18 @@ public class DObject { return true; } - public boolean isEnabled() throws Exception { - if (isPresent()) { - wait.forElementToBeEnabled(element); - return element.isEnabled(); + public boolean isEnabled() throws ElementNotInteractableException { + try { + if (isPresent()) { + wait.forElementToBeEnabled(element); + return element.isEnabled(); + } } - throw new Exception(); + catch (ElementNotInteractableException e){ + throw new ElementNotInteractableException("Element not enabled: "+ e); + } + + return false; } public boolean isDisabled() throws Exception { @@ -68,11 +73,11 @@ public class DObject { ((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView();", element); } - public void click() throws Exception { + public void click() throws ElementNotInteractableException { if (isEnabled()) { wait.forElementToBeClickable(element).click(); } else { - throw new Exception(element.getAccessibleName() + "Not enabled"); + throw new ElementNotInteractableException(element.getAccessibleName() + "Not enabled"); } } diff --git a/domiSMP-ui-tests/src/main/java/ddsl/dobjects/DSelect.java b/domiSMP-ui-tests/src/main/java/ddsl/dobjects/DSelect.java index 74bc2eb6f6677ba64838db8df2d3c808bdaa1352..91ba20e95e98d526374d3c770bcd8b3656b3728e 100644 --- a/domiSMP-ui-tests/src/main/java/ddsl/dobjects/DSelect.java +++ b/domiSMP-ui-tests/src/main/java/ddsl/dobjects/DSelect.java @@ -5,17 +5,14 @@ import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.support.ui.Select; - +/** + * Generic wrapper for select element. + */ public class DSelect extends DObject { - /** - * Generic wrapper for select element. - */ Select select = new Select(element); - public DSelect(WebDriver driver, WebElement element) { super(driver, element); } - public void selectByVisibleText(String value) { select.selectByVisibleText(value); } diff --git a/domiSMP-ui-tests/src/main/java/ddsl/dobjects/DWait.java b/domiSMP-ui-tests/src/main/java/ddsl/dobjects/DWait.java index 0736910e7802aa49b2e556582af324dee580cc7f..7e33496dd88ff00f48a3ca500bd1a2cac664e530 100644 --- a/domiSMP-ui-tests/src/main/java/ddsl/dobjects/DWait.java +++ b/domiSMP-ui-tests/src/main/java/ddsl/dobjects/DWait.java @@ -9,18 +9,11 @@ import org.slf4j.LoggerFactory; import utils.TestRunData; import java.time.Duration; - +/** + * Wait class util used to have access to different types of waits. + */ public class DWait { - /** - * Wait class util used to have access to different types of waits. - */ - private final static Logger LOG = LoggerFactory.getLogger(DWait.class); - - /** - * Wait class which gives access to different types of waits. - */ - public final WebDriverWait defaultWait; public final WebDriverWait longWait; public final WebDriverWait shortWait; diff --git a/domiSMP-ui-tests/src/main/java/ddsl/enums/ResourceTypes.java b/domiSMP-ui-tests/src/main/java/ddsl/enums/ResourceTypes.java index 37845e4722e585c72294373e87d951256cfb5f98..4d63a784b67374eaef8cbea9212d011f397f13b6 100644 --- a/domiSMP-ui-tests/src/main/java/ddsl/enums/ResourceTypes.java +++ b/domiSMP-ui-tests/src/main/java/ddsl/enums/ResourceTypes.java @@ -1,16 +1,16 @@ package ddsl.enums; public enum ResourceTypes { - OASIS1("edelivery-oasis-smp-1.0-servicegroup (smp-1)"), - OASIS2("edelivery-oasis-smp-2.0-servicegroup (oasis-bdxr-smp-2)"), - OASIS3("edelivery-oasis-cppa-3.0-cpp (cpp)"); + OASIS1("edelivery-oasis-smp-1.0-servicegroup"), + OASIS2("edelivery-oasis-smp-2.0-servicegroup"), + OASIS3("edelivery-oasis-cppa-3.0-cpp"); public String getName() { return name; } - public final String name; + private final String name; ResourceTypes(String name) { diff --git a/domiSMP-ui-tests/src/main/java/pages/LoginPage.java b/domiSMP-ui-tests/src/main/java/pages/LoginPage.java index 34d5495419769ba84a1cde2d04a03020e7fe5575..bc23beabfe647b55104d2534e19063b942f469dc 100644 --- a/domiSMP-ui-tests/src/main/java/pages/LoginPage.java +++ b/domiSMP-ui-tests/src/main/java/pages/LoginPage.java @@ -10,15 +10,11 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.HashMap; - +/** + * Page object for the Login page. This contains the locators of the page and the methods for the behaviour of the page + */ public class LoginPage extends DomiSMPPage { - - /** - * Page object for the Login page. This contains the locators of the page and the methods for the behaviour of the page - */ - private final static Logger LOG = LoggerFactory.getLogger(LoginPage.class); - @FindBy(id = "username_id") private WebElement username; @FindBy(id = "password_id") diff --git a/domiSMP-ui-tests/src/main/java/pages/administration/editDomainsPage/CreateGroupDetailsDialog.java b/domiSMP-ui-tests/src/main/java/pages/administration/editDomainsPage/CreateGroupDetailsDialog.java index 210a94000969f3b5155ace08a25bcf5523dc14bd..2f92e02bc4e6f042a45e73ad22dd30aff78827ee 100644 --- a/domiSMP-ui-tests/src/main/java/pages/administration/editDomainsPage/CreateGroupDetailsDialog.java +++ b/domiSMP-ui-tests/src/main/java/pages/administration/editDomainsPage/CreateGroupDetailsDialog.java @@ -1,10 +1,60 @@ package pages.administration.editDomainsPage; +import ddsl.dcomponents.AlertComponent; import ddsl.dcomponents.DComponent; import org.openqa.selenium.WebDriver; - +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.FindBy; +import org.openqa.selenium.support.PageFactory; +import org.openqa.selenium.support.pagefactory.AjaxElementLocatorFactory; +import rest.models.GroupModel; +/** + * Page object create new group dialog of Edit Groups page. This contains the locators of the page and the methods for the behaviour of the page + */ public class CreateGroupDetailsDialog extends DComponent { + @FindBy(id = "name_id") + private WebElement groupNameLbl; + @FindBy(id = "description_id") + private WebElement groupDescriptionLbl; + @FindBy(id = "group_id") + private WebElement groupVisibilityDdl; + @FindBy(id = "saveButton") + private WebElement saveBtn; + + private AlertComponent alertComponent = null; + public CreateGroupDetailsDialog(WebDriver driver) { super(driver); + PageFactory.initElements(new AjaxElementLocatorFactory(driver, data.getWaitTimeShort()), this); + + } + +// public AlertComponent getAlertArea() { +// return new AlertComponent(driver); +// } + + + public AlertComponent getAlertArea(){ + if ( alertComponent == null){ + alertComponent = new AlertComponent(driver); + } + return alertComponent; + } + + + public void fillGroupDetails(GroupModel group) { + groupNameLbl.sendKeys(group.getGroupName()); + groupDescriptionLbl.sendKeys(group.getGroupDescription()); + weToDSelect(groupVisibilityDdl).selectValue(group.getVisibility()); + } + + public Boolean tryClickOnSave(){ + wait.forElementToBeClickable(saveBtn); + if (weToDButton(saveBtn).isEnabled()) { + weToDButton(saveBtn).click(); + return true; + } else { + return false; + } } } diff --git a/domiSMP-ui-tests/src/main/java/pages/administration/editDomainsPage/DomainMembersTab.java b/domiSMP-ui-tests/src/main/java/pages/administration/editDomainsPage/DomainMembersTab.java index e137a88785d76cd453abcdbfd2dc906b44fd489d..836ac9c244a806c9bb9c86c67654958efd238a54 100644 --- a/domiSMP-ui-tests/src/main/java/pages/administration/editDomainsPage/DomainMembersTab.java +++ b/domiSMP-ui-tests/src/main/java/pages/administration/editDomainsPage/DomainMembersTab.java @@ -4,9 +4,10 @@ import ddsl.dcomponents.commonComponents.members.MembersComponent; import org.openqa.selenium.WebDriver; import org.openqa.selenium.support.PageFactory; import org.openqa.selenium.support.pagefactory.AjaxElementLocatorFactory; - +/** + * Page object Members tab of Edit Groups page. This contains the locators of the page and the methods for the behaviour of the page + */ public class DomainMembersTab extends MembersComponent { - public DomainMembersTab(WebDriver driver) { super(driver); PageFactory.initElements(new AjaxElementLocatorFactory(driver, data.getWaitTimeShort()), this); diff --git a/domiSMP-ui-tests/src/main/java/pages/administration/editDomainsPage/EditDomainsPage.java b/domiSMP-ui-tests/src/main/java/pages/administration/editDomainsPage/EditDomainsPage.java index b91b7f265b6e0748163d1222b5093459f779cd64..0e50e00bd975998e4eed058b94f05067b7b665d7 100644 --- a/domiSMP-ui-tests/src/main/java/pages/administration/editDomainsPage/EditDomainsPage.java +++ b/domiSMP-ui-tests/src/main/java/pages/administration/editDomainsPage/EditDomainsPage.java @@ -1,16 +1,14 @@ package pages.administration.editDomainsPage; -import ddsl.CommonPageWithGrid; +import ddsl.CommonPageWithTabsAndGrid; import org.openqa.selenium.WebDriver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; - -public class EditDomainsPage extends CommonPageWithGrid { - /** - * Page object for the Edit domains page. This contains the locators of the page and the methods for the behaviour of the page - */ +/** + * Page object for the Edit domains page. This contains the locators of the page and the methods for the behaviour of the page + */ +public class EditDomainsPage extends CommonPageWithTabsAndGrid { private final static Logger LOG = LoggerFactory.getLogger(EditDomainsPage.class); - public EditDomainsPage(WebDriver driver) { super(driver); LOG.debug("Loading Edit domains page."); @@ -21,4 +19,10 @@ public class EditDomainsPage extends CommonPageWithGrid { return new DomainMembersTab(driver); } + + public GroupTab getGroupTab() { + + return new GroupTab(driver); + } + } diff --git a/domiSMP-ui-tests/src/main/java/pages/administration/editDomainsPage/GroupTab.java b/domiSMP-ui-tests/src/main/java/pages/administration/editDomainsPage/GroupTab.java index 7af831e3465e5494407e8b60fe32c367d62cc8f8..e6b0c4e48a14d5190c3c0cfc3926faaf9832bd20 100644 --- a/domiSMP-ui-tests/src/main/java/pages/administration/editDomainsPage/GroupTab.java +++ b/domiSMP-ui-tests/src/main/java/pages/administration/editDomainsPage/GroupTab.java @@ -2,14 +2,30 @@ package pages.administration.editDomainsPage; import ddsl.dcomponents.commonComponents.subcategoryTab.SubcategoryTabComponent; import org.openqa.selenium.WebDriver; - +import org.openqa.selenium.support.PageFactory; +import org.openqa.selenium.support.pagefactory.AjaxElementLocatorFactory; +/** + * Page object Groups tab of Edit Groups page. This contains the locators of the page and the methods for the behaviour of the page + */ public class GroupTab extends SubcategoryTabComponent { public GroupTab(WebDriver driver) { super(driver); + PageFactory.initElements(new AjaxElementLocatorFactory(driver, data.getWaitTimeShort()), this); + + } + + public CreateGroupDetailsDialog clickCreateNewGroup(){ + create(); + return new CreateGroupDetailsDialog(driver); } - @Override - public CreateGroupDetailsDialog create() { + public CreateGroupDetailsDialog clickEditGroup(String domainCode) throws Exception { + edit("Group name", domainCode); return new CreateGroupDetailsDialog(driver); } + + public void deleteGroup(String domainCode){ + delete("Group name", domainCode); + } + } diff --git a/domiSMP-ui-tests/src/main/java/pages/administration/editGroupsPage/EditGroupsPage.java b/domiSMP-ui-tests/src/main/java/pages/administration/editGroupsPage/EditGroupsPage.java new file mode 100644 index 0000000000000000000000000000000000000000..2cd13a80b0c7efef7f0170aa0e1ed3ada7ba5a04 --- /dev/null +++ b/domiSMP-ui-tests/src/main/java/pages/administration/editGroupsPage/EditGroupsPage.java @@ -0,0 +1,39 @@ +package pages.administration.editGroupsPage; + +import ddsl.CommonPageWithTabs; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.FindBy; +import org.openqa.selenium.support.ui.Select; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import rest.models.DomainModel; +import rest.models.GroupModel; +/** + * Page object for the Edit groups page. This contains the locators of the page and the methods for the behaviour of the page + */ +public class EditGroupsPage extends CommonPageWithTabs { + private final static Logger LOG = LoggerFactory.getLogger(EditGroupsPage.class); + @FindBy(id = "domain_id") + private WebElement domainDdl; + @FindBy(id = "group_id") + private Select groupDdl; + + public EditGroupsPage(WebDriver driver) { + super(driver); + LOG.debug("Loading Edit groups page."); + } + + public void selectGroup(DomainModel domainModel, GroupModel groupModel){ + weToMatSelect(domainDdl).selectByVisibleText(domainModel.getDomainCode()); + } + + public GroupMembersTab getDomainMembersTab() { + return new GroupMembersTab(driver); + } + + public ResourceTab getGroupTab() { + return new ResourceTab(driver); + } + +} diff --git a/domiSMP-ui-tests/src/main/java/pages/administration/editGroupsPage/GroupMembersTab.java b/domiSMP-ui-tests/src/main/java/pages/administration/editGroupsPage/GroupMembersTab.java new file mode 100644 index 0000000000000000000000000000000000000000..b69d5d7e84c5fe54c13b12c13c4033042514206f --- /dev/null +++ b/domiSMP-ui-tests/src/main/java/pages/administration/editGroupsPage/GroupMembersTab.java @@ -0,0 +1,16 @@ +package pages.administration.editGroupsPage; + +import ddsl.dcomponents.commonComponents.members.MembersComponent; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.support.PageFactory; +import org.openqa.selenium.support.pagefactory.AjaxElementLocatorFactory; +/** + * Page object Groups tab of EditGroups page. This contains the locators of the page and the methods for the behaviour of the page + */ +public class GroupMembersTab extends MembersComponent { + public GroupMembersTab(WebDriver driver) { + super(driver); + PageFactory.initElements(new AjaxElementLocatorFactory(driver, data.getWaitTimeShort()), this); + } +} + diff --git a/domiSMP-ui-tests/src/main/java/pages/administration/editGroupsPage/ResourceTab.java b/domiSMP-ui-tests/src/main/java/pages/administration/editGroupsPage/ResourceTab.java new file mode 100644 index 0000000000000000000000000000000000000000..e6168652e390b56cfcb2039fcb2235951005f270 --- /dev/null +++ b/domiSMP-ui-tests/src/main/java/pages/administration/editGroupsPage/ResourceTab.java @@ -0,0 +1,23 @@ +package pages.administration.editGroupsPage; + +import ddsl.dcomponents.commonComponents.subcategoryTab.SubcategoryTabComponent; +import org.openqa.selenium.ElementNotInteractableException; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.support.PageFactory; +import org.openqa.selenium.support.pagefactory.AjaxElementLocatorFactory; +import pages.administration.editDomainsPage.CreateGroupDetailsDialog; +/** + * Page object Resource tab of EditGroups page. This contains the locators of the page and the methods for the behaviour of the page + */ +public class ResourceTab extends SubcategoryTabComponent { + public ResourceTab(WebDriver driver) { + super(driver); + PageFactory.initElements(new AjaxElementLocatorFactory(driver, data.getWaitTimeShort()), this); + + } + + public CreateGroupDetailsDialog clickOnCreateNewResource() throws ElementNotInteractableException { + create(); + return new CreateGroupDetailsDialog(driver); + } +} diff --git a/domiSMP-ui-tests/src/main/java/pages/systemSettings/TruststorePage.java b/domiSMP-ui-tests/src/main/java/pages/systemSettings/TruststorePage.java index 9a47d96ccd3b77aadae318a2683fafd374027104..364b6d7c84acccd1a9d89248b9112d6ab56d7ec7 100644 --- a/domiSMP-ui-tests/src/main/java/pages/systemSettings/TruststorePage.java +++ b/domiSMP-ui-tests/src/main/java/pages/systemSettings/TruststorePage.java @@ -1,18 +1,17 @@ package pages.systemSettings; import ddsl.CommonCertificatePage; +import ddsl.dcomponents.Grid.SmallGrid; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.support.FindBy; import java.util.regex.Matcher; import java.util.regex.Pattern; - +/** + * Page object for the Truststorepage. This contains the locators of the page and the methods for the behaviour of the page + */ public class TruststorePage extends CommonCertificatePage { - /** - * Page object for the Truststorepage. This contains the locators of the page and the methods for the behaviour of the page - */ - @FindBy(id = "custom-file-upload") private WebElement uploadInput; @@ -20,16 +19,17 @@ public class TruststorePage extends CommonCertificatePage { super(driver); } - + public SmallGrid getCertificateGrid() { + return new SmallGrid(driver, rightPanel); + } public String addCertificateAndReturnAlias(String filePath) { uploadInput.sendKeys(filePath); String certificateAlias = getAlertMessageAndClose(); - Pattern pattern = Pattern.compile("(?<=alias \\[)(.*?)(?=\\])"); + Pattern pattern = Pattern.compile("(?<=alias \\[)(.*?)(?=])"); Matcher matcher = pattern.matcher(certificateAlias); if (matcher.find()) { - String result = matcher.group(1); - return result; + return matcher.group(1); } return null; } diff --git a/domiSMP-ui-tests/src/main/java/pages/systemSettings/UsersPage.java b/domiSMP-ui-tests/src/main/java/pages/systemSettings/UsersPage.java index 44cdb562f90e2641710a80754166d28d3c207c9f..ef97ce5841e3460975d26b1ed22b9aaaa1b154cd 100644 --- a/domiSMP-ui-tests/src/main/java/pages/systemSettings/UsersPage.java +++ b/domiSMP-ui-tests/src/main/java/pages/systemSettings/UsersPage.java @@ -1,6 +1,6 @@ package pages.systemSettings; -import ddsl.CommonPageWithGrid; +import ddsl.CommonPageWithTabsAndGrid; import ddsl.dcomponents.commonComponents.UserDataCommonComponent; import ddsl.dobjects.DButton; import org.openqa.selenium.WebDriver; @@ -9,13 +9,11 @@ import org.openqa.selenium.support.FindBy; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import rest.models.UserModel; - -public class UsersPage extends CommonPageWithGrid { - /** - * Page object for the Users page. This contains the locators of the page and the methods for the behaviour of the page - */ +/** + * Page object for the Users page. This contains the locators of the page and the methods for the behaviour of the page + */ +public class UsersPage extends CommonPageWithTabsAndGrid { private final static Logger LOG = LoggerFactory.getLogger(UsersPage.class); - public UserDataCommonComponent userData; @FindBy(id = "username_id") private WebElement usernameInput; diff --git a/domiSMP-ui-tests/src/main/java/pages/systemSettings/domainsPage/DomainTab.java b/domiSMP-ui-tests/src/main/java/pages/systemSettings/domainsPage/DomainTab.java index 8fcf2d4dc9d6eb3b910c6842ad0dcbf2419dbfe4..9a7de8932029a6a4df3ac05d2f996cd230e7bb60 100644 --- a/domiSMP-ui-tests/src/main/java/pages/systemSettings/domainsPage/DomainTab.java +++ b/domiSMP-ui-tests/src/main/java/pages/systemSettings/domainsPage/DomainTab.java @@ -9,11 +9,10 @@ import org.openqa.selenium.support.pagefactory.AjaxElementLocatorFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import rest.models.DomainModel; - +/** + * Page object for the Domains tab of Domains page. This contains the locators of the page and the methods for the behaviour of the page + */ public class DomainTab extends DComponent { - /** - * Page object for the Domains tab of Domains page. This contains the locators of the page and the methods for the behaviour of the page - */ private final static Logger LOG = LoggerFactory.getLogger(DomainTab.class); @FindBy(id = "domainCode_id") private WebElement domainIdInput; diff --git a/domiSMP-ui-tests/src/main/java/pages/systemSettings/domainsPage/DomainsPage.java b/domiSMP-ui-tests/src/main/java/pages/systemSettings/domainsPage/DomainsPage.java index 9376628de4126cd9e692df22d32bfd028aa83f3e..9c95a1c4a9b44a06e332455794dcdb0e79b564f6 100644 --- a/domiSMP-ui-tests/src/main/java/pages/systemSettings/domainsPage/DomainsPage.java +++ b/domiSMP-ui-tests/src/main/java/pages/systemSettings/domainsPage/DomainsPage.java @@ -1,6 +1,6 @@ package pages.systemSettings.domainsPage; -import ddsl.CommonPageWithGrid; +import ddsl.CommonPageWithTabsAndGrid; import ddsl.dobjects.DButton; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; @@ -8,10 +8,10 @@ import org.openqa.selenium.support.FindBy; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class DomainsPage extends CommonPageWithGrid { - /** - * Page object for the Users page. This contains the locators of the page and the methods for the behaviour of the page - */ +/** + * Page object for the Users page. This contains the locators of the page and the methods for the behaviour of the page + */ +public class DomainsPage extends CommonPageWithTabsAndGrid { private final static Logger LOG = LoggerFactory.getLogger(DomainsPage.class); @FindBy(css = "smp-warning-panel span") private WebElement warningLabel; diff --git a/domiSMP-ui-tests/src/main/java/pages/systemSettings/domainsPage/MembersTab.java b/domiSMP-ui-tests/src/main/java/pages/systemSettings/domainsPage/MembersTab.java index 7a7319b702c69c95773e85018e4638d2982ef94f..4886fe6bbe00102f2b7770b1abdef6ae541abf68 100644 --- a/domiSMP-ui-tests/src/main/java/pages/systemSettings/domainsPage/MembersTab.java +++ b/domiSMP-ui-tests/src/main/java/pages/systemSettings/domainsPage/MembersTab.java @@ -5,6 +5,9 @@ import org.openqa.selenium.WebDriver; import org.openqa.selenium.support.PageFactory; import org.openqa.selenium.support.pagefactory.AjaxElementLocatorFactory; +/** + * Page object Resource tab of Domains page. This contains the locators of the page and the methods for the behaviour of the page + */ public class MembersTab extends MembersComponent { public MembersTab(WebDriver driver) { super(driver); diff --git a/domiSMP-ui-tests/src/main/java/pages/systemSettings/domainsPage/ResourceTab.java b/domiSMP-ui-tests/src/main/java/pages/systemSettings/domainsPage/ResourceTab.java index 0a21c88c0d8ec7ba86ea06219a87f742b16cdac3..b998fd9b31458604aad6ab08f7cf3605613c22c4 100644 --- a/domiSMP-ui-tests/src/main/java/pages/systemSettings/domainsPage/ResourceTab.java +++ b/domiSMP-ui-tests/src/main/java/pages/systemSettings/domainsPage/ResourceTab.java @@ -10,17 +10,13 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.List; - +/** + * Page object for the Resource tab of Domains page. This contains the locators of the page and the methods for the behaviour of the page + */ public class ResourceTab extends DComponent { - - /** - * Page object for the Resource tab of Domains page. This contains the locators of the page and the methods for the behaviour of the page - */ private final static Logger LOG = LoggerFactory.getLogger(ResourceTab.class); - @FindBy(css = "mat-list-option") private List<WebElement> resourceOptions; - @FindBy(id = "saveButton") private WebElement saveBtn; diff --git a/domiSMP-ui-tests/src/main/java/pages/systemSettings/domainsPage/SMLIntegrationTab.java b/domiSMP-ui-tests/src/main/java/pages/systemSettings/domainsPage/SMLIntegrationTab.java index 0fa1812e862616a9fe7beb275aca0f0b5e5bf811..76401afda24c42303bf54f390f034dc9a1569ea6 100644 --- a/domiSMP-ui-tests/src/main/java/pages/systemSettings/domainsPage/SMLIntegrationTab.java +++ b/domiSMP-ui-tests/src/main/java/pages/systemSettings/domainsPage/SMLIntegrationTab.java @@ -10,14 +10,11 @@ import org.openqa.selenium.support.pagefactory.AjaxElementLocatorFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import rest.models.DomainModel; - +/** + * Page object for the SML integration tab of Domains page. This contains the locators of the page and the methods for the behaviour of the page + */ public class SMLIntegrationTab extends DComponent { - - /** - * Page object for the SML integration tab of Domains page. This contains the locators of the page and the methods for the behaviour of the page - */ private final static Logger LOG = LoggerFactory.getLogger(SMLIntegrationTab.class); - @FindBy(id = "smldomain_id") private WebElement smlDomainInput; diff --git a/domiSMP-ui-tests/src/main/java/pages/systemSettings/keyStorePage/KeyStoreImportDialog.java b/domiSMP-ui-tests/src/main/java/pages/systemSettings/keyStorePage/KeyStoreImportDialog.java index ba193b69e72816cd7e5fe3acb610175061606426..ab1a962034e62ff6a44be924ef7ede4013ff5f3a 100644 --- a/domiSMP-ui-tests/src/main/java/pages/systemSettings/keyStorePage/KeyStoreImportDialog.java +++ b/domiSMP-ui-tests/src/main/java/pages/systemSettings/keyStorePage/KeyStoreImportDialog.java @@ -14,9 +14,7 @@ import org.slf4j.LoggerFactory; * */ public class KeyStoreImportDialog extends DComponent { - private final static Logger LOG = LoggerFactory.getLogger(KeyStoreImportDialog.class); - @FindBy(id = "keystore-file-upload") private WebElement importKeyStoreInput; @FindBy(id = "keystoreFilename") diff --git a/domiSMP-ui-tests/src/main/java/pages/systemSettings/keyStorePage/KeystorePage.java b/domiSMP-ui-tests/src/main/java/pages/systemSettings/keyStorePage/KeystorePage.java index 1b4beb70c256476ce8e0d8787ebd1257f13e84ab..51353311e2db515fa1df28a55face826dc038452 100644 --- a/domiSMP-ui-tests/src/main/java/pages/systemSettings/keyStorePage/KeystorePage.java +++ b/domiSMP-ui-tests/src/main/java/pages/systemSettings/keyStorePage/KeystorePage.java @@ -3,14 +3,15 @@ package pages.systemSettings.keyStorePage; import ddsl.CommonCertificatePage; import org.openqa.selenium.WebDriver; - +/** + * Page object for the Keystore page. This contains the locators of the page and the methods for the behaviour of the page + */ public class KeystorePage extends CommonCertificatePage { - public KeystorePage(WebDriver driver) { super(driver); } - public KeyStoreImportDialog clickImportkeyStoreBtn() throws Exception { + public KeyStoreImportDialog clickImportkeyStoreBtn(){ weToDButton(addBtn).click(); return new KeyStoreImportDialog(driver); } diff --git a/domiSMP-ui-tests/src/main/java/pages/systemSettings/propertiesPage/PropGrid.java b/domiSMP-ui-tests/src/main/java/pages/systemSettings/propertiesPage/PropGrid.java index 68b275f5f72a2d397bd629d97599a7dcc9cdf8ed..0eabeacf6443c9d6bbe52ce86a10c44ce16bd0d1 100644 --- a/domiSMP-ui-tests/src/main/java/pages/systemSettings/propertiesPage/PropGrid.java +++ b/domiSMP-ui-tests/src/main/java/pages/systemSettings/propertiesPage/PropGrid.java @@ -3,13 +3,10 @@ package pages.systemSettings.propertiesPage; import ddsl.dcomponents.Grid.BasicGrid; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; - +/** + * This class is used to map Property grid component. + */ public class PropGrid extends BasicGrid { - - /** - * This class is used to map Property grid component. - */ - public PropGrid(WebDriver driver, WebElement container) { super(driver, container); } diff --git a/domiSMP-ui-tests/src/main/java/pages/systemSettings/propertiesPage/PropertiesPage.java b/domiSMP-ui-tests/src/main/java/pages/systemSettings/propertiesPage/PropertiesPage.java index 60d0c7c70065fee1f74fdb217aa91785598e0ade..721d3ee0c83e0e6a57cd12ef9334be4e268f8771 100644 --- a/domiSMP-ui-tests/src/main/java/pages/systemSettings/propertiesPage/PropertiesPage.java +++ b/domiSMP-ui-tests/src/main/java/pages/systemSettings/propertiesPage/PropertiesPage.java @@ -9,14 +9,11 @@ import org.openqa.selenium.support.PageFactory; import org.openqa.selenium.support.pagefactory.AjaxElementLocatorFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; - +/** + * Page object for the Properties page. This contains the locators of the page and the methods for the behaviour of the page + */ public class PropertiesPage extends DomiSMPPage { - - /** - * Page object for the Properties page. This contains the locators of the page and the methods for the behaviour of the page - */ private final static Logger LOG = LoggerFactory.getLogger(PropertiesPage.class); - @FindBy(id = "searchTable") private WebElement propertyTableContainer; @FindBy(id = "saveButton") @@ -42,6 +39,7 @@ public class PropertiesPage extends DomiSMPPage { LOG.info("Search for property"); wait.forElementToBeVisible(searchPropertyField).sendKeys(propertyname); wait.forElementToBeClickable(searchBtn).click(); + wait.forXMillis(500); } public PropertyPopup openEditPropertyPopupup(String propertyName) { @@ -70,7 +68,7 @@ public class PropertiesPage extends DomiSMPPage { } - public void save() throws Exception { + public void save(){ weToDButton(saveBtn).click(); ConfirmationDialog confirmationDialog = new ConfirmationDialog(driver); confirmationDialog.confirm(); diff --git a/domiSMP-ui-tests/src/main/java/pages/systemSettings/propertiesPage/PropertyPopup.java b/domiSMP-ui-tests/src/main/java/pages/systemSettings/propertiesPage/PropertyPopup.java index 663c2ba2417dcb4da80d01160e1d0345dafb8713..cfe081cc6589e1e13de99484f17b420db2893465 100644 --- a/domiSMP-ui-tests/src/main/java/pages/systemSettings/propertiesPage/PropertyPopup.java +++ b/domiSMP-ui-tests/src/main/java/pages/systemSettings/propertiesPage/PropertyPopup.java @@ -9,11 +9,10 @@ import org.openqa.selenium.support.FindBy; import org.openqa.selenium.support.PageFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; - +/** + * Property popup component used when modifying a property. + */ public class PropertyPopup extends DComponent { - /** - * Property popup component used when modifying a property. - */ private final static Logger LOG = LoggerFactory.getLogger(PropertiesPage.class); @FindBy(id = "updatePropertyButton") WebElement popupOkBtn; @@ -53,7 +52,7 @@ public class PropertyPopup extends DComponent { } } - public void clickOK() throws Exception { + public void clickOK(){ LOG.info("click OK"); wait.forElementToBeClickable(popupOkBtn); weToDButton(popupOkBtn).click(); @@ -65,21 +64,6 @@ public class PropertyPopup extends DComponent { 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); - } - - } - public PropertiesPage clickCancel() { LOG.info("click cancel"); wait.forElementToBeClickable(popupCancelBtn); diff --git a/domiSMP-ui-tests/src/main/java/pages/userSettings/ProfilePage.java b/domiSMP-ui-tests/src/main/java/pages/userSettings/ProfilePage.java index bfdadd80a664a79943183148f538003e950a62a7..ca569f6ef8f6abdeeb899c8364834ea59ea16d44 100644 --- a/domiSMP-ui-tests/src/main/java/pages/userSettings/ProfilePage.java +++ b/domiSMP-ui-tests/src/main/java/pages/userSettings/ProfilePage.java @@ -5,11 +5,10 @@ import ddsl.dcomponents.commonComponents.UserDataCommonComponent; import org.openqa.selenium.WebDriver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; - +/** + * Page object for the Profile page. This contains the locators of the page and the methods for the behaviour of the page + */ public class ProfilePage extends DomiSMPPage { - /** - * Page object for the Profile page. This contains the locators of the page and the methods for the behaviour of the page - */ private final static Logger LOG = LoggerFactory.getLogger(ProfilePage.class); public UserDataCommonComponent profileData; public ProfilePage(WebDriver driver) { diff --git a/domiSMP-ui-tests/src/main/java/pages/userSettings/SuccesfullPasswordChangedPopup.java b/domiSMP-ui-tests/src/main/java/pages/userSettings/SuccesfullPasswordChangedPopup.java index b619886ca5e04c605cd6953f177bb6b24a33773b..d92c7a6788ae15d744aafedcd48ab798b4b0ac02 100644 --- a/domiSMP-ui-tests/src/main/java/pages/userSettings/SuccesfullPasswordChangedPopup.java +++ b/domiSMP-ui-tests/src/main/java/pages/userSettings/SuccesfullPasswordChangedPopup.java @@ -5,12 +5,10 @@ import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.support.FindBy; import org.openqa.selenium.support.PageFactory; - +/** + * This class is used to map the succesfull password changed dialog. + */ public class SuccesfullPasswordChangedPopup extends DComponent { - - /** - * This class is used to map the succesfull password changed dialog. - */ @FindBy(css = "#mat-mdc-dialog-2 > div > div > app-information-dialog > div > div.panel") private WebElement message; @FindBy(id = "closebuttondialog_id") diff --git a/domiSMP-ui-tests/src/main/java/rest/BaseRestClient.java b/domiSMP-ui-tests/src/main/java/rest/BaseRestClient.java index 4c473a7ba6e1374d91e1e7abd71834e9ce45bf1b..8e3bab9989e26bd065b0c74b56576c0965246580 100644 --- a/domiSMP-ui-tests/src/main/java/rest/BaseRestClient.java +++ b/domiSMP-ui-tests/src/main/java/rest/BaseRestClient.java @@ -78,12 +78,20 @@ public class BaseRestClient { protected ClientResponse jsonPUT(WebResource resource, String body) { return requestPUT(resource, body, MediaType.APPLICATION_JSON); } - protected ClientResponse requestPOST(WebResource resource, String params, String type) { + protected ClientResponse requestPOST(WebResource resource, String body) { + if (!isLoggedIn()) { + log.info("User is not loggedin"); + try { + createSession(); + } catch (Exception e) { + throw new RuntimeException(e); + } + } WebResource.Builder builder = decorateBuilder(resource); - return builder.type(type).post(ClientResponse.class, params); + return builder.type(MediaType.APPLICATION_JSON).post(ClientResponse.class, body); } // -------------------------------------------- Login -------------------------------------------------------------- diff --git a/domiSMP-ui-tests/src/main/java/rest/DomainClient.java b/domiSMP-ui-tests/src/main/java/rest/DomainClient.java index 6b760ed5b52de66915d91f9c891caf955a988eda..4c01579eab4c21ba228bc4f765dcf7e4106484ed 100644 --- a/domiSMP-ui-tests/src/main/java/rest/DomainClient.java +++ b/domiSMP-ui-tests/src/main/java/rest/DomainClient.java @@ -3,11 +3,15 @@ package rest; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.sun.jersey.api.client.ClientResponse; +import ddsl.enums.ResourceTypes; import org.json.JSONObject; import rest.models.DomainModel; import rest.models.MemberModel; import utils.TestRunData; +import java.util.ArrayList; +import java.util.List; + public class DomainClient extends BaseRestClient { /** @@ -70,4 +74,31 @@ public class DomainClient extends BaseRestClient { return response.getEntity(MemberModel.class); } + public DomainModel addResourcesToDomain(String domainId, List<ResourceTypes> resourceTypesList) throws JsonProcessingException { + ObjectMapper mapper = new ObjectMapper(); + List<String> resourceListToBeAdded = new ArrayList<>(); + for (ResourceTypes resourceType : resourceTypesList) { + resourceListToBeAdded.add(resourceType.getName()); + } + + String resourceTypes = mapper.writeValueAsString(resourceListToBeAdded); + if (!isLoggedIn()) { + try { + createSession(); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + String addMemberPath = RestServicePaths.getAddResourcePath(TestRunData.getInstance().getUserId(), resourceTypes); + ClientResponse response = requestPOST(resource.path(addMemberPath), resourceTypes); + if (response.getStatus() != 200) { + try { + throw new SMPRestException("Could not add resource!", response); + } catch (SMPRestException e) { + throw new RuntimeException(e); + } + } + log.debug("Resources have been added!"); + return response.getEntity(DomainModel.class); + } } diff --git a/domiSMP-ui-tests/src/main/java/rest/RestServicePaths.java b/domiSMP-ui-tests/src/main/java/rest/RestServicePaths.java index fa47e3a3a688c465cf599ca34db6023c0e7eaccb..db1bd29575970abfa8c7ac1839177c4f8f4df4d2 100644 --- a/domiSMP-ui-tests/src/main/java/rest/RestServicePaths.java +++ b/domiSMP-ui-tests/src/main/java/rest/RestServicePaths.java @@ -1,32 +1,43 @@ package rest; public class RestServicePaths { - public static final String LOGIN = "/public/rest/security/authentication"; - public static final String CONNECTED = "/public/rest/security/user"; + private static final String CONTEXT_PATH_PUBLIC = "/public/rest/"; + private static final String CONTEXT_PATH_INTERNAL = "/internal/rest/"; + private static final String CONTEXT_PATH_EDIT = "/edit/rest/"; + private static final String CONTEXT_PATH_INTERNAL_USER = CONTEXT_PATH_INTERNAL + "user"; + private static final String CONTEXT_PATH_INTERNAL_DOMAIN = CONTEXT_PATH_INTERNAL + "domain"; + public static final String LOGIN = CONTEXT_PATH_PUBLIC +"security/authentication"; + public static final String CONNECTED =CONTEXT_PATH_PUBLIC + "security/user"; private RestServicePaths() { } public static String getUsersPath(String currentUserId) { - return "/internal/rest/user/" + currentUserId + "/create"; + return CONTEXT_PATH_INTERNAL_USER + "/" + currentUserId + "/create"; } public static String getChangePasswordPath(String currentUserId, String forUserId) { - return "/internal/rest/user/" + currentUserId + "/change-password-for/" + forUserId; + return CONTEXT_PATH_INTERNAL_USER + "/" + currentUserId + "/change-password-for/" + forUserId; } //Domains paths public static String getCreateDomainPath(String currentUserId) { - return "/internal/rest/domain/" + currentUserId + "/create"; + return CONTEXT_PATH_INTERNAL_DOMAIN +"/" + currentUserId + "/create"; } public static String getDomainAddMemberPath(String currentUserId, String domainId) { - return "/edit/rest/" + currentUserId + "/domain/" + domainId + "/member/put"; + return CONTEXT_PATH_EDIT + currentUserId + "/domain/" + domainId + "/member/put"; + } + + public static String getAddResourcePath(String currentUserId, String domainId) { + + return CONTEXT_PATH_INTERNAL_DOMAIN +"/" + currentUserId +"/" +domainId + "/update-resource-types"; + //return String.format("/internal/rest/domain/%userId/%domainId/update-resource-types", currentUserId, domainId); } diff --git a/domiSMP-ui-tests/src/main/java/rest/models/GroupModel.java b/domiSMP-ui-tests/src/main/java/rest/models/GroupModel.java new file mode 100644 index 0000000000000000000000000000000000000000..cf5e6a666c0ae6efc48e5a6ecbabb1dff2e889d5 --- /dev/null +++ b/domiSMP-ui-tests/src/main/java/rest/models/GroupModel.java @@ -0,0 +1,50 @@ +package rest.models; + + +import utils.Generator; + +public class GroupModel { + private String groupName; + private String visibility; + private String groupDescription; + + public static GroupModel generatePublicDomain() { + GroupModel groupModel = new GroupModel(); + groupModel.groupName = ("AUT_groupName_" + Generator.randomAlphaNumeric(4)).toLowerCase(); + groupModel.groupDescription = Generator.randomAlphaNumeric(10).toLowerCase(); + groupModel.visibility = "PUBLIC"; + return groupModel; + } + + public static GroupModel generatePrivateDomain() { + GroupModel groupModel = new GroupModel(); + groupModel.groupName = ("AUT_groupName_" + Generator.randomAlphaNumeric(4)).toLowerCase(); + groupModel.groupDescription = Generator.randomAlphaNumeric(10).toLowerCase(); + groupModel.visibility = "PRIVATE"; + return groupModel; + } + + public String getGroupName() { + return groupName; + } + + public void setGroupName(String groupName) { + this.groupName = groupName; + } + + public String getVisibility() { + return visibility; + } + + public void setVisibility(String visibility) { + this.visibility = visibility; + } + + public String getGroupDescription() { + return groupDescription; + } + + public void setGroupDescription(String groupDescription) { + this.groupDescription = groupDescription; + } +} diff --git a/domiSMP-ui-tests/src/main/resources/myLocal.properties b/domiSMP-ui-tests/src/main/resources/myLocal.properties index 47920057f0b1778b26999e190f33d00b33287a76..91ecbb1a2a4469166b90b7c561e58ed6e3c89360 100644 --- a/domiSMP-ui-tests/src/main/resources/myLocal.properties +++ b/domiSMP-ui-tests/src/main/resources/myLocal.properties @@ -1,9 +1,9 @@ # Environment properties # Test runner properties -test.webdriver.path=./chromedriver.exe -test.webdriver.type=chrome -#test.webdriver.path=./geckodriver.exe -#test.webdriver.type=firefox +#test.webdriver.path=./chromedriver.exe +#test.webdriver.type=chrome +test.webdriver.path=./geckodriver.exe +test.webdriver.type=firefox test.webdriver.headless=false test.application.ui.url=http://eulogin.protected.smp.local:8982/smp/ui diff --git a/domiSMP-ui-tests/src/main/resources/truststore/test.cer b/domiSMP-ui-tests/src/main/resources/truststore/expiredCertificate.cer similarity index 100% rename from domiSMP-ui-tests/src/main/resources/truststore/test.cer rename to domiSMP-ui-tests/src/main/resources/truststore/expiredCertificate.cer diff --git a/domiSMP-ui-tests/src/main/resources/truststore/validCertificate.cer b/domiSMP-ui-tests/src/main/resources/truststore/validCertificate.cer new file mode 100644 index 0000000000000000000000000000000000000000..9a84d763f891ccfac7500f741d0ee92bfaef5c27 --- /dev/null +++ b/domiSMP-ui-tests/src/main/resources/truststore/validCertificate.cer @@ -0,0 +1,19 @@ +-----BEGIN CERTIFICATE----- +MIIDAzCCAeugAwIBAgIEEQ+g2DANBgkqhkiG9w0BAQsFADAyMQ8wDQYDVQQDDAZy +ZWRfZ3cxEjAQBgNVBAoTCWVEZWxpdmVyeTELMAkGA1UEBhMCQkUwHhcNMjMwMzIz +MDg0OTIyWhcNMzMwMzIyMDg0OTIyWjAyMQ8wDQYDVQQDDAZyZWRfZ3cxEjAQBgNV +BAoTCWVEZWxpdmVyeTELMAkGA1UEBhMCQkUwggEiMA0GCSqGSIb3DQEBAQUAA4IB +DwAwggEKAoIBAQCTt2UA2xulSq7S4XbazB7j2fquW+N/ybl4YI7ViwNjYbnFF9Hr +TCy5q36UVHzioInn0qjqhz16pzAyF+0zCQFGFhG0hC/zrODdYXk6YgGsxiecQr7K +Ac7OsCqAmRC6Y4hKoFmgunLEq3GwRpL4gMlZpd0nkfJaWpfgwJn6ZKebrs5u+71D +q+lMlROPH1lWyeq6vuzGeVhMR3jf1o8s77SRcpBS/ZsXWQ7AM8/Lih3etPzqmt/R +p9LAh49DOfmQF5BhANE5rETUpJkL1hc9lBTXh8f8XUcG/X0vvqZqO8CSuIqerC42 +T5AEBLjJRINEpM6tl5rI9U1c4zUnffyhkRh7AgMBAAGjITAfMB0GA1UdDgQWBBQL +X5ndwOUTSkSKKXxSbgSuyUeJPTANBgkqhkiG9w0BAQsFAAOCAQEAMS0qoxzmYmrm +kT2PiFnVoUKbx057DgaHzBa0lPNJX2tXxR05v/ZRGKImiTuij9WiCc0GRJF6llwd +19BzwC5z/hSoxH40nFaXjH9OXtANF+G6UmbiwltUcW9NSlnIR2yVDJGRwvpzLdTE +HEUiws4u80CNiz9ylVPJ58XclTlDiRLR2Glhq0zmFX+buMOjJRVT9RaLHgMZWJV0 +i506YSrKgjjNXIcL3PyR7ahBLEWw/qolgZtmAq/bgGIZe3bt/g6lF5wnpKZ3+P48 +h9v17PrxbDOyc7QDw9PEs6h4L1t06yUwK8gE96wyJBsnLZybkf4X/HyKA1yinJy9 +SXAnr3u8EA== +-----END CERTIFICATE----- diff --git a/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/DomainsPgTests.java b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/DomainsPgTests.java index c72fd95c128450da7d7cd500f55b7a6880f13f3a..cbfd7c5349649e6f0fc9a04a0ccee0088ed4e3ce 100644 --- a/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/DomainsPgTests.java +++ b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/DomainsPgTests.java @@ -44,7 +44,7 @@ public class DomainsPgTests extends SeleniumTest { String alert = domainsPage.getAlertMessageAndClose(); soft.assertEquals(alert, "Domain: [" + domainModel.getDomainCode() + "] was created!"); - domainsPage.getDataPanelGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode()).click(); + domainsPage.getLeftSideGrid().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()); @@ -62,7 +62,7 @@ public class DomainsPgTests extends SeleniumTest { String alert = domainsPage.getAlertMessageAndClose(); soft.assertEquals(alert, "Domain: [" + domainModel.getDomainCode() + "] was created!"); - domainsPage.getDataPanelGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode()).click(); + domainsPage.getLeftSideGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode()).click(); domainsPage.goToTab("SML integration"); domainsPage.getSMLIntegrationTab().fillSMLIntegrationTab(domainModel); domainsPage.getSMLIntegrationTab().saveChanges(); @@ -104,14 +104,14 @@ public class DomainsPgTests extends SeleniumTest { homePage.goToLoginPage(); loginPage.login(normalUser.getUsername(), data.getNewPassword()); EditDomainsPage editDomainsPage = homePage.getSidebar().navigateTo(Pages.ADMINISTRATION_EDIT_DOMAINS); - WebElement domainElement = editDomainsPage.getDataPanelGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode()); + WebElement domainElement = editDomainsPage.getLeftSideGrid().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().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode()).click(); + domainsPage.getLeftSideGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode()).click(); domainsPage.goToTab("Members"); domainsPage.getMembersTab().changeRoleOfUser(normalUser.getUsername(), "ADMIN"); @@ -120,7 +120,7 @@ public class DomainsPgTests extends SeleniumTest { homePage.goToLoginPage(); loginPage.login(normalUser.getUsername(), data.getNewPassword()); editDomainsPage = homePage.getSidebar().navigateTo(Pages.ADMINISTRATION_EDIT_DOMAINS); - domainElement = editDomainsPage.getDataPanelGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode()); + domainElement = editDomainsPage.getLeftSideGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode()); soft.assertNotNull(domainElement, "Domain found for user which doesn't have rights"); @@ -129,7 +129,7 @@ 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().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode()).click(); + domainsPage.getLeftSideGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode()).click(); domainsPage.goToTab("Members"); domainsPage.getMembersTab().removeUser(normalUser.getUsername()); userMemberElement = domainsPage.getMembersTab().getMembersGrid().searchAndGetElementInColumn("Username", normalUser.getUsername()); @@ -139,7 +139,7 @@ public class DomainsPgTests extends SeleniumTest { homePage.goToLoginPage(); loginPage.login(normalUser.getUsername(), data.getNewPassword()); editDomainsPage = homePage.getSidebar().navigateTo(Pages.ADMINISTRATION_EDIT_DOMAINS); - domainElement = editDomainsPage.getDataPanelGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode()); + domainElement = editDomainsPage.getLeftSideGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode()); soft.assertNull(domainElement, "Domain found for user which doesn't have rights"); soft.assertAll(); diff --git a/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/EditDomainsPgTests.java b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/EditDomainsPgTests.java index a11f76ee393875a5dfaa2d11e57ba4ff3b483e2e..4c43ea4ee0616ece2c794638c0e6d08f600ff73a 100644 --- a/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/EditDomainsPgTests.java +++ b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/EditDomainsPgTests.java @@ -6,11 +6,15 @@ import domiSMPTests.SeleniumTest; import org.json.JSONObject; import org.openqa.selenium.WebElement; import org.testng.annotations.BeforeMethod; +import org.testng.annotations.Ignore; import org.testng.annotations.Test; import org.testng.asserts.SoftAssert; import pages.LoginPage; +import pages.administration.editDomainsPage.CreateGroupDetailsDialog; import pages.administration.editDomainsPage.EditDomainsPage; +import pages.administration.editGroupsPage.EditGroupsPage; import rest.models.DomainModel; +import rest.models.GroupModel; import rest.models.MemberModel; import rest.models.UserModel; @@ -51,7 +55,7 @@ public class EditDomainsPgTests extends SeleniumTest { rest.users().createUser(memberUser); //Invite user as VIEW and check if he has admin rights for domain - editDomainPage.getDataPanelGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode()).click(); + editDomainPage.getLeftSideGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode()).click(); editDomainPage.getDomainMembersTab().getInviteMemberBtn().click(); editDomainPage.getDomainMembersTab().getInviteMembersPopup().selectMember(memberUser.getUsername(), "VIEWER"); WebElement userMemberElement = editDomainPage.getDomainMembersTab().getMembersGrid().searchAndGetElementInColumn("Username", memberUser.getUsername()); @@ -62,14 +66,14 @@ public class EditDomainsPgTests extends SeleniumTest { homePage.goToLoginPage(); loginPage.login(memberUser.getUsername(), data.getNewPassword()); EditDomainsPage editDomainsPage = homePage.getSidebar().navigateTo(Pages.ADMINISTRATION_EDIT_DOMAINS); - WebElement domainElement = editDomainsPage.getDataPanelGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode()); + WebElement domainElement = editDomainsPage.getLeftSideGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode()); soft.assertNull(domainElement, "Domain found for user which doesn't have rights"); homePage.logout(); loginPage = homePage.goToLoginPage(); loginPage.login(adminUser.getUsername(), data.getNewPassword()); editDomainPage = homePage.getSidebar().navigateTo(Pages.ADMINISTRATION_EDIT_DOMAINS); - editDomainPage.getDataPanelGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode()).click(); + editDomainPage.getLeftSideGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode()).click(); editDomainPage.getDomainMembersTab().changeRoleOfUser(memberUser.getUsername(), "ADMIN"); //check if user has admin rights to domain as Admin @@ -77,7 +81,7 @@ public class EditDomainsPgTests extends SeleniumTest { homePage.goToLoginPage(); loginPage.login(memberUser.getUsername(), data.getNewPassword()); editDomainsPage = homePage.getSidebar().navigateTo(Pages.ADMINISTRATION_EDIT_DOMAINS); - domainElement = editDomainsPage.getDataPanelGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode()); + domainElement = editDomainsPage.getLeftSideGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode()); soft.assertNotNull(domainElement, "Domain found for user which doesn't have rights"); @@ -86,7 +90,7 @@ public class EditDomainsPgTests extends SeleniumTest { homePage.goToLoginPage(); loginPage.login(adminUser.getUsername(), data.getNewPassword()); editDomainPage = homePage.getSidebar().navigateTo(Pages.ADMINISTRATION_EDIT_DOMAINS); - editDomainPage.getDataPanelGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode()).click(); + editDomainPage.getLeftSideGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode()).click(); editDomainPage.getDomainMembersTab().removeUser(memberUser.getUsername()); userMemberElement = editDomainPage.getDomainMembersTab().getMembersGrid().searchAndGetElementInColumn("Username", memberUser.getUsername()); soft.assertNull(userMemberElement, "Domain found for user which doesn't have rights"); @@ -95,10 +99,68 @@ public class EditDomainsPgTests extends SeleniumTest { homePage.goToLoginPage(); loginPage.login(memberUser.getUsername(), data.getNewPassword()); editDomainsPage = homePage.getSidebar().navigateTo(Pages.ADMINISTRATION_EDIT_DOMAINS); - domainElement = editDomainsPage.getDataPanelGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode()); + domainElement = editDomainsPage.getLeftSideGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode()); soft.assertNull(domainElement, "Domain found for user which doesn't have rights"); + soft.assertAll(); + + } + + @Ignore + @Test(description = "EDTDOM-02 Domain admins are able to create new groups") + public void domainAdminsAreAbleToCreate() throws Exception { + GroupModel groupToBeCreated = GroupModel.generatePublicDomain(); + editDomainPage.getLeftSideGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode()).click(); + + editDomainPage.goToTab("Group"); + + CreateGroupDetailsDialog createGroupDetailsDialog = editDomainPage.getGroupTab().clickCreateNewGroup(); + createGroupDetailsDialog.fillGroupDetails(groupToBeCreated); + Boolean isSaveSuccesfully = createGroupDetailsDialog.tryClickOnSave(); + soft.assertTrue(isSaveSuccesfully); + + WebElement createGroup = editDomainPage.getGroupTab().getGrid().searchAndGetElementInColumn("Group name", groupToBeCreated.getGroupName()); + soft.assertNotNull(createGroup); + + EditGroupsPage editgroupPage = homePage.getSidebar().navigateTo(Pages.ADMINISTRATION_EDIT_GROUPS); + soft.assertAll(); + } + + @Test(description = "EDTDOM-03 Domain admins are not able to create duplicated groups") + public void domainAdminsAreNotAbleToCreateDuplicatedGroups() throws Exception { + GroupModel duplicatedGroup = GroupModel.generatePublicDomain(); + + editDomainPage.getLeftSideGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode()).click(); + editDomainPage.goToTab("Group"); + CreateGroupDetailsDialog createGroupDetailsDialog = editDomainPage.getGroupTab().clickCreateNewGroup(); + createGroupDetailsDialog.fillGroupDetails(duplicatedGroup); + Boolean isSaveSuccesfully = createGroupDetailsDialog.tryClickOnSave(); + soft.assertTrue(isSaveSuccesfully); + + + createGroupDetailsDialog = editDomainPage.getGroupTab().clickCreateNewGroup(); + createGroupDetailsDialog.fillGroupDetails(duplicatedGroup); + isSaveSuccesfully = createGroupDetailsDialog.tryClickOnSave(); + String duplicateAlertMessage = createGroupDetailsDialog.getAlertArea().getAlertMessage(); + soft.assertTrue(isSaveSuccesfully); + soft.assertEquals(duplicateAlertMessage, String.format("Invalid request [CreateGroup]. Error: Group with name [%s] already exists!!", duplicatedGroup.getGroupName())); soft.assertAll(); + } + + @Test(description = "EDTDOM-04 Domain admins are able to delete groups without resources") + public void domainAdminsAreNotAbleToDeleteGroups() throws Exception { + GroupModel groupToBeDeleted = GroupModel.generatePublicDomain(); + editDomainPage.getLeftSideGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode()).click(); + editDomainPage.goToTab("Group"); + CreateGroupDetailsDialog createGroupDetailsDialog = editDomainPage.getGroupTab().clickCreateNewGroup(); + createGroupDetailsDialog.fillGroupDetails(groupToBeDeleted); + Boolean isSaveSuccesfully = createGroupDetailsDialog.tryClickOnSave(); + soft.assertTrue(isSaveSuccesfully); + + editDomainPage.getGroupTab().deleteGroup(groupToBeDeleted.getGroupName()); + String deleteMessage = editDomainPage.getAlertArea().getAlertMessage(); + soft.assertEquals(deleteMessage, String.format("Domain group [%s] deleted", groupToBeDeleted.getGroupName())); + soft.assertAll(); } } diff --git a/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/EditGroupsPgTests.java b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/EditGroupsPgTests.java new file mode 100644 index 0000000000000000000000000000000000000000..25629381d77de543596d221374557315f1270bf4 --- /dev/null +++ b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/EditGroupsPgTests.java @@ -0,0 +1,58 @@ +package domiSMPTests.ui; + +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; +import pages.LoginPage; +import pages.administration.editDomainsPage.EditDomainsPage; +import rest.models.DomainModel; +import rest.models.MemberModel; +import rest.models.UserModel; + +import java.util.Arrays; +import java.util.List; + +public class EditGroupsPgTests extends SeleniumTest { + DomiSMPPage homePage; + LoginPage loginPage; + EditDomainsPage editDomainPage; + String domainId; + DomainModel domainModel; + UserModel adminUser; + SoftAssert soft; + + @BeforeMethod(alwaysRun = true) + public void beforeTest() throws Exception { + soft = new SoftAssert(); + domainModel = DomainModel.generatePublicDomainModelWithSML(); + adminUser = UserModel.generateUserWithADMINrole(); + + MemberModel domainMember = new MemberModel(); + domainMember.setUsername(adminUser.getUsername()); + domainMember.setRoleType("ADMIN"); + + rest.users().createUser(adminUser); + JSONObject domainJson = rest.domains().createDomain(domainModel); + domainId = domainJson.get("domainId").toString(); + rest.domains().addMembersToDomain(domainId, domainMember); + List<ResourceTypes> resourcesToBeAdded = Arrays.asList(ResourceTypes.OASIS1, ResourceTypes.OASIS3, ResourceTypes.OASIS2); + + + rest.domains().addResourcesToDomain(domainId, resourcesToBeAdded); + + homePage = new DomiSMPPage(driver); + loginPage = homePage.goToLoginPage(); + loginPage.login(adminUser.getUsername(), data.getNewPassword()); + editDomainPage = homePage.getSidebar().navigateTo(Pages.ADMINISTRATION_EDIT_DOMAINS); + } + + @Test(description = "EDTDOM-01 Domain admins are able to invite/edit/remove members") + public void domainAdminsAreAbleToInviteEditRemoveMembers(){ + + } +} diff --git a/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/ProfilePgTests.java b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/ProfilePgTests.java index 058b1eefbe3c403c37cf4a52aabda2a10f76a549..a4aa919f4876909cbe3f78df06af00f7b8c0d865 100644 --- a/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/ProfilePgTests.java +++ b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/ProfilePgTests.java @@ -29,13 +29,13 @@ public class ProfilePgTests extends SeleniumTest { LoginPage loginPage; @BeforeMethod(alwaysRun = true) - public void beforeTest() throws Exception { + public void beforeTest(){ soft = new SoftAssert(); homePage = new DomiSMPPage(driver); loginPage = homePage.goToLoginPage(); } @Test(description = "PROF-01 All logged users are able to view the Profile Page") - public void AllLoggedUsersShouldAbleToSeeProfilePage() throws Exception { + public void allLoggedUsersShouldAbleToSeeProfilePage() throws Exception { UserModel normalUser = UserModel.generateUserWithUSERrole(); rest.users().createUser(normalUser); @@ -68,7 +68,7 @@ public class ProfilePgTests extends SeleniumTest { } @Test(description = "PROF-02 All loggedin users are able to update profile data") - public void AllLoggedUsersShouldAbleToUpdateProfilePage() throws Exception { + public void allLoggedUsersShouldAbleToUpdateProfilePage() throws Exception { UserModel normalUser = UserModel.generateUserWithUSERrole(); rest.users().createUser(normalUser); @@ -110,7 +110,7 @@ public class ProfilePgTests extends SeleniumTest { } @Test(description = "PROF-03 Password validation is accord to the smp propeties values") - public void PasswordValidationsShouldBeAccordingToPropertiesValue() throws Exception { + public void passwordValidationsShouldBeAccordingToPropertiesValue() throws Exception { String propertyName = "smp.passwordPolicy.validationRegex"; String newPropertyValue = "^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[~`!@#$%^&+=\\-_<>.,?:;*/()|\\[\\]{}'\"\\\\]).{16,40}$"; String new40CharactersPasswordValue = "Edeltest!23456789Edeltest!234567890sssf"; @@ -141,7 +141,7 @@ public class ProfilePgTests extends SeleniumTest { @Ignore @Test(description = "PROF-04 User should be able to change his password") - public void UserShouldBeAbleToChangeHisPassword() throws Exception { + public void userShouldBeAbleToChangeHisPassword() throws Exception { UserModel adminUser = UserModel.generateUserWithADMINrole(); rest.users().createUser(adminUser); diff --git a/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/PropertiesPgTests.java b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/PropertiesPgTests.java index 25e7f7842fc07d38f2b80ee85d33eb01051ce098..33f3de66bf7d1f5ef660e90e0a73b9e22d3bdfcf 100644 --- a/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/PropertiesPgTests.java +++ b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/PropertiesPgTests.java @@ -36,7 +36,7 @@ public class PropertiesPgTests extends SeleniumTest { } @Test(description = "PRP-2 - Admin doubleclicks or selects a property and clicks edit button and Edit property dialog is opened") - public void AdminDoubleClicksOrSelectsAPropertyAndClicksEditButtonandEditPropertyDialogIsOpened() { + public void adminDoubleClicksOrSelectsAPropertyAndClicksEditButtonandEditPropertyDialogIsOpened() { String property = "bdmsl.integration.url"; propertiesPage.propertySearch(property); @@ -54,7 +54,7 @@ public class PropertiesPgTests extends SeleniumTest { } @Test(description = "PRP-5 Value is validated according to expected format (URL") - public void PropertyValueURLIsValidatedAccordingToExpectedFormat() throws Exception { + public void propertyValueURLIsValidatedAccordingToExpectedFormat() throws Exception { String property = "bdmsl.integration.url"; String wrongValue1 = Generator.randomAlphaNumeric(6); @@ -94,7 +94,7 @@ public class PropertiesPgTests extends SeleniumTest { } @Test(description = "PRP-5 Value is validated according to expected format (email)") - public void PropertyValueEmailIsValidatedAccordingToExpectedFormat() throws Exception { + public void propertyValueEmailIsValidatedAccordingToExpectedFormat() throws Exception { String property = "smp.alert.mail.from"; String wrongValue1 = Generator.randomAlphaNumeric(6); @@ -134,7 +134,7 @@ public class PropertiesPgTests extends SeleniumTest { } @Test(description = "PRP-5 Value is validated according to expected format (cron expression)") - public void PropertyValueCRONexpressionIsValidatedAccordingToExpectedFormat() throws Exception { + public void propertyValueCRONexpressionIsValidatedAccordingToExpectedFormat() throws Exception { String property = "smp.alert.credentials.cronJobExpression"; String wrongValue1 = Generator.randomAlphaNumeric(6); @@ -174,7 +174,7 @@ public class PropertiesPgTests extends SeleniumTest { } @Test(description = "PRP-5 Value is validated according to expected format (numeric)") - public void PropertyValueNumericIsValidatedAccordingToExpectedFormat() throws Exception { + public void propertyValueNumericIsValidatedAccordingToExpectedFormat() throws Exception { String property = "smp.ui.session.idle_timeout.user"; String wrongValue1 = Generator.randomAlphaNumeric(6); diff --git a/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/TrustorePgTests.java b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/TrustorePgTests.java index eab74a9f293741221809091076bef77398dd8a0e..05865decea236e123001e879a139e710af6f58ef 100644 --- a/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/TrustorePgTests.java +++ b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/TrustorePgTests.java @@ -3,6 +3,7 @@ package domiSMPTests.ui; import ddsl.DomiSMPPage; import ddsl.enums.Pages; import domiSMPTests.SeleniumTest; +import org.openqa.selenium.WebElement; import org.testng.annotations.Test; import org.testng.asserts.SoftAssert; import pages.LoginPage; @@ -11,10 +12,9 @@ import utils.FileUtils; public class TrustorePgTests extends SeleniumTest { - //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 { + public void systemAdminIsAbleToImportCertificates() throws Exception { SoftAssert soft = new SoftAssert(); DomiSMPPage homePage = new DomiSMPPage(driver); @@ -23,16 +23,50 @@ public class TrustorePgTests extends SeleniumTest { loginPage.login(data.getAdminUser().get("username"), data.getAdminUser().get("password")); TruststorePage truststorepage = homePage.getSidebar().navigateTo(Pages.SYSTEM_SETTINGS_TRUSTSTORE); - String path = FileUtils.getAbsolutePath("./src/main/resources/truststore/test.cer"); + String path = FileUtils.getAbsolutePath("./src/main/resources/truststore/validCertificate.cer"); String certificateALias = truststorepage.addCertificateAndReturnAlias(path); soft.assertNotNull(certificateALias); - // soft.assertEquals(truststorepage.getPublicKeyTypeLbl(), "RSA"); - // soft.assertEquals(truststorepage.getAliasIdLbl(), "smp_domain_02"); + soft.assertEquals(truststorepage.getPublicKeyTypeLbl(), "RSA"); + soft.assertEquals(truststorepage.getAliasIdLbl(), certificateALias); + soft.assertEquals(truststorepage.getSmpCertificateIdLbl(), "CN=red_gw,O=eDelivery,C=BE:00000000110fa0d8"); + soft.assertEquals(truststorepage.getSubjectNameLbl(), "C=BE,O=eDelivery,CN=red_gw"); + soft.assertEquals(truststorepage.getValidFromLbl(), "23/3/2023, 10:49:22"); + soft.assertEquals(truststorepage.getValidToLbl(), "22/3/2033, 10:49:22"); + soft.assertEquals(truststorepage.getIssuerLbl(), "C=BE,O=eDelivery,CN=red_gw"); + soft.assertEquals(truststorepage.getSerialNumberLbl(), "110fa0d8"); + soft.assertAll(); + + } + @Test(description = "TRST-02 System admin is able to import duplicated certificates") + public void systemAdminIsAbleToImportDuplicatedCertificates() throws Exception { - soft.assertAll(); + SoftAssert soft = new SoftAssert(); + DomiSMPPage homePage = new DomiSMPPage(driver); + + LoginPage loginPage = homePage.goToLoginPage(); + loginPage.login(data.getAdminUser().get("username"), data.getAdminUser().get("password")); + + TruststorePage truststorepage = homePage.getSidebar().navigateTo(Pages.SYSTEM_SETTINGS_TRUSTSTORE); + String path = FileUtils.getAbsolutePath("./src/main/resources/truststore/validCertificate.cer"); + String certificateALias = truststorepage.addCertificateAndReturnAlias(path); + String duplicatedCertificateALias = truststorepage.addCertificateAndReturnAlias(path); + WebElement certificate = truststorepage.getCertificateGrid().searchAndGetElementInColumn("Alias", certificateALias); + soft.assertNotNull(certificate); + truststorepage.getLeftSideGrid().searchAndGetElementInColumn("Alias", duplicatedCertificateALias); + + soft.assertNotNull(duplicatedCertificateALias); + soft.assertEquals(truststorepage.getPublicKeyTypeLbl(), "RSA"); + soft.assertEquals(truststorepage.getAliasIdLbl(), duplicatedCertificateALias); + soft.assertEquals(truststorepage.getSmpCertificateIdLbl(), "CN=red_gw,O=eDelivery,C=BE:00000000110fa0d8"); + soft.assertEquals(truststorepage.getSubjectNameLbl(), "C=BE,O=eDelivery,CN=red_gw"); + soft.assertEquals(truststorepage.getValidFromLbl(), "23/3/2023, 10:49:22"); + soft.assertEquals(truststorepage.getValidToLbl(), "22/3/2033, 10:49:22"); + soft.assertEquals(truststorepage.getIssuerLbl(), "C=BE,O=eDelivery,CN=red_gw"); + soft.assertEquals(truststorepage.getSerialNumberLbl(), "110fa0d8"); + soft.assertAll(); } diff --git a/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/UsersPgTests.java b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/UsersPgTests.java index 1ff5d0ecf68fe59f66a90e55c2a326f4021363f9..b122295e7e09b2781661265d3482e7c05b5dcd15 100644 --- a/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/UsersPgTests.java +++ b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/UsersPgTests.java @@ -17,13 +17,13 @@ public class UsersPgTests extends SeleniumTest { LoginPage loginPage; @BeforeMethod(alwaysRun = true) - public void beforeTest() throws Exception { + public void beforeTest(){ soft = new SoftAssert(); homePage = new DomiSMPPage(driver); loginPage = homePage.goToLoginPage(); } @Test(description = "USR-01 System admin is able to create new users") - public void SystemAdminIsAbleToCreateNewUsers() throws Exception { + public void systemAdminIsAbleToCreateNewUsers() throws Exception { loginPage.login(data.getAdminUser().get("username"), data.getAdminUser().get("password")); @@ -34,7 +34,7 @@ public class UsersPgTests extends SeleniumTest { usersPage.refreshPage(); // usersPage.filter(adminNewUserData.getUsername()); - WebElement newUser = usersPage.getDataPanelGrid().searchAndGetElementInColumn("Username", adminNewUserData.getUsername()); + WebElement newUser = usersPage.getLeftSideGrid().searchAndGetElementInColumn("Username", adminNewUserData.getUsername()); soft.assertNotNull(newUser); newUser.click(); @@ -52,7 +52,7 @@ public class UsersPgTests extends SeleniumTest { } @Test(description = "USR-02 USR-02 System admin is not able to create duplicated user") - public void SystemAdminIsNotAbleToCreateDuplicatedUser() throws Exception { + public void systemAdminIsNotAbleToCreateDuplicatedUser() throws Exception { loginPage.login(data.getAdminUser().get("username"), data.getAdminUser().get("password"));