From 0f6df345ffb3564aa60e16b605fd1641a0da3d4a Mon Sep 17 00:00:00 2001 From: monhaso <sonali.mohanty@ext.ec.europa.eu> Date: Mon, 28 Feb 2022 09:35:28 +0100 Subject: [PATCH] 1) Key store page test cases added along with that some new tet cases added in DomainPg class. --- .../main/java/pages/domain/DomainGrid.java | 1 - .../main/java/pages/domain/DomainPage.java | 10 ++ .../pages/keystore/KeyStoreEditDialog.java | 50 +++++++++ .../java/pages/keystore/KeyStoreGrid.java | 106 ++++++++++++++++++ .../pages/keystore/KeyStoreImportDialog.java | 75 +++++++++++++ .../main/java/pages/keystore/KeyStoreRow.java | 45 ++++++++ .../main/java/utils/enums/SMPMessages.java | 4 +- .../resources/keystore/keystore_dummy1.jks | Bin 0 -> 2172 bytes .../src/test/java/ui/DomainPgTest.java | 84 ++++++++++++++ 9 files changed, 372 insertions(+), 3 deletions(-) create mode 100644 smp-ui-tests/src/main/java/pages/keystore/KeyStoreEditDialog.java create mode 100644 smp-ui-tests/src/main/java/pages/keystore/KeyStoreGrid.java create mode 100644 smp-ui-tests/src/main/java/pages/keystore/KeyStoreImportDialog.java create mode 100644 smp-ui-tests/src/main/java/pages/keystore/KeyStoreRow.java create mode 100644 smp-ui-tests/src/main/resources/keystore/keystore_dummy1.jks diff --git a/smp-ui-tests/src/main/java/pages/domain/DomainGrid.java b/smp-ui-tests/src/main/java/pages/domain/DomainGrid.java index ba6cd5178..41b7ec3d0 100644 --- a/smp-ui-tests/src/main/java/pages/domain/DomainGrid.java +++ b/smp-ui-tests/src/main/java/pages/domain/DomainGrid.java @@ -42,7 +42,6 @@ public class DomainGrid extends BasicGrid { } } - rowInfos.add(row); } diff --git a/smp-ui-tests/src/main/java/pages/domain/DomainPage.java b/smp-ui-tests/src/main/java/pages/domain/DomainPage.java index 58f3eab67..b1841b0f9 100644 --- a/smp-ui-tests/src/main/java/pages/domain/DomainPage.java +++ b/smp-ui-tests/src/main/java/pages/domain/DomainPage.java @@ -8,6 +8,7 @@ import org.openqa.selenium.support.pagefactory.AjaxElementLocatorFactory; import pages.components.ConfirmationDialog; import pages.components.baseComponents.PaginationControls; import pages.components.baseComponents.SMPPage; +import pages.keystore.KeyStoreEditDialog; import utils.PROPERTIES; public class DomainPage extends SMPPage { @@ -35,6 +36,9 @@ public class DomainPage extends SMPPage { @FindBy(id = "deleteButton") private WebElement deleteBtn; + @FindBy(xpath = "//span[text()=' Edit keystore']") + private WebElement editKeyStore; + public PaginationControls pagination = new PaginationControls(driver); @@ -97,6 +101,12 @@ public class DomainPage extends SMPPage { waitForElementToBeClickable(editBtn).click(); return new DomainPopup(driver); } + + public KeyStoreEditDialog clickEditKeyStore(){ + log.info("clicking edit keystore"); + waitForElementToBeClickable(editKeyStore).click(); + return new KeyStoreEditDialog(driver); + } public DomainGrid grid(){ diff --git a/smp-ui-tests/src/main/java/pages/keystore/KeyStoreEditDialog.java b/smp-ui-tests/src/main/java/pages/keystore/KeyStoreEditDialog.java new file mode 100644 index 000000000..a0ecc98ea --- /dev/null +++ b/smp-ui-tests/src/main/java/pages/keystore/KeyStoreEditDialog.java @@ -0,0 +1,50 @@ +package pages.keystore; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.interactions.Actions; +import org.openqa.selenium.support.FindBy; +import org.openqa.selenium.support.PageFactory; +import org.openqa.selenium.support.pagefactory.AjaxElementLocatorFactory; +import pages.components.baseComponents.PageComponent; +import pages.domain.DomainGrid; +import pages.domain.DomainPage; +import utils.PROPERTIES; + + +public class KeyStoreEditDialog extends PageComponent { + + public KeyStoreEditDialog(WebDriver driver){ + super(driver); + PageFactory.initElements( new AjaxElementLocatorFactory(driver, PROPERTIES.TIMEOUT), this); + + } + + @FindBy(css = "#keystoreTable_id") + private WebElement keystoreTable; + + @FindBy(xpath = "//span[text()='Import keystore']") + private WebElement importKeystore; + + @FindBy(css = "button[mat-dialog-close]") + private WebElement closeBtn; + + public KeyStoreImportDialog clickImportKeystore() + { + log.info("clicking import keystore"); + waitForElementToBeClickable(importKeystore).click(); + waitForElementToBeGone(importKeystore); + return new KeyStoreImportDialog(driver); + } + + public DomainPage clickCloseInKeystore(){ + log.info("clicking close btn in keystore edit dialog"); + waitForElementToBeClickable(closeBtn).click(); + waitForElementToBeGone(closeBtn); + return new DomainPage(driver); + } + + public KeyStoreGrid grid(){ + return new KeyStoreGrid(driver, keystoreTable); + } + +} diff --git a/smp-ui-tests/src/main/java/pages/keystore/KeyStoreGrid.java b/smp-ui-tests/src/main/java/pages/keystore/KeyStoreGrid.java new file mode 100644 index 000000000..b85ccdf59 --- /dev/null +++ b/smp-ui-tests/src/main/java/pages/keystore/KeyStoreGrid.java @@ -0,0 +1,106 @@ +package pages.keystore; + + +import org.openqa.selenium.By; +import org.openqa.selenium.JavascriptExecutor; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.interactions.Actions; +import org.openqa.selenium.support.FindBy; +import org.openqa.selenium.support.PageFactory; +import org.openqa.selenium.support.pagefactory.DefaultElementLocatorFactory; +import pages.components.ConfirmationDialog; +import pages.components.baseComponents.PageComponent; +import pages.components.grid.BasicGrid; +import pages.domain.DomainRow; + +import java.util.ArrayList; +import java.util.List; + +public class KeyStoreGrid extends PageComponent { + + public KeyStoreGrid(WebDriver driver, WebElement container) { + super(driver); + log.info("Loading KeyStoreGrid"); + waitForRowsToLoad(); + PageFactory.initElements(new DefaultElementLocatorFactory(container), this); + for (int i = 0; i < gridHeaders.size(); i++) { + headerTxt.add(gridHeaders.get(i).getText().trim()); + } + } + + @FindBy(css = "#keystoreTable_id datatable-header div.datatable-row-center datatable-header-cell") + protected List<WebElement> gridHeaders; + + @FindBy(css = "#keystoreTable_id datatable-body-row > div.datatable-row-center.datatable-row-group") + protected List<WebElement> gridRows; + + protected ArrayList<String> headerTxt = new ArrayList<String>(); + + private By cellSelector = By.cssSelector("#keystoreTable_id datatable-body-cell"); + +// public List<KeyStoreRow> getKeyStoreRowsInfo() { +// log.info("getting all the rows information"); +// List<KeyStoreRow> rowInfos = new ArrayList<>(); +// +// for (WebElement gridRow : gridRows) { +// List<WebElement> cells = gridRow.findElements(cellSelector); +// +// KeyStoreRow row = new KeyStoreRow(); +// +// for (int i = 0; i < headerTxt.size(); i++) { +// switch (headerTxt.get(i)) { +// case "Alias": +// row.setAlias(cells.get(i).getText().trim()); +// break; +// case "Certificate id": +// row.setCertificateId(cells.get(i).getText().trim()); +// break; +// } +// } +// rowInfos.add(row); +// } +// +// return rowInfos; +// } + + public void doubleClickRow(int rowNumber) { + log.info("double clicking row ... " + rowNumber); + waitForXMillis(500); + if (rowNumber >= gridRows.size()) { + return; + } + Actions action = new Actions(driver); + action.doubleClick(gridRows.get(rowNumber)).perform(); + } + + public int getColumnsNo() { + log.info("getting number of columns"); + return gridHeaders.size(); + } + + public int getRowsNo() { + return gridRows.size(); + } + + /*public boolean isKeyStoreCreated(int rowNum, String keyStoreName) { + WebElement gridRow = gridRows.get(rowNum); + List<WebElement> cells = gridRow.findElements(cellSelector); + for (int i = 0; i < headerTxt.size(); i++) { + if (headerTxt.get(i).equals("Alias")) { + if (cells.get(i).getText().trim().contains(keyStoreName)) { + return true; + } + } + } + return false; + }*/ + + public ConfirmationDialog deleteKeyStore(int rowNum) { + WebElement gridRow = gridRows.get(rowNum); + List<WebElement> cells = gridRow.findElements(cellSelector); + WebElement deleteButton = cells.get(2).findElement(By.cssSelector("button[mattooltip='Delete certificate']")); + waitForElementToBeClickable(deleteButton).click(); + return new ConfirmationDialog(driver); + } +} diff --git a/smp-ui-tests/src/main/java/pages/keystore/KeyStoreImportDialog.java b/smp-ui-tests/src/main/java/pages/keystore/KeyStoreImportDialog.java new file mode 100644 index 000000000..69be05c3b --- /dev/null +++ b/smp-ui-tests/src/main/java/pages/keystore/KeyStoreImportDialog.java @@ -0,0 +1,75 @@ +package pages.keystore; +import org.apache.log4j.Logger; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.interactions.Actions; +import org.openqa.selenium.support.FindBy; +import org.openqa.selenium.support.PageFactory; +import org.openqa.selenium.support.pagefactory.AjaxElementLocatorFactory; +import pages.components.baseComponents.PageComponent; +import utils.PROPERTIES; + +import java.awt.*; +import java.awt.datatransfer.StringSelection; +import java.awt.event.KeyEvent; +import java.io.File; +import java.net.URL; + +public class KeyStoreImportDialog extends PageComponent{ + protected Logger log = Logger.getLogger(this.getClass()); + public KeyStoreImportDialog(WebDriver driver) { + super(driver); + PageFactory.initElements(new AjaxElementLocatorFactory(driver, PROPERTIES.TIMEOUT), this); + } + @FindBy(xpath = "//span[text()='Import']") + private WebElement importBtn; + + @FindBy(css = "keystore-import-dialog button[mat-dialog-close]") + private WebElement cancelBtn; + + @FindBy(css = "button[mat-dialog-close]") + private WebElement closeBtn; + + @FindBy(css = "#keystore-file-upload") + private WebElement chooseKeystore; + + @FindBy(css = "#keystoreFilename") + private WebElement keyStoreFileInput; + + @FindBy(css = "#password_id") + private WebElement passwordInput; + + public KeyStoreEditDialog clickImportBtn() + { + log.info("clicking import btn "); + waitForElementToBeClickable(importBtn).click(); + waitForElementToBeGone(importBtn); + return new KeyStoreEditDialog(driver); + + } + public KeyStoreEditDialog clickCancelBtn(){ + log.info("clicking import keystore"); + waitForElementToBeClickable(cancelBtn).click(); + waitForElementToBeGone(cancelBtn); + return new KeyStoreEditDialog(driver); + } + + public KeyStoreEditDialog clickCloseBtn(){ + log.info("clicking close btn"); + waitForElementToBeClickable(closeBtn).click(); + waitForElementToBeGone(closeBtn); + return new KeyStoreEditDialog(driver); + } + public void chooseKeystoreFile() { + chooseKeystore.sendKeys(System.getProperty("user.dir")+"\\target\\classes\\keystore\\keystore_dummy1.jks"); + } + public void fillPassword(String password) + { + waitForElementToBeVisible(passwordInput).sendKeys(password); + } + + public String getKeyStoreFileName() { + return keyStoreFileInput.getAttribute("value"); + } +} + diff --git a/smp-ui-tests/src/main/java/pages/keystore/KeyStoreRow.java b/smp-ui-tests/src/main/java/pages/keystore/KeyStoreRow.java new file mode 100644 index 000000000..e828608db --- /dev/null +++ b/smp-ui-tests/src/main/java/pages/keystore/KeyStoreRow.java @@ -0,0 +1,45 @@ +package pages.keystore; + +import pages.domain.DomainRow; + +public class KeyStoreRow { + + private String alias; + + public void setAlias(String alias) { + this.alias = alias; + } + + public String getAlias() { + return alias; + } + + private String certificateId; + + public String getCertificateId() { + return certificateId; + } + + public void setCertificateId(String certificateId) { + this.certificateId = certificateId; + } + + @Override + public String toString() { + return "KeyStoreRow{" + + "alias='" + alias + '\'' + + ", certificateId='" + certificateId + '\'' + + '}'; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + + KeyStoreRow row = (KeyStoreRow) o; + + if (alias != null ? !alias.equals(row.alias) : row.alias != null) return false; + return certificateId != null ? certificateId.equals(row.certificateId) : row.certificateId == null; + } +} diff --git a/smp-ui-tests/src/main/java/utils/enums/SMPMessages.java b/smp-ui-tests/src/main/java/utils/enums/SMPMessages.java index 889c6b9ae..68fc52a3e 100644 --- a/smp-ui-tests/src/main/java/utils/enums/SMPMessages.java +++ b/smp-ui-tests/src/main/java/utils/enums/SMPMessages.java @@ -75,8 +75,8 @@ public class SMPMessages { public static final String PASS_NO_MATCH_MESSAGE = "Passwords do not match"; public static final String PASS_NO_EMPTY_MESSAGE = "You should type a password"; - - + public static final String KEYSTORE_IMPORTED_MSG = "Keystore keystore_dummy1.jks imported!"; + public static final String KEYSTORE_DELETION_MSG = "Certificate sample_key_dummy1 deleted!"; diff --git a/smp-ui-tests/src/main/resources/keystore/keystore_dummy1.jks b/smp-ui-tests/src/main/resources/keystore/keystore_dummy1.jks new file mode 100644 index 0000000000000000000000000000000000000000..1db3d26fb051cb0eba8d4e46b42f77fc3a5c9ca6 GIT binary patch literal 2172 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 literal 0 HcmV?d00001 diff --git a/smp-ui-tests/src/test/java/ui/DomainPgTest.java b/smp-ui-tests/src/test/java/ui/DomainPgTest.java index 312ed9950..fc95ef7d2 100644 --- a/smp-ui-tests/src/test/java/ui/DomainPgTest.java +++ b/smp-ui-tests/src/test/java/ui/DomainPgTest.java @@ -1,5 +1,6 @@ package ui; +import org.testng.Assert; import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; @@ -11,10 +12,13 @@ import pages.domain.DomainGrid; import pages.domain.DomainPage; import pages.domain.DomainPopup; import pages.domain.DomainRow; +import pages.keystore.KeyStoreEditDialog; +import pages.keystore.KeyStoreImportDialog; import utils.Generator; import utils.enums.SMPMessages; import utils.rest.SMPRestClient; +import java.awt.*; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -365,5 +369,85 @@ public class DomainPgTest extends BaseTest { soft.assertAll(); } + @Test(description = "DMN-90") + public void createKeyStore() { + SoftAssert soft = new SoftAssert(); + DomainPage page = new DomainPage(driver); + soft.assertTrue(page.isLoaded(), "Check that the page is loaded"); + String pass="test123"; + KeyStoreEditDialog keyStoreEdit = page.clickEditKeyStore(); + int keyStoreRowBeforeAddition = keyStoreEdit.grid().getRowsNo(); + KeyStoreImportDialog keyStoreImport = keyStoreEdit.clickImportKeystore(); + keyStoreImport.chooseKeystoreFile(); + Assert.assertEquals(keyStoreImport.getKeyStoreFileName(),"keystore_dummy1.jks","the keystore file name is not correct"); + //String keyStoreFileNameWithExt = keyStoreImport.getKeyStoreFileName(); + // String keyStoreFileName = keyStoreFileNameWithExt.substring(0,keyStoreFileNameWithExt.lastIndexOf(".")); + keyStoreImport.fillPassword(pass); + keyStoreImport.clickImportBtn(); + keyStoreEdit.clickCloseInKeystore(); + soft.assertFalse(page.alertArea.getAlertMessage().isError()); + keyStoreEdit = page.clickEditKeyStore(); + int keyStoreRowAfterAddition = keyStoreEdit.grid().getRowsNo(); + soft.assertEquals(keyStoreRowAfterAddition,keyStoreRowBeforeAddition+1, "KeyStore is not added to the grid"); +// soft.assertTrue(keyStoreEdit.grid().isKeyStoreCreated(keyStoreRowAfterAddition-1, keyStoreFileName),keyStoreFileName +" is not present in keystore grid"); + if(keyStoreRowAfterAddition > 1){ + keyStoreEdit.grid().deleteKeyStore(keyStoreRowAfterAddition-1).confirm(); + int keyStoreRowAfterDeletion = keyStoreEdit.grid().getRowsNo(); + soft.assertEquals(keyStoreRowAfterDeletion,keyStoreRowAfterAddition-1, "KeyStore is not delete from the grid"); + keyStoreEdit.clickCloseInKeystore(); + soft.assertFalse(page.alertArea.getAlertMessage().isError()); + } + soft.assertAll(); + } + + @Test(description = "DMN-110") + public void allowDuplicateKeyStore() { + SoftAssert soft = new SoftAssert(); + DomainPage page = new DomainPage(driver); + soft.assertTrue(page.isLoaded(), "Check that the page is loaded"); + String pass="test123"; + KeyStoreEditDialog keyStoreEdit = page.clickEditKeyStore(); + int keyStoreRowBeforeAddition = keyStoreEdit.grid().getRowsNo(); + KeyStoreImportDialog keyStoreImport = keyStoreEdit.clickImportKeystore(); + keyStoreImport.chooseKeystoreFile(); + Assert.assertEquals(keyStoreImport.getKeyStoreFileName(),"keystore_dummy1.jks","the keystore file name is not correct"); + //String keyStoreFileNameWithExt = keyStoreImport.getKeyStoreFileName(); + //String keyStoreFileName = keyStoreFileNameWithExt.substring(0,keyStoreFileNameWithExt.lastIndexOf(".")); + keyStoreImport.fillPassword(pass); + keyStoreImport.clickImportBtn(); + keyStoreEdit.clickCloseInKeystore(); + soft.assertFalse(page.alertArea.getAlertMessage().isError()); + keyStoreEdit = page.clickEditKeyStore(); + int keyStoreRowAfterAddition = keyStoreEdit.grid().getRowsNo(); + soft.assertEquals(keyStoreRowAfterAddition,keyStoreRowBeforeAddition+1, "KeyStore is not added to the grid"); + keyStoreRowBeforeAddition = keyStoreRowAfterAddition; + keyStoreImport = keyStoreEdit.clickImportKeystore(); + keyStoreImport.chooseKeystoreFile(); + Assert.assertEquals(keyStoreImport.getKeyStoreFileName(),"keystore_dummy1.jks","the keystore file name is not correct"); + //String keyStoreFileNameWithExt = keyStoreImport.getKeyStoreFileName(); + //String keyStoreFileName = keyStoreFileNameWithExt.substring(0,keyStoreFileNameWithExt.lastIndexOf(".")); + keyStoreImport.fillPassword(pass); + keyStoreImport.clickImportBtn(); + keyStoreEdit.clickCloseInKeystore(); + soft.assertFalse(page.alertArea.getAlertMessage().isError()); + keyStoreEdit = page.clickEditKeyStore(); + keyStoreRowAfterAddition = keyStoreEdit.grid().getRowsNo(); + soft.assertEquals(keyStoreRowAfterAddition,keyStoreRowBeforeAddition+1, "KeyStore is not added to the grid"); + if(keyStoreRowAfterAddition > 1){ + keyStoreEdit.grid().deleteKeyStore(keyStoreRowAfterAddition-1).confirm(); + int keyStoreRowAfterDeletion = keyStoreEdit.grid().getRowsNo(); + soft.assertEquals(keyStoreRowAfterDeletion,keyStoreRowAfterAddition-1, "KeyStore is not delete from the grid"); + keyStoreRowAfterAddition = keyStoreRowAfterDeletion; + } + if(keyStoreRowAfterAddition > 1){ + keyStoreEdit.grid().deleteKeyStore(keyStoreRowAfterAddition-1).confirm(); + int keyStoreRowAfterDeletion = keyStoreEdit.grid().getRowsNo(); + soft.assertEquals(keyStoreRowAfterDeletion,keyStoreRowAfterAddition-1, "KeyStore is not delete from the grid"); + keyStoreEdit.clickCloseInKeystore(); + soft.assertFalse(page.alertArea.getAlertMessage().isError()); + } + soft.assertAll(); + } + } -- GitLab