Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 0 additions & 7 deletions .github/workflows/_test-central-server.yml
Original file line number Diff line number Diff line change
Expand Up @@ -83,13 +83,6 @@ jobs:
path: src/central-server/admin-service/ui-system-test/build/test-results/**/TEST-*.xml
reporter: java-junit

- name: Upload CS screenshots
if: failure()
uses: actions/upload-artifact@v4
with:
name: CS System Test screenshots
path: src/central-server/admin-service/ui-system-test/build/reports/test-automation/selenide-failures/*.png

- name: Fix permissions for CS logs
if: failure()
run: |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -390,14 +390,14 @@ public void openUploadDialog(String filename) throws URISyntaxException, Interru
.shouldBe(Condition.enabled)
.click();

globalConfigurationPageObj.configurationParts.btnCancelUpload()
globalConfigurationPageObj.configurationParts.btnCancel()
.shouldBe(Condition.enabled);
globalConfigurationPageObj.configurationParts.btnConfirmUpload()
globalConfigurationPageObj.configurationParts.btnConfirm()
.shouldNotBe(Condition.enabled);
TimeUnit.SECONDS.sleep(2); //avoid same updated at
globalConfigurationPageObj.configurationParts.inputConfigurationFile().uploadFile(getConfigurationFile(filename));

globalConfigurationPageObj.configurationParts.btnConfirmUpload()
globalConfigurationPageObj.configurationParts.btnConfirm()
.shouldBe(Condition.enabled)
.click();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ public void openAddMembersDialog() {
.shouldBe(enabled, visible)
.click();

globalGroupDetailsPage.getAddMembersDialogObj().btnAddMembers()
globalGroupDetailsPage.getAddMembersDialogObj().btnSave()
.shouldNotBe(enabled);
}

Expand Down Expand Up @@ -81,15 +81,15 @@ public void selectMember(final String identifier) {

@Step("user adds selected members")
public void addSelectedMembers() {
globalGroupDetailsPage.getAddMembersDialogObj().btnAddMembers()
globalGroupDetailsPage.getAddMembersDialogObj().btnSave()
.shouldBe(enabled)
.click();
}

@Step("user closes add members dialog")
public void closeAddMembersDialog() {
globalGroupDetailsPage.getAddMembersDialogObj().btnClose()
.shouldBe(enabled)
.shouldNotHave(cssClass("v-icon--disabled"))
.click();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -211,7 +211,7 @@ public void userIsAbleToApproveManagementRequestInRow(String securityServerCode,

@Step("the user clicks Approve button")
public void userIsAbleToApproveManagementRequest() {
commonPageObj.button.btnApprove().click();
managementRequestsPageObj.btnApproveInDetails().click();

commonPageObj.dialog.btnCancel().shouldBe(Condition.enabled);
commonPageObj.dialog.btnSave().shouldBe(Condition.enabled).click();
Expand All @@ -234,7 +234,7 @@ public void userIsAbleToDeclineManagementRequestInRow(String securityServerCode,

@Step("the user clicks Decline button")
public void userIsAbleToDeclineManagementRequest() {
commonPageObj.button.btnDecline().click();
managementRequestsPageObj.btnDeclineInDetails().click();

commonPageObj.dialog.btnCancel().shouldBe(Condition.enabled);
commonPageObj.dialog.btnSave().shouldBe(Condition.enabled).click();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -123,16 +123,16 @@ public void userClicksToUnregisterFromUsedServer(String serverCode) {

@Step("user clicks cancel in Unregister client dialog")
public void cancelUnregisterProcess() {
memberDetailsPageObj.unregisterDialog().dialog().shouldBe(visible);
memberDetailsPageObj.unregisterDialog().self().shouldBe(visible);
memberDetailsPageObj.unregisterDialog().btnCancel().shouldBe(visible, enabled).click();
memberDetailsPageObj.unregisterDialog().dialog().shouldNotBe(visible);
memberDetailsPageObj.unregisterDialog().self().shouldNotBe(visible);
}

@Step("user clicks Yes in Unregister client dialog")
public void confirmUnregisterProcess() {
memberDetailsPageObj.unregisterDialog().dialog().shouldBe(visible);
memberDetailsPageObj.unregisterDialog().self().shouldBe(visible);
memberDetailsPageObj.unregisterDialog().btnConfirm().shouldBe(visible, enabled).click();
memberDetailsPageObj.unregisterDialog().dialog().shouldNotBe(visible);
memberDetailsPageObj.unregisterDialog().self().shouldNotBe(visible);

commonPageObj.snackBar.success().shouldBe(visible);
commonPageObj.snackBar.btnClose().click();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,26 +91,26 @@ public void openDeleteDialog() {

@Step("user cannot delete Authentication certificate")
public void deleteButtonIsDisable() {
securityServerAuthCertificatesPageObj.getDeleteDialog().deleteButton()
securityServerAuthCertificatesPageObj.getDeleteDialog().btnDelete()
.shouldBe(visible)
.shouldNotBe(enabled);
}

@Step("closes delete Authentication certificate dialog")
public void closeDeleteDialog() {
securityServerAuthCertificatesPageObj.getDeleteDialog().cancelButton()
securityServerAuthCertificatesPageObj.getDeleteDialog().btnCancel()
.shouldBe(visible, enabled)
.click();

securityServerAuthCertificatesPageObj.getDeleteDialog().deleteButton()
securityServerAuthCertificatesPageObj.getDeleteDialog().btnDelete()
.shouldNotBe(visible);
securityServerAuthCertificatesPageObj.getDeleteDialog().cancelButton()
securityServerAuthCertificatesPageObj.getDeleteDialog().btnCancel()
.shouldNotBe(visible);
}

@Step("deletes Authentication certificate")
public void deleteAuthenticationCertificate() {
securityServerAuthCertificatesPageObj.getDeleteDialog().deleteButton()
securityServerAuthCertificatesPageObj.getDeleteDialog().btnDelete()
.shouldBe(visible, enabled)
.click();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ public void saveNewAddress() {
securityServerDetailsPageObj.editAddressDialog().btnSave().shouldBe(visible)
.shouldBe(Condition.enabled)
.click();
securityServerDetailsPageObj.editAddressDialog().dialog().shouldNotBe(visible);
securityServerDetailsPageObj.editAddressDialog().self().shouldNotBe(visible);

commonPageObj.snackBar.success().shouldBe(visible);
commonPageObj.snackBar.btnClose().click();
Expand All @@ -103,7 +103,7 @@ public void closeEditAddressDialog() {
securityServerDetailsPageObj.editAddressDialog().btnCancel().shouldBe(visible)
.shouldBe(Condition.enabled)
.click();
securityServerDetailsPageObj.editAddressDialog().dialog().shouldNotBe(visible);
securityServerDetailsPageObj.editAddressDialog().self().shouldNotBe(visible);
}

@Step("user opens delete security server dialog")
Expand Down Expand Up @@ -144,7 +144,7 @@ public void closeDeleteServerDialog() {
securityServerDetailsPageObj.deleteSecurityServerDialog().btnCancel().shouldBe(visible)
.shouldBe(Condition.enabled)
.click();
securityServerDetailsPageObj.deleteSecurityServerDialog().dialog().shouldNotBe(visible);
securityServerDetailsPageObj.deleteSecurityServerDialog().self().shouldNotBe(visible);
}
}

Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,7 @@ public void userIsAbleEditTheUrl(String newUrl) {
public void userIsAbleViewTheCertificate() {
ocspRespondersPageObj.addEditDialog.btnViewCertificate().click();
ocspRespondersPageObj.certificateView.certificateDetails().shouldBe(visible);
ocspRespondersPageObj.certificateView.btnClose().click();
commonPageObj.elevatedView.btnClose().click();
}

@Step("User is able change the certificate of OCSP responder with URL {}")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ public void newCertificationServiceIsAdded() throws Exception {
commonPageObj.dialog.btnSave().shouldBe(disabled);
trustServicesPageObj.addDialog.inputFile().uploadFile(CertificateUtils.getAsFile(certificate));
commonPageObj.dialog.btnSave().shouldBe(disabled);
commonPageObj.dialog.btnUpload().click();
trustServicesPageObj.addDialog.btnUpload().click();
commonPageObj.dialog.btnSave().shouldBe(disabled);
vTextField(trustServicesPageObj.addCaSettingsDialog.inputCertificateProfile())
.setValue(CERTIFICATE_PROFILE);
Expand Down Expand Up @@ -193,7 +193,7 @@ public void caSettingsAreShown() {
public void userCanChangeTheCertificateProfile() {
trustServicesPageObj.certServiceDetails.caSettings.btnEditCa().click();

vTextField(trustServicesPageObj.certServiceDetails.caSettings.inputCertProfile())
vTextField(trustServicesPageObj.certServiceDetails.editCaSettings.inputCertProfile())
.clear()
.setValue(NEW_CERTIFICATE_PROFILE);

Expand All @@ -208,7 +208,7 @@ public void userCanChangeTheCertificateProfile() {
@Step("user can change the TLS Auth setting")
public void userCanChangeTheTLSAuthSetting() {
trustServicesPageObj.certServiceDetails.caSettings.btnEditCa().click();
vCheckbox(trustServicesPageObj.certServiceDetails.caSettings.checkboxTlsAuth())
vCheckbox(trustServicesPageObj.certServiceDetails.editCaSettings.checkboxTlsAuth())
.click();
commonPageObj.dialog.btnSave().shouldBe(Condition.enabled).click();

Expand All @@ -226,16 +226,16 @@ public void userCanChangeTheAcmeSettings() {
String newIpAddress = "198.7.6.5";
String newAuthCertProfileId = "10";
String newSignCertProfileId = "11";
vTextField(trustServicesPageObj.certServiceDetails.caSettings.inputAcmeServerDirectoryUrl())
vTextField(trustServicesPageObj.certServiceDetails.editCaSettings.inputAcmeServerDirectoryUrl())
.clear()
.setValue(newDirectoryUrl);
vTextField(trustServicesPageObj.certServiceDetails.caSettings.inputAcmeServerIpAddress())
vTextField(trustServicesPageObj.certServiceDetails.editCaSettings.inputAcmeServerIpAddress())
.clear()
.setValue(newIpAddress);
vTextField(trustServicesPageObj.certServiceDetails.caSettings.inputAuthCertProfileId())
vTextField(trustServicesPageObj.certServiceDetails.editCaSettings.inputAuthCertProfileId())
.clear()
.setValue(newAuthCertProfileId);
vTextField(trustServicesPageObj.certServiceDetails.caSettings.inputSignCertProfileId())
vTextField(trustServicesPageObj.certServiceDetails.editCaSettings.inputSignCertProfileId())
.clear()
.setValue(newSignCertProfileId);

Expand All @@ -256,10 +256,10 @@ public void changedAcmeSettingsFieldsAreValidated() {

String newDirectoryUrl = "httpss://new-test-ca/acme";
String newIpAddress = "198.7.6.X";
vTextField(trustServicesPageObj.certServiceDetails.caSettings.inputAcmeServerDirectoryUrl())
vTextField(trustServicesPageObj.certServiceDetails.editCaSettings.inputAcmeServerDirectoryUrl())
.clear()
.setValue(newDirectoryUrl);
vTextField(trustServicesPageObj.certServiceDetails.caSettings.inputAcmeServerIpAddress())
vTextField(trustServicesPageObj.certServiceDetails.editCaSettings.inputAcmeServerIpAddress())
.clear()
.setValue(newIpAddress);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ public void userIsAbleViewTheCertificate() {
timestampingServicesPageObj.addEditDialog.btnViewCertificate().click();
timestampingServicesPageObj.certificateView.certificateDetails().shouldBe(visible);

timestampingServicesPageObj.certificateView.btnClose().click();
commonPageObj.elevatedView.btnClose().click();
timestampingServicesPageObj.tableLoading().should(appear);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,4 @@ public class CertificateViewPageObj {
public SelenideElement certificateDetails() {
return $x("//div[@data-test='xrd-certificate']");
}

public SelenideElement btnClose() {
return $x("//button[@data-test='close-x']");
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -27,26 +27,25 @@
package org.niis.xroad.cs.test.ui.page;

import com.codeborne.selenide.SelenideElement;
import org.niis.xroad.common.test.ui.page.AbstractCommonPageObj;

import static com.codeborne.selenide.Selenide.$x;

/**
* Common page objects which can be found in any page.
*/
@SuppressWarnings("InnerClassMayBeStatic")
public class CommonPageObj {
public final Dialog dialog = new Dialog();
public final Menu menu = new Menu();
public final SubMenu subMenu = new SubMenu();
public final SnackBar snackBar = new SnackBar();
public final Alerts alerts = new Alerts();
public final Button button = new Button();
public class CommonPageObj extends AbstractCommonPageObj<CommonPageObj.Menu, CommonPageObj.SubMenu> {

public CommonPageObj() {
super(new Menu(), new SubMenu());
}

public SelenideElement viewTitle(final String viewTitle) {
return $x(String.format("//div[@data-test='view-title-text' and text()='%s']", viewTitle));
}

public class Menu {
public static class Menu extends org.niis.xroad.common.test.ui.page.component.Menu {

public SelenideElement memberTab() {
return $x(getTabXpath("Members"));
Expand All @@ -68,26 +67,12 @@ public SelenideElement settingsTab() {
return $x(getTabXpath("Settings"));
}

public SelenideElement usernameButton() {
return $x("//div[@data-test='user-menu']");
}

public SelenideElement logout() {
return $x("//div[@data-test='logout-button']");
}

public SelenideElement securityServersTab() {
return $x(getTabXpath("Security Servers"));
}

private String getTabXpath(String tabName) {
var xpath = "//a[@data-test='main-navigation-item' "
+ "and .//div[@data-test='main-navigation-item-name' and contains(text(), '%s')]]";
return String.format(xpath, tabName);
}
}

public class SubMenu {
public static class SubMenu extends org.niis.xroad.common.test.ui.page.component.SubMenu {
public SelenideElement globalResourcesTab() {
return $x("//*[@data-test='globalresources-tab-button']");
}
Expand All @@ -109,62 +94,6 @@ public SelenideElement tlsCertificatesTab() {
}
}

public class Dialog {
public SelenideElement title() {
return $x("//button[@data-test='dialog-title']");
}

public SelenideElement btnCancel() {
return $x("//button[@data-test='dialog-cancel-button']");
}

public SelenideElement btnSave() {
return $x("//button[@data-test='dialog-save-button']");
}

public SelenideElement btnUpload() {
return $x("//button[@data-test='upload-file-btn']");
}

public SelenideElement btnConfirm() {
return $x("//button[@data-test='dialog-save-button']");
}

public SelenideElement btnDelete() {
return $x("//button[@data-test='dialog-save-button']");
}
}

public class SnackBar {
public SelenideElement success() {
return $x("//div[@data-test='success-snackbar']");
}

public SelenideElement btnClose() {
return $x("//button[@data-test='close-snackbar']");
}
}

public class Alerts {
public SelenideElement alert(final String text) {
return $x("//div[@data-test='contextual-alert']//p[contains(text(), '%s')]".formatted(text));
}

public SelenideElement btnClose() {
return $x("//div[@data-test='contextual-alert']//button[@data-test='close-alert']");
}
}

public class Button {
public SelenideElement btnApprove() {
return $x("//button[@data-test='approve-button']");
}

public SelenideElement btnDecline() {
return $x("//button[@data-test='decline-button']");
}
}

public SelenideElement inputFile() {
return $x("//input[@type='file']");
}
Expand Down
Loading
Loading