Skip to content

Commit

Permalink
merge with branch 9246 for common methods needed
Browse files Browse the repository at this point in the history
  • Loading branch information
Gabriiii99 committed Apr 18, 2024
2 parents f39e890 + 265fb2f commit ab8d2eb
Show file tree
Hide file tree
Showing 22 changed files with 426 additions and 42 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -352,10 +352,10 @@ public String waitLoadPopUpElimina() {
By titlePopUp = By.id("dialog-title");
By subTitlePopUp = By.id("dialog-description");
By confermaEliminaButtonBy = By.xpath("//div[@aria-labelledby='dialog-title']//button[contains(text(),'Conferma')]");
this.getWebDriverWait(10).withMessage("Non è stato caricato il titolo del modal").until(ExpectedConditions.visibilityOfElementLocated(titlePopUp));
this.getWebDriverWait(10).withMessage("Non è stato caricato il sottotitolo del modal").until(ExpectedConditions.visibilityOfElementLocated(subTitlePopUp));
this.getWebDriverWait(10).withMessage("Non è stato caricato il bottone annulla del modal").until(ExpectedConditions.visibilityOf(buttonAnnullaEliminazioneInPopUp));
this.getWebDriverWait(10).withMessage("Non è stato caricato il bottone conferma del modal").until(ExpectedConditions.visibilityOfElementLocated(confermaEliminaButtonBy));
getWebDriverWait(10).withMessage("Non è stato caricato il titolo del modal").until(ExpectedConditions.visibilityOfElementLocated(titlePopUp));
getWebDriverWait(10).withMessage("Non è stato caricato il sottotitolo del modal").until(ExpectedConditions.visibilityOfElementLocated(subTitlePopUp));
getWebDriverWait(10).withMessage("Non è stato caricato il bottone annulla del modal").until(ExpectedConditions.visibilityOf(buttonAnnullaEliminazioneInPopUp));
getWebDriverWait(10).withMessage("Non è stato caricato il bottone conferma del modal").until(ExpectedConditions.visibilityOfElementLocated(confermaEliminaButtonBy));
return this.element(titlePopUp).getText();
}

Expand All @@ -369,6 +369,16 @@ public boolean siControllaEliminazionePEC() {
return pecField.isDisplayed();
}

public boolean checkFieldInputPEC(){
try {
getWebDriverWait(10).until(ExpectedConditions.visibilityOf(pecField));
return true;
} catch (TimeoutException e){
logger.info("Non si visualizza il campo input per inserimento della PEC");
return false;
}
}

public boolean siControllaPresenzaPEC() {
return pecEmail.isDisplayed();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,12 @@ public void eliminaEmailEsistente() {
this.js().executeScript("arguments[0].click();", this.element(eliminaMailButton));
}

public void eliminaPECEsistente() {
By eliminaPECAssociataButton = By.xpath("//div[@data-testid='legalContacts']//button[@id='cancelContact-default']");
this.getWebDriverWait(10).withMessage("il Bottone elimina PEC associata non è presente").until(ExpectedConditions.elementToBeClickable(eliminaPECAssociataButton));
this.js().executeScript("arguments[0].click();", this.element(eliminaPECAssociataButton));
}

public void insertEmail(String emailPEC) {
By inserimentoEmailFieldBy = By.id("email");
getWebDriverWait(10).withMessage("input pec field non trovato").until(ExpectedConditions.visibilityOfElementLocated(inserimentoEmailFieldBy));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ public class DeleghePGPagoPAPage extends BasePage {
@FindBy(id = "delegatesBodyRowDesktop")
List<WebElement> nomeDelegato;

@FindBy(xpath = "//div[@data-testid='emptyState']")
@FindBy(xpath = "//div[@data-testid='delegationsOfTheCompany']")
WebElement tabellaVuotaDelegheACaricoDellImpresa;

@FindBy(id = "notifications-table")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,9 @@ public RicercaNotifichePGPage(WebDriver driver) {
public void clickNotificheImpresa() {
try {
By notificheImpresaButton = By.xpath("//div[@data-testid=\"sideMenuItem-Notifiche dell'impresa\"]");
getWebDriverWait(30).until(ExpectedConditions.visibilityOfElementLocated(notificheImpresaButton));
getWebDriverWait(10).until(ExpectedConditions.visibilityOfElementLocated(notificheImpresaButton));
logger.info("Si clicca sulla voce notifiche dell'impresa");
this.element(notificheImpresaButton).click();
} catch (Exception e) {
logger.error("Non si clicca sulla voce notifiche dell'impresa con errore:" + e.getMessage());
Assert.fail("Non si clicca sulla voce notifiche dell'impresa con errore:" + e.getMessage());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,12 @@ public DisserviziAppPAPage(WebDriver driver) {
List<WebElement> statusList;


@FindBy(css = "[data-testid='download-legal-fact']")
List<WebElement> attestazioniFile;

@FindBy(xpath = "//span[contains(text(), 'Risolto')]")
List<WebElement> stato;

public void waitLoadStatoDellaPiattaformaPage() {
try {
By disserviziPageTitle = By.id("Stato della piattaforma-page");
Expand Down Expand Up @@ -153,4 +159,45 @@ public void checkDisserviziDisponibili() {
Assert.fail("Non si visualizza un record in elenco relativo ad un disservizio disponibile");
}
}
public void checkDisserviziRisolto() {
try {
aggiornamentoPagina();
List<WebElement> disserviziTableRow = driver.findElements(By.cssSelector("[aria-rowindex='1']"));
if (!disserviziTableRow.isEmpty()) {
for (WebElement disserviziRow : disserviziTableRow) {
List<WebElement> disserviziColumns = disserviziRow.findElements(By.xpath("//td[@data-testid='tableDowntimeLog.row.cell']"));
if (!disserviziColumns.isEmpty()) {
// check if the columns are not empty
for (WebElement disserviziColumn : disserviziColumns) {
if (disserviziColumn.getText().contains(",")) {
logger.info("Si visualizza data di inizio e data di fine'");
}

if (attestazioniFile.get(0).isDisplayed()) {
logger.info("Si visualizza bottone scarica l'attestazione'");
}
if (stato.get(0).isDisplayed()) {
logger.info("Si visualizza un record in elenco relativo ad un disservizio Risolto");
return;
}
}
}
}
}
logger.error("Non si visualizza un record in elenco relativo ad un disservizio ancora in corso");
Assert.fail("Non si visualizza un record in elenco relativo ad un disservizio ancora in corso");
} catch (TimeoutException e) {
logger.error("Non si visualizza un record in elenco relativo ad un disservizio ancora in corso con errore:" + e.getMessage());
Assert.fail("Non si visualizza un record in elenco relativo ad un disservizio ancora in corso con errore" + e.getMessage());
}
}

public void clickLinkAttestazioniOpponibileDisservizi(int numeroLinkAttestazioniOpponibile) {
if (attestazioniFile.get(numeroLinkAttestazioniOpponibile).isDisplayed()) {
attestazioniFile.get(numeroLinkAttestazioniOpponibile).click();
} else {
this.js().executeScript("arguments[0].scrollIntoView(true);", attestazioniFile.get(numeroLinkAttestazioniOpponibile));
attestazioniFile.get(numeroLinkAttestazioniOpponibile).click();
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ public NewNotificationResponse newNotificationWithOneRecipientAndDocument(NewNot

public String getNotificationStatus(String notificationRequestId) {
final CustomHttpClient<Object, Object> httpClient2 = CustomHttpClient.getInstance(); // Modifica qui
httpClient2.setBaseUrlApi("https://api.test.notifichedigitali.it");
try {
Object response = httpClient2.sendHttpGetRequest("/delivery/v2.3/requests?notificationRequestId=" + notificationRequestId, null, Object.class);
if (response instanceof LinkedTreeMap) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ public void selezionaProfiloUtenteMenu() {

public void selezionaVoceEsci() {
WebElement esciVoce = this.menuProfileItems.get(1);
this.getWebDriverWait(10).withMessage("la voce esci non è visibile").until(ExpectedConditions.visibilityOf(esciVoce));
this.getWebDriverWait(30).withMessage("la voce esci non è visibile").until(ExpectedConditions.visibilityOf(esciVoce));
logger.info("click su voce esci");
esciVoce.click();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -263,7 +263,18 @@ public String getTextDocumentiAllegati() {
return linkAllegati.get(0).getText();
}

public void checkDoppioFallimentoInvioViaPEC(int numeroFallimenti) {
public void checkInvioADomicilioDiPiattaforma(String domicilioDiPiattaforma) {
try {
By invioDomicilioSpecialeBy = By.xpath("//div[contains(span/text(), 'Invio via PEC riuscito') and (//div[contains(p/text(), '" + domicilioDiPiattaforma + "')])]");
getWebDriverWait(10).withMessage("Non si visualizza l'invio della notifica al domicilio speciale nella timeline").until(ExpectedConditions.visibilityOfElementLocated(invioDomicilioSpecialeBy));
} catch (TimeoutException e) {
logger.error("L'invio della notifica al domicilio speciale indicato non viene effettuato con errore: " + e.getMessage());
Assert.fail("L'invio della notifica al domicilio speciale indicato non viene effettuato con errore: " + e.getMessage());
}

}

public void checkDoppioFallimentoInvioViaPEC(int numeroFallimenti){
try {
By invioPECFallitoBy = By.xpath("//span[text()='Invio via PEC fallito']");
List<WebElement> invioPECFallitoList = driver.findElements(invioPECFallitoBy);
Expand Down
95 changes: 95 additions & 0 deletions src/main/java/it/pn/frontend/e2e/utility/DownloadFile.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,11 @@
import com.google.common.base.CharMatcher;
import com.google.common.base.Splitter;
import it.pn.frontend.e2e.common.BasePage;
import it.pn.frontend.e2e.listeners.Hooks;
import it.pn.frontend.e2e.listeners.NetWorkInfo;
import org.apache.commons.io.FileUtils;
import org.json.JSONArray;
import org.json.JSONObject;
import org.junit.Assert;
import org.openqa.selenium.WebDriver;
import org.slf4j.Logger;
Expand Down Expand Up @@ -35,6 +38,8 @@ public void download(String urlLink, File fileLoc, boolean healdess) {
HttpURLConnection http = (HttpURLConnection)url.openConnection();
double filesize = (double)http.getContentLengthLong();

http.setRequestProperty("Authorization", getBearerSessionToken());

BufferedInputStream input = new BufferedInputStream(http.getInputStream());
FileOutputStream ouputfile = new FileOutputStream(fileLoc);
BufferedOutputStream bufferOut = new BufferedOutputStream(ouputfile, 1024);
Expand Down Expand Up @@ -68,6 +73,55 @@ public void download(String urlLink, File fileLoc, boolean healdess) {
}
}


public void downloadAttestazioneDisservizi(String urlLink, File fileLoc, boolean headless) throws IOException {
if (headless) {
try {
byte[] buffer = new byte[1024];
double totalDownload = 0.00;
int readBytes; // Stores the number of bytes read in each iteration.
double percentOfDownload = 0.00;

URL url = new URL(urlLink);
HttpURLConnection http = (HttpURLConnection) url.openConnection();
http.setRequestProperty("Authorization", getBearerSessionToken());
double fileSize = (double) http.getContentLengthLong();

BufferedInputStream input = new BufferedInputStream(http.getInputStream());
FileOutputStream output = new FileOutputStream(fileLoc);
BufferedOutputStream bufferOut = new BufferedOutputStream(output, 1024);

while ((readBytes = input.read(buffer, 0, 1024)) >= 0) {
// Writing the content onto the file.
bufferOut.write(buffer, 0, readBytes);
// TotalDownload is the total bytes written onto the file.
totalDownload += readBytes;
// Calculating the percentage of download.
percentOfDownload = (totalDownload * 100) / fileSize;
// Formatting the percentage up to 2 decimal points.
String percent = String.format("%.2f", percentOfDownload);
System.out.println("Downloaded " + percent + "%");
}

System.out.println("Your download is now complete.");

// Closing streams
bufferOut.close();
input.close();
} catch (IOException e) {
e.printStackTrace();
}
} else {
try {
URL url = new URL(urlLink);
FileUtils.copyURLToFile(url, fileLoc, 1000, 1000);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}


public void controlloDownload(String path, int numberOfFile){
File directory = new File(path);

Expand Down Expand Up @@ -122,4 +176,45 @@ public String getUrl(String urlChiamata) {
}
return url;
}

public String getLegalFactId() {
try {
URL url = new URL("https://webapi.test.notifichedigitali.it/downtime/v1/history?fromTime=1900-01-01T00%3A00%3A00Z&toTime=2024-03-28T10%3A38%3A50.251Z&functionality=NOTIFICATION_CREATE&functionality=NOTIFICATION_VISUALIZATION&functionality=NOTIFICATION_WORKFLOW&page=0&size=10");
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestMethod("GET");
con.setRequestProperty("Content-Type", "application/json");
con.setRequestProperty("Authorization", getBearerSessionToken() );

BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();

JSONObject jsonResponse = new JSONObject(response.toString());
JSONArray resultArray = jsonResponse.getJSONArray("result");
if (!resultArray.isEmpty()) {
JSONObject firstResult = resultArray.getJSONObject(0);
return firstResult.getString("legalFactId");
}
} catch (Exception e) {
throw new RuntimeException("Failed to fetch legalFactId",e);
}
return null;
}

private String getBearerSessionToken() {
List<NetWorkInfo> netWorkInfos = Hooks.netWorkInfos;
String bearerToken = "";
for (NetWorkInfo netWorkInfo : netWorkInfos) {
String variabileAmbiente = System.getProperty("environment");
String urlChiamata = "https://webapi." + variabileAmbiente + ".notifichedigitali.it/delivery/notifications/received?";
if (netWorkInfo.getRequestUrl().contains(urlChiamata)) {
bearerToken = netWorkInfo.getAuthorizationBearer();
}
}
return bearerToken;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -261,4 +261,12 @@ public void aggiuntaEmailDiCortesia(String email) {
recapitiPersonaFisicaTest.nellaPaginaITuoiRecapitiSiRecuperaIlCodiceOTPTramiteChiamataRequestDellEmailEVieneInserito(email);
recapitiTest.siControllaCheLEmailInseritaSiaPresente();
}

public void aggiuntaPEC(String emailPEC){
recapitiPersonaFisicaTest.nellaPaginaITuoiRecapitiSiControllaCheNonCiSiaGiaUnaPec();
recapitiPersonaFisicaTest.nellaPaginaITuoiRecapitiSiInserisceLEmailPerLaPECDelDestinatario(emailPEC);
recapitiPersonaFisicaTest.nellaPaginaITuoiRecapitiSiCliccaSulBottoneConferma();
recapitiPersonaFisicaTest.nellaPaginaITuoiRecapitiSiVisualizzaCorrettamenteIlPopUpDiInserimentoOTP();
recapitiPersonaFisicaTest.nellaPaginaITuoiRecapitiSiRecuperaIlCodiceOTPTramiteChiamataRequestDellEmailEVieneInserito(emailPEC);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -56,9 +56,9 @@ public void nellaPaginITuoiRecapitiSiControllaCheIlNumeroDiCellulareNonSiaPresen
recapitiDestinatarioPage.checkNumeroDiCellulareNonPresente();
}

@And("Nella pagina I Tuoi Recapiti si controlla che ci sia già una Email o si inserisce {string}")
public void nellaPaginaITuoiRecapitiSiControllaCheCiSiaGiaUnaEmailOSiInserisce(String email) {
logger.info("Si controlla che che ci sia già una Email e se ne inserisce una");
@And("Nella pagina I Tuoi Recapiti si controlla che non ci sia già una Email di cortesia e si inserisce {string}")
public void nellaPaginaITuoiRecapitiSiControllaCheNonCiSiaGiaUnaEmailDiCortesiaESiInserisce(String email) {
logger.info("Si controlla che ci sia già una Email di cortesia e se ne inserisce una");
ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(this.driver);
BackgroundTest backgroundTest = new BackgroundTest();
iTuoiRecapitiPage.waitLoadITuoiRecapitiPage();
Expand All @@ -80,6 +80,30 @@ public void nellaPaginaITuoiRecapitiSiControllaCheCiSiaGiaUnaEmailOSiInserisce(S
WebTool.waitTime(10);
}

@And("Nella pagina I Tuoi Recapiti si controlla che non ci sia già una PEC e si inserisce {string}")
public void nellaPaginaITuoiRecapitiSiControllaCheCiSiaGiaUnaPECESiInserisce(String emailPEC) {
logger.info("Si controlla che non ci sia già una PEC e se ne inserisce una");
ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(this.driver);
BackgroundTest backgroundTest = new BackgroundTest();
iTuoiRecapitiPage.waitLoadITuoiRecapitiPage();
if (recapitiDestinatarioPage.checkFieldInputPEC()) {
backgroundTest.aggiuntaPEC(emailPEC);
} else if (recapitiDestinatarioPage.siControllaPresenzaPEC()) {
iTuoiRecapitiPage.eliminaPECEsistente();
if (recapitiDestinatarioPage.waitLoadPopUpElimina().equalsIgnoreCase("Rimuovi PEC")) {
recapitiDestinatarioPage.clickConfermaButtonEliminaPopUp();
} else {
recapitiDestinatarioPage.clickSuChiudiPopUp();
recapitiDestinatarioPage.eliminaNuovaEmail();
iTuoiRecapitiPage.eliminaPECEsistente();
recapitiDestinatarioPage.waitLoadPopUpElimina();
recapitiDestinatarioPage.clickConfermaButtonEliminaPopUp();
}
backgroundTest.aggiuntaPEC(emailPEC);
}
WebTool.waitTime(10);
}

@Then("Si visualizza il campo email modificabile")
public void siVisualizzaIlCampoEmailModificabile() {
logger.info("Si visualizza il campo email modificabile");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,12 @@ public void siVisualizzaLElencoDelleNotificheRelativeAlDelegante() {
notifichePFPage.siVisualizzaElencoNotifiche();
}

@And("Si visualizza l elenco delle notifiche dell impresa")
public void siVisualizzaLElencoDelleNotificheDellImpresa() {
NotifichePFPage notifichePFPage = new NotifichePFPage(this.driver);
notifichePFPage.siVisualizzaElencoNotifiche();
}

@And("Si seleziona il nome del delegante nell elenco")
public void siSelezionaIlNomeDelDeleganteNellElenco() {
NotifichePFPage notifichePFPage = new NotifichePFPage(this.driver);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,12 @@ public void nellaPaginaITuoiRecapitiSiInserisceLaPECDelDestinatario(String dpFil
recapitiDestinatarioPage.insertEmailPEC(emailPEC);
}

@And("Nella pagina I Tuoi Recapiti si inserisce l'email {string} per la PEC del destinatario")
public void nellaPaginaITuoiRecapitiSiInserisceLEmailPerLaPECDelDestinatario(String emailPEC) {
logger.info("Si inserisce la email PEC");
recapitiDestinatarioPage.insertEmailPEC(emailPEC);
}

@And("Nella pagina I Tuoi Recapiti si inserisce l'indirizzo della PEC {string}")
public void nellaPaginaITuoiRecapitiSiInserisceLIndirizzoDellaPECDelDestinatario(String emailPEC) {
logger.info("Si inserisce la email PEC");
Expand Down
Loading

0 comments on commit ab8d2eb

Please sign in to comment.