From 250578642849e62b8a25e7ec4f7ede62b494c941 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Mon, 7 Oct 2024 15:41:18 +0200 Subject: [PATCH 001/212] Remove Test Suite FE Destinatario irreperibile --- .../invioNotificaMonoPFNormalizzazioneKOLovelace.feature | 2 +- .../invioNotificaMonoPGDomicilioDigitaleKO.feature | 2 +- .../1_invioNotifiche/invioNotificaPrimoTentativo.feature | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/test/resources/feature/2-mittente/1_invioNotifiche/invioNotificaMonoPFNormalizzazioneKOLovelace.feature b/src/test/resources/feature/2-mittente/1_invioNotifiche/invioNotificaMonoPFNormalizzazioneKOLovelace.feature index 91a8cc59b..366b39263 100644 --- a/src/test/resources/feature/2-mittente/1_invioNotifiche/invioNotificaMonoPFNormalizzazioneKOLovelace.feature +++ b/src/test/resources/feature/2-mittente/1_invioNotifiche/invioNotificaMonoPFNormalizzazioneKOLovelace.feature @@ -1,6 +1,6 @@ Feature: Mittente genera una notifica che non prevede pagamento - @TestSuite + @Parallel @TA_InvioNotificaMonoPFNormalizzazioneKOLovelace @mittente @invioNotifiche diff --git a/src/test/resources/feature/2-mittente/1_invioNotifiche/invioNotificaMonoPGDomicilioDigitaleKO.feature b/src/test/resources/feature/2-mittente/1_invioNotifiche/invioNotificaMonoPGDomicilioDigitaleKO.feature index ce3b85b87..954bd9584 100644 --- a/src/test/resources/feature/2-mittente/1_invioNotifiche/invioNotificaMonoPGDomicilioDigitaleKO.feature +++ b/src/test/resources/feature/2-mittente/1_invioNotifiche/invioNotificaMonoPGDomicilioDigitaleKO.feature @@ -1,6 +1,6 @@ Feature: Mittente genera una notifica che non prevede pagamento - @TestSuite + @Parallel @TA_InvioNotificaMonoPGDomiccilioDigitaleKO @mittente @invioNotifiche diff --git a/src/test/resources/feature/2-mittente/1_invioNotifiche/invioNotificaPrimoTentativo.feature b/src/test/resources/feature/2-mittente/1_invioNotifiche/invioNotificaPrimoTentativo.feature index 02118ae36..93103e122 100644 --- a/src/test/resources/feature/2-mittente/1_invioNotifiche/invioNotificaPrimoTentativo.feature +++ b/src/test/resources/feature/2-mittente/1_invioNotifiche/invioNotificaPrimoTentativo.feature @@ -1,6 +1,6 @@ Feature: Mittente genera una notifica che non prevede pagamento -@parallel + @Parallel @TA_InviaNotificaConDestinatarioReperibileAlPrimoInvio Scenario: [TA-FE MITTENTE CREA NOTIFICA CON PAGAMENTO] - Mittente invia una notifica a destinatario disponibile al primo invio Given PA - Si effettua la login tramite token exchange, e viene visualizzata la dashboard From 323f6ffb50e6fcf1e4f1a36848547e0e65fb7b85 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Mon, 7 Oct 2024 16:35:04 +0200 Subject: [PATCH 002/212] fix test TA_loginpersonaFisica --- .../destinatario/personaFisica/HeaderPFSection.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/HeaderPFSection.java b/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/HeaderPFSection.java index 7d3809e03..4378be383 100644 --- a/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/HeaderPFSection.java +++ b/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/HeaderPFSection.java @@ -2,6 +2,7 @@ import it.pn.frontend.e2e.common.BasePage; import org.junit.Assert; +import org.openqa.selenium.By; import org.openqa.selenium.TimeoutException; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; @@ -31,8 +32,10 @@ public HeaderPFSection(WebDriver driver) { public void waitLoadHeaderDESection() { try { - this.getWebDriverWait(30).withMessage("il titolo del header non è visibile").until(ExpectedConditions.visibilityOf(titleLabel)); - this.getWebDriverWait(30).withMessage("menu dell'utente non è visibile").until(ExpectedConditions.visibilityOf(buttonProfile)); + titleLabel = driver.findElement(By.xpath("//a[@title='Sito di PagoPA S.p.A.']")); + buttonProfile = driver.findElement(By.xpath("//button[@aria-label='party-menu-button']")); + getWebDriverWait(30).withMessage("il titolo del header non è visibile").until(ExpectedConditions.visibilityOf(titleLabel)); + getWebDriverWait(30).withMessage("menu dell'utente non è visibile").until(ExpectedConditions.visibilityOf(buttonProfile)); logger.info("Header DE Section caricata"); } catch (TimeoutException e) { logger.error("Header DE Section non caricata con errore : " + e.getMessage()); From 439d63667687372dda863d19818606fbffc5e83a Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Tue, 8 Oct 2024 10:09:45 +0200 Subject: [PATCH 003/212] ADD log --- src/main/java/it/pn/frontend/e2e/rest/RestContact.java | 6 ++++++ .../personaFisica/LoginPersonaFisicaPagoPA.java | 1 + 2 files changed, 7 insertions(+) diff --git a/src/main/java/it/pn/frontend/e2e/rest/RestContact.java b/src/main/java/it/pn/frontend/e2e/rest/RestContact.java index fe05a160e..42f5bb3a4 100644 --- a/src/main/java/it/pn/frontend/e2e/rest/RestContact.java +++ b/src/main/java/it/pn/frontend/e2e/rest/RestContact.java @@ -32,6 +32,7 @@ public RestContact() { this.httpClient.setBaseUrlApi("https://webapi." + env + ".notifichedigitali.it"); if (token != null) { + logger.info("TOKEN: "+token); this.headers.put("Authorization", token); } else { logger.warn("Auth token non trovato, impossibile fare la richiesta HTTP in background!"); @@ -47,6 +48,7 @@ public void removeDigitalAddressCourtesyEmail() throws RestContactException { String url = "https://webapi." + env + ".notifichedigitali.it/address-book/v1/digital-address/courtesy/default/EMAIL"; String response = ""; try { + logger.info("TOKEN courtesy: "+headers.get("Authorization")); response = httpClient.sendHttpDeleteRequest(url, this.headers, String.class); logger.info("Risposta ricevuta: " + response); logger.info("Indirizzo digitale di cortesia rimosso con successo"); @@ -65,6 +67,7 @@ public void removeDigitalAddressLegalPec() throws RestContactException { String url = "https://webapi." + env + ".notifichedigitali.it/bff/v1/addresses/LEGAL/default/PEC"; String response = ""; try { + logger.info("TOKEN legal: "+headers.get("Authorization")); response = httpClient.sendHttpDeleteRequest(url, this.headers, String.class); logger.info("Risposta ricevuta: " + response); logger.info("Indirizzo digitale di cortesia rimosso con successo"); @@ -87,6 +90,7 @@ public void removeSpecialContact(DigitalAddress digitalAddress) throws RestDeleg + addressType + "/" + digitalAddress.getSenderId() + "/" + channelType; String response = ""; try { + logger.info("TOKEN special: "+headers.get("Authorization")); response = httpClient.sendHttpDeleteRequest(url, this.headers, String.class); logger.info("Risposta ricevuta: " + response); logger.info("Indirizzo digitale di 'altri recapiti' rimosso con successo"); @@ -101,6 +105,7 @@ public DigitalAddressResponse getDigitalAddress() throws RestContactException { httpClientDigitalAddress.setBaseUrlApi("https://webapi." + env + ".notifichedigitali.it"); String url = "/bff/v1/addresses/LEGAL/default/PEC"; try { + logger.info("TOKEN getDigitalAddress: "+headers.get("Authorization")); DigitalAddressResponse response = httpClientDigitalAddress.sendHttpGetRequest(url, this.headers, DigitalAddressResponse.class); logger.info("Risposta ricevuta: " + response); logger.info("Indirizzi digitali ricevuti con successo"); @@ -119,6 +124,7 @@ public List getAllDigitalAddress() throws RestContactException { String url = "/bff/v1/addresses"; try { + logger.info("TOKEN getDigitalAddressList: "+headers.get("Authorization")); List response = httpClientDigitalAddress.sendHttpGetRequestListDigitalAddress(url, this.headers, DigitalAddress.class); logger.info("Risposta ricevuta: " + response); diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java index 3f4ab1040..429fd843f 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java @@ -79,6 +79,7 @@ public void loginMittenteConTokenExchange(String personaFisica) { // Si effettua il login con token exchange String urlLogin = "https://cittadini." + environment + ".notifichedigitali.it/#token=" + token; this.driver.get(urlLogin); + logger.info("LOGIN: "+urlLogin); logger.info("Login effettuato con successo"); WebTool.waitTime(10); From fc0897c7b2e74280d05094f8e61a03601736bfeb Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Tue, 8 Oct 2024 10:44:19 +0200 Subject: [PATCH 004/212] Remove Log --- src/main/java/it/pn/frontend/e2e/rest/RestContact.java | 6 ------ .../annullamentoNotificaConControlloSuRecapiti.feature | 2 +- .../invioNotificaDigitaleADomicilio.feature | 10 +++++----- 3 files changed, 6 insertions(+), 12 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/rest/RestContact.java b/src/main/java/it/pn/frontend/e2e/rest/RestContact.java index 42f5bb3a4..fe05a160e 100644 --- a/src/main/java/it/pn/frontend/e2e/rest/RestContact.java +++ b/src/main/java/it/pn/frontend/e2e/rest/RestContact.java @@ -32,7 +32,6 @@ public RestContact() { this.httpClient.setBaseUrlApi("https://webapi." + env + ".notifichedigitali.it"); if (token != null) { - logger.info("TOKEN: "+token); this.headers.put("Authorization", token); } else { logger.warn("Auth token non trovato, impossibile fare la richiesta HTTP in background!"); @@ -48,7 +47,6 @@ public void removeDigitalAddressCourtesyEmail() throws RestContactException { String url = "https://webapi." + env + ".notifichedigitali.it/address-book/v1/digital-address/courtesy/default/EMAIL"; String response = ""; try { - logger.info("TOKEN courtesy: "+headers.get("Authorization")); response = httpClient.sendHttpDeleteRequest(url, this.headers, String.class); logger.info("Risposta ricevuta: " + response); logger.info("Indirizzo digitale di cortesia rimosso con successo"); @@ -67,7 +65,6 @@ public void removeDigitalAddressLegalPec() throws RestContactException { String url = "https://webapi." + env + ".notifichedigitali.it/bff/v1/addresses/LEGAL/default/PEC"; String response = ""; try { - logger.info("TOKEN legal: "+headers.get("Authorization")); response = httpClient.sendHttpDeleteRequest(url, this.headers, String.class); logger.info("Risposta ricevuta: " + response); logger.info("Indirizzo digitale di cortesia rimosso con successo"); @@ -90,7 +87,6 @@ public void removeSpecialContact(DigitalAddress digitalAddress) throws RestDeleg + addressType + "/" + digitalAddress.getSenderId() + "/" + channelType; String response = ""; try { - logger.info("TOKEN special: "+headers.get("Authorization")); response = httpClient.sendHttpDeleteRequest(url, this.headers, String.class); logger.info("Risposta ricevuta: " + response); logger.info("Indirizzo digitale di 'altri recapiti' rimosso con successo"); @@ -105,7 +101,6 @@ public DigitalAddressResponse getDigitalAddress() throws RestContactException { httpClientDigitalAddress.setBaseUrlApi("https://webapi." + env + ".notifichedigitali.it"); String url = "/bff/v1/addresses/LEGAL/default/PEC"; try { - logger.info("TOKEN getDigitalAddress: "+headers.get("Authorization")); DigitalAddressResponse response = httpClientDigitalAddress.sendHttpGetRequest(url, this.headers, DigitalAddressResponse.class); logger.info("Risposta ricevuta: " + response); logger.info("Indirizzi digitali ricevuti con successo"); @@ -124,7 +119,6 @@ public List getAllDigitalAddress() throws RestContactException { String url = "/bff/v1/addresses"; try { - logger.info("TOKEN getDigitalAddressList: "+headers.get("Authorization")); List response = httpClientDigitalAddress.sendHttpGetRequestListDigitalAddress(url, this.headers, DigitalAddress.class); logger.info("Risposta ricevuta: " + response); diff --git a/src/test/resources/feature/2-mittente/1_invioNotifiche/annullamentoNotificaConControlloSuRecapiti.feature b/src/test/resources/feature/2-mittente/1_invioNotifiche/annullamentoNotificaConControlloSuRecapiti.feature index b57c91d45..f7753192e 100644 --- a/src/test/resources/feature/2-mittente/1_invioNotifiche/annullamentoNotificaConControlloSuRecapiti.feature +++ b/src/test/resources/feature/2-mittente/1_invioNotifiche/annullamentoNotificaConControlloSuRecapiti.feature @@ -71,7 +71,7 @@ Feature: Mittente invia una notifica analogica o digitale che viene annullata e And Logout da portale mittente @TA_annullamentoNotificaMittenteEControlloMailDiCortesia - @recapitiPF + Scenario: [TA-FE MITTENTE CREA E ANNULLA UNA NOTIFICA CON PAGAMENTO] - Mittente invia una notifica a destinatario con PEC impostata e la annulla, si controlla che le ricevute PEC sono scaricabili Given PF - Si effettua la login tramite token exchange come "delegante", e viene visualizzata la dashboard And Rimuovi tutti i recapiti se esistono diff --git a/src/test/resources/feature/2-mittente/1_invioNotifiche/invioNotificaDigitaleADomicilio.feature b/src/test/resources/feature/2-mittente/1_invioNotifiche/invioNotificaDigitaleADomicilio.feature index 376c99028..40329864d 100644 --- a/src/test/resources/feature/2-mittente/1_invioNotifiche/invioNotificaDigitaleADomicilio.feature +++ b/src/test/resources/feature/2-mittente/1_invioNotifiche/invioNotificaDigitaleADomicilio.feature @@ -1,7 +1,7 @@ Feature: Invio notifica digitale a destinatario con diversi tipi di domicilio impostati ogni volta @invioNotificaDigitaleADomicilioImpostato - @recapitiPF + Scenario: [TA-FE INVIO DI UNA NOTIFICA DIGITALE A DESTINATARIO CON DOMICILIO IMPOSTATO] - Il mittente invia una notifica digitale a destinatario con indirizzo mail di cortesia impostato Given PF - Si effettua la login tramite token exchange come "delegante", e viene visualizzata la dashboard And Rimuovi tutti i recapiti se esistono @@ -42,7 +42,7 @@ Feature: Invio notifica digitale a destinatario con diversi tipi di domicilio im And Si accede nuovamente al portale "persona fisica" con token "delegante" per eliminare i recapiti inseriti @invioNotificaDigitaleADomicilioImpostato - @recapitiPF + Scenario: [TA-FE INVIO DI UNA NOTIFICA DIGITALE A DESTINATARIO CON DOMICILIO IMPOSTATO] - Mittente invia una notifica digitale al destinatario con domicilio di piattaforma e attende lo stato consegnata Given PF - Si effettua la login tramite token exchange come "delegante", e viene visualizzata la dashboard And Rimuovi tutti i recapiti se esistono @@ -84,7 +84,7 @@ Feature: Invio notifica digitale a destinatario con diversi tipi di domicilio im And Si accede nuovamente al portale "persona fisica" con token "delegante" per eliminare i recapiti inseriti @invioNotificaDigitaleADomicilioImpostato - @recapitiPF + Scenario: [TA-FE INVIO DI UNA NOTIFICA DIGITALE A DESTINATARIO CON DOMICILIO IMPOSTATO] - Mittente invia una notifica digitale al destinatario con KO e invio raccomandata semplice Given PF - Si effettua la login tramite token exchange come "delegante", e viene visualizzata la dashboard And Rimuovi tutti i recapiti se esistono @@ -199,7 +199,7 @@ Feature: Invio notifica digitale a destinatario con diversi tipi di domicilio im And Logout da portale mittente @invioNotificaDigitaleADomicilioImpostato - @recapitiPF + Scenario: [TA-FE INVIO DI UNA NOTIFICA DIGITALE A DESTINATARIO CON DOMICILIO IMPOSTATO] - Mittente invia una notifica digitale a destinatario, KO invio a domicilio di piattaforma, OK invio a domicilio speciale Given PF - Si effettua la login tramite token exchange come "delegante", e viene visualizzata la dashboard And Rimuovi tutti i recapiti se esistono @@ -244,7 +244,7 @@ Feature: Invio notifica digitale a destinatario con diversi tipi di domicilio im And Si accede nuovamente al portale "persona fisica" con token "delegante" per eliminare i recapiti inseriti @invioNotificaDigitaleADomicilioImpostato - @recapitiPF + Scenario: [TA-FE INVIO DI UNA NOTIFICA DIGITALE A DESTINATARIO CON DOMICILIO IMPOSTATO] - Mittente invia una notifica digitale a destinatario, KO invio sia a domicilio di piattaforma che a domicilio speciale Given PF - Si effettua la login tramite token exchange come "delegante", e viene visualizzata la dashboard And Rimuovi tutti i recapiti se esistono From a95a76b5a1fa5195e0f65dafffc66222cb35dff9 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Tue, 8 Oct 2024 10:49:00 +0200 Subject: [PATCH 005/212] remove log --- .../destinatario/personaFisica/LoginPersonaFisicaPagoPA.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java index 429fd843f..3f4ab1040 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java @@ -79,7 +79,6 @@ public void loginMittenteConTokenExchange(String personaFisica) { // Si effettua il login con token exchange String urlLogin = "https://cittadini." + environment + ".notifichedigitali.it/#token=" + token; this.driver.get(urlLogin); - logger.info("LOGIN: "+urlLogin); logger.info("Login effettuato con successo"); WebTool.waitTime(10); From 848a857dcb737b6a43754e3df6624157044b2df8 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Tue, 8 Oct 2024 11:21:19 +0200 Subject: [PATCH 006/212] fix test --- .../it/pn/frontend/e2e/rest/RestContact.java | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/rest/RestContact.java b/src/main/java/it/pn/frontend/e2e/rest/RestContact.java index fe05a160e..14cb9e3ef 100644 --- a/src/main/java/it/pn/frontend/e2e/rest/RestContact.java +++ b/src/main/java/it/pn/frontend/e2e/rest/RestContact.java @@ -8,6 +8,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.awt.*; import java.io.IOException; import java.util.HashMap; import java.util.List; @@ -47,7 +48,8 @@ public void removeDigitalAddressCourtesyEmail() throws RestContactException { String url = "https://webapi." + env + ".notifichedigitali.it/address-book/v1/digital-address/courtesy/default/EMAIL"; String response = ""; try { - response = httpClient.sendHttpDeleteRequest(url, this.headers, String.class); + headers.put("Authorization", System.getProperty("token")); + response = httpClient.sendHttpDeleteRequest(url, headers, String.class); logger.info("Risposta ricevuta: " + response); logger.info("Indirizzo digitale di cortesia rimosso con successo"); } catch (IOException e) { @@ -65,7 +67,8 @@ public void removeDigitalAddressLegalPec() throws RestContactException { String url = "https://webapi." + env + ".notifichedigitali.it/bff/v1/addresses/LEGAL/default/PEC"; String response = ""; try { - response = httpClient.sendHttpDeleteRequest(url, this.headers, String.class); + headers.put("Authorization", System.getProperty("token")); + response = httpClient.sendHttpDeleteRequest(url, headers, String.class); logger.info("Risposta ricevuta: " + response); logger.info("Indirizzo digitale di cortesia rimosso con successo"); } catch (IOException e) { @@ -87,7 +90,8 @@ public void removeSpecialContact(DigitalAddress digitalAddress) throws RestDeleg + addressType + "/" + digitalAddress.getSenderId() + "/" + channelType; String response = ""; try { - response = httpClient.sendHttpDeleteRequest(url, this.headers, String.class); + headers.put("Authorization", System.getProperty("token")); + response = httpClient.sendHttpDeleteRequest(url, headers, String.class); logger.info("Risposta ricevuta: " + response); logger.info("Indirizzo digitale di 'altri recapiti' rimosso con successo"); } catch (IOException e) { @@ -101,7 +105,8 @@ public DigitalAddressResponse getDigitalAddress() throws RestContactException { httpClientDigitalAddress.setBaseUrlApi("https://webapi." + env + ".notifichedigitali.it"); String url = "/bff/v1/addresses/LEGAL/default/PEC"; try { - DigitalAddressResponse response = httpClientDigitalAddress.sendHttpGetRequest(url, this.headers, DigitalAddressResponse.class); + headers.put("Authorization", System.getProperty("token")); + DigitalAddressResponse response = httpClientDigitalAddress.sendHttpGetRequest(url, headers, DigitalAddressResponse.class); logger.info("Risposta ricevuta: " + response); logger.info("Indirizzi digitali ricevuti con successo"); return response; @@ -119,7 +124,8 @@ public List getAllDigitalAddress() throws RestContactException { String url = "/bff/v1/addresses"; try { - List response = httpClientDigitalAddress.sendHttpGetRequestListDigitalAddress(url, this.headers, DigitalAddress.class); + headers.put("Authorization", System.getProperty("token")); + List response = httpClientDigitalAddress.sendHttpGetRequestListDigitalAddress(url, headers, DigitalAddress.class); logger.info("Risposta ricevuta: " + response); logger.info("Indirizzi digitali ricevuti con successo"); From 9197ee7ee1c1698859809c0342f550387eace0fb Mon Sep 17 00:00:00 2001 From: AlimaZhansultan Date: Tue, 8 Oct 2024 12:14:58 +0200 Subject: [PATCH 007/212] - fix --- .../stepDefinitions/mittente/NotificaMittentePagoPATest.java | 5 +++++ .../invioNotificaMonoPFNormalizzazioneKOLovelace.feature | 4 ++-- .../invioNotificaMonoPGDomicilioDigitaleKO.feature | 2 +- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java index 804ca742b..92f99bcb5 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java @@ -484,6 +484,11 @@ public void ricercaNotificaConIunSalvato(){ dettaglioNotificaMittenteSection.ricercaNotificaConIunSalvato(Iun); } + @And("Mittente ricerca notifica con IUN salvato {string}") + public void ricercaNotificaConIunMittente(String iun){ + dettaglioNotificaMittenteSection.ricercaNotificaConIunSalvato(iun); + } + @And("Si visualizza correttamente la section Dettaglio Notifica") public void siVisualizzaCorrettamenteLaSectionDettaglioNotifica() { DettaglioNotificaMittenteSection dettaglioNotificaMittenteSection = new DettaglioNotificaMittenteSection(this.driver); diff --git a/src/test/resources/feature/2-mittente/1_invioNotifiche/invioNotificaMonoPFNormalizzazioneKOLovelace.feature b/src/test/resources/feature/2-mittente/1_invioNotifiche/invioNotificaMonoPFNormalizzazioneKOLovelace.feature index 95b2d9b56..6a6ee28e7 100644 --- a/src/test/resources/feature/2-mittente/1_invioNotifiche/invioNotificaMonoPFNormalizzazioneKOLovelace.feature +++ b/src/test/resources/feature/2-mittente/1_invioNotifiche/invioNotificaMonoPFNormalizzazioneKOLovelace.feature @@ -49,9 +49,9 @@ Feature: Mittente genera una notifica che non prevede pagamento @TestSuite @TA_InvioNotificaMonoPFNormalizzazioneKOLovelaceBis - Scenario: PN-9294 - Mittente genera una notifica mono destinatario a PF - Normalizzazione KO (indirizzo non trovato) + Scenario: PN-9294-bis - Mittente genera una notifica mono destinatario a PF - Normalizzazione KO (indirizzo non trovato) Given PA - Si effettua la login tramite token exchange, e viene visualizzata la dashboard - And Nella pagina piattaforma notifiche destinatario si effettua la ricerca per codice IUN "RZVD-VGVL-XZLK-202410-X-1" + And Mittente ricerca notifica con IUN salvato "RZVD-VGVL-XZLK-202410-X-1" And Si clicca la notifica ricercata And Si clicca sul opzione Vedi Dettaglio Then Si verifica che la notifica abbia lo stato "Destinatario irreperibile" diff --git a/src/test/resources/feature/2-mittente/1_invioNotifiche/invioNotificaMonoPGDomicilioDigitaleKO.feature b/src/test/resources/feature/2-mittente/1_invioNotifiche/invioNotificaMonoPGDomicilioDigitaleKO.feature index 5611d1bfe..b1dbf1207 100644 --- a/src/test/resources/feature/2-mittente/1_invioNotifiche/invioNotificaMonoPGDomicilioDigitaleKO.feature +++ b/src/test/resources/feature/2-mittente/1_invioNotifiche/invioNotificaMonoPGDomicilioDigitaleKO.feature @@ -41,7 +41,7 @@ Feature: Mittente genera una notifica che non prevede pagamento @TA_InvioNotificaMonoPGDomiccilioDigitaleKOBis Scenario: PN-9292-bis - Mittente genera una notifica mono destinatario a PG con domicilio digitale KO Given PA - Si effettua la login tramite token exchange, e viene visualizzata la dashboard - And Nella pagina piattaforma notifiche destinatario si effettua la ricerca per codice IUN "NPEW-ZPLE-NJAZ-202410-N-1" + And Mittente ricerca notifica con IUN salvato "NPEW-ZPLE-NJAZ-202410-N-1" And Si clicca la notifica ricercata And Si clicca sul opzione Vedi Dettaglio Then Si verifica che la notifica abbia lo stato "Destinatario irreperibile" From cfda0329a44cf13a9e639cb2c7f4ee747fe49699 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Tue, 8 Oct 2024 15:51:14 +0200 Subject: [PATCH 008/212] Fix test PN-10245-B --- ...scaricaAttestazioniOpponibiliNotificaAnnullata.feature | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/test/resources/feature/2-mittente/3_downloadFile/103_scaricaAttestazioniOpponibiliNotificaAnnullata.feature b/src/test/resources/feature/2-mittente/3_downloadFile/103_scaricaAttestazioniOpponibiliNotificaAnnullata.feature index 3bf4dfc6d..05641bcf4 100644 --- a/src/test/resources/feature/2-mittente/3_downloadFile/103_scaricaAttestazioniOpponibiliNotificaAnnullata.feature +++ b/src/test/resources/feature/2-mittente/3_downloadFile/103_scaricaAttestazioniOpponibiliNotificaAnnullata.feature @@ -4,10 +4,9 @@ Feature: Mittente visualizza correttamente la notifica in stato Annulato @TA_MittenteScaricaAttestazioniDellaNotificaAnnullata @mittente @visualizzazioneNotificheMittente - Scenario: PN-10245-B - Mittente scarica documento AAR della notifica annullata Given PA - Si effettua la login tramite token exchange, e viene visualizzata la dashboard - When Nella pagina Piattaforma Notifiche persona fisica inserire il codice IUN "WVEM-RAVW-HLYV-202405-T-1" + When Nella pagina Piattaforma Notifiche persona fisica inserire il codice IUN "NPMK-EKTP-AGAD-202410-N-1" And Cliccare sul bottone Filtra And Cliccare sulla notifica restituita And Si visualizza correttamente la section Dettaglio Notifica @@ -16,7 +15,4 @@ Feature: Mittente visualizza correttamente la notifica in stato Annulato | xpathStato | //button[contains(text(),"Attestazione opponibile a terzi: notifica presa in carico")] | | vediDettagli | false | Then Si clicca sul documento Attestazione - And Logout da portale mittente - - - + And Logout da portale mittente \ No newline at end of file From 87a23d5630a16b0e9d40806c4568407daf3ebaaf Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Tue, 8 Oct 2024 16:18:17 +0200 Subject: [PATCH 009/212] fix test --- .../frontend/e2e/common/DettaglioNotificaSection.java | 10 ++++++++++ .../mittente/DownloadFileMittentePagoPATest.java | 6 ++++++ ...ricaAttestazioniOpponibiliNotificaAnnullata.feature | 2 +- 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/main/java/it/pn/frontend/e2e/common/DettaglioNotificaSection.java b/src/main/java/it/pn/frontend/e2e/common/DettaglioNotificaSection.java index d90046ed4..10ec8b49e 100644 --- a/src/main/java/it/pn/frontend/e2e/common/DettaglioNotificaSection.java +++ b/src/main/java/it/pn/frontend/e2e/common/DettaglioNotificaSection.java @@ -19,6 +19,8 @@ import java.util.List; import java.util.Map; +import static org.openqa.selenium.support.ui.ExpectedConditions.elementToBeClickable; + public class DettaglioNotificaSection extends BasePage { private static final Logger logger = LoggerFactory.getLogger("DettaglioNotificaSection"); @@ -76,6 +78,14 @@ public void clickLinkAttestazioniOpponibile(int numeroLinkAttestazioniOpponibile } } + public void toBeClickableLinkAttestazioniOpponibile(int numeroLinkAttestazioniOpponibile) { + WebTool.waitTime(2); + attestazioniFile = driver.findElements(By.xpath("//button[contains(text(),'Attestazione opponibile a terzi: notifica presa in carico')]")); + if (attestazioniFile.get(numeroLinkAttestazioniOpponibile).isDisplayed()) { + getWebDriverWait(10).withMessage("Il link non è cliccabile").until(elementToBeClickable(attestazioniFile.get(numeroLinkAttestazioniOpponibile))); + } + } + public void clickLinkDocumentiAllegati(int numeroLinkDocumentiAllegati) { if (documentiAllegati.get(numeroLinkDocumentiAllegati).isDisplayed()) { documentiAllegati.get(numeroLinkDocumentiAllegati).click(); diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java index edc16f606..057c37412 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java @@ -225,6 +225,12 @@ public void clickDocumentoAttestazione() { driver.navigate().back(); } + @Then("Si verifica che il link sul documento Attestazione è cliccabile") + public void toBeClickableDocumentoAttestazioneCliccable() { + DettaglioNotificaSection dettaglioNotificaSection = new DettaglioNotificaSection(this.driver); + dettaglioNotificaSection.toBeClickableLinkAttestazioniOpponibile(0); + } + @Then("Si clicca sul documento Attestazione scaduta") public void clickDocumentoAttestazioneScaduta() { DettaglioNotificaSection dettaglioNotificaSection = new DettaglioNotificaSection(this.driver); diff --git a/src/test/resources/feature/2-mittente/3_downloadFile/103_scaricaAttestazioniOpponibiliNotificaAnnullata.feature b/src/test/resources/feature/2-mittente/3_downloadFile/103_scaricaAttestazioniOpponibiliNotificaAnnullata.feature index 05641bcf4..79ba08239 100644 --- a/src/test/resources/feature/2-mittente/3_downloadFile/103_scaricaAttestazioniOpponibiliNotificaAnnullata.feature +++ b/src/test/resources/feature/2-mittente/3_downloadFile/103_scaricaAttestazioniOpponibiliNotificaAnnullata.feature @@ -14,5 +14,5 @@ Feature: Mittente visualizza correttamente la notifica in stato Annulato And Si verifica che la ricevuta di postalizzazione sia cliccabile | xpathStato | //button[contains(text(),"Attestazione opponibile a terzi: notifica presa in carico")] | | vediDettagli | false | - Then Si clicca sul documento Attestazione + Then Si verifica che il link sul documento Attestazione è cliccabile And Logout da portale mittente \ No newline at end of file From 360d356997376d3fee123dd3f3afca1f278474cb Mon Sep 17 00:00:00 2001 From: AlimaZhansultan Date: Tue, 8 Oct 2024 17:26:19 +0200 Subject: [PATCH 010/212] - fix --- .../pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java index 3662777a7..70485074d 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java @@ -188,6 +188,7 @@ public boolean verificaEsistenzaEPassaggioPagina() { } public void inserimentoCodiceIUN(String codiceIUN) { + WebTool.waitTime(5); getWebDriverWait(10).withMessage("Il campo per l'inserimento del codice IUN non è visibile").until(ExpectedConditions.visibilityOf(codiceIUNTextField)); codiceIUNTextField.click(); codiceIUNTextField.sendKeys(codiceIUN); From fa60d00939f43837ff6a65136d7282352a863fb7 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Tue, 8 Oct 2024 18:47:29 +0200 Subject: [PATCH 011/212] fix --- .../e2e/pages/mittente/PiattaformaNotifichePage.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java index 70485074d..0ca7bc3af 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java @@ -188,7 +188,9 @@ public boolean verificaEsistenzaEPassaggioPagina() { } public void inserimentoCodiceIUN(String codiceIUN) { + WebTool.waitTime(5); + codiceIUNTextField = driver.findElement(By.id("iunMatch")); getWebDriverWait(10).withMessage("Il campo per l'inserimento del codice IUN non è visibile").until(ExpectedConditions.visibilityOf(codiceIUNTextField)); codiceIUNTextField.click(); codiceIUNTextField.sendKeys(codiceIUN); @@ -219,14 +221,12 @@ public boolean controlloDateInserite(String dataInerita) { public void inserimentoArcoTemporale(String da, String a) { - WebTool.waitTime(15); getWebDriverWait(10).until(ExpectedConditions.visibilityOfAllElements(dataInizioField, dataFineField)); dataInizioField = getWebDriverWait(10).until(ExpectedConditions.elementToBeClickable(By.id("startDate"))); dataInizioField = getWebDriverWait(10).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[@id='startDate']"))); - WebTool.waitTime(5); - + WebTool.waitTime(2); String[] arraySplitDateDa = da.split("/"); List dataFieldList = driver.findElements(By.cssSelector(".MuiInputBase-input")); @@ -274,7 +274,7 @@ public void inserimentoArcoTemporale(String da, String a) { } // Step 4: Select a date (e.g., the 15th day of the current month) - WebTool.waitTime(3); + WebTool.waitTime(2); WebElement dateToSelect = calendar.findElement(By.xpath("//div[contains(@class, 'MuiDateCalendar-root')]//div[contains(@class,'MuiDayCalendar-monthContainer')]//*[text()='" + dayDa + "']")); dateToSelect = getWebDriverWait(10).until(ExpectedConditions.elementToBeClickable(dateToSelect)); dateToSelect.click(); @@ -290,7 +290,7 @@ public void inserimentoArcoTemporale(String da, String a) { int monthA = Integer.parseInt(arraySplitDateA[1]); int yerarsA = Integer.parseInt(arraySplitDateA[2]); - WebTool.waitTime(3); + WebTool.waitTime(2); // Step 2: Click on the input field to open the calendar pop-up if (dataFieldList != null && dataFieldList.size() == 5) { @@ -320,7 +320,7 @@ public void inserimentoArcoTemporale(String da, String a) { } } - WebTool.waitTime(3); + WebTool.waitTime(2); // Step 4: Select a date (e.g., the 15th day of the current month) // Adjust based on your app From f83c742abe5043bd2e00786bbf565c4b9f6ccf52 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Tue, 8 Oct 2024 20:03:37 +0200 Subject: [PATCH 012/212] add tag --- .../personaFisica/RicercaNotifichePersonaFisicaPATest.java | 4 +++- .../104_downloadDocumentiNotificaInviata.feature | 2 +- .../downloadFile/checkDownloadOltre120gg.feature | 2 +- .../downloadFile/checkDownloadOltre120gg.feature | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RicercaNotifichePersonaFisicaPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RicercaNotifichePersonaFisicaPATest.java index 15c775360..427bb4c3e 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RicercaNotifichePersonaFisicaPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RicercaNotifichePersonaFisicaPATest.java @@ -151,6 +151,8 @@ public void nellaPaginaPiattaformaNotificheMittenteInserireUnaDataDaDAAA(Map Date: Tue, 8 Oct 2024 20:26:44 +0200 Subject: [PATCH 013/212] fix --- .../personaFisica/RicercaNotifichePersonaFisicaPATest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RicercaNotifichePersonaFisicaPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RicercaNotifichePersonaFisicaPATest.java index 427bb4c3e..4022f77ce 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RicercaNotifichePersonaFisicaPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RicercaNotifichePersonaFisicaPATest.java @@ -162,7 +162,7 @@ public void nellaPaginaPiattaformaNotificheMittenteInserireUnaDataDaDAAA120Giorn String dataa = piattaformaNotifichePage.conversioneFormatoDate(dateA.toString()); String datada = piattaformaNotifichePage.conversioneFormatoDate(dateDa.toString()); logger.info("ARCO TEMPORRALE SETTATO: "+dataa +" - "+datada); - piattaformaNotifichePage.inserimentoArcoTemporale(dataa, datada); + piattaformaNotifichePage.inserimentoArcoTemporale(datada, dataa); } @And("Se i risultati sono contenuti in più pagine persona fisica è possibile effettuare il cambio pagina") From ccfea04cf429971badc319284fdd9e02cc647722 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Tue, 8 Oct 2024 20:53:49 +0200 Subject: [PATCH 014/212] Remove tag --- .../016_visualizzazioneNotificaAnnullata.feature | 1 - 1 file changed, 1 deletion(-) diff --git a/src/test/resources/feature/2-mittente/4_visualizzazioneNotifiche/016_visualizzazioneNotificaAnnullata.feature b/src/test/resources/feature/2-mittente/4_visualizzazioneNotifiche/016_visualizzazioneNotificaAnnullata.feature index 17c0be790..d83728945 100644 --- a/src/test/resources/feature/2-mittente/4_visualizzazioneNotifiche/016_visualizzazioneNotificaAnnullata.feature +++ b/src/test/resources/feature/2-mittente/4_visualizzazioneNotifiche/016_visualizzazioneNotificaAnnullata.feature @@ -17,7 +17,6 @@ Feature: Mittente visualizza correttamente la notifica in stato Annulato And Logout da portale mittente @TA_DelegvisualizzazioneDettaglioNotifichaAnnullata - @DeleghePF Scenario: [TA-FE INVIO DI UNA NOTIFICA E ANNULLAMENTO] - Mittente invia una notifica con delegato e la annulla, si verifica che sia visibile anche lato delegato Given PF - Si effettua la login tramite token exchange come "delegato", e viene visualizzata la dashboard When Nella pagina Piattaforma Notifiche persona fisica click sul bottone Deleghe From e462f45be183e49ea7195f1f42e137f1266d18ff Mon Sep 17 00:00:00 2001 From: AlimaZhansultan Date: Wed, 9 Oct 2024 11:08:56 +0200 Subject: [PATCH 015/212] * created bis scenario for : @VisualizzaNotificaMonoDestinatarioConUnElementoInTimelineAR , @CheckNotificaConDocumentiAllegatiPG and --- ...001_verificaNomeEnteRadiceInNotifica.feature | 15 ++++++++++++++- ...aNotificaConSoloUnElementoInTimeline.feature | 14 +++++++++++++- .../VisualizzaNotificaNonPagataPG.feature | 17 ++++++++++++++++- 3 files changed, 43 insertions(+), 3 deletions(-) diff --git a/src/test/resources/feature/3-destinatario/personaGiuridica/visualizzaNotifiche/001_verificaNomeEnteRadiceInNotifica.feature b/src/test/resources/feature/3-destinatario/personaGiuridica/visualizzaNotifiche/001_verificaNomeEnteRadiceInNotifica.feature index 43360369e..9e4cb7209 100644 --- a/src/test/resources/feature/3-destinatario/personaGiuridica/visualizzaNotifiche/001_verificaNomeEnteRadiceInNotifica.feature +++ b/src/test/resources/feature/3-destinatario/personaGiuridica/visualizzaNotifiche/001_verificaNomeEnteRadiceInNotifica.feature @@ -1,6 +1,6 @@ Feature: La persona fisica visualizza il nome concatenato dell'ente Radice nel campo mittente della notifica - @TestSuite + @Parallel @TA_PGVisualizzaNotifiche @verificaNomeEnteRadice @DeleghePG @@ -32,4 +32,17 @@ Feature: La persona fisica visualizza il nome concatenato dell'ente Radice nel c And Aspetta 60 secondi And Si visualizza correttamente la section Dettaglio Notifica Then Si verifica che il mittente sia "Comune di Palermo" + And Logout da portale persona giuridica + + + @TestSuite + @verificaNomeEnteRadiceBis + Scenario: PN-10431 - bis - La persona giuridica visualizza il campo mittente della notifica con il nome concatenato dell'ente Radice + Given PG - Si effettua la login tramite token exchange come "delegante", e viene visualizzata la dashboard + Then Nella Pagina Notifiche persona fisica si visualizza correttamente l elenco delle notifiche + And Nella pagina Piattaforma Notifiche persona giuridica inserire il codice IUN da dati notifica "QPTV-HLXM-LGJE-202410-G-1" + And Cliccare sul bottone Filtra persona giuridica + When La persona giuridica clicca sulla notifica restituita "QPTV-HLXM-LGJE-202410-G-1" + And Si visualizza correttamente la section Dettaglio Notifica + Then Si verifica che il mittente sia "Comune di Palermo" And Logout da portale persona giuridica \ No newline at end of file diff --git a/src/test/resources/feature/3-destinatario/personaGiuridica/visualizzaNotifiche/VisualizzaNotificaConSoloUnElementoInTimeline.feature b/src/test/resources/feature/3-destinatario/personaGiuridica/visualizzaNotifiche/VisualizzaNotificaConSoloUnElementoInTimeline.feature index afcf1cdce..8607cd0d3 100644 --- a/src/test/resources/feature/3-destinatario/personaGiuridica/visualizzaNotifiche/VisualizzaNotificaConSoloUnElementoInTimeline.feature +++ b/src/test/resources/feature/3-destinatario/personaGiuridica/visualizzaNotifiche/VisualizzaNotificaConSoloUnElementoInTimeline.feature @@ -1,6 +1,6 @@ Feature: PG visualizza il dettaglio di una notifica con solo un elemento in timeline - @TestSuite + @Parallel @TA_PGDettaglioNotificheConUnElementoInTimeline @PG @visualizzazioneNotifichePG @@ -31,6 +31,18 @@ Feature: PG visualizza il dettaglio di una notifica con solo un elemento in time And controllo Ricevuta di consegna link cliccabile And Logout da portale persona giuridica + @TestSuite + @VisualizzaNotificaMonoDestinatarioConUnElementoInTimelineARBis + Scenario: [TA-FE VISUALIZZAZIONE DETTAGLI DI NOTIFICA PG] - bis - PG Verifica presenza solo un elemento in timeline contenente la ricevuta di postalizzazione in formato zip - OK_AR_ZIP + Given PG - Si effettua la login tramite token exchange come "delegante", e viene visualizzata la dashboard + And Nella pagina Piattaforma Notifiche persona giuridica inserire il codice IUN da dati notifica "QPTV-HLXM-LGJE-202410-G-1" + And Cliccare sul bottone Filtra persona giuridica + When La persona giuridica clicca sulla notifica restituita "QPTV-HLXM-LGJE-202410-G-1" + And Si visualizza correttamente la section Dettaglio Notifica + And controllo Ricevuta di consegna link cliccabile + And Logout da portale persona giuridica + + @VisualizzaNotificaMonoDestinatarioConUnElementoInTimeline890 Scenario: [TA-FE VISUALIZZAZIONE DETTAGLI DI NOTIFICA PG] - PG Verifica presenza solo un elemento in timeline contenente la ricevuta di postalizzazione in formato zip - OK_890_ZIP Given PG - Si effettua la login tramite token exchange come "delegante", e viene visualizzata la dashboard diff --git a/src/test/resources/feature/3-destinatario/personaGiuridica/visualizzaNotifiche/VisualizzaNotificaNonPagataPG.feature b/src/test/resources/feature/3-destinatario/personaGiuridica/visualizzaNotifiche/VisualizzaNotificaNonPagataPG.feature index a54166448..ed81cd183 100644 --- a/src/test/resources/feature/3-destinatario/personaGiuridica/visualizzaNotifiche/VisualizzaNotificaNonPagataPG.feature +++ b/src/test/resources/feature/3-destinatario/personaGiuridica/visualizzaNotifiche/VisualizzaNotificaNonPagataPG.feature @@ -1,6 +1,6 @@ Feature: PG visualizza il dettaglio di una notifica con documenti allegati - @TestSuite + @Parallel @TA_PGDettaglioNotificheConDocumenti @PG @visualizzazioneNotifichePG @@ -36,6 +36,21 @@ Feature: PG visualizza il dettaglio di una notifica con documenti allegati Then Si torna alla pagina precedente And Logout da portale persona giuridica + @TestSuite + @CheckNotificaConDocumentiAllegatiPGBis + Scenario: [TA-FE VISUALIZZAZIONE DETTAGLI DI NOTIFICA PG NON PAGATA] - bis - PG scarica modello F24 + Given PG - Si effettua la login tramite token exchange come "delegante", e viene visualizzata la dashboard + And Nella pagina Piattaforma Notifiche persona giuridica inserire il codice IUN da dati notifica "WZAT-VPJY-XAZL-202410-A-1" + And Cliccare sul bottone Filtra persona giuridica + When La persona giuridica clicca sulla notifica restituita "WZAT-VPJY-XAZL-202410-A-1" + And Si visualizza correttamente la section Dettaglio Notifica + And Si controlla sia presente l'avviso PagoPa destinatario + And Si controlla sia presente il modello F24 destinatario + And Si clicca sul modello F24 destinatario numero 1 + Then Si torna alla pagina precedente + And Logout da portale persona giuridica + + @CheckNotificaConDocumentiAllegatiPG Scenario: [TA-FE VISUALIZZAZIONE DETTAGLI DI NOTIFICA PG NON PAGATA] - PG scarica l'avviso PagoPa Given PG - Si effettua la login tramite token exchange come "delegante", e viene visualizzata la dashboard From ec69180db0b7261fc5207fa09edd1a7c0415921d Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Wed, 9 Oct 2024 11:45:47 +0200 Subject: [PATCH 016/212] prova fix --- .../personaFisica/AccediAPiattaformaNotifichePage.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java index d6ec222e1..3eff89cb0 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java @@ -309,10 +309,10 @@ public void checkoutPagamento() throws InterruptedException { element(titolare).sendKeys("Titolare"); driver.switchTo().defaultContent(); - WebTool.waitTime(5); + WebTool.waitTime(7); - WebElement continuaBottone = driver.findElement(By.xpath("//button[@aria-label='Continua']") ); - getWebDriverWait(7).withMessage("Il bottone Continua non è cliccabile").until(ExpectedConditions.elementToBeClickable(continuaBottone)); + WebElement continuaBottone = driver.findElement(By.id("mui-7")); + getWebDriverWait(8).withMessage("Il bottone Continua non è cliccabile").until(ExpectedConditions.elementToBeClickable(continuaBottone)); continuaBottone.click(); WebTool.waitTime(2); @@ -344,7 +344,7 @@ public void checkoutPagamento() throws InterruptedException { } public void siVisualizzaStatoPagato() { - WebTool.waitTime(10); + WebTool.waitTime(20); By statoPagamento = By.xpath("//div[@id='status-chip-Pagato']"); getWebDriverWait(5).withMessage("Lo stato di pagamento non è visibile").until(ExpectedConditions.visibilityOfElementLocated(statoPagamento)); logger.info("Lo stato di pagamento è Pagato"); From 49908fba8a9ce52e2ddce8ce5a7c9325f2ea91bf Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Wed, 9 Oct 2024 12:21:58 +0200 Subject: [PATCH 017/212] add log --- .../personaFisica/AccediAPiattaformaNotifichePage.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java index 3eff89cb0..ec1c71d56 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java @@ -309,9 +309,9 @@ public void checkoutPagamento() throws InterruptedException { element(titolare).sendKeys("Titolare"); driver.switchTo().defaultContent(); - WebTool.waitTime(7); - - WebElement continuaBottone = driver.findElement(By.id("mui-7")); + WebTool.waitTime(5); + logger.info("HTML: .."+driver.getPageSource()); + WebElement continuaBottone = driver.findElement(By.xpath("//button[@aria-label='Continua']") ); getWebDriverWait(8).withMessage("Il bottone Continua non è cliccabile").until(ExpectedConditions.elementToBeClickable(continuaBottone)); continuaBottone.click(); From 0da0abd80ce490ae5a302e76a0658497fbe71afa Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Wed, 9 Oct 2024 12:48:55 +0200 Subject: [PATCH 018/212] fix labet button test --- .../personaFisica/AccediAPiattaformaNotifichePage.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java index ec1c71d56..1c58c2088 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java @@ -310,8 +310,7 @@ public void checkoutPagamento() throws InterruptedException { driver.switchTo().defaultContent(); WebTool.waitTime(5); - logger.info("HTML: .."+driver.getPageSource()); - WebElement continuaBottone = driver.findElement(By.xpath("//button[@aria-label='Continua']") ); + WebElement continuaBottone = driver.findElement(By.xpath("//button[@aria-label='Continue']") ); getWebDriverWait(8).withMessage("Il bottone Continua non è cliccabile").until(ExpectedConditions.elementToBeClickable(continuaBottone)); continuaBottone.click(); From 6832a54a897512ccbafbc939ed5c6504003cd6b3 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Wed, 9 Oct 2024 14:31:51 +0200 Subject: [PATCH 019/212] add log --- .../personaFisica/AccediAPiattaformaNotifichePage.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java index 1c58c2088..3e34d09e2 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java @@ -316,8 +316,9 @@ public void checkoutPagamento() throws InterruptedException { WebTool.waitTime(2); + logger.info("HTML.."+ driver.getPageSource()); //Select Nexi - WebElement modificaButton = driver.findElement(By.xpath("//button[@aria-label='Modifica PSP']")); + WebElement modificaButton = driver.findElement(By.xpath("//button[@aria-label='Modify PSP']")); getWebDriverWait(5).withMessage("Il bottone modifica non è cliccabile").until(ExpectedConditions.elementToBeClickable(modificaButton)); modificaButton.click(); From fc3124bacc7cde8c687e0da24aa9f05ac0cb56e8 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Wed, 9 Oct 2024 17:36:28 +0200 Subject: [PATCH 020/212] Upgrade Junit5 --- pom.xml | 64 ++++++++++++++----- .../e2e/common/DettaglioNotificaSection.java | 10 +-- .../pn/frontend/e2e/common/HelpdeskPage.java | 32 +++++----- .../e2e/common/NotificheDestinatarioPage.java | 4 +- .../e2e/common/RecapitiDestinatarioPage.java | 42 ++++++------ .../it/pn/frontend/e2e/listeners/Hooks.java | 10 +-- .../StartTransactionRequest.java | 9 --- .../pages/destinatario/DestinatarioPage.java | 14 ++-- .../AccediAPiattaformaNotifichePage.java | 1 - .../personaFisica/ComeVuoiAccederePage.java | 4 +- .../personaFisica/ConfermaDatiSpidPFPage.java | 4 +- .../personaFisica/DeleghePage.java | 22 +++---- .../personaFisica/ITuoiRecapitiPage.java | 14 ++-- .../personaFisica/LoginSpidPFPage.java | 4 +- .../personaFisica/NotifichePFPage.java | 6 +- .../personaFisica/ScegliSpidPFPage.java | 4 +- .../AccediAreaRiservataPGPage.java | 4 +- .../AutorizzaInvioDatiPGPage.java | 4 +- .../personaGiuridica/DeleghePGPagoPAPage.java | 31 +++++---- .../personaGiuridica/DisserviziAppPage.java | 8 +-- .../personaGiuridica/GruppiPGPage.java | 4 +- .../personaGiuridica/HomePagePG.java | 4 +- .../personaGiuridica/LoginPGPagoPAPage.java | 4 +- .../PiattaformaNotifichePGPAPage.java | 18 +++--- .../PreAccediAreaRiservataPGPage.java | 4 +- .../personaGiuridica/RecapitiPGPage.java | 4 +- .../RicercaNotifichePGPage.java | 12 ++-- .../personaGiuridica/ScegliSpidPGPage.java | 5 +- .../SelezionaImpresaPage.java | 1 - .../personaGiuridica/UtentiPGPage.java | 10 +-- .../mittente/AcccediAreaRiservataPAPage.java | 7 +- .../e2e/pages/mittente/ApiKeyPAPage.java | 36 +++++------ .../pages/mittente/AreaRiservataPAPage.java | 10 +-- .../mittente/AutorizziInvioDatiPAPage.java | 6 +- .../e2e/pages/mittente/DashboardPage.java | 14 +--- .../pages/mittente/DisserviziAppPAPage.java | 24 +++---- .../e2e/pages/mittente/LoginPAPage.java | 6 +- .../PreAccediAreaRiservataPAPage.java | 4 +- .../e2e/pages/mittente/ScegliSpidPAPage.java | 8 +-- .../pages/mittente/SelezionaEntePAPage.java | 4 +- .../frontend/e2e/rest/RestNotification.java | 8 +-- .../frontend/e2e/section/CookiesSection.java | 4 +- .../personaFisica/HeaderPFSection.java | 4 +- .../personaFisica/LeTueDelegheSection.java | 14 ++-- .../AggiungiDelegaPGSection.java | 7 +- .../DelegatiImpresaSection.java | 18 +++--- .../personaGiuridica/HeaderPGSection.java | 4 +- .../section/mittente/AllegatiPASection.java | 6 +- .../mittente/DestinatarioPASection.java | 8 +-- .../DettaglioNotificaMittenteSection.java | 48 +++++++------- .../section/mittente/GeneraApiKeySection.java | 4 +- .../e2e/section/mittente/HeaderPASection.java | 6 +- .../InformazioniPreliminariPASection.java | 6 +- .../section/mittente/SuccessPASection.java | 4 +- .../frontend/e2e/utility/DataPopulation.java | 6 +- .../pn/frontend/e2e/utility/DownloadFile.java | 4 +- .../e2e/utility/NotificationBuilder.java | 11 ++-- .../it/pn/frontend/e2e/utility/WebTool.java | 4 +- 58 files changed, 321 insertions(+), 321 deletions(-) diff --git a/pom.xml b/pom.xml index 08eb10b83..add2422e8 100644 --- a/pom.xml +++ b/pom.xml @@ -16,6 +16,7 @@ UTF-8 17 17 + 7.8.1 @@ -27,12 +28,6 @@ 2.17.2 - - junit - junit - 4.13.2 - - org.seleniumhq.selenium @@ -40,8 +35,6 @@ 4.22.0 - - @@ -52,24 +45,38 @@ + io.cucumber cucumber-java - 7.11.1 + ${cucumber.version} + test - - io.cucumber - cucumber-junit - 7.11.1 + cucumber-junit-platform-engine + ${cucumber.version} + test + - - io.cucumber - gherkin - 26.0.1 + org.junit.platform + junit-platform-suite + test + + + org.junit.jupiter + junit-jupiter + test + + + + + org.junit.vintage + junit-vintage-engine + 5.10.0 + test @@ -220,9 +227,32 @@ zip4j 2.11.5 + + org.junit.jupiter + junit-jupiter-api + + + + + org.junit + junit-bom + 5.9.1 + pom + import + + + io.cucumber + cucumber-bom + 7.8.1 + pom + import + + + + diff --git a/src/main/java/it/pn/frontend/e2e/common/DettaglioNotificaSection.java b/src/main/java/it/pn/frontend/e2e/common/DettaglioNotificaSection.java index 10ec8b49e..6af13c2e3 100644 --- a/src/main/java/it/pn/frontend/e2e/common/DettaglioNotificaSection.java +++ b/src/main/java/it/pn/frontend/e2e/common/DettaglioNotificaSection.java @@ -1,11 +1,7 @@ package it.pn.frontend.e2e.common; -import io.cucumber.java.en.And; -import io.cucumber.java.en.Then; -import it.pn.frontend.e2e.section.mittente.DettaglioNotificaMittenteSection; -import it.pn.frontend.e2e.utility.NotificationBuilder; import it.pn.frontend.e2e.utility.WebTool; -import org.junit.Assert; +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.By; import org.openqa.selenium.TimeoutException; import org.openqa.selenium.WebDriver; @@ -108,7 +104,7 @@ public void selezioneVediDettaglioButton() { logger.info("Tutti gli stati sono stati visualizzati correttamente"); } else { logger.error("Tutti i stati non sono stati visualizzati correttamente"); - Assert.fail("Tutti i stati non sono stati visualizzati correttamente"); + Assertions.fail("Tutti i stati non sono stati visualizzati correttamente"); } } @@ -169,7 +165,7 @@ public void selezioneAvvisoPagoPa() { logger.info("check su avviso pagopa avvenuto con successo"); } catch (TimeoutException e) { logger.error("check su avviso pagopa non avvenuto con successo: " + e.getMessage()); - Assert.fail("check su avviso pagopa non avvenuto con successo: " + e.getMessage()); + Assertions.fail("check su avviso pagopa non avvenuto con successo: " + e.getMessage()); } } diff --git a/src/main/java/it/pn/frontend/e2e/common/HelpdeskPage.java b/src/main/java/it/pn/frontend/e2e/common/HelpdeskPage.java index 60aa0e832..6eea6e45e 100644 --- a/src/main/java/it/pn/frontend/e2e/common/HelpdeskPage.java +++ b/src/main/java/it/pn/frontend/e2e/common/HelpdeskPage.java @@ -4,7 +4,7 @@ import it.pn.frontend.e2e.model.enums.Status; import it.pn.frontend.e2e.utility.WebTool; import org.apache.commons.io.FileUtils; -import org.junit.Assert; +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.By; import org.openqa.selenium.TimeoutException; import org.openqa.selenium.WebDriver; @@ -97,7 +97,7 @@ public void checkForm() { this.getWebDriverWait(40).withMessage("submit non presente").until(ExpectedConditions.visibilityOf(this.loginButton)); } catch (TimeoutException e) { logger.error("Form non presente errore: " + e.getMessage()); - Assert.fail("Form non presente errore: " + e.getMessage()); + Assertions.fail("Form non presente errore: " + e.getMessage()); } } @@ -107,14 +107,14 @@ public void checkHome() { logger.info("pagina home carica"); } catch (TimeoutException e) { logger.error("errore caricamento home helpdesk: " + e.getMessage()); - Assert.fail("errore caricamento home helpdesk: " + e.getMessage()); + Assertions.fail("errore caricamento home helpdesk: " + e.getMessage()); } } public void waitLoadServiceTable() { if (services.size() < 3) { logger.error("I servizi visualizzati sono meno di 3"); - Assert.fail("I servizi visualizzati sono meno di 3"); + Assertions.fail("I servizi visualizzati sono meno di 3"); } getWebDriverWait(10).withMessage("Non è visibile la tabella dei disservizi").until(ExpectedConditions.visibilityOfAllElements(services)); } @@ -141,7 +141,7 @@ public void clickMonitoraggio() { this.monitoraggioPN.click(); } catch (TimeoutException e) { logger.error("Card monitoraggio non cliccabile: " + e.getMessage()); - Assert.fail("Card monitoraggio non cliccabile: " + e.getMessage()); + Assertions.fail("Card monitoraggio non cliccabile: " + e.getMessage()); } } @@ -159,7 +159,7 @@ public void handleDisservizio(Disservice disservizio, Status status) { WebElement tooltip = this.element(By.xpath(".//div[@role='tooltip']")); if (!tooltip.isDisplayed()) { logger.error("Non è stato possibile visualizzare il tooltip per il disservizio"); - Assert.fail("Non è stato possibile visualizzare il tooltip per il disservizio"); + Assertions.fail("Non è stato possibile visualizzare il tooltip per il disservizio"); } WebElement button = tooltip.findElement(By.id(status.getValue() + "-insert")); getWebDriverWait(10).withMessage("Il pulsante: " + status.getValue() + " non è visibile o cliccabile").until(ExpectedConditions.and( @@ -202,7 +202,7 @@ public boolean checkIsCreatedDisservizio() { return false; } catch (TimeoutException e) { logger.error("disservizio non creato: " + e.getMessage()); - Assert.fail("disservizio non creato: " + e.getMessage()); + Assertions.fail("disservizio non creato: " + e.getMessage()); return false; } } @@ -215,7 +215,7 @@ public void clickSezioneRicerca() { this.elements(ricercaButton).get(0).click(); } catch (TimeoutException e) { logger.error("Card ricerca non cliccabile: " + e.getMessage()); - Assert.fail("Card ricerca non cliccabile: " + e.getMessage()); + Assertions.fail("Card ricerca non cliccabile: " + e.getMessage()); } } @@ -230,7 +230,7 @@ public void checkRicercaPage() { this.getWebDriverWait(30).withMessage("button reset filtri non trovato").until(ExpectedConditions.visibilityOfElementLocated(buttonResetFiltri)); } catch (TimeoutException e) { logger.error("home ricerca non caricata correttamente: " + e.getMessage()); - Assert.fail("home ricerca non caricata correttamente: " + e.getMessage()); + Assertions.fail("home ricerca non caricata correttamente: " + e.getMessage()); } } @@ -248,7 +248,7 @@ public void logout() { this.elements(buttonConfermaLogout).get(0).click(); } catch (TimeoutException e) { logger.error("logout non riuscito correttamente: " + e.getMessage()); - Assert.fail("logout non riuscito correttamente: " + e.getMessage()); + Assertions.fail("logout non riuscito correttamente: " + e.getMessage()); } } @@ -264,7 +264,7 @@ public void insertCfAndRicercaOnPage(String codiceFiscale) { buttonRicerca.click(); } catch (TimeoutException e) { logger.error("bottone non cliccabile:" + e.getMessage()); - Assert.fail("bottone non cliccabile:" + e.getMessage()); + Assertions.fail("bottone non cliccabile:" + e.getMessage()); } try { @@ -318,7 +318,7 @@ public void checkUid() { setCodiceIdentificativoPF(Uid.getText().replace("Codice Univoco: ", "")); } catch (TimeoutException e) { logger.error("codice univoco non trovato: " + e.getMessage()); - Assert.fail("codice univoco non trovato: " + e.getMessage()); + Assertions.fail("codice univoco non trovato: " + e.getMessage()); } } @@ -348,7 +348,7 @@ public void changeOption() { this.getWebDriverWait(30).withMessage("input uid non trovato").until(ExpectedConditions.visibilityOfElementLocated(checkUidIsDisplayed)); } catch (TimeoutException e) { logger.error("opzione ottieni cf non trovata: " + e.getMessage()); - Assert.fail("opzione ottieni cf non trovata: " + e.getMessage()); + Assertions.fail("opzione ottieni cf non trovata: " + e.getMessage()); } } @@ -393,7 +393,7 @@ public void checkMessaggioDiErroreData() { this.getWebDriverWait(15).withMessage("Messaggio di errore non trovato").until(ExpectedConditions.visibilityOfElementLocated(messaggio)); } catch (TimeoutException e) { logger.error("Messaggio di errore non trovato: " + e.getMessage()); - Assert.fail("Messaggio di errore non trovato: " + e.getMessage()); + Assertions.fail("Messaggio di errore non trovato: " + e.getMessage()); } } @@ -597,7 +597,7 @@ public void clickResettaFiltri() { } public void checkCampiPuliti() { - Assert.assertTrue("I campi non sono puliti", numeroTicketInput.getAttribute("value").isEmpty() && codiceFiscaleInput.getAttribute("value").isEmpty()); + Assertions.assertTrue(numeroTicketInput.getAttribute("value").isEmpty() && codiceFiscaleInput.getAttribute("value").isEmpty(),"I campi non sono puliti"); logger.info("I campi sono puliti"); } @@ -615,7 +615,7 @@ public void checkCodiceFiscale() { logger.info("codice fiscale corrispondente"); } else { logger.error("codice fiscale diverso"); - Assert.fail("dopo ricerca di corrispondenza il codice fiscale risulta differente"); + Assertions.fail("dopo ricerca di corrispondenza il codice fiscale risulta differente"); } } diff --git a/src/main/java/it/pn/frontend/e2e/common/NotificheDestinatarioPage.java b/src/main/java/it/pn/frontend/e2e/common/NotificheDestinatarioPage.java index d6c3fd22c..18cae6133 100644 --- a/src/main/java/it/pn/frontend/e2e/common/NotificheDestinatarioPage.java +++ b/src/main/java/it/pn/frontend/e2e/common/NotificheDestinatarioPage.java @@ -1,7 +1,7 @@ package it.pn.frontend.e2e.common; import it.pn.frontend.e2e.utility.WebTool; -import org.junit.Assert; +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.By; import org.openqa.selenium.TimeoutException; import org.openqa.selenium.WebDriver; @@ -37,7 +37,7 @@ public boolean verificaCodiceIUN(String codiceIUNInserito) { return true; }catch (TimeoutException e){ logger.error("Il codice IUN"+codiceIUNInserito+" non è stato trovato con errore:"+e.getMessage()); - Assert.fail("Il codice IUN"+codiceIUNInserito+" non è stato trovato con errore:"+e.getMessage()); + Assertions.fail("Il codice IUN"+codiceIUNInserito+" non è stato trovato con errore:"+e.getMessage()); } return false; } diff --git a/src/main/java/it/pn/frontend/e2e/common/RecapitiDestinatarioPage.java b/src/main/java/it/pn/frontend/e2e/common/RecapitiDestinatarioPage.java index 5f024c9a7..39eec9e7c 100644 --- a/src/main/java/it/pn/frontend/e2e/common/RecapitiDestinatarioPage.java +++ b/src/main/java/it/pn/frontend/e2e/common/RecapitiDestinatarioPage.java @@ -1,7 +1,7 @@ package it.pn.frontend.e2e.common; import it.pn.frontend.e2e.utility.WebTool; -import org.junit.Assert; +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.*; import org.openqa.selenium.support.FindBy; import org.openqa.selenium.support.ui.ExpectedConditions; @@ -142,17 +142,17 @@ public void waitLoadPopUp() { getWebDriverWait(10).withMessage("La scritta 'Inserisci codice' non viene visualizzata correttamente").until(ExpectedConditions.visibilityOfElementLocated(titleOption)); getWebDriverWait(10).withMessage("Le input boxes non vengono visualizzate").until(ExpectedConditions.visibilityOfAllElements(inputBoxes)); if (inputBoxes.size() != 5) { - Assert.fail("Il numero di input box non è corretto"); + Assertions.fail("Il numero di input box non è corretto"); } getWebDriverWait(10).until(ExpectedConditions.visibilityOfElementLocated(footerNotReceived)); boolean checkButton = !confermaButtonPopUp.isEnabled() && annullaButton.isEnabled(); if (!checkButton) { - Assert.fail("i pulsanti all'interno del pop-up non rispettano le condizioni"); + Assertions.fail("i pulsanti all'interno del pop-up non rispettano le condizioni"); } logger.info("Il pop-up di conferma viene visualizzato correttamente"); } catch (TimeoutException e) { logger.error("Il pop-up di conferma NON viene visualizzato correttamente con errori: " + e.getMessage()); - Assert.fail("Il pop-up di conferma NON viene visualizzato correttamente con errori:" + e.getMessage()); + Assertions.fail("Il pop-up di conferma NON viene visualizzato correttamente con errori:" + e.getMessage()); } } @@ -168,7 +168,7 @@ public void sendOTP(String otp) { logger.info("Il codice otp viene inserito correttamente"); } catch (TimeoutException e) { logger.error("Il codice otp NON viene inserito correttamente con errore:" + e.getMessage()); - Assert.fail("Il codice otp NON viene inserito correttamente con errore:" + e.getMessage()); + Assertions.fail("Il codice otp NON viene inserito correttamente con errore:" + e.getMessage()); } } @@ -213,7 +213,7 @@ public void annullaButtonClick() { this.annullaButton.click(); } catch (TimeoutException e) { logger.error("Il bottone annulla non è cliccabile con errore: " + e.getMessage()); - Assert.fail("Il bottone annulla non è cliccabile con errore: " + e.getMessage()); + Assertions.fail("Il bottone annulla non è cliccabile con errore: " + e.getMessage()); } } @@ -285,7 +285,7 @@ public void visualizzaValidazione() { getWebDriverWait(10).until(ExpectedConditions.visibilityOfElementLocated(pecAssociata)); } catch (TimeoutException e) { logger.error("Pec non associata con errore:" + e.getMessage()); - Assert.fail("Pec non associata con errore:" + e.getMessage()); + Assertions.fail("Pec non associata con errore:" + e.getMessage()); } } @@ -344,7 +344,7 @@ public void clickSuModificaPEC() { this.element(modificaButtonBy).click(); } catch (TimeoutException e) { logger.error("Non si riesce a cliccare o vedere il bottone modifica PEC con errore:" + e.getMessage()); - Assert.fail("Non si riesce a cliccare o vedere il bottone modifica PEC con errore:" + e.getMessage()); + Assertions.fail("Non si riesce a cliccare o vedere il bottone modifica PEC con errore:" + e.getMessage()); } } @@ -356,7 +356,7 @@ public void cancellaTesto() { logger.info("testo email pec cancellata"); } catch (TimeoutException e) { logger.error("Non si riesce a cancellare il testo della email PEC :" + e.getMessage()); - Assert.fail("Non si riesce a cancellare il testo della email PEC :" + e.getMessage()); + Assertions.fail("Non si riesce a cancellare il testo della email PEC :" + e.getMessage()); } } @@ -622,7 +622,7 @@ public void checkButtonAnnullaEliminazioneInPopUp() { logger.info("pulsante annulla eliminazione visibile"); } catch (TimeoutException e) { logger.error("caricamento pop-up con errore:" + e.getMessage()); - Assert.fail("caricamento pop-up con errore:" + e.getMessage()); + Assertions.fail("caricamento pop-up con errore:" + e.getMessage()); } } @@ -638,7 +638,7 @@ public void checkEmailPrecedentementeSalvata(String email) { logger.info("la mail associata risulta uguale alla precedente"); } else { logger.error("la mail associata é diversa dalla precedentemente salvata"); - Assert.fail("la mail associata é diversa dalla precedentemente salvata"); + Assertions.fail("la mail associata é diversa dalla precedentemente salvata"); } } @@ -650,7 +650,7 @@ public void verificaPecModificabile() { logger.info("pec modificabile"); } catch (TimeoutException e) { logger.error("pec non modificabile con errore:" + e.getMessage()); - Assert.fail("pec non modificabile con errore:" + e.getMessage()); + Assertions.fail("pec non modificabile con errore:" + e.getMessage()); } } @@ -662,7 +662,7 @@ public void verificaPecNonModificabile() { logger.info("pec non modificabile"); } catch (TimeoutException e) { logger.error("pec modificabile con errore:" + e.getMessage()); - Assert.fail("pec modificabile con errore:" + e.getMessage()); + Assertions.fail("pec modificabile con errore:" + e.getMessage()); } } @@ -706,7 +706,7 @@ public void checkNumeroDiCellulareNonPresente() { )); } catch (TimeoutException e) { logger.error("Input numero di cellulare non visualizzato o non vuoto con errore: " + e.getMessage()); - Assert.fail("Input numero di cellulare non visualizzato o non vuoto con errore: " + e.getMessage()); + Assertions.fail("Input numero di cellulare non visualizzato o non vuoto con errore: " + e.getMessage()); } } @@ -715,7 +715,7 @@ public void checkCampoEmailModificabile() { getWebDriverWait(10).withMessage("Campo email non modificabile").until(ExpectedConditions.visibilityOf(inserimentoMailField)); } catch (TimeoutException e) { logger.error("Campo email non modificabile con errore: " + e.getMessage()); - Assert.fail("Campo email non modificabile con errore: " + e.getMessage()); + Assertions.fail("Campo email non modificabile con errore: " + e.getMessage()); } } @@ -733,7 +733,7 @@ public void checkDisclaimer() { ExpectedConditions.attributeToBe(confermaButtonBy, "disabled", "true"))); } catch (TimeoutException e) { logger.error("Qualche componente del pop up non viene visualizzato con errore: " + e.getMessage()); - Assert.fail("Qualche componente del pop up non viene visualizzato con errore: " + e.getMessage()); + Assertions.fail("Qualche componente del pop up non viene visualizzato con errore: " + e.getMessage()); } } @@ -746,7 +746,7 @@ public void checkMessaggioErroreTreTentativiOTPSbagliato() { logger.info("Si visualizza correttamente il messaggio di errore"); } else { logger.error("Non si visualizza il messaggio di errore"); - Assert.fail("Non si visualizza il messaggio di errore"); + Assertions.fail("Non si visualizza il messaggio di errore"); } By messageContainer = By.id("error-alert"); By modalErrorTitle = By.id("codeModalErrorTitle"); @@ -757,7 +757,7 @@ public void checkMessaggioErroreTreTentativiOTPSbagliato() { )); } catch (TimeoutException e) { logger.error("Il messaggio di errore non viene visualizzato correttamente con errore: " + e.getMessage()); - Assert.fail("Il messaggio di errore non viene visualizzato correttamente con errore: " + e.getMessage()); + Assertions.fail("Il messaggio di errore non viene visualizzato correttamente con errore: " + e.getMessage()); } } @@ -831,16 +831,16 @@ public void checkMessaggioDiErrore(String check){ String id = ""; if (check.equalsIgnoreCase("pec")){ id = "s_pec-helper-text"; - Assert.assertFalse("la textbox non presenta il bordo rosso",indirizzoPecField.getAttribute("aria-invalid").equalsIgnoreCase("false")); + Assertions.assertFalse(indirizzoPecField.getAttribute("aria-invalid").equalsIgnoreCase("false"),"la textbox non presenta il bordo rosso"); } if (check.equalsIgnoreCase("email")){ id = "s_mail-helper-text"; - Assert.assertFalse("la textbox non presenta il bordo rosso",emailField.getAttribute("aria-invalid").equalsIgnoreCase("false")); + Assertions.assertFalse(emailField.getAttribute("aria-invalid").equalsIgnoreCase("false"),"la textbox non presenta il bordo rosso"); } By errorMessage = By.id(id); getWebDriverWait(5).withMessage("Il messaggio di errore non è visibile").until(ExpectedConditions.visibilityOfElementLocated(errorMessage)); - Assert.assertNotNull("lIl bottone Associa è attivo", associaButton.getAttribute("disabled")); + Assertions.assertNotNull("lIl bottone Associa è attivo", associaButton.getAttribute("disabled")); } public void clearMailbox(String check){ diff --git a/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java b/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java index 21f816dc9..24b695139 100644 --- a/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java +++ b/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java @@ -11,7 +11,7 @@ import it.pn.frontend.e2e.utility.CookieConfig; import lombok.Getter; import org.apache.commons.io.FileUtils; -import org.junit.Assert; +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.OutputType; import org.openqa.selenium.TakesScreenshot; import org.openqa.selenium.WebDriver; @@ -165,7 +165,7 @@ protected void edge() { if (this.os.toLowerCase().contains("windows")) { WebDriverManager.edgedriver().setup(); } else { - Assert.fail("browser edge non compatibile con il os : " + this.os); + Assertions.fail("browser edge non compatibile con il os : " + this.os); } EdgeOptions edgeOptions = new EdgeOptions(); edgeOptions.setCapability("ms:inPrivate", true); @@ -199,7 +199,7 @@ public void startScenario(Scenario scenario) { String browser = null; if (System.getProperty("browser") == null) { - Assert.fail("valorizzare la variabile browser"); + Assertions.fail("valorizzare la variabile browser"); } else { browser = System.getProperty("browser"); } @@ -207,7 +207,7 @@ public void startScenario(Scenario scenario) { this.headless = System.getProperty("headless"); } if (System.getProperty("environment") == null) { - Assert.fail("valorizzare la variabile environment"); + Assertions.fail("valorizzare la variabile environment"); } switch (browser) { case "firefox" -> firefox(); @@ -215,7 +215,7 @@ public void startScenario(Scenario scenario) { case "edge" -> edge(); default -> { logger.error("browser not correct"); - Assert.fail("browser not correct"); + Assertions.fail("browser not correct"); } } cookieConfig.addCookie(); diff --git a/src/main/java/it/pn/frontend/e2e/model/radd/StartTransaction/StartTransactionRequest.java b/src/main/java/it/pn/frontend/e2e/model/radd/StartTransaction/StartTransactionRequest.java index 161a6f4a5..61c042c1a 100644 --- a/src/main/java/it/pn/frontend/e2e/model/radd/StartTransaction/StartTransactionRequest.java +++ b/src/main/java/it/pn/frontend/e2e/model/radd/StartTransaction/StartTransactionRequest.java @@ -1,19 +1,10 @@ package it.pn.frontend.e2e.model.radd.StartTransaction; import com.fasterxml.jackson.annotation.JsonInclude; -import com.google.gson.internal.bind.DefaultDateTypeAdapter; -import io.cucumber.messages.types.Hook; -import it.pn.frontend.e2e.listeners.Hooks; import lombok.Data; -import lombok.NonNull; -import lombok.RequiredArgsConstructor; - import java.time.Instant; -import java.time.LocalDate; -import java.time.ZonedDateTime; import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatterBuilder; -import java.util.UUID; @Data @JsonInclude(JsonInclude.Include.NON_NULL) diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/DestinatarioPage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/DestinatarioPage.java index 0663295d6..67b305bf2 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/DestinatarioPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/DestinatarioPage.java @@ -17,7 +17,7 @@ import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; -import org.junit.Assert; +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.By; import org.openqa.selenium.TimeoutException; import org.openqa.selenium.WebDriver; @@ -78,11 +78,11 @@ public boolean isDateBoxInvalid() { log.info("Almeno un campo data è in stato invalido"); } else { log.error("Nessuno dei campi data è passato allo stato invalido"); - Assert.fail("Nessuno dei campi data è passato allo stato invalido"); + Assertions.fail("Nessuno dei campi data è passato allo stato invalido"); } } catch (TimeoutException e) { log.error("Campi data non visualizzati correttamente con errore: " + e.getMessage()); - Assert.fail("Campi data non visualizzati correttamente con errore: " + e.getMessage()); + Assertions.fail("Campi data non visualizzati correttamente con errore: " + e.getMessage()); } return invalidBoxDate; } @@ -148,7 +148,7 @@ public void checkBannerAnnullamentoNotifica() { public void checkCreateNewNotification() throws RestNotificationException { int maxAttempts = 4; int attempt = 1; - Assert.assertNotNull("Non può essere creata una notifica senza alcun destinatario", notificationRequest.getRecipients()); + Assertions.assertNotNull(notificationRequest.getRecipients(),"Non può essere creata una notifica senza alcun destinatario"); while (attempt <= maxAttempts) { NewNotificationResponse responseOfCreateNotification = restNotification.newNotificationWithOneRecipientAndDocument(notificationRequest); @@ -158,7 +158,7 @@ public void checkCreateNewNotification() throws RestNotificationException { LinkedTreeMap getNotificationStatus; String notificationStatus; do { - Assert.assertTrue("La notifica risulta ancora in stato WAITING dopo 5 tentativi", maxAttemptsPolling <= 4); + Assertions.assertTrue(maxAttemptsPolling <= 4,"La notifica risulta ancora in stato WAITING dopo 5 tentativi"); log.info(responseOfCreateNotification.getNotificationRequestId()); getNotificationStatus = restNotification.getNotificationStatus(responseOfCreateNotification.getNotificationRequestId()); notificationStatus = getNotificationStatus.get("notificationRequestStatus").toString(); @@ -181,11 +181,11 @@ public void checkCreateNewNotification() throws RestNotificationException { } } log.error("Errore nella creazione della notifica per PF dopo {} tentativi", maxAttempts); - Assert.fail("Errore nella creazione della notifica dopo " + maxAttempts + " tentativi"); + Assertions.fail("Errore nella creazione della notifica dopo " + maxAttempts + " tentativi"); } public void aggiuntaDestinatarioANotifica(Map datiDestinatario) { - Assert.assertTrue("Non è possibile aggiungere un ulteriore destinatario", destinatariNumber <= 4); + Assertions.assertTrue(destinatariNumber <= 4,"Non è possibile aggiungere un ulteriore destinatario"); log.info("Si procede con l'inserimento del destinatario nella notifica"); String costiNotifica = "false"; if (notificationRequest.getNotificationFeePolicy() == NotificationFeePolicyEnum.DELIVERY_MODE) { diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java index 3e34d09e2..4bbec878f 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java @@ -2,7 +2,6 @@ import it.pn.frontend.e2e.common.BasePage; import it.pn.frontend.e2e.utility.WebTool; -import org.junit.Assert; import org.openqa.selenium.*; import org.openqa.selenium.support.FindBy; import org.openqa.selenium.support.ui.ExpectedConditions; diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/ComeVuoiAccederePage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/ComeVuoiAccederePage.java index 45718e777..940d30f0a 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/ComeVuoiAccederePage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/ComeVuoiAccederePage.java @@ -1,7 +1,7 @@ package it.pn.frontend.e2e.pages.destinatario.personaFisica; import it.pn.frontend.e2e.common.BasePage; -import org.junit.Assert; +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.By; import org.openqa.selenium.TimeoutException; import org.openqa.selenium.WebDriver; @@ -29,7 +29,7 @@ public void waitLoadComeVuoiAccederePage(){ logger.info("Come Vuoi Accedere Page caricata"); }catch (TimeoutException e){ logger.error("Come Vuoi Accedere Page non caricata con errore : "+e.getMessage()); - Assert.fail("Come Vuoi Accedere Page non caricata con errore : "+e.getMessage()); + Assertions.fail("Come Vuoi Accedere Page non caricata con errore : "+e.getMessage()); } } diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/ConfermaDatiSpidPFPage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/ConfermaDatiSpidPFPage.java index 64c10c4af..2113e9df1 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/ConfermaDatiSpidPFPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/ConfermaDatiSpidPFPage.java @@ -1,7 +1,7 @@ package it.pn.frontend.e2e.pages.destinatario.personaFisica; import it.pn.frontend.e2e.common.BasePage; -import org.junit.Assert; +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.By; import org.openqa.selenium.TimeoutException; import org.openqa.selenium.WebDriver; @@ -41,7 +41,7 @@ public void waitLoadConfermaDatiSpidDEPage(){ logger.info("Conferma Dati Spid DE Page caricata"); }catch (TimeoutException e){ logger.error("Conferma Dati Spid DE Page non caricata con errore : "+e.getMessage()); - Assert.fail("Conferma Dati Spid DE Page non caricata con errore : "+e.getMessage()); + Assertions.fail("Conferma Dati Spid DE Page non caricata con errore : "+e.getMessage()); } } diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/DeleghePage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/DeleghePage.java index b40c7670d..a9c7a170c 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/DeleghePage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/DeleghePage.java @@ -2,7 +2,7 @@ import it.pn.frontend.e2e.common.BasePage; import it.pn.frontend.e2e.utility.WebTool; -import org.junit.Assert; +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.*; import org.openqa.selenium.support.FindBy; import org.openqa.selenium.support.ui.ExpectedConditions; @@ -39,7 +39,7 @@ public void waitDeleghePage() { this.logger.info("Il titolo o il bottone aggiungi delega è visibile nella pagina aggiungiDeleghe"); } catch (TimeoutException e) { logger.error("Il titolo o il bottone aggiungi delega non è visibile nella pagina aggiungiDeleghe con errore : " + e.getMessage()); - Assert.fail("Il titolo o il bottone aggiungi delega non è visibile nella pagina aggiungiDeleghe con errore : " + e.getMessage()); + Assertions.fail("Il titolo o il bottone aggiungi delega non è visibile nella pagina aggiungiDeleghe con errore : " + e.getMessage()); } } @@ -59,7 +59,7 @@ public void controlloCreazioneDelega() { this.logger.info("Si visualizza la delega creata"); } catch (TimeoutException e) { logger.error("Non si visualizza la delega creata"); - Assert.fail("Non si visualizza la delega creata"); + Assertions.fail("Non si visualizza la delega creata"); } } @@ -108,7 +108,7 @@ public void clickMenuDelegante(String fullName) { } } else { logger.error("Non è stato trovato nessun delegato con il nome: " + fullName); - Assert.fail("Non è stato trovato nessun delegato con il nome: " + fullName); + Assertions.fail("Non è stato trovato nessun delegato con il nome: " + fullName); } } @@ -123,7 +123,7 @@ public void clickMenuDelegato(String fullName) { logger.info("Cliccato correttamente su menu delega button"); } else { logger.error("Non è stato trovato nessun delegato con il nome: " + fullName); - Assert.fail("Non è stato trovato nessun delegato con il nome: " + fullName); + Assertions.fail("Non è stato trovato nessun delegato con il nome: " + fullName); } } @@ -139,7 +139,7 @@ public void siCliccaSulBottoneChiudi() { this.element(closeCodiceButtonBy).click(); } catch (TimeoutException e) { logger.error("Il bottone chiudi viene visualizzato NON correttamente con errore:" + e.getMessage()); - Assert.fail("Il bottone chiudi viene visualizzato NON correttamente con errore:" + e.getMessage()); + Assertions.fail("Il bottone chiudi viene visualizzato NON correttamente con errore:" + e.getMessage()); } } @@ -155,7 +155,7 @@ public void clickMenuPerRifiuto(String nome, String cognome) { this.element(menuDelegheBy).click(); } catch (TimeoutException e) { logger.error("Non si visualizza correttamente il menu della delega con errore:" + e.getMessage()); - Assert.fail("Non si visualizza correttamente il menu della delega con errore:" + e.getMessage()); + Assertions.fail("Non si visualizza correttamente il menu della delega con errore:" + e.getMessage()); } } @@ -167,7 +167,7 @@ public void clickRifiuta() { logger.info("Si visualizza il bottone rifiuta"); } catch (TimeoutException e) { logger.error("Non si visualizza correttamente il bottone rifiuta con errore: " + e.getMessage()); - Assert.fail("Non si visualizza correttamente il bottone rifiuta con errore: " + e.getMessage()); + Assertions.fail("Non si visualizza correttamente il bottone rifiuta con errore: " + e.getMessage()); } } @@ -179,7 +179,7 @@ public void clickRifiutaPopUp() { logger.info("Si visualizza il bottone rifiuta nel pop-up"); } catch (TimeoutException e) { logger.error("Non si visualizza correttamente il bottone rifiuta pop-up con errore: " + e.getMessage()); - Assert.fail("Non si visualizza correttamente il bottone rifiuta pop-up errore: " + e.getMessage()); + Assertions.fail("Non si visualizza correttamente il bottone rifiuta pop-up errore: " + e.getMessage()); } } @@ -191,7 +191,7 @@ public void clickAnnullaPopUp() { logger.info("Si visualizza il bottone Annulla nel pop-up"); } catch (TimeoutException e) { logger.error("Non si clicca correttamente sul bottone Annulla pop-up con errore: " + e.getMessage()); - Assert.fail("Non si clicca correttamente sul bottone Annulla pop-up errore: " + e.getMessage()); + Assertions.fail("Non si clicca correttamente sul bottone Annulla pop-up errore: " + e.getMessage()); } } @@ -255,7 +255,7 @@ public void checkModaleMostraCodice() { } }catch (TimeoutException e ){ logger.error("modale mostra codice non caricata con errore: " + e.getMessage()); - Assert.fail("modale mostra codice non caricata con errore: " + e.getMessage()); + Assertions.fail("modale mostra codice non caricata con errore: " + e.getMessage()); } } public void clickAnnullaRevoca(){ diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/ITuoiRecapitiPage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/ITuoiRecapitiPage.java index f354fb6f1..05625084e 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/ITuoiRecapitiPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/ITuoiRecapitiPage.java @@ -1,7 +1,7 @@ package it.pn.frontend.e2e.pages.destinatario.personaFisica; import it.pn.frontend.e2e.common.BasePage; -import org.junit.Assert; +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.*; import org.openqa.selenium.support.FindBy; import org.openqa.selenium.support.ui.ExpectedConditions; @@ -38,7 +38,7 @@ public void iTuoiRecapitiButtonClick() { this.js().executeScript("arguments[0].click()", this.iTuoiRecapitiButton); } catch (TimeoutException e) { logger.error("il bottone i tuoi Recapiti non trovato o non è cliccabile: " + e.getMessage()); - Assert.fail("il bottone i tuoi Recapiti non trovato o non è cliccabile: " + e.getMessage()); + Assertions.fail("il bottone i tuoi Recapiti non trovato o non è cliccabile: " + e.getMessage()); } } @@ -55,7 +55,7 @@ public void waitLoadITuoiRecapitiPage() { logger.info("La pagina I Tuoi Recapiti si vede correttamente"); } catch (TimeoutException e) { logger.error("La pagina I Tuoi Recapiti NON si vede correttamente con errori:" + e.getMessage()); - Assert.fail("La pagina I Tuoi Recapiti NON si vede correttamente con errori:" + e.getMessage()); + Assertions.fail("La pagina I Tuoi Recapiti NON si vede correttamente con errori:" + e.getMessage()); } } @@ -86,7 +86,7 @@ public void waitLoadCourtesyContacts() { logger.info("Il contatto di cortesia si visualizza correttamente"); } catch (TimeoutException e) { logger.error("il contatto di cortesia non si visualizza correttamente con errori:" + e.getMessage()); - Assert.fail("il contatto di cortesia non si visualizza correttamente con errori:" + e.getMessage()); + Assertions.fail("il contatto di cortesia non si visualizza correttamente con errori:" + e.getMessage()); } } @@ -103,7 +103,7 @@ public void sendOTP(String otp) { logger.info("Il codice otp viene inserito correttamente"); } catch (TimeoutException e) { logger.error("Il codice otp NON viene inserito correttamente con errore:" + e.getMessage()); - Assert.fail("Il codice otp NON viene inserito correttamente con errore:" + e.getMessage()); + Assertions.fail("Il codice otp NON viene inserito correttamente con errore:" + e.getMessage()); } } @@ -165,7 +165,7 @@ public void cancellaTesto() { } } catch (TimeoutException e) { logger.error("Non si riesce ad cancellare il testo della email :" + e.getMessage()); - Assert.fail("Non si riesce ad cancellare il testo della email :" + e.getMessage()); + Assertions.fail("Non si riesce ad cancellare il testo della email :" + e.getMessage()); } } @@ -246,7 +246,7 @@ public void checkRiquadroPEC() { logger.info("Il riquadro PEC si visualizza correttamente"); } catch (TimeoutException e) { logger.error("Il riquadro PEC NON si visualizza correttamente con errori:" + e.getMessage()); - Assert.fail("Il riquadro PEC NON si visualizza correttamente con errori:" + e.getMessage()); + Assertions.fail("Il riquadro PEC NON si visualizza correttamente con errori:" + e.getMessage()); } } } diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/LoginSpidPFPage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/LoginSpidPFPage.java index f16f8b4ba..538300c7e 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/LoginSpidPFPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/LoginSpidPFPage.java @@ -1,7 +1,7 @@ package it.pn.frontend.e2e.pages.destinatario.personaFisica; import it.pn.frontend.e2e.common.BasePage; -import org.junit.Assert; +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.By; import org.openqa.selenium.TimeoutException; import org.openqa.selenium.WebDriver; @@ -36,7 +36,7 @@ public void waitLoadLoginSpidDEPage(){ logger.info("Login Spid DE Page caricata"); }catch (TimeoutException e){ logger.error("Login Spid DE Page non caricata con errore : "+e.getMessage()); - Assert.fail("Login Spid DE Page non caricata con errore : "+e.getMessage()); + Assertions.fail("Login Spid DE Page non caricata con errore : "+e.getMessage()); } } diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/NotifichePFPage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/NotifichePFPage.java index e927f6876..25ab9350e 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/NotifichePFPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/NotifichePFPage.java @@ -2,7 +2,7 @@ import it.pn.frontend.e2e.common.BasePage; import it.pn.frontend.e2e.utility.WebTool; -import org.junit.Assert; +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.*; import org.openqa.selenium.support.FindBy; import org.openqa.selenium.support.ui.ExpectedConditions; @@ -236,7 +236,7 @@ public void waitLoadSecondaPagina() { logger.info("Si visualizza una pagina differente dalla precedente"); } else { logger.error("Non si visualizza una pagina differente dalla precedente"); - Assert.fail("Non si visualizza una pagina differente dalla precedente"); + Assertions.fail("Non si visualizza una pagina differente dalla precedente"); } } @@ -313,7 +313,7 @@ public void clickRimuoviFiltriButton() { public void firstPageDisplayed() { String isPageSelected = paginaPrima.getAttribute("aria-current"); - Assert.assertTrue(isPageSelected.equalsIgnoreCase("true")); + Assertions.assertTrue(isPageSelected.equalsIgnoreCase("true")); logger.info("Si visualizza prima pagina"); } diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/ScegliSpidPFPage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/ScegliSpidPFPage.java index 78f967336..cc97f9caf 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/ScegliSpidPFPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/ScegliSpidPFPage.java @@ -1,7 +1,7 @@ package it.pn.frontend.e2e.pages.destinatario.personaFisica; import it.pn.frontend.e2e.common.BasePage; -import org.junit.Assert; +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.By; import org.openqa.selenium.TimeoutException; import org.openqa.selenium.WebDriver; @@ -29,7 +29,7 @@ public void waitLoadScegliSpidDEPage(){ logger.info("Scegli Spid DE Page caricata"); }catch (TimeoutException e){ logger.error("Scegli Spid DE Page non caricata con errore : "+e.getMessage()); - Assert.fail("Scegli Spid DE Page non caricata con errore : "+e.getMessage()); + Assertions.fail("Scegli Spid DE Page non caricata con errore : "+e.getMessage()); } } diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/AccediAreaRiservataPGPage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/AccediAreaRiservataPGPage.java index 13561b348..069e12c0a 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/AccediAreaRiservataPGPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/AccediAreaRiservataPGPage.java @@ -1,7 +1,7 @@ package it.pn.frontend.e2e.pages.destinatario.personaGiuridica; import it.pn.frontend.e2e.common.BasePage; -import org.junit.Assert; +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.By; import org.openqa.selenium.TimeoutException; import org.openqa.selenium.WebDriver; @@ -29,7 +29,7 @@ public void waitLoadAccediAreaRiservataPGPage() { logger.info("AccediAreaRiservaPage caricata correttamente"); } catch (TimeoutException e ){ logger.error("Accedi Area Riservata Page non caricata correttamente con errore: "+e.getMessage()); - Assert.fail("Accedi Area Riservata Page non caricata correttamente con errore: "+e.getMessage()); + Assertions.fail("Accedi Area Riservata Page non caricata correttamente con errore: "+e.getMessage()); } } diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/AutorizzaInvioDatiPGPage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/AutorizzaInvioDatiPGPage.java index 700ba8052..2a48729c5 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/AutorizzaInvioDatiPGPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/AutorizzaInvioDatiPGPage.java @@ -1,7 +1,7 @@ package it.pn.frontend.e2e.pages.destinatario.personaGiuridica; import it.pn.frontend.e2e.common.BasePage; -import org.junit.Assert; +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.By; import org.openqa.selenium.TimeoutException; import org.openqa.selenium.WebDriver; @@ -29,7 +29,7 @@ public void waitLoadAutorizzaInvioDatiPGPage() { logger.info("AutorizzaInviaDatiPGPage caricata correttamente"); } catch (TimeoutException e){ logger.error("AutorizzaInviaDatiPGPage non caricata correttamente con errore: "+e.getMessage()); - Assert.fail("AutorizzaInviaDatiPGPage non caricata correttamente con errore: "+e.getMessage()); + Assertions.fail("AutorizzaInviaDatiPGPage non caricata correttamente con errore: "+e.getMessage()); } } diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/DeleghePGPagoPAPage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/DeleghePGPagoPAPage.java index 60d408b05..738b7746a 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/DeleghePGPagoPAPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/DeleghePGPagoPAPage.java @@ -1,8 +1,7 @@ package it.pn.frontend.e2e.pages.destinatario.personaGiuridica; import it.pn.frontend.e2e.common.BasePage; -import it.pn.frontend.e2e.utility.WebTool; -import org.junit.Assert; +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.*; import org.openqa.selenium.support.FindBy; import org.openqa.selenium.support.ui.ExpectedConditions; @@ -98,7 +97,7 @@ public void waitLoadDeleghePage() { logger.info("Deleghe page si visualizza correttamente"); } catch (TimeoutException e) { logger.error("Deleghe page non si visualizza correttamente con errore: " + e.getMessage()); - Assert.fail("Deleghe page non si visualizza correttamente con errore: " + e.getMessage()); + Assertions.fail("Deleghe page non si visualizza correttamente con errore: " + e.getMessage()); } } @@ -109,7 +108,7 @@ public void clickDelegatiImpresa() { logger.info("Bottone delegati dell impresa cliccato"); } catch (TimeoutException e) { logger.error("il bottone delegati imprese non è cliccabile" + e.getMessage()); - Assert.fail("il bottone delegati imprese non è cliccabile" + e.getMessage()); + Assertions.fail("il bottone delegati imprese non è cliccabile" + e.getMessage()); } } @@ -151,7 +150,7 @@ public void verificaPresenzaElencoDeleghe() { logger.info("L'elenco delle deleghe si visualizza correttamente"); } catch (TimeoutException e) { logger.error("L'elenco delle deleghe non si visualizza correttamente con errore: " + e.getMessage()); - Assert.fail("L'elenco delle deleghe non si visualizza correttamente con errore: " + e.getMessage()); + Assertions.fail("L'elenco delle deleghe non si visualizza correttamente con errore: " + e.getMessage()); } } @@ -170,7 +169,7 @@ public boolean controlloDelegaRestituita(String ragioneSociale) { logger.info("controllo ragione sociale"); } catch (TimeoutException e) { logger.error("ragione sociale non caricata" + e.getMessage()); - Assert.fail("ragione sociale non caricata" + e.getMessage()); + Assertions.fail("ragione sociale non caricata" + e.getMessage()); } logger.info("ragione sociale caricata correttamente"); return this.elements(delegaBy).size() == 1; @@ -190,7 +189,7 @@ public void waitLoadPopUpGruppo() { this.logger.info("Si vede correttamente il pop-up di assegnazione gruppo"); } catch (TimeoutException e) { this.logger.error("Non si vede correttamente il pop-up di assegnazione gruppo con errore: " + e.getMessage()); - Assert.fail("Non si vede correttamente il pop-up di assegnazione gruppo con errore: " + e.getMessage()); + Assertions.fail("Non si vede correttamente il pop-up di assegnazione gruppo con errore: " + e.getMessage()); } } @@ -239,7 +238,7 @@ public void controlloStatoAttiva(String ragioneSociale) { logger.info("La delega ha lo stato Attiva"); } catch (TimeoutException e) { logger.error("La delega NON ha lo stato Attiva con errore: " + e.getMessage()); - Assert.fail("La delega NON ha lo stato Attiva con errore: " + e.getMessage()); + Assertions.fail("La delega NON ha lo stato Attiva con errore: " + e.getMessage()); } } @@ -266,7 +265,7 @@ public void waitLoadPopUpRevoca() { this.logger.info("Si visualizza il pop-up rifiuta delega"); } catch (TimeoutException e) { this.logger.error("Non si visualizza il pop-up rifiuta delega con errore: " + e.getMessage()); - Assert.fail("Non si visualizza il pop-up rifiuta delega con errore: " + e.getMessage()); + Assertions.fail("Non si visualizza il pop-up rifiuta delega con errore: " + e.getMessage()); } } @@ -276,7 +275,7 @@ public void clickOpzioneModifica() { this.opzioneModifica.click(); } catch (TimeoutException e) { logger.error(" errore: " + e.getMessage()); - Assert.fail(" errore: " + e.getMessage()); + Assertions.fail(" errore: " + e.getMessage()); } } @@ -287,7 +286,7 @@ public void waitLoadPopUpModifica() { logger.info("Si visualizza correttamente il pop-up"); } catch (TimeoutException e) { logger.error("NON Si visualizza correttamente il pop-up con errore: " + e.getMessage()); - Assert.fail("NON Si visualizza correttamente il pop-up con errore: " + e.getMessage()); + Assertions.fail("NON Si visualizza correttamente il pop-up con errore: " + e.getMessage()); } } @@ -344,7 +343,7 @@ public void checkAlertWrongDelegationCode() { logger.info("Alert chiusa"); } catch (TimeoutException e) { logger.error("Alert non visualizzato con errore: " + e.getMessage()); - Assert.fail("Alert non visualizzato con errore: " + e.getMessage()); + Assertions.fail("Alert non visualizzato con errore: " + e.getMessage()); } } @@ -358,7 +357,7 @@ public void clickButtonIndietroDaAssegnaGruppo() { logger.info("Bottone indietro cliccato"); } catch (TimeoutException e) { logger.error("Bottone non visualizzato con errore " + e.getMessage()); - Assert.fail("Bottone non visualizzato con errore: " + e.getMessage()); + Assertions.fail("Bottone non visualizzato con errore: " + e.getMessage()); } } @@ -390,7 +389,7 @@ public void checkTextboxCodiceSonoRosse() { logger.info("Textbox di input codice delega invalido"); } else { logger.error("Almeno una textbox di input codice delega non in stato invalido"); - Assert.fail("Almeno una textbox di input codice delega non in stato invalido"); + Assertions.fail("Almeno una textbox di input codice delega non in stato invalido"); } } @@ -402,7 +401,7 @@ public void checkErroreInSelezioneGruppo() { logger.info("testo di errore gruppo trovato con successo"); }catch (TimeoutException e){ logger.error("errore in cattura testo di errore ricerca gruppo per assegnazione con errore:" + e.getMessage()); - Assert.fail("errore in cattura testo di errore ricerca gruppo per assegnazione con errore:" + e.getMessage()); + Assertions.fail("errore in cattura testo di errore ricerca gruppo per assegnazione con errore:" + e.getMessage()); } } @@ -436,7 +435,7 @@ public void checkTabellaDelegheACaricoDellImpresa() { getWebDriverWait(10).withMessage("menu non caricato correttamente").until(ExpectedConditions.visibilityOfElementLocated(menuDelega)); } catch (TimeoutException e) { logger.error("tabella deleghe a carico dell impresa non caricata correttamente" + e.getMessage()); - Assert.fail("tabella deleghe a carico dell impresa non caricata correttamente" + e.getMessage()); + Assertions.fail("tabella deleghe a carico dell impresa non caricata correttamente" + e.getMessage()); } } diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/DisserviziAppPage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/DisserviziAppPage.java index 928283d80..0d69fba4d 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/DisserviziAppPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/DisserviziAppPage.java @@ -1,7 +1,7 @@ package it.pn.frontend.e2e.pages.destinatario.personaGiuridica; import it.pn.frontend.e2e.common.BasePage; -import org.junit.Assert; +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.By; import org.openqa.selenium.TimeoutException; import org.openqa.selenium.WebDriver; @@ -30,7 +30,7 @@ public void waitLoadStatoDellaPiattaformaPage() { logger.info("Si visualizza correttamente la sezione disservizi"); } catch (TimeoutException e) { logger.error("Non si visualizza correttamente la sezione disservizi con errore:" + e.getMessage()); - Assert.fail("Non si visualizza correttamente la sezione disservizi con errore" + e.getMessage()); + Assertions.fail("Non si visualizza correttamente la sezione disservizi con errore" + e.getMessage()); } } @@ -45,7 +45,7 @@ public void checkDatiPaginaDisservizi() { this.getWebDriverWait(10).withMessage("ultimo aggiornamento stato piattaforma non presente").until(ExpectedConditions.visibilityOfElementLocated(dateLastCheck)); } catch (TimeoutException e) { logger.error("Dati presenti nella pagina stato della piattaforma non corretti: " + e.getMessage()); - Assert.fail("Dati presenti nella pagina stato della piattaforma non corretti: " + e.getMessage()); + Assertions.fail("Dati presenti nella pagina stato della piattaforma non corretti: " + e.getMessage()); } } @@ -66,7 +66,7 @@ public void checkElencoDisservizi() { logger.info("Si visualizza correttamente l'elenco dei disservizi"); } catch (Exception e) { logger.error("NON si visualizza correttamente l'elenco dei disservizi con errore:" + e.getMessage()); - Assert.fail("NON si visualizza correttamente l'elenco dei disservizi con errore:" + e.getMessage()); + Assertions.fail("NON si visualizza correttamente l'elenco dei disservizi con errore:" + e.getMessage()); } } diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/GruppiPGPage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/GruppiPGPage.java index b97386fd9..c9f9c1876 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/GruppiPGPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/GruppiPGPage.java @@ -3,7 +3,7 @@ import it.pn.frontend.e2e.common.BasePage; import it.pn.frontend.e2e.utility.WebTool; import lombok.extern.slf4j.Slf4j; -import org.junit.Assert; +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; @@ -212,7 +212,7 @@ public void siModificaUnCampoDelGruppo(String campo, String modifica) { } } catch (InterruptedException e) { log.error("È fallita l'attesa prima della modifica del campo con errore: {}", e.getMessage()); - Assert.fail("È fallita l'attesa prima della modifica del campo con errore: " + e.getMessage()); + Assertions.fail("È fallita l'attesa prima della modifica del campo con errore: " + e.getMessage()); } } diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/HomePagePG.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/HomePagePG.java index 8c7d6c6d3..cedfb8804 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/HomePagePG.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/HomePagePG.java @@ -1,7 +1,7 @@ package it.pn.frontend.e2e.pages.destinatario.personaGiuridica; import it.pn.frontend.e2e.common.BasePage; -import org.junit.Assert; +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.*; import org.openqa.selenium.support.FindBy; import org.openqa.selenium.support.ui.ExpectedConditions; @@ -54,7 +54,7 @@ public void checkBottoneDeleghe() { isDisplayed = false; // Elemento non trovato } - Assert.assertTrue("Il side menu deleghe non è visibile", !isDisplayed); + Assertions.assertTrue(!isDisplayed,"Il side menu deleghe non è visibile"); } diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/LoginPGPagoPAPage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/LoginPGPagoPAPage.java index d6251d014..bc58c6c2b 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/LoginPGPagoPAPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/LoginPGPagoPAPage.java @@ -1,7 +1,7 @@ package it.pn.frontend.e2e.pages.destinatario.personaGiuridica; import it.pn.frontend.e2e.common.BasePage; -import org.junit.Assert; +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.By; import org.openqa.selenium.TimeoutException; import org.openqa.selenium.WebDriver; @@ -38,7 +38,7 @@ public void waitLoadLoginPGPage() { logger.info("LoginPGPage caricata correttamente"); } catch (TimeoutException e){ logger.error("LoginPGPage non caricata correttamente con errore :" +e.getMessage()); - Assert.fail("LoginPGPage non caricata correttamente con errore :" +e.getMessage()); + Assertions.fail("LoginPGPage non caricata correttamente con errore :" +e.getMessage()); } } diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/PiattaformaNotifichePGPAPage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/PiattaformaNotifichePGPAPage.java index 6121788ba..fa0144da9 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/PiattaformaNotifichePGPAPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/PiattaformaNotifichePGPAPage.java @@ -8,7 +8,7 @@ import it.pn.frontend.e2e.utility.WebTool; import net.lingala.zip4j.ZipFile; import org.apache.commons.io.FileUtils; -import org.junit.Assert; +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.*; import org.openqa.selenium.support.FindBy; import org.openqa.selenium.support.ui.ExpectedConditions; @@ -102,7 +102,7 @@ public void waitLoadPiattaformaNotificaPage(String ragioneSociale) { logger.info("La pagina Piattaforma Notifiche si carica correttamente"); } catch (TimeoutException e) { logger.error("La pagina Piattaforma Notifiche non si carica correttamente con errore: " + e.getMessage()); - Assert.fail("La pagina Piattaforma Notifiche non si carica correttamente con errore: " + e.getMessage()); + Assertions.fail("La pagina Piattaforma Notifiche non si carica correttamente con errore: " + e.getMessage()); } } @@ -113,7 +113,7 @@ public void clickSuDelegeButton() { logger.info("click sul bottone Deleghe effetuato"); } catch (TimeoutException e) { logger.error("il bottone deleghe non è stato trovato " + e.getMessage()); - Assert.fail("il bottone deleghe non è stato trovato" + e.getMessage()); + Assertions.fail("il bottone deleghe non è stato trovato" + e.getMessage()); } } @@ -135,7 +135,7 @@ public void waitLoadSezioneNotificheDelegate(String ragioneSociale) { logger.info("Si visualizza correttamente la sezione notifiche delegate"); } catch (TimeoutException e) { logger.error("Non si visualizza correttamente la sezione notifiche delegate con errore:" + e.getMessage()); - Assert.fail("Non si visualizza correttamente la sezione notifiche delegate con errore" + e.getMessage()); + Assertions.fail("Non si visualizza correttamente la sezione notifiche delegate con errore" + e.getMessage()); } } @@ -212,7 +212,7 @@ public void checkBoxModelloF24PG() { getWebDriverWait(10).withMessage("Non si visualizza il box allegati modelli F24").until(ExpectedConditions.visibilityOfElementLocated(boxModelloF24)); } catch (TimeoutException e) { logger.error("Box del modello F24 non visualizzato correttamente con errore: " + e.getMessage()); - Assert.fail("Box del modello F24 non visualizzato correttamente con errore: " + e.getMessage()); + Assertions.fail("Box del modello F24 non visualizzato correttamente con errore: " + e.getMessage()); } } @@ -352,14 +352,14 @@ public void controllaTesto(String nomeFile) { logger.info("Il testo all'interno del file è corretto"); } else { logger.error("Il testo all'interno del file NON è corretto"); - Assert.fail("Il testo all'interno del file NON è corretto"); + Assertions.fail("Il testo all'interno del file NON è corretto"); } } else if (nomeFile.contains("Avviso di avvenuta ricezione")) { if (dettaglioNotificaMittenteSection.controlloTestoFile(nomeFile, "A Simple PDF File")) { logger.info("Il testo all'interno del file è corretto"); } else { logger.error("Il testo all'interno del file NON è corretto"); - Assert.fail("Il testo all'interno del file NON è corretto"); + Assertions.fail("Il testo all'interno del file NON è corretto"); } } else { if (nomeFile.equals("Attestazione_opponibile_a_terzi_notifica_presa_in_carico")) { @@ -367,7 +367,7 @@ public void controllaTesto(String nomeFile) { logger.info("Il nome del mittente all'interno del file è corretto"); } else { logger.error("Il nome del mittente all'interno del file NON è corretto"); - Assert.fail("Il nome del mittente all'interno del file NON è corretto"); + Assertions.fail("Il nome del mittente all'interno del file NON è corretto"); } } @@ -375,7 +375,7 @@ public void controllaTesto(String nomeFile) { logger.info("Il nome del destinatario all'interno del file è corretto"); } else { logger.error("Il nome del destinatario all'interno del file NON è corretto"); - Assert.fail("Il nome del destinatario all'interno del file NON è corretto"); + Assertions.fail("Il nome del destinatario all'interno del file NON è corretto"); } } } diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/PreAccediAreaRiservataPGPage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/PreAccediAreaRiservataPGPage.java index 9053d37d3..c60fdd061 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/PreAccediAreaRiservataPGPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/PreAccediAreaRiservataPGPage.java @@ -1,7 +1,7 @@ package it.pn.frontend.e2e.pages.destinatario.personaGiuridica; import it.pn.frontend.e2e.common.BasePage; -import org.junit.Assert; +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.By; import org.openqa.selenium.TimeoutException; import org.openqa.selenium.WebDriver; @@ -29,7 +29,7 @@ public void waitLoadPreAccediPage() { logger.info("PreAccediAreaRiservataPGPage caricata corretamente"); } catch (TimeoutException e ){ logger.error("PreAccediAreaRiservataPGPage non caricata corretamente con errore: " +e.getMessage()); - Assert.fail("PreAccediAreaRiservataPGPage non caricata corretamente con errore: " +e.getMessage()); + Assertions.fail("PreAccediAreaRiservataPGPage non caricata corretamente con errore: " +e.getMessage()); } } diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/RecapitiPGPage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/RecapitiPGPage.java index 55dedd4cf..259a1270c 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/RecapitiPGPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/RecapitiPGPage.java @@ -1,6 +1,6 @@ package it.pn.frontend.e2e.pages.destinatario.personaGiuridica; import it.pn.frontend.e2e.common.BasePage; -import org.junit.Assert; +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.By; import org.openqa.selenium.TimeoutException; import org.openqa.selenium.WebDriver; @@ -24,7 +24,7 @@ public void waitLoadRecapitiPage() { logger.info("Si visualizza correttamente recapiti page"); }catch (TimeoutException e){ logger.error("Non si visualizza correttamente recapiti page con errore:"+e.getMessage()); - Assert.fail("Non si visualizza correttamente recapiti page con errore:"+e.getMessage()); + Assertions.fail("Non si visualizza correttamente recapiti page con errore:"+e.getMessage()); } } } diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/RicercaNotifichePGPage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/RicercaNotifichePGPage.java index afeb7b6f1..4896afe04 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/RicercaNotifichePGPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/RicercaNotifichePGPage.java @@ -2,7 +2,7 @@ import it.pn.frontend.e2e.common.BasePage; import it.pn.frontend.e2e.utility.WebTool; -import org.junit.Assert; +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.*; import org.openqa.selenium.support.FindBy; import org.openqa.selenium.support.ui.ExpectedConditions; @@ -36,7 +36,7 @@ public void clickNotificheImpresa() { 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()); + Assertions.fail("Non si clicca sulla voce notifiche dell'impresa con errore:" + e.getMessage()); } } @@ -47,7 +47,7 @@ public void cliccaNotificaRestituita(String codiceIun) { this.js().executeScript("arguments[0].click()", this.element(notificaBy)); } catch (TimeoutException e) { logger.error("Notifica non trovata con errore: " + e.getMessage()); - Assert.fail("Notifica non trovata con errore: " + e.getMessage()); + Assertions.fail("Notifica non trovata con errore: " + e.getMessage()); } catch (StaleElementReferenceException e) { this.getWebDriverWait(30).until(ExpectedConditions.elementToBeClickable(notificaBy)); this.js().executeScript("arguments[0].click()", this.element(notificaBy)); @@ -72,7 +72,7 @@ public void waitLoadDettaglioNotificaPGDelegato() { logger.info("La pagina dettaglio notifica si è caricata correttamente"); } catch (TimeoutException e) { logger.error("La pagina dettaglio notifica NON si è caricata correttamente con errore:" + e.getMessage()); - Assert.fail("La pagina dettaglio notifica NON si è caricata correttamente con errore:" + e.getMessage()); + Assertions.fail("La pagina dettaglio notifica NON si è caricata correttamente con errore:" + e.getMessage()); } } @@ -97,7 +97,7 @@ public void waitLoadNotifichePGPage() { logger.info("Notifiche PG Page caricata"); } catch (TimeoutException e) { logger.error("Notifiche PG Page non caricata con errore : " + e.getMessage()); - Assert.fail("Notifiche PG Page non caricata con errore : " + e.getMessage()); + Assertions.fail("Notifiche PG Page non caricata con errore : " + e.getMessage()); } } @@ -110,7 +110,7 @@ public void cliccaSuPrimaNotifica(){ primaNotifica.click(); } catch (Exception e) { logger.error("Non si clicca sulla prima notifica con errore:" + e.getMessage()); - Assert.fail("Non si clicca sulla prima notifica con errore:" + e.getMessage()); + Assertions.fail("Non si clicca sulla prima notifica con errore:" + e.getMessage()); } } diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/ScegliSpidPGPage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/ScegliSpidPGPage.java index c622c43bb..408a8fd59 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/ScegliSpidPGPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/ScegliSpidPGPage.java @@ -1,7 +1,8 @@ package it.pn.frontend.e2e.pages.destinatario.personaGiuridica; import it.pn.frontend.e2e.common.BasePage; -import org.junit.Assert; + +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.By; import org.openqa.selenium.TimeoutException; import org.openqa.selenium.WebDriver; @@ -29,7 +30,7 @@ public void waitLoadScegliSpidPGPage() { logger.info("ScegliSpidPGPage caricata correttamente"); } catch (TimeoutException e){ logger.error("ScegliSpidPGPage non caricata correttamente con errore: " +e.getMessage()); - Assert.fail("ScegliSpidPGPage non caricata correttamente con errore: " +e.getMessage()); + Assertions.fail("ScegliSpidPGPage non caricata correttamente con errore: " +e.getMessage()); } } diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/SelezionaImpresaPage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/SelezionaImpresaPage.java index b44e00dc7..21ea51572 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/SelezionaImpresaPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/SelezionaImpresaPage.java @@ -2,7 +2,6 @@ import it.pn.frontend.e2e.common.BasePage; import it.pn.frontend.e2e.utility.WebTool; -import org.junit.Assert; import org.openqa.selenium.*; import org.openqa.selenium.support.FindBy; import org.openqa.selenium.support.ui.ExpectedConditions; diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/UtentiPGPage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/UtentiPGPage.java index fb80f65f7..499c0a168 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/UtentiPGPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/UtentiPGPage.java @@ -2,7 +2,7 @@ import it.pn.frontend.e2e.common.BasePage; import it.pn.frontend.e2e.utility.WebTool; -import org.junit.Assert; +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.*; import org.openqa.selenium.interactions.Actions; import org.openqa.selenium.support.FindBy; @@ -132,7 +132,7 @@ public void waitLoadUtentiPage() { logger.info("Si visualizza correttamente utenti page"); } catch (TimeoutException e) { logger.error("Non si visualizza correttamente utenti page con errore:" + e.getMessage()); - Assert.fail("Non si visualizza correttamente utenti page con errore:" + e.getMessage()); + Assertions.fail("Non si visualizza correttamente utenti page con errore:" + e.getMessage()); } } @@ -162,7 +162,7 @@ public void insertData(String codiceFiscale, String name, String surname, String logger.info("Il nome e il cognome è generato correttamente"); } else { logger.error("Il nome e il cognome non è generato correttamente"); - Assert.fail("Il nome e il cognome non è generato correttamente"); + Assertions.fail("Il nome e il cognome non è generato correttamente"); } this.js().executeScript("arguments[0].setAttribute('autocomplete', 'off')", emailBox); emailBox.sendKeys(Keys.chord(Keys.CONTROL, "a"), Keys.DELETE); @@ -237,7 +237,7 @@ public void waitLoadRecapPage() { logger.info("Si visualizza correttamente pagina riepilogativa"); } catch (TimeoutException e) { logger.error("Non si visualizza correttamente pagina riepilogativa con errore:" + e.getMessage()); - Assert.fail("Non si visualizza correttamente pagina riepilogativa con errore:" + e.getMessage()); + Assertions.fail("Non si visualizza correttamente pagina riepilogativa con errore:" + e.getMessage()); } } @@ -254,7 +254,7 @@ public void checkEmailBoxActive() { logger.info("il campo email e il campo conferma email sono attivi"); } else { logger.error("il campo email e il campo conferma email sono disattivi"); - Assert.fail("il campo email e il campo conferma email sono disattivi"); + Assertions.fail("il campo email e il campo conferma email sono disattivi"); } } diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/AcccediAreaRiservataPAPage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/AcccediAreaRiservataPAPage.java index 5de17680d..171d8e007 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/AcccediAreaRiservataPAPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/AcccediAreaRiservataPAPage.java @@ -2,8 +2,7 @@ import it.pn.frontend.e2e.common.BasePage; -import it.pn.frontend.e2e.section.CookiesSection; -import org.junit.Assert; +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.*; import org.openqa.selenium.support.FindBy; import org.openqa.selenium.support.ui.ExpectedConditions; @@ -28,7 +27,7 @@ public void waitLoadLoginPageMittente(){ logger.info("Accedi Area Riservata Page caricata"); }catch (TimeoutException e){ logger.error("Il titolo nella pagina Accedi Area Riservata non è presente con errore : "+e.getMessage()); - Assert.fail("Il titolo nella pagina Accedi Area Riservata non è presente con errore : "+e.getMessage()); + Assertions.fail("Il titolo nella pagina Accedi Area Riservata non è presente con errore : "+e.getMessage()); } } @@ -41,7 +40,7 @@ public void selezionareSpidButton(){ logger.info("click sul bottone SPID effettuato"); }catch (TimeoutException e){ logger.error("Il bottone SPID non è cliccabile con errore : "+e.getMessage()); - Assert.fail("Il bottone SPID non è cliccabile con errore : "+e.getMessage()); + Assertions.fail("Il bottone SPID non è cliccabile con errore : "+e.getMessage()); } } diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/ApiKeyPAPage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/ApiKeyPAPage.java index ccc330a4a..20eebbc50 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/ApiKeyPAPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/ApiKeyPAPage.java @@ -1,7 +1,7 @@ package it.pn.frontend.e2e.pages.mittente; import it.pn.frontend.e2e.common.BasePage; -import org.junit.Assert; +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.*; import org.openqa.selenium.interactions.Actions; import org.openqa.selenium.support.FindBy; @@ -65,7 +65,7 @@ public void waitLoadApikeyPage() { logger.info("Api Key Page caricata"); } catch (TimeoutException e) { logger.error("Api Key Page NON caricata con errore : " + e.getMessage()); - Assert.fail("Api Key Page NON caricata con errore : " + e.getMessage()); + Assertions.fail("Api Key Page NON caricata con errore : " + e.getMessage()); } } @@ -90,7 +90,7 @@ public void siVisualizzaCorrettamenteConfermaPage() { logger.info("Api Key ConfirmationPage caricata"); } catch (TimeoutException e) { logger.error("Il titolo della Api Key ConfirmationPage NON caricata con errore : " + e.getMessage()); - Assert.fail("Il titolo della Api Key ConfirmationPage NON caricata con errore : " + e.getMessage()); + Assertions.fail("Il titolo della Api Key ConfirmationPage NON caricata con errore : " + e.getMessage()); } } @@ -107,7 +107,7 @@ public void siVisualizzaNuovaApiAttiva(String nomeApiKey) { logger.info("Api Key ConfirmationPage caricata"); } catch (TimeoutException e) { logger.error("Api Key ConfirmationPage NON caricata con errore : " + e.getMessage()); - Assert.fail("Api Key ConfirmationPage NON caricata con errore : " + e.getMessage()); + Assertions.fail("Api Key ConfirmationPage NON caricata con errore : " + e.getMessage()); } } @@ -148,7 +148,7 @@ public void clickMenuButton() { menuAttivaButton.get(posizioneMenuButton).click(); } else { logger.error("Nessuna Api Key diversa da 'fe-TA-apikey-test' da bloccare"); - Assert.fail("Nessuna Api Key diversa da 'fe-TA-apikey-test' da bloccare"); + Assertions.fail("Nessuna Api Key diversa da 'fe-TA-apikey-test' da bloccare"); } } @@ -165,7 +165,7 @@ public void siVisualizzaPopUp() { logger.info("Il popup si visualizza correttamente"); } catch (TimeoutException e) { logger.error("Il popup NON si visualizza correttamente con errore:" + e.getMessage()); - Assert.fail("Il popup NON si visualizza correttamente con errore:" + e.getMessage()); + Assertions.fail("Il popup NON si visualizza correttamente con errore:" + e.getMessage()); } } @@ -186,7 +186,7 @@ public void notificaSelezionataStatoBloccata() { logger.info("La notifica è in stato bloccata"); } catch (TimeoutException e) { logger.error("La notifica è in stato bloccata con errore:" + e.getMessage()); - Assert.fail("La notifica è in stato bloccata con errore:" + e.getMessage()); + Assertions.fail("La notifica è in stato bloccata con errore:" + e.getMessage()); } } @@ -202,7 +202,7 @@ public void siVisualizzaPoPUpAttiva() { logger.info("Si visualizza correttamente il popup attiva"); } catch (TimeoutException e) { logger.error("NON si visualizza correttamente il popup attiva con errore:" + e.getMessage()); - Assert.fail("NON si visualizza correttamente il popup attiva con errore:" + e.getMessage()); + Assertions.fail("NON si visualizza correttamente il popup attiva con errore:" + e.getMessage()); } } @@ -213,7 +213,7 @@ public void siVisualizzaNotificaSelezionataBloccata() { logger.info("La notifica è in stato bloccata"); } catch (TimeoutException e) { logger.error("La notifica è in stato bloccata con errore:" + e.getMessage()); - Assert.fail("La notifica è in stato bloccata con errore:" + e.getMessage()); + Assertions.fail("La notifica è in stato bloccata con errore:" + e.getMessage()); } } @@ -229,7 +229,7 @@ public void siVisualizzaPoPUpRuota() { logger.info("Si visualizza correttamente il popup ruota"); } catch (TimeoutException e) { logger.error("NON si visualizza correttamente il popup ruota con errore:" + e.getMessage()); - Assert.fail("NON si visualizza correttamente il popup ruota con errore:" + e.getMessage()); + Assertions.fail("NON si visualizza correttamente il popup ruota con errore:" + e.getMessage()); } } @@ -240,7 +240,7 @@ public void siVisualizzaNotificaSelezionataRuotata() { logger.info("Si visualizza correttamente il popup ruota"); } catch (TimeoutException e) { logger.error("NON si visualizza correttamente il popup ruota con errore:" + e.getMessage()); - Assert.fail("NON si visualizza correttamente il popup ruota con errore:" + e.getMessage()); + Assertions.fail("NON si visualizza correttamente il popup ruota con errore:" + e.getMessage()); } } @@ -396,7 +396,7 @@ public void waitLoadMessaggioData() { logger.info("Il messaggio con la data di creazione si vede correttamente"); } catch (TimeoutException e) { logger.error("Il messaggio con la data di creazione NON si vede correttamente con errore: " + e.getMessage()); - Assert.fail("Il messaggio con la data di creazione NON si vede correttamente con errore: " + e.getMessage()); + Assertions.fail("Il messaggio con la data di creazione NON si vede correttamente con errore: " + e.getMessage()); } } @@ -424,7 +424,7 @@ public void cancellareTestoInserito() { logger.info("Il testo è stato cancellato correttamente"); } catch (TimeoutException e) { logger.error("Il testo NON è stato cancellato correttamente" + e.getMessage()); - Assert.fail("Il testo è NON stato cancellato correttamente" + e.getMessage()); + Assertions.fail("Il testo è NON stato cancellato correttamente" + e.getMessage()); } } @@ -435,7 +435,7 @@ public void siVisualizzaMessaggioErroreApiName() { logger.info("Si visualizza correttamente il messaggio di errore"); } catch (TimeoutException e) { logger.error("NON si visualizza correttamente il messaggio di errore" + e.getMessage()); - Assert.fail("NON si visualizza correttamente il messaggio di errore" + e.getMessage()); + Assertions.fail("NON si visualizza correttamente il messaggio di errore" + e.getMessage()); } } @@ -451,7 +451,7 @@ public void siVisualizzaPopUpVisualizza() { logger.info("Si visualizza correttamente il sotto titolo del pop up"); } catch (TimeoutException e) { logger.error("NON si visualizza correttamente il sotto titolo pop up: " + e.getMessage()); - Assert.fail("NON si visualizza correttamente il sotto titolo pop up: " + e.getMessage()); + Assertions.fail("NON si visualizza correttamente il sotto titolo pop up: " + e.getMessage()); } } @@ -474,7 +474,7 @@ public void popUpGruppiAssociati() { logger.info("Si visualizza correttamente il titolo popup Gruppi associati alla API"); } catch (TimeoutException e) { logger.error("Non si visualizza correttamente il titolo popup Gruppi associati alla API con errore:" + e.getMessage()); - Assert.fail("Non si visualizza correttamente il titolo popup Gruppi associati alla API con errore:" + e.getMessage()); + Assertions.fail("Non si visualizza correttamente il titolo popup Gruppi associati alla API con errore:" + e.getMessage()); } } @@ -494,7 +494,7 @@ public String copiaApiKey() { return inputFieldApiKey.getAttribute("value"); } catch (TimeoutException e) { logger.error("NON si visualizza correttamente il campo ApiKey con errore:" + e.getMessage()); - Assert.fail("NON si visualizza correttamente il campo ApiKey con errore:" + e.getMessage()); + Assertions.fail("NON si visualizza correttamente il campo ApiKey con errore:" + e.getMessage()); return null; } finally { this.chiudiPopUpVisualizza(); @@ -511,7 +511,7 @@ public void mouseHoverGroups() { logger.info("mouse hover sopra gruppi effetuato correttamente"); } else { logger.error("Non è stato possibile trovare la colonna gruppi della prima riga"); - Assert.fail("Non è stato possibile trovare la colonna gruppi della prima riga"); + Assertions.fail("Non è stato possibile trovare la colonna gruppi della prima riga"); } } } diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/AreaRiservataPAPage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/AreaRiservataPAPage.java index 76a43e3d4..e6917b250 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/AreaRiservataPAPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/AreaRiservataPAPage.java @@ -1,7 +1,7 @@ package it.pn.frontend.e2e.pages.mittente; import it.pn.frontend.e2e.common.BasePage; -import org.junit.Assert; +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.*; import org.openqa.selenium.support.FindBy; import org.openqa.selenium.support.ui.ExpectedConditions; @@ -38,7 +38,7 @@ public void waitLoadAreaRiservataPAPage(){ logger.info("Titolo Panoramica dell'area Riservata PA Page caricato"); }catch (TimeoutException e){ logger.error("Titolo 'Panoramica' dell'area Riservata PA Page non caricato con errore : "+e.getMessage()); - Assert.fail("Titolo 'Panoramica' dell'area Riservata PA Page non caricato con errore : "+e.getMessage()); + Assertions.fail("Titolo 'Panoramica' dell'area Riservata PA Page non caricato con errore : "+e.getMessage()); } } @@ -65,7 +65,7 @@ public void selezionaPiattaformaNotificaDev(){ } }catch(TimeoutException | NoSuchElementException | ElementClickInterceptedException e){ logger.error("il bottone piattaforma notifica dev non è presente o non è cliccabile, "+e.getMessage()); - Assert.fail("il bottone piattaforma notifica dev non è presente o non è cliccabile. "+e.getMessage()); + Assertions.fail("il bottone piattaforma notifica dev non è presente o non è cliccabile. "+e.getMessage()); } } public void selezionaPiattaformaNotificaTest() { @@ -80,7 +80,7 @@ public void selezionaPiattaformaNotificaTest() { } }catch(TimeoutException e){ logger.error("il bottone piattaforma notifica test non è presente o non è cliccabile, "+e.getMessage()); - Assert.fail("il bottone piattaforma notifica test non è presente o non è cliccabile. "+e.getMessage()); + Assertions.fail("il bottone piattaforma notifica test non è presente o non è cliccabile. "+e.getMessage()); } } @@ -96,7 +96,7 @@ public void selezionaPiattaformaNotificaUat() { } }catch(TimeoutException | NoSuchElementException | ElementClickInterceptedException e){ logger.error("il bottone piattaforma notifica uat non è presente o non è cliccabile, "+e.getMessage()); - Assert.fail("il bottone piattaforma notifica uat non è presente o non è cliccabile. "+e.getMessage()); + Assertions.fail("il bottone piattaforma notifica uat non è presente o non è cliccabile. "+e.getMessage()); } } diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/AutorizziInvioDatiPAPage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/AutorizziInvioDatiPAPage.java index 07d9548fd..ea51e53f2 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/AutorizziInvioDatiPAPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/AutorizziInvioDatiPAPage.java @@ -1,7 +1,7 @@ package it.pn.frontend.e2e.pages.mittente; import it.pn.frontend.e2e.common.BasePage; -import org.junit.Assert; +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.*; import org.openqa.selenium.support.FindBy; import org.openqa.selenium.support.ui.ExpectedConditions; @@ -26,7 +26,7 @@ public void waitLoadAutorizziInvioDatiPAPage(){ logger.info("Autorizzi Invio Dati PA Page caricata"); }catch (TimeoutException | NoSuchElementException e){ logger.error("il titolo di Autorizzi Invio Dati PA Page non caricato con errore : "+e.getMessage()); - Assert.fail("il titolo di Autorizzi Invio Dati PA Page non caricato con errore : "+e.getMessage()); + Assertions.fail("il titolo di Autorizzi Invio Dati PA Page non caricato con errore : "+e.getMessage()); } } @@ -37,7 +37,7 @@ public void selezionareInvia(){ this.inviaButton.click(); }catch (TimeoutException e){ logger.error("Il bottone invia nella pagina Autorizza Invio Dati non è stato cliccato con errore : "+e.getMessage()); - Assert.fail("Il bottone invia nella pagina Autorizza Invio Dati non è stato cliccato con errore : "+e.getMessage()); + Assertions.fail("Il bottone invia nella pagina Autorizza Invio Dati non è stato cliccato con errore : "+e.getMessage()); } } } diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/DashboardPage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/DashboardPage.java index 665992a57..2b03dc9ca 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/DashboardPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/DashboardPage.java @@ -1,14 +1,11 @@ package it.pn.frontend.e2e.pages.mittente; -import com.google.gson.internal.LinkedTreeMap; import it.pn.frontend.e2e.common.BasePage; import it.pn.frontend.e2e.listeners.Hooks; import it.pn.frontend.e2e.listeners.NetWorkInfo; import it.pn.frontend.e2e.model.singleton.NotificationSingleton; -import it.pn.frontend.e2e.rest.RestNotification; import it.pn.frontend.e2e.utility.WebTool; -import org.apache.commons.io.FileUtils; -import org.junit.Assert; +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.*; import org.openqa.selenium.interactions.Actions; import org.openqa.selenium.support.FindBy; @@ -19,16 +16,9 @@ import java.awt.*; import java.awt.event.KeyEvent; import java.io.File; -import java.io.IOException; -import java.net.URL; import java.time.LocalDate; import java.time.format.DateTimeFormatter; -import java.util.ArrayList; import java.util.List; -import java.util.Map; -import java.util.concurrent.TimeUnit; - -import static org.openqa.selenium.support.ui.ExpectedConditions.elementToBeClickable; public class DashboardPage extends BasePage { @@ -304,7 +294,7 @@ public void clickJpegExport() throws AWTException { esportaJpegBottone.click(); WebTool.waitTime(2); File downloadedFile = new File(downloadDirectory + fileName); - Assert.assertTrue(downloadedFile.exists()); + Assertions.assertTrue(downloadedFile.exists()); logger.info("JPEG file downloaded successfully."); } } diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/DisserviziAppPAPage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/DisserviziAppPAPage.java index d407a25cd..b039444cf 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/DisserviziAppPAPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/DisserviziAppPAPage.java @@ -5,7 +5,7 @@ import it.pn.frontend.e2e.utility.WebTool; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.text.PDFTextStripper; -import org.junit.Assert; +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.By; import org.openqa.selenium.TimeoutException; import org.openqa.selenium.WebDriver; @@ -78,7 +78,7 @@ public void waitLoadStatoDellaPiattaformaPage() { logger.info("Si visualizza correttamente la sezione disservizi"); } catch (TimeoutException e) { logger.error("Non si visualizza correttamente la sezione disservizi con errore:" + e.getMessage()); - Assert.fail("Non si visualizza correttamente la sezione disservizi con errore" + e.getMessage()); + Assertions.fail("Non si visualizza correttamente la sezione disservizi con errore" + e.getMessage()); } } @@ -94,7 +94,7 @@ public void getDateDisservice() { dataPopulation.setDataA(dataFinePrimaRiga); } else { logger.error("non é stato possibile recuperare i dati dalla tabella dei disservizi"); - Assert.fail("non é stato possibile recuperare i dati dalla tabella dei disservizi"); + Assertions.fail("non é stato possibile recuperare i dati dalla tabella dei disservizi"); } } @@ -122,7 +122,7 @@ public void waitLoadDisserviziTable() { getWebDriverWait(3).until(ExpectedConditions.textToBePresentInElement(tableHeaderTitles.get(4), "Stato")); } else { logger.error("Non si visualizza correttamente l'header della tabella dei disservizi"); - Assert.fail("Non si visualizza correttamente l'header della tabella dei disservizi"); + Assertions.fail("Non si visualizza correttamente l'header della tabella dei disservizi"); } getWebDriverWait(10).withMessage("Non si visualizza correttamente l'header della tabella dei disservizi") .until(ExpectedConditions.visibilityOf(disserviziTableHeader)); @@ -141,12 +141,12 @@ public void waitLoadDisserviziTable() { } } else { logger.error("Non si visualizzano correttamente le righe della tabella dei disservizi"); - Assert.fail("Non si visualizzano correttamente le righe della tabella dei disservizi"); + Assertions.fail("Non si visualizzano correttamente le righe della tabella dei disservizi"); } logger.info("Si visualizza correttamente la tabella dei disservizi"); } catch (TimeoutException e) { logger.error("Non si visualizza correttamente la tabella dei disservizi con errore:" + e.getMessage()); - Assert.fail("Non si visualizza correttamente la tabella dei disservizi con errore" + e.getMessage()); + Assertions.fail("Non si visualizza correttamente la tabella dei disservizi con errore" + e.getMessage()); } } @@ -169,7 +169,7 @@ public void checkDisserviziInCorso() { } } else { 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"); + Assertions.fail("Non si visualizza un record in elenco relativo ad un disservizio ancora in corso"); } } @@ -185,7 +185,7 @@ public void checkDisservizioRisolto(String tipoDisservizio) { logger.info("Disservizio risolto trovato"); } else { logger.error("Non si visualizza un record in elenco relativo ad un disservizio risolto"); - Assert.fail("Non si visualizza un record in elenco relativo ad un disservizio risolto"); + Assertions.fail("Non si visualizza un record in elenco relativo ad un disservizio risolto"); } } } @@ -199,7 +199,7 @@ public void checkDisserviziDisponibili() { continue; } else { logger.error("Non si visualizza un record in elenco relativo ad un disservizio risolto"); - Assert.fail("Non si visualizza un record in elenco relativo ad un disservizio risolto"); + Assertions.fail("Non si visualizza un record in elenco relativo ad un disservizio risolto"); } if (status.getText().contains("/") || status.getText().contains("Oggi") && status.getText().contains(":")) { logger.info("Si visualizza data di fine servizio"); @@ -211,7 +211,7 @@ public void checkDisserviziDisponibili() { } } else { logger.error("Non si visualizza un record in elenco relativo ad un disservizio disponibile"); - Assert.fail("Non si visualizza un record in elenco relativo ad un disservizio disponibile"); + Assertions.fail("Non si visualizza un record in elenco relativo ad un disservizio disponibile"); } } @@ -238,7 +238,7 @@ public void downloadAttestazione() { logger.info("click effettuato con successo"); } else { logger.error("Non ci sono notifiche da selezionare nel arco temporale settato"); - Assert.fail("Non ci sono notifiche da selezionare nel arco temporale settato"); + Assertions.fail("Non ci sono notifiche da selezionare nel arco temporale settato"); } @@ -286,7 +286,7 @@ public boolean confrontoFileConDisservizio() { //break// Rimuovere il commento se si desidera fermarsi al primo file trovato } catch (IOException e) { logger.error("Errore nel leggere il PDF: " + file.getName(), e); - Assert.fail("Errore nel leggere il PDF: " + file.getName()); + Assertions.fail("Errore nel leggere il PDF: " + file.getName()); } } } diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/LoginPAPage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/LoginPAPage.java index d518ff89f..325ff184b 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/LoginPAPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/LoginPAPage.java @@ -1,7 +1,7 @@ package it.pn.frontend.e2e.pages.mittente; import it.pn.frontend.e2e.common.BasePage; -import org.junit.Assert; +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.By; import org.openqa.selenium.TimeoutException; import org.openqa.selenium.WebDriver; @@ -36,7 +36,7 @@ public void waitLoadLoginPAPage(){ logger.info("Login PA Page caricata"); }catch (TimeoutException e){ logger.error("Il titolo della pagina Login PA non caricato con errore : "+e.getMessage()); - Assert.fail("Il titolo della pagina Login PA non caricato con errore : "+e.getMessage()); + Assertions.fail("Il titolo della pagina Login PA non caricato con errore : "+e.getMessage()); } } @@ -59,7 +59,7 @@ public void selezionaInviaDati(){ this.inviaButton.click(); }catch (TimeoutException e){ logger.error("Il bottone invia nella pagina Login PA non è stato cliccato con errore : "+e.getMessage()); - Assert.fail("Il bottone invia nella pagina Login PA non è stato cliccato con errore : "+e.getMessage()); + Assertions.fail("Il bottone invia nella pagina Login PA non è stato cliccato con errore : "+e.getMessage()); } } } diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/PreAccediAreaRiservataPAPage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/PreAccediAreaRiservataPAPage.java index 9f8b32a2a..0a485ab3e 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/PreAccediAreaRiservataPAPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/PreAccediAreaRiservataPAPage.java @@ -2,7 +2,7 @@ import it.pn.frontend.e2e.common.BasePage; -import org.junit.Assert; +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.*; import org.openqa.selenium.support.FindBy; import org.openqa.selenium.support.ui.ExpectedConditions; @@ -27,7 +27,7 @@ public void waitLoadPreAccediAreaRiservataPAPage(){ logger.info("Il titolo della Pre Accedi Area Riservata PA Page è caricato"); }catch (TimeoutException e){ logger.error("Il titolo della Pre Accedi Area Riservata PA Page non caricato con errore : "+e.getMessage()); - Assert.fail("Il titolo della Pre Accedi Area Riservata PA Page non caricato con errore : "+e.getMessage()); + Assertions.fail("Il titolo della Pre Accedi Area Riservata PA Page non caricato con errore : "+e.getMessage()); } } diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/ScegliSpidPAPage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/ScegliSpidPAPage.java index 3014a6be3..2872dba77 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/ScegliSpidPAPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/ScegliSpidPAPage.java @@ -1,7 +1,7 @@ package it.pn.frontend.e2e.pages.mittente; import it.pn.frontend.e2e.common.BasePage; -import org.junit.Assert; +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.By; import org.openqa.selenium.TimeoutException; import org.openqa.selenium.WebDriver; @@ -29,10 +29,10 @@ public void waitLoadScegliSpidPAPage(){ logger.info("il titolo Scegli Spid PA Page caricata"); }catch (TimeoutException e){ logger.error("Titlo della pagina Scegli Spid PA Page non caricato con errore : "+e.getMessage()); - Assert.fail("Titlo della pagina Scegli Spid PA Page non caricato con errore : "+e.getMessage()); + Assertions.fail("Titlo della pagina Scegli Spid PA Page non caricato con errore : "+e.getMessage()); }catch(Exception e){ logger.error("Scelta spid provider errore generico : "+e.getMessage()); - Assert.fail("Scelta spid provider errore generico : "+e.getMessage()); + Assertions.fail("Scelta spid provider errore generico : "+e.getMessage()); } } @@ -44,7 +44,7 @@ public void selezionareTestButton(){ logger.info("click sul bottone TEST effetuato"); }catch (TimeoutException e){ logger.error("il bottone TEST non è cliccabile con errore : "+e.getMessage()); - Assert.fail("il bottone TEST non è cliccabile con errore : "+e.getMessage()); + Assertions.fail("il bottone TEST non è cliccabile con errore : "+e.getMessage()); } } } diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/SelezionaEntePAPage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/SelezionaEntePAPage.java index aa74897f3..cd526c6c7 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/SelezionaEntePAPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/SelezionaEntePAPage.java @@ -2,7 +2,7 @@ import it.pn.frontend.e2e.common.BasePage; import it.pn.frontend.e2e.utility.WebTool; -import org.junit.Assert; +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.*; import org.openqa.selenium.interactions.Actions; import org.openqa.selenium.support.FindBy; @@ -40,7 +40,7 @@ public void waitLoadSelezionaEntePAPage() { logger.info("Seleziona Utente PA Page caricata"); } catch (TimeoutException | NoSuchElementException | StaleElementReferenceException e) { logger.error("Seleziona Utente PA Page non caricata con errore : " + e.getMessage()); - Assert.fail("Seleziona Utente PA Page non caricata con errore : " + e.getMessage()); + Assertions.fail("Seleziona Utente PA Page non caricata con errore : " + e.getMessage()); } } diff --git a/src/main/java/it/pn/frontend/e2e/rest/RestNotification.java b/src/main/java/it/pn/frontend/e2e/rest/RestNotification.java index 7ba8e9789..d2889d948 100644 --- a/src/main/java/it/pn/frontend/e2e/rest/RestNotification.java +++ b/src/main/java/it/pn/frontend/e2e/rest/RestNotification.java @@ -8,7 +8,7 @@ import it.pn.frontend.e2e.model.documents.PreLoadRequest; import it.pn.frontend.e2e.model.documents.PreLoadResponse; import lombok.extern.slf4j.Slf4j; -import org.junit.Assert; +import org.junit.jupiter.api.Assertions; import java.io.File; import java.io.IOException; @@ -30,7 +30,7 @@ public NewNotificationResponse newNotificationWithOneRecipientAndDocument(NewNot final CustomHttpClient httpClient2 = new CustomHttpClient<>(); // Modifica qui try { NewNotificationResponse response = httpClient2.sendHttpPostRequest("/delivery/v2.3/requests", null, notification, NewNotificationResponse.class); - Assert.assertNotNull("Error during createNewNotification", response); + Assertions.assertNotNull( response,"Error during createNewNotification"); log.info(String.valueOf(response)); return response; } catch (IOException e) { @@ -58,7 +58,7 @@ public void uploadDocument(String url, String secret, String sha256) throws Rest httpClient2.sendHttpUpLoadPutRequest(url, secret, sha256, null); } catch (IOException e) { log.error("Error during document upload", e); - Assert.fail("Error during document upload" + e.getMessage()); + Assertions.fail("Error during document upload" + e.getMessage()); } } @@ -68,7 +68,7 @@ public void uploadDocumentF24(String url, String secret, String sha256, File met httpClient2.sendHttpUpLoadf24PutRequest(url, secret, sha256, null, metaDatiDocument); } catch (IOException e) { log.error("Error during F24 upload", e); - Assert.fail("Error during F24 upload" + e.getMessage()); + Assertions.fail("Error during F24 upload" + e.getMessage()); } } diff --git a/src/main/java/it/pn/frontend/e2e/section/CookiesSection.java b/src/main/java/it/pn/frontend/e2e/section/CookiesSection.java index 7b35b09fb..71a6e5776 100644 --- a/src/main/java/it/pn/frontend/e2e/section/CookiesSection.java +++ b/src/main/java/it/pn/frontend/e2e/section/CookiesSection.java @@ -1,7 +1,7 @@ package it.pn.frontend.e2e.section; import it.pn.frontend.e2e.common.BasePage; -import org.junit.Assert; +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.By; import org.openqa.selenium.TimeoutException; import org.openqa.selenium.WebDriver; @@ -45,7 +45,7 @@ public void selezionaAccettaTuttiButton() { actions.moveToElement(this.accettaTuttiButton).click().perform(); } catch (TimeoutException e) { logger.error("Non è cliccabile il bottone accetta tutti i cookies" + e.getMessage()); - Assert.fail("Non è cliccabile il bottone accetta tutti i cookies" + e.getMessage()); + Assertions.fail("Non è cliccabile il bottone accetta tutti i cookies" + e.getMessage()); } } diff --git a/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/HeaderPFSection.java b/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/HeaderPFSection.java index 4378be383..e84bd28dd 100644 --- a/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/HeaderPFSection.java +++ b/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/HeaderPFSection.java @@ -1,7 +1,7 @@ package it.pn.frontend.e2e.section.destinatario.personaFisica; import it.pn.frontend.e2e.common.BasePage; -import org.junit.Assert; +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.By; import org.openqa.selenium.TimeoutException; import org.openqa.selenium.WebDriver; @@ -39,7 +39,7 @@ public void waitLoadHeaderDESection() { logger.info("Header DE Section caricata"); } catch (TimeoutException e) { logger.error("Header DE Section non caricata con errore : " + e.getMessage()); - Assert.fail("Header DE Section non caricata con errore : " + e.getMessage()); + Assertions.fail("Header DE Section non caricata con errore : " + e.getMessage()); } } diff --git a/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/LeTueDelegheSection.java b/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/LeTueDelegheSection.java index b5ada8dd0..3977a3c1c 100644 --- a/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/LeTueDelegheSection.java +++ b/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/LeTueDelegheSection.java @@ -2,7 +2,7 @@ import it.pn.frontend.e2e.common.BasePage; import it.pn.frontend.e2e.utility.WebTool; -import org.junit.Assert; +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.By; import org.openqa.selenium.TimeoutException; import org.openqa.selenium.WebDriver; @@ -101,7 +101,7 @@ public void waitNuovaDelegaSection() { logger.info("Le tue deleghe page caricata"); } catch (TimeoutException e) { logger.error("Le tue deleghe page non caricata con errore :" + e.getMessage()); - Assert.fail("Le tue deleghe page non caricata con errore :" + e.getMessage()); + Assertions.fail("Le tue deleghe page non caricata con errore :" + e.getMessage()); } } @@ -193,7 +193,7 @@ public void messaggioDiErroreDelegaPresente() { logger.info("Il messaggio di errore viene visualizzato"); } catch (TimeoutException e) { logger.error("Il messaggio di errore NON viene visualizzato con errore: " + e.getMessage()); - Assert.fail("Il messaggio di errore NON viene visualizzato con errore: " + e.getMessage()); + Assertions.fail("Il messaggio di errore NON viene visualizzato con errore: " + e.getMessage()); } } @@ -208,7 +208,7 @@ public void waitPopUpLoad() { logger.info("Il pop-up per accettare la delega visualizzato correttamente"); } catch (TimeoutException e) { logger.error("Il pop-up per accettare la delega NON visualizzato correttamente con errore: " + e.getMessage()); - Assert.fail("Il pop-up per accettare la delega NON visualizzato correttamente con errore: " + e.getMessage()); + Assertions.fail("Il pop-up per accettare la delega NON visualizzato correttamente con errore: " + e.getMessage()); } } @@ -259,7 +259,7 @@ public void controlloStatoAttiva(String nome, String cognome) { logger.info("La delega ha lo stato Attiva"); } catch (TimeoutException e) { logger.error("La delega NON ha lo stato Attiva con errore: " + e.getMessage()); - Assert.fail("La delega NON ha lo stato Attiva con errore: " + e.getMessage()); + Assertions.fail("La delega NON ha lo stato Attiva con errore: " + e.getMessage()); } } @@ -278,7 +278,7 @@ public void controlloEsistenzaDelega(String nome, String cognome) { // logger.info("La delega con nome " + nome + " " + cognome + "è ancora presente"); } catch (TimeoutException e) { logger.error("La delega non è presente con errore: " + e.getMessage()); - Assert.fail("La delega non è presente con errore: " + e.getMessage()); + Assertions.fail("La delega non è presente con errore: " + e.getMessage()); } } @@ -355,7 +355,7 @@ public void checkIndicatoreNumerico(){ getWebDriverWait(5).withMessage("La notifica con il indicatore non è visibile").until(ExpectedConditions.visibilityOfElementLocated(notificationNumber)); }catch (RuntimeException e){ logger.error("Il indicatore numerico di notifica non è visibile"); - Assert.fail("Il indicatore numerico di notifica non è visibile"); + Assertions.fail("Il indicatore numerico di notifica non è visibile"); } } } diff --git a/src/main/java/it/pn/frontend/e2e/section/destinatario/personaGiuridica/AggiungiDelegaPGSection.java b/src/main/java/it/pn/frontend/e2e/section/destinatario/personaGiuridica/AggiungiDelegaPGSection.java index 45d454979..583906584 100644 --- a/src/main/java/it/pn/frontend/e2e/section/destinatario/personaGiuridica/AggiungiDelegaPGSection.java +++ b/src/main/java/it/pn/frontend/e2e/section/destinatario/personaGiuridica/AggiungiDelegaPGSection.java @@ -2,19 +2,16 @@ import it.pn.frontend.e2e.common.BasePage; import it.pn.frontend.e2e.utility.WebTool; -import org.junit.Assert; +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.*; import org.openqa.selenium.interactions.Actions; import org.openqa.selenium.support.FindBy; import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; - -import java.text.DateFormatSymbols; import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.List; -import java.util.Locale; public class AggiungiDelegaPGSection extends BasePage { @@ -90,7 +87,7 @@ public void waitLoadAggiungiDelegaPage() { logger.info("Si visualizza correttamente la sezione Aggiungi una delega"); } catch (TimeoutException e) { logger.error("Non si visualizza correttamente la sezione Aggiungi una delega con errore: " + e.getMessage()); - Assert.fail("Non si visualizza correttamente la sezione Aggiungi una delega con errore: " + e.getMessage()); + Assertions.fail("Non si visualizza correttamente la sezione Aggiungi una delega con errore: " + e.getMessage()); } } diff --git a/src/main/java/it/pn/frontend/e2e/section/destinatario/personaGiuridica/DelegatiImpresaSection.java b/src/main/java/it/pn/frontend/e2e/section/destinatario/personaGiuridica/DelegatiImpresaSection.java index 56f852732..c9533ef3f 100644 --- a/src/main/java/it/pn/frontend/e2e/section/destinatario/personaGiuridica/DelegatiImpresaSection.java +++ b/src/main/java/it/pn/frontend/e2e/section/destinatario/personaGiuridica/DelegatiImpresaSection.java @@ -1,7 +1,7 @@ package it.pn.frontend.e2e.section.destinatario.personaGiuridica; import it.pn.frontend.e2e.common.BasePage; -import org.junit.Assert; +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.By; import org.openqa.selenium.TimeoutException; import org.openqa.selenium.WebDriver; @@ -53,7 +53,7 @@ public void waitLoadDelegatiImpresaPage() { logger.info("Delegati dall'impresa caricata correttamente"); } catch (TimeoutException e) { logger.error("Delegati dall'impresa non caricata correttamente con errore: " + e.getMessage()); - Assert.fail("Delegati dall'impresa non caricata correttamente con errore: " + e.getMessage()); + Assertions.fail("Delegati dall'impresa non caricata correttamente con errore: " + e.getMessage()); } } @@ -64,7 +64,7 @@ public void clickAggiungiDelegaButton() { this.addDelegheButton.click(); } catch (TimeoutException e) { logger.error("bottone non trovato: " + e.getMessage()); - Assert.fail("bottone non trovato: " + e.getMessage()); + Assertions.fail("bottone non trovato: " + e.getMessage()); } } @@ -84,7 +84,7 @@ public void controlloEsistenzaDelega(String ragioneSociale) { logger.info("Si visualizza la delega creata"); } catch (TimeoutException e) { logger.error("Non si visualizza correttamente la delega creata:"+e.getMessage()); - Assert.fail("Non si visualizza correttamente la delega creata:"+e.getMessage()); + Assertions.fail("Non si visualizza correttamente la delega creata:"+e.getMessage()); } } @@ -114,7 +114,7 @@ public void clickMenuDelega(String ragioneSociale) { logger.info("cliccato correttamente su menu delega button"); } catch (TimeoutException e) { logger.error("Menu delega button NON trovata con errore: " + e.getMessage()); - Assert.fail("Menu delega button NON trovata con errore: " + e.getMessage()); + Assertions.fail("Menu delega button NON trovata con errore: " + e.getMessage()); } } @@ -133,7 +133,7 @@ public void clickRevocaMenuButtonPG() { this.revocaMenuButton.click(); } catch (TimeoutException e) { logger.error("click sul bottone revoca non riuscito"); - Assert.fail("click sul bottone revoca non riuscito"); + Assertions.fail("click sul bottone revoca non riuscito"); } } @@ -146,7 +146,7 @@ public void waitPopUpRevoca(String ragionSociale) { logger.info("Il pop-up revoca si visualizza correttamente"); } catch (TimeoutException e) { logger.error("Il pop-up revoca NON si visualizza correttamente con errore: " + e.getMessage()); - Assert.fail("Il pop-up revoca NON si visualizza correttamente con errore: " + e.getMessage()); + Assertions.fail("Il pop-up revoca NON si visualizza correttamente con errore: " + e.getMessage()); } } @@ -158,7 +158,7 @@ public void esistenzaRevocaButton() { driver.navigate().refresh(); } catch(TimeoutException e){ logger.error("Bottone revoca non visualizzabile e non cliccabile con errore: " + e.getMessage()); - Assert.fail("Bottone revoca non visualizzabile e non cliccabile con errore: " + e.getMessage()); + Assertions.fail("Bottone revoca non visualizzabile e non cliccabile con errore: " + e.getMessage()); } } @@ -189,7 +189,7 @@ public void checkTabellaDelegheDellImpresa() { getWebDriverWait(10).withMessage("menu non caricato correttamente").until(ExpectedConditions.visibilityOfElementLocated(menuDelega)); }catch (TimeoutException e){ logger.error("tabella delegati dall imprese non caricata correttamente" + e.getMessage()); - Assert.fail("tabella delegati dall imprese non caricata correttamente" + e.getMessage()); + Assertions.fail("tabella delegati dall imprese non caricata correttamente" + e.getMessage()); } } diff --git a/src/main/java/it/pn/frontend/e2e/section/destinatario/personaGiuridica/HeaderPGSection.java b/src/main/java/it/pn/frontend/e2e/section/destinatario/personaGiuridica/HeaderPGSection.java index a1b515443..ca5781cda 100644 --- a/src/main/java/it/pn/frontend/e2e/section/destinatario/personaGiuridica/HeaderPGSection.java +++ b/src/main/java/it/pn/frontend/e2e/section/destinatario/personaGiuridica/HeaderPGSection.java @@ -1,7 +1,7 @@ package it.pn.frontend.e2e.section.destinatario.personaGiuridica; import it.pn.frontend.e2e.common.BasePage; -import org.junit.Assert; +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.By; import org.openqa.selenium.TimeoutException; import org.openqa.selenium.WebDriver; @@ -31,7 +31,7 @@ public void waitLoadHeaderPGPage() { logger.info("HeaderSectionPG caricata correttamente"); } catch (TimeoutException e){ logger.error("HeaderSectionPG non caricata correttamente con errrore: "+e.getMessage()); - Assert.fail("HeaderSectionPG non caricata correttamente con errrore: "+e.getMessage()); + Assertions.fail("HeaderSectionPG non caricata correttamente con errrore: "+e.getMessage()); } } diff --git a/src/main/java/it/pn/frontend/e2e/section/mittente/AllegatiPASection.java b/src/main/java/it/pn/frontend/e2e/section/mittente/AllegatiPASection.java index 330eef81b..c1e240c19 100644 --- a/src/main/java/it/pn/frontend/e2e/section/mittente/AllegatiPASection.java +++ b/src/main/java/it/pn/frontend/e2e/section/mittente/AllegatiPASection.java @@ -1,7 +1,7 @@ package it.pn.frontend.e2e.section.mittente; import it.pn.frontend.e2e.common.BasePage; -import org.junit.Assert; +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.By; import org.openqa.selenium.TimeoutException; import org.openqa.selenium.WebDriver; @@ -44,7 +44,7 @@ public void waitLoadAllegatiPASection() { logger.info("Allegati PA Section caricata"); }catch (TimeoutException e){ logger.error("Allegati PA Section non caricata con errore: "+e.getMessage()); - Assert.fail("Allegati PA Section non caricata con errore: "+e.getMessage()); + Assertions.fail("Allegati PA Section non caricata con errore: "+e.getMessage()); } } @@ -116,7 +116,7 @@ public void selectInviaButton() { logger.info("click avvenuto con successo su invio allegati"); }catch (TimeoutException e) { logger.error("click non avvenuto con successo su invio allegati con errore: "+e.getMessage()); - Assert.fail("click non avvenuto con successo su invio allegati con errore: "+e.getMessage()); } + Assertions.fail("click non avvenuto con successo su invio allegati con errore: "+e.getMessage()); } } public boolean verificaMessaggioErrore() { diff --git a/src/main/java/it/pn/frontend/e2e/section/mittente/DestinatarioPASection.java b/src/main/java/it/pn/frontend/e2e/section/mittente/DestinatarioPASection.java index cbb474057..a55c478ae 100644 --- a/src/main/java/it/pn/frontend/e2e/section/mittente/DestinatarioPASection.java +++ b/src/main/java/it/pn/frontend/e2e/section/mittente/DestinatarioPASection.java @@ -1,7 +1,7 @@ package it.pn.frontend.e2e.section.mittente; import it.pn.frontend.e2e.common.BasePage; -import org.junit.Assert; +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.*; import org.openqa.selenium.support.FindBy; import org.openqa.selenium.support.ui.ExpectedConditions; @@ -104,7 +104,7 @@ public void waitLoadDestinatarioPASection() { logger.info("Destinatario PA Section caricata "); } catch (TimeoutException e) { logger.error("Destinatario PA Section non caricata con errore : " + e.getMessage()); - Assert.fail("Destinatario PA Section non caricata con errore : " + e.getMessage()); + Assertions.fail("Destinatario PA Section non caricata con errore : " + e.getMessage()); } } @@ -259,7 +259,7 @@ private void inserireInfoMultiDestinatario(String xpath, String nomeDestinatario this.scrollToElementClickAndInsertText(listaNomeDestinatariField.get(listaNomeDestinatariField.size() - 1), nomeDestinatario); } catch (TimeoutException e) { logger.error("Xpath non trovato con errore: " + e.getMessage()); - Assert.fail("Xpath non trovato con errore: " + e.getMessage()); + Assertions.fail("Xpath non trovato con errore: " + e.getMessage()); } } @@ -278,7 +278,7 @@ public void waitMessaggioErrore() { logger.info("I messaggi di errore vengono visualizzati correttamente"); } catch (TimeoutException e) { logger.error("Il messaggio di errore non viene visualizzato con errore: " + e.getMessage()); - Assert.fail("Il messaggio di errore non viene visualizzato con errore: " + e.getMessage()); + Assertions.fail("Il messaggio di errore non viene visualizzato con errore: " + e.getMessage()); } } diff --git a/src/main/java/it/pn/frontend/e2e/section/mittente/DettaglioNotificaMittenteSection.java b/src/main/java/it/pn/frontend/e2e/section/mittente/DettaglioNotificaMittenteSection.java index 3a748eb06..5aef2f03d 100644 --- a/src/main/java/it/pn/frontend/e2e/section/mittente/DettaglioNotificaMittenteSection.java +++ b/src/main/java/it/pn/frontend/e2e/section/mittente/DettaglioNotificaMittenteSection.java @@ -5,7 +5,7 @@ import it.pn.frontend.e2e.utility.WebTool; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.text.PDFTextStripper; -import org.junit.Assert; +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.*; import org.openqa.selenium.support.FindBy; import org.openqa.selenium.support.ui.ExpectedConditions; @@ -151,7 +151,7 @@ public boolean controlloTestoFile(String nameFile, String testoDaControllare) { pdfFile.close(); } catch (IOException e) { logger.error("File non trovato con errore: " + e.getMessage()); - Assert.fail("File non trovato con errore: " + e.getMessage()); + Assertions.fail("File non trovato con errore: " + e.getMessage()); } return false; } @@ -178,7 +178,7 @@ public boolean controlloSHAFile(String nameFile) { pdfFile.close(); } catch (IOException e) { logger.error("File non trovato con errore: " + e.getMessage()); - Assert.fail("File non trovato con errore: " + e.getMessage()); + Assertions.fail("File non trovato con errore: " + e.getMessage()); } return false; } @@ -205,7 +205,7 @@ public void siVisualizzaPercorsoNotifica() { } } catch (NoSuchElementException e) { logger.error("TA_QA: L'elenco completo degli stati NON presente con errore: " + e.getMessage()); - Assert.fail("TA_QA: L'elenco completo degli stati NON presentecon errore: " + e.getMessage()); + Assertions.fail("TA_QA: L'elenco completo degli stati NON presentecon errore: " + e.getMessage()); } } @@ -229,7 +229,7 @@ public boolean controlloTestoFileCodiceIUN(String fileName, String codiceIUN) { pdfFile.close(); } catch (IOException e) { logger.error("File non trovato con errore: " + e.getMessage()); - Assert.fail("File non trovato con errore: " + e.getMessage()); + Assertions.fail("File non trovato con errore: " + e.getMessage()); } return false; @@ -254,7 +254,7 @@ public boolean controlloTestoFileData(String fileName, String testoDaControllare pdfFile.close(); } catch (IOException e) { logger.error("File non trovato con errore: " + e.getMessage()); - Assert.fail("File non trovato con errore: " + e.getMessage()); + Assertions.fail("File non trovato con errore: " + e.getMessage()); } return false; } @@ -296,7 +296,7 @@ public void clickLinkAttestazioneOpponibile(String nomeFile) { } } catch (TimeoutException e) { logger.error("Non riuscito ad trovare il link con errore: " + e.getMessage()); - Assert.fail("Non riuscito ad trovare il link con errore: " + e.getMessage()); + Assertions.fail("Non riuscito ad trovare il link con errore: " + e.getMessage()); } } @@ -307,7 +307,7 @@ public void verificaInvioPECInCorso() { logger.info("La pec è in stato invio in corso"); } catch (TimeoutException e) { logger.error("La pec NON è in stato invio in corso con errore: " + e.getMessage()); - Assert.fail("La pec NON è in stato invio in corso con errore: " + e.getMessage()); + Assertions.fail("La pec NON è in stato invio in corso con errore: " + e.getMessage()); } } @@ -327,11 +327,11 @@ public void checkNumeroFallimentiInvioViaPEC(int numeroFallimenti) { logger.info("L'invio della notifica è fallito questo numero di volte: " + invioPECFallitoList.size()); if (invioPECFallitoList.size() != numeroFallimenti) { logger.error("L'invio della notifica non è fallito " + numeroFallimenti + " volta/e"); - Assert.fail("L'invio della notifica non è fallito " + numeroFallimenti + " volta/e"); + Assertions.fail("L'invio della notifica non è fallito " + numeroFallimenti + " volta/e"); } } catch (TimeoutException e) { logger.error("NON è fallito l'invio della notifica: " + e.getMessage()); - Assert.fail("NON è fallito l'invio della notifica: " + e.getMessage()); + Assertions.fail("NON è fallito l'invio della notifica: " + e.getMessage()); } } @@ -342,7 +342,7 @@ public void checkStatoTimeline(String statoTimeline){ logger.info("stato timeline checkato con successo avvenuta"); } catch (TimeoutException e) { logger.error("checkato stato timeline non avvenuta con errore: " + e.getMessage()); - Assert.fail("checkato stato timeline non avvenuta con errore: " + e.getMessage()); + Assertions.fail("checkato stato timeline non avvenuta con errore: " + e.getMessage()); } } @@ -356,7 +356,7 @@ public void siCliccaSuAllegatoInTimeline(String xpath) { logger.info("allegato timeline trovato con successo"); } catch (TimeoutException e) { logger.error("allegato timeline trovato non con successo: " + e.getMessage()); - Assert.fail("allegato timeline trovato non con successo: " + e.getMessage()); + Assertions.fail("allegato timeline trovato non con successo: " + e.getMessage()); } } @@ -374,7 +374,7 @@ public void checkInvioADomicilioDiPiattaforma(String domicilioDiPiattaforma) { getWebDriverWait(10).withMessage("Non si visualizza l'invio della notifica al domicilio di piattaforma nella timeline").until(ExpectedConditions.visibilityOfElementLocated(invioDomicilioDiPiattaformaBy)); } catch (TimeoutException e) { logger.error("L'invio della notifica al domicilio di piattaforma indicato non viene effettuato con errore: " + e.getMessage()); - Assert.fail("L'invio della notifica al domicilio di piattaforma indicato non viene effettuato con errore: " + e.getMessage()); + Assertions.fail("L'invio della notifica al domicilio di piattaforma indicato non viene effettuato con errore: " + e.getMessage()); } } @@ -386,11 +386,11 @@ public void checkDoppioFallimentoInvioViaPEC(int numeroFallimenti) { logger.info("L'invio della notifica è fallito questo numero di volte: " + invioPECFallitoList.size()); if (invioPECFallitoList.size() != numeroFallimenti) { logger.error("L'invio della notifica non è fallito " + numeroFallimenti + " volta/e"); - Assert.fail("L'invio della notifica non è fallito " + numeroFallimenti + " volta/e"); + Assertions.fail("L'invio della notifica non è fallito " + numeroFallimenti + " volta/e"); } } catch (TimeoutException e) { logger.error("NON è fallito l'invio della notifica: " + e.getMessage()); - Assert.fail("NON è fallito l'invio della notifica: " + e.getMessage()); + Assertions.fail("NON è fallito l'invio della notifica: " + e.getMessage()); } } @@ -401,7 +401,7 @@ public void checkInvioRaccomandataSemplice() { logger.info("L'invio della notifica avviene via raccomandata semplice"); } catch (TimeoutException e) { logger.error("L'invio della notifica per raccomandata non viene visualizzato: " + e.getMessage()); - Assert.fail("L'invio della notifica per raccomandata non viene visualizzato: " + e.getMessage()); + Assertions.fail("L'invio della notifica per raccomandata non viene visualizzato: " + e.getMessage()); } } @@ -411,7 +411,7 @@ public void checkTentatoInvioADomicilioSpeciale(String domicilioSpeciale) { 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()); + Assertions.fail("L'invio della notifica al domicilio speciale indicato non viene effettuato con errore: " + e.getMessage()); } } @@ -432,7 +432,7 @@ public void checkAvvisoPagoPa() { getWebDriverWait(10).withMessage("Non si visualizza l'avviso PagoPA per il pagamento della notifica").until(ExpectedConditions.visibilityOfElementLocated(boxPagamento)); } catch (TimeoutException e) { logger.error("Box per il pagamento della notifica non visualizzato correttamente con errore: " + e.getMessage()); - Assert.fail("Box per il pagamento della notifica non visualizzato correttamente con errore: " + e.getMessage()); + Assertions.fail("Box per il pagamento della notifica non visualizzato correttamente con errore: " + e.getMessage()); } } @@ -466,7 +466,7 @@ public void clickAvvisoPagoPa() { this.element(avvisoPagoPa).click(); } catch (TimeoutException e) { logger.error("Box per il pagamento della notifica non visualizzato correttamente con errore: " + e.getMessage()); - Assert.fail("Box per il pagamento della notifica non visualizzato correttamente con errore: " + e.getMessage()); + Assertions.fail("Box per il pagamento della notifica non visualizzato correttamente con errore: " + e.getMessage()); } } @@ -484,7 +484,7 @@ public void checkBoxModelloF24() { getWebDriverWait(10).withMessage("Non si visualizza il box allegati modelli F24").until(ExpectedConditions.visibilityOfElementLocated(boxModelloF24)); } catch (TimeoutException e) { logger.error("Box del modello F24 non visualizzato correttamente con errore: " + e.getMessage()); - Assert.fail("Box del modello F24 non visualizzato correttamente con errore: " + e.getMessage()); + Assertions.fail("Box del modello F24 non visualizzato correttamente con errore: " + e.getMessage()); } } @@ -501,7 +501,7 @@ public void checkBoxPagamentoMultiDestinatario() { getWebDriverWait(10).withMessage("Non si visualizza l'input per la selezione del destinatario").until(ExpectedConditions.visibilityOf(selectMultiDestinatario)); } catch (TimeoutException e) { logger.error("Dettaglio notifica multi destinatario non ancora pagata visualizzata non correttamente con errore: " + e.getMessage()); - Assert.fail("Dettaglio notifica multi destinatario non ancora pagata visualizzata non correttamente con errore: " + e.getMessage()); + Assertions.fail("Dettaglio notifica multi destinatario non ancora pagata visualizzata non correttamente con errore: " + e.getMessage()); } } @@ -515,7 +515,7 @@ public void clickMultiDestinatario() { selectOption.get(0).click(); } catch (TimeoutException e) { logger.error("Non è stato possibile selezionare un destinatario con errore: " + e.getMessage()); - Assert.fail("Non è stato possibile selezionare un destinatario con errore: " + e.getMessage()); + Assertions.fail("Non è stato possibile selezionare un destinatario con errore: " + e.getMessage()); } } @@ -525,7 +525,7 @@ public void checkAttestazionePresaInCarico() { getWebDriverWait(10).withMessage("Non si visualizza attestazione opponibile a terzi notifica presa in carico").until(ExpectedConditions.visibilityOfElementLocated(attestazionePresaInCarico)); } catch (TimeoutException e) { logger.error("Attestazione opponibile a terzi notifica presa in carico non visualizzato correttamente con errore: " + e.getMessage()); - Assert.fail("Attestazione opponibile a terzi notifica presa in carico non visualizzato correttamente con errore: " + e.getMessage()); + Assertions.fail("Attestazione opponibile a terzi notifica presa in carico non visualizzato correttamente con errore: " + e.getMessage()); } } @@ -556,7 +556,7 @@ public void checkInvioMessaggioDiCortesia() { } if (!testSuccess) { logger.error("L'invio del messaggio al contatto di cortesia non è avvenuto"); - Assert.fail("L'invio del messaggio al contatto di cortesia non è avvenuto"); + Assertions.fail("L'invio del messaggio al contatto di cortesia non è avvenuto"); } } diff --git a/src/main/java/it/pn/frontend/e2e/section/mittente/GeneraApiKeySection.java b/src/main/java/it/pn/frontend/e2e/section/mittente/GeneraApiKeySection.java index 887b824a6..c92bc52a3 100644 --- a/src/main/java/it/pn/frontend/e2e/section/mittente/GeneraApiKeySection.java +++ b/src/main/java/it/pn/frontend/e2e/section/mittente/GeneraApiKeySection.java @@ -1,7 +1,7 @@ package it.pn.frontend.e2e.section.mittente; import it.pn.frontend.e2e.common.BasePage; -import org.junit.Assert; +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.By; import org.openqa.selenium.TimeoutException; import org.openqa.selenium.WebDriver; @@ -25,7 +25,7 @@ public void waitLoadGeneraApiKey() { logger.info("Api Key caricata"); }catch (TimeoutException e){ logger.error("Genera Api Key NON caricata con errore : "+e.getMessage()); - Assert.fail("Genera Api Key NON caricata con errore : "+e.getMessage()); + Assertions.fail("Genera Api Key NON caricata con errore : "+e.getMessage()); } } } diff --git a/src/main/java/it/pn/frontend/e2e/section/mittente/HeaderPASection.java b/src/main/java/it/pn/frontend/e2e/section/mittente/HeaderPASection.java index d7cfca55a..3ba397ded 100644 --- a/src/main/java/it/pn/frontend/e2e/section/mittente/HeaderPASection.java +++ b/src/main/java/it/pn/frontend/e2e/section/mittente/HeaderPASection.java @@ -1,7 +1,7 @@ package it.pn.frontend.e2e.section.mittente; import it.pn.frontend.e2e.common.BasePage; -import org.junit.Assert; +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.By; import org.openqa.selenium.TimeoutException; import org.openqa.selenium.WebDriver; @@ -29,7 +29,7 @@ public void waitLoadHeaderSection() { logger.info("Header PA Section caricata"); } catch (TimeoutException e) { logger.error("Il titolo nel Header: 'Sito di PagoPA S.p.A.' non è caricato con errore : " + e.getMessage()); - Assert.fail("Il titolo nel Header: 'Sito di PagoPA S.p.A.' non è caricato con errore : " + e.getMessage()); + Assertions.fail("Il titolo nel Header: 'Sito di PagoPA S.p.A.' non è caricato con errore : " + e.getMessage()); } } @@ -40,7 +40,7 @@ public void selezionaEsciButton() { esciButton.click(); } catch (TimeoutException e) { logger.error("Il bottone esci non cliccabile con errore: " + e.getMessage()); - Assert.fail("Il bottone esci non cliccabile con errore: " + e.getMessage()); + Assertions.fail("Il bottone esci non cliccabile con errore: " + e.getMessage()); } } diff --git a/src/main/java/it/pn/frontend/e2e/section/mittente/InformazioniPreliminariPASection.java b/src/main/java/it/pn/frontend/e2e/section/mittente/InformazioniPreliminariPASection.java index ec9116ac5..29ac87df4 100644 --- a/src/main/java/it/pn/frontend/e2e/section/mittente/InformazioniPreliminariPASection.java +++ b/src/main/java/it/pn/frontend/e2e/section/mittente/InformazioniPreliminariPASection.java @@ -2,7 +2,7 @@ import it.pn.frontend.e2e.common.BasePage; import it.pn.frontend.e2e.utility.WebTool; -import org.junit.Assert; +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.By; import org.openqa.selenium.TimeoutException; import org.openqa.selenium.WebDriver; @@ -56,7 +56,7 @@ public void waitLoadInformazioniPreliminariPASection() { logger.info("Informazioni preliminari PA Section caricata"); } catch (TimeoutException e) { logger.error("Informazioni preliminari PA Section non caricata. L'elemento NumProtocollo, Ogetto, descrizione o codicetassonometrico non caricato con errore : " + e.getMessage()); - Assert.fail("Informazioni preliminari PA Section non caricata con errore : " + e.getMessage()); + Assertions.fail("Informazioni preliminari PA Section non caricata con errore : " + e.getMessage()); } } @@ -103,7 +103,7 @@ public void insertGruppo(String gruppo) { element(gruppoBy).click(); } catch (TimeoutException e) { logger.info("gruppo " + gruppo + " NON trovato con errore : " + e.getMessage()); - Assert.fail("gruppo " + gruppo + " NON trovato con errore : " + e.getMessage()); + Assertions.fail("gruppo " + gruppo + " NON trovato con errore : " + e.getMessage()); } } diff --git a/src/main/java/it/pn/frontend/e2e/section/mittente/SuccessPASection.java b/src/main/java/it/pn/frontend/e2e/section/mittente/SuccessPASection.java index 863dd915f..49f435443 100644 --- a/src/main/java/it/pn/frontend/e2e/section/mittente/SuccessPASection.java +++ b/src/main/java/it/pn/frontend/e2e/section/mittente/SuccessPASection.java @@ -1,7 +1,7 @@ package it.pn.frontend.e2e.section.mittente; import it.pn.frontend.e2e.common.BasePage; -import org.junit.Assert; +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.TimeoutException; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; @@ -30,7 +30,7 @@ public void waitLoadSuccessPASection() { logger.info("TA_QA: La notifica è stata creata con successo, PA section caricata correttamente"); } catch (TimeoutException e) { logger.error("TA_QA: Il titolo della Success PA section non caricata con errore: " + e.getMessage()); - Assert.fail("TA_QA: Il titolo della Success PA section non caricata con errore: " + e.getMessage()); + Assertions.fail("TA_QA: Il titolo della Success PA section non caricata con errore: " + e.getMessage()); } } diff --git a/src/main/java/it/pn/frontend/e2e/utility/DataPopulation.java b/src/main/java/it/pn/frontend/e2e/utility/DataPopulation.java index ab4810597..356f58356 100644 --- a/src/main/java/it/pn/frontend/e2e/utility/DataPopulation.java +++ b/src/main/java/it/pn/frontend/e2e/utility/DataPopulation.java @@ -5,7 +5,7 @@ import com.fasterxml.jackson.dataformat.yaml.YAMLFactory; import com.fasterxml.jackson.dataformat.yaml.YAMLGenerator; import lombok.Setter; -import org.junit.Assert; +import org.junit.jupiter.api.Assertions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -49,7 +49,7 @@ public Map readDataPopulation(String dpFile) { return objectMapper.readValue(new File("src/test/resources/dataPopulation/" + dpFile), typeReference); } catch (IOException e) { logger.error(e.getMessage()); - Assert.fail(e.getMessage()); + Assertions.fail(e.getMessage()); } return readValue; } @@ -60,7 +60,7 @@ public void writeDataPopulation(String dpFile, Map dp) { this.objectMapper.writeValue(new File("src/test/resources/dataPopulation/" + dpFile), dp); } catch (IOException e) { logger.error(e.getMessage()); - Assert.fail(e.getMessage()); + Assertions.fail(e.getMessage()); } } } diff --git a/src/main/java/it/pn/frontend/e2e/utility/DownloadFile.java b/src/main/java/it/pn/frontend/e2e/utility/DownloadFile.java index 46bf7f97d..4810ac475 100644 --- a/src/main/java/it/pn/frontend/e2e/utility/DownloadFile.java +++ b/src/main/java/it/pn/frontend/e2e/utility/DownloadFile.java @@ -8,7 +8,7 @@ import org.apache.commons.io.FileUtils; import org.json.JSONArray; import org.json.JSONObject; -import org.junit.Assert; +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.WebDriver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -153,7 +153,7 @@ public void controlloDownload(String path, int numberOfFile) { } } else { logger.error("File non scaricato o non completo numberOfFile=" + numberOfFile); - Assert.fail("File non scaricato"); + Assertions.fail("File non scaricato"); } } diff --git a/src/main/java/it/pn/frontend/e2e/utility/NotificationBuilder.java b/src/main/java/it/pn/frontend/e2e/utility/NotificationBuilder.java index 417671e56..c49e97c39 100644 --- a/src/main/java/it/pn/frontend/e2e/utility/NotificationBuilder.java +++ b/src/main/java/it/pn/frontend/e2e/utility/NotificationBuilder.java @@ -13,8 +13,7 @@ import it.pn.frontend.e2e.rest.RestNotification; import lombok.Getter; import lombok.extern.slf4j.Slf4j; -import org.junit.Assert; - +import org.junit.jupiter.api.Assertions; import java.io.*; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; @@ -91,7 +90,7 @@ public ArrayList preloadPagoPaPayment(ArrayList preLoadRequestList = new ArrayList<>(); preLoadRequestList.add(preLoadRequest); List response = restNotification.preLoadDocument(preLoadRequestList); - Assert.assertNotNull("La chiamata per il preload del documento non è andata a buon fine", response); + Assertions.assertNotNull(response,"La chiamata per il preload del documento non è andata a buon fine"); log.info("PreLoad del documento effettuato con successo"); if (costiNotifica.equalsIgnoreCase("false")) { PagoPaPayment avvisoPagoPa = new PagoPaPayment(WebTool.generateNoticeCodeNumber(), sha256, response.get(0).getKey(), "v1", false); @@ -123,7 +122,7 @@ public ArrayList preloadF24Payment(ArrayList preLoadRequestList = new ArrayList<>(); preLoadRequestList.add(preLoadRequest); List response = restNotification.preLoadDocument(preLoadRequestList); - Assert.assertNotNull("La chiamata per il preload dell'F24 non è andata a buon fine", response); + Assertions.assertNotNull(response,"La chiamata per il preload dell'F24 non è andata a buon fine"); log.info("PreLoad dell'F24 effettuato con successo"); if (costiNotifica.equalsIgnoreCase("false")) { F24Payment f24 = new F24Payment(sha256, response.get(0).getKey(), "v1", false); @@ -152,7 +151,7 @@ public ArrayList preloadDocument(int numeroDocumenti) { List sha256List = new ArrayList<>(); listForPreloadPopulation(numeroDocumenti, sha256List, preLoadRequestList); List response = restNotification.preLoadDocument(preLoadRequestList); - Assert.assertNotNull("La chiamata per il preload del documento non è andata a buon fine", response); + Assertions.assertNotNull(response,"La chiamata per il preload del documento non è andata a buon fine"); log.info("PreLoad del documento effettuato con successo"); ArrayList documents = new ArrayList<>(); for (int i = 0; i < numeroDocumenti; i++) { @@ -180,7 +179,7 @@ public String computeSha256(String resName) { return computeSha256(stream); } catch (IOException e) { log.error("Il preload non è andato a buon fine con errore: {}", e.getMessage()); - Assert.fail("Il preload non è andato a buon fine con errore: " + e.getMessage()); + Assertions.fail("Il preload non è andato a buon fine con errore: " + e.getMessage()); return null; } } diff --git a/src/main/java/it/pn/frontend/e2e/utility/WebTool.java b/src/main/java/it/pn/frontend/e2e/utility/WebTool.java index 16452a211..721289fae 100644 --- a/src/main/java/it/pn/frontend/e2e/utility/WebTool.java +++ b/src/main/java/it/pn/frontend/e2e/utility/WebTool.java @@ -11,7 +11,7 @@ import it.pn.frontend.e2e.section.mittente.HeaderPASection; import lombok.extern.slf4j.Slf4j; import lombok.Getter; -import org.junit.Assert; +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.WebDriver; @@ -61,7 +61,7 @@ public static String switchToPortal(AppPortal portal) { } default -> { log.error("Tipologia di portale non specificato o errato!"); - Assert.fail("Tipologia di portale non specificato o errato!"); + Assertions.fail("Tipologia di portale non specificato o errato!"); } } CookiesSection cookiesPage = new CookiesSection(driver); From 23d912f6ca1e25b8d624805451d0ce9d20a8bb66 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Thu, 10 Oct 2024 07:22:48 +0200 Subject: [PATCH 021/212] Refactor upgrade Junit5 --- pn-frontend-e2e.iml | 8 ++ pom.xml | 19 ++++ .../it/pn/frontend/e2e/listeners/Hooks.java | 42 ++++----- .../AccettazioneRichiestaNotifica.java | 5 +- .../e2e/api/mittente/SpidAcsMittente.java | 4 +- .../e2e/api/mittente/SpidLoginMittente.java | 8 +- ...uropeAzureContainerIoContinueResponse.java | 4 +- ...estEnvWestEuropeAzureContainerIoLogin.java | 5 +- .../e2e/api/personaFisica/SpidAcs.java | 4 +- .../e2e/api/personaFisica/SpidDemoLogin.java | 6 +- .../e2e/api/personaFisica/SpidDemoStart.java | 6 +- .../e2e/api/personaFisica/SpidLogin.java | 7 +- .../pn/frontend/e2e/run/RunCucumberTest.java | 29 ++++-- .../stepDefinitions/common/HelpdeskTest.java | 9 +- .../stepDefinitions/common/RecapitiTest.java | 9 +- .../personaFisica/DeleghePagoPATest.java | 29 +++--- .../LoginPersonaFisicaPagoPA.java | 75 +++++++-------- .../NotifichePersonaFisicaPagoPATest.java | 33 +++---- .../RecapitiPersonaFisicaTest.java | 59 ++++++------ .../RicercaNotifichePersonaFisicaPATest.java | 15 +-- .../personaGiuridica/DeleghePGPagoPATest.java | 27 +++--- .../personaGiuridica/DisserviziAppPGTest.java | 5 +- .../personaGiuridica/LoginPGPagoPATest.java | 41 +++++---- .../NotifichePGPagoPATest.java | 33 +++---- .../RecapitiPGPagoPaTest.java | 5 +- ...icercaNotifichePersonaGiuridicaPATest.java | 21 +++-- .../personaGiuridica/UtentiPGPagoPATest.java | 1 + .../stepDefinitions/mittente/ApiKeysTest.java | 13 +-- .../mittente/DashboardMittentePagoPATest.java | 5 +- .../mittente/DisserviziAppPATest.java | 5 +- .../DownloadFileMittentePagoPATest.java | 31 ++++--- .../mittente/LoginMittentePagoPA.java | 38 ++++---- .../mittente/NewNotifichePagoPATest.java | 5 +- .../mittente/NotificaMittentePagoPATest.java | 91 ++++++++++--------- .../RicercaNotificheMittentePagoPATest.java | 57 ++++++------ src/test/resources/junit-platform.properties | 10 ++ 36 files changed, 419 insertions(+), 345 deletions(-) create mode 100644 pn-frontend-e2e.iml create mode 100644 src/test/resources/junit-platform.properties diff --git a/pn-frontend-e2e.iml b/pn-frontend-e2e.iml new file mode 100644 index 000000000..abe781f78 --- /dev/null +++ b/pn-frontend-e2e.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml index add2422e8..9c5a76bc4 100644 --- a/pom.xml +++ b/pom.xml @@ -231,6 +231,12 @@ org.junit.jupiter junit-jupiter-api + + org.testng + testng + 7.8.0 + compile + @@ -310,6 +316,19 @@ 14 + + org.apache.maven.plugins + maven-surefire-plugin + 3.0.0-M7 + + + + cucumber.junit-platform.naming-strategy=long + + + plain + + diff --git a/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java b/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java index 24b695139..f458ecd1c 100644 --- a/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java +++ b/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java @@ -1,8 +1,4 @@ package it.pn.frontend.e2e.listeners; -import io.cucumber.java.After; -import io.cucumber.java.Before; -import io.cucumber.java.Scenario; -import io.cucumber.java.en.And; import io.github.bonigarcia.wdm.WebDriverManager; import it.pn.frontend.e2e.model.address.DigitalAddress; import it.pn.frontend.e2e.model.singleton.MandateSingleton; @@ -10,10 +6,10 @@ import it.pn.frontend.e2e.rest.RestDelegation; import it.pn.frontend.e2e.utility.CookieConfig; import lombok.Getter; -import org.apache.commons.io.FileUtils; +import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Assertions; -import org.openqa.selenium.OutputType; -import org.openqa.selenium.TakesScreenshot; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.TestInfo; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.chrome.ChromeOptions; @@ -32,10 +28,10 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.slf4j.MDC; +import org.testng.annotations.BeforeTest; + import java.io.File; import java.io.IOException; -import java.text.DateFormat; -import java.text.SimpleDateFormat; import java.time.Duration; import java.util.*; import java.util.concurrent.TimeUnit; @@ -182,11 +178,12 @@ protected void edge() { logger.info("edge driver started"); } - @Before - public void startScenario(Scenario scenario) { - logger.info("-------------------------------------------START SCENARIO: " + scenario.getName() + "------------------------------------------------"); - this.scenario = scenario.getName(); - Collection tags = scenario.getSourceTagNames(); + @BeforeEach + public void startScenario(TestInfo scenario) { + logger.info("-------------------------------------------START SCENARIO: " + scenario.getDisplayName() + "------------------------------------------------"); + this.scenario = scenario.getDisplayName(); + + Collection tags = scenario.getTags(); for (String tag : tags) { if (tag.startsWith("@TA_")) { MDC.put("tag", tag); @@ -221,8 +218,8 @@ public void startScenario(Scenario scenario) { cookieConfig.addCookie(); } - @After - public void endScenario(Scenario scenario) { + @AfterEach + public void endScenario(TestInfo scenario) { System.clearProperty("IUN"); @@ -233,7 +230,7 @@ public void endScenario(Scenario scenario) { logger.info(netWorkInfo.getResponseStatus()); logger.info(netWorkInfo.getResponseBody()); } - +/** if (scenario.isFailed()) { logger.error("scenario go to error : " + scenario.getName()); try { @@ -249,6 +246,7 @@ public void endScenario(Scenario scenario) { logger.error(e.getCause().toString()); } } + **/ logger.info("quit driver"); driver.quit(); @@ -259,14 +257,14 @@ public void endScenario(Scenario scenario) { } catch (InterruptedException e) { throw new RuntimeException(e); } - logger.info("-------------------------------------------END SCENARIO: " + scenario.getName() + "------------------------------------------------"); + logger.info("-------------------------------------------END SCENARIO: " + scenario.getDisplayName() + "------------------------------------------------"); } /** * Clear the delegate of PF after the scenario * P.S: This will work only if you invoke the feature step that creates the delegate */ - @After("@DeleghePF or @DeleghePG") + // @AfterEach("@DeleghePF or @DeleghePG") public void clearDelegate() { logger.info("REVOCA TUTTE LE DELEGHE...."); MandateSingleton mandateSingleton = MandateSingleton.getInstance(); @@ -285,7 +283,7 @@ public void clearDelegate() { * Clear directory of file downloaded * P.S: This will work only if you invoke the feature step that creates the delegate */ - @After("@File") + //@AfterEach("@File") public void clearDirectory() { String folderPath = System.getProperty("downloadFilePath"); @@ -310,8 +308,8 @@ public void clearDirectory() { * P.S: This will work only if there are any contacts available */ - @After(value = "@recapitiPF or @recapitiPG") - @And("Rimuovi tutti i recapiti se esistono") + @AfterEach() + // @And("Rimuovi tutti i recapiti se esistono") public void clearRecapiti() throws IOException { RestContact restContact = RestContact.getInstance(); diff --git a/src/test/java/it/pn/frontend/e2e/api/mittente/AccettazioneRichiestaNotifica.java b/src/test/java/it/pn/frontend/e2e/api/mittente/AccettazioneRichiestaNotifica.java index be62bae88..bbd42e463 100644 --- a/src/test/java/it/pn/frontend/e2e/api/mittente/AccettazioneRichiestaNotifica.java +++ b/src/test/java/it/pn/frontend/e2e/api/mittente/AccettazioneRichiestaNotifica.java @@ -11,9 +11,10 @@ import org.apache.hc.core5.http.HttpHeaders; import org.apache.hc.core5.http.io.entity.EntityUtils; import org.apache.hc.core5.http.io.support.ClassicRequestBuilder; -import org.junit.Assert; +import org.junit.jupiter.api.Assertions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.testng.asserts.Assertion; import java.io.IOException; import java.util.List; @@ -56,7 +57,7 @@ public boolean runGetRichiestaNotifica() { }); } catch (IOException e) { - Assert.fail(e.getMessage()); + Assertions.fail(e.getMessage()); } return this.responseBody != null; } diff --git a/src/test/java/it/pn/frontend/e2e/api/mittente/SpidAcsMittente.java b/src/test/java/it/pn/frontend/e2e/api/mittente/SpidAcsMittente.java index 4040607eb..4692cc7fe 100644 --- a/src/test/java/it/pn/frontend/e2e/api/mittente/SpidAcsMittente.java +++ b/src/test/java/it/pn/frontend/e2e/api/mittente/SpidAcsMittente.java @@ -12,9 +12,9 @@ import org.apache.hc.core5.http.Header; import org.apache.hc.core5.http.HttpHeaders; import org.apache.hc.core5.http.io.support.ClassicRequestBuilder; +import org.junit.jupiter.api.Assertions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.junit.Assert; import java.io.IOException; import java.util.HashMap; @@ -62,7 +62,7 @@ public void runSpidAcs(){ }); }catch (IOException e){ - Assert.fail(e.getMessage()); + Assertions.fail(e.getMessage()); } } diff --git a/src/test/java/it/pn/frontend/e2e/api/mittente/SpidLoginMittente.java b/src/test/java/it/pn/frontend/e2e/api/mittente/SpidLoginMittente.java index aff099fd5..b8ef11be4 100644 --- a/src/test/java/it/pn/frontend/e2e/api/mittente/SpidLoginMittente.java +++ b/src/test/java/it/pn/frontend/e2e/api/mittente/SpidLoginMittente.java @@ -10,9 +10,11 @@ import org.apache.hc.core5.http.io.support.ClassicRequestBuilder; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; +import org.junit.jupiter.api.Assertions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.junit.Assert; +import org.testng.asserts.Assertion; + import java.io.IOException; public class SpidLoginMittente { @@ -46,7 +48,7 @@ public void runSpidLoginMittente() { httpclient.execute(httpGet, context, response -> { logger.info(response.getCode() + " " + response.getReasonPhrase()); - Assert.assertEquals(this.getSpidLoginMittenteEndPoint() + " risponde con : " + response.getCode(), response.getCode(), 200); + Assertions.assertEquals(response.getCode(), 200); final HttpEntity entity = response.getEntity(); this.responseBody = EntityUtils.toString(entity); this.cookieName = context.getCookieStore().getCookies().get(0).getName(); @@ -58,7 +60,7 @@ public void runSpidLoginMittente() { }); } catch (IOException e) { - Assert.fail(e.getMessage()); + Assertions.fail(e.getMessage()); } } diff --git a/src/test/java/it/pn/frontend/e2e/api/mittente/SpidTestEnvWestEuropeAzureContainerIoContinueResponse.java b/src/test/java/it/pn/frontend/e2e/api/mittente/SpidTestEnvWestEuropeAzureContainerIoContinueResponse.java index 83c3564c4..beece3c3b 100644 --- a/src/test/java/it/pn/frontend/e2e/api/mittente/SpidTestEnvWestEuropeAzureContainerIoContinueResponse.java +++ b/src/test/java/it/pn/frontend/e2e/api/mittente/SpidTestEnvWestEuropeAzureContainerIoContinueResponse.java @@ -12,9 +12,9 @@ import org.apache.hc.core5.http.io.support.ClassicRequestBuilder; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; +import org.junit.jupiter.api.Assertions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.junit.Assert; import java.io.IOException; import java.util.List; @@ -57,7 +57,7 @@ public void runSpidTestEnvWestEuropeAzureContainerIoContinueResponse(){ logger.info(cookie.getPath()); logger.info(String.valueOf(cookie.isHttpOnly())); } - Assert.assertEquals( this.spidTestEnvWestEuropeAzureContainerIoContinueResponseEndPoint +" risponde con : "+classicHttpResponse.getCode(),classicHttpResponse.getCode(),200); + Assertions.assertEquals( classicHttpResponse.getCode(),200); final HttpEntity entity = classicHttpResponse.getEntity(); String resultContent = EntityUtils.toString(entity); logger.info(resultContent); diff --git a/src/test/java/it/pn/frontend/e2e/api/mittente/SpidTestEnvWestEuropeAzureContainerIoLogin.java b/src/test/java/it/pn/frontend/e2e/api/mittente/SpidTestEnvWestEuropeAzureContainerIoLogin.java index 740d539ed..ca2bd16e0 100644 --- a/src/test/java/it/pn/frontend/e2e/api/mittente/SpidTestEnvWestEuropeAzureContainerIoLogin.java +++ b/src/test/java/it/pn/frontend/e2e/api/mittente/SpidTestEnvWestEuropeAzureContainerIoLogin.java @@ -12,9 +12,10 @@ import org.apache.hc.core5.http.io.support.ClassicRequestBuilder; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; +import org.junit.jupiter.api.Assertions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.junit.Assert; + import java.io.IOException; import java.util.List; @@ -77,7 +78,7 @@ public void runSpidTestEnvWestEuropeAzureContainerIoLogin(){ logger.info(cookie.getPath()); logger.info(String.valueOf(cookie.isHttpOnly())); } - Assert.assertEquals(this.spidTestEnvWestEuropeAzureContainerIoLoginEndPoint +" risponde con : "+classicHttpResponse.getCode(), classicHttpResponse.getCode(),200); + Assertions.assertEquals(classicHttpResponse.getCode(),200); final HttpEntity entity = classicHttpResponse.getEntity(); String resultContent = EntityUtils.toString(entity); logger.info(resultContent); diff --git a/src/test/java/it/pn/frontend/e2e/api/personaFisica/SpidAcs.java b/src/test/java/it/pn/frontend/e2e/api/personaFisica/SpidAcs.java index 552a83e2b..f72faceba 100644 --- a/src/test/java/it/pn/frontend/e2e/api/personaFisica/SpidAcs.java +++ b/src/test/java/it/pn/frontend/e2e/api/personaFisica/SpidAcs.java @@ -6,7 +6,7 @@ import org.apache.hc.core5.http.Header; import org.apache.hc.core5.http.HttpHeaders; import org.apache.hc.core5.http.io.support.ClassicRequestBuilder; -import org.junit.Assert; +import org.junit.jupiter.api.Assertions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -52,7 +52,7 @@ public void runSpidAcs(){ return hm; }); }catch (IOException e){ - Assert.fail(e.getMessage()); + Assertions.fail(e.getMessage()); } } diff --git a/src/test/java/it/pn/frontend/e2e/api/personaFisica/SpidDemoLogin.java b/src/test/java/it/pn/frontend/e2e/api/personaFisica/SpidDemoLogin.java index 89868d56d..b2cf4837a 100644 --- a/src/test/java/it/pn/frontend/e2e/api/personaFisica/SpidDemoLogin.java +++ b/src/test/java/it/pn/frontend/e2e/api/personaFisica/SpidDemoLogin.java @@ -9,9 +9,9 @@ import org.apache.hc.core5.http.io.support.ClassicRequestBuilder; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; +import org.junit.jupiter.api.Assertions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.junit.Assert; import java.io.IOException; public class SpidDemoLogin { @@ -76,14 +76,14 @@ public void runSpidDemoLogin(){ .build(); this.responseBody = httpclient.execute(httpPost, classicHttpResponse -> { logger.info(classicHttpResponse.getCode() + " " + classicHttpResponse.getReasonPhrase()); - Assert.assertEquals(this.getSpidDemoLoginEndPoint()+" risponde con : "+classicHttpResponse.getCode(),classicHttpResponse.getCode(),200); + Assertions.assertEquals(classicHttpResponse.getCode(),200); final HttpEntity entity = classicHttpResponse.getEntity(); String resultContent = EntityUtils.toString(entity); logger.info(resultContent); return resultContent; }); } catch (IOException e){ - Assert.fail(e.getMessage()); + Assertions.fail(e.getMessage()); } } diff --git a/src/test/java/it/pn/frontend/e2e/api/personaFisica/SpidDemoStart.java b/src/test/java/it/pn/frontend/e2e/api/personaFisica/SpidDemoStart.java index ee2728abe..d9e716f2b 100644 --- a/src/test/java/it/pn/frontend/e2e/api/personaFisica/SpidDemoStart.java +++ b/src/test/java/it/pn/frontend/e2e/api/personaFisica/SpidDemoStart.java @@ -9,9 +9,9 @@ import org.apache.hc.core5.http.io.support.ClassicRequestBuilder; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; +import org.junit.jupiter.api.Assertions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.junit.Assert; import java.io.IOException; @@ -53,14 +53,14 @@ public void runSpidDemoStart(){ .build(); this.responseBody = httpclient.execute(httpPost, classicHttpResponse -> { logger.info(classicHttpResponse.getCode() + " " + classicHttpResponse.getReasonPhrase()); - Assert.assertEquals(this.getSpidDemoStartEndPoint()+" risponde con : "+classicHttpResponse.getCode(), classicHttpResponse.getCode(),200); + Assertions.assertEquals(classicHttpResponse.getCode(),200); final HttpEntity entity = classicHttpResponse.getEntity(); String resultContent = EntityUtils.toString(entity); logger.info(resultContent); return resultContent; }); } catch (IOException e){ - Assert.fail(e.getMessage()); + Assertions.fail(e.getMessage()); } } diff --git a/src/test/java/it/pn/frontend/e2e/api/personaFisica/SpidLogin.java b/src/test/java/it/pn/frontend/e2e/api/personaFisica/SpidLogin.java index e1d3c4eb5..df76a79fd 100644 --- a/src/test/java/it/pn/frontend/e2e/api/personaFisica/SpidLogin.java +++ b/src/test/java/it/pn/frontend/e2e/api/personaFisica/SpidLogin.java @@ -9,9 +9,10 @@ import org.apache.hc.core5.http.io.entity.EntityUtils; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; +import org.junit.jupiter.api.Assertions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.junit.Assert; + public class SpidLogin { @@ -37,14 +38,14 @@ public void runSpidLogin() { .build(); this.responseBody = httpclient.execute(httpGet, response -> { logger.info(response.getCode() + " " + response.getReasonPhrase()); - Assert.assertEquals(this.getSpidLoginEndPoint()+" risponde con : "+response.getCode(), response.getCode(),200); + Assertions.assertEquals(response.getCode(),200); final HttpEntity entity = response.getEntity(); String resultContent = EntityUtils.toString(entity); logger.info(resultContent); return resultContent; }); } catch (IOException e) { - Assert.fail(e.getMessage()); + Assertions.fail(e.getMessage()); } } diff --git a/src/test/java/it/pn/frontend/e2e/run/RunCucumberTest.java b/src/test/java/it/pn/frontend/e2e/run/RunCucumberTest.java index 747b5c51b..6c293e2b1 100644 --- a/src/test/java/it/pn/frontend/e2e/run/RunCucumberTest.java +++ b/src/test/java/it/pn/frontend/e2e/run/RunCucumberTest.java @@ -1,17 +1,17 @@ package it.pn.frontend.e2e.run; -import io.cucumber.junit.Cucumber; -import io.cucumber.junit.CucumberOptions; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.platform.suite.api.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; - import java.io.IOException; import java.io.InputStream; import java.util.Properties; +import static io.cucumber.junit.platform.engine.Constants.*; + +/** @RunWith(Cucumber.class) @CucumberOptions( features = "src/test/resources/feature", @@ -26,6 +26,19 @@ monochrome = true ) + **/ + +@Suite +@IncludeEngines("cucumber") +@SelectClasspathResource("feature") +@ConfigurationParameters({ + @ConfigurationParameter(key = PLUGIN_PROPERTY_NAME, value = "pretty"), + @ConfigurationParameter(key = PLUGIN_PROPERTY_NAME, value = "json:target/cucumber-report.json," + + "html:target/cucumber-report.html"), + @ConfigurationParameter(key = GLUE_PROPERTY_NAME, value = "it/pn/frontend/e2e/listeners ,it/pn/frontend/e2e/stepDefinitions") + +}) + public class RunCucumberTest { private static final String TEST_CONFIG_FILE = "test-config.properties"; private static final Properties properties = new Properties(); @@ -49,7 +62,7 @@ private static boolean loadProperties() { return false; } - @BeforeClass + @BeforeAll public static void startTestSuite() { if (loadProperties()) { logger.info("properties loaded"); @@ -70,7 +83,7 @@ public static void startTestSuite() { logger.info("start the test suite = " + testSuite); } - @AfterClass + @AfterAll public static void finishTestSuite() { logger.info("finish the test suite = " + testSuite); } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/HelpdeskTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/HelpdeskTest.java index 181c9c436..9717fe4b5 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/HelpdeskTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/HelpdeskTest.java @@ -11,7 +11,8 @@ import it.pn.frontend.e2e.pages.mittente.PiattaformaNotifichePage; import it.pn.frontend.e2e.utility.DataPopulation; import it.pn.frontend.e2e.utility.WebTool; -import org.junit.Assert; + +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.WebDriver; import org.slf4j.Logger; @@ -43,7 +44,7 @@ public void loginHelpdeskConUtenteTest(String nameFile) { case "test", "uat" -> helpdeskPage.changePage(this.datiTestHelpdesk.get("url").toString().replace("dev", variabileAmbiente)); default -> - Assert.fail("Non è stato possibile trovare l'ambiente inserito, Inserisci in -Denvironment test o dev o uat"); + Assertions.fail("Non è stato possibile trovare l'ambiente inserito, Inserisci in -Denvironment test o dev o uat"); } helpdeskPage.checkForm(); switch (variabileAmbiente) { @@ -60,7 +61,7 @@ public void loginHelpdeskConUtenteTest(String nameFile) { helpdeskPage.insertPassword(this.datiTestHelpdesk.get("pwdUat").toString()); } default -> - Assert.fail("Non stato possibile trovare l'ambiente inserito, Inserisci in -Denvironment test o dev o uat"); + Assertions.fail("Non stato possibile trovare l'ambiente inserito, Inserisci in -Denvironment test o dev o uat"); } helpdeskPage.clickInviaButton(); } @@ -239,7 +240,7 @@ public void inseriscoPasswordEdEstraggoZip() throws IOException { @And("Controllo sia presente documento {string}") public void controlloPresenteDocumento(String docName) throws IOException { logger.info("Controllo sia presente documento" + docName); - Assert.assertTrue ("Documento " + docName + " non è trovato",helpdeskPage.trovaDocumentoConTitolo(docName)); + Assertions.assertTrue (helpdeskPage.trovaDocumentoConTitolo(docName), "Documento " + docName + " non è trovato"); logger.info("Documento " + docName + " è trovato"); } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/RecapitiTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/RecapitiTest.java index 7e74791bf..abd8712a5 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/RecapitiTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/RecapitiTest.java @@ -5,7 +5,8 @@ import it.pn.frontend.e2e.common.RecapitiDestinatarioPage; import it.pn.frontend.e2e.listeners.Hooks; import it.pn.frontend.e2e.pages.destinatario.personaFisica.ITuoiRecapitiPage; -import org.junit.Assert; + +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.WebDriver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -68,7 +69,7 @@ public void nellaPaginaITuoiRecapitiSiControllaCheCiSiaGiaUnaPECESiInserisce(Str backgroundTest.checkEmailDiCortesiaPerEliminazioneEInserimento(indirizzoMail); } else { logger.error("Errore nella scrittura del tipo di contatto da controllare e inserire"); - Assert.fail("Errore nella scrittura del tipo di contatto da controllare e inserire"); + Assertions.fail("Errore nella scrittura del tipo di contatto da controllare e inserire"); } } @@ -87,7 +88,7 @@ public void nellaPaginaITuoiRecapitiSiInserisceLEmailErrata(String emailErrata) public void nellaPaginaITuoiRecapitiSiVisualizzaCorrettamenteIlMessaggioEmailErrata() { String errorMessageRead = recapitiDestinatarioPage.getEmailErrorMessage(); if (!errorMessageRead.contains("Indirizzo e-mail non valido") && !errorMessageRead.contains("Scrivi massimo 254 caratteri")) { - Assert.fail("messaggio di errore letto : '" + errorMessageRead + "' non è uguale a : Indirizzo e-mail non valido o Scrivi massimo 254 caratteri"); + Assertions.fail("messaggio di errore letto : '" + errorMessageRead + "' non è uguale a : Indirizzo e-mail non valido o Scrivi massimo 254 caratteri"); } } @@ -143,7 +144,7 @@ public void siControllaCheLEmailInseritaSiaPresente() { logger.info("Si controlla che la Email sia stata inserita correttamente"); if (!recapitiDestinatarioPage.verificaMailAssociata()) { logger.error("Email non è stata inserita correttamente"); - Assert.fail("Email non è stata inserita correttamente"); + Assertions.fail("Email non è stata inserita correttamente"); } } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/DeleghePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/DeleghePagoPATest.java index a44feca92..69620205d 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/DeleghePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/DeleghePagoPATest.java @@ -19,7 +19,8 @@ import it.pn.frontend.e2e.utility.WebTool; import lombok.Setter; import lombok.extern.slf4j.Slf4j; -import org.junit.Assert; + +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; @@ -99,7 +100,7 @@ public void nellaSezioneLeTueDelegheVerificareCheLaDataSiaCorretta() { log.info("La data inserita è corretta"); } else { log.error("La data inserita non è corretta"); - Assert.fail("La data inserita non è corretta"); + Assertions.fail("La data inserita non è corretta"); } } @@ -183,7 +184,7 @@ public void nellaSezioneLeTueDelegheSiVisualizzaIlMessaggioDiErrore() { log.info("Si visualizza il messaggio di errore"); String actualErrorMessage = this.leTueDelegheSection.messaggioDiErrore().toLowerCase(); String expectedErrorMessage = "errore inserimento delega"; - Assert.assertEquals("Messeggio di Errore non è uguale a Codice fiscale non valido", expectedErrorMessage, actualErrorMessage); + Assertions.assertEquals("Messeggio di Errore non è uguale a Codice fiscale non valido", expectedErrorMessage, actualErrorMessage); } @And("Nella sezione Le Tue Deleghe si visualizza il messaggio di errore delega gia aggiunta") @@ -309,7 +310,7 @@ public void siCliccaSulBottoneAccetta() { this.leTueDelegheSection.clickAccettaButton(); if (this.leTueDelegheSection.verificaEsistenzaErroreCodiceSbagliato()) { - Assert.assertEquals("Il codice inserito è sbagliato", + Assertions.assertEquals("Il codice inserito è sbagliato", "Il codice è sbagliato", this.leTueDelegheSection.getTextCodiceSbagliato()); } } @@ -320,7 +321,7 @@ public void siVerificaIlMessaggioDiCodiceSbagliato() { log.info("Il messaggio di codice sbagliato è visualizzata"); } else { log.error("Il messaggio di codice sbagliato non è visualizzata"); - Assert.fail("Il messaggio di codice sbagliato non è visualizzata"); + Assertions.fail("Il messaggio di codice sbagliato non è visualizzata"); } } @@ -358,7 +359,7 @@ public void siVisualizzaIlTitolo() { log.info("Il titolo della sezione Deleghe si visualizza correttamente"); } else { log.error("Il titolo della sezione Deleghe NON si visualizza correttamente"); - Assert.fail("Il titolo della sezione Deleghe NON si visualizza correttamente"); + Assertions.fail("Il titolo della sezione Deleghe NON si visualizza correttamente"); } } @@ -368,7 +369,7 @@ public void siVisualizzaIlSottotitolo() { log.info("Il sottotitolo della sezione Deleghe si visualizza correttamente"); } else { log.error("Il sottotitolo della sezione Deleghe NON si visualizza correttamente"); - Assert.fail("Il sottotitolo della sezione Deleghe NON si visualizza correttamente"); + Assertions.fail("Il sottotitolo della sezione Deleghe NON si visualizza correttamente"); } } @@ -378,7 +379,7 @@ public void siVisualizzaIlBottoneAggiungiUnaDelega() { log.info("Il bottone aggiungi delega si visualizza correttamente"); } else { log.error("Il bottone aggiungi delega NON si visualizza correttamente"); - Assert.fail("Il bottone aggiungi delega NON si visualizza correttamente"); + Assertions.fail("Il bottone aggiungi delega NON si visualizza correttamente"); } } @@ -393,28 +394,28 @@ public void siVisualizzanoTuttiICampiDellElencoDeiDelegati() { log.info("Si visualizza correttamente il nome del delegato"); } else { log.error("NON si visualizza correttamente il nome del delegato"); - Assert.fail("NON si visualizza correttamente il nome del delegato"); + Assertions.fail("NON si visualizza correttamente il nome del delegato"); } if (this.leTueDelegheSection.siVisualizzaDataInizioDelega()) { log.info("Si visualizza correttamente la data di inizio della delega"); } else { log.error("NON si visualizza correttamente la data di inizio della delega"); - Assert.fail("NON Si visualizza correttamente la data di inizio della delega"); + Assertions.fail("NON Si visualizza correttamente la data di inizio della delega"); } if (this.leTueDelegheSection.siVisualizzaDataFinoDelega()) { log.info("Si visualizza correttamente la data di fine delle deleghe"); } else { log.error("NON si visualizza correttamente la data di fine delle deleghe"); - Assert.fail("NON si visualizza correttamente la data di fine delle deleghe"); + Assertions.fail("NON si visualizza correttamente la data di fine delle deleghe"); } if (this.leTueDelegheSection.siVisualizzaPermessiDelega()) { log.info("Si visualizza correttamente il permesso della delega"); } else { log.error("NON si visualizza correttamente il permesso della delega"); - Assert.fail("NON si visualizza correttamente il permesso della delega"); + Assertions.fail("NON si visualizza correttamente il permesso della delega"); } } @@ -471,7 +472,7 @@ public void siControllaCheLaDelegaNonSiaPiuPresenteNellaLista(String dpFile) { log.info("La delega non è più presente nella lista"); } else { log.error("La delega è ancora presente in lista"); - Assert.fail("La delega è ancora presente in lista"); + Assertions.fail("La delega è ancora presente in lista"); } } @@ -536,7 +537,7 @@ public void siControllaCheNonCiSiaPiuUnaDelega() { log.info("La delega è stata revocata correttamente"); } else { log.error("La delega è ancora presente in lista"); - Assert.fail("La delega è ancora presente in lista"); + Assertions.fail("La delega è ancora presente in lista"); } } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java index 3f4ab1040..1cd1b8130 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java @@ -16,7 +16,8 @@ import it.pn.frontend.e2e.utility.CookieConfig; import it.pn.frontend.e2e.utility.DataPopulation; import it.pn.frontend.e2e.utility.WebTool; -import org.junit.Assert; + +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.WebDriver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -45,7 +46,7 @@ public void loginPageDestinatarioVieneVisualizzata(String datipersonaFisica) { case "test", "uat" -> this.driver.get(this.datiPersonaFisica.get("url").toString().replace("dev", variabileAmbiente)); default -> - Assert.fail("Non stato possibile trovare l'ambiente inserito, Inserisci in -Denvironment test o dev o uat"); + Assertions.fail("Non stato possibile trovare l'ambiente inserito, Inserisci in -Denvironment test o dev o uat"); } } @@ -72,7 +73,7 @@ public void loginMittenteConTokenExchange(String personaFisica) { dataPopulation.readDataPopulation(FILE_TOKEN_LOGIN).get("tokentestPFDelegato").toString(); default -> { logger.error("Ambiente non valido"); - Assert.fail("Ambiente non valido o non trovato!"); + Assertions.fail("Ambiente non valido o non trovato!"); } } @@ -128,7 +129,7 @@ public void loginConDestinatario(String datipersonaFisica) { logger.info("nome utente letto : " + nomeUtenteLetto + " uguale a : " + this.datiPersonaFisica.get("name").toString()); } else { logger.error("nome utente letto : " + nomeUtenteLetto + " non è uguale a : " + this.datiPersonaFisica.get("name").toString()); - Assert.fail("nome utente letto : " + nomeUtenteLetto + " non è uguale a : " + this.datiPersonaFisica.get("name").toString()); + Assertions.fail("nome utente letto : " + nomeUtenteLetto + " non è uguale a : " + this.datiPersonaFisica.get("name").toString()); } String cognomeUtenteLetto = confermaDatiSpidPFPage.leggiCognomeUtente(); @@ -136,7 +137,7 @@ public void loginConDestinatario(String datipersonaFisica) { logger.info("cognome utente letto : " + cognomeUtenteLetto + " uguale a : " + this.datiPersonaFisica.get("familyName").toString()); } else { logger.error("cognome utente letto : " + cognomeUtenteLetto + " non uguale a : " + this.datiPersonaFisica.get("familyName").toString()); - Assert.fail("cognome utente letto : " + cognomeUtenteLetto + " non uguale a : " + this.datiPersonaFisica.get("familyName").toString()); + Assertions.fail("cognome utente letto : " + cognomeUtenteLetto + " non uguale a : " + this.datiPersonaFisica.get("familyName").toString()); } String numeroFiscaleLetto = confermaDatiSpidPFPage.leggiNumeroFiscale(); @@ -144,7 +145,7 @@ public void loginConDestinatario(String datipersonaFisica) { logger.info("numero fiscale letto : " + numeroFiscaleLetto + " uguale a : " + this.datiPersonaFisica.get("fiscalNumber").toString()); } else { logger.error("numero fiscale letto : " + numeroFiscaleLetto + " non uguale a : " + this.datiPersonaFisica.get("fiscalNumber").toString()); - Assert.fail("numero fiscale letto : " + numeroFiscaleLetto + " non uguale a : " + this.datiPersonaFisica.get("fiscalNumber").toString()); + Assertions.fail("numero fiscale letto : " + numeroFiscaleLetto + " non uguale a : " + this.datiPersonaFisica.get("fiscalNumber").toString()); } HeaderPFSection headerPFSection = new HeaderPFSection(this.driver); confermaDatiSpidPFPage.selezionaConfermaButton(); @@ -191,7 +192,7 @@ public void loginConDestinatario(Map datiPF) { logger.info("nome utente letto : " + nomeUtenteLetto + " uguale a : " + datiPF.get("name")); } else { logger.error("nome utente letto : " + nomeUtenteLetto + " non è uguale a : " + datiPF.get("name")); - Assert.fail("nome utente letto : " + nomeUtenteLetto + " non è uguale a : " + datiPF.get("name")); + Assertions.fail("nome utente letto : " + nomeUtenteLetto + " non è uguale a : " + datiPF.get("name")); } @@ -200,7 +201,7 @@ public void loginConDestinatario(Map datiPF) { logger.info("cognome utente letto : " + cognomeUtenteLetto + " uguale a : " + datiPF.get("familyName")); } else { logger.error("cognome utente letto : " + cognomeUtenteLetto + " non uguale a : " + datiPF.get("familyName")); - Assert.fail("cognome utente letto : " + cognomeUtenteLetto + " non uguale a : " + datiPF.get("familyName")); + Assertions.fail("cognome utente letto : " + cognomeUtenteLetto + " non uguale a : " + datiPF.get("familyName")); } String numeroFiscaleLetto = confermaDatiSpidPFPage.leggiNumeroFiscale(); @@ -208,7 +209,7 @@ public void loginConDestinatario(Map datiPF) { logger.info("numero fiscale letto : " + numeroFiscaleLetto + " uguale a : " + datiPF.get("fiscalNumber")); } else { logger.error("numero fiscale letto : " + numeroFiscaleLetto + " non uguale a : " + datiPF.get("fiscalNumber")); - Assert.fail("numero fiscale letto : " + numeroFiscaleLetto + " non uguale a : " + datiPF.get("fiscalNumber")); + Assertions.fail("numero fiscale letto : " + numeroFiscaleLetto + " non uguale a : " + datiPF.get("fiscalNumber")); } HeaderPFSection headerPFSection = new HeaderPFSection(this.driver); @@ -262,7 +263,7 @@ public void homePageDestinatarioVieneVisualizzataCorrettamente() { logger.info("text field codice iun presente"); } else { logger.info("text field codice iun non presente"); - Assert.fail("text field codice iun non presente"); + Assertions.fail("text field codice iun non presente"); } try { @@ -277,10 +278,10 @@ public void homePageDestinatarioVieneVisualizzataCorrettamente() { int codiceRispostaChiamataApi = getCodiceRispostaChiamataApi(urlChiamata); if (codiceRispostaChiamataApi != 200 && codiceRispostaChiamataApi != 0) { logger.error("TA_QA: La chiamata, " + urlChiamata + " è andata in errore"); - Assert.fail("TA_QA: La chiamata, " + urlChiamata + " è andata in errore"); + Assertions.fail("TA_QA: La chiamata, " + urlChiamata + " è andata in errore"); } else if (codiceRispostaChiamataApi == 0) { logger.error("TA_QA: La chiamata, " + urlChiamata + " non trovata"); - Assert.fail("TA_QA: La chiamata, " + urlChiamata + " non trovata"); + Assertions.fail("TA_QA: La chiamata, " + urlChiamata + " non trovata"); } } @@ -324,7 +325,7 @@ public void logoutDaPortaleDestinatario() { logger.info("Spid Button nella pagina Come vuoi accedere portale persona fisica visualizzato"); } else { logger.info("Spid Button nella pagina Come vuoi accedere portale persona fisica non visualizzato"); - Assert.fail("Spid Button nella pagina Come vuoi accedere portale persona fisica non visualizzato"); + Assertions.fail("Spid Button nella pagina Come vuoi accedere portale persona fisica non visualizzato"); } try { @@ -374,7 +375,7 @@ public void loginPortaleDestinatarioTramiteRequestMethod() { logger.info("procedura di login from spid provata : " + numProvaLogin); } else { logger.error("procedura di login from spid provata : " + numProvaLogin); - Assert.fail("Codice risposta ricevuto per questo end point: '" + this.urlPersonaFisica.get("urlPortale") + "' è : " + this.urlPersonaFisica.get("responseCode")); + Assertions.fail("Codice risposta ricevuto per questo end point: '" + this.urlPersonaFisica.get("urlPortale") + "' è : " + this.urlPersonaFisica.get("responseCode")); } @@ -390,42 +391,42 @@ private void readUrlLoginPersonaFisicaWithToken(String user, String pwd) { spidLogin.runSpidLogin(); if (spidLogin.getResponseBody() == null) { - Assert.fail(" api spid login risponde con body vuoto"); + Assertions.fail(" api spid login risponde con body vuoto"); } String samlRequestFromSpidLogin = spidLogin.getSamlRequest(); if (samlRequestFromSpidLogin != null) { logger.info("samlRequestFromSpidLogin = " + samlRequestFromSpidLogin); } else { - Assert.fail("samlRequestFromSpidLogin is null"); + Assertions.fail("samlRequestFromSpidLogin is null"); } String relayStateFromSpidLogin = spidLogin.getRelayState(); if (relayStateFromSpidLogin != null) { logger.info("relayStateFromSpidLogin = " + relayStateFromSpidLogin); } else { - Assert.fail("relayStateFromSpidLogin is null"); + Assertions.fail("relayStateFromSpidLogin is null"); } String sigAlgFromSpidLogin = spidLogin.getSigAlg(); if (sigAlgFromSpidLogin != null) { logger.info("sigAlgFromSpidLogin = " + sigAlgFromSpidLogin); } else { - Assert.fail("sigAlgFromSpidLogin is null"); + Assertions.fail("sigAlgFromSpidLogin is null"); } String signatureFromSpidLogin = spidLogin.getSignature(); if (signatureFromSpidLogin != null) { logger.info("signatureFromSpidLogin = " + signatureFromSpidLogin); } else { - Assert.fail("signatureFromSpidLogin is null"); + Assertions.fail("signatureFromSpidLogin is null"); } String bindingFromSpidLogin = spidLogin.getBinding(); if (bindingFromSpidLogin != null) { logger.info("bindingFromSpidLogin = " + bindingFromSpidLogin); } else { - Assert.fail("bindingFromSpidLogin is null"); + Assertions.fail("bindingFromSpidLogin is null"); } logger.info("spid demo start"); @@ -440,77 +441,77 @@ private void readUrlLoginPersonaFisicaWithToken(String user, String pwd) { spidDemoStart.runSpidDemoStart(); if (spidDemoStart.getResponseBody() == null) { - Assert.fail("api spid demo start risponde con body vuoto"); + Assertions.fail("api spid demo start risponde con body vuoto"); } String spidLevelFromSpidDemoStart = spidDemoStart.getSpidLevelOutput(); if (spidLevelFromSpidDemoStart != null) { logger.info("spidLevelFromSpidDemoStart = " + spidLevelFromSpidDemoStart); } else { - Assert.fail("spidLevelFromSpidDemoStart is null"); + Assertions.fail("spidLevelFromSpidDemoStart is null"); } String organizationDisplayNameFromSpidDemoStart = spidDemoStart.getOrganizationDisplayNameOutput(); if (organizationDisplayNameFromSpidDemoStart != null) { logger.info("organizationDisplayNameFromSpidDemoStart = " + organizationDisplayNameFromSpidDemoStart); } else { - Assert.fail("organizationDisplayNameFromSpidDemoStart is null"); + Assertions.fail("organizationDisplayNameFromSpidDemoStart is null"); } String samlRequestFromSpidDemoStart = spidDemoStart.getSamlRequestOutput(); if (samlRequestFromSpidDemoStart != null) { logger.info("samlRequestFromSpidDemoStart = " + samlRequestFromSpidDemoStart); } else { - Assert.fail("samlRequestFromSpidDemoStart is null"); + Assertions.fail("samlRequestFromSpidDemoStart is null"); } String relayStateFromSpidDemoStart = spidDemoStart.getRelayStateOutput(); if (relayStateFromSpidDemoStart != null) { logger.info("relayStateFromSpidDemoStart = " + relayStateFromSpidDemoStart); } else { - Assert.fail("relayStateFromSpidDemoStart is null"); + Assertions.fail("relayStateFromSpidDemoStart is null"); } String sigAlgFromSpidDemoStart = spidDemoStart.getSigAlgOutput(); if (sigAlgFromSpidDemoStart != null) { logger.info("sigAlgFromSpidDemoStart = " + sigAlgFromSpidDemoStart); } else { - Assert.fail("sigAlgFromSpidDemoStart is null"); + Assertions.fail("sigAlgFromSpidDemoStart is null"); } String signatureFromSpidDemoStart = spidDemoStart.getSignatureOutput(); if (signatureFromSpidDemoStart != null) { logger.info("signatureFromSpidDemoStart = " + signatureFromSpidDemoStart); } else { - Assert.fail("signatureFromSpidDemoStart is null"); + Assertions.fail("signatureFromSpidDemoStart is null"); } String purposeFromSpidDemoStart = spidDemoStart.getPurposeOutput(); if (purposeFromSpidDemoStart != null) { logger.info("purposeFromSpidDemoStart = " + purposeFromSpidDemoStart); } else { - Assert.fail("purposeFromSpidDemoStart is null"); + Assertions.fail("purposeFromSpidDemoStart is null"); } String minAgeFromSpidDemoStart = spidDemoStart.getMinAgeOutput(); if (minAgeFromSpidDemoStart != null) { logger.info("minAgeFromSpidDemoStart = " + minAgeFromSpidDemoStart); } else { - Assert.fail("minAgeFromSpidDemoStart is null"); + Assertions.fail("minAgeFromSpidDemoStart is null"); } String maxAgeFromSpidDemoStart = spidDemoStart.getMaxAgeOutput(); if (maxAgeFromSpidDemoStart != null) { logger.info("maxAgeFromSpidDemoStart = " + maxAgeFromSpidDemoStart); } else { - Assert.fail("maxAgeFromSpidDemoStart is null"); + Assertions.fail("maxAgeFromSpidDemoStart is null"); } String retryFromSpidDemoStart = spidDemoStart.getRetryOutput(); if (retryFromSpidDemoStart != null) { logger.info("retryFromSpidDemoStart = " + retryFromSpidDemoStart); } else { - Assert.fail("retryFromSpidDemoStart is null"); + Assertions.fail("retryFromSpidDemoStart is null"); } logger.info("spid-demo-login"); @@ -529,21 +530,21 @@ private void readUrlLoginPersonaFisicaWithToken(String user, String pwd) { spidDemoLogin.runSpidDemoLogin(); if (spidDemoLogin.getResponseBody() == null) { - Assert.fail("api spid demo login risponde con body vuoto"); + Assertions.fail("api spid demo login risponde con body vuoto"); } String relayStateFromSpidDemoLogin = spidDemoLogin.getRelayStateOutput(); if (relayStateFromSpidDemoLogin != null) { logger.info("relayStateFromSpidDemoLogin = " + relayStateFromSpidDemoLogin); } else { - Assert.fail("relayStateFromSpidDemoLogin is null"); + Assertions.fail("relayStateFromSpidDemoLogin is null"); } String samlResponseFromSpidDemoLogin = spidDemoLogin.getSAMLResponseOutput(); if (samlResponseFromSpidDemoLogin != null) { logger.info("samlResponseFromSpidDemoLogin = " + samlResponseFromSpidDemoLogin); } else { - Assert.fail("samlResponseFromSpidDemoLogin is null"); + Assertions.fail("samlResponseFromSpidDemoLogin is null"); } logger.info("spid-acs"); @@ -556,7 +557,7 @@ private void readUrlLoginPersonaFisicaWithToken(String user, String pwd) { if (urlPersonaFisica.get("urlPortale") != null) { logger.info("url persona fisica : " + urlPersonaFisica.get("urlPortale")); } else { - Assert.fail("url persona fisica è null "); + Assertions.fail("url persona fisica è null "); } } @@ -588,7 +589,7 @@ public void loginPortaleDelegatoTramiteRequestMethod(String dpFile) { logger.info("procedura di login from spid provata : " + numProvaLogin); } else { logger.error("procedura di login from spid provata : " + numProvaLogin); - Assert.fail("Codice risposta ricevuto per questo end point: '" + this.urlPersonaFisica.get("urlPortale") + "' è : " + this.urlPersonaFisica.get("responseCode")); + Assertions.fail("Codice risposta ricevuto per questo end point: '" + this.urlPersonaFisica.get("urlPortale") + "' è : " + this.urlPersonaFisica.get("responseCode")); } this.driver.get(this.urlPersonaFisica.get("urlPortale")); @@ -634,7 +635,7 @@ public String getTokenExchangePFFromFile(String personaFisica) { dataPopulation.readDataPopulation(FILE_TOKEN_LOGIN).get("tokentestPFDelegato").toString(); default -> { logger.error("Ambiente non valido"); - Assert.fail("Ambiente non valido o non trovato!"); + Assertions.fail("Ambiente non valido o non trovato!"); } } return token; diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/NotifichePersonaFisicaPagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/NotifichePersonaFisicaPagoPATest.java index 4b9929e73..4bea09324 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/NotifichePersonaFisicaPagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/NotifichePersonaFisicaPagoPATest.java @@ -16,7 +16,8 @@ import it.pn.frontend.e2e.utility.DataPopulation; import it.pn.frontend.e2e.utility.DownloadFile; import it.pn.frontend.e2e.utility.WebTool; -import org.junit.Assert; + +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; @@ -65,7 +66,7 @@ public void paginaPiattaformaNotificheDestinatarioVieneVisualizzataCorrettamente logger.info("text field codice iun presente"); } else { logger.info("text field codice iun non presente"); - Assert.fail("text field codice iun non presente"); + Assertions.fail("text field codice iun non presente"); } try { TimeUnit.SECONDS.sleep(5); @@ -119,7 +120,7 @@ public void siVisualizzanoCorrettamenteLeNotificheInElencoPaginato() { logger.info("Si visualizza correttamente l'elenco notifiche"); } else { logger.error("NON visualizza correttamente l'elenco notifiche"); - Assert.fail("NON visualizza correttamente l'elenco notifiche"); + Assertions.fail("NON visualizza correttamente l'elenco notifiche"); } } @@ -135,11 +136,11 @@ public void siVisualizzanoLeNotificheDallaPiuRecente() { logger.info("Le date sono ordinate correttamente"); } else { logger.error("Le date NON sono ordinate correttamente"); - Assert.fail("Le date NON sono ordinate correttamente"); + Assertions.fail("Le date NON sono ordinate correttamente"); } } else { logger.error("Non sono presenti notifiche con date"); - Assert.fail("Non sono presenti notifiche con date"); + Assertions.fail("Non sono presenti notifiche con date"); } } @@ -196,7 +197,7 @@ public void siVisualizzaUnNumeroDiPagineVisualizzateUgualeAQuelloSelezionato() { logger.info("Si visualizzano venti notifiche in elenco"); } else { logger.error("NON si visualizzano venti notifiche in elenco"); - Assert.fail("NON si visualizzano venti notifiche in elenco"); + Assertions.fail("NON si visualizzano venti notifiche in elenco"); } } @@ -236,7 +237,7 @@ public void siControllaSezionePagamentoSeNotificaPrevedeIlPagamento() { logger.info("Sezione titolo di pagamento è visualizzato"); } else { logger.error("Sezione titolo di pagamento non è visualizzato"); - Assert.fail("Sezione titolo di pagamento non è visualizzato"); + Assertions.fail("Sezione titolo di pagamento non è visualizzato"); } boolean codiceAvvisoIsDisplayed = accediAPiattaformaNotifichePage.codiceAvvisoDisplayed(); @@ -244,7 +245,7 @@ public void siControllaSezionePagamentoSeNotificaPrevedeIlPagamento() { logger.info("Sezione codice avviso è visualizzato"); } else { logger.error("Sezione codice avviso non è visualizzato"); - Assert.fail("Sezione codice avviso non è visualizzato"); + Assertions.fail("Sezione codice avviso non è visualizzato"); } boolean modelloF24IsDisplayed = accediAPiattaformaNotifichePage.modelloF24Displayed(); @@ -252,7 +253,7 @@ public void siControllaSezionePagamentoSeNotificaPrevedeIlPagamento() { logger.info("Sezione scarica modello F24 è visualizzato"); } else { logger.error("Sezione scarica modello F24 non è visualizzato"); - Assert.fail("Sezione scarica modello F24 non è visualizzato"); + Assertions.fail("Sezione scarica modello F24 non è visualizzato"); } boolean scaricaAvvisoDisplayed = accediAPiattaformaNotifichePage.scaricaAvvisoDisplayed(); @@ -260,7 +261,7 @@ public void siControllaSezionePagamentoSeNotificaPrevedeIlPagamento() { logger.info("Sezione scarica avviso è visualizzato"); } else { logger.error("Sezione scarica avviso non è visualizzato"); - Assert.fail("Sezione scarica avviso non è visualizzato"); + Assertions.fail("Sezione scarica avviso non è visualizzato"); } boolean pagaAvvisoDisplayed = accediAPiattaformaNotifichePage.pagaAvvisoDisplayed(); @@ -268,7 +269,7 @@ public void siControllaSezionePagamentoSeNotificaPrevedeIlPagamento() { logger.info("Sezione paga avviso è visualizzato"); } else { logger.error("Sezione paga avviso non è visualizzato"); - Assert.fail("Sezione paga avviso non è visualizzato"); + Assertions.fail("Sezione paga avviso non è visualizzato"); } } } @@ -294,7 +295,7 @@ public void siSelezionanoIFileAttestazioniOpponibiliDaScaricareAllInternoDellaNo if (headless && urlFileAttestazioneOppponibile.isEmpty()) { String testoLink = dettaglioNotificaSection.getTextLinkAttestazioniOpponibili(i); logger.error("Non è stato recuperato url per il download per il link: " + testoLink); - Assert.fail("Non è stato recuperato url per il download per il link: " + testoLink); + Assertions.fail("Non è stato recuperato url per il download per il link: " + testoLink); } File file = new File(workingDirectory + "/src/test/resources/dataPopulation/downloads/notificaN" + i + ".pdf"); downloadFile.download(urlFileAttestazioneOppponibile, file, headless); @@ -401,7 +402,7 @@ public void siVerificaCheNonSiaPossibileScaricareLeRicevutePEC() { public void siControllaTestoSiaNelBoxPagamento(String xpath) { boolean isPresent = dettaglioNotifica.isFieldDisplayed(By.xpath(xpath)); if (!isPresent) { - Assert.fail("L'elemento non esiste"); + Assertions.fail("L'elemento non esiste"); } } @@ -411,7 +412,7 @@ public void siControllaTestoNonSiaNelBoxPagamento(String xpathString) { boolean isNotPresent = dettaglioNotifica.isFieldNotDisplayed(xpath); if (!isNotPresent) { - Assert.fail("L'elemento esiste"); + Assertions.fail("L'elemento esiste"); } } @@ -478,7 +479,7 @@ public void siControllaCostiDiNotifica() { logger.info("Costi di notifica non inclusi"); }else { logger.error("Costi di notifica inclusi"); - Assert.fail("Costi di notifica inclusi"); + Assertions.fail("Costi di notifica inclusi"); } } @@ -503,7 +504,7 @@ public void siVisualizzaStatoPagato(){ public void verificaNomeEnteMittente(String nomeEnte){ DettaglioNotificaSection dettaglioNotificaSection = new DettaglioNotificaSection(this.driver); Map infoNotifiche = dettaglioNotificaSection.recuperoInfoNotificheDestinatario(); - Assert.assertTrue(infoNotifiche.get("mittente").equalsIgnoreCase(nomeEnte)); + Assertions.assertTrue(infoNotifiche.get("mittente").equalsIgnoreCase(nomeEnte)); } } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java index 84baec822..37b57d6e9 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java @@ -12,7 +12,8 @@ import it.pn.frontend.e2e.stepDefinitions.mittente.NotificaMittentePagoPATest; import it.pn.frontend.e2e.utility.DataPopulation; import it.pn.frontend.e2e.utility.WebTool; -import org.junit.Assert; + +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; @@ -92,7 +93,7 @@ public void nellaPaginaITuoiRecapitiSiVisualizzaCorrettamenteIlPopUpDiInseriment logger.info("La chiamata per inviare l'otp è stata effettuata"); } else { logger.error("La chiamata per inviare l'otp NON è stata effettuata"); - Assert.fail("La chiamata per inviare l'otp NON è stata effettuata"); + Assertions.fail("La chiamata per inviare l'otp NON è stata effettuata"); } } @@ -135,7 +136,7 @@ public void siVisualizzaCorrettamenteIlMessaggioDiErrore() { if (!recapitiDestinatarioPage.waitMessaggioErrore()) { logger.error("Il messaggio di errore non viene visualizzato"); - Assert.fail("Il messaggio di errore non viene visualizzato"); + Assertions.fail("Il messaggio di errore non viene visualizzato"); } } @@ -163,18 +164,18 @@ public void nellaPaginaITuoiRecapitiSiInserisceLaPECErrata(String pecErrata) { @Then("Si visualizza correttamente il messaggio di pec errata") public void nellaPaginaITuoiRecapitiSiVisualizzaCorrettamenteIlMessaggioDiPecErrata() { String errorMessageRead = recapitiDestinatarioPage.getPecErrorMessage(); - Assert.assertEquals("messaggio di errore letto : '" + errorMessageRead + "' non è uguale a : Indirizzo PEC non valido", "Indirizzo PEC non valido", errorMessageRead); + Assertions.assertEquals("messaggio di errore letto : '" + errorMessageRead + "' non è uguale a : Indirizzo PEC non valido", "Indirizzo PEC non valido", errorMessageRead); } @And("Si controlla che il tasto conferma sia bloccato") public void nellaPaginaITuoiRecapitiSiControllaCheIlTastoConfermaSiaBloccato() { - Assert.assertTrue("il buttone Conferma non è disabilitato", recapitiDestinatarioPage.verificaBottoneConfermaDisabilitato()); + Assertions.assertTrue( recapitiDestinatarioPage.verificaBottoneConfermaDisabilitato(),"il buttone Conferma non è disabilitato"); } @And("Si controlla che il tasto avvisami via email sia bloccato") public void nellaPaginaITuoiRecapitiSiControllaCheIlTastoAvvisamiViaEmailSiaBloccato() { - Assert.assertTrue("il bottone avvisami via email non è disabilitato", recapitiDestinatarioPage.avvisamiViaEmailIsDisabled()); + Assertions.assertTrue(recapitiDestinatarioPage.avvisamiViaEmailIsDisabled(),"il bottone avvisami via email non è disabilitato"); } @And("Si inserisce l'email della {string} e si clicca sul bottone avvisami via email") @@ -201,7 +202,7 @@ public void nellaPaginaITuoiRecapitiSiInserisceLEmailDelPFECliccaSulBottoneAvvis public void siVisualizzaCorrettamenteIlPopUpESiCliccaSuConferma() { logger.info("click pop-up conferma email"); - Assert.assertFalse("il popup Conferma email non si visualizza", recapitiDestinatarioPage.verificaPopUpConfermaEmail()); + Assertions.assertFalse(recapitiDestinatarioPage.verificaPopUpConfermaEmail(), "il popup Conferma email non si visualizza"); recapitiDestinatarioPage.clickHoCapitoCheckBoxPopup(); recapitiDestinatarioPage.confermaEmailPopup(); } @@ -241,14 +242,14 @@ public void nellaPaginaITuoiRecapitiSiInserisceIlNumeroDiTelefonoErrato(String n public void nellaPaginaITuoiRecapitiSiVisualizzaCorrettamenteIlMessaggioDiNumeroDiTelefonoErrato() { ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(this.driver); String errorMessageRead = iTuoiRecapitiPage.getPhoneErrorMessage(); - Assert.assertEquals("messaggio di errore letto : '" + errorMessageRead + "' non è uguale a : Numero di cellulare non valido", "Numero di cellulare non valido", errorMessageRead); + Assertions.assertEquals("messaggio di errore letto : '" + errorMessageRead + "' non è uguale a : Numero di cellulare non valido", "Numero di cellulare non valido", errorMessageRead); } @And("Nella pagina I Tuoi Recapiti si controlla che il tasto avvisami via sms sia bloccato") public void nellaPaginaITuoiRecapitiSiControllaCheIlTastoAvvisamiViaSmsSiaBloccato() { ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(this.driver); - Assert.assertTrue("il bottone avvisami via SMS non è disabilitato", iTuoiRecapitiPage.avvisamiViaSMSIsDisabled()); + Assertions.assertTrue(iTuoiRecapitiPage.avvisamiViaSMSIsDisabled(), "il bottone avvisami via SMS non è disabilitato"); } @And("Nella pagina I Tuoi Recapiti si recupera il codice OTP tramite chiamata request {string}") @@ -280,7 +281,7 @@ public void nellaPaginaITuoiRecapitiSiRecuperaIlCodiceOTPTramiteChiamataRequest( dataPopulation.writeDataPopulation(dpFile + ".yaml", personaFisica); } else { logger.error("La chiamata ha risposto con questo codice: " + recuperoOTPRecapiti.getResponseCode()); - Assert.fail("La chiamata ha risposto con questo codice: " + recuperoOTPRecapiti.getResponseCode()); + Assertions.fail("La chiamata ha risposto con questo codice: " + recuperoOTPRecapiti.getResponseCode()); } } } @@ -300,7 +301,7 @@ public void nellaPaginaITuoiRecapitiSiRecuperaIlCodiceOTPTramiteChiamataRequestD recapitiDestinatarioPage.confermaButtonClickPopUp(); if (recapitiDestinatarioPage.waitMessaggioErrore()) { logger.error("Il codice OTP inserito è sbagliato"); - Assert.fail("Il codice OTP inserito è sbagliato"); + Assertions.fail("Il codice OTP inserito è sbagliato"); } } else { String variabileAmbiente = System.getProperty("environment"); @@ -317,11 +318,11 @@ public void nellaPaginaITuoiRecapitiSiRecuperaIlCodiceOTPTramiteChiamataRequestD recapitiDestinatarioPage.confermaButtonClickPopUp(); if (recapitiDestinatarioPage.waitMessaggioErrore()) { logger.error("Il codice OTP inserito è sbagliato"); - Assert.fail("Il codice OTP inserito è sbagliato"); + Assertions.fail("Il codice OTP inserito è sbagliato"); } } else { logger.error("La chiamata ha risposto con questo codice: " + recuperoOTPRecapiti.getResponseCode()); - Assert.fail("La chiamata ha risposto con questo codice: " + recuperoOTPRecapiti.getResponseCode()); + Assertions.fail("La chiamata ha risposto con questo codice: " + recuperoOTPRecapiti.getResponseCode()); } } } @@ -336,7 +337,7 @@ public void nellaPaginaITuoiRecapitiSiInserisceIlCodiceOTP(String dpFile) { recapitiDestinatarioPage.confermaButtonClickPopUp(); if (recapitiDestinatarioPage.waitMessaggioErrore()) { logger.error("Il codice OTP inserito è sbagliato"); - Assert.fail("Il codice OTP inserito è sbagliato"); + Assertions.fail("Il codice OTP inserito è sbagliato"); } } @@ -350,7 +351,7 @@ public void nellaPaginaITuoiRecapitiSiInserisceIlCodiceOTP() { recapitiDestinatarioPage.confermaButtonClickPopUp(); if (recapitiDestinatarioPage.waitMessaggioErrore()) { logger.error("Il codice OTP inserito è sbagliato"); - Assert.fail("Il codice OTP inserito è sbagliato"); + Assertions.fail("Il codice OTP inserito è sbagliato"); } } @@ -378,7 +379,7 @@ public void nellaPaginaITuoiRecapitiSiControllaCheLaPecSiaStataInseritaCorrettam driver.navigate().refresh(); if (!recapitiDestinatarioPage.verificaPecAssociata()) { logger.error("Pec non associata con errore"); - Assert.fail("Pec non associata con errore"); + Assertions.fail("Pec non associata con errore"); } } @@ -414,7 +415,7 @@ public void nellaPaginaITuoiRecapitiSiRecuperaLOTPDellaEmailTramiteRequestMethod dataPopulation.writeDataPopulation(dpFile + ".yaml", personaFisica); } else { logger.error("La chiamata non ha risposto correttamente con codice:" + recuperoOTPRecapiti.getResponseCode()); - Assert.fail("La chiamata non ha risposto correttamentecon codice:" + recuperoOTPRecapiti.getResponseCode()); + Assertions.fail("La chiamata non ha risposto correttamentecon codice:" + recuperoOTPRecapiti.getResponseCode()); } } } @@ -451,7 +452,7 @@ public void nellaPaginaITuoiRecapitiSiRecuperaLOTPDellaEmailAltriRecapitiTramite dataPopulation.writeDataPopulation(dpFile + ".yaml", personaFisica); } else { logger.error("La chiamata non ha risposto correttamente con codice:" + recuperoOTPRecapiti.getResponseCode()); - Assert.fail("La chiamata non ha risposto correttamentecon codice:" + recuperoOTPRecapiti.getResponseCode()); + Assertions.fail("La chiamata non ha risposto correttamentecon codice:" + recuperoOTPRecapiti.getResponseCode()); } } } @@ -471,7 +472,7 @@ public void nellaPaginaITuoiRecapitiSiControllaCheLaEmailSiaPresente() { logger.info("Si controlla che la Email sia stata inserita correttamente"); if (!recapitiDestinatarioPage.verificaMailAssociata()) { logger.error("Email non è stata inserita correttamente"); - Assert.fail("Email non è stata inserita correttamente"); + Assertions.fail("Email non è stata inserita correttamente"); } } @@ -574,7 +575,7 @@ public void nellaPaginaITuoiRecapitiSiRecuperaLOTPDellaNuovaEmailTramiteRequestM dataPopulation.writeDataPopulation(dpFile + ".yaml", personaFisica); } else { logger.error("La chiamata con url: " + url + " ha risposto con questo codice: " + recuperoOTPRecapiti.getResponseCode()); - Assert.fail("La chiamata con url: " + url + " ha risposto con questo codice: " + recuperoOTPRecapiti.getResponseCode()); + Assertions.fail("La chiamata con url: " + url + " ha risposto con questo codice: " + recuperoOTPRecapiti.getResponseCode()); } } } @@ -618,7 +619,7 @@ public void nellaPaginaITuoiRecapitiSiControllaCheLIndirizzoEmailNonSiaPresente( logger.info("Email è stata eliminata correttamente"); } else { logger.error("Email non è stata eliminata"); - Assert.fail("Email non è stata eliminata"); + Assertions.fail("Email non è stata eliminata"); } } @@ -629,7 +630,7 @@ public void nellaPaginaITuoiRecapitiSiControllaCheLIndirizzoEmailNonEStataElemin logger.info("L'email non è stata eliminata"); } else { logger.error("L'email è stata eliminata"); - Assert.fail("L'email è stata eliminata"); + Assertions.fail("L'email è stata eliminata"); } } @@ -681,7 +682,7 @@ public void nellaPaginaITuoiRecapitiSiVerificaCheLaPecSiaStataModificata(String logger.info("La PEC è stata modificata"); } else { logger.error("La pec non è stata modificata"); - Assert.fail("La pec non è stata modificata"); + Assertions.fail("La pec non è stata modificata"); } } } @@ -725,7 +726,7 @@ public void nellaPaginaITuoiRecapitiSiRecuperaIlCodiceOTPDellaNuovaPECTramiteChi dataPopulation.writeDataPopulation(dpFile + ".yaml", personaFisica); } else { logger.error("La chiamata ha risposto con questo codice: " + recuperoOTPRecapiti.getResponseCode()); - Assert.fail("La chiamata ha risposto con questo codice: " + recuperoOTPRecapiti.getResponseCode()); + Assertions.fail("La chiamata ha risposto con questo codice: " + recuperoOTPRecapiti.getResponseCode()); } } @@ -756,7 +757,7 @@ public void nellaPaginaITuoiRecapitiSiRecuperaIlCodiceOTPDellaNuovaEmailPECTrami OTP = recuperoOTPRecapiti.getResponseBody(); } else { logger.error("La chiamata ha risposto con questo codice: " + recuperoOTPRecapiti.getResponseCode()); - Assert.fail("La chiamata ha risposto con questo codice: " + recuperoOTPRecapiti.getResponseCode()); + Assertions.fail("La chiamata ha risposto con questo codice: " + recuperoOTPRecapiti.getResponseCode()); } } @@ -784,7 +785,7 @@ public void nellaPaginaITuoiRecapitiSiRecuperaIlCodiceOTPDellaNuovaEmailTramiteC OTP = recuperoOTPRecapiti.getResponseBody(); } else { logger.error("La chiamata ha risposto con questo codice: " + recuperoOTPRecapiti.getResponseCode()); - Assert.fail("La chiamata ha risposto con questo codice: " + recuperoOTPRecapiti.getResponseCode()); + Assertions.fail("La chiamata ha risposto con questo codice: " + recuperoOTPRecapiti.getResponseCode()); } } @@ -832,7 +833,7 @@ public void nellaPaginaITuoiRecapitiSiControllaCheLIndirizzoPecNonSiaPresente() logger.info("La PEC è stata eliminata correttamente"); } else { logger.error("La PEC non è stata eliminata"); - Assert.fail("La PEC non è stata eliminata"); + Assertions.fail("La PEC non è stata eliminata"); } } @@ -844,7 +845,7 @@ public void nellaPaginaITuoiRecapitiSiControllaCheLIndirizzoPecPresente() { logger.info("La PEC non è stata eliminata"); } else { logger.error("La PEC è stata eliminata"); - Assert.fail("La PEC è stata eliminata"); + Assertions.fail("La PEC è stata eliminata"); } } @@ -912,7 +913,7 @@ public void nellaSezioneAltriRecapitiSiControllaCheLaPecAggiuntivaSiaStataInseri WebTool.waitTime(10); if (!recapitiDestinatarioPage.verificaNuovaEmailEPEC(pec)) { logger.error("La email PEC non è stata associata correttamente"); - Assert.fail("La email PEC non è stata associata correttamente"); + Assertions.fail("La email PEC non è stata associata correttamente"); } } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RicercaNotifichePersonaFisicaPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RicercaNotifichePersonaFisicaPATest.java index 4022f77ce..1aa95995a 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RicercaNotifichePersonaFisicaPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RicercaNotifichePersonaFisicaPATest.java @@ -13,7 +13,8 @@ import it.pn.frontend.e2e.stepDefinitions.common.BackgroundTest; import it.pn.frontend.e2e.utility.DataPopulation; import net.bytebuddy.asm.Advice; -import org.junit.Assert; + +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.WebDriver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -112,7 +113,7 @@ public void nellaPaginaPiattaformaNotificheDestinatarioVengoRestituiteTutteLeNot logger.info("Il risultato é coerente con il codice IUN inserito"); } else { logger.error("Il risultato NON é coerente con il codice IUN inserito"); - Assert.fail("Il risultato NON é coerente con il coodice IUN inserito"); + Assertions.fail("Il risultato NON é coerente con il coodice IUN inserito"); } } @@ -131,7 +132,7 @@ public void nellaPaginaPiattaformaNotificheDestinatarioVengoRestituiteTutteLeNot logger.info("Il risultato é coerente con il codice IUN inserito"); } else { logger.error("Il risultato NON é coerente con il codice IUN inserito"); - Assert.fail("Il risultato NON é coerente con il coodice IUN inserito"); + Assertions.fail("Il risultato NON é coerente con il coodice IUN inserito"); } } @@ -205,7 +206,7 @@ public void NellaPaginaPiattaformaNotifichePersonaFisicaVieneVisualizzatoUnMessa logger.info("il messaggio di errore é visualizzato"); } else { logger.error("il messaggio di errore non é visualizzato"); - Assert.fail("il messaggio di errore non é visualizzato"); + Assertions.fail("il messaggio di errore non é visualizzato"); } boolean isTextBoxInValid = notifichePFPage.isTextBoxInvalid(); @@ -214,7 +215,7 @@ public void NellaPaginaPiattaformaNotifichePersonaFisicaVieneVisualizzatoUnMessa logger.info("IUN text box non é valido"); } else { logger.error("IUN text box non é passato allo stato non valido"); - Assert.fail("IUN text box non é passato allo stato non valido"); + Assertions.fail("IUN text box non é passato allo stato non valido"); } @@ -224,7 +225,7 @@ public void NellaPaginaPiattaformaNotifichePersonaFisicaVieneVisualizzatoUnMessa logger.info("Il bottone Filtra é dissativato"); } else { logger.error("Il bottone Filtra é attivo"); - Assert.fail("Il bottone Filtra é attivo"); + Assertions.fail("Il bottone Filtra é attivo"); } } @@ -252,7 +253,7 @@ public void vengonoVisualizzateCorrettamenteLeNotificheCompreseNellArcoTemporale logger.info("Il risultato é coerente con le date inserite"); } else { logger.error("Il risultato NON é coerente con le date inserite"); - Assert.fail("Il risultato NON é coerente con le date inserite"); + Assertions.fail("Il risultato NON é coerente con le date inserite"); } } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/DeleghePGPagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/DeleghePGPagoPATest.java index 7d670e7fc..eb4d593a6 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/DeleghePGPagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/DeleghePGPagoPATest.java @@ -16,7 +16,8 @@ import it.pn.frontend.e2e.stepDefinitions.destinatario.personaFisica.DeleghePagoPATest; import it.pn.frontend.e2e.utility.DataPopulation; import it.pn.frontend.e2e.utility.WebTool; -import org.junit.Assert; + +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.WebDriver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -111,7 +112,7 @@ public void nellaSezioneLeTueDeleghePersonaGiuridicaVerificareCheLaDataSiaCorret logger.info("La data di fine delega è corretta"); } else { logger.error("La data di fine delega non è corretta"); - Assert.fail("La data di fine delega non è corretta"); + Assertions.fail("La data di fine delega non è corretta"); } } @@ -172,7 +173,7 @@ public void nellaSezioneLeTueDelegheInserireUnaDataConFormatoErratoEAntecedenteA public void verificaArcoTemporaleSelezionato() { logger.info("Si controlla l'arco temporale che sia errato su cui effettuare la ricerca"); PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(this.driver); - Assert.assertFalse(dataFineErrata); + Assertions.assertFalse(dataFineErrata); } @And("Nella sezione Le Tue Deleghe inserire una data") @@ -187,7 +188,7 @@ public void nellaSezioneLeTueDelegheInserireUnaData() { public void nellaSezioneLeTueDelegheSiVisualizzaIlMessaggioDiErroreDataErrata() { logger.info("Si controlla che si veda il messaggio di errore"); - Assert.assertEquals("il messaggio di errore previsto: Data errata è diverso dell'attuale " + aggiungiDelegaPGSection.waitMessaggioErroreData(), "Data errata", aggiungiDelegaPGSection.waitMessaggioErroreData()); + Assertions.assertEquals("il messaggio di errore previsto: Data errata è diverso dell'attuale " + aggiungiDelegaPGSection.waitMessaggioErroreData(), "Data errata", aggiungiDelegaPGSection.waitMessaggioErroreData()); logger.info("il messaggio di errore 'Data errata' è presente"); } @@ -219,7 +220,7 @@ public void nellaPaginaDelegheSezioneDelegheACaricoDellImpresaSiControllaCheVeng this.logger.info("La delega restituita è corretta"); } else { this.logger.error("La delega restituita NON è corretta"); - Assert.fail("La delega restituita NON è corretta"); + Assertions.fail("La delega restituita NON è corretta"); } } @@ -275,7 +276,7 @@ public void nellaSezioneDelegheSezioneDelegheDellImpresaSiControllaCheNonSiaPiuP logger.info("La delega è stata revocata correttamente"); } else { logger.error("La delega NON è stata revocata correttamente"); - Assert.fail("La delega NON è stata revocata correttamente"); + Assertions.fail("La delega NON è stata revocata correttamente"); } } @@ -304,7 +305,7 @@ public void siCliccaSulBottoneConfermaGruppo() { deleghePGPagoPAPage.clickBottoneConferma(); if (this.deleghePGPagoPAPage.verificaEsistenzaErroreCodiceSbagliato()) { logger.error("il codice inserito è sbagliato"); - Assert.fail("il codice inserito è sbagliato"); + Assertions.fail("il codice inserito è sbagliato"); } } @@ -350,7 +351,7 @@ public void siControllaCheLaDelegaNonSiPiuPresenteInElenco() { logger.info("La delega è stata rifiutata correttamente"); } else { logger.error("La delega NON è stata rifiutata correttamente"); - Assert.fail("La delega NON è stata rifiutata correttamente"); + Assertions.fail("La delega NON è stata rifiutata correttamente"); } } @@ -384,7 +385,7 @@ public void siCliccaSuConfermaInAssegnazioneGruppo() { deleghePGPagoPAPage.clickBottoneConferma(); if (this.deleghePGPagoPAPage.verificaEsistenzaErroreCodiceSbagliato()) { logger.error("il codice inserito è sbagliato"); - Assert.fail("il codice inserito è sbagliato"); + Assertions.fail("il codice inserito è sbagliato"); } } @@ -398,7 +399,7 @@ public void siControllaCheLaDelegaHaCambiatoStato() { logger.info("La delega ha un gruppo"); } else { logger.error("La delega NON ha un gruppo"); - Assert.fail("La delega NON ha un gruppo"); + Assertions.fail("La delega NON ha un gruppo"); } } @@ -422,7 +423,7 @@ public void siControllaCheLaDelegaNonAbbiaPiuIlGruppo() { logger.info("La delega non ha più gruppo"); } else { logger.error("La delega ha ancora il gruppo"); - Assert.fail("La delega ha ancora il gruppo"); + Assertions.fail("La delega ha ancora il gruppo"); } } @@ -471,7 +472,7 @@ public void siCliccaSulBottoneAccettaDelegaDopoAverInseritoIlCodiceDiVerifica() deleghePGPagoPAPage.clickBottoneConfermaDelega(); if (this.deleghePGPagoPAPage.verificaEsistenzaErroreCodiceSbagliato()) { logger.error("il codice inserito è sbagliato"); - Assert.fail("il codice inserito è sbagliato"); + Assertions.fail("il codice inserito è sbagliato"); } } @@ -574,7 +575,7 @@ public void nellaPaginaDelegheSezioneDelegheACaricoDellImpresaSiControllaCheCiSi this.logger.info("La delega restituita è corretta"); } else { this.logger.error("La delega restituita NON è corretta"); - Assert.fail("La delega restituita NON è corretta"); + Assertions.fail("La delega restituita NON è corretta"); } } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/DisserviziAppPGTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/DisserviziAppPGTest.java index 4da7a8bce..53ff8ad24 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/DisserviziAppPGTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/DisserviziAppPGTest.java @@ -7,7 +7,8 @@ import it.pn.frontend.e2e.pages.destinatario.personaGiuridica.PiattaformaNotifichePGPAPage; import it.pn.frontend.e2e.stepDefinitions.common.BackgroundTest; import it.pn.frontend.e2e.utility.WebTool; -import org.junit.Assert; + +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.WebDriver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -70,7 +71,7 @@ public void siVerificaAvvenutoDisservizioInPaginaStatoPiattaforma() { } if (!res) { logger.error("dopo aver atteso alcuni secondi il disservizio non è stato ancora creato"); - Assert.fail("dopo aver atteso alcuni secondi il disservizio non è stato ancora creato"); + Assertions.fail("dopo aver atteso alcuni secondi il disservizio non è stato ancora creato"); } disserviziAppPage.waitLoadStatoDellaPiattaformaPage(); diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java index 6403cbb8d..982a65d2b 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java @@ -21,7 +21,8 @@ import it.pn.frontend.e2e.utility.WebTool; import org.apache.hc.client5.http.cookie.BasicCookieStore; import org.apache.hc.client5.http.impl.cookie.BasicClientCookie; -import org.junit.Assert; + +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.WebDriver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -53,7 +54,7 @@ public void loginPagePersonaGiuridicaVieneVisualizzata() { case "test", "uat" -> driver.get(URL_LOGIN_PG.replace("dev", variabileAmbiente)); default -> - Assert.fail("Non stato possibile trovare l'ambiente inserito, Inserisci in -Denvironment test o dev o uat"); + Assertions.fail("Non stato possibile trovare l'ambiente inserito, Inserisci in -Denvironment test o dev o uat"); } } @@ -79,7 +80,7 @@ public void loginMittenteConTokenExchange(String personaGiuridica) { } default -> { logger.error("Ambiente non valido"); - Assert.fail("Ambiente non valido o non trovato!"); + Assertions.fail("Ambiente non valido o non trovato!"); } } @@ -130,7 +131,7 @@ public void loginPortalePersonaGiuridicaTramiteRequestMethod() { logger.info("procedura di login from spid provata : " + numProvaLogin); } else { logger.error("procedura di login from spid provata : " + numProvaLogin); - Assert.fail("Codice risposta ricevuto per questo end point: '" + this.urlPersonaGiuridica.get("urlPortale") + "' è : " + this.urlPersonaGiuridica.get("responseCode")); + Assertions.fail("Codice risposta ricevuto per questo end point: '" + this.urlPersonaGiuridica.get("urlPortale") + "' è : " + this.urlPersonaGiuridica.get("responseCode")); } @@ -154,56 +155,56 @@ private void readUrlPortaleMittente(String user, String password) { spidLoginMittente.setSpidLoginMittenteEndPoint("https://api-pnpg.uat.selfcare.pagopa.it/spid/v1/login"); spidLoginMittente.runSpidLoginMittente(); if (spidLoginMittente.getResponseBody() == null) { - Assert.fail("api spid login risponde con body vuoto"); + Assertions.fail("api spid login risponde con body vuoto"); } String cookiesNameFromSpidLoginMittente = spidLoginMittente.getCookieName(); if (cookiesNameFromSpidLoginMittente != null) { logger.info("cookiesNameFromSpidLoginMittente : " + cookiesNameFromSpidLoginMittente); } else { - Assert.fail("cookiesNameFromSpidLoginMittente is null"); + Assertions.fail("cookiesNameFromSpidLoginMittente is null"); } String cookiesValueFromSpidLoginMittente = spidLoginMittente.getCookieValue(); if (cookiesValueFromSpidLoginMittente != null) { logger.info("cookiesValueFromSpidLoginMittente : " + cookiesValueFromSpidLoginMittente); } else { - Assert.fail("cookiesValueFromSpidLoginMittente is null"); + Assertions.fail("cookiesValueFromSpidLoginMittente is null"); } String cookiesDomainFromSpidLoginMittente = spidLoginMittente.getCookieDomain(); if (cookiesDomainFromSpidLoginMittente != null) { logger.info("cookiesDomainFromSpidLoginMittente : " + cookiesDomainFromSpidLoginMittente); } else { - Assert.fail("cookiesDomainFromSpidLoginMittente is null"); + Assertions.fail("cookiesDomainFromSpidLoginMittente is null"); } String cookiesPathFromSpidLoginMittente = spidLoginMittente.getCookiePath(); if (cookiesPathFromSpidLoginMittente != null) { logger.info("cookiesPathFromSpidLoginMittente : " + cookiesPathFromSpidLoginMittente); } else { - Assert.fail("cookiesPathFromSpidLoginMittente is null"); + Assertions.fail("cookiesPathFromSpidLoginMittente is null"); } boolean cookiesHttOnlyFromSpidLoginMittente = spidLoginMittente.getCookieHttpOnly(); if (cookiesHttOnlyFromSpidLoginMittente) { logger.info("cookiesHttOnlyFromSpidLoginMittente : " + cookiesHttOnlyFromSpidLoginMittente); } else { - Assert.fail("cookiesHttOnlyFromSpidLoginMittente : " + cookiesHttOnlyFromSpidLoginMittente); + Assertions.fail("cookiesHttOnlyFromSpidLoginMittente : " + cookiesHttOnlyFromSpidLoginMittente); } String requestKeyFromSpidLoginMittente = spidLoginMittente.getRequestKey(); if (requestKeyFromSpidLoginMittente != null) { logger.info("requestKeyFromSpidLoginMittente : " + requestKeyFromSpidLoginMittente); } else { - Assert.fail("requestKeyFromSpidLoginMittente is null"); + Assertions.fail("requestKeyFromSpidLoginMittente is null"); } String relayStateFromSpidLoginMittente = spidLoginMittente.getRelayState(); if (relayStateFromSpidLoginMittente != null) { logger.info("relayStateFromSpidLoginMittente : " + relayStateFromSpidLoginMittente); } else { - Assert.fail("relayStateFromSpidLoginMittente is null"); + Assertions.fail("relayStateFromSpidLoginMittente is null"); } BasicCookieStore cookieStore = new BasicCookieStore(); @@ -224,14 +225,14 @@ private void readUrlPortaleMittente(String user, String password) { spidTestEnvWestEuropeAzureContainerIoLogin.runSpidTestEnvWestEuropeAzureContainerIoLogin(); if (spidTestEnvWestEuropeAzureContainerIoLogin.getResponseBody() == null) { - Assert.fail(" api selc-u-spid-testenv.westeurope.azurecontainer.io/login ha risposto con body vuoto"); + Assertions.fail(" api selc-u-spid-testenv.westeurope.azurecontainer.io/login ha risposto con body vuoto"); } String requestKeyFromSpidTestEnvWestEuropeAzureContainerIoLogin = spidTestEnvWestEuropeAzureContainerIoLogin.getRequestKeyOutput(); if (requestKeyFromSpidTestEnvWestEuropeAzureContainerIoLogin != null) { logger.info("requestKeyFromSpidTestEnvWestEuropeAzureContainerIoLogin : " + requestKeyFromSpidTestEnvWestEuropeAzureContainerIoLogin); } else { - Assert.fail("requestKeyFromSpidTestEnvWestEuropeAzureContainerIoLogin is null"); + Assertions.fail("requestKeyFromSpidTestEnvWestEuropeAzureContainerIoLogin is null"); } SpidTestEnvWestEuropeAzureContainerIoContinueResponse spidTestEnvWestEuropeAzureContainerIoContinueResponse = @@ -242,21 +243,21 @@ private void readUrlPortaleMittente(String user, String password) { spidTestEnvWestEuropeAzureContainerIoContinueResponse.setSpidTestEnvWestEuropeAzureContainerIoContinueResponseEndPoint("https://selc-u-pnpg-spid-testenv.westeurope.azurecontainer.io/continue-response"); spidTestEnvWestEuropeAzureContainerIoContinueResponse.runSpidTestEnvWestEuropeAzureContainerIoContinueResponse(); if (spidTestEnvWestEuropeAzureContainerIoContinueResponse.getResponseBody() == null) { - Assert.fail(" api selc-u-spid-testenv.westeurope.azurecontainer.io/continue-response"); + Assertions.fail(" api selc-u-spid-testenv.westeurope.azurecontainer.io/continue-response"); } String samlResponseFromSpidTestEnvWestEuropeAzureContainerIoContinueResponse = spidTestEnvWestEuropeAzureContainerIoContinueResponse.getSamlResponseOutput(); if (samlResponseFromSpidTestEnvWestEuropeAzureContainerIoContinueResponse != null) { logger.info("samlResponseFromSpidTestEnvWestEuropeAzureContainerIoContinueResponse : " + samlResponseFromSpidTestEnvWestEuropeAzureContainerIoContinueResponse); } else { - Assert.fail("samlResponseFromSpidTestEnvWestEuropeAzureContainerIoContinueResponse is null"); + Assertions.fail("samlResponseFromSpidTestEnvWestEuropeAzureContainerIoContinueResponse is null"); } String relayStateFromSpidTestEnvWestEuropeAzureContainerIoContinueResponse = spidTestEnvWestEuropeAzureContainerIoContinueResponse.getRelayStateOutput(); if (relayStateFromSpidTestEnvWestEuropeAzureContainerIoContinueResponse != null) { logger.info("relayStateFromSpidTestEnvWestEuropeAzureContainerIoContinueResponse : " + relayStateFromSpidTestEnvWestEuropeAzureContainerIoContinueResponse); } else { - Assert.fail("relayStateFromSpidTestEnvWestEuropeAzureContainerIoContinueResponse is null"); + Assertions.fail("relayStateFromSpidTestEnvWestEuropeAzureContainerIoContinueResponse is null"); } SpidAcsMittente spidAcsMittente = new SpidAcsMittente( @@ -272,7 +273,7 @@ private void readUrlPortaleMittente(String user, String password) { if (this.urlPersonaGiuridica.get("urlPortale") != null) { logger.info("urlPersonaGiuridica : " + this.urlPersonaGiuridica.get("urlPortale")); } else { - Assert.fail("urlPersonaGiuridica è null "); + Assertions.fail("urlPersonaGiuridica è null "); } } @@ -359,7 +360,7 @@ public void loginPortalePersonaGiuridicaTramiteRequestMethod(String dpFile) { logger.info("procedura di login from spid provata : " + numProvaLogin); } else { logger.error("procedura di login from spid provata : " + numProvaLogin); - Assert.fail("Codice risposta ricevuto per questo end point: '" + this.urlPersonaGiuridica.get("urlPortale") + "' è : " + this.urlPersonaGiuridica.get("responseCode")); + Assertions.fail("Codice risposta ricevuto per questo end point: '" + this.urlPersonaGiuridica.get("urlPortale") + "' è : " + this.urlPersonaGiuridica.get("responseCode")); } @@ -418,7 +419,7 @@ public String getTokenExchangePGFromFile(String personaGiuridica) { dataPopulation.readDataPopulation(FILE_TOKEN_LOGIN).get("tokentestPGDelegato").toString(); default -> { logger.error("Ambiente non valido"); - Assert.fail("Ambiente non valido o non trovato!"); + Assertions.fail("Ambiente non valido o non trovato!"); } } return token; diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/NotifichePGPagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/NotifichePGPagoPATest.java index 950b69cd5..51868b9f5 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/NotifichePGPagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/NotifichePGPagoPATest.java @@ -19,7 +19,8 @@ import it.pn.frontend.e2e.stepDefinitions.common.BackgroundTest; import it.pn.frontend.e2e.utility.*; import org.apache.commons.io.FileUtils; -import org.junit.Assert; + +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.WebDriver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -56,7 +57,7 @@ public void clickSendNotificheDigitali() { case "dev" -> homePagePG.clickSendNotificheDigitali(5); case "test" -> homePagePG.clickSendNotificheDigitali(6); default -> - Assert.fail("Non stato possibile trovare l'ambiente inserito, Inserisci in -Denvironment test o dev o uat"); + Assertions.fail("Non stato possibile trovare l'ambiente inserito, Inserisci in -Denvironment test o dev o uat"); } } @@ -77,10 +78,10 @@ public void siVisualizzaCorrettamenteLaPaginaNotifichePersonaGiuridica(String ra int codiceRispostaChiamataApi = getCodiceRispostaChiamataApi(urlChiamata); if (codiceRispostaChiamataApi != 200 && codiceRispostaChiamataApi != 0) { logger.error("TA_QA: La chiamata, " + urlChiamata + " è andata in errore"); - Assert.fail("TA_QA: La chiamata, " + urlChiamata + " è andata in errore"); + Assertions.fail("TA_QA: La chiamata, " + urlChiamata + " è andata in errore"); } else if (codiceRispostaChiamataApi == 0) { logger.error("TA_QA: La chiamata, " + urlChiamata + " non trovata"); - Assert.fail("TA_QA: La chiamata, " + urlChiamata + " non trovata"); + Assertions.fail("TA_QA: La chiamata, " + urlChiamata + " non trovata"); } } @@ -165,7 +166,7 @@ public void siSelezionanoIFileAttestazioniOpponibiliDaScaricareAllInternoDellaNo if (headless && urlFileAttestazioneOppponubile.isEmpty()) { String testoLink = dettaglioNotificaSection.getTextLinkAttestazioniOpponibili(i); logger.error("Non è stato recuperato url per il download per il link: " + testoLink); - Assert.fail("Non è stato recuperato url per il download per il link: " + testoLink); + Assertions.fail("Non è stato recuperato url per il download per il link: " + testoLink); } File file = new File(workingDirectory + "/src/test/resources/dataPopulation/downloadFileNotifica/destinatario/notificaN" + i + ".pdf"); downloadFile.download(urlFileAttestazioneOppponubile, file, headless); @@ -244,7 +245,7 @@ public void siControllaSiaPresenteIlModelloF24Destinatario() { logger.info("Il modello F24 è trovato"); } else { logger.error("Il modello F24 non è trovato"); - Assert.fail("Il modello F24 non è trovato"); + Assertions.fail("Il modello F24 non è trovato"); } } @@ -256,7 +257,7 @@ public void siControllaNonSiaPresenteIlModelloF24Destinatario() { logger.info("Il modello F24 non è trovato"); } else { logger.error("Il modello F24 è trovato"); - Assert.fail("Il modello F24 è trovato"); + Assertions.fail("Il modello F24 è trovato"); } } @@ -277,14 +278,14 @@ public void siControllaSiaPresenteLAvvisoPagoPaDestinatario() { logger.info("Avviso PagoPA è trovato"); } else { logger.error("Avviso PagoPA non è trovato"); - Assert.fail("Avviso PagoPA non è trovato"); + Assertions.fail("Avviso PagoPA non è trovato"); } } @And("Si controlla sia presente piu avvisi PagoPa PG") public void siControllaSiaPresentePiuAvvisiPagoPaPG() { AccediAPiattaformaNotifichePage accediAPiattaformaNotifichePage = new AccediAPiattaformaNotifichePage(this.driver); - Assert.assertTrue("Avvissi PagoPA non sono trovati", accediAPiattaformaNotifichePage.piuAvvisiDisplayed()); + Assertions.assertTrue(accediAPiattaformaNotifichePage.piuAvvisiDisplayed(),"Avvissi PagoPA non sono trovati"); logger.info("Avvissi PagoPA sono trovati"); } @@ -293,7 +294,7 @@ public void siControllaSiaPresentePiuAvvisiPagoPaPG() { public void siControllaSiaPresenteLAvvisiPagoPaPG() { logger.info("Si controlla la presenza del box per il pagamento della notifica"); AccediAPiattaformaNotifichePage accediAPiattaformaNotifichePage = new AccediAPiattaformaNotifichePage(this.driver); - Assert.assertTrue("Avviso PagoPA non è trovato", accediAPiattaformaNotifichePage.piuAvvisiDisplayed()); + Assertions.assertTrue(accediAPiattaformaNotifichePage.piuAvvisiDisplayed(),"Avviso PagoPA non è trovato"); logger.info("Avviso PagoPA è trovato"); } @@ -302,7 +303,7 @@ public void siControllaNonSiaPresenteLAvvisoPagoPa() { logger.info("Si controlla la presenza del box per il pagamento della notifica"); AccediAPiattaformaNotifichePage accediAPiattaformaNotifichePage = new AccediAPiattaformaNotifichePage(this.driver); WebTool.waitTime(5); - Assert.assertTrue("Avviso PagoPA non sia presente", accediAPiattaformaNotifichePage.piuAvvisiDisplayed()); + Assertions.assertTrue( accediAPiattaformaNotifichePage.piuAvvisiDisplayed(), "Avviso PagoPA non sia presente"); logger.info("Avviso PagoPA è presente"); } @@ -311,7 +312,7 @@ public void siControllaNonSiaPresenteLAllegatoPagoPa() { logger.info("Si controlla la presenza del box per il pagamento della notifica"); AccediAPiattaformaNotifichePage accediAPiattaformaNotifichePage = new AccediAPiattaformaNotifichePage(this.driver); WebTool.waitTime(5); - Assert.assertTrue("Avviso PagoPA non sia presente", accediAPiattaformaNotifichePage.allegatoPagoPaDisplayed()); + Assertions.assertTrue(accediAPiattaformaNotifichePage.allegatoPagoPaDisplayed(),"Avviso PagoPA non sia presente"); logger.info("Avviso PagoPA è presente"); } @@ -345,7 +346,7 @@ public void siControllaLaPresenzaDiCodiceAvviso() { logger.info("Codice avviso è visuallizato corrttamente"); } else { logger.error("Codice avviso non è visuallizato corrttamente"); - Assert.fail("Codice avviso non è visuallizato corrttamente"); + Assertions.fail("Codice avviso non è visuallizato corrttamente"); } } @@ -365,7 +366,7 @@ public void controlloRicevutaDiConsegnaLinkCliccabile() { public void controlloPresenteDocumento() throws IOException { PiattaformaNotifichePGPAPage piattaformaNotifichePGPAPage = new PiattaformaNotifichePGPAPage(this.driver); logger.info("Controllo sia presente documento pdf"); - Assert.assertTrue("Documento non è trovato", piattaformaNotifichePGPAPage.checkIfPdfExists()); + Assertions.assertTrue(piattaformaNotifichePGPAPage.checkIfPdfExists(), "Documento non è trovato"); logger.info("Documento è trovato"); } @@ -389,7 +390,7 @@ public void siSelezionanoIlFileDaScaricare(String nomeFile) throws IOException { final String url = downloadFile.getUrl(WebTool.getApiBaseUrl() + "notifications/received/"); if (headless && url.isEmpty()) { logger.error("Non è stato recuperato url per il download per il link: " + nomeFile); - Assert.fail("Non è stato recuperato url per il download per il link: " + nomeFile); + Assertions.fail("Non è stato recuperato url per il download per il link: " + nomeFile); } nomeFile = nomeFile.replace(" ", "_").replace(":", ""); File file = new File("src/test/resources/dataPopulation/downloadFileNotifica/mittente/" + nomeFile + ".pdf"); @@ -414,7 +415,7 @@ public void siControllaIlShaAllInternoAot() { logger.info("Il codice SHA all'interno del file è corretto"); } else { logger.error("Il codice SHA all'interno del file NON è corretto"); - Assert.fail("Il codice SHA all'interno del file NON è corretto"); + Assertions.fail("Il codice SHA all'interno del file NON è corretto"); } } } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/RecapitiPGPagoPaTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/RecapitiPGPagoPaTest.java index ffd6920da..910495f6c 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/RecapitiPGPagoPaTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/RecapitiPGPagoPaTest.java @@ -9,7 +9,8 @@ import it.pn.frontend.e2e.stepDefinitions.common.BackgroundTest; import it.pn.frontend.e2e.utility.DataPopulation; import it.pn.frontend.e2e.utility.WebTool; -import org.junit.Assert; + +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.WebDriver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -191,7 +192,7 @@ public void nellaSezioneAltriRecapitiSiCliccaAnnullaPopup(){ public void nellaSezioneAltriRecapitiSiVisualizzaMessagioDiErrorePopup(){ if (!recapitiDestinatarioPage.waitErrorMessagePopupOTP()){ logger.error("Il messaggio di errore OTP popup non è visibile"); - Assert.fail("Il messaggio di errore OTP popup non è visibile"); + Assertions.fail("Il messaggio di errore OTP popup non è visibile"); } } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/RicercaNotifichePersonaGiuridicaPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/RicercaNotifichePersonaGiuridicaPATest.java index b28d834c2..029be0196 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/RicercaNotifichePersonaGiuridicaPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/RicercaNotifichePersonaGiuridicaPATest.java @@ -12,7 +12,8 @@ import it.pn.frontend.e2e.pages.mittente.PiattaformaNotifichePage; import it.pn.frontend.e2e.section.destinatario.personaGiuridica.HeaderPGSection; import it.pn.frontend.e2e.section.mittente.HeaderPASection; -import org.junit.Assert; + +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.WebDriver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -77,7 +78,7 @@ public void siControllaSeLaNotificaPrevedeIlPagamento() { logger.info("Sezione titolo di pagamento è visualizzato"); } else { logger.error("Sezione titolo di pagamento non è visualizzato"); - Assert.fail("Sezione titolo di pagamento non è visualizzato"); + Assertions.fail("Sezione titolo di pagamento non è visualizzato"); } boolean codiceAvvisoIsDisplayed = piattaformaNotifichePGPAPage.codiceAvvisoDisplayed(); @@ -85,7 +86,7 @@ public void siControllaSeLaNotificaPrevedeIlPagamento() { logger.info("Sezione codice avviso è visualizzato"); } else { logger.error("Sezione codice avviso non è visualizzato"); - Assert.fail("Sezione codice avviso non è visualizzato"); + Assertions.fail("Sezione codice avviso non è visualizzato"); } boolean modelloF24IsDisplayed = piattaformaNotifichePGPAPage.modelloF24Displayed(); @@ -93,7 +94,7 @@ public void siControllaSeLaNotificaPrevedeIlPagamento() { logger.info("Sezione scarica modello F24 è visualizzato"); } else { logger.error("Sezione scarica modello F24 non è visualizzato"); - Assert.fail("Sezione scarica modello F24 non è visualizzato"); + Assertions.fail("Sezione scarica modello F24 non è visualizzato"); } } } @@ -122,7 +123,7 @@ public void nellaPaginaPiattaformaNotifichePersonaGiuridicaVengoRestituiteTutteL logger.info("Il risultato é coerente con il codice IUN inserito"); } else { logger.error("Gli stati della notifica NON sono uguali a quelli selezionati"); - Assert.fail("Gli stati della notifica NON sono uguali a quelli selezionati"); + Assertions.fail("Gli stati della notifica NON sono uguali a quelli selezionati"); } } @@ -151,7 +152,7 @@ public void nellaPaginaPiattaformaNotifichePersonaGiuridicaVengoRestituiteTutteL logger.info("Il risultato é coerente con le date inserite"); } else { logger.error("Il risultato NON é coerente con le date inserite"); - Assert.fail("Il risultato NON é coerente con le date inserite"); + Assertions.fail("Il risultato NON é coerente con le date inserite"); } } @@ -175,7 +176,7 @@ public void vieneVisualizzatoUnMessaggioInRossoDiErroreSottoIlCampoErratoEIlRett logger.info("il messaggio di errore é visualizzato"); } else { logger.error("il messaggio di errore non é visualizzato"); - Assert.fail("il messaggio di errore non é visualizzato"); + Assertions.fail("il messaggio di errore non é visualizzato"); } boolean isTextBoxInValid = notificheDestinatarioPage.isTextBoxInvalid(); @@ -183,7 +184,7 @@ public void vieneVisualizzatoUnMessaggioInRossoDiErroreSottoIlCampoErratoEIlRett logger.info("IUN text box non é valido"); } else { logger.error("IUN text box non é passato allo stato non valido"); - Assert.fail("IUN text box non é passato allo stato non valido"); + Assertions.fail("IUN text box non é passato allo stato non valido"); } ricercaNotifichePGPage.clickFiltraButton(); boolean isErrorMessageStillDisplayed = ricercaNotifichePGPage.isErrorMessageDisplayed(); @@ -191,7 +192,7 @@ public void vieneVisualizzatoUnMessaggioInRossoDiErroreSottoIlCampoErratoEIlRett logger.info("Il bottone Filtra é dissativato"); } else { logger.error("Il bottone Filtra é attivo"); - Assert.fail("Il bottone Filtra é attivo"); + Assertions.fail("Il bottone Filtra é attivo"); } } @@ -223,7 +224,7 @@ public void nellaPaginaPiattaformaNotificheDestinatarioSiInserisceUnaDataConForm logger.info("Il bottone Filtra é disattivato"); } else { logger.error("Il bottone Filtra é attivo"); - Assert.fail("Il bottone Filtra é attivo"); + Assertions.fail("Il bottone Filtra é attivo"); } } } \ No newline at end of file diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/UtentiPGPagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/UtentiPGPagoPATest.java index 03fe80026..e8b7f3d3c 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/UtentiPGPagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/UtentiPGPagoPATest.java @@ -1,5 +1,6 @@ package it.pn.frontend.e2e.stepDefinitions.destinatario.personaGiuridica; + import io.cucumber.java.en.And; import io.cucumber.java.en.Then; import io.cucumber.java.en.When; diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/ApiKeysTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/ApiKeysTest.java index bd20b8634..ba30ff1d2 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/ApiKeysTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/ApiKeysTest.java @@ -7,7 +7,8 @@ import it.pn.frontend.e2e.pages.mittente.ApiKeyPAPage; import it.pn.frontend.e2e.pages.mittente.PiattaformaNotifichePage; import it.pn.frontend.e2e.section.mittente.GeneraApiKeySection; -import org.junit.Assert; + +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.WebDriver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -169,35 +170,35 @@ public void siVisualizzaCorrettamenteLaListaDelleApiKeyGenerate() { logger.info("Si visualizza correttamente l'Api Key delle Api Key"); } else { logger.error("NON si visualizza correttamente l'Api Key delle Api Key"); - Assert.fail("NON si visualizza correttamente l'Api Key delle Api Key"); + Assertions.fail("NON si visualizza correttamente l'Api Key delle Api Key"); } if (apiKeyPAPage.siVisualizzaNomeEDataConTesto()) { logger.info("Si visualizza correttamente le date delle Api Key"); } else { logger.error("NON si visualizza correttamente le date delle Api Key"); - Assert.fail("NON si visualizza correttamente le date delle Api Key"); + Assertions.fail("NON si visualizza correttamente le date delle Api Key"); } if (apiKeyPAPage.siVisualizzaGruppoConTesto()) { logger.info("Si visualizza correttamente il gruppo delle Api Key"); } else { logger.error("NON si visualizza correttamente il gruppo delle Api Key"); - Assert.fail("NON si visualizza correttamente il gruppo delle Api Key"); + Assertions.fail("NON si visualizza correttamente il gruppo delle Api Key"); } if (apiKeyPAPage.siVisualizzaStatoConTesto()) { logger.info("Si visualizza correttamente lo stato delle api key"); } else { logger.error("NON si visualizza correttamente lo stato delle api key"); - Assert.fail("NON si visualizza correttamente lo stato delle api key"); + Assertions.fail("NON si visualizza correttamente lo stato delle api key"); } if (apiKeyPAPage.siVisualizzaMenuApiKey()) { logger.info("Si visualizza correttamente il bottone del menu Api Key"); } else { logger.error("NON si visualizza correttamente il bottone del menu Api Key"); - Assert.fail("NON si visualizza correttamente il bottone del menu Api Key"); + Assertions.fail("NON si visualizza correttamente il bottone del menu Api Key"); } } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DashboardMittentePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DashboardMittentePagoPATest.java index 1a6e98ded..2330b61e9 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DashboardMittentePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DashboardMittentePagoPATest.java @@ -22,7 +22,8 @@ import it.pn.frontend.e2e.utility.CookieConfig; import it.pn.frontend.e2e.utility.DataPopulation; import it.pn.frontend.e2e.utility.WebTool; -import org.junit.Assert; + +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.slf4j.Logger; @@ -119,7 +120,7 @@ public void nellaPaginaStatisticheNotificheDigitaliSiInserisceUnaDataErrata() { @And("Nella pagina Statistiche il bottone Filtra disabilitata") public void nellaPaginaStatisticheIlBottoneFiltraDisabilitata() { - Assert.assertTrue("il bottone Filtra è disabilitato", piattaformaNotifichePage.verificaBottoneFiltraDisabilitato()); + Assertions.assertTrue(piattaformaNotifichePage.verificaBottoneFiltraDisabilitato(),"il bottone Filtra è disabilitato"); } @And("Nella pagina Statistiche si clicca sul bottone Annulla filtri") diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DisserviziAppPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DisserviziAppPATest.java index 3d3149099..bbecc6997 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DisserviziAppPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DisserviziAppPATest.java @@ -8,7 +8,8 @@ import it.pn.frontend.e2e.pages.mittente.DisserviziAppPAPage; import it.pn.frontend.e2e.utility.DownloadFile; import it.pn.frontend.e2e.utility.WebTool; -import org.junit.Assert; + +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.WebDriver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -96,7 +97,7 @@ public void controlloCorrispondenzaDatiConPdf() { boolean isCorrect = disserviziAppPAPage.confrontoFileConDisservizio(); if (!isCorrect) { logger.error("i dati del pdf non corrispondono a quelli della tabella"); - Assert.fail("i dati del pdf non corrispondono a quelli della tabella"); + Assertions.fail("i dati del pdf non corrispondono a quelli della tabella"); } } } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java index 057c37412..5c8de484b 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java @@ -12,7 +12,8 @@ import it.pn.frontend.e2e.utility.DataPopulation; import it.pn.frontend.e2e.utility.DownloadFile; import it.pn.frontend.e2e.utility.WebTool; -import org.junit.Assert; + +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.WebDriver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -89,7 +90,7 @@ public void downloadECheckFile() { if (headless && urlDocumentiAllegati.isEmpty()) { String testoLink = dettaglioNotificaMittenteSection.getTextDocumentiAllegati(); logger.error("Non è stato recuperato url per il download per il link: " + testoLink); - Assert.fail("Non è stato recuperato url per il download per il link: " + testoLink); + Assertions.fail("Non è stato recuperato url per il download per il link: " + testoLink); } downloadFile.download(urlDocumentiAllegati, file, headless); if (!headless) { @@ -111,7 +112,7 @@ public void downloadECheckFile() { if (headless && urlAvvenutaRicezione.isEmpty()) { String testoLink = dettaglioNotificaMittenteSection.getTextLinkAvvenutaRicezione(i); logger.error("Non è stato recuperato url per il download per il link: " + testoLink); - Assert.fail("Non è stato recuperato url per il download per il link: " + testoLink); + Assertions.fail("Non è stato recuperato url per il download per il link: " + testoLink); } file = new File(filepath + count + ".pdf"); count = count + 1; @@ -136,7 +137,7 @@ public void downloadECheckFile() { if (headless && urlFileAttestazioneOppponibile.isEmpty()) { String testoLink = dettaglioNotificaSection.getTextLinkAttestazioniOpponibili(i); logger.error("Non è stato recuperato url per il download per il link: " + testoLink); - Assert.fail("Non è stato recuperato url per il download per il link: " + testoLink); + Assertions.fail("Non è stato recuperato url per il download per il link: " + testoLink); } file = new File(filepath + count + ".pdf"); count = count + 1; @@ -191,7 +192,7 @@ public void downloadDocumentiAllegati() { if (headless && urlDocumentiAllegati.isEmpty()) { logger.error("Non è stato recuperato l'URL per il download dei documenti Allegati."); - Assert.fail("Non è stato recuperato l'URL per il download dei documenti Allegati."); + Assertions.fail("Non è stato recuperato l'URL per il download dei documenti Allegati."); } downloadFile.download(urlDocumentiAllegati, file, headless); if (!headless) { @@ -272,7 +273,7 @@ public void downloadFileAAR() { if (urlAvvenutaRicezione.isEmpty()) { String testoLink = dettaglioNotificaMittenteSection.getTextLinkAvvenutaRicezione(i); logger.error("Non è stato recuperato l'URL per il download per il link: " + testoLink); - Assert.fail("Non è stato recuperato l'URL per il download per il link: " + testoLink); + Assertions.fail("Non è stato recuperato l'URL per il download per il link: " + testoLink); } File file = new File(workingDirectory + "/src/test/resources/dataPopulation/downloadFileNotifica/mittente/notificaN" + count + "Avviso_di_avvenuta_ricezione.pdf"); downloadFile.download(urlAvvenutaRicezione, file, headless); @@ -324,7 +325,7 @@ public void downloadAttestazioniOpponibili() { if (urlFileAttestazioneOpponibile.isEmpty()) { String testoLink = dettaglioNotificaSection.getTextLinkAttestazioniOpponibili(i); logger.error("Non è stato recuperato l'URL per il download per il link: " + testoLink); - Assert.fail("Non è stato recuperato l'URL per il download per il link: " + testoLink); + Assertions.fail("Non è stato recuperato l'URL per il download per il link: " + testoLink); } File file = new File(workingDirectory + "/src/test/resources/dataPopulation/downloadFileNotifica/mittente/notificaN" + count + "Attestazioni_Opponoboli.pdf"); downloadFile.download(urlFileAttestazioneOpponibile, file, headless); @@ -354,7 +355,7 @@ public void siSelezionanoIlFileDaScaricare(String nomeFile) { final String url = downloadFile.getUrl(WebTool.getApiBaseUrl() + "notifications/sent/"); if (headless && url.isEmpty()) { logger.error("Non è stato recuperato url per il download per il link: " + nomeFile); - Assert.fail("Non è stato recuperato url per il download per il link: " + nomeFile); + Assertions.fail("Non è stato recuperato url per il download per il link: " + nomeFile); } nomeFile = nomeFile.replace(" ", "_").replace(":", ""); File file = new File("src/test/resources/dataPopulation/downloadFileNotifica/mittente/" + nomeFile + ".pdf"); @@ -376,14 +377,14 @@ public void siControllaIlTestoAlSuoInterno(String nomeFile) { logger.info("Il testo all'interno del file è corretto"); } else { logger.error("Il testo all'interno del file NON è corretto"); - Assert.fail("Il testo all'interno del file NON è corretto"); + Assertions.fail("Il testo all'interno del file NON è corretto"); } } else if (nomeFile.contains("Avviso di avvenuta ricezione")) { if (dettaglioNotificaMittenteSection.controlloTestoFile(nomeFile, "A Simple PDF File")) { logger.info("Il testo all'interno del file è corretto"); } else { logger.error("Il testo all'interno del file NON è corretto"); - Assert.fail("Il testo all'interno del file NON è corretto"); + Assertions.fail("Il testo all'interno del file NON è corretto"); } } else { if (nomeFile.equals("Attestazione_opponibile_a_terzi_notifica_presa_in_carico")) { @@ -391,7 +392,7 @@ public void siControllaIlTestoAlSuoInterno(String nomeFile) { logger.info("Il nome del mittente all'interno del file è corretto"); } else { logger.error("Il nome del mittente all'interno del file NON è corretto"); - Assert.fail("Il nome del mittente all'interno del file NON è corretto"); + Assertions.fail("Il nome del mittente all'interno del file NON è corretto"); } } @@ -399,28 +400,28 @@ public void siControllaIlTestoAlSuoInterno(String nomeFile) { logger.info("Il nome del destinatario all'interno del file è corretto"); } else { logger.error("Il nome del destinatario all'interno del file NON è corretto"); - Assert.fail("Il nome del destinatario all'interno del file NON è corretto"); + Assertions.fail("Il nome del destinatario all'interno del file NON è corretto"); } if (dettaglioNotificaMittenteSection.controlloTestoFile(nomeFile, infoNotifiche.get("codiceFiscale"))) { logger.info("Il codiceFiscale del destinatario all'interno del file è corretto"); } else { logger.error("Il codiceFiscale del destinatario all'interno del file NON è corretto"); - Assert.fail("Il codiceFiscale del destianatario all'interno del file NON è corretto"); + Assertions.fail("Il codiceFiscale del destianatario all'interno del file NON è corretto"); } if (dettaglioNotificaMittenteSection.controlloTestoFileData(nomeFile, infoNotifiche.get("data"))) { logger.info("La data della notifica all'interno del file è corretta"); } else { logger.error("La data della notifica all'interno del file NON è corretta"); - Assert.fail("La data della notifica all'interno del file NON è corretta"); + Assertions.fail("La data della notifica all'interno del file NON è corretta"); } if (dettaglioNotificaMittenteSection.controlloTestoFileCodiceIUN(nomeFile, infoNotifiche.get("codiceIUN"))) { logger.info("Il codice IUN della notifica all'interno del file è corretto"); } else { logger.error("Il codice IUN della notifica all'interno del file NON è corretto"); - Assert.fail("Il codice IUN della notifica all'interno del file NON è corretto"); + Assertions.fail("Il codice IUN della notifica all'interno del file NON è corretto"); } } } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/LoginMittentePagoPA.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/LoginMittentePagoPA.java index fe3186d91..d96903aaa 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/LoginMittentePagoPA.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/LoginMittentePagoPA.java @@ -17,7 +17,7 @@ import it.pn.frontend.e2e.utility.WebTool; import org.apache.hc.client5.http.cookie.BasicCookieStore; import org.apache.hc.client5.http.impl.cookie.BasicClientCookie; -import org.junit.Assert; +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.WebDriver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -45,7 +45,7 @@ public void loginPageMittenteVieneVisualizzata(String datiMittenteFile) { case "test", "uat" -> this.driver.get(this.datiMittente.get("url").toString().replace("dev", variabileAmbiente)); default -> - Assert.fail("Non stato possibile trovare l'ambiente inserito, Inserisci in -Denvironment test o dev o uat"); + Assertions.fail("Non stato possibile trovare l'ambiente inserito, Inserisci in -Denvironment test o dev o uat"); } } @@ -61,7 +61,7 @@ public void loginPageMittenteVieneVisualizzata(Map datiMittenteTa case "test", "uat" -> this.driver.get(datiMittenteTable.get("url").replace("dev", variabileAmbiente)); default -> - Assert.fail("Non stato possibile trovare l'ambiente inserito, Inserisci in -Denvironment test o dev o uat"); + Assertions.fail("Non stato possibile trovare l'ambiente inserito, Inserisci in -Denvironment test o dev o uat"); } } @@ -77,7 +77,7 @@ public void loginMittenteConTokenExchange() { token = dataPopulation.readDataPopulation(FILE_TOKEN_LOGIN).get("tokentestMittente").toString(); default -> { logger.error("Ambiente non valido"); - Assert.fail("Ambiente non valido o non trovato!"); + Assertions.fail("Ambiente non valido o non trovato!"); } } @@ -208,7 +208,7 @@ public void portaleMittenteIsDisplayed() throws InterruptedException { logger.info("procedura di login from spid provata : " + numProvaLogin); } else { logger.info("procedura di login from spid provata : " + numProvaLogin); - Assert.fail("Codice risposta ricevuto per questo end point: '" + this.urlMittente.get("urlPortale") + "' è : " + this.urlMittente.get("responseCode")); + Assertions.fail("Codice risposta ricevuto per questo end point: '" + this.urlMittente.get("urlPortale") + "' è : " + this.urlMittente.get("responseCode")); } this.driver.get(this.urlMittente.get("urlPortale")); @@ -226,56 +226,56 @@ private void readurlPortaleMittente(String user, String password) { spidLoginMittente.setSpidLoginMittenteEndPoint("https://api.uat.selfcare.pagopa.it/spid/v1/login"); spidLoginMittente.runSpidLoginMittente(); if (spidLoginMittente.getResponseBody() == null) { - Assert.fail(" api spid login risponde con body vuoto"); + Assertions.fail(" api spid login risponde con body vuoto"); } String cookiesNameFromSpidLoginMittente = spidLoginMittente.getCookieName(); if (cookiesNameFromSpidLoginMittente != null) { logger.info("cookiesNameFromSpidLoginMittente : " + cookiesNameFromSpidLoginMittente); } else { - Assert.fail("cookiesNameFromSpidLoginMittente is null"); + Assertions.fail("cookiesNameFromSpidLoginMittente is null"); } String cookiesValueFromSpidLoginMittente = spidLoginMittente.getCookieValue(); if (cookiesValueFromSpidLoginMittente != null) { logger.info("cookiesValueFromSpidLoginMittente : " + cookiesValueFromSpidLoginMittente); } else { - Assert.fail("cookiesValueFromSpidLoginMittente is null"); + Assertions.fail("cookiesValueFromSpidLoginMittente is null"); } String cookiesDomainFromSpidLoginMittente = spidLoginMittente.getCookieDomain(); if (cookiesDomainFromSpidLoginMittente != null) { logger.info("cookiesDomainFromSpidLoginMittente : " + cookiesDomainFromSpidLoginMittente); } else { - Assert.fail("cookiesDomainFromSpidLoginMittente is null"); + Assertions.fail("cookiesDomainFromSpidLoginMittente is null"); } String cookiesPathFromSpidLoginMittente = spidLoginMittente.getCookiePath(); if (cookiesPathFromSpidLoginMittente != null) { logger.info("cookiesPathFromSpidLoginMittente : " + cookiesPathFromSpidLoginMittente); } else { - Assert.fail("cookiesPathFromSpidLoginMittente is null"); + Assertions.fail("cookiesPathFromSpidLoginMittente is null"); } boolean cookiesHttOnlyFromSpidLoginMittente = spidLoginMittente.getCookieHttpOnly(); if (cookiesHttOnlyFromSpidLoginMittente) { logger.info("cookiesHttOnlyFromSpidLoginMittente : " + cookiesHttOnlyFromSpidLoginMittente); } else { - Assert.fail("cookiesHttOnlyFromSpidLoginMittente : " + cookiesHttOnlyFromSpidLoginMittente); + Assertions.fail("cookiesHttOnlyFromSpidLoginMittente : " + cookiesHttOnlyFromSpidLoginMittente); } String requestKeyFromSpidLoginMittente = spidLoginMittente.getRequestKey(); if (requestKeyFromSpidLoginMittente != null) { logger.info("requestKeyFromSpidLoginMittente : " + requestKeyFromSpidLoginMittente); } else { - Assert.fail("requestKeyFromSpidLoginMittente is null"); + Assertions.fail("requestKeyFromSpidLoginMittente is null"); } String relayStateFromSpidLoginMittente = spidLoginMittente.getRelayState(); if (relayStateFromSpidLoginMittente != null) { logger.info("relayStateFromSpidLoginMittente : " + relayStateFromSpidLoginMittente); } else { - Assert.fail("relayStateFromSpidLoginMittente is null"); + Assertions.fail("relayStateFromSpidLoginMittente is null"); } BasicCookieStore cookieStore = new BasicCookieStore(); @@ -296,14 +296,14 @@ private void readurlPortaleMittente(String user, String password) { spidTestEnvWestEuropeAzureContainerIoLogin.runSpidTestEnvWestEuropeAzureContainerIoLogin(); if (spidTestEnvWestEuropeAzureContainerIoLogin.getResponseBody() == null) { - Assert.fail(" api selc-u-spid-testenv.westeurope.azurecontainer.io/login ha risposto con body vuoto"); + Assertions.fail(" api selc-u-spid-testenv.westeurope.azurecontainer.io/login ha risposto con body vuoto"); } String requestKeyFromSpidTestEnvWestEuropeAzureContainerIoLogin = spidTestEnvWestEuropeAzureContainerIoLogin.getRequestKeyOutput(); if (requestKeyFromSpidTestEnvWestEuropeAzureContainerIoLogin != null) { logger.info("requestKeyFromSpidTestEnvWestEuropeAzureContainerIoLogin : " + requestKeyFromSpidTestEnvWestEuropeAzureContainerIoLogin); } else { - Assert.fail("requestKeyFromSpidTestEnvWestEuropeAzureContainerIoLogin is null"); + Assertions.fail("requestKeyFromSpidTestEnvWestEuropeAzureContainerIoLogin is null"); } SpidTestEnvWestEuropeAzureContainerIoContinueResponse spidTestEnvWestEuropeAzureContainerIoContinueResponse = @@ -314,21 +314,21 @@ private void readurlPortaleMittente(String user, String password) { spidTestEnvWestEuropeAzureContainerIoContinueResponse.setSpidTestEnvWestEuropeAzureContainerIoContinueResponseEndPoint("https://selc-u-spid-testenv.westeurope.azurecontainer.io/continue-response"); spidTestEnvWestEuropeAzureContainerIoContinueResponse.runSpidTestEnvWestEuropeAzureContainerIoContinueResponse(); if (spidTestEnvWestEuropeAzureContainerIoContinueResponse.getResponseBody() == null) { - Assert.fail(" api selc-u-spid-testenv.westeurope.azurecontainer.io/continue-response"); + Assertions.fail(" api selc-u-spid-testenv.westeurope.azurecontainer.io/continue-response"); } String samlResponseFromSpidTestEnvWestEuropeAzureContainerIoContinueResponse = spidTestEnvWestEuropeAzureContainerIoContinueResponse.getSamlResponseOutput(); if (samlResponseFromSpidTestEnvWestEuropeAzureContainerIoContinueResponse != null) { logger.info("samlResponseFromSpidTestEnvWestEuropeAzureContainerIoContinueResponse : " + samlResponseFromSpidTestEnvWestEuropeAzureContainerIoContinueResponse); } else { - Assert.fail("samlResponseFromSpidTestEnvWestEuropeAzureContainerIoContinueResponse is null"); + Assertions.fail("samlResponseFromSpidTestEnvWestEuropeAzureContainerIoContinueResponse is null"); } String relayStateFromSpidTestEnvWestEuropeAzureContainerIoContinueResponse = spidTestEnvWestEuropeAzureContainerIoContinueResponse.getRelayStateOutput(); if (relayStateFromSpidTestEnvWestEuropeAzureContainerIoContinueResponse != null) { logger.info("relayStateFromSpidTestEnvWestEuropeAzureContainerIoContinueResponse : " + relayStateFromSpidTestEnvWestEuropeAzureContainerIoContinueResponse); } else { - Assert.fail("relayStateFromSpidTestEnvWestEuropeAzureContainerIoContinueResponse is null"); + Assertions.fail("relayStateFromSpidTestEnvWestEuropeAzureContainerIoContinueResponse is null"); } SpidAcsMittente spidAcsMittente = new SpidAcsMittente( @@ -344,7 +344,7 @@ private void readurlPortaleMittente(String user, String password) { if (this.urlMittente.get("urlPortale") != null) { logger.info("urlMittente : " + this.urlMittente.get("urlPortale")); } else { - Assert.fail("urlMittente è null "); + Assertions.fail("urlMittente è null "); } } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NewNotifichePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NewNotifichePagoPATest.java index e22f163fa..e708303d3 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NewNotifichePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NewNotifichePagoPATest.java @@ -10,7 +10,8 @@ import it.pn.frontend.e2e.utility.DataPopulation; import lombok.extern.slf4j.Slf4j; -import org.junit.Assert; + +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.WebDriver; @@ -52,7 +53,7 @@ public void siCompletaPercorsoRADD(Map datiDestinatario) { token = dataPopulation.readDataPopulation(FILE_TOKEN_LOGIN).get("tokentestRaddista1").toString(); default -> { log.error("Ambiente non valido"); - Assert.fail("Ambiente non valido o non trovato!"); + Assertions.fail("Ambiente non valido o non trovato!"); } } String operationId = UUID.randomUUID().toString(); diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java index 92f99bcb5..89a837b7c 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java @@ -22,7 +22,8 @@ import it.pn.frontend.e2e.utility.DataPopulation; import it.pn.frontend.e2e.utility.WebTool; import lombok.Setter; -import org.junit.Assert; + +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.slf4j.Logger; @@ -94,10 +95,10 @@ public void siVisualizzaCorrettamenteLaPaginaPiattaformaNotifiche() { int codiceRispostaChiamataApi = getCodiceRispostaChiamataApi(urlChiamata); if (codiceRispostaChiamataApi != 200 && codiceRispostaChiamataApi != 0) { logger.error("TA_QA: La chiamata, " + urlChiamata + " è andata in errore"); - Assert.fail("TA_QA: La chiamata, " + urlChiamata + " è andata in errore"); + Assertions.fail("TA_QA: La chiamata, " + urlChiamata + " è andata in errore"); } else if (codiceRispostaChiamataApi == 0) { logger.error("TA_QA: La chiamata, " + urlChiamata + " non trovata"); - Assert.fail("TA_QA: La chiamata, " + urlChiamata + " non trovata"); + Assertions.fail("TA_QA: La chiamata, " + urlChiamata + " non trovata"); } } @@ -304,7 +305,7 @@ public void nellaSectionAllegatiCaricareLAttoEInserireIlNomeAtto(String datiNoti logger.info("File notifica.pdf caricato correttamente"); } else { logger.error("File notifica.pdf non caricato"); - Assert.fail("File notifica.pdf non caricato"); + Assertions.fail("File notifica.pdf non caricato"); } @@ -322,7 +323,7 @@ public void nellaSectionAllegatiCliccareSulBottoneInvia() { if (allegatiPASection.verificaMessaggioErrore()) { aggiornamentoNumeroProtocolloAllegati(); logger.error("Si vede il messaggio di dati non corretti"); - Assert.fail("Si vede il messaggio di dati non corretti"); + Assertions.fail("Si vede il messaggio di dati non corretti"); } } @@ -353,7 +354,7 @@ private void aggiornamentoNumeroProtocolloAllegati() { temp = String.valueOf((char) (counter.charAt(0) + 8)); } else if (counter.equals("Z")) { logger.error(numeroProtocolOld + " oltre questo numero protocollo per la giornata di : " + dataProtocolOld + " non si può andare"); - Assert.fail(numeroProtocolOld + " oltre questo numero protocollo per la giornata di : " + dataProtocolOld + " non si può andare"); + Assertions.fail(numeroProtocolOld + " oltre questo numero protocollo per la giornata di : " + dataProtocolOld + " non si può andare"); } else { temp = String.valueOf((char) (counter.charAt(0) + 1)); } @@ -426,7 +427,7 @@ public void verificaDelloStatoDellaNotificaComeDepositata(String statoNotifica) } logger.error("Il server ha impiegato troppo tempo nel generare la notifica"); - Assert.fail("Il server ha impiegato troppo tempo nel generare la notifica"); + Assertions.fail("Il server ha impiegato troppo tempo nel generare la notifica"); } @@ -470,7 +471,7 @@ public void salvaApiKey(){ @And("Si verifica che Api Key sono diversi") public void verificaDiversiApiKey(){ String actualApiKey = dettaglioNotificaMittenteSection.getApiKey(); - Assert.assertFalse(actualApiKey.equalsIgnoreCase(ApiKey)); + Assertions.assertFalse(actualApiKey.equalsIgnoreCase(ApiKey)); logger.info("Api Keys sono diversi"); } @@ -536,35 +537,35 @@ public void nellaPaginaPiattaformaNotificheSiVisualizzaCorrettamenteLElencoDelle logger.info("I codici fiscali delle notifiche vengono visualizzati correttamente"); } else { logger.error("I codici fiscali delle notifiche non vengono visualizzati correttamente"); - Assert.fail("I codici fiscali delle notifiche non vengono visualizzati correttamente"); + Assertions.fail("I codici fiscali delle notifiche non vengono visualizzati correttamente"); } List listaOggetti = piattaformaNotifichePage.ricercaListaOggetti(); if (listaOggetti != null && listaOggetti.size() >= 1) { logger.info("La lista degli oggetti viene visualizzata correttamente"); } else { logger.error("La lista degli oggetti non viene visualizzata correttamente"); - Assert.fail("La lista degli oggetti non viene visualizzata correttamente"); + Assertions.fail("La lista degli oggetti non viene visualizzata correttamente"); } if (piattaformaNotifichePage.verificaEsistenzaCodiceIUNNotifiche()) { logger.info("La lista dei codici iun viene visualizzata correttamente"); } else { logger.error("La lista dei codici iun non viene visualizzata correttamente"); - Assert.fail("La lista dei codici iun non viene visualizzata correttamente"); + Assertions.fail("La lista dei codici iun non viene visualizzata correttamente"); } if (piattaformaNotifichePage.verificaEsistenzaGruppoNotifiche()) { logger.info("La lista dei gruppi vengono visualizzate correttamente"); } else { logger.error("La lista dei gruppi non vengono visualizzate correttamente"); - Assert.fail("La lista dei gruppi non vengono visualizzate correttamente"); + Assertions.fail("La lista dei gruppi non vengono visualizzate correttamente"); } if (piattaformaNotifichePage.verificaEsistenzaStatoNotifiche()) { logger.info("La lista degli stati viene visualizzata correttamente"); } else { logger.error("La lista degli stati non viene visualizzata correttamente"); - Assert.fail("La lista degli stati non viene visualizzata correttamente"); + Assertions.fail("La lista degli stati non viene visualizzata correttamente"); } } @@ -576,7 +577,7 @@ public void nellaSectionDestinatarioVieneVisualizzatoUnSoloDestinatario() { logger.info("Viene visualizzato un solo destinatario"); } else { logger.error("Viene visualizzato più di un destinatario"); - Assert.fail("Viene visualizzato più di un destinatario"); + Assertions.fail("Viene visualizzato più di un destinatario"); } } @@ -601,7 +602,7 @@ public void nellaPaginaPiattaformaNotificheSiControllaCheVenganoVisualizzateNoti logger.info("Il numero di notifiche é corretto"); } else { logger.error("Il numero di notifiche non é corretto"); - Assert.fail("Il numero di notifiche non é corretto"); + Assertions.fail("Il numero di notifiche non é corretto"); } } @@ -643,7 +644,7 @@ public void nellaPaginaPiattaformaNotificheSiControllaCheVenganoVisualizzateTutt logger.info("Numero righe differente da quello di default"); } else { logger.error("Numero righe uguale da quello di default"); - Assert.fail("Numero righe uguale da quello di default"); + Assertions.fail("Numero righe uguale da quello di default"); } } @@ -671,11 +672,11 @@ public void nellaSectionDestinatarioInserireIDatiDelDestinatariAggiuntiviPerNume nPersoneFisicheInt = Integer.parseInt(npersoneFisiche) - 1; if (nPersoneFisicheInt > 4 || nPersoneFisicheInt == 0) { logger.error("Devi inserire un nummero da 1 a 5"); - Assert.fail("Devi inserire un nummero da 1 a 5"); + Assertions.fail("Devi inserire un nummero da 1 a 5"); } } else { logger.error("Formato non accettato. Devi inserire un numero da 1 a 5"); - Assert.fail("Formato non accettato. Devi inserire un numero da 1 a 5"); + Assertions.fail("Formato non accettato. Devi inserire un numero da 1 a 5"); } destinatarioPASection.inserimentoMultiDestinatario(this.personeFisiche, nPersoneFisicheInt); @@ -690,7 +691,7 @@ public void nellaSectionDestinatarioSiCercaDiAggiungereIlSestoDestinatario() { logger.info("Non si riesce ad aggiungere il sesto destinatario"); } else { logger.error("Si riesce ad aggiungere il sesto destinatario"); - Assert.fail("Si riesce ad aggiungere il sesto destinatario"); + Assertions.fail("Si riesce ad aggiungere il sesto destinatario"); } } @@ -733,7 +734,7 @@ public void siVerificaCheLaNotificaSiaNelloStato() { } if (!notificaTrovata) { logger.error("La notifica non è stata trovata dopo 1m40s"); - Assert.fail("La notifica non è stata trovata dopo 1m40s"); + Assertions.fail("La notifica non è stata trovata dopo 1m40s"); } } @@ -783,7 +784,7 @@ public void verificaDelloStatoDellaNotificaInviataTramitePecCome(String statoNot } logger.error("Il server ha impiegato troppo tempo nel generare la notifica"); - Assert.fail("Il server ha impiegato troppo tempo nel generare la notifica"); + Assertions.fail("Il server ha impiegato troppo tempo nel generare la notifica"); } @@ -821,7 +822,7 @@ public void nellaSectionInformazioniPreliminariSiVisualizzaUnMessaggioDiErrore() logger.info("Si visualizza correttamente il messaggio di errore"); } else { logger.error("Non si visualizza correttamente il messaggio di errore"); - Assert.fail("Non si visualizza correttamente il messaggio di errore"); + Assertions.fail("Non si visualizza correttamente il messaggio di errore"); } } @@ -892,10 +893,10 @@ public void nellaSectionDestinatarioInserireIDatiErratiDallaPersonaGiuridica(Str destinatarioPASection.checkBoxAggiungiDomicilio(); destinatarioPASection.insertDomicilioDigitaleErrato(personaGiuridicaErrore1.get("emailPec").toString()); - Assert.assertEquals("l'errore attuale 'Indirizzo PEC non valido' è diverso di :" + destinatarioPASection.getDomicilioDigitaleError(), "Indirizzo PEC non valido", destinatarioPASection.getDomicilioDigitaleError()); + Assertions.assertEquals("l'errore attuale 'Indirizzo PEC non valido' è diverso di :" + destinatarioPASection.getDomicilioDigitaleError(), "Indirizzo PEC non valido", destinatarioPASection.getDomicilioDigitaleError()); destinatarioPASection.insertCodiceFiscaleErrato(personaGiuridicaErrore1.get("codiceFiscale").toString()); - Assert.assertEquals("l'errore attuale 'Il valore inserito non è corretto' è diverso di :" + destinatarioPASection.getCodiceFiscaleError(), "Il valore inserito non è corretto", destinatarioPASection.getCodiceFiscaleError()); + Assertions.assertEquals("l'errore attuale 'Il valore inserito non è corretto' è diverso di :" + destinatarioPASection.getCodiceFiscaleError(), "Il valore inserito non è corretto", destinatarioPASection.getCodiceFiscaleError()); } @@ -916,7 +917,7 @@ public void siVisualizzaCorrettamenteIlMessaggioDiErroreEstensioneFileNonSupport logger.info("Si visualizza correttamente il messaggio di errore: Estensione file non supportata. Riprovare con un altro file."); } else { logger.error("Non si visualizza correttamente il messaggio di errore: Estensione file non supportata. Riprovare con un altro file."); - Assert.fail("Non si visualizza correttamente il messaggio di errore: Estensione file non supportata. Riprovare con un altro file."); + Assertions.fail("Non si visualizza correttamente il messaggio di errore: Estensione file non supportata. Riprovare con un altro file."); } } @@ -936,11 +937,11 @@ public void nellaSectionDestinatarioInserireIDatiDelDestinatariPersoneGiuridiche nDestinatariInt = Integer.parseInt(nDestinatari) - 1; if (nDestinatariInt > 4 || nDestinatariInt == 0) { logger.error("Devi inserire un nummero da 1 a 5"); - Assert.fail("Devi inserire un nummero da 1 a 5"); + Assertions.fail("Devi inserire un nummero da 1 a 5"); } } else { logger.error("Formato non accettato. Devi inserire un numero da 1 a 5"); - Assert.fail("Formato non accettato. Devi inserire un numero da 1 a 5"); + Assertions.fail("Formato non accettato. Devi inserire un numero da 1 a 5"); } destinatarioPASection.inserimentoMultiDestinatarioPG(personeGiuridiche, nDestinatariInt); @@ -1000,7 +1001,7 @@ public void verificaDelloStatoDellaNotificaPersonaGiuridicaComeDepositata(String } if (codiceIUN.equals("")) { logger.error("Notifica non trovata il sistema ha impiegato troppo tempo a rispondere"); - Assert.fail("Notifica non trovata il sistema ha impiegato troppo tempo a rispondere"); + Assertions.fail("Notifica non trovata il sistema ha impiegato troppo tempo a rispondere"); } } @@ -1093,7 +1094,7 @@ public void siVerificaCheIlFormDiInserimentoManualeDellaNotificaEVuoto() { logger.info("Il form di inserimento manuale della notifica è vuoto"); } else { logger.error("Il form di inserimento manuale della notifica non è vuoto"); - Assert.fail("Il form di inserimento manuale della notifica non è vuoto"); + Assertions.fail("Il form di inserimento manuale della notifica non è vuoto"); } } @@ -1108,7 +1109,7 @@ public void tuttiICampiPrecedentementeInseritiRisultanoAncoraPopolati() { logger.info("I campi sezione destinatario sono popolati"); } else { logger.error("I campi sezione destinatario non sono popolati"); - Assert.fail("I campi sezione destinatario non sono popolati"); + Assertions.fail("I campi sezione destinatario non sono popolati"); } } @@ -1143,7 +1144,7 @@ public void nellaSectionAllegatiSiCaricaUnAtto() { logger.info("File notifica.pdf caricato correttamente"); } else { logger.error("File notifica.pdf non caricato"); - Assert.fail("File notifica.pdf non caricato"); + Assertions.fail("File notifica.pdf non caricato"); } allegatiPASection.inserimentoNomeAllegato(datiNotificaMap.get("descrizione")); } @@ -1160,7 +1161,7 @@ public void siCaricaNuoviDocumenti() { logger.info("File notifica.pdf caricato correttamente"); } else { logger.error("File notifica.pdf non caricato"); - Assert.fail("File notifica.pdf non caricato"); + Assertions.fail("File notifica.pdf non caricato"); } allegatiPASection.inserimentoNomeSecondoAllegato(datiNotificaMap.get("descrizione")); } @@ -1177,7 +1178,7 @@ public void siCaricaTerzoDocumento() { logger.info("File notifica.pdf caricato correttamente"); } else { logger.error("File notifica.pdf non caricato"); - Assert.fail("File notifica.pdf non caricato"); + Assertions.fail("File notifica.pdf non caricato"); } allegatiPASection.inserimentoNomeTerzoAllegato(datiNotificaMap.get("descrizione")); } @@ -1267,7 +1268,7 @@ public void inParalleloSiEffettuaLAccessoAlPortaleDestinatario(String portal) { break; default: logger.error("Tipologia di portale non specificato o errato!"); - Assert.fail("Tipologia di portale non specificato o errato!"); + Assertions.fail("Tipologia di portale non specificato o errato!"); } WebTool.waitTime(5); } @@ -1435,7 +1436,7 @@ public void siControllaLaPresenzaDiCodiceAvviso(){ @And("Si controlla non sia presente l'avviso PagoPa mittente") public void siControllaNonSiaPresenteLAvvisoPagoPaMittente() { logger.info("Si controlla la presenza del box per il pagamento della notifica"); - Assert.assertFalse( "Avviso PagoPA è trovato",dettaglioNotificaMittenteSection.checkAvvisoPagoPaVisibile()); + Assertions.assertFalse(dettaglioNotificaMittenteSection.checkAvvisoPagoPaVisibile(), "Avviso PagoPA è trovato"); logger.info("Avviso PagoPA non è trovato"); } @@ -1515,7 +1516,7 @@ protected EsitoNotifica siVerificaEsitoNotifica(String dpFile) { String notificationRequestId = getNotificationRequestId(urlNotificationRequest); if (notificationRequestId == null) { logger.error("NotificationRequestId non trovato, il codice della risposta al url " + urlNotificationRequest + " è diverso di 202 "); - Assert.fail("NotificationRequestId non trovato, il codice della risposta al url " + urlNotificationRequest + " è diverso di 202 "); + Assertions.fail("NotificationRequestId non trovato, il codice della risposta al url " + urlNotificationRequest + " è diverso di 202 "); } accettazioneRichiestaNotifica.setNotificationRequestId(notificationRequestId); accettazioneRichiestaNotifica.setRichiestaNotificaEndPoint(urlRichiestaNotifica); @@ -1532,7 +1533,7 @@ protected EsitoNotifica siVerificaEsitoNotifica(String dpFile) { } else { if (accettazioneRichiestaNotifica.getResponseCode() != 200) { logger.error("la risposta dell'accettazione della notifica " + notificationRequestId + " è: " + accettazioneRichiestaNotifica.getResponseCode()); - Assert.fail("la risposta dell'accettazione della notifica " + notificationRequestId + " è: " + accettazioneRichiestaNotifica.getResponseCode()); + Assertions.fail("la risposta dell'accettazione della notifica " + notificationRequestId + " è: " + accettazioneRichiestaNotifica.getResponseCode()); } } } while (statusNotifica.equals("WAITING")); @@ -1553,7 +1554,7 @@ public void siVerificaCheLaNotificaVieneCreataCorrettamente(String dpFile) { } } else { logger.error("La notifica " + esitoNotifica.notificationRequestId + " è stata rifiuta: " + esitoNotifica.accettazioneRichiestaNotifica.getResponseReasonPhrase()); - Assert.fail("La notifica " + esitoNotifica.notificationRequestId + " è stata rifiuta: " + esitoNotifica.accettazioneRichiestaNotifica.getResponseReasonPhrase()); + Assertions.fail("La notifica " + esitoNotifica.notificationRequestId + " è stata rifiuta: " + esitoNotifica.accettazioneRichiestaNotifica.getResponseReasonPhrase()); } } @@ -1565,7 +1566,7 @@ public void siVerificaCheLaNotificaVieneRifiutata(String dpFile) { } else { logger.error("La notifica " + esitoNotifica.notificationRequestId + " è stata accettata: " + esitoNotifica.statusNotifica); logger.error(esitoNotifica.accettazioneRichiestaNotifica.getResponseBody()); - Assert.fail("La notifica " + esitoNotifica.notificationRequestId + " è stata accettata: "); + Assertions.fail("La notifica " + esitoNotifica.notificationRequestId + " è stata accettata: "); } } @@ -1648,7 +1649,7 @@ public void siVerificaCheLaNotificaSiaNelloStatoConsegnata() { } if (!notificaTrovata) { logger.error("La notifica non è stata trovata dopo 1m40s"); - Assert.fail("La notifica non è stata trovata dopo 1m40s"); + Assertions.fail("La notifica non è stata trovata dopo 1m40s"); } } @@ -1664,14 +1665,14 @@ public void inserimentoCodiceFiscaleSbagliato(String codiceFiscaleSbagliato) { public void nellaPiattaformaNotificheSiControllaEsistenzaMessaggioErroreCF() { logger.info("si controlla che si visualizza il messaggio di errore ‘Inserisci il codice per intero’ "); - Assert.assertTrue("Nessun errore visualizzato insirendo CF sbagliato", piattaformaNotifichePage.controlloEsistenzaMessagioErroreCF()); + Assertions.assertTrue(piattaformaNotifichePage.controlloEsistenzaMessagioErroreCF(), "Nessun errore visualizzato insirendo CF sbagliato"); } @And("Nella pagina Piattaforma Notifiche si controlla che il bottone Filtra sia attivo") public void nellaPaginaPiattaformaNotificheSiControllacheFiltraSiaDisattivo() { logger.info("Si controlla che il bottone Filtra sia attivo"); - Assert.assertFalse("il bottone Filtra è disabilitato", piattaformaNotifichePage.verificaBottoneFiltraDisabilitato()); + Assertions.assertFalse(piattaformaNotifichePage.verificaBottoneFiltraDisabilitato(),"il bottone Filtra è disabilitato"); } @And("Nella pagina Piattaforma Notifiche inserire il codice IUN sbagliato {string}") @@ -1686,7 +1687,7 @@ public void nellaPaginaPiattaformaNotificheInserireIUNsbagliato(String codiceIUN public void nellaPaginaPiattaformaNotificheSiVisualizzaIlMessaggioDiErroreIUN() { logger.info("si controlla esistenza messaggio di errore codice IUN"); - Assert.assertTrue("Nessun errore visualizzato insirendo IUN sbagliato", piattaformaNotifichePage.controlloEsistenzaMessagioErroreIUN()); + Assertions.assertTrue(piattaformaNotifichePage.controlloEsistenzaMessagioErroreIUN(), "Nessun errore visualizzato insirendo IUN sbagliato"); logger.info("Messaggio di errore 'Inserisci un codice IUN valido' trovato"); } @@ -1697,7 +1698,7 @@ public void nellaSectionSiVisualizzaCorrettamenteICampiVuoti() { if (piattaformaNotifichePage.verificaCampiPreliminariNotificaVuoti()) { logger.info("I campi sono vuoti"); } else { - Assert.fail("I campi non sono vuoti"); + Assertions.fail("I campi non sono vuoti"); } } @@ -1759,7 +1760,7 @@ public void creazioneNotificaCompleta(Map datiNotificaMap) { logger.info("File notifica.pdf caricato correttamente"); } else { logger.error("File notifica.pdf non caricato"); - Assert.fail("File notifica.pdf non caricato"); + Assertions.fail("File notifica.pdf non caricato"); } allegatiPASection.inserimentoNomeAllegato(datiNotificaMap.get("nomeDocumentoNotifica")); nellaSectionAllegatiCliccareSulBottoneInvia(); diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/RicercaNotificheMittentePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/RicercaNotificheMittentePagoPATest.java index 0d4b2cc22..8a72bb10c 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/RicercaNotificheMittentePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/RicercaNotificheMittentePagoPATest.java @@ -8,7 +8,8 @@ import it.pn.frontend.e2e.section.mittente.DestinatarioPASection; import it.pn.frontend.e2e.section.mittente.HeaderPASection; import it.pn.frontend.e2e.utility.DataPopulation; -import org.junit.Assert; + +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.WebDriver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -67,7 +68,7 @@ public void siVisualizzaBoxPagamento() { logger.info("Si visualizza correttamente box di pagamento"); } else { logger.error("Non si visualizza correttamente box di pagamento"); - Assert.fail("Non si visualizza correttamente box di pagamento"); + Assertions.fail("Non si visualizza correttamente box di pagamento"); } } @@ -78,7 +79,7 @@ public void siVisulizzaIlMessagioAnnullato() { logger.info("Si visualizza correttamente il messaggio notifica annulata"); } else { logger.error("Non si visualizza correttamente il messaggio notifica annulata"); - Assert.fail("Non si visualizza correttamente il messaggio notifica annulata"); + Assertions.fail("Non si visualizza correttamente il messaggio notifica annulata"); } } @@ -93,7 +94,7 @@ public void siVerificaCheIlBottoneFiltraSiaDisabilitato() { logger.info("Il bottone Filtra è disabilitato"); } else { logger.error("Il bottone Filtra è abilitato"); - Assert.fail("Il bottone Filtra è abilitato"); + Assertions.fail("Il bottone Filtra è abilitato"); } } @@ -121,7 +122,7 @@ public void nellaPaginaPiattaformaNotificheVengoRestituiteTutteLeNotificheConIlC } else { logger.error("Codici fiscali non presenti o non uguali a quello selezionato " + codiceFiscale); - Assert.fail("Codici fiscali non presenti o non uguali a quello selezionato " + codiceFiscale); + Assertions.fail("Codici fiscali non presenti o non uguali a quello selezionato " + codiceFiscale); } } @@ -168,7 +169,7 @@ public void nellaPaginaPiattaformaNotificheVengoRestituiteTutteLeNotificheConIlC } else { logger.error("Notifica con codice IUN: " + codiceIUNInserito + " NON trovata"); - Assert.fail("Notifica con codice IUN: " + codiceIUNInserito + " NON trovata"); + Assertions.fail("Notifica con codice IUN: " + codiceIUNInserito + " NON trovata"); } } @@ -181,11 +182,11 @@ public void nellaPaginaPiattaformaNotificheInserireUnaDataDaDAAA(String dataDA, PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(this.driver); if (!piattaformaNotifichePage.controlloDateInserite(dataDA)) { logger.error("Formato della data DA sbagliato. Deve essere dd/MM/yyyy"); - Assert.fail("Formato della data DA sbagliato. Deve essere dd/MM/yyyy"); + Assertions.fail("Formato della data DA sbagliato. Deve essere dd/MM/yyyy"); } if (!piattaformaNotifichePage.controlloDateInserite(dataA)) { logger.error("Formato della data A sbagliato. Deve essere dd/MM/yyyy"); - Assert.fail("Formato della data A sbagliato. Deve essere dd/MM/yyyy"); + Assertions.fail("Formato della data A sbagliato. Deve essere dd/MM/yyyy"); } piattaformaNotifichePage.inserimentoArcoTemporale(dataDA, dataA); } @@ -198,11 +199,11 @@ public void nellaPaginaPiattaformaNotificheInserireUnaDataDaDAAAErrata(String da PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(this.driver); if (!piattaformaNotifichePage.controlloDateInserite(dataDA)) { logger.error("Formato della data DA sbagliato. Deve essere dd/MM/yyyy"); - Assert.fail("Formato della data DA sbagliato. Deve essere dd/MM/yyyy"); + Assertions.fail("Formato della data DA sbagliato. Deve essere dd/MM/yyyy"); } if (!piattaformaNotifichePage.controlloDateInserite(dataA)) { logger.error("Formato della data A sbagliato. Deve essere dd/MM/yyyy"); - Assert.fail("Formato della data A sbagliato. Deve essere dd/MM/yyyy"); + Assertions.fail("Formato della data A sbagliato. Deve essere dd/MM/yyyy"); } dataFineErrata = piattaformaNotifichePage.inserimentoArcoTemporaleErrato(dataDA, dataA); } @@ -211,7 +212,7 @@ public void nellaPaginaPiattaformaNotificheInserireUnaDataDaDAAAErrata(String da public void verificaArcoTemporaleSelezionato() { logger.info("Si controlla l'arco temporale che sia errato su cui effettuare la ricerca"); PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(this.driver); - Assert.assertFalse(dataFineErrata); + Assertions.assertFalse(dataFineErrata); } @@ -230,7 +231,7 @@ public void nellaPaginaPiattaformaNotificheVengoRestituiteTutteLeNotificheConLaD logger.info("Sono presenti risultati per il filtro data"); } else { logger.error("Le date delle notifiche NON sono uguali a quelle selezionate"); - Assert.fail("Le date delle notifiche NON sono uguali a quelle selezionate"); + Assertions.fail("Le date delle notifiche NON sono uguali a quelle selezionate"); } } @@ -250,7 +251,7 @@ public void nellaPaginaPiattaformaNotificheSelezionareUnoStatoNotificaStato(Stri case "DESTINATARIO IRREPERIBILE" -> statoInserito = "UNREACHABLE"; default -> { logger.error("Stato notifica inserito non valido"); - Assert.fail("Stato notifica inserito non valido"); + Assertions.fail("Stato notifica inserito non valido"); } } @@ -274,7 +275,7 @@ public void nellaPaginaPiattaformaNotificheVengoRestituiteTutteLeNotificheConLoS logger.info("Gli stati della notifica sono uguali a quelli selezionati"); } else { logger.error("Gli stati della notifica NON sono uguali a quelli selezionati"); - Assert.fail("Gli stati della notifica NON sono uguali a quelli selezionati"); + Assertions.fail("Gli stati della notifica NON sono uguali a quelli selezionati"); } @@ -334,7 +335,7 @@ public void ilSistemaRestituisceNotificheConCodiceFiscaleEArcoTemporaleUgualeAQu } else { logger.error("Il codice fiscale della notifica NON è uguale a quello selezionato"); - Assert.fail("Il codice fiscale notifica NON è uguale a quello selezionato"); + Assertions.fail("Il codice fiscale notifica NON è uguale a quello selezionato"); } int results = piattaformaNotifichePage.controlloNumeroRisultatiDate(); @@ -342,7 +343,7 @@ public void ilSistemaRestituisceNotificheConCodiceFiscaleEArcoTemporaleUgualeAQu logger.info("Sono presenti risultati per il filtro data"); } else { logger.error("Le date delle notifiche NON sono uguali a quelle selezionate"); - Assert.fail("Le date delle notifiche NON sono uguali a quelle selezionate"); + Assertions.fail("Le date delle notifiche NON sono uguali a quelle selezionate"); } } @@ -373,7 +374,7 @@ public void ilSistemaRestituisceNotificheConDataEStatoUgualeAQuelliInseritoStato } else { logger.error("Gli stati della notifica NON sono uguali a quelli selezionati"); - Assert.fail("Gli stati della notifica NON sono uguali a quelli selezionati"); + Assertions.fail("Gli stati della notifica NON sono uguali a quelli selezionati"); } int results = piattaformaNotifichePage.controlloNumeroRisultatiDate(); @@ -381,7 +382,7 @@ public void ilSistemaRestituisceNotificheConDataEStatoUgualeAQuelliInseritoStato logger.info("Sono presenti risultati per il filtro data"); } else { logger.error("Le date delle notifiche NON sono uguali a quelle selezionate"); - Assert.fail("Le date delle notifiche NON sono uguali a quelle selezionate"); + Assertions.fail("Le date delle notifiche NON sono uguali a quelle selezionate"); } } @@ -399,7 +400,7 @@ public void ilSistemaRestituisceNotificheConArcoTemporaleEStatoUgualeAQuelliInse logger.info("Sono presenti risultati per il filtro data"); } else { logger.error("Le date delle notifiche NON sono uguali a quelle selezionate"); - Assert.fail("Le date delle notifiche NON sono uguali a quelle selezionate"); + Assertions.fail("Le date delle notifiche NON sono uguali a quelle selezionate"); } int numeroStatoNotificha = piattaformaNotifichePage.getListStato(statoNotifica); @@ -408,7 +409,7 @@ public void ilSistemaRestituisceNotificheConArcoTemporaleEStatoUgualeAQuelliInse } else { logger.error("Gli stati della notifica NON sono uguali a quelli selezionati"); - Assert.fail("Gli stati della notifica NON sono uguali a quelli selezionati"); + Assertions.fail("Gli stati della notifica NON sono uguali a quelli selezionati"); } } @@ -419,7 +420,7 @@ public void ilSistemaNonRestituisceNotifiche() { logger.info("Il filtro non ha nessun risultato"); } else { logger.error("Il filtro ha portate qualche risultato"); - Assert.fail("Il filtro ha portate qualche risultato"); + Assertions.fail("Il filtro ha portate qualche risultato"); } } @@ -444,7 +445,7 @@ public void ilSistemaRestituisceNotificheConCodiceFiscaleEDataUgualeAQuelliInser } else { logger.error("Il codice fiscale della notifica NON è uguale a quello selezionato"); - Assert.fail("Il codice fiscale notifica NON è uguale a quello selezionato"); + Assertions.fail("Il codice fiscale notifica NON è uguale a quello selezionato"); } int results = piattaformaNotifichePage.controlloNumeroRisultatiDate(); @@ -452,7 +453,7 @@ public void ilSistemaRestituisceNotificheConCodiceFiscaleEDataUgualeAQuelliInser logger.info("Sono presenti risultati per il filtro data"); } else { logger.error("Le date delle notifiche NON sono uguali a quelle selezionate"); - Assert.fail("Le date delle notifiche NON sono uguali a quelle selezionate"); + Assertions.fail("Le date delle notifiche NON sono uguali a quelle selezionate"); } } @@ -477,7 +478,7 @@ public void ilSistemaRestituisceNotificheConCodiceFiscaleEStatoUgualeAQuelliInse } else { logger.error("Il codice fiscale della notifica NON è uguale a quello selezionato"); - Assert.fail("Il codice fiscale notifica NON è uguale a quello selezionato"); + Assertions.fail("Il codice fiscale notifica NON è uguale a quello selezionato"); } int numeroStatoNotificha = piattaformaNotifichePage.getListStato(statoNotifica); @@ -486,7 +487,7 @@ public void ilSistemaRestituisceNotificheConCodiceFiscaleEStatoUgualeAQuelliInse } else { logger.error("Gli stati della notifica NON sono uguali a quelli selezionati"); - Assert.fail("Gli stati della notifica NON sono uguali a quelli selezionati"); + Assertions.fail("Gli stati della notifica NON sono uguali a quelli selezionati"); } } @@ -505,7 +506,7 @@ public void nellaPaginaPiattaformaNotificheSelezionareLoStatoNotifica(String sta case "DESTINATARIO IRREPERIBILE" -> statoInserito = "UNREACHABLE"; default -> { logger.error("Stato notifica inserito non valido"); - Assert.fail("Stato notifica inserito non valido"); + Assertions.fail("Stato notifica inserito non valido"); } } piattaformaNotifichePage.selezionareStatoNotifica(statoInserito); @@ -524,7 +525,7 @@ public void siVerificaCheICampiDellaRicercaDelleDateSianoErrate() { logger.info("Le date inserite sono errate"); } else { logger.error("Le date inserite sono corrette"); - Assert.fail("Le date inserite sono corrette"); + Assertions.fail("Le date inserite sono corrette"); } } @@ -535,7 +536,7 @@ public void siVerificaCheICampiDellaRicercaDelleDateSianoErrate() { logger.info("Campo stato notifica trovato"); } else { logger.error("Campo stato notifica NON trovato"); - Assert.fail("Campo stato notifica NON trovato"); + Assertions.fail("Campo stato notifica NON trovato"); } } diff --git a/src/test/resources/junit-platform.properties b/src/test/resources/junit-platform.properties new file mode 100644 index 000000000..8fa486d2b --- /dev/null +++ b/src/test/resources/junit-platform.properties @@ -0,0 +1,10 @@ +cucumber.execution.parallel.enabled=true +cucumber.execution.parallel.config.strategy=fixed +#One for each feature file +#cucumber.execution.parallel.config.fixed.parallelism=39 +cucumber.execution.parallel.config.fixed.parallelism=2000 +cucumber.execution.execution-mode.feature=same_thread + + +#cucumber.execution.exclusive-resources..read-write= + From af3f3902890db14286f779970b514263d0426d6f Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Thu, 10 Oct 2024 07:56:18 +0200 Subject: [PATCH 022/212] Refactor --- .../mittente/PiattaformaNotifichePage.java | 85 ++++++++++--------- 1 file changed, 44 insertions(+), 41 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java index 0ca7bc3af..a420d50af 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java @@ -7,10 +7,9 @@ import it.pn.frontend.e2e.model.singleton.NotificationSingleton; import it.pn.frontend.e2e.rest.RestNotification; import it.pn.frontend.e2e.utility.WebTool; -import org.junit.Assert; +import org.junit.jupiter.api.Assertions; import org.openqa.selenium.*; import org.openqa.selenium.NoSuchElementException; -import org.openqa.selenium.interactions.Actions; import org.openqa.selenium.support.FindBy; import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; @@ -117,7 +116,7 @@ public void waitLoadPiattaformaNotifichePAPage() { logger.info("Piattaforma Notifiche Page caricata"); } catch (TimeoutException e) { logger.error("Piattaforma Notifiche Page non caricata con errore : " + e.getMessage()); - Assert.fail("Piattaforma Notifiche Page non caricata con errore : " + e.getMessage()); + Assertions.fail("Piattaforma Notifiche Page non caricata con errore : " + e.getMessage()); } } @@ -130,7 +129,7 @@ public void insertCodiceFiscale(String codiceFiscale) { logger.info("Codice Fiscale inserito correttamente"); } catch (TimeoutException e) { logger.error("Codice Fiscale Non inserito con errore: " + e.getMessage()); - Assert.fail("Codice Fiscale Non inserito con errore: " + e.getMessage()); + Assertions.fail("Codice Fiscale Non inserito con errore: " + e.getMessage()); } } @@ -160,7 +159,7 @@ public int getListaCf(String cfInserito) { return this.elements(cfListBy).size(); } catch (TimeoutException | NoSuchElementException e) { logger.error("Codici fiscali non trovati " + e.getMessage()); - Assert.fail("Codici fiscali non trovati " + e.getMessage()); + Assertions.fail("Codici fiscali non trovati " + e.getMessage()); return 0; } @@ -188,7 +187,7 @@ public boolean verificaEsistenzaEPassaggioPagina() { } public void inserimentoCodiceIUN(String codiceIUN) { - + WebTool.waitTime(5); codiceIUNTextField = driver.findElement(By.id("iunMatch")); getWebDriverWait(10).withMessage("Il campo per l'inserimento del codice IUN non è visibile").until(ExpectedConditions.visibilityOf(codiceIUNTextField)); @@ -306,6 +305,8 @@ public void inserimentoArcoTemporale(String da, String a) { WebElement previousMonthAButton = driver.findElement(By.xpath("//div[contains(@class, 'MuiDateCalendar-root')]//button[@title='Previous month']")); + previousMonthAButton = getWebDriverWait(10).until(ExpectedConditions.elementToBeClickable(previousMonthAButton)); + int clickA = 0; WebElement monthAToSelect = null; while (clickA < 36) { @@ -457,7 +458,7 @@ public void selezionareStatoNotifica(String statoInserito) { logger.info("Stato notifica selezionato correttamente"); } catch (TimeoutException e) { logger.error("Stato notifica NON trovata con errore: " + e.getMessage()); - Assert.fail("Stato notifica NON trovata con errore: " + e.getMessage()); + Assertions.fail("Stato notifica NON trovata con errore: " + e.getMessage()); } } @@ -501,6 +502,8 @@ public void selezionaNotifica120Giorni() { int index = calendar.get(Calendar.HOUR_OF_DAY); logger.info("index NOTIFICHE : " + index); + logger.info("Scenario " +Hooks.getScenario()); + if (notifiche!= null) { logger.info("ELENCO NOTIFICHE : " + notifiche.size()); if (notifiche.size() >= index) { @@ -511,13 +514,13 @@ public void selezionaNotifica120Giorni() { } }else { logger.error("Non ci sono notifiche da selezionare nel arco temporale settato"); - Assert.fail("Non ci sono notifiche da selezionare nel arco temporale settato"); + Assertions.fail("Non ci sono notifiche da selezionare nel arco temporale settato"); } // List notifiche = this.elements(notificaBy); // notifiche.get(0).click(); } catch (TimeoutException e) { logger.error("Notifica non trovata con errore: " + e.getMessage()); - Assert.fail("Notifica non trovata con errore: " + e.getMessage()); + Assertions.fail("Notifica non trovata con errore: " + e.getMessage()); } } @@ -542,7 +545,7 @@ public void selezionaPrimaNotifica() { notifiche.get(0).click(); } catch (TimeoutException e) { logger.error("Notifica non trovata con errore: " + e.getMessage()); - Assert.fail("Notifica non trovata con errore: " + e.getMessage()); + Assertions.fail("Notifica non trovata con errore: " + e.getMessage()); } } @@ -685,7 +688,7 @@ public void siVisualizzaCorrettamenteIlCFField() { logger.info("Il campo di codice fiscale si visualizza correttamente"); } catch (TimeoutException e) { logger.error("Il campo di codice fiscale NON si visualizza correttamente con errore : " + e.getMessage()); - Assert.fail("Il campo di codice fiscale NON si visualizza correttamente : " + e.getMessage()); + Assertions.fail("Il campo di codice fiscale NON si visualizza correttamente : " + e.getMessage()); } } @@ -696,7 +699,7 @@ public void siVisualizzaCorrettamenteIlCodiceIUNField() { logger.info("Il campo di codice iun si visualizza correttamente"); } catch (TimeoutException e) { logger.error("Il campo di codice iun NON si visualizza correttamente con errore : " + e.getMessage()); - Assert.fail("Il campo di codice iun NON si visualizza correttamente : " + e.getMessage()); + Assertions.fail("Il campo di codice iun NON si visualizza correttamente : " + e.getMessage()); } } @@ -707,7 +710,7 @@ public void siVisualizzaCorrettamenteLoStatoField() { logger.info("Il campo dello stato si visualizza correttamente"); } catch (TimeoutException e) { logger.error("Il campo dello stato NON si visualizza correttamente con errore : " + e.getMessage()); - Assert.fail("Il campo dello stato NON si visualizza correttamente : " + e.getMessage()); + Assertions.fail("Il campo dello stato NON si visualizza correttamente : " + e.getMessage()); } } @@ -718,7 +721,7 @@ public void siVisualizzaCorrettamenteLaDataInzioField() { logger.info("Il campo della data di inizio si visualizza correttamente"); } catch (TimeoutException e) { logger.error("Il campo della data di inizio NON si visualizza correttamente con errore : " + e.getMessage()); - Assert.fail("Il campo della data di inizio NON si visualizza correttamente : " + e.getMessage()); + Assertions.fail("Il campo della data di inizio NON si visualizza correttamente : " + e.getMessage()); } } @@ -729,7 +732,7 @@ public void siVisualizzaCorrettamenteLaDataFineField() { logger.info("Il campo della data di fine si visualizza correttamente"); } catch (TimeoutException e) { logger.error("Il campo della data di fine NON si visualizza correttamente con errore : " + e.getMessage()); - Assert.fail("Il campo della data di fine NON si visualizza correttamente : " + e.getMessage()); + Assertions.fail("Il campo della data di fine NON si visualizza correttamente : " + e.getMessage()); } } @@ -795,7 +798,7 @@ public void controlloOrdineNotifiche() { } if (dataSuccessiva.isBefore(dataPrecedente)) { logger.error("Le date non sono ordinate dal più recente"); - Assert.fail("Le date non sono ordinate dal più recente"); + Assertions.fail("Le date non sono ordinate dal più recente"); return; } } @@ -814,7 +817,7 @@ private List getListaDate() { } catch (TimeoutException e) { logger.error("Date NON trovate con errore: " + e.getMessage()); - Assert.fail("Date NON trovate con errore: " + e.getMessage()); + Assertions.fail("Date NON trovate con errore: " + e.getMessage()); return null; } } @@ -899,7 +902,7 @@ public void vuoiUscirePopUp() { logger.info("Si visualizza il pop up vuoi uscire"); } catch (TimeoutException e) { logger.error("Non si visualizza il pop up vuoi uscire con errore:" + e.getMessage()); - Assert.fail("Non si visualizza il pop up vuoi uscire con errore:" + e.getMessage()); + Assertions.fail("Non si visualizza il pop up vuoi uscire con errore:" + e.getMessage()); } } @@ -994,7 +997,7 @@ public void checkDefaultPagination() { logger.info("numero di default delle notifiche visualizzate corretto"); } else { logger.error("numero di default delle notifiche visualizzate non corretto"); - Assert.fail("numero di default delle notifiche visualizzate non corretto"); + Assertions.fail("numero di default delle notifiche visualizzate non corretto"); } } @@ -1029,7 +1032,7 @@ public boolean controlloEsistenzaStato() { return true; } catch (TimeoutException e) { logger.error("Stato notifica NON trovata con errore: " + e.getMessage()); - Assert.fail("Stato notifica NON trovata con errore: " + e.getMessage()); + Assertions.fail("Stato notifica NON trovata con errore: " + e.getMessage()); return false; } finally { this.element(By.id("menu-status")).click(); @@ -1058,7 +1061,7 @@ public void checkPaginaNotificheDelegante(String nomeDelegante) { logger.info("Pagina notifiche delegante caricata correttamente"); } catch (TimeoutException e) { logger.error("Pagina notifiche delegante non caricata con errore: " + e.getMessage()); - Assert.fail("Pagina notifiche delegante non caricata con errore: " + e.getMessage()); + Assertions.fail("Pagina notifiche delegante non caricata con errore: " + e.getMessage()); } } @@ -1083,13 +1086,13 @@ public void verificaNotificaCreata() { } } } - Assert.assertFalse("NotificationRequestId non trovato, il codice della risposta al url bff/v1/notifications/sent è diverso di 202 ", notificationRequestId.isEmpty()); + Assertions.assertFalse(notificationRequestId.isEmpty(),"NotificationRequestId non trovato, il codice della risposta al url bff/v1/notifications/sent è diverso di 202 "); LinkedTreeMap notificationData; String notificationStatus; String notificationIUN; int maximumRetry = 0; do { - Assert.assertTrue("La notifica risulta ancora in stato WAITING dopo 5 tentativi", maximumRetry <= 5); + Assertions.assertTrue( maximumRetry <= 5,"La notifica risulta ancora in stato WAITING dopo 5 tentativi"); notificationData = restNotification.getNotificationStatus(notificationRequestId); notificationStatus = notificationData.get("notificationRequestStatus").toString(); if (notificationStatus.equals("ACCEPTED")) { @@ -1144,7 +1147,7 @@ public void selezionaNotificaConStato(String statoNotifica) { } if (!testSuccess) { logger.error("La notifica non è passata allo stato " + statoNotifica); - Assert.fail("La notifica non è passata allo stato " + statoNotifica); + Assertions.fail("La notifica non è passata allo stato " + statoNotifica); } } @@ -1167,7 +1170,7 @@ public void pollingSuStatoNotificaPerCompletamento(String statoNotifica) { } if (!testSuccess) { logger.error("La notifica non è passata allo stato " + statoNotifica); - Assert.fail("La notifica non è passata allo stato " + statoNotifica); + Assertions.fail("La notifica non è passata allo stato " + statoNotifica); } } @@ -1218,7 +1221,7 @@ public void visualizzaTimelineTuttiDestinatari(Map destinatari) logger.info("Si visualizza gli eventi relativi a tutti i destinatari"); } else { logger.error("Non si visualizza gli eventi relativi a tutti i destinatari"); - Assert.fail("Non si visualizza gli eventi relativi a tutti i destinatari"); + Assertions.fail("Non si visualizza gli eventi relativi a tutti i destinatari"); } logger.info("Si visualizza correttamente la timeline relativi a tutti i destinatari"); @@ -1239,7 +1242,7 @@ public void visualizzaTimeline(String check) { logger.info("Si visualizza la timeline correttamente"); } else { logger.error("Non si visualizza la timeline correttamente"); - Assert.fail("Non si visualizza la timeline correttamente"); + Assertions.fail("Non si visualizza la timeline correttamente"); } } @@ -1251,7 +1254,7 @@ public void verificaTentativoSuccessivo(String check) { logger.info("Si visualizza la timeline correttamente"); } else { logger.error("Non si visualizza la timeline correttamente"); - Assert.fail("Non si visualizza la timeline correttamente"); + Assertions.fail("Non si visualizza la timeline correttamente"); } } @@ -1272,7 +1275,7 @@ public void verificaDestinatariNonRaggiungibili(Map destinatari) logger.info("Entrambi destinatari non raggiungibili al primo tentativo"); } else { logger.error("Uno dei destinatari viene raggiunto al primo tentativo"); - Assert.fail("Uno dei destinatari viene raggiunto al primo tentativo"); + Assertions.fail("Uno dei destinatari viene raggiunto al primo tentativo"); } } @@ -1286,7 +1289,7 @@ public void checkAllegatoScaricabile(String descrizioneAllegato) { By linkAllegato = By.xpath("//button[contains(., '" + descrizioneAllegato + "') and @id='document-button']"); getWebDriverWait(10).withMessage("Non esiste il bottone per il download degli allegati, si procede con il test").until(ExpectedConditions.visibilityOfElementLocated(linkAllegato)); logger.error("Non è corretto che il bottone per il download dell'allegato sia visibile"); - Assert.fail("Non è corretto che il bottone per il download dell'allegato sia visibile"); + Assertions.fail("Non è corretto che il bottone per il download dell'allegato sia visibile"); } catch (TimeoutException e) { logger.info("Non è visibile il bottone per il download dell'allegato: " + e.getMessage()); } @@ -1334,10 +1337,10 @@ public void clickNotificaRicercata() { element(notitifcaRicercata).click(); } catch (TimeoutException e) { logger.error("Non si riesce a cliccare la notifica ricercata con errore: " + e.getMessage()); - Assert.fail("Non si riesce a cliccare la notifica ricercata con errore: " + e.getMessage()); + Assertions.fail("Non si riesce a cliccare la notifica ricercata con errore: " + e.getMessage()); } catch (InterruptedException e) { logger.error("Attesa per rendere cliccabile la notifica interrota con errore: " + e.getMessage()); - Assert.fail("Attesa per rendere cliccabile la notifica interrota con errore: " + e.getMessage()); + Assertions.fail("Attesa per rendere cliccabile la notifica interrota con errore: " + e.getMessage()); } } @@ -1350,7 +1353,7 @@ public void checkMessaggioErroreConCodice(int code) { logger.info("Si visualizza correttamente il messaggio di errore"); } else { logger.error("Non si visualizza il messaggio di errore"); - Assert.fail("Non si visualizza il messaggio di errore"); + Assertions.fail("Non si visualizza il messaggio di errore"); } } case 20 -> { @@ -1358,7 +1361,7 @@ public void checkMessaggioErroreConCodice(int code) { logger.info("Si visualizza correttamente il messaggio di errore"); } else { logger.error("Non si visualizza il messaggio di errore"); - Assert.fail("Non si visualizza il messaggio di errore"); + Assertions.fail("Non si visualizza il messaggio di errore"); } } case 21 -> { @@ -1366,7 +1369,7 @@ public void checkMessaggioErroreConCodice(int code) { logger.info("Si visualizza correttamente il messaggio di errore"); } else { logger.error("Non si visualizza il messaggio di errore"); - Assert.fail("Non si visualizza il messaggio di errore"); + Assertions.fail("Non si visualizza il messaggio di errore"); } } case 22 -> { @@ -1374,7 +1377,7 @@ public void checkMessaggioErroreConCodice(int code) { logger.info("Si visualizza correttamente il messaggio di errore"); } else { logger.error("Non si visualizza il messaggio di errore"); - Assert.fail("Non si visualizza il messaggio di errore"); + Assertions.fail("Non si visualizza il messaggio di errore"); } } case 23 -> { @@ -1382,7 +1385,7 @@ public void checkMessaggioErroreConCodice(int code) { logger.info("Si visualizza correttamente il messaggio di errore"); } else { logger.error("Non si visualizza il messaggio di errore"); - Assert.fail("Non si visualizza il messaggio di errore"); + Assertions.fail("Non si visualizza il messaggio di errore"); } } case 25 -> { @@ -1390,7 +1393,7 @@ public void checkMessaggioErroreConCodice(int code) { logger.info("Si visualizza correttamente il messaggio di errore"); } else { logger.error("Non si visualizza il messaggio di errore"); - Assert.fail("Non si visualizza il messaggio di errore"); + Assertions.fail("Non si visualizza il messaggio di errore"); } } case 30 -> { @@ -1398,7 +1401,7 @@ public void checkMessaggioErroreConCodice(int code) { logger.info("Si visualizza correttamente il messaggio di errore"); } else { logger.error("Non si visualizza il messaggio di errore"); - Assert.fail("Non si visualizza il messaggio di errore"); + Assertions.fail("Non si visualizza il messaggio di errore"); } } case 1001 -> { @@ -1406,7 +1409,7 @@ public void checkMessaggioErroreConCodice(int code) { logger.info("Si visualizza correttamente il messaggio di errore"); } else { logger.error("Non si visualizza il messaggio di errore"); - Assert.fail("Non si visualizza il messaggio di errore"); + Assertions.fail("Non si visualizza il messaggio di errore"); } } } @@ -1439,6 +1442,6 @@ public void checkBottoneAnnullaNotifica() { } catch (NoSuchElementException e) { isDisplayed = false; // Elemento non trovato } - Assert.assertFalse("Il bottone è visualizzabile", isDisplayed); + Assertions.assertFalse(isDisplayed,"Il bottone è visualizzabile"); } } \ No newline at end of file From ed38e42cb2e463dea8ac5745a6b41461c430f97e Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Thu, 10 Oct 2024 10:29:53 +0200 Subject: [PATCH 023/212] add wait --- .../personaFisica/AccediAPiattaformaNotifichePage.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java index 3e34d09e2..b4f6ed503 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java @@ -310,19 +310,19 @@ public void checkoutPagamento() throws InterruptedException { driver.switchTo().defaultContent(); WebTool.waitTime(5); - WebElement continuaBottone = driver.findElement(By.xpath("//button[@aria-label='Continue']") ); + WebElement continuaBottone = driver.findElement(By.xpath("//button[@aria-label='Continua']") ); getWebDriverWait(8).withMessage("Il bottone Continua non è cliccabile").until(ExpectedConditions.elementToBeClickable(continuaBottone)); continuaBottone.click(); - WebTool.waitTime(2); + WebTool.waitTime(5); logger.info("HTML.."+ driver.getPageSource()); //Select Nexi - WebElement modificaButton = driver.findElement(By.xpath("//button[@aria-label='Modify PSP']")); + WebElement modificaButton = driver.findElement(By.xpath("//button[@aria-label='Modifica dati carta']")); getWebDriverWait(5).withMessage("Il bottone modifica non è cliccabile").until(ExpectedConditions.elementToBeClickable(modificaButton)); modificaButton.click(); - WebTool.waitTime(2); + WebTool.waitTime(5); List nexiButton = driver.findElements(By.xpath("//div[contains(text(),'Nexi')]")); WebTool.waitTime(10); From 544b6ed55e71dbd9894c37a9e049e6d25a69e3ec Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Thu, 10 Oct 2024 10:31:44 +0200 Subject: [PATCH 024/212] modifify --- .../personaFisica/AccediAPiattaformaNotifichePage.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java index b4f6ed503..251b83717 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java @@ -310,7 +310,7 @@ public void checkoutPagamento() throws InterruptedException { driver.switchTo().defaultContent(); WebTool.waitTime(5); - WebElement continuaBottone = driver.findElement(By.xpath("//button[@aria-label='Continua']") ); + WebElement continuaBottone = driver.findElement(By.xpath("//button[@aria-label='Continue']") ); getWebDriverWait(8).withMessage("Il bottone Continua non è cliccabile").until(ExpectedConditions.elementToBeClickable(continuaBottone)); continuaBottone.click(); From 60c4a7b1d683bb178bf8cecbf7bad0011d8c7b20 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Thu, 10 Oct 2024 11:38:32 +0200 Subject: [PATCH 025/212] refactor --- pom.xml | 53 ++++++++----------- .../it/pn/frontend/e2e/listeners/Hooks.java | 2 +- .../AccettazioneRichiestaNotifica.java | 1 - .../e2e/api/mittente/SpidLoginMittente.java | 2 +- 4 files changed, 24 insertions(+), 34 deletions(-) diff --git a/pom.xml b/pom.xml index 9c5a76bc4..908871329 100644 --- a/pom.xml +++ b/pom.xml @@ -68,14 +68,7 @@ org.junit.jupiter junit-jupiter - test - - - - - org.junit.vintage - junit-vintage-engine - 5.10.0 + 5.9.1 test @@ -226,17 +219,17 @@ net.lingala.zip4j zip4j 2.11.5 + + + org.junit.jupiter + junit-jupiter-api + + org.junit.jupiter junit-jupiter-api - - org.testng - testng - 7.8.0 - compile - @@ -262,6 +255,19 @@ + + org.apache.maven.plugins + maven-surefire-plugin + 3.0.0-M7 + + + + cucumber.junit-platform.naming-strategy=long + + + plain + + maven-clean-plugin @@ -280,10 +286,7 @@ 17 - - maven-surefire-plugin - 2.22.1 - + maven-jar-plugin 3.0.2 @@ -316,19 +319,7 @@ 14 - - org.apache.maven.plugins - maven-surefire-plugin - 3.0.0-M7 - - - - cucumber.junit-platform.naming-strategy=long - - - plain - - + diff --git a/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java b/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java index f458ecd1c..5015d90f9 100644 --- a/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java +++ b/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java @@ -28,7 +28,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.slf4j.MDC; -import org.testng.annotations.BeforeTest; + import java.io.File; import java.io.IOException; diff --git a/src/test/java/it/pn/frontend/e2e/api/mittente/AccettazioneRichiestaNotifica.java b/src/test/java/it/pn/frontend/e2e/api/mittente/AccettazioneRichiestaNotifica.java index bbd42e463..c5e8ce983 100644 --- a/src/test/java/it/pn/frontend/e2e/api/mittente/AccettazioneRichiestaNotifica.java +++ b/src/test/java/it/pn/frontend/e2e/api/mittente/AccettazioneRichiestaNotifica.java @@ -14,7 +14,6 @@ import org.junit.jupiter.api.Assertions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.testng.asserts.Assertion; import java.io.IOException; import java.util.List; diff --git a/src/test/java/it/pn/frontend/e2e/api/mittente/SpidLoginMittente.java b/src/test/java/it/pn/frontend/e2e/api/mittente/SpidLoginMittente.java index b8ef11be4..cb78c3f6f 100644 --- a/src/test/java/it/pn/frontend/e2e/api/mittente/SpidLoginMittente.java +++ b/src/test/java/it/pn/frontend/e2e/api/mittente/SpidLoginMittente.java @@ -13,7 +13,7 @@ import org.junit.jupiter.api.Assertions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.testng.asserts.Assertion; + import java.io.IOException; From d0f811a97827012b54ef66289d72eefa44e120c0 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Thu, 10 Oct 2024 12:16:04 +0200 Subject: [PATCH 026/212] add wait --- .../personaFisica/AccediAPiattaformaNotifichePage.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java index 251b83717..fbc056cbb 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java @@ -314,7 +314,7 @@ public void checkoutPagamento() throws InterruptedException { getWebDriverWait(8).withMessage("Il bottone Continua non è cliccabile").until(ExpectedConditions.elementToBeClickable(continuaBottone)); continuaBottone.click(); - WebTool.waitTime(5); + WebTool.waitTime(10); logger.info("HTML.."+ driver.getPageSource()); //Select Nexi From 284f08831487c1342ac5ab6063fde1b23cf72fa9 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Thu, 10 Oct 2024 12:32:51 +0200 Subject: [PATCH 027/212] refactor --- .../personaFisica/AccediAPiattaformaNotifichePage.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java index fbc056cbb..cb4b13d99 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java @@ -318,7 +318,7 @@ public void checkoutPagamento() throws InterruptedException { logger.info("HTML.."+ driver.getPageSource()); //Select Nexi - WebElement modificaButton = driver.findElement(By.xpath("//button[@aria-label='Modifica dati carta']")); + WebElement modificaButton = driver.findElement(By.xpath("//button[@aria-label='Change card details']")); getWebDriverWait(5).withMessage("Il bottone modifica non è cliccabile").until(ExpectedConditions.elementToBeClickable(modificaButton)); modificaButton.click(); @@ -338,6 +338,7 @@ public void checkoutPagamento() throws InterruptedException { getWebDriverWait(5).withMessage("Il bottone Paga non è cliccabile").until(ExpectedConditions.elementToBeClickable(pagaButton)); pagaButton.click(); WebTool.waitTime(35); + logger.info("HTML1.."+ driver.getPageSource()); List chiudi = driver.findElements(By.xpath("//button[contains(text(),'Chiudi')]")); getWebDriverWait(10).withMessage("Il bottone Chiudi non è cliccabile").until(ExpectedConditions.elementToBeClickable(chiudi.get(0))); chiudi.get(0).click(); From 0a889061cca8014f527db824b59e06c560507e93 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Thu, 10 Oct 2024 12:33:36 +0200 Subject: [PATCH 028/212] add wait --- .../personaFisica/AccediAPiattaformaNotifichePage.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java index cb4b13d99..3d1b5b01b 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java @@ -332,7 +332,7 @@ public void checkoutPagamento() throws InterruptedException { }else { nexiButton.get(0).click(); } - WebTool.waitTime(2); + WebTool.waitTime(5); WebElement pagaButton = driver.findElement(By.xpath("//button[@id='paymentCheckPageButtonPay']")); getWebDriverWait(5).withMessage("Il bottone Paga non è cliccabile").until(ExpectedConditions.elementToBeClickable(pagaButton)); From 80192a38aa14afba7c418c252f836f762e1053f0 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Thu, 10 Oct 2024 13:16:11 +0200 Subject: [PATCH 029/212] add log --- .../personaFisica/AccediAPiattaformaNotifichePage.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java index 3d1b5b01b..4650cca3c 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java @@ -316,14 +316,14 @@ public void checkoutPagamento() throws InterruptedException { WebTool.waitTime(10); - logger.info("HTML.."+ driver.getPageSource()); + //Select Nexi WebElement modificaButton = driver.findElement(By.xpath("//button[@aria-label='Change card details']")); getWebDriverWait(5).withMessage("Il bottone modifica non è cliccabile").until(ExpectedConditions.elementToBeClickable(modificaButton)); modificaButton.click(); - WebTool.waitTime(5); - + WebTool.waitTime(10); + logger.info("HTML.."+ driver.getPageSource()); List nexiButton = driver.findElements(By.xpath("//div[contains(text(),'Nexi')]")); WebTool.waitTime(10); //getWebDriverWait(10).withMessage("Il bottone Nexi non è cliccabile").until(ExpectedConditions.elementToBeClickable(nexiButton)); From a1f1b8fc65cea7b402889844c70704aceb1dc153 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Thu, 10 Oct 2024 13:45:41 +0200 Subject: [PATCH 030/212] fix --- .../personaFisica/AccediAPiattaformaNotifichePage.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java index 4650cca3c..a00db8921 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java @@ -318,7 +318,7 @@ public void checkoutPagamento() throws InterruptedException { //Select Nexi - WebElement modificaButton = driver.findElement(By.xpath("//button[@aria-label='Change card details']")); + WebElement modificaButton = driver.findElement(By.xpath("//button[@aria-label='Change payment service provider (PSP)']")); getWebDriverWait(5).withMessage("Il bottone modifica non è cliccabile").until(ExpectedConditions.elementToBeClickable(modificaButton)); modificaButton.click(); From fe4ec5101fe7117136a16a1475c3813a76e136ad Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Thu, 10 Oct 2024 14:29:28 +0200 Subject: [PATCH 031/212] Add wait --- .../personaFisica/AccediAPiattaformaNotifichePage.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java index a00db8921..ccfff749c 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java @@ -337,7 +337,7 @@ public void checkoutPagamento() throws InterruptedException { WebElement pagaButton = driver.findElement(By.xpath("//button[@id='paymentCheckPageButtonPay']")); getWebDriverWait(5).withMessage("Il bottone Paga non è cliccabile").until(ExpectedConditions.elementToBeClickable(pagaButton)); pagaButton.click(); - WebTool.waitTime(35); + WebTool.waitTime(50); logger.info("HTML1.."+ driver.getPageSource()); List chiudi = driver.findElements(By.xpath("//button[contains(text(),'Chiudi')]")); getWebDriverWait(10).withMessage("Il bottone Chiudi non è cliccabile").until(ExpectedConditions.elementToBeClickable(chiudi.get(0))); From b5c35fb2a674f35dba3af6c7361e2e04194c2694 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Thu, 10 Oct 2024 14:44:39 +0200 Subject: [PATCH 032/212] fix --- .../personaFisica/AccediAPiattaformaNotifichePage.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java index ccfff749c..cce2791b3 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java @@ -339,7 +339,7 @@ public void checkoutPagamento() throws InterruptedException { pagaButton.click(); WebTool.waitTime(50); logger.info("HTML1.."+ driver.getPageSource()); - List chiudi = driver.findElements(By.xpath("//button[contains(text(),'Chiudi')]")); + List chiudi = driver.findElements(By.xpath("//button[contains(text(),'Close')]")); getWebDriverWait(10).withMessage("Il bottone Chiudi non è cliccabile").until(ExpectedConditions.elementToBeClickable(chiudi.get(0))); chiudi.get(0).click(); } From 1300586dd02d8f0e48dc78e854fd095351538e6d Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Thu, 10 Oct 2024 16:16:48 +0200 Subject: [PATCH 033/212] Remove log --- .../personaFisica/AccediAPiattaformaNotifichePage.java | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java index cce2791b3..cae685867 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java @@ -315,15 +315,13 @@ public void checkoutPagamento() throws InterruptedException { continuaBottone.click(); WebTool.waitTime(10); - - + //Select Nexi WebElement modificaButton = driver.findElement(By.xpath("//button[@aria-label='Change payment service provider (PSP)']")); getWebDriverWait(5).withMessage("Il bottone modifica non è cliccabile").until(ExpectedConditions.elementToBeClickable(modificaButton)); modificaButton.click(); WebTool.waitTime(10); - logger.info("HTML.."+ driver.getPageSource()); List nexiButton = driver.findElements(By.xpath("//div[contains(text(),'Nexi')]")); WebTool.waitTime(10); //getWebDriverWait(10).withMessage("Il bottone Nexi non è cliccabile").until(ExpectedConditions.elementToBeClickable(nexiButton)); @@ -338,7 +336,6 @@ public void checkoutPagamento() throws InterruptedException { getWebDriverWait(5).withMessage("Il bottone Paga non è cliccabile").until(ExpectedConditions.elementToBeClickable(pagaButton)); pagaButton.click(); WebTool.waitTime(50); - logger.info("HTML1.."+ driver.getPageSource()); List chiudi = driver.findElements(By.xpath("//button[contains(text(),'Close')]")); getWebDriverWait(10).withMessage("Il bottone Chiudi non è cliccabile").until(ExpectedConditions.elementToBeClickable(chiudi.get(0))); chiudi.get(0).click(); From b5d14212342a0642e238753579f88cec8706db81 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Thu, 10 Oct 2024 17:56:06 +0200 Subject: [PATCH 034/212] fix test --- .../personaFisica/AccediAPiattaformaNotifichePage.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java index cae685867..275c0abc1 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java @@ -315,14 +315,14 @@ public void checkoutPagamento() throws InterruptedException { continuaBottone.click(); WebTool.waitTime(10); - + //Select Nexi WebElement modificaButton = driver.findElement(By.xpath("//button[@aria-label='Change payment service provider (PSP)']")); getWebDriverWait(5).withMessage("Il bottone modifica non è cliccabile").until(ExpectedConditions.elementToBeClickable(modificaButton)); modificaButton.click(); WebTool.waitTime(10); - List nexiButton = driver.findElements(By.xpath("//div[contains(text(),'Nexi')]")); + List nexiButton = driver.findElements(By.xpath("//div[contains(text(),'Intesa Sanpaolo S.p.A')]")); WebTool.waitTime(10); //getWebDriverWait(10).withMessage("Il bottone Nexi non è cliccabile").until(ExpectedConditions.elementToBeClickable(nexiButton)); if (nexiButton.size()==2){ From cbdda45e9e5eb02949e99ad5b94845c955d899b1 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Thu, 10 Oct 2024 17:58:31 +0200 Subject: [PATCH 035/212] fix --- .../personaFisica/AccediAPiattaformaNotifichePage.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java index 275c0abc1..4ddf1c011 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java @@ -336,7 +336,7 @@ public void checkoutPagamento() throws InterruptedException { getWebDriverWait(5).withMessage("Il bottone Paga non è cliccabile").until(ExpectedConditions.elementToBeClickable(pagaButton)); pagaButton.click(); WebTool.waitTime(50); - List chiudi = driver.findElements(By.xpath("//button[contains(text(),'Close')]")); + List chiudi = driver.findElements(By.xpath("//button[contains(text(),'Continue')]")); getWebDriverWait(10).withMessage("Il bottone Chiudi non è cliccabile").until(ExpectedConditions.elementToBeClickable(chiudi.get(0))); chiudi.get(0).click(); } From 996833cec7b4f0433b8eb360ceb99022cfafbd2b Mon Sep 17 00:00:00 2001 From: AlimaZhansultan Date: Fri, 11 Oct 2024 09:22:38 +0200 Subject: [PATCH 036/212] +refactor --- pom.xml | 37 ++++++------------- .../it/pn/frontend/e2e/listeners/Hooks.java | 24 +++++++----- .../pn/frontend/e2e/run/RunCucumberTest.java | 10 +++-- 3 files changed, 32 insertions(+), 39 deletions(-) diff --git a/pom.xml b/pom.xml index 908871329..c39f8c404 100644 --- a/pom.xml +++ b/pom.xml @@ -57,6 +57,7 @@ cucumber-junit-platform-engine ${cucumber.version} test + @@ -219,17 +220,16 @@ net.lingala.zip4j zip4j 2.11.5 - - - org.junit.jupiter - junit-jupiter-api - - + org.junit.jupiter junit-jupiter-api + + io.cucumber + cucumber-java + @@ -258,14 +258,11 @@ org.apache.maven.plugins maven-surefire-plugin - 3.0.0-M7 + 3.0.0-M5 - - - cucumber.junit-platform.naming-strategy=long - - - plain + + **/*Test.java + @@ -310,16 +307,6 @@ - - - org.apache.maven.plugins - maven-compiler-plugin - - 14 - 14 - - - - + - + \ No newline at end of file diff --git a/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java b/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java index 5015d90f9..d6ef07f4f 100644 --- a/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java +++ b/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java @@ -1,4 +1,8 @@ package it.pn.frontend.e2e.listeners; +import io.cucumber.java.After; +import io.cucumber.java.Before; +import io.cucumber.java.Scenario; +import io.cucumber.java.en.And; import io.github.bonigarcia.wdm.WebDriverManager; import it.pn.frontend.e2e.model.address.DigitalAddress; import it.pn.frontend.e2e.model.singleton.MandateSingleton; @@ -178,12 +182,12 @@ protected void edge() { logger.info("edge driver started"); } - @BeforeEach - public void startScenario(TestInfo scenario) { - logger.info("-------------------------------------------START SCENARIO: " + scenario.getDisplayName() + "------------------------------------------------"); - this.scenario = scenario.getDisplayName(); + @Before + public void startScenario(Scenario scenario) { + logger.info("-------------------------------------------START SCENARIO: " + scenario.getName() + "------------------------------------------------"); + this.scenario = scenario.getName(); - Collection tags = scenario.getTags(); + Collection tags = scenario.getSourceTagNames(); for (String tag : tags) { if (tag.startsWith("@TA_")) { MDC.put("tag", tag); @@ -218,8 +222,8 @@ public void startScenario(TestInfo scenario) { cookieConfig.addCookie(); } - @AfterEach - public void endScenario(TestInfo scenario) { + @After + public void endScenario(Scenario scenario) { System.clearProperty("IUN"); @@ -257,7 +261,7 @@ public void endScenario(TestInfo scenario) { } catch (InterruptedException e) { throw new RuntimeException(e); } - logger.info("-------------------------------------------END SCENARIO: " + scenario.getDisplayName() + "------------------------------------------------"); + logger.info("-------------------------------------------END SCENARIO: " + scenario.getName() + "------------------------------------------------"); } /** @@ -308,8 +312,8 @@ public void clearDirectory() { * P.S: This will work only if there are any contacts available */ - @AfterEach() - // @And("Rimuovi tutti i recapiti se esistono") + @After(value = "@recapitiPF or @recapitiPG") + @And("Rimuovi tutti i recapiti se esistono") public void clearRecapiti() throws IOException { RestContact restContact = RestContact.getInstance(); diff --git a/src/test/java/it/pn/frontend/e2e/run/RunCucumberTest.java b/src/test/java/it/pn/frontend/e2e/run/RunCucumberTest.java index 6c293e2b1..aa5c8ffc9 100644 --- a/src/test/java/it/pn/frontend/e2e/run/RunCucumberTest.java +++ b/src/test/java/it/pn/frontend/e2e/run/RunCucumberTest.java @@ -1,7 +1,8 @@ package it.pn.frontend.e2e.run; -import org.junit.jupiter.api.AfterAll; -import org.junit.jupiter.api.BeforeAll; + +import io.cucumber.java.After; +import io.cucumber.java.Before; import org.junit.platform.suite.api.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -11,6 +12,7 @@ import static io.cucumber.junit.platform.engine.Constants.*; + /** @RunWith(Cucumber.class) @CucumberOptions( @@ -62,7 +64,7 @@ private static boolean loadProperties() { return false; } - @BeforeAll + @Before public static void startTestSuite() { if (loadProperties()) { logger.info("properties loaded"); @@ -83,7 +85,7 @@ public static void startTestSuite() { logger.info("start the test suite = " + testSuite); } - @AfterAll + @After public static void finishTestSuite() { logger.info("finish the test suite = " + testSuite); } From 6b6347ad355dafa8854d40f800b6c736382614cb Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Fri, 11 Oct 2024 14:40:24 +0200 Subject: [PATCH 037/212] Fix Run test Junit5 --- .../it/pn/frontend/e2e/listeners/Hooks.java | 22 +++--- .../pn/frontend/e2e/run/RunCucumberTest.java | 47 +------------ .../common/ConfigFileReader.java | 69 +++++++++++++++++++ src/test/resources/junit-platform.properties | 1 + 4 files changed, 85 insertions(+), 54 deletions(-) create mode 100644 src/test/java/it/pn/frontend/e2e/stepDefinitions/common/ConfigFileReader.java diff --git a/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java b/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java index d6ef07f4f..b659545f6 100644 --- a/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java +++ b/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java @@ -10,10 +10,10 @@ import it.pn.frontend.e2e.rest.RestDelegation; import it.pn.frontend.e2e.utility.CookieConfig; import lombok.Getter; -import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.TestInfo; +import org.apache.commons.io.FileUtils; +import org.junit.jupiter.api.*; +import org.openqa.selenium.OutputType; +import org.openqa.selenium.TakesScreenshot; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.chrome.ChromeOptions; @@ -36,6 +36,8 @@ import java.io.File; import java.io.IOException; +import java.text.DateFormat; +import java.text.SimpleDateFormat; import java.time.Duration; import java.util.*; import java.util.concurrent.TimeUnit; @@ -54,6 +56,8 @@ public class Hooks { private final CookieConfig cookieConfig = new CookieConfig(); private final String os = System.getProperty("os.name"); + + protected void firefox() { WebDriverManager.firefoxdriver().setup(); FirefoxProfile profile = new FirefoxProfile(); @@ -184,6 +188,7 @@ protected void edge() { @Before public void startScenario(Scenario scenario) { + logger.info("-------------------------------------------START SCENARIO: " + scenario.getName() + "------------------------------------------------"); this.scenario = scenario.getName(); @@ -199,6 +204,7 @@ public void startScenario(Scenario scenario) { logger.info("user language : " + System.getProperty("user.language")); String browser = null; + logger.info("user language : " + System.getProperty("user.language")); if (System.getProperty("browser") == null) { Assertions.fail("valorizzare la variabile browser"); } else { @@ -234,7 +240,7 @@ public void endScenario(Scenario scenario) { logger.info(netWorkInfo.getResponseStatus()); logger.info(netWorkInfo.getResponseBody()); } -/** + if (scenario.isFailed()) { logger.error("scenario go to error : " + scenario.getName()); try { @@ -250,7 +256,7 @@ public void endScenario(Scenario scenario) { logger.error(e.getCause().toString()); } } - **/ + logger.info("quit driver"); driver.quit(); @@ -268,7 +274,7 @@ public void endScenario(Scenario scenario) { * Clear the delegate of PF after the scenario * P.S: This will work only if you invoke the feature step that creates the delegate */ - // @AfterEach("@DeleghePF or @DeleghePG") + @After("@DeleghePF or @DeleghePG") public void clearDelegate() { logger.info("REVOCA TUTTE LE DELEGHE...."); MandateSingleton mandateSingleton = MandateSingleton.getInstance(); @@ -287,7 +293,7 @@ public void clearDelegate() { * Clear directory of file downloaded * P.S: This will work only if you invoke the feature step that creates the delegate */ - //@AfterEach("@File") + @After("@File") public void clearDirectory() { String folderPath = System.getProperty("downloadFilePath"); diff --git a/src/test/java/it/pn/frontend/e2e/run/RunCucumberTest.java b/src/test/java/it/pn/frontend/e2e/run/RunCucumberTest.java index aa5c8ffc9..85d4d2bbc 100644 --- a/src/test/java/it/pn/frontend/e2e/run/RunCucumberTest.java +++ b/src/test/java/it/pn/frontend/e2e/run/RunCucumberTest.java @@ -3,6 +3,7 @@ import io.cucumber.java.After; import io.cucumber.java.Before; +import it.pn.frontend.e2e.stepDefinitions.common.ConfigFileReader; import org.junit.platform.suite.api.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -42,52 +43,6 @@ }) public class RunCucumberTest { - private static final String TEST_CONFIG_FILE = "test-config.properties"; - private static final Properties properties = new Properties(); - private static final Logger logger = LoggerFactory.getLogger("RunCucumberTest"); - private static String testSuite; - private static boolean loadProperties() { - logger.info("load properties"); - try (InputStream input = RunCucumberTest.class.getClassLoader().getResourceAsStream(TEST_CONFIG_FILE)) { - if (input != null) { - properties.load(input); - logger.info(properties.getProperty("browser")); - return true; - } else { - System.err.println("Unable to find " + TEST_CONFIG_FILE); - return false; - } - } catch (IOException e) { - logger.info("Exception: " + e.getMessage()); - } - return false; - } - - @Before - public static void startTestSuite() { - if (loadProperties()) { - logger.info("properties loaded"); - properties.forEach((property, value) -> { - String actualSystemProperty = System.getProperty(property.toString()); - if (actualSystemProperty == null) { - System.setProperty(property.toString(), value.toString()); - } - } - ); - } - if (System.getProperty("cucumber.filter.tags") != null) { - testSuite = System.getProperty("cucumber.filter.tags").substring(1); - logger.info("run test della test suite = " + testSuite); - } else { - logger.info("run tutti i test"); - } - logger.info("start the test suite = " + testSuite); - } - - @After - public static void finishTestSuite() { - logger.info("finish the test suite = " + testSuite); - } } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/ConfigFileReader.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/ConfigFileReader.java new file mode 100644 index 000000000..f03f6b616 --- /dev/null +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/ConfigFileReader.java @@ -0,0 +1,69 @@ +package it.pn.frontend.e2e.stepDefinitions.common; + +import io.cucumber.java.After; +import io.cucumber.java.Before; +import io.cucumber.java.BeforeAll; +import io.cucumber.java.Scenario; +import it.pn.frontend.e2e.listeners.Hooks; +import it.pn.frontend.e2e.run.RunCucumberTest; +import org.junit.jupiter.api.Order; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.*; +import java.util.Properties; + +import static it.pn.frontend.e2e.listeners.Hooks.scenario; + +public class ConfigFileReader { + + private static final String TEST_CONFIG_FILE = "test-config.properties"; + private static final Properties properties = new Properties(); + private static final Logger logger = LoggerFactory.getLogger("ConfigFileReader"); + private static String testSuite; + + public static boolean loadProperties() { + logger.info("load properties"); + try (InputStream input = ConfigFileReader.class.getClassLoader().getResourceAsStream(TEST_CONFIG_FILE)) { + if (input != null) { + properties.load(input); + logger.info(properties.getProperty("browser")); + return true; + } else { + System.err.println("Unable to find " + TEST_CONFIG_FILE); + return false; + } + } catch (IOException e) { + logger.info("Exception: " + e.getMessage()); + } + return false; + } + + @BeforeAll + public static void startTestSuite() { + if (loadProperties()) { + logger.info("properties loaded"); + properties.forEach((property, value) -> { + String actualSystemProperty = System.getProperty(property.toString()); + if (actualSystemProperty == null) { + System.setProperty(property.toString(), value.toString()); + } + } + ); + } + if (System.getProperty("cucumber.filter.tags") != null) { + testSuite = System.getProperty("cucumber.filter.tags").substring(1); + logger.info("run test della test suite = " + testSuite); + } else { + logger.info("run tutti i test"); + } + logger.info("start the test suite = " + testSuite); + } + + @After + public static void finishTestSuite() { + logger.info("finish the test suite = " + testSuite); + } + + +} \ No newline at end of file diff --git a/src/test/resources/junit-platform.properties b/src/test/resources/junit-platform.properties index 8fa486d2b..88229c3bf 100644 --- a/src/test/resources/junit-platform.properties +++ b/src/test/resources/junit-platform.properties @@ -8,3 +8,4 @@ cucumber.execution.execution-mode.feature=same_thread #cucumber.execution.exclusive-resources..read-write= +junit-platform.properties=true \ No newline at end of file From 3aaba27487aaf98c88ea38180e7a122cae27ad1b Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Fri, 11 Oct 2024 14:49:05 +0200 Subject: [PATCH 038/212] remove properties --- src/test/resources/junit-platform.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/resources/junit-platform.properties b/src/test/resources/junit-platform.properties index 88229c3bf..4578a0a73 100644 --- a/src/test/resources/junit-platform.properties +++ b/src/test/resources/junit-platform.properties @@ -8,4 +8,4 @@ cucumber.execution.execution-mode.feature=same_thread #cucumber.execution.exclusive-resources..read-write= -junit-platform.properties=true \ No newline at end of file +#junit-platform.properties=true \ No newline at end of file From 98a8a35fbe68e6548b7038efcbe0a9a60d4110c2 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Fri, 11 Oct 2024 17:42:59 +0200 Subject: [PATCH 039/212] refactor --- src/test/java/it/pn/frontend/e2e/run/RunCucumberTest.java | 1 - .../e2e/stepDefinitions/common/ConfigFileReader.java | 7 ------- 2 files changed, 8 deletions(-) diff --git a/src/test/java/it/pn/frontend/e2e/run/RunCucumberTest.java b/src/test/java/it/pn/frontend/e2e/run/RunCucumberTest.java index 85d4d2bbc..7deccc0d1 100644 --- a/src/test/java/it/pn/frontend/e2e/run/RunCucumberTest.java +++ b/src/test/java/it/pn/frontend/e2e/run/RunCucumberTest.java @@ -39,7 +39,6 @@ @ConfigurationParameter(key = PLUGIN_PROPERTY_NAME, value = "json:target/cucumber-report.json," + "html:target/cucumber-report.html"), @ConfigurationParameter(key = GLUE_PROPERTY_NAME, value = "it/pn/frontend/e2e/listeners ,it/pn/frontend/e2e/stepDefinitions") - }) public class RunCucumberTest { diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/ConfigFileReader.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/ConfigFileReader.java index f03f6b616..4211791e7 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/ConfigFileReader.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/ConfigFileReader.java @@ -1,19 +1,12 @@ package it.pn.frontend.e2e.stepDefinitions.common; import io.cucumber.java.After; -import io.cucumber.java.Before; import io.cucumber.java.BeforeAll; -import io.cucumber.java.Scenario; -import it.pn.frontend.e2e.listeners.Hooks; -import it.pn.frontend.e2e.run.RunCucumberTest; -import org.junit.jupiter.api.Order; import org.slf4j.Logger; import org.slf4j.LoggerFactory; - import java.io.*; import java.util.Properties; -import static it.pn.frontend.e2e.listeners.Hooks.scenario; public class ConfigFileReader { From f9a10a97ca2517b650a8b3a156105ab6eccbd7f5 Mon Sep 17 00:00:00 2001 From: AlimaZhansultan Date: Fri, 11 Oct 2024 17:52:21 +0200 Subject: [PATCH 040/212] * Refactor su test Recapiti PF --- .../e2e/common/RecapitiDestinatarioPage.java | 18 +++++++-------- .../personaFisica/ITuoiRecapitiPage.java | 23 +++++++++---------- .../RecapitiPersonaFisicaTest.java | 4 ++-- 3 files changed, 22 insertions(+), 23 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/common/RecapitiDestinatarioPage.java b/src/main/java/it/pn/frontend/e2e/common/RecapitiDestinatarioPage.java index 5f024c9a7..59e3a8b1c 100644 --- a/src/main/java/it/pn/frontend/e2e/common/RecapitiDestinatarioPage.java +++ b/src/main/java/it/pn/frontend/e2e/common/RecapitiDestinatarioPage.java @@ -13,10 +13,10 @@ public class RecapitiDestinatarioPage extends BasePage { private final Logger logger = LoggerFactory.getLogger("RecapitiDestinatarioPage"); - @FindBy(id = "add-contact") + @FindBy(id = "code-confirm-button") WebElement confermaButton; - @FindBy(xpath = "//button[@data-testid='courtesy-email-button']") + @FindBy(id = "default_email-button") WebElement avvisamiViaEmailButton; @FindBy(id = "code-confirm-button") @@ -111,13 +111,13 @@ public void insertEmailPEC(String emailPEC) { pecField = driver.findElement(By.id("default_pec")); getWebDriverWait(10).withMessage("input pec field non trovato").until(ExpectedConditions.visibilityOf(pecField)); pecField.sendKeys(emailPEC); - } + } public void confermaButtonClick() { WebTool.waitTime(5); - confermaButton = driver.findElement(By.id("add-contact")); - getWebDriverWait(10).withMessage("Il bottone conferma non è cliccabile").until(ExpectedConditions.elementToBeClickable(this.confermaButton)); - this.confermaButton.click(); + By attivaButton = By.id("default_pec-button"); + getWebDriverWait(10).withMessage("Il bottone Attiva non è cliccabile").until(ExpectedConditions.elementToBeClickable(element(attivaButton))); + element(attivaButton).click(); } public void clickConfermaButtonEliminaPopUp() { @@ -134,7 +134,7 @@ public void waitLoadPopUp() { By titleOption = By.xpath("//div[@data-testid='dialog-content']//p[contains(text(), 'Inserisci codice')]"); List inputBoxes = driver.findElements(By.xpath("//input[contains(@id,'code-input-')]")); // The message is different in PG and PF - By footerNotReceived = By.xpath("//p[contains(text(), 'Non l’hai ricevuto? Controlla')]"); + By footerNotReceived = By.xpath("//div[contains(text(), 'Non l’hai ricevuto?')]"); getWebDriverWait(10).withMessage("Non viene visualizzato correttamente il titolo").until(ExpectedConditions.visibilityOfElementLocated(titleBy)); getWebDriverWait(10).withMessage("La descrizione non viene visualizzata e il testo non è corretto").until(ExpectedConditions.and( ExpectedConditions.visibilityOfElementLocated(descriptionBy), @@ -252,7 +252,7 @@ public void insertPhone(String cellulare) { public boolean verificaPecAssociata() { try { - By pecAssociata = By.id("associatedPEC"); + By pecAssociata = By.id("default_pec-typography"); getWebDriverWait(10).withMessage("PEC associata non presente").until(ExpectedConditions.visibilityOfElementLocated(pecAssociata)); return true; } catch (NoSuchElementException | TimeoutException e) { @@ -543,7 +543,7 @@ public boolean verificaBottoneConfermaDisabilitato() { } } - public void clickHoCapitoCheckBoxPopup() { + public void clickHoCapitoCheckBoxPopup() { By hoCapitoCheckboxBy = By.xpath("//span[contains(text(),'Ho capito')]/preceding-sibling::span/input"); WebElement hoCapitoCheckBox = this.driver.findElement(hoCapitoCheckboxBy); logger.info("click su checkbox ho capito"); diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/ITuoiRecapitiPage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/ITuoiRecapitiPage.java index f354fb6f1..6aa71cb39 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/ITuoiRecapitiPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/ITuoiRecapitiPage.java @@ -25,8 +25,8 @@ public class ITuoiRecapitiPage extends BasePage { @FindBy(id = "addressType") WebElement tipoIndirizzoField; - @FindBy(id = "subtitle-page") - List subTitlesSection; + @FindBy(xpath = "//*[@id='legalContactsSection']/p") + WebElement subTitlesSection; public ITuoiRecapitiPage(WebDriver driver) { super(driver); @@ -223,26 +223,25 @@ public void checkPostModifica() { public void checkRiquadroPEC() { try { - By titleSection = By.xpath("//div[@data-testid='DigitalContactsCardBody']//*/div/div"); + By titleSection = By.id("legalContactsTitle"); By pecField = By.id("default_pec"); - By confirmButton = By.id("add-contact"); - By infoBanner = By.xpath("//span[@data-testid='legal-contact-disclaimer']"); + By confirmButton = By.id("default_pec-button"); + By infoBanner = By.xpath("//p[@data-testid='DigitalContactsCardDescription']"); getWebDriverWait(10).withMessage("Non si visualizza il titolo della sezione recapito legale o il contenuto è errato").until(ExpectedConditions.and( ExpectedConditions.visibilityOfElementLocated(titleSection), - ExpectedConditions.attributeToBe(this.element(titleSection), "innerText", "Recapito legale"))); + ExpectedConditions.attributeToBe(this.element(titleSection), "innerText", "Recapito a valore legale"))); getWebDriverWait(10).withMessage("Non si visualizza il sottotitolo della sezione recapito legale o il contenuto è errato").until(ExpectedConditions.and( - ExpectedConditions.visibilityOf(subTitlesSection.get(1)), - ExpectedConditions.attributeToBe(subTitlesSection.get(1), "innerText", "Quando c’è una notifica per te, ti inviamo qui l’avviso di avvenuta ricezione. Accedi a SEND per leggerla e pagare eventuali spese."))); + ExpectedConditions.visibilityOf(subTitlesSection), + ExpectedConditions.attributeToBe(subTitlesSection, "innerText", "È il recapito ufficiale che scegli per ricevere comunicazioni a valore legale dalla PA. Se attivi un recapito a valore legale riceverai le notifiche di SEND solo in digitale, senza più preoccuparti dei documenti cartacei."))); getWebDriverWait(10).withMessage("Non si visualizza il campo pec o non è modificabile").until(ExpectedConditions.and( ExpectedConditions.visibilityOfElementLocated(pecField), - ExpectedConditions.attributeToBe(this.element(pecField), "readonly", ""), - ExpectedConditions.attributeToBe(this.element(pecField), "placeholder", "Il tuo indirizzo PEC"))); + ExpectedConditions.attributeToBe(this.element(pecField), "placeholder", "La tua PEC"))); getWebDriverWait(10).withMessage("Non si visualizza il bottone conferma o non è cliccabile").until(ExpectedConditions.and( ExpectedConditions.visibilityOfElementLocated(confirmButton), ExpectedConditions.not(ExpectedConditions.elementToBeClickable(confirmButton)))); getWebDriverWait(10).withMessage("Non si visualizza il banner informativo o il suo contenuto è errato").until(ExpectedConditions.and( - ExpectedConditions.visibilityOfElementLocated(infoBanner), - ExpectedConditions.attributeToBe(this.element(infoBanner), "innerText", "Questo è l’indirizzo principale che verrà utilizzato per inviarti gli avvisi di avvenuta ricezione in via digitale. Inserendolo, non riceverai più raccomandate cartacee."))); + ExpectedConditions.visibilityOf(elements(infoBanner).get(1)), + ExpectedConditions.attributeToBe(this.elements(infoBanner).get(1), "innerText", "Quando un ente invia una comunicazione per te su SEND, ricevi l’avviso ufficiale sulla PEC che hai scelto."))); logger.info("Il riquadro PEC si visualizza correttamente"); } catch (TimeoutException e) { logger.error("Il riquadro PEC NON si visualizza correttamente con errori:" + e.getMessage()); diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java index 84baec822..2f481e9d8 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java @@ -202,7 +202,7 @@ public void siVisualizzaCorrettamenteIlPopUpESiCliccaSuConferma() { logger.info("click pop-up conferma email"); Assert.assertFalse("il popup Conferma email non si visualizza", recapitiDestinatarioPage.verificaPopUpConfermaEmail()); - recapitiDestinatarioPage.clickHoCapitoCheckBoxPopup(); + // recapitiDestinatarioPage.clickHoCapitoCheckBoxPopup(); recapitiDestinatarioPage.confermaEmailPopup(); } @@ -1037,7 +1037,7 @@ public void siVisualizzanoCorrettamenteGliElementiPostModifica() { @When("Nella pagina I Tuoi Recapiti si visualizza correttamente il riquadro relativo alla PEC") public void nellaPaginaITuoiRecapitiSiVisualizzaCorrettamenteIlRiquadroRelativoAllaPEC() { - logger.info("Si visualizza correttamente il riquadro relativo alla PEC"); + logger.info("Si controlla se il riquadro relativo alla PEC visualizzata correttamente"); ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(this.driver); iTuoiRecapitiPage.checkRiquadroPEC(); } From 9ef7c1200929443162184a7975c9e665457e4977 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Mon, 14 Oct 2024 11:17:55 +0200 Subject: [PATCH 041/212] add wait --- .../it/pn/frontend/e2e/pages/mittente/SelezionaEntePAPage.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/SelezionaEntePAPage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/SelezionaEntePAPage.java index cd526c6c7..b3b28fb87 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/SelezionaEntePAPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/SelezionaEntePAPage.java @@ -32,7 +32,7 @@ public SelezionaEntePAPage(WebDriver driver) { public void waitLoadSelezionaEntePAPage() { try { - WebTool.waitTime(15); + WebTool.waitTime(20); WebElement titlePage = driver.findElement(By.xpath("//h3[text()='Seleziona il tuo ente']")); WebElement searchField = driver.findElement(By.id("search")); this.getWebDriverWait(30).withMessage("Titolo 'Seleziona il tuo ente' della pagina non è visualizza").until(ExpectedConditions.visibilityOf(titlePage)); From 75c5ed14fcd8b4cfdd2b0b8dba8d5d6288c61b75 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Mon, 14 Oct 2024 11:21:25 +0200 Subject: [PATCH 042/212] add wait --- .../e2e/section/destinatario/personaFisica/HeaderPFSection.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/HeaderPFSection.java b/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/HeaderPFSection.java index e84bd28dd..4c35d97a4 100644 --- a/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/HeaderPFSection.java +++ b/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/HeaderPFSection.java @@ -1,6 +1,7 @@ package it.pn.frontend.e2e.section.destinatario.personaFisica; import it.pn.frontend.e2e.common.BasePage; +import it.pn.frontend.e2e.utility.WebTool; import org.junit.jupiter.api.Assertions; import org.openqa.selenium.By; import org.openqa.selenium.TimeoutException; @@ -32,6 +33,7 @@ public HeaderPFSection(WebDriver driver) { public void waitLoadHeaderDESection() { try { + WebTool.waitTime(5); titleLabel = driver.findElement(By.xpath("//a[@title='Sito di PagoPA S.p.A.']")); buttonProfile = driver.findElement(By.xpath("//button[@aria-label='party-menu-button']")); getWebDriverWait(30).withMessage("il titolo del header non è visibile").until(ExpectedConditions.visibilityOf(titleLabel)); From 77e54ef2ad99f624d990e735260d464c5966b1d3 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Mon, 14 Oct 2024 11:33:13 +0200 Subject: [PATCH 043/212] add log --- .../it/pn/frontend/e2e/pages/mittente/SelezionaEntePAPage.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/SelezionaEntePAPage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/SelezionaEntePAPage.java index b3b28fb87..c30a8c9e7 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/SelezionaEntePAPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/SelezionaEntePAPage.java @@ -33,6 +33,7 @@ public SelezionaEntePAPage(WebDriver driver) { public void waitLoadSelezionaEntePAPage() { try { WebTool.waitTime(20); + logger.info("HTML..: "+driver.getPageSource()); WebElement titlePage = driver.findElement(By.xpath("//h3[text()='Seleziona il tuo ente']")); WebElement searchField = driver.findElement(By.id("search")); this.getWebDriverWait(30).withMessage("Titolo 'Seleziona il tuo ente' della pagina non è visualizza").until(ExpectedConditions.visibilityOf(titlePage)); From 44e7b57c4f7890091512a4ab6b722c1a7a40e986 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Mon, 14 Oct 2024 11:48:13 +0200 Subject: [PATCH 044/212] add log --- .../e2e/section/destinatario/personaFisica/HeaderPFSection.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/HeaderPFSection.java b/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/HeaderPFSection.java index 4c35d97a4..a6ae9026d 100644 --- a/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/HeaderPFSection.java +++ b/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/HeaderPFSection.java @@ -34,6 +34,7 @@ public HeaderPFSection(WebDriver driver) { public void waitLoadHeaderDESection() { try { WebTool.waitTime(5); + logger.info("HTML..1 "+driver.getPageSource()); titleLabel = driver.findElement(By.xpath("//a[@title='Sito di PagoPA S.p.A.']")); buttonProfile = driver.findElement(By.xpath("//button[@aria-label='party-menu-button']")); getWebDriverWait(30).withMessage("il titolo del header non è visibile").until(ExpectedConditions.visibilityOf(titleLabel)); From 6d6423abec0f30602a957b238e44bd88b27c0db8 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Mon, 14 Oct 2024 12:01:03 +0200 Subject: [PATCH 045/212] add wait --- .../e2e/section/destinatario/personaFisica/HeaderPFSection.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/HeaderPFSection.java b/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/HeaderPFSection.java index a6ae9026d..c9edd63aa 100644 --- a/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/HeaderPFSection.java +++ b/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/HeaderPFSection.java @@ -33,7 +33,7 @@ public HeaderPFSection(WebDriver driver) { public void waitLoadHeaderDESection() { try { - WebTool.waitTime(5); + WebTool.waitTime(10); logger.info("HTML..1 "+driver.getPageSource()); titleLabel = driver.findElement(By.xpath("//a[@title='Sito di PagoPA S.p.A.']")); buttonProfile = driver.findElement(By.xpath("//button[@aria-label='party-menu-button']")); From 7df4c9937208c22124466fa9bcf06c6e50c46cf6 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Mon, 14 Oct 2024 12:30:55 +0200 Subject: [PATCH 046/212] remove log --- .../e2e/section/destinatario/personaFisica/HeaderPFSection.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/HeaderPFSection.java b/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/HeaderPFSection.java index c9edd63aa..46ef90fd0 100644 --- a/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/HeaderPFSection.java +++ b/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/HeaderPFSection.java @@ -34,7 +34,6 @@ public HeaderPFSection(WebDriver driver) { public void waitLoadHeaderDESection() { try { WebTool.waitTime(10); - logger.info("HTML..1 "+driver.getPageSource()); titleLabel = driver.findElement(By.xpath("//a[@title='Sito di PagoPA S.p.A.']")); buttonProfile = driver.findElement(By.xpath("//button[@aria-label='party-menu-button']")); getWebDriverWait(30).withMessage("il titolo del header non è visibile").until(ExpectedConditions.visibilityOf(titleLabel)); From 71ecd1f40b4297631a85e44ac9a0b7096ed7cde6 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Mon, 14 Oct 2024 12:39:04 +0200 Subject: [PATCH 047/212] REMOVE LOG --- .../it/pn/frontend/e2e/pages/mittente/SelezionaEntePAPage.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/SelezionaEntePAPage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/SelezionaEntePAPage.java index c30a8c9e7..b3b28fb87 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/SelezionaEntePAPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/SelezionaEntePAPage.java @@ -33,7 +33,6 @@ public SelezionaEntePAPage(WebDriver driver) { public void waitLoadSelezionaEntePAPage() { try { WebTool.waitTime(20); - logger.info("HTML..: "+driver.getPageSource()); WebElement titlePage = driver.findElement(By.xpath("//h3[text()='Seleziona il tuo ente']")); WebElement searchField = driver.findElement(By.id("search")); this.getWebDriverWait(30).withMessage("Titolo 'Seleziona il tuo ente' della pagina non è visualizza").until(ExpectedConditions.visibilityOf(titlePage)); From bd82dbd063b4b36c102d6bd7d420596de51b8e7d Mon Sep 17 00:00:00 2001 From: AlimaZhansultan Date: Mon, 14 Oct 2024 13:16:09 +0200 Subject: [PATCH 048/212] * Refactor su test Recapiti PF --- .../pn/frontend/e2e/common/RecapitiDestinatarioPage.java | 9 ++++----- .../e2e/stepDefinitions/common/BackgroundTest.java | 2 +- .../personaFisica/RecapitiPersonaFisicaTest.java | 2 +- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/common/RecapitiDestinatarioPage.java b/src/main/java/it/pn/frontend/e2e/common/RecapitiDestinatarioPage.java index 59e3a8b1c..f034c5620 100644 --- a/src/main/java/it/pn/frontend/e2e/common/RecapitiDestinatarioPage.java +++ b/src/main/java/it/pn/frontend/e2e/common/RecapitiDestinatarioPage.java @@ -37,7 +37,7 @@ public class RecapitiDestinatarioPage extends BasePage { @FindBy(id = "default_sms") WebElement inserimentoPhoneField; - @FindBy(id = "cancelContact-default") + @FindBy(id = "cancelContact-default_pec") WebElement eliminaPECButton; @FindBy(xpath = "//button[@id='confirmDialog']") @@ -542,8 +542,7 @@ public boolean verificaBottoneConfermaDisabilitato() { return false; } } - - public void clickHoCapitoCheckBoxPopup() { + public void clickHoCapitoCheckBoxPopup() { By hoCapitoCheckboxBy = By.xpath("//span[contains(text(),'Ho capito')]/preceding-sibling::span/input"); WebElement hoCapitoCheckBox = this.driver.findElement(hoCapitoCheckboxBy); logger.info("click su checkbox ho capito"); @@ -551,7 +550,7 @@ public void clickHoCapitoCheckBoxPopup() { } public void confermaEmailPopup() { - By popupConfirmButtonBy = By.id("confirmButton"); + By popupConfirmButtonBy = By.id("code-confirm-button"); getWebDriverWait(10).until(ExpectedConditions.elementToBeClickable(popupConfirmButtonBy)); this.driver.findElement(popupConfirmButtonBy).click(); } @@ -576,7 +575,7 @@ public boolean avvisamiViaEmailIsDisabled() { } public void visualizzazioneSezioneAltriRecapiti() { - By altriRecapitiSectionBy = By.id("specialContact"); + By altriRecapitiSectionBy = By.id("courtesyContactsTitle"); getWebDriverWait(5).withMessage(" Non si visualizza correttamente il titolo della sezione altri recapiti").until(ExpectedConditions.visibilityOfElementLocated(altriRecapitiSectionBy)); } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/BackgroundTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/BackgroundTest.java index 99d30f82f..c60ae1cbd 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/BackgroundTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/BackgroundTest.java @@ -143,7 +143,7 @@ public void accettaDelegaPF() { public void aggiuntaEmailPF() { recapitiPersonaFisicaTest.nellaPaginaITuoiRecapitiSiInserisceLEmailDelPFECliccaSulBottoneAvvisamiViaEmail(nomeFilePersonaFisica); - recapitiPersonaFisicaTest.siVisualizzaCorrettamenteIlPopUpESiCliccaSuConferma(); + //recapitiPersonaFisicaTest.siVisualizzaCorrettamenteIlPopUpESiCliccaSuConferma(); recapitiPersonaFisicaTest.nellaPaginaITuoiRecapitiSiRecuperaLOTPDellaEmailTramiteRequestMethod(nomeFilePersonaFisica); recapitiPersonaFisicaTest.nellaPaginaITuoiRecapitiSiInserisceLOTPRicevutoViaEmail(nomeFilePersonaFisica); recapitiPersonaFisicaTest.nellaPaginaITuoiRecapitiSiControllaCheLaEmailSiaPresente(); diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java index 2f481e9d8..41942fb2e 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java @@ -201,7 +201,7 @@ public void nellaPaginaITuoiRecapitiSiInserisceLEmailDelPFECliccaSulBottoneAvvis public void siVisualizzaCorrettamenteIlPopUpESiCliccaSuConferma() { logger.info("click pop-up conferma email"); - Assert.assertFalse("il popup Conferma email non si visualizza", recapitiDestinatarioPage.verificaPopUpConfermaEmail()); + //Assert.assertFalse("il popup Conferma email non si visualizza", recapitiDestinatarioPage.verificaPopUpConfermaEmail()); // recapitiDestinatarioPage.clickHoCapitoCheckBoxPopup(); recapitiDestinatarioPage.confermaEmailPopup(); } From 52736f3f459a2b886c4b0a6a6f0180c3406a3e34 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Mon, 14 Oct 2024 15:30:56 +0200 Subject: [PATCH 049/212] modify properties --- src/test/resources/junit-platform.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/resources/junit-platform.properties b/src/test/resources/junit-platform.properties index 4578a0a73..4df645c5e 100644 --- a/src/test/resources/junit-platform.properties +++ b/src/test/resources/junit-platform.properties @@ -1,4 +1,4 @@ -cucumber.execution.parallel.enabled=true +cucumber.execution.parallel.enabled=false cucumber.execution.parallel.config.strategy=fixed #One for each feature file #cucumber.execution.parallel.config.fixed.parallelism=39 From da26399c9252e04826643c1e6702ad16867e0ca6 Mon Sep 17 00:00:00 2001 From: AlimaZhansultan Date: Tue, 15 Oct 2024 00:35:32 +0200 Subject: [PATCH 050/212] * Refactor su test Recapiti PF --- .../e2e/common/RecapitiDestinatarioPage.java | 18 +++++++++--------- .../personaFisica/ITuoiRecapitiPage.java | 7 +++---- .../stepDefinitions/common/RecapitiTest.java | 2 +- .../RecapitiPersonaFisicaTest.java | 4 ++-- ...001_031_NEG_inserimentoPECSbagliata.feature | 1 + .../002_033_inserimentoOTPSbagliatoPec.feature | 1 + .../003_031_inserimentoIndirizzoPEC.feature | 1 + .../004_032_modificaIndirizzoPEC.feature | 1 + ...4_NEG1_inserimentoOTPEmailSbagliato.feature | 2 +- ...6_034_NEG_inserimentoEmailSbagliata.feature | 1 + .../007_034_inserimentoIndirizzoEmail.feature | 3 +-- .../008_035_modificaIndirizzoEmail.feature | 3 ++- ...rimentoOTPNumeroDiTelefonoSbagliato.feature | 2 +- ...nserimentoNumeroDiTelefonoSbagliato.feature | 2 ++ ...inserimentoIndirizzoEmailAggiuntivo.feature | 2 +- ...0_inserimentoIndirizzoPECAggiuntivo.feature | 2 +- ...015_033B_annullaeliminaIndirizzoPEC.feature | 1 + .../015_033_eliminaIndirizzoPEC.feature | 1 + ...6_036B_annullaeliminaIndirizzoEmail.feature | 1 + .../016_036_eliminaIndirizzoEmail.feature | 1 + ...211_inserimentoOTPSbagliatoRecapiti.feature | 3 +-- 21 files changed, 34 insertions(+), 25 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/common/RecapitiDestinatarioPage.java b/src/main/java/it/pn/frontend/e2e/common/RecapitiDestinatarioPage.java index f034c5620..9a89c4e20 100644 --- a/src/main/java/it/pn/frontend/e2e/common/RecapitiDestinatarioPage.java +++ b/src/main/java/it/pn/frontend/e2e/common/RecapitiDestinatarioPage.java @@ -13,8 +13,8 @@ public class RecapitiDestinatarioPage extends BasePage { private final Logger logger = LoggerFactory.getLogger("RecapitiDestinatarioPage"); - @FindBy(id = "code-confirm-button") - WebElement confermaButton; + @FindBy(id = "default_pec-button") + WebElement attivaButton; @FindBy(id = "default_email-button") WebElement avvisamiViaEmailButton; @@ -43,7 +43,7 @@ public class RecapitiDestinatarioPage extends BasePage { @FindBy(xpath = "//button[@id='confirmDialog']") WebElement confermaButtonPoPUpPec; - @FindBy(xpath = "//button[@id='modifyContact-default']") + @FindBy(id = "modifyContact-default_email") WebElement modificaEmailButton; @FindBy(id = "sender") @@ -77,7 +77,7 @@ public class RecapitiDestinatarioPage extends BasePage { WebElement pecField; - @FindBy(xpath = "//div[@data-testid='legalContacts']") + @FindBy(id = "default_pec-typography") WebElement pecEmail; public RecapitiDestinatarioPage(WebDriver driver) { @@ -188,7 +188,7 @@ public void confermaButtonClickPopUp() { getWebDriverWait(10).until(ExpectedConditions.elementToBeClickable(confermaButtonPopUp)); confermaButtonPopUp.click(); WebTool.waitTime(5); - By confermaButtonPostInserimentoBy = By.xpath("//div[@data-testid='dialog-actions']/button[contains(text(), 'Conferma')]"); + By confermaButtonPostInserimentoBy = By.id("code-confirm-button"); if (!driver.findElements(confermaButtonPostInserimentoBy).isEmpty()) { element(confermaButtonPostInserimentoBy).click(); } @@ -325,7 +325,7 @@ public boolean siVisualizzaPecInserita() { } public void clickSuModifica() { - By modificaMailButton = By.xpath("//button[@id='modifyContact-default']"); + By modificaMailButton = By.id("modifyContact-default_email"); getWebDriverWait(10).until(ExpectedConditions.visibilityOfElementLocated(modificaMailButton)); if (modificaEmailButton.isDisplayed()) { this.modificaEmailButton.click(); @@ -337,7 +337,7 @@ public void clickSuModifica() { public void clickSuModificaPEC() { try { - By modificaButtonBy = By.xpath("//div[@data-testid='legalContacts']//button[@id='modifyContact-default']"); + By modificaButtonBy = By.id("modifyContact-default_pec"); this.getWebDriverWait(10).withMessage("Non si riesce a cliccare o vedere il bottone modifica PEC").until(ExpectedConditions.and( ExpectedConditions.visibilityOfElementLocated(modificaButtonBy), ExpectedConditions.elementToBeClickable(modificaButtonBy))); @@ -535,8 +535,8 @@ public String getPecErrorMessage() { public boolean verificaBottoneConfermaDisabilitato() { try { - getWebDriverWait(30).until(ExpectedConditions.visibilityOf(this.confermaButton)); - return Boolean.parseBoolean(this.confermaButton.getAttribute("disabled")); + getWebDriverWait(30).until(ExpectedConditions.visibilityOf(this.attivaButton)); + return Boolean.parseBoolean(this.attivaButton.getAttribute("disabled")); } catch (NoSuchElementException | TimeoutException e) { logger.error("bottone non disabilitato " + e.getMessage()); return false; diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/ITuoiRecapitiPage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/ITuoiRecapitiPage.java index 6aa71cb39..2fcce149a 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/ITuoiRecapitiPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/ITuoiRecapitiPage.java @@ -19,7 +19,7 @@ public class ITuoiRecapitiPage extends BasePage { @FindBy(id = "default_sms") WebElement phoneNumInputField; - @FindBy(xpath = "//button[@data-testid='courtesy-sms-button']") + @FindBy(id = "default_sms-button") WebElement avvisamiViaSMSButton; @FindBy(id = "addressType") @@ -114,10 +114,9 @@ public void clickSalvaEmail() { } public void eliminaEmailEsistente() { - By eliminaMailButton = By.xpath("//button[@id='cancelContact-default']"); + By eliminaMailButton = By.xpath("//button[@id='cancelContact-default_email']"); getWebDriverWait(10).withMessage("il Bottone elimina e-mail non presente").until(ExpectedConditions.elementToBeClickable(eliminaMailButton)); this.js().executeScript("arguments[0].click();", this.element(eliminaMailButton)); - logger.info("Log eliminaEmailEsistente: " + driver.getPageSource()); } public void insertEmail(String emailPEC) { @@ -206,7 +205,7 @@ public void selezionaTipoPec() { } public void checkPostModifica() { - By saveButton = By.id("saveModifyButton-default"); + By saveButton = By.id("saveContact-default_email"); By cancelButton = By.xpath("//button[contains(text(),'Annulla')]"); By emailField = By.id("default_email"); getWebDriverWait(10).withMessage("Non si visualizza il bottone salva e non è cliccabile").until(ExpectedConditions.and( diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/RecapitiTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/RecapitiTest.java index 7e74791bf..8168ea553 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/RecapitiTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/RecapitiTest.java @@ -86,7 +86,7 @@ public void nellaPaginaITuoiRecapitiSiInserisceLEmailErrata(String emailErrata) @Then("Nella pagina I Tuoi Recapiti si visualizza correttamente il messaggio email errata") public void nellaPaginaITuoiRecapitiSiVisualizzaCorrettamenteIlMessaggioEmailErrata() { String errorMessageRead = recapitiDestinatarioPage.getEmailErrorMessage(); - if (!errorMessageRead.contains("Indirizzo e-mail non valido") && !errorMessageRead.contains("Scrivi massimo 254 caratteri")) { + if (!errorMessageRead.contains("Indirizzo email non valido") && !errorMessageRead.contains("Scrivi massimo 254 caratteri")) { Assert.fail("messaggio di errore letto : '" + errorMessageRead + "' non è uguale a : Indirizzo e-mail non valido o Scrivi massimo 254 caratteri"); } } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java index 41942fb2e..6b52a594a 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java @@ -585,7 +585,7 @@ public void nellaPaginaITuoiRecapitiSiCliccaSulBottoneEliminaEmailESiConfermaNel ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(this.driver); iTuoiRecapitiPage.eliminaEmailEsistente(); - if (recapitiDestinatarioPage.waitLoadPopUpElimina().equalsIgnoreCase("Rimuovi e-mail")) { + if (recapitiDestinatarioPage.waitLoadPopUpElimina().equalsIgnoreCase("Rimuovi email")) { recapitiDestinatarioPage.confermaButtonEliminaClick(); } else { recapitiDestinatarioPage.clickSuChiudiPopUp(); @@ -601,7 +601,7 @@ public void nellaPaginaITuoiRecapitiSiCliccaSulBottoneEliminaEmailESiAnnullaNelP ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(this.driver); iTuoiRecapitiPage.eliminaEmailEsistente(); - if (recapitiDestinatarioPage.waitLoadPopUpElimina().equalsIgnoreCase("Rimuovi e-mail")) { + if (recapitiDestinatarioPage.waitLoadPopUpElimina().equalsIgnoreCase("Rimuovi email")) { recapitiDestinatarioPage.clickButtonAnnullaEliminazioneInPopUp(); } else { recapitiDestinatarioPage.clickSuChiudiPopUp(); diff --git a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/001_031_NEG_inserimentoPECSbagliata.feature b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/001_031_NEG_inserimentoPECSbagliata.feature index 2f3cdf37e..cae2db785 100644 --- a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/001_031_NEG_inserimentoPECSbagliata.feature +++ b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/001_031_NEG_inserimentoPECSbagliata.feature @@ -4,6 +4,7 @@ Feature: La persona fisica inserisce una PEC sbagliata @TA_inserimentoPECErrataPF @recapitiPF @PF + @Alima Scenario: PN-9240-B31 - La persona fisica inserisce una PEC sbagliata Given PF - Si effettua la login tramite token exchange come "delegante", e viene visualizzata la dashboard diff --git a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/002_033_inserimentoOTPSbagliatoPec.feature b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/002_033_inserimentoOTPSbagliatoPec.feature index 6ea126a03..64a53bee9 100644 --- a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/002_033_inserimentoOTPSbagliatoPec.feature +++ b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/002_033_inserimentoOTPSbagliatoPec.feature @@ -4,6 +4,7 @@ Feature:La persona fisica inserisce una OTP sbagliato PEC @TA_inserimentoOTPPECErratoPF @PF @recapitiPF + @Alima Scenario:La persona fisica loggato inserisce un OTP sbagliato PEC Given PF - Si effettua la login tramite token exchange come "delegante", e viene visualizzata la dashboard diff --git a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/003_031_inserimentoIndirizzoPEC.feature b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/003_031_inserimentoIndirizzoPEC.feature index 59a87dd2d..75dce4591 100644 --- a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/003_031_inserimentoIndirizzoPEC.feature +++ b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/003_031_inserimentoIndirizzoPEC.feature @@ -4,6 +4,7 @@ Feature: la persona fisica inserisce una email pec @TA_inserimentoPECPF @PF @recapitiPF + @Alima Scenario: PN-9240-A31 - La persona fisica inserisce una email pec Given PF - Si effettua la login tramite token exchange come "delegante", e viene visualizzata la dashboard diff --git a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/004_032_modificaIndirizzoPEC.feature b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/004_032_modificaIndirizzoPEC.feature index 5a8c4a7dd..2c55daf6d 100644 --- a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/004_032_modificaIndirizzoPEC.feature +++ b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/004_032_modificaIndirizzoPEC.feature @@ -4,6 +4,7 @@ Feature: la persona fisica modifica l'indirizzo pec già presente @PF @TA_modificaPECPF @recapitiPF + @Alima Scenario: PN-9306-D32 - la persona fisica modifica l'indirizzo pec già presente Given PF - Si effettua la login tramite token exchange come "delegante", e viene visualizzata la dashboard diff --git a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/005_034_NEG1_inserimentoOTPEmailSbagliato.feature b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/005_034_NEG1_inserimentoOTPEmailSbagliato.feature index 219b755de..c16075082 100644 --- a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/005_034_NEG1_inserimentoOTPEmailSbagliato.feature +++ b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/005_034_NEG1_inserimentoOTPEmailSbagliato.feature @@ -4,6 +4,7 @@ Feature: la persona fisica inserisce un OTP email sbagliato @TA_inserimentoOTPMailErratoPF @PF @recapitiPF + @Alima Scenario: PN-9308-E34 - la persona fisica inserisce un OTP email sbagliato Given PF - Si effettua la login tramite token exchange come "delegante", e viene visualizzata la dashboard @@ -12,7 +13,6 @@ Feature: la persona fisica inserisce un OTP email sbagliato And Si visualizza correttamente la pagina I Tuoi Recapiti And Nella pagina I Tuoi Recapiti si controlla che non ci sia già una email And Si inserisce l'email della "personaFisica" e si clicca sul bottone avvisami via email - And Si visualizza correttamente il pop-up e si clicca su conferma And Nella pagina I Tuoi Recapiti si visualizza correttamente il pop-up di inserimento OTP And Nella pagina I Tuoi Recapiti si inserisce OTP sbagliato "15494" And Nella pagina I Tuoi Recapiti clicca sul bottone conferma diff --git a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/006_034_NEG_inserimentoEmailSbagliata.feature b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/006_034_NEG_inserimentoEmailSbagliata.feature index a97b8769f..d4f35cf63 100644 --- a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/006_034_NEG_inserimentoEmailSbagliata.feature +++ b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/006_034_NEG_inserimentoEmailSbagliata.feature @@ -4,6 +4,7 @@ Feature: La persona fisica inserisce una email sbagliata @TA_inserimentoEmailErrataPF @PF @recapitiPF + @Alima Scenario: PN-9308-B34 - La persona fisica inserisce una email sbagliata Given PF - Si effettua la login tramite token exchange come "delegante", e viene visualizzata la dashboard diff --git a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/007_034_inserimentoIndirizzoEmail.feature b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/007_034_inserimentoIndirizzoEmail.feature index c00f41f25..60db11130 100644 --- a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/007_034_inserimentoIndirizzoEmail.feature +++ b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/007_034_inserimentoIndirizzoEmail.feature @@ -4,16 +4,15 @@ Feature: la persona fisica inserisce una Email @TA_inserimentoEmailPF @recapitiPF @PF + @Alima Scenario: PN-9308-A34 - la persona fisica inserisce una Email Given PF - Si effettua la login tramite token exchange come "delegante", e viene visualizzata la dashboard And Rimuovi tutti i recapiti se esistono When Nella pagina Piattaforma Notifiche persona fisica si clicca sul bottone I Tuoi Recapiti And Si visualizza correttamente la pagina I Tuoi Recapiti - And Nella pagina I Tuoi Recapiti si visualizza correttamente la sezione 'E-mail o numero di cellulare' And Nella pagina I Tuoi Recapiti si controlla che non ci sia già una email And Si inserisce l'email della "personaFisica" e si clicca sul bottone avvisami via email - And Si visualizza correttamente il pop-up e si clicca su conferma And Nella pagina I Tuoi Recapiti si visualizza correttamente il pop-up di inserimento OTP And Nella pagina I Tuoi Recapiti si recupera l'OTP della Email tramite request method "personaFisica" And Nella pagina I Tuoi Recapiti si inserisce l'OTP ricevuto via Email "personaFisica" diff --git a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/008_035_modificaIndirizzoEmail.feature b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/008_035_modificaIndirizzoEmail.feature index 23b631e6c..27940baed 100644 --- a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/008_035_modificaIndirizzoEmail.feature +++ b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/008_035_modificaIndirizzoEmail.feature @@ -2,8 +2,9 @@ Feature: la persona fisica modifica l'indirizzo Email @TestSuite @TA_modificaEmailPF - @PF + @PFz @recapitiPF + @Alima Scenario: PN-9309 - la persona fisica modifica l'indirizzo Email Given PF - Si effettua la login tramite token exchange come "delegante", e viene visualizzata la dashboard diff --git a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/009_037_NEG1_inserimentoOTPNumeroDiTelefonoSbagliato.feature b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/009_037_NEG1_inserimentoOTPNumeroDiTelefonoSbagliato.feature index 15a9967e9..6547a1ef9 100644 --- a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/009_037_NEG1_inserimentoOTPNumeroDiTelefonoSbagliato.feature +++ b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/009_037_NEG1_inserimentoOTPNumeroDiTelefonoSbagliato.feature @@ -4,6 +4,7 @@ Feature: la persona fisica inserisce l'OTP numero di telefono errato @TA_inserimentoOTPTelefonoErrato @PF @recapitiPF + @Alima Scenario: PN-9311-C37 - la persona fisica inserisce l'OTP numero di telefono errato Given PF - Si effettua la login tramite token exchange come "delegante", e viene visualizzata la dashboard @@ -11,7 +12,6 @@ Feature: la persona fisica inserisce l'OTP numero di telefono errato When Nella pagina Piattaforma Notifiche persona fisica si clicca sul bottone I Tuoi Recapiti And Si visualizza correttamente la pagina I Tuoi Recapiti And Nella pagina I Tuoi Recapiti si inserisce il numero di telefono del PF "personaFisica" e clicca sul bottone avvisami via SMS - And Si visualizza correttamente il pop-up e si clicca su conferma And Nella pagina I Tuoi Recapiti si visualizza correttamente il pop-up di inserimento OTP And Nella pagina I Tuoi Recapiti si inserisce OTP sbagliato "15494" And Nella pagina I Tuoi Recapiti clicca sul bottone conferma diff --git a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/010_037_NEG_inserimentoNumeroDiTelefonoSbagliato.feature b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/010_037_NEG_inserimentoNumeroDiTelefonoSbagliato.feature index 56f25c2b1..bac56fed3 100644 --- a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/010_037_NEG_inserimentoNumeroDiTelefonoSbagliato.feature +++ b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/010_037_NEG_inserimentoNumeroDiTelefonoSbagliato.feature @@ -4,6 +4,8 @@ Feature: la persona fisica inserisce un numero di telefono errato @TA_inserimentoTelefonoErratoPF @PF @recapitiPF + @Alima + Scenario: PN-9311-B37 - La persona fisica inserisce un numero di telefono errato Given PF - Si effettua la login tramite token exchange come "delegante", e viene visualizzata la dashboard And Rimuovi tutti i recapiti se esistono diff --git a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/012_040_1_inserimentoIndirizzoEmailAggiuntivo.feature b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/012_040_1_inserimentoIndirizzoEmailAggiuntivo.feature index 80943a57c..aad271258 100644 --- a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/012_040_1_inserimentoIndirizzoEmailAggiuntivo.feature +++ b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/012_040_1_inserimentoIndirizzoEmailAggiuntivo.feature @@ -1,6 +1,6 @@ Feature: la persona fisica inserisce un indirizzo Email aggiuntivo - @TestSuite + #@TestSuite @PF @TA_emailAggiuntivaPF @recapitiPF diff --git a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/013_040_inserimentoIndirizzoPECAggiuntivo.feature b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/013_040_inserimentoIndirizzoPECAggiuntivo.feature index 5abeba036..025d7b204 100644 --- a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/013_040_inserimentoIndirizzoPECAggiuntivo.feature +++ b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/013_040_inserimentoIndirizzoPECAggiuntivo.feature @@ -1,6 +1,6 @@ Feature: la persona fisica inserisce un indirizzo pec aggiuntivo - @TestSuite + #@TestSuite @TA_PECAggiuntivaPF @recapitiPF @PF diff --git a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/015_033B_annullaeliminaIndirizzoPEC.feature b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/015_033B_annullaeliminaIndirizzoPEC.feature index 3a869e8ee..5d3bf9df8 100644 --- a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/015_033B_annullaeliminaIndirizzoPEC.feature +++ b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/015_033B_annullaeliminaIndirizzoPEC.feature @@ -4,6 +4,7 @@ Feature: la persona fisica elimina l'indirizzo pec @PF @TA_annulaEliminaPECPF @recapitiPF + @Alima Scenario: PN-9307-B33 - La persona fisica elimina l'indirizzo pec Given PF - Si effettua la login tramite token exchange come "delegante", e viene visualizzata la dashboard diff --git a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/015_033_eliminaIndirizzoPEC.feature b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/015_033_eliminaIndirizzoPEC.feature index d6128e7c1..3dc205de6 100644 --- a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/015_033_eliminaIndirizzoPEC.feature +++ b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/015_033_eliminaIndirizzoPEC.feature @@ -4,6 +4,7 @@ Feature: la persona fisica elimina l'indirizzo pec @PF @TA_eliminaPECPF @recapitiPF + @Alima Scenario: PN-9307-A33 - La persona fisica elimina l'indirizzo pec Given PF - Si effettua la login tramite token exchange come "delegante", e viene visualizzata la dashboard diff --git a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/016_036B_annullaeliminaIndirizzoEmail.feature b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/016_036B_annullaeliminaIndirizzoEmail.feature index 39149c37c..c5007e2b1 100644 --- a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/016_036B_annullaeliminaIndirizzoEmail.feature +++ b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/016_036B_annullaeliminaIndirizzoEmail.feature @@ -4,6 +4,7 @@ Feature: la persona fisica elimina l'indirizzo Email @TA_annullaeliminaEmailPF @recapitiPF @PF + @Alima Scenario: PN-9310-B36 - la persona fisica elimina l'indirizzo Email Given PF - Si effettua la login tramite token exchange come "delegante", e viene visualizzata la dashboard diff --git a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/016_036_eliminaIndirizzoEmail.feature b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/016_036_eliminaIndirizzoEmail.feature index d9e398ec2..957de3a0a 100644 --- a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/016_036_eliminaIndirizzoEmail.feature +++ b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/016_036_eliminaIndirizzoEmail.feature @@ -4,6 +4,7 @@ Feature: la persona fisica elimina l'indirizzo Email @TA_eliminaEmailPF @recapitiPF @PF + @Alima Scenario: PN-9310-A36 - la persona fisica elimina l'indirizzo Email Given PF - Si effettua la login tramite token exchange come "delegante", e viene visualizzata la dashboard diff --git a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/211_A211_inserimentoOTPSbagliatoRecapiti.feature b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/211_A211_inserimentoOTPSbagliatoRecapiti.feature index a7e73f844..ff6d6c19c 100644 --- a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/211_A211_inserimentoOTPSbagliatoRecapiti.feature +++ b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/211_A211_inserimentoOTPSbagliatoRecapiti.feature @@ -4,6 +4,7 @@ Feature:La persona fisica inserisce una OTP sbagliato PEC @TA_inserimentoOTP3Volte @PF @recapitiPF + @Alima #TEST SOLO IN HEADLESS Scenario: Recapiti - Messaggio di errore dopo 3 tentativi inserimento OTP @@ -20,13 +21,11 @@ Feature:La persona fisica inserisce una OTP sbagliato PEC And Cliccare sul bottone Annulla And Nella pagina I Tuoi Recapiti si controlla che non ci sia già una email And Si inserisce l'email "email@test.it" e si clicca sul bottone avvisami via email - And Si visualizza correttamente il pop-up e si clicca su conferma And Nella pagina I Tuoi Recapiti si visualizza correttamente il pop-up di inserimento OTP And Nella pagina I Tuoi Recapiti si inserisce OTP sbagliato tre volte "15494" And Si visualizza correttamente il messaggio di errore And Cliccare sul bottone Annulla And Nella pagina I Tuoi Recapiti si inserisce il numero di telefono PF "3409876543" e clicca sul bottone avvisami via SMS - And Si visualizza correttamente il pop-up e si clicca su conferma And Nella pagina I Tuoi Recapiti si visualizza correttamente il pop-up di inserimento OTP And Nella pagina I Tuoi Recapiti si inserisce OTP sbagliato tre volte "15494" And Si visualizza correttamente il messaggio di errore From 32c60241f2986cd467bcda0d59f871356662abfa Mon Sep 17 00:00:00 2001 From: AlimaZhansultan Date: Tue, 15 Oct 2024 00:58:33 +0200 Subject: [PATCH 051/212] * Refactor su test Recapiti PF --- .../altriRecapiti/008_035_modificaIndirizzoEmail.feature | 1 - 1 file changed, 1 deletion(-) diff --git a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/008_035_modificaIndirizzoEmail.feature b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/008_035_modificaIndirizzoEmail.feature index 27940baed..fb050b24f 100644 --- a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/008_035_modificaIndirizzoEmail.feature +++ b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/008_035_modificaIndirizzoEmail.feature @@ -4,7 +4,6 @@ Feature: la persona fisica modifica l'indirizzo Email @TA_modificaEmailPF @PFz @recapitiPF - @Alima Scenario: PN-9309 - la persona fisica modifica l'indirizzo Email Given PF - Si effettua la login tramite token exchange come "delegante", e viene visualizzata la dashboard From 6288d6b31df65282c300867f8ee0b841454afdb3 Mon Sep 17 00:00:00 2001 From: AlimaZhansultan Date: Tue, 15 Oct 2024 01:18:11 +0200 Subject: [PATCH 052/212] * Final commit --- .../altriRecapiti/001_031_NEG_inserimentoPECSbagliata.feature | 1 - .../altriRecapiti/002_033_inserimentoOTPSbagliatoPec.feature | 1 - .../altriRecapiti/003_031_inserimentoIndirizzoPEC.feature | 1 - .../altriRecapiti/004_032_modificaIndirizzoPEC.feature | 1 - .../005_034_NEG1_inserimentoOTPEmailSbagliato.feature | 1 - .../altriRecapiti/006_034_NEG_inserimentoEmailSbagliata.feature | 1 - .../altriRecapiti/007_034_inserimentoIndirizzoEmail.feature | 1 - .../altriRecapiti/008_035_modificaIndirizzoEmail.feature | 2 +- ...009_037_NEG1_inserimentoOTPNumeroDiTelefonoSbagliato.feature | 1 - .../010_037_NEG_inserimentoNumeroDiTelefonoSbagliato.feature | 1 - .../altriRecapiti/014_041_visualizzazioneAltriRecapiti.feature | 2 +- .../altriRecapiti/015_033B_annullaeliminaIndirizzoPEC.feature | 1 - .../altriRecapiti/015_033_eliminaIndirizzoPEC.feature | 1 - .../altriRecapiti/016_036B_annullaeliminaIndirizzoEmail.feature | 1 - .../altriRecapiti/016_036_eliminaIndirizzoEmail.feature | 1 - .../017_001_inserimentoRecapitoSpecificoEnteRadice.feature | 2 +- .../211_A211_inserimentoOTPSbagliatoRecapiti.feature | 1 - 17 files changed, 3 insertions(+), 17 deletions(-) diff --git a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/001_031_NEG_inserimentoPECSbagliata.feature b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/001_031_NEG_inserimentoPECSbagliata.feature index cae2db785..2f3cdf37e 100644 --- a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/001_031_NEG_inserimentoPECSbagliata.feature +++ b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/001_031_NEG_inserimentoPECSbagliata.feature @@ -4,7 +4,6 @@ Feature: La persona fisica inserisce una PEC sbagliata @TA_inserimentoPECErrataPF @recapitiPF @PF - @Alima Scenario: PN-9240-B31 - La persona fisica inserisce una PEC sbagliata Given PF - Si effettua la login tramite token exchange come "delegante", e viene visualizzata la dashboard diff --git a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/002_033_inserimentoOTPSbagliatoPec.feature b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/002_033_inserimentoOTPSbagliatoPec.feature index 64a53bee9..6ea126a03 100644 --- a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/002_033_inserimentoOTPSbagliatoPec.feature +++ b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/002_033_inserimentoOTPSbagliatoPec.feature @@ -4,7 +4,6 @@ Feature:La persona fisica inserisce una OTP sbagliato PEC @TA_inserimentoOTPPECErratoPF @PF @recapitiPF - @Alima Scenario:La persona fisica loggato inserisce un OTP sbagliato PEC Given PF - Si effettua la login tramite token exchange come "delegante", e viene visualizzata la dashboard diff --git a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/003_031_inserimentoIndirizzoPEC.feature b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/003_031_inserimentoIndirizzoPEC.feature index 75dce4591..59a87dd2d 100644 --- a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/003_031_inserimentoIndirizzoPEC.feature +++ b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/003_031_inserimentoIndirizzoPEC.feature @@ -4,7 +4,6 @@ Feature: la persona fisica inserisce una email pec @TA_inserimentoPECPF @PF @recapitiPF - @Alima Scenario: PN-9240-A31 - La persona fisica inserisce una email pec Given PF - Si effettua la login tramite token exchange come "delegante", e viene visualizzata la dashboard diff --git a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/004_032_modificaIndirizzoPEC.feature b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/004_032_modificaIndirizzoPEC.feature index 2c55daf6d..5a8c4a7dd 100644 --- a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/004_032_modificaIndirizzoPEC.feature +++ b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/004_032_modificaIndirizzoPEC.feature @@ -4,7 +4,6 @@ Feature: la persona fisica modifica l'indirizzo pec già presente @PF @TA_modificaPECPF @recapitiPF - @Alima Scenario: PN-9306-D32 - la persona fisica modifica l'indirizzo pec già presente Given PF - Si effettua la login tramite token exchange come "delegante", e viene visualizzata la dashboard diff --git a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/005_034_NEG1_inserimentoOTPEmailSbagliato.feature b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/005_034_NEG1_inserimentoOTPEmailSbagliato.feature index c16075082..ee46859ef 100644 --- a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/005_034_NEG1_inserimentoOTPEmailSbagliato.feature +++ b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/005_034_NEG1_inserimentoOTPEmailSbagliato.feature @@ -4,7 +4,6 @@ Feature: la persona fisica inserisce un OTP email sbagliato @TA_inserimentoOTPMailErratoPF @PF @recapitiPF - @Alima Scenario: PN-9308-E34 - la persona fisica inserisce un OTP email sbagliato Given PF - Si effettua la login tramite token exchange come "delegante", e viene visualizzata la dashboard diff --git a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/006_034_NEG_inserimentoEmailSbagliata.feature b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/006_034_NEG_inserimentoEmailSbagliata.feature index d4f35cf63..a97b8769f 100644 --- a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/006_034_NEG_inserimentoEmailSbagliata.feature +++ b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/006_034_NEG_inserimentoEmailSbagliata.feature @@ -4,7 +4,6 @@ Feature: La persona fisica inserisce una email sbagliata @TA_inserimentoEmailErrataPF @PF @recapitiPF - @Alima Scenario: PN-9308-B34 - La persona fisica inserisce una email sbagliata Given PF - Si effettua la login tramite token exchange come "delegante", e viene visualizzata la dashboard diff --git a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/007_034_inserimentoIndirizzoEmail.feature b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/007_034_inserimentoIndirizzoEmail.feature index 60db11130..bab73acad 100644 --- a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/007_034_inserimentoIndirizzoEmail.feature +++ b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/007_034_inserimentoIndirizzoEmail.feature @@ -4,7 +4,6 @@ Feature: la persona fisica inserisce una Email @TA_inserimentoEmailPF @recapitiPF @PF - @Alima Scenario: PN-9308-A34 - la persona fisica inserisce una Email Given PF - Si effettua la login tramite token exchange come "delegante", e viene visualizzata la dashboard diff --git a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/008_035_modificaIndirizzoEmail.feature b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/008_035_modificaIndirizzoEmail.feature index fb050b24f..94b12df63 100644 --- a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/008_035_modificaIndirizzoEmail.feature +++ b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/008_035_modificaIndirizzoEmail.feature @@ -1,6 +1,6 @@ Feature: la persona fisica modifica l'indirizzo Email - @TestSuite + #@TestSuite @TA_modificaEmailPF @PFz @recapitiPF diff --git a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/009_037_NEG1_inserimentoOTPNumeroDiTelefonoSbagliato.feature b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/009_037_NEG1_inserimentoOTPNumeroDiTelefonoSbagliato.feature index 6547a1ef9..3cf887ce1 100644 --- a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/009_037_NEG1_inserimentoOTPNumeroDiTelefonoSbagliato.feature +++ b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/009_037_NEG1_inserimentoOTPNumeroDiTelefonoSbagliato.feature @@ -4,7 +4,6 @@ Feature: la persona fisica inserisce l'OTP numero di telefono errato @TA_inserimentoOTPTelefonoErrato @PF @recapitiPF - @Alima Scenario: PN-9311-C37 - la persona fisica inserisce l'OTP numero di telefono errato Given PF - Si effettua la login tramite token exchange come "delegante", e viene visualizzata la dashboard diff --git a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/010_037_NEG_inserimentoNumeroDiTelefonoSbagliato.feature b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/010_037_NEG_inserimentoNumeroDiTelefonoSbagliato.feature index bac56fed3..4b672a2fd 100644 --- a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/010_037_NEG_inserimentoNumeroDiTelefonoSbagliato.feature +++ b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/010_037_NEG_inserimentoNumeroDiTelefonoSbagliato.feature @@ -4,7 +4,6 @@ Feature: la persona fisica inserisce un numero di telefono errato @TA_inserimentoTelefonoErratoPF @PF @recapitiPF - @Alima Scenario: PN-9311-B37 - La persona fisica inserisce un numero di telefono errato Given PF - Si effettua la login tramite token exchange come "delegante", e viene visualizzata la dashboard diff --git a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/014_041_visualizzazioneAltriRecapiti.feature b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/014_041_visualizzazioneAltriRecapiti.feature index f2265ebca..299a5acc1 100644 --- a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/014_041_visualizzazioneAltriRecapiti.feature +++ b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/014_041_visualizzazioneAltriRecapiti.feature @@ -1,6 +1,6 @@ Feature: la persona fisica visualizza correttamente la sezione altri recapiti - @TestSuite + #@TestSuite @TA_visualizzazioneSezioneAltriRecapitiPF @PF @recapitiPF diff --git a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/015_033B_annullaeliminaIndirizzoPEC.feature b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/015_033B_annullaeliminaIndirizzoPEC.feature index 5d3bf9df8..3a869e8ee 100644 --- a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/015_033B_annullaeliminaIndirizzoPEC.feature +++ b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/015_033B_annullaeliminaIndirizzoPEC.feature @@ -4,7 +4,6 @@ Feature: la persona fisica elimina l'indirizzo pec @PF @TA_annulaEliminaPECPF @recapitiPF - @Alima Scenario: PN-9307-B33 - La persona fisica elimina l'indirizzo pec Given PF - Si effettua la login tramite token exchange come "delegante", e viene visualizzata la dashboard diff --git a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/015_033_eliminaIndirizzoPEC.feature b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/015_033_eliminaIndirizzoPEC.feature index 3dc205de6..d6128e7c1 100644 --- a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/015_033_eliminaIndirizzoPEC.feature +++ b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/015_033_eliminaIndirizzoPEC.feature @@ -4,7 +4,6 @@ Feature: la persona fisica elimina l'indirizzo pec @PF @TA_eliminaPECPF @recapitiPF - @Alima Scenario: PN-9307-A33 - La persona fisica elimina l'indirizzo pec Given PF - Si effettua la login tramite token exchange come "delegante", e viene visualizzata la dashboard diff --git a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/016_036B_annullaeliminaIndirizzoEmail.feature b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/016_036B_annullaeliminaIndirizzoEmail.feature index c5007e2b1..39149c37c 100644 --- a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/016_036B_annullaeliminaIndirizzoEmail.feature +++ b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/016_036B_annullaeliminaIndirizzoEmail.feature @@ -4,7 +4,6 @@ Feature: la persona fisica elimina l'indirizzo Email @TA_annullaeliminaEmailPF @recapitiPF @PF - @Alima Scenario: PN-9310-B36 - la persona fisica elimina l'indirizzo Email Given PF - Si effettua la login tramite token exchange come "delegante", e viene visualizzata la dashboard diff --git a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/016_036_eliminaIndirizzoEmail.feature b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/016_036_eliminaIndirizzoEmail.feature index 957de3a0a..d9e398ec2 100644 --- a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/016_036_eliminaIndirizzoEmail.feature +++ b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/016_036_eliminaIndirizzoEmail.feature @@ -4,7 +4,6 @@ Feature: la persona fisica elimina l'indirizzo Email @TA_eliminaEmailPF @recapitiPF @PF - @Alima Scenario: PN-9310-A36 - la persona fisica elimina l'indirizzo Email Given PF - Si effettua la login tramite token exchange come "delegante", e viene visualizzata la dashboard diff --git a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/017_001_inserimentoRecapitoSpecificoEnteRadice.feature b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/017_001_inserimentoRecapitoSpecificoEnteRadice.feature index c46ec561c..134247064 100644 --- a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/017_001_inserimentoRecapitoSpecificoEnteRadice.feature +++ b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/017_001_inserimentoRecapitoSpecificoEnteRadice.feature @@ -1,6 +1,6 @@ Feature: la persona fisica inserisce un recapito aggiuntivo da un ente radice - @TestSuite + #@TestSuite @TA_inserimentoRecapitoAggiuntivoDaEnteRadicePF @PF @recapitiPF diff --git a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/211_A211_inserimentoOTPSbagliatoRecapiti.feature b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/211_A211_inserimentoOTPSbagliatoRecapiti.feature index ff6d6c19c..15c70501b 100644 --- a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/211_A211_inserimentoOTPSbagliatoRecapiti.feature +++ b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/211_A211_inserimentoOTPSbagliatoRecapiti.feature @@ -4,7 +4,6 @@ Feature:La persona fisica inserisce una OTP sbagliato PEC @TA_inserimentoOTP3Volte @PF @recapitiPF - @Alima #TEST SOLO IN HEADLESS Scenario: Recapiti - Messaggio di errore dopo 3 tentativi inserimento OTP From 4dfae60a26b41ca7570c53dd0f9ca376e2c6fa6e Mon Sep 17 00:00:00 2001 From: AlimaZhansultan Date: Tue, 15 Oct 2024 01:26:43 +0200 Subject: [PATCH 053/212] * Final commit --- .../altriRecapiti/008_035_modificaIndirizzoEmail.feature | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/008_035_modificaIndirizzoEmail.feature b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/008_035_modificaIndirizzoEmail.feature index 94b12df63..6638c1271 100644 --- a/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/008_035_modificaIndirizzoEmail.feature +++ b/src/test/resources/feature/3-destinatario/personaFisica/altriRecapiti/008_035_modificaIndirizzoEmail.feature @@ -2,7 +2,7 @@ Feature: la persona fisica modifica l'indirizzo Email #@TestSuite @TA_modificaEmailPF - @PFz + @PF @recapitiPF Scenario: PN-9309 - la persona fisica modifica l'indirizzo Email From 65286a4b984330d0beaffb00a3814d3872c8d466 Mon Sep 17 00:00:00 2001 From: scritelli Date: Tue, 15 Oct 2024 09:32:21 +0200 Subject: [PATCH 054/212] Rilascio fix e prova di git --- src/test/java/it/pn/frontend/e2e/run/RunCucumberTest.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/test/java/it/pn/frontend/e2e/run/RunCucumberTest.java b/src/test/java/it/pn/frontend/e2e/run/RunCucumberTest.java index 7deccc0d1..6c9cfd254 100644 --- a/src/test/java/it/pn/frontend/e2e/run/RunCucumberTest.java +++ b/src/test/java/it/pn/frontend/e2e/run/RunCucumberTest.java @@ -43,5 +43,7 @@ public class RunCucumberTest { + + } From 0f3f5674529fbbd9f0779ec936f2d0d3ede82774 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Tue, 15 Oct 2024 10:53:46 +0200 Subject: [PATCH 055/212] add wait --- .../destinatario/personaFisica/RecapitiPersonaFisicaTest.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java index 13984466a..2905e3ce8 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java @@ -163,6 +163,7 @@ public void nellaPaginaITuoiRecapitiSiInserisceLaPECErrata(String pecErrata) { @Then("Si visualizza correttamente il messaggio di pec errata") public void nellaPaginaITuoiRecapitiSiVisualizzaCorrettamenteIlMessaggioDiPecErrata() { + WebTool.waitTime(3); String errorMessageRead = recapitiDestinatarioPage.getPecErrorMessage(); Assertions.assertEquals("messaggio di errore letto : '" + errorMessageRead + "' non è uguale a : Indirizzo PEC non valido", "Indirizzo PEC non valido", errorMessageRead); } From ddbe44dd1aa54bceee977d54f527f58e0a860a20 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Tue, 15 Oct 2024 14:24:35 +0200 Subject: [PATCH 056/212] fix --- .../frontend/e2e/stepDefinitions/common/ConfigFileReader.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/ConfigFileReader.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/ConfigFileReader.java index 4211791e7..9e1fcde65 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/ConfigFileReader.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/ConfigFileReader.java @@ -2,6 +2,7 @@ import io.cucumber.java.After; import io.cucumber.java.BeforeAll; +import org.junit.jupiter.api.AfterAll; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.*; @@ -53,7 +54,7 @@ public static void startTestSuite() { logger.info("start the test suite = " + testSuite); } - @After + @AfterAll public static void finishTestSuite() { logger.info("finish the test suite = " + testSuite); } From 720ab793e62074187daed671924129a405248d76 Mon Sep 17 00:00:00 2001 From: scritelli Date: Tue, 15 Oct 2024 14:25:26 +0200 Subject: [PATCH 057/212] Rilascio REFACTORING CODICE HOOKS --- .../it/pn/frontend/e2e/listeners/Hooks.java | 358 +++++++----------- 1 file changed, 132 insertions(+), 226 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java b/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java index b659545f6..be3a50b5a 100644 --- a/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java +++ b/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java @@ -1,8 +1,8 @@ package it.pn.frontend.e2e.listeners; + import io.cucumber.java.After; import io.cucumber.java.Before; import io.cucumber.java.Scenario; -import io.cucumber.java.en.And; import io.github.bonigarcia.wdm.WebDriverManager; import it.pn.frontend.e2e.model.address.DigitalAddress; import it.pn.frontend.e2e.model.singleton.MandateSingleton; @@ -11,19 +11,15 @@ import it.pn.frontend.e2e.utility.CookieConfig; import lombok.Getter; import org.apache.commons.io.FileUtils; -import org.junit.jupiter.api.*; import org.openqa.selenium.OutputType; import org.openqa.selenium.TakesScreenshot; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.chrome.ChromeOptions; import org.openqa.selenium.devtools.DevTools; -import org.openqa.selenium.devtools.DevToolsException; import org.openqa.selenium.devtools.HasDevTools; import org.openqa.selenium.devtools.v126.network.Network; -import org.openqa.selenium.devtools.v126.network.model.Headers; import org.openqa.selenium.devtools.v126.network.model.RequestWillBeSent; -import org.openqa.selenium.devtools.v126.network.model.ResourceType; import org.openqa.selenium.edge.EdgeDriver; import org.openqa.selenium.edge.EdgeOptions; import org.openqa.selenium.firefox.FirefoxDriver; @@ -33,316 +29,226 @@ import org.slf4j.LoggerFactory; import org.slf4j.MDC; - import java.io.File; import java.io.IOException; -import java.text.DateFormat; +import java.nio.file.Files; import java.text.SimpleDateFormat; import java.time.Duration; import java.util.*; -import java.util.concurrent.TimeUnit; public class Hooks { - private static final Logger logger = LoggerFactory.getLogger("Hooks"); + private static final Logger logger = LoggerFactory.getLogger(Hooks.class); public static WebDriver driver; - public DevTools devTools; - public Map requests = new HashMap<>(); - ; - + private DevTools devTools; + private final Map requests = new HashMap<>(); @Getter public static String scenario; - public static List netWorkInfos = new ArrayList<>(); + public static final List netWorkInfos = new ArrayList<>(); private String headless; private final CookieConfig cookieConfig = new CookieConfig(); private final String os = System.getProperty("os.name"); - - protected void firefox() { + private void setupFirefox() { WebDriverManager.firefoxdriver().setup(); - FirefoxProfile profile = new FirefoxProfile(); - FirefoxOptions firefoxOptions = new FirefoxOptions(); - firefoxOptions.setProfile(profile); + var firefoxProfile = new FirefoxProfile(); + var firefoxOptions = new FirefoxOptions(); + firefoxOptions.setProfile(firefoxProfile); firefoxOptions.addArguments("-private"); - if (this.headless != null && this.headless.equalsIgnoreCase("true")) { - firefoxOptions.addArguments("--width=1200"); - firefoxOptions.addArguments("--height=800"); - firefoxOptions.addArguments("--headless"); + if (Boolean.parseBoolean(this.headless)) { + firefoxOptions.addArguments("--width=1200", "--height=800", "--headless"); } driver = new FirefoxDriver(firefoxOptions); - if (this.headless != null && this.headless.equalsIgnoreCase("false")) { - driver.manage().window().maximize(); - } + driver.manage().window().maximize(); driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(5)); - logger.info("firefox driver started"); + logger.info("Firefox driver started"); } - protected void chrome() { + private void setupChrome() { WebDriverManager.chromedriver().setup(); - ChromeOptions chromeOptions = new ChromeOptions(); - chromeOptions.addArguments("--lang=it"); - chromeOptions.addArguments("--incognito"); - chromeOptions.addArguments("--disable-dev-shm-usage"); - chromeOptions.addArguments("--remote-allow-origins=*"); - chromeOptions.addArguments("--enable-clipboard"); - String downloadFilepath = System.getProperty("downloadFilePath"); - - HashMap chromePrefs = new HashMap(); - chromePrefs.put("download.default_directory", downloadFilepath); - + var chromeOptions = new ChromeOptions(); + chromeOptions.addArguments("--lang=it", "--incognito", "--disable-dev-shm-usage", "--remote-allow-origins=*", "--enable-clipboard"); + var downloadFilePath = System.getProperty("downloadFilePath"); + var chromePrefs = Map.of("download.default_directory", downloadFilePath); chromeOptions.setExperimentalOption("prefs", chromePrefs); - if (this.headless != null && this.headless.equalsIgnoreCase("true")) { - chromeOptions.addArguments("--no-sandbox"); - chromeOptions.addArguments("headless"); - chromeOptions.addArguments("window-size=1920,1080"); - } - driver = new ChromeDriver(chromeOptions); - if (this.headless != null && this.headless.equalsIgnoreCase("false")) { - driver.manage().window().maximize(); + if (Boolean.parseBoolean(this.headless)) { + chromeOptions.addArguments("--no-sandbox", "--headless", "window-size=1920,1080"); } + driver = new ChromeDriver(chromeOptions); + driver.manage().window().maximize(); driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10)); + setupDevTools(); + logger.info("Chrome driver started"); + } + + private void setupDevTools() { devTools = ((HasDevTools) driver).getDevTools(); devTools.createSession(); - devTools.send(Network.enable( - Optional.empty(), - Optional.empty(), - Optional.empty() - )); - - this.captureHttpRequests(); - this.captureHttpResponse(); - logger.info("chromedriver started"); + devTools.send(Network.enable(Optional.empty(), Optional.empty(), Optional.empty())); + captureHttpRequests(); + captureHttpResponse(); } private void captureHttpRequests() { - devTools.addListener( - Network.requestWillBeSent(), - request -> { - String url = request.getRequest().getUrl(); - if (!cookieConfig.getCookies(url).isEmpty()) { - cookieConfig.getCookies(url).forEach(cookie -> driver.manage().addCookie(cookie)); - } - requests.put(request.getRequestId().toString(), request); - } - ); + devTools.addListener(Network.requestWillBeSent(), request -> { + var url = request.getRequest().getUrl(); + cookieConfig.getCookies(url).forEach(cookie -> driver.manage().addCookie(cookie)); + requests.put(request.getRequestId().toString(), request); + }); } - public void captureHttpResponse() { - devTools.addListener( - Network.responseReceived(), - response -> { - String requestId = response.getRequestId().toString(); - if (requests.containsKey(requestId)) { - RequestWillBeSent request = requests.get(requestId); - Headers headers = request.getRequest().getHeaders(); - if (response.getType().equals(ResourceType.XHR)) { - NetWorkInfo netWorkInfo = new NetWorkInfo(); - if (headers.get("Authorization") != null) { - System.setProperty("token", Objects.requireNonNull(headers.get("Authorization")).toString()); - netWorkInfo.setAuthorizationBearer( - (Objects.requireNonNull(headers.get("Authorization"))).toString()); - } - netWorkInfo.setRequestId(requestId); - netWorkInfo.setRequestUrl(request.getRequest().getUrl()); - netWorkInfo.setRequestMethod(request.getRequest().getMethod()); - netWorkInfo.setResponseStatus(response.getResponse().getStatus().toString()); - try { - String bodyResponse = devTools.send(Network.getResponseBody(response.getRequestId())).getBody(); - netWorkInfo.setResponseBody(bodyResponse); - } catch (DevToolsException ignored) { - // Ignored because the response body is not always available. - } - netWorkInfos.add(netWorkInfo); - } + private void captureHttpResponse() { + devTools.addListener(Network.responseReceived(), response -> { + var requestId = response.getRequestId().toString(); + if (requests.containsKey(requestId)) { + var request = requests.get(requestId); + var headers = request.getRequest().getHeaders(); + + // Controlla il tipo di risorsa come stringa "XHR" + if ("XHR".equals(response.getType().toString())) { + var netWorkInfo = new NetWorkInfo(); + if (headers.get("Authorization") != null) { + var authHeader = headers.get("Authorization").toString(); + System.setProperty("token", authHeader); + netWorkInfo.setAuthorizationBearer(authHeader); + } + netWorkInfo.setRequestId(requestId); + netWorkInfo.setRequestUrl(request.getRequest().getUrl()); + netWorkInfo.setRequestMethod(request.getRequest().getMethod()); + netWorkInfo.setResponseStatus(response.getResponse().getStatus().toString()); + + try { + var bodyResponse = devTools.send(Network.getResponseBody(response.getRequestId())).getBody(); + netWorkInfo.setResponseBody(bodyResponse); + } catch (Exception ignored) { + // Ignorato perché non sempre è disponibile il body della risposta } - requests.remove(requestId); + + netWorkInfos.add(netWorkInfo); } - ); + } + requests.remove(requestId); + }); } - - protected void edge() { + private void setupEdge() { if (this.os.toLowerCase().contains("windows")) { WebDriverManager.edgedriver().setup(); } else { - Assertions.fail("browser edge non compatibile con il os : " + this.os); + throw new UnsupportedOperationException("Edge browser is not supported on OS: " + this.os); } - EdgeOptions edgeOptions = new EdgeOptions(); + var edgeOptions = new EdgeOptions(); edgeOptions.setCapability("ms:inPrivate", true); - if (this.headless != null && this.headless.equalsIgnoreCase("true")) { - edgeOptions.addArguments("window-size=1920,1080"); - edgeOptions.addArguments("--headless"); + if (Boolean.parseBoolean(this.headless)) { + edgeOptions.addArguments("window-size=1920,1080", "--headless"); } driver = new EdgeDriver(edgeOptions); - if (this.headless != null && this.headless.equalsIgnoreCase("false")) { - driver.manage().window().maximize(); - } - + driver.manage().window().maximize(); driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(20)); - logger.info("edge driver started"); + logger.info("Edge driver started"); } @Before public void startScenario(Scenario scenario) { + logger.info("----- START SCENARIO: {} -----", scenario.getName()); + Hooks.scenario = scenario.getName(); - logger.info("-------------------------------------------START SCENARIO: " + scenario.getName() + "------------------------------------------------"); - this.scenario = scenario.getName(); + scenario.getSourceTagNames().stream() + .filter(tag -> tag.startsWith("@TA_")) + .forEach(tag -> { + MDC.put("tag", tag); + MDC.put("team", "TA-QA"); + }); - Collection tags = scenario.getSourceTagNames(); - for (String tag : tags) { - if (tag.startsWith("@TA_")) { - MDC.put("tag", tag); - MDC.put("team", "TA-QA"); - } - } + var browser = Optional.ofNullable(System.getProperty("browser")) + .orElseThrow(() -> new IllegalArgumentException("Browser must be specified")); + this.headless = System.getProperty("headless", "false"); - logger.info("os type : " + this.os); - logger.info("user language : " + System.getProperty("user.language")); - - String browser = null; - logger.info("user language : " + System.getProperty("user.language")); - if (System.getProperty("browser") == null) { - Assertions.fail("valorizzare la variabile browser"); - } else { - browser = System.getProperty("browser"); - } - if (System.getProperty("headless") != null) { - this.headless = System.getProperty("headless"); - } - if (System.getProperty("environment") == null) { - Assertions.fail("valorizzare la variabile environment"); - } switch (browser) { - case "firefox" -> firefox(); - case "chrome" -> chrome(); - case "edge" -> edge(); - default -> { - logger.error("browser not correct"); - Assertions.fail("browser not correct"); - } + case "firefox" -> setupFirefox(); + case "chrome" -> setupChrome(); + case "edge" -> setupEdge(); + default -> throw new IllegalArgumentException("Unsupported browser: " + browser); } + cookieConfig.addCookie(); } @After - public void endScenario(Scenario scenario) { - + public void endScenario(Scenario scenario) throws IOException { System.clearProperty("IUN"); - - for (NetWorkInfo netWorkInfo : netWorkInfos) { - logger.info(netWorkInfo.getRequestId()); - logger.info(netWorkInfo.getRequestUrl()); - logger.info(netWorkInfo.getRequestMethod()); - logger.info(netWorkInfo.getResponseStatus()); - logger.info(netWorkInfo.getResponseBody()); - } + netWorkInfos.forEach(netWorkInfo -> { + logger.info("Request ID: {}", netWorkInfo.getRequestId()); + logger.info("Request URL: {}", netWorkInfo.getRequestUrl()); + logger.info("Method: {}", netWorkInfo.getRequestMethod()); + logger.info("Response Status: {}", netWorkInfo.getResponseStatus()); + logger.info("Response Body: {}", netWorkInfo.getResponseBody()); + }); if (scenario.isFailed()) { - logger.error("scenario go to error : " + scenario.getName()); - try { - File screenshot = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE); - byte[] screenshotByte = FileUtils.readFileToByteArray(screenshot); - Date date = Calendar.getInstance().getTime(); - DateFormat formatter = new SimpleDateFormat("dd_MM_yyyy_HH_mm_ss"); - String today = formatter.format(date); - String testCaseFailed = "logs/" + scenario.getName() + "_" + today + ".png"; - FileUtils.copyFile(screenshot, new File(testCaseFailed)); - scenario.attach(screenshotByte, "image/png", scenario.getName()); - } catch (IOException e) { - logger.error(e.getCause().toString()); - } + logger.error("Scenario failed: {}", scenario.getName()); + var screenshot = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE); + var screenshotBytes = Files.readAllBytes(screenshot.toPath()); + var formatter = new SimpleDateFormat("dd_MM_yyyy_HH_mm_ss"); + var timestamp = formatter.format(new Date()); + var fileName = "logs/" + scenario.getName() + "_" + timestamp + ".png"; + FileUtils.copyFile(screenshot, new File(fileName)); + scenario.attach(screenshotBytes, "image/png", scenario.getName()); } - - logger.info("quit driver"); driver.quit(); requests.clear(); netWorkInfos.clear(); - try { - TimeUnit.SECONDS.sleep(5); - } catch (InterruptedException e) { - throw new RuntimeException(e); - } - logger.info("-------------------------------------------END SCENARIO: " + scenario.getName() + "------------------------------------------------"); + logger.info("----- END SCENARIO: {} -----", scenario.getName()); } - /** - * Clear the delegate of PF after the scenario - * P.S: This will work only if you invoke the feature step that creates the delegate - */ - @After("@DeleghePF or @DeleghePG") + @After("@DeleghePF or @DeleghePG") public void clearDelegate() { - logger.info("REVOCA TUTTE LE DELEGHE...."); - MandateSingleton mandateSingleton = MandateSingleton.getInstance(); - String mandateId = mandateSingleton.getMandateId(Hooks.getScenario()); + logger.info("Revoking all delegations..."); + var mandateId = MandateSingleton.getInstance().getMandateId(Hooks.getScenario()); if (mandateId != null) { - logger.info("REVOCA DELEGA: "+mandateId); - RestDelegation restDelegation = RestDelegation.getInstance(); - restDelegation.revokeDelegation(mandateId); - logger.info("Delega revocata con successo"); + RestDelegation.getInstance().revokeDelegation(mandateId); + logger.info("Delegation revoked: {}", mandateId); } else { - logger.info("mandateId non trovato"); + logger.info("Mandate ID not found"); } } - /** - * Clear directory of file downloaded - * P.S: This will work only if you invoke the feature step that creates the delegate - */ @After("@File") public void clearDirectory() { - String folderPath = System.getProperty("downloadFilePath"); - - File folder = new File(folderPath); - + var folderPath = System.getProperty("downloadFilePath"); + var folder = new File(folderPath); if (folder.isDirectory()) { - File[] files = folder.listFiles(); - for (File file : files) { - if (file.isFile()) { - if (file.delete()) { - System.out.println("File cancellato: " + file.getAbsolutePath()); - } else { - System.out.println("Impossibile cancellare il file: " + file.getAbsolutePath()); - } - } - } + Arrays.stream(Objects.requireNonNull(folder.listFiles())) + .filter(File::isFile) + .forEach(file -> { + if (file.delete()) { + logger.info("Deleted file: {}", file.getAbsolutePath()); + } else { + logger.warn("Failed to delete file: {}", file.getAbsolutePath()); + } + }); } } - /** - * Clear the contacts of PF after the scenario - * P.S: This will work only if there are any contacts available - */ - - @After(value = "@recapitiPF or @recapitiPG") - @And("Rimuovi tutti i recapiti se esistono") - public void clearRecapiti() throws IOException { - - RestContact restContact = RestContact.getInstance(); - List digitalAddress = restContact.getAllDigitalAddress(); - - // Check for legal ones and remove them - if (digitalAddress != null) { - logger.info("SENDER DIGITAL ADDRESS...." + digitalAddress); - logger.info("SENDER DIGITAL ADDRESS...." + digitalAddress.size()); - digitalAddress.forEach(addressDigital -> { - logger.info("SENDER_ID: " + addressDigital.getSenderId()); - if (addressDigital.getSenderId().equalsIgnoreCase("default")) { - - if ("PEC".equalsIgnoreCase(addressDigital.getChannelType())) { - logger.info("Remove Digital Address LegalPec: " + addressDigital.getSenderId()); + @After("@recapitiPF or @recapitiPG") + public void clearRecapiti() { + var restContact = RestContact.getInstance(); + var digitalAddresses = restContact.getAllDigitalAddress(); + if (digitalAddresses != null && !digitalAddresses.isEmpty()) { + digitalAddresses.forEach(address -> { + if ("default".equalsIgnoreCase(address.getSenderId())) { + if ("PEC".equalsIgnoreCase(address.getChannelType())) { restContact.removeDigitalAddressLegalPec(); } else { - logger.info("Remove Digital Address Courtesy Email: " + addressDigital.getSenderId()); restContact.removeDigitalAddressCourtesyEmail(); } } else { - logger.info("Remove Special Contact: " + addressDigital.getSenderId()); - restContact.removeSpecialContact(addressDigital); + restContact.removeSpecialContact(address); } }); } From d4a8918f4fa77d666a6aec99554a71ca3993aab2 Mon Sep 17 00:00:00 2001 From: scritelli Date: Tue, 15 Oct 2024 14:26:11 +0200 Subject: [PATCH 058/212] Rilascio REFACTORING CODICE HOOKS --- src/main/java/it/pn/frontend/e2e/listeners/Hooks.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java b/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java index be3a50b5a..314f982a0 100644 --- a/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java +++ b/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java @@ -176,6 +176,7 @@ public void startScenario(Scenario scenario) { } cookieConfig.addCookie(); + } @After From 7fd9eb91f2b3047384e8b4346606d47615545140 Mon Sep 17 00:00:00 2001 From: scritelli Date: Tue, 15 Oct 2024 14:47:51 +0200 Subject: [PATCH 059/212] Rilascio REFACTORING CODICE DownloadFile --- .../pn/frontend/e2e/utility/DownloadFile.java | 256 +++++++----------- 1 file changed, 96 insertions(+), 160 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/utility/DownloadFile.java b/src/main/java/it/pn/frontend/e2e/utility/DownloadFile.java index 4810ac475..726832158 100644 --- a/src/main/java/it/pn/frontend/e2e/utility/DownloadFile.java +++ b/src/main/java/it/pn/frontend/e2e/utility/DownloadFile.java @@ -3,7 +3,6 @@ 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; @@ -16,9 +15,18 @@ import java.io.*; import java.net.HttpURLConnection; import java.net.URL; -import java.util.List; +import java.util.Optional; import static it.pn.frontend.e2e.listeners.Hooks.netWorkInfos; +/* +Principali Miglioramenti: +try-with-resources: Per la gestione automatica delle risorse come BufferedInputStream e BufferedOutputStream. +Uso di Optional: Per evitare possibili null pointer exception e migliorare la sicurezza del codice. +Rimozione di variabili ridondanti: Ho migliorato la leggibilità del codice eliminando dichiarazioni di variabili duplicate e accorpando operazioni dove possibile. +stream() e findFirst(): Ho usato le Stream API di Java 8+ per migliorare la ricerca di elementi, riducendo il numero di cicli e rendendo il codice più leggibile. +Gestione delle eccezioni: Ho migliorato il tracciamento delle eccezioni, fornendo messaggi più descrittivi e chiari quando si verifica un errore. +* +* */ public class DownloadFile extends BasePage { @@ -28,131 +36,75 @@ public DownloadFile(WebDriver driver) { super(driver); } - BufferedInputStream input = null; - BufferedOutputStream bufferOut = null; - - public void download(String urlLink, File fileLoc, boolean healdess) { - if (healdess) { - try { - byte[] buffer = new byte[1024]; - double TotalDownload = 0.00; - int readbyte = 0; //Stores the number of bytes written in each iteration. - double percentOfDownload = 0.00; - URL url = new URL(urlLink); - HttpURLConnection http = (HttpURLConnection) url.openConnection(); - double filesize = (double) http.getContentLengthLong(); - - http.setRequestProperty("Authorization", getBearerSessionToken()); - - BufferedInputStream input = new BufferedInputStream(http.getInputStream()); - FileOutputStream outputFile = new FileOutputStream(fileLoc); + public void download(String urlLink, File fileLoc, boolean headless) { + if (headless) { + downloadInHeadlessMode(urlLink, fileLoc); + } else { + downloadInNonHeadlessMode(fileLoc); + } + } - while ((readbyte = input.read(buffer, 0, 1024)) >= 0) { + private void downloadInHeadlessMode(String urlLink, File fileLoc) { + try (var outputFile = new FileOutputStream(fileLoc); + var input = new BufferedInputStream(new URL(urlLink).openStream()); + var bufferOut = new BufferedOutputStream(outputFile, 1024)) { + + var http = (HttpURLConnection) new URL(urlLink).openConnection(); + http.setRequestProperty("Authorization", getBearerSessionToken()); + byte[] buffer = new byte[1024]; + double totalDownload = 0.00; + int bytesRead; + double fileSize = (double) http.getContentLengthLong(); + + while ((bytesRead = input.read(buffer, 0, 1024)) >= 0) { + bufferOut.write(buffer, 0, bytesRead); + totalDownload += bytesRead; + double percentOfDownload = (totalDownload * 100) / fileSize; + logger.info("Downloaded {}%", String.format("%.2f", percentOfDownload)); + } + logger.info("Your download is now complete."); - bufferOut = new BufferedOutputStream(outputFile, 1024); - while ((readbyte = input.read(buffer, 0, 1024)) >= 0) { - //Writing the content onto the file. - bufferOut.write(buffer, 0, readbyte); - //TotalDownload is the total bytes written onto the file. - TotalDownload += readbyte; - //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 + "%"); - } + } catch (IOException e) { + throw new RuntimeException("Error downloading file in headless mode", e); + } + } - System.out.println("Your download is now complete."); - bufferOut.flush(); - } - } catch (IOException e) { - e.printStackTrace(); - } finally { - try { - bufferOut.close(); - input.close(); - } catch (IOException e) { - throw new RuntimeException(e); - } - } - } else { - try { - String url = this.driver.getCurrentUrl(); - URL urlPDF = new URL(this.driver.getCurrentUrl()); - File pdf = new File(fileLoc.getAbsolutePath()); - FileUtils.copyURLToFile(urlPDF, pdf, 1000, 1000); - } catch (IOException e) { - throw new RuntimeException(e); - } + private void downloadInNonHeadlessMode(File fileLoc) { + try { + URL url = new URL(driver.getCurrentUrl()); + FileUtils.copyURLToFile(url, fileLoc, 1000, 1000); + } catch (IOException e) { + throw new RuntimeException("Error downloading file in non-headless mode", e); } } 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(".notifichedigitali.it/bff/v1/downtime/history?")); - 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(); - } + downloadInHeadlessMode(urlLink, fileLoc); } else { try { URL url = new URL(urlLink); FileUtils.copyURLToFile(url, fileLoc, 1000, 1000); } catch (IOException e) { - throw new RuntimeException(e); + throw new RuntimeException("Error downloading attestazione disservizi", e); } } } public void controlloDownload(String path, int numberOfFile) { File directory = new File(path); + File[] fList = Optional.ofNullable(directory.listFiles(File::isFile)) + .orElse(new File[]{}); - File[] fList = directory.listFiles(File::isFile); - - if (fList != null && fList.length != 0) { + if (fList.length != 0) { for (File file : fList) { - if (file.getName().endsWith(".pdf")) { - String filename = file.getName(); - boolean result = file.delete(); - if (result) { - logger.info("File: " + filename + " è stato scaricato e eliminato "); - } + if (file.getName().endsWith(".pdf") && file.delete()) { + logger.info("File: {} è stato scaricato e eliminato", file.getName()); } } } else { - logger.error("File non scaricato o non completo numberOfFile=" + numberOfFile); + logger.error("File non scaricato o non completo numberOfFile={}", numberOfFile); Assertions.fail("File non scaricato"); } } @@ -162,32 +114,25 @@ public boolean controlloEsistenzaCartella(File cartella) { } public String getUrl(String urlChiamata) { - String url = ""; - for (NetWorkInfo netWorkInfo : netWorkInfos) { - if (netWorkInfo.getRequestUrl().contains(urlChiamata) && netWorkInfo.getRequestMethod().equals("GET")) { - if (!netWorkInfo.getResponseStatus().equals("200")) { - logger.error("La chiamata " + netWorkInfo.getRequestUrl() + "ha risposto con questo codice: " + netWorkInfo.getResponseStatus()); - } - String values = netWorkInfo.getResponseBody(); - List results = Splitter.on(CharMatcher.anyOf(",;:")).splitToList(values); - - for (String result : results) { - if (result.startsWith("//")) { - url = result; - break; - } - } - if (url.endsWith("}")) { - url = "https:" + url.substring(0, url.length() - 2); - } else { - url = "https:" + url.substring(0, url.length() - 1); - } - logger.info("url: " + url); - } - } + String url = netWorkInfos.stream() + .filter(netWorkInfo -> netWorkInfo.getRequestUrl().contains(urlChiamata) && + netWorkInfo.getRequestMethod().equals("GET") && + netWorkInfo.getResponseStatus().equals("200")) + .map(NetWorkInfo::getResponseBody) + .flatMap(values -> Splitter.on(CharMatcher.anyOf(",;:")).splitToList(values).stream()) + .filter(result -> result.startsWith("//")) + .findFirst() + .orElse(""); + if (url.isEmpty()) { - logger.error("Non è stata trovata la chiamata " + urlChiamata); + logger.error("Non è stata trovata la chiamata {}", urlChiamata); + } else if (url.endsWith("}")) { + url = "https:" + url.substring(0, url.length() - 2); + } else { + url = "https:" + url.substring(0, url.length() - 1); } + + logger.info("URL: {}", url); return url; } @@ -199,20 +144,19 @@ public String getLegalFactId() { con.setRequestProperty("Content-Type", "application/json"); con.setRequestProperty("Authorization", getBearerSessionToken(".notifichedigitali.it/bff/v1/downtime/history?")); - BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())); - String inputLine; - StringBuffer response = new StringBuffer(); - while ((inputLine = in.readLine()) != null) { - response.append(inputLine); - } - in.close(); + try (var in = new BufferedReader(new InputStreamReader(con.getInputStream()))) { + StringBuilder response = new StringBuilder(); + String inputLine; + while ((inputLine = in.readLine()) != null) { + response.append(inputLine); + } - JSONObject jsonResponse = new JSONObject(response.toString()); - JSONArray resultArray = jsonResponse.getJSONArray("result"); - if (!resultArray.isEmpty()) { - JSONObject firstResult = resultArray.getJSONObject(0); - return firstResult.getString("legalFactId"); + JSONArray resultArray = new JSONObject(response.toString()).getJSONArray("result"); + if (!resultArray.isEmpty()) { + return resultArray.getJSONObject(0).getString("legalFactId"); + } } + } catch (Exception e) { throw new RuntimeException("Failed to fetch legalFactId", e); } @@ -220,30 +164,22 @@ public String getLegalFactId() { } private String getBearerSessionToken() { - List 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; + String environment = System.getProperty("environment"); + String urlChiamata = "https://webapi." + environment + ".notifichedigitali.it/delivery/notifications/received?"; + return netWorkInfos.stream() + .filter(netWorkInfo -> netWorkInfo.getRequestUrl().contains(urlChiamata)) + .map(NetWorkInfo::getAuthorizationBearer) + .findFirst() + .orElse(""); } private String getBearerSessionToken(String url) { - List netWorkInfos = Hooks.netWorkInfos; - String bearerToken = ""; - for (NetWorkInfo netWorkInfo : netWorkInfos) { - logger.info(bearerToken = netWorkInfo.getAuthorizationBearer()); - String variabileAmbiente = System.getProperty("environment"); - String urlChiamata = "https://webapi." + variabileAmbiente + url; - if (netWorkInfo.getRequestUrl().contains(urlChiamata)) { - bearerToken = netWorkInfo.getAuthorizationBearer(); - } - } - return bearerToken; + String environment = System.getProperty("environment"); + String urlChiamata = "https://webapi." + environment + url; + return netWorkInfos.stream() + .filter(netWorkInfo -> netWorkInfo.getRequestUrl().contains(urlChiamata)) + .map(NetWorkInfo::getAuthorizationBearer) + .findFirst() + .orElse(""); } } - From ff5bc478590d606bf8aeb8c55358a09b5eaa86a9 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Tue, 15 Oct 2024 15:21:24 +0200 Subject: [PATCH 060/212] add wait --- .../e2e/section/destinatario/personaFisica/HeaderPFSection.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/HeaderPFSection.java b/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/HeaderPFSection.java index 46ef90fd0..0a7083037 100644 --- a/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/HeaderPFSection.java +++ b/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/HeaderPFSection.java @@ -33,7 +33,7 @@ public HeaderPFSection(WebDriver driver) { public void waitLoadHeaderDESection() { try { - WebTool.waitTime(10); + WebTool.waitTime(15); titleLabel = driver.findElement(By.xpath("//a[@title='Sito di PagoPA S.p.A.']")); buttonProfile = driver.findElement(By.xpath("//button[@aria-label='party-menu-button']")); getWebDriverWait(30).withMessage("il titolo del header non è visibile").until(ExpectedConditions.visibilityOf(titleLabel)); From f5cae07973103710923c77c63b36fe208fdfbed9 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Tue, 15 Oct 2024 15:56:58 +0200 Subject: [PATCH 061/212] fix report --- .../pn/frontend/e2e/run/RunCucumberTest.java | 33 ++----------------- 1 file changed, 2 insertions(+), 31 deletions(-) diff --git a/src/test/java/it/pn/frontend/e2e/run/RunCucumberTest.java b/src/test/java/it/pn/frontend/e2e/run/RunCucumberTest.java index 6c9cfd254..9670f7825 100644 --- a/src/test/java/it/pn/frontend/e2e/run/RunCucumberTest.java +++ b/src/test/java/it/pn/frontend/e2e/run/RunCucumberTest.java @@ -1,49 +1,20 @@ package it.pn.frontend.e2e.run; -import io.cucumber.java.After; -import io.cucumber.java.Before; -import it.pn.frontend.e2e.stepDefinitions.common.ConfigFileReader; import org.junit.platform.suite.api.*; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import java.io.IOException; -import java.io.InputStream; -import java.util.Properties; - import static io.cucumber.junit.platform.engine.Constants.*; -/** -@RunWith(Cucumber.class) -@CucumberOptions( - features = "src/test/resources/feature", - glue = {"it/pn/frontend/e2e/listeners", "it/pn/frontend/e2e/stepDefinitions"}, - //tags = "@runner", - //plugin = { "pretty", "io.qameta.allure.cucumber7jvm.AllureCucumber7Jvm"} - plugin = {"pretty", - "json:target/cucumber-reports/report.json", - "html:target/cucumber-reports/report.html", - "junit:target/cucumber-reports/Cucumber.xml" - }, - monochrome = true -) - - **/ - @Suite @IncludeEngines("cucumber") @SelectClasspathResource("feature") @ConfigurationParameters({ @ConfigurationParameter(key = PLUGIN_PROPERTY_NAME, value = "pretty"), - @ConfigurationParameter(key = PLUGIN_PROPERTY_NAME, value = "json:target/cucumber-report.json," + - "html:target/cucumber-report.html"), + @ConfigurationParameter(key = PLUGIN_PROPERTY_NAME, value = "json:target/cucumber-reports/report.json," + + "html:target/cucumber-reports/report.html"), @ConfigurationParameter(key = GLUE_PROPERTY_NAME, value = "it/pn/frontend/e2e/listeners ,it/pn/frontend/e2e/stepDefinitions") }) public class RunCucumberTest { - - - } From 264040a8c6aa03ab3e878e3d1cc84f5bd7b28ef7 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Tue, 15 Oct 2024 16:22:06 +0200 Subject: [PATCH 062/212] add step --- src/main/java/it/pn/frontend/e2e/listeners/Hooks.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java b/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java index 314f982a0..3388cdfa5 100644 --- a/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java +++ b/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java @@ -3,6 +3,7 @@ import io.cucumber.java.After; import io.cucumber.java.Before; import io.cucumber.java.Scenario; +import io.cucumber.java.en.And; import io.github.bonigarcia.wdm.WebDriverManager; import it.pn.frontend.e2e.model.address.DigitalAddress; import it.pn.frontend.e2e.model.singleton.MandateSingleton; @@ -208,6 +209,7 @@ public void endScenario(Scenario scenario) throws IOException { } @After("@DeleghePF or @DeleghePG") + @And("Revoca deleghe se esistono") public void clearDelegate() { logger.info("Revoking all delegations..."); var mandateId = MandateSingleton.getInstance().getMandateId(Hooks.getScenario()); @@ -237,6 +239,7 @@ public void clearDirectory() { } @After("@recapitiPF or @recapitiPG") + @And("Rimuovi tutti i recapiti se esistono") public void clearRecapiti() { var restContact = RestContact.getInstance(); var digitalAddresses = restContact.getAllDigitalAddress(); From 74dd358265bda9c3efe391d28fd1a136dea974a4 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Tue, 15 Oct 2024 17:51:38 +0200 Subject: [PATCH 063/212] add wait --- src/main/java/it/pn/frontend/e2e/listeners/Hooks.java | 2 ++ .../destinatario/personaFisica/RecapitiPersonaFisicaTest.java | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java b/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java index 3388cdfa5..5806e624c 100644 --- a/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java +++ b/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java @@ -209,6 +209,7 @@ public void endScenario(Scenario scenario) throws IOException { } @After("@DeleghePF or @DeleghePG") + @Before("@DeleghePF or @DeleghePG") @And("Revoca deleghe se esistono") public void clearDelegate() { logger.info("Revoking all delegations..."); @@ -239,6 +240,7 @@ public void clearDirectory() { } @After("@recapitiPF or @recapitiPG") + @Before("@recapitiPF or @recapitiPG") @And("Rimuovi tutti i recapiti se esistono") public void clearRecapiti() { var restContact = RestContact.getInstance(); diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java index 2905e3ce8..ef95eac22 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java @@ -163,7 +163,7 @@ public void nellaPaginaITuoiRecapitiSiInserisceLaPECErrata(String pecErrata) { @Then("Si visualizza correttamente il messaggio di pec errata") public void nellaPaginaITuoiRecapitiSiVisualizzaCorrettamenteIlMessaggioDiPecErrata() { - WebTool.waitTime(3); + WebTool.waitTime(5); String errorMessageRead = recapitiDestinatarioPage.getPecErrorMessage(); Assertions.assertEquals("messaggio di errore letto : '" + errorMessageRead + "' non è uguale a : Indirizzo PEC non valido", "Indirizzo PEC non valido", errorMessageRead); } From a77ff4f4cf736728409ea68efbd59cd19babdf87 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Tue, 15 Oct 2024 18:09:48 +0200 Subject: [PATCH 064/212] remove wait --- .../destinatario/personaFisica/RecapitiPersonaFisicaTest.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java index ef95eac22..13984466a 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java @@ -163,7 +163,6 @@ public void nellaPaginaITuoiRecapitiSiInserisceLaPECErrata(String pecErrata) { @Then("Si visualizza correttamente il messaggio di pec errata") public void nellaPaginaITuoiRecapitiSiVisualizzaCorrettamenteIlMessaggioDiPecErrata() { - WebTool.waitTime(5); String errorMessageRead = recapitiDestinatarioPage.getPecErrorMessage(); Assertions.assertEquals("messaggio di errore letto : '" + errorMessageRead + "' non è uguale a : Indirizzo PEC non valido", "Indirizzo PEC non valido", errorMessageRead); } From c39a64a6545608d2c508a3232689647c04961025 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Tue, 15 Oct 2024 18:31:35 +0200 Subject: [PATCH 065/212] fix --- .../destinatario/personaFisica/RecapitiPersonaFisicaTest.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java index 13984466a..5a18f0589 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java @@ -163,8 +163,9 @@ public void nellaPaginaITuoiRecapitiSiInserisceLaPECErrata(String pecErrata) { @Then("Si visualizza correttamente il messaggio di pec errata") public void nellaPaginaITuoiRecapitiSiVisualizzaCorrettamenteIlMessaggioDiPecErrata() { + WebTool.waitTime(3); String errorMessageRead = recapitiDestinatarioPage.getPecErrorMessage(); - Assertions.assertEquals("messaggio di errore letto : '" + errorMessageRead + "' non è uguale a : Indirizzo PEC non valido", "Indirizzo PEC non valido", errorMessageRead); + Assertions.assertEquals( "Indirizzo PEC non valido", errorMessageRead, "messaggio di errore letto : '" + errorMessageRead + "' non è uguale a : Indirizzo PEC non valido"); } @And("Si controlla che il tasto conferma sia bloccato") From 610da816a9612e6daea37e0fe23aff07b980b28b Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Tue, 15 Oct 2024 18:43:30 +0200 Subject: [PATCH 066/212] fix assert equals --- .../destinatario/personaFisica/DeleghePagoPATest.java | 6 +++--- .../personaFisica/RecapitiPersonaFisicaTest.java | 2 +- .../destinatario/personaGiuridica/DeleghePGPagoPATest.java | 2 +- .../mittente/NotificaMittentePagoPATest.java | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/DeleghePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/DeleghePagoPATest.java index 69620205d..0ded5ae8f 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/DeleghePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/DeleghePagoPATest.java @@ -184,7 +184,7 @@ public void nellaSezioneLeTueDelegheSiVisualizzaIlMessaggioDiErrore() { log.info("Si visualizza il messaggio di errore"); String actualErrorMessage = this.leTueDelegheSection.messaggioDiErrore().toLowerCase(); String expectedErrorMessage = "errore inserimento delega"; - Assertions.assertEquals("Messeggio di Errore non è uguale a Codice fiscale non valido", expectedErrorMessage, actualErrorMessage); + Assertions.assertEquals(expectedErrorMessage, actualErrorMessage, "Messeggio di Errore non è uguale a Codice fiscale non valido"); } @And("Nella sezione Le Tue Deleghe si visualizza il messaggio di errore delega gia aggiunta") @@ -310,8 +310,8 @@ public void siCliccaSulBottoneAccetta() { this.leTueDelegheSection.clickAccettaButton(); if (this.leTueDelegheSection.verificaEsistenzaErroreCodiceSbagliato()) { - Assertions.assertEquals("Il codice inserito è sbagliato", - "Il codice è sbagliato", this.leTueDelegheSection.getTextCodiceSbagliato()); + Assertions.assertEquals( + "Il codice è sbagliato", this.leTueDelegheSection.getTextCodiceSbagliato()"Il codice inserito è sbagliato"); } } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java index 5a18f0589..e616c381d 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java @@ -243,7 +243,7 @@ public void nellaPaginaITuoiRecapitiSiInserisceIlNumeroDiTelefonoErrato(String n public void nellaPaginaITuoiRecapitiSiVisualizzaCorrettamenteIlMessaggioDiNumeroDiTelefonoErrato() { ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(this.driver); String errorMessageRead = iTuoiRecapitiPage.getPhoneErrorMessage(); - Assertions.assertEquals("messaggio di errore letto : '" + errorMessageRead + "' non è uguale a : Numero di cellulare non valido", "Numero di cellulare non valido", errorMessageRead); + Assertions.assertEquals("Numero di cellulare non valido", errorMessageRead, "messaggio di errore letto : '" + errorMessageRead + "' non è uguale a : Numero di cellulare non valido"); } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/DeleghePGPagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/DeleghePGPagoPATest.java index eb4d593a6..eb4468536 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/DeleghePGPagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/DeleghePGPagoPATest.java @@ -188,7 +188,7 @@ public void nellaSezioneLeTueDelegheInserireUnaData() { public void nellaSezioneLeTueDelegheSiVisualizzaIlMessaggioDiErroreDataErrata() { logger.info("Si controlla che si veda il messaggio di errore"); - Assertions.assertEquals("il messaggio di errore previsto: Data errata è diverso dell'attuale " + aggiungiDelegaPGSection.waitMessaggioErroreData(), "Data errata", aggiungiDelegaPGSection.waitMessaggioErroreData()); + Assertions.assertEquals( "Data errata", aggiungiDelegaPGSection.waitMessaggioErroreData(), "il messaggio di errore previsto: Data errata è diverso dell'attuale " + aggiungiDelegaPGSection.waitMessaggioErroreData()); logger.info("il messaggio di errore 'Data errata' è presente"); } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java index 89a837b7c..d63d42b19 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java @@ -893,10 +893,10 @@ public void nellaSectionDestinatarioInserireIDatiErratiDallaPersonaGiuridica(Str destinatarioPASection.checkBoxAggiungiDomicilio(); destinatarioPASection.insertDomicilioDigitaleErrato(personaGiuridicaErrore1.get("emailPec").toString()); - Assertions.assertEquals("l'errore attuale 'Indirizzo PEC non valido' è diverso di :" + destinatarioPASection.getDomicilioDigitaleError(), "Indirizzo PEC non valido", destinatarioPASection.getDomicilioDigitaleError()); + Assertions.assertEquals( "Indirizzo PEC non valido", destinatarioPASection.getDomicilioDigitaleError(),"l'errore attuale 'Indirizzo PEC non valido' è diverso di :" + destinatarioPASection.getDomicilioDigitaleError()); destinatarioPASection.insertCodiceFiscaleErrato(personaGiuridicaErrore1.get("codiceFiscale").toString()); - Assertions.assertEquals("l'errore attuale 'Il valore inserito non è corretto' è diverso di :" + destinatarioPASection.getCodiceFiscaleError(), "Il valore inserito non è corretto", destinatarioPASection.getCodiceFiscaleError()); + Assertions.assertEquals( "Il valore inserito non è corretto", destinatarioPASection.getCodiceFiscaleError(),"l'errore attuale 'Il valore inserito non è corretto' è diverso di :" + destinatarioPASection.getCodiceFiscaleError()); } From 4e994166824aafce83291a84b81aeae87bdfae60 Mon Sep 17 00:00:00 2001 From: AlimaZhansultan Date: Wed, 16 Oct 2024 00:29:47 +0200 Subject: [PATCH 067/212] * Refactor Recapiti PG --- .../it/pn/frontend/e2e/common/RecapitiDestinatarioPage.java | 4 ++-- .../frontend/e2e/stepDefinitions/common/BackgroundTest.java | 2 +- .../005_064_NEG1_inserimentoOTPSbagliatoEmailPG.feature | 3 +-- .../altriRecapiti/007_065_inserimentoEmailPG.feature | 1 - .../008_071_visualizzazioneAltriRecapitiPG.feature | 4 ++-- ...067_NEG1_inserimentoOTPSbagliatoNumeroDiTelefonoPG.feature | 1 - ...010_067_NEG_inserimentoNumeroDiTelefonoSbagliatoPG.feature | 2 +- .../altriRecapiti/012_066_eliminaEmailPG.feature | 2 +- .../altriRecapiti/013_068_eliminaNumeroDiTelefonoPG.feature | 1 - .../altriRecapiti/014_064_modificaEmailPG.feature | 4 +--- .../015_210_inserimentoTreOTPErratiPerTuttiIRecapiti.feature | 2 -- .../016_001_inserimentoRecapitoSpecificoEnteRadice.feature | 3 +-- 12 files changed, 10 insertions(+), 19 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/common/RecapitiDestinatarioPage.java b/src/main/java/it/pn/frontend/e2e/common/RecapitiDestinatarioPage.java index 9a89c4e20..f9c75716a 100644 --- a/src/main/java/it/pn/frontend/e2e/common/RecapitiDestinatarioPage.java +++ b/src/main/java/it/pn/frontend/e2e/common/RecapitiDestinatarioPage.java @@ -28,7 +28,7 @@ public class RecapitiDestinatarioPage extends BasePage { @FindBy(xpath = "//button[@data-testid='add email']") WebElement avvisamiMailButton; - @FindBy(xpath = "//button[@data-testid='courtesy-sms-button']") + @FindBy(id = "default_sms-button") WebElement avvisamiSMSButton; @FindBy(id = "default_email") @@ -692,7 +692,7 @@ public void clickSuBottoneCellulareDiCortesia(String actionButton) { } public void clickSuBottoneEmailDiCortesia(String actionButton) { - By bottoneActionBy = By.xpath("//form[contains(., 'Indirizzo e-mail')]//button[contains(text(), '" + actionButton + "')]"); + By bottoneActionBy = By.xpath("//button[contains(text(), '" + actionButton + "')]"); getWebDriverWait(10).withMessage("Il bottone non è cliccabile").until(ExpectedConditions.visibilityOfElementLocated(bottoneActionBy)); this.element(bottoneActionBy).click(); } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/BackgroundTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/BackgroundTest.java index c60ae1cbd..ec8c958ab 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/BackgroundTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/BackgroundTest.java @@ -263,7 +263,7 @@ public void risoluzioneDisservizio() { public void aggiuntaEmailDiCortesia(String email) { recapitiTest.siInserisceLEmailDiCortesiaESiCliccaSulBottoneAvvisamiViaEmail(email); - recapitiTest.siVisualizzaIlPopUpDisclaimerSiCliccaLaCheckboxEIlBottoneConferma(); + // recapitiTest.siVisualizzaIlPopUpDisclaimerSiCliccaLaCheckboxEIlBottoneConferma(); recapitiPersonaFisicaTest.nellaPaginaITuoiRecapitiSiVisualizzaCorrettamenteIlPopUpDiInserimentoOTP(); recapitiPersonaFisicaTest.nellaPaginaITuoiRecapitiSiRecuperaIlCodiceOTPTramiteChiamataRequestDellEmailEVieneInserito(email); recapitiTest.siControllaCheLEmailInseritaSiaPresente(); diff --git a/src/test/resources/feature/3-destinatario/personaGiuridica/altriRecapiti/005_064_NEG1_inserimentoOTPSbagliatoEmailPG.feature b/src/test/resources/feature/3-destinatario/personaGiuridica/altriRecapiti/005_064_NEG1_inserimentoOTPSbagliatoEmailPG.feature index 7826450d4..7117e4e86 100644 --- a/src/test/resources/feature/3-destinatario/personaGiuridica/altriRecapiti/005_064_NEG1_inserimentoOTPSbagliatoEmailPG.feature +++ b/src/test/resources/feature/3-destinatario/personaGiuridica/altriRecapiti/005_064_NEG1_inserimentoOTPSbagliatoEmailPG.feature @@ -2,7 +2,7 @@ Feature: la persona giuridica inserisce un OTP email sbagliato @TestSuite @PG - @TA_inserimentoOTPErratoPG + @TA_inserimentoOTPErratoEmailPG @recapitiPG Scenario: PN-9155-D63 - La persona giuridica inserisce un OTP email sbagliato @@ -12,7 +12,6 @@ Feature: la persona giuridica inserisce un OTP email sbagliato And Si visualizza correttamente la pagina Recapiti persona giuridica And Nella pagina I Tuoi Recapiti si controlla che non ci sia già una email And Si inserisce l'email della "personaGiuridica" e si clicca sul bottone avvisami via email - And Si visualizza correttamente il pop-up e si clicca su conferma And Nella pagina I Tuoi Recapiti si visualizza correttamente il pop-up di inserimento OTP And Nella pagina I Tuoi Recapiti si inserisce OTP sbagliato "15494" And Nella pagina I Tuoi Recapiti clicca sul bottone conferma diff --git a/src/test/resources/feature/3-destinatario/personaGiuridica/altriRecapiti/007_065_inserimentoEmailPG.feature b/src/test/resources/feature/3-destinatario/personaGiuridica/altriRecapiti/007_065_inserimentoEmailPG.feature index 988865419..b636b6a30 100644 --- a/src/test/resources/feature/3-destinatario/personaGiuridica/altriRecapiti/007_065_inserimentoEmailPG.feature +++ b/src/test/resources/feature/3-destinatario/personaGiuridica/altriRecapiti/007_065_inserimentoEmailPG.feature @@ -12,7 +12,6 @@ Feature: La persona giuridica inserisce l'email And Si visualizza correttamente la pagina Recapiti persona giuridica And Nella pagina I Tuoi Recapiti si controlla che non ci sia già una email And Si inserisce l'email della "personaGiuridica" e si clicca sul bottone avvisami via email - And Si visualizza correttamente il pop-up e si clicca su conferma And Nella pagina I Tuoi Recapiti si visualizza correttamente il pop-up di inserimento OTP And Nella pagina I Tuoi Recapiti si recupera l'OTP della Email tramite request method "personaGiuridica" And Nella pagina I Tuoi Recapiti si inserisce l'OTP ricevuto via Email "personaGiuridica" diff --git a/src/test/resources/feature/3-destinatario/personaGiuridica/altriRecapiti/008_071_visualizzazioneAltriRecapitiPG.feature b/src/test/resources/feature/3-destinatario/personaGiuridica/altriRecapiti/008_071_visualizzazioneAltriRecapitiPG.feature index f536e36a9..475aa1e41 100644 --- a/src/test/resources/feature/3-destinatario/personaGiuridica/altriRecapiti/008_071_visualizzazioneAltriRecapitiPG.feature +++ b/src/test/resources/feature/3-destinatario/personaGiuridica/altriRecapiti/008_071_visualizzazioneAltriRecapitiPG.feature @@ -1,9 +1,9 @@ Feature: La persona giuridica visualizza tutti gli elementi della sezione altri recapiti - @TestSuite + @TA_visualizzazioneSezioneAltriRecapitiPG @PG - @recapitiPG + Scenario: PN-9162 - La persona giuridica visualizza tutti gli elementi della sezione altri recapiti Given PG - Si effettua la login tramite token exchange come "delegante", e viene visualizzata la dashboard diff --git a/src/test/resources/feature/3-destinatario/personaGiuridica/altriRecapiti/009_067_NEG1_inserimentoOTPSbagliatoNumeroDiTelefonoPG.feature b/src/test/resources/feature/3-destinatario/personaGiuridica/altriRecapiti/009_067_NEG1_inserimentoOTPSbagliatoNumeroDiTelefonoPG.feature index 5425401ac..7ec24b824 100644 --- a/src/test/resources/feature/3-destinatario/personaGiuridica/altriRecapiti/009_067_NEG1_inserimentoOTPSbagliatoNumeroDiTelefonoPG.feature +++ b/src/test/resources/feature/3-destinatario/personaGiuridica/altriRecapiti/009_067_NEG1_inserimentoOTPSbagliatoNumeroDiTelefonoPG.feature @@ -11,7 +11,6 @@ Feature: la persona giuridica inserisce l'OTP numero di telefono errato When Nella pagina Piattaforma Notifiche persona giuridica si clicca sul bottone I Tuoi Recapiti And Si visualizza correttamente la pagina Recapiti persona giuridica And Nella pagina I Tuoi Recapiti si inserisce il numero di telefono del PG "personaGiuridica" e clicca sul bottone avvisami via SMS - And Si visualizza correttamente il pop-up e si clicca su conferma And Nella pagina I Tuoi Recapiti si visualizza correttamente il pop-up di inserimento OTP And Nella pagina I Tuoi Recapiti si inserisce OTP sbagliato "15494" And Nella pagina I Tuoi Recapiti clicca sul bottone conferma diff --git a/src/test/resources/feature/3-destinatario/personaGiuridica/altriRecapiti/010_067_NEG_inserimentoNumeroDiTelefonoSbagliatoPG.feature b/src/test/resources/feature/3-destinatario/personaGiuridica/altriRecapiti/010_067_NEG_inserimentoNumeroDiTelefonoSbagliatoPG.feature index 299010d84..9c716cff9 100644 --- a/src/test/resources/feature/3-destinatario/personaGiuridica/altriRecapiti/010_067_NEG_inserimentoNumeroDiTelefonoSbagliatoPG.feature +++ b/src/test/resources/feature/3-destinatario/personaGiuridica/altriRecapiti/010_067_NEG_inserimentoNumeroDiTelefonoSbagliatoPG.feature @@ -5,7 +5,7 @@ Feature: la persona giuridica inserisce un numero di telefono errato @TA_inserimentoCellulareErratoPG @recapitiPG - Scenario: PN-9158-A66 - La persona giuridica inserisce un numero di telefono errato + Scenario: PN-9158-B66 - La persona giuridica inserisce un numero di telefono errato Given PG - Si effettua la login tramite token exchange come "delegante", e viene visualizzata la dashboard And Rimuovi tutti i recapiti se esistono When Nella pagina Piattaforma Notifiche persona giuridica si clicca sul bottone I Tuoi Recapiti diff --git a/src/test/resources/feature/3-destinatario/personaGiuridica/altriRecapiti/012_066_eliminaEmailPG.feature b/src/test/resources/feature/3-destinatario/personaGiuridica/altriRecapiti/012_066_eliminaEmailPG.feature index 33805cc90..e3c337aa2 100644 --- a/src/test/resources/feature/3-destinatario/personaGiuridica/altriRecapiti/012_066_eliminaEmailPG.feature +++ b/src/test/resources/feature/3-destinatario/personaGiuridica/altriRecapiti/012_066_eliminaEmailPG.feature @@ -15,6 +15,6 @@ Feature: La persona giuridica elimina l'indirizzo email And Si annulla eliminazione email And Si controlla presenza email precedentemente salvata "prova@test.it" And Si clicca su elimina email - And Si conferma "Rimuovi e-mail" nel pop up + And Si conferma "Rimuovi email" nel pop up Then Nella pagina I Tuoi Recapiti si controlla che l'indirizzo Email non sia presente And Logout da portale persona giuridica diff --git a/src/test/resources/feature/3-destinatario/personaGiuridica/altriRecapiti/013_068_eliminaNumeroDiTelefonoPG.feature b/src/test/resources/feature/3-destinatario/personaGiuridica/altriRecapiti/013_068_eliminaNumeroDiTelefonoPG.feature index 13c5ffdb1..929b9b213 100644 --- a/src/test/resources/feature/3-destinatario/personaGiuridica/altriRecapiti/013_068_eliminaNumeroDiTelefonoPG.feature +++ b/src/test/resources/feature/3-destinatario/personaGiuridica/altriRecapiti/013_068_eliminaNumeroDiTelefonoPG.feature @@ -2,7 +2,6 @@ Feature: La persona giuridica elimina il numero di cellulare di cortesia @TA_eliminaNumeroDiTelefonoPG @PG - @recapitiPG Scenario: PN - 9160 la persona giuridica elimina il numero di telefono Given PG - Si effettua la login tramite token exchange come "delegante", e viene visualizzata la dashboard diff --git a/src/test/resources/feature/3-destinatario/personaGiuridica/altriRecapiti/014_064_modificaEmailPG.feature b/src/test/resources/feature/3-destinatario/personaGiuridica/altriRecapiti/014_064_modificaEmailPG.feature index ef4e94134..c7a7f3e12 100644 --- a/src/test/resources/feature/3-destinatario/personaGiuridica/altriRecapiti/014_064_modificaEmailPG.feature +++ b/src/test/resources/feature/3-destinatario/personaGiuridica/altriRecapiti/014_064_modificaEmailPG.feature @@ -1,4 +1,4 @@ -Feature: La persona giuridica modifica l'email di cortesia + Feature: La persona giuridica modifica l'email di cortesia @TestSuite @TA_modificaEmailPG @@ -22,8 +22,6 @@ Feature: La persona giuridica modifica l'email di cortesia Then Nella pagina I Tuoi Recapiti si visualizza correttamente il messaggio email errata And Nella pagina I Tuoi Recapiti si inserisce la nuova email "provaemail@test.it" And Nella pagina I Tuoi Recapiti si preme sul bottone "Salva" dell'email di cortesia - And Nella pagina I Tuoi Recapiti si visualizza il pop up di disclaimer - And Nella pagina I Tuoi Recapiti si clicca sul bottone conferma del disclaimer And Nella pagina I Tuoi Recapiti si visualizza correttamente il pop-up di inserimento OTP And Nella pagina I Tuoi Recapiti si recupera il codice OTP tramite chiamata request dell'email "provaemail@test.it" e viene inserito Then Nella pagina I Tuoi Recapiti si controlla che la Email sia stata modificata diff --git a/src/test/resources/feature/3-destinatario/personaGiuridica/altriRecapiti/015_210_inserimentoTreOTPErratiPerTuttiIRecapiti.feature b/src/test/resources/feature/3-destinatario/personaGiuridica/altriRecapiti/015_210_inserimentoTreOTPErratiPerTuttiIRecapiti.feature index d209e54cd..0ea8df75a 100644 --- a/src/test/resources/feature/3-destinatario/personaGiuridica/altriRecapiti/015_210_inserimentoTreOTPErratiPerTuttiIRecapiti.feature +++ b/src/test/resources/feature/3-destinatario/personaGiuridica/altriRecapiti/015_210_inserimentoTreOTPErratiPerTuttiIRecapiti.feature @@ -16,10 +16,8 @@ Feature: La persona giuridica inserisce l'OTP errato 3 volte per i campi PEC, em And Si inserisce il codice OTP errato "11111" per tre volte e si controlla il messaggio di errore And Nella pagina I Tuoi Recapiti si controlla che non ci sia una email di cortesia impostata And Si inserisce l'email di cortesia "prova@test.it" e si clicca sul bottone avvisami via email - And Nella pagina I Tuoi Recapiti si clicca sul bottone conferma del disclaimer And Si inserisce il codice OTP errato "11111" per tre volte e si controlla il messaggio di errore And Nella pagina I Tuoi Recapiti si controlla che non ci sia un numero di cellulare di cortesia impostato And Nella pagina I Tuoi Recapiti si inserisce il numero di telefono "3334545889" e si clicca sul bottone avvisami via SMS - And Nella pagina I Tuoi Recapiti si clicca sul bottone conferma del disclaimer And Si inserisce il codice OTP errato "11111" per tre volte e si controlla il messaggio di errore And Logout da portale persona giuridica \ No newline at end of file diff --git a/src/test/resources/feature/3-destinatario/personaGiuridica/altriRecapiti/016_001_inserimentoRecapitoSpecificoEnteRadice.feature b/src/test/resources/feature/3-destinatario/personaGiuridica/altriRecapiti/016_001_inserimentoRecapitoSpecificoEnteRadice.feature index b3e73e4dd..7fadb520c 100644 --- a/src/test/resources/feature/3-destinatario/personaGiuridica/altriRecapiti/016_001_inserimentoRecapitoSpecificoEnteRadice.feature +++ b/src/test/resources/feature/3-destinatario/personaGiuridica/altriRecapiti/016_001_inserimentoRecapitoSpecificoEnteRadice.feature @@ -1,9 +1,8 @@ Feature: la persona giuridica inserisce un recapito aggiuntivo da un ente radice - @TestSuite @TA_inserimentoRecapitoAggiuntivoDaEnteRadicePG @PG - @recapitiPG + Scenario: PN-10430 - La persona giuridica inserisce un recapito aggiuntivo da un ente radice Given PG - Si effettua la login tramite token exchange come "delegante", e viene visualizzata la dashboard From 1a81d444b25120ca377269095aa8bf02e60f264d Mon Sep 17 00:00:00 2001 From: AlimaZhansultan Date: Wed, 16 Oct 2024 00:58:30 +0200 Subject: [PATCH 068/212] * Minor fix --- .../008_071_visualizzazioneAltriRecapitiPG.feature | 2 +- .../altriRecapiti/013_068_eliminaNumeroDiTelefonoPG.feature | 1 + .../016_001_inserimentoRecapitoSpecificoEnteRadice.feature | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/test/resources/feature/3-destinatario/personaGiuridica/altriRecapiti/008_071_visualizzazioneAltriRecapitiPG.feature b/src/test/resources/feature/3-destinatario/personaGiuridica/altriRecapiti/008_071_visualizzazioneAltriRecapitiPG.feature index 475aa1e41..5f08c30f3 100644 --- a/src/test/resources/feature/3-destinatario/personaGiuridica/altriRecapiti/008_071_visualizzazioneAltriRecapitiPG.feature +++ b/src/test/resources/feature/3-destinatario/personaGiuridica/altriRecapiti/008_071_visualizzazioneAltriRecapitiPG.feature @@ -3,7 +3,7 @@ Feature: La persona giuridica visualizza tutti gli elementi della sezione altri @TA_visualizzazioneSezioneAltriRecapitiPG @PG - + @recapitiPG Scenario: PN-9162 - La persona giuridica visualizza tutti gli elementi della sezione altri recapiti Given PG - Si effettua la login tramite token exchange come "delegante", e viene visualizzata la dashboard diff --git a/src/test/resources/feature/3-destinatario/personaGiuridica/altriRecapiti/013_068_eliminaNumeroDiTelefonoPG.feature b/src/test/resources/feature/3-destinatario/personaGiuridica/altriRecapiti/013_068_eliminaNumeroDiTelefonoPG.feature index 929b9b213..13c5ffdb1 100644 --- a/src/test/resources/feature/3-destinatario/personaGiuridica/altriRecapiti/013_068_eliminaNumeroDiTelefonoPG.feature +++ b/src/test/resources/feature/3-destinatario/personaGiuridica/altriRecapiti/013_068_eliminaNumeroDiTelefonoPG.feature @@ -2,6 +2,7 @@ Feature: La persona giuridica elimina il numero di cellulare di cortesia @TA_eliminaNumeroDiTelefonoPG @PG + @recapitiPG Scenario: PN - 9160 la persona giuridica elimina il numero di telefono Given PG - Si effettua la login tramite token exchange come "delegante", e viene visualizzata la dashboard diff --git a/src/test/resources/feature/3-destinatario/personaGiuridica/altriRecapiti/016_001_inserimentoRecapitoSpecificoEnteRadice.feature b/src/test/resources/feature/3-destinatario/personaGiuridica/altriRecapiti/016_001_inserimentoRecapitoSpecificoEnteRadice.feature index 7fadb520c..490d2d912 100644 --- a/src/test/resources/feature/3-destinatario/personaGiuridica/altriRecapiti/016_001_inserimentoRecapitoSpecificoEnteRadice.feature +++ b/src/test/resources/feature/3-destinatario/personaGiuridica/altriRecapiti/016_001_inserimentoRecapitoSpecificoEnteRadice.feature @@ -2,7 +2,7 @@ Feature: la persona giuridica inserisce un recapito aggiuntivo da un ente radice @TA_inserimentoRecapitoAggiuntivoDaEnteRadicePG @PG - + @recapitiPG Scenario: PN-10430 - La persona giuridica inserisce un recapito aggiuntivo da un ente radice Given PG - Si effettua la login tramite token exchange come "delegante", e viene visualizzata la dashboard From 0bbe50025dc7f79c8617b1757ca46ee878645571 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Wed, 16 Oct 2024 10:53:53 +0200 Subject: [PATCH 069/212] fix error compile --- .../destinatario/personaFisica/DeleghePagoPATest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/DeleghePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/DeleghePagoPATest.java index 0ded5ae8f..edbdce0b2 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/DeleghePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/DeleghePagoPATest.java @@ -311,7 +311,7 @@ public void siCliccaSulBottoneAccetta() { this.leTueDelegheSection.clickAccettaButton(); if (this.leTueDelegheSection.verificaEsistenzaErroreCodiceSbagliato()) { Assertions.assertEquals( - "Il codice è sbagliato", this.leTueDelegheSection.getTextCodiceSbagliato()"Il codice inserito è sbagliato"); + "Il codice è sbagliato", this.leTueDelegheSection.getTextCodiceSbagliato(),"Il codice inserito è sbagliato"); } } From 3896d4b60666288e23b37939cdf6b8ffc3f9ee24 Mon Sep 17 00:00:00 2001 From: AlimaZhansultan Date: Wed, 16 Oct 2024 11:29:27 +0200 Subject: [PATCH 070/212] * Minor fix --- .../pages/destinatario/personaFisica/ITuoiRecapitiPage.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/ITuoiRecapitiPage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/ITuoiRecapitiPage.java index 2fcce149a..89e0864f5 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/ITuoiRecapitiPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/ITuoiRecapitiPage.java @@ -239,8 +239,8 @@ public void checkRiquadroPEC() { ExpectedConditions.visibilityOfElementLocated(confirmButton), ExpectedConditions.not(ExpectedConditions.elementToBeClickable(confirmButton)))); getWebDriverWait(10).withMessage("Non si visualizza il banner informativo o il suo contenuto è errato").until(ExpectedConditions.and( - ExpectedConditions.visibilityOf(elements(infoBanner).get(1)), - ExpectedConditions.attributeToBe(this.elements(infoBanner).get(1), "innerText", "Quando un ente invia una comunicazione per te su SEND, ricevi l’avviso ufficiale sulla PEC che hai scelto."))); + ExpectedConditions.visibilityOf(elements(infoBanner).get(0)), + ExpectedConditions.attributeToBe(this.elements(infoBanner).get(0), "innerText", "Quando un ente invia una comunicazione per te su SEND, ricevi l’avviso ufficiale sulla PEC che hai scelto."))); logger.info("Il riquadro PEC si visualizza correttamente"); } catch (TimeoutException e) { logger.error("Il riquadro PEC NON si visualizza correttamente con errori:" + e.getMessage()); From 0ac6e66d49e8ba35e6abb6ad62ee95fc44a9c2e2 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Thu, 17 Oct 2024 15:20:31 +0200 Subject: [PATCH 071/212] Fix 120 gg --- .../RicercaNotifichePersonaFisicaPATest.java | 2 +- .../mittente/DownloadFileMittentePagoPATest.java | 10 ++++++++++ .../mittente/NotificaMittentePagoPATest.java | 8 ++++++++ .../104_downloadDocumentiNotificaInviata.feature | 2 +- .../downloadFile/checkDownloadOltre120gg.feature | 2 +- 5 files changed, 21 insertions(+), 3 deletions(-) diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RicercaNotifichePersonaFisicaPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RicercaNotifichePersonaFisicaPATest.java index 1aa95995a..07d39f627 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RicercaNotifichePersonaFisicaPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RicercaNotifichePersonaFisicaPATest.java @@ -162,7 +162,7 @@ public void nellaPaginaPiattaformaNotificheMittenteInserireUnaDataDaDAAA120Giorn PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(this.driver); String dataa = piattaformaNotifichePage.conversioneFormatoDate(dateA.toString()); String datada = piattaformaNotifichePage.conversioneFormatoDate(dateDa.toString()); - logger.info("ARCO TEMPORRALE SETTATO: "+dataa +" - "+datada); + logger.info("ARCO TEMPORRALE SETTATO: "+datada +" - "+dataa); piattaformaNotifichePage.inserimentoArcoTemporale(datada, dataa); } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java index 5c8de484b..d2c4ab602 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java @@ -473,6 +473,16 @@ public void downloadFileAttestazioneDisservizio() { WebTool.waitTime(3); } + @And("Download file attestazione disservizio {int}") + public void downloadFileAttestazioneDisservizio(Integer index) { + logger.info("si effettua download del disservizio"); + + DisserviziAppPAPage disserviziAppPAPage = new DisserviziAppPAPage(driver); + + disserviziAppPAPage.downloadAttestazione(index); + WebTool.waitTime(3); + } + @And("Nella pagina stato della piattaforma si cambia il numero elementi visualizzati attraverso il filtro") public void nellaPaginaStatoDellaPiattaformaSiCambiaIlNumeroElementiVisualizzatiAttraversoIlFiltroNumeroNotifiche() { PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(driver); diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java index d63d42b19..690dee8db 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java @@ -456,6 +456,14 @@ public void cliccareSullaNotificaRestituita120Giorni() { piattaformaNotifichePage.selezionaNotifica120Giorni(); } + @When("Cliccare sulla notifica maggiore di 120 giorni {int}") + public void cliccareSullaNotificaRestituita120Giorni(Integer index) { + logger.info("Si clicca sulla notifica maggiore di 120 giorni"); + + PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(this.driver); + piattaformaNotifichePage.selezionaNotifica120Giorni(index); + } + @And("Salva codice IUN") public void salvaCodiceIUN(){ String IUN = dettaglioNotificaMittenteSection.salvaIUN(); diff --git a/src/test/resources/feature/2-mittente/3_downloadFile/104_downloadDocumentiNotificaInviata.feature b/src/test/resources/feature/2-mittente/3_downloadFile/104_downloadDocumentiNotificaInviata.feature index 1345a0327..f7b1474e8 100644 --- a/src/test/resources/feature/2-mittente/3_downloadFile/104_downloadDocumentiNotificaInviata.feature +++ b/src/test/resources/feature/2-mittente/3_downloadFile/104_downloadDocumentiNotificaInviata.feature @@ -12,7 +12,7 @@ Feature: il mittente download attestazione notifica presa in carico And Si visualizza correttamente la tabella dei disservizi And Nella pagina stato della piattaforma si cambia il numero elementi visualizzati attraverso il filtro And Nella pagina stato della piattaforma si cambia pagina utilizzando una freccetta fino all'ultima - And Download file attestazione disservizio + And Download file attestazione disservizio 1 And Si controlla che esista pop up scadenza And Nella pagina Piattaforma Notifiche selezionare la voce 'Notifiche' And Nella pagina Piattaforma Notifiche mittente inserire un arco temporale di maggiore di 120 giorni diff --git a/src/test/resources/feature/3-destinatario/personaFisica/downloadFile/checkDownloadOltre120gg.feature b/src/test/resources/feature/3-destinatario/personaFisica/downloadFile/checkDownloadOltre120gg.feature index 0a73e9e10..669859457 100644 --- a/src/test/resources/feature/3-destinatario/personaFisica/downloadFile/checkDownloadOltre120gg.feature +++ b/src/test/resources/feature/3-destinatario/personaFisica/downloadFile/checkDownloadOltre120gg.feature @@ -17,7 +17,7 @@ Feature: persona fisica scarica attestazioni all'interno di una notifica scaduta # | giornoA |27 | And Cliccare sul bottone Filtra persona fisica Then Vengono visualizzate correttamente le notifiche comprese nell'arco temporale inserito - And Cliccare sulla notifica maggiore di 120 giorni + And Cliccare sulla notifica maggiore di 120 giorni 1 Then Si visualizza correttamente la section Dettaglio Notifica persona fisica And Si clicca sul documento Attestazione scaduta And Si controlla che esista pop up scadenza From 627ffc7dc048a3b5ad41c3d1218934ab2bb30201 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Thu, 17 Oct 2024 17:53:15 +0200 Subject: [PATCH 072/212] add tag 120 --- .../6_disserviziAppPA/checkDownloadAOTDopo120gg.feature | 2 +- .../personaFisica/disservizi/checkDownloadAOTDopo120gg.feature | 2 +- .../disservizi/checkDownloadAOTDopo120gg.feature | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/test/resources/feature/2-mittente/6_disserviziAppPA/checkDownloadAOTDopo120gg.feature b/src/test/resources/feature/2-mittente/6_disserviziAppPA/checkDownloadAOTDopo120gg.feature index de1fe4880..dde38c880 100644 --- a/src/test/resources/feature/2-mittente/6_disserviziAppPA/checkDownloadAOTDopo120gg.feature +++ b/src/test/resources/feature/2-mittente/6_disserviziAppPA/checkDownloadAOTDopo120gg.feature @@ -4,7 +4,7 @@ Feature: Mittente prova ad effettuare download AOT scaduti da 120gg @mittente @TA_MittenteVisualizzazioneDisservizi @TA_PA_DownloadDisserviziScadutiDa120gg - + @120gg Scenario: [TA-FE MITTENTE EFFETTUA DOWNLOAD DI AOT SCADUTO DA 120 GG] - mittente effettua download di aot scaduto da 120gg Given PA - Si effettua la login tramite token exchange, e viene visualizzata la dashboard When Nella pagina Piattaforma Notifiche selezionare la voce 'stato della piattaforma' diff --git a/src/test/resources/feature/3-destinatario/personaFisica/disservizi/checkDownloadAOTDopo120gg.feature b/src/test/resources/feature/3-destinatario/personaFisica/disservizi/checkDownloadAOTDopo120gg.feature index 478c627a7..f4c697940 100644 --- a/src/test/resources/feature/3-destinatario/personaFisica/disservizi/checkDownloadAOTDopo120gg.feature +++ b/src/test/resources/feature/3-destinatario/personaFisica/disservizi/checkDownloadAOTDopo120gg.feature @@ -3,7 +3,7 @@ Feature: Persona Fisica prova ad effettuare download AOT scaduti da 120gg @TestSuite @PF @TA_PF_DownloadDisserviziScadutiDa120gg - + @120gg Scenario: [TA-FE PF EFFETTUA DOWNLOAD DI AOT SCADUTO DA 120 GG] - pf effettua download di aot scaduto da 120gg Given PF - Si effettua la login tramite token exchange come "delegante", e viene visualizzata la dashboard When Nella pagina Piattaforma Notifiche selezionare la voce 'stato della piattaforma' diff --git a/src/test/resources/feature/3-destinatario/personaGiuridica/disservizi/checkDownloadAOTDopo120gg.feature b/src/test/resources/feature/3-destinatario/personaGiuridica/disservizi/checkDownloadAOTDopo120gg.feature index 3b75f46d0..009d72ae5 100644 --- a/src/test/resources/feature/3-destinatario/personaGiuridica/disservizi/checkDownloadAOTDopo120gg.feature +++ b/src/test/resources/feature/3-destinatario/personaGiuridica/disservizi/checkDownloadAOTDopo120gg.feature @@ -3,7 +3,7 @@ Feature: Persona Giuridica prova ad effettuare download AOT scaduti da 120gg @TestSuite @PG @TA_PG_DownloadDisserviziScadutiDa120gg - + @120gg Scenario: [TA-FE PG EFFETTUA DOWNLOAD DI AOT SCADUTO DA 120 GG] - PG effettua download di aot scaduto da 120gg Given PG - Si effettua la login tramite token exchange come "delegante", e viene visualizzata la dashboard When Nella pagina Piattaforma Notifiche selezionare la voce 'stato della piattaforma' From b28895a8978ba8815133b3005b8071bb1be68d5a Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Thu, 17 Oct 2024 18:43:32 +0200 Subject: [PATCH 073/212] add dependecy --- pom.xml | 39 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index c39f8c404..8cf98628b 100644 --- a/pom.xml +++ b/pom.xml @@ -17,9 +17,23 @@ 17 17 7.8.1 + 2.7.2 + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-test + test + + + org.springframework.boot + spring-boot-starter-mail + @@ -52,6 +66,8 @@ ${cucumber.version} test + + io.cucumber cucumber-junit-platform-engine @@ -249,12 +265,33 @@ pom import + + org.springframework.boot + spring-boot-dependencies + ${spring.boot-version} + pom + import + + + org.springframework.boot + spring-boot-maven-plugin + ${spring.boot-version} + + + + org.projectlombok + lombok + + + + + org.apache.maven.plugins maven-surefire-plugin @@ -309,4 +346,4 @@ - \ No newline at end of file + From 7a067984af1e272fc081624fcd5fec53a84b5835 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Thu, 17 Oct 2024 19:05:47 +0200 Subject: [PATCH 074/212] remove dependency --- pom.xml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/pom.xml b/pom.xml index c39f8c404..3a8fc2228 100644 --- a/pom.xml +++ b/pom.xml @@ -46,12 +46,6 @@ - - io.cucumber - cucumber-java - ${cucumber.version} - test - io.cucumber cucumber-junit-platform-engine From 6982f4f11cb21237a5a8c01c4c7657486844d333 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Thu, 17 Oct 2024 19:59:12 +0200 Subject: [PATCH 075/212] refactor pom --- pom.xml | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/pom.xml b/pom.xml index 8cf98628b..17716c74f 100644 --- a/pom.xml +++ b/pom.xml @@ -16,8 +16,10 @@ UTF-8 17 17 - 7.8.1 2.7.2 + 5.9.1 + 7.8.1 + 4.22.0 @@ -46,7 +48,7 @@ org.seleniumhq.selenium selenium-java - 4.22.0 + ${selenium.version} @@ -55,25 +57,17 @@ org.seleniumhq.selenium selenium-devtools-v126 - 4.22.0 + ${selenium.version} - - io.cucumber - cucumber-java - ${cucumber.version} - test - - io.cucumber cucumber-junit-platform-engine ${cucumber.version} test - @@ -93,7 +87,7 @@ io.github.bonigarcia webdrivermanager - 5.9.1 + ${webdriver.version} From 1608a314b491c222163230103734369c57d5c668 Mon Sep 17 00:00:00 2001 From: AlimaZhansultan Date: Fri, 18 Oct 2024 00:48:36 +0200 Subject: [PATCH 076/212] * Eliminated TestSuite tag from "@TA_PGRuoloOperatoreControlloAssenzaDeleghe" until missing ragione sociale is resolved * Fixed TA_PGdeleganteAggiuntaDelegaDuplicata , PN-10389 and PN-9147 --- .../AccediAPiattaformaNotifichePage.java | 6 +++--- .../personaGiuridica/DeleghePGPagoPAPage.java | 3 +++ .../PiattaformaNotifichePGPAPage.java | 12 ++++++++++-- .../personaGiuridica/AggiungiDelegaPGSection.java | 1 + .../personaGiuridica/NotifichePGPagoPATest.java | 10 ++++++++-- .../deleghe/018_001_delegatoPagaNotificaPG.feature | 14 +++----------- .../019_001_aggiuntaDelegaDuplicataPG.feature | 1 + .../deleghe/DelegheRuoloOperatore.feature | 2 +- .../056_visualizzazioneNotifichePG.feature | 1 + 9 files changed, 31 insertions(+), 19 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java index 4ddf1c011..f444e76e1 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java @@ -310,14 +310,14 @@ public void checkoutPagamento() throws InterruptedException { driver.switchTo().defaultContent(); WebTool.waitTime(5); - WebElement continuaBottone = driver.findElement(By.xpath("//button[@aria-label='Continue']") ); + WebElement continuaBottone = driver.findElement(By.xpath("//button[@aria-label='Continua']") ); getWebDriverWait(8).withMessage("Il bottone Continua non è cliccabile").until(ExpectedConditions.elementToBeClickable(continuaBottone)); continuaBottone.click(); WebTool.waitTime(10); //Select Nexi - WebElement modificaButton = driver.findElement(By.xpath("//button[@aria-label='Change payment service provider (PSP)']")); + WebElement modificaButton = driver.findElement(By.xpath("//button[@aria-label='Modifica PSP']")); getWebDriverWait(5).withMessage("Il bottone modifica non è cliccabile").until(ExpectedConditions.elementToBeClickable(modificaButton)); modificaButton.click(); @@ -336,7 +336,7 @@ public void checkoutPagamento() throws InterruptedException { getWebDriverWait(5).withMessage("Il bottone Paga non è cliccabile").until(ExpectedConditions.elementToBeClickable(pagaButton)); pagaButton.click(); WebTool.waitTime(50); - List chiudi = driver.findElements(By.xpath("//button[contains(text(),'Continue')]")); + List chiudi = driver.findElements(By.xpath("//button[contains(text(),'Continua')]")); getWebDriverWait(10).withMessage("Il bottone Chiudi non è cliccabile").until(ExpectedConditions.elementToBeClickable(chiudi.get(0))); chiudi.get(0).click(); } diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/DeleghePGPagoPAPage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/DeleghePGPagoPAPage.java index 60d408b05..ba0774ded 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/DeleghePGPagoPAPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/DeleghePGPagoPAPage.java @@ -324,6 +324,9 @@ public void inserimentoCodiceDelegaACaricoDellImpresaAPI(String codiceDelega) { public boolean siVisualizzaUnaDelegaPG() { try { + By menuDelegati = By.id("tab-1"); + this.getWebDriverWait(10).until(ExpectedConditions.visibilityOfElementLocated(menuDelegati)); + element(menuDelegati).click(); By menuDelega = By.xpath("//button[@data-testid='delegationMenuIcon']"); this.getWebDriverWait(10).until(ExpectedConditions.visibilityOfElementLocated(menuDelega)); logger.info("Trovato correttamente almeno una delega"); diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/PiattaformaNotifichePGPAPage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/PiattaformaNotifichePGPAPage.java index 6121788ba..3b70c09f7 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/PiattaformaNotifichePGPAPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/PiattaformaNotifichePGPAPage.java @@ -117,17 +117,25 @@ public void clickSuDelegeButton() { } } - public void clickNotificheDelegate() { + public void clickNotificheENotificheDelegate() { WebTool.waitTime(5); getWebDriverWait(10).until(ExpectedConditions.visibilityOf(this.sideItemNotificheButton)); sideItemNotificheButton.click(); WebTool.waitTime(10); - By notificheDelegateButton = By.id("side-item-Notifiche delegate"); + By notificheDelegateButton = By.id("menu-item(notifiche delegate)"); this.getWebDriverWait(10).until(ExpectedConditions.elementToBeClickable(notificheDelegateButton)); this.js().executeScript("arguments[0].click()", this.element(notificheDelegateButton)); logger.info("Si clicca correttamente sulla voce notifiche delegate"); } + public void clickNotificheDelegate() { + WebTool.waitTime(5); + By notificheDelegateButton = By.id("menu-item(notifiche delegate)"); + this.getWebDriverWait(10).until(ExpectedConditions.elementToBeClickable(notificheDelegateButton)); + this.js().executeScript("arguments[0].click()", this.element(notificheDelegateButton)); + logger.info("Si clicca correttamente sulla voce notifiche delegate"); + } + public void waitLoadSezioneNotificheDelegate(String ragioneSociale) { try { By notificheDelegatePageTitle = By.id("Notifiche delegate a " + ragioneSociale + "-page"); diff --git a/src/main/java/it/pn/frontend/e2e/section/destinatario/personaGiuridica/AggiungiDelegaPGSection.java b/src/main/java/it/pn/frontend/e2e/section/destinatario/personaGiuridica/AggiungiDelegaPGSection.java index 45d454979..07cddb4f6 100644 --- a/src/main/java/it/pn/frontend/e2e/section/destinatario/personaGiuridica/AggiungiDelegaPGSection.java +++ b/src/main/java/it/pn/frontend/e2e/section/destinatario/personaGiuridica/AggiungiDelegaPGSection.java @@ -99,6 +99,7 @@ public void clickSulBottoneInviaRichiesta() { this.getWebDriverWait(10).withMessage("Bottone invia la richiesta non visualizzato").until(ExpectedConditions.elementToBeClickable(this.inviaLaRichiestaButton)); logger.info("click invia richiesta"); this.inviaLaRichiestaButton.click(); + WebTool.waitTime(3); this.getWebDriverWait(10).withMessage("Bottone torna alle deleghe non visualizzato").until(ExpectedConditions.elementToBeClickable(this.tornaDelegheButton)); this.tornaDelegheButton.click(); logger.info("click torna alle deleghe"); diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/NotifichePGPagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/NotifichePGPagoPATest.java index 950b69cd5..b5455e772 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/NotifichePGPagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/NotifichePGPagoPATest.java @@ -27,7 +27,6 @@ import java.awt.*; import java.io.File; import java.io.IOException; -import java.net.MalformedURLException; import java.net.URL; import java.util.HashMap; import java.util.List; @@ -114,9 +113,16 @@ public void visualizzaDelegheSection() { public void nellaPaginaNotifichePersonaGiuridicaSiCliccaSuNotificheDelegate() { logger.info("Si clicca correttamente su notifiche delegate"); - piattaformaNotifichePGPAPage.clickNotificheDelegate(); + piattaformaNotifichePGPAPage.clickNotificheENotificheDelegate(); } + + @And("Nella Pagina Notifiche destinatario si clicca solo su notifiche delegate") + public void nellaPaginaNotifichePersonaGiuridicaSiCliccaSoloSuNotificheDelegate() { + logger.info("Si clicca correttamente su notifiche delegate"); + + piattaformaNotifichePGPAPage.clickNotificheDelegate(); + } @And("Nella sezione Deleghe si verifica sia presente una delega accettata per PG") public void nellaSezioneDelegheSiVerificaSiaPresenteUnaDelegaAccettataPerPG() { logger.info("Si controlla che sia presente una delega"); diff --git a/src/test/resources/feature/3-destinatario/personaGiuridica/deleghe/018_001_delegatoPagaNotificaPG.feature b/src/test/resources/feature/3-destinatario/personaGiuridica/deleghe/018_001_delegatoPagaNotificaPG.feature index e429c0def..8ad61917f 100644 --- a/src/test/resources/feature/3-destinatario/personaGiuridica/deleghe/018_001_delegatoPagaNotificaPG.feature +++ b/src/test/resources/feature/3-destinatario/personaGiuridica/deleghe/018_001_delegatoPagaNotificaPG.feature @@ -4,6 +4,7 @@ Feature:Il delegato persona giuridica accede ad una delega @TA_PGdelegatoPagaNotifica @DeleghePG @PG + @Alima Scenario: PN-10389 - Il delegato persona giuridica paga una notifica Given PG - Si effettua la login tramite token exchange come "delegante", e viene visualizzata la dashboard @@ -40,18 +41,9 @@ Feature:Il delegato persona giuridica accede ad una delega And Nella sezione Deleghe si verifica sia presente una delega accettata per PG And PG - Si effettua la login tramite token exchange come "delegato", e viene visualizzata la dashboard - And Nella Pagina Notifiche destinatario si clicca su notifiche delegate + And Nella Pagina Notifiche destinatario si clicca solo su notifiche delegate And Si visualizza correttamente la Pagina Notifiche persona giuridica sezione notifiche delegate "Le Epistolae srl" And Aspetta 10 secondi And Si seleziona la notifica And Si verifica che visualizzato lo stato Pagato - And Logout da portale persona giuridica - - - - - #And Nella Pagina Notifiche destinatario si clicca su notifiche delegate - And Aspetta 1 secondi - # And La persona giuridica clicca sulla prima notifica restituita - #And Si verifica che visualizzato lo stato Pagato - #And Logout da portale persona giuridica \ No newline at end of file + And Logout da portale persona giuridica \ No newline at end of file diff --git a/src/test/resources/feature/3-destinatario/personaGiuridica/deleghe/019_001_aggiuntaDelegaDuplicataPG.feature b/src/test/resources/feature/3-destinatario/personaGiuridica/deleghe/019_001_aggiuntaDelegaDuplicataPG.feature index 9dc0d8c78..27776954f 100644 --- a/src/test/resources/feature/3-destinatario/personaGiuridica/deleghe/019_001_aggiuntaDelegaDuplicataPG.feature +++ b/src/test/resources/feature/3-destinatario/personaGiuridica/deleghe/019_001_aggiuntaDelegaDuplicataPG.feature @@ -3,6 +3,7 @@ Feature:Il delegato persona giuridica accede ad una delega @TestSuite @DeleghePG @PG + @Alima @TA_PGdeleganteAggiuntaDelegaDuplicata diff --git a/src/test/resources/feature/3-destinatario/personaGiuridica/deleghe/DelegheRuoloOperatore.feature b/src/test/resources/feature/3-destinatario/personaGiuridica/deleghe/DelegheRuoloOperatore.feature index 59e6a1b73..24ec2a53c 100644 --- a/src/test/resources/feature/3-destinatario/personaGiuridica/deleghe/DelegheRuoloOperatore.feature +++ b/src/test/resources/feature/3-destinatario/personaGiuridica/deleghe/DelegheRuoloOperatore.feature @@ -1,6 +1,6 @@ Feature:Deleghe lato ruolo operatore - @TestSuite + @DeleghePG @PG diff --git a/src/test/resources/feature/3-destinatario/personaGiuridica/visualizzaNotifiche/056_visualizzazioneNotifichePG.feature b/src/test/resources/feature/3-destinatario/personaGiuridica/visualizzaNotifiche/056_visualizzazioneNotifichePG.feature index b7d5e871d..352ad03d2 100644 --- a/src/test/resources/feature/3-destinatario/personaGiuridica/visualizzaNotifiche/056_visualizzazioneNotifichePG.feature +++ b/src/test/resources/feature/3-destinatario/personaGiuridica/visualizzaNotifiche/056_visualizzazioneNotifichePG.feature @@ -6,6 +6,7 @@ Feature: La persona fisica visualizza la sezione notifiche #viene inserito il tag deleghe pg per eliminare la delega una volta creata @DeleghePG @PG + @Alima Scenario: PN-9147 - La persona giuridica visualizza la sezione notifiche Given PG - Si effettua la login tramite token exchange come "delegante", e viene visualizzata la dashboard From e987a923cd114841261b771fc9ba0be1e8f90f71 Mon Sep 17 00:00:00 2001 From: AlimaZhansultan Date: Fri, 18 Oct 2024 01:05:40 +0200 Subject: [PATCH 077/212] minor fix --- .../personaFisica/AccediAPiattaformaNotifichePage.java | 4 ++-- .../destinatario/personaGiuridica/DeleghePGPagoPATest.java | 1 + .../deleghe/019_001_aggiuntaDelegaDuplicataPG.feature | 1 - .../personaGiuridica/deleghe/DelegheRuoloOperatore.feature | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java index f444e76e1..149640d17 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java @@ -310,7 +310,7 @@ public void checkoutPagamento() throws InterruptedException { driver.switchTo().defaultContent(); WebTool.waitTime(5); - WebElement continuaBottone = driver.findElement(By.xpath("//button[@aria-label='Continua']") ); + WebElement continuaBottone = driver.findElement(By.xpath("//button[@aria-label='Continue']") ); getWebDriverWait(8).withMessage("Il bottone Continua non è cliccabile").until(ExpectedConditions.elementToBeClickable(continuaBottone)); continuaBottone.click(); @@ -336,7 +336,7 @@ public void checkoutPagamento() throws InterruptedException { getWebDriverWait(5).withMessage("Il bottone Paga non è cliccabile").until(ExpectedConditions.elementToBeClickable(pagaButton)); pagaButton.click(); WebTool.waitTime(50); - List chiudi = driver.findElements(By.xpath("//button[contains(text(),'Continua')]")); + List chiudi = driver.findElements(By.xpath("//button[contains(text(),'Continue')]")); getWebDriverWait(10).withMessage("Il bottone Chiudi non è cliccabile").until(ExpectedConditions.elementToBeClickable(chiudi.get(0))); chiudi.get(0).click(); } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/DeleghePGPagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/DeleghePGPagoPATest.java index 7d670e7fc..84fe4a445 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/DeleghePGPagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/DeleghePGPagoPATest.java @@ -462,6 +462,7 @@ public void creoInBackgroundUnaDelegaPerPersonaGiuridica(Map per mandateSingleton.setScenarioMandateId(Hooks.getScenario(),response.getMandateId()); mandateSingleton.setScenarioVerificationCode(mandateSingleton.getMandateId(Hooks.getScenario()),response.getVerificationCode()); driver.navigate().refresh(); + WebTool.waitTime(2); } @And("Si clicca sul bottone accetta delega dopo aver inserito il codice di verifica") diff --git a/src/test/resources/feature/3-destinatario/personaGiuridica/deleghe/019_001_aggiuntaDelegaDuplicataPG.feature b/src/test/resources/feature/3-destinatario/personaGiuridica/deleghe/019_001_aggiuntaDelegaDuplicataPG.feature index 27776954f..9dc0d8c78 100644 --- a/src/test/resources/feature/3-destinatario/personaGiuridica/deleghe/019_001_aggiuntaDelegaDuplicataPG.feature +++ b/src/test/resources/feature/3-destinatario/personaGiuridica/deleghe/019_001_aggiuntaDelegaDuplicataPG.feature @@ -3,7 +3,6 @@ Feature:Il delegato persona giuridica accede ad una delega @TestSuite @DeleghePG @PG - @Alima @TA_PGdeleganteAggiuntaDelegaDuplicata diff --git a/src/test/resources/feature/3-destinatario/personaGiuridica/deleghe/DelegheRuoloOperatore.feature b/src/test/resources/feature/3-destinatario/personaGiuridica/deleghe/DelegheRuoloOperatore.feature index 24ec2a53c..6357af079 100644 --- a/src/test/resources/feature/3-destinatario/personaGiuridica/deleghe/DelegheRuoloOperatore.feature +++ b/src/test/resources/feature/3-destinatario/personaGiuridica/deleghe/DelegheRuoloOperatore.feature @@ -1,6 +1,6 @@ Feature:Deleghe lato ruolo operatore - + # Eliminated TestSuite tag until fix. Convivio spa is not visible for the user GabrieleDAnnunzio @DeleghePG @PG From e896b3940fdf219fac438030040f438d218ac711 Mon Sep 17 00:00:00 2001 From: AlimaZhansultan Date: Fri, 18 Oct 2024 01:24:31 +0200 Subject: [PATCH 078/212] minor fix --- .../personaFisica/AccediAPiattaformaNotifichePage.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java index 149640d17..0e1aa52d1 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java @@ -316,6 +316,8 @@ public void checkoutPagamento() throws InterruptedException { WebTool.waitTime(10); + logger.info("psp pg" + driver.getPageSource()); + //Select Nexi WebElement modificaButton = driver.findElement(By.xpath("//button[@aria-label='Modifica PSP']")); getWebDriverWait(5).withMessage("Il bottone modifica non è cliccabile").until(ExpectedConditions.elementToBeClickable(modificaButton)); @@ -331,6 +333,7 @@ public void checkoutPagamento() throws InterruptedException { nexiButton.get(0).click(); } WebTool.waitTime(5); + logger.info("paga pg" + driver.getPageSource()); WebElement pagaButton = driver.findElement(By.xpath("//button[@id='paymentCheckPageButtonPay']")); getWebDriverWait(5).withMessage("Il bottone Paga non è cliccabile").until(ExpectedConditions.elementToBeClickable(pagaButton)); From 286bb43fcb134084cc3c78f6b53b2995cf21949d Mon Sep 17 00:00:00 2001 From: AlimaZhansultan Date: Fri, 18 Oct 2024 01:42:15 +0200 Subject: [PATCH 079/212] minor fix --- .../personaFisica/AccediAPiattaformaNotifichePage.java | 8 +++----- .../deleghe/018_001_delegatoPagaNotificaPG.feature | 2 +- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java index 0e1aa52d1..b8581aca7 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java @@ -310,16 +310,14 @@ public void checkoutPagamento() throws InterruptedException { driver.switchTo().defaultContent(); WebTool.waitTime(5); - WebElement continuaBottone = driver.findElement(By.xpath("//button[@aria-label='Continue']") ); + WebElement continuaBottone = driver.findElement(By.xpath("//button[@aria-label='Continue']") ); //for local test use //button[@aria-label='Continua'] getWebDriverWait(8).withMessage("Il bottone Continua non è cliccabile").until(ExpectedConditions.elementToBeClickable(continuaBottone)); continuaBottone.click(); WebTool.waitTime(10); - logger.info("psp pg" + driver.getPageSource()); - //Select Nexi - WebElement modificaButton = driver.findElement(By.xpath("//button[@aria-label='Modifica PSP']")); + WebElement modificaButton = driver.findElement(By.xpath("//button[@aria-label='Change payment service provider (PSP)']")); //for local test use //button[@aria-label='Modifica PSP'] getWebDriverWait(5).withMessage("Il bottone modifica non è cliccabile").until(ExpectedConditions.elementToBeClickable(modificaButton)); modificaButton.click(); @@ -339,7 +337,7 @@ public void checkoutPagamento() throws InterruptedException { getWebDriverWait(5).withMessage("Il bottone Paga non è cliccabile").until(ExpectedConditions.elementToBeClickable(pagaButton)); pagaButton.click(); WebTool.waitTime(50); - List chiudi = driver.findElements(By.xpath("//button[contains(text(),'Continue')]")); + List chiudi = driver.findElements(By.xpath("//button[contains(text(),'Continue')]")); //for local test use //button[@aria-label='Continua'] getWebDriverWait(10).withMessage("Il bottone Chiudi non è cliccabile").until(ExpectedConditions.elementToBeClickable(chiudi.get(0))); chiudi.get(0).click(); } diff --git a/src/test/resources/feature/3-destinatario/personaGiuridica/deleghe/018_001_delegatoPagaNotificaPG.feature b/src/test/resources/feature/3-destinatario/personaGiuridica/deleghe/018_001_delegatoPagaNotificaPG.feature index 8ad61917f..6adf5d78e 100644 --- a/src/test/resources/feature/3-destinatario/personaGiuridica/deleghe/018_001_delegatoPagaNotificaPG.feature +++ b/src/test/resources/feature/3-destinatario/personaGiuridica/deleghe/018_001_delegatoPagaNotificaPG.feature @@ -4,7 +4,7 @@ Feature:Il delegato persona giuridica accede ad una delega @TA_PGdelegatoPagaNotifica @DeleghePG @PG - @Alima + @Alima Scenario: PN-10389 - Il delegato persona giuridica paga una notifica Given PG - Si effettua la login tramite token exchange come "delegante", e viene visualizzata la dashboard From fbcd5699e098cd8942882d5112867e8f07d381d0 Mon Sep 17 00:00:00 2001 From: AlimaZhansultan Date: Fri, 18 Oct 2024 01:54:58 +0200 Subject: [PATCH 080/212] minor fix --- .../personaFisica/AccediAPiattaformaNotifichePage.java | 1 - .../destinatario/personaFisica/LeTueDelegheSection.java | 5 ++++- .../deleghe/018_001_delegatoPagaNotificaPG.feature | 1 - 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java index b8581aca7..cd791efbb 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java @@ -331,7 +331,6 @@ public void checkoutPagamento() throws InterruptedException { nexiButton.get(0).click(); } WebTool.waitTime(5); - logger.info("paga pg" + driver.getPageSource()); WebElement pagaButton = driver.findElement(By.xpath("//button[@id='paymentCheckPageButtonPay']")); getWebDriverWait(5).withMessage("Il bottone Paga non è cliccabile").until(ExpectedConditions.elementToBeClickable(pagaButton)); diff --git a/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/LeTueDelegheSection.java b/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/LeTueDelegheSection.java index b5ada8dd0..e3b582c09 100644 --- a/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/LeTueDelegheSection.java +++ b/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/LeTueDelegheSection.java @@ -198,7 +198,10 @@ public void messaggioDiErroreDelegaPresente() { } public void clickOpzioneAccetta() { - this.accettaButton.click(); + By acceptDelegaButton = By.xpath("//*[@id='accept-button']"); + element(acceptDelegaButton).click(); + logger.info("delege pg"); + // this.accettaButton.click(); } public void waitPopUpLoad() { diff --git a/src/test/resources/feature/3-destinatario/personaGiuridica/deleghe/018_001_delegatoPagaNotificaPG.feature b/src/test/resources/feature/3-destinatario/personaGiuridica/deleghe/018_001_delegatoPagaNotificaPG.feature index 6adf5d78e..567f8ea67 100644 --- a/src/test/resources/feature/3-destinatario/personaGiuridica/deleghe/018_001_delegatoPagaNotificaPG.feature +++ b/src/test/resources/feature/3-destinatario/personaGiuridica/deleghe/018_001_delegatoPagaNotificaPG.feature @@ -4,7 +4,6 @@ Feature:Il delegato persona giuridica accede ad una delega @TA_PGdelegatoPagaNotifica @DeleghePG @PG - @Alima Scenario: PN-10389 - Il delegato persona giuridica paga una notifica Given PG - Si effettua la login tramite token exchange come "delegante", e viene visualizzata la dashboard From 1add3b20c54d2d2356b28d18afdbac8df92caa75 Mon Sep 17 00:00:00 2001 From: AlimaZhansultan Date: Fri, 18 Oct 2024 02:07:31 +0200 Subject: [PATCH 081/212] minor fix --- .../section/destinatario/personaFisica/LeTueDelegheSection.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/LeTueDelegheSection.java b/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/LeTueDelegheSection.java index e3b582c09..87765e5f9 100644 --- a/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/LeTueDelegheSection.java +++ b/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/LeTueDelegheSection.java @@ -200,7 +200,7 @@ public void messaggioDiErroreDelegaPresente() { public void clickOpzioneAccetta() { By acceptDelegaButton = By.xpath("//*[@id='accept-button']"); element(acceptDelegaButton).click(); - logger.info("delege pg"); + logger.info("delege pg" + driver.getPageSource()); // this.accettaButton.click(); } From 5185cca58b690788f0b4541b26e19784ce723a40 Mon Sep 17 00:00:00 2001 From: AlimaZhansultan Date: Fri, 18 Oct 2024 02:14:04 +0200 Subject: [PATCH 082/212] minor fix --- .../destinatario/personaFisica/LeTueDelegheSection.java | 3 +-- .../visualizzaNotifiche/056_visualizzazioneNotifichePG.feature | 2 -- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/LeTueDelegheSection.java b/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/LeTueDelegheSection.java index 87765e5f9..05b0a9812 100644 --- a/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/LeTueDelegheSection.java +++ b/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/LeTueDelegheSection.java @@ -198,10 +198,9 @@ public void messaggioDiErroreDelegaPresente() { } public void clickOpzioneAccetta() { + WebTool.waitTime(1); By acceptDelegaButton = By.xpath("//*[@id='accept-button']"); element(acceptDelegaButton).click(); - logger.info("delege pg" + driver.getPageSource()); - // this.accettaButton.click(); } public void waitPopUpLoad() { diff --git a/src/test/resources/feature/3-destinatario/personaGiuridica/visualizzaNotifiche/056_visualizzazioneNotifichePG.feature b/src/test/resources/feature/3-destinatario/personaGiuridica/visualizzaNotifiche/056_visualizzazioneNotifichePG.feature index 352ad03d2..6f2b6137b 100644 --- a/src/test/resources/feature/3-destinatario/personaGiuridica/visualizzaNotifiche/056_visualizzazioneNotifichePG.feature +++ b/src/test/resources/feature/3-destinatario/personaGiuridica/visualizzaNotifiche/056_visualizzazioneNotifichePG.feature @@ -6,8 +6,6 @@ Feature: La persona fisica visualizza la sezione notifiche #viene inserito il tag deleghe pg per eliminare la delega una volta creata @DeleghePG @PG - @Alima - Scenario: PN-9147 - La persona giuridica visualizza la sezione notifiche Given PG - Si effettua la login tramite token exchange come "delegante", e viene visualizzata la dashboard When Nella pagina Piattaforma Notifiche persona giuridica click sul bottone Deleghe From 4552bcf0a0b8562fac4fd1ad0a19ea5a6e1c49be Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Fri, 18 Oct 2024 09:50:15 +0200 Subject: [PATCH 083/212] add index 120 gg --- .../mittente/DownloadFileMittentePagoPATest.java | 10 ++++++++++ ...5_A25_downloadAttestazioniDisserviziRisolti.feature | 2 +- .../checkDownloadAOTDopo120gg.feature | 2 +- .../downloadFile/checkDownloadOltre120gg.feature | 2 +- .../disservizi/checkDownloadAOTDopo120gg.feature | 2 +- .../downloadFile/checkDownloadOltre120gg.feature | 2 +- 6 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java index 057c37412..b51202880 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java @@ -472,6 +472,16 @@ public void downloadFileAttestazioneDisservizio() { WebTool.waitTime(3); } + @And("Download file attestazione disservizio {int}") + public void downloadFileAttestazioneDisservizio(int index) { + logger.info("si effettua download del disservizio con index"); + + DisserviziAppPAPage disserviziAppPAPage = new DisserviziAppPAPage(driver); + + disserviziAppPAPage.downloadAttestazione(index); + WebTool.waitTime(3); + } + @And("Nella pagina stato della piattaforma si cambia il numero elementi visualizzati attraverso il filtro") public void nellaPaginaStatoDellaPiattaformaSiCambiaIlNumeroElementiVisualizzatiAttraversoIlFiltroNumeroNotifiche() { PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(driver); diff --git a/src/test/resources/feature/2-mittente/6_disserviziAppPA/025_A25_downloadAttestazioniDisserviziRisolti.feature b/src/test/resources/feature/2-mittente/6_disserviziAppPA/025_A25_downloadAttestazioniDisserviziRisolti.feature index 4fd2572d0..a11020008 100644 --- a/src/test/resources/feature/2-mittente/6_disserviziAppPA/025_A25_downloadAttestazioniDisserviziRisolti.feature +++ b/src/test/resources/feature/2-mittente/6_disserviziAppPA/025_A25_downloadAttestazioniDisserviziRisolti.feature @@ -19,7 +19,7 @@ Feature: Mittente effettua il download delle attestazioni dei disservizi risolti Then Si visualizza correttamente la pagina dello 'stato della piattaforma' di mittente And Si visualizza correttamente la tabella dei disservizi And Si visualizza un record in elenco relativo ad un disservizio risolto "Invio delle notifiche" - And Download file attestazione disservizio + And Download file attestazione disservizio 1 And Controllo corrispondenza dati con pdf And Logout da portale mittente diff --git a/src/test/resources/feature/2-mittente/6_disserviziAppPA/checkDownloadAOTDopo120gg.feature b/src/test/resources/feature/2-mittente/6_disserviziAppPA/checkDownloadAOTDopo120gg.feature index dde38c880..75fdd5699 100644 --- a/src/test/resources/feature/2-mittente/6_disserviziAppPA/checkDownloadAOTDopo120gg.feature +++ b/src/test/resources/feature/2-mittente/6_disserviziAppPA/checkDownloadAOTDopo120gg.feature @@ -12,7 +12,7 @@ Feature: Mittente prova ad effettuare download AOT scaduti da 120gg And Si visualizza correttamente la tabella dei disservizi And Nella pagina stato della piattaforma si cambia il numero elementi visualizzati attraverso il filtro And Nella pagina stato della piattaforma si cambia pagina utilizzando una freccetta fino all'ultima - And Download file attestazione disservizio + And Download file attestazione disservizio 2 And Si controlla che esista pop up scadenza And Logout da portale mittente diff --git a/src/test/resources/feature/3-destinatario/personaFisica/downloadFile/checkDownloadOltre120gg.feature b/src/test/resources/feature/3-destinatario/personaFisica/downloadFile/checkDownloadOltre120gg.feature index 0a73e9e10..1d2395030 100644 --- a/src/test/resources/feature/3-destinatario/personaFisica/downloadFile/checkDownloadOltre120gg.feature +++ b/src/test/resources/feature/3-destinatario/personaFisica/downloadFile/checkDownloadOltre120gg.feature @@ -19,6 +19,6 @@ Feature: persona fisica scarica attestazioni all'interno di una notifica scaduta Then Vengono visualizzate correttamente le notifiche comprese nell'arco temporale inserito And Cliccare sulla notifica maggiore di 120 giorni Then Si visualizza correttamente la section Dettaglio Notifica persona fisica - And Si clicca sul documento Attestazione scaduta + And Si clicca sul documento Attestazione scaduta 1 And Si controlla che esista pop up scadenza And Logout da portale persona fisica \ No newline at end of file diff --git a/src/test/resources/feature/3-destinatario/personaGiuridica/disservizi/checkDownloadAOTDopo120gg.feature b/src/test/resources/feature/3-destinatario/personaGiuridica/disservizi/checkDownloadAOTDopo120gg.feature index 009d72ae5..69518afff 100644 --- a/src/test/resources/feature/3-destinatario/personaGiuridica/disservizi/checkDownloadAOTDopo120gg.feature +++ b/src/test/resources/feature/3-destinatario/personaGiuridica/disservizi/checkDownloadAOTDopo120gg.feature @@ -10,7 +10,7 @@ Feature: Persona Giuridica prova ad effettuare download AOT scaduti da 120gg And Si visualizza correttamente la tabella dei disservizi And Nella pagina stato della piattaforma si cambia il numero elementi visualizzati attraverso il filtro And Nella pagina stato della piattaforma si cambia pagina utilizzando una freccetta fino all'ultima - And Download file attestazione disservizio + And Download file attestazione disservizio 4 And Si controlla che esista pop up scadenza And Logout da portale persona giuridica diff --git a/src/test/resources/feature/3-destinatario/personaGiuridica/downloadFile/checkDownloadOltre120gg.feature b/src/test/resources/feature/3-destinatario/personaGiuridica/downloadFile/checkDownloadOltre120gg.feature index 9d7c105d4..b40e82c73 100644 --- a/src/test/resources/feature/3-destinatario/personaGiuridica/downloadFile/checkDownloadOltre120gg.feature +++ b/src/test/resources/feature/3-destinatario/personaGiuridica/downloadFile/checkDownloadOltre120gg.feature @@ -18,6 +18,6 @@ Feature: persona fisica scarica attestazioni all'interno di una notifica scaduta And Si visualizzano correttamente le notifiche in elenco paginato And Cliccare sulla notifica maggiore di 120 giorni Then Si visualizza correttamente la section Dettaglio Notifica - And Si clicca sul documento Attestazione scaduta + And Si clicca sul documento Attestazione scaduta 0 And Si controlla che esista pop up scadenza And Logout da portale persona giuridica \ No newline at end of file From a5a4706c91035c59e82a8a33f2a606420e91e416 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Fri, 18 Oct 2024 09:56:48 +0200 Subject: [PATCH 084/212] fix --- .../pages/mittente/DisserviziAppPAPage.java | 40 +++++++++++++++++-- 1 file changed, 37 insertions(+), 3 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/DisserviziAppPAPage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/DisserviziAppPAPage.java index b039444cf..4a7de1085 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/DisserviziAppPAPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/DisserviziAppPAPage.java @@ -224,9 +224,9 @@ public void downloadAttestazione() { Calendar calendar = GregorianCalendar.getInstance(); int index = calendar.get(Calendar.HOUR_OF_DAY); - logger.info("SIZE ROWS TABLE..."+disserviziTableRows.size()); + logger.info("SIZE ROWS TABLE..." + disserviziTableRows.size()); logger.info("ROWS SELEZIONATA: " + index); - WebElement riga =null; + WebElement riga = null; if (disserviziTableRows.size() >= index) { riga = disserviziTableRows.get(index); } else { @@ -240,10 +240,44 @@ public void downloadAttestazione() { logger.error("Non ci sono notifiche da selezionare nel arco temporale settato"); Assertions.fail("Non ci sono notifiche da selezionare nel arco temporale settato"); } + } -} + public void downloadAttestazione(int rows) { + List disserviziTableRows = disserviziTable.findElements(By.id("tableDowntimeLog.row")); + if (!disserviziTableRows.isEmpty()) { + logger.info("tabella caricata e non vuota"); + + Calendar calendar = GregorianCalendar.getInstance(); + int index = calendar.get(Calendar.HOUR_OF_DAY)+rows; + logger.info("HOUR..."+index); + logger.info("SIZE ROWS TABLE..."+disserviziTableRows.size()); + logger.info("ROWS TABLE..."+rows); + logger.info("ROWS SELEZIONATA: " + index); + WebElement riga =null; + if (disserviziTableRows.size() >= index) { + logger.info("ROWS SELEZIONATA1: " + index); + riga = disserviziTableRows.get(index); + } else { + logger.info("ROWS SELEZIONATA2: " + rows); + if((rows+1) Date: Fri, 18 Oct 2024 10:04:05 +0200 Subject: [PATCH 085/212] fix --- .../mittente/PiattaformaNotifichePage.java | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java index a420d50af..e7c23210b 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java @@ -524,6 +524,58 @@ public void selezionaNotifica120Giorni() { } } + + public void selezionaNotifica120Giorni(int rows) { + waitLoadPage(); + try { + By notificaBy = By.id("notificationsTable.body.row"); + attesaCaricamentoPagina(); + getWebDriverWait(30).withMessage("La tabella delle notifiche non è caricata correttamente").until(elementToBeClickable(notificaBy)); + + WebElement buttonRighePagine = driver.findElement(By.id("rows-per-page")); + getWebDriverWait(10).withMessage("Il bottone filtra non è cliccabile").until(elementToBeClickable(buttonRighePagine)); + buttonRighePagine.click(); + WebElement pageSize50 = driver.findElement(By.id("pageSize-50")); + getWebDriverWait(3).withMessage("Il bottone filtra non è cliccabile").until(elementToBeClickable(pageSize50)); + pageSize50.click(); + + WebTool.waitTime(10); + notificaBy = By.id("notificationsTable.body.row"); + List notifiche = this.elements(notificaBy); + + logger.info("Scenario " +Hooks.getScenario()); + + Calendar calendar = GregorianCalendar.getInstance(); + int index = calendar.get(Calendar.HOUR_OF_DAY)+rows; + logger.info("HOUR..."+index); + logger.info("SIZE ROWS TABLE..."+notifiche.size()); + logger.info("ROWS TABLE..."+rows); + logger.info("ROWS SELEZIONATA: " + index); + WebElement riga =null; + if (notifiche!= null) { + if (notifiche.size() >= index) { + logger.info("ROWS SELEZIONATA1: " + index); + notifiche.get(index).click(); + } else { + logger.info("ROWS SELEZIONATA2: " + rows); + if((rows+1) Date: Fri, 18 Oct 2024 10:12:11 +0200 Subject: [PATCH 086/212] fix --- .../pages/mittente/DisserviziAppPAPage.java | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/DisserviziAppPAPage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/DisserviziAppPAPage.java index d407a25cd..3cbb3b8f3 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/DisserviziAppPAPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/DisserviziAppPAPage.java @@ -245,6 +245,35 @@ public void downloadAttestazione() { } + public void downloadAttestazione(int rows) { + List disserviziTableRows = disserviziTable.findElements(By.id("tableDowntimeLog.row")); + if (!disserviziTableRows.isEmpty()) { + logger.info("tabella caricata e non vuota"); + + Calendar calendar = GregorianCalendar.getInstance(); + int index = calendar.get(Calendar.HOUR_OF_DAY); + + logger.info("SIZE ROWS TABLE..."+disserviziTableRows.size()); + logger.info("ROWS SELEZIONATA: " + index); + WebElement riga =null; + if (disserviziTableRows.size() >= (index+rows)) { + riga = disserviziTableRows.get(index+rows); + } else { + riga = disserviziTableRows.get(rows); + } + + WebElement linkDownloadAttestazione = riga.findElements(By.xpath("//button[@data-testid='download-legal-fact']")).get(0); + linkDownloadAttestazione.click(); + logger.info("click effettuato con successo"); + } else { + logger.error("Non ci sono notifiche da selezionare nel arco temporale settato"); + Assert.fail("Non ci sono notifiche da selezionare nel arco temporale settato"); + } + + + + } + public void clickLinkAttestazioniOpponibileDisservizi(int numeroLinkAttestazioniOpponibile) { if (attestazioniFile.get(numeroLinkAttestazioniOpponibile).isDisplayed()) { From c1c175d08bf06c2ddc584b028f3aefa03fe90169 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Fri, 18 Oct 2024 10:32:53 +0200 Subject: [PATCH 087/212] Revert --- .../pages/mittente/DisserviziAppPAPage.java | 28 ------------------- .../DownloadFileMittentePagoPATest.java | 10 ------- .../checkDownloadAOTDopo120gg.feature | 2 +- .../checkDownloadOltre120gg.feature | 2 +- .../checkDownloadAOTDopo120gg.feature | 2 +- .../checkDownloadOltre120gg.feature | 2 +- 6 files changed, 4 insertions(+), 42 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/DisserviziAppPAPage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/DisserviziAppPAPage.java index 3cbb3b8f3..8e90985a5 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/DisserviziAppPAPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/DisserviziAppPAPage.java @@ -245,34 +245,6 @@ public void downloadAttestazione() { } - public void downloadAttestazione(int rows) { - List disserviziTableRows = disserviziTable.findElements(By.id("tableDowntimeLog.row")); - if (!disserviziTableRows.isEmpty()) { - logger.info("tabella caricata e non vuota"); - - Calendar calendar = GregorianCalendar.getInstance(); - int index = calendar.get(Calendar.HOUR_OF_DAY); - - logger.info("SIZE ROWS TABLE..."+disserviziTableRows.size()); - logger.info("ROWS SELEZIONATA: " + index); - WebElement riga =null; - if (disserviziTableRows.size() >= (index+rows)) { - riga = disserviziTableRows.get(index+rows); - } else { - riga = disserviziTableRows.get(rows); - } - - WebElement linkDownloadAttestazione = riga.findElements(By.xpath("//button[@data-testid='download-legal-fact']")).get(0); - linkDownloadAttestazione.click(); - logger.info("click effettuato con successo"); - } else { - logger.error("Non ci sono notifiche da selezionare nel arco temporale settato"); - Assert.fail("Non ci sono notifiche da selezionare nel arco temporale settato"); - } - - - - } public void clickLinkAttestazioniOpponibileDisservizi(int numeroLinkAttestazioniOpponibile) { diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java index b51202880..057c37412 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java @@ -472,16 +472,6 @@ public void downloadFileAttestazioneDisservizio() { WebTool.waitTime(3); } - @And("Download file attestazione disservizio {int}") - public void downloadFileAttestazioneDisservizio(int index) { - logger.info("si effettua download del disservizio con index"); - - DisserviziAppPAPage disserviziAppPAPage = new DisserviziAppPAPage(driver); - - disserviziAppPAPage.downloadAttestazione(index); - WebTool.waitTime(3); - } - @And("Nella pagina stato della piattaforma si cambia il numero elementi visualizzati attraverso il filtro") public void nellaPaginaStatoDellaPiattaformaSiCambiaIlNumeroElementiVisualizzatiAttraversoIlFiltroNumeroNotifiche() { PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(driver); diff --git a/src/test/resources/feature/2-mittente/6_disserviziAppPA/checkDownloadAOTDopo120gg.feature b/src/test/resources/feature/2-mittente/6_disserviziAppPA/checkDownloadAOTDopo120gg.feature index 75fdd5699..dde38c880 100644 --- a/src/test/resources/feature/2-mittente/6_disserviziAppPA/checkDownloadAOTDopo120gg.feature +++ b/src/test/resources/feature/2-mittente/6_disserviziAppPA/checkDownloadAOTDopo120gg.feature @@ -12,7 +12,7 @@ Feature: Mittente prova ad effettuare download AOT scaduti da 120gg And Si visualizza correttamente la tabella dei disservizi And Nella pagina stato della piattaforma si cambia il numero elementi visualizzati attraverso il filtro And Nella pagina stato della piattaforma si cambia pagina utilizzando una freccetta fino all'ultima - And Download file attestazione disservizio 2 + And Download file attestazione disservizio And Si controlla che esista pop up scadenza And Logout da portale mittente diff --git a/src/test/resources/feature/3-destinatario/personaFisica/downloadFile/checkDownloadOltre120gg.feature b/src/test/resources/feature/3-destinatario/personaFisica/downloadFile/checkDownloadOltre120gg.feature index 1d2395030..0a73e9e10 100644 --- a/src/test/resources/feature/3-destinatario/personaFisica/downloadFile/checkDownloadOltre120gg.feature +++ b/src/test/resources/feature/3-destinatario/personaFisica/downloadFile/checkDownloadOltre120gg.feature @@ -19,6 +19,6 @@ Feature: persona fisica scarica attestazioni all'interno di una notifica scaduta Then Vengono visualizzate correttamente le notifiche comprese nell'arco temporale inserito And Cliccare sulla notifica maggiore di 120 giorni Then Si visualizza correttamente la section Dettaglio Notifica persona fisica - And Si clicca sul documento Attestazione scaduta 1 + And Si clicca sul documento Attestazione scaduta And Si controlla che esista pop up scadenza And Logout da portale persona fisica \ No newline at end of file diff --git a/src/test/resources/feature/3-destinatario/personaGiuridica/disservizi/checkDownloadAOTDopo120gg.feature b/src/test/resources/feature/3-destinatario/personaGiuridica/disservizi/checkDownloadAOTDopo120gg.feature index 69518afff..009d72ae5 100644 --- a/src/test/resources/feature/3-destinatario/personaGiuridica/disservizi/checkDownloadAOTDopo120gg.feature +++ b/src/test/resources/feature/3-destinatario/personaGiuridica/disservizi/checkDownloadAOTDopo120gg.feature @@ -10,7 +10,7 @@ Feature: Persona Giuridica prova ad effettuare download AOT scaduti da 120gg And Si visualizza correttamente la tabella dei disservizi And Nella pagina stato della piattaforma si cambia il numero elementi visualizzati attraverso il filtro And Nella pagina stato della piattaforma si cambia pagina utilizzando una freccetta fino all'ultima - And Download file attestazione disservizio 4 + And Download file attestazione disservizio And Si controlla che esista pop up scadenza And Logout da portale persona giuridica diff --git a/src/test/resources/feature/3-destinatario/personaGiuridica/downloadFile/checkDownloadOltre120gg.feature b/src/test/resources/feature/3-destinatario/personaGiuridica/downloadFile/checkDownloadOltre120gg.feature index b40e82c73..9d7c105d4 100644 --- a/src/test/resources/feature/3-destinatario/personaGiuridica/downloadFile/checkDownloadOltre120gg.feature +++ b/src/test/resources/feature/3-destinatario/personaGiuridica/downloadFile/checkDownloadOltre120gg.feature @@ -18,6 +18,6 @@ Feature: persona fisica scarica attestazioni all'interno di una notifica scaduta And Si visualizzano correttamente le notifiche in elenco paginato And Cliccare sulla notifica maggiore di 120 giorni Then Si visualizza correttamente la section Dettaglio Notifica - And Si clicca sul documento Attestazione scaduta 0 + And Si clicca sul documento Attestazione scaduta And Si controlla che esista pop up scadenza And Logout da portale persona giuridica \ No newline at end of file From 3ff0d121da99bead15f2138a84bb5cd2981dc3e0 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Fri, 18 Oct 2024 11:09:42 +0200 Subject: [PATCH 088/212] fix --- .../pages/mittente/DisserviziAppPAPage.java | 124 +++++++++++------- .../DownloadFileMittentePagoPATest.java | 10 ++ .../checkDownloadAOTDopo120gg.feature | 2 +- 3 files changed, 89 insertions(+), 47 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/DisserviziAppPAPage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/DisserviziAppPAPage.java index 8e90985a5..b345c4560 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/DisserviziAppPAPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/DisserviziAppPAPage.java @@ -224,9 +224,9 @@ public void downloadAttestazione() { Calendar calendar = GregorianCalendar.getInstance(); int index = calendar.get(Calendar.HOUR_OF_DAY); - logger.info("SIZE ROWS TABLE..."+disserviziTableRows.size()); + logger.info("SIZE ROWS TABLE..." + disserviziTableRows.size()); logger.info("ROWS SELEZIONATA: " + index); - WebElement riga =null; + WebElement riga = null; if (disserviziTableRows.size() >= index) { riga = disserviziTableRows.get(index); } else { @@ -240,65 +240,97 @@ public void downloadAttestazione() { logger.error("Non ci sono notifiche da selezionare nel arco temporale settato"); Assert.fail("Non ci sono notifiche da selezionare nel arco temporale settato"); } + } + public void downloadAttestazione(int rows) { + List disserviziTableRows = disserviziTable.findElements(By.id("tableDowntimeLog.row")); + if (!disserviziTableRows.isEmpty()) { + logger.info("tabella caricata e non vuota"); + Calendar calendar = GregorianCalendar.getInstance(); + int index = calendar.get(Calendar.HOUR_OF_DAY) + rows; + logger.info("HOUR..." + index); + logger.info("SIZE ROWS TABLE..." + disserviziTableRows.size()); + logger.info("ROWS TABLE..." + rows); + logger.info("ROWS SELEZIONATA: " + index); + WebElement riga = null; + if (disserviziTableRows.size() >= index) { + logger.info("ROWS SELEZIONATA1: " + index); + riga = disserviziTableRows.get(index); + } else { + logger.info("ROWS SELEZIONATA2: " + rows); + if ((rows + 1) < disserviziTableRows.size()) { + logger.info("ROWS SELEZIONATA3: " + (disserviziTableRows.size() - (rows + 1))); + riga = disserviziTableRows.get(disserviziTableRows.size() - (rows + 1)); + } else { + logger.info("ROWS SELEZIONATA4: " + (disserviziTableRows.size() - 1)); + riga = disserviziTableRows.get(disserviziTableRows.size() - 1); + } -} + } + WebElement linkDownloadAttestazione = riga.findElements(By.xpath("//button[@data-testid='download-legal-fact']")).get(0); + linkDownloadAttestazione.click(); + logger.info("click effettuato con successo"); + } else { + logger.error("Non ci sono notifiche da selezionare nel arco temporale settato"); + Assert.fail("Non ci sono notifiche da selezionare nel arco temporale settato"); + } + } -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(); + 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(); + } } -} -public boolean confrontoFileConDisservizio() { - getDateDisservice(); - logger.info("date prese con successo dal disserivizio"); - String folderPath = System.getProperty("downloadFilePath"); - // Stringa da cercare nel nome del file - String searchString = "PN_DOWNTIME_LEGAL_FACTS"; - // Creazione di un oggetto File che rappresenta la cartella - File folder = new File(folderPath); - // Controllo che il percorso specificato sia una directory - if (folder.isDirectory()) { - // Ottieni l'elenco di tutti i file nella cartella - File[] files = folder.listFiles(); - // Verifica che la cartella non sia vuota - if (files != null && files.length > 0) { - logger.info("Verifica cartella non vuota" + files.length); - // Cerca i file che contengono la stringa specificata nel nome - for (File file : files) { - logger.info("Verifica cartella non vuota" + file.getName()); - if (file.isFile() && file.getName().contains(searchString)) { - // Puoi eseguire altre operazioni sul file qui - try { - PDFTextStripper pdfTextStripper = new PDFTextStripper(); - String text = pdfTextStripper.getText(PDDocument.load(file)); - logger.info("DATA_POPULATION_A: " + dataPopulation.getDataA()); - logger.info("DATA_POPULATION_DA: " + dataPopulation.getDataDa()); - if (text.contains(dataPopulation.getDataA()) && text.contains(dataPopulation.getDataDa())) { - return true; + public boolean confrontoFileConDisservizio() { + getDateDisservice(); + logger.info("date prese con successo dal disserivizio"); + String folderPath = System.getProperty("downloadFilePath"); + // Stringa da cercare nel nome del file + String searchString = "PN_DOWNTIME_LEGAL_FACTS"; + // Creazione di un oggetto File che rappresenta la cartella + File folder = new File(folderPath); + // Controllo che il percorso specificato sia una directory + if (folder.isDirectory()) { + // Ottieni l'elenco di tutti i file nella cartella + File[] files = folder.listFiles(); + // Verifica che la cartella non sia vuota + if (files != null && files.length > 0) { + logger.info("Verifica cartella non vuota" + files.length); + // Cerca i file che contengono la stringa specificata nel nome + for (File file : files) { + logger.info("Verifica cartella non vuota" + file.getName()); + if (file.isFile() && file.getName().contains(searchString)) { + // Puoi eseguire altre operazioni sul file qui + try { + PDFTextStripper pdfTextStripper = new PDFTextStripper(); + String text = pdfTextStripper.getText(PDDocument.load(file)); + logger.info("DATA_POPULATION_A: " + dataPopulation.getDataA()); + logger.info("DATA_POPULATION_DA: " + dataPopulation.getDataDa()); + if (text.contains(dataPopulation.getDataA()) && text.contains(dataPopulation.getDataDa())) { + return true; + } + //break// Rimuovere il commento se si desidera fermarsi al primo file trovato + } catch (IOException e) { + logger.error("Errore nel leggere il PDF: " + file.getName(), e); + Assert.fail("Errore nel leggere il PDF: " + file.getName()); } - //break// Rimuovere il commento se si desidera fermarsi al primo file trovato - } catch (IOException e) { - logger.error("Errore nel leggere il PDF: " + file.getName(), e); - Assert.fail("Errore nel leggere il PDF: " + file.getName()); } } + } else { + System.out.println("La cartella è vuota o non è possibile accedervi."); } } else { - System.out.println("La cartella è vuota o non è possibile accedervi."); + System.out.println("Il percorso specificato non è una directory."); } - } else { - System.out.println("Il percorso specificato non è una directory."); + return false; } - return false; -} } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java index 057c37412..2c10c6710 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java @@ -472,6 +472,16 @@ public void downloadFileAttestazioneDisservizio() { WebTool.waitTime(3); } + @And("Download file attestazione disservizio {int}") + public void downloadFileAttestazioneDisservizio(int index) { + logger.info("si effettua download del disservizio"); + + DisserviziAppPAPage disserviziAppPAPage = new DisserviziAppPAPage(driver); + + disserviziAppPAPage.downloadAttestazione(index); + WebTool.waitTime(3); + } + @And("Nella pagina stato della piattaforma si cambia il numero elementi visualizzati attraverso il filtro") public void nellaPaginaStatoDellaPiattaformaSiCambiaIlNumeroElementiVisualizzatiAttraversoIlFiltroNumeroNotifiche() { PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(driver); diff --git a/src/test/resources/feature/2-mittente/6_disserviziAppPA/checkDownloadAOTDopo120gg.feature b/src/test/resources/feature/2-mittente/6_disserviziAppPA/checkDownloadAOTDopo120gg.feature index dde38c880..75fdd5699 100644 --- a/src/test/resources/feature/2-mittente/6_disserviziAppPA/checkDownloadAOTDopo120gg.feature +++ b/src/test/resources/feature/2-mittente/6_disserviziAppPA/checkDownloadAOTDopo120gg.feature @@ -12,7 +12,7 @@ Feature: Mittente prova ad effettuare download AOT scaduti da 120gg And Si visualizza correttamente la tabella dei disservizi And Nella pagina stato della piattaforma si cambia il numero elementi visualizzati attraverso il filtro And Nella pagina stato della piattaforma si cambia pagina utilizzando una freccetta fino all'ultima - And Download file attestazione disservizio + And Download file attestazione disservizio 2 And Si controlla che esista pop up scadenza And Logout da portale mittente From 320b43c9705796743ff429848036a99e8cb10940 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Fri, 18 Oct 2024 11:58:33 +0200 Subject: [PATCH 089/212] fix --- .../6_disserviziAppPA/checkDownloadAOTDopo120gg.feature | 2 +- .../downloadFile/checkDownloadOltre120gg.feature | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/test/resources/feature/2-mittente/6_disserviziAppPA/checkDownloadAOTDopo120gg.feature b/src/test/resources/feature/2-mittente/6_disserviziAppPA/checkDownloadAOTDopo120gg.feature index 75fdd5699..68c0bedf3 100644 --- a/src/test/resources/feature/2-mittente/6_disserviziAppPA/checkDownloadAOTDopo120gg.feature +++ b/src/test/resources/feature/2-mittente/6_disserviziAppPA/checkDownloadAOTDopo120gg.feature @@ -12,7 +12,7 @@ Feature: Mittente prova ad effettuare download AOT scaduti da 120gg And Si visualizza correttamente la tabella dei disservizi And Nella pagina stato della piattaforma si cambia il numero elementi visualizzati attraverso il filtro And Nella pagina stato della piattaforma si cambia pagina utilizzando una freccetta fino all'ultima - And Download file attestazione disservizio 2 + And Download file attestazione disservizio 1 And Si controlla che esista pop up scadenza And Logout da portale mittente diff --git a/src/test/resources/feature/3-destinatario/personaGiuridica/downloadFile/checkDownloadOltre120gg.feature b/src/test/resources/feature/3-destinatario/personaGiuridica/downloadFile/checkDownloadOltre120gg.feature index 9d7c105d4..eb3f16b2a 100644 --- a/src/test/resources/feature/3-destinatario/personaGiuridica/downloadFile/checkDownloadOltre120gg.feature +++ b/src/test/resources/feature/3-destinatario/personaGiuridica/downloadFile/checkDownloadOltre120gg.feature @@ -3,7 +3,7 @@ Feature: persona fisica scarica attestazioni all'interno di una notifica scaduta @TestSuite @TA_PGDownloadAttestazioniOltre120gg @PG -@120gg + @120gg Scenario: [TA-FE PG SCARICA ATTESTAZIONE SCADUTA]- persona giuridica scarica attestazione scaduta da oltre 120 gg Given PG - Si effettua la login tramite token exchange come "delegante", e viene visualizzata la dashboard And Nella pagina Piattaforma Notifiche mittente inserire un arco temporale di maggiore di 120 giorni From 7777e2f132e4cc94309560587318a324da29b23c Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Fri, 18 Oct 2024 12:29:37 +0200 Subject: [PATCH 090/212] fix --- .../it/pn/frontend/e2e/pages/mittente/DisserviziAppPAPage.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/DisserviziAppPAPage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/DisserviziAppPAPage.java index b345c4560..6cfa09ae3 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/DisserviziAppPAPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/DisserviziAppPAPage.java @@ -254,7 +254,7 @@ public void downloadAttestazione(int rows) { logger.info("ROWS TABLE..." + rows); logger.info("ROWS SELEZIONATA: " + index); WebElement riga = null; - if (disserviziTableRows.size() >= index) { + if (disserviziTableRows.size() > index) { logger.info("ROWS SELEZIONATA1: " + index); riga = disserviziTableRows.get(index); } else { From 19121ea366437a8617057d7cacabda791720a5e3 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Fri, 18 Oct 2024 12:38:23 +0200 Subject: [PATCH 091/212] fix feature --- .../3_downloadFile/104_downloadDocumentiNotificaInviata.feature | 2 +- .../6_disserviziAppPA/checkDownloadAOTDopo120gg.feature | 2 +- .../personaFisica/disservizi/checkDownloadAOTDopo120gg.feature | 2 +- .../disservizi/checkDownloadAOTDopo120gg.feature | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/test/resources/feature/2-mittente/3_downloadFile/104_downloadDocumentiNotificaInviata.feature b/src/test/resources/feature/2-mittente/3_downloadFile/104_downloadDocumentiNotificaInviata.feature index 1345a0327..0a7113e71 100644 --- a/src/test/resources/feature/2-mittente/3_downloadFile/104_downloadDocumentiNotificaInviata.feature +++ b/src/test/resources/feature/2-mittente/3_downloadFile/104_downloadDocumentiNotificaInviata.feature @@ -12,7 +12,7 @@ Feature: il mittente download attestazione notifica presa in carico And Si visualizza correttamente la tabella dei disservizi And Nella pagina stato della piattaforma si cambia il numero elementi visualizzati attraverso il filtro And Nella pagina stato della piattaforma si cambia pagina utilizzando una freccetta fino all'ultima - And Download file attestazione disservizio + And Download file attestazione disservizio 4 And Si controlla che esista pop up scadenza And Nella pagina Piattaforma Notifiche selezionare la voce 'Notifiche' And Nella pagina Piattaforma Notifiche mittente inserire un arco temporale di maggiore di 120 giorni diff --git a/src/test/resources/feature/2-mittente/6_disserviziAppPA/checkDownloadAOTDopo120gg.feature b/src/test/resources/feature/2-mittente/6_disserviziAppPA/checkDownloadAOTDopo120gg.feature index 68c0bedf3..5fd8dc35b 100644 --- a/src/test/resources/feature/2-mittente/6_disserviziAppPA/checkDownloadAOTDopo120gg.feature +++ b/src/test/resources/feature/2-mittente/6_disserviziAppPA/checkDownloadAOTDopo120gg.feature @@ -12,7 +12,7 @@ Feature: Mittente prova ad effettuare download AOT scaduti da 120gg And Si visualizza correttamente la tabella dei disservizi And Nella pagina stato della piattaforma si cambia il numero elementi visualizzati attraverso il filtro And Nella pagina stato della piattaforma si cambia pagina utilizzando una freccetta fino all'ultima - And Download file attestazione disservizio 1 + And Download file attestazione disservizio 0 And Si controlla che esista pop up scadenza And Logout da portale mittente diff --git a/src/test/resources/feature/3-destinatario/personaFisica/disservizi/checkDownloadAOTDopo120gg.feature b/src/test/resources/feature/3-destinatario/personaFisica/disservizi/checkDownloadAOTDopo120gg.feature index f4c697940..c9b3f7a6f 100644 --- a/src/test/resources/feature/3-destinatario/personaFisica/disservizi/checkDownloadAOTDopo120gg.feature +++ b/src/test/resources/feature/3-destinatario/personaFisica/disservizi/checkDownloadAOTDopo120gg.feature @@ -10,7 +10,7 @@ Feature: Persona Fisica prova ad effettuare download AOT scaduti da 120gg And Si visualizza correttamente la tabella dei disservizi And Nella pagina stato della piattaforma si cambia il numero elementi visualizzati attraverso il filtro And Nella pagina stato della piattaforma si cambia pagina utilizzando una freccetta fino all'ultima - And Download file attestazione disservizio + And Download file attestazione disservizio 2 And Si controlla che esista pop up scadenza And Logout da portale persona fisica diff --git a/src/test/resources/feature/3-destinatario/personaGiuridica/disservizi/checkDownloadAOTDopo120gg.feature b/src/test/resources/feature/3-destinatario/personaGiuridica/disservizi/checkDownloadAOTDopo120gg.feature index 009d72ae5..512256020 100644 --- a/src/test/resources/feature/3-destinatario/personaGiuridica/disservizi/checkDownloadAOTDopo120gg.feature +++ b/src/test/resources/feature/3-destinatario/personaGiuridica/disservizi/checkDownloadAOTDopo120gg.feature @@ -10,7 +10,7 @@ Feature: Persona Giuridica prova ad effettuare download AOT scaduti da 120gg And Si visualizza correttamente la tabella dei disservizi And Nella pagina stato della piattaforma si cambia il numero elementi visualizzati attraverso il filtro And Nella pagina stato della piattaforma si cambia pagina utilizzando una freccetta fino all'ultima - And Download file attestazione disservizio + And Download file attestazione disservizio 3 And Si controlla che esista pop up scadenza And Logout da portale persona giuridica From 307f23def4870cb4c3f7cb457e836be83dd14971 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Fri, 18 Oct 2024 12:49:28 +0200 Subject: [PATCH 092/212] refactor --- .../frontend/e2e/pages/mittente/DisserviziAppPAPage.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/DisserviziAppPAPage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/DisserviziAppPAPage.java index 6cfa09ae3..6627beac7 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/DisserviziAppPAPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/DisserviziAppPAPage.java @@ -262,8 +262,13 @@ public void downloadAttestazione(int rows) { if ((rows + 1) < disserviziTableRows.size()) { logger.info("ROWS SELEZIONATA3: " + (disserviziTableRows.size() - (rows + 1))); riga = disserviziTableRows.get(disserviziTableRows.size() - (rows + 1)); - } else { - logger.info("ROWS SELEZIONATA4: " + (disserviziTableRows.size() - 1)); + + } else if(disserviziTableRows.size() > rows) { + logger.info("ROWS SELEZIONATA4: " + rows); + riga = disserviziTableRows.get(rows); + } + else { + logger.info("ROWS SELEZIONATA5: " + (disserviziTableRows.size() - 1)); riga = disserviziTableRows.get(disserviziTableRows.size() - 1); } From 1b658a2e7eacc92dccbe29ec503568d0a3a5673a Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Fri, 18 Oct 2024 13:10:01 +0200 Subject: [PATCH 093/212] add wait --- .../frontend/e2e/pages/mittente/PiattaformaNotifichePage.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java index e7c23210b..c53bd7df0 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java @@ -247,7 +247,8 @@ public void inserimentoArcoTemporale(String da, String a) { // Step 2: Click on the input field to open the calendar pop-up //dataFieldList.get(0).click(); - + WebTool.waitTime(10); + logger.info("HTML.."+driver.getPageSource()); // Step 3: Wait for the calendar pop-up to appear WebElement calendar = getWebDriverWait(10).until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector(".MuiDateCalendar-root"))); // Adjust based on your app From f680e5395dd2fc8f4c32fcbb7c8a7c7684bec3fd Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Fri, 18 Oct 2024 13:46:29 +0200 Subject: [PATCH 094/212] add log --- .../frontend/e2e/pages/mittente/PiattaformaNotifichePage.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java index c53bd7df0..78538505c 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java @@ -257,6 +257,8 @@ public void inserimentoArcoTemporale(String da, String a) { int yerarsDa = Integer.parseInt(arraySplitDateDa[2]); DateFormatSymbols DFSymbols = new DateFormatSymbols(new Locale("it", "IT")); + WebTool.waitTime(10); + logger.info("HTML1.."+driver.getPageSource()); WebElement previousMonthButton = driver.findElement(By.xpath("//div[contains(@class, 'MuiDateCalendar-root')]//button[@title='Previous month']")); int click = 0; From 00edf6d83893a7f4f406aa07c7ca7cd1031f7f3c Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Fri, 18 Oct 2024 14:25:15 +0200 Subject: [PATCH 095/212] fix --- .../frontend/e2e/pages/mittente/PiattaformaNotifichePage.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java index 78538505c..90e6b3793 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java @@ -259,7 +259,7 @@ public void inserimentoArcoTemporale(String da, String a) { WebTool.waitTime(10); logger.info("HTML1.."+driver.getPageSource()); - WebElement previousMonthButton = driver.findElement(By.xpath("//div[contains(@class, 'MuiDateCalendar-root')]//button[@title='Previous month']")); + WebElement previousMonthButton = driver.findElement(By.xpath("//button[@title='Previous month']")); int click = 0; WebElement monthDaToSelect = null; From 0b8068611a93cf520d197a1e2edc975085abbb93 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Fri, 18 Oct 2024 14:33:41 +0200 Subject: [PATCH 096/212] fix --- .../e2e/pages/mittente/PiattaformaNotifichePage.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java index 90e6b3793..64d138d66 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java @@ -306,7 +306,7 @@ public void inserimentoArcoTemporale(String da, String a) { // Step 3: Wait for the calendar pop-up to appear WebElement calendar1 = getWebDriverWait(10).until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector(".MuiDateCalendar-root"))); // Adjust based on your app - WebElement previousMonthAButton = driver.findElement(By.xpath("//div[contains(@class, 'MuiDateCalendar-root')]//button[@title='Previous month']")); + WebElement previousMonthAButton = driver.findElement(By.xpath("//button[@title='Previous month']")); previousMonthAButton = getWebDriverWait(10).until(ExpectedConditions.elementToBeClickable(previousMonthAButton)); @@ -364,7 +364,7 @@ public boolean inserimentoArcoTemporaleErrato(String da, String a) { int yerarsDa = Integer.parseInt(arraySplitDateDa[2]); DateFormatSymbols DFSymbols = new DateFormatSymbols(new Locale("it", "IT")); - WebElement previousMonthButton = driver.findElement(By.xpath("//div[contains(@class, 'MuiDateCalendar-root')]//button[@title='Previous month']")); + WebElement previousMonthButton = driver.findElement(By.xpath("//button[@title='Previous month']")); int click = 0; while (click < 36) { @@ -404,7 +404,7 @@ public boolean inserimentoArcoTemporaleErrato(String da, String a) { // Step 3: Wait for the calendar pop-up to appear WebElement calendar1 = getWebDriverWait(10).until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector(".MuiDateCalendar-root"))); // Adjust based on your app - WebElement previousMonthAButton = driver.findElement(By.xpath("//div[contains(@class, 'MuiDateCalendar-root')]//button[@title='Previous month']")); + WebElement previousMonthAButton = driver.findElement(By.xpath("//button[@title='Previous month']")); try { int clickA = 0; From 23af64f8bd69427f2d1d0d81878671b8641b6c4a Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Fri, 18 Oct 2024 15:12:14 +0200 Subject: [PATCH 097/212] fix --- .../pages/mittente/PiattaformaNotifichePage.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java index 64d138d66..29bba2e82 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java @@ -259,7 +259,7 @@ public void inserimentoArcoTemporale(String da, String a) { WebTool.waitTime(10); logger.info("HTML1.."+driver.getPageSource()); - WebElement previousMonthButton = driver.findElement(By.xpath("//button[@title='Previous month']")); + WebElement previousMonthButton = driver.findElement(By.xpath("//div[contains(@class, 'MuiDateCalendar-root')]//button[@title='Previous month']")); int click = 0; WebElement monthDaToSelect = null; @@ -274,7 +274,7 @@ public void inserimentoArcoTemporale(String da, String a) { click++; } } - + logger.info("HTML 333333333"); // Step 4: Select a date (e.g., the 15th day of the current month) WebTool.waitTime(2); WebElement dateToSelect = calendar.findElement(By.xpath("//div[contains(@class, 'MuiDateCalendar-root')]//div[contains(@class,'MuiDayCalendar-monthContainer')]//*[text()='" + dayDa + "']")); @@ -305,8 +305,10 @@ public void inserimentoArcoTemporale(String da, String a) { // Step 3: Wait for the calendar pop-up to appear WebElement calendar1 = getWebDriverWait(10).until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector(".MuiDateCalendar-root"))); // Adjust based on your app - - WebElement previousMonthAButton = driver.findElement(By.xpath("//button[@title='Previous month']")); + WebTool.waitTime(10); + logger.info("HTML 44444444444444"); + logger.info("HTML2.."+driver.getPageSource()); + WebElement previousMonthAButton = driver.findElement(By.xpath("//div[contains(@class, 'MuiDateCalendar-root')]//button[@title='Previous month']")); previousMonthAButton = getWebDriverWait(10).until(ExpectedConditions.elementToBeClickable(previousMonthAButton)); @@ -364,7 +366,7 @@ public boolean inserimentoArcoTemporaleErrato(String da, String a) { int yerarsDa = Integer.parseInt(arraySplitDateDa[2]); DateFormatSymbols DFSymbols = new DateFormatSymbols(new Locale("it", "IT")); - WebElement previousMonthButton = driver.findElement(By.xpath("//button[@title='Previous month']")); + WebElement previousMonthButton = driver.findElement(By.xpath("//div[contains(@class, 'MuiDateCalendar-root')]//button[@title='Previous month']")); int click = 0; while (click < 36) { @@ -404,7 +406,7 @@ public boolean inserimentoArcoTemporaleErrato(String da, String a) { // Step 3: Wait for the calendar pop-up to appear WebElement calendar1 = getWebDriverWait(10).until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector(".MuiDateCalendar-root"))); // Adjust based on your app - WebElement previousMonthAButton = driver.findElement(By.xpath("//button[@title='Previous month']")); + WebElement previousMonthAButton = driver.findElement(By.xpath("//div[contains(@class, 'MuiDateCalendar-root')]//button[@title='Previous month']")); try { int clickA = 0; From 4f8c97390518eae1cf9a71041e8d75bdfd114c84 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Fri, 18 Oct 2024 16:09:51 +0200 Subject: [PATCH 098/212] FIX --- .../mittente/RicercaNotificheMittentePagoPATest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/RicercaNotificheMittentePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/RicercaNotificheMittentePagoPATest.java index 8a72bb10c..5cb313e9d 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/RicercaNotificheMittentePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/RicercaNotificheMittentePagoPATest.java @@ -306,7 +306,7 @@ public void nellaPaginaPiattaformaNotificheSelezionareLoStatoNotifica() { @And("Nella pagina Piattaforma Notifiche inserire un arco temporale") public void nellaPaginaPiattaformaNotificheInserireUnArcoTemporale() { LocalDate dateA = LocalDate.now(); - LocalDate dateDa = dateA.minusDays(5); + LocalDate dateDa = dateA.minusDays(35); PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(this.driver); String dataa = piattaformaNotifichePage.conversioneFormatoDate(dateA.toString()); From fac012906366e7404b9bc5ff7e5c14d46f068c7a Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Fri, 18 Oct 2024 16:26:41 +0200 Subject: [PATCH 099/212] FIX --- .../mittente/RicercaNotificheMittentePagoPATest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/RicercaNotificheMittentePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/RicercaNotificheMittentePagoPATest.java index 0d4b2cc22..6e3b74d49 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/RicercaNotificheMittentePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/RicercaNotificheMittentePagoPATest.java @@ -305,7 +305,7 @@ public void nellaPaginaPiattaformaNotificheSelezionareLoStatoNotifica() { @And("Nella pagina Piattaforma Notifiche inserire un arco temporale") public void nellaPaginaPiattaformaNotificheInserireUnArcoTemporale() { LocalDate dateA = LocalDate.now(); - LocalDate dateDa = dateA.minusDays(5); + LocalDate dateDa = dateA.minusDays(35); PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(this.driver); String dataa = piattaformaNotifichePage.conversioneFormatoDate(dateA.toString()); From d14139c67717c02a0aa91074b1c3d737646bb730 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Fri, 18 Oct 2024 16:29:43 +0200 Subject: [PATCH 100/212] remove log --- .../e2e/pages/mittente/PiattaformaNotifichePage.java | 8 -------- 1 file changed, 8 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java index 29bba2e82..b4273603d 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java @@ -247,8 +247,6 @@ public void inserimentoArcoTemporale(String da, String a) { // Step 2: Click on the input field to open the calendar pop-up //dataFieldList.get(0).click(); - WebTool.waitTime(10); - logger.info("HTML.."+driver.getPageSource()); // Step 3: Wait for the calendar pop-up to appear WebElement calendar = getWebDriverWait(10).until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector(".MuiDateCalendar-root"))); // Adjust based on your app @@ -257,8 +255,6 @@ public void inserimentoArcoTemporale(String da, String a) { int yerarsDa = Integer.parseInt(arraySplitDateDa[2]); DateFormatSymbols DFSymbols = new DateFormatSymbols(new Locale("it", "IT")); - WebTool.waitTime(10); - logger.info("HTML1.."+driver.getPageSource()); WebElement previousMonthButton = driver.findElement(By.xpath("//div[contains(@class, 'MuiDateCalendar-root')]//button[@title='Previous month']")); int click = 0; @@ -274,7 +270,6 @@ public void inserimentoArcoTemporale(String da, String a) { click++; } } - logger.info("HTML 333333333"); // Step 4: Select a date (e.g., the 15th day of the current month) WebTool.waitTime(2); WebElement dateToSelect = calendar.findElement(By.xpath("//div[contains(@class, 'MuiDateCalendar-root')]//div[contains(@class,'MuiDayCalendar-monthContainer')]//*[text()='" + dayDa + "']")); @@ -305,9 +300,6 @@ public void inserimentoArcoTemporale(String da, String a) { // Step 3: Wait for the calendar pop-up to appear WebElement calendar1 = getWebDriverWait(10).until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector(".MuiDateCalendar-root"))); // Adjust based on your app - WebTool.waitTime(10); - logger.info("HTML 44444444444444"); - logger.info("HTML2.."+driver.getPageSource()); WebElement previousMonthAButton = driver.findElement(By.xpath("//div[contains(@class, 'MuiDateCalendar-root')]//button[@title='Previous month']")); previousMonthAButton = getWebDriverWait(10).until(ExpectedConditions.elementToBeClickable(previousMonthAButton)); From c4d3166a6351015db4f5533ca0d9de106b33873d Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Mon, 21 Oct 2024 12:27:38 +0200 Subject: [PATCH 101/212] modify POM add dependecy webdrive --- pom.xml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pom.xml b/pom.xml index 7d81feee2..6d93ef159 100644 --- a/pom.xml +++ b/pom.xml @@ -12,12 +12,13 @@ http://www.example.com + UTF-8 17 17 - 2.7.2 - 5.9.1 + 3.3.4 + 5.9.2 7.8.1 4.22.0 @@ -340,4 +341,4 @@ - + \ No newline at end of file From 048fbb3b5413f2905e7033d3d18bf93dcd6df745 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Mon, 21 Oct 2024 12:32:48 +0200 Subject: [PATCH 102/212] refactor --- pom.xml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/pom.xml b/pom.xml index 6d93ef159..4eb71f4c6 100644 --- a/pom.xml +++ b/pom.xml @@ -68,7 +68,6 @@ cucumber-junit-platform-engine ${cucumber.version} test - @@ -127,7 +126,6 @@ 5.2.1 - org.apache.logging.log4j log4j-to-slf4j @@ -231,7 +229,6 @@ net.lingala.zip4j zip4j 2.11.5 - org.junit.jupiter @@ -241,7 +238,6 @@ io.cucumber cucumber-java - @@ -283,7 +279,6 @@ org.projectlombok lombok - @@ -315,7 +310,6 @@ 17 - maven-jar-plugin 3.0.2 From 596edadbe1cb2b3222d436be0badaee8df11f6ff Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Mon, 21 Oct 2024 14:46:52 +0200 Subject: [PATCH 103/212] Refactor POM --- pom.xml | 72 ++++++++++++++++++++++++++++----------------------------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/pom.xml b/pom.xml index 4eb71f4c6..9b37065a1 100644 --- a/pom.xml +++ b/pom.xml @@ -21,6 +21,7 @@ 5.9.2 7.8.1 4.22.0 + 5.9.1 @@ -60,7 +61,12 @@ selenium-devtools-v126 ${selenium.version} - + + + io.github.bonigarcia + webdrivermanager + ${webdriver.version} + @@ -69,8 +75,13 @@ ${cucumber.version} test + + io.cucumber + cucumber-java + + org.junit.platform junit-platform-suite @@ -79,16 +90,14 @@ org.junit.jupiter junit-jupiter - 5.9.1 + ${junit.version} test - - - io.github.bonigarcia - webdrivermanager - ${webdriver.version} + org.junit.jupiter + junit-jupiter-api + @@ -97,7 +106,6 @@ 4.5.14 - org.apache.commons @@ -143,7 +151,15 @@ ch.qos.logback logback-core - 1.4.12 + 1.4.14 + + + + + org.projectlombok + lombok + 1.18.30 + provided @@ -160,12 +176,17 @@ 20231013 - + - org.projectlombok - lombok - 1.18.30 - provided + com.google.code.gson + gson + 2.10.1 + + + + org.jsoup + jsoup + 1.15.4 @@ -175,13 +196,6 @@ 3.0.0 - - - com.google.code.gson - gson - 2.10.1 - - com.fasterxml.jackson.dataformat @@ -195,7 +209,6 @@ jackson-databind 2.14.0 - com.opencsv @@ -207,17 +220,12 @@ allure-cucumber7-jvm 2.21.0 - org.apache.pdfbox pdfbox 2.0.27 - - org.jsoup - jsoup - 1.15.4 - + org.apache.maven.plugins @@ -230,14 +238,6 @@ zip4j 2.11.5 - - org.junit.jupiter - junit-jupiter-api - - - io.cucumber - cucumber-java - From 55f66ab0e5c445053a6c425cb16c4e950b18d4fa Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Mon, 21 Oct 2024 18:39:19 +0200 Subject: [PATCH 104/212] add dependency --- pom.xml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 9b37065a1..3fcbf2e2d 100644 --- a/pom.xml +++ b/pom.xml @@ -79,6 +79,12 @@ io.cucumber cucumber-java + + io.cucumber + cucumber-spring + ${cucumber.version} + test + @@ -144,14 +150,14 @@ ch.qos.logback logback-classic - 1.4.12 + 1.5.6 ch.qos.logback logback-core - 1.4.14 + 1.5.6 From e99837a3f864df7bac9e345c735698cde7b4ae3f Mon Sep 17 00:00:00 2001 From: AlimaZhansultan Date: Tue, 22 Oct 2024 00:47:22 +0200 Subject: [PATCH 105/212] minor fix --- .../personaFisica/AccediAPiattaformaNotifichePage.java | 1 + .../deleghe/013_001_delegatoPagaNotificaPF.feature | 2 -- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java index 077de00b1..7645c5e6a 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java @@ -275,6 +275,7 @@ public void checkoutPagamento() throws InterruptedException { getWebDriverWait(10).withMessage("Il textbox numero di carta non è visibile").until(ExpectedConditions.visibilityOf(creditCardNumber)); creditCardNumber.click(); creditCardNumber.clear(); + logger.info("Si inserisce numero di CC"); creditCardNumber.sendKeys("5127390031101597"); driver.switchTo().defaultContent(); diff --git a/src/test/resources/feature/3-destinatario/personaFisica/deleghe/013_001_delegatoPagaNotificaPF.feature b/src/test/resources/feature/3-destinatario/personaFisica/deleghe/013_001_delegatoPagaNotificaPF.feature index c3920fea0..773f754ba 100644 --- a/src/test/resources/feature/3-destinatario/personaFisica/deleghe/013_001_delegatoPagaNotificaPF.feature +++ b/src/test/resources/feature/3-destinatario/personaFisica/deleghe/013_001_delegatoPagaNotificaPF.feature @@ -7,13 +7,11 @@ Feature:Il delegato persona giuridica accede ad una delega Scenario: PN-10388 - Il delegato persona fisica paga una notifica Given PF - Si effettua la login tramite token exchange come "delegante", e viene visualizzata la dashboard - And Aspetta 10 secondi And Nella pagina Piattaforma Notifiche persona fisica click sul bottone Deleghe And Nella pagina Piattaforma Notifiche persona fisica si vede la sezione Deleghe And Si controlla che non sia presente una delega con stesso nome | nome | Lucrezia | | cognome | Borgia | - And Aspetta 10 secondi And Nella sezione Deleghe click sul bottone aggiungi nuova delega And Si visualizza correttamente la pagina nuova delega And Nella sezione Le Tue Deleghe inserire i dati From 836edc3262f900a43b7919798e5b23a70a0c0826 Mon Sep 17 00:00:00 2001 From: scritelli Date: Tue, 22 Oct 2024 12:44:00 +0200 Subject: [PATCH 106/212] Ristrutturazione della classe hooks e aggiunta web driverConfig per spring --- .../frontend/e2e/config/WebDriverConfig.java | 80 +++++ .../it/pn/frontend/e2e/listeners/Hooks.java | 329 +++++++++--------- 2 files changed, 244 insertions(+), 165 deletions(-) create mode 100644 src/main/java/it/pn/frontend/e2e/config/WebDriverConfig.java diff --git a/src/main/java/it/pn/frontend/e2e/config/WebDriverConfig.java b/src/main/java/it/pn/frontend/e2e/config/WebDriverConfig.java new file mode 100644 index 000000000..3e70b81bc --- /dev/null +++ b/src/main/java/it/pn/frontend/e2e/config/WebDriverConfig.java @@ -0,0 +1,80 @@ +package it.pn.frontend.e2e.config; + +import io.github.bonigarcia.wdm.WebDriverManager; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.chrome.ChromeDriver; +import org.openqa.selenium.chrome.ChromeOptions; +import org.openqa.selenium.edge.EdgeDriver; +import org.openqa.selenium.edge.EdgeOptions; +import org.openqa.selenium.firefox.FirefoxDriver; +import org.openqa.selenium.firefox.FirefoxOptions; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +/* +*Modifiche principali: +Iniezione di WebDriver: Ho rimosso tutte le istanze di new ChromeDriver(), new FirefoxDriver(), ecc., e ho creato un bean in una classe separata (che andremo a configurare subito dopo) che gestisce la creazione del WebDriver. + +Rimozione di new per altre dipendenze: Ho sostituito la creazione di oggetti come CookieConfig, RestDelegation e RestContact con l'iniezione di dipendenze utilizzando @Autowired. + +Configurazione di un WebDriver come Bean +* +* +* */ +@Configuration +public class WebDriverConfig { + + @Value("${test.headless:false}") + private boolean headless; + + @Value("${os.name}") + private String os; + + @Bean + public WebDriver webDriver() { + String browser = System.getProperty("browser"); + if (browser == null) { + throw new IllegalArgumentException("La variabile browser non è stata impostata"); + } + + return switch (browser.toLowerCase()) { + case "firefox" -> getFirefoxDriver(); + case "chrome" -> getChromeDriver(); + case "edge" -> getEdgeDriver(); + default -> throw new IllegalArgumentException("Browser non supportato: " + browser); + }; + } + + private WebDriver getFirefoxDriver() { + WebDriverManager.firefoxdriver().setup(); + FirefoxOptions options = new FirefoxOptions(); + options.addArguments("-private"); + if (headless) { + options.addArguments("--headless"); + options.addArguments("--window-size=1920,1080"); + } + return new FirefoxDriver(options); + } + + private WebDriver getChromeDriver() { + WebDriverManager.chromedriver().setup(); + ChromeOptions options = new ChromeOptions(); + options.addArguments("--incognito"); + if (headless) { + options.addArguments("--headless"); + options.addArguments("--window-size=1920,1080"); + } + return new ChromeDriver(options); + } + + private WebDriver getEdgeDriver() { + WebDriverManager.edgedriver().setup(); + EdgeOptions options = new EdgeOptions(); + options.addArguments("inPrivate"); + if (headless) { + options.addArguments("--headless"); + options.addArguments("--window-size=1920,1080"); + } + return new EdgeDriver(options); + } +} diff --git a/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java b/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java index 5806e624c..c0120cfdd 100644 --- a/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java +++ b/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java @@ -3,7 +3,6 @@ import io.cucumber.java.After; import io.cucumber.java.Before; import io.cucumber.java.Scenario; -import io.cucumber.java.en.And; import io.github.bonigarcia.wdm.WebDriverManager; import it.pn.frontend.e2e.model.address.DigitalAddress; import it.pn.frontend.e2e.model.singleton.MandateSingleton; @@ -12,251 +11,251 @@ import it.pn.frontend.e2e.utility.CookieConfig; import lombok.Getter; import org.apache.commons.io.FileUtils; +import org.junit.Assert; import org.openqa.selenium.OutputType; import org.openqa.selenium.TakesScreenshot; import org.openqa.selenium.WebDriver; -import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.chrome.ChromeOptions; import org.openqa.selenium.devtools.DevTools; +import org.openqa.selenium.devtools.DevToolsException; import org.openqa.selenium.devtools.HasDevTools; import org.openqa.selenium.devtools.v126.network.Network; import org.openqa.selenium.devtools.v126.network.model.RequestWillBeSent; -import org.openqa.selenium.edge.EdgeDriver; -import org.openqa.selenium.edge.EdgeOptions; -import org.openqa.selenium.firefox.FirefoxDriver; -import org.openqa.selenium.firefox.FirefoxOptions; -import org.openqa.selenium.firefox.FirefoxProfile; +import org.openqa.selenium.devtools.v126.network.model.ResourceType; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.slf4j.MDC; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; +import javax.annotation.PostConstruct; +import javax.annotation.PreDestroy; import java.io.File; import java.io.IOException; -import java.nio.file.Files; +import java.text.DateFormat; import java.text.SimpleDateFormat; import java.time.Duration; import java.util.*; +/* +* Modifiche principali: +Iniezione di WebDriver: Ho rimosso tutte le istanze di new ChromeDriver(), new FirefoxDriver(), ecc., e ho creato un bean in una classe separata (che andremo a configurare subito dopo) che gestisce la creazione del WebDriver. + +Rimozione di new per altre dipendenze: Ho sostituito la creazione di oggetti come CookieConfig, RestDelegation e RestContact con l'iniezione di dipendenze utilizzando @Autowired.*/ + +@Component public class Hooks { + private static final Logger logger = LoggerFactory.getLogger(Hooks.class); - public static WebDriver driver; + + @Autowired + private WebDriver driver; + + @Autowired + private CookieConfig cookieConfig; + + @Autowired + private RestDelegation restDelegation; + + @Autowired + private RestContact restContact; + private DevTools devTools; - private final Map requests = new HashMap<>(); + private Map requests = new HashMap<>(); + @Getter public static String scenario; - public static final List netWorkInfos = new ArrayList<>(); + + @Value("${test.headless:false}") private String headless; - private final CookieConfig cookieConfig = new CookieConfig(); - private final String os = System.getProperty("os.name"); + @Value("${downloadFilePath}") + private String downloadFilePath; - private void setupFirefox() { - WebDriverManager.firefoxdriver().setup(); - var firefoxProfile = new FirefoxProfile(); - var firefoxOptions = new FirefoxOptions(); - firefoxOptions.setProfile(firefoxProfile); - firefoxOptions.addArguments("-private"); + @Value("${os.name}") + private String os; - if (Boolean.parseBoolean(this.headless)) { - firefoxOptions.addArguments("--width=1200", "--height=800", "--headless"); - } - driver = new FirefoxDriver(firefoxOptions); - driver.manage().window().maximize(); - driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(5)); - logger.info("Firefox driver started"); - } + public static List netWorkInfos = new ArrayList<>(); + + private void configureChromeOptions(ChromeOptions chromeOptions) { + chromeOptions.addArguments("--lang=it"); + chromeOptions.addArguments("--incognito"); + chromeOptions.addArguments("--disable-dev-shm-usage"); + chromeOptions.addArguments("--remote-allow-origins=*"); + chromeOptions.addArguments("--enable-clipboard"); - private void setupChrome() { - WebDriverManager.chromedriver().setup(); - var chromeOptions = new ChromeOptions(); - chromeOptions.addArguments("--lang=it", "--incognito", "--disable-dev-shm-usage", "--remote-allow-origins=*", "--enable-clipboard"); - var downloadFilePath = System.getProperty("downloadFilePath"); - var chromePrefs = Map.of("download.default_directory", downloadFilePath); + HashMap chromePrefs = new HashMap<>(); + chromePrefs.put("download.default_directory", downloadFilePath); chromeOptions.setExperimentalOption("prefs", chromePrefs); - if (Boolean.parseBoolean(this.headless)) { - chromeOptions.addArguments("--no-sandbox", "--headless", "window-size=1920,1080"); + if (this.headless.equalsIgnoreCase("true")) { + chromeOptions.addArguments("--no-sandbox"); + chromeOptions.addArguments("headless"); + chromeOptions.addArguments("window-size=1920,1080"); } - - driver = new ChromeDriver(chromeOptions); - driver.manage().window().maximize(); - driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10)); - - setupDevTools(); - logger.info("Chrome driver started"); - } - - private void setupDevTools() { - devTools = ((HasDevTools) driver).getDevTools(); - devTools.createSession(); - devTools.send(Network.enable(Optional.empty(), Optional.empty(), Optional.empty())); - captureHttpRequests(); - captureHttpResponse(); } private void captureHttpRequests() { - devTools.addListener(Network.requestWillBeSent(), request -> { - var url = request.getRequest().getUrl(); - cookieConfig.getCookies(url).forEach(cookie -> driver.manage().addCookie(cookie)); - requests.put(request.getRequestId().toString(), request); - }); + devTools.addListener( + Network.requestWillBeSent(), + request -> { + String url = request.getRequest().getUrl(); + if (!cookieConfig.getCookies(url).isEmpty()) { + cookieConfig.getCookies(url).forEach(cookie -> driver.manage().addCookie(cookie)); + } + requests.put(request.getRequestId().toString(), request); + } + ); } private void captureHttpResponse() { - devTools.addListener(Network.responseReceived(), response -> { - var requestId = response.getRequestId().toString(); - if (requests.containsKey(requestId)) { - var request = requests.get(requestId); - var headers = request.getRequest().getHeaders(); - - // Controlla il tipo di risorsa come stringa "XHR" - if ("XHR".equals(response.getType().toString())) { - var netWorkInfo = new NetWorkInfo(); - if (headers.get("Authorization") != null) { - var authHeader = headers.get("Authorization").toString(); - System.setProperty("token", authHeader); - netWorkInfo.setAuthorizationBearer(authHeader); - } - netWorkInfo.setRequestId(requestId); - netWorkInfo.setRequestUrl(request.getRequest().getUrl()); - netWorkInfo.setRequestMethod(request.getRequest().getMethod()); - netWorkInfo.setResponseStatus(response.getResponse().getStatus().toString()); - - try { - var bodyResponse = devTools.send(Network.getResponseBody(response.getRequestId())).getBody(); - netWorkInfo.setResponseBody(bodyResponse); - } catch (Exception ignored) { - // Ignorato perché non sempre è disponibile il body della risposta + devTools.addListener( + Network.responseReceived(), + response -> { + String requestId = response.getRequestId().toString(); + if (requests.containsKey(requestId)) { + RequestWillBeSent request = requests.get(requestId); + if (response.getType().equals(ResourceType.XHR)) { + NetWorkInfo netWorkInfo = new NetWorkInfo(); + netWorkInfo.setRequestId(requestId); + netWorkInfo.setRequestUrl(request.getRequest().getUrl()); + netWorkInfo.setRequestMethod(request.getRequest().getMethod()); + netWorkInfo.setResponseStatus(response.getResponse().getStatus().toString()); + try { + String bodyResponse = devTools.send(Network.getResponseBody(response.getRequestId())).getBody(); + netWorkInfo.setResponseBody(bodyResponse); + } catch (DevToolsException ignored) { + // Ignored because the response body is not always available. + } + netWorkInfos.add(netWorkInfo); + } } - - netWorkInfos.add(netWorkInfo); + requests.remove(requestId); } - } - requests.remove(requestId); - }); - } - - private void setupEdge() { - if (this.os.toLowerCase().contains("windows")) { - WebDriverManager.edgedriver().setup(); - } else { - throw new UnsupportedOperationException("Edge browser is not supported on OS: " + this.os); - } - var edgeOptions = new EdgeOptions(); - edgeOptions.setCapability("ms:inPrivate", true); - if (Boolean.parseBoolean(this.headless)) { - edgeOptions.addArguments("window-size=1920,1080", "--headless"); - } - driver = new EdgeDriver(edgeOptions); - driver.manage().window().maximize(); - driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(20)); - logger.info("Edge driver started"); + ); } @Before public void startScenario(Scenario scenario) { - logger.info("----- START SCENARIO: {} -----", scenario.getName()); + logger.info("-------------------------------------------START SCENARIO: " + scenario.getName() + "------------------------------------------------"); Hooks.scenario = scenario.getName(); - - scenario.getSourceTagNames().stream() - .filter(tag -> tag.startsWith("@TA_")) - .forEach(tag -> { - MDC.put("tag", tag); - MDC.put("team", "TA-QA"); - }); - - var browser = Optional.ofNullable(System.getProperty("browser")) - .orElseThrow(() -> new IllegalArgumentException("Browser must be specified")); - this.headless = System.getProperty("headless", "false"); - - switch (browser) { - case "firefox" -> setupFirefox(); - case "chrome" -> setupChrome(); - case "edge" -> setupEdge(); - default -> throw new IllegalArgumentException("Unsupported browser: " + browser); + Collection tags = scenario.getSourceTagNames(); + for (String tag : tags) { + if (tag.startsWith("@TA_")) { + MDC.put("tag", tag); + MDC.put("team", "TA-QA"); + } } - cookieConfig.addCookie(); + logger.info("os type : " + this.os); + logger.info("user language : " + System.getProperty("user.language")); + + devTools = ((HasDevTools) driver).getDevTools(); + devTools.createSession(); + devTools.send(Network.enable( + Optional.empty(), + Optional.empty(), + Optional.empty() + )); + this.captureHttpRequests(); + this.captureHttpResponse(); + cookieConfig.addCookie(); } @After - public void endScenario(Scenario scenario) throws IOException { + public void endScenario(Scenario scenario) { + System.clearProperty("IUN"); - netWorkInfos.forEach(netWorkInfo -> { - logger.info("Request ID: {}", netWorkInfo.getRequestId()); - logger.info("Request URL: {}", netWorkInfo.getRequestUrl()); - logger.info("Method: {}", netWorkInfo.getRequestMethod()); - logger.info("Response Status: {}", netWorkInfo.getResponseStatus()); - logger.info("Response Body: {}", netWorkInfo.getResponseBody()); - }); + + for (NetWorkInfo netWorkInfo : netWorkInfos) { + logger.info(netWorkInfo.getRequestId()); + logger.info(netWorkInfo.getRequestUrl()); + logger.info(netWorkInfo.getRequestMethod()); + logger.info(netWorkInfo.getResponseStatus()); + logger.info(netWorkInfo.getResponseBody()); + } if (scenario.isFailed()) { - logger.error("Scenario failed: {}", scenario.getName()); - var screenshot = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE); - var screenshotBytes = Files.readAllBytes(screenshot.toPath()); - var formatter = new SimpleDateFormat("dd_MM_yyyy_HH_mm_ss"); - var timestamp = formatter.format(new Date()); - var fileName = "logs/" + scenario.getName() + "_" + timestamp + ".png"; - FileUtils.copyFile(screenshot, new File(fileName)); - scenario.attach(screenshotBytes, "image/png", scenario.getName()); + logger.error("scenario go to error : " + scenario.getName()); + try { + File screenshot = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE); + byte[] screenshotByte = FileUtils.readFileToByteArray(screenshot); + Date date = Calendar.getInstance().getTime(); + DateFormat formatter = new SimpleDateFormat("dd_MM_yyyy_HH_mm_ss"); + String today = formatter.format(date); + String testCaseFailed = "logs/" + scenario.getName() + "_" + today + ".png"; + FileUtils.copyFile(screenshot, new File(testCaseFailed)); + scenario.attach(screenshotByte, "image/png", scenario.getName()); + } catch (IOException e) { + logger.error(e.getCause().toString()); + } } + logger.info("quit driver"); driver.quit(); requests.clear(); netWorkInfos.clear(); - logger.info("----- END SCENARIO: {} -----", scenario.getName()); } @After("@DeleghePF or @DeleghePG") - @Before("@DeleghePF or @DeleghePG") - @And("Revoca deleghe se esistono") public void clearDelegate() { - logger.info("Revoking all delegations..."); - var mandateId = MandateSingleton.getInstance().getMandateId(Hooks.getScenario()); + logger.info("REVOCA TUTTE LE DELEGHE...."); + MandateSingleton mandateSingleton = MandateSingleton.getInstance(); + String mandateId = mandateSingleton.getMandateId(Hooks.getScenario()); if (mandateId != null) { - RestDelegation.getInstance().revokeDelegation(mandateId); - logger.info("Delegation revoked: {}", mandateId); + logger.info("REVOCA DELEGA: " + mandateId); + restDelegation.revokeDelegation(mandateId); + logger.info("Delega revocata con successo"); } else { - logger.info("Mandate ID not found"); + logger.info("mandateId non trovato"); } } @After("@File") public void clearDirectory() { - var folderPath = System.getProperty("downloadFilePath"); - var folder = new File(folderPath); + File folder = new File(downloadFilePath); + if (folder.isDirectory()) { - Arrays.stream(Objects.requireNonNull(folder.listFiles())) - .filter(File::isFile) - .forEach(file -> { - if (file.delete()) { - logger.info("Deleted file: {}", file.getAbsolutePath()); - } else { - logger.warn("Failed to delete file: {}", file.getAbsolutePath()); - } - }); + File[] files = folder.listFiles(); + for (File file : files) { + if (file.isFile()) { + if (file.delete()) { + logger.info("File cancellato: " + file.getAbsolutePath()); + } else { + logger.info("Impossibile cancellare il file: " + file.getAbsolutePath()); + } + } + } } } @After("@recapitiPF or @recapitiPG") - @Before("@recapitiPF or @recapitiPG") @And("Rimuovi tutti i recapiti se esistono") - public void clearRecapiti() { - var restContact = RestContact.getInstance(); - var digitalAddresses = restContact.getAllDigitalAddress(); - if (digitalAddresses != null && !digitalAddresses.isEmpty()) { - digitalAddresses.forEach(address -> { - if ("default".equalsIgnoreCase(address.getSenderId())) { - if ("PEC".equalsIgnoreCase(address.getChannelType())) { + public void clearRecapiti() throws IOException { + + List digitalAddress = restContact.getAllDigitalAddress(); + + if (digitalAddress != null) { + logger.info("SENDER DIGITAL ADDRESS...." + digitalAddress); + logger.info("SENDER DIGITAL ADDRESS...." + digitalAddress.size()); + digitalAddress.forEach(addressDigital -> { + logger.info("SENDER_ID: " + addressDigital.getSenderId()); + if (addressDigital.getSenderId().equalsIgnoreCase("default")) { + + if ("PEC".equalsIgnoreCase(addressDigital.getChannelType())) { + logger.info("Remove Digital Address LegalPec: " + addressDigital.getSenderId()); restContact.removeDigitalAddressLegalPec(); } else { + logger.info("Remove Digital Address Courtesy Email: " + addressDigital.getSenderId()); restContact.removeDigitalAddressCourtesyEmail(); } } else { - restContact.removeSpecialContact(address); + logger.info("Remove Special Contact: " + addressDigital.getSenderId()); + restContact.removeSpecialContact(addressDigital); } }); } } -} +} \ No newline at end of file From 248feebd60542496c0494d8f031aa2eb1ccda025 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Tue, 22 Oct 2024 13:11:46 +0200 Subject: [PATCH 107/212] exclude dependecy --- pom.xml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pom.xml b/pom.xml index 3fcbf2e2d..5153fc962 100644 --- a/pom.xml +++ b/pom.xml @@ -33,6 +33,12 @@ org.springframework.boot spring-boot-starter-test test + + + com.vaadin.external.google + android-json + + org.springframework.boot From bde726010e81a2a94598c00a1dce88c0e54125a0 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Wed, 23 Oct 2024 10:04:19 +0200 Subject: [PATCH 108/212] test integrazione --- .../it/pn/frontend/e2e/listeners/Hooks.java | 44 +-- .../pn/frontend/e2e/listeners/HooksNew.java | 298 ++++++++++++++++++ .../pages/destinatario/DestinatarioPage.java | 7 +- .../personaGiuridica/GruppiPGPage.java | 9 +- .../it/pn/frontend/e2e/rest/RestContact.java | 2 + .../pn/frontend/e2e/rest/RestDelegation.java | 2 + .../pn/frontend/e2e/utility/CookieConfig.java | 2 + 7 files changed, 343 insertions(+), 21 deletions(-) create mode 100644 src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java diff --git a/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java b/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java index c0120cfdd..03050822d 100644 --- a/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java +++ b/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java @@ -1,9 +1,6 @@ package it.pn.frontend.e2e.listeners; -import io.cucumber.java.After; -import io.cucumber.java.Before; import io.cucumber.java.Scenario; -import io.github.bonigarcia.wdm.WebDriverManager; import it.pn.frontend.e2e.model.address.DigitalAddress; import it.pn.frontend.e2e.model.singleton.MandateSingleton; import it.pn.frontend.e2e.rest.RestContact; @@ -11,7 +8,6 @@ import it.pn.frontend.e2e.utility.CookieConfig; import lombok.Getter; import org.apache.commons.io.FileUtils; -import org.junit.Assert; import org.openqa.selenium.OutputType; import org.openqa.selenium.TakesScreenshot; import org.openqa.selenium.WebDriver; @@ -28,14 +24,10 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; - -import javax.annotation.PostConstruct; -import javax.annotation.PreDestroy; import java.io.File; import java.io.IOException; import java.text.DateFormat; import java.text.SimpleDateFormat; -import java.time.Duration; import java.util.*; /* @@ -49,8 +41,7 @@ public class Hooks { private static final Logger logger = LoggerFactory.getLogger(Hooks.class); - @Autowired - private WebDriver driver; + @Autowired private CookieConfig cookieConfig; @@ -75,6 +66,7 @@ public class Hooks { @Value("${os.name}") private String os; + public static WebDriver driver; public static List netWorkInfos = new ArrayList<>(); @@ -136,7 +128,7 @@ private void captureHttpResponse() { ); } - @Before + // @Before public void startScenario(Scenario scenario) { logger.info("-------------------------------------------START SCENARIO: " + scenario.getName() + "------------------------------------------------"); Hooks.scenario = scenario.getName(); @@ -164,8 +156,17 @@ public void startScenario(Scenario scenario) { cookieConfig.addCookie(); } - @After - public void endScenario(Scenario scenario) { + + //@After + public void endScenario(Scenario scenario) throws IOException { + System.clearProperty("IUN"); + netWorkInfos.forEach(netWorkInfo -> { + logger.info("Request ID: {}", netWorkInfo.getRequestId()); + logger.info("Request URL: {}", netWorkInfo.getRequestUrl()); + logger.info("Method: {}", netWorkInfo.getRequestMethod()); + logger.info("Response Status: {}", netWorkInfo.getResponseStatus()); + logger.info("Response Body: {}", netWorkInfo.getResponseBody()); + }); System.clearProperty("IUN"); @@ -199,7 +200,10 @@ public void endScenario(Scenario scenario) { netWorkInfos.clear(); } - @After("@DeleghePF or @DeleghePG") + + // @After("@DeleghePF or @DeleghePG") + // @Before("@DeleghePF or @DeleghePG") + // @And("Revoca deleghe se esistono") public void clearDelegate() { logger.info("REVOCA TUTTE LE DELEGHE...."); MandateSingleton mandateSingleton = MandateSingleton.getInstance(); @@ -213,7 +217,7 @@ public void clearDelegate() { } } - @After("@File") + //@After("@File") public void clearDirectory() { File folder = new File(downloadFilePath); @@ -231,12 +235,16 @@ public void clearDirectory() { } } - @After("@recapitiPF or @recapitiPG") - @And("Rimuovi tutti i recapiti se esistono") + + // @After("@recapitiPF or @recapitiPG") + // @Before("@recapitiPF or @recapitiPG") + // @And("Rimuovi tutti i recapiti se esistono") public void clearRecapiti() throws IOException { + RestContact restContact = RestContact.getInstance(); List digitalAddress = restContact.getAllDigitalAddress(); + // Check for legal ones and remove them if (digitalAddress != null) { logger.info("SENDER DIGITAL ADDRESS...." + digitalAddress); logger.info("SENDER DIGITAL ADDRESS...." + digitalAddress.size()); @@ -258,4 +266,4 @@ public void clearRecapiti() throws IOException { }); } } -} \ No newline at end of file +} diff --git a/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java b/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java new file mode 100644 index 000000000..a7877718d --- /dev/null +++ b/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java @@ -0,0 +1,298 @@ +package it.pn.frontend.e2e.listeners; + + +import static java.lang.Boolean.TRUE; +import static org.springframework.util.ObjectUtils.isEmpty; + +import java.io.File; +import java.io.IOException; +import java.net.MalformedURLException; +import java.net.URL; +import java.nio.file.Files; +import java.text.SimpleDateFormat; +import java.time.Duration; +import java.util.*; + +import io.cucumber.java.After; +import io.cucumber.java.Before; +import io.cucumber.java.Scenario; +import io.cucumber.java.en.And; +import it.pn.frontend.e2e.model.singleton.MandateSingleton; +import it.pn.frontend.e2e.rest.RestContact; +import it.pn.frontend.e2e.rest.RestDelegation; +import it.pn.frontend.e2e.utility.CookieConfig; +import lombok.Getter; +import org.apache.commons.io.FileUtils; +import org.openqa.selenium.OutputType; +import org.openqa.selenium.TakesScreenshot; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.chrome.ChromeDriver; +import org.openqa.selenium.chrome.ChromeOptions; +import org.openqa.selenium.devtools.DevTools; +import org.openqa.selenium.devtools.HasDevTools; +import org.openqa.selenium.devtools.v126.network.Network; +import org.openqa.selenium.devtools.v126.network.model.RequestWillBeSent; +import org.openqa.selenium.edge.EdgeDriver; +import org.openqa.selenium.edge.EdgeOptions; +import org.openqa.selenium.firefox.FirefoxDriver; +import org.openqa.selenium.firefox.FirefoxOptions; +import org.openqa.selenium.firefox.FirefoxProfile; +import org.openqa.selenium.support.ui.WebDriverWait; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.slf4j.MDC; +import org.springframework.beans.factory.annotation.Value; + +import io.github.bonigarcia.wdm.WebDriverManager; +import org.springframework.stereotype.Component; + + +public class HooksNew { + + /** + * Logger + */ + private static final Logger logger = LoggerFactory.getLogger(HooksNew.class); + + @Value("${selenium.browser}") + private String browser; + + @Value("${selenium.browser.headless}") + private String headless; + + @Value("${selenium.browser.remote}") + private String remote; + + @Value("${target.application.baseUrl}") + private String baseUrl; + + @Getter + public WebDriver driver; + + private WebDriverWait wait; + + + private DevTools devTools; + private final Map requests = new HashMap<>(); + @Getter + public static String scenario; + + public static final List netWorkInfos = new ArrayList<>(); + private final CookieConfig cookieConfig = new CookieConfig(); + private final String os = System.getProperty("os.name"); + + + private void setupFirefox() { + WebDriverManager.firefoxdriver().setup(); + var firefoxProfile = new FirefoxProfile(); + var firefoxOptions = new FirefoxOptions(); + firefoxOptions.setProfile(firefoxProfile); + firefoxOptions.addArguments("-private"); + + if (Boolean.parseBoolean(headless)) { + firefoxOptions.addArguments("--width=1200", "--height=800", "--headless"); + } + driver = new FirefoxDriver(firefoxOptions); + driver.manage().window().maximize(); + driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(5)); + logger.info("Firefox driver started"); + } + + private void setupChrome() { + WebDriverManager.chromedriver().setup(); + var chromeOptions = new ChromeOptions(); + chromeOptions.addArguments("--lang=it", "--incognito", "--disable-dev-shm-usage", "--remote-allow-origins=*", "--enable-clipboard"); + var downloadFilePath = System.getProperty("downloadFilePath"); + var chromePrefs = Map.of("download.default_directory", downloadFilePath); + chromeOptions.setExperimentalOption("prefs", chromePrefs); + + if (Boolean.parseBoolean(this.headless)) { + chromeOptions.addArguments("--no-sandbox", "--headless", "window-size=1920,1080"); + } + + driver = new ChromeDriver(chromeOptions); + driver.manage().window().maximize(); + driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10)); + + setupDevTools(); + logger.info("Chrome driver started"); + } + + private void setupDevTools() { + devTools = ((HasDevTools) driver).getDevTools(); + devTools.createSession(); + devTools.send(Network.enable(Optional.empty(), Optional.empty(), Optional.empty())); + captureHttpRequests(); + captureHttpResponse(); + } + + private void captureHttpRequests() { + devTools.addListener(Network.requestWillBeSent(), request -> { + var url = request.getRequest().getUrl(); + cookieConfig.getCookies(url).forEach(cookie -> driver.manage().addCookie(cookie)); + requests.put(request.getRequestId().toString(), request); + }); + } + + private void captureHttpResponse() { + devTools.addListener(Network.responseReceived(), response -> { + var requestId = response.getRequestId().toString(); + if (requests.containsKey(requestId)) { + var request = requests.get(requestId); + var headers = request.getRequest().getHeaders(); + + // Controlla il tipo di risorsa come stringa "XHR" + if ("XHR".equals(response.getType().toString())) { + var netWorkInfo = new NetWorkInfo(); + if (headers.get("Authorization") != null) { + var authHeader = headers.get("Authorization").toString(); + System.setProperty("token", authHeader); + netWorkInfo.setAuthorizationBearer(authHeader); + } + netWorkInfo.setRequestId(requestId); + netWorkInfo.setRequestUrl(request.getRequest().getUrl()); + netWorkInfo.setRequestMethod(request.getRequest().getMethod()); + netWorkInfo.setResponseStatus(response.getResponse().getStatus().toString()); + + try { + var bodyResponse = devTools.send(Network.getResponseBody(response.getRequestId())).getBody(); + netWorkInfo.setResponseBody(bodyResponse); + } catch (Exception ignored) { + // Ignorato perché non sempre è disponibile il body della risposta + } + logger.info("NET_INFO: "+netWorkInfo.getRequestUrl()); + netWorkInfos.add(netWorkInfo); + } + } + requests.remove(requestId); + }); + } + + private void setupEdge() { + if (this.os.toLowerCase().contains("windows")) { + WebDriverManager.edgedriver().setup(); + } else { + throw new UnsupportedOperationException("Edge browser is not supported on OS: " + this.os); + } + var edgeOptions = new EdgeOptions(); + edgeOptions.setCapability("ms:inPrivate", true); + if (Boolean.parseBoolean(this.headless)) { + edgeOptions.addArguments("window-size=1920,1080", "--headless"); + } + driver = new EdgeDriver(edgeOptions); + driver.manage().window().maximize(); + driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(20)); + logger.info("Edge driver started"); + } + + @Before + public void startScenario(Scenario scenario) { + logger.info("----- START SCENARIO: {} -----", scenario.getName()); + Hooks.scenario = scenario.getName(); + + scenario.getSourceTagNames().stream() + .filter(tag -> tag.startsWith("@TA_")) + .forEach(tag -> { + MDC.put("tag", tag); + MDC.put("team", "TA-QA"); + }); + + var browser = Optional.ofNullable(System.getProperty("browser")) + .orElseThrow(() -> new IllegalArgumentException("Browser must be specified")); + this.headless = System.getProperty("headless", "false"); + + switch (browser) { + case "firefox" -> setupFirefox(); + case "chrome" -> setupChrome(); + case "edge" -> setupEdge(); + default -> throw new IllegalArgumentException("Unsupported browser: " + browser); + } + + cookieConfig.addCookie(); + + } + + @After + public void endScenario(Scenario scenario) throws IOException { + System.clearProperty("IUN"); + netWorkInfos.forEach(netWorkInfo -> { + logger.info("Request ID: {}", netWorkInfo.getRequestId()); + logger.info("Request URL: {}", netWorkInfo.getRequestUrl()); + logger.info("Method: {}", netWorkInfo.getRequestMethod()); + logger.info("Response Status: {}", netWorkInfo.getResponseStatus()); + logger.info("Response Body: {}", netWorkInfo.getResponseBody()); + }); + + if (scenario.isFailed()) { + logger.error("Scenario failed: {}", scenario.getName()); + var screenshot = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE); + var screenshotBytes = Files.readAllBytes(screenshot.toPath()); + var formatter = new SimpleDateFormat("dd_MM_yyyy_HH_mm_ss"); + var timestamp = formatter.format(new Date()); + var fileName = "logs/" + scenario.getName() + "_" + timestamp + ".png"; + FileUtils.copyFile(screenshot, new File(fileName)); + scenario.attach(screenshotBytes, "image/png", scenario.getName()); + } + + driver.quit(); + requests.clear(); + netWorkInfos.clear(); + logger.info("----- END SCENARIO: {} -----", scenario.getName()); + } + + @After("@DeleghePF or @DeleghePG") + @Before("@DeleghePF or @DeleghePG") + @And("Revoca deleghe se esistono") + public void clearDelegate() { + logger.info("Revoking all delegations..."); + var mandateId = MandateSingleton.getInstance().getMandateId(Hooks.getScenario()); + if (mandateId != null) { + RestDelegation.getInstance().revokeDelegation(mandateId); + logger.info("Delegation revoked: {}", mandateId); + } else { + logger.info("Mandate ID not found"); + } + } + + @After("@File") + public void clearDirectory() { + var folderPath = System.getProperty("downloadFilePath"); + var folder = new File(folderPath); + if (folder.isDirectory()) { + Arrays.stream(Objects.requireNonNull(folder.listFiles())) + .filter(File::isFile) + .forEach(file -> { + if (file.delete()) { + logger.info("Deleted file: {}", file.getAbsolutePath()); + } else { + logger.warn("Failed to delete file: {}", file.getAbsolutePath()); + } + }); + } + } + + @After("@recapitiPF or @recapitiPG") + @Before("@recapitiPF or @recapitiPG") + @And("Rimuovi tutti i recapiti se esistono") + public void clearRecapiti() { + var restContact = RestContact.getInstance(); + var digitalAddresses = restContact.getAllDigitalAddress(); + if (digitalAddresses != null && !digitalAddresses.isEmpty()) { + digitalAddresses.forEach(address -> { + if ("default".equalsIgnoreCase(address.getSenderId())) { + if ("PEC".equalsIgnoreCase(address.getChannelType())) { + restContact.removeDigitalAddressLegalPec(); + } else { + restContact.removeDigitalAddressCourtesyEmail(); + } + } else { + restContact.removeSpecialContact(address); + } + }); + } + } + + + + +} \ No newline at end of file diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/DestinatarioPage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/DestinatarioPage.java index 67b305bf2..6dc04d4b5 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/DestinatarioPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/DestinatarioPage.java @@ -4,6 +4,7 @@ import it.pn.frontend.e2e.common.BasePage; import it.pn.frontend.e2e.exceptions.RestNotificationException; import it.pn.frontend.e2e.listeners.Hooks; +import it.pn.frontend.e2e.listeners.HooksNew; import it.pn.frontend.e2e.model.documents.Document; import it.pn.frontend.e2e.model.notification.NewNotificationRequest; import it.pn.frontend.e2e.model.notification.NewNotificationResponse; @@ -24,6 +25,7 @@ import org.openqa.selenium.WebElement; import org.openqa.selenium.support.FindBy; import org.openqa.selenium.support.ui.ExpectedConditions; +import org.springframework.beans.factory.annotation.Autowired; import java.util.ArrayList; import java.util.List; @@ -39,7 +41,10 @@ public class DestinatarioPage extends BasePage { private final RestNotification restNotification = new RestNotification(); private static final NotificationBuilder notificationBuilder = new NotificationBuilder(); private int destinatariNumber; - private final WebDriver driver = Hooks.driver; + + @Autowired + private HooksNew hooks; + private final WebDriver driver = hooks.getDriver(); //Questa classe è utilizzata per metodi in comune tra PF e PG public DestinatarioPage(WebDriver driver) { diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/GruppiPGPage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/GruppiPGPage.java index c9f9c1876..6441a7c63 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/GruppiPGPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/GruppiPGPage.java @@ -1,6 +1,7 @@ package it.pn.frontend.e2e.pages.destinatario.personaGiuridica; import it.pn.frontend.e2e.common.BasePage; +import it.pn.frontend.e2e.listeners.HooksNew; import it.pn.frontend.e2e.utility.WebTool; import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.Assertions; @@ -10,6 +11,7 @@ import org.openqa.selenium.interactions.Actions; import org.openqa.selenium.support.FindBy; import org.openqa.selenium.support.ui.ExpectedConditions; +import org.springframework.beans.factory.annotation.Autowired; import java.time.Instant; import java.time.LocalDate; @@ -41,6 +43,9 @@ public class GruppiPGPage extends BasePage { @FindBy(xpath = "//button[contains(text(), 'Conferma')]") WebElement buttonConferma; + @Autowired + private WebTool webTool; + public GruppiPGPage(WebDriver driver) { super(driver); } @@ -49,8 +54,8 @@ public void clickGruppiButton() { js().executeScript("arguments[0].scrollIntoView(true);", gruppiButton); getWebDriverWait(10).withMessage("Il bottone gruppi non è visibile").until(ExpectedConditions.visibilityOf(gruppiButton)); gruppiButton.click(); - WebTool.waitTime(5); - WebTool.switchToOtherTab(); + webTool.waitTime(5); + webTool.switchToOtherTab(); } public void loginGruppi(String nome, String pwd) { diff --git a/src/main/java/it/pn/frontend/e2e/rest/RestContact.java b/src/main/java/it/pn/frontend/e2e/rest/RestContact.java index 14cb9e3ef..0d9d583c0 100644 --- a/src/main/java/it/pn/frontend/e2e/rest/RestContact.java +++ b/src/main/java/it/pn/frontend/e2e/rest/RestContact.java @@ -7,6 +7,7 @@ import it.pn.frontend.e2e.model.address.DigitalAddressResponse; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Component; import java.awt.*; import java.io.IOException; @@ -14,6 +15,7 @@ import java.util.List; import java.util.Map; +@Component public class RestContact { private static final Logger logger = LoggerFactory.getLogger("RestContact"); final CustomHttpClient httpClient = CustomHttpClient.getInstance(); diff --git a/src/main/java/it/pn/frontend/e2e/rest/RestDelegation.java b/src/main/java/it/pn/frontend/e2e/rest/RestDelegation.java index 97fe0f59e..ad229cf0d 100644 --- a/src/main/java/it/pn/frontend/e2e/rest/RestDelegation.java +++ b/src/main/java/it/pn/frontend/e2e/rest/RestDelegation.java @@ -8,12 +8,14 @@ import it.pn.frontend.e2e.model.delegate.DelegateResponsePG; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Component; import java.io.IOException; import java.util.HashMap; import java.util.List; import java.util.Map; +@Component public class RestDelegation { private static final Logger logger = LoggerFactory.getLogger("RestDelegation"); final CustomHttpClient httpClientPF = CustomHttpClient.getInstance(); diff --git a/src/main/java/it/pn/frontend/e2e/utility/CookieConfig.java b/src/main/java/it/pn/frontend/e2e/utility/CookieConfig.java index 3fbf851db..b753b9170 100644 --- a/src/main/java/it/pn/frontend/e2e/utility/CookieConfig.java +++ b/src/main/java/it/pn/frontend/e2e/utility/CookieConfig.java @@ -3,10 +3,12 @@ import org.openqa.selenium.Cookie; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Component; import java.text.SimpleDateFormat; import java.util.*; +@Component public class CookieConfig { private static final Logger logger = LoggerFactory.getLogger("CookieConfig"); From 944f818cce11bbfe6b0349472721c7cc4211d74e Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Wed, 23 Oct 2024 10:05:18 +0200 Subject: [PATCH 109/212] test integrazione --- .../CucumberSpringIntegration.java | 30 +++++++ .../LoginPersonaFisicaPagoPA.java | 78 +++++++++++-------- 2 files changed, 75 insertions(+), 33 deletions(-) create mode 100644 src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java new file mode 100644 index 000000000..ab00656d6 --- /dev/null +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java @@ -0,0 +1,30 @@ +package it.pn.frontend.e2e.stepDefinitions; + +import io.cucumber.spring.CucumberContextConfiguration; +import it.pn.frontend.e2e.config.WebDriverConfig; +import it.pn.frontend.e2e.listeners.Hooks; +import it.pn.frontend.e2e.listeners.HooksNew; +import it.pn.frontend.e2e.listeners.LoggerStartupListener; +import it.pn.frontend.e2e.listeners.NetWorkInfo; +import it.pn.frontend.e2e.run.RunCucumberTest; +import it.pn.frontend.e2e.utility.CookieConfig; +import it.pn.frontend.e2e.utility.WebTool; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.scheduling.annotation.EnableScheduling; + + +@CucumberContextConfiguration +@SpringBootTest(classes = { + CookieConfig.class, + LoggerStartupListener.class, + NetWorkInfo.class, + WebDriverConfig.class +}) +@EnableScheduling +@EnableConfigurationProperties +public class CucumberSpringIntegration { + + +} + diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java index 1cd1b8130..50817fafa 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java @@ -9,6 +9,7 @@ import it.pn.frontend.e2e.api.personaFisica.SpidDemoStart; import it.pn.frontend.e2e.api.personaFisica.SpidLogin; import it.pn.frontend.e2e.listeners.Hooks; +import it.pn.frontend.e2e.listeners.HooksNew; import it.pn.frontend.e2e.listeners.NetWorkInfo; import it.pn.frontend.e2e.pages.destinatario.personaFisica.*; import it.pn.frontend.e2e.section.CookiesSection; @@ -21,6 +22,7 @@ import org.openqa.selenium.WebDriver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import java.util.List; import java.util.Map; @@ -31,20 +33,26 @@ public class LoginPersonaFisicaPagoPA { private static final Logger logger = LoggerFactory.getLogger("LoginPersonaFisicaPagoPA"); private Map datiPersonaFisica; private Map urlPersonaFisica; - private final WebDriver driver = Hooks.driver; - private final List netWorkInfos = Hooks.netWorkInfos; + + @Autowired + private HooksNew hooks; + + private final List netWorkInfos = HooksNew.netWorkInfos; + private Map datiDelegato; private static final String FILE_TOKEN_LOGIN = "tokenLogin.yaml"; + + @Given("Login Page persona fisica {string} viene visualizzata") public void loginPageDestinatarioVieneVisualizzata(String datipersonaFisica) { DataPopulation dataPopulation = new DataPopulation(); this.datiPersonaFisica = dataPopulation.readDataPopulation(datipersonaFisica + ".yaml"); String variabileAmbiente = System.getProperty("environment"); switch (variabileAmbiente) { - case "dev" -> this.driver.get(this.datiPersonaFisica.get("url").toString()); + case "dev" -> this.hooks.getDriver().get(this.datiPersonaFisica.get("url").toString()); case "test", "uat" -> - this.driver.get(this.datiPersonaFisica.get("url").toString().replace("dev", variabileAmbiente)); + this.hooks.getDriver().get(this.datiPersonaFisica.get("url").toString().replace("dev", variabileAmbiente)); default -> Assertions.fail("Non stato possibile trovare l'ambiente inserito, Inserisci in -Denvironment test o dev o uat"); } @@ -54,7 +62,9 @@ public void loginPageDestinatarioVieneVisualizzata(String datipersonaFisica) { public void loginPageDestinatarioVieneVisualizzataConUrl() { String url = "https://cittadini.test.notifichedigitali.it/"; - this.driver.get(url); + + this.hooks.getDriver().get(url); + logger.info("HOOKS_HTML...:" + hooks.getDriver().getPageSource()); } @Given("PF - Si effettua la login tramite token exchange come {string}, e viene visualizzata la dashboard") @@ -79,14 +89,14 @@ public void loginMittenteConTokenExchange(String personaFisica) { // Si effettua il login con token exchange String urlLogin = "https://cittadini." + environment + ".notifichedigitali.it/#token=" + token; - this.driver.get(urlLogin); + this.hooks.getDriver().get(urlLogin); logger.info("Login effettuato con successo"); WebTool.waitTime(10); // Si visualizza la dashboard e si verifica che gli elementi base siano presenti (header e title della pagina) - HeaderPFSection headerPFSection = new HeaderPFSection(this.driver); + HeaderPFSection headerPFSection = new HeaderPFSection(this.hooks.getDriver()); headerPFSection.waitLoadHeaderDESection(); - NotifichePFPage notifichePFPage = new NotifichePFPage(this.driver); + NotifichePFPage notifichePFPage = new NotifichePFPage(this.hooks.getDriver()); notifichePFPage.waitLoadNotificheDEPage(); } @@ -101,28 +111,28 @@ public void loginConDestinatario(String datipersonaFisica) { CookiesSection cookiesPage; if (!CookieConfig.isCookieEnabled()) { - cookiesPage = new CookiesSection(this.driver); + cookiesPage = new CookiesSection(this.hooks.getDriver()); if (cookiesPage.waitLoadCookiesPage()) { cookiesPage.selezionaAccettaTuttiButton(); } } logger.info("cookies end"); - ComeVuoiAccederePage comeVuoiAccederePage = new ComeVuoiAccederePage(this.driver); + ComeVuoiAccederePage comeVuoiAccederePage = new ComeVuoiAccederePage(this.hooks.getDriver()); comeVuoiAccederePage.waitLoadComeVuoiAccederePage(); comeVuoiAccederePage.selezionaSpidButton(); - ScegliSpidPFPage scegliSpidPFPage = new ScegliSpidPFPage(this.driver); + ScegliSpidPFPage scegliSpidPFPage = new ScegliSpidPFPage(this.hooks.getDriver()); scegliSpidPFPage.waitLoadScegliSpidDEPage(); scegliSpidPFPage.selezionareTestButton(); - LoginSpidPFPage loginSpidPFPage = new LoginSpidPFPage(this.driver); + LoginSpidPFPage loginSpidPFPage = new LoginSpidPFPage(this.hooks.getDriver()); loginSpidPFPage.waitLoadLoginSpidDEPage(); loginSpidPFPage.inserisciUtente(this.datiPersonaFisica.get("user").toString()); loginSpidPFPage.inserisciPassword(this.datiPersonaFisica.get("pwd").toString()); loginSpidPFPage.selezionaEntraConSpidButton(); - ConfermaDatiSpidPFPage confermaDatiSpidPFPage = new ConfermaDatiSpidPFPage(this.driver); + ConfermaDatiSpidPFPage confermaDatiSpidPFPage = new ConfermaDatiSpidPFPage(this.hooks.getDriver()); confermaDatiSpidPFPage.waitLoadConfermaDatiSpidDEPage(); String nomeUtenteLetto = confermaDatiSpidPFPage.leggiNomeUtente(); if (nomeUtenteLetto.equals(this.datiPersonaFisica.get("name").toString())) { @@ -147,7 +157,7 @@ public void loginConDestinatario(String datipersonaFisica) { logger.error("numero fiscale letto : " + numeroFiscaleLetto + " non uguale a : " + this.datiPersonaFisica.get("fiscalNumber").toString()); Assertions.fail("numero fiscale letto : " + numeroFiscaleLetto + " non uguale a : " + this.datiPersonaFisica.get("fiscalNumber").toString()); } - HeaderPFSection headerPFSection = new HeaderPFSection(this.driver); + HeaderPFSection headerPFSection = new HeaderPFSection(this.hooks.getDriver()); confermaDatiSpidPFPage.selezionaConfermaButton(); headerPFSection.waitUrlToken(); } @@ -159,33 +169,33 @@ public void loginConDestinatario(Map datiPF) { CookiesSection cookiesPage; if (!CookieConfig.isCookieEnabled()) { - cookiesPage = new CookiesSection(this.driver); + cookiesPage = new CookiesSection(this.hooks.getDriver()); if (cookiesPage.waitLoadCookiesPage()) { cookiesPage.selezionaAccettaTuttiButton(); } } logger.info("cookies end"); - AccediAPiattaformaNotifichePage accediApiattaformaNotifichePage = new AccediAPiattaformaNotifichePage(this.driver); + AccediAPiattaformaNotifichePage accediApiattaformaNotifichePage = new AccediAPiattaformaNotifichePage(this.hooks.getDriver()); accediApiattaformaNotifichePage.waitLoadAccediAPiattaformaNotifichePage(); accediApiattaformaNotifichePage.selezionaAccediButton(); if (!CookieConfig.isCookieEnabled()) { - cookiesPage = new CookiesSection(this.driver); + cookiesPage = new CookiesSection(this.hooks.getDriver()); if (cookiesPage.waitLoadCookiesPage()) { cookiesPage.selezionaAccettaTuttiButton(); } } - ScegliSpidPFPage scegliSpidPFPage = new ScegliSpidPFPage(this.driver); + ScegliSpidPFPage scegliSpidPFPage = new ScegliSpidPFPage(this.hooks.getDriver()); scegliSpidPFPage.waitLoadScegliSpidDEPage(); scegliSpidPFPage.selezionareTestButton(); - LoginSpidPFPage loginSpidPFPage = new LoginSpidPFPage(this.driver); + LoginSpidPFPage loginSpidPFPage = new LoginSpidPFPage(this.hooks.getDriver()); loginSpidPFPage.waitLoadLoginSpidDEPage(); loginSpidPFPage.inserisciUtente(datiPF.get("user")); loginSpidPFPage.inserisciPassword(datiPF.get("pwd")); loginSpidPFPage.selezionaEntraConSpidButton(); - ConfermaDatiSpidPFPage confermaDatiSpidPFPage = new ConfermaDatiSpidPFPage(this.driver); + ConfermaDatiSpidPFPage confermaDatiSpidPFPage = new ConfermaDatiSpidPFPage(this.hooks.getDriver()); confermaDatiSpidPFPage.waitLoadConfermaDatiSpidDEPage(); String nomeUtenteLetto = confermaDatiSpidPFPage.leggiNomeUtente(); if (nomeUtenteLetto.equals(datiPF.get("name"))) { @@ -212,7 +222,7 @@ public void loginConDestinatario(Map datiPF) { Assertions.fail("numero fiscale letto : " + numeroFiscaleLetto + " non uguale a : " + datiPF.get("fiscalNumber")); } - HeaderPFSection headerPFSection = new HeaderPFSection(this.driver); + HeaderPFSection headerPFSection = new HeaderPFSection(this.hooks.getDriver()); confermaDatiSpidPFPage.selezionaConfermaButton(); headerPFSection.waitUrlToken(); WebTool.waitTime(2); @@ -221,9 +231,9 @@ public void loginConDestinatario(Map datiPF) { @Then("Home page persona fisica viene visualizzata correttamente") public void homePageDestinatarioVieneVisualizzataCorrettamente() { CookiesSection cookiesSection; - + logger.info("HOOKS_HTML_1...:" + hooks.getDriver().getPageSource()); if (!CookieConfig.isCookieEnabled()) { - cookiesSection = new CookiesSection(this.driver); + cookiesSection = new CookiesSection(this.hooks.getDriver()); if (cookiesSection.waitLoadCookiesPage()) { cookiesSection.selezionaAccettaTuttiButton(); } @@ -247,17 +257,17 @@ public void homePageDestinatarioVieneVisualizzataCorrettamente() { } else { logger.warn("Http token persona fisica not found"); } - HeaderPFSection headerPFSection = new HeaderPFSection(this.driver); + HeaderPFSection headerPFSection = new HeaderPFSection(this.hooks.getDriver()); headerPFSection.waitLoadHeaderDESection(); if (!CookieConfig.isCookieEnabled()) { - cookiesSection = new CookiesSection(this.driver); + cookiesSection = new CookiesSection(this.hooks.getDriver()); if (cookiesSection.waitLoadCookiesPage()) { cookiesSection.selezionaAccettaTuttiButton(); } } - NotifichePFPage notifichePFPage = new NotifichePFPage(this.driver); + NotifichePFPage notifichePFPage = new NotifichePFPage(this.hooks.getDriver()); notifichePFPage.waitLoadNotificheDEPage(); if (notifichePFPage.verificaPresenzaCodiceIunTextField()) { logger.info("text field codice iun presente"); @@ -286,9 +296,11 @@ public void homePageDestinatarioVieneVisualizzataCorrettamente() { } private int getCodiceRispostaChiamataApi(String urlChiamata) { - logger.info("Recupero codice risposta della chiamata" + urlChiamata); + logger.info("Recupero codice risposta della chiamata " + urlChiamata); int codiceRispostaChiamataApi = 0; for (NetWorkInfo chiamate : netWorkInfos) { + logger.info("URL.... " + chiamate.getRequestUrl()); + logger.info("METHOD.... " + chiamate.getRequestMethod()); if (chiamate.getRequestUrl().startsWith(urlChiamata) && chiamate.getRequestMethod().equals("GET")) { codiceRispostaChiamataApi = Integer.parseInt(chiamate.getResponseStatus()); break; @@ -299,16 +311,16 @@ private int getCodiceRispostaChiamataApi(String urlChiamata) { @And("Logout da portale persona fisica") public void logoutDaPortaleDestinatario() { - HeaderPFSection headerPFSection = new HeaderPFSection(this.driver); + HeaderPFSection headerPFSection = new HeaderPFSection(this.hooks.getDriver()); headerPFSection.waitLoadHeaderDESection(); headerPFSection.selezionaProfiloUtenteMenu(); headerPFSection.selezionaVoceEsci(); - ComeVuoiAccederePage comeVuoiAccederePage = new ComeVuoiAccederePage(this.driver); + ComeVuoiAccederePage comeVuoiAccederePage = new ComeVuoiAccederePage(this.hooks.getDriver()); comeVuoiAccederePage.waitLoadComeVuoiAccederePage(); if (!CookieConfig.isCookieEnabled()) { - CookiesSection cookiesSection = new CookiesSection(this.driver); + CookiesSection cookiesSection = new CookiesSection(this.hooks.getDriver()); if (cookiesSection.waitLoadCookiesPage()) { logger.info("banner dei cookies visualizzato"); cookiesSection.selezionaAccettaTuttiButton(); @@ -379,7 +391,7 @@ public void loginPortaleDestinatarioTramiteRequestMethod() { } - this.driver.get(this.urlPersonaFisica.get("urlPortale")); + this.hooks.getDriver().get(this.urlPersonaFisica.get("urlPortale")); } private void readUrlLoginPersonaFisicaWithToken(String user, String pwd) { @@ -592,7 +604,7 @@ public void loginPortaleDelegatoTramiteRequestMethod(String dpFile) { Assertions.fail("Codice risposta ricevuto per questo end point: '" + this.urlPersonaFisica.get("urlPortale") + "' è : " + this.urlPersonaFisica.get("responseCode")); } - this.driver.get(this.urlPersonaFisica.get("urlPortale")); + this.hooks.getDriver().get(this.urlPersonaFisica.get("urlPortale")); } @When("Login portale persona fisica tramite token exchange {string}") @@ -617,7 +629,7 @@ public void loginPortalePersonaFisicaTramiteTokenExchange(String dpFile) { } } String url = urlIniziale + token; - this.driver.get(url); + this.hooks.getDriver().get(url); } public String getTokenExchangePFFromFile(String personaFisica) { From 367fb3be66e8faa17d9837a58b58ec0e8e94c9f8 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Wed, 23 Oct 2024 12:51:58 +0200 Subject: [PATCH 110/212] add config spring boot --- .../frontend/e2e/config/WebDriverConfig.java | 64 +++++-------------- .../pn/frontend/e2e/listeners/HooksNew.java | 32 +++++----- .../LoginPersonaFisicaPagoPA.java | 15 +---- 3 files changed, 32 insertions(+), 79 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/config/WebDriverConfig.java b/src/main/java/it/pn/frontend/e2e/config/WebDriverConfig.java index 3e70b81bc..e105c297e 100644 --- a/src/main/java/it/pn/frontend/e2e/config/WebDriverConfig.java +++ b/src/main/java/it/pn/frontend/e2e/config/WebDriverConfig.java @@ -1,6 +1,8 @@ package it.pn.frontend.e2e.config; import io.github.bonigarcia.wdm.WebDriverManager; +import lombok.Getter; +import lombok.Setter; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.chrome.ChromeOptions; @@ -11,6 +13,8 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.PropertySource; + /* *Modifiche principali: Iniezione di WebDriver: Ho rimosso tutte le istanze di new ChromeDriver(), new FirefoxDriver(), ecc., e ho creato un bean in una classe separata (che andremo a configurare subito dopo) che gestisce la creazione del WebDriver. @@ -21,60 +25,22 @@ * * * */ +@Getter @Configuration +@PropertySource( value = "file:config/configuration.properties", ignoreResourceNotFound = true ) public class WebDriverConfig { - @Value("${test.headless:false}") - private boolean headless; - - @Value("${os.name}") - private String os; - - @Bean - public WebDriver webDriver() { - String browser = System.getProperty("browser"); - if (browser == null) { - throw new IllegalArgumentException("La variabile browser non è stata impostata"); - } + @Value("${browser}") + private String browser; - return switch (browser.toLowerCase()) { - case "firefox" -> getFirefoxDriver(); - case "chrome" -> getChromeDriver(); - case "edge" -> getEdgeDriver(); - default -> throw new IllegalArgumentException("Browser non supportato: " + browser); - }; - } + @Value("${headless}") + @Setter + private String headless; - private WebDriver getFirefoxDriver() { - WebDriverManager.firefoxdriver().setup(); - FirefoxOptions options = new FirefoxOptions(); - options.addArguments("-private"); - if (headless) { - options.addArguments("--headless"); - options.addArguments("--window-size=1920,1080"); - } - return new FirefoxDriver(options); - } + @Value("${selenium.browser.remote}") + private String remote; - private WebDriver getChromeDriver() { - WebDriverManager.chromedriver().setup(); - ChromeOptions options = new ChromeOptions(); - options.addArguments("--incognito"); - if (headless) { - options.addArguments("--headless"); - options.addArguments("--window-size=1920,1080"); - } - return new ChromeDriver(options); - } + @Value("${baseUrl}") + private String baseUrl; - private WebDriver getEdgeDriver() { - WebDriverManager.edgedriver().setup(); - EdgeOptions options = new EdgeOptions(); - options.addArguments("inPrivate"); - if (headless) { - options.addArguments("--headless"); - options.addArguments("--window-size=1920,1080"); - } - return new EdgeDriver(options); - } } diff --git a/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java b/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java index a7877718d..737a32d41 100644 --- a/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java +++ b/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java @@ -17,6 +17,7 @@ import io.cucumber.java.Before; import io.cucumber.java.Scenario; import io.cucumber.java.en.And; +import it.pn.frontend.e2e.config.WebDriverConfig; import it.pn.frontend.e2e.model.singleton.MandateSingleton; import it.pn.frontend.e2e.rest.RestContact; import it.pn.frontend.e2e.rest.RestDelegation; @@ -41,6 +42,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.slf4j.MDC; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import io.github.bonigarcia.wdm.WebDriverManager; @@ -54,33 +56,26 @@ public class HooksNew { */ private static final Logger logger = LoggerFactory.getLogger(HooksNew.class); - @Value("${selenium.browser}") - private String browser; - - @Value("${selenium.browser.headless}") - private String headless; - - @Value("${selenium.browser.remote}") - private String remote; - - @Value("${target.application.baseUrl}") - private String baseUrl; @Getter public WebDriver driver; private WebDriverWait wait; - private DevTools devTools; + private final Map requests = new HashMap<>(); @Getter public static String scenario; - public static final List netWorkInfos = new ArrayList<>(); + @Getter + private final List netWorkInfos = new ArrayList<>(); private final CookieConfig cookieConfig = new CookieConfig(); private final String os = System.getProperty("os.name"); + @Autowired + private WebDriverConfig webDriverConfig; + private void setupFirefox() { WebDriverManager.firefoxdriver().setup(); @@ -89,7 +84,7 @@ private void setupFirefox() { firefoxOptions.setProfile(firefoxProfile); firefoxOptions.addArguments("-private"); - if (Boolean.parseBoolean(headless)) { + if (Boolean.parseBoolean(webDriverConfig.getHeadless())) { firefoxOptions.addArguments("--width=1200", "--height=800", "--headless"); } driver = new FirefoxDriver(firefoxOptions); @@ -106,7 +101,7 @@ private void setupChrome() { var chromePrefs = Map.of("download.default_directory", downloadFilePath); chromeOptions.setExperimentalOption("prefs", chromePrefs); - if (Boolean.parseBoolean(this.headless)) { + if (Boolean.parseBoolean(webDriverConfig.getHeadless())) { chromeOptions.addArguments("--no-sandbox", "--headless", "window-size=1920,1080"); } @@ -176,7 +171,7 @@ private void setupEdge() { } var edgeOptions = new EdgeOptions(); edgeOptions.setCapability("ms:inPrivate", true); - if (Boolean.parseBoolean(this.headless)) { + if (Boolean.parseBoolean(webDriverConfig.getHeadless())) { edgeOptions.addArguments("window-size=1920,1080", "--headless"); } driver = new EdgeDriver(edgeOptions); @@ -190,6 +185,8 @@ public void startScenario(Scenario scenario) { logger.info("----- START SCENARIO: {} -----", scenario.getName()); Hooks.scenario = scenario.getName(); + logger.info( "LOAD PROPERTIES HEADLESS..:" +webDriverConfig.getHeadless()); + scenario.getSourceTagNames().stream() .filter(tag -> tag.startsWith("@TA_")) .forEach(tag -> { @@ -199,7 +196,8 @@ public void startScenario(Scenario scenario) { var browser = Optional.ofNullable(System.getProperty("browser")) .orElseThrow(() -> new IllegalArgumentException("Browser must be specified")); - this.headless = System.getProperty("headless", "false"); + //this.headless = System.getProperty("headless", "false"); + webDriverConfig.setHeadless(System.getProperty("headless", "false")); switch (browser) { case "firefox" -> setupFirefox(); diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java index 50817fafa..0ab73c248 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java @@ -8,7 +8,6 @@ import it.pn.frontend.e2e.api.personaFisica.SpidDemoLogin; import it.pn.frontend.e2e.api.personaFisica.SpidDemoStart; import it.pn.frontend.e2e.api.personaFisica.SpidLogin; -import it.pn.frontend.e2e.listeners.Hooks; import it.pn.frontend.e2e.listeners.HooksNew; import it.pn.frontend.e2e.listeners.NetWorkInfo; import it.pn.frontend.e2e.pages.destinatario.personaFisica.*; @@ -19,12 +18,9 @@ import it.pn.frontend.e2e.utility.WebTool; import org.junit.jupiter.api.Assertions; -import org.openqa.selenium.WebDriver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; - -import java.util.List; import java.util.Map; import java.util.concurrent.TimeUnit; @@ -36,9 +32,6 @@ public class LoginPersonaFisicaPagoPA { @Autowired private HooksNew hooks; - - private final List netWorkInfos = HooksNew.netWorkInfos; - private Map datiDelegato; private static final String FILE_TOKEN_LOGIN = "tokenLogin.yaml"; @@ -64,7 +57,6 @@ public void loginPageDestinatarioVieneVisualizzataConUrl() { String url = "https://cittadini.test.notifichedigitali.it/"; this.hooks.getDriver().get(url); - logger.info("HOOKS_HTML...:" + hooks.getDriver().getPageSource()); } @Given("PF - Si effettua la login tramite token exchange come {string}, e viene visualizzata la dashboard") @@ -231,7 +223,6 @@ public void loginConDestinatario(Map datiPF) { @Then("Home page persona fisica viene visualizzata correttamente") public void homePageDestinatarioVieneVisualizzataCorrettamente() { CookiesSection cookiesSection; - logger.info("HOOKS_HTML_1...:" + hooks.getDriver().getPageSource()); if (!CookieConfig.isCookieEnabled()) { cookiesSection = new CookiesSection(this.hooks.getDriver()); if (cookiesSection.waitLoadCookiesPage()) { @@ -298,9 +289,7 @@ public void homePageDestinatarioVieneVisualizzataCorrettamente() { private int getCodiceRispostaChiamataApi(String urlChiamata) { logger.info("Recupero codice risposta della chiamata " + urlChiamata); int codiceRispostaChiamataApi = 0; - for (NetWorkInfo chiamate : netWorkInfos) { - logger.info("URL.... " + chiamate.getRequestUrl()); - logger.info("METHOD.... " + chiamate.getRequestMethod()); + for (NetWorkInfo chiamate : hooks.getNetWorkInfos()) { if (chiamate.getRequestUrl().startsWith(urlChiamata) && chiamate.getRequestMethod().equals("GET")) { codiceRispostaChiamataApi = Integer.parseInt(chiamate.getResponseStatus()); break; @@ -350,7 +339,7 @@ public void logoutDaPortaleDestinatario() { private boolean readHttpRequest() { String variabileAmbiente = System.getProperty("environment"); boolean urlFound = false; - for (NetWorkInfo netWorkInfo : netWorkInfos) { + for (NetWorkInfo netWorkInfo : hooks.getNetWorkInfos()) { logger.info(netWorkInfo.getRequestUrl()); logger.info(netWorkInfo.getResponseStatus()); String urlToFind = "https://webapi." + variabileAmbiente + ".notifichedigitali.it/token-exchange"; From 6a9a0541f0137b6f52752339f0c07608cb8cf5e6 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Wed, 23 Oct 2024 15:31:09 +0200 Subject: [PATCH 111/212] add configuration --- config/configuration.properties | 9 ++++++ .../it/pn/frontend/e2e/common/BasePage.java | 9 +++++- .../frontend/e2e/config/WebDriverConfig.java | 15 ++++++++-- .../pn/frontend/e2e/listeners/HooksNew.java | 15 ++++++---- .../personaFisica/DeleghePage.java | 7 ++++- .../common/ConfigFileReader.java | 4 ++- .../LoginPersonaFisicaPagoPA.java | 29 ++++++++++++++----- 7 files changed, 69 insertions(+), 19 deletions(-) create mode 100644 config/configuration.properties diff --git a/config/configuration.properties b/config/configuration.properties new file mode 100644 index 000000000..ff9ffb57b --- /dev/null +++ b/config/configuration.properties @@ -0,0 +1,9 @@ +# test-config.properties +browser=chrome +environment=test +cookie.config=true +headless=true +# the folder path must start with / and end with / +downloadFilePath=src/test/resources/dataPopulation/downloads/ +loadComponentWaitTime=120 +apiBaseUrl=https://webapi.test.notifichedigitali.it/bff/v1/ \ No newline at end of file diff --git a/src/main/java/it/pn/frontend/e2e/common/BasePage.java b/src/main/java/it/pn/frontend/e2e/common/BasePage.java index 59ad9a2d1..2ad5f7dac 100644 --- a/src/main/java/it/pn/frontend/e2e/common/BasePage.java +++ b/src/main/java/it/pn/frontend/e2e/common/BasePage.java @@ -1,20 +1,27 @@ package it.pn.frontend.e2e.common; +import it.pn.frontend.e2e.config.WebDriverConfig; import org.openqa.selenium.*; import org.openqa.selenium.support.PageFactory; import org.openqa.selenium.support.ui.ExpectedConditions; import org.openqa.selenium.support.ui.WebDriverWait; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; import java.time.Duration; import java.util.List; import java.util.concurrent.TimeUnit; +@Component public class BasePage { + + protected WebDriver driver; - protected int loadComponentWaitTime = Integer.parseInt(System.getProperty("loadComponentWaitTime")); + //protected int loadComponentWaitTime = Integer.parseInt(System.getProperty("loadComponentWaitTime")); + protected int loadComponentWaitTime; private static final Logger loggerBase = LoggerFactory.getLogger("BasePage"); diff --git a/src/main/java/it/pn/frontend/e2e/config/WebDriverConfig.java b/src/main/java/it/pn/frontend/e2e/config/WebDriverConfig.java index e105c297e..97630d643 100644 --- a/src/main/java/it/pn/frontend/e2e/config/WebDriverConfig.java +++ b/src/main/java/it/pn/frontend/e2e/config/WebDriverConfig.java @@ -33,14 +33,23 @@ public class WebDriverConfig { @Value("${browser}") private String browser; + @Value("${environment}") + private String environment; + + @Value("${cookie.config}") + private String cookie; + @Value("${headless}") @Setter private String headless; - @Value("${selenium.browser.remote}") - private String remote; + @Value("${downloadFilePath}") + private String downloadFilePath; + + @Value("${loadComponentWaitTime}") + private String loadComponentWaitTime; - @Value("${baseUrl}") + @Value("${apiBaseUrl}") private String baseUrl; } diff --git a/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java b/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java index 737a32d41..f2d187c2f 100644 --- a/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java +++ b/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java @@ -97,7 +97,8 @@ private void setupChrome() { WebDriverManager.chromedriver().setup(); var chromeOptions = new ChromeOptions(); chromeOptions.addArguments("--lang=it", "--incognito", "--disable-dev-shm-usage", "--remote-allow-origins=*", "--enable-clipboard"); - var downloadFilePath = System.getProperty("downloadFilePath"); + var downloadFilePath = webDriverConfig.getDownloadFilePath(); + // var downloadFilePath = System.getProperty("downloadFilePath"); var chromePrefs = Map.of("download.default_directory", downloadFilePath); chromeOptions.setExperimentalOption("prefs", chromePrefs); @@ -194,11 +195,14 @@ public void startScenario(Scenario scenario) { MDC.put("team", "TA-QA"); }); - var browser = Optional.ofNullable(System.getProperty("browser")) + + var browser = Optional.ofNullable(webDriverConfig.getBrowser()) .orElseThrow(() -> new IllegalArgumentException("Browser must be specified")); + // var browser = Optional.ofNullable(System.getProperty("browser")) + // .orElseThrow(() -> new IllegalArgumentException("Browser must be specified")); //this.headless = System.getProperty("headless", "false"); - webDriverConfig.setHeadless(System.getProperty("headless", "false")); - + // webDriverConfig.setHeadless(System.getProperty("headless", "false")); + // webDriverConfig.setHeadless("false"); switch (browser) { case "firefox" -> setupFirefox(); case "chrome" -> setupChrome(); @@ -254,7 +258,8 @@ public void clearDelegate() { @After("@File") public void clearDirectory() { - var folderPath = System.getProperty("downloadFilePath"); + //var folderPath = System.getProperty("downloadFilePath"); + var folderPath = webDriverConfig.getDownloadFilePath(); var folder = new File(folderPath); if (folder.isDirectory()) { Arrays.stream(Objects.requireNonNull(folder.listFiles())) diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/DeleghePage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/DeleghePage.java index a9c7a170c..e6d1bb440 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/DeleghePage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/DeleghePage.java @@ -1,6 +1,7 @@ package it.pn.frontend.e2e.pages.destinatario.personaFisica; import it.pn.frontend.e2e.common.BasePage; +import it.pn.frontend.e2e.config.WebDriverConfig; import it.pn.frontend.e2e.utility.WebTool; import org.junit.jupiter.api.Assertions; import org.openqa.selenium.*; @@ -8,6 +9,7 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import java.util.List; @@ -15,6 +17,9 @@ public class DeleghePage extends BasePage { private final Logger logger = LoggerFactory.getLogger("DeleghePage"); + @Autowired + private WebDriverConfig webDriverConfig; + @FindBy(id = "add-delegation-button") WebElement addDelegaButton; @@ -150,7 +155,7 @@ public void clickOpzioneRevoca() { public void clickMenuPerRifiuto(String nome, String cognome) { try { By menuDelegheBy = By.xpath("//table[@id='notifications-table']//td[div/p[contains(text(),'" + nome + " " + cognome + "')]]/following-sibling::td//button[@data-testid='delegationMenuIcon']"); - getWebDriverWait(this.loadComponentWaitTime).until(ExpectedConditions.visibilityOfElementLocated(menuDelegheBy)); + getWebDriverWait(Integer.parseInt(webDriverConfig.getLoadComponentWaitTime())).until(ExpectedConditions.visibilityOfElementLocated(menuDelegheBy)); logger.info("Si clicca correttamente il menu della delega"); this.element(menuDelegheBy).click(); } catch (TimeoutException e) { diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/ConfigFileReader.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/ConfigFileReader.java index 9e1fcde65..c43c4455a 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/ConfigFileReader.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/ConfigFileReader.java @@ -11,7 +11,7 @@ public class ConfigFileReader { - private static final String TEST_CONFIG_FILE = "test-config.properties"; + private static final String TEST_CONFIG_FILE = "config/test-config.properties"; private static final Properties properties = new Properties(); private static final Logger logger = LoggerFactory.getLogger("ConfigFileReader"); private static String testSuite; @@ -35,6 +35,7 @@ public static boolean loadProperties() { @BeforeAll public static void startTestSuite() { + /** if (loadProperties()) { logger.info("properties loaded"); properties.forEach((property, value) -> { @@ -45,6 +46,7 @@ public static void startTestSuite() { } ); } + **/ if (System.getProperty("cucumber.filter.tags") != null) { testSuite = System.getProperty("cucumber.filter.tags").substring(1); logger.info("run test della test suite = " + testSuite); diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java index 0ab73c248..502ae1db0 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java @@ -8,6 +8,7 @@ import it.pn.frontend.e2e.api.personaFisica.SpidDemoLogin; import it.pn.frontend.e2e.api.personaFisica.SpidDemoStart; import it.pn.frontend.e2e.api.personaFisica.SpidLogin; +import it.pn.frontend.e2e.config.WebDriverConfig; import it.pn.frontend.e2e.listeners.HooksNew; import it.pn.frontend.e2e.listeners.NetWorkInfo; import it.pn.frontend.e2e.pages.destinatario.personaFisica.*; @@ -32,6 +33,9 @@ public class LoginPersonaFisicaPagoPA { @Autowired private HooksNew hooks; + @Autowired + private WebDriverConfig webDriverConfig; + private Map datiDelegato; private static final String FILE_TOKEN_LOGIN = "tokenLogin.yaml"; @@ -41,7 +45,8 @@ public class LoginPersonaFisicaPagoPA { public void loginPageDestinatarioVieneVisualizzata(String datipersonaFisica) { DataPopulation dataPopulation = new DataPopulation(); this.datiPersonaFisica = dataPopulation.readDataPopulation(datipersonaFisica + ".yaml"); - String variabileAmbiente = System.getProperty("environment"); + // String variabileAmbiente = System.getProperty("environment"); + String variabileAmbiente = webDriverConfig.getEnvironment(); switch (variabileAmbiente) { case "dev" -> this.hooks.getDriver().get(this.datiPersonaFisica.get("url").toString()); case "test", "uat" -> @@ -53,7 +58,7 @@ public void loginPageDestinatarioVieneVisualizzata(String datipersonaFisica) { @Given("Login Page persona fisica test viene visualizzata") public void loginPageDestinatarioVieneVisualizzataConUrl() { - + logger.info("ENVIROMENT...: "+ webDriverConfig.getEnvironment()); String url = "https://cittadini.test.notifichedigitali.it/"; this.hooks.getDriver().get(url); @@ -62,7 +67,8 @@ public void loginPageDestinatarioVieneVisualizzataConUrl() { @Given("PF - Si effettua la login tramite token exchange come {string}, e viene visualizzata la dashboard") public void loginMittenteConTokenExchange(String personaFisica) { DataPopulation dataPopulation = new DataPopulation(); - String environment = System.getProperty("environment"); + //String environment = System.getProperty("environment"); + String environment = webDriverConfig.getEnvironment(); String token = ""; switch (environment) { case "dev" -> token = personaFisica.equalsIgnoreCase("delegante") ? @@ -222,6 +228,7 @@ public void loginConDestinatario(Map datiPF) { @Then("Home page persona fisica viene visualizzata correttamente") public void homePageDestinatarioVieneVisualizzataCorrettamente() { + logger.info("ENVIROMENT...: "+ webDriverConfig.getEnvironment()); CookiesSection cookiesSection; if (!CookieConfig.isCookieEnabled()) { cookiesSection = new CookiesSection(this.hooks.getDriver()); @@ -273,7 +280,9 @@ public void homePageDestinatarioVieneVisualizzataCorrettamente() { throw new RuntimeException(e); } - String variabileAmbiente = System.getProperty("environment"); + // String variabileAmbiente = System.getProperty("environment"); + logger.info("ENVIROMENT...: "+ webDriverConfig.getEnvironment()); + String urlChiamata = WebTool.getApiBaseUrl() + "notifications/received?"; int codiceRispostaChiamataApi = getCodiceRispostaChiamataApi(urlChiamata); @@ -337,7 +346,8 @@ public void logoutDaPortaleDestinatario() { } private boolean readHttpRequest() { - String variabileAmbiente = System.getProperty("environment"); + // String variabileAmbiente = System.getProperty("environment"); + String variabileAmbiente = webDriverConfig.getEnvironment(); boolean urlFound = false; for (NetWorkInfo netWorkInfo : hooks.getNetWorkInfos()) { logger.info(netWorkInfo.getRequestUrl()); @@ -385,7 +395,8 @@ public void loginPortaleDestinatarioTramiteRequestMethod() { private void readUrlLoginPersonaFisicaWithToken(String user, String pwd) { logger.info("spid-login"); - String variabileAmbiente = System.getProperty("environment"); + // String variabileAmbiente = System.getProperty("environment"); + String variabileAmbiente = webDriverConfig.getEnvironment(); SpidLogin spidLogin = new SpidLogin("xx_testenv2", "SpidL2"); spidLogin.setSpidLoginEndPoint("https://hub-login.spid." + variabileAmbiente + ".notifichedigitali.it/login"); @@ -598,7 +609,8 @@ public void loginPortaleDelegatoTramiteRequestMethod(String dpFile) { @When("Login portale persona fisica tramite token exchange {string}") public void loginPortalePersonaFisicaTramiteTokenExchange(String dpFile) { - String variabileAmbiente = System.getProperty("environment"); + // String variabileAmbiente = System.getProperty("environment"); + String variabileAmbiente = webDriverConfig.getEnvironment(); DataPopulation dataPopulation = new DataPopulation(); String urlIniziale = "https://cittadini." + variabileAmbiente + ".notifichedigitali.it/#token="; String user = dataPopulation.readDataPopulation(dpFile + ".yaml").get("user").toString(); @@ -623,7 +635,8 @@ public void loginPortalePersonaFisicaTramiteTokenExchange(String dpFile) { public String getTokenExchangePFFromFile(String personaFisica) { DataPopulation dataPopulation = new DataPopulation(); - String environment = System.getProperty("environment"); + //String environment = System.getProperty("environment"); + String environment = webDriverConfig.getEnvironment(); String token = ""; switch (environment) { case "dev" -> token = personaFisica.equalsIgnoreCase("delegante") ? From aa0922ed211de1e3359b341287e3718f29d38695 Mon Sep 17 00:00:00 2001 From: scritelli Date: Wed, 23 Oct 2024 16:03:28 +0200 Subject: [PATCH 112/212] Ristrutturazione della classe hooks e aggiunta web driverConfig per spring --- src/main/java/it/pn/frontend/e2e/listeners/Hooks.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java b/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java index c0120cfdd..2506384cf 100644 --- a/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java +++ b/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java @@ -3,6 +3,7 @@ import io.cucumber.java.After; import io.cucumber.java.Before; import io.cucumber.java.Scenario; +import io.cucumber.java.en.And; import io.github.bonigarcia.wdm.WebDriverManager; import it.pn.frontend.e2e.model.address.DigitalAddress; import it.pn.frontend.e2e.model.singleton.MandateSingleton; @@ -29,8 +30,7 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; -import javax.annotation.PostConstruct; -import javax.annotation.PreDestroy; + import java.io.File; import java.io.IOException; import java.text.DateFormat; @@ -52,6 +52,7 @@ public class Hooks { @Autowired private WebDriver driver; + @Autowired private CookieConfig cookieConfig; From a50c7290503d1d2642dd097be0d96bc933bb6d81 Mon Sep 17 00:00:00 2001 From: scritelli Date: Wed, 23 Oct 2024 16:03:57 +0200 Subject: [PATCH 113/212] Ristrutturazione della classe hooks e aggiunta web driverConfig per spring --- src/main/java/it/pn/frontend/e2e/listeners/Hooks.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java b/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java index 2506384cf..3d6d94c1e 100644 --- a/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java +++ b/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java @@ -12,7 +12,6 @@ import it.pn.frontend.e2e.utility.CookieConfig; import lombok.Getter; import org.apache.commons.io.FileUtils; -import org.junit.Assert; import org.openqa.selenium.OutputType; import org.openqa.selenium.TakesScreenshot; import org.openqa.selenium.WebDriver; From 7f9eeea0eb96ca82087594d5f76ca76e19b5252b Mon Sep 17 00:00:00 2001 From: scritelli Date: Wed, 23 Oct 2024 16:32:16 +0200 Subject: [PATCH 114/212] =?UTF-8?q?Miglioramenti=20principali:=20Iniezione?= =?UTF-8?q?=20delle=20dipendenze:=20Uso=20di=20@Autowired=20per=20iniettar?= =?UTF-8?q?e=20dipendenze=20come=20WebDriver,=20HeaderPGSection,=20e=20alt?= =?UTF-8?q?ri=20oggetti=20Spring-managed.=20Gestione=20delle=20propriet?= =?UTF-8?q?=C3=A0:=20Uso=20di=20@Value=20per=20leggere=20file=20di=20confi?= =?UTF-8?q?gurazione=20e=20variabili=20come=20FILE=5FTOKEN=5FLOGIN,=20RAGI?= =?UTF-8?q?ONE=5FSOCIALE=5FBALDASSARRE,=20URL=5FLOGIN=5FPG,=20permettendo?= =?UTF-8?q?=20una=20facile=20gestione=20delle=20configurazioni=20in=20ambi?= =?UTF-8?q?enti=20diversi.=20Riduzione=20del=20codice=20ripetitivo:=20Evit?= =?UTF-8?q?are=20duplicazioni=20come=20la=20gestione=20dei=20token,=20rend?= =?UTF-8?q?endo=20il=20codice=20pi=C3=B9=20modulare=20e=20manutenibile.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../personaGiuridica/LoginPGPagoPATest.java | 189 +++++-------- .../mittente/LoginMittentePagoPA.java | 263 ++---------------- 2 files changed, 92 insertions(+), 360 deletions(-) diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java index 982a65d2b..0e13f51ac 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java @@ -26,80 +26,89 @@ import org.openqa.selenium.WebDriver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.concurrent.TimeUnit; +//@Component inserire in un secondo momenti public class LoginPGPagoPATest { - private final Logger logger = LoggerFactory.getLogger("LoginPGPagoPATest"); - private final WebDriver driver = Hooks.driver; + + private final Logger logger = LoggerFactory.getLogger(LoginPGPagoPATest.class); + + @Autowired + private WebDriver driver; + + @Autowired + private HeaderPGSection headerPGSection; + + @Autowired + private AccediAreaRiservataPGPage accediAreaRiservataPGPage; + + @Autowired + private DataPopulation dataPopulation; + + @Autowired + private List netWorkInfos; + + @Value("${tokenLogin.file}") + private String FILE_TOKEN_LOGIN; + + @Value("${ragioneSociale.baldassarre}") + private String RAGIONE_SOCIALE_BALDASSARRE; + + @Value("${url.login.pg}") + private String URL_LOGIN_PG; + private Map datiPersonaGiuridica = new HashMap<>(); private Map urlPersonaGiuridica; - private final DataPopulation dataPopulation = new DataPopulation(); - private final HeaderPGSection headerPGSection = new HeaderPGSection(this.driver); - private final AccediAreaRiservataPGPage accediAreaRiservataPGPage = new AccediAreaRiservataPGPage(this.driver); - private final List netWorkInfos = Hooks.netWorkInfos; - private final String FILE_TOKEN_LOGIN = "tokenLogin.yaml"; - private final String RAGIONE_SOCIALE_BALDASSARRE = "Comune di Milano"; - private final String URL_LOGIN_PG = "https://imprese.dev.notifichedigitali.it/"; - @Given("Login Page persona giuridica viene visualizzata") public void loginPagePersonaGiuridicaVieneVisualizzata() { String variabileAmbiente = System.getProperty("environment"); switch (variabileAmbiente) { case "dev" -> driver.get(URL_LOGIN_PG); - case "test", "uat" -> - driver.get(URL_LOGIN_PG.replace("dev", variabileAmbiente)); - default -> - Assertions.fail("Non stato possibile trovare l'ambiente inserito, Inserisci in -Denvironment test o dev o uat"); + case "test", "uat" -> driver.get(URL_LOGIN_PG.replace("dev", variabileAmbiente)); + default -> Assertions.fail("Non stato possibile trovare l'ambiente inserito, Inserisci in -Denvironment test o dev o uat"); } } @Given("PG - Si effettua la login tramite token exchange come {string}, e viene visualizzata la dashboard") public void loginMittenteConTokenExchange(String personaGiuridica) { - DataPopulation dataPopulation = new DataPopulation(); - String environment = System.getProperty("environment"); String token = ""; + switch (environment) { case "dev" -> token = personaGiuridica.equalsIgnoreCase("delegante") ? dataPopulation.readDataPopulation(FILE_TOKEN_LOGIN).get("tokendevPGDelegante").toString() - : - dataPopulation.readDataPopulation(FILE_TOKEN_LOGIN).get("tokendevPGDelegato").toString(); - case "test" -> { - if(personaGiuridica.equalsIgnoreCase("delegante")){ - token = dataPopulation.readDataPopulation(FILE_TOKEN_LOGIN).get("tokentestPGDelegante").toString(); - } else if (personaGiuridica.equalsIgnoreCase("baldassarre")) { - token = dataPopulation.readDataPopulation(FILE_TOKEN_LOGIN).get("tokentestPGBaldassarre").toString(); - } else{ - token = dataPopulation.readDataPopulation(FILE_TOKEN_LOGIN).get("tokentestPGDelegato").toString(); - } - } + : dataPopulation.readDataPopulation(FILE_TOKEN_LOGIN).get("tokendevPGDelegato").toString(); + case "test" -> token = personaGiuridica.equalsIgnoreCase("delegante") ? + dataPopulation.readDataPopulation(FILE_TOKEN_LOGIN).get("tokentestPGDelegante").toString() + : dataPopulation.readDataPopulation(FILE_TOKEN_LOGIN).get("tokentestPGDelegato").toString(); default -> { logger.error("Ambiente non valido"); Assertions.fail("Ambiente non valido o non trovato!"); } } - // Si effettua il login con token exchange String urlLogin = "https://imprese." + environment + ".notifichedigitali.it/#selfCareToken=" + token; this.driver.get(urlLogin); logger.info("Login effettuato con successo"); + WebTool.waitTime(10); PiattaformaNotifichePGPAPage notifichePGPage = new PiattaformaNotifichePGPAPage(this.driver); - headerPGSection.waitLoadHeaderPGPage(); - // Si visualizza la dashboard e si verifica che gli elementi base siano presenti (header e title della pagina) if (personaGiuridica.equalsIgnoreCase("delegante")) { Map personaGiuridicaFile = dataPopulation.readDataPopulation("personaGiuridica.yaml"); notifichePGPage.waitLoadPiattaformaNotificaPage(personaGiuridicaFile.get("ragioneSociale").toString()); - } else if(personaGiuridica.equalsIgnoreCase("baldassarre")) { + } else if (personaGiuridica.equalsIgnoreCase("baldassarre")) { notifichePGPage.waitLoadPiattaformaNotificaPage(RAGIONE_SOCIALE_BALDASSARRE); - }else { + } else { Map personaGiuridicaFile = dataPopulation.readDataPopulation("delegatoPG.yaml"); notifichePGPage.waitLoadPiattaformaNotificaPage(personaGiuridicaFile.get("ragioneSociale").toString()); } @@ -111,8 +120,10 @@ public void loginPortalePersonaGiuridicaTramiteRequestMethod() { String userMittente = this.datiPersonaGiuridica.get("user").toString(); String pwdMittente = this.datiPersonaGiuridica.get("pwd").toString(); this.readUrlPortaleMittente(userMittente, pwdMittente); + boolean urlWithTokenFound = false; int numProvaLogin = 0; + while (numProvaLogin < 10) { this.readUrlPortaleMittente(userMittente, pwdMittente); if (this.urlPersonaGiuridica.get("responseCode").equalsIgnoreCase("301")) { @@ -132,7 +143,6 @@ public void loginPortalePersonaGiuridicaTramiteRequestMethod() { } else { logger.error("procedura di login from spid provata : " + numProvaLogin); Assertions.fail("Codice risposta ricevuto per questo end point: '" + this.urlPersonaGiuridica.get("urlPortale") + "' è : " + this.urlPersonaGiuridica.get("responseCode")); - } this.driver.get(this.urlPersonaGiuridica.get("urlPortale")); @@ -150,62 +160,21 @@ public void loginPortalePersonaGiuridicaTramiteRequestMethod() { } private void readUrlPortaleMittente(String user, String password) { - SpidLoginMittente spidLoginMittente = new SpidLoginMittente("xx_testenv2", "SpidL2"); spidLoginMittente.setSpidLoginMittenteEndPoint("https://api-pnpg.uat.selfcare.pagopa.it/spid/v1/login"); spidLoginMittente.runSpidLoginMittente(); + if (spidLoginMittente.getResponseBody() == null) { Assertions.fail("api spid login risponde con body vuoto"); } String cookiesNameFromSpidLoginMittente = spidLoginMittente.getCookieName(); - if (cookiesNameFromSpidLoginMittente != null) { - logger.info("cookiesNameFromSpidLoginMittente : " + cookiesNameFromSpidLoginMittente); - } else { - Assertions.fail("cookiesNameFromSpidLoginMittente is null"); - } - String cookiesValueFromSpidLoginMittente = spidLoginMittente.getCookieValue(); - if (cookiesValueFromSpidLoginMittente != null) { - logger.info("cookiesValueFromSpidLoginMittente : " + cookiesValueFromSpidLoginMittente); - } else { - Assertions.fail("cookiesValueFromSpidLoginMittente is null"); - } - String cookiesDomainFromSpidLoginMittente = spidLoginMittente.getCookieDomain(); - if (cookiesDomainFromSpidLoginMittente != null) { - logger.info("cookiesDomainFromSpidLoginMittente : " + cookiesDomainFromSpidLoginMittente); - } else { - Assertions.fail("cookiesDomainFromSpidLoginMittente is null"); - } - String cookiesPathFromSpidLoginMittente = spidLoginMittente.getCookiePath(); - if (cookiesPathFromSpidLoginMittente != null) { - logger.info("cookiesPathFromSpidLoginMittente : " + cookiesPathFromSpidLoginMittente); - } else { - Assertions.fail("cookiesPathFromSpidLoginMittente is null"); - } - boolean cookiesHttOnlyFromSpidLoginMittente = spidLoginMittente.getCookieHttpOnly(); - if (cookiesHttOnlyFromSpidLoginMittente) { - logger.info("cookiesHttOnlyFromSpidLoginMittente : " + cookiesHttOnlyFromSpidLoginMittente); - } else { - Assertions.fail("cookiesHttOnlyFromSpidLoginMittente : " + cookiesHttOnlyFromSpidLoginMittente); - } - String requestKeyFromSpidLoginMittente = spidLoginMittente.getRequestKey(); - if (requestKeyFromSpidLoginMittente != null) { - logger.info("requestKeyFromSpidLoginMittente : " + requestKeyFromSpidLoginMittente); - } else { - Assertions.fail("requestKeyFromSpidLoginMittente is null"); - } - String relayStateFromSpidLoginMittente = spidLoginMittente.getRelayState(); - if (relayStateFromSpidLoginMittente != null) { - logger.info("relayStateFromSpidLoginMittente : " + relayStateFromSpidLoginMittente); - } else { - Assertions.fail("relayStateFromSpidLoginMittente is null"); - } BasicCookieStore cookieStore = new BasicCookieStore(); BasicClientCookie cookie = new BasicClientCookie(cookiesNameFromSpidLoginMittente, cookiesValueFromSpidLoginMittente); @@ -229,12 +198,6 @@ private void readUrlPortaleMittente(String user, String password) { } String requestKeyFromSpidTestEnvWestEuropeAzureContainerIoLogin = spidTestEnvWestEuropeAzureContainerIoLogin.getRequestKeyOutput(); - if (requestKeyFromSpidTestEnvWestEuropeAzureContainerIoLogin != null) { - logger.info("requestKeyFromSpidTestEnvWestEuropeAzureContainerIoLogin : " + requestKeyFromSpidTestEnvWestEuropeAzureContainerIoLogin); - } else { - Assertions.fail("requestKeyFromSpidTestEnvWestEuropeAzureContainerIoLogin is null"); - } - SpidTestEnvWestEuropeAzureContainerIoContinueResponse spidTestEnvWestEuropeAzureContainerIoContinueResponse = new SpidTestEnvWestEuropeAzureContainerIoContinueResponse( requestKeyFromSpidTestEnvWestEuropeAzureContainerIoLogin, cookieStore @@ -242,23 +205,13 @@ private void readUrlPortaleMittente(String user, String password) { spidTestEnvWestEuropeAzureContainerIoContinueResponse.setSpidTestEnvWestEuropeAzureContainerIoContinueResponseEndPoint("https://selc-u-pnpg-spid-testenv.westeurope.azurecontainer.io/continue-response"); spidTestEnvWestEuropeAzureContainerIoContinueResponse.runSpidTestEnvWestEuropeAzureContainerIoContinueResponse(); + if (spidTestEnvWestEuropeAzureContainerIoContinueResponse.getResponseBody() == null) { Assertions.fail(" api selc-u-spid-testenv.westeurope.azurecontainer.io/continue-response"); } String samlResponseFromSpidTestEnvWestEuropeAzureContainerIoContinueResponse = spidTestEnvWestEuropeAzureContainerIoContinueResponse.getSamlResponseOutput(); - if (samlResponseFromSpidTestEnvWestEuropeAzureContainerIoContinueResponse != null) { - logger.info("samlResponseFromSpidTestEnvWestEuropeAzureContainerIoContinueResponse : " + samlResponseFromSpidTestEnvWestEuropeAzureContainerIoContinueResponse); - } else { - Assertions.fail("samlResponseFromSpidTestEnvWestEuropeAzureContainerIoContinueResponse is null"); - } - String relayStateFromSpidTestEnvWestEuropeAzureContainerIoContinueResponse = spidTestEnvWestEuropeAzureContainerIoContinueResponse.getRelayStateOutput(); - if (relayStateFromSpidTestEnvWestEuropeAzureContainerIoContinueResponse != null) { - logger.info("relayStateFromSpidTestEnvWestEuropeAzureContainerIoContinueResponse : " + relayStateFromSpidTestEnvWestEuropeAzureContainerIoContinueResponse); - } else { - Assertions.fail("relayStateFromSpidTestEnvWestEuropeAzureContainerIoContinueResponse is null"); - } SpidAcsMittente spidAcsMittente = new SpidAcsMittente( samlResponseFromSpidTestEnvWestEuropeAzureContainerIoContinueResponse, @@ -282,22 +235,19 @@ public void homePagePersonaGiuridicaVieneVisualizzataCorrettamente() { headerPGSection.waitLoadHeaderPGPage(); HomePagePG homePagePG = new HomePagePG(this.driver); homePagePG.waitLoadHomePagePGPage(); - } @When("Login con persona giuridica") - public void loginConPersonaGiuridica(Map datiPG) { + public void loginConPersonaGiuridica(Map datiPG) { logger.info("La persona guiridica cerca di fare il login"); - - CookiesSection cookiesSection; - if (!CookieConfig.isCookieEnabled()) { - cookiesSection = new CookiesSection(this.driver); + CookiesSection cookiesSection = new CookiesSection(this.driver); if (cookiesSection.waitLoadCookiesPage()) { cookiesSection.selezionaAccettaTuttiButton(); } } + accediAreaRiservataPGPage.waitLoadAccediAreaRiservataPGPage(); accediAreaRiservataPGPage.clickSpidButton(); @@ -310,14 +260,13 @@ public void loginConPersonaGiuridica(Map datiPG) { loginPGPagoPAPage.insertPassword(datiPG.get("pwd")); loginPGPagoPAPage.clickInviaButton(); - AutorizzaInvioDatiPGPage autorizzaInvioDatiPGPage = new AutorizzaInvioDatiPGPage(this.driver); autorizzaInvioDatiPGPage.waitLoadAutorizzaInvioDatiPGPage(); autorizzaInvioDatiPGPage.clickInviaButton(); SelezionaImpresaPage selezionaImpresaPage = new SelezionaImpresaPage(this.driver); selezionaImpresaPage.waitLoadSelezionaImpresaPage(); - if(selezionaImpresaPage.clickSuImpresa(datiPG.get("ragioneSociale"))){ + if (selezionaImpresaPage.clickSuImpresa(datiPG.get("ragioneSociale"))) { logger.info("click su impresa"); } selezionaImpresaPage.clickAccediButton(); @@ -328,9 +277,7 @@ public void logoutDaPortalePersonaGiuridica() { headerPGSection.waitLoadHeaderPGPage(); headerPGSection.clickEsciButton(); WebTool.waitTime(5); - accediAreaRiservataPGPage.waitLoadAccediAreaRiservataPGPage(); - WebTool.waitTime(5); } @@ -340,8 +287,10 @@ public void loginPortalePersonaGiuridicaTramiteRequestMethod(String dpFile) { String userMittente = this.datiPersonaGiuridica.get("user").toString(); String pwdMittente = this.datiPersonaGiuridica.get("pwd").toString(); this.readUrlPortaleMittente(userMittente, pwdMittente); + boolean urlWithTokenFound = false; int numProvaLogin = 0; + while (numProvaLogin < 10) { this.readUrlPortaleMittente(userMittente, pwdMittente); if (this.urlPersonaGiuridica.get("responseCode").equalsIgnoreCase("301")) { @@ -361,7 +310,6 @@ public void loginPortalePersonaGiuridicaTramiteRequestMethod(String dpFile) { } else { logger.error("procedura di login from spid provata : " + numProvaLogin); Assertions.fail("Codice risposta ricevuto per questo end point: '" + this.urlPersonaGiuridica.get("urlPortale") + "' è : " + this.urlPersonaGiuridica.get("responseCode")); - } this.driver.get(this.urlPersonaGiuridica.get("urlPortale")); @@ -373,7 +321,6 @@ public void loginPortalePersonaGiuridicaTramiteRequestMethod(String dpFile) { } } - SelezionaImpresaPage impresaPage = new SelezionaImpresaPage(this.driver); impresaPage.clickSuImpresa(this.datiPersonaGiuridica.get("ragioneSociale").toString()); impresaPage.clickAccediButton(); @@ -388,41 +335,33 @@ public void loginPortalePersonaGiuridicaTramiteTokenExchange(String dpFile) { String token; String user = this.dataPopulation.readDataPopulation(dpFile + ".yaml").get("user").toString(); if (user.equalsIgnoreCase("DanteAlighieri")) { - if (variabileAmbiente.equalsIgnoreCase("test")) { - token = this.dataPopulation.readDataPopulation("tokenLogin.yaml").get("tokentestPGDelegante").toString(); - } else { - token = this.dataPopulation.readDataPopulation("tokenLogin.yaml").get("tokendevPGDelegante").toString(); - } + token = variabileAmbiente.equalsIgnoreCase("test") ? + this.dataPopulation.readDataPopulation("tokenLogin.yaml").get("tokentestPGDelegante").toString() : + this.dataPopulation.readDataPopulation("tokenLogin.yaml").get("tokendevPGDelegante").toString(); } else { - if (variabileAmbiente.equalsIgnoreCase("test")) { - token = this.dataPopulation.readDataPopulation("tokenLogin.yaml").get("tokentestPGDelegato").toString(); - } else { - token = this.dataPopulation.readDataPopulation("tokenLogin.yaml").get("tokendevPGDelegato").toString(); - } + token = variabileAmbiente.equalsIgnoreCase("test") ? + this.dataPopulation.readDataPopulation("tokenLogin.yaml").get("tokentestPGDelegato").toString() : + this.dataPopulation.readDataPopulation("tokenLogin.yaml").get("tokendevPGDelegato").toString(); } String url = urlIniziale + token; this.driver.get(url); } public String getTokenExchangePGFromFile(String personaGiuridica) { - DataPopulation dataPopulation = new DataPopulation(); String environment = System.getProperty("environment"); - String token = ""; - switch (environment) { - case "dev" -> token = personaGiuridica.equalsIgnoreCase("delegante") ? + return switch (environment) { + case "dev" -> personaGiuridica.equalsIgnoreCase("delegante") ? dataPopulation.readDataPopulation(FILE_TOKEN_LOGIN).get("tokendevPGDelegante").toString() - : - dataPopulation.readDataPopulation(FILE_TOKEN_LOGIN).get("tokendevPGDelegato").toString(); - case "test" -> token = personaGiuridica.equalsIgnoreCase("delegante") ? + : dataPopulation.readDataPopulation(FILE_TOKEN_LOGIN).get("tokendevPGDelegato").toString(); + case "test" -> personaGiuridica.equalsIgnoreCase("delegante") ? dataPopulation.readDataPopulation(FILE_TOKEN_LOGIN).get("tokentestPGDelegante").toString() - : - dataPopulation.readDataPopulation(FILE_TOKEN_LOGIN).get("tokentestPGDelegato").toString(); + : dataPopulation.readDataPopulation(FILE_TOKEN_LOGIN).get("tokentestPGDelegato").toString(); default -> { logger.error("Ambiente non valido"); Assertions.fail("Ambiente non valido o non trovato!"); + yield ""; } - } - return token; + }; } @And("Si clicca su prodotto {string}") diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/LoginMittentePagoPA.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/LoginMittentePagoPA.java index d96903aaa..58b55b260 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/LoginMittentePagoPA.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/LoginMittentePagoPA.java @@ -21,25 +21,44 @@ import org.openqa.selenium.WebDriver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; +import org.springframework.context.annotation.Lazy; import java.util.Map; import java.util.concurrent.TimeUnit; - +//@Component +//@Scope("prototype") public class LoginMittentePagoPA { + // Logger per tracciare informazioni importanti durante l'esecuzione del test private static final Logger logger = LoggerFactory.getLogger("LoginMittentePagoPA"); - private final WebDriver driver = Hooks.driver; - private final String FILE_TOKEN_LOGIN = "tokenLogin.yaml"; + + // WebDriver gestito con Spring, inizializzato in modo lazy per ottimizzare le risorse da capire? + //@Lazy + @Autowired + private WebDriver driver; + + @Autowired + private DataPopulation dataPopulation; + + // Percorso del file token specificato nelle configurazioni, con valore di default 'tokenLogin.yaml' + @Value("${token.login.file:tokenLogin.yaml}") + private String FILE_TOKEN_LOGIN; + private Map datiMittente; private Map urlMittente; @Given("Login Page mittente {string} viene visualizzata") public void loginPageMittenteVieneVisualizzata(String datiMittenteFile) { + // Recupero dell'ambiente corrente e visualizzazione della pagina di login logger.info("Si recupera l'ambiente e si visualizza la pagina di login"); - DataPopulation dataPopulation = new DataPopulation(); this.datiMittente = dataPopulation.readDataPopulation(datiMittenteFile + ".yaml"); String variabileAmbiente = System.getProperty("environment"); + // Gestione degli ambienti 'dev', 'test', 'uat' per la navigazione switch (variabileAmbiente) { case "dev" -> this.driver.get(this.datiMittente.get("url").toString()); case "test", "uat" -> @@ -53,7 +72,6 @@ public void loginPageMittenteVieneVisualizzata(String datiMittenteFile) { public void loginPageMittenteVieneVisualizzata(Map datiMittenteTable) { logger.info("Si recupera l'ambiente e si visualizza la pagina di login"); String variabileAmbiente = System.getProperty("environment"); - DataPopulation dataPopulation = new DataPopulation(); this.datiMittente = dataPopulation.readDataPopulation("mittente.yaml"); switch (variabileAmbiente) { @@ -67,7 +85,6 @@ public void loginPageMittenteVieneVisualizzata(Map datiMittenteTa @Given("PA - Si effettua la login tramite token exchange, e viene visualizzata la dashboard") public void loginMittenteConTokenExchange() { - DataPopulation dataPopulation = new DataPopulation(); String environment = System.getProperty("environment"); String token = ""; switch (environment) { @@ -85,6 +102,7 @@ public void loginMittenteConTokenExchange() { String urlLogin = "https://selfcare." + environment + ".notifichedigitali.it/#selfCareToken=" + token; this.driver.get(urlLogin); logger.info("Login effettuato con successo"); + // Attesa statica di 10 secondi - considerare l'uso di WebDriverWait per migliorare l'efficienza WebTool.waitTime(10); // Si visualizza la dashboard e si verifica che gli elementi base siano presenti (header e title della pagina) @@ -98,13 +116,14 @@ public void loginMittenteConTokenExchange() { public void loginConMittente(String datiMittenteFile) { logger.info("Si effetua la Login dal portale mittente"); - DataPopulation dataPopulation = new DataPopulation(); this.datiMittente = dataPopulation.readDataPopulation(datiMittenteFile + ".yaml"); + // Creazione dell'oggetto pagina per la gestione del pre-accesso all'area riservata PreAccediAreaRiservataPAPage preAccediAreaRiservataPAPage = new PreAccediAreaRiservataPAPage(this.driver); preAccediAreaRiservataPAPage.waitLoadPreAccediAreaRiservataPAPage(); preAccediAreaRiservataPAPage.selezionaProcediAlLoginButton(); + // Verifica della presenza dell'URL e dei cookie per proseguire con l'accettazione dei cookie if (driver.getCurrentUrl().contains("https://uat.selfcare.pagopa.it/") || !CookieConfig.isCookieEnabled()) { logger.info("cookies start"); @@ -142,213 +161,6 @@ public void loginConMittente(String datiMittenteFile) { selezionaEntePAPage.selezionaAccedi(); } - @When("Login con mittente") - public void loginConMittente(Map datiMittenteFile) { - logger.info("Si effetua la Login dal portale mittente"); - - PreAccediAreaRiservataPAPage preAccediAreaRiservataPAPage = new PreAccediAreaRiservataPAPage(this.driver); - preAccediAreaRiservataPAPage.waitLoadPreAccediAreaRiservataPAPage(); - preAccediAreaRiservataPAPage.selezionaProcediAlLoginButton(); - - if (driver.getCurrentUrl().contains("https://uat.selfcare.pagopa.it/") || - !CookieConfig.isCookieEnabled()) { - logger.info("cookies start"); - CookiesSection cookiesPage; - cookiesPage = new CookiesSection(this.driver); - cookiesPage.selezionaAccettaTuttiButton(); - if (cookiesPage.waitLoadCookiesPage()) { - cookiesPage.selezionaAccettaTuttiButton(); - } - logger.info("cookies end"); - } - - AcccediAreaRiservataPAPage acccediAreaRiservataPAPage = new AcccediAreaRiservataPAPage(this.driver); - acccediAreaRiservataPAPage.waitLoadLoginPageMittente(); - acccediAreaRiservataPAPage.selezionareSpidButton(); - - ScegliSpidPAPage scegliSpidPAPage = new ScegliSpidPAPage(this.driver); - - scegliSpidPAPage.selezionareTestButton(); - - LoginPAPage loginPAPage = new LoginPAPage(this.driver); - loginPAPage.waitLoadLoginPAPage(); - loginPAPage.inserisciUtenete(datiMittenteFile.get("user")); - loginPAPage.inserisciPassword(datiMittenteFile.get("pwd")); - loginPAPage.selezionaInviaDati(); - - AutorizziInvioDatiPAPage autorizziInvioDatiPAPage = new AutorizziInvioDatiPAPage(this.driver); - autorizziInvioDatiPAPage.waitLoadAutorizziInvioDatiPAPage(); - autorizziInvioDatiPAPage.selezionareInvia(); - - SelezionaEntePAPage selezionaEntePAPage = new SelezionaEntePAPage(this.driver); - selezionaEntePAPage.waitLoadSelezionaEntePAPage(); - selezionaEntePAPage.cercaComune(datiMittenteFile.get("comune")); - selezionaEntePAPage.selezionareComune(datiMittenteFile.get("comune")); - selezionaEntePAPage.selezionaAccedi(); - } - - @When("Login mittente tramite request method") - public void portaleMittenteIsDisplayed() throws InterruptedException { - String userMittente = this.datiMittente.get("user").toString(); - String pwdMittente = this.datiMittente.get("pwd").toString(); - this.readurlPortaleMittente(userMittente, pwdMittente); - boolean urlWithTokenFound = false; - int numProvaLogin = 0; - while (numProvaLogin < 10) { - this.readurlPortaleMittente(userMittente, pwdMittente); - if (this.urlMittente.get("responseCode").equalsIgnoreCase("301")) { - urlWithTokenFound = true; - break; - } - TimeUnit.SECONDS.sleep(18); - numProvaLogin++; - } - - if (urlWithTokenFound) { - logger.info("procedura di login from spid provata : " + numProvaLogin); - } else { - logger.info("procedura di login from spid provata : " + numProvaLogin); - Assertions.fail("Codice risposta ricevuto per questo end point: '" + this.urlMittente.get("urlPortale") + "' è : " + this.urlMittente.get("responseCode")); - } - - this.driver.get(this.urlMittente.get("urlPortale")); - - SelezionaEntePAPage selezionaEntePAPage = new SelezionaEntePAPage(this.driver); - selezionaEntePAPage.waitLoadSelezionaEntePAPage(); - selezionaEntePAPage.cercaComune(this.datiMittente.get("comune").toString()); - selezionaEntePAPage.selezionareComune(this.datiMittente.get("comune").toString()); - selezionaEntePAPage.selezionaAccedi(); - } - - private void readurlPortaleMittente(String user, String password) { - - SpidLoginMittente spidLoginMittente = new SpidLoginMittente("xx_testenv2", "SpidL2"); - spidLoginMittente.setSpidLoginMittenteEndPoint("https://api.uat.selfcare.pagopa.it/spid/v1/login"); - spidLoginMittente.runSpidLoginMittente(); - if (spidLoginMittente.getResponseBody() == null) { - Assertions.fail(" api spid login risponde con body vuoto"); - } - - String cookiesNameFromSpidLoginMittente = spidLoginMittente.getCookieName(); - if (cookiesNameFromSpidLoginMittente != null) { - logger.info("cookiesNameFromSpidLoginMittente : " + cookiesNameFromSpidLoginMittente); - } else { - Assertions.fail("cookiesNameFromSpidLoginMittente is null"); - } - - String cookiesValueFromSpidLoginMittente = spidLoginMittente.getCookieValue(); - if (cookiesValueFromSpidLoginMittente != null) { - logger.info("cookiesValueFromSpidLoginMittente : " + cookiesValueFromSpidLoginMittente); - } else { - Assertions.fail("cookiesValueFromSpidLoginMittente is null"); - } - - String cookiesDomainFromSpidLoginMittente = spidLoginMittente.getCookieDomain(); - if (cookiesDomainFromSpidLoginMittente != null) { - logger.info("cookiesDomainFromSpidLoginMittente : " + cookiesDomainFromSpidLoginMittente); - } else { - Assertions.fail("cookiesDomainFromSpidLoginMittente is null"); - } - - String cookiesPathFromSpidLoginMittente = spidLoginMittente.getCookiePath(); - if (cookiesPathFromSpidLoginMittente != null) { - logger.info("cookiesPathFromSpidLoginMittente : " + cookiesPathFromSpidLoginMittente); - } else { - Assertions.fail("cookiesPathFromSpidLoginMittente is null"); - } - - boolean cookiesHttOnlyFromSpidLoginMittente = spidLoginMittente.getCookieHttpOnly(); - if (cookiesHttOnlyFromSpidLoginMittente) { - logger.info("cookiesHttOnlyFromSpidLoginMittente : " + cookiesHttOnlyFromSpidLoginMittente); - } else { - Assertions.fail("cookiesHttOnlyFromSpidLoginMittente : " + cookiesHttOnlyFromSpidLoginMittente); - } - - String requestKeyFromSpidLoginMittente = spidLoginMittente.getRequestKey(); - if (requestKeyFromSpidLoginMittente != null) { - logger.info("requestKeyFromSpidLoginMittente : " + requestKeyFromSpidLoginMittente); - } else { - Assertions.fail("requestKeyFromSpidLoginMittente is null"); - } - - String relayStateFromSpidLoginMittente = spidLoginMittente.getRelayState(); - if (relayStateFromSpidLoginMittente != null) { - logger.info("relayStateFromSpidLoginMittente : " + relayStateFromSpidLoginMittente); - } else { - Assertions.fail("relayStateFromSpidLoginMittente is null"); - } - - BasicCookieStore cookieStore = new BasicCookieStore(); - BasicClientCookie cookie = new BasicClientCookie(cookiesNameFromSpidLoginMittente, cookiesValueFromSpidLoginMittente); - cookie.setDomain(cookiesDomainFromSpidLoginMittente); - cookie.setPath(cookiesPathFromSpidLoginMittente); - cookie.setHttpOnly(cookiesHttOnlyFromSpidLoginMittente); - cookieStore.addCookie(cookie); - - SpidTestEnvWestEuropeAzureContainerIoLogin spidTestEnvWestEuropeAzureContainerIoLogin = - new SpidTestEnvWestEuropeAzureContainerIoLogin( - requestKeyFromSpidLoginMittente, - relayStateFromSpidLoginMittente, - user, password, - cookieStore - ); - spidTestEnvWestEuropeAzureContainerIoLogin.setSpidTestEnvWestEuropeAzureContainerIoLoginEndPoint("https://selc-u-spid-testenv.westeurope.azurecontainer.io/login"); - spidTestEnvWestEuropeAzureContainerIoLogin.runSpidTestEnvWestEuropeAzureContainerIoLogin(); - - if (spidTestEnvWestEuropeAzureContainerIoLogin.getResponseBody() == null) { - Assertions.fail(" api selc-u-spid-testenv.westeurope.azurecontainer.io/login ha risposto con body vuoto"); - } - - String requestKeyFromSpidTestEnvWestEuropeAzureContainerIoLogin = spidTestEnvWestEuropeAzureContainerIoLogin.getRequestKeyOutput(); - if (requestKeyFromSpidTestEnvWestEuropeAzureContainerIoLogin != null) { - logger.info("requestKeyFromSpidTestEnvWestEuropeAzureContainerIoLogin : " + requestKeyFromSpidTestEnvWestEuropeAzureContainerIoLogin); - } else { - Assertions.fail("requestKeyFromSpidTestEnvWestEuropeAzureContainerIoLogin is null"); - } - - SpidTestEnvWestEuropeAzureContainerIoContinueResponse spidTestEnvWestEuropeAzureContainerIoContinueResponse = - new SpidTestEnvWestEuropeAzureContainerIoContinueResponse( - requestKeyFromSpidTestEnvWestEuropeAzureContainerIoLogin, cookieStore - ); - - spidTestEnvWestEuropeAzureContainerIoContinueResponse.setSpidTestEnvWestEuropeAzureContainerIoContinueResponseEndPoint("https://selc-u-spid-testenv.westeurope.azurecontainer.io/continue-response"); - spidTestEnvWestEuropeAzureContainerIoContinueResponse.runSpidTestEnvWestEuropeAzureContainerIoContinueResponse(); - if (spidTestEnvWestEuropeAzureContainerIoContinueResponse.getResponseBody() == null) { - Assertions.fail(" api selc-u-spid-testenv.westeurope.azurecontainer.io/continue-response"); - } - - String samlResponseFromSpidTestEnvWestEuropeAzureContainerIoContinueResponse = spidTestEnvWestEuropeAzureContainerIoContinueResponse.getSamlResponseOutput(); - if (samlResponseFromSpidTestEnvWestEuropeAzureContainerIoContinueResponse != null) { - logger.info("samlResponseFromSpidTestEnvWestEuropeAzureContainerIoContinueResponse : " + samlResponseFromSpidTestEnvWestEuropeAzureContainerIoContinueResponse); - } else { - Assertions.fail("samlResponseFromSpidTestEnvWestEuropeAzureContainerIoContinueResponse is null"); - } - - String relayStateFromSpidTestEnvWestEuropeAzureContainerIoContinueResponse = spidTestEnvWestEuropeAzureContainerIoContinueResponse.getRelayStateOutput(); - if (relayStateFromSpidTestEnvWestEuropeAzureContainerIoContinueResponse != null) { - logger.info("relayStateFromSpidTestEnvWestEuropeAzureContainerIoContinueResponse : " + relayStateFromSpidTestEnvWestEuropeAzureContainerIoContinueResponse); - } else { - Assertions.fail("relayStateFromSpidTestEnvWestEuropeAzureContainerIoContinueResponse is null"); - } - - SpidAcsMittente spidAcsMittente = new SpidAcsMittente( - samlResponseFromSpidTestEnvWestEuropeAzureContainerIoContinueResponse, - relayStateFromSpidTestEnvWestEuropeAzureContainerIoContinueResponse, - cookieStore - ); - - spidAcsMittente.setSpidAcsEndPoint("https://api.uat.selfcare.pagopa.it/spid/v1/acs"); - spidAcsMittente.runSpidAcs(); - this.urlMittente = spidAcsMittente.getSpidAcsMittenteResponse(); - - if (this.urlMittente.get("urlPortale") != null) { - logger.info("urlMittente : " + this.urlMittente.get("urlPortale")); - } else { - Assertions.fail("urlMittente è null "); - } - } - - @Then("Home page mittente viene visualizzata correttamente") public void homePageMittenteVieneVisualizzataCorrettamente() { logger.info("Home page mittente viene visualizzata correttamente"); @@ -364,6 +176,7 @@ public void homePageMittenteVieneVisualizzataCorrettamente() { logger.info("Codice fiscale non presente o errato"); } + // Uso di attesa fissa di 5 secondi - considerare l'uso di WebDriverWait per migliorare la stabilità del test try { TimeUnit.SECONDS.sleep(5); } catch (InterruptedException e) { @@ -371,14 +184,12 @@ public void homePageMittenteVieneVisualizzataCorrettamente() { } } - @And("Logout da portale mittente") public void logoutDaPortaleMittente() { logger.info("Si esce dal portale mittente"); WebTool.waitTime(2); - HeaderPASection headerPASection = new HeaderPASection(this.driver); headerPASection.waitLoadHeaderSection(); headerPASection.selezionaEsciButton(); @@ -394,25 +205,6 @@ public void logoutDaPortaleMittente() { acccediAreaRiservataPAPage.waitLoadLoginPageMittente(); WebTool.waitTime(5); - - - } - - @When("Login con mittente tramite token exchange") - public void loginConMittenteTramiteTokenExchange() { - logger.info("Si effettua la login del mittente tramite token"); - - String variabileAmbiente = System.getProperty("environment"); - String urlInziale = "https://selfcare." + variabileAmbiente + ".notifichedigitali.it/#selfCareToken="; - String token; - DataPopulation dataPopulation = new DataPopulation(); - if (variabileAmbiente.equalsIgnoreCase("test")) { - token = dataPopulation.readDataPopulation("tokenLogin.yaml").get("tokentestMittente").toString(); - } else { - token = dataPopulation.readDataPopulation("tokenLogin.yaml").get("tokendevMittente").toString(); - } - String url = urlInziale + token; - driver.get(url); } @And("Si clicca sul bottone test") @@ -423,6 +215,7 @@ public void clickTestButton() { @And("Si clicca bottone accetta cookies") public void clickAcceptCookies() { + // Gestione della sezione cookies, accettando i cookie se necessario CookiesSection cookiesPage = new CookiesSection(this.driver); if (cookiesPage.waitLoadCookiesPage()) { cookiesPage.selezionaAccettaTuttiButton(); From 70b6beab1a281de2f040631ace1607b08ae0c72b Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Wed, 23 Oct 2024 18:55:37 +0200 Subject: [PATCH 115/212] Add configuration --- .../pn/frontend/e2e/listeners/HooksNew.java | 4 +++- .../frontend/e2e/section/CookiesSection.java | 2 ++ .../pn/frontend/e2e/utility/CookieConfig.java | 18 +++++++++++++--- .../it/pn/frontend/e2e/utility/WebTool.java | 16 +++++++++++--- .../CucumberSpringIntegration.java | 4 ---- .../LoginPersonaFisicaPagoPA.java | 21 +++++++++---------- .../NotifichePersonaFisicaPagoPATest.java | 6 +++++- .../RecapitiPersonaFisicaTest.java | 6 +++++- .../personaGiuridica/LoginPGPagoPATest.java | 9 +++++--- .../NotifichePGPagoPATest.java | 17 ++++++++++----- .../mittente/DisserviziAppPATest.java | 7 ++++++- .../DownloadFileMittentePagoPATest.java | 17 +++++++++------ .../mittente/LoginMittentePagoPA.java | 17 +++++++++++---- .../mittente/NotificaMittentePagoPATest.java | 19 +++++++++++------ 14 files changed, 114 insertions(+), 49 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java b/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java index f2d187c2f..e316a6731 100644 --- a/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java +++ b/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java @@ -70,13 +70,15 @@ public class HooksNew { @Getter private final List netWorkInfos = new ArrayList<>(); - private final CookieConfig cookieConfig = new CookieConfig(); + @Autowired + private CookieConfig cookieConfig; private final String os = System.getProperty("os.name"); @Autowired private WebDriverConfig webDriverConfig; + private void setupFirefox() { WebDriverManager.firefoxdriver().setup(); var firefoxProfile = new FirefoxProfile(); diff --git a/src/main/java/it/pn/frontend/e2e/section/CookiesSection.java b/src/main/java/it/pn/frontend/e2e/section/CookiesSection.java index 71a6e5776..257af209a 100644 --- a/src/main/java/it/pn/frontend/e2e/section/CookiesSection.java +++ b/src/main/java/it/pn/frontend/e2e/section/CookiesSection.java @@ -11,7 +11,9 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Component; +@Component public class CookiesSection extends BasePage { private static final Logger logger = LoggerFactory.getLogger("CookiesPage"); diff --git a/src/main/java/it/pn/frontend/e2e/utility/CookieConfig.java b/src/main/java/it/pn/frontend/e2e/utility/CookieConfig.java index b753b9170..24894995f 100644 --- a/src/main/java/it/pn/frontend/e2e/utility/CookieConfig.java +++ b/src/main/java/it/pn/frontend/e2e/utility/CookieConfig.java @@ -1,8 +1,11 @@ package it.pn.frontend.e2e.utility; +import it.pn.frontend.e2e.config.WebDriverConfig; import org.openqa.selenium.Cookie; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Configuration; import org.springframework.stereotype.Component; import java.text.SimpleDateFormat; @@ -12,15 +15,23 @@ public class CookieConfig { private static final Logger logger = LoggerFactory.getLogger("CookieConfig"); - private static final String env = System.getProperty("environment"); + @Autowired + private WebDriverConfig webDriverConfig; + // private static final String env = System.getProperty("environment"); private final Map> cookieMap; + @Autowired public CookieConfig() { this.cookieMap = new HashMap<>(); } - public static boolean isCookieEnabled() { - String isCookieEnabled = System.getProperty("cookie.config"); + + + public boolean isCookieEnabled() { + //String isCookieEnabled = System.getProperty("cookie.config"); + logger.info("COOOKIE....: "); + logger.info("COOOKIE....: "+ webDriverConfig.getCookie()); + String isCookieEnabled = webDriverConfig.getCookie(); if (isCookieEnabled == null || isCookieEnabled.equals("false")) { logger.info("Cookies are disabled"); return false; @@ -33,6 +44,7 @@ public void addCookie() { // Check if the cookie property is enabled if (isCookieEnabled()) { // Based on the environment, the cookie is added to the map + String env = webDriverConfig.getEnvironment(); switch (env) { case "test": this.setUpCookieTest(); diff --git a/src/main/java/it/pn/frontend/e2e/utility/WebTool.java b/src/main/java/it/pn/frontend/e2e/utility/WebTool.java index 721289fae..c6f4c3eb6 100644 --- a/src/main/java/it/pn/frontend/e2e/utility/WebTool.java +++ b/src/main/java/it/pn/frontend/e2e/utility/WebTool.java @@ -1,6 +1,8 @@ package it.pn.frontend.e2e.utility; +import it.pn.frontend.e2e.config.WebDriverConfig; import it.pn.frontend.e2e.listeners.Hooks; +import it.pn.frontend.e2e.listeners.HooksNew; import it.pn.frontend.e2e.listeners.NetWorkInfo; import it.pn.frontend.e2e.model.enums.AppPortal; import it.pn.frontend.e2e.pages.destinatario.personaFisica.NotifichePFPage; @@ -14,6 +16,7 @@ import org.junit.jupiter.api.Assertions; import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.WebDriver; +import org.springframework.beans.factory.annotation.Autowired; import java.text.SimpleDateFormat; import java.time.*; @@ -26,13 +29,20 @@ @Slf4j public class WebTool { + + @Autowired + private WebDriverConfig webDriverConfig; + + @Autowired + private HooksNew hooks; + private static final Integer NOTICE_CODE_LENGTH = 18; private static final WebDriver driver = Hooks.driver; private final List netWorkInfos = Hooks.netWorkInfos; - private final String env = System.getProperty("environment"); + //private final String env1 = System.getProperty("environment"); - @Getter - private static final String apiBaseUrl = System.getProperty("apiBaseUrl"); + //@Getter + //private static final String apiBaseUrl = System.getProperty("apiBaseUrl"); public static String switchToPortal(AppPortal portal) { openNewTab(); diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java index ab00656d6..b1476b275 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java @@ -2,13 +2,9 @@ import io.cucumber.spring.CucumberContextConfiguration; import it.pn.frontend.e2e.config.WebDriverConfig; -import it.pn.frontend.e2e.listeners.Hooks; -import it.pn.frontend.e2e.listeners.HooksNew; import it.pn.frontend.e2e.listeners.LoggerStartupListener; import it.pn.frontend.e2e.listeners.NetWorkInfo; -import it.pn.frontend.e2e.run.RunCucumberTest; import it.pn.frontend.e2e.utility.CookieConfig; -import it.pn.frontend.e2e.utility.WebTool; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.scheduling.annotation.EnableScheduling; diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java index 502ae1db0..41156d632 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java @@ -35,6 +35,8 @@ public class LoginPersonaFisicaPagoPA { private HooksNew hooks; @Autowired private WebDriverConfig webDriverConfig; + @Autowired + private CookieConfig cookieConfig; private Map datiDelegato; private static final String FILE_TOKEN_LOGIN = "tokenLogin.yaml"; @@ -108,7 +110,7 @@ public void loginConDestinatario(String datipersonaFisica) { logger.info("cookies start"); CookiesSection cookiesPage; - if (!CookieConfig.isCookieEnabled()) { + if (!cookieConfig.isCookieEnabled()) { cookiesPage = new CookiesSection(this.hooks.getDriver()); if (cookiesPage.waitLoadCookiesPage()) { cookiesPage.selezionaAccettaTuttiButton(); @@ -166,7 +168,7 @@ public void loginConDestinatario(Map datiPF) { logger.info("cookies start"); CookiesSection cookiesPage; - if (!CookieConfig.isCookieEnabled()) { + if (!cookieConfig.isCookieEnabled()) { cookiesPage = new CookiesSection(this.hooks.getDriver()); if (cookiesPage.waitLoadCookiesPage()) { cookiesPage.selezionaAccettaTuttiButton(); @@ -176,7 +178,7 @@ public void loginConDestinatario(Map datiPF) { AccediAPiattaformaNotifichePage accediApiattaformaNotifichePage = new AccediAPiattaformaNotifichePage(this.hooks.getDriver()); accediApiattaformaNotifichePage.waitLoadAccediAPiattaformaNotifichePage(); accediApiattaformaNotifichePage.selezionaAccediButton(); - if (!CookieConfig.isCookieEnabled()) { + if (!cookieConfig.isCookieEnabled()) { cookiesPage = new CookiesSection(this.hooks.getDriver()); if (cookiesPage.waitLoadCookiesPage()) { cookiesPage.selezionaAccettaTuttiButton(); @@ -228,9 +230,9 @@ public void loginConDestinatario(Map datiPF) { @Then("Home page persona fisica viene visualizzata correttamente") public void homePageDestinatarioVieneVisualizzataCorrettamente() { - logger.info("ENVIROMENT...: "+ webDriverConfig.getEnvironment()); + CookiesSection cookiesSection; - if (!CookieConfig.isCookieEnabled()) { + if (!cookieConfig.isCookieEnabled()) { cookiesSection = new CookiesSection(this.hooks.getDriver()); if (cookiesSection.waitLoadCookiesPage()) { cookiesSection.selezionaAccettaTuttiButton(); @@ -258,7 +260,7 @@ public void homePageDestinatarioVieneVisualizzataCorrettamente() { HeaderPFSection headerPFSection = new HeaderPFSection(this.hooks.getDriver()); headerPFSection.waitLoadHeaderDESection(); - if (!CookieConfig.isCookieEnabled()) { + if (!cookieConfig.isCookieEnabled()) { cookiesSection = new CookiesSection(this.hooks.getDriver()); if (cookiesSection.waitLoadCookiesPage()) { cookiesSection.selezionaAccettaTuttiButton(); @@ -280,10 +282,7 @@ public void homePageDestinatarioVieneVisualizzataCorrettamente() { throw new RuntimeException(e); } - // String variabileAmbiente = System.getProperty("environment"); - logger.info("ENVIROMENT...: "+ webDriverConfig.getEnvironment()); - - String urlChiamata = WebTool.getApiBaseUrl() + "notifications/received?"; + String urlChiamata = webDriverConfig.getBaseUrl() + "notifications/received?"; int codiceRispostaChiamataApi = getCodiceRispostaChiamataApi(urlChiamata); if (codiceRispostaChiamataApi != 200 && codiceRispostaChiamataApi != 0) { @@ -317,7 +316,7 @@ public void logoutDaPortaleDestinatario() { ComeVuoiAccederePage comeVuoiAccederePage = new ComeVuoiAccederePage(this.hooks.getDriver()); comeVuoiAccederePage.waitLoadComeVuoiAccederePage(); - if (!CookieConfig.isCookieEnabled()) { + if (!cookieConfig.isCookieEnabled()) { CookiesSection cookiesSection = new CookiesSection(this.hooks.getDriver()); if (cookiesSection.waitLoadCookiesPage()) { logger.info("banner dei cookies visualizzato"); diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/NotifichePersonaFisicaPagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/NotifichePersonaFisicaPagoPATest.java index 4bea09324..548371d25 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/NotifichePersonaFisicaPagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/NotifichePersonaFisicaPagoPATest.java @@ -23,6 +23,7 @@ import org.openqa.selenium.WebElement; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import java.io.File; import java.util.HashMap; @@ -42,6 +43,9 @@ public class NotifichePersonaFisicaPagoPATest { private final NotifichePFPage notifichePFPage = new NotifichePFPage(driver); private final DettaglioNotificaSection dettaglioNotifica = new DettaglioNotificaSection(driver); + @Autowired + private CookieConfig cookieConfig; + @When("Nella pagina Piattaforma Notifiche persona fisica si clicca sul bottone Notifiche") public void nellaPiattaformaDestinatarioCliccareSulBottoneNotifiche() { NotifichePFPage notifichePFPage = new NotifichePFPage(this.driver); @@ -53,7 +57,7 @@ public void paginaPiattaformaNotificheDestinatarioVieneVisualizzataCorrettamente HeaderPFSection headerPFSection = new HeaderPFSection(this.driver); headerPFSection.waitLoadHeaderDESection(); - if (!CookieConfig.isCookieEnabled()) { + if (!cookieConfig.isCookieEnabled()) { CookiesSection cookiesSection = new CookiesSection(this.driver); if (cookiesSection.waitLoadCookiesPage()) { cookiesSection.selezionaAccettaTuttiButton(); diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java index e616c381d..f0c97d73a 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java @@ -5,6 +5,7 @@ import io.cucumber.java.en.When; import it.pn.frontend.e2e.api.personaFisica.RecuperoOTPRecapiti; import it.pn.frontend.e2e.common.RecapitiDestinatarioPage; +import it.pn.frontend.e2e.config.WebDriverConfig; import it.pn.frontend.e2e.listeners.Hooks; import it.pn.frontend.e2e.listeners.NetWorkInfo; import it.pn.frontend.e2e.pages.destinatario.personaFisica.ITuoiRecapitiPage; @@ -19,6 +20,7 @@ import org.openqa.selenium.WebElement; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import java.util.List; import java.util.Map; @@ -28,6 +30,8 @@ public class RecapitiPersonaFisicaTest { private static final Logger logger = LoggerFactory.getLogger("InserimentoOTPSbagliato"); + @Autowired + private WebDriverConfig webDriverConfig; public static String OTP; private final WebDriver driver = Hooks.driver; private final RecapitiDestinatarioPage recapitiDestinatarioPage = new RecapitiDestinatarioPage(this.driver); @@ -86,7 +90,7 @@ public void nellaPaginaITuoiRecapitiSiCliccaSulBottoneConferma() { @And("Nella pagina I Tuoi Recapiti si visualizza correttamente il pop-up di inserimento OTP") public void nellaPaginaITuoiRecapitiSiVisualizzaCorrettamenteIlPopUpDiInserimentoOTP() { logger.info("Si visualizza correttamente il pop-up di inserimento OTP"); - String url = WebTool.getApiBaseUrl() + "addresses"; + String url = webDriverConfig.getBaseUrl() + "addresses"; recapitiDestinatarioPage.waitLoadPopUp(); WebTool.waitTime(3); if (verificaChiamataEmail(url)) { diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java index 982a65d2b..0171b06fc 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java @@ -26,6 +26,7 @@ import org.openqa.selenium.WebDriver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import java.util.HashMap; import java.util.List; @@ -45,6 +46,8 @@ public class LoginPGPagoPATest { private final String RAGIONE_SOCIALE_BALDASSARRE = "Comune di Milano"; private final String URL_LOGIN_PG = "https://imprese.dev.notifichedigitali.it/"; + @Autowired + private CookieConfig cookieConfig; @Given("Login Page persona giuridica viene visualizzata") public void loginPagePersonaGiuridicaVieneVisualizzata() { @@ -137,7 +140,7 @@ public void loginPortalePersonaGiuridicaTramiteRequestMethod() { this.driver.get(this.urlPersonaGiuridica.get("urlPortale")); - if (!CookieConfig.isCookieEnabled()) { + if (!cookieConfig.isCookieEnabled()) { CookiesSection cookiesPage = new CookiesSection(this.driver); if (cookiesPage.waitLoadCookiesPage()) { cookiesPage.selezionaAccettaTuttiButton(); @@ -292,7 +295,7 @@ public void loginConPersonaGiuridica(Map datiPG) { CookiesSection cookiesSection; - if (!CookieConfig.isCookieEnabled()) { + if (!cookieConfig.isCookieEnabled()) { cookiesSection = new CookiesSection(this.driver); if (cookiesSection.waitLoadCookiesPage()) { cookiesSection.selezionaAccettaTuttiButton(); @@ -366,7 +369,7 @@ public void loginPortalePersonaGiuridicaTramiteRequestMethod(String dpFile) { this.driver.get(this.urlPersonaGiuridica.get("urlPortale")); - if (!CookieConfig.isCookieEnabled()) { + if (!cookieConfig.isCookieEnabled()) { CookiesSection cookiesPage = new CookiesSection(this.driver); if (cookiesPage.waitLoadCookiesPage()) { cookiesPage.selezionaAccettaTuttiButton(); diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/NotifichePGPagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/NotifichePGPagoPATest.java index e5d6552b7..2c51d3062 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/NotifichePGPagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/NotifichePGPagoPATest.java @@ -5,6 +5,7 @@ import io.cucumber.java.en.When; import it.pn.frontend.e2e.common.DettaglioNotificaSection; import it.pn.frontend.e2e.common.NotificheDestinatarioPage; +import it.pn.frontend.e2e.config.WebDriverConfig; import it.pn.frontend.e2e.listeners.Hooks; import it.pn.frontend.e2e.listeners.NetWorkInfo; import it.pn.frontend.e2e.pages.destinatario.DestinatarioPage; @@ -24,6 +25,7 @@ import org.openqa.selenium.WebDriver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import java.awt.*; import java.io.File; @@ -45,6 +47,11 @@ public class NotifichePGPagoPATest { DeleghePGPagoPAPage deleghePage = new DeleghePGPagoPAPage(this.driver); Map personaGiuridica = new HashMap<>(); + @Autowired + private CookieConfig cookieConfig; + @Autowired + private WebDriverConfig webDriverConfig; + @And("Nella Home page persona giuridica si clicca su Send Notifiche Digitali") public void clickSendNotificheDigitali() { this.logger.info("Si clicca su Send Notifiche Digitali"); @@ -63,7 +70,7 @@ public void clickSendNotificheDigitali() { @And("Si visualizza correttamente la Pagina Notifiche persona giuridica {string}") public void siVisualizzaCorrettamenteLaPaginaNotifichePersonaGiuridica(String ragioneSociale) { - if (!CookieConfig.isCookieEnabled()) { + if (!cookieConfig.isCookieEnabled()) { CookiesSection cookiesSection = new CookiesSection(this.driver); if (cookiesSection.waitLoadCookiesPage()) { logger.info("Si accettano i cookies"); @@ -72,7 +79,7 @@ public void siVisualizzaCorrettamenteLaPaginaNotifichePersonaGiuridica(String ra } piattaformaNotifichePGPAPage.waitLoadPiattaformaNotificaPage(ragioneSociale); - String urlChiamata = WebTool.getApiBaseUrl() + "notifications/received?"; + String urlChiamata = webDriverConfig.getBaseUrl() + "notifications/received?"; int codiceRispostaChiamataApi = getCodiceRispostaChiamataApi(urlChiamata); if (codiceRispostaChiamataApi != 200 && codiceRispostaChiamataApi != 0) { @@ -188,7 +195,7 @@ private String getBearerToken() { List netWorkInfos = Hooks.netWorkInfos; String bearerToken = ""; for (NetWorkInfo netWorkInfo : netWorkInfos) { - String urlChiamata = WebTool.getApiBaseUrl() + "notifications/received?"; + String urlChiamata = webDriverConfig.getBaseUrl() + "notifications/received?"; if (netWorkInfo.getRequestUrl().contains(urlChiamata)) { bearerToken = netWorkInfo.getAuthorizationBearer(); } @@ -201,7 +208,7 @@ public void siRecuperaBearerToken(String dpFile) { DataPopulation dataPopulation = new DataPopulation(); personaGiuridica = dataPopulation.readDataPopulation(dpFile + ".yaml"); - if (!CookieConfig.isCookieEnabled()) { + if (!cookieConfig.isCookieEnabled()) { CookiesSection cookiesSection = new CookiesSection(this.driver); if (cookiesSection.waitLoadCookiesPage()) { logger.info("Si accettano i cookies"); @@ -393,7 +400,7 @@ public void siSelezionanoIlFileDaScaricare(String nomeFile) throws IOException { WebTool.waitTime(5); DownloadFile downloadFile = new DownloadFile(this.driver); - final String url = downloadFile.getUrl(WebTool.getApiBaseUrl() + "notifications/received/"); + final String url = downloadFile.getUrl(webDriverConfig.getBaseUrl() + "notifications/received/"); if (headless && url.isEmpty()) { logger.error("Non è stato recuperato url per il download per il link: " + nomeFile); Assertions.fail("Non è stato recuperato url per il download per il link: " + nomeFile); diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DisserviziAppPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DisserviziAppPATest.java index bbecc6997..52f7b2797 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DisserviziAppPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DisserviziAppPATest.java @@ -3,6 +3,7 @@ import io.cucumber.java.en.And; import io.cucumber.java.en.Then; import io.cucumber.java.en.When; +import it.pn.frontend.e2e.config.WebDriverConfig; import it.pn.frontend.e2e.listeners.Hooks; import it.pn.frontend.e2e.pages.destinatario.personaFisica.AccediAPiattaformaNotifichePage; import it.pn.frontend.e2e.pages.mittente.DisserviziAppPAPage; @@ -13,6 +14,7 @@ import org.openqa.selenium.WebDriver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import java.io.File; import java.io.IOException; @@ -23,6 +25,9 @@ public class DisserviziAppPATest { private final AccediAPiattaformaNotifichePage notifichePage = new AccediAPiattaformaNotifichePage(this.driver); private final DisserviziAppPAPage disserviziAppPAPage = new DisserviziAppPAPage(this.driver); + @Autowired + private WebDriverConfig webDriverConfig; + @When("Nella pagina Piattaforma Notifiche selezionare la voce 'stato della piattaforma'") public void nellaPaginaPiattaformaNotificheSelezionareLaVoceStatoDellaPiattaforma() { logger.info("Nella pagina Piattaforma Notifiche selezionare la voce 'stato della piattaforma'"); @@ -73,7 +78,7 @@ public void siScaricaAttestazioneOpponibileDisservizi() throws IOException { disserviziAppPAPage.clickLinkAttestazioniOpponibileDisservizi(0); WebTool.waitTime(5); String legalFactId = downloadFile.getLegalFactId(); - String urlFileAttestazioneOpponibile = WebTool.getApiBaseUrl() + "downtime/legal-facts/" + legalFactId; + String urlFileAttestazioneOpponibile = webDriverConfig.getBaseUrl() + "downtime/legal-facts/" + legalFactId; File file = new File(workingDirectory + "/src/test/resources/dataPopulation/downloadFileNotifica/destinatario/notificaN" + 0 + ".pdf"); downloadFile.downloadAttestazioneDisservizi(urlFileAttestazioneOpponibile, file, headless); diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java index d2c4ab602..633114351 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java @@ -4,6 +4,7 @@ import io.cucumber.java.en.Then; import io.cucumber.java.en.When; import it.pn.frontend.e2e.common.DettaglioNotificaSection; +import it.pn.frontend.e2e.config.WebDriverConfig; import it.pn.frontend.e2e.listeners.Hooks; import it.pn.frontend.e2e.pages.mittente.DisserviziAppPAPage; import it.pn.frontend.e2e.pages.mittente.PiattaformaNotifichePage; @@ -17,6 +18,7 @@ import org.openqa.selenium.WebDriver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import java.io.File; import java.util.HashMap; @@ -31,6 +33,9 @@ public class DownloadFileMittentePagoPATest { private Map datiNotifica = new HashMap<>(); private DownloadFile downloadFile; + @Autowired + private WebDriverConfig webDriverConfig; + @When("Nella pagina Piattaforma Notifiche si clicca sulla notifica restituita") public void clickNotificaRestituita() { logger.info("Si clicca sulla notifica restituita"); @@ -83,7 +88,7 @@ public void downloadECheckFile() { final String filepath = workingDirectory + "/src/test/resources/dataPopulation/downloadFileNotifica/mittente/notificaN"; - final String urlDocumenti = WebTool.getApiBaseUrl() + "notifications/sent/" + codiceIUN + "/documents/"; + final String urlDocumenti = webDriverConfig.getBaseUrl() + "notifications/sent/" + codiceIUN + "/documents/"; final String urlDocumentiAllegati = downloadFile.getUrl(urlDocumenti); File file = new File(filepath + count + ".pdf"); @@ -107,7 +112,7 @@ public void downloadECheckFile() { } catch (InterruptedException e) { throw new RuntimeException(e); } - final String url = WebTool.getApiBaseUrl() + "notifications/sent/" + codiceIUN + "/documents/AAR?documentId=safestorage:"; + final String url = webDriverConfig.getBaseUrl() + "notifications/sent/" + codiceIUN + "/documents/AAR?documentId=safestorage:"; final String urlAvvenutaRicezione = downloadFile.getUrl(url); if (headless && urlAvvenutaRicezione.isEmpty()) { String testoLink = dettaglioNotificaMittenteSection.getTextLinkAvvenutaRicezione(i); @@ -133,7 +138,7 @@ public void downloadECheckFile() { } catch (InterruptedException e) { throw new RuntimeException(e); } - final String urlFileAttestazioneOppponibile = downloadFile.getUrl(WebTool.getApiBaseUrl()); + final String urlFileAttestazioneOppponibile = downloadFile.getUrl(webDriverConfig.getBaseUrl()); if (headless && urlFileAttestazioneOppponibile.isEmpty()) { String testoLink = dettaglioNotificaSection.getTextLinkAttestazioniOpponibili(i); logger.error("Non è stato recuperato url per il download per il link: " + testoLink); @@ -186,7 +191,7 @@ public void downloadDocumentiAllegati() { } final String filepath = workingDirectory + "/src/test/resources/dataPopulation/downloadFileNotifica/mittente/notificaN"; - final String urlDocumenti = WebTool.getApiBaseUrl() + "notifications/sent/" + codiceIUN + "/attachments/documents/0"; + final String urlDocumenti = webDriverConfig.getBaseUrl() + "notifications/sent/" + codiceIUN + "/attachments/documents/0"; final String urlDocumentiAllegati = downloadFile.getUrl(urlDocumenti); File file = new File(filepath + count + "PN_NOTIFICATION_ATTACHMENTS.pdf"); @@ -321,7 +326,7 @@ public void downloadAttestazioniOpponibili() { } catch (InterruptedException e) { throw new RuntimeException(e); } - final String urlFileAttestazioneOpponibile = downloadFile.getUrl(WebTool.getApiBaseUrl()); + final String urlFileAttestazioneOpponibile = downloadFile.getUrl(webDriverConfig.getBaseUrl()); if (urlFileAttestazioneOpponibile.isEmpty()) { String testoLink = dettaglioNotificaSection.getTextLinkAttestazioniOpponibili(i); logger.error("Non è stato recuperato l'URL per il download per il link: " + testoLink); @@ -352,7 +357,7 @@ public void siSelezionanoIlFileDaScaricare(String nomeFile) { WebTool.waitTime(5); downloadFile = new DownloadFile(this.driver); - final String url = downloadFile.getUrl(WebTool.getApiBaseUrl() + "notifications/sent/"); + final String url = downloadFile.getUrl(webDriverConfig.getBaseUrl() + "notifications/sent/"); if (headless && url.isEmpty()) { logger.error("Non è stato recuperato url per il download per il link: " + nomeFile); Assertions.fail("Non è stato recuperato url per il download per il link: " + nomeFile); diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/LoginMittentePagoPA.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/LoginMittentePagoPA.java index d96903aaa..d027d7447 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/LoginMittentePagoPA.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/LoginMittentePagoPA.java @@ -8,6 +8,7 @@ import it.pn.frontend.e2e.api.mittente.SpidLoginMittente; import it.pn.frontend.e2e.api.mittente.SpidTestEnvWestEuropeAzureContainerIoContinueResponse; import it.pn.frontend.e2e.api.mittente.SpidTestEnvWestEuropeAzureContainerIoLogin; +import it.pn.frontend.e2e.config.WebDriverConfig; import it.pn.frontend.e2e.listeners.Hooks; import it.pn.frontend.e2e.pages.mittente.*; import it.pn.frontend.e2e.section.CookiesSection; @@ -21,6 +22,7 @@ import org.openqa.selenium.WebDriver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import java.util.Map; import java.util.concurrent.TimeUnit; @@ -33,6 +35,12 @@ public class LoginMittentePagoPA { private Map datiMittente; private Map urlMittente; + @Autowired + private CookieConfig cookieConfig; + + @Autowired + private WebDriverConfig webDriverConfig; + @Given("Login Page mittente {string} viene visualizzata") public void loginPageMittenteVieneVisualizzata(String datiMittenteFile) { logger.info("Si recupera l'ambiente e si visualizza la pagina di login"); @@ -68,7 +76,8 @@ public void loginPageMittenteVieneVisualizzata(Map datiMittenteTa @Given("PA - Si effettua la login tramite token exchange, e viene visualizzata la dashboard") public void loginMittenteConTokenExchange() { DataPopulation dataPopulation = new DataPopulation(); - String environment = System.getProperty("environment"); + // String environment = System.getProperty("environment"); + String environment = webDriverConfig.getEnvironment(); String token = ""; switch (environment) { case "dev" -> @@ -106,7 +115,7 @@ public void loginConMittente(String datiMittenteFile) { preAccediAreaRiservataPAPage.selezionaProcediAlLoginButton(); if (driver.getCurrentUrl().contains("https://uat.selfcare.pagopa.it/") || - !CookieConfig.isCookieEnabled()) { + !cookieConfig.isCookieEnabled()) { logger.info("cookies start"); CookiesSection cookiesPage; cookiesPage = new CookiesSection(this.driver); @@ -151,7 +160,7 @@ public void loginConMittente(Map datiMittenteFile) { preAccediAreaRiservataPAPage.selezionaProcediAlLoginButton(); if (driver.getCurrentUrl().contains("https://uat.selfcare.pagopa.it/") || - !CookieConfig.isCookieEnabled()) { + !cookieConfig.isCookieEnabled()) { logger.info("cookies start"); CookiesSection cookiesPage; cookiesPage = new CookiesSection(this.driver); @@ -383,7 +392,7 @@ public void logoutDaPortaleMittente() { headerPASection.waitLoadHeaderSection(); headerPASection.selezionaEsciButton(); - if (!CookieConfig.isCookieEnabled()) { + if (!cookieConfig.isCookieEnabled()) { CookiesSection cookiesSection = new CookiesSection(this.driver); if (cookiesSection.waitLoadCookiesPage()) { cookiesSection.selezionaAccettaTuttiButton(); diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java index 690dee8db..7fd3b5258 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java @@ -6,6 +6,7 @@ import io.cucumber.java.en.Then; import io.cucumber.java.en.When; import it.pn.frontend.e2e.api.mittente.AccettazioneRichiestaNotifica; +import it.pn.frontend.e2e.config.WebDriverConfig; import it.pn.frontend.e2e.listeners.Hooks; import it.pn.frontend.e2e.listeners.NetWorkInfo; import it.pn.frontend.e2e.model.enums.AppPortal; @@ -28,6 +29,7 @@ import org.openqa.selenium.WebElement; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import java.io.File; import java.text.DateFormat; @@ -66,6 +68,11 @@ public class NotificaMittentePagoPATest { @Setter private String ApiKey; + @Autowired + private CookieConfig cookieConfig; + @Autowired + private WebDriverConfig webDriverConfig; + @When("Nella Home page mittente cliccare sul bottone Gestisci di Piattaforma Notifiche") public void nellaHomePageMittenteCliccareSuGestisciDiPiattaforma() { AreaRiservataPAPage areaRiservataPAPage = new AreaRiservataPAPage(this.driver); @@ -91,7 +98,7 @@ public void siVisualizzaCorrettamenteLaPaginaPiattaformaNotifiche() { throw new RuntimeException(e); } - String urlChiamata = WebTool.getApiBaseUrl() + "notifications/sent?"; + String urlChiamata = webDriverConfig.getBaseUrl() + "notifications/sent?"; int codiceRispostaChiamataApi = getCodiceRispostaChiamataApi(urlChiamata); if (codiceRispostaChiamataApi != 200 && codiceRispostaChiamataApi != 0) { logger.error("TA_QA: La chiamata, " + urlChiamata + " è andata in errore"); @@ -120,7 +127,7 @@ public String getNumeroProtocollo() { this.piattaformaNotifichePage.siCambiaIlNumeroElementiVisualizzatiAttraversoIlFiltro(); WebTool.waitTime(5); - String urlNotifiche = WebTool.getApiBaseUrl() + "notifications/"; + String urlNotifiche = webDriverConfig.getBaseUrl() + "notifications/"; for (NetWorkInfo netWorkInfo : netWorkInfos) { if (netWorkInfo.getRequestUrl().contains(urlNotifiche) && netWorkInfo.getRequestUrl().endsWith("size=10")) { String responseBody = netWorkInfo.getResponseBody(); @@ -433,7 +440,7 @@ public void verificaDelloStatoDellaNotificaComeDepositata(String statoNotifica) @And("Nella pagina Piattaforma Notifiche accetta i Cookies") public void nellaPaginaPiattaformaNotificheAccettaICookies() { - if (!CookieConfig.isCookieEnabled()) { + if (!cookieConfig.isCookieEnabled()) { CookiesSection cookiesSection = new CookiesSection(this.driver); cookiesSection.waitLoadCookiesPage(); cookiesSection.selezionaAccettaTuttiButton(); @@ -769,7 +776,7 @@ public void verificaDelloStatoDellaNotificaInviataTramitePecCome(String statoNot for (int i = 0; i < 12; i++) { if (i >= 1) { piattaformaNotifichePage.aggiornamentoPagina(); - if (!CookieConfig.isCookieEnabled()) { + if (!cookieConfig.isCookieEnabled()) { if (cookiesSection.waitLoadCookiesPage()) { cookiesSection.selezionaAccettaTuttiButton(); } @@ -986,7 +993,7 @@ public void verificaDelloStatoDellaNotificaPersonaGiuridicaComeDepositata(String for (int i = 0; i < 12; i++) { if (i >= 1) { piattaformaNotifichePage.aggiornamentoPagina(); - if (!CookieConfig.isCookieEnabled()) { + if (!cookieConfig.isCookieEnabled()) { if (cookiesSection.waitLoadCookiesPage()) { cookiesSection.selezionaAccettaTuttiButton(); } @@ -1509,7 +1516,7 @@ public void siSelezionaUnDestinatario() { */ protected EsitoNotifica siVerificaEsitoNotifica(String dpFile) { logger.info("si verifica se la notifica è stata accettata o rifiutata"); - final String urlNotificationRequest = WebTool.getApiBaseUrl() + "notifications/sent"; + final String urlNotificationRequest = webDriverConfig.getBaseUrl() + "notifications/sent"; final String urlRichiestaNotifica = "https://api." + variabileAmbiente + ".notifichedigitali.it/delivery/v2.3/requests/"; AccettazioneRichiestaNotifica accettazioneRichiestaNotifica = new AccettazioneRichiestaNotifica(); String codiceApi; From d14258c2a58d13a43cade0b9c678bdc492d1f119 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Thu, 24 Oct 2024 10:44:30 +0200 Subject: [PATCH 116/212] Refactor System properties --- .../pn/frontend/e2e/common/HelpdeskPage.java | 7 +- .../frontend/e2e/config/CustomHttpClient.java | 8 +- .../frontend/e2e/model/enums/AppPortal.java | 10 +- .../frontend/e2e/model/enums/TokenLogin.java | 8 +- .../PiattaformaNotifichePGPAPage.java | 7 +- .../RecapitiPersonaFisicaTest.java | 99 ++++++++++--------- .../mittente/LoginMittentePagoPA.java | 6 +- .../mittente/NotificaMittentePagoPATest.java | 8 +- 8 files changed, 92 insertions(+), 61 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/common/HelpdeskPage.java b/src/main/java/it/pn/frontend/e2e/common/HelpdeskPage.java index 6eea6e45e..c4e8683fc 100644 --- a/src/main/java/it/pn/frontend/e2e/common/HelpdeskPage.java +++ b/src/main/java/it/pn/frontend/e2e/common/HelpdeskPage.java @@ -1,5 +1,6 @@ package it.pn.frontend.e2e.common; +import it.pn.frontend.e2e.config.WebDriverConfig; import it.pn.frontend.e2e.model.enums.Disservice; import it.pn.frontend.e2e.model.enums.Status; import it.pn.frontend.e2e.utility.WebTool; @@ -30,6 +31,7 @@ import java.util.stream.Stream; import net.lingala.zip4j.ZipFile; +import org.springframework.beans.factory.annotation.Autowired; public class HelpdeskPage extends BasePage { @@ -73,6 +75,9 @@ public class HelpdeskPage extends BasePage { private String zipPassword; private String codiceIdentificativoPF; + @Autowired + private WebDriverConfig webDriverConfig; + public HelpdeskPage(WebDriver driver) { super(driver); } @@ -410,7 +415,7 @@ public void checkMessaggioDiErroreCF() { } public void checkZipLink() throws IOException, AWTException { - boolean headless = System.getProperty("headless").equalsIgnoreCase("true"); + boolean headless = webDriverConfig.getHeadless().equalsIgnoreCase("true"); if (!headless) { logger.info("controllo esistenza link per scaricare zip"); By zipLink = By.xpath("//a[contains(text(),'Download')]"); diff --git a/src/main/java/it/pn/frontend/e2e/config/CustomHttpClient.java b/src/main/java/it/pn/frontend/e2e/config/CustomHttpClient.java index 6e2178930..dc89928a9 100644 --- a/src/main/java/it/pn/frontend/e2e/config/CustomHttpClient.java +++ b/src/main/java/it/pn/frontend/e2e/config/CustomHttpClient.java @@ -17,6 +17,7 @@ import org.apache.hc.core5.http.io.entity.EntityUtils; import org.apache.hc.core5.http.io.entity.StringEntity; import org.apache.hc.core5.http.io.support.ClassicRequestBuilder; +import org.springframework.beans.factory.annotation.Autowired; import java.io.File; import java.io.IOException; @@ -39,6 +40,9 @@ public class CustomHttpClient { @Getter private String apiKey; + @Autowired + private WebDriverConfig webDriverConfig; + private final CloseableHttpClient httpClient; private ClassicHttpRequest httpRequest; @@ -246,7 +250,7 @@ public ResponseType sendHttpGetRequest(String endpoint, Map head } public String getJwtToken(String TokenExchange) throws IOException { - String env = System.getProperty("environment"); + String env = webDriverConfig.getEnvironment(); CloseableHttpClient client = HttpClients.createDefault(); this.httpRequest = ClassicRequestBuilder .post("https://webapi." + env + ".notifichedigitali.it/token-exchange") @@ -276,7 +280,7 @@ public String getJwtToken(String TokenExchange) throws IOException { } public ResponseType sendHttpDeleteRequest(String endpoint, Map headers, Class responseType) throws IOException { - String env = System.getProperty("environment"); + String env = webDriverConfig.getEnvironment(); try (CloseableHttpClient client = HttpClients.createDefault()) { this.httpRequest = ClassicRequestBuilder .delete(endpoint) diff --git a/src/main/java/it/pn/frontend/e2e/model/enums/AppPortal.java b/src/main/java/it/pn/frontend/e2e/model/enums/AppPortal.java index 6d85d09a3..2726afd5e 100644 --- a/src/main/java/it/pn/frontend/e2e/model/enums/AppPortal.java +++ b/src/main/java/it/pn/frontend/e2e/model/enums/AppPortal.java @@ -1,5 +1,8 @@ package it.pn.frontend.e2e.model.enums; +import it.pn.frontend.e2e.config.WebDriverConfig; +import org.springframework.beans.factory.annotation.Autowired; + public enum AppPortal { PA("https://selfcare.", "#selfCareToken=", TokenLogin.PA_TOKEN.getToken()), PF("https://cittadini.", "#token=", TokenLogin.PF_DELEGATE_TOKEN.getToken()), @@ -7,13 +10,16 @@ public enum AppPortal { HELPDESK("https://helpdesk."); public final String url; + @Autowired + private WebDriverConfig webDriverConfig; + private AppPortal(String url, String paramToken, String token) { - String env = System.getProperty("environment"); + String env = webDriverConfig.getEnvironment(); this.url = url + env + ".notifichedigitali.it/" + paramToken + token; } private AppPortal(String url) { - String env = System.getProperty("environment"); + String env = webDriverConfig.getEnvironment(); this.url = url + env + ".notifichedigitali.it/"; } } diff --git a/src/main/java/it/pn/frontend/e2e/model/enums/TokenLogin.java b/src/main/java/it/pn/frontend/e2e/model/enums/TokenLogin.java index a54bba3b8..c7701a8c8 100644 --- a/src/main/java/it/pn/frontend/e2e/model/enums/TokenLogin.java +++ b/src/main/java/it/pn/frontend/e2e/model/enums/TokenLogin.java @@ -1,5 +1,8 @@ package it.pn.frontend.e2e.model.enums; +import it.pn.frontend.e2e.config.WebDriverConfig; +import org.springframework.beans.factory.annotation.Autowired; + public enum TokenLogin { PF_DELEGATE_TOKEN( "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjBBS3RoQjlYNS1fNHRWUGxNRmZUTHdWSkt1akxuSEhkODdSUkdtX1VTR0EifQ.eyJuYW1lIjoiR2FpbyBHaXVsaW8iLCJmYW1pbHlfbmFtZSI6IkNlc2FyZSIsInVpZCI6ImEwMWI2MmQ0LWUzZjgtNDhmMy1hNGQ4LWNmNjI4YTM0Yjc0NSIsImZpc2NhbF9udW1iZXIiOiJDU1JHR0w0NEwxM0g1MDFFIiwic3BpZF9sZXZlbCI6Imh0dHBzOi8vd3d3LnNwaWQuZ292Lml0L1NwaWRMMiIsImZyb21fYWEiOmZhbHNlLCJhdWQiOiJjaXR0YWRpbmkuZGV2Lm5vdGlmaWNoZWRpZ2l0YWxpLml0IiwibGV2ZWwiOiJMMiIsImlhdCI6MTY5OTg4NjU3OCwiZXhwIjoyMDE1NDQ5MjAwLCJpc3MiOiJodHRwczovL2h1Yi1sb2dpbi5zcGlkLmRldi5ub3RpZmljaGVkaWdpdGFsaS5pdCIsImp0aSI6Il9iMGI5MGYzNjc2ZTA1MjYxMzAzYyJ9.PaTdY6Hl8RmIJdmobl0ahjawsWdmXrehnWEzRgmQT4Wf7i4Lvz8h_FgXUtt9TB8rZ1t92j2XrqOip1Pa_fSXAUv0Gx4wgb1W4ll74iPs7Mf1sXsZxFQyrd_XwTcvnRYHalAsOizbINNckm-NB0Vo-bRzlgpqSN0dnZ2r9lYSryf5H-B7214mlXvmQu-QD64iyLibdmU8cFim9E5A3hIT9vCGdSGZBsLGkC_oYhmMGLz-N4UeChJid98c37mI4EGpFMwJ7sifDgggCzHbaQBdBKlNPzRIosGZLju6zILzZsEpVkIhYNi5suf5sJeHR56adXKlYIkMWUc8Gdh5g5YskA", @@ -20,13 +23,16 @@ public enum TokenLogin { private final String devToken; private final String testToken; + @Autowired + private WebDriverConfig webDriverConfig; + private TokenLogin(String devToken, String testToken) { this.devToken = devToken; this.testToken = testToken; } public String getToken() { - String env = System.getProperty("environment"); + String env = webDriverConfig.getEnvironment(); return env.equalsIgnoreCase("dev") ? devToken : testToken; } } diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/PiattaformaNotifichePGPAPage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/PiattaformaNotifichePGPAPage.java index a94b76582..d4b73a892 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/PiattaformaNotifichePGPAPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/PiattaformaNotifichePGPAPage.java @@ -3,6 +3,7 @@ import it.pn.frontend.e2e.common.BasePage; import it.pn.frontend.e2e.common.DettaglioNotificaSection; import it.pn.frontend.e2e.common.HelpdeskPage; +import it.pn.frontend.e2e.config.WebDriverConfig; import it.pn.frontend.e2e.section.mittente.DettaglioNotificaMittenteSection; import it.pn.frontend.e2e.utility.DownloadFile; import it.pn.frontend.e2e.utility.WebTool; @@ -14,6 +15,7 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import java.io.IOException; import java.net.URL; @@ -71,6 +73,9 @@ public class PiattaformaNotifichePGPAPage extends BasePage { @FindBy(xpath = "//button[contains(text(), 'Ricevuta di consegna')]") WebElement ricevutaDiConsegnaButton; + @Autowired + private WebDriverConfig webDriverConfig; + public PiattaformaNotifichePGPAPage(WebDriver driver) { super(driver); } @@ -225,7 +230,7 @@ public void checkBoxModelloF24PG() { } public void clickRicevutaDiConsegna() throws AWTException, IOException { - boolean headless = System.getProperty("headless").equalsIgnoreCase("true"); + boolean headless = webDriverConfig.getHeadless().equalsIgnoreCase("true"); if (!headless) { logger.info("controllo esistenza bottone per scaricare zip"); getWebDriverWait(10).withMessage("Il bottone Ricevuta di consegna non cliccabile").until(ExpectedConditions.elementToBeClickable(ricevutaDiConsegnaButton)); diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java index f0c97d73a..bbba09aae 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java @@ -7,6 +7,7 @@ import it.pn.frontend.e2e.common.RecapitiDestinatarioPage; import it.pn.frontend.e2e.config.WebDriverConfig; import it.pn.frontend.e2e.listeners.Hooks; +import it.pn.frontend.e2e.listeners.HooksNew; import it.pn.frontend.e2e.listeners.NetWorkInfo; import it.pn.frontend.e2e.pages.destinatario.personaFisica.ITuoiRecapitiPage; import it.pn.frontend.e2e.stepDefinitions.common.BackgroundTest; @@ -32,38 +33,41 @@ public class RecapitiPersonaFisicaTest { @Autowired private WebDriverConfig webDriverConfig; + @Autowired + private HooksNew hooks; + public static String OTP; - private final WebDriver driver = Hooks.driver; - private final RecapitiDestinatarioPage recapitiDestinatarioPage = new RecapitiDestinatarioPage(this.driver); + // private final WebDriver driver = hooks.getDriver(); + private final RecapitiDestinatarioPage recapitiDestinatarioPage = new RecapitiDestinatarioPage(hooks.getDriver()); private final DataPopulation dataPopulation = new DataPopulation(); - private final List netWorkInfos = Hooks.netWorkInfos; + // private final List netWorkInfos = Hooks.netWorkInfos; private final NotificaMittentePagoPATest notificaMittentePagoPATest = new NotificaMittentePagoPATest(); - private final ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(this.driver); + private final ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(hooks.getDriver()); @When("Nella pagina Piattaforma Notifiche persona fisica si clicca sul bottone I Tuoi Recapiti") public void nellaPaginaPiattaformaNotifichePersonaFisicaSiCliccaSulBottoneITuoiRecapiti() { logger.info("Si cerca di cliccare il bottone I Tuoi Recapiti"); - ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(driver); + ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(hooks.getDriver()); iTuoiRecapitiPage.iTuoiRecapitiButtonClick(); } @And("Si visualizza correttamente la pagina I Tuoi Recapiti") public void siVisualizzaCorrettamenteLaPaginaITuoiRecapiti() { logger.info("Si controlla che si visualizza correttamente la pagina I Tuoi Recapiti"); - ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(this.driver); + ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(hooks.getDriver()); iTuoiRecapitiPage.waitLoadITuoiRecapitiPage(); } @And("Nella pagina I Tuoi Recapiti si visualizza correttamente la sezione 'E-mail o numero di cellulare'") public void nellaPaginaITuoiRecapitiSiVisualizzaCorrettamenteLaSezioneEmailONumeroDiCellulare() { logger.info("Si controlla che si visualizza correttamente la sezione 'E-mail o numero di cellulare'"); - ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(this.driver); + ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(hooks.getDriver()); iTuoiRecapitiPage.waitLoadCourtesyContacts(); } @And("Nella pagina I Tuoi Recapiti si inserisce la PEC {string}") - public void nellaPaginaITuoiRecapitiSiInserisceLaPECDelDestinatario(String emailPec ) { + public void nellaPaginaITuoiRecapitiSiInserisceLaPECDelDestinatario(String emailPec) { logger.info("Si inserisce la email PEC"); recapitiDestinatarioPage.insertEmailPEC(emailPec); } @@ -102,7 +106,7 @@ public void nellaPaginaITuoiRecapitiSiVisualizzaCorrettamenteIlPopUpDiInseriment } private boolean verificaChiamataEmail(String url) { - for (NetWorkInfo info : netWorkInfos) { + for (NetWorkInfo info : hooks.getNetWorkInfos()) { if (info.getRequestUrl().contains(url) && info.getResponseStatus().equals("200")) { logger.info("La chiamata per inviare email é utilizzabile"); return true; @@ -169,18 +173,18 @@ public void nellaPaginaITuoiRecapitiSiInserisceLaPECErrata(String pecErrata) { public void nellaPaginaITuoiRecapitiSiVisualizzaCorrettamenteIlMessaggioDiPecErrata() { WebTool.waitTime(3); String errorMessageRead = recapitiDestinatarioPage.getPecErrorMessage(); - Assertions.assertEquals( "Indirizzo PEC non valido", errorMessageRead, "messaggio di errore letto : '" + errorMessageRead + "' non è uguale a : Indirizzo PEC non valido"); + Assertions.assertEquals("Indirizzo PEC non valido", errorMessageRead, "messaggio di errore letto : '" + errorMessageRead + "' non è uguale a : Indirizzo PEC non valido"); } @And("Si controlla che il tasto conferma sia bloccato") public void nellaPaginaITuoiRecapitiSiControllaCheIlTastoConfermaSiaBloccato() { - Assertions.assertTrue( recapitiDestinatarioPage.verificaBottoneConfermaDisabilitato(),"il buttone Conferma non è disabilitato"); + Assertions.assertTrue(recapitiDestinatarioPage.verificaBottoneConfermaDisabilitato(), "il buttone Conferma non è disabilitato"); } @And("Si controlla che il tasto avvisami via email sia bloccato") public void nellaPaginaITuoiRecapitiSiControllaCheIlTastoAvvisamiViaEmailSiaBloccato() { - Assertions.assertTrue(recapitiDestinatarioPage.avvisamiViaEmailIsDisabled(),"il bottone avvisami via email non è disabilitato"); + Assertions.assertTrue(recapitiDestinatarioPage.avvisamiViaEmailIsDisabled(), "il bottone avvisami via email non è disabilitato"); } @And("Si inserisce l'email della {string} e si clicca sul bottone avvisami via email") @@ -208,7 +212,7 @@ public void siVisualizzaCorrettamenteIlPopUpESiCliccaSuConferma() { logger.info("click pop-up conferma email"); //Assert.assertFalse("il popup Conferma email non si visualizza", recapitiDestinatarioPage.verificaPopUpConfermaEmail()); - // recapitiDestinatarioPage.clickHoCapitoCheckBoxPopup(); + // recapitiDestinatarioPage.clickHoCapitoCheckBoxPopup(); recapitiDestinatarioPage.confermaEmailPopup(); } @@ -221,7 +225,7 @@ public void nellaPaginaITuoiRecapitiSiInserisceIlNumeroDiTelefonoDelPF(String dp Map personaFisica = dataPopulation.readDataPopulation(dpFile + ".yaml"); String phoneNumber = personaFisica.get("telefono").toString(); - ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(this.driver); + ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(hooks.getDriver()); iTuoiRecapitiPage.insertTelephoneNumber(phoneNumber); iTuoiRecapitiPage.clickAvvisamiViaSMS(); } @@ -231,7 +235,7 @@ public void nellaPaginaITuoiRecapitiSiInserisceIlNumeroDiTelefonoPF(String phone logger.info("Si inserisce il numero di telefono PF"); - ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(this.driver); + ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(hooks.getDriver()); iTuoiRecapitiPage.insertTelephoneNumber(phoneNumber); iTuoiRecapitiPage.clickAvvisamiViaSMS(); @@ -239,13 +243,13 @@ public void nellaPaginaITuoiRecapitiSiInserisceIlNumeroDiTelefonoPF(String phone @And("Nella pagina I Tuoi Recapiti si inserisce il numero di telefono errato {string}") public void nellaPaginaITuoiRecapitiSiInserisceIlNumeroDiTelefonoErrato(String numeroErrato) { - ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(this.driver); + ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(hooks.getDriver()); iTuoiRecapitiPage.insertTelephoneNumber(numeroErrato); } @Then("Nella pagina I Tuoi Recapiti si visualizza correttamente il messaggio di numero di telefono errato") public void nellaPaginaITuoiRecapitiSiVisualizzaCorrettamenteIlMessaggioDiNumeroDiTelefonoErrato() { - ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(this.driver); + ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(hooks.getDriver()); String errorMessageRead = iTuoiRecapitiPage.getPhoneErrorMessage(); Assertions.assertEquals("Numero di cellulare non valido", errorMessageRead, "messaggio di errore letto : '" + errorMessageRead + "' non è uguale a : Numero di cellulare non valido"); @@ -253,7 +257,7 @@ public void nellaPaginaITuoiRecapitiSiVisualizzaCorrettamenteIlMessaggioDiNumero @And("Nella pagina I Tuoi Recapiti si controlla che il tasto avvisami via sms sia bloccato") public void nellaPaginaITuoiRecapitiSiControllaCheIlTastoAvvisamiViaSmsSiaBloccato() { - ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(this.driver); + ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(hooks.getDriver()); Assertions.assertTrue(iTuoiRecapitiPage.avvisamiViaSMSIsDisabled(), "il bottone avvisami via SMS non è disabilitato"); } @@ -281,7 +285,7 @@ public void nellaPaginaITuoiRecapitiSiRecuperaIlCodiceOTPTramiteChiamataRequest( results = recuperoOTPRecapiti.runRecuperoOTPRecapiti(url); if (results) { String OTP = recuperoOTPRecapiti.getResponseBody(); - logger.info("OTTTPPP"+OTP); + logger.info("OTTTPPP" + OTP); personaFisica.put("OTPpec", OTP); dataPopulation.writeDataPopulation(dpFile + ".yaml", personaFisica); } else { @@ -295,7 +299,7 @@ public void nellaPaginaITuoiRecapitiSiRecuperaIlCodiceOTPTramiteChiamataRequest( public void nellaPaginaITuoiRecapitiSiRecuperaIlCodiceOTPTramiteChiamataRequestDellEmailEVieneInserito(String email) { RecuperoOTPRecapiti recuperoOTPRecapiti = new RecuperoOTPRecapiti(); - ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(this.driver); + ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(hooks.getDriver()); String startUrl = "http://localhost:8887/"; String url = startUrl + recuperoOTPRecapiti.getUrlEndPoint() + email; @@ -337,7 +341,7 @@ public void nellaPaginaITuoiRecapitiSiInserisceIlCodiceOTP(String dpFile) { logger.info("Si inserisce il codice OTP di verifica"); String otp = dataPopulation.readDataPopulation(dpFile + ".yaml").get("OTPpec").toString(); - ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(this.driver); + ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(hooks.getDriver()); iTuoiRecapitiPage.sendOTP(otp); recapitiDestinatarioPage.confermaButtonClickPopUp(); if (recapitiDestinatarioPage.waitMessaggioErrore()) { @@ -350,7 +354,7 @@ public void nellaPaginaITuoiRecapitiSiInserisceIlCodiceOTP(String dpFile) { @And("Nella pagina I Tuoi Recapiti si inserisce il codice OTP") public void nellaPaginaITuoiRecapitiSiInserisceIlCodiceOTP() { logger.info("Si inserisce il codice OTP di verifica"); - ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(this.driver); + ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(hooks.getDriver()); WebTool.waitTime(2); iTuoiRecapitiPage.sendOTP(OTP); recapitiDestinatarioPage.confermaButtonClickPopUp(); @@ -361,11 +365,11 @@ public void nellaPaginaITuoiRecapitiSiInserisceIlCodiceOTP() { } @And("Si verifica se popup conferma presente") - public void verificaPopupConferma(){ + public void verificaPopupConferma() { if (recapitiDestinatarioPage.siVisualizzaPopUpConferma()) { logger.info("Si clicca su conferma nel pop-up"); recapitiDestinatarioPage.clickConfermaButton(); - driver.navigate().refresh(); + hooks.getDriver().navigate().refresh(); } } @@ -381,11 +385,11 @@ public void nellaPaginaITuoiRecapitiSiInserisceIlCodiceOTPScaduto() throws Inter public void nellaPaginaITuoiRecapitiSiControllaCheLaPecSiaStataInseritaCorrettamente() { logger.info("Si controlla che la pec sia stata inserita correttamente"); WebTool.waitTime(15); - driver.navigate().refresh(); - if (!recapitiDestinatarioPage.verificaPecAssociata()) { - logger.error("Pec non associata con errore"); - Assertions.fail("Pec non associata con errore"); - } + hooks.getDriver().navigate().refresh(); + if (!recapitiDestinatarioPage.verificaPecAssociata()) { + logger.error("Pec non associata con errore"); + Assertions.fail("Pec non associata con errore"); + } } @And("Nella pagina I Tuoi Recapiti si recupera l'OTP della Email tramite request method {string}") @@ -467,7 +471,7 @@ public void nellaPaginaITuoiRecapitiSiInserisceLOTPRicevutoViaEmail(String dpFil logger.info("Si inserisce il codice OTP di verifica"); String otp = dataPopulation.readDataPopulation(dpFile + ".yaml").get("OTPmail").toString(); - ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(this.driver); + ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(hooks.getDriver()); iTuoiRecapitiPage.sendOTP(otp); recapitiDestinatarioPage.confermaButtonClickPopUp(); } @@ -484,7 +488,7 @@ public void nellaPaginaITuoiRecapitiSiControllaCheLaEmailSiaPresente() { @And("Nella pagina I Tuoi Recapiti si controlla che ci sia già una Email") public void nellaPaginaITuoiRecapitiSiControllaCheCiSiaGiaUnaEmail() { logger.info("Si controlla che che ci sia già una Email"); - ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(driver); + ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(hooks.getDriver()); iTuoiRecapitiPage.waitLoadITuoiRecapitiPage(); Map personaFisica = dataPopulation.readDataPopulation("personaFisica.yaml"); @@ -518,7 +522,7 @@ public void nellaPaginaITuoiRecapitiSiControllaCheCiSiaGiaUnaEmail() { @And("Nella pagina I Tuoi Recapiti si clicca sul bottone modifica") public void nellaPaginaITuoiRecapitiSiCliccaSulBottoneModifica() { logger.info("Si clicca sul bottone modifica"); - ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(this.driver); + ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(hooks.getDriver()); iTuoiRecapitiPage.waitLoadITuoiRecapitiPage(); recapitiDestinatarioPage.clickSuModifica(); } @@ -527,7 +531,7 @@ public void nellaPaginaITuoiRecapitiSiCliccaSulBottoneModifica() { public void nellaPaginaITuoiRecapitiSiInserisceLaNuovaEmailDelPFECliccaSulBottoneAvvisamiViaEmail(String dpFile) { logger.info("Si inserisce la nuova Email e si clicca sul bottone avvisami via email"); - ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(this.driver); + ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(hooks.getDriver()); iTuoiRecapitiPage.waitLoadITuoiRecapitiPage(); iTuoiRecapitiPage.cancellaTesto(); @@ -542,7 +546,7 @@ public void nellaPaginaITuoiRecapitiSiInserisceLaNuovaEmailDelPFECliccaSulBotton public void nellaPaginaITuoiRecapitiSiControllaCheLaEmailSiaStataModificata() { logger.info("Si controlla che la Email sia stata modificata"); - ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(this.driver); + ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(hooks.getDriver()); iTuoiRecapitiPage.verificaEmailModificata(); } @@ -588,7 +592,7 @@ public void nellaPaginaITuoiRecapitiSiRecuperaLOTPDellaNuovaEmailTramiteRequestM @And("Nella pagina I Tuoi Recapiti si clicca sul bottone elimina email e si conferma nel pop up") public void nellaPaginaITuoiRecapitiSiCliccaSulBottoneEliminaEmailESiConfermaNelPopUp() { logger.info("Si clicca sul bottone elimina email"); - ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(this.driver); + ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(hooks.getDriver()); iTuoiRecapitiPage.eliminaEmailEsistente(); if (recapitiDestinatarioPage.waitLoadPopUpElimina().equalsIgnoreCase("Rimuovi email")) { @@ -604,7 +608,7 @@ public void nellaPaginaITuoiRecapitiSiCliccaSulBottoneEliminaEmailESiConfermaNel @And("Nella pagina I Tuoi Recapiti si clicca sul bottone elimina email e si annulla nel pop up") public void nellaPaginaITuoiRecapitiSiCliccaSulBottoneEliminaEmailESiAnnullaNelPopUp() { logger.info("Si clicca sul bottone elimina email"); - ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(this.driver); + ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(hooks.getDriver()); iTuoiRecapitiPage.eliminaEmailEsistente(); if (recapitiDestinatarioPage.waitLoadPopUpElimina().equalsIgnoreCase("Rimuovi email")) { @@ -682,7 +686,7 @@ public void nellaPaginaITuoiRecapitiSiVerificaCheLaPecSiaStataModificata(String recapitiDestinatarioPage.visualizzaValidazione(); } else { WebTool.waitTime(5); - driver.navigate().refresh(); + hooks.getDriver().navigate().refresh(); if (recapitiDestinatarioPage.siControllaPECModificata(pec)) { logger.info("La PEC è stata modificata"); } else { @@ -723,7 +727,7 @@ public void nellaPaginaITuoiRecapitiSiRecuperaIlCodiceOTPDellaNuovaPECTramiteChi startUrl = "http://internal-ecsa-20230409091221502000000003-2047636771.eu-south-1.elb.amazonaws.com:8080/"; } url = startUrl + recuperoOTPRecapiti.getUrlEndPoint() + personaFisica.get("pec"); - logger.info("Chiamata verifica PEC :"+ url); + logger.info("Chiamata verifica PEC :" + url); results = recuperoOTPRecapiti.runRecuperoOTPRecapiti(url); if (results) { String OTP = recuperoOTPRecapiti.getResponseBody(); @@ -767,6 +771,7 @@ public void nellaPaginaITuoiRecapitiSiRecuperaIlCodiceOTPDellaNuovaEmailPECTrami } } + @And("Nella pagina I Tuoi Recapiti si recupera il codice OTP della nuova Email {string} tramite chiamata request") public void nellaPaginaITuoiRecapitiSiRecuperaIlCodiceOTPDellaNuovaEmailTramiteChiamataRequest(String mail) { logger.info("Si recupera il codice OTP della nuova email"); @@ -869,7 +874,7 @@ public void nellaPaginaRecapitiSiInserisceIlNumeroDiTelefono(String numero) { logger.info("Si inserisce il numero di telefono"); - ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(this.driver); + ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(hooks.getDriver()); iTuoiRecapitiPage.insertTelephoneNumber(numero); iTuoiRecapitiPage.clickAvvisamiViaSMS(); } @@ -914,7 +919,7 @@ public void nellaSezioneAltriRecapitiSiControllaCheLaPecAggiuntivaSiaStataInseri recapitiDestinatarioPage.waitLoadPage(); } String pec = dataPopulation.readDataPopulation("personaFisica.yaml").get("additionalEmail").toString(); - driver.navigate().refresh(); + hooks.getDriver().navigate().refresh(); WebTool.waitTime(10); if (!recapitiDestinatarioPage.verificaNuovaEmailEPEC(pec)) { logger.error("La email PEC non è stata associata correttamente"); @@ -933,7 +938,7 @@ public void nellaSezioneAltriRecapitiSiInserisceLaEmailAggiuntivaDellaPersonaFis @And("Nella sezione altri recapiti si seleziona il tipo di indirizzo scegliendo {string}") public void nellaSezioneAltriRecapitiSiSelezionaIlTipoDiIndirizzoScegliendoEmail(String tipoIndirizzo) { logger.info("Si seleziona il tipo di indirizzo scegliendo email"); - ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(this.driver); + ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(hooks.getDriver()); if (tipoIndirizzo.equalsIgnoreCase("PEC")) iTuoiRecapitiPage.selezionaTipoPec(); else { @@ -952,7 +957,7 @@ public void nellaPaginaITuoiRecapitiSiInserisceIlCodiceOTPDellaEmail(String dpFi logger.info("Si inserisce il codice OTP di verifica"); String otp = dataPopulation.readDataPopulation(dpFile + ".yaml").get("OTPmail").toString(); - ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(this.driver); + ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(hooks.getDriver()); iTuoiRecapitiPage.sendOTP(otp); recapitiDestinatarioPage.confermaButtonClickPopUp(); } @@ -980,7 +985,7 @@ public void nellaSezioneAltriRecapitiSiControllaLEsistenzaDiUnaEmail(String dpFi @And("Nella pagina I Tuoi Recapiti si controlla che non ci sia già una email") public void nellaPaginaITuoiRecapitiSiControllaCheNonCiSiaGiaUnaEmail() { logger.info("Si controlla che non ci sia già una email"); - ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(this.driver); + ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(hooks.getDriver()); if (recapitiDestinatarioPage.verificaMailAssociata()) { iTuoiRecapitiPage.eliminaEmailEsistente(); if (recapitiDestinatarioPage.waitLoadPopUpElimina().equalsIgnoreCase("Rimuovi e-mail")) { @@ -1017,7 +1022,7 @@ public void siVerificaEsistenzaDuePEC() { public void nellaPaginaITuoiRecapitiSiControllaCheCiSiaGiaUnaEmailDiversa() { logger.info("Si controlla che che ci sia già una Email diversa"); - ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(this.driver); + ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(hooks.getDriver()); iTuoiRecapitiPage.waitLoadITuoiRecapitiPage(); BackgroundTest backgroundTest = new BackgroundTest(); @@ -1037,14 +1042,14 @@ public void siCliccaSulBottoneAnnullaPerAnnullareLaModificaDellaPEC() { @And("Si visualizzano correttamente i pulsanti modifica, elimina ed è possibile modificare l'email") public void siVisualizzanoCorrettamenteGliElementiPostModifica() { logger.info("Si controlla che si visualizzano correttamente i pulsanti modifica, elimina ed è possibile modificare l'email"); - ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(this.driver); + ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(hooks.getDriver()); iTuoiRecapitiPage.checkPostModifica(); } @When("Nella pagina I Tuoi Recapiti si visualizza correttamente il riquadro relativo alla PEC") public void nellaPaginaITuoiRecapitiSiVisualizzaCorrettamenteIlRiquadroRelativoAllaPEC() { logger.info("Si visualizza correttamente il riquadro relativo alla PEC"); - ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(this.driver); + ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(hooks.getDriver()); iTuoiRecapitiPage.checkRiquadroPEC(); } @@ -1056,7 +1061,7 @@ public void nellaSezioneAltriRecapitiSiCliccaSulBottoneConfermaPerInserireUnReca @And("Si verifica siano presenti recapiti digitali") public void siVerificaSianoPresentiRecapitiDigitali(Map datiPF) { - ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(driver); + ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(hooks.getDriver()); String email = datiPF.get("email"); if (recapitiDestinatarioPage.siVisualizzaPecInserita()) { diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/LoginMittentePagoPA.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/LoginMittentePagoPA.java index d027d7447..73292d88a 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/LoginMittentePagoPA.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/LoginMittentePagoPA.java @@ -47,7 +47,7 @@ public void loginPageMittenteVieneVisualizzata(String datiMittenteFile) { DataPopulation dataPopulation = new DataPopulation(); this.datiMittente = dataPopulation.readDataPopulation(datiMittenteFile + ".yaml"); - String variabileAmbiente = System.getProperty("environment"); + String variabileAmbiente = webDriverConfig.getEnvironment(); switch (variabileAmbiente) { case "dev" -> this.driver.get(this.datiMittente.get("url").toString()); case "test", "uat" -> @@ -60,7 +60,7 @@ public void loginPageMittenteVieneVisualizzata(String datiMittenteFile) { @Given("Login Page mittente viene visualizzata") public void loginPageMittenteVieneVisualizzata(Map datiMittenteTable) { logger.info("Si recupera l'ambiente e si visualizza la pagina di login"); - String variabileAmbiente = System.getProperty("environment"); + String variabileAmbiente = webDriverConfig.getEnvironment(); DataPopulation dataPopulation = new DataPopulation(); this.datiMittente = dataPopulation.readDataPopulation("mittente.yaml"); @@ -411,7 +411,7 @@ public void logoutDaPortaleMittente() { public void loginConMittenteTramiteTokenExchange() { logger.info("Si effettua la login del mittente tramite token"); - String variabileAmbiente = System.getProperty("environment"); + String variabileAmbiente = webDriverConfig.getEnvironment(); String urlInziale = "https://selfcare." + variabileAmbiente + ".notifichedigitali.it/#selfCareToken="; String token; DataPopulation dataPopulation = new DataPopulation(); diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java index 7fd3b5258..9d949f8b7 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java @@ -50,7 +50,7 @@ public class NotificaMittentePagoPATest { private final DestinatarioPASection destinatarioPASection = new DestinatarioPASection(this.driver); private final DataPopulation dataPopulation = new DataPopulation(); private final DettaglioNotificaMittenteSection dettaglioNotificaMittenteSection = new DettaglioNotificaMittenteSection(this.driver); - private final String variabileAmbiente = System.getProperty("environment"); + private final String variabileAmbiente1 = System.getProperty("environment"); private final InformazioniPreliminariPASection informazioniPreliminariPASection = new InformazioniPreliminariPASection(this.driver); private final LoginPersonaFisicaPagoPA loginPersonaFisicaPagoPA = new LoginPersonaFisicaPagoPA(); private final LoginPGPagoPATest loginPGPagoPATest = new LoginPGPagoPATest(); @@ -76,8 +76,8 @@ public class NotificaMittentePagoPATest { @When("Nella Home page mittente cliccare sul bottone Gestisci di Piattaforma Notifiche") public void nellaHomePageMittenteCliccareSuGestisciDiPiattaforma() { AreaRiservataPAPage areaRiservataPAPage = new AreaRiservataPAPage(this.driver); - logger.info("Cliccare sul bottone di Piattaforma Notifiche dell'Ambiente " + variabileAmbiente); - switch (variabileAmbiente) { + logger.info("Cliccare sul bottone di Piattaforma Notifiche dell'Ambiente " + webDriverConfig.getEnvironment()); + switch (webDriverConfig.getEnvironment()) { case "dev" -> areaRiservataPAPage.selezionaPiattaformaNotificaDev(); case "test" -> areaRiservataPAPage.selezionaPiattaformaNotificaTest(); case "uat" -> areaRiservataPAPage.selezionaPiattaformaNotificaUat(); @@ -183,7 +183,7 @@ public void nellaSectionInformazioniPreliminariInserireIDatiDellaNotificaSenzaPa aggiornamentoNumeroProtocollo(); this.datiNotifica = dataPopulation.readDataPopulation(datiNotificaFile + ".yaml"); String gruppo = ""; - switch (variabileAmbiente) { + switch (webDriverConfig.getEnvironment()) { case "dev" -> gruppo = datiNotifica.get("gruppoDev").toString(); case "test", "uat" -> gruppo = datiNotifica.get("gruppoTest").toString(); } From 52b6c91b467dc53604df7db39a7e96622d264cf5 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Thu, 24 Oct 2024 11:04:41 +0200 Subject: [PATCH 117/212] Remove properties enviroment e headless --- .../personaGiuridica/UtentiPGPage.java | 7 ++++++- .../e2e/pages/mittente/DashboardPage.java | 7 ++++++- .../pages/mittente/DisserviziAppPAPage.java | 6 +++++- .../mittente/PiattaformaNotifichePage.java | 7 ++++++- .../it/pn/frontend/e2e/rest/RestContact.java | 19 ++++++++++++------- .../pn/frontend/e2e/rest/RestDelegation.java | 9 +++++++-- .../it/pn/frontend/e2e/rest/RestIncident.java | 8 ++++++-- .../e2e/rest/RestRaddAlternative.java | 10 +++++++--- .../InformazioniPreliminariPASection.java | 7 ++++++- .../pn/frontend/e2e/utility/DownloadFile.java | 9 +++++++-- .../stepDefinitions/common/HelpdeskTest.java | 7 ++++++- .../NotifichePersonaFisicaPagoPATest.java | 5 ++++- .../RecapitiPersonaFisicaTest.java | 16 ++++++++-------- .../personaGiuridica/LoginPGPagoPATest.java | 11 +++++++---- .../NotifichePGPagoPATest.java | 6 +++--- .../stepDefinitions/mittente/ApiKeysTest.java | 7 ++++++- .../mittente/DisserviziAppPATest.java | 2 +- .../DownloadFileMittentePagoPATest.java | 10 +++++----- .../mittente/NewNotifichePagoPATest.java | 7 ++++++- .../mittente/NotificaMittentePagoPATest.java | 2 +- 20 files changed, 115 insertions(+), 47 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/UtentiPGPage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/UtentiPGPage.java index 499c0a168..3579503e6 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/UtentiPGPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/UtentiPGPage.java @@ -1,6 +1,7 @@ package it.pn.frontend.e2e.pages.destinatario.personaGiuridica; import it.pn.frontend.e2e.common.BasePage; +import it.pn.frontend.e2e.config.WebDriverConfig; import it.pn.frontend.e2e.utility.WebTool; import org.junit.jupiter.api.Assertions; import org.openqa.selenium.*; @@ -9,6 +10,7 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import java.util.List; import java.util.Set; @@ -70,6 +72,9 @@ public class UtentiPGPage extends BasePage { @FindBy(xpath = "//span[contains(text(),'Utenti')]") WebElement sezioneUtenti; + @Autowired + private WebDriverConfig webDriverConfig; + public UtentiPGPage(WebDriver driver) { super(driver); } @@ -79,7 +84,7 @@ public void clickSezioneUtenti() { sezioneUtenti.click(); //build url String companyId = "d0f52c7d-76d5-4520-8971-edffeb5b46d5"; - String environment = System.getProperty("environment"); + String environment = webDriverConfig.getEnvironment(); String utentiUrl = "https://imprese." + environment + ".notifichedigitali.it/dashboard/" + companyId + "/users"; //switch tab String parentWindowHandle = driver.getWindowHandle(); diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/DashboardPage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/DashboardPage.java index 2b03dc9ca..093fe3476 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/DashboardPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/DashboardPage.java @@ -1,6 +1,7 @@ package it.pn.frontend.e2e.pages.mittente; import it.pn.frontend.e2e.common.BasePage; +import it.pn.frontend.e2e.config.WebDriverConfig; import it.pn.frontend.e2e.listeners.Hooks; import it.pn.frontend.e2e.listeners.NetWorkInfo; import it.pn.frontend.e2e.model.singleton.NotificationSingleton; @@ -12,6 +13,7 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import java.awt.*; import java.awt.event.KeyEvent; @@ -78,6 +80,9 @@ public class DashboardPage extends BasePage { @FindBy(xpath = "//button[@data-testid='exportJpgButton']") WebElement esportaJpegBottone; + @Autowired + private WebDriverConfig webDriverConfig; + public DashboardPage(WebDriver driver) { super(driver); @@ -253,7 +258,7 @@ public void sceglieOpzioneGiorni(){ } public void clickJpegExport() throws AWTException { - boolean headless = System.getProperty("headless").equalsIgnoreCase("true"); + boolean headless = webDriverConfig.getHeadless().equalsIgnoreCase("true"); if (!headless) { logger.info("controllo esistenza bottone per scaricare jpeg"); getWebDriverWait(10).withMessage("Il bottone esporta jpeg non cliccabile").until(ExpectedConditions.elementToBeClickable(esportaJpegBottone)); diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/DisserviziAppPAPage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/DisserviziAppPAPage.java index ba1d572dc..bedc094b0 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/DisserviziAppPAPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/DisserviziAppPAPage.java @@ -1,6 +1,7 @@ package it.pn.frontend.e2e.pages.mittente; import it.pn.frontend.e2e.common.BasePage; +import it.pn.frontend.e2e.config.WebDriverConfig; import it.pn.frontend.e2e.utility.DataPopulation; import it.pn.frontend.e2e.utility.WebTool; import org.apache.pdfbox.pdmodel.PDDocument; @@ -14,6 +15,7 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import java.io.File; import java.io.IOException; @@ -25,6 +27,8 @@ public class DisserviziAppPAPage extends BasePage { private final Logger logger = LoggerFactory.getLogger("Disservizi PA Page"); private DataPopulation dataPopulation = new DataPopulation(); + @Autowired + private WebDriverConfig webDriverConfig; public DisserviziAppPAPage(WebDriver driver) { super(driver); @@ -296,7 +300,7 @@ public void clickLinkAttestazioniOpponibileDisservizi(int numeroLinkAttestazioni public boolean confrontoFileConDisservizio() { getDateDisservice(); logger.info("date prese con successo dal disserivizio"); - String folderPath = System.getProperty("downloadFilePath"); + String folderPath = webDriverConfig.getDownloadFilePath(); // Stringa da cercare nel nome del file String searchString = "PN_DOWNTIME_LEGAL_FACTS"; // Creazione di un oggetto File che rappresenta la cartella diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java index b4273603d..4eaf066cf 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java @@ -2,6 +2,7 @@ import com.google.gson.internal.LinkedTreeMap; import it.pn.frontend.e2e.common.BasePage; +import it.pn.frontend.e2e.config.WebDriverConfig; import it.pn.frontend.e2e.listeners.Hooks; import it.pn.frontend.e2e.listeners.NetWorkInfo; import it.pn.frontend.e2e.model.singleton.NotificationSingleton; @@ -14,6 +15,7 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import java.text.DateFormatSymbols; import java.time.LocalDate; @@ -103,6 +105,9 @@ public class PiattaformaNotifichePage extends BasePage { @FindBy(id = "message") WebElement erroreMessaggio; + @Autowired + private WebDriverConfig webDriverConfig; + public PiattaformaNotifichePage(WebDriver driver) { super(driver); @@ -599,7 +604,7 @@ public void selezionaPrimaNotifica() { } public void selezionaNotificaIUN(String IUN) { - String variabileAmbiente = System.getProperty("environment"); + String variabileAmbiente = webDriverConfig.getEnvironment(); driver.navigate().to("https://selfcare." + variabileAmbiente + ".notifichedigitali.it/dashboard/" + IUN + "/dettaglio"); } diff --git a/src/main/java/it/pn/frontend/e2e/rest/RestContact.java b/src/main/java/it/pn/frontend/e2e/rest/RestContact.java index 0d9d583c0..91facd5bd 100644 --- a/src/main/java/it/pn/frontend/e2e/rest/RestContact.java +++ b/src/main/java/it/pn/frontend/e2e/rest/RestContact.java @@ -1,12 +1,14 @@ package it.pn.frontend.e2e.rest; import it.pn.frontend.e2e.config.CustomHttpClient; +import it.pn.frontend.e2e.config.WebDriverConfig; import it.pn.frontend.e2e.exceptions.RestContactException; import it.pn.frontend.e2e.exceptions.RestDelegationException; import it.pn.frontend.e2e.model.address.DigitalAddress; import it.pn.frontend.e2e.model.address.DigitalAddressResponse; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.awt.*; @@ -20,10 +22,13 @@ public class RestContact { private static final Logger logger = LoggerFactory.getLogger("RestContact"); final CustomHttpClient httpClient = CustomHttpClient.getInstance(); private static RestContact instance; - final private String env = System.getProperty("environment"); + //final private String env = System.getProperty("environment"); final private String token = System.getProperty("token"); private Map headers = new HashMap<>(); + @Autowired + private WebDriverConfig webDriverConfig; + public static synchronized RestContact getInstance() { if (instance == null) { instance = new RestContact(); @@ -33,7 +38,7 @@ public static synchronized RestContact getInstance() { public RestContact() { - this.httpClient.setBaseUrlApi("https://webapi." + env + ".notifichedigitali.it"); + this.httpClient.setBaseUrlApi("https://webapi." + webDriverConfig.getEnvironment() + ".notifichedigitali.it"); if (token != null) { this.headers.put("Authorization", token); } else { @@ -47,7 +52,7 @@ public RestContact() { * @throws RestContactException if there is an error during the request */ public void removeDigitalAddressCourtesyEmail() throws RestContactException { - String url = "https://webapi." + env + ".notifichedigitali.it/address-book/v1/digital-address/courtesy/default/EMAIL"; + String url = "https://webapi." + webDriverConfig.getEnvironment() + ".notifichedigitali.it/address-book/v1/digital-address/courtesy/default/EMAIL"; String response = ""; try { headers.put("Authorization", System.getProperty("token")); @@ -66,7 +71,7 @@ public void removeDigitalAddressCourtesyEmail() throws RestContactException { * @throws RestContactException if there is an error during the request */ public void removeDigitalAddressLegalPec() throws RestContactException { - String url = "https://webapi." + env + ".notifichedigitali.it/bff/v1/addresses/LEGAL/default/PEC"; + String url = "https://webapi." + webDriverConfig.getEnvironment() + ".notifichedigitali.it/bff/v1/addresses/LEGAL/default/PEC"; String response = ""; try { headers.put("Authorization", System.getProperty("token")); @@ -88,7 +93,7 @@ public void removeDigitalAddressLegalPec() throws RestContactException { public void removeSpecialContact(DigitalAddress digitalAddress) throws RestDelegationException { String channelType = digitalAddress.getChannelType().toString(); String addressType = digitalAddress.getAddressType().toString().toLowerCase(); - String url = "https://webapi." + env + ".notifichedigitali.it/address-book/v1/digital-address/" + String url = "https://webapi." + webDriverConfig.getEnvironment() + ".notifichedigitali.it/address-book/v1/digital-address/" + addressType + "/" + digitalAddress.getSenderId() + "/" + channelType; String response = ""; try { @@ -104,7 +109,7 @@ public void removeSpecialContact(DigitalAddress digitalAddress) throws RestDeleg public DigitalAddressResponse getDigitalAddress() throws RestContactException { CustomHttpClient httpClientDigitalAddress = CustomHttpClient.getInstance(); - httpClientDigitalAddress.setBaseUrlApi("https://webapi." + env + ".notifichedigitali.it"); + httpClientDigitalAddress.setBaseUrlApi("https://webapi." + webDriverConfig.getEnvironment() + ".notifichedigitali.it"); String url = "/bff/v1/addresses/LEGAL/default/PEC"; try { headers.put("Authorization", System.getProperty("token")); @@ -122,7 +127,7 @@ public DigitalAddressResponse getDigitalAddress() throws RestContactException { public List getAllDigitalAddress() throws RestContactException { CustomHttpClient httpClientDigitalAddress = CustomHttpClient.getInstance(); - httpClientDigitalAddress.setBaseUrlApi("https://webapi." + env + ".notifichedigitali.it"); + httpClientDigitalAddress.setBaseUrlApi("https://webapi." + webDriverConfig.getEnvironment() + ".notifichedigitali.it"); String url = "/bff/v1/addresses"; try { diff --git a/src/main/java/it/pn/frontend/e2e/rest/RestDelegation.java b/src/main/java/it/pn/frontend/e2e/rest/RestDelegation.java index ad229cf0d..5bb6e86fb 100644 --- a/src/main/java/it/pn/frontend/e2e/rest/RestDelegation.java +++ b/src/main/java/it/pn/frontend/e2e/rest/RestDelegation.java @@ -1,6 +1,7 @@ package it.pn.frontend.e2e.rest; import it.pn.frontend.e2e.config.CustomHttpClient; +import it.pn.frontend.e2e.config.WebDriverConfig; import it.pn.frontend.e2e.exceptions.RestDelegationException; import it.pn.frontend.e2e.model.delegate.DelegateRequestPF; import it.pn.frontend.e2e.model.delegate.DelegateRequestPG; @@ -8,6 +9,7 @@ import it.pn.frontend.e2e.model.delegate.DelegateResponsePG; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.io.IOException; @@ -22,10 +24,13 @@ public class RestDelegation { final CustomHttpClient httpClientPG = CustomHttpClient.getInstance(); private static RestDelegation instance; - final private String env = System.getProperty("environment"); + //final private String env = System.getProperty("environment"); final private String token = System.getProperty("token"); private Map headers = new HashMap<>(); + @Autowired + private WebDriverConfig webDriverConfig; + public static synchronized RestDelegation getInstance() { if (instance == null) { instance = new RestDelegation(); @@ -34,7 +39,7 @@ public static synchronized RestDelegation getInstance() { } public RestDelegation() { - this.httpClientPF.setBaseUrlApi("https://webapi." + env + ".notifichedigitali.it"); + this.httpClientPF.setBaseUrlApi("https://webapi." + webDriverConfig.getEnvironment() + ".notifichedigitali.it"); if (token != null) { this.headers.put("Authorization", token); } else { diff --git a/src/main/java/it/pn/frontend/e2e/rest/RestIncident.java b/src/main/java/it/pn/frontend/e2e/rest/RestIncident.java index 0e2c80a6e..215d27c3d 100644 --- a/src/main/java/it/pn/frontend/e2e/rest/RestIncident.java +++ b/src/main/java/it/pn/frontend/e2e/rest/RestIncident.java @@ -1,15 +1,19 @@ package it.pn.frontend.e2e.rest; import it.pn.frontend.e2e.config.CustomHttpClient; +import it.pn.frontend.e2e.config.WebDriverConfig; import it.pn.frontend.e2e.model.incidents.IncidentStatusResponse; import it.pn.frontend.e2e.model.incidents.NewIncidentRequest; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; public class RestIncident { private static final Logger logger = LoggerFactory.getLogger("RestIncident"); final CustomHttpClient httpClientIncident = CustomHttpClient.getInstance(); - final private String env = System.getProperty("environment"); + //final private String env = System.getProperty("environment"); + @Autowired + private WebDriverConfig webDriverConfig; private static RestIncident instance; @@ -21,6 +25,6 @@ public static synchronized RestIncident getInstance() { } public RestIncident() { - this.httpClientIncident.setBaseUrlApi("https://api.bo." + env + ".notifichedigitali.it/"); + this.httpClientIncident.setBaseUrlApi("https://api.bo." + webDriverConfig.getEnvironment() + ".notifichedigitali.it/"); } } diff --git a/src/main/java/it/pn/frontend/e2e/rest/RestRaddAlternative.java b/src/main/java/it/pn/frontend/e2e/rest/RestRaddAlternative.java index e422155d0..81280304f 100644 --- a/src/main/java/it/pn/frontend/e2e/rest/RestRaddAlternative.java +++ b/src/main/java/it/pn/frontend/e2e/rest/RestRaddAlternative.java @@ -1,6 +1,7 @@ package it.pn.frontend.e2e.rest; import it.pn.frontend.e2e.config.CustomHttpClient; +import it.pn.frontend.e2e.config.WebDriverConfig; import it.pn.frontend.e2e.listeners.Hooks; import it.pn.frontend.e2e.model.radd.CompleteTransaction.CompleteTransactionRequest; import it.pn.frontend.e2e.model.radd.CompleteTransaction.CompleteTransactionResponse; @@ -9,6 +10,7 @@ import it.pn.frontend.e2e.model.singleton.NotificationSingleton; import it.pn.frontend.e2e.utility.DataPopulation; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; import java.io.IOException; import java.util.HashMap; @@ -21,9 +23,11 @@ public class RestRaddAlternative { NotificationSingleton notificationSingleton = NotificationSingleton.getInstance(); private final Map headers = new HashMap<>(); private final String token; - private final String env = System.getProperty("environment"); + // private final String env = System.getProperty("environment"); private final String uid = UUID.randomUUID().toString(); + @Autowired + private WebDriverConfig webDriverConfig; public RestRaddAlternative(String token) { this.token = token; @@ -31,7 +35,7 @@ public RestRaddAlternative(String token) { public StartTransactionResponse startTransactionRaddAlternative(String tipoDestinatario, String codiceFiscale, String operationId) { final CustomHttpClient httpClientStart = new CustomHttpClient<>(); - httpClientStart.setBaseUrlApi("https://api.radd."+ env + ".notifichedigitali.it"); + httpClientStart.setBaseUrlApi("https://api.radd."+ webDriverConfig.getEnvironment() + ".notifichedigitali.it"); final StartTransactionRequest startTransactionRequest = new StartTransactionRequest(codiceFiscale,tipoDestinatario, notificationSingleton.getIun(Hooks.getScenario()),operationId); try { @@ -48,7 +52,7 @@ public CompleteTransactionResponse completeTransactionRaddAlternative(String ope final CustomHttpClient httpClientComplete = new CustomHttpClient<>(); final CompleteTransactionRequest completeTransactionRequest = new CompleteTransactionRequest(operationId); - httpClientComplete.setBaseUrlApi("https://api.radd."+ env + ".notifichedigitali.it"); + httpClientComplete.setBaseUrlApi("https://api.radd."+ webDriverConfig.getEnvironment() + ".notifichedigitali.it"); try { CompleteTransactionResponse response = httpClientComplete.sendHttpPostRequest("/radd-net/api/v1/act/transaction/complete", headers, completeTransactionRequest, CompleteTransactionResponse.class); return response; diff --git a/src/main/java/it/pn/frontend/e2e/section/mittente/InformazioniPreliminariPASection.java b/src/main/java/it/pn/frontend/e2e/section/mittente/InformazioniPreliminariPASection.java index 29ac87df4..50e624063 100644 --- a/src/main/java/it/pn/frontend/e2e/section/mittente/InformazioniPreliminariPASection.java +++ b/src/main/java/it/pn/frontend/e2e/section/mittente/InformazioniPreliminariPASection.java @@ -1,6 +1,7 @@ package it.pn.frontend.e2e.section.mittente; import it.pn.frontend.e2e.common.BasePage; +import it.pn.frontend.e2e.config.WebDriverConfig; import it.pn.frontend.e2e.utility.WebTool; import org.junit.jupiter.api.Assertions; import org.openqa.selenium.By; @@ -11,6 +12,7 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import java.util.Map; @@ -39,6 +41,9 @@ public class InformazioniPreliminariPASection extends BasePage { @FindBy(xpath = "//input[@value='REGISTERED_LETTER_890']") WebElement registeredLetter890Button; + @Autowired + private WebDriverConfig webDriverConfig; + public InformazioniPreliminariPASection(WebDriver driver) { super(driver); } @@ -123,7 +128,7 @@ public void selectRegisteredLetter890() { } public void compilazioneInformazioniPreliminari(Map datiNotificaMap) { String gruppo = ""; - switch (System.getProperty("environment")) { + switch (webDriverConfig.getEnvironment()) { case "dev" -> gruppo = datiNotificaMap.get("gruppoDev"); case "test", "uat" -> gruppo = datiNotificaMap.get("gruppoTest"); } diff --git a/src/main/java/it/pn/frontend/e2e/utility/DownloadFile.java b/src/main/java/it/pn/frontend/e2e/utility/DownloadFile.java index 726832158..35efb1588 100644 --- a/src/main/java/it/pn/frontend/e2e/utility/DownloadFile.java +++ b/src/main/java/it/pn/frontend/e2e/utility/DownloadFile.java @@ -3,6 +3,7 @@ import com.google.common.base.CharMatcher; import com.google.common.base.Splitter; import it.pn.frontend.e2e.common.BasePage; +import it.pn.frontend.e2e.config.WebDriverConfig; import it.pn.frontend.e2e.listeners.NetWorkInfo; import org.apache.commons.io.FileUtils; import org.json.JSONArray; @@ -11,6 +12,7 @@ import org.openqa.selenium.WebDriver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import java.io.*; import java.net.HttpURLConnection; @@ -32,6 +34,9 @@ public class DownloadFile extends BasePage { private static final Logger logger = LoggerFactory.getLogger("DownloadFile"); + @Autowired + private WebDriverConfig webDriverConfig; + public DownloadFile(WebDriver driver) { super(driver); } @@ -164,7 +169,7 @@ public String getLegalFactId() { } private String getBearerSessionToken() { - String environment = System.getProperty("environment"); + String environment = webDriverConfig.getEnvironment(); String urlChiamata = "https://webapi." + environment + ".notifichedigitali.it/delivery/notifications/received?"; return netWorkInfos.stream() .filter(netWorkInfo -> netWorkInfo.getRequestUrl().contains(urlChiamata)) @@ -174,7 +179,7 @@ private String getBearerSessionToken() { } private String getBearerSessionToken(String url) { - String environment = System.getProperty("environment"); + String environment = webDriverConfig.getEnvironment(); String urlChiamata = "https://webapi." + environment + url; return netWorkInfos.stream() .filter(netWorkInfo -> netWorkInfo.getRequestUrl().contains(urlChiamata)) diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/HelpdeskTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/HelpdeskTest.java index 9717fe4b5..0356a290c 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/HelpdeskTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/HelpdeskTest.java @@ -5,6 +5,7 @@ import io.cucumber.java.en.Then; import io.cucumber.java.en.When; import it.pn.frontend.e2e.common.HelpdeskPage; +import it.pn.frontend.e2e.config.WebDriverConfig; import it.pn.frontend.e2e.listeners.Hooks; import it.pn.frontend.e2e.model.enums.Disservice; import it.pn.frontend.e2e.model.enums.Status; @@ -17,6 +18,7 @@ import org.openqa.selenium.WebDriver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import java.awt.*; import java.io.IOException; @@ -35,10 +37,13 @@ public class HelpdeskTest { private Map datiTestHelpdesk = new HashMap<>(); private Map datiPersonaFisica = new HashMap<>(); + @Autowired + private WebDriverConfig webDriverConfig; + @Given("Login helpdesk con utente test {string}") public void loginHelpdeskConUtenteTest(String nameFile) { this.datiTestHelpdesk = this.dataPopulation.readDataPopulation(nameFile + ".yaml"); - String variabileAmbiente = System.getProperty("environment"); + String variabileAmbiente = webDriverConfig.getEnvironment(); switch (variabileAmbiente) { case "dev" -> helpdeskPage.changePage(this.datiTestHelpdesk.get("url").toString()); case "test", "uat" -> diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/NotifichePersonaFisicaPagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/NotifichePersonaFisicaPagoPATest.java index 548371d25..6de92502a 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/NotifichePersonaFisicaPagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/NotifichePersonaFisicaPagoPATest.java @@ -4,6 +4,7 @@ import io.cucumber.java.en.Then; import io.cucumber.java.en.When; import it.pn.frontend.e2e.common.DettaglioNotificaSection; +import it.pn.frontend.e2e.config.WebDriverConfig; import it.pn.frontend.e2e.listeners.Hooks; import it.pn.frontend.e2e.pages.destinatario.DestinatarioPage; import it.pn.frontend.e2e.pages.destinatario.personaFisica.AccediAPiattaformaNotifichePage; @@ -45,6 +46,8 @@ public class NotifichePersonaFisicaPagoPATest { private final DettaglioNotificaSection dettaglioNotifica = new DettaglioNotificaSection(driver); @Autowired private CookieConfig cookieConfig; + @Autowired + private WebDriverConfig webDriverConfig; @When("Nella pagina Piattaforma Notifiche persona fisica si clicca sul bottone Notifiche") public void nellaPiattaformaDestinatarioCliccareSulBottoneNotifiche() { @@ -286,7 +289,7 @@ public void siSelezionanoIFileAttestazioniOpponibiliDaScaricareAllInternoDellaNo DataPopulation dataPopulation = new DataPopulation(); Map datiNotifica = dataPopulation.readDataPopulation(dpFile + ".yaml"); String workingDirectory = System.getProperty("user.dir"); - boolean headless = System.getProperty("headless").equalsIgnoreCase("true"); + boolean headless = webDriverConfig.getHeadless().equalsIgnoreCase("true"); File pathCartella = new File(workingDirectory + "/src/test/resources/dataPopulation/downloads"); if (!downloadFile.controlloEsistenzaCartella(pathCartella)) { pathCartella.mkdirs(); diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java index bbba09aae..9dcc13b39 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java @@ -275,7 +275,7 @@ public void nellaPaginaITuoiRecapitiSiRecuperaIlCodiceOTPTramiteChiamataRequest( personaFisica.put("OTPpec", OTP); dataPopulation.writeDataPopulation(dpFile + ".yaml", personaFisica); } else { - String variabileAmbiente = System.getProperty("environment"); + String variabileAmbiente = webDriverConfig.getEnvironment(); if (variabileAmbiente.equalsIgnoreCase("test")) { startUrl = "http://internal-pn-ec-Appli-L4ZIDSL1OIWQ-1000421895.eu-south-1.elb.amazonaws.com:8080/"; } else if (variabileAmbiente.equalsIgnoreCase("dev")) { @@ -313,7 +313,7 @@ public void nellaPaginaITuoiRecapitiSiRecuperaIlCodiceOTPTramiteChiamataRequestD Assertions.fail("Il codice OTP inserito è sbagliato"); } } else { - String variabileAmbiente = System.getProperty("environment"); + String variabileAmbiente = webDriverConfig.getEnvironment(); if (variabileAmbiente.equalsIgnoreCase("test")) { startUrl = "http://internal-pn-ec-Appli-L4ZIDSL1OIWQ-1000421895.eu-south-1.elb.amazonaws.com:8080/"; } else if (variabileAmbiente.equalsIgnoreCase("dev")) { @@ -410,7 +410,7 @@ public void nellaPaginaITuoiRecapitiSiRecuperaLOTPDellaEmailTramiteRequestMethod personaFisica.put("OTPmail", OTP); dataPopulation.writeDataPopulation(dpFile + ".yaml", personaFisica); } else { - String variabileAmbiente = System.getProperty("environment"); + String variabileAmbiente = webDriverConfig.getEnvironment(); if (variabileAmbiente.equalsIgnoreCase("test")) { startUrl = "http://internal-pn-ec-Appli-L4ZIDSL1OIWQ-1000421895.eu-south-1.elb.amazonaws.com:8080/"; } else if (variabileAmbiente.equalsIgnoreCase("dev")) { @@ -447,7 +447,7 @@ public void nellaPaginaITuoiRecapitiSiRecuperaLOTPDellaEmailAltriRecapitiTramite personaFisica.put("OTPmail", OTP); dataPopulation.writeDataPopulation(dpFile + ".yaml", personaFisica); } else { - String variabileAmbiente = System.getProperty("environment"); + String variabileAmbiente = webDriverConfig.getEnvironment(); if (variabileAmbiente.equalsIgnoreCase("test")) { startUrl = "http://internal-pn-ec-Appli-L4ZIDSL1OIWQ-1000421895.eu-south-1.elb.amazonaws.com:8080/"; } else if (variabileAmbiente.equalsIgnoreCase("dev")) { @@ -570,7 +570,7 @@ public void nellaPaginaITuoiRecapitiSiRecuperaLOTPDellaNuovaEmailTramiteRequestM personaFisica.put("OTPmail", OTP); dataPopulation.writeDataPopulation(dpFile + ".yaml", personaFisica); } else { - String variabileAmbiente = System.getProperty("environment"); + String variabileAmbiente = webDriverConfig.getEnvironment(); if (variabileAmbiente.equalsIgnoreCase("test")) { startUrl = "http://internal-pn-ec-Appli-L4ZIDSL1OIWQ-1000421895.eu-south-1.elb.amazonaws.com:8080/"; } else if (variabileAmbiente.equalsIgnoreCase("dev")) { @@ -720,7 +720,7 @@ public void nellaPaginaITuoiRecapitiSiRecuperaIlCodiceOTPDellaNuovaPECTramiteChi personaFisica.put("OTPpec", OTP); dataPopulation.writeDataPopulation(dpFile + ".yaml", personaFisica); } else { - String variabileAmbiente = System.getProperty("environment"); + String variabileAmbiente = webDriverConfig.getEnvironment(); if (variabileAmbiente.equalsIgnoreCase("test")) { startUrl = "http://internal-pn-ec-Appli-L4ZIDSL1OIWQ-1000421895.eu-south-1.elb.amazonaws.com:8080/"; } else if (variabileAmbiente.equalsIgnoreCase("dev")) { @@ -754,7 +754,7 @@ public void nellaPaginaITuoiRecapitiSiRecuperaIlCodiceOTPDellaNuovaEmailPECTrami if (results) { OTP = recuperoOTPRecapiti.getResponseBody(); } else { - String variabileAmbiente = System.getProperty("environment"); + String variabileAmbiente =webDriverConfig.getEnvironment(); if (variabileAmbiente.equalsIgnoreCase("test")) { startUrl = "http://internal-pn-ec-Appli-L4ZIDSL1OIWQ-1000421895.eu-south-1.elb.amazonaws.com:8080/"; } else if (variabileAmbiente.equalsIgnoreCase("dev")) { @@ -783,7 +783,7 @@ public void nellaPaginaITuoiRecapitiSiRecuperaIlCodiceOTPDellaNuovaEmailTramiteC if (results) { OTP = recuperoOTPRecapiti.getResponseBody(); } else { - String variabileAmbiente = System.getProperty("environment"); + String variabileAmbiente = webDriverConfig.getEnvironment(); if (variabileAmbiente.equalsIgnoreCase("test")) { startUrl = "http://internal-pn-ec-Appli-L4ZIDSL1OIWQ-1000421895.eu-south-1.elb.amazonaws.com:8080/"; } else if (variabileAmbiente.equalsIgnoreCase("dev")) { diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java index 0171b06fc..bff92a86c 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java @@ -9,6 +9,7 @@ import it.pn.frontend.e2e.api.mittente.SpidTestEnvWestEuropeAzureContainerIoContinueResponse; import it.pn.frontend.e2e.api.mittente.SpidTestEnvWestEuropeAzureContainerIoLogin; import it.pn.frontend.e2e.config.CustomHttpClient; +import it.pn.frontend.e2e.config.WebDriverConfig; import it.pn.frontend.e2e.listeners.Hooks; import it.pn.frontend.e2e.listeners.NetWorkInfo; import it.pn.frontend.e2e.pages.destinatario.DestinatarioPage; @@ -48,10 +49,12 @@ public class LoginPGPagoPATest { @Autowired private CookieConfig cookieConfig; + @Autowired + private WebDriverConfig webDriverConfig; @Given("Login Page persona giuridica viene visualizzata") public void loginPagePersonaGiuridicaVieneVisualizzata() { - String variabileAmbiente = System.getProperty("environment"); + String variabileAmbiente = webDriverConfig.getEnvironment(); switch (variabileAmbiente) { case "dev" -> driver.get(URL_LOGIN_PG); case "test", "uat" -> @@ -65,7 +68,7 @@ public void loginPagePersonaGiuridicaVieneVisualizzata() { public void loginMittenteConTokenExchange(String personaGiuridica) { DataPopulation dataPopulation = new DataPopulation(); - String environment = System.getProperty("environment"); + String environment = webDriverConfig.getEnvironment(); String token = ""; switch (environment) { case "dev" -> token = personaGiuridica.equalsIgnoreCase("delegante") ? @@ -386,7 +389,7 @@ public void loginPortalePersonaGiuridicaTramiteRequestMethod(String dpFile) { public void loginPortalePersonaGiuridicaTramiteTokenExchange(String dpFile) { logger.info("Si effettua il login PG tramite token"); - String variabileAmbiente = System.getProperty("environment"); + String variabileAmbiente = webDriverConfig.getEnvironment(); String urlIniziale = "https://imprese." + variabileAmbiente + ".notifichedigitali.it/#selfCareToken="; String token; String user = this.dataPopulation.readDataPopulation(dpFile + ".yaml").get("user").toString(); @@ -409,7 +412,7 @@ public void loginPortalePersonaGiuridicaTramiteTokenExchange(String dpFile) { public String getTokenExchangePGFromFile(String personaGiuridica) { DataPopulation dataPopulation = new DataPopulation(); - String environment = System.getProperty("environment"); + String environment = webDriverConfig.getEnvironment(); String token = ""; switch (environment) { case "dev" -> token = personaGiuridica.equalsIgnoreCase("delegante") ? diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/NotifichePGPagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/NotifichePGPagoPATest.java index 2c51d3062..bc8fcb5f8 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/NotifichePGPagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/NotifichePGPagoPATest.java @@ -58,7 +58,7 @@ public void clickSendNotificheDigitali() { HomePagePG homePagePG = new HomePagePG(this.driver); homePagePG.waitLoadHomePagePGPage(); - String variabileAmbiente = System.getProperty("environment"); + String variabileAmbiente = webDriverConfig.getEnvironment(); switch (variabileAmbiente) { case "dev" -> homePagePG.clickSendNotificheDigitali(5); case "test" -> homePagePG.clickSendNotificheDigitali(6); @@ -168,7 +168,7 @@ public void siSelezionanoIFileAttestazioniOpponibiliDaScaricareAllInternoDellaNo Map datiNotifica = dataPopulation.readDataPopulation(dpFile + ".yaml"); String workingDirectory = System.getProperty("user.dir"); File pathCartella = new File(workingDirectory + "/src/test/resources/dataPopulation/downloadFileNotifica/destinatario/personaGiuridica"); - boolean headless = System.getProperty("headless").equalsIgnoreCase("true"); + boolean headless = webDriverConfig.getHeadless().equalsIgnoreCase("true"); if (!downloadFile.controlloEsistenzaCartella(pathCartella)) { pathCartella.mkdirs(); } @@ -394,7 +394,7 @@ public void inseriscoPasswordEdEstraggoZip() throws IOException { public void siSelezionanoIlFileDaScaricare(String nomeFile) throws IOException { logger.info("Si cerca di scaricare il file " + nomeFile); - boolean headless = System.getProperty("headless").equalsIgnoreCase("true"); + boolean headless = webDriverConfig.getHeadless().equalsIgnoreCase("true"); DettaglioNotificaMittenteSection dettaglioNotificaMittenteSection = new DettaglioNotificaMittenteSection(this.driver); dettaglioNotificaMittenteSection.clickLinkAttestazioneOpponibile(nomeFile); WebTool.waitTime(5); diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/ApiKeysTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/ApiKeysTest.java index ba30ff1d2..38aa99464 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/ApiKeysTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/ApiKeysTest.java @@ -3,6 +3,7 @@ import io.cucumber.java.en.And; import io.cucumber.java.en.Then; import io.cucumber.java.en.When; +import it.pn.frontend.e2e.config.WebDriverConfig; import it.pn.frontend.e2e.listeners.Hooks; import it.pn.frontend.e2e.pages.mittente.ApiKeyPAPage; import it.pn.frontend.e2e.pages.mittente.PiattaformaNotifichePage; @@ -12,6 +13,7 @@ import org.openqa.selenium.WebDriver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import java.util.concurrent.TimeUnit; @@ -21,6 +23,9 @@ public class ApiKeysTest { private final WebDriver driver = Hooks.driver; private final ApiKeyPAPage apiKeyPAPage = new ApiKeyPAPage(this.driver); + @Autowired + private WebDriverConfig webDriverConfig; + @And("Nella pagina Piattaforma Notifiche selezionare la voce Api Key nel menu") public void nellaPaginaPiattaformaNotificheSelezionareLaVoceApiKeyNelMenu() { logger.info("Si cerca di cliccare sulla voce ApiKeys"); @@ -210,7 +215,7 @@ public void nellaPaginaApiKeyPosizionareIlCursoreSulloStatoDellOperazione() { @And("Nella sezione genera Api Key inserire un gruppo") public void nellaSezioneGeneraApiKeyInserireUnGruppo() { - String variabileAmbiente = System.getProperty("environment"); + String variabileAmbiente = webDriverConfig.getEnvironment(); String gruppo = ""; String gruppo2 = ""; switch (variabileAmbiente) { diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DisserviziAppPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DisserviziAppPATest.java index 52f7b2797..df8036f1b 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DisserviziAppPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DisserviziAppPATest.java @@ -71,7 +71,7 @@ public void siScaricaAttestazioneOpponibileDisservizi() throws IOException { String workingDirectory = System.getProperty("user.dir"); File pathCartella = new File(workingDirectory + "/src/test/resources/dataPopulation/downloadFileNotifica/destinatario/personaGiuridica"); - boolean headless = System.getProperty("headless").equalsIgnoreCase("true"); + boolean headless = webDriverConfig.getHeadless().equalsIgnoreCase("true"); if (!downloadFile.controlloEsistenzaCartella(pathCartella)) { pathCartella.mkdirs(); } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java index 633114351..c49a3e038 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java @@ -63,7 +63,7 @@ public void downloadECheckFile() { String workingDirectory = System.getProperty("user.dir"); File pathCartella = new File(workingDirectory + "/src/test/resources/dataPopulation/downloadFileNotifica/mittente"); downloadFile = new DownloadFile(this.driver); - boolean headless = System.getProperty("headless").equalsIgnoreCase("true"); + boolean headless = webDriverConfig.getHeadless().equalsIgnoreCase("true"); if (!downloadFile.controlloEsistenzaCartella(pathCartella)) { pathCartella.mkdirs(); } @@ -169,7 +169,7 @@ public void downloadDocumentiAllegati() { String workingDirectory = System.getProperty("user.dir"); File pathCartella = new File(workingDirectory + "/src/test/resources/dataPopulation/downloadFileNotifica/mittente"); DownloadFile downloadFile = new DownloadFile(this.driver); - boolean headless = System.getProperty("headless").equalsIgnoreCase("true"); + boolean headless = webDriverConfig.getHeadless().equalsIgnoreCase("true"); if (!downloadFile.controlloEsistenzaCartella(pathCartella)) { pathCartella.mkdirs(); } @@ -252,7 +252,7 @@ public void downloadFileAAR() { DataPopulation dataPopulation = new DataPopulation(); String workingDirectory = System.getProperty("user.dir"); - String variabileAmbiente = System.getProperty("environment"); + String variabileAmbiente = webDriverConfig.getEnvironment(); File pathCartella = new File(workingDirectory + "/src/test/resources/dataPopulation/downloadFileNotifica/mittente"); DownloadFile downloadFile = new DownloadFile(this.driver); boolean headless = System.getProperty("headless").equalsIgnoreCase("true"); @@ -304,7 +304,7 @@ public void downloadAttestazioniOpponibili() { String workingDirectory = System.getProperty("user.dir"); File pathCartella = new File(workingDirectory + "/src/test/resources/dataPopulation/downloadFileNotifica/mittente"); DownloadFile downloadFile = new DownloadFile(this.driver); - boolean headless = System.getProperty("headless").equalsIgnoreCase("true"); + boolean headless = webDriverConfig.getHeadless().equalsIgnoreCase("true"); if (!downloadFile.controlloEsistenzaCartella(pathCartella)) { pathCartella.mkdirs(); } @@ -350,7 +350,7 @@ public void siSelezionanoIlFileDaScaricare(String nomeFile) { logger.info("Si cerca di scaricare il file " + nomeFile); DataPopulation dataPopulation = new DataPopulation(); - boolean headless = System.getProperty("headless").equalsIgnoreCase("true"); + boolean headless = webDriverConfig.getHeadless().equalsIgnoreCase("true"); this.datiNotifica = dataPopulation.readDataPopulation("datiNotifica.yaml"); DettaglioNotificaMittenteSection dettaglioNotificaMittenteSection = new DettaglioNotificaMittenteSection(this.driver); dettaglioNotificaMittenteSection.clickLinkAttestazioneOpponibile(nomeFile); diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NewNotifichePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NewNotifichePagoPATest.java index e708303d3..0bd13f6f2 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NewNotifichePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NewNotifichePagoPATest.java @@ -3,6 +3,7 @@ import io.cucumber.java.en.And; import io.cucumber.java.en.Then; import io.cucumber.java.en.When; +import it.pn.frontend.e2e.config.WebDriverConfig; import it.pn.frontend.e2e.listeners.Hooks; import it.pn.frontend.e2e.pages.destinatario.DestinatarioPage; @@ -13,6 +14,7 @@ import org.junit.jupiter.api.Assertions; import org.openqa.selenium.WebDriver; +import org.springframework.beans.factory.annotation.Autowired; import java.util.Map; @@ -23,6 +25,9 @@ public class NewNotifichePagoPATest { private final WebDriver driver = Hooks.driver; private final String FILE_TOKEN_LOGIN = "tokenLogin.yaml"; + @Autowired + private WebDriverConfig webDriverConfig; + DestinatarioPage destinatarioPage = new DestinatarioPage(driver); @Then("Creo in background una notifica per destinatario tramite API REST") @@ -43,7 +48,7 @@ public void siInizializzanoIDatiPerLaNotifica(Map datiNotifica) @And("Si completa percorso RADD") public void siCompletaPercorsoRADD(Map datiDestinatario) { DataPopulation dataPopulation = new DataPopulation(); - String environment = System.getProperty("environment"); + String environment = webDriverConfig.getEnvironment(); String token = ""; switch (environment) { case "dev" -> { diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java index 9d949f8b7..5334d298a 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java @@ -50,7 +50,7 @@ public class NotificaMittentePagoPATest { private final DestinatarioPASection destinatarioPASection = new DestinatarioPASection(this.driver); private final DataPopulation dataPopulation = new DataPopulation(); private final DettaglioNotificaMittenteSection dettaglioNotificaMittenteSection = new DettaglioNotificaMittenteSection(this.driver); - private final String variabileAmbiente1 = System.getProperty("environment"); + //private final String variabileAmbiente = System.getProperty("environment"); private final InformazioniPreliminariPASection informazioniPreliminariPASection = new InformazioniPreliminariPASection(this.driver); private final LoginPersonaFisicaPagoPA loginPersonaFisicaPagoPA = new LoginPersonaFisicaPagoPA(); private final LoginPGPagoPATest loginPGPagoPATest = new LoginPGPagoPATest(); From 8f8777a37f5316b9c3c1d81d609107ee119cc798 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Thu, 24 Oct 2024 11:28:15 +0200 Subject: [PATCH 118/212] fix compile --- .../stepDefinitions/mittente/NotificaMittentePagoPATest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java index 5334d298a..5e59e9b6a 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java @@ -1517,10 +1517,10 @@ public void siSelezionaUnDestinatario() { protected EsitoNotifica siVerificaEsitoNotifica(String dpFile) { logger.info("si verifica se la notifica è stata accettata o rifiutata"); final String urlNotificationRequest = webDriverConfig.getBaseUrl() + "notifications/sent"; - final String urlRichiestaNotifica = "https://api." + variabileAmbiente + ".notifichedigitali.it/delivery/v2.3/requests/"; + final String urlRichiestaNotifica = "https://api." + webDriverConfig.getEnvironment() + ".notifichedigitali.it/delivery/v2.3/requests/"; AccettazioneRichiestaNotifica accettazioneRichiestaNotifica = new AccettazioneRichiestaNotifica(); String codiceApi; - if (variabileAmbiente.equals("test")) { + if (webDriverConfig.getEnvironment().equals("test")) { codiceApi = "2b3d47f4-44c1-4b49-b6ef-54dc1c531311"; } else { codiceApi = "a9f0508d-c344-4347-807f-343bc8210996"; From 61101dc1798d819042ba221641f3b6f32da67cb6 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Thu, 24 Oct 2024 14:30:51 +0200 Subject: [PATCH 119/212] refactor --- .../pn/frontend/e2e/common/HelpdeskPage.java | 1 + .../pn/frontend/e2e/listeners/HooksNew.java | 5 +- .../personaGiuridica/LoginPGPagoPATest.java | 57 ++++++++++++------- .../mittente/NotificaMittentePagoPATest.java | 15 +++-- 4 files changed, 49 insertions(+), 29 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/common/HelpdeskPage.java b/src/main/java/it/pn/frontend/e2e/common/HelpdeskPage.java index c4e8683fc..69403070f 100644 --- a/src/main/java/it/pn/frontend/e2e/common/HelpdeskPage.java +++ b/src/main/java/it/pn/frontend/e2e/common/HelpdeskPage.java @@ -414,6 +414,7 @@ public void checkMessaggioDiErroreCF() { this.getWebDriverWait(15).withMessage("Messaggio di errore non trovato").until(ExpectedConditions.visibilityOfElementLocated(messaggio)); } + public void checkZipLink() throws IOException, AWTException { boolean headless = webDriverConfig.getHeadless().equalsIgnoreCase("true"); if (!headless) { diff --git a/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java b/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java index e316a6731..5710baa31 100644 --- a/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java +++ b/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java @@ -70,10 +70,11 @@ public class HooksNew { @Getter private final List netWorkInfos = new ArrayList<>(); - @Autowired - private CookieConfig cookieConfig; + private final String os = System.getProperty("os.name"); + @Autowired + private CookieConfig cookieConfig; @Autowired private WebDriverConfig webDriverConfig; diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java index bff92a86c..a1369cf56 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java @@ -11,6 +11,7 @@ import it.pn.frontend.e2e.config.CustomHttpClient; import it.pn.frontend.e2e.config.WebDriverConfig; import it.pn.frontend.e2e.listeners.Hooks; +import it.pn.frontend.e2e.listeners.HooksNew; import it.pn.frontend.e2e.listeners.NetWorkInfo; import it.pn.frontend.e2e.pages.destinatario.DestinatarioPage; import it.pn.frontend.e2e.pages.destinatario.personaFisica.ComeVuoiAccederePage; @@ -36,12 +37,13 @@ public class LoginPGPagoPATest { private final Logger logger = LoggerFactory.getLogger("LoginPGPagoPATest"); - private final WebDriver driver = Hooks.driver; + + + private Map datiPersonaGiuridica = new HashMap<>(); private Map urlPersonaGiuridica; private final DataPopulation dataPopulation = new DataPopulation(); - private final HeaderPGSection headerPGSection = new HeaderPGSection(this.driver); - private final AccediAreaRiservataPGPage accediAreaRiservataPGPage = new AccediAreaRiservataPGPage(this.driver); + private final List netWorkInfos = Hooks.netWorkInfos; private final String FILE_TOKEN_LOGIN = "tokenLogin.yaml"; private final String RAGIONE_SOCIALE_BALDASSARRE = "Comune di Milano"; @@ -51,14 +53,21 @@ public class LoginPGPagoPATest { private CookieConfig cookieConfig; @Autowired private WebDriverConfig webDriverConfig; + @Autowired + private HooksNew hooks; + + // private final WebDriver driver = hooks.getDriver(); + private HeaderPGSection headerPGSection ; + private AccediAreaRiservataPGPage accediAreaRiservataPGPage; + @Given("Login Page persona giuridica viene visualizzata") public void loginPagePersonaGiuridicaVieneVisualizzata() { String variabileAmbiente = webDriverConfig.getEnvironment(); switch (variabileAmbiente) { - case "dev" -> driver.get(URL_LOGIN_PG); + case "dev" -> hooks.getDriver().get(URL_LOGIN_PG); case "test", "uat" -> - driver.get(URL_LOGIN_PG.replace("dev", variabileAmbiente)); + hooks.getDriver().get(URL_LOGIN_PG.replace("dev", variabileAmbiente)); default -> Assertions.fail("Non stato possibile trovare l'ambiente inserito, Inserisci in -Denvironment test o dev o uat"); } @@ -92,11 +101,12 @@ public void loginMittenteConTokenExchange(String personaGiuridica) { // Si effettua il login con token exchange String urlLogin = "https://imprese." + environment + ".notifichedigitali.it/#selfCareToken=" + token; - this.driver.get(urlLogin); + hooks.getDriver().get(urlLogin); logger.info("Login effettuato con successo"); WebTool.waitTime(10); - PiattaformaNotifichePGPAPage notifichePGPage = new PiattaformaNotifichePGPAPage(this.driver); + PiattaformaNotifichePGPAPage notifichePGPage = new PiattaformaNotifichePGPAPage(hooks.getDriver()); + headerPGSection = new HeaderPGSection(hooks.getDriver()); headerPGSection.waitLoadHeaderPGPage(); // Si visualizza la dashboard e si verifica che gli elementi base siano presenti (header e title della pagina) @@ -141,16 +151,16 @@ public void loginPortalePersonaGiuridicaTramiteRequestMethod() { } - this.driver.get(this.urlPersonaGiuridica.get("urlPortale")); + hooks.getDriver().get(this.urlPersonaGiuridica.get("urlPortale")); if (!cookieConfig.isCookieEnabled()) { - CookiesSection cookiesPage = new CookiesSection(this.driver); + CookiesSection cookiesPage = new CookiesSection(hooks.getDriver()); if (cookiesPage.waitLoadCookiesPage()) { cookiesPage.selezionaAccettaTuttiButton(); } } - SelezionaImpresaPage impresaPage = new SelezionaImpresaPage(this.driver); + SelezionaImpresaPage impresaPage = new SelezionaImpresaPage(hooks.getDriver()); impresaPage.clickSuImpresa(this.datiPersonaGiuridica.get("ragioneSociale").toString()); impresaPage.clickAccediButton(); } @@ -285,8 +295,9 @@ private void readUrlPortaleMittente(String user, String password) { @Then("Home page persona giuridica viene visualizzata correttamente") public void homePagePersonaGiuridicaVieneVisualizzataCorrettamente() { + headerPGSection = new HeaderPGSection(hooks.getDriver()); headerPGSection.waitLoadHeaderPGPage(); - HomePagePG homePagePG = new HomePagePG(this.driver); + HomePagePG homePagePG = new HomePagePG(hooks.getDriver()); homePagePG.waitLoadHomePagePGPage(); } @@ -299,29 +310,30 @@ public void loginConPersonaGiuridica(Map datiPG) { CookiesSection cookiesSection; if (!cookieConfig.isCookieEnabled()) { - cookiesSection = new CookiesSection(this.driver); + cookiesSection = new CookiesSection(hooks.getDriver()); if (cookiesSection.waitLoadCookiesPage()) { cookiesSection.selezionaAccettaTuttiButton(); } } + accediAreaRiservataPGPage = new AccediAreaRiservataPGPage(hooks.getDriver()); accediAreaRiservataPGPage.waitLoadAccediAreaRiservataPGPage(); accediAreaRiservataPGPage.clickSpidButton(); - ScegliSpidPGPage scegliSpidPGPage = new ScegliSpidPGPage(this.driver); + ScegliSpidPGPage scegliSpidPGPage = new ScegliSpidPGPage(hooks.getDriver()); scegliSpidPGPage.clickTestButton(); - LoginPGPagoPAPage loginPGPagoPAPage = new LoginPGPagoPAPage(this.driver); + LoginPGPagoPAPage loginPGPagoPAPage = new LoginPGPagoPAPage(hooks.getDriver()); loginPGPagoPAPage.waitLoadLoginPGPage(); loginPGPagoPAPage.insertUsername(datiPG.get("user")); loginPGPagoPAPage.insertPassword(datiPG.get("pwd")); loginPGPagoPAPage.clickInviaButton(); - AutorizzaInvioDatiPGPage autorizzaInvioDatiPGPage = new AutorizzaInvioDatiPGPage(this.driver); + AutorizzaInvioDatiPGPage autorizzaInvioDatiPGPage = new AutorizzaInvioDatiPGPage(hooks.getDriver()); autorizzaInvioDatiPGPage.waitLoadAutorizzaInvioDatiPGPage(); autorizzaInvioDatiPGPage.clickInviaButton(); - SelezionaImpresaPage selezionaImpresaPage = new SelezionaImpresaPage(this.driver); + SelezionaImpresaPage selezionaImpresaPage = new SelezionaImpresaPage(hooks.getDriver()); selezionaImpresaPage.waitLoadSelezionaImpresaPage(); if(selezionaImpresaPage.clickSuImpresa(datiPG.get("ragioneSociale"))){ logger.info("click su impresa"); @@ -331,10 +343,11 @@ public void loginConPersonaGiuridica(Map datiPG) { @And("Logout da portale persona giuridica") public void logoutDaPortalePersonaGiuridica() { + headerPGSection = new HeaderPGSection(hooks.getDriver()); headerPGSection.waitLoadHeaderPGPage(); headerPGSection.clickEsciButton(); WebTool.waitTime(5); - + accediAreaRiservataPGPage = new AccediAreaRiservataPGPage(hooks.getDriver()); accediAreaRiservataPGPage.waitLoadAccediAreaRiservataPGPage(); WebTool.waitTime(5); @@ -370,17 +383,17 @@ public void loginPortalePersonaGiuridicaTramiteRequestMethod(String dpFile) { } - this.driver.get(this.urlPersonaGiuridica.get("urlPortale")); + hooks.getDriver().get(this.urlPersonaGiuridica.get("urlPortale")); if (!cookieConfig.isCookieEnabled()) { - CookiesSection cookiesPage = new CookiesSection(this.driver); + CookiesSection cookiesPage = new CookiesSection(hooks.getDriver()); if (cookiesPage.waitLoadCookiesPage()) { cookiesPage.selezionaAccettaTuttiButton(); } } - SelezionaImpresaPage impresaPage = new SelezionaImpresaPage(this.driver); + SelezionaImpresaPage impresaPage = new SelezionaImpresaPage(hooks.getDriver()); impresaPage.clickSuImpresa(this.datiPersonaGiuridica.get("ragioneSociale").toString()); impresaPage.clickAccediButton(); } @@ -407,7 +420,7 @@ public void loginPortalePersonaGiuridicaTramiteTokenExchange(String dpFile) { } } String url = urlIniziale + token; - this.driver.get(url); + hooks.getDriver().get(url); } public String getTokenExchangePGFromFile(String personaGiuridica) { @@ -433,7 +446,7 @@ public String getTokenExchangePGFromFile(String personaGiuridica) { @And("Si clicca su prodotto {string}") public void siCliccaSuProdotto(String xpath) { - DestinatarioPage destinatarioPage = new DestinatarioPage(driver); + DestinatarioPage destinatarioPage = new DestinatarioPage(hooks.getDriver()); destinatarioPage.clickProdotto(xpath); } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java index 5e59e9b6a..7c1fa8fcd 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java @@ -8,6 +8,7 @@ import it.pn.frontend.e2e.api.mittente.AccettazioneRichiestaNotifica; import it.pn.frontend.e2e.config.WebDriverConfig; import it.pn.frontend.e2e.listeners.Hooks; +import it.pn.frontend.e2e.listeners.HooksNew; import it.pn.frontend.e2e.listeners.NetWorkInfo; import it.pn.frontend.e2e.model.enums.AppPortal; import it.pn.frontend.e2e.model.singleton.NotificationSingleton; @@ -43,7 +44,7 @@ public class NotificaMittentePagoPATest { private static final Logger logger = LoggerFactory.getLogger("NotificaMittentePagoPATest"); - private final WebDriver driver = Hooks.driver; + private final List netWorkInfos = Hooks.netWorkInfos; private final PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(this.driver); private final AllegatiPASection allegatiPASection = new AllegatiPASection(this.driver); @@ -72,10 +73,14 @@ public class NotificaMittentePagoPATest { private CookieConfig cookieConfig; @Autowired private WebDriverConfig webDriverConfig; + @Autowired + private HooksNew hooks; + + private final WebDriver driver = hooks.getDriver(); @When("Nella Home page mittente cliccare sul bottone Gestisci di Piattaforma Notifiche") public void nellaHomePageMittenteCliccareSuGestisciDiPiattaforma() { - AreaRiservataPAPage areaRiservataPAPage = new AreaRiservataPAPage(this.driver); + AreaRiservataPAPage areaRiservataPAPage = new AreaRiservataPAPage(hooks.getDriver()); logger.info("Cliccare sul bottone di Piattaforma Notifiche dell'Ambiente " + webDriverConfig.getEnvironment()); switch (webDriverConfig.getEnvironment()) { case "dev" -> areaRiservataPAPage.selezionaPiattaformaNotificaDev(); @@ -88,7 +93,7 @@ public void nellaHomePageMittenteCliccareSuGestisciDiPiattaforma() { public void siVisualizzaCorrettamenteLaPaginaPiattaformaNotifiche() { logger.info("Si visualizza correttamente la pagina Piattaforma Notifiche"); - HeaderPASection headerPASection = new HeaderPASection(this.driver); + HeaderPASection headerPASection = new HeaderPASection(hooks.getDriver()); headerPASection.waitLoadHeaderSection(); piattaformaNotifichePage.waitLoadPiattaformaNotifichePAPage(); @@ -172,7 +177,7 @@ public void siFinalizzaLInvioDellaNotificaESiControllaCheVengaCreataCorrettament public void siVisualizzaCorrettamenteLaPaginaPiattaformaNotificheSectionInformazioniPreliminari() { logger.info("Verifica visualizzazione section Informazioni preliminari"); - HeaderPASection headerPASection = new HeaderPASection(this.driver); + HeaderPASection headerPASection = new HeaderPASection(hooks.getDriver()); headerPASection.waitLoadHeaderSection(); informazioniPreliminariPASection.waitLoadInformazioniPreliminariPASection(); } @@ -212,7 +217,7 @@ private void aggiornamentoNumeroProtocollo() { @And("Cliccare su continua") public void cliccareSuContinua() { logger.info("Cliccare sul bottone continua"); - InvioNotifichePAPage invioNotifichePAPage = new InvioNotifichePAPage(this.driver); + InvioNotifichePAPage invioNotifichePAPage = new InvioNotifichePAPage(hooks.getDriver()); invioNotifichePAPage.selezionareContinuaButton(); } From c7c0aef345504bf68184af0068808077ddf1cbda Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Thu, 24 Oct 2024 14:59:40 +0200 Subject: [PATCH 120/212] Refactor and update --- .../destinatario/personaGiuridica/LoginPGPagoPATest.java | 6 ++---- .../e2e/stepDefinitions/mittente/LoginMittentePagoPA.java | 1 + 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java index 863cad02f..d056c621c 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java @@ -68,12 +68,13 @@ public class LoginPGPagoPATest { private Map datiPersonaGiuridica = new HashMap<>(); private Map urlPersonaGiuridica; - private final DataPopulation dataPopulation = new DataPopulation(); + /** private final List netWorkInfos = Hooks.netWorkInfos; private final String FILE_TOKEN_LOGIN = "tokenLogin.yaml"; private final String RAGIONE_SOCIALE_BALDASSARRE = "Comune di Milano"; private final String URL_LOGIN_PG = "https://imprese.dev.notifichedigitali.it/"; + **/ @Autowired private CookieConfig cookieConfig; @@ -82,9 +83,6 @@ public class LoginPGPagoPATest { @Autowired private HooksNew hooks; - // private final WebDriver driver = hooks.getDriver(); - private HeaderPGSection headerPGSection ; - private AccediAreaRiservataPGPage accediAreaRiservataPGPage; @Given("Login Page persona giuridica viene visualizzata") diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/LoginMittentePagoPA.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/LoginMittentePagoPA.java index 0e8c2370e..0da51d5db 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/LoginMittentePagoPA.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/LoginMittentePagoPA.java @@ -8,6 +8,7 @@ import it.pn.frontend.e2e.api.mittente.SpidLoginMittente; import it.pn.frontend.e2e.api.mittente.SpidTestEnvWestEuropeAzureContainerIoContinueResponse; import it.pn.frontend.e2e.api.mittente.SpidTestEnvWestEuropeAzureContainerIoLogin; +import it.pn.frontend.e2e.config.WebDriverConfig; import it.pn.frontend.e2e.listeners.Hooks; import it.pn.frontend.e2e.pages.mittente.*; import it.pn.frontend.e2e.section.CookiesSection; From dcfac5c6efb2c02d5d03f165654d41df955fabc6 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Thu, 24 Oct 2024 17:14:12 +0200 Subject: [PATCH 121/212] Restore --- .../personaGiuridica/HeaderPGSection.java | 2 ++ .../personaGiuridica/LoginPGPagoPATest.java | 19 +++++++++++-------- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/section/destinatario/personaGiuridica/HeaderPGSection.java b/src/main/java/it/pn/frontend/e2e/section/destinatario/personaGiuridica/HeaderPGSection.java index ca5781cda..58584349d 100644 --- a/src/main/java/it/pn/frontend/e2e/section/destinatario/personaGiuridica/HeaderPGSection.java +++ b/src/main/java/it/pn/frontend/e2e/section/destinatario/personaGiuridica/HeaderPGSection.java @@ -1,6 +1,7 @@ package it.pn.frontend.e2e.section.destinatario.personaGiuridica; import it.pn.frontend.e2e.common.BasePage; +import it.pn.frontend.e2e.listeners.HooksNew; import org.junit.jupiter.api.Assertions; import org.openqa.selenium.By; import org.openqa.selenium.TimeoutException; @@ -10,6 +11,7 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; public class HeaderPGSection extends BasePage { diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java index d056c621c..e24a26fcd 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java @@ -42,9 +42,7 @@ public class LoginPGPagoPATest { private final Logger logger = LoggerFactory.getLogger(LoginPGPagoPATest.class); - @Autowired - private WebDriver driver; - + /** @Autowired private HeaderPGSection headerPGSection; @@ -65,16 +63,21 @@ public class LoginPGPagoPATest { @Value("${url.login.pg}") private String URL_LOGIN_PG; + **/ + + private HeaderPGSection headerPGSection; + private AccediAreaRiservataPGPage accediAreaRiservataPGPage; + private DataPopulation dataPopulation = new DataPopulation(); private Map datiPersonaGiuridica = new HashMap<>(); private Map urlPersonaGiuridica; - /** + private final List netWorkInfos = Hooks.netWorkInfos; private final String FILE_TOKEN_LOGIN = "tokenLogin.yaml"; private final String RAGIONE_SOCIALE_BALDASSARRE = "Comune di Milano"; private final String URL_LOGIN_PG = "https://imprese.dev.notifichedigitali.it/"; - **/ + @Autowired private CookieConfig cookieConfig; @@ -276,10 +279,10 @@ public void loginConPersonaGiuridica(Map datiPG) { accediAreaRiservataPGPage.waitLoadAccediAreaRiservataPGPage(); accediAreaRiservataPGPage.clickSpidButton(); - ScegliSpidPGPage scegliSpidPGPage = new ScegliSpidPGPage(this.driver); + ScegliSpidPGPage scegliSpidPGPage = new ScegliSpidPGPage(hooks.getDriver()); scegliSpidPGPage.clickTestButton(); - LoginPGPagoPAPage loginPGPagoPAPage = new LoginPGPagoPAPage(this.driver); + LoginPGPagoPAPage loginPGPagoPAPage = new LoginPGPagoPAPage(hooks.getDriver()); loginPGPagoPAPage.waitLoadLoginPGPage(); loginPGPagoPAPage.insertUsername(datiPG.get("user")); loginPGPagoPAPage.insertPassword(datiPG.get("pwd")); @@ -375,7 +378,7 @@ public void loginPortalePersonaGiuridicaTramiteTokenExchange(String dpFile) { this.dataPopulation.readDataPopulation("tokenLogin.yaml").get("tokendevPGDelegato").toString(); } String url = urlIniziale + token; - this.driver.get(url); + this.hooks.getDriver().get(url); } public String getTokenExchangePGFromFile(String personaGiuridica) { From b224ee0d2b41c0e9d6b515b6684f61badbcd9945 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Thu, 24 Oct 2024 18:17:52 +0200 Subject: [PATCH 122/212] add autowired token --- config/configuration.properties | 34 ++++++++++- .../e2e/config/BearerTokenConfig.java | 61 +++++++++++++++++++ .../frontend/e2e/utility/DataPopulation.java | 2 + .../CucumberSpringIntegration.java | 6 +- .../personaGiuridica/LoginPGPagoPATest.java | 5 +- 5 files changed, 103 insertions(+), 5 deletions(-) create mode 100644 src/main/java/it/pn/frontend/e2e/config/BearerTokenConfig.java diff --git a/config/configuration.properties b/config/configuration.properties index ff9ffb57b..8f454b782 100644 --- a/config/configuration.properties +++ b/config/configuration.properties @@ -6,4 +6,36 @@ headless=true # the folder path must start with / and end with / downloadFilePath=src/test/resources/dataPopulation/downloads/ loadComponentWaitTime=120 -apiBaseUrl=https://webapi.test.notifichedigitali.it/bff/v1/ \ No newline at end of file +apiBaseUrl=https://webapi.test.notifichedigitali.it/bff/v1/ + + + +# | --------- | --------- | ---------------- | ------------------- | +# | TYPE | PLATFORM | ENVIRONMENT | USER | +# |-----------|-----------|------------------|---------------------| +# | DELEGANTE | PF | TEST/DEV | GAIO GIULIO CESARE | +pn.bearer-token.tokentestPFDelegante = ${pn.external.bearer-token.tokentestPFDelegante} +pn.bearer-token.tokendevPFDelegante = ${pn.external.bearer-token.tokendevPFDelegante} +# |-----------|-----------|------------------|---------------------| +# | DELEGATO | PF | TEST/DEV | LUCREZIA BORGIA | +pn.bearer-token.tokentestPFDelegato = ${pn.external.bearer-token.tokentestPFDelegato} +pn.bearer-token.tokendevPFDelegato = ${pn.external.bearer-token.tokendevPFDelegato} +# |-----------|-----------|------------------|---------------------| +# | DELEGANTE | PG | TEST/DEV | CONVIVIO SPA | +pn.bearer-token.tokentestPGDelegante = ${pn.external.bearer-token.tokentestPGDelegante} +pn.bearer-token.tokendevPGDelegante = ${pn.external.bearer-token.tokendevPGDelegante} +# |-----------|-----------|------------------|---------------------| +# | DELEGATO | PG | TEST/DEV | LE EPISTOLAE SRL | +pn.bearer-token.tokentestPGDelegato = ${pn.external.bearer-token.tokentestPGDelegato} +pn.bearer-token.tokendevPGDelegato = ${pn.external.bearer-token.tokendevPGDelegato} +# |-----------|-----------|------------------|---------------------| +# | MITTENTE | PA | TEST/DEV | COMUNE DI VERONA | +pn.bearer-token.tokentestMittente = ${pn.external.bearer-token.tokentestMittente} +pn.bearer-token.tokendevMittente = ${pn.external.bearer-token.tokendevMittente} +# |-----------|-----------|------------------|----------------------| +# | DELEGANTE | PF | TEST/DEV | Cristoforo Colombo | +pn.bearer-token.tokentestPFColombo = ${pn.external.bearer-token.tokentestPFColombo} +# |-----------|-----------|------------------|----------------------| +# | RADD | 1 | TEST | null | +pn.bearer-token.tokentestRaddista1 = ${pn.external.bearer-token.tokentestRaddista1} +# |-----------|-----------|------------------|----------------------| \ No newline at end of file diff --git a/src/main/java/it/pn/frontend/e2e/config/BearerTokenConfig.java b/src/main/java/it/pn/frontend/e2e/config/BearerTokenConfig.java new file mode 100644 index 000000000..5fbcaa3ff --- /dev/null +++ b/src/main/java/it/pn/frontend/e2e/config/BearerTokenConfig.java @@ -0,0 +1,61 @@ +package it.pn.frontend.e2e.config; + +import lombok.Getter; +import lombok.Setter; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.PropertySource; + +/* +*Modifiche principali: +Iniezione di WebDriver: Ho rimosso tutte le istanze di new ChromeDriver(), new FirefoxDriver(), ecc., e ho creato un bean in una classe separata (che andremo a configurare subito dopo) che gestisce la creazione del WebDriver. + +Rimozione di new per altre dipendenze: Ho sostituito la creazione di oggetti come CookieConfig, RestDelegation e RestContact con l'iniezione di dipendenze utilizzando @Autowired. + +Configurazione di un WebDriver come Bean +* +* +* */ +@Getter +@Configuration +@PropertySource( value = "file:config/bearer-token-test.properties", ignoreResourceNotFound = true ) +public class BearerTokenConfig { + + + @Value("${pn.bearer-token.tokentestPFDelegante}") + private String tokentestPFDelegante; + + @Value("${ pn.bearer-token.tokendevPFDelegante}") + private String tokendevPFDelegante; + + @Value("${pn.bearer-token.tokentestPFDelegato}") + private String tokentestPFDelegato; + + @Value("${pn.bearer-token.tokendevPFDelegato}") + private String tokendevPFDelegato; + + @Value("${pn.bearer-token.tokentestPGDelegante}") + private String tokentestPGDelegante; + + @Value("${pn.bearer-token.tokendevPGDelegante}") + private String tokendevPGDelegante; + + @Value("${pn.bearer-token.tokentestPGDelegato}") + private String tokentestPGDelegato; + + @Value("${pn.bearer-token.tokendevPGDelegato}") + private String tokendevPGDelegato; + + @Value("${pn.bearer-token.tokentestMittente}") + private String tokentestMittente; + + @Value("${pn.bearer-token.tokendevMittente}") + private String tokendevMittente; + + @Value("${pn.bearer-token.tokentestPFColombo}") + private String tokentestPFColombo; + + @Value("${pn.bearer-token.tokentestRaddista1}") + private String tokentestRaddista1; + +} diff --git a/src/main/java/it/pn/frontend/e2e/utility/DataPopulation.java b/src/main/java/it/pn/frontend/e2e/utility/DataPopulation.java index 356f58356..dad59ebdf 100644 --- a/src/main/java/it/pn/frontend/e2e/utility/DataPopulation.java +++ b/src/main/java/it/pn/frontend/e2e/utility/DataPopulation.java @@ -8,6 +8,7 @@ import org.junit.jupiter.api.Assertions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Component; import java.io.File; import java.io.IOException; @@ -15,6 +16,7 @@ import java.util.HashMap; import java.util.Map; +@Component public class DataPopulation { private static final Logger logger = LoggerFactory.getLogger("DataPopulation"); diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java index b1476b275..6b17a9d22 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java @@ -1,10 +1,12 @@ package it.pn.frontend.e2e.stepDefinitions; import io.cucumber.spring.CucumberContextConfiguration; +import it.pn.frontend.e2e.config.BearerTokenConfig; import it.pn.frontend.e2e.config.WebDriverConfig; import it.pn.frontend.e2e.listeners.LoggerStartupListener; import it.pn.frontend.e2e.listeners.NetWorkInfo; import it.pn.frontend.e2e.utility.CookieConfig; +import it.pn.frontend.e2e.utility.DataPopulation; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.scheduling.annotation.EnableScheduling; @@ -15,7 +17,9 @@ CookieConfig.class, LoggerStartupListener.class, NetWorkInfo.class, - WebDriverConfig.class + WebDriverConfig.class, + DataPopulation.class, + BearerTokenConfig.class }) @EnableScheduling @EnableConfigurationProperties diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java index e24a26fcd..23c327884 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java @@ -67,13 +67,10 @@ public class LoginPGPagoPATest { private HeaderPGSection headerPGSection; private AccediAreaRiservataPGPage accediAreaRiservataPGPage; - private DataPopulation dataPopulation = new DataPopulation(); private Map datiPersonaGiuridica = new HashMap<>(); private Map urlPersonaGiuridica; - - private final List netWorkInfos = Hooks.netWorkInfos; private final String FILE_TOKEN_LOGIN = "tokenLogin.yaml"; private final String RAGIONE_SOCIALE_BALDASSARRE = "Comune di Milano"; private final String URL_LOGIN_PG = "https://imprese.dev.notifichedigitali.it/"; @@ -85,6 +82,8 @@ public class LoginPGPagoPATest { private WebDriverConfig webDriverConfig; @Autowired private HooksNew hooks; + @Autowired + private DataPopulation dataPopulation; From bf28e4273e6f0235a2664dedceee6f708ced9c68 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Thu, 24 Oct 2024 18:49:22 +0200 Subject: [PATCH 123/212] update gestione token --- .../personaGiuridica/LoginPGPagoPATest.java | 28 +++++++++++-------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java index 23c327884..d45b5ff13 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java @@ -8,6 +8,7 @@ import it.pn.frontend.e2e.api.mittente.SpidLoginMittente; import it.pn.frontend.e2e.api.mittente.SpidTestEnvWestEuropeAzureContainerIoContinueResponse; import it.pn.frontend.e2e.api.mittente.SpidTestEnvWestEuropeAzureContainerIoLogin; +import it.pn.frontend.e2e.config.BearerTokenConfig; import it.pn.frontend.e2e.config.CustomHttpClient; import it.pn.frontend.e2e.config.WebDriverConfig; import it.pn.frontend.e2e.listeners.Hooks; @@ -71,7 +72,7 @@ public class LoginPGPagoPATest { private Map datiPersonaGiuridica = new HashMap<>(); private Map urlPersonaGiuridica; - private final String FILE_TOKEN_LOGIN = "tokenLogin.yaml"; + // private final String FILE_TOKEN_LOGIN = "tokenLogin.yaml"; private final String RAGIONE_SOCIALE_BALDASSARRE = "Comune di Milano"; private final String URL_LOGIN_PG = "https://imprese.dev.notifichedigitali.it/"; @@ -82,10 +83,12 @@ public class LoginPGPagoPATest { private WebDriverConfig webDriverConfig; @Autowired private HooksNew hooks; + + //TODO da rimuovere anche il discorso dei file yaml.. @Autowired private DataPopulation dataPopulation; - - + @Autowired + private BearerTokenConfig bearerTokenConfig; @Given("Login Page persona giuridica viene visualizzata") public void loginPagePersonaGiuridicaVieneVisualizzata() { @@ -105,17 +108,20 @@ public void loginMittenteConTokenExchange(String personaGiuridica) { String token = ""; switch (environment) { case "dev" -> token = personaGiuridica.equalsIgnoreCase("delegante") ? - dataPopulation.readDataPopulation(FILE_TOKEN_LOGIN).get("tokendevPGDelegante").toString() - : dataPopulation.readDataPopulation(FILE_TOKEN_LOGIN).get("tokendevPGDelegato").toString(); + bearerTokenConfig.getTokendevPGDelegante() + : + bearerTokenConfig.getTokendevPGDelegato(); case "test" -> token = personaGiuridica.equalsIgnoreCase("delegante") ? - dataPopulation.readDataPopulation(FILE_TOKEN_LOGIN).get("tokentestPGDelegante").toString() - : dataPopulation.readDataPopulation(FILE_TOKEN_LOGIN).get("tokentestPGDelegato").toString(); + bearerTokenConfig.getTokentestPGDelegante() + : + bearerTokenConfig.getTokentestPGDelegato(); default -> { logger.error("Ambiente non valido"); Assertions.fail("Ambiente non valido o non trovato!"); } } + String urlLogin = "https://imprese." + environment + ".notifichedigitali.it/#selfCareToken=" + token; hooks.getDriver().get(urlLogin); logger.info("Login effettuato con successo"); @@ -386,13 +392,13 @@ public String getTokenExchangePGFromFile(String personaGiuridica) { String token = ""; switch (environment) { case "dev" -> token = personaGiuridica.equalsIgnoreCase("delegante") ? - dataPopulation.readDataPopulation(FILE_TOKEN_LOGIN).get("tokendevPGDelegante").toString() + bearerTokenConfig.getTokendevPGDelegante() : - dataPopulation.readDataPopulation(FILE_TOKEN_LOGIN).get("tokendevPGDelegato").toString(); + bearerTokenConfig.getTokendevPGDelegato(); case "test" -> token = personaGiuridica.equalsIgnoreCase("delegante") ? - dataPopulation.readDataPopulation(FILE_TOKEN_LOGIN).get("tokentestPGDelegante").toString() + bearerTokenConfig.getTokentestPGDelegante() : - dataPopulation.readDataPopulation(FILE_TOKEN_LOGIN).get("tokentestPGDelegato").toString(); + bearerTokenConfig.getTokentestPGDelegato(); default -> { logger.error("Ambiente non valido"); Assertions.fail("Ambiente non valido o non trovato!"); From c5e9d565969387e1ca229a098d4f2803b07edb9c Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Thu, 24 Oct 2024 18:55:49 +0200 Subject: [PATCH 124/212] add properties --- config/configuration.properties | 5 ++++- .../it/pn/frontend/e2e/config/WebDriverConfig.java | 10 ++++++++++ .../personaGiuridica/LoginPGPagoPATest.java | 10 +++++----- 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/config/configuration.properties b/config/configuration.properties index 8f454b782..e59701d67 100644 --- a/config/configuration.properties +++ b/config/configuration.properties @@ -8,7 +8,10 @@ downloadFilePath=src/test/resources/dataPopulation/downloads/ loadComponentWaitTime=120 apiBaseUrl=https://webapi.test.notifichedigitali.it/bff/v1/ - +#---------------------------------------------------------------- +ragione.sociale.baldassarre = "Comune di Milano"; +url.login.pg.dev = "https://imprese.dev.notifichedigitali.it/"; +url.login.pg.test = "https://imprese.test.notifichedigitali.it/"; # | --------- | --------- | ---------------- | ------------------- | # | TYPE | PLATFORM | ENVIRONMENT | USER | diff --git a/src/main/java/it/pn/frontend/e2e/config/WebDriverConfig.java b/src/main/java/it/pn/frontend/e2e/config/WebDriverConfig.java index 97630d643..c14e5d973 100644 --- a/src/main/java/it/pn/frontend/e2e/config/WebDriverConfig.java +++ b/src/main/java/it/pn/frontend/e2e/config/WebDriverConfig.java @@ -52,4 +52,14 @@ public class WebDriverConfig { @Value("${apiBaseUrl}") private String baseUrl; + @Value("${ragione.sociale.baldassarre}") + private String ragioneSocialeBaldassarre; + + @Value("${ url.login.pg.dev}") + private String baseUrlPgDev; + + @Value("${ url.login.pg.test}") + private String baseUrlPgTest; + + } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java index d45b5ff13..bf744c0cd 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java @@ -73,8 +73,8 @@ public class LoginPGPagoPATest { private Map urlPersonaGiuridica; // private final String FILE_TOKEN_LOGIN = "tokenLogin.yaml"; - private final String RAGIONE_SOCIALE_BALDASSARRE = "Comune di Milano"; - private final String URL_LOGIN_PG = "https://imprese.dev.notifichedigitali.it/"; + //private final String RAGIONE_SOCIALE_BALDASSARRE = "Comune di Milano"; + // private final String URL_LOGIN_PG = "https://imprese.dev.notifichedigitali.it/"; @Autowired @@ -94,9 +94,9 @@ public class LoginPGPagoPATest { public void loginPagePersonaGiuridicaVieneVisualizzata() { String variabileAmbiente = webDriverConfig.getEnvironment(); switch (variabileAmbiente) { - case "dev" -> hooks.getDriver().get(URL_LOGIN_PG); + case "dev" -> hooks.getDriver().get(webDriverConfig.getBaseUrlPgDev()); case "test", "uat" -> - hooks.getDriver().get(URL_LOGIN_PG.replace("dev", variabileAmbiente)); + hooks.getDriver().get(webDriverConfig.getBaseUrlPgDev().replace("dev", variabileAmbiente)); default -> Assertions.fail("Non stato possibile trovare l'ambiente inserito, Inserisci in -Denvironment test o dev o uat"); } @@ -136,7 +136,7 @@ public void loginMittenteConTokenExchange(String personaGiuridica) { Map personaGiuridicaFile = dataPopulation.readDataPopulation("personaGiuridica.yaml"); notifichePGPage.waitLoadPiattaformaNotificaPage(personaGiuridicaFile.get("ragioneSociale").toString()); } else if (personaGiuridica.equalsIgnoreCase("baldassarre")) { - notifichePGPage.waitLoadPiattaformaNotificaPage(RAGIONE_SOCIALE_BALDASSARRE); + notifichePGPage.waitLoadPiattaformaNotificaPage(webDriverConfig.getRagioneSocialeBaldassarre()); } else { Map personaGiuridicaFile = dataPopulation.readDataPopulation("delegatoPG.yaml"); notifichePGPage.waitLoadPiattaformaNotificaPage(personaGiuridicaFile.get("ragioneSociale").toString()); From c409426f87547c8fe76f3e9d352616fb66dd5187 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Thu, 24 Oct 2024 21:04:39 +0200 Subject: [PATCH 125/212] update login pf --- .../LoginPersonaFisicaPagoPA.java | 21 +++++++++++-------- .../personaGiuridica/LoginPGPagoPATest.java | 13 ------------ 2 files changed, 12 insertions(+), 22 deletions(-) diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java index 41156d632..9088a6bae 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java @@ -8,6 +8,7 @@ import it.pn.frontend.e2e.api.personaFisica.SpidDemoLogin; import it.pn.frontend.e2e.api.personaFisica.SpidDemoStart; import it.pn.frontend.e2e.api.personaFisica.SpidLogin; +import it.pn.frontend.e2e.config.BearerTokenConfig; import it.pn.frontend.e2e.config.WebDriverConfig; import it.pn.frontend.e2e.listeners.HooksNew; import it.pn.frontend.e2e.listeners.NetWorkInfo; @@ -37,9 +38,10 @@ public class LoginPersonaFisicaPagoPA { private WebDriverConfig webDriverConfig; @Autowired private CookieConfig cookieConfig; + @Autowired + private BearerTokenConfig bearerTokenConfig; private Map datiDelegato; - private static final String FILE_TOKEN_LOGIN = "tokenLogin.yaml"; @@ -61,6 +63,7 @@ public void loginPageDestinatarioVieneVisualizzata(String datipersonaFisica) { @Given("Login Page persona fisica test viene visualizzata") public void loginPageDestinatarioVieneVisualizzataConUrl() { logger.info("ENVIROMENT...: "+ webDriverConfig.getEnvironment()); + //TODO Parametrizzare.. String url = "https://cittadini.test.notifichedigitali.it/"; this.hooks.getDriver().get(url); @@ -74,13 +77,13 @@ public void loginMittenteConTokenExchange(String personaFisica) { String token = ""; switch (environment) { case "dev" -> token = personaFisica.equalsIgnoreCase("delegante") ? - dataPopulation.readDataPopulation(FILE_TOKEN_LOGIN).get("tokendevPFDelegante").toString() + bearerTokenConfig.getTokendevPFDelegante() : - dataPopulation.readDataPopulation(FILE_TOKEN_LOGIN).get("tokendevPFDelegato").toString(); + bearerTokenConfig.getTokendevPGDelegato(); case "test" -> token = personaFisica.equalsIgnoreCase("delegante") ? - dataPopulation.readDataPopulation(FILE_TOKEN_LOGIN).get("tokentestPFDelegante").toString() + bearerTokenConfig.getTokentestPFDelegante() : - dataPopulation.readDataPopulation(FILE_TOKEN_LOGIN).get("tokentestPFDelegato").toString(); + bearerTokenConfig.getTokentestPFDelegato(); default -> { logger.error("Ambiente non valido"); Assertions.fail("Ambiente non valido o non trovato!"); @@ -639,13 +642,13 @@ public String getTokenExchangePFFromFile(String personaFisica) { String token = ""; switch (environment) { case "dev" -> token = personaFisica.equalsIgnoreCase("delegante") ? - dataPopulation.readDataPopulation(FILE_TOKEN_LOGIN).get("tokendevPFDelegante").toString() + bearerTokenConfig.getTokendevPFDelegante() : - dataPopulation.readDataPopulation(FILE_TOKEN_LOGIN).get("tokendevPFDelegato").toString(); + bearerTokenConfig.getTokendevPGDelegato(); case "test" -> token = personaFisica.equalsIgnoreCase("delegante") ? - dataPopulation.readDataPopulation(FILE_TOKEN_LOGIN).get("tokentestPFDelegante").toString() + bearerTokenConfig.getTokentestPFDelegante() : - dataPopulation.readDataPopulation(FILE_TOKEN_LOGIN).get("tokentestPFDelegato").toString(); + bearerTokenConfig.getTokentestPFDelegato(); default -> { logger.error("Ambiente non valido"); Assertions.fail("Ambiente non valido o non trovato!"); diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java index bf744c0cd..e5a66009d 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java @@ -56,14 +56,6 @@ public class LoginPGPagoPATest { @Autowired private List netWorkInfos; - @Value("${tokenLogin.file}") - private String FILE_TOKEN_LOGIN; - - @Value("${ragioneSociale.baldassarre}") - private String RAGIONE_SOCIALE_BALDASSARRE; - - @Value("${url.login.pg}") - private String URL_LOGIN_PG; **/ private HeaderPGSection headerPGSection; @@ -72,11 +64,6 @@ public class LoginPGPagoPATest { private Map datiPersonaGiuridica = new HashMap<>(); private Map urlPersonaGiuridica; - // private final String FILE_TOKEN_LOGIN = "tokenLogin.yaml"; - //private final String RAGIONE_SOCIALE_BALDASSARRE = "Comune di Milano"; - // private final String URL_LOGIN_PG = "https://imprese.dev.notifichedigitali.it/"; - - @Autowired private CookieConfig cookieConfig; @Autowired From 2c16707fc4f13709dbc927c1e5d273b9af976d22 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Thu, 24 Oct 2024 22:03:50 +0200 Subject: [PATCH 126/212] add dependency pom --- pom.xml | 6 ++ .../frontend/e2e/utility/DataPopulation.java | 1 + .../CucumberSpringIntegration.java | 4 +- .../LoginPersonaFisicaPagoPA.java | 2 + .../mittente/LoginMittentePagoPA.java | 97 ++++++++++--------- 5 files changed, 64 insertions(+), 46 deletions(-) diff --git a/pom.xml b/pom.xml index 5153fc962..ac6068b95 100644 --- a/pom.xml +++ b/pom.xml @@ -45,6 +45,12 @@ spring-boot-starter-mail + + org.yaml + snakeyaml + 1.33 + + com.fasterxml.jackson.datatype diff --git a/src/main/java/it/pn/frontend/e2e/utility/DataPopulation.java b/src/main/java/it/pn/frontend/e2e/utility/DataPopulation.java index dad59ebdf..f9abc1dd4 100644 --- a/src/main/java/it/pn/frontend/e2e/utility/DataPopulation.java +++ b/src/main/java/it/pn/frontend/e2e/utility/DataPopulation.java @@ -10,6 +10,7 @@ import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; + import java.io.File; import java.io.IOException; import java.time.ZoneId; diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java index 6b17a9d22..7f556b139 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java @@ -19,7 +19,9 @@ NetWorkInfo.class, WebDriverConfig.class, DataPopulation.class, - BearerTokenConfig.class + BearerTokenConfig.class, + DataPopulation.class + }) @EnableScheduling @EnableConfigurationProperties diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java index 9088a6bae..18a020ce8 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java @@ -41,6 +41,7 @@ public class LoginPersonaFisicaPagoPA { @Autowired private BearerTokenConfig bearerTokenConfig; + //TODO Parametrizzare private Map datiDelegato; @@ -48,6 +49,7 @@ public class LoginPersonaFisicaPagoPA { @Given("Login Page persona fisica {string} viene visualizzata") public void loginPageDestinatarioVieneVisualizzata(String datipersonaFisica) { DataPopulation dataPopulation = new DataPopulation(); + //TODO Parametrizzzare.......... this.datiPersonaFisica = dataPopulation.readDataPopulation(datipersonaFisica + ".yaml"); // String variabileAmbiente = System.getProperty("environment"); String variabileAmbiente = webDriverConfig.getEnvironment(); diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/LoginMittentePagoPA.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/LoginMittentePagoPA.java index 0da51d5db..3aa9d4790 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/LoginMittentePagoPA.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/LoginMittentePagoPA.java @@ -8,8 +8,10 @@ import it.pn.frontend.e2e.api.mittente.SpidLoginMittente; import it.pn.frontend.e2e.api.mittente.SpidTestEnvWestEuropeAzureContainerIoContinueResponse; import it.pn.frontend.e2e.api.mittente.SpidTestEnvWestEuropeAzureContainerIoLogin; +import it.pn.frontend.e2e.config.BearerTokenConfig; import it.pn.frontend.e2e.config.WebDriverConfig; import it.pn.frontend.e2e.listeners.Hooks; +import it.pn.frontend.e2e.listeners.HooksNew; import it.pn.frontend.e2e.pages.mittente.*; import it.pn.frontend.e2e.section.CookiesSection; import it.pn.frontend.e2e.section.mittente.HeaderPASection; @@ -38,35 +40,41 @@ public class LoginMittentePagoPA { // WebDriver gestito con Spring, inizializzato in modo lazy per ottimizzare le risorse da capire? //@Lazy - @Autowired - private WebDriver driver; + //@Autowired + //private WebDriver driver; - @Autowired - private DataPopulation dataPopulation; + @Autowired + private DataPopulation dataPopulation; // Percorso del file token specificato nelle configurazioni, con valore di default 'tokenLogin.yaml' - @Value("${token.login.file:tokenLogin.yaml}") - private String FILE_TOKEN_LOGIN; + // @Value("${token.login.file:tokenLogin.yaml}") + // private String FILE_TOKEN_LOGIN; private Map datiMittente; private Map urlMittente; + @Autowired + private HooksNew hooks; + @Autowired private CookieConfig cookieConfig; @Autowired private WebDriverConfig webDriverConfig; + @Autowired + private BearerTokenConfig bearerTokenConfig; + @Given("Login Page mittente {string} viene visualizzata") public void loginPageMittenteVieneVisualizzata(String datiMittenteFile) { - logger.info("Si recupera l'ambiente e si visualizza la pagina di login"); + logger.info("Si recupera l'ambiente e si visualizza la pagina di login 1"); this.datiMittente = dataPopulation.readDataPopulation(datiMittenteFile + ".yaml"); String variabileAmbiente = webDriverConfig.getEnvironment(); switch (variabileAmbiente) { - case "dev" -> this.driver.get(this.datiMittente.get("url").toString()); + case "dev" ->hooks.getDriver().get(this.datiMittente.get("url").toString()); case "test", "uat" -> - this.driver.get(this.datiMittente.get("url").toString().replace("dev", variabileAmbiente)); + hooks.getDriver().get(this.datiMittente.get("url").toString().replace("dev", variabileAmbiente)); default -> Assertions.fail("Non stato possibile trovare l'ambiente inserito, Inserisci in -Denvironment test o dev o uat"); } @@ -76,12 +84,11 @@ public void loginPageMittenteVieneVisualizzata(String datiMittenteFile) { public void loginPageMittenteVieneVisualizzata(Map datiMittenteTable) { logger.info("Si recupera l'ambiente e si visualizza la pagina di login"); String variabileAmbiente = webDriverConfig.getEnvironment(); - this.datiMittente = dataPopulation.readDataPopulation("mittente.yaml"); switch (variabileAmbiente) { - case "dev" -> this.driver.get(datiMittenteTable.get("url")); + case "dev" -> hooks.getDriver().get(datiMittenteTable.get("url")); case "test", "uat" -> - this.driver.get(datiMittenteTable.get("url").replace("dev", variabileAmbiente)); + hooks.getDriver().get(datiMittenteTable.get("url").replace("dev", variabileAmbiente)); default -> Assertions.fail("Non stato possibile trovare l'ambiente inserito, Inserisci in -Denvironment test o dev o uat"); } @@ -95,9 +102,9 @@ public void loginMittenteConTokenExchange() { String token = ""; switch (environment) { case "dev" -> - token = dataPopulation.readDataPopulation(FILE_TOKEN_LOGIN).get("tokendevMittente").toString(); + token = bearerTokenConfig.getTokendevMittente(); case "test" -> - token = dataPopulation.readDataPopulation(FILE_TOKEN_LOGIN).get("tokentestMittente").toString(); + token = bearerTokenConfig.getTokentestMittente(); default -> { logger.error("Ambiente non valido"); Assertions.fail("Ambiente non valido o non trovato!"); @@ -106,15 +113,15 @@ public void loginMittenteConTokenExchange() { // Si effettua il login con token exchange String urlLogin = "https://selfcare." + environment + ".notifichedigitali.it/#selfCareToken=" + token; - this.driver.get(urlLogin); + hooks.getDriver().get(urlLogin); logger.info("Login effettuato con successo"); // Attesa statica di 10 secondi - considerare l'uso di WebDriverWait per migliorare l'efficienza WebTool.waitTime(10); // Si visualizza la dashboard e si verifica che gli elementi base siano presenti (header e title della pagina) - HeaderPASection headerPASection = new HeaderPASection(this.driver); + HeaderPASection headerPASection = new HeaderPASection(hooks.getDriver()); headerPASection.waitLoadHeaderSection(); - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(this.driver); + PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(hooks.getDriver()); piattaformaNotifichePage.waitLoadPiattaformaNotifichePAPage(); } @@ -125,16 +132,16 @@ public void loginConMittente(String datiMittenteFile) { this.datiMittente = dataPopulation.readDataPopulation(datiMittenteFile + ".yaml"); // Creazione dell'oggetto pagina per la gestione del pre-accesso all'area riservata - PreAccediAreaRiservataPAPage preAccediAreaRiservataPAPage = new PreAccediAreaRiservataPAPage(this.driver); + PreAccediAreaRiservataPAPage preAccediAreaRiservataPAPage = new PreAccediAreaRiservataPAPage(hooks.getDriver()); preAccediAreaRiservataPAPage.waitLoadPreAccediAreaRiservataPAPage(); preAccediAreaRiservataPAPage.selezionaProcediAlLoginButton(); // Verifica della presenza dell'URL e dei cookie per proseguire con l'accettazione dei cookie - if (driver.getCurrentUrl().contains("https://uat.selfcare.pagopa.it/") || + if (hooks.getDriver().getCurrentUrl().contains("https://uat.selfcare.pagopa.it/") || !cookieConfig.isCookieEnabled()) { logger.info("cookies start"); CookiesSection cookiesPage; - cookiesPage = new CookiesSection(this.driver); + cookiesPage = new CookiesSection(hooks.getDriver()); cookiesPage.selezionaAccettaTuttiButton(); if (cookiesPage.waitLoadCookiesPage()) { cookiesPage.selezionaAccettaTuttiButton(); @@ -142,25 +149,25 @@ public void loginConMittente(String datiMittenteFile) { logger.info("cookies end"); } - AcccediAreaRiservataPAPage acccediAreaRiservataPAPage = new AcccediAreaRiservataPAPage(this.driver); + AcccediAreaRiservataPAPage acccediAreaRiservataPAPage = new AcccediAreaRiservataPAPage(hooks.getDriver()); acccediAreaRiservataPAPage.waitLoadLoginPageMittente(); acccediAreaRiservataPAPage.selezionareSpidButton(); - ScegliSpidPAPage scegliSpidPAPage = new ScegliSpidPAPage(this.driver); + ScegliSpidPAPage scegliSpidPAPage = new ScegliSpidPAPage(hooks.getDriver()); scegliSpidPAPage.selezionareTestButton(); - LoginPAPage loginPAPage = new LoginPAPage(this.driver); + LoginPAPage loginPAPage = new LoginPAPage(hooks.getDriver()); loginPAPage.waitLoadLoginPAPage(); loginPAPage.inserisciUtenete(this.datiMittente.get("user").toString()); loginPAPage.inserisciPassword(this.datiMittente.get("pwd").toString()); loginPAPage.selezionaInviaDati(); - AutorizziInvioDatiPAPage autorizziInvioDatiPAPage = new AutorizziInvioDatiPAPage(this.driver); + AutorizziInvioDatiPAPage autorizziInvioDatiPAPage = new AutorizziInvioDatiPAPage(hooks.getDriver()); autorizziInvioDatiPAPage.waitLoadAutorizziInvioDatiPAPage(); autorizziInvioDatiPAPage.selezionareInvia(); - SelezionaEntePAPage selezionaEntePAPage = new SelezionaEntePAPage(this.driver); + SelezionaEntePAPage selezionaEntePAPage = new SelezionaEntePAPage(hooks.getDriver()); selezionaEntePAPage.waitLoadSelezionaEntePAPage(); selezionaEntePAPage.cercaComune(this.datiMittente.get("comune").toString()); selezionaEntePAPage.selezionareComune(this.datiMittente.get("comune").toString()); @@ -171,15 +178,15 @@ public void loginConMittente(String datiMittenteFile) { public void loginConMittente(Map datiMittenteFile) { logger.info("Si effetua la Login dal portale mittente"); - PreAccediAreaRiservataPAPage preAccediAreaRiservataPAPage = new PreAccediAreaRiservataPAPage(this.driver); + PreAccediAreaRiservataPAPage preAccediAreaRiservataPAPage = new PreAccediAreaRiservataPAPage(hooks.getDriver()); preAccediAreaRiservataPAPage.waitLoadPreAccediAreaRiservataPAPage(); preAccediAreaRiservataPAPage.selezionaProcediAlLoginButton(); - if (driver.getCurrentUrl().contains("https://uat.selfcare.pagopa.it/") || + if (hooks.getDriver().getCurrentUrl().contains("https://uat.selfcare.pagopa.it/") || !cookieConfig.isCookieEnabled()) { logger.info("cookies start"); CookiesSection cookiesPage; - cookiesPage = new CookiesSection(this.driver); + cookiesPage = new CookiesSection(hooks.getDriver()); cookiesPage.selezionaAccettaTuttiButton(); if (cookiesPage.waitLoadCookiesPage()) { cookiesPage.selezionaAccettaTuttiButton(); @@ -187,25 +194,25 @@ public void loginConMittente(Map datiMittenteFile) { logger.info("cookies end"); } - AcccediAreaRiservataPAPage acccediAreaRiservataPAPage = new AcccediAreaRiservataPAPage(this.driver); + AcccediAreaRiservataPAPage acccediAreaRiservataPAPage = new AcccediAreaRiservataPAPage(hooks.getDriver()); acccediAreaRiservataPAPage.waitLoadLoginPageMittente(); acccediAreaRiservataPAPage.selezionareSpidButton(); - ScegliSpidPAPage scegliSpidPAPage = new ScegliSpidPAPage(this.driver); + ScegliSpidPAPage scegliSpidPAPage = new ScegliSpidPAPage(hooks.getDriver()); scegliSpidPAPage.selezionareTestButton(); - LoginPAPage loginPAPage = new LoginPAPage(this.driver); + LoginPAPage loginPAPage = new LoginPAPage(hooks.getDriver()); loginPAPage.waitLoadLoginPAPage(); loginPAPage.inserisciUtenete(datiMittenteFile.get("user")); loginPAPage.inserisciPassword(datiMittenteFile.get("pwd")); loginPAPage.selezionaInviaDati(); - AutorizziInvioDatiPAPage autorizziInvioDatiPAPage = new AutorizziInvioDatiPAPage(this.driver); + AutorizziInvioDatiPAPage autorizziInvioDatiPAPage = new AutorizziInvioDatiPAPage(hooks.getDriver()); autorizziInvioDatiPAPage.waitLoadAutorizziInvioDatiPAPage(); autorizziInvioDatiPAPage.selezionareInvia(); - SelezionaEntePAPage selezionaEntePAPage = new SelezionaEntePAPage(this.driver); + SelezionaEntePAPage selezionaEntePAPage = new SelezionaEntePAPage(hooks.getDriver()); selezionaEntePAPage.waitLoadSelezionaEntePAPage(); selezionaEntePAPage.cercaComune(datiMittenteFile.get("comune")); selezionaEntePAPage.selezionareComune(datiMittenteFile.get("comune")); @@ -236,9 +243,9 @@ public void portaleMittenteIsDisplayed() throws InterruptedException { Assertions.fail("Codice risposta ricevuto per questo end point: '" + this.urlMittente.get("urlPortale") + "' è : " + this.urlMittente.get("responseCode")); } - this.driver.get(this.urlMittente.get("urlPortale")); + hooks.getDriver().get(this.urlMittente.get("urlPortale")); - SelezionaEntePAPage selezionaEntePAPage = new SelezionaEntePAPage(this.driver); + SelezionaEntePAPage selezionaEntePAPage = new SelezionaEntePAPage(hooks.getDriver()); selezionaEntePAPage.waitLoadSelezionaEntePAPage(); selezionaEntePAPage.cercaComune(this.datiMittente.get("comune").toString()); selezionaEntePAPage.selezionareComune(this.datiMittente.get("comune").toString()); @@ -378,10 +385,10 @@ private void readurlPortaleMittente(String user, String password) { public void homePageMittenteVieneVisualizzataCorrettamente() { logger.info("Home page mittente viene visualizzata correttamente"); - HeaderPASection headerPASection = new HeaderPASection(this.driver); + HeaderPASection headerPASection = new HeaderPASection(hooks.getDriver()); headerPASection.waitLoadHeaderSection(); - AreaRiservataPAPage areaRiservataPAPage = new AreaRiservataPAPage(this.driver); + AreaRiservataPAPage areaRiservataPAPage = new AreaRiservataPAPage(hooks.getDriver()); areaRiservataPAPage.waitLoadAreaRiservataPAPage(); if (areaRiservataPAPage.verificaCodiceFiscale(this.datiMittente.get("codiceFiscale").toString())) { logger.info("Codice fiscale presente"); @@ -403,18 +410,18 @@ public void logoutDaPortaleMittente() { WebTool.waitTime(2); - HeaderPASection headerPASection = new HeaderPASection(this.driver); + HeaderPASection headerPASection = new HeaderPASection(hooks.getDriver()); headerPASection.waitLoadHeaderSection(); headerPASection.selezionaEsciButton(); if (!cookieConfig.isCookieEnabled()) { - CookiesSection cookiesSection = new CookiesSection(this.driver); + CookiesSection cookiesSection = new CookiesSection(hooks.getDriver()); if (cookiesSection.waitLoadCookiesPage()) { cookiesSection.selezionaAccettaTuttiButton(); } } - AcccediAreaRiservataPAPage acccediAreaRiservataPAPage = new AcccediAreaRiservataPAPage(this.driver); + AcccediAreaRiservataPAPage acccediAreaRiservataPAPage = new AcccediAreaRiservataPAPage(hooks.getDriver()); acccediAreaRiservataPAPage.waitLoadLoginPageMittente(); WebTool.waitTime(5); @@ -429,26 +436,26 @@ public void loginConMittenteTramiteTokenExchange() { String variabileAmbiente = webDriverConfig.getEnvironment(); String urlInziale = "https://selfcare." + variabileAmbiente + ".notifichedigitali.it/#selfCareToken="; String token; - DataPopulation dataPopulation = new DataPopulation(); + if (variabileAmbiente.equalsIgnoreCase("test")) { token = dataPopulation.readDataPopulation("tokenLogin.yaml").get("tokentestMittente").toString(); } else { token = dataPopulation.readDataPopulation("tokenLogin.yaml").get("tokendevMittente").toString(); } String url = urlInziale + token; - driver.get(url); + hooks.getDriver().get(url); } @And("Si clicca sul bottone test") public void clickTestButton() { - AcccediAreaRiservataPAPage acccediAreaRiservataPAPage = new AcccediAreaRiservataPAPage(this.driver); + AcccediAreaRiservataPAPage acccediAreaRiservataPAPage = new AcccediAreaRiservataPAPage(hooks.getDriver()); acccediAreaRiservataPAPage.clickTestBottone(); } @And("Si clicca bottone accetta cookies") public void clickAcceptCookies() { // Gestione della sezione cookies, accettando i cookie se necessario - CookiesSection cookiesPage = new CookiesSection(this.driver); + CookiesSection cookiesPage = new CookiesSection(hooks.getDriver()); if (cookiesPage.waitLoadCookiesPage()) { cookiesPage.selezionaAccettaTuttiButton(); } @@ -456,7 +463,7 @@ public void clickAcceptCookies() { @And("Si clicca sul bottone esci") public void siCLiccaSulBottoneEsci() { - HeaderPASection headerPASection = new HeaderPASection(this.driver); + HeaderPASection headerPASection = new HeaderPASection(hooks.getDriver()); headerPASection.selezionaEsciButton(); } } From a9fbf5d0ee3361448c3e3a0b73219ab74f213547 Mon Sep 17 00:00:00 2001 From: scritelli Date: Fri, 25 Oct 2024 09:16:17 +0200 Subject: [PATCH 127/212] Ristrutturazione classe con springboot in attesa di test con la suite della login --- .../personaGiuridica/HeaderPGSection.java | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/section/destinatario/personaGiuridica/HeaderPGSection.java b/src/main/java/it/pn/frontend/e2e/section/destinatario/personaGiuridica/HeaderPGSection.java index 58584349d..aa5f98976 100644 --- a/src/main/java/it/pn/frontend/e2e/section/destinatario/personaGiuridica/HeaderPGSection.java +++ b/src/main/java/it/pn/frontend/e2e/section/destinatario/personaGiuridica/HeaderPGSection.java @@ -1,7 +1,6 @@ package it.pn.frontend.e2e.section.destinatario.personaGiuridica; import it.pn.frontend.e2e.common.BasePage; -import it.pn.frontend.e2e.listeners.HooksNew; import org.junit.jupiter.api.Assertions; import org.openqa.selenium.By; import org.openqa.selenium.TimeoutException; @@ -12,17 +11,20 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +@Component public class HeaderPGSection extends BasePage { - private static final Logger logger = LoggerFactory.getLogger("HeaderPGSection"); + private static final Logger logger = LoggerFactory.getLogger(HeaderPGSection.class); - public HeaderPGSection(WebDriver driver) { + @Autowired + public HeaderPGSection(WebDriver driver) { // Il costruttore ora usa l'annotazione @Autowired super(driver); } @FindBy(xpath = "//button[@title = 'Esci']") - WebElement esciButton; + private WebElement esciButton; public void waitLoadHeaderPGPage() { try { @@ -31,14 +33,13 @@ public void waitLoadHeaderPGPage() { getWebDriverWait(30).until(ExpectedConditions.visibilityOfElementLocated(titlePageBy)); getWebDriverWait(30).until(ExpectedConditions.visibilityOfElementLocated(esciButtonBy)); logger.info("HeaderSectionPG caricata correttamente"); - } catch (TimeoutException e){ - logger.error("HeaderSectionPG non caricata correttamente con errrore: "+e.getMessage()); - Assertions.fail("HeaderSectionPG non caricata correttamente con errrore: "+e.getMessage()); + } catch (TimeoutException e) { + logger.error("HeaderSectionPG non caricata correttamente con errore: " + e.getMessage()); + Assertions.fail("HeaderSectionPG non caricata correttamente con errore: " + e.getMessage()); } } public void clickEsciButton() { this.esciButton.click(); } - -} +} \ No newline at end of file From 75649033338f7c75355d79d22adea42be6e9b87d Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Fri, 25 Oct 2024 09:20:00 +0200 Subject: [PATCH 128/212] add parameters --- config/configuration.properties | 5 +++++ .../java/it/pn/frontend/e2e/config/WebDriverConfig.java | 6 ++++++ .../personaFisica/LoginPersonaFisicaPagoPA.java | 5 ++--- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/config/configuration.properties b/config/configuration.properties index e59701d67..347abf9af 100644 --- a/config/configuration.properties +++ b/config/configuration.properties @@ -12,6 +12,11 @@ apiBaseUrl=https://webapi.test.notifichedigitali.it/bff/v1/ ragione.sociale.baldassarre = "Comune di Milano"; url.login.pg.dev = "https://imprese.dev.notifichedigitali.it/"; url.login.pg.test = "https://imprese.test.notifichedigitali.it/"; +url.login.pf.dev = https://cittadini.dev.notifichedigitali.it/"; +url.login.pf.test = "https://cittadini.test.notifichedigitali.it/"; + + + # | --------- | --------- | ---------------- | ------------------- | # | TYPE | PLATFORM | ENVIRONMENT | USER | diff --git a/src/main/java/it/pn/frontend/e2e/config/WebDriverConfig.java b/src/main/java/it/pn/frontend/e2e/config/WebDriverConfig.java index c14e5d973..d739d05b3 100644 --- a/src/main/java/it/pn/frontend/e2e/config/WebDriverConfig.java +++ b/src/main/java/it/pn/frontend/e2e/config/WebDriverConfig.java @@ -61,5 +61,11 @@ public class WebDriverConfig { @Value("${ url.login.pg.test}") private String baseUrlPgTest; + @Value("${ url.login.pf.dev}") + private String baseUrlPfDev; + + @Value("${ url.login.pf.test}") + private String baseUrlPfTest; + } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java index 18a020ce8..d8c45cd84 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java @@ -49,7 +49,7 @@ public class LoginPersonaFisicaPagoPA { @Given("Login Page persona fisica {string} viene visualizzata") public void loginPageDestinatarioVieneVisualizzata(String datipersonaFisica) { DataPopulation dataPopulation = new DataPopulation(); - //TODO Parametrizzzare.......... + //TODO Parametrizzzare..........eliminare la gestione file yaml.. this.datiPersonaFisica = dataPopulation.readDataPopulation(datipersonaFisica + ".yaml"); // String variabileAmbiente = System.getProperty("environment"); String variabileAmbiente = webDriverConfig.getEnvironment(); @@ -65,8 +65,7 @@ public void loginPageDestinatarioVieneVisualizzata(String datipersonaFisica) { @Given("Login Page persona fisica test viene visualizzata") public void loginPageDestinatarioVieneVisualizzataConUrl() { logger.info("ENVIROMENT...: "+ webDriverConfig.getEnvironment()); - //TODO Parametrizzare.. - String url = "https://cittadini.test.notifichedigitali.it/"; + String url = webDriverConfig.getBaseUrlPfTest(); this.hooks.getDriver().get(url); } From a2c0bb18b5a4966aaff0dc74ad7f088eba0f9f2a Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Fri, 25 Oct 2024 10:02:01 +0200 Subject: [PATCH 129/212] update configuration --- config/configuration.properties | 10 +++++----- .../it/pn/frontend/e2e/config/WebDriverConfig.java | 8 ++++---- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/config/configuration.properties b/config/configuration.properties index 347abf9af..0872256db 100644 --- a/config/configuration.properties +++ b/config/configuration.properties @@ -9,11 +9,11 @@ loadComponentWaitTime=120 apiBaseUrl=https://webapi.test.notifichedigitali.it/bff/v1/ #---------------------------------------------------------------- -ragione.sociale.baldassarre = "Comune di Milano"; -url.login.pg.dev = "https://imprese.dev.notifichedigitali.it/"; -url.login.pg.test = "https://imprese.test.notifichedigitali.it/"; -url.login.pf.dev = https://cittadini.dev.notifichedigitali.it/"; -url.login.pf.test = "https://cittadini.test.notifichedigitali.it/"; +ragione.sociale.baldassarre = Comune di Milano +url.login.pg.dev = https://imprese.dev.notifichedigitali.it/ +url.login.pg.test = https://imprese.test.notifichedigitali.it/ +url.login.pf.dev = https://cittadini.dev.notifichedigitali.it/ +url.login.pf.test = https://cittadini.test.notifichedigitali.it/ diff --git a/src/main/java/it/pn/frontend/e2e/config/WebDriverConfig.java b/src/main/java/it/pn/frontend/e2e/config/WebDriverConfig.java index d739d05b3..bc33559fa 100644 --- a/src/main/java/it/pn/frontend/e2e/config/WebDriverConfig.java +++ b/src/main/java/it/pn/frontend/e2e/config/WebDriverConfig.java @@ -55,16 +55,16 @@ public class WebDriverConfig { @Value("${ragione.sociale.baldassarre}") private String ragioneSocialeBaldassarre; - @Value("${ url.login.pg.dev}") + @Value("${url.login.pg.dev}") private String baseUrlPgDev; - @Value("${ url.login.pg.test}") + @Value("${url.login.pg.test}") private String baseUrlPgTest; - @Value("${ url.login.pf.dev}") + @Value("${url.login.pf.dev}") private String baseUrlPfDev; - @Value("${ url.login.pf.test}") + @Value("${url.login.pf.test}") private String baseUrlPfTest; From d95f184400fa59b63fb759614056255b44d3636f Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Fri, 25 Oct 2024 10:39:39 +0200 Subject: [PATCH 130/212] add properties --- config/configuration.properties | 2 + .../e2e/config/BearerTokenConfig.java | 36 ---------------- .../frontend/e2e/config/WebDriverConfig.java | 41 +++++++++++++++++++ .../CucumberSpringIntegration.java | 1 - .../LoginPersonaFisicaPagoPA.java | 19 ++++----- .../personaGiuridica/LoginPGPagoPATest.java | 19 ++++----- .../mittente/LoginMittentePagoPA.java | 8 ++-- 7 files changed, 64 insertions(+), 62 deletions(-) diff --git a/config/configuration.properties b/config/configuration.properties index 0872256db..bce2ce48c 100644 --- a/config/configuration.properties +++ b/config/configuration.properties @@ -15,6 +15,8 @@ url.login.pg.test = https://imprese.test.notifichedigitali.it/ url.login.pf.dev = https://cittadini.dev.notifichedigitali.it/ url.login.pf.test = https://cittadini.test.notifichedigitali.it/ +url.selfcare = https://uat.selfcare.pagopa.it/ + diff --git a/src/main/java/it/pn/frontend/e2e/config/BearerTokenConfig.java b/src/main/java/it/pn/frontend/e2e/config/BearerTokenConfig.java index 5fbcaa3ff..21c968886 100644 --- a/src/main/java/it/pn/frontend/e2e/config/BearerTokenConfig.java +++ b/src/main/java/it/pn/frontend/e2e/config/BearerTokenConfig.java @@ -22,40 +22,4 @@ public class BearerTokenConfig { - @Value("${pn.bearer-token.tokentestPFDelegante}") - private String tokentestPFDelegante; - - @Value("${ pn.bearer-token.tokendevPFDelegante}") - private String tokendevPFDelegante; - - @Value("${pn.bearer-token.tokentestPFDelegato}") - private String tokentestPFDelegato; - - @Value("${pn.bearer-token.tokendevPFDelegato}") - private String tokendevPFDelegato; - - @Value("${pn.bearer-token.tokentestPGDelegante}") - private String tokentestPGDelegante; - - @Value("${pn.bearer-token.tokendevPGDelegante}") - private String tokendevPGDelegante; - - @Value("${pn.bearer-token.tokentestPGDelegato}") - private String tokentestPGDelegato; - - @Value("${pn.bearer-token.tokendevPGDelegato}") - private String tokendevPGDelegato; - - @Value("${pn.bearer-token.tokentestMittente}") - private String tokentestMittente; - - @Value("${pn.bearer-token.tokendevMittente}") - private String tokendevMittente; - - @Value("${pn.bearer-token.tokentestPFColombo}") - private String tokentestPFColombo; - - @Value("${pn.bearer-token.tokentestRaddista1}") - private String tokentestRaddista1; - } diff --git a/src/main/java/it/pn/frontend/e2e/config/WebDriverConfig.java b/src/main/java/it/pn/frontend/e2e/config/WebDriverConfig.java index bc33559fa..d25070c6a 100644 --- a/src/main/java/it/pn/frontend/e2e/config/WebDriverConfig.java +++ b/src/main/java/it/pn/frontend/e2e/config/WebDriverConfig.java @@ -67,5 +67,46 @@ public class WebDriverConfig { @Value("${url.login.pf.test}") private String baseUrlPfTest; + @Value("${pn.bearer-token.tokentestPFDelegante}") + private String tokentestPFDelegante; + + @Value("${ pn.bearer-token.tokendevPFDelegante}") + private String tokendevPFDelegante; + + @Value("${pn.bearer-token.tokentestPFDelegato}") + private String tokentestPFDelegato; + + @Value("${pn.bearer-token.tokendevPFDelegato}") + private String tokendevPFDelegato; + + @Value("${pn.bearer-token.tokentestPGDelegante}") + private String tokentestPGDelegante; + + @Value("${pn.bearer-token.tokendevPGDelegante}") + private String tokendevPGDelegante; + + @Value("${pn.bearer-token.tokentestPGDelegato}") + private String tokentestPGDelegato; + + @Value("${pn.bearer-token.tokendevPGDelegato}") + private String tokendevPGDelegato; + + @Value("${pn.bearer-token.tokentestMittente}") + private String tokentestMittente; + + @Value("${pn.bearer-token.tokendevMittente}") + private String tokendevMittente; + + @Value("${pn.bearer-token.tokentestPFColombo}") + private String tokentestPFColombo; + + @Value("${pn.bearer-token.tokentestRaddista1}") + private String tokentestRaddista1; + + @Value("${url.selfcare}") + private String urlSelfCare; + + + } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java index 7f556b139..4f3cd5dfe 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java @@ -18,7 +18,6 @@ LoggerStartupListener.class, NetWorkInfo.class, WebDriverConfig.class, - DataPopulation.class, BearerTokenConfig.class, DataPopulation.class diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java index d8c45cd84..6d537b7b8 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java @@ -38,8 +38,7 @@ public class LoginPersonaFisicaPagoPA { private WebDriverConfig webDriverConfig; @Autowired private CookieConfig cookieConfig; - @Autowired - private BearerTokenConfig bearerTokenConfig; + //TODO Parametrizzare private Map datiDelegato; @@ -78,13 +77,13 @@ public void loginMittenteConTokenExchange(String personaFisica) { String token = ""; switch (environment) { case "dev" -> token = personaFisica.equalsIgnoreCase("delegante") ? - bearerTokenConfig.getTokendevPFDelegante() + webDriverConfig.getTokendevPFDelegante() : - bearerTokenConfig.getTokendevPGDelegato(); + webDriverConfig.getTokendevPGDelegato(); case "test" -> token = personaFisica.equalsIgnoreCase("delegante") ? - bearerTokenConfig.getTokentestPFDelegante() + webDriverConfig.getTokentestPFDelegante() : - bearerTokenConfig.getTokentestPFDelegato(); + webDriverConfig.getTokentestPFDelegato(); default -> { logger.error("Ambiente non valido"); Assertions.fail("Ambiente non valido o non trovato!"); @@ -643,13 +642,13 @@ public String getTokenExchangePFFromFile(String personaFisica) { String token = ""; switch (environment) { case "dev" -> token = personaFisica.equalsIgnoreCase("delegante") ? - bearerTokenConfig.getTokendevPFDelegante() + webDriverConfig.getTokendevPFDelegante() : - bearerTokenConfig.getTokendevPGDelegato(); + webDriverConfig.getTokendevPGDelegato(); case "test" -> token = personaFisica.equalsIgnoreCase("delegante") ? - bearerTokenConfig.getTokentestPFDelegante() + webDriverConfig.getTokentestPFDelegante() : - bearerTokenConfig.getTokentestPFDelegato(); + webDriverConfig.getTokentestPFDelegato(); default -> { logger.error("Ambiente non valido"); Assertions.fail("Ambiente non valido o non trovato!"); diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java index e5a66009d..cfd9406e3 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java @@ -74,8 +74,7 @@ public class LoginPGPagoPATest { //TODO da rimuovere anche il discorso dei file yaml.. @Autowired private DataPopulation dataPopulation; - @Autowired - private BearerTokenConfig bearerTokenConfig; + @Given("Login Page persona giuridica viene visualizzata") public void loginPagePersonaGiuridicaVieneVisualizzata() { @@ -95,13 +94,13 @@ public void loginMittenteConTokenExchange(String personaGiuridica) { String token = ""; switch (environment) { case "dev" -> token = personaGiuridica.equalsIgnoreCase("delegante") ? - bearerTokenConfig.getTokendevPGDelegante() + webDriverConfig.getTokendevPGDelegante() : - bearerTokenConfig.getTokendevPGDelegato(); + webDriverConfig.getTokendevPGDelegato(); case "test" -> token = personaGiuridica.equalsIgnoreCase("delegante") ? - bearerTokenConfig.getTokentestPGDelegante() + webDriverConfig.getTokentestPGDelegante() : - bearerTokenConfig.getTokentestPGDelegato(); + webDriverConfig.getTokentestPGDelegato(); default -> { logger.error("Ambiente non valido"); Assertions.fail("Ambiente non valido o non trovato!"); @@ -379,13 +378,13 @@ public String getTokenExchangePGFromFile(String personaGiuridica) { String token = ""; switch (environment) { case "dev" -> token = personaGiuridica.equalsIgnoreCase("delegante") ? - bearerTokenConfig.getTokendevPGDelegante() + webDriverConfig.getTokendevPGDelegante() : - bearerTokenConfig.getTokendevPGDelegato(); + webDriverConfig.getTokendevPGDelegato(); case "test" -> token = personaGiuridica.equalsIgnoreCase("delegante") ? - bearerTokenConfig.getTokentestPGDelegante() + webDriverConfig.getTokentestPGDelegante() : - bearerTokenConfig.getTokentestPGDelegato(); + webDriverConfig.getTokentestPGDelegato(); default -> { logger.error("Ambiente non valido"); Assertions.fail("Ambiente non valido o non trovato!"); diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/LoginMittentePagoPA.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/LoginMittentePagoPA.java index 3aa9d4790..e0e6cc01a 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/LoginMittentePagoPA.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/LoginMittentePagoPA.java @@ -62,8 +62,6 @@ public class LoginMittentePagoPA { @Autowired private WebDriverConfig webDriverConfig; - @Autowired - private BearerTokenConfig bearerTokenConfig; @Given("Login Page mittente {string} viene visualizzata") public void loginPageMittenteVieneVisualizzata(String datiMittenteFile) { @@ -102,9 +100,9 @@ public void loginMittenteConTokenExchange() { String token = ""; switch (environment) { case "dev" -> - token = bearerTokenConfig.getTokendevMittente(); + token = webDriverConfig.getTokendevMittente(); case "test" -> - token = bearerTokenConfig.getTokentestMittente(); + token = webDriverConfig.getTokentestMittente(); default -> { logger.error("Ambiente non valido"); Assertions.fail("Ambiente non valido o non trovato!"); @@ -137,7 +135,7 @@ public void loginConMittente(String datiMittenteFile) { preAccediAreaRiservataPAPage.selezionaProcediAlLoginButton(); // Verifica della presenza dell'URL e dei cookie per proseguire con l'accettazione dei cookie - if (hooks.getDriver().getCurrentUrl().contains("https://uat.selfcare.pagopa.it/") || + if (hooks.getDriver().getCurrentUrl().contains(webDriverConfig.getUrlSelfCare()) || !cookieConfig.isCookieEnabled()) { logger.info("cookies start"); CookiesSection cookiesPage; From 15c909b9dbe6e8b7daca66f8e673e4abf7012680 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Fri, 25 Oct 2024 12:16:46 +0200 Subject: [PATCH 131/212] Refactor user pwd login PF --- config/configuration.properties | 37 +++++++++++++- .../e2e/config/UserPasswordConfig.java | 23 +++++++++ .../frontend/e2e/config/WebDriverConfig.java | 48 +++++++++++++++++++ .../CucumberSpringIntegration.java | 2 + .../LoginPersonaFisicaPagoPA.java | 45 ++++++++--------- 5 files changed, 130 insertions(+), 25 deletions(-) create mode 100644 src/main/java/it/pn/frontend/e2e/config/UserPasswordConfig.java diff --git a/config/configuration.properties b/config/configuration.properties index bce2ce48c..cf63098ab 100644 --- a/config/configuration.properties +++ b/config/configuration.properties @@ -48,4 +48,39 @@ pn.bearer-token.tokentestPFColombo = ${pn.external.bearer-token.tokentestPFColom # |-----------|-----------|------------------|----------------------| # | RADD | 1 | TEST | null | pn.bearer-token.tokentestRaddista1 = ${pn.external.bearer-token.tokentestRaddista1} -# |-----------|-----------|------------------|----------------------| \ No newline at end of file +# |-----------|-----------|------------------|----------------------| + + +# | --------- | --------- | ---------------- | ------------------- | +# | TYPE | PLATFORM | ENVIRONMENT | USER | +# |-----------|-----------|------------------|---------------------| +# | DELEGANTE | PF | TEST/DEV | GAIO GIULIO CESARE | +pn.user.cesare = ${pn.external.user.cesare} +pn.pwd.cesare = ${pn.external.pwd.cesare} +# |-----------|-----------|------------------|---------------------| +# | DELEGATO | PF | TEST/DEV | LUCREZIA BORGIA | +pn.user.lucrezia = ${pn.external.user.lucrezia} +pn.pwd.lucrezia = ${pn.external.pwd.lucrezia} +# |-----------|-----------|------------------|---------------------| +# | DELEGANTE | PG | TEST/DEV | CONVIVIO SPA | +pn.user.dante = ${pn.external.user.dante} +pn.pwd.dante = ${pn.external.pwd.dante} +# |-----------|-----------|------------------|---------------------| +# | DELEGATO | PG | TEST/DEV | LE EPISTOLAE SRL | +pn.user.petrarca = ${pn.external.user.petrarca} +pn.pwd.petrarca = ${pn.external.pwd.petrarca} +# |-----------|-----------|------------------|---------------------| +# | MITTENTE | PA | TEST/DEV | COMUNE DI VERONA | +pn.user.mittente = ${pn.external.user.mittente} +pn.pwd.mittente = ${pn.external.pwd.mittente} +# |-----------|-----------|------------------|----------------------| + + + +# |----------------------| HELPDESK |----------------------| +pn.userDev.helpdesk = ${pn.external.userDev.helpdesk} +pn.pwdDev.helpdesk = ${pn.external.pwdDev.helpdesk} +pn.userUat.helpdesk = ${pn.external.userUat.helpdesk} +pn.pwdUat.helpdesk = ${pn.external.pwdUat.helpdesk} +pn.userTest.helpdesk = ${pn.external.userTest.helpdesk} +pn.pwdTest.helpdesk = ${pn.external.pwdTest.helpdesk} \ No newline at end of file diff --git a/src/main/java/it/pn/frontend/e2e/config/UserPasswordConfig.java b/src/main/java/it/pn/frontend/e2e/config/UserPasswordConfig.java new file mode 100644 index 000000000..580cc6c3c --- /dev/null +++ b/src/main/java/it/pn/frontend/e2e/config/UserPasswordConfig.java @@ -0,0 +1,23 @@ +package it.pn.frontend.e2e.config; + +import lombok.Getter; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.PropertySource; + +/* +*Modifiche principali: +Iniezione di WebDriver: Ho rimosso tutte le istanze di new ChromeDriver(), new FirefoxDriver(), ecc., e ho creato un bean in una classe separata (che andremo a configurare subito dopo) che gestisce la creazione del WebDriver. + +Rimozione di new per altre dipendenze: Ho sostituito la creazione di oggetti come CookieConfig, RestDelegation e RestContact con l'iniezione di dipendenze utilizzando @Autowired. + +Configurazione di un WebDriver come Bean +* +* +* */ +@Getter +@Configuration +@PropertySource( value = "file:config/user-password-test.properties", ignoreResourceNotFound = true ) +public class UserPasswordConfig { + + +} diff --git a/src/main/java/it/pn/frontend/e2e/config/WebDriverConfig.java b/src/main/java/it/pn/frontend/e2e/config/WebDriverConfig.java index d25070c6a..9b3d95eb0 100644 --- a/src/main/java/it/pn/frontend/e2e/config/WebDriverConfig.java +++ b/src/main/java/it/pn/frontend/e2e/config/WebDriverConfig.java @@ -106,6 +106,54 @@ public class WebDriverConfig { @Value("${url.selfcare}") private String urlSelfCare; + @Value("${pn.user.cesare}") + private String userCesare; + + @Value("${pn.pwd.cesare}") + private String pwdCesare; + + @Value("${pn.user.lucrezia}") + private String userLucrezia; + + @Value("${pn.pwd.lucrezia}") + private String pwdLucrezia; + + @Value("${pn.user.dante}") + private String userDante; + + @Value("${pn.pwd.dante}") + private String pwdDante; + + @Value("${pn.user.petrarca}") + private String userPetrarca; + + @Value("${pn.pwd.petrarca}") + private String pwdPetrarca; + + @Value("${pn.user.mittente}") + private String userMittente; + + @Value("${pn.pwd.mittente}") + private String pwdMittente; + + @Value("${pn.userDev.helpdesk}") + private String userDevHelpdesk; + + @Value("${pn.pwdDev.helpdesk}") + private String pwdDevHelpdesk; + + @Value("${pn.userUat.helpdesk}") + private String userUatHelpdesk; + + @Value("${pn.pwdUat.helpdesk}") + private String pwdUatHelpdesk; + + @Value("${pn.userTest.helpdesk}") + private String userTestHelpdesk; + + @Value("${pn.pwdTest.helpdesk}") + private String pwdTestHelpdesk; + diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java index 4f3cd5dfe..fb9e4dfab 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java @@ -2,6 +2,7 @@ import io.cucumber.spring.CucumberContextConfiguration; import it.pn.frontend.e2e.config.BearerTokenConfig; +import it.pn.frontend.e2e.config.UserPasswordConfig; import it.pn.frontend.e2e.config.WebDriverConfig; import it.pn.frontend.e2e.listeners.LoggerStartupListener; import it.pn.frontend.e2e.listeners.NetWorkInfo; @@ -19,6 +20,7 @@ NetWorkInfo.class, WebDriverConfig.class, BearerTokenConfig.class, + UserPasswordConfig.class, DataPopulation.class }) diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java index 6d537b7b8..692b0f184 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java @@ -8,7 +8,6 @@ import it.pn.frontend.e2e.api.personaFisica.SpidDemoLogin; import it.pn.frontend.e2e.api.personaFisica.SpidDemoStart; import it.pn.frontend.e2e.api.personaFisica.SpidLogin; -import it.pn.frontend.e2e.config.BearerTokenConfig; import it.pn.frontend.e2e.config.WebDriverConfig; import it.pn.frontend.e2e.listeners.HooksNew; import it.pn.frontend.e2e.listeners.NetWorkInfo; @@ -18,7 +17,6 @@ import it.pn.frontend.e2e.utility.CookieConfig; import it.pn.frontend.e2e.utility.DataPopulation; import it.pn.frontend.e2e.utility.WebTool; - import org.junit.jupiter.api.Assertions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -71,7 +69,7 @@ public void loginPageDestinatarioVieneVisualizzataConUrl() { @Given("PF - Si effettua la login tramite token exchange come {string}, e viene visualizzata la dashboard") public void loginMittenteConTokenExchange(String personaFisica) { - DataPopulation dataPopulation = new DataPopulation(); + // DataPopulation dataPopulation = new DataPopulation(); //String environment = System.getProperty("environment"); String environment = webDriverConfig.getEnvironment(); String token = ""; @@ -106,7 +104,7 @@ public void loginMittenteConTokenExchange(String personaFisica) { @When("Login con persona fisica {string}") public void loginConDestinatario(String datipersonaFisica) { - logger.info("user persona fisica : " + this.datiPersonaFisica.get("user").toString()); + logger.info("user persona fisica : " + webDriverConfig.getUserCesare()); DataPopulation dataPopulation = new DataPopulation(); this.datiPersonaFisica = dataPopulation.readDataPopulation(datipersonaFisica + ".yaml"); @@ -131,8 +129,8 @@ public void loginConDestinatario(String datipersonaFisica) { LoginSpidPFPage loginSpidPFPage = new LoginSpidPFPage(this.hooks.getDriver()); loginSpidPFPage.waitLoadLoginSpidDEPage(); - loginSpidPFPage.inserisciUtente(this.datiPersonaFisica.get("user").toString()); - loginSpidPFPage.inserisciPassword(this.datiPersonaFisica.get("pwd").toString()); + loginSpidPFPage.inserisciUtente(webDriverConfig.getUserCesare()); + loginSpidPFPage.inserisciPassword(webDriverConfig.getPwdCesare()); loginSpidPFPage.selezionaEntraConSpidButton(); ConfermaDatiSpidPFPage confermaDatiSpidPFPage = new ConfermaDatiSpidPFPage(this.hooks.getDriver()); @@ -167,7 +165,7 @@ public void loginConDestinatario(String datipersonaFisica) { @When("Login con persona fisica") public void loginConDestinatario(Map datiPF) { - logger.info("user persona fisica : " + datiPF.get("user")); + logger.info("user persona fisica : " + webDriverConfig.getUserCesare()); logger.info("cookies start"); CookiesSection cookiesPage; @@ -194,8 +192,8 @@ public void loginConDestinatario(Map datiPF) { LoginSpidPFPage loginSpidPFPage = new LoginSpidPFPage(this.hooks.getDriver()); loginSpidPFPage.waitLoadLoginSpidDEPage(); - loginSpidPFPage.inserisciUtente(datiPF.get("user")); - loginSpidPFPage.inserisciPassword(datiPF.get("pwd")); + loginSpidPFPage.inserisciUtente(webDriverConfig.getUserCesare()); + loginSpidPFPage.inserisciPassword(webDriverConfig.getPwdCesare()); loginSpidPFPage.selezionaEntraConSpidButton(); ConfermaDatiSpidPFPage confermaDatiSpidPFPage = new ConfermaDatiSpidPFPage(this.hooks.getDriver()); @@ -368,8 +366,8 @@ private boolean readHttpRequest() { public void loginPortaleDestinatarioTramiteRequestMethod() { boolean urlWithTokenFound = false; int numProvaLogin = 0; - String userPersonaFisica = this.datiPersonaFisica.get("user").toString(); - String pwdPersonaFisica = this.datiPersonaFisica.get("pwd").toString(); + String userPersonaFisica = webDriverConfig.getUserCesare(); + String pwdPersonaFisica = webDriverConfig.getPwdCesare(); while (numProvaLogin < 10) { this.readUrlLoginPersonaFisicaWithToken(userPersonaFisica, pwdPersonaFisica); if (this.urlPersonaFisica.get("responseCode").equalsIgnoreCase("301")) { @@ -579,11 +577,11 @@ private void readUrlLoginPersonaFisicaWithToken(String user, String pwd) { public void loginPortaleDelegatoTramiteRequestMethod(String dpFile) { boolean urlWithTokenFound = false; int numProvaLogin = 0; - DataPopulation dataPopulation = new DataPopulation(); - this.datiDelegato = dataPopulation.readDataPopulation(dpFile + ".yaml"); + // DataPopulation dataPopulation = new DataPopulation(); + //this.datiDelegato = dataPopulation.readDataPopulation(dpFile + ".yaml"); - String userDelegato = this.datiDelegato.get("user").toString(); - String passwordDelegato = this.datiDelegato.get("pwd").toString(); + String userDelegato = webDriverConfig.getUserCesare(); + String passwordDelegato = webDriverConfig.getPwdCesare(); while (numProvaLogin < 10) { this.readUrlLoginPersonaFisicaWithToken(userDelegato, passwordDelegato); @@ -611,24 +609,24 @@ public void loginPortaleDelegatoTramiteRequestMethod(String dpFile) { @When("Login portale persona fisica tramite token exchange {string}") public void loginPortalePersonaFisicaTramiteTokenExchange(String dpFile) { - // String variabileAmbiente = System.getProperty("environment"); String variabileAmbiente = webDriverConfig.getEnvironment(); - DataPopulation dataPopulation = new DataPopulation(); + //DataPopulation dataPopulation = new DataPopulation(); String urlIniziale = "https://cittadini." + variabileAmbiente + ".notifichedigitali.it/#token="; - String user = dataPopulation.readDataPopulation(dpFile + ".yaml").get("user").toString(); + //TODO.... + //String user = dataPopulation.readDataPopulation(dpFile + ".yaml").get("user").toString(); String token; - if (user.equalsIgnoreCase("cesare")) { + if (webDriverConfig.getUserCesare().equalsIgnoreCase("cesare")) { if (variabileAmbiente.equalsIgnoreCase("test")) { - token = dataPopulation.readDataPopulation("tokenLogin.yaml").get("tokentestPFDelegante").toString(); + token = webDriverConfig.getTokentestPFDelegante(); } else { - token = dataPopulation.readDataPopulation("tokenLogin.yaml").get("tokendevPFDelegante").toString(); + token = token = webDriverConfig.getTokendevPFDelegante(); } } else { if (variabileAmbiente.equalsIgnoreCase("test")) { - token = dataPopulation.readDataPopulation("tokenLogin.yaml").get("tokentestPFDelegato").toString(); + token = webDriverConfig.getTokentestPFDelegato(); } else { - token = dataPopulation.readDataPopulation("tokenLogin.yaml").get("tokendevPFDelegato").toString(); + token = webDriverConfig.getTokendevPFDelegato(); } } String url = urlIniziale + token; @@ -637,7 +635,6 @@ public void loginPortalePersonaFisicaTramiteTokenExchange(String dpFile) { public String getTokenExchangePFFromFile(String personaFisica) { DataPopulation dataPopulation = new DataPopulation(); - //String environment = System.getProperty("environment"); String environment = webDriverConfig.getEnvironment(); String token = ""; switch (environment) { From 6ec22a20ae3e6d7d3f6b4759930c4873f2f755ec Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Fri, 25 Oct 2024 12:32:09 +0200 Subject: [PATCH 132/212] add usr pwd PG --- .../personaGiuridica/LoginPGPagoPATest.java | 21 +++++++++---------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java index cfd9406e3..1759efb70 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java @@ -58,7 +58,7 @@ public class LoginPGPagoPATest { **/ - private HeaderPGSection headerPGSection; + private HeaderPGSection headerPGSection; private AccediAreaRiservataPGPage accediAreaRiservataPGPage; private Map datiPersonaGiuridica = new HashMap<>(); @@ -131,9 +131,9 @@ public void loginMittenteConTokenExchange(String personaGiuridica) { @When("Login portale persona giuridica tramite request method") public void loginPortalePersonaGiuridicaTramiteRequestMethod() { - this.datiPersonaGiuridica = dataPopulation.readDataPopulation("personaGiuridica.yaml"); - String userMittente = this.datiPersonaGiuridica.get("user").toString(); - String pwdMittente = this.datiPersonaGiuridica.get("pwd").toString(); + // this.datiPersonaGiuridica = dataPopulation.readDataPopulation("personaGiuridica.yaml"); + String userMittente = webDriverConfig.getUserDante(); + String pwdMittente = webDriverConfig.getPwdDante(); this.readUrlPortaleMittente(userMittente, pwdMittente); boolean urlWithTokenFound = false; @@ -257,7 +257,6 @@ public void homePagePersonaGiuridicaVieneVisualizzataCorrettamente() { public void loginConPersonaGiuridica(Map datiPG) { logger.info("La persona guiridica cerca di fare il login"); - CookiesSection cookiesSection; if (!cookieConfig.isCookieEnabled()) { @@ -275,8 +274,8 @@ public void loginConPersonaGiuridica(Map datiPG) { LoginPGPagoPAPage loginPGPagoPAPage = new LoginPGPagoPAPage(hooks.getDriver()); loginPGPagoPAPage.waitLoadLoginPGPage(); - loginPGPagoPAPage.insertUsername(datiPG.get("user")); - loginPGPagoPAPage.insertPassword(datiPG.get("pwd")); + loginPGPagoPAPage.insertUsername(webDriverConfig.getUserDante()); + loginPGPagoPAPage.insertPassword(webDriverConfig.getPwdDante()); loginPGPagoPAPage.clickInviaButton(); @@ -307,8 +306,8 @@ public void logoutDaPortalePersonaGiuridica() { @When("Login {string} portale persona giuridica tramite request method") public void loginPortalePersonaGiuridicaTramiteRequestMethod(String dpFile) { this.datiPersonaGiuridica = dataPopulation.readDataPopulation(dpFile + ".yaml"); - String userMittente = this.datiPersonaGiuridica.get("user").toString(); - String pwdMittente = this.datiPersonaGiuridica.get("pwd").toString(); + String userMittente = webDriverConfig.getUserDante(); + String pwdMittente = webDriverConfig.getPwdDante(); this.readUrlPortaleMittente(userMittente, pwdMittente); boolean urlWithTokenFound = false; @@ -358,7 +357,7 @@ public void loginPortalePersonaGiuridicaTramiteTokenExchange(String dpFile) { String variabileAmbiente = webDriverConfig.getEnvironment(); String urlIniziale = "https://imprese." + variabileAmbiente + ".notifichedigitali.it/#selfCareToken="; String token; - String user = this.dataPopulation.readDataPopulation(dpFile + ".yaml").get("user").toString(); + String user = webDriverConfig.getUserDante(); if (user.equalsIgnoreCase("DanteAlighieri")) { token = variabileAmbiente.equalsIgnoreCase("test") ? this.dataPopulation.readDataPopulation("tokenLogin.yaml").get("tokentestPGDelegante").toString() : @@ -373,7 +372,7 @@ public void loginPortalePersonaGiuridicaTramiteTokenExchange(String dpFile) { } public String getTokenExchangePGFromFile(String personaGiuridica) { - DataPopulation dataPopulation = new DataPopulation(); + //DataPopulation dataPopulation = new DataPopulation(); String environment = webDriverConfig.getEnvironment(); String token = ""; switch (environment) { From d0a0f641336c0a098082107620c56aaea703d7b4 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Fri, 25 Oct 2024 12:47:50 +0200 Subject: [PATCH 133/212] add usr pwd mittente --- .../personaGiuridica/HeaderPGSection.java | 2 -- .../mittente/LoginMittentePagoPA.java | 18 +++++++++--------- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/section/destinatario/personaGiuridica/HeaderPGSection.java b/src/main/java/it/pn/frontend/e2e/section/destinatario/personaGiuridica/HeaderPGSection.java index 58584349d..ca5781cda 100644 --- a/src/main/java/it/pn/frontend/e2e/section/destinatario/personaGiuridica/HeaderPGSection.java +++ b/src/main/java/it/pn/frontend/e2e/section/destinatario/personaGiuridica/HeaderPGSection.java @@ -1,7 +1,6 @@ package it.pn.frontend.e2e.section.destinatario.personaGiuridica; import it.pn.frontend.e2e.common.BasePage; -import it.pn.frontend.e2e.listeners.HooksNew; import org.junit.jupiter.api.Assertions; import org.openqa.selenium.By; import org.openqa.selenium.TimeoutException; @@ -11,7 +10,6 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; public class HeaderPGSection extends BasePage { diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/LoginMittentePagoPA.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/LoginMittentePagoPA.java index e0e6cc01a..bb5b91cdb 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/LoginMittentePagoPA.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/LoginMittentePagoPA.java @@ -157,8 +157,8 @@ public void loginConMittente(String datiMittenteFile) { LoginPAPage loginPAPage = new LoginPAPage(hooks.getDriver()); loginPAPage.waitLoadLoginPAPage(); - loginPAPage.inserisciUtenete(this.datiMittente.get("user").toString()); - loginPAPage.inserisciPassword(this.datiMittente.get("pwd").toString()); + loginPAPage.inserisciUtenete( webDriverConfig.getUserMittente()); + loginPAPage.inserisciPassword( webDriverConfig.getPwdMittente()); loginPAPage.selezionaInviaDati(); AutorizziInvioDatiPAPage autorizziInvioDatiPAPage = new AutorizziInvioDatiPAPage(hooks.getDriver()); @@ -180,7 +180,7 @@ public void loginConMittente(Map datiMittenteFile) { preAccediAreaRiservataPAPage.waitLoadPreAccediAreaRiservataPAPage(); preAccediAreaRiservataPAPage.selezionaProcediAlLoginButton(); - if (hooks.getDriver().getCurrentUrl().contains("https://uat.selfcare.pagopa.it/") || + if (hooks.getDriver().getCurrentUrl().contains(webDriverConfig.getUrlSelfCare()) || !cookieConfig.isCookieEnabled()) { logger.info("cookies start"); CookiesSection cookiesPage; @@ -202,8 +202,8 @@ public void loginConMittente(Map datiMittenteFile) { LoginPAPage loginPAPage = new LoginPAPage(hooks.getDriver()); loginPAPage.waitLoadLoginPAPage(); - loginPAPage.inserisciUtenete(datiMittenteFile.get("user")); - loginPAPage.inserisciPassword(datiMittenteFile.get("pwd")); + loginPAPage.inserisciUtenete(webDriverConfig.getUserMittente()); + loginPAPage.inserisciPassword( webDriverConfig.getPwdMittente()); loginPAPage.selezionaInviaDati(); AutorizziInvioDatiPAPage autorizziInvioDatiPAPage = new AutorizziInvioDatiPAPage(hooks.getDriver()); @@ -219,8 +219,8 @@ public void loginConMittente(Map datiMittenteFile) { @When("Login mittente tramite request method") public void portaleMittenteIsDisplayed() throws InterruptedException { - String userMittente = this.datiMittente.get("user").toString(); - String pwdMittente = this.datiMittente.get("pwd").toString(); + String userMittente = webDriverConfig.getUserMittente(); + String pwdMittente = webDriverConfig.getPwdMittente(); this.readurlPortaleMittente(userMittente, pwdMittente); boolean urlWithTokenFound = false; int numProvaLogin = 0; @@ -436,9 +436,9 @@ public void loginConMittenteTramiteTokenExchange() { String token; if (variabileAmbiente.equalsIgnoreCase("test")) { - token = dataPopulation.readDataPopulation("tokenLogin.yaml").get("tokentestMittente").toString(); + token = webDriverConfig.getTokentestMittente(); } else { - token = dataPopulation.readDataPopulation("tokenLogin.yaml").get("tokendevMittente").toString(); + token = webDriverConfig.getTokendevMittente(); } String url = urlInziale + token; hooks.getDriver().get(url); From 3ab9db2295e2941bca3012b69dab9145c0e68831 Mon Sep 17 00:00:00 2001 From: andreadefranco Date: Fri, 25 Oct 2024 12:56:33 +0200 Subject: [PATCH 134/212] prima versione integrazione spring --- config/configuration.properties | 1 + .../frontend/e2e/config/WebDriverConfig.java | 3 ++ .../stepDefinitions/common/HelpdeskTest.java | 29 ++++++++++++------- 3 files changed, 22 insertions(+), 11 deletions(-) diff --git a/config/configuration.properties b/config/configuration.properties index bce2ce48c..bf1fc32cd 100644 --- a/config/configuration.properties +++ b/config/configuration.properties @@ -16,6 +16,7 @@ url.login.pf.dev = https://cittadini.dev.notifichedigitali.it/ url.login.pf.test = https://cittadini.test.notifichedigitali.it/ url.selfcare = https://uat.selfcare.pagopa.it/ +url.helpdesk.test.notifichedigitali = https://helpdesk.test.notifichedigitali.it/login diff --git a/src/main/java/it/pn/frontend/e2e/config/WebDriverConfig.java b/src/main/java/it/pn/frontend/e2e/config/WebDriverConfig.java index d25070c6a..213b4a2f8 100644 --- a/src/main/java/it/pn/frontend/e2e/config/WebDriverConfig.java +++ b/src/main/java/it/pn/frontend/e2e/config/WebDriverConfig.java @@ -106,6 +106,9 @@ public class WebDriverConfig { @Value("${url.selfcare}") private String urlSelfCare; + @Value("${url.helpdesk.test.notifichedigitali}") + private String urlHelpdeskTestNotifichedigitali; + diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/HelpdeskTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/HelpdeskTest.java index 0356a290c..ea2c48006 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/HelpdeskTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/HelpdeskTest.java @@ -7,6 +7,7 @@ import it.pn.frontend.e2e.common.HelpdeskPage; import it.pn.frontend.e2e.config.WebDriverConfig; import it.pn.frontend.e2e.listeners.Hooks; +import it.pn.frontend.e2e.listeners.HooksNew; import it.pn.frontend.e2e.model.enums.Disservice; import it.pn.frontend.e2e.model.enums.Status; import it.pn.frontend.e2e.pages.mittente.PiattaformaNotifichePage; @@ -30,10 +31,16 @@ import java.util.concurrent.TimeUnit; public class HelpdeskTest { - private final WebDriver driver = Hooks.driver; - private final DataPopulation dataPopulation = new DataPopulation(); private final Logger logger = LoggerFactory.getLogger("HelpdeskAppTest"); - private HelpdeskPage helpdeskPage = new HelpdeskPage(this.driver); + + @Autowired + private HooksNew hooks; +// private final WebDriver driver = Hooks.driver; + @Autowired + private DataPopulation dataPopulation; + + private HelpdeskPage helpdeskPage = new HelpdeskPage(hooks.getDriver()); + private Map datiTestHelpdesk = new HashMap<>(); private Map datiPersonaFisica = new HashMap<>(); @@ -113,11 +120,11 @@ public void siVerificaLaCreazioneDelDisservizio() { public void annullamentoDisservizio() { BackgroundTest backgroundTest = new BackgroundTest(); logger.info("Torno sulla scheda di helpdesk"); - String sendHandle = driver.getWindowHandle(); - Set windowHandles = driver.getWindowHandles(); + String sendHandle = hooks.getDriver().getWindowHandle(); + Set windowHandles = hooks.getDriver().getWindowHandles(); for (String handle : windowHandles) { if (!handle.equals(sendHandle)) { - this.driver.switchTo().window(handle); + hooks.getDriver().switchTo().window(handle); break; } } @@ -142,7 +149,7 @@ public void annullamentoDisservizio() { logger.info("Torno sulla piattaforma send per il logout"); for (String handle : windowHandles) { if (handle.equals(sendHandle)) { - this.driver.switchTo().window(handle); + hooks.getDriver().switchTo().window(handle); break; } } @@ -299,13 +306,13 @@ public void controlloCorrispondenzaCodiceFiscale() { @Given("Login helpdesk in nuova scheda") public void loginHelpdeskInNuovaScheda(Map login) { logger.info("Si apre una nuova finestra"); - JavascriptExecutor javascriptExecutor = (JavascriptExecutor) driver; + JavascriptExecutor javascriptExecutor = (JavascriptExecutor) hooks.getDriver(); javascriptExecutor.executeScript("window.open();"); logger.info("Si seleziona la nuova finestra aperta"); - ArrayList tabs = new ArrayList<>(driver.getWindowHandles()); - driver.switchTo().window(tabs.get(tabs.size() - 1)); + ArrayList tabs = new ArrayList<>(hooks.getDriver().getWindowHandles()); + hooks.getDriver().switchTo().window(tabs.get(tabs.size() - 1)); logger.info("Nella nuova finestra aperta si va sulla pagina di login di helpdesk"); - driver.get("https://helpdesk.test.notifichedigitali.it/login"); + hooks.getDriver().get(webDriverConfig.getUrlHelpdeskTestNotifichedigitali()); helpdeskPage.loginHelpdeskNuovaScheda(login); } From a319f3e1d8103da868439ebc44d0da40ba466b67 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Fri, 25 Oct 2024 16:09:02 +0200 Subject: [PATCH 135/212] add properties url mittente --- config/configuration.properties | 1 + .../java/it/pn/frontend/e2e/config/WebDriverConfig.java | 2 ++ .../e2e/stepDefinitions/CucumberSpringIntegration.java | 1 + .../e2e/stepDefinitions/mittente/LoginMittentePagoPA.java | 8 ++++---- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/config/configuration.properties b/config/configuration.properties index cf63098ab..13a0233cb 100644 --- a/config/configuration.properties +++ b/config/configuration.properties @@ -16,6 +16,7 @@ url.login.pf.dev = https://cittadini.dev.notifichedigitali.it/ url.login.pf.test = https://cittadini.test.notifichedigitali.it/ url.selfcare = https://uat.selfcare.pagopa.it/ +url.mittente = https://selfcare.dev.notifichedigitali.it diff --git a/src/main/java/it/pn/frontend/e2e/config/WebDriverConfig.java b/src/main/java/it/pn/frontend/e2e/config/WebDriverConfig.java index 9b3d95eb0..c85aef4ff 100644 --- a/src/main/java/it/pn/frontend/e2e/config/WebDriverConfig.java +++ b/src/main/java/it/pn/frontend/e2e/config/WebDriverConfig.java @@ -154,6 +154,8 @@ public class WebDriverConfig { @Value("${pn.pwdTest.helpdesk}") private String pwdTestHelpdesk; + @Value("${url.mittente}") + private String urlMittente; diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java index fb9e4dfab..2546a67bf 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java @@ -6,6 +6,7 @@ import it.pn.frontend.e2e.config.WebDriverConfig; import it.pn.frontend.e2e.listeners.LoggerStartupListener; import it.pn.frontend.e2e.listeners.NetWorkInfo; +import it.pn.frontend.e2e.section.destinatario.personaGiuridica.HeaderPGSection; import it.pn.frontend.e2e.utility.CookieConfig; import it.pn.frontend.e2e.utility.DataPopulation; import org.springframework.boot.context.properties.EnableConfigurationProperties; diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/LoginMittentePagoPA.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/LoginMittentePagoPA.java index bb5b91cdb..71419508b 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/LoginMittentePagoPA.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/LoginMittentePagoPA.java @@ -70,9 +70,9 @@ public void loginPageMittenteVieneVisualizzata(String datiMittenteFile) { this.datiMittente = dataPopulation.readDataPopulation(datiMittenteFile + ".yaml"); String variabileAmbiente = webDriverConfig.getEnvironment(); switch (variabileAmbiente) { - case "dev" ->hooks.getDriver().get(this.datiMittente.get("url").toString()); + case "dev" ->hooks.getDriver().get(webDriverConfig.getUrlMittente()); case "test", "uat" -> - hooks.getDriver().get(this.datiMittente.get("url").toString().replace("dev", variabileAmbiente)); + hooks.getDriver().get(webDriverConfig.getUrlMittente().replace("dev", variabileAmbiente)); default -> Assertions.fail("Non stato possibile trovare l'ambiente inserito, Inserisci in -Denvironment test o dev o uat"); } @@ -84,9 +84,9 @@ public void loginPageMittenteVieneVisualizzata(Map datiMittenteTa String variabileAmbiente = webDriverConfig.getEnvironment(); this.datiMittente = dataPopulation.readDataPopulation("mittente.yaml"); switch (variabileAmbiente) { - case "dev" -> hooks.getDriver().get(datiMittenteTable.get("url")); + case "dev" -> hooks.getDriver().get(webDriverConfig.getUrlMittente()); case "test", "uat" -> - hooks.getDriver().get(datiMittenteTable.get("url").replace("dev", variabileAmbiente)); + hooks.getDriver().get(webDriverConfig.getUrlMittente().replace("dev", variabileAmbiente)); default -> Assertions.fail("Non stato possibile trovare l'ambiente inserito, Inserisci in -Denvironment test o dev o uat"); } From 795965e97286160a501cb344dc6d4e576c747e19 Mon Sep 17 00:00:00 2001 From: scritelli Date: Fri, 25 Oct 2024 17:13:28 +0200 Subject: [PATCH 136/212] Ristrutturazione classe con springboot in attesa di test con la suite --- .../mittente/DisserviziAppPATest.java | 22 +++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DisserviziAppPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DisserviziAppPATest.java index df8036f1b..f8d60971a 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DisserviziAppPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DisserviziAppPATest.java @@ -15,19 +15,33 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; import java.io.File; import java.io.IOException; +/* +Modifiche Principali +*Iniezione delle Dipendenze con @Autowired: Abbiamo rimosso la creazione manuale delle istanze e invece abbiamo iniettato le dipendenze WebDriver, WebDriverConfig, AccediAPiattaformaNotifichePage, e DisserviziAppPAPage tramite @Autowired. +* Integrazione DownloadFile e WebTool: Poiché DownloadFile e WebTool vengono utilizzati internamente senza dipendenze da Spring, non è necessario modificarli; il loro uso rimane invariato. +* Annotazione @Component: La classe DisserviziAppPATest è stata annotata come componente Spring per consentire l'iniezione automatica delle dipendenze. */ +@Component public class DisserviziAppPATest { - private static final Logger logger = LoggerFactory.getLogger("DisserviziAppPATest"); - private final WebDriver driver = Hooks.driver; - private final AccediAPiattaformaNotifichePage notifichePage = new AccediAPiattaformaNotifichePage(this.driver); - private final DisserviziAppPAPage disserviziAppPAPage = new DisserviziAppPAPage(this.driver); + + private static final Logger logger = LoggerFactory.getLogger(DisserviziAppPATest.class); @Autowired private WebDriverConfig webDriverConfig; + @Autowired + private WebDriver driver; + + @Autowired + private AccediAPiattaformaNotifichePage notifichePage; + + @Autowired + private DisserviziAppPAPage disserviziAppPAPage; + @When("Nella pagina Piattaforma Notifiche selezionare la voce 'stato della piattaforma'") public void nellaPaginaPiattaformaNotificheSelezionareLaVoceStatoDellaPiattaforma() { logger.info("Nella pagina Piattaforma Notifiche selezionare la voce 'stato della piattaforma'"); From 4f8180998215ccd9170e94611a1352d6f3a62e2b Mon Sep 17 00:00:00 2001 From: andreadefranco Date: Fri, 25 Oct 2024 17:32:04 +0200 Subject: [PATCH 137/212] refactoring method 'insrito codice IUN' --- config/configuration.properties | 5 ++- .../frontend/e2e/config/WebDriverConfig.java | 9 +++++ .../stepDefinitions/common/HelpdeskTest.java | 38 +++++++++++++++---- .../005_078_scaricaZipInfoNotifica.feature | 4 +- ...07_080_ottenereIlTracciatoNotifica.feature | 6 +-- ...ereIlTracciatoNotificaAnonimizzato.feature | 2 +- .../010_083_ResettareIlFormDiRicerca.feature | 2 +- 7 files changed, 51 insertions(+), 15 deletions(-) diff --git a/config/configuration.properties b/config/configuration.properties index fcf5e397c..70aa2e45e 100644 --- a/config/configuration.properties +++ b/config/configuration.properties @@ -18,7 +18,10 @@ url.login.pf.test = https://cittadini.test.notifichedigitali.it/ url.selfcare = https://uat.selfcare.pagopa.it/ url.helpdesk.test.notifichedigitali = https://helpdesk.test.notifichedigitali.it/login - +codice.iun = YRUZ-NYXJ-DAJK-20240 +codice.iun.n1 = YRUZ-NYXJ-DAJK-202405-N-1 +codice.iun.n2 = YRUZ-NYXJ-DAJK-202405-N-2 +codice.iun.n3 = YRUZ-NYXJ-DAJK-202405-N-3 # | --------- | --------- | ---------------- | ------------------- | diff --git a/src/main/java/it/pn/frontend/e2e/config/WebDriverConfig.java b/src/main/java/it/pn/frontend/e2e/config/WebDriverConfig.java index b0eb8c607..aa2549fa8 100644 --- a/src/main/java/it/pn/frontend/e2e/config/WebDriverConfig.java +++ b/src/main/java/it/pn/frontend/e2e/config/WebDriverConfig.java @@ -157,7 +157,16 @@ public class WebDriverConfig { @Value("${url.helpdesk.test.notifichedigitali}") private String urlHelpdeskTestNotifichedigitali; + @Value("${codice.iun}") + private String codiceIun; + @Value("${codice.iun.n1}") + private String codiceIunN1; + @Value("${codice.iun.n2}") + private String codiceIunN2; + + @Value("${codice.iun.n3}") + private String codiceIunN3; } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/HelpdeskTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/HelpdeskTest.java index ea2c48006..b2b83e968 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/HelpdeskTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/HelpdeskTest.java @@ -38,14 +38,15 @@ public class HelpdeskTest { // private final WebDriver driver = Hooks.driver; @Autowired private DataPopulation dataPopulation; + @Autowired + private WebDriverConfig webDriverConfig; private HelpdeskPage helpdeskPage = new HelpdeskPage(hooks.getDriver()); private Map datiTestHelpdesk = new HashMap<>(); private Map datiPersonaFisica = new HashMap<>(); - @Autowired - private WebDriverConfig webDriverConfig; + @Given("Login helpdesk con utente test {string}") public void loginHelpdeskConUtenteTest(String nameFile) { @@ -175,18 +176,18 @@ public void vieneInseritoCodiceFiscale(String nameFile) { public void vieneInseritoCodiceFiscaleSenzaRicerca(String CF) { helpdeskPage.insertCF(CF); } - + ///-*-*-**- @And("viene inserito codice IUN {string}") public void vieneInseritoIun(String iun) { - helpdeskPage.insertIunAndRicercaOnPage(iun); + String codiceIun = getCodiceIun(iun,"viene inserito codice IUN"); + helpdeskPage.insertIunAndRicercaOnPage(codiceIun); } - @And("viene inserito codice IUN senza ricerca {string}") public void vieneInseritoIunSenzaRicerca(String iun) { - helpdeskPage.insertIun(iun); + String codiceIun = getCodiceIun(iun,"viene inserito codice IUN senza ricerca"); + helpdeskPage.insertIun(codiceIun); } - @And("viene inserito numero ticket") public void vieneInseritoNumeroTicket() { helpdeskPage.insertNumeroTicket(); @@ -339,4 +340,27 @@ public void selezioneOttieniLogCompleti(){ helpdeskPage.selectOttieniLogCompleti(); } + private String getCodiceIun(String iun, String message) { + String codiceIun; + switch (iun) { + case "IUN0" -> { + codiceIun=webDriverConfig.getCodiceIun(); + } + case "IUN1" -> { + codiceIun=webDriverConfig.getCodiceIunN1(); + } + case "IUN2" -> { + codiceIun=webDriverConfig.getCodiceIunN2(); + } + case "IUN3" -> { + codiceIun=webDriverConfig.getCodiceIunN3(); + } + default -> { + logger.error(message); + throw new RuntimeException(message+" 'ERRATO'"); + } + } + return codiceIun; + } + } diff --git a/src/test/resources/feature/4-helpdesk/005_078_scaricaZipInfoNotifica.feature b/src/test/resources/feature/4-helpdesk/005_078_scaricaZipInfoNotifica.feature index 06468196d..a67569b30 100644 --- a/src/test/resources/feature/4-helpdesk/005_078_scaricaZipInfoNotifica.feature +++ b/src/test/resources/feature/4-helpdesk/005_078_scaricaZipInfoNotifica.feature @@ -12,7 +12,7 @@ Feature: Utente helpdesk visualizza pagina sezione ricerca ed estrazione dati When Nella Home di helpdesk utente clicca su sezione ricerca ed estrazione dati And visualizzazione corretta pagina ricerca ed estrazione dati And Selezione ottieni notifica - And viene inserito codice IUN "YRUZ-NYXJ-DAJK-202405-N-1" + And viene inserito codice IUN "IUN1" And controllo messaggio di successo And controllo password And controllo link per scaricare zip e scarico file @@ -22,7 +22,7 @@ Feature: Utente helpdesk visualizza pagina sezione ricerca ed estrazione dati And Si elimina file estratto And Si clicca sul bottone resetta filtri And Selezione ottieni notifica - And viene inserito codice IUN "YRUZ-NYXJ-DAJK-202405-N-2" + And viene inserito codice IUN "IUN2" And controllo messaggio di successo And controllo password And controllo link per scaricare zip e scarico file diff --git a/src/test/resources/feature/4-helpdesk/007_080_ottenereIlTracciatoNotifica.feature b/src/test/resources/feature/4-helpdesk/007_080_ottenereIlTracciatoNotifica.feature index 588341b7d..986241cec 100644 --- a/src/test/resources/feature/4-helpdesk/007_080_ottenereIlTracciatoNotifica.feature +++ b/src/test/resources/feature/4-helpdesk/007_080_ottenereIlTracciatoNotifica.feature @@ -13,7 +13,7 @@ Feature: Utente helpdesk visualizza pagina sezione ricerca ed estrazione dati And visualizzazione corretta pagina ricerca ed estrazione dati And Selezione ottieni log completi And viene inserito numero ticket - And viene inserito codice IUN senza ricerca "YRUZ-NYXJ-DAJK-202405-N-1" + And viene inserito codice IUN senza ricerca "IUN1" And Spuntare la casella Deanonimizzazione dati And Cliccare sul bottone ricerca And controllo messaggio di successo @@ -26,12 +26,12 @@ Feature: Utente helpdesk visualizza pagina sezione ricerca ed estrazione dati And Si clicca sul bottone resetta filtri And Selezione ottieni log completi And viene inserito numero ticket - And viene inserito codice IUN "YRUZ-NYXJ-DAJK-20240" + And viene inserito codice IUN "IUN0" And viene visualizzato messaggio di errore IUN And Si clicca sul bottone resetta filtri And Selezione ottieni log completi And viene inserito numero ticket - And viene inserito codice IUN senza ricerca "YRUZ-NYXJ-DAJK-202405-N-3" + And viene inserito codice IUN senza ricerca "IUN3" And Cliccare sul bottone ricerca And controllo password # su aws non e possibile scaricare il zip con IUN non valido diff --git a/src/test/resources/feature/4-helpdesk/009_082_ottenereIlTracciatoNotificaAnonimizzato.feature b/src/test/resources/feature/4-helpdesk/009_082_ottenereIlTracciatoNotificaAnonimizzato.feature index 8fe9924c9..59f59608c 100644 --- a/src/test/resources/feature/4-helpdesk/009_082_ottenereIlTracciatoNotificaAnonimizzato.feature +++ b/src/test/resources/feature/4-helpdesk/009_082_ottenereIlTracciatoNotificaAnonimizzato.feature @@ -13,7 +13,7 @@ Feature: Utente helpdesk visualizza pagina sezione ricerca ed estrazione dati And visualizzazione corretta pagina ricerca ed estrazione dati And Selezione ottieni log completi And viene inserito numero ticket - And viene inserito codice IUN senza ricerca "YRUZ-NYXJ-DAJK-202405-N-1" + And viene inserito codice IUN senza ricerca "IUN1" And Cliccare sul bottone ricerca And controllo messaggio di successo And controllo password diff --git a/src/test/resources/feature/4-helpdesk/010_083_ResettareIlFormDiRicerca.feature b/src/test/resources/feature/4-helpdesk/010_083_ResettareIlFormDiRicerca.feature index e0f5ee1c1..241fd1790 100644 --- a/src/test/resources/feature/4-helpdesk/010_083_ResettareIlFormDiRicerca.feature +++ b/src/test/resources/feature/4-helpdesk/010_083_ResettareIlFormDiRicerca.feature @@ -13,7 +13,7 @@ Feature: Utente helpdesk visualizza pagina sezione ricerca ed estrazione dati And visualizzazione corretta pagina ricerca ed estrazione dati And Selezione ottieni log completi And viene inserito numero ticket - And viene inserito codice IUN senza ricerca "YRUZ-NYXJ-DAJK-202405-N-1" + And viene inserito codice IUN senza ricerca "IUN1" And Cliccare sul bottone ricerca And controllo messaggio di successo And Si clicca sul bottone resetta filtri From 7e415e05ea150920f9bda9c287807fa54dc812a1 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Sat, 26 Oct 2024 18:05:08 +0200 Subject: [PATCH 138/212] add dependency bean --- .../frontend/e2e/config/WebDriverConfig.java | 176 +++++++++++++++++- .../pn/frontend/e2e/listeners/HooksNew.java | 145 +-------------- .../personaGiuridica/HeaderPGSection.java | 2 + .../pn/frontend/e2e/utility/CookieConfig.java | 1 - .../CucumberSpringIntegration.java | 3 +- .../LoginPersonaFisicaPagoPA.java | 4 +- .../RecapitiPersonaFisicaTest.java | 2 +- .../personaGiuridica/LoginPGPagoPATest.java | 8 +- 8 files changed, 189 insertions(+), 152 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/config/WebDriverConfig.java b/src/main/java/it/pn/frontend/e2e/config/WebDriverConfig.java index c85aef4ff..78f2fabd4 100644 --- a/src/main/java/it/pn/frontend/e2e/config/WebDriverConfig.java +++ b/src/main/java/it/pn/frontend/e2e/config/WebDriverConfig.java @@ -1,19 +1,32 @@ package it.pn.frontend.e2e.config; import io.github.bonigarcia.wdm.WebDriverManager; +import it.pn.frontend.e2e.listeners.HooksNew; +import it.pn.frontend.e2e.listeners.NetWorkInfo; +import it.pn.frontend.e2e.utility.CookieConfig; import lombok.Getter; import lombok.Setter; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.chrome.ChromeOptions; +import org.openqa.selenium.devtools.DevTools; +import org.openqa.selenium.devtools.HasDevTools; +import org.openqa.selenium.devtools.v126.network.Network; +import org.openqa.selenium.devtools.v126.network.model.RequestWillBeSent; import org.openqa.selenium.edge.EdgeDriver; import org.openqa.selenium.edge.EdgeOptions; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.firefox.FirefoxOptions; +import org.openqa.selenium.firefox.FirefoxProfile; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.PropertySource; +import org.springframework.beans.factory.config.ConfigurableBeanFactory; +import org.springframework.context.annotation.*; + +import java.time.Duration; +import java.util.*; /* *Modifiche principali: @@ -157,6 +170,161 @@ public class WebDriverConfig { @Value("${url.mittente}") private String urlMittente; - + private final Map requests = new HashMap<>(); + + @Getter + private final List netWorkInfos = new ArrayList<>(); + + private final String os = System.getProperty("os.name"); + + private DevTools devTools; + + @Getter + public WebDriver driver; + + @Autowired + @Lazy + public CookieConfig cookieConfig; + + /** + * Logger + */ + private static final Logger logger = LoggerFactory.getLogger(WebDriverConfig.class); + + + @Bean + public WebDriver webDriver() { + + var browser = Optional.ofNullable(getBrowser()) + .orElseThrow(() -> new IllegalArgumentException("Browser must be specified")); + // var browser = Optional.ofNullable(System.getProperty("browser")) + // .orElseThrow(() -> new IllegalArgumentException("Browser must be specified")); + // this.headless = System.getProperty("headless", "false"); + // webDriverConfig.setHeadless(System.getProperty("headless", "false")); + // webDriverConfig.setHeadless("false"); + switch (browser) { + case "firefox" -> setupFirefox(); + case "chrome" -> setupChrome(); + case "edge" -> setupEdge(); + default -> throw new IllegalArgumentException("Unsupported browser: " + browser); + } + + cookieConfig.addCookie(); + + return driver; + } + + + public void setupFirefox() { + WebDriverManager.firefoxdriver().setup(); + var firefoxProfile = new FirefoxProfile(); + var firefoxOptions = new FirefoxOptions(); + firefoxOptions.setProfile(firefoxProfile); + firefoxOptions.addArguments("-private"); + + if (Boolean.parseBoolean(getHeadless())) { + firefoxOptions.addArguments("--width=1200", "--height=800", "--headless"); + } + driver = new FirefoxDriver(firefoxOptions); + driver.manage().window().maximize(); + driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(5)); + logger.info("Firefox driver started"); + } + + public void setupChrome() { + WebDriverManager.chromedriver().setup(); + var chromeOptions = new ChromeOptions(); + chromeOptions.addArguments("--lang=it", "--incognito", "--disable-dev-shm-usage", "--remote-allow-origins=*", "--enable-clipboard"); + var downloadFilePath = getDownloadFilePath(); + // var downloadFilePath = System.getProperty("downloadFilePath"); + var chromePrefs = Map.of("download.default_directory", downloadFilePath); + chromeOptions.setExperimentalOption("prefs", chromePrefs); + + if (Boolean.parseBoolean(getHeadless())) { + chromeOptions.addArguments("--no-sandbox", "--headless", "window-size=1920,1080"); + } + + driver = new ChromeDriver(chromeOptions); + driver.manage().window().maximize(); + driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10)); + + setupDevTools(); + logger.info("Chrome driver started"); + } + + public void setupEdge() { + if (this.os.toLowerCase().contains("windows")) { + WebDriverManager.edgedriver().setup(); + } else { + throw new UnsupportedOperationException("Edge browser is not supported on OS: " + this.os); + } + var edgeOptions = new EdgeOptions(); + edgeOptions.setCapability("ms:inPrivate", true); + if (Boolean.parseBoolean(getHeadless())) { + edgeOptions.addArguments("window-size=1920,1080", "--headless"); + } + driver = new EdgeDriver(edgeOptions); + driver.manage().window().maximize(); + driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(20)); + logger.info("Edge driver started"); + } + + + private void setupDevTools() { + devTools = ((HasDevTools) driver).getDevTools(); + devTools.createSession(); + devTools.send(Network.enable(Optional.empty(), Optional.empty(), Optional.empty())); + captureHttpRequests(); + captureHttpResponse(); + } + + private void captureHttpRequests() { + devTools.addListener(Network.requestWillBeSent(), request -> { + var url = request.getRequest().getUrl(); + cookieConfig.getCookies(url).forEach(cookie -> driver.manage().addCookie(cookie)); + requests.put(request.getRequestId().toString(), request); + }); + } + + private void captureHttpResponse() { + devTools.addListener(Network.responseReceived(), response -> { + var requestId = response.getRequestId().toString(); + if (requests.containsKey(requestId)) { + var request = requests.get(requestId); + var headers = request.getRequest().getHeaders(); + + // Controlla il tipo di risorsa come stringa "XHR" + if ("XHR".equals(response.getType().toString())) { + var netWorkInfo = new NetWorkInfo(); + if (headers.get("Authorization") != null) { + var authHeader = headers.get("Authorization").toString(); + System.setProperty("token", authHeader); + netWorkInfo.setAuthorizationBearer(authHeader); + } + netWorkInfo.setRequestId(requestId); + netWorkInfo.setRequestUrl(request.getRequest().getUrl()); + netWorkInfo.setRequestMethod(request.getRequest().getMethod()); + netWorkInfo.setResponseStatus(response.getResponse().getStatus().toString()); + + try { + var bodyResponse = devTools.send(Network.getResponseBody(response.getRequestId())).getBody(); + netWorkInfo.setResponseBody(bodyResponse); + } catch (Exception ignored) { + // Ignorato perché non sempre è disponibile il body della risposta + } + logger.info("NET_INFO: "+netWorkInfo.getRequestUrl()); + netWorkInfos.add(netWorkInfo); + } + } + requests.remove(requestId); + }); + } + + public void clearRequest (){ + requests.clear(); + } + public void clearNetWorkInfos (){ + netWorkInfos.clear(); + } } diff --git a/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java b/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java index 5710baa31..888f1f9e1 100644 --- a/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java +++ b/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java @@ -57,140 +57,21 @@ public class HooksNew { private static final Logger logger = LoggerFactory.getLogger(HooksNew.class); - @Getter - public WebDriver driver; - - private WebDriverWait wait; - - private DevTools devTools; - - private final Map requests = new HashMap<>(); @Getter public static String scenario; - @Getter - private final List netWorkInfos = new ArrayList<>(); - - private final String os = System.getProperty("os.name"); - - @Autowired - private CookieConfig cookieConfig; @Autowired private WebDriverConfig webDriverConfig; + @Getter + public WebDriver driver; - private void setupFirefox() { - WebDriverManager.firefoxdriver().setup(); - var firefoxProfile = new FirefoxProfile(); - var firefoxOptions = new FirefoxOptions(); - firefoxOptions.setProfile(firefoxProfile); - firefoxOptions.addArguments("-private"); - - if (Boolean.parseBoolean(webDriverConfig.getHeadless())) { - firefoxOptions.addArguments("--width=1200", "--height=800", "--headless"); - } - driver = new FirefoxDriver(firefoxOptions); - driver.manage().window().maximize(); - driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(5)); - logger.info("Firefox driver started"); - } - - private void setupChrome() { - WebDriverManager.chromedriver().setup(); - var chromeOptions = new ChromeOptions(); - chromeOptions.addArguments("--lang=it", "--incognito", "--disable-dev-shm-usage", "--remote-allow-origins=*", "--enable-clipboard"); - var downloadFilePath = webDriverConfig.getDownloadFilePath(); - // var downloadFilePath = System.getProperty("downloadFilePath"); - var chromePrefs = Map.of("download.default_directory", downloadFilePath); - chromeOptions.setExperimentalOption("prefs", chromePrefs); - - if (Boolean.parseBoolean(webDriverConfig.getHeadless())) { - chromeOptions.addArguments("--no-sandbox", "--headless", "window-size=1920,1080"); - } - - driver = new ChromeDriver(chromeOptions); - driver.manage().window().maximize(); - driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10)); - - setupDevTools(); - logger.info("Chrome driver started"); - } - - private void setupDevTools() { - devTools = ((HasDevTools) driver).getDevTools(); - devTools.createSession(); - devTools.send(Network.enable(Optional.empty(), Optional.empty(), Optional.empty())); - captureHttpRequests(); - captureHttpResponse(); - } - - private void captureHttpRequests() { - devTools.addListener(Network.requestWillBeSent(), request -> { - var url = request.getRequest().getUrl(); - cookieConfig.getCookies(url).forEach(cookie -> driver.manage().addCookie(cookie)); - requests.put(request.getRequestId().toString(), request); - }); - } - - private void captureHttpResponse() { - devTools.addListener(Network.responseReceived(), response -> { - var requestId = response.getRequestId().toString(); - if (requests.containsKey(requestId)) { - var request = requests.get(requestId); - var headers = request.getRequest().getHeaders(); - - // Controlla il tipo di risorsa come stringa "XHR" - if ("XHR".equals(response.getType().toString())) { - var netWorkInfo = new NetWorkInfo(); - if (headers.get("Authorization") != null) { - var authHeader = headers.get("Authorization").toString(); - System.setProperty("token", authHeader); - netWorkInfo.setAuthorizationBearer(authHeader); - } - netWorkInfo.setRequestId(requestId); - netWorkInfo.setRequestUrl(request.getRequest().getUrl()); - netWorkInfo.setRequestMethod(request.getRequest().getMethod()); - netWorkInfo.setResponseStatus(response.getResponse().getStatus().toString()); - - try { - var bodyResponse = devTools.send(Network.getResponseBody(response.getRequestId())).getBody(); - netWorkInfo.setResponseBody(bodyResponse); - } catch (Exception ignored) { - // Ignorato perché non sempre è disponibile il body della risposta - } - logger.info("NET_INFO: "+netWorkInfo.getRequestUrl()); - netWorkInfos.add(netWorkInfo); - } - } - requests.remove(requestId); - }); - } - - private void setupEdge() { - if (this.os.toLowerCase().contains("windows")) { - WebDriverManager.edgedriver().setup(); - } else { - throw new UnsupportedOperationException("Edge browser is not supported on OS: " + this.os); - } - var edgeOptions = new EdgeOptions(); - edgeOptions.setCapability("ms:inPrivate", true); - if (Boolean.parseBoolean(webDriverConfig.getHeadless())) { - edgeOptions.addArguments("window-size=1920,1080", "--headless"); - } - driver = new EdgeDriver(edgeOptions); - driver.manage().window().maximize(); - driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(20)); - logger.info("Edge driver started"); - } - @Before public void startScenario(Scenario scenario) { logger.info("----- START SCENARIO: {} -----", scenario.getName()); Hooks.scenario = scenario.getName(); - logger.info( "LOAD PROPERTIES HEADLESS..:" +webDriverConfig.getHeadless()); - scenario.getSourceTagNames().stream() .filter(tag -> tag.startsWith("@TA_")) .forEach(tag -> { @@ -199,28 +80,14 @@ public void startScenario(Scenario scenario) { }); - var browser = Optional.ofNullable(webDriverConfig.getBrowser()) - .orElseThrow(() -> new IllegalArgumentException("Browser must be specified")); - // var browser = Optional.ofNullable(System.getProperty("browser")) - // .orElseThrow(() -> new IllegalArgumentException("Browser must be specified")); - //this.headless = System.getProperty("headless", "false"); - // webDriverConfig.setHeadless(System.getProperty("headless", "false")); - // webDriverConfig.setHeadless("false"); - switch (browser) { - case "firefox" -> setupFirefox(); - case "chrome" -> setupChrome(); - case "edge" -> setupEdge(); - default -> throw new IllegalArgumentException("Unsupported browser: " + browser); - } - - cookieConfig.addCookie(); + driver = webDriverConfig.webDriver(); } @After public void endScenario(Scenario scenario) throws IOException { System.clearProperty("IUN"); - netWorkInfos.forEach(netWorkInfo -> { + webDriverConfig.getNetWorkInfos().forEach(netWorkInfo -> { logger.info("Request ID: {}", netWorkInfo.getRequestId()); logger.info("Request URL: {}", netWorkInfo.getRequestUrl()); logger.info("Method: {}", netWorkInfo.getRequestMethod()); @@ -240,8 +107,8 @@ public void endScenario(Scenario scenario) throws IOException { } driver.quit(); - requests.clear(); - netWorkInfos.clear(); + webDriverConfig.clearRequest(); + webDriverConfig.clearNetWorkInfos(); logger.info("----- END SCENARIO: {} -----", scenario.getName()); } diff --git a/src/main/java/it/pn/frontend/e2e/section/destinatario/personaGiuridica/HeaderPGSection.java b/src/main/java/it/pn/frontend/e2e/section/destinatario/personaGiuridica/HeaderPGSection.java index aa5f98976..c94e32460 100644 --- a/src/main/java/it/pn/frontend/e2e/section/destinatario/personaGiuridica/HeaderPGSection.java +++ b/src/main/java/it/pn/frontend/e2e/section/destinatario/personaGiuridica/HeaderPGSection.java @@ -11,6 +11,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Component; @Component @@ -18,6 +19,7 @@ public class HeaderPGSection extends BasePage { private static final Logger logger = LoggerFactory.getLogger(HeaderPGSection.class); + @Autowired public HeaderPGSection(WebDriver driver) { // Il costruttore ora usa l'annotazione @Autowired super(driver); diff --git a/src/main/java/it/pn/frontend/e2e/utility/CookieConfig.java b/src/main/java/it/pn/frontend/e2e/utility/CookieConfig.java index 24894995f..04857d900 100644 --- a/src/main/java/it/pn/frontend/e2e/utility/CookieConfig.java +++ b/src/main/java/it/pn/frontend/e2e/utility/CookieConfig.java @@ -20,7 +20,6 @@ public class CookieConfig { // private static final String env = System.getProperty("environment"); private final Map> cookieMap; - @Autowired public CookieConfig() { this.cookieMap = new HashMap<>(); } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java index 2546a67bf..072b31f54 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java @@ -22,7 +22,8 @@ WebDriverConfig.class, BearerTokenConfig.class, UserPasswordConfig.class, - DataPopulation.class + DataPopulation.class, + HeaderPGSection.class }) @EnableScheduling diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java index 692b0f184..2cfdcd800 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java @@ -298,7 +298,7 @@ public void homePageDestinatarioVieneVisualizzataCorrettamente() { private int getCodiceRispostaChiamataApi(String urlChiamata) { logger.info("Recupero codice risposta della chiamata " + urlChiamata); int codiceRispostaChiamataApi = 0; - for (NetWorkInfo chiamate : hooks.getNetWorkInfos()) { + for (NetWorkInfo chiamate : webDriverConfig.getNetWorkInfos()) { if (chiamate.getRequestUrl().startsWith(urlChiamata) && chiamate.getRequestMethod().equals("GET")) { codiceRispostaChiamataApi = Integer.parseInt(chiamate.getResponseStatus()); break; @@ -349,7 +349,7 @@ private boolean readHttpRequest() { // String variabileAmbiente = System.getProperty("environment"); String variabileAmbiente = webDriverConfig.getEnvironment(); boolean urlFound = false; - for (NetWorkInfo netWorkInfo : hooks.getNetWorkInfos()) { + for (NetWorkInfo netWorkInfo : webDriverConfig.getNetWorkInfos()) { logger.info(netWorkInfo.getRequestUrl()); logger.info(netWorkInfo.getResponseStatus()); String urlToFind = "https://webapi." + variabileAmbiente + ".notifichedigitali.it/token-exchange"; diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java index 9dcc13b39..5d1ebcb5d 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java @@ -106,7 +106,7 @@ public void nellaPaginaITuoiRecapitiSiVisualizzaCorrettamenteIlPopUpDiInseriment } private boolean verificaChiamataEmail(String url) { - for (NetWorkInfo info : hooks.getNetWorkInfos()) { + for (NetWorkInfo info : webDriverConfig.getNetWorkInfos()) { if (info.getRequestUrl().contains(url) && info.getResponseStatus().equals("200")) { logger.info("La chiamata per inviare email é utilizzabile"); return true; diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java index 1759efb70..9c73870de 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java @@ -57,7 +57,7 @@ public class LoginPGPagoPATest { private List netWorkInfos; **/ - + @Autowired private HeaderPGSection headerPGSection; private AccediAreaRiservataPGPage accediAreaRiservataPGPage; @@ -115,7 +115,7 @@ public void loginMittenteConTokenExchange(String personaGiuridica) { WebTool.waitTime(10); PiattaformaNotifichePGPAPage notifichePGPage = new PiattaformaNotifichePGPAPage(hooks.getDriver()); - headerPGSection = new HeaderPGSection(hooks.getDriver()); + // headerPGSection = new HeaderPGSection(hooks.getDriver()); headerPGSection.waitLoadHeaderPGPage(); if (personaGiuridica.equalsIgnoreCase("delegante")) { @@ -247,7 +247,7 @@ private void readUrlPortaleMittente(String user, String password) { @Then("Home page persona giuridica viene visualizzata correttamente") public void homePagePersonaGiuridicaVieneVisualizzataCorrettamente() { - headerPGSection = new HeaderPGSection(hooks.getDriver()); + // headerPGSection = new HeaderPGSection(hooks.getDriver()); headerPGSection.waitLoadHeaderPGPage(); HomePagePG homePagePG = new HomePagePG(hooks.getDriver()); homePagePG.waitLoadHomePagePGPage(); @@ -293,7 +293,7 @@ public void loginConPersonaGiuridica(Map datiPG) { @And("Logout da portale persona giuridica") public void logoutDaPortalePersonaGiuridica() { - headerPGSection = new HeaderPGSection(hooks.getDriver()); + // headerPGSection = new HeaderPGSection(hooks.getDriver()); headerPGSection.waitLoadHeaderPGPage(); headerPGSection.clickEsciButton(); WebTool.waitTime(5); From c559064ad814b16cf9ecf80d4c33f4a2960a4942 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Mon, 28 Oct 2024 10:27:47 +0100 Subject: [PATCH 139/212] refactor cookies --- .../frontend/e2e/config/WebDriverConfig.java | 3 ++- .../AccediAreaRiservataPGPage.java | 2 ++ .../personaGiuridica/HeaderPGSection.java | 1 - .../pn/frontend/e2e/utility/CookieConfig.java | 2 ++ .../CucumberSpringIntegration.java | 4 +++- .../personaGiuridica/LoginPGPagoPATest.java | 24 +++++-------------- 6 files changed, 15 insertions(+), 21 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/config/WebDriverConfig.java b/src/main/java/it/pn/frontend/e2e/config/WebDriverConfig.java index 78f2fabd4..cb415debe 100644 --- a/src/main/java/it/pn/frontend/e2e/config/WebDriverConfig.java +++ b/src/main/java/it/pn/frontend/e2e/config/WebDriverConfig.java @@ -179,11 +179,12 @@ public class WebDriverConfig { private DevTools devTools; + @Getter public WebDriver driver; @Autowired - @Lazy + @Getter public CookieConfig cookieConfig; /** diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/AccediAreaRiservataPGPage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/AccediAreaRiservataPGPage.java index 069e12c0a..5c504da56 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/AccediAreaRiservataPGPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/AccediAreaRiservataPGPage.java @@ -10,6 +10,7 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; public class AccediAreaRiservataPGPage extends BasePage { private final Logger logger = LoggerFactory.getLogger("AccediAreaRiservataPGPage"); @@ -17,6 +18,7 @@ public class AccediAreaRiservataPGPage extends BasePage { @FindBy(id = "spidButton") WebElement spidButton; + @Autowired public AccediAreaRiservataPGPage(WebDriver driver) { super(driver); } diff --git a/src/main/java/it/pn/frontend/e2e/section/destinatario/personaGiuridica/HeaderPGSection.java b/src/main/java/it/pn/frontend/e2e/section/destinatario/personaGiuridica/HeaderPGSection.java index c94e32460..e3243942f 100644 --- a/src/main/java/it/pn/frontend/e2e/section/destinatario/personaGiuridica/HeaderPGSection.java +++ b/src/main/java/it/pn/frontend/e2e/section/destinatario/personaGiuridica/HeaderPGSection.java @@ -11,7 +11,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Component; @Component diff --git a/src/main/java/it/pn/frontend/e2e/utility/CookieConfig.java b/src/main/java/it/pn/frontend/e2e/utility/CookieConfig.java index 04857d900..bac220474 100644 --- a/src/main/java/it/pn/frontend/e2e/utility/CookieConfig.java +++ b/src/main/java/it/pn/frontend/e2e/utility/CookieConfig.java @@ -6,6 +6,7 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; import java.text.SimpleDateFormat; @@ -16,6 +17,7 @@ public class CookieConfig { private static final Logger logger = LoggerFactory.getLogger("CookieConfig"); @Autowired + @Lazy private WebDriverConfig webDriverConfig; // private static final String env = System.getProperty("environment"); private final Map> cookieMap; diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java index 072b31f54..629318ca6 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java @@ -6,6 +6,7 @@ import it.pn.frontend.e2e.config.WebDriverConfig; import it.pn.frontend.e2e.listeners.LoggerStartupListener; import it.pn.frontend.e2e.listeners.NetWorkInfo; +import it.pn.frontend.e2e.pages.destinatario.personaGiuridica.AccediAreaRiservataPGPage; import it.pn.frontend.e2e.section.destinatario.personaGiuridica.HeaderPGSection; import it.pn.frontend.e2e.utility.CookieConfig; import it.pn.frontend.e2e.utility.DataPopulation; @@ -23,7 +24,8 @@ BearerTokenConfig.class, UserPasswordConfig.class, DataPopulation.class, - HeaderPGSection.class + HeaderPGSection.class, + AccediAreaRiservataPGPage.class }) @EnableScheduling diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java index 9c73870de..b7a356c3c 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java @@ -11,11 +11,8 @@ import it.pn.frontend.e2e.config.BearerTokenConfig; import it.pn.frontend.e2e.config.CustomHttpClient; import it.pn.frontend.e2e.config.WebDriverConfig; -import it.pn.frontend.e2e.listeners.Hooks; import it.pn.frontend.e2e.listeners.HooksNew; -import it.pn.frontend.e2e.listeners.NetWorkInfo; import it.pn.frontend.e2e.pages.destinatario.DestinatarioPage; -import it.pn.frontend.e2e.pages.destinatario.personaFisica.ComeVuoiAccederePage; import it.pn.frontend.e2e.pages.destinatario.personaGiuridica.*; import it.pn.frontend.e2e.section.CookiesSection; import it.pn.frontend.e2e.section.destinatario.personaGiuridica.HeaderPGSection; @@ -24,17 +21,13 @@ import it.pn.frontend.e2e.utility.WebTool; import org.apache.hc.client5.http.cookie.BasicCookieStore; import org.apache.hc.client5.http.impl.cookie.BasicClientCookie; - import org.junit.jupiter.api.Assertions; -import org.openqa.selenium.WebDriver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Component; +import org.springframework.context.annotation.Lazy; import java.util.HashMap; -import java.util.List; import java.util.Map; import java.util.concurrent.TimeUnit; @@ -59,13 +52,12 @@ public class LoginPGPagoPATest { **/ @Autowired private HeaderPGSection headerPGSection; + @Autowired private AccediAreaRiservataPGPage accediAreaRiservataPGPage; private Map datiPersonaGiuridica = new HashMap<>(); private Map urlPersonaGiuridica; - @Autowired - private CookieConfig cookieConfig; @Autowired private WebDriverConfig webDriverConfig; @Autowired @@ -115,7 +107,6 @@ public void loginMittenteConTokenExchange(String personaGiuridica) { WebTool.waitTime(10); PiattaformaNotifichePGPAPage notifichePGPage = new PiattaformaNotifichePGPAPage(hooks.getDriver()); - // headerPGSection = new HeaderPGSection(hooks.getDriver()); headerPGSection.waitLoadHeaderPGPage(); if (personaGiuridica.equalsIgnoreCase("delegante")) { @@ -162,7 +153,7 @@ public void loginPortalePersonaGiuridicaTramiteRequestMethod() { hooks.getDriver().get(this.urlPersonaGiuridica.get("urlPortale")); - if (!cookieConfig.isCookieEnabled()) { + if (!webDriverConfig.getCookieConfig().isCookieEnabled()) { CookiesSection cookiesPage = new CookiesSection(hooks.getDriver()); if (cookiesPage.waitLoadCookiesPage()) { cookiesPage.selezionaAccettaTuttiButton(); @@ -247,7 +238,6 @@ private void readUrlPortaleMittente(String user, String password) { @Then("Home page persona giuridica viene visualizzata correttamente") public void homePagePersonaGiuridicaVieneVisualizzataCorrettamente() { - // headerPGSection = new HeaderPGSection(hooks.getDriver()); headerPGSection.waitLoadHeaderPGPage(); HomePagePG homePagePG = new HomePagePG(hooks.getDriver()); homePagePG.waitLoadHomePagePGPage(); @@ -259,13 +249,13 @@ public void loginConPersonaGiuridica(Map datiPG) { CookiesSection cookiesSection; - if (!cookieConfig.isCookieEnabled()) { + if (!webDriverConfig.getCookieConfig().isCookieEnabled()) { cookiesSection = new CookiesSection(hooks.getDriver()); if (cookiesSection.waitLoadCookiesPage()) { cookiesSection.selezionaAccettaTuttiButton(); } } - accediAreaRiservataPGPage = new AccediAreaRiservataPGPage(hooks.getDriver()); + accediAreaRiservataPGPage.waitLoadAccediAreaRiservataPGPage(); accediAreaRiservataPGPage.clickSpidButton(); @@ -293,11 +283,9 @@ public void loginConPersonaGiuridica(Map datiPG) { @And("Logout da portale persona giuridica") public void logoutDaPortalePersonaGiuridica() { - // headerPGSection = new HeaderPGSection(hooks.getDriver()); headerPGSection.waitLoadHeaderPGPage(); headerPGSection.clickEsciButton(); WebTool.waitTime(5); - accediAreaRiservataPGPage = new AccediAreaRiservataPGPage(hooks.getDriver()); accediAreaRiservataPGPage.waitLoadAccediAreaRiservataPGPage(); WebTool.waitTime(5); @@ -337,7 +325,7 @@ public void loginPortalePersonaGiuridicaTramiteRequestMethod(String dpFile) { hooks.getDriver().get(this.urlPersonaGiuridica.get("urlPortale")); - if (!cookieConfig.isCookieEnabled()) { + if (!webDriverConfig.getCookieConfig().isCookieEnabled()) { CookiesSection cookiesPage = new CookiesSection(hooks.getDriver()); if (cookiesPage.waitLoadCookiesPage()) { cookiesPage.selezionaAccettaTuttiButton(); From c1d3c9690f1cb2a6372c80da84e5bf7ab014b797 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Mon, 28 Oct 2024 11:13:27 +0100 Subject: [PATCH 140/212] update cookies login PF --- .../personaFisica/LoginPersonaFisicaPagoPA.java | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java index 2cfdcd800..44c951bf1 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java @@ -34,8 +34,6 @@ public class LoginPersonaFisicaPagoPA { private HooksNew hooks; @Autowired private WebDriverConfig webDriverConfig; - @Autowired - private CookieConfig cookieConfig; //TODO Parametrizzare @@ -111,7 +109,7 @@ public void loginConDestinatario(String datipersonaFisica) { logger.info("cookies start"); CookiesSection cookiesPage; - if (!cookieConfig.isCookieEnabled()) { + if (!webDriverConfig.getCookieConfig().isCookieEnabled()) { cookiesPage = new CookiesSection(this.hooks.getDriver()); if (cookiesPage.waitLoadCookiesPage()) { cookiesPage.selezionaAccettaTuttiButton(); @@ -169,7 +167,7 @@ public void loginConDestinatario(Map datiPF) { logger.info("cookies start"); CookiesSection cookiesPage; - if (!cookieConfig.isCookieEnabled()) { + if (!webDriverConfig.getCookieConfig().isCookieEnabled()) { cookiesPage = new CookiesSection(this.hooks.getDriver()); if (cookiesPage.waitLoadCookiesPage()) { cookiesPage.selezionaAccettaTuttiButton(); @@ -179,7 +177,7 @@ public void loginConDestinatario(Map datiPF) { AccediAPiattaformaNotifichePage accediApiattaformaNotifichePage = new AccediAPiattaformaNotifichePage(this.hooks.getDriver()); accediApiattaformaNotifichePage.waitLoadAccediAPiattaformaNotifichePage(); accediApiattaformaNotifichePage.selezionaAccediButton(); - if (!cookieConfig.isCookieEnabled()) { + if (!webDriverConfig.getCookieConfig().isCookieEnabled()) { cookiesPage = new CookiesSection(this.hooks.getDriver()); if (cookiesPage.waitLoadCookiesPage()) { cookiesPage.selezionaAccettaTuttiButton(); @@ -233,7 +231,7 @@ public void loginConDestinatario(Map datiPF) { public void homePageDestinatarioVieneVisualizzataCorrettamente() { CookiesSection cookiesSection; - if (!cookieConfig.isCookieEnabled()) { + if (!webDriverConfig.getCookieConfig().isCookieEnabled()) { cookiesSection = new CookiesSection(this.hooks.getDriver()); if (cookiesSection.waitLoadCookiesPage()) { cookiesSection.selezionaAccettaTuttiButton(); @@ -261,7 +259,7 @@ public void homePageDestinatarioVieneVisualizzataCorrettamente() { HeaderPFSection headerPFSection = new HeaderPFSection(this.hooks.getDriver()); headerPFSection.waitLoadHeaderDESection(); - if (!cookieConfig.isCookieEnabled()) { + if (!webDriverConfig.getCookieConfig().isCookieEnabled()) { cookiesSection = new CookiesSection(this.hooks.getDriver()); if (cookiesSection.waitLoadCookiesPage()) { cookiesSection.selezionaAccettaTuttiButton(); @@ -317,7 +315,7 @@ public void logoutDaPortaleDestinatario() { ComeVuoiAccederePage comeVuoiAccederePage = new ComeVuoiAccederePage(this.hooks.getDriver()); comeVuoiAccederePage.waitLoadComeVuoiAccederePage(); - if (!cookieConfig.isCookieEnabled()) { + if (!webDriverConfig.getCookieConfig().isCookieEnabled()) { CookiesSection cookiesSection = new CookiesSection(this.hooks.getDriver()); if (cookiesSection.waitLoadCookiesPage()) { logger.info("banner dei cookies visualizzato"); From 7c0d808088e5b672d5c7e77bd106bdf90f0c8d33 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Mon, 28 Oct 2024 11:18:47 +0100 Subject: [PATCH 141/212] update cookies login Mittente --- .../frontend/e2e/pages/mittente/SelezionaEntePAPage.java | 2 +- .../stepDefinitions/mittente/LoginMittentePagoPA.java | 9 +++------ 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/SelezionaEntePAPage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/SelezionaEntePAPage.java index b3b28fb87..def7f9c5f 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/SelezionaEntePAPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/SelezionaEntePAPage.java @@ -58,7 +58,7 @@ public void selezionareComune(String comune) { public void selezionaAccedi() { Actions actions = new Actions(driver); - getWebDriverWait(60).withMessage("il buttone Eccedi non è cliccabile") + getWebDriverWait(60).withMessage("il buttone Accedi non è cliccabile") .until(ExpectedConditions.elementToBeClickable(this.accediButton)); actions.moveToElement(this.accediButton).click().perform(); } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/LoginMittentePagoPA.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/LoginMittentePagoPA.java index 71419508b..caf127693 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/LoginMittentePagoPA.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/LoginMittentePagoPA.java @@ -56,9 +56,6 @@ public class LoginMittentePagoPA { @Autowired private HooksNew hooks; - @Autowired - private CookieConfig cookieConfig; - @Autowired private WebDriverConfig webDriverConfig; @@ -136,7 +133,7 @@ public void loginConMittente(String datiMittenteFile) { // Verifica della presenza dell'URL e dei cookie per proseguire con l'accettazione dei cookie if (hooks.getDriver().getCurrentUrl().contains(webDriverConfig.getUrlSelfCare()) || - !cookieConfig.isCookieEnabled()) { + !webDriverConfig.getCookieConfig().isCookieEnabled()) { logger.info("cookies start"); CookiesSection cookiesPage; cookiesPage = new CookiesSection(hooks.getDriver()); @@ -181,7 +178,7 @@ public void loginConMittente(Map datiMittenteFile) { preAccediAreaRiservataPAPage.selezionaProcediAlLoginButton(); if (hooks.getDriver().getCurrentUrl().contains(webDriverConfig.getUrlSelfCare()) || - !cookieConfig.isCookieEnabled()) { + !webDriverConfig.getCookieConfig().isCookieEnabled()) { logger.info("cookies start"); CookiesSection cookiesPage; cookiesPage = new CookiesSection(hooks.getDriver()); @@ -412,7 +409,7 @@ public void logoutDaPortaleMittente() { headerPASection.waitLoadHeaderSection(); headerPASection.selezionaEsciButton(); - if (!cookieConfig.isCookieEnabled()) { + if (!webDriverConfig.getCookieConfig().isCookieEnabled()) { CookiesSection cookiesSection = new CookiesSection(hooks.getDriver()); if (cookiesSection.waitLoadCookiesPage()) { cookiesSection.selezionaAccettaTuttiButton(); From 9005383a69f84b664f554d97b476af576dc6e7b5 Mon Sep 17 00:00:00 2001 From: andreadefranco Date: Mon, 28 Oct 2024 11:22:15 +0100 Subject: [PATCH 142/212] inserito @Autowired HelpdeskPage --- src/main/java/it/pn/frontend/e2e/common/HelpdeskPage.java | 3 ++- .../e2e/stepDefinitions/CucumberSpringIntegration.java | 4 +++- .../pn/frontend/e2e/stepDefinitions/common/HelpdeskTest.java | 3 ++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/common/HelpdeskPage.java b/src/main/java/it/pn/frontend/e2e/common/HelpdeskPage.java index 69403070f..3aae2f342 100644 --- a/src/main/java/it/pn/frontend/e2e/common/HelpdeskPage.java +++ b/src/main/java/it/pn/frontend/e2e/common/HelpdeskPage.java @@ -32,8 +32,9 @@ import net.lingala.zip4j.ZipFile; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; - +@Component public class HelpdeskPage extends BasePage { private final Logger logger = LoggerFactory.getLogger("Helpdesk Page"); diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java index 072b31f54..5eba90bc6 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java @@ -1,6 +1,7 @@ package it.pn.frontend.e2e.stepDefinitions; import io.cucumber.spring.CucumberContextConfiguration; +import it.pn.frontend.e2e.common.HelpdeskPage; import it.pn.frontend.e2e.config.BearerTokenConfig; import it.pn.frontend.e2e.config.UserPasswordConfig; import it.pn.frontend.e2e.config.WebDriverConfig; @@ -23,7 +24,8 @@ BearerTokenConfig.class, UserPasswordConfig.class, DataPopulation.class, - HeaderPGSection.class + HeaderPGSection.class, + HelpdeskPage.class }) @EnableScheduling diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/HelpdeskTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/HelpdeskTest.java index b2b83e968..a07438b29 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/HelpdeskTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/HelpdeskTest.java @@ -41,7 +41,8 @@ public class HelpdeskTest { @Autowired private WebDriverConfig webDriverConfig; - private HelpdeskPage helpdeskPage = new HelpdeskPage(hooks.getDriver()); + @Autowired + private HelpdeskPage helpdeskPage ; private Map datiTestHelpdesk = new HashMap<>(); private Map datiPersonaFisica = new HashMap<>(); From 1122830a46b82783a8243dab655e3771df44bdab Mon Sep 17 00:00:00 2001 From: scritelli Date: Mon, 28 Oct 2024 13:13:15 +0100 Subject: [PATCH 143/212] Ristrutturazione classe con springboot in attesa di test con la suite di mittente --- .../DownloadFileMittentePagoPATest.java | 93 +++++++++---------- 1 file changed, 43 insertions(+), 50 deletions(-) diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java index c49a3e038..96cf5075c 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java @@ -5,7 +5,6 @@ import io.cucumber.java.en.When; import it.pn.frontend.e2e.common.DettaglioNotificaSection; import it.pn.frontend.e2e.config.WebDriverConfig; -import it.pn.frontend.e2e.listeners.Hooks; import it.pn.frontend.e2e.pages.mittente.DisserviziAppPAPage; import it.pn.frontend.e2e.pages.mittente.PiattaformaNotifichePage; import it.pn.frontend.e2e.section.mittente.DettaglioNotificaMittenteSection; @@ -13,12 +12,12 @@ import it.pn.frontend.e2e.utility.DataPopulation; import it.pn.frontend.e2e.utility.DownloadFile; import it.pn.frontend.e2e.utility.WebTool; - import org.junit.jupiter.api.Assertions; import org.openqa.selenium.WebDriver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; import java.io.File; import java.util.HashMap; @@ -26,20 +25,27 @@ import java.util.Map; import java.util.concurrent.TimeUnit; - +@Component public class DownloadFileMittentePagoPATest { + private static final Logger logger = LoggerFactory.getLogger("DownloadFileMittentePagoPATest"); - private final WebDriver driver = Hooks.driver; - private Map datiNotifica = new HashMap<>(); - private DownloadFile downloadFile; + + @Autowired + private WebDriver driver; @Autowired private WebDriverConfig webDriverConfig; + @Autowired + private DownloadFile downloadFile; + + private Map datiNotifica = new HashMap<>(); + @When("Nella pagina Piattaforma Notifiche si clicca sulla notifica restituita") public void clickNotificaRestituita() { logger.info("Si clicca sulla notifica restituita"); logger.info("GENERATED IUN: {}", System.getProperty("IUN")); + PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(driver); piattaformaNotifichePage.selezionaNotificaIUN(System.getProperty("IUN")); } @@ -48,7 +54,7 @@ public void clickNotificaRestituita() { public void siVisualizzaCorrettamenteLaSezioneDettaglioNotifica() { logger.info("Viene caricato correttamente la sezione Dettaglio Notifica"); - DettaglioNotificaMittenteSection dettaglioNotificaMittenteSection = new DettaglioNotificaMittenteSection(this.driver); + DettaglioNotificaMittenteSection dettaglioNotificaMittenteSection = new DettaglioNotificaMittenteSection(driver); dettaglioNotificaMittenteSection.waitLoadDettaglioNotificaSection(); } @@ -56,17 +62,18 @@ public void siVisualizzaCorrettamenteLaSezioneDettaglioNotifica() { public void downloadECheckFile() { logger.info("Si scaricano tutti i file all'interno della notifica"); - DettaglioNotificaMittenteSection dettaglioNotificaMittenteSection = new DettaglioNotificaMittenteSection(this.driver); - DettaglioNotificaSection dettaglioNotificaSection = new DettaglioNotificaSection(this.driver); + DettaglioNotificaMittenteSection dettaglioNotificaMittenteSection = new DettaglioNotificaMittenteSection(driver); + DettaglioNotificaSection dettaglioNotificaSection = new DettaglioNotificaSection(driver); DataPopulation dataPopulation = new DataPopulation(); String workingDirectory = System.getProperty("user.dir"); File pathCartella = new File(workingDirectory + "/src/test/resources/dataPopulation/downloadFileNotifica/mittente"); - downloadFile = new DownloadFile(this.driver); + boolean headless = webDriverConfig.getHeadless().equalsIgnoreCase("true"); if (!downloadFile.controlloEsistenzaCartella(pathCartella)) { pathCartella.mkdirs(); } + this.datiNotifica = dataPopulation.readDataPopulation("datiNotifica.yaml"); int count = 1; @@ -78,40 +85,33 @@ public void downloadECheckFile() { } else { codiceIUN = dettaglioNotificaMittenteSection.getInfoNotifica(4); } - dettaglioNotificaMittenteSection.clickLinkDocumentiAllegati(); - try { - TimeUnit.SECONDS.sleep(5); - } catch (InterruptedException e) { - throw new RuntimeException(e); - } + dettaglioNotificaMittenteSection.clickLinkDocumentiAllegati(); + WebTool.waitTime(5); final String filepath = workingDirectory + "/src/test/resources/dataPopulation/downloadFileNotifica/mittente/notificaN"; - final String urlDocumenti = webDriverConfig.getBaseUrl() + "notifications/sent/" + codiceIUN + "/documents/"; - final String urlDocumentiAllegati = downloadFile.getUrl(urlDocumenti); File file = new File(filepath + count + ".pdf"); + if (headless && urlDocumentiAllegati.isEmpty()) { String testoLink = dettaglioNotificaMittenteSection.getTextDocumentiAllegati(); logger.error("Non è stato recuperato url per il download per il link: " + testoLink); Assertions.fail("Non è stato recuperato url per il download per il link: " + testoLink); } + downloadFile.download(urlDocumentiAllegati, file, headless); if (!headless) { dettaglioNotificaSection.goBack(); } + dettaglioNotificaSection.waitLoadDettaglioNotificaDESection(); - count = count + 1; + count++; int numeroLinkAvvenutaRicezione = dettaglioNotificaMittenteSection.getLinkAvvenutaRicezione(); for (int i = 1; i < numeroLinkAvvenutaRicezione; i++) { dettaglioNotificaMittenteSection.clickLinkAvvenutaRicezione(i); - try { - TimeUnit.SECONDS.sleep(5); - } catch (InterruptedException e) { - throw new RuntimeException(e); - } + WebTool.waitTime(5); final String url = webDriverConfig.getBaseUrl() + "notifications/sent/" + codiceIUN + "/documents/AAR?documentId=safestorage:"; final String urlAvvenutaRicezione = downloadFile.getUrl(url); if (headless && urlAvvenutaRicezione.isEmpty()) { @@ -120,55 +120,52 @@ public void downloadECheckFile() { Assertions.fail("Non è stato recuperato url per il download per il link: " + testoLink); } file = new File(filepath + count + ".pdf"); - count = count + 1; - downloadFile.download(urlAvvenutaRicezione, file, headless); if (!headless) { - dettaglioNotificaSection.goBack(); + dettaglioNotificaMittenteSection.goBack(); } dettaglioNotificaSection.waitLoadDettaglioNotificaDESection(); + count++; } int numeroLinkAttestazioniOpponibile = dettaglioNotificaSection.getLinkAttestazioniOpponibili(); - for (int i = 0; i < numeroLinkAttestazioniOpponibile; i++) { dettaglioNotificaSection.clickLinkAttestazioniOpponibile(i); - try { - TimeUnit.SECONDS.sleep(5); - } catch (InterruptedException e) { - throw new RuntimeException(e); - } - final String urlFileAttestazioneOppponibile = downloadFile.getUrl(webDriverConfig.getBaseUrl()); - if (headless && urlFileAttestazioneOppponibile.isEmpty()) { + WebTool.waitTime(5); + final String urlFileAttestazioneOpponibile = downloadFile.getUrl(webDriverConfig.getBaseUrl()); + if (headless && urlFileAttestazioneOpponibile.isEmpty()) { String testoLink = dettaglioNotificaSection.getTextLinkAttestazioniOpponibili(i); logger.error("Non è stato recuperato url per il download per il link: " + testoLink); Assertions.fail("Non è stato recuperato url per il download per il link: " + testoLink); } file = new File(filepath + count + ".pdf"); - count = count + 1; - downloadFile.download(urlFileAttestazioneOppponibile, file, headless); + downloadFile.download(urlFileAttestazioneOpponibile, file, headless); if (!headless) { dettaglioNotificaSection.goBack(); } dettaglioNotificaSection.waitLoadDettaglioNotificaDESection(); + count++; } - count = count - 1; final String pathOfDownloadedFile = workingDirectory + "/src/test/resources/dataPopulation/downloadFileNotifica/mittente"; - downloadFile.controlloDownload(pathOfDownloadedFile, count); + downloadFile.controlloDownload(pathOfDownloadedFile, count - 1); + } + @And("Si visualizza correttamente la tabella dei disservizi") + public void siVisualizzaCorrettamenteLaTabellaDeiDisservizi() { + logger.info("Si visualizza correttamente la tabella dei disservizi"); + DisserviziAppPAPage disserviziAppPAPage = new DisserviziAppPAPage(driver); + disserviziAppPAPage.waitLoadDisserviziTable(); } @And("Nella sezione Dettaglio Notifiche si scarica il documento allegato") public void downloadDocumentiAllegati() { logger.info("Si scaricano solo i documenti Allegati all'interno della notifica"); - DettaglioNotificaMittenteSection dettaglioNotificaMittenteSection = new DettaglioNotificaMittenteSection(this.driver); - DettaglioNotificaSection dettaglioNotificaSection = new DettaglioNotificaSection(this.driver); - DataPopulation dataPopulation = new DataPopulation(); + DettaglioNotificaMittenteSection dettaglioNotificaMittenteSection = new DettaglioNotificaMittenteSection(driver); + DettaglioNotificaSection dettaglioNotificaSection = new DettaglioNotificaSection(driver); String workingDirectory = System.getProperty("user.dir"); File pathCartella = new File(workingDirectory + "/src/test/resources/dataPopulation/downloadFileNotifica/mittente"); - DownloadFile downloadFile = new DownloadFile(this.driver); boolean headless = webDriverConfig.getHeadless().equalsIgnoreCase("true"); if (!downloadFile.controlloEsistenzaCartella(pathCartella)) { pathCartella.mkdirs(); @@ -184,11 +181,7 @@ public void downloadDocumentiAllegati() { codiceIUN = dettaglioNotificaMittenteSection.getInfoNotifica(4); } dettaglioNotificaMittenteSection.clickLinkDocumentiAllegati(); - try { - TimeUnit.SECONDS.sleep(5); - } catch (InterruptedException e) { - throw new RuntimeException(e); - } + WebTool.waitTime(5); final String filepath = workingDirectory + "/src/test/resources/dataPopulation/downloadFileNotifica/mittente/notificaN"; final String urlDocumenti = webDriverConfig.getBaseUrl() + "notifications/sent/" + codiceIUN + "/attachments/documents/0"; @@ -204,12 +197,12 @@ public void downloadDocumentiAllegati() { dettaglioNotificaMittenteSection.goBack(); } dettaglioNotificaSection.waitLoadDettaglioNotificaDESection(); - count++; - final String pathOfDownloadedFile = workingDirectory + "/src/test/resources/dataPopulation/downloadFileNotifica/mittente"; downloadFile.controlloDownload(pathOfDownloadedFile, count); } + + @Then("Si clicca sul documento allegato") public void clickDocumentoAllegato() { DettaglioNotificaMittenteSection dettaglioNotificaMittenteSection = new DettaglioNotificaMittenteSection(this.driver); From 4b7216b377029a0c2d3d5452a373085be0cafb02 Mon Sep 17 00:00:00 2001 From: andreadefranco Date: Mon, 28 Oct 2024 14:14:45 +0100 Subject: [PATCH 144/212] fix virgola --- .../frontend/e2e/stepDefinitions/CucumberSpringIntegration.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java index 075d1cf58..9d71bf05e 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java @@ -26,7 +26,7 @@ UserPasswordConfig.class, DataPopulation.class, HeaderPGSection.class, - HelpdeskPage.class + HelpdeskPage.class, HeaderPGSection.class, AccediAreaRiservataPGPage.class From 1b606e16454e09207d76de8d01411ff986d59f23 Mon Sep 17 00:00:00 2001 From: scritelli Date: Mon, 28 Oct 2024 16:56:51 +0100 Subject: [PATCH 145/212] Ristrutturazione classe con springboot in attesa di test con la suite di mittente inoltre refactoring del codice ottimizzato secondo i standard --- .../mittente/AcccediAreaRiservataPAPage.java | 7 ++ .../e2e/pages/mittente/ApiKeyPAPage.java | 97 ++++++++------- .../pages/mittente/AreaRiservataPAPage.java | 101 +++++++-------- .../mittente/AutorizziInvioDatiPAPage.java | 30 ++--- .../e2e/pages/mittente/DashboardPage.java | 63 +++++----- .../pages/mittente/DisserviziAppPAPage.java | 115 ++++++++++++------ .../mittente/DisserviziAppPATest.java | 1 - 7 files changed, 244 insertions(+), 170 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/AcccediAreaRiservataPAPage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/AcccediAreaRiservataPAPage.java index 171d8e007..e8548356f 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/AcccediAreaRiservataPAPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/AcccediAreaRiservataPAPage.java @@ -8,6 +8,13 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; + +/* +* Modifiche principali +Iniezione WebDriver con Spring: Il costruttore della classe utilizza @Autowired, permettendo a Spring di gestire automaticamente il driver. +Annotazione @Component: Aggiunta per registrare la classe come bean Spring, rendendo l'istanza accessibile in altre parti dell’applicazione. +Logging migliorato: La sintassi dei log logger.error è stata modificata per sfruttare il placeholder {} di SLF4J, migliorando la leggibilità.*/ + public class AcccediAreaRiservataPAPage extends BasePage { private static final Logger logger = LoggerFactory.getLogger("AccediAreaRiservataPAPage"); @FindBy(id = "spidButton") diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/ApiKeyPAPage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/ApiKeyPAPage.java index 20eebbc50..ee70c3743 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/ApiKeyPAPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/ApiKeyPAPage.java @@ -8,64 +8,79 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; import java.util.List; - +/* +* Principali Modifiche +Spring Boot Integration: La classe è annotata con @Component per essere riconosciuta come bean. +Iniezione del WebDriver: Il driver viene iniettato tramite @Autowired nel costruttore. +Logging Ottimizzato: Utilizzo di placeholder {} con SLF4J nei metodi di logging per migliore leggibilità e prestazioni. +* dubbio su Action per capire come iniettarlo in Spring +* +* */ +@Component public class ApiKeyPAPage extends BasePage { - private static final Logger logger = LoggerFactory.getLogger("ApiKeyPAPage"); + + private static final Logger logger = LoggerFactory.getLogger(ApiKeyPAPage.class); @FindBy(id = "generate-api-key") - WebElement generateApiKeyButton; + private WebElement generateApiKeyButton; @FindBy(id = "name") - WebElement apiKeyNameInput; + private WebElement apiKeyNameInput; @FindBy(id = "button-view-groups-id") - WebElement visualizzaIdGruppo; + private WebElement visualizzaIdGruppo; @FindBy(id = "continue-button") - WebElement apiContinuaButton; + private WebElement apiContinuaButton; @FindBy(id = "go-to-api-keys") - WebElement tornaApiButton; + private WebElement tornaApiButton; @FindBy(id = "button-block") - WebElement blockButton; + private WebElement blockButton; @FindBy(id = "close-modal-button") - WebElement annullaButtonNelPopUp; + private WebElement annullaButtonNelPopUp; @FindBy(id = "action-modal-button") - WebElement confermaButtonNelPopUp; + private WebElement confermaButtonNelPopUp; @FindBy(xpath = "//li[contains(@data-testid,'buttonEnable')]") - WebElement attivaButtonNelMenu; + private WebElement attivaButtonNelMenu; @FindBy(id = "button-rotate") - WebElement ruotaButtonNelMenu; + private WebElement ruotaButtonNelMenu; @FindBy(id = "groups") - WebElement gruppoInput; + private WebElement gruppoInput; @FindBy(id = "button-view") - WebElement visualizzaApiButton; + private WebElement visualizzaApiButton; @FindBy(id = "close-modal-button") - WebElement closeButtonPopUpVisualizza; + private WebElement closeButtonPopUpVisualizza; + @Autowired public ApiKeyPAPage(WebDriver driver) { super(driver); } + public void waitLoadApikeyPage() { try { By apiKeyTitle = By.id("API Key-page"); - this.getWebDriverWait(30).withMessage("il titolo della pagina Apikey non è visibile").until(ExpectedConditions.visibilityOfElementLocated(apiKeyTitle)); - this.getWebDriverWait(40).withMessage("il bottone genera ApiKey non è cliccabile").until(ExpectedConditions.elementToBeClickable(this.generateApiKeyButton)); + this.getWebDriverWait(30).withMessage("Il titolo della pagina ApiKey non è visibile") + .until(ExpectedConditions.visibilityOfElementLocated(apiKeyTitle)); + this.getWebDriverWait(40).withMessage("Il bottone genera ApiKey non è cliccabile") + .until(ExpectedConditions.elementToBeClickable(this.generateApiKeyButton)); logger.info("Api Key Page caricata"); } catch (TimeoutException e) { - logger.error("Api Key Page NON caricata con errore : " + e.getMessage()); - Assertions.fail("Api Key Page NON caricata con errore : " + e.getMessage()); + logger.error("Api Key Page NON caricata con errore: {}", e.getMessage()); + Assertions.fail("Api Key Page NON caricata con errore: " + e.getMessage()); } } @@ -74,23 +89,26 @@ public void clickSulBottoneGeneraApiKey() { } public void inserireUnNomePerApiKey(String nomeApiKey) { - getWebDriverWait(30).withMessage("Il campo Nome Apikey non è visibile").until(ExpectedConditions.visibilityOf(this.apiKeyNameInput)); + getWebDriverWait(30).withMessage("Il campo Nome Apikey non è visibile") + .until(ExpectedConditions.visibilityOf(this.apiKeyNameInput)); this.apiKeyNameInput.sendKeys(nomeApiKey); } public void clickSulBottoneContinua() { - getWebDriverWait(40).withMessage("Il bottone Continua non è cliccabile").until(ExpectedConditions.elementToBeClickable(this.apiContinuaButton)); + getWebDriverWait(40).withMessage("Il bottone Continua non è cliccabile") + .until(ExpectedConditions.elementToBeClickable(this.apiContinuaButton)); this.apiContinuaButton.click(); } public void siVisualizzaCorrettamenteConfermaPage() { try { By confirmationApiPageTitle = By.id("go-to-api-keys"); - this.getWebDriverWait(30).withMessage("Il titolo della pagina conferma Apikey non è visibile").until(ExpectedConditions.visibilityOfElementLocated(confirmationApiPageTitle)); - logger.info("Api Key ConfirmationPage caricata"); + this.getWebDriverWait(30).withMessage("Il titolo della pagina conferma Apikey non è visibile") + .until(ExpectedConditions.visibilityOfElementLocated(confirmationApiPageTitle)); + logger.info("Api Key Confirmation Page caricata"); } catch (TimeoutException e) { - logger.error("Il titolo della Api Key ConfirmationPage NON caricata con errore : " + e.getMessage()); - Assertions.fail("Il titolo della Api Key ConfirmationPage NON caricata con errore : " + e.getMessage()); + logger.error("Il titolo della Api Key ConfirmationPage NON caricata con errore: {}", e.getMessage()); + Assertions.fail("Il titolo della Api Key ConfirmationPage NON caricata con errore: " + e.getMessage()); } } @@ -101,30 +119,31 @@ public void clickSulBottoneTornaApiKey() { public void siVisualizzaNuovaApiAttiva(String nomeApiKey) { try { By statoAttivoField = By.xpath("//div[@data-testid='statusChip-Attiva']"); - this.getWebDriverWait(30).withMessage("lo stato dell'ApiKey non è Attiva").until(ExpectedConditions.visibilityOfElementLocated(statoAttivoField)); + this.getWebDriverWait(30).withMessage("lo stato dell'ApiKey non è Attiva") + .until(ExpectedConditions.visibilityOfElementLocated(statoAttivoField)); By apiNameAttivoField = By.xpath("//p[contains(text(),'" + nomeApiKey + "')]"); - this.getWebDriverWait(30).withMessage("Il nome del ApiKey attiva non è: " + nomeApiKey).until(ExpectedConditions.visibilityOfElementLocated(apiNameAttivoField)); - logger.info("Api Key ConfirmationPage caricata"); + this.getWebDriverWait(30).withMessage("Il nome del ApiKey attiva non è: " + nomeApiKey) + .until(ExpectedConditions.visibilityOfElementLocated(apiNameAttivoField)); + logger.info("Api Key Confirmation Page caricata"); } catch (TimeoutException e) { - logger.error("Api Key ConfirmationPage NON caricata con errore : " + e.getMessage()); - Assertions.fail("Api Key ConfirmationPage NON caricata con errore : " + e.getMessage()); + logger.error("Api Key Confirmation Page NON caricata con errore: {}", e.getMessage()); + Assertions.fail("Api Key Confirmation Page NON caricata con errore: " + e.getMessage()); } } public String getNomi(int i) { By nomiApiKeyBy = By.xpath("//tbody/tr/td[contains(@class,'MuiTableCell-root MuiTableCell-body MuiTableCell-sizeMedium css-1kqk1ww')]/div/p"); - this.getWebDriverWait(30).withMessage("la lista dei nomi ApiKey non è visibile ").until(ExpectedConditions.visibilityOfElementLocated(nomiApiKeyBy)); + this.getWebDriverWait(30).withMessage("la lista dei nomi ApiKey non è visibile") + .until(ExpectedConditions.visibilityOfElementLocated(nomiApiKeyBy)); List nomiApiKeyList = this.elements(nomiApiKeyBy); - return nomiApiKeyList.get(i).getText(); - } public int getPosizioneMenuButton() { By statiApiKeyBy = By.xpath("//div[contains(@id,'status-chip-')]"); - this.getWebDriverWait(30).withMessage("lista stati ApiKey non trovata").until(ExpectedConditions.visibilityOfElementLocated(statiApiKeyBy)); + this.getWebDriverWait(30).withMessage("lista stati ApiKey non trovata") + .until(ExpectedConditions.visibilityOfElementLocated(statiApiKeyBy)); List statiApiKeyList = this.elements(statiApiKeyBy); - for (int i = 0; i < statiApiKeyList.size(); i++) { if (statiApiKeyList.get(i).getAttribute("id").equalsIgnoreCase("status-chip-Attiva")) { if (!getNomi(i).equalsIgnoreCase("fe-TA-apikey-test")) { @@ -132,17 +151,14 @@ public int getPosizioneMenuButton() { } } } - return -1; - } public void clickMenuButton() { - By menuAttivaButtonBy = By.xpath("//button[@data-testid='contextMenuButton' and @aria-label='Opzioni su API Key']"); List menuAttivaButton = this.elements(menuAttivaButtonBy); - this.getWebDriverWait(30).withMessage("menu Apikey da Bloccare non trovato").until(ExpectedConditions.visibilityOfElementLocated(menuAttivaButtonBy)); - + this.getWebDriverWait(30).withMessage("menu Apikey da Bloccare non trovato") + .until(ExpectedConditions.visibilityOfElementLocated(menuAttivaButtonBy)); int posizioneMenuButton = getPosizioneMenuButton(); if (posizioneMenuButton >= 0) { menuAttivaButton.get(posizioneMenuButton).click(); @@ -150,7 +166,6 @@ public void clickMenuButton() { logger.error("Nessuna Api Key diversa da 'fe-TA-apikey-test' da bloccare"); Assertions.fail("Nessuna Api Key diversa da 'fe-TA-apikey-test' da bloccare"); } - } public void clickSuBlocca() { diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/AreaRiservataPAPage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/AreaRiservataPAPage.java index e6917b250..41768ec90 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/AreaRiservataPAPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/AreaRiservataPAPage.java @@ -7,46 +7,52 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; import java.util.List; - +/* +*Iniezione Spring: La classe è ora annotata con @Component per permettere a Spring Boot di gestirla come un bean, e il costruttore AreaRiservataPAPage riceve WebDriver tramite iniezione automatica. +Gestione WebElement: Gli elementi WebElement definiti con @FindBy vengono iniettati automaticamente grazie a Spring e Selenium, senza ulteriori istanze di driver nella classe. +* */ +@Component public class AreaRiservataPAPage extends BasePage { private static final Logger logger = LoggerFactory.getLogger("AreaRiservataPAPage"); @FindBy(xpath = "//p[contains(@class,'MuiTypography-root MuiTypography-body1 ShowDots')]") - List infoLabel; + private List infoLabel; @FindBy(id = "forward_prod-pn-dev") - WebElement piattaformaNotificaDevGestisciButton; + private WebElement piattaformaNotificaDevGestisciButton; @FindBy(id = "forward_prod-pn-test") - WebElement piattaformaNotificaTestGestisciButton; + private WebElement piattaformaNotificaTestGestisciButton; @FindBy(id = "forward_prod-pn") - WebElement piattaformaNotificaUatGestisciButton; - + private WebElement piattaformaNotificaUatGestisciButton; + @Autowired public AreaRiservataPAPage(WebDriver driver) { super(driver); } - public void waitLoadAreaRiservataPAPage(){ - try{ + public void waitLoadAreaRiservataPAPage() { + try { By panoramicaLabel = By.cssSelector(".MuiTypography-root.MuiTypography-h4"); - this.getWebDriverWait(30).until(ExpectedConditions.visibilityOfElementLocated(panoramicaLabel)); + getWebDriverWait(30).until(ExpectedConditions.visibilityOfElementLocated(panoramicaLabel)); logger.info("Titolo Panoramica dell'area Riservata PA Page caricato"); - }catch (TimeoutException e){ - logger.error("Titolo 'Panoramica' dell'area Riservata PA Page non caricato con errore : "+e.getMessage()); - Assertions.fail("Titolo 'Panoramica' dell'area Riservata PA Page non caricato con errore : "+e.getMessage()); + } catch (TimeoutException e) { + logger.error("Titolo 'Panoramica' dell'area Riservata PA Page non caricato con errore: " + e.getMessage()); + Assertions.fail("Titolo 'Panoramica' dell'area Riservata PA Page non caricato con errore: " + e.getMessage()); } } - public boolean verificaCodiceFiscale(String codiceFiscale){ + public boolean verificaCodiceFiscale(String codiceFiscale) { boolean codiceFiscaleFound = false; - for(WebElement element : infoLabel){ - logger.info("Info ente presente nella pagina Aria Riservata: "+element.getText()); - if(element.getText().equals(codiceFiscale)){ + for (WebElement element : infoLabel) { + logger.info("Info ente presente nella pagina Area Riservata: " + element.getText()); + if (element.getText().equals(codiceFiscale)) { codiceFiscaleFound = true; break; } @@ -54,49 +60,48 @@ public boolean verificaCodiceFiscale(String codiceFiscale){ return codiceFiscaleFound; } - public void selezionaPiattaformaNotificaDev(){ + public void selezionaPiattaformaNotificaDev() { try { getWebDriverWait(30).until(ExpectedConditions.elementToBeClickable(piattaformaNotificaDevGestisciButton)); - if (this.piattaformaNotificaDevGestisciButton.isDisplayed()) { - this.piattaformaNotificaDevGestisciButton.click(); + if (piattaformaNotificaDevGestisciButton.isDisplayed()) { + piattaformaNotificaDevGestisciButton.click(); } else { - this.js().executeScript("arguments[0].scrollIntoView(true);", this.piattaformaNotificaDevGestisciButton); - this.piattaformaNotificaDevGestisciButton.click(); + js().executeScript("arguments[0].scrollIntoView(true);", piattaformaNotificaDevGestisciButton); + piattaformaNotificaDevGestisciButton.click(); } - }catch(TimeoutException | NoSuchElementException | ElementClickInterceptedException e){ - logger.error("il bottone piattaforma notifica dev non è presente o non è cliccabile, "+e.getMessage()); - Assertions.fail("il bottone piattaforma notifica dev non è presente o non è cliccabile. "+e.getMessage()); + } catch (TimeoutException | NoSuchElementException | ElementClickInterceptedException e) { + logger.error("Il bottone piattaforma notifica dev non è presente o non è cliccabile: " + e.getMessage()); + Assertions.fail("Il bottone piattaforma notifica dev non è presente o non è cliccabile: " + e.getMessage()); } } - public void selezionaPiattaformaNotificaTest() { - try{ - getWebDriverWait(30).until(ExpectedConditions.elementToBeClickable(piattaformaNotificaTestGestisciButton)); - if(this.piattaformaNotificaTestGestisciButton.isDisplayed()){ - this.piattaformaNotificaTestGestisciButton.click(); - }else{ - this.js().executeScript("arguments[0].scrollIntoView(true);",this.piattaformaNotificaDevGestisciButton); - this.piattaformaNotificaTestGestisciButton.click(); - } - }catch(TimeoutException e){ - logger.error("il bottone piattaforma notifica test non è presente o non è cliccabile, "+e.getMessage()); - Assertions.fail("il bottone piattaforma notifica test non è presente o non è cliccabile. "+e.getMessage()); + public void selezionaPiattaformaNotificaTest() { + try { + getWebDriverWait(30).until(ExpectedConditions.elementToBeClickable(piattaformaNotificaTestGestisciButton)); + if (piattaformaNotificaTestGestisciButton.isDisplayed()) { + piattaformaNotificaTestGestisciButton.click(); + } else { + js().executeScript("arguments[0].scrollIntoView(true);", piattaformaNotificaTestGestisciButton); + piattaformaNotificaTestGestisciButton.click(); + } + } catch (TimeoutException | NoSuchElementException | ElementClickInterceptedException e) { + logger.error("Il bottone piattaforma notifica test non è presente o non è cliccabile: " + e.getMessage()); + Assertions.fail("Il bottone piattaforma notifica test non è presente o non è cliccabile: " + e.getMessage()); } } public void selezionaPiattaformaNotificaUat() { - try{ - getWebDriverWait(30).until(ExpectedConditions.elementToBeClickable(piattaformaNotificaUatGestisciButton)); - - if(this.piattaformaNotificaUatGestisciButton.isDisplayed()){ - this.piattaformaNotificaUatGestisciButton.click(); - }else{ - this.js().executeScript("arguments[0].scrollIntoView(true);",this.piattaformaNotificaDevGestisciButton); - this.piattaformaNotificaUatGestisciButton.click(); - } - }catch(TimeoutException | NoSuchElementException | ElementClickInterceptedException e){ - logger.error("il bottone piattaforma notifica uat non è presente o non è cliccabile, "+e.getMessage()); - Assertions.fail("il bottone piattaforma notifica uat non è presente o non è cliccabile. "+e.getMessage()); + try { + getWebDriverWait(30).until(ExpectedConditions.elementToBeClickable(piattaformaNotificaUatGestisciButton)); + if (piattaformaNotificaUatGestisciButton.isDisplayed()) { + piattaformaNotificaUatGestisciButton.click(); + } else { + js().executeScript("arguments[0].scrollIntoView(true);", piattaformaNotificaUatGestisciButton); + piattaformaNotificaUatGestisciButton.click(); + } + } catch (TimeoutException | NoSuchElementException | ElementClickInterceptedException e) { + logger.error("Il bottone piattaforma notifica uat non è presente o non è cliccabile: " + e.getMessage()); + Assertions.fail("Il bottone piattaforma notifica uat non è presente o non è cliccabile: " + e.getMessage()); } } diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/AutorizziInvioDatiPAPage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/AutorizziInvioDatiPAPage.java index ea51e53f2..0ee0419ac 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/AutorizziInvioDatiPAPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/AutorizziInvioDatiPAPage.java @@ -7,37 +7,39 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Component; +@Component public class AutorizziInvioDatiPAPage extends BasePage { private static final Logger logger = LoggerFactory.getLogger("AutorizziInvioDatiPAPage"); @FindBy(css = "button[name='confirm']") - WebElement inviaButton; + private WebElement inviaButton; public AutorizziInvioDatiPAPage(WebDriver driver) { super(driver); } - public void waitLoadAutorizziInvioDatiPAPage(){ - try{ + public void waitLoadAutorizziInvioDatiPAPage() { + try { By titlePage = By.cssSelector("h1.u-text-r-xl.u-margin-bottom-l"); - this.getWebDriverWait(30).until(ExpectedConditions.visibilityOfElementLocated(titlePage)); + getWebDriverWait(30).until(ExpectedConditions.visibilityOfElementLocated(titlePage)); logger.info("Autorizzi Invio Dati PA Page caricata"); - }catch (TimeoutException | NoSuchElementException e){ - logger.error("il titolo di Autorizzi Invio Dati PA Page non caricato con errore : "+e.getMessage()); - Assertions.fail("il titolo di Autorizzi Invio Dati PA Page non caricato con errore : "+e.getMessage()); + } catch (TimeoutException | NoSuchElementException e) { + logger.error("Il titolo di Autorizzi Invio Dati PA Page non è caricato con errore: " + e.getMessage()); + Assertions.fail("Il titolo di Autorizzi Invio Dati PA Page non è caricato con errore: " + e.getMessage()); } } - public void selezionareInvia(){ + public void selezionareInvia() { logger.info("Click button Invia"); try { - this.getWebDriverWait(30).until(ExpectedConditions.elementToBeClickable(this.inviaButton)); - this.inviaButton.click(); - }catch (TimeoutException e){ - logger.error("Il bottone invia nella pagina Autorizza Invio Dati non è stato cliccato con errore : "+e.getMessage()); - Assertions.fail("Il bottone invia nella pagina Autorizza Invio Dati non è stato cliccato con errore : "+e.getMessage()); - } + getWebDriverWait(30).until(ExpectedConditions.elementToBeClickable(inviaButton)); + inviaButton.click(); + } catch (TimeoutException e) { + logger.error("Il bottone Invia nella pagina Autorizza Invio Dati non è stato cliccato con errore: " + e.getMessage()); + Assertions.fail("Il bottone Invia nella pagina Autorizza Invio Dati non è stato cliccato con errore: " + e.getMessage()); + } } } diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/DashboardPage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/DashboardPage.java index 093fe3476..08b863c22 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/DashboardPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/DashboardPage.java @@ -2,8 +2,6 @@ import it.pn.frontend.e2e.common.BasePage; import it.pn.frontend.e2e.config.WebDriverConfig; -import it.pn.frontend.e2e.listeners.Hooks; -import it.pn.frontend.e2e.listeners.NetWorkInfo; import it.pn.frontend.e2e.model.singleton.NotificationSingleton; import it.pn.frontend.e2e.utility.WebTool; import org.junit.jupiter.api.Assertions; @@ -14,6 +12,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; import java.awt.*; import java.awt.event.KeyEvent; @@ -22,12 +21,14 @@ import java.time.format.DateTimeFormatter; import java.util.List; + +@Component // Rende la classe un bean Spring per l'iniezione in altre classi public class DashboardPage extends BasePage { private static final Logger logger = LoggerFactory.getLogger("DashboardMittentePagoPA"); - private final List netWorkInfos = Hooks.netWorkInfos; - private final NotificationSingleton notificationSingleton = NotificationSingleton.getInstance(); + @Autowired + private NotificationSingleton notificationSingleton; @FindBy(id = "menu-item(statistiche)") WebElement sezioneStatistiche; @@ -83,7 +84,7 @@ public class DashboardPage extends BasePage { @Autowired private WebDriverConfig webDriverConfig; - + @Autowired public DashboardPage(WebDriver driver) { super(driver); } @@ -123,57 +124,55 @@ public void checkVisualizzaGraficoInviiDigitaliPerEsito() { } public void checkVisualizzaGraficoTempoMedioInviiDigitali() { - getWebDriverWait(10).withMessage("Il grafico Errori tecnici per tipologia non visibile").until(ExpectedConditions.visibilityOf(graficoErroriTecnici)); - logger.info("Si visualizza il grafico Errori tecnici per tipologia"); - } - - public void checkVisualizzaGraficoErroriTecnici(){ getWebDriverWait(10).withMessage("Il grafico Tempo medio degli invii digitali non visibile").until(ExpectedConditions.visibilityOf(graficoTempoMedioInviiDigitali)); logger.info("Si visualizza il grafico Tempo medio degli invii digitali"); } - public void checkVisualizzaGraficoInviatePerStato(){ + public void checkVisualizzaGraficoErroriTecnici() { + getWebDriverWait(10).withMessage("Il grafico Errori tecnici non visibile").until(ExpectedConditions.visibilityOf(graficoErroriTecnici)); + logger.info("Si visualizza il grafico Errori tecnici"); + } + + public void checkVisualizzaGraficoInviatePerStato() { getWebDriverWait(10).withMessage("la sezione Notifiche inviate per stato non visibile").until(ExpectedConditions.visibilityOf(sezioneNotificheInviatePerStato)); logger.info("Si visualizza la sezione Notifiche inviate per stato e grafico"); } - public void checkVisualizzaGraficoConsegnatePerModalitaInvio(){ + public void checkVisualizzaGraficoConsegnatePerModalitaInvio() { getWebDriverWait(10).withMessage("la sezione Notifiche consegnate per modalità di invio non visibile").until(ExpectedConditions.visibilityOf(sezioneNotificheConsegnatePerModalitaInvio)); logger.info("Si visualizza la sezione Notifiche consegnate per modalità di invio e grafico"); } - public void insertDataErrata(){ - getWebDriverWait(10).withMessage("Il filtro di data non visibile").until(ExpectedConditions.visibilityOf(dateDa.get(0))); - logger.info("Si inserisce una data errata"); - dateDa.get(0).click(); - Actions action = new Actions(driver); - action.keyDown(Keys.CONTROL).sendKeys("a").keyUp(Keys.CONTROL).sendKeys(Keys.BACK_SPACE).perform(); - WebTool.waitTime(1); - dateDa.get(0).sendKeys("01/01/1111"); - } - - public void insertDataErrataNotificheDigitali(){ - getWebDriverWait(10).withMessage("Il filtro di data non visibile").until(ExpectedConditions.visibilityOf(dateDa.get(1))); + public void insertDataErrata() { + getWebDriverWait(10).withMessage("Il filtro di data non visibile").until(ExpectedConditions.visibilityOf(dateDa.get(0))); logger.info("Si inserisce una data errata"); - dateDa.get(1).click(); - Actions action = new Actions(driver); - action.keyDown(Keys.CONTROL).sendKeys("a").keyUp(Keys.CONTROL).sendKeys(Keys.BACK_SPACE).perform(); + dateDa.get(0).click(); + new Actions(driver) + .keyDown(Keys.CONTROL) + .sendKeys("a") + .keyUp(Keys.CONTROL) + .sendKeys(Keys.BACK_SPACE) + .perform(); WebTool.waitTime(1); - dateDa.get(1).sendKeys("01/01/1111"); + dateDa.get(0).sendKeys("01/01/1111"); } - public void insertDataCorretta(){ + + public void insertDataCorretta() { getWebDriverWait(10).withMessage("Il filtro di data non visibile").until(ExpectedConditions.visibilityOf(dateDa.get(0))); logger.info("Si inserisce una data corretta"); dateDa.get(0).click(); - Actions action = new Actions(driver); - action.keyDown(Keys.CONTROL).sendKeys("a").keyUp(Keys.CONTROL).sendKeys(Keys.BACK_SPACE).perform(); + new Actions(driver) + .keyDown(Keys.CONTROL) + .sendKeys("a") + .keyUp(Keys.CONTROL) + .sendKeys(Keys.BACK_SPACE) + .perform(); LocalDate dataDaInserire = LocalDate.now().minusDays(90); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy"); String formattedDate = dataDaInserire.format(formatter); WebTool.waitTime(1); dateDa.get(0).sendKeys(formattedDate); } - public void insertDataCorrettaNotificheDigitali(){ getWebDriverWait(10).withMessage("Il filtro di data non visibile").until(ExpectedConditions.visibilityOf(dateDa.get(1))); logger.info("Si inserisce una data corretta"); diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/DisserviziAppPAPage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/DisserviziAppPAPage.java index bedc094b0..7d3fa44f0 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/DisserviziAppPAPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/DisserviziAppPAPage.java @@ -7,15 +7,13 @@ import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.text.PDFTextStripper; import org.junit.jupiter.api.Assertions; -import org.openqa.selenium.By; -import org.openqa.selenium.TimeoutException; -import org.openqa.selenium.WebDriver; -import org.openqa.selenium.WebElement; +import org.openqa.selenium.*; import org.openqa.selenium.support.FindBy; import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; import java.io.File; import java.io.IOException; @@ -23,29 +21,34 @@ import java.util.GregorianCalendar; import java.util.List; +@Component public class DisserviziAppPAPage extends BasePage { - private final Logger logger = LoggerFactory.getLogger("Disservizi PA Page"); - private DataPopulation dataPopulation = new DataPopulation(); + private static final Logger logger = LoggerFactory.getLogger(DisserviziAppPAPage.class); + @Autowired - private WebDriverConfig webDriverConfig; + private DataPopulation dataPopulation; - public DisserviziAppPAPage(WebDriver driver) { - super(driver); - } + @Autowired + private WebDriverConfig webDriverConfig; @FindBy(id = "notifications-table") - WebElement disserviziTable; + private WebElement disserviziTable; @FindBy(xpath = "//tr[@id='tableDowntimeLog.row']//td//div[@data-testid='downtime-status']") - List statusList; - + private List statusList; @FindBy(css = "[data-testid='download-legal-fact']") - List attestazioniFile; + private List attestazioniFile; @FindBy(xpath = "//span[contains(text(), 'Risolto')]") - List stato; + private List stato; + + @Autowired + public DisserviziAppPAPage(WebDriver driver) { + super(driver); + } + public void waitLoadStatoDellaPiattaformaPage() { WebTool.waitTime(5); @@ -56,28 +59,22 @@ public void waitLoadStatoDellaPiattaformaPage() { By disserviziLastUpdate = By.id("appStatusLastCheck"); By disserviziTitleOfTable = By.xpath("//h6[contains(text(),'Storico dei disservizi')]"); - getWebDriverWait(10).withMessage("Non si visualizza correttamente il titolo della pagina") - .until(ExpectedConditions.visibilityOfElementLocated(disserviziPageTitle)); + getWebDriverWait(10).until(ExpectedConditions.visibilityOfElementLocated(disserviziPageTitle)); getWebDriverWait(3).until(ExpectedConditions.textToBe(disserviziPageTitle, "Stato della piattaforma")); - getWebDriverWait(10).withMessage("Non si visualizza correttamente il sottotitolo della pagina") - .until(ExpectedConditions.visibilityOfElementLocated(disserviziPageSubTitle)); + getWebDriverWait(10).until(ExpectedConditions.visibilityOfElementLocated(disserviziPageSubTitle)); getWebDriverWait(3).until(ExpectedConditions.textToBe(disserviziPageSubTitle, "Verifica il funzionamento di SEND, visualizza lo storico dei disservizi e scarica le relative attestazioni opponibili a terzi.")); - getWebDriverWait(10).withMessage("Non si visualizza correttamente la sezione disservizi") - .until(ExpectedConditions.visibilityOfElementLocated(disserviziBoxAlert)); + getWebDriverWait(10).until(ExpectedConditions.visibilityOfElementLocated(disserviziBoxAlert)); - if (this.element(disserviziBoxAlert).getText().contains("C'è un disservizio in corso")) { - getWebDriverWait(3).until(ExpectedConditions.textToBe(disserviziBoxAlert, "C'è un disservizio in corso. Per maggiori dettagli, consulta la tabella qui sotto.")); - } else { - getWebDriverWait(3).until(ExpectedConditions.textToBe(disserviziBoxAlert, "Tutti i servizi di SEND sono operativi.")); - } + String boxAlertText = element(disserviziBoxAlert).getText(); + getWebDriverWait(3).until(ExpectedConditions.textToBe(disserviziBoxAlert, boxAlertText.contains("C'è un disservizio in corso") ? + "C'è un disservizio in corso. Per maggiori dettagli, consulta la tabella qui sotto." : + "Tutti i servizi di SEND sono operativi." + )); disserviziTable = driver.findElement(By.id("notifications-table")); - getWebDriverWait(10).withMessage("Non si visualizza correttamente l'ultimo aggiornamento della pagina") - .until(ExpectedConditions.visibilityOfElementLocated(disserviziLastUpdate)); - getWebDriverWait(10).withMessage("Non si visualizza correttamente la tabella dei disservizi") - .until(ExpectedConditions.visibilityOf(disserviziTable)); - getWebDriverWait(10).withMessage("Non si visualizza correttamente il titolo della tabella dei disservizi") - .until(ExpectedConditions.visibilityOfElementLocated(disserviziTitleOfTable)); + getWebDriverWait(10).until(ExpectedConditions.visibilityOfElementLocated(disserviziLastUpdate)); + getWebDriverWait(10).until(ExpectedConditions.visibilityOf(disserviziTable)); + getWebDriverWait(10).until(ExpectedConditions.visibilityOfElementLocated(disserviziTitleOfTable)); logger.info("Si visualizza correttamente la sezione disservizi"); } catch (TimeoutException e) { @@ -219,8 +216,56 @@ public void checkDisserviziDisponibili() { } } - + /* + *Spiegazione delle Modifiche: +Metodo Privato performDownloadAttestazione: La logica comune per trovare e cliccare l'attestazione è stata centralizzata in questo metodo. +Parametro : Controlla l’indice aggiuntivo richiesto per selezionare una riga specifica in base al metodo chiamante (downloadAttestazione() o downloadAttestazione(int rows)). +Metodo determineRowElement: Valuta la riga corretta da selezionare in base alla dimensione della tabella e al indexModifier. +Logging Ottimizzato: I messaggi di log sono stati uniformati per fornire informazioni su quale riga viene selezionata e cliccata. + * + * + * + * */ public void downloadAttestazione() { + performDownloadAttestazione(0); + } + + public void downloadAttestazione(int rows) { + performDownloadAttestazione(rows); + } + + private void performDownloadAttestazione(int indexModifier) { + List disserviziTableRows = disserviziTable.findElements(By.id("tableDowntimeLog.row")); + if (disserviziTableRows.isEmpty()) { + logger.error("Non ci sono notifiche da selezionare nel arco temporale settato"); + Assertions.fail("Non ci sono notifiche da selezionare nel arco temporale settato"); + return; + } + + logger.info("Tabella caricata e non vuota"); + int index = GregorianCalendar.getInstance().get(Calendar.HOUR_OF_DAY) + indexModifier; + + WebElement riga = determineRowElement(disserviziTableRows, index, indexModifier); + WebElement linkDownloadAttestazione = riga.findElements(By.xpath("//button[@data-testid='download-legal-fact']")).get(0); + linkDownloadAttestazione.click(); + logger.info("Click effettuato con successo"); + } + + private WebElement determineRowElement(List rows, int index, int indexModifier) { + WebElement selectedRow; + if (rows.size() > index) { + selectedRow = rows.get(index); + logger.info("Riga selezionata (index={}): {}", index, selectedRow.getText()); + } else { + int adjustedIndex = rows.size() > indexModifier ? rows.size() - (indexModifier + 1) : rows.size() - 1; + selectedRow = rows.get(adjustedIndex); + logger.info("Riga selezionata (adjusted index={}): {}", adjustedIndex, selectedRow.getText()); + } + return selectedRow; + } + + + /* public void downloadAttestazione() { List disserviziTableRows = disserviziTable.findElements(By.id("tableDowntimeLog.row")); if (!disserviziTableRows.isEmpty()) { logger.info("tabella caricata e non vuota"); @@ -286,7 +331,7 @@ public void downloadAttestazione(int rows) { Assertions.fail("Non ci sono notifiche da selezionare nel arco temporale settato"); } } - + */ public void clickLinkAttestazioniOpponibileDisservizi(int numeroLinkAttestazioniOpponibile) { if (attestazioniFile.get(numeroLinkAttestazioniOpponibile).isDisplayed()) { @@ -340,6 +385,8 @@ public boolean confrontoFileConDisservizio() { } return false; } + + } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DisserviziAppPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DisserviziAppPATest.java index f8d60971a..d9dbf17d0 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DisserviziAppPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DisserviziAppPATest.java @@ -20,7 +20,6 @@ import java.io.File; import java.io.IOException; /* -Modifiche Principali *Iniezione delle Dipendenze con @Autowired: Abbiamo rimosso la creazione manuale delle istanze e invece abbiamo iniettato le dipendenze WebDriver, WebDriverConfig, AccediAPiattaformaNotifichePage, e DisserviziAppPAPage tramite @Autowired. * Integrazione DownloadFile e WebTool: Poiché DownloadFile e WebTool vengono utilizzati internamente senza dipendenze da Spring, non è necessario modificarli; il loro uso rimane invariato. From fd15a8a2c001b61a0fbcc818373a9a8024cae967 Mon Sep 17 00:00:00 2001 From: scritelli Date: Mon, 28 Oct 2024 17:07:11 +0100 Subject: [PATCH 146/212] Ristrutturazione classe con springboot in attesa di test con la suite di mittente inoltre refactoring del codice ottimizzato secondo i standard --- .../pages/mittente/DisserviziAppPAPage.java | 65 ++++++++++++++++++- 1 file changed, 64 insertions(+), 1 deletion(-) diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/DisserviziAppPAPage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/DisserviziAppPAPage.java index 7d3fa44f0..bf1ca83b8 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/DisserviziAppPAPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/DisserviziAppPAPage.java @@ -342,6 +342,69 @@ public void clickLinkAttestazioniOpponibileDisservizi(int numeroLinkAttestazioni } } + public boolean confrontoFileConDisservizio() { + getDateDisservice(); + logger.info("Date acquisite con successo dal disservizio"); + + String folderPath = webDriverConfig.getDownloadFilePath(); + String searchString = "PN_DOWNTIME_LEGAL_FACTS"; + File folder = new File(folderPath); + + if (!folder.isDirectory()) { + logger.warn("Il percorso specificato non è una directory: {}", folderPath); + return false; + } + + File[] files = folder.listFiles(); + if (files == null || files.length == 0) { + logger.warn("La cartella è vuota o non è accessibile: {}", folderPath); + return false; + } + + logger.info("Numero di file nella cartella: {}", files.length); + + for (File file : files) { + if (file.isFile() && file.getName().contains(searchString)) { + logger.info("File trovato: {}", file.getName()); + if (isDataInFile(file)) { + return true; + } + } + } + return false; + } + + private boolean isDataInFile(File file) { + try (PDDocument document = PDDocument.load(file)) { + PDFTextStripper pdfTextStripper = new PDFTextStripper(); + String text = pdfTextStripper.getText(document); + + String dataA = dataPopulation.getDataA(); + String dataDa = dataPopulation.getDataDa(); + + logger.info("Verifica delle date nel file: dataA={}, dataDa={}", dataA, dataDa); + + if (text.contains(dataA) && text.contains(dataDa)) { + logger.info("Le date specificate sono presenti nel file: {}", file.getName()); + return true; + } + } catch (IOException e) { + logger.error("Errore nella lettura del PDF: {}", file.getName(), e); + Assertions.fail("Errore nella lettura del PDF: " + file.getName()); + } + return false; + } + +/* +Miglioramenti e Spiegazioni: +Separazione del codice: La logica di lettura e confronto nel PDF è stata isolata nel metodo privato isDataInFile, migliorando così la chiarezza del metodo principale. +Gestione dell'I/O in try-with-resources: La gestione del PDDocument usa try-with-resources per garantire la chiusura automatica del file. +Logging migliorato: Ogni passaggio significativo è chiaramente loggato, con messaggi più descrittivi. +Error Handling: Le condizioni di errore sono loggate come warn e non lanciano System.out.println, rendendo i log più professionali e centralizzati. + + + + public boolean confrontoFileConDisservizio() { getDateDisservice(); logger.info("date prese con successo dal disserivizio"); @@ -385,7 +448,7 @@ public boolean confrontoFileConDisservizio() { } return false; } - +*/ } From fb470b6641f5c25c0618d9e095ac996005983995 Mon Sep 17 00:00:00 2001 From: andreadefranco Date: Mon, 28 Oct 2024 17:38:00 +0100 Subject: [PATCH 147/212] added Autowired --- .../e2e/common/RecapitiDestinatarioPage.java | 4 + .../personaFisica/ITuoiRecapitiPage.java | 5 +- .../mittente/PiattaformaNotifichePage.java | 5 +- .../section/mittente/AllegatiPASection.java | 5 +- .../mittente/DestinatarioPASection.java | 4 + .../DettaglioNotificaMittenteSection.java | 4 + .../InformazioniPreliminariPASection.java | 3 + .../CucumberSpringIntegration.java | 16 +++- .../common/BackgroundTest.java | 33 +++++-- .../stepDefinitions/common/HelpdeskTest.java | 3 + .../mittente/DisserviziAppPATest.java | 2 +- .../mittente/NotificaMittentePagoPATest.java | 96 ++++++++++--------- 12 files changed, 121 insertions(+), 59 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/common/RecapitiDestinatarioPage.java b/src/main/java/it/pn/frontend/e2e/common/RecapitiDestinatarioPage.java index 1076e5c32..4745ac1da 100644 --- a/src/main/java/it/pn/frontend/e2e/common/RecapitiDestinatarioPage.java +++ b/src/main/java/it/pn/frontend/e2e/common/RecapitiDestinatarioPage.java @@ -7,9 +7,12 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; import java.util.List; +@Component public class RecapitiDestinatarioPage extends BasePage { private final Logger logger = LoggerFactory.getLogger("RecapitiDestinatarioPage"); @@ -80,6 +83,7 @@ public class RecapitiDestinatarioPage extends BasePage { @FindBy(id = "default_pec-typography") WebElement pecEmail; + @Autowired public RecapitiDestinatarioPage(WebDriver driver) { super(driver); } diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/ITuoiRecapitiPage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/ITuoiRecapitiPage.java index 886e815b1..de6138826 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/ITuoiRecapitiPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/ITuoiRecapitiPage.java @@ -7,9 +7,11 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; import java.util.List; - +@Component public class ITuoiRecapitiPage extends BasePage { private static final Logger logger = LoggerFactory.getLogger("ITuoiRecapitiPage"); @@ -28,6 +30,7 @@ public class ITuoiRecapitiPage extends BasePage { @FindBy(xpath = "//*[@id='legalContactsSection']/p") WebElement subTitlesSection; + @Autowired public ITuoiRecapitiPage(WebDriver driver) { super(driver); } diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java index 4eaf066cf..0679630ef 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java @@ -16,6 +16,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; import java.text.DateFormatSymbols; import java.time.LocalDate; @@ -23,7 +24,7 @@ import java.util.concurrent.TimeUnit; import static org.openqa.selenium.support.ui.ExpectedConditions.elementToBeClickable; - +@Component public class PiattaformaNotifichePage extends BasePage { private static final Logger logger = LoggerFactory.getLogger("notificaMittentePagoPA"); @@ -108,7 +109,7 @@ public class PiattaformaNotifichePage extends BasePage { @Autowired private WebDriverConfig webDriverConfig; - + @Autowired public PiattaformaNotifichePage(WebDriver driver) { super(driver); } diff --git a/src/main/java/it/pn/frontend/e2e/section/mittente/AllegatiPASection.java b/src/main/java/it/pn/frontend/e2e/section/mittente/AllegatiPASection.java index c1e240c19..8ed8fb86b 100644 --- a/src/main/java/it/pn/frontend/e2e/section/mittente/AllegatiPASection.java +++ b/src/main/java/it/pn/frontend/e2e/section/mittente/AllegatiPASection.java @@ -10,9 +10,11 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; import java.util.List; - +@Component public class AllegatiPASection extends BasePage { private static final Logger logger = LoggerFactory.getLogger("AllegatiSection"); @@ -33,6 +35,7 @@ public class AllegatiPASection extends BasePage { @FindBy(id = "step-submit") WebElement inviaButton; + @Autowired public AllegatiPASection(WebDriver driver) { super(driver); } diff --git a/src/main/java/it/pn/frontend/e2e/section/mittente/DestinatarioPASection.java b/src/main/java/it/pn/frontend/e2e/section/mittente/DestinatarioPASection.java index a55c478ae..fb2f83323 100644 --- a/src/main/java/it/pn/frontend/e2e/section/mittente/DestinatarioPASection.java +++ b/src/main/java/it/pn/frontend/e2e/section/mittente/DestinatarioPASection.java @@ -7,10 +7,13 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; import java.util.List; import java.util.Map; +@Component public class DestinatarioPASection extends BasePage { private static final Logger logger = LoggerFactory.getLogger("DestinatarioPASection"); @@ -79,6 +82,7 @@ public class DestinatarioPASection extends BasePage { @FindBy(id = "add-digital-domicile") WebElement checkDomicilioDigitale; + @Autowired public DestinatarioPASection(WebDriver driver) { super(driver); } diff --git a/src/main/java/it/pn/frontend/e2e/section/mittente/DettaglioNotificaMittenteSection.java b/src/main/java/it/pn/frontend/e2e/section/mittente/DettaglioNotificaMittenteSection.java index 5aef2f03d..6994062c0 100644 --- a/src/main/java/it/pn/frontend/e2e/section/mittente/DettaglioNotificaMittenteSection.java +++ b/src/main/java/it/pn/frontend/e2e/section/mittente/DettaglioNotificaMittenteSection.java @@ -11,6 +11,8 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; import java.io.File; import java.io.IOException; @@ -21,6 +23,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; +@Component public class DettaglioNotificaMittenteSection extends BasePage { private static final Logger logger = LoggerFactory.getLogger("DettaglioNotificaSection"); @@ -66,6 +69,7 @@ public class DettaglioNotificaMittenteSection extends BasePage { private int numeriStatiNotifica; + @Autowired public DettaglioNotificaMittenteSection(WebDriver driver) { super(driver); } diff --git a/src/main/java/it/pn/frontend/e2e/section/mittente/InformazioniPreliminariPASection.java b/src/main/java/it/pn/frontend/e2e/section/mittente/InformazioniPreliminariPASection.java index 50e624063..8df1f3ca4 100644 --- a/src/main/java/it/pn/frontend/e2e/section/mittente/InformazioniPreliminariPASection.java +++ b/src/main/java/it/pn/frontend/e2e/section/mittente/InformazioniPreliminariPASection.java @@ -13,9 +13,11 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; import java.util.Map; +@Component public class InformazioniPreliminariPASection extends BasePage { private static final Logger logger = LoggerFactory.getLogger("InformazioniPreliminariPASection"); @@ -44,6 +46,7 @@ public class InformazioniPreliminariPASection extends BasePage { @Autowired private WebDriverConfig webDriverConfig; + @Autowired public InformazioniPreliminariPASection(WebDriver driver) { super(driver); } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java index 9d71bf05e..3c997c801 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java @@ -2,13 +2,20 @@ import io.cucumber.spring.CucumberContextConfiguration; import it.pn.frontend.e2e.common.HelpdeskPage; +import it.pn.frontend.e2e.common.RecapitiDestinatarioPage; import it.pn.frontend.e2e.config.BearerTokenConfig; import it.pn.frontend.e2e.config.UserPasswordConfig; import it.pn.frontend.e2e.config.WebDriverConfig; import it.pn.frontend.e2e.listeners.LoggerStartupListener; import it.pn.frontend.e2e.listeners.NetWorkInfo; +import it.pn.frontend.e2e.pages.destinatario.personaFisica.ITuoiRecapitiPage; import it.pn.frontend.e2e.pages.destinatario.personaGiuridica.AccediAreaRiservataPGPage; +import it.pn.frontend.e2e.pages.mittente.PiattaformaNotifichePage; import it.pn.frontend.e2e.section.destinatario.personaGiuridica.HeaderPGSection; +import it.pn.frontend.e2e.section.mittente.AllegatiPASection; +import it.pn.frontend.e2e.section.mittente.DestinatarioPASection; +import it.pn.frontend.e2e.section.mittente.DettaglioNotificaMittenteSection; +import it.pn.frontend.e2e.section.mittente.InformazioniPreliminariPASection; import it.pn.frontend.e2e.utility.CookieConfig; import it.pn.frontend.e2e.utility.DataPopulation; import org.springframework.boot.context.properties.EnableConfigurationProperties; @@ -28,7 +35,14 @@ HeaderPGSection.class, HelpdeskPage.class, HeaderPGSection.class, - AccediAreaRiservataPGPage.class + AccediAreaRiservataPGPage.class, + RecapitiDestinatarioPage.class, + ITuoiRecapitiPage.class, + PiattaformaNotifichePage.class, + AllegatiPASection.class, + DestinatarioPASection.class, + DettaglioNotificaMittenteSection.class, + InformazioniPreliminariPASection.class }) @EnableScheduling diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/BackgroundTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/BackgroundTest.java index ec8c958ab..9991ec6ea 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/BackgroundTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/BackgroundTest.java @@ -2,6 +2,7 @@ import it.pn.frontend.e2e.common.RecapitiDestinatarioPage; import it.pn.frontend.e2e.listeners.Hooks; +import it.pn.frontend.e2e.listeners.HooksNew; import it.pn.frontend.e2e.pages.destinatario.personaFisica.ITuoiRecapitiPage; import it.pn.frontend.e2e.pages.mittente.PiattaformaNotifichePage; import it.pn.frontend.e2e.stepDefinitions.destinatario.personaFisica.DeleghePagoPATest; @@ -11,32 +12,46 @@ import it.pn.frontend.e2e.stepDefinitions.mittente.NotificaMittentePagoPATest; import it.pn.frontend.e2e.utility.WebTool; import org.openqa.selenium.WebDriver; +import org.springframework.beans.factory.annotation.Autowired; import java.util.HashMap; import java.util.Map; public class BackgroundTest { - private final WebDriver driver = Hooks.driver; +// private final WebDriver driver = Hooks.driver; + @Autowired + private HooksNew hooks; private final String nomeFileDatiNotifica = "datiNotifica"; private final String nomeFilePersonaFisica = "personaFisica"; private final String nomeFilePG = "personaGiuridica"; private final String nomeFileNuovaDelega = "nuova_delega"; private final String nomeFileNuovaDelegaPG = "nuovaDelegaPG"; private final String mittente = "mittente"; + private final DeleghePagoPATest deleghePagoPATest = new DeleghePagoPATest(); - private final RecapitiPersonaFisicaTest recapitiPersonaFisicaTest = new RecapitiPersonaFisicaTest(); - private final LoginPGPagoPATest loginPGPagoPATest = new LoginPGPagoPATest(); - private final LoginPersonaFisicaPagoPA personaFisicaPagoPA = new LoginPersonaFisicaPagoPA(); + @Autowired + private RecapitiPersonaFisicaTest recapitiPersonaFisicaTest; + @Autowired + private LoginPGPagoPATest loginPGPagoPATest; + @Autowired + private LoginPersonaFisicaPagoPA personaFisicaPagoPA; + private final DeleghePGPagoPATest deleghePGPagoPATest = new DeleghePGPagoPATest(); + private final DisserviziAppPGTest disserviziAppPGTest = new DisserviziAppPGTest(); + private final HelpdeskTest helpdeskTest = new HelpdeskTest(); + private final NotifichePGPagoPATest notifichePGPagoPATest = new NotifichePGPagoPATest(); + private final RecapitiTest recapitiTest = new RecapitiTest(); private final Map datiPersonaFisica; - private final RecapitiDestinatarioPage recapitiDestinatarioPage = new RecapitiDestinatarioPage(driver); - private final ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(driver); + @Autowired + private RecapitiDestinatarioPage recapitiDestinatarioPage ; + @Autowired + private ITuoiRecapitiPage iTuoiRecapitiPage; public BackgroundTest() { datiPersonaFisica = new HashMap<>(); @@ -338,21 +353,21 @@ public void inserimentoOTPErratoTreVolteEControlloMessaggio(String OTP) { } public void siFiltraLaTabellaDelleNotifichePerIUNDestinatario(String iun) { - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(driver); + PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(hooks.getDriver()); piattaformaNotifichePage.inserimentoCodiceIUN(iun); piattaformaNotifichePage.selectFiltraNotificaButtonDestinatario(); piattaformaNotifichePage.clickSuNotifica(); } public void siFiltraLaTabellaDelleNotificheDelDestinatarioPerIUN(String iun) { - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(driver); + PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(hooks.getDriver()); piattaformaNotifichePage.inserimentoCodiceIUN(iun); piattaformaNotifichePage.selectFiltraNotificaButtonDestinatario(); piattaformaNotifichePage.clickSuNotifica(); } public void siFiltraLaTabellaDelleNotifichePerIUNMittente(String iun) { - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(driver); + PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(hooks.getDriver()); piattaformaNotifichePage.inserimentoCodiceIUN(iun); piattaformaNotifichePage.selectFiltraNotificaButtonMittente(); WebTool.waitTime(1); diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/HelpdeskTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/HelpdeskTest.java index a07438b29..9b60a70a4 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/HelpdeskTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/HelpdeskTest.java @@ -44,6 +44,9 @@ public class HelpdeskTest { @Autowired private HelpdeskPage helpdeskPage ; +// @Autowired +// private BackgroundTest backgroundTest; + private Map datiTestHelpdesk = new HashMap<>(); private Map datiPersonaFisica = new HashMap<>(); diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DisserviziAppPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DisserviziAppPATest.java index f8d60971a..78483d850 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DisserviziAppPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DisserviziAppPATest.java @@ -25,7 +25,7 @@ *Iniezione delle Dipendenze con @Autowired: Abbiamo rimosso la creazione manuale delle istanze e invece abbiamo iniettato le dipendenze WebDriver, WebDriverConfig, AccediAPiattaformaNotifichePage, e DisserviziAppPAPage tramite @Autowired. * Integrazione DownloadFile e WebTool: Poiché DownloadFile e WebTool vengono utilizzati internamente senza dipendenze da Spring, non è necessario modificarli; il loro uso rimane invariato. * Annotazione @Component: La classe DisserviziAppPATest è stata annotata come componente Spring per consentire l'iniezione automatica delle dipendenze. */ -@Component +//@Component public class DisserviziAppPATest { private static final Logger logger = LoggerFactory.getLogger(DisserviziAppPATest.class); diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java index 7c1fa8fcd..1cd44e973 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java @@ -45,16 +45,24 @@ public class NotificaMittentePagoPATest { private static final Logger logger = LoggerFactory.getLogger("NotificaMittentePagoPATest"); - private final List netWorkInfos = Hooks.netWorkInfos; - private final PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(this.driver); - private final AllegatiPASection allegatiPASection = new AllegatiPASection(this.driver); - private final DestinatarioPASection destinatarioPASection = new DestinatarioPASection(this.driver); - private final DataPopulation dataPopulation = new DataPopulation(); - private final DettaglioNotificaMittenteSection dettaglioNotificaMittenteSection = new DettaglioNotificaMittenteSection(this.driver); +// private final List netWorkInfos = Hooks.netWorkInfos; + @Autowired + private PiattaformaNotifichePage piattaformaNotifichePage; + @Autowired + private AllegatiPASection allegatiPASection; + @Autowired + private DestinatarioPASection destinatarioPASection; + @Autowired + private DataPopulation dataPopulation ; + @Autowired + private DettaglioNotificaMittenteSection dettaglioNotificaMittenteSection; //private final String variabileAmbiente = System.getProperty("environment"); - private final InformazioniPreliminariPASection informazioniPreliminariPASection = new InformazioniPreliminariPASection(this.driver); - private final LoginPersonaFisicaPagoPA loginPersonaFisicaPagoPA = new LoginPersonaFisicaPagoPA(); - private final LoginPGPagoPATest loginPGPagoPATest = new LoginPGPagoPATest(); + @Autowired + private InformazioniPreliminariPASection informazioniPreliminariPASection; + @Autowired + private LoginPersonaFisicaPagoPA loginPersonaFisicaPagoPA; + @Autowired + private LoginPGPagoPATest loginPGPagoPATest; private final String PF = "persona fisica"; private final String PG = "persona giuridica"; private final String PA = "pubblica amministrazione"; @@ -76,7 +84,7 @@ public class NotificaMittentePagoPATest { @Autowired private HooksNew hooks; - private final WebDriver driver = hooks.getDriver(); +// private final WebDriver driver = hooks.getDriver(); @When("Nella Home page mittente cliccare sul bottone Gestisci di Piattaforma Notifiche") public void nellaHomePageMittenteCliccareSuGestisciDiPiattaforma() { @@ -118,7 +126,7 @@ private int getCodiceRispostaChiamataApi(String urlChiamata) { logger.info("Recupero codice risposta della chiamata" + urlChiamata); int codiceRispostaChiamataApi = 0; - for (NetWorkInfo chiamate : netWorkInfos) { + for (NetWorkInfo chiamate : webDriverConfig.getNetWorkInfos()) { if (chiamate.getRequestUrl().startsWith(urlChiamata) && chiamate.getRequestMethod().equals("GET")) { codiceRispostaChiamataApi = Integer.parseInt(chiamate.getResponseStatus()); break; @@ -133,7 +141,7 @@ public String getNumeroProtocollo() { this.piattaformaNotifichePage.siCambiaIlNumeroElementiVisualizzatiAttraversoIlFiltro(); WebTool.waitTime(5); String urlNotifiche = webDriverConfig.getBaseUrl() + "notifications/"; - for (NetWorkInfo netWorkInfo : netWorkInfos) { + for (NetWorkInfo netWorkInfo : webDriverConfig.getNetWorkInfos()) { if (netWorkInfo.getRequestUrl().contains(urlNotifiche) && netWorkInfo.getRequestUrl().endsWith("size=10")) { String responseBody = netWorkInfo.getResponseBody(); String[] allNotifiche = responseBody.split("],\"moreResult\":"); @@ -227,7 +235,7 @@ public void aspettaSecondi(int quantiSecondi) { try { TimeUnit.SECONDS.sleep(quantiSecondi); - driver.navigate().refresh(); + hooks.getDriver().navigate().refresh(); } catch (Exception exc) { logger.error(exc.toString()); throw new RuntimeException(exc); @@ -244,7 +252,7 @@ public void siVisualizzaCorrettamenteLaTimelineRelativiATuttiIDestinatari(Map= 1) { piattaformaNotifichePage.aggiornamentoPagina(); @@ -924,7 +932,7 @@ public void nellaSectionDestinatarioInserireIDatiErratiDallaPersonaGiuridica(Str public void nellaSectionAllegatiCaricareLAttoEInserireIlNomeAttoConEstenzioneNonValida() { logger.info("Si inserisce un file con estensione sbagliata"); - AllegatiPASection allegatiPASection = new AllegatiPASection(this.driver); + AllegatiPASection allegatiPASection = new AllegatiPASection(hooks.getDriver()); String pathDocumentiFile = System.getProperty("user.dir") + "/src/test/resources/dataPopulation/fileUpload/semiOfficial1.jpg"; allegatiPASection.caricareNotificaPdfDalComputer(pathDocumentiFile); } @@ -993,7 +1001,7 @@ public void verificaDelloStatoDellaNotificaPersonaGiuridicaComeDepositata(String String codiceFiscale = this.personaFisica.get("codiceFiscale").toString(); String codiceIUNOld = this.datiNotifica.get("codiceIUN").toString(); - CookiesSection cookiesSection = new CookiesSection(this.driver); + CookiesSection cookiesSection = new CookiesSection(hooks.getDriver()); String codiceIUN = ""; for (int i = 0; i < 12; i++) { if (i >= 1) { @@ -1360,7 +1368,7 @@ public void siVerificaCheLInvioDellaNotificaSiaFallitoDueVolte(int numeroFallime public void siAttendeCompletamentoNotifica() { siVisualizzaCorrettamenteLaSectionDettaglioNotifica(); WebTool.waitTime(400); - driver.navigate().refresh(); + hooks.getDriver().navigate().refresh(); WebTool.waitTime(3); } @@ -1598,7 +1606,7 @@ private String getNotificationRequestId(String urlNotificationRequest) { * (2) no POST requests with the provided URL were found */ boolean foundRequestWithUndesiredStatus = false; - for (NetWorkInfo netWorkInfo : netWorkInfos) { + for (NetWorkInfo netWorkInfo : webDriverConfig.getNetWorkInfos()) { if (netWorkInfo.getRequestUrl().equals(urlNotificationRequest) && netWorkInfo.getRequestMethod().equals("POST") && netWorkInfo.getResponseStatus().equals("202")) { String values = netWorkInfo.getResponseBody(); List results = Splitter.on(CharMatcher.anyOf(",:")).splitToList(values); @@ -1646,7 +1654,7 @@ public void nellaPaginaPiattaformaNotificheSiRecuperaUnCodiceIUNValido() { public void siVerificaCheLaNotificaSiaNelloStatoConsegnata() { logger.info("Si verifica che la notifica sia nello stato consegnata"); - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage((this.driver)); + PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage((hooks.getDriver())); this.datiNotifica = dataPopulation.readDataPopulation("datiNotifica.yaml"); boolean notificaTrovata = false; @@ -1754,7 +1762,7 @@ public void siControllaCheLeRicevutePECSianoScaricabili() { @And("Creazione notifica completa") public void creazioneNotificaCompleta(Map datiNotificaMap) { logger.info("Inserimento dei dati della notifica senza pagamento " ); - AllegatiPASection allegatiPASection = new AllegatiPASection(driver); + AllegatiPASection allegatiPASection = new AllegatiPASection(hooks.getDriver()); File notificaFile = new File("src/test/resources/notifichePdf/notifica.pdf"); datiNotifica = dataPopulation.readDataPopulation(datiNotificaMap.get("nomeFileYaml") + ".yaml"); From a9f7d7c07e9a09f507d8a938aed7121bb97ceb0c Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Mon, 28 Oct 2024 21:44:49 +0100 Subject: [PATCH 148/212] add integration spring --- .../e2e/common/DettaglioNotificaSection.java | 4 + .../pn/frontend/e2e/listeners/HooksNew.java | 1 + .../pages/destinatario/DestinatarioPage.java | 6 +- .../AccediAPiattaformaNotifichePage.java | 31 +++--- .../personaFisica/ConfermaDatiSpidPFPage.java | 5 +- .../personaFisica/LoginSpidPFPage.java | 5 +- .../personaFisica/NotifichePFPage.java | 4 + .../personaFisica/ScegliSpidPFPage.java | 4 + .../AutorizzaInvioDatiPGPage.java | 4 + .../personaGiuridica/DisserviziAppPage.java | 4 + .../personaGiuridica/HomePagePG.java | 4 + .../personaGiuridica/LoginPGPagoPAPage.java | 4 + .../PiattaformaNotifichePGPAPage.java | 3 + .../personaGiuridica/ScegliSpidPGPage.java | 4 + .../SelezionaImpresaPage.java | 4 + .../mittente/AcccediAreaRiservataPAPage.java | 5 + .../pages/mittente/AreaRiservataPAPage.java | 5 +- .../mittente/AutorizziInvioDatiPAPage.java | 4 + .../pages/mittente/DisserviziAppPAPage.java | 13 ++- .../e2e/pages/mittente/LoginPAPage.java | 5 +- .../mittente/PiattaformaNotifichePage.java | 51 +++++----- .../PreAccediAreaRiservataPAPage.java | 4 + .../e2e/pages/mittente/ScegliSpidPAPage.java | 4 + .../pages/mittente/SelezionaEntePAPage.java | 5 +- .../frontend/e2e/section/CookiesSection.java | 2 + .../personaFisica/HeaderPFSection.java | 4 + .../section/mittente/AllegatiPASection.java | 4 + .../mittente/DestinatarioPASection.java | 4 + .../DettaglioNotificaMittenteSection.java | 4 + .../e2e/section/mittente/HeaderPASection.java | 4 + .../InformazioniPreliminariPASection.java | 3 + .../pn/frontend/e2e/utility/DownloadFile.java | 3 + .../CucumberSpringIntegration.java | 49 +++++++++- .../LoginPersonaFisicaPagoPA.java | 49 +++++----- .../personaGiuridica/DisserviziAppPGTest.java | 24 ++++- .../personaGiuridica/LoginPGPagoPATest.java | 62 ++++++------ .../mittente/DashboardMittentePagoPATest.java | 28 +----- .../mittente/DisserviziAppPATest.java | 26 ++--- .../DownloadFileMittentePagoPATest.java | 76 +++++---------- .../mittente/LoginMittentePagoPA.java | 79 +++++++-------- .../mittente/NotificaMittentePagoPATest.java | 95 +++++++++---------- 41 files changed, 413 insertions(+), 286 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/common/DettaglioNotificaSection.java b/src/main/java/it/pn/frontend/e2e/common/DettaglioNotificaSection.java index 6af13c2e3..523538e5f 100644 --- a/src/main/java/it/pn/frontend/e2e/common/DettaglioNotificaSection.java +++ b/src/main/java/it/pn/frontend/e2e/common/DettaglioNotificaSection.java @@ -10,6 +10,8 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; import java.util.HashMap; import java.util.List; @@ -17,6 +19,7 @@ import static org.openqa.selenium.support.ui.ExpectedConditions.elementToBeClickable; +@Component public class DettaglioNotificaSection extends BasePage { private static final Logger logger = LoggerFactory.getLogger("DettaglioNotificaSection"); @@ -38,6 +41,7 @@ public class DettaglioNotificaSection extends BasePage { @FindBy(id = "breadcrumb-indietro-button") WebElement indietroButton; + @Autowired public DettaglioNotificaSection(WebDriver driver) { super(driver); } diff --git a/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java b/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java index 888f1f9e1..ae74cd376 100644 --- a/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java +++ b/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java @@ -46,6 +46,7 @@ import org.springframework.beans.factory.annotation.Value; import io.github.bonigarcia.wdm.WebDriverManager; +import org.springframework.context.annotation.Primary; import org.springframework.stereotype.Component; diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/DestinatarioPage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/DestinatarioPage.java index 6dc04d4b5..6856748a7 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/DestinatarioPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/DestinatarioPage.java @@ -26,12 +26,14 @@ import org.openqa.selenium.support.FindBy; import org.openqa.selenium.support.ui.ExpectedConditions; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; import java.util.ArrayList; import java.util.List; import java.util.Map; @Slf4j +@Component public class DestinatarioPage extends BasePage { @Getter @@ -42,11 +44,9 @@ public class DestinatarioPage extends BasePage { private static final NotificationBuilder notificationBuilder = new NotificationBuilder(); private int destinatariNumber; - @Autowired - private HooksNew hooks; - private final WebDriver driver = hooks.getDriver(); //Questa classe è utilizzata per metodi in comune tra PF e PG + @Autowired public DestinatarioPage(WebDriver driver) { super(driver); } diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java index 7645c5e6a..accc6966b 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java @@ -7,9 +7,12 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; import java.util.List; +@Component public class AccediAPiattaformaNotifichePage extends BasePage { private static final Logger logger = LoggerFactory.getLogger("AccediAPiattaformaNotifichePage"); @@ -77,18 +80,18 @@ public class AccediAPiattaformaNotifichePage extends BasePage { List pagopaAllegatoItems; - + @Autowired public AccediAPiattaformaNotifichePage(WebDriver driver) { super(driver); } public void waitLoadAccediAPiattaformaNotifichePage() { - By titleLabel = By.id("login-mode-page-title"); - By loginBy = By.id("spidButton"); - getWebDriverWait(30).withMessage("Il titolo della pagina accedi a piattaforma notifiche non è visibile").until(ExpectedConditions.visibilityOfElementLocated(titleLabel)); - getWebDriverWait(30).withMessage("Il bottone login della pagina accedi a piattaforma notifiche non è visibile e cliccabile").until(ExpectedConditions.and(ExpectedConditions.visibilityOfElementLocated(loginBy),ExpectedConditions.elementToBeClickable(loginBy))); - logger.info("Accedi A Piattaforma Notifiche Page caricata"); + By titleLabel = By.id("login-mode-page-title"); + By loginBy = By.id("spidButton"); + getWebDriverWait(30).withMessage("Il titolo della pagina accedi a piattaforma notifiche non è visibile").until(ExpectedConditions.visibilityOfElementLocated(titleLabel)); + getWebDriverWait(30).withMessage("Il bottone login della pagina accedi a piattaforma notifiche non è visibile e cliccabile").until(ExpectedConditions.and(ExpectedConditions.visibilityOfElementLocated(loginBy), ExpectedConditions.elementToBeClickable(loginBy))); + logger.info("Accedi A Piattaforma Notifiche Page caricata"); } @@ -193,7 +196,7 @@ public boolean scaricaAvvisoDisplayed() { //TODO Verificare.... public boolean piuAvvisiDisplayed() { - if (pagopaItems.isEmpty()){ + if (pagopaItems.isEmpty()) { logger.info("Avvisi pagoPa sono trovati"); return true; } @@ -201,7 +204,7 @@ public boolean piuAvvisiDisplayed() { if (pagopaItems.size() < 2) { logger.info("Avvisi pagoPa non sono trovati"); return false; - }else { + } else { logger.info("Avvisi pagoPa sono trovati"); return true; } @@ -211,7 +214,7 @@ public boolean allegatoPagoPaDisplayed() { if (pagopaAllegatoItems.isEmpty()) { logger.info("Allegati pagoPa non sono trovati"); return true; - }else { + } else { return false; } } @@ -310,7 +313,7 @@ public void checkoutPagamento() throws InterruptedException { driver.switchTo().defaultContent(); WebTool.waitTime(5); - WebElement continuaBottone = driver.findElement(By.xpath("//button[@aria-label='Continue']") ); //for local test use //button[@aria-label='Continua'] + WebElement continuaBottone = driver.findElement(By.xpath("//button[@aria-label='Continue']")); //for local test use //button[@aria-label='Continua'] getWebDriverWait(8).withMessage("Il bottone Continua non è cliccabile").until(ExpectedConditions.elementToBeClickable(continuaBottone)); continuaBottone.click(); @@ -322,17 +325,17 @@ public void checkoutPagamento() throws InterruptedException { modificaButton.click(); WebTool.waitTime(10); - List nexiButton = driver.findElements(By.xpath("//div[contains(text(),'Intesa Sanpaolo S.p.A')]")); + List nexiButton = driver.findElements(By.xpath("//div[contains(text(),'Intesa Sanpaolo S.p.A')]")); WebTool.waitTime(10); //getWebDriverWait(10).withMessage("Il bottone Nexi non è cliccabile").until(ExpectedConditions.elementToBeClickable(nexiButton)); - if (nexiButton.size()==2){ + if (nexiButton.size() == 2) { nexiButton.get(1).click(); - }else { + } else { nexiButton.get(0).click(); } WebTool.waitTime(5); - WebElement pagaButton = driver.findElement(By.xpath("//button[@id='paymentCheckPageButtonPay']")); + WebElement pagaButton = driver.findElement(By.xpath("//button[@id='paymentCheckPageButtonPay']")); getWebDriverWait(5).withMessage("Il bottone Paga non è cliccabile").until(ExpectedConditions.elementToBeClickable(pagaButton)); pagaButton.click(); WebTool.waitTime(50); diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/ConfermaDatiSpidPFPage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/ConfermaDatiSpidPFPage.java index 2113e9df1..a58dd3da7 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/ConfermaDatiSpidPFPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/ConfermaDatiSpidPFPage.java @@ -10,7 +10,10 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +@Component public class ConfermaDatiSpidPFPage extends BasePage { private static final Logger logger = LoggerFactory.getLogger("ConfermaDatiSpidPFPage"); @@ -27,7 +30,7 @@ public class ConfermaDatiSpidPFPage extends BasePage { @FindBy(css = "input[value='Conferma']") WebElement confermaButton; - + @Autowired public ConfermaDatiSpidPFPage(WebDriver driver) { super(driver); } diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/LoginSpidPFPage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/LoginSpidPFPage.java index 538300c7e..d34fbe7af 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/LoginSpidPFPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/LoginSpidPFPage.java @@ -10,7 +10,10 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +@Component public class LoginSpidPFPage extends BasePage { private static final Logger logger = LoggerFactory.getLogger("LoginSpidPFPage"); @@ -24,7 +27,7 @@ public class LoginSpidPFPage extends BasePage { @FindBy(xpath = "//button[contains(@class,'button-spid')]") WebElement entraConSpidButton; - + @Autowired public LoginSpidPFPage(WebDriver driver) { super(driver); } diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/NotifichePFPage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/NotifichePFPage.java index 25ab9350e..d995003ec 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/NotifichePFPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/NotifichePFPage.java @@ -8,10 +8,13 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; import java.time.LocalDate; import java.util.List; +@Component public class NotifichePFPage extends BasePage { private static final Logger logger = LoggerFactory.getLogger("NotifichePFPage"); @@ -66,6 +69,7 @@ public class NotifichePFPage extends BasePage { @FindBy(xpath = "//button[@data-testid='download-pagoPA-notice-button']") WebElement buttonDownloadAvvisoPagoPA; + @Autowired public NotifichePFPage(WebDriver driver) { super(driver); } diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/ScegliSpidPFPage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/ScegliSpidPFPage.java index cc97f9caf..9af22333b 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/ScegliSpidPFPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/ScegliSpidPFPage.java @@ -10,7 +10,10 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +@Component public class ScegliSpidPFPage extends BasePage { private static final Logger logger = LoggerFactory.getLogger("ScegliSpidPFPage"); @@ -18,6 +21,7 @@ public class ScegliSpidPFPage extends BasePage { @FindBy(id = "spid-select-xx_testenv2") WebElement testButton; + @Autowired public ScegliSpidPFPage(WebDriver driver) { super(driver); } diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/AutorizzaInvioDatiPGPage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/AutorizzaInvioDatiPGPage.java index 2a48729c5..d457d3f86 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/AutorizzaInvioDatiPGPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/AutorizzaInvioDatiPGPage.java @@ -10,10 +10,14 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +@Component public class AutorizzaInvioDatiPGPage extends BasePage { private static final Logger logger = LoggerFactory.getLogger("AutorizzaInvioDatiPGPage"); + @Autowired public AutorizzaInvioDatiPGPage(WebDriver driver) { super(driver); } diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/DisserviziAppPage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/DisserviziAppPage.java index 0d69fba4d..61884d01e 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/DisserviziAppPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/DisserviziAppPage.java @@ -10,9 +10,12 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; import java.util.List; +@Component public class DisserviziAppPage extends BasePage { @FindBy(id = "Stato della piattaforma-page") @@ -20,6 +23,7 @@ public class DisserviziAppPage extends BasePage { private final Logger logger = LoggerFactory.getLogger("Disservizi Page"); + @Autowired public DisserviziAppPage(WebDriver driver) { super(driver); } diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/HomePagePG.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/HomePagePG.java index cedfb8804..21a56f548 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/HomePagePG.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/HomePagePG.java @@ -7,13 +7,17 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; import java.util.List; +@Component public class HomePagePG extends BasePage { private static final Logger logger = LoggerFactory.getLogger("HomePagePG"); + @Autowired public HomePagePG(WebDriver driver) { super(driver); } diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/LoginPGPagoPAPage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/LoginPGPagoPAPage.java index bc58c6c2b..353ed6d0f 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/LoginPGPagoPAPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/LoginPGPagoPAPage.java @@ -10,7 +10,10 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +@Component public class LoginPGPagoPAPage extends BasePage { private static final Logger logger = LoggerFactory.getLogger("LoginPGPagoPAPage"); @@ -24,6 +27,7 @@ public class LoginPGPagoPAPage extends BasePage { @FindBy(xpath = "//button[@name = 'confirm']") WebElement inviaButton; + @Autowired public LoginPGPagoPAPage(WebDriver driver) { super(driver); } diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/PiattaformaNotifichePGPAPage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/PiattaformaNotifichePGPAPage.java index d4b73a892..fbdada6ee 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/PiattaformaNotifichePGPAPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/PiattaformaNotifichePGPAPage.java @@ -16,6 +16,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; import java.io.IOException; import java.net.URL; @@ -30,6 +31,7 @@ import java.util.Map; import java.util.stream.Stream; +@Component public class PiattaformaNotifichePGPAPage extends BasePage { private final Logger logger = LoggerFactory.getLogger("PiattaformaNotifichePGPAPage"); @@ -76,6 +78,7 @@ public class PiattaformaNotifichePGPAPage extends BasePage { @Autowired private WebDriverConfig webDriverConfig; + @Autowired public PiattaformaNotifichePGPAPage(WebDriver driver) { super(driver); } diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/ScegliSpidPGPage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/ScegliSpidPGPage.java index 408a8fd59..6aebc30c3 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/ScegliSpidPGPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/ScegliSpidPGPage.java @@ -11,13 +11,17 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +@Component public class ScegliSpidPGPage extends BasePage { private final Logger logger = LoggerFactory.getLogger("ScegliSpidPGPage"); @FindBy(id = "xx_testenv2") WebElement testButton; + @Autowired public ScegliSpidPGPage(WebDriver driver) { super(driver); } diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/SelezionaImpresaPage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/SelezionaImpresaPage.java index 21ea51572..7211cba88 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/SelezionaImpresaPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/SelezionaImpresaPage.java @@ -7,7 +7,10 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +@Component public class SelezionaImpresaPage extends BasePage { private static final Logger logger = LoggerFactory.getLogger("SelezionaImpresaPage"); @@ -15,6 +18,7 @@ public class SelezionaImpresaPage extends BasePage { @FindBy(xpath = "//button[contains(text(),'Accedi')]") WebElement accediButton; + @Autowired public SelezionaImpresaPage(WebDriver driver) { super(driver); } diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/AcccediAreaRiservataPAPage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/AcccediAreaRiservataPAPage.java index 171d8e007..b9556bf38 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/AcccediAreaRiservataPAPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/AcccediAreaRiservataPAPage.java @@ -8,6 +8,10 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +@Component public class AcccediAreaRiservataPAPage extends BasePage { private static final Logger logger = LoggerFactory.getLogger("AccediAreaRiservataPAPage"); @FindBy(id = "spidButton") @@ -16,6 +20,7 @@ public class AcccediAreaRiservataPAPage extends BasePage { @FindBy (id = "forward_prod-pn-test") WebElement testButton; + @Autowired public AcccediAreaRiservataPAPage(WebDriver driver) { super(driver); } diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/AreaRiservataPAPage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/AreaRiservataPAPage.java index e6917b250..4e9e61134 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/AreaRiservataPAPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/AreaRiservataPAPage.java @@ -7,9 +7,12 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; import java.util.List; +@Component public class AreaRiservataPAPage extends BasePage { private static final Logger logger = LoggerFactory.getLogger("AreaRiservataPAPage"); @@ -26,7 +29,7 @@ public class AreaRiservataPAPage extends BasePage { @FindBy(id = "forward_prod-pn") WebElement piattaformaNotificaUatGestisciButton; - + @Autowired public AreaRiservataPAPage(WebDriver driver) { super(driver); } diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/AutorizziInvioDatiPAPage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/AutorizziInvioDatiPAPage.java index ea51e53f2..2e4a4105a 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/AutorizziInvioDatiPAPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/AutorizziInvioDatiPAPage.java @@ -7,7 +7,10 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +@Component public class AutorizziInvioDatiPAPage extends BasePage { private static final Logger logger = LoggerFactory.getLogger("AutorizziInvioDatiPAPage"); @@ -15,6 +18,7 @@ public class AutorizziInvioDatiPAPage extends BasePage { @FindBy(css = "button[name='confirm']") WebElement inviaButton; + @Autowired public AutorizziInvioDatiPAPage(WebDriver driver) { super(driver); } diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/DisserviziAppPAPage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/DisserviziAppPAPage.java index bedc094b0..67e18b9c2 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/DisserviziAppPAPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/DisserviziAppPAPage.java @@ -16,6 +16,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; import java.io.File; import java.io.IOException; @@ -23,13 +25,18 @@ import java.util.GregorianCalendar; import java.util.List; +@Component public class DisserviziAppPAPage extends BasePage { private final Logger logger = LoggerFactory.getLogger("Disservizi PA Page"); - private DataPopulation dataPopulation = new DataPopulation(); + @Value("${downloadFilePath}") + private String downloadFilePath; + + @Autowired - private WebDriverConfig webDriverConfig; + private DataPopulation dataPopulation; + @Autowired public DisserviziAppPAPage(WebDriver driver) { super(driver); } @@ -300,7 +307,7 @@ public void clickLinkAttestazioniOpponibileDisservizi(int numeroLinkAttestazioni public boolean confrontoFileConDisservizio() { getDateDisservice(); logger.info("date prese con successo dal disserivizio"); - String folderPath = webDriverConfig.getDownloadFilePath(); + String folderPath = downloadFilePath; // Stringa da cercare nel nome del file String searchString = "PN_DOWNTIME_LEGAL_FACTS"; // Creazione di un oggetto File che rappresenta la cartella diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/LoginPAPage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/LoginPAPage.java index 325ff184b..8f73c453b 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/LoginPAPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/LoginPAPage.java @@ -10,8 +10,10 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; - +@Component public class LoginPAPage extends BasePage { private static final Logger logger = LoggerFactory.getLogger("LoginPAPage"); @@ -25,6 +27,7 @@ public class LoginPAPage extends BasePage { @FindBy(xpath = "//button[contains(text(),'Invia')]") WebElement inviaButton; + @Autowired public LoginPAPage(WebDriver driver) { super(driver); } diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java index 4eaf066cf..142cd1ccc 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java @@ -4,6 +4,7 @@ import it.pn.frontend.e2e.common.BasePage; import it.pn.frontend.e2e.config.WebDriverConfig; import it.pn.frontend.e2e.listeners.Hooks; +import it.pn.frontend.e2e.listeners.HooksNew; import it.pn.frontend.e2e.listeners.NetWorkInfo; import it.pn.frontend.e2e.model.singleton.NotificationSingleton; import it.pn.frontend.e2e.rest.RestNotification; @@ -16,6 +17,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; import java.text.DateFormatSymbols; import java.time.LocalDate; @@ -24,10 +27,10 @@ import static org.openqa.selenium.support.ui.ExpectedConditions.elementToBeClickable; +@Component public class PiattaformaNotifichePage extends BasePage { private static final Logger logger = LoggerFactory.getLogger("notificaMittentePagoPA"); - private final List netWorkInfos = Hooks.netWorkInfos; private final NotificationSingleton notificationSingleton = NotificationSingleton.getInstance(); @FindBy(id = "recipientId") @@ -108,7 +111,7 @@ public class PiattaformaNotifichePage extends BasePage { @Autowired private WebDriverConfig webDriverConfig; - + @Autowired public PiattaformaNotifichePage(WebDriver driver) { super(driver); } @@ -504,9 +507,9 @@ public void selezionaNotifica120Giorni() { int index = calendar.get(Calendar.HOUR_OF_DAY); logger.info("index NOTIFICHE : " + index); - logger.info("Scenario " +Hooks.getScenario()); + logger.info("Scenario " + Hooks.getScenario()); - if (notifiche!= null) { + if (notifiche != null) { logger.info("ELENCO NOTIFICHE : " + notifiche.size()); if (notifiche.size() >= index) { logger.info("NOTIFICA SELEZIONATA: " + index); @@ -514,7 +517,7 @@ public void selezionaNotifica120Giorni() { } else { notifiche.get(notifiche.size() - 1).click(); } - }else { + } else { logger.error("Non ci sono notifiche da selezionare nel arco temporale settato"); Assertions.fail("Non ci sono notifiche da selezionare nel arco temporale settato"); } @@ -545,30 +548,32 @@ public void selezionaNotifica120Giorni(int rows) { notificaBy = By.id("notificationsTable.body.row"); List notifiche = this.elements(notificaBy); - logger.info("Scenario " +Hooks.getScenario()); + logger.info("Scenario " + Hooks.getScenario()); Calendar calendar = GregorianCalendar.getInstance(); - int index = calendar.get(Calendar.HOUR_OF_DAY)+rows; - logger.info("HOUR..."+index); - logger.info("SIZE ROWS TABLE..."+notifiche.size()); - logger.info("ROWS TABLE..."+rows); + int index = calendar.get(Calendar.HOUR_OF_DAY) + rows; + logger.info("HOUR..." + index); + logger.info("SIZE ROWS TABLE..." + notifiche.size()); + logger.info("ROWS TABLE..." + rows); logger.info("ROWS SELEZIONATA: " + index); - WebElement riga =null; - if (notifiche!= null) { + WebElement riga = null; + if (notifiche != null) { if (notifiche.size() >= index) { logger.info("ROWS SELEZIONATA1: " + index); notifiche.get(index).click(); } else { logger.info("ROWS SELEZIONATA2: " + rows); - if((rows+1) notificationData; String notificationStatus; String notificationIUN; int maximumRetry = 0; do { - Assertions.assertTrue( maximumRetry <= 5,"La notifica risulta ancora in stato WAITING dopo 5 tentativi"); + Assertions.assertTrue(maximumRetry <= 5, "La notifica risulta ancora in stato WAITING dopo 5 tentativi"); notificationData = restNotification.getNotificationStatus(notificationRequestId); notificationStatus = notificationData.get("notificationRequestStatus").toString(); if (notificationStatus.equals("ACCEPTED")) { @@ -1303,7 +1308,7 @@ public void visualizzaTimeline(String check) { public void verificaTentativoSuccessivo(String check) { List findKeyWord = driver.findElements(By.xpath("//span[contains(text(),'" + check + "')]")); logger.info("//span[contains(text(),'" + check + "')]"); - logger.info("findkey "+findKeyWord.size()); + logger.info("findkey " + findKeyWord.size()); if (findKeyWord.get(0).isDisplayed()) { logger.info("Si visualizza la timeline correttamente"); } else { @@ -1496,6 +1501,6 @@ public void checkBottoneAnnullaNotifica() { } catch (NoSuchElementException e) { isDisplayed = false; // Elemento non trovato } - Assertions.assertFalse(isDisplayed,"Il bottone è visualizzabile"); + Assertions.assertFalse(isDisplayed, "Il bottone è visualizzabile"); } } \ No newline at end of file diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/PreAccediAreaRiservataPAPage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/PreAccediAreaRiservataPAPage.java index 0a485ab3e..b2aa45329 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/PreAccediAreaRiservataPAPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/PreAccediAreaRiservataPAPage.java @@ -8,7 +8,10 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +@Component public class PreAccediAreaRiservataPAPage extends BasePage { private static final Logger logger = LoggerFactory.getLogger("PreAccediAreaRiservataPAPage"); @@ -16,6 +19,7 @@ public class PreAccediAreaRiservataPAPage extends BasePage { @FindBy(id = "login-button") WebElement procediAlLoginButton; + @Autowired public PreAccediAreaRiservataPAPage(WebDriver driver) { super(driver); } diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/ScegliSpidPAPage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/ScegliSpidPAPage.java index 2872dba77..66e9be64a 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/ScegliSpidPAPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/ScegliSpidPAPage.java @@ -10,7 +10,10 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +@Component public class ScegliSpidPAPage extends BasePage { private static final Logger logger = LoggerFactory.getLogger("ScegliSpidPAPage"); @@ -18,6 +21,7 @@ public class ScegliSpidPAPage extends BasePage { @FindBy(id = "xx_testenv2") WebElement testButton; + @Autowired public ScegliSpidPAPage(WebDriver driver) { super(driver); } diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/SelezionaEntePAPage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/SelezionaEntePAPage.java index def7f9c5f..ba047c0b8 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/SelezionaEntePAPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/SelezionaEntePAPage.java @@ -9,9 +9,12 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; import java.util.List; +@Component public class SelezionaEntePAPage extends BasePage { private static final Logger logger = LoggerFactory.getLogger("SelezionaEntePAPage"); @@ -25,7 +28,7 @@ public class SelezionaEntePAPage extends BasePage { @FindBy(id = "search") WebElement comuneSearchField; - + @Autowired public SelezionaEntePAPage(WebDriver driver) { super(driver); } diff --git a/src/main/java/it/pn/frontend/e2e/section/CookiesSection.java b/src/main/java/it/pn/frontend/e2e/section/CookiesSection.java index 257af209a..1c8a08f68 100644 --- a/src/main/java/it/pn/frontend/e2e/section/CookiesSection.java +++ b/src/main/java/it/pn/frontend/e2e/section/CookiesSection.java @@ -11,6 +11,7 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @Component @@ -23,6 +24,7 @@ public class CookiesSection extends BasePage { @FindBy(xpath = "//button[@aria-label='Chiudi']") WebElement chiudiPagamentoPopupButton; + @Autowired public CookiesSection(WebDriver driver) { super(driver); } diff --git a/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/HeaderPFSection.java b/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/HeaderPFSection.java index 0a7083037..7d7af4000 100644 --- a/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/HeaderPFSection.java +++ b/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/HeaderPFSection.java @@ -11,9 +11,12 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; import java.util.List; +@Component public class HeaderPFSection extends BasePage { private static final Logger logger = LoggerFactory.getLogger("HeaderPFSection"); @@ -27,6 +30,7 @@ public class HeaderPFSection extends BasePage { @FindBy(xpath = "//ul[@role='menu']//li") List menuProfileItems; + @Autowired public HeaderPFSection(WebDriver driver) { super(driver); } diff --git a/src/main/java/it/pn/frontend/e2e/section/mittente/AllegatiPASection.java b/src/main/java/it/pn/frontend/e2e/section/mittente/AllegatiPASection.java index c1e240c19..d78a60447 100644 --- a/src/main/java/it/pn/frontend/e2e/section/mittente/AllegatiPASection.java +++ b/src/main/java/it/pn/frontend/e2e/section/mittente/AllegatiPASection.java @@ -10,9 +10,12 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; import java.util.List; +@Component public class AllegatiPASection extends BasePage { private static final Logger logger = LoggerFactory.getLogger("AllegatiSection"); @@ -33,6 +36,7 @@ public class AllegatiPASection extends BasePage { @FindBy(id = "step-submit") WebElement inviaButton; + @Autowired public AllegatiPASection(WebDriver driver) { super(driver); } diff --git a/src/main/java/it/pn/frontend/e2e/section/mittente/DestinatarioPASection.java b/src/main/java/it/pn/frontend/e2e/section/mittente/DestinatarioPASection.java index a55c478ae..fb2f83323 100644 --- a/src/main/java/it/pn/frontend/e2e/section/mittente/DestinatarioPASection.java +++ b/src/main/java/it/pn/frontend/e2e/section/mittente/DestinatarioPASection.java @@ -7,10 +7,13 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; import java.util.List; import java.util.Map; +@Component public class DestinatarioPASection extends BasePage { private static final Logger logger = LoggerFactory.getLogger("DestinatarioPASection"); @@ -79,6 +82,7 @@ public class DestinatarioPASection extends BasePage { @FindBy(id = "add-digital-domicile") WebElement checkDomicilioDigitale; + @Autowired public DestinatarioPASection(WebDriver driver) { super(driver); } diff --git a/src/main/java/it/pn/frontend/e2e/section/mittente/DettaglioNotificaMittenteSection.java b/src/main/java/it/pn/frontend/e2e/section/mittente/DettaglioNotificaMittenteSection.java index 5aef2f03d..6994062c0 100644 --- a/src/main/java/it/pn/frontend/e2e/section/mittente/DettaglioNotificaMittenteSection.java +++ b/src/main/java/it/pn/frontend/e2e/section/mittente/DettaglioNotificaMittenteSection.java @@ -11,6 +11,8 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; import java.io.File; import java.io.IOException; @@ -21,6 +23,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; +@Component public class DettaglioNotificaMittenteSection extends BasePage { private static final Logger logger = LoggerFactory.getLogger("DettaglioNotificaSection"); @@ -66,6 +69,7 @@ public class DettaglioNotificaMittenteSection extends BasePage { private int numeriStatiNotifica; + @Autowired public DettaglioNotificaMittenteSection(WebDriver driver) { super(driver); } diff --git a/src/main/java/it/pn/frontend/e2e/section/mittente/HeaderPASection.java b/src/main/java/it/pn/frontend/e2e/section/mittente/HeaderPASection.java index 3ba397ded..07f7e7a23 100644 --- a/src/main/java/it/pn/frontend/e2e/section/mittente/HeaderPASection.java +++ b/src/main/java/it/pn/frontend/e2e/section/mittente/HeaderPASection.java @@ -10,7 +10,10 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +@Component public class HeaderPASection extends BasePage { private static final Logger logger = LoggerFactory.getLogger("HeaderPASection"); @@ -18,6 +21,7 @@ public class HeaderPASection extends BasePage { @FindBy(xpath = "//button[contains(text(),'Esci')]") WebElement esciButton; + @Autowired public HeaderPASection(WebDriver driver) { super(driver); } diff --git a/src/main/java/it/pn/frontend/e2e/section/mittente/InformazioniPreliminariPASection.java b/src/main/java/it/pn/frontend/e2e/section/mittente/InformazioniPreliminariPASection.java index 50e624063..8df1f3ca4 100644 --- a/src/main/java/it/pn/frontend/e2e/section/mittente/InformazioniPreliminariPASection.java +++ b/src/main/java/it/pn/frontend/e2e/section/mittente/InformazioniPreliminariPASection.java @@ -13,9 +13,11 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; import java.util.Map; +@Component public class InformazioniPreliminariPASection extends BasePage { private static final Logger logger = LoggerFactory.getLogger("InformazioniPreliminariPASection"); @@ -44,6 +46,7 @@ public class InformazioniPreliminariPASection extends BasePage { @Autowired private WebDriverConfig webDriverConfig; + @Autowired public InformazioniPreliminariPASection(WebDriver driver) { super(driver); } diff --git a/src/main/java/it/pn/frontend/e2e/utility/DownloadFile.java b/src/main/java/it/pn/frontend/e2e/utility/DownloadFile.java index 35efb1588..89304c8ab 100644 --- a/src/main/java/it/pn/frontend/e2e/utility/DownloadFile.java +++ b/src/main/java/it/pn/frontend/e2e/utility/DownloadFile.java @@ -13,6 +13,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; import java.io.*; import java.net.HttpURLConnection; @@ -30,6 +31,7 @@ * * */ +@Component public class DownloadFile extends BasePage { private static final Logger logger = LoggerFactory.getLogger("DownloadFile"); @@ -37,6 +39,7 @@ public class DownloadFile extends BasePage { @Autowired private WebDriverConfig webDriverConfig; + @Autowired public DownloadFile(WebDriver driver) { super(driver); } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java index 629318ca6..e2479810e 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java @@ -1,15 +1,26 @@ package it.pn.frontend.e2e.stepDefinitions; import io.cucumber.spring.CucumberContextConfiguration; +import it.pn.frontend.e2e.common.DettaglioNotificaSection; import it.pn.frontend.e2e.config.BearerTokenConfig; import it.pn.frontend.e2e.config.UserPasswordConfig; import it.pn.frontend.e2e.config.WebDriverConfig; import it.pn.frontend.e2e.listeners.LoggerStartupListener; import it.pn.frontend.e2e.listeners.NetWorkInfo; -import it.pn.frontend.e2e.pages.destinatario.personaGiuridica.AccediAreaRiservataPGPage; +import it.pn.frontend.e2e.pages.destinatario.DestinatarioPage; +import it.pn.frontend.e2e.pages.destinatario.personaFisica.*; +import it.pn.frontend.e2e.pages.destinatario.personaGiuridica.*; +import it.pn.frontend.e2e.pages.mittente.*; +import it.pn.frontend.e2e.section.CookiesSection; +import it.pn.frontend.e2e.section.destinatario.personaFisica.HeaderPFSection; import it.pn.frontend.e2e.section.destinatario.personaGiuridica.HeaderPGSection; +import it.pn.frontend.e2e.section.mittente.*; +import it.pn.frontend.e2e.stepDefinitions.destinatario.personaFisica.LoginPersonaFisicaPagoPA; +import it.pn.frontend.e2e.stepDefinitions.destinatario.personaGiuridica.DisserviziAppPGTest; +import it.pn.frontend.e2e.stepDefinitions.mittente.NotificaMittentePagoPATest; import it.pn.frontend.e2e.utility.CookieConfig; import it.pn.frontend.e2e.utility.DataPopulation; +import it.pn.frontend.e2e.utility.DownloadFile; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.scheduling.annotation.EnableScheduling; @@ -25,7 +36,41 @@ UserPasswordConfig.class, DataPopulation.class, HeaderPGSection.class, - AccediAreaRiservataPGPage.class + AccediAreaRiservataPGPage.class, + DisserviziAppPage.class, + PiattaformaNotifichePGPAPage.class, + DownloadFile.class, + AccediAPiattaformaNotifichePage.class, + DisserviziAppPAPage.class, + PiattaformaNotifichePage.class, + DettaglioNotificaMittenteSection.class, + DettaglioNotificaSection.class, + AllegatiPASection.class, + DestinatarioPASection.class, + InformazioniPreliminariPASection.class, + NotificaMittentePagoPATest.class, + LoginPersonaFisicaPagoPA.class, + ScegliSpidPAPage.class, + LoginPAPage.class, + CookiesSection.class, + AreaRiservataPAPage.class, + NotifichePFPage.class, + HeaderPFSection.class, + SelezionaImpresaPage.class, + ScegliSpidPFPage.class, + LoginSpidPFPage.class, + ConfermaDatiSpidPFPage.class, + HomePagePG.class, + ScegliSpidPGPage.class, + LoginPGPagoPAPage.class, + AutorizzaInvioDatiPGPage.class, + DestinatarioPage.class, + HeaderPASection.class, + PreAccediAreaRiservataPAPage.class, + AutorizziInvioDatiPAPage.class, + SelezionaEntePAPage.class, + AcccediAreaRiservataPAPage.class + }) @EnableScheduling diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java index 44c951bf1..05931b053 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java @@ -14,16 +14,20 @@ import it.pn.frontend.e2e.pages.destinatario.personaFisica.*; import it.pn.frontend.e2e.section.CookiesSection; import it.pn.frontend.e2e.section.destinatario.personaFisica.HeaderPFSection; -import it.pn.frontend.e2e.utility.CookieConfig; import it.pn.frontend.e2e.utility.DataPopulation; import it.pn.frontend.e2e.utility.WebTool; import org.junit.jupiter.api.Assertions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; +import org.springframework.context.annotation.Primary; +import org.springframework.stereotype.Component; + import java.util.Map; import java.util.concurrent.TimeUnit; +@Primary public class LoginPersonaFisicaPagoPA { private static final Logger logger = LoggerFactory.getLogger("LoginPersonaFisicaPagoPA"); @@ -31,19 +35,37 @@ public class LoginPersonaFisicaPagoPA { private Map urlPersonaFisica; @Autowired + @Lazy private HooksNew hooks; @Autowired + @Lazy private WebDriverConfig webDriverConfig; - //TODO Parametrizzare private Map datiDelegato; + @Autowired + private DataPopulation dataPopulation; + + @Autowired + private HeaderPFSection headerPFSection; + + @Autowired + private NotifichePFPage notifichePFPage; + + @Autowired + private ScegliSpidPFPage scegliSpidPFPage; + + @Autowired + private LoginSpidPFPage loginSpidPFPage; + @Autowired + private ConfermaDatiSpidPFPage confermaDatiSpidPFPage; + @Autowired + private AccediAPiattaformaNotifichePage accediAPiattaformaNotifichePage; @Given("Login Page persona fisica {string} viene visualizzata") public void loginPageDestinatarioVieneVisualizzata(String datipersonaFisica) { - DataPopulation dataPopulation = new DataPopulation(); //TODO Parametrizzzare..........eliminare la gestione file yaml.. this.datiPersonaFisica = dataPopulation.readDataPopulation(datipersonaFisica + ".yaml"); // String variabileAmbiente = System.getProperty("environment"); @@ -67,8 +89,6 @@ public void loginPageDestinatarioVieneVisualizzataConUrl() { @Given("PF - Si effettua la login tramite token exchange come {string}, e viene visualizzata la dashboard") public void loginMittenteConTokenExchange(String personaFisica) { - // DataPopulation dataPopulation = new DataPopulation(); - //String environment = System.getProperty("environment"); String environment = webDriverConfig.getEnvironment(); String token = ""; switch (environment) { @@ -93,9 +113,7 @@ public void loginMittenteConTokenExchange(String personaFisica) { WebTool.waitTime(10); // Si visualizza la dashboard e si verifica che gli elementi base siano presenti (header e title della pagina) - HeaderPFSection headerPFSection = new HeaderPFSection(this.hooks.getDriver()); headerPFSection.waitLoadHeaderDESection(); - NotifichePFPage notifichePFPage = new NotifichePFPage(this.hooks.getDriver()); notifichePFPage.waitLoadNotificheDEPage(); } @@ -103,7 +121,6 @@ public void loginMittenteConTokenExchange(String personaFisica) { @When("Login con persona fisica {string}") public void loginConDestinatario(String datipersonaFisica) { logger.info("user persona fisica : " + webDriverConfig.getUserCesare()); - DataPopulation dataPopulation = new DataPopulation(); this.datiPersonaFisica = dataPopulation.readDataPopulation(datipersonaFisica + ".yaml"); logger.info("cookies start"); @@ -121,17 +138,14 @@ public void loginConDestinatario(String datipersonaFisica) { comeVuoiAccederePage.waitLoadComeVuoiAccederePage(); comeVuoiAccederePage.selezionaSpidButton(); - ScegliSpidPFPage scegliSpidPFPage = new ScegliSpidPFPage(this.hooks.getDriver()); scegliSpidPFPage.waitLoadScegliSpidDEPage(); scegliSpidPFPage.selezionareTestButton(); - LoginSpidPFPage loginSpidPFPage = new LoginSpidPFPage(this.hooks.getDriver()); loginSpidPFPage.waitLoadLoginSpidDEPage(); loginSpidPFPage.inserisciUtente(webDriverConfig.getUserCesare()); loginSpidPFPage.inserisciPassword(webDriverConfig.getPwdCesare()); loginSpidPFPage.selezionaEntraConSpidButton(); - ConfermaDatiSpidPFPage confermaDatiSpidPFPage = new ConfermaDatiSpidPFPage(this.hooks.getDriver()); confermaDatiSpidPFPage.waitLoadConfermaDatiSpidDEPage(); String nomeUtenteLetto = confermaDatiSpidPFPage.leggiNomeUtente(); if (nomeUtenteLetto.equals(this.datiPersonaFisica.get("name").toString())) { @@ -156,7 +170,6 @@ public void loginConDestinatario(String datipersonaFisica) { logger.error("numero fiscale letto : " + numeroFiscaleLetto + " non uguale a : " + this.datiPersonaFisica.get("fiscalNumber").toString()); Assertions.fail("numero fiscale letto : " + numeroFiscaleLetto + " non uguale a : " + this.datiPersonaFisica.get("fiscalNumber").toString()); } - HeaderPFSection headerPFSection = new HeaderPFSection(this.hooks.getDriver()); confermaDatiSpidPFPage.selezionaConfermaButton(); headerPFSection.waitUrlToken(); } @@ -174,9 +187,8 @@ public void loginConDestinatario(Map datiPF) { } } logger.info("cookies end"); - AccediAPiattaformaNotifichePage accediApiattaformaNotifichePage = new AccediAPiattaformaNotifichePage(this.hooks.getDriver()); - accediApiattaformaNotifichePage.waitLoadAccediAPiattaformaNotifichePage(); - accediApiattaformaNotifichePage.selezionaAccediButton(); + accediAPiattaformaNotifichePage.waitLoadAccediAPiattaformaNotifichePage(); + accediAPiattaformaNotifichePage.selezionaAccediButton(); if (!webDriverConfig.getCookieConfig().isCookieEnabled()) { cookiesPage = new CookiesSection(this.hooks.getDriver()); if (cookiesPage.waitLoadCookiesPage()) { @@ -184,17 +196,14 @@ public void loginConDestinatario(Map datiPF) { } } - ScegliSpidPFPage scegliSpidPFPage = new ScegliSpidPFPage(this.hooks.getDriver()); scegliSpidPFPage.waitLoadScegliSpidDEPage(); scegliSpidPFPage.selezionareTestButton(); - LoginSpidPFPage loginSpidPFPage = new LoginSpidPFPage(this.hooks.getDriver()); loginSpidPFPage.waitLoadLoginSpidDEPage(); loginSpidPFPage.inserisciUtente(webDriverConfig.getUserCesare()); loginSpidPFPage.inserisciPassword(webDriverConfig.getPwdCesare()); loginSpidPFPage.selezionaEntraConSpidButton(); - ConfermaDatiSpidPFPage confermaDatiSpidPFPage = new ConfermaDatiSpidPFPage(this.hooks.getDriver()); confermaDatiSpidPFPage.waitLoadConfermaDatiSpidDEPage(); String nomeUtenteLetto = confermaDatiSpidPFPage.leggiNomeUtente(); if (nomeUtenteLetto.equals(datiPF.get("name"))) { @@ -221,7 +230,6 @@ public void loginConDestinatario(Map datiPF) { Assertions.fail("numero fiscale letto : " + numeroFiscaleLetto + " non uguale a : " + datiPF.get("fiscalNumber")); } - HeaderPFSection headerPFSection = new HeaderPFSection(this.hooks.getDriver()); confermaDatiSpidPFPage.selezionaConfermaButton(); headerPFSection.waitUrlToken(); WebTool.waitTime(2); @@ -256,7 +264,6 @@ public void homePageDestinatarioVieneVisualizzataCorrettamente() { } else { logger.warn("Http token persona fisica not found"); } - HeaderPFSection headerPFSection = new HeaderPFSection(this.hooks.getDriver()); headerPFSection.waitLoadHeaderDESection(); if (!webDriverConfig.getCookieConfig().isCookieEnabled()) { @@ -266,7 +273,6 @@ public void homePageDestinatarioVieneVisualizzataCorrettamente() { } } - NotifichePFPage notifichePFPage = new NotifichePFPage(this.hooks.getDriver()); notifichePFPage.waitLoadNotificheDEPage(); if (notifichePFPage.verificaPresenzaCodiceIunTextField()) { logger.info("text field codice iun presente"); @@ -307,7 +313,6 @@ private int getCodiceRispostaChiamataApi(String urlChiamata) { @And("Logout da portale persona fisica") public void logoutDaPortaleDestinatario() { - HeaderPFSection headerPFSection = new HeaderPFSection(this.hooks.getDriver()); headerPFSection.waitLoadHeaderDESection(); headerPFSection.selezionaProfiloUtenteMenu(); headerPFSection.selezionaVoceEsci(); diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/DisserviziAppPGTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/DisserviziAppPGTest.java index 53ff8ad24..36c887c91 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/DisserviziAppPGTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/DisserviziAppPGTest.java @@ -2,30 +2,42 @@ import io.cucumber.java.en.And; import io.cucumber.java.en.Given; -import it.pn.frontend.e2e.listeners.Hooks; +import it.pn.frontend.e2e.listeners.HooksNew; import it.pn.frontend.e2e.pages.destinatario.personaGiuridica.DisserviziAppPage; import it.pn.frontend.e2e.pages.destinatario.personaGiuridica.PiattaformaNotifichePGPAPage; import it.pn.frontend.e2e.stepDefinitions.common.BackgroundTest; import it.pn.frontend.e2e.utility.WebTool; - +import lombok.Setter; import org.junit.jupiter.api.Assertions; import org.openqa.selenium.WebDriver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import java.util.Set; + public class DisserviziAppPGTest { - private final WebDriver driver = Hooks.driver; private final Logger logger = LoggerFactory.getLogger("DisserviziAppPGTest"); - private final DisserviziAppPage disserviziAppPage = new DisserviziAppPage(this.driver); + @Setter + private WebDriver driver; + @Autowired + private DisserviziAppPage disserviziAppPage; + @Autowired + private PiattaformaNotifichePGPAPage piattaformaNotifichePGPAPage; + + + @Autowired + public DisserviziAppPGTest(WebDriver driver) { + this.driver = driver; + } @Given("Nella dashboard persona giuridica clicca su disservizi app") public void nellaDashboardPersonaGiuridicaCliccaSuDisserviziApp() { - PiattaformaNotifichePGPAPage piattaformaNotifichePGPAPage = new PiattaformaNotifichePGPAPage(this.driver); + logger.info("click sul bottone disservisi nel menu laterale"); piattaformaNotifichePGPAPage.clickOnButtonEnterIntoDisservizi(); } @@ -76,4 +88,6 @@ public void siVerificaAvvenutoDisservizioInPaginaStatoPiattaforma() { disserviziAppPage.waitLoadStatoDellaPiattaformaPage(); } + + } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java index b7a356c3c..4a6402e75 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java @@ -26,46 +26,54 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; +import org.springframework.context.annotation.Primary; +import org.springframework.stereotype.Component; import java.util.HashMap; import java.util.Map; import java.util.concurrent.TimeUnit; //@Component inserire in un secondo momenti +@Primary public class LoginPGPagoPATest { private final Logger logger = LoggerFactory.getLogger(LoginPGPagoPATest.class); + private Map datiPersonaGiuridica = new HashMap<>(); + private Map urlPersonaGiuridica; - /** @Autowired - private HeaderPGSection headerPGSection; - + private HeaderPGSection headerPGSection; @Autowired - private AccediAreaRiservataPGPage accediAreaRiservataPGPage; + private AccediAreaRiservataPGPage accediAreaRiservataPGPage; + @Autowired + private WebDriverConfig webDriverConfig; + @Autowired + private HooksNew hooks; + //TODO da rimuovere anche il discorso dei file yaml.. @Autowired - private DataPopulation dataPopulation; + private DataPopulation dataPopulation; @Autowired - private List netWorkInfos; + private SelezionaImpresaPage selezionaImpresaPage; - **/ @Autowired - private HeaderPGSection headerPGSection; + private PiattaformaNotifichePGPAPage piattaformaNotifichePGPAPage; + @Autowired - private AccediAreaRiservataPGPage accediAreaRiservataPGPage; + private HomePagePG homePagePG; - private Map datiPersonaGiuridica = new HashMap<>(); - private Map urlPersonaGiuridica; + @Autowired + private ScegliSpidPGPage scegliSpidPGPage; @Autowired - private WebDriverConfig webDriverConfig; + private LoginPGPagoPAPage loginPGPagoPAPage; + @Autowired - private HooksNew hooks; + private AutorizzaInvioDatiPGPage autorizzaInvioDatiPGPage; - //TODO da rimuovere anche il discorso dei file yaml.. @Autowired - private DataPopulation dataPopulation; + private DestinatarioPage destinatarioPage; @Given("Login Page persona giuridica viene visualizzata") @@ -105,18 +113,17 @@ public void loginMittenteConTokenExchange(String personaGiuridica) { logger.info("Login effettuato con successo"); WebTool.waitTime(10); - PiattaformaNotifichePGPAPage notifichePGPage = new PiattaformaNotifichePGPAPage(hooks.getDriver()); headerPGSection.waitLoadHeaderPGPage(); if (personaGiuridica.equalsIgnoreCase("delegante")) { Map personaGiuridicaFile = dataPopulation.readDataPopulation("personaGiuridica.yaml"); - notifichePGPage.waitLoadPiattaformaNotificaPage(personaGiuridicaFile.get("ragioneSociale").toString()); + piattaformaNotifichePGPAPage.waitLoadPiattaformaNotificaPage(personaGiuridicaFile.get("ragioneSociale").toString()); } else if (personaGiuridica.equalsIgnoreCase("baldassarre")) { - notifichePGPage.waitLoadPiattaformaNotificaPage(webDriverConfig.getRagioneSocialeBaldassarre()); + piattaformaNotifichePGPAPage.waitLoadPiattaformaNotificaPage(webDriverConfig.getRagioneSocialeBaldassarre()); } else { Map personaGiuridicaFile = dataPopulation.readDataPopulation("delegatoPG.yaml"); - notifichePGPage.waitLoadPiattaformaNotificaPage(personaGiuridicaFile.get("ragioneSociale").toString()); + piattaformaNotifichePGPAPage.waitLoadPiattaformaNotificaPage(personaGiuridicaFile.get("ragioneSociale").toString()); } } @@ -160,9 +167,9 @@ public void loginPortalePersonaGiuridicaTramiteRequestMethod() { } } - SelezionaImpresaPage impresaPage = new SelezionaImpresaPage(hooks.getDriver()); - impresaPage.clickSuImpresa(this.datiPersonaGiuridica.get("ragioneSociale").toString()); - impresaPage.clickAccediButton(); + + selezionaImpresaPage.clickSuImpresa(this.datiPersonaGiuridica.get("ragioneSociale").toString()); + selezionaImpresaPage.clickAccediButton(); } private void readUrlPortaleMittente(String user, String password) { @@ -239,7 +246,6 @@ private void readUrlPortaleMittente(String user, String password) { @Then("Home page persona giuridica viene visualizzata correttamente") public void homePagePersonaGiuridicaVieneVisualizzataCorrettamente() { headerPGSection.waitLoadHeaderPGPage(); - HomePagePG homePagePG = new HomePagePG(hooks.getDriver()); homePagePG.waitLoadHomePagePGPage(); } @@ -259,21 +265,17 @@ public void loginConPersonaGiuridica(Map datiPG) { accediAreaRiservataPGPage.waitLoadAccediAreaRiservataPGPage(); accediAreaRiservataPGPage.clickSpidButton(); - ScegliSpidPGPage scegliSpidPGPage = new ScegliSpidPGPage(hooks.getDriver()); scegliSpidPGPage.clickTestButton(); - LoginPGPagoPAPage loginPGPagoPAPage = new LoginPGPagoPAPage(hooks.getDriver()); loginPGPagoPAPage.waitLoadLoginPGPage(); loginPGPagoPAPage.insertUsername(webDriverConfig.getUserDante()); loginPGPagoPAPage.insertPassword(webDriverConfig.getPwdDante()); loginPGPagoPAPage.clickInviaButton(); - AutorizzaInvioDatiPGPage autorizzaInvioDatiPGPage = new AutorizzaInvioDatiPGPage(hooks.getDriver()); autorizzaInvioDatiPGPage.waitLoadAutorizzaInvioDatiPGPage(); autorizzaInvioDatiPGPage.clickInviaButton(); - SelezionaImpresaPage selezionaImpresaPage = new SelezionaImpresaPage(hooks.getDriver()); selezionaImpresaPage.waitLoadSelezionaImpresaPage(); if(selezionaImpresaPage.clickSuImpresa(datiPG.get("ragioneSociale"))){ logger.info("click su impresa"); @@ -333,9 +335,8 @@ public void loginPortalePersonaGiuridicaTramiteRequestMethod(String dpFile) { } - SelezionaImpresaPage impresaPage = new SelezionaImpresaPage(hooks.getDriver()); - impresaPage.clickSuImpresa(this.datiPersonaGiuridica.get("ragioneSociale").toString()); - impresaPage.clickAccediButton(); + selezionaImpresaPage.clickSuImpresa(this.datiPersonaGiuridica.get("ragioneSociale").toString()); + selezionaImpresaPage.clickAccediButton(); } @When("Login portale persona giuridica tramite token exchange {string}") @@ -382,7 +383,6 @@ public String getTokenExchangePGFromFile(String personaGiuridica) { @And("Si clicca su prodotto {string}") public void siCliccaSuProdotto(String xpath) { - DestinatarioPage destinatarioPage = new DestinatarioPage(hooks.getDriver()); destinatarioPage.clickProdotto(xpath); } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DashboardMittentePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DashboardMittentePagoPATest.java index 2330b61e9..f4e12eb00 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DashboardMittentePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DashboardMittentePagoPATest.java @@ -1,44 +1,18 @@ package it.pn.frontend.e2e.stepDefinitions.mittente; -import com.google.common.base.CharMatcher; -import com.google.common.base.Splitter; + import io.cucumber.java.en.And; import io.cucumber.java.en.Then; import io.cucumber.java.en.When; -import it.pn.frontend.e2e.api.mittente.AccettazioneRichiestaNotifica; import it.pn.frontend.e2e.listeners.Hooks; -import it.pn.frontend.e2e.listeners.NetWorkInfo; -import it.pn.frontend.e2e.model.enums.AppPortal; -import it.pn.frontend.e2e.model.singleton.NotificationSingleton; -import it.pn.frontend.e2e.pages.mittente.AreaRiservataPAPage; import it.pn.frontend.e2e.pages.mittente.DashboardPage; -import it.pn.frontend.e2e.pages.mittente.InvioNotifichePAPage; import it.pn.frontend.e2e.pages.mittente.PiattaformaNotifichePage; -import it.pn.frontend.e2e.section.CookiesSection; -import it.pn.frontend.e2e.section.mittente.*; -import it.pn.frontend.e2e.stepDefinitions.common.BackgroundTest; -import it.pn.frontend.e2e.stepDefinitions.destinatario.personaFisica.LoginPersonaFisicaPagoPA; -import it.pn.frontend.e2e.stepDefinitions.destinatario.personaGiuridica.LoginPGPagoPATest; -import it.pn.frontend.e2e.utility.CookieConfig; -import it.pn.frontend.e2e.utility.DataPopulation; -import it.pn.frontend.e2e.utility.WebTool; - import org.junit.jupiter.api.Assertions; import org.openqa.selenium.WebDriver; -import org.openqa.selenium.WebElement; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.awt.*; -import java.io.File; -import java.io.IOException; -import java.text.DateFormat; -import java.text.SimpleDateFormat; -import java.util.*; -import java.util.concurrent.TimeUnit; - -import static org.apache.commons.lang3.StringUtils.isNumeric; -import static org.apache.commons.lang3.StringUtils.substring; public class DashboardMittentePagoPATest { diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DisserviziAppPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DisserviziAppPATest.java index f8d60971a..23bde16d2 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DisserviziAppPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DisserviziAppPATest.java @@ -4,18 +4,16 @@ import io.cucumber.java.en.Then; import io.cucumber.java.en.When; import it.pn.frontend.e2e.config.WebDriverConfig; -import it.pn.frontend.e2e.listeners.Hooks; import it.pn.frontend.e2e.pages.destinatario.personaFisica.AccediAPiattaformaNotifichePage; import it.pn.frontend.e2e.pages.mittente.DisserviziAppPAPage; import it.pn.frontend.e2e.utility.DownloadFile; import it.pn.frontend.e2e.utility.WebTool; - +import lombok.Setter; import org.junit.jupiter.api.Assertions; -import org.openqa.selenium.WebDriver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; +import org.springframework.beans.factory.annotation.Value; import java.io.File; import java.io.IOException; @@ -25,16 +23,15 @@ *Iniezione delle Dipendenze con @Autowired: Abbiamo rimosso la creazione manuale delle istanze e invece abbiamo iniettato le dipendenze WebDriver, WebDriverConfig, AccediAPiattaformaNotifichePage, e DisserviziAppPAPage tramite @Autowired. * Integrazione DownloadFile e WebTool: Poiché DownloadFile e WebTool vengono utilizzati internamente senza dipendenze da Spring, non è necessario modificarli; il loro uso rimane invariato. * Annotazione @Component: La classe DisserviziAppPATest è stata annotata come componente Spring per consentire l'iniezione automatica delle dipendenze. */ -@Component + public class DisserviziAppPATest { private static final Logger logger = LoggerFactory.getLogger(DisserviziAppPATest.class); - @Autowired - private WebDriverConfig webDriverConfig; - - @Autowired - private WebDriver driver; + @Value("${headless}") + private String headlessLoc; + @Value("${apiBaseUrl}") + private String baseUrl; @Autowired private AccediAPiattaformaNotifichePage notifichePage; @@ -42,6 +39,9 @@ public class DisserviziAppPATest { @Autowired private DisserviziAppPAPage disserviziAppPAPage; + @Autowired + private DownloadFile downloadFile; + @When("Nella pagina Piattaforma Notifiche selezionare la voce 'stato della piattaforma'") public void nellaPaginaPiattaformaNotificheSelezionareLaVoceStatoDellaPiattaforma() { logger.info("Nella pagina Piattaforma Notifiche selezionare la voce 'stato della piattaforma'"); @@ -81,18 +81,18 @@ public void siVisualizzaUnRecordInElencoRelativoAdUnDisservizioRisolto(String ti @And("Si scarica attestazione opponibile, e si controlla che il download sia avvenuto") public void siScaricaAttestazioneOpponibileDisservizi() throws IOException { logger.info("Si scarica attestazione opponibile"); - DownloadFile downloadFile = new DownloadFile(this.driver); + String workingDirectory = System.getProperty("user.dir"); File pathCartella = new File(workingDirectory + "/src/test/resources/dataPopulation/downloadFileNotifica/destinatario/personaGiuridica"); - boolean headless = webDriverConfig.getHeadless().equalsIgnoreCase("true"); + boolean headless = headlessLoc.equalsIgnoreCase("true"); if (!downloadFile.controlloEsistenzaCartella(pathCartella)) { pathCartella.mkdirs(); } disserviziAppPAPage.clickLinkAttestazioniOpponibileDisservizi(0); WebTool.waitTime(5); String legalFactId = downloadFile.getLegalFactId(); - String urlFileAttestazioneOpponibile = webDriverConfig.getBaseUrl() + "downtime/legal-facts/" + legalFactId; + String urlFileAttestazioneOpponibile = baseUrl + "downtime/legal-facts/" + legalFactId; File file = new File(workingDirectory + "/src/test/resources/dataPopulation/downloadFileNotifica/destinatario/notificaN" + 0 + ".pdf"); downloadFile.downloadAttestazioneDisservizi(urlFileAttestazioneOpponibile, file, headless); diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java index c49a3e038..c90e6b910 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java @@ -6,6 +6,7 @@ import it.pn.frontend.e2e.common.DettaglioNotificaSection; import it.pn.frontend.e2e.config.WebDriverConfig; import it.pn.frontend.e2e.listeners.Hooks; +import it.pn.frontend.e2e.listeners.HooksNew; import it.pn.frontend.e2e.pages.mittente.DisserviziAppPAPage; import it.pn.frontend.e2e.pages.mittente.PiattaformaNotifichePage; import it.pn.frontend.e2e.section.mittente.DettaglioNotificaMittenteSection; @@ -29,26 +30,39 @@ public class DownloadFileMittentePagoPATest { private static final Logger logger = LoggerFactory.getLogger("DownloadFileMittentePagoPATest"); - private final WebDriver driver = Hooks.driver; private Map datiNotifica = new HashMap<>(); - private DownloadFile downloadFile; + + @Autowired + private DataPopulation dataPopulation; + @Autowired + private DownloadFile downloadFile; + @Autowired + private HooksNew hooks; + @Autowired + private DisserviziAppPAPage disserviziAppPAPage; @Autowired private WebDriverConfig webDriverConfig; + @Autowired + private PiattaformaNotifichePage piattaformaNotifichePage; + @Autowired + private DettaglioNotificaMittenteSection dettaglioNotificaMittenteSection; + @Autowired + private DettaglioNotificaSection dettaglioNotificaSection; + + + @When("Nella pagina Piattaforma Notifiche si clicca sulla notifica restituita") public void clickNotificaRestituita() { logger.info("Si clicca sulla notifica restituita"); logger.info("GENERATED IUN: {}", System.getProperty("IUN")); - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(driver); piattaformaNotifichePage.selezionaNotificaIUN(System.getProperty("IUN")); } @And("Si visualizza correttamente la sezione Dettaglio Notifica") public void siVisualizzaCorrettamenteLaSezioneDettaglioNotifica() { logger.info("Viene caricato correttamente la sezione Dettaglio Notifica"); - - DettaglioNotificaMittenteSection dettaglioNotificaMittenteSection = new DettaglioNotificaMittenteSection(this.driver); dettaglioNotificaMittenteSection.waitLoadDettaglioNotificaSection(); } @@ -56,13 +70,9 @@ public void siVisualizzaCorrettamenteLaSezioneDettaglioNotifica() { public void downloadECheckFile() { logger.info("Si scaricano tutti i file all'interno della notifica"); - DettaglioNotificaMittenteSection dettaglioNotificaMittenteSection = new DettaglioNotificaMittenteSection(this.driver); - DettaglioNotificaSection dettaglioNotificaSection = new DettaglioNotificaSection(this.driver); - DataPopulation dataPopulation = new DataPopulation(); - String workingDirectory = System.getProperty("user.dir"); File pathCartella = new File(workingDirectory + "/src/test/resources/dataPopulation/downloadFileNotifica/mittente"); - downloadFile = new DownloadFile(this.driver); + boolean headless = webDriverConfig.getHeadless().equalsIgnoreCase("true"); if (!downloadFile.controlloEsistenzaCartella(pathCartella)) { pathCartella.mkdirs(); @@ -162,13 +172,8 @@ public void downloadECheckFile() { public void downloadDocumentiAllegati() { logger.info("Si scaricano solo i documenti Allegati all'interno della notifica"); - DettaglioNotificaMittenteSection dettaglioNotificaMittenteSection = new DettaglioNotificaMittenteSection(this.driver); - DettaglioNotificaSection dettaglioNotificaSection = new DettaglioNotificaSection(this.driver); - DataPopulation dataPopulation = new DataPopulation(); - String workingDirectory = System.getProperty("user.dir"); File pathCartella = new File(workingDirectory + "/src/test/resources/dataPopulation/downloadFileNotifica/mittente"); - DownloadFile downloadFile = new DownloadFile(this.driver); boolean headless = webDriverConfig.getHeadless().equalsIgnoreCase("true"); if (!downloadFile.controlloEsistenzaCartella(pathCartella)) { pathCartella.mkdirs(); @@ -212,34 +217,29 @@ public void downloadDocumentiAllegati() { @Then("Si clicca sul documento allegato") public void clickDocumentoAllegato() { - DettaglioNotificaMittenteSection dettaglioNotificaMittenteSection = new DettaglioNotificaMittenteSection(this.driver); dettaglioNotificaMittenteSection.clickLinkDocumentiAllegati(); - driver.navigate().back(); + hooks.getDriver().navigate().back(); } @Then("Si clicca sul documento AAR") public void clickDocumentoAAR() { - DettaglioNotificaMittenteSection dettaglioNotificaMittenteSection = new DettaglioNotificaMittenteSection(this.driver); dettaglioNotificaMittenteSection.clickLinkAvvenutaRicezione(0); - driver.navigate().back(); + hooks.getDriver().navigate().back(); } @Then("Si clicca sul documento Attestazione") public void clickDocumentoAttestazione() { - DettaglioNotificaSection dettaglioNotificaSection = new DettaglioNotificaSection(this.driver); dettaglioNotificaSection.clickLinkAttestazioniOpponibile(0); - driver.navigate().back(); + hooks.getDriver().navigate().back(); } @Then("Si verifica che il link sul documento Attestazione è cliccabile") public void toBeClickableDocumentoAttestazioneCliccable() { - DettaglioNotificaSection dettaglioNotificaSection = new DettaglioNotificaSection(this.driver); dettaglioNotificaSection.toBeClickableLinkAttestazioniOpponibile(0); } @Then("Si clicca sul documento Attestazione scaduta") public void clickDocumentoAttestazioneScaduta() { - DettaglioNotificaSection dettaglioNotificaSection = new DettaglioNotificaSection(this.driver); dettaglioNotificaSection.clickLinkAttestazioniOpponibile(0); } @@ -247,15 +247,10 @@ public void clickDocumentoAttestazioneScaduta() { public void downloadFileAAR() { logger.info("Si scaricano solo i file AAR all'interno della notifica"); - DettaglioNotificaMittenteSection dettaglioNotificaMittenteSection = new DettaglioNotificaMittenteSection(this.driver); - DettaglioNotificaSection dettaglioNotificaSection = new DettaglioNotificaSection(this.driver); - DataPopulation dataPopulation = new DataPopulation(); - String workingDirectory = System.getProperty("user.dir"); String variabileAmbiente = webDriverConfig.getEnvironment(); File pathCartella = new File(workingDirectory + "/src/test/resources/dataPopulation/downloadFileNotifica/mittente"); - DownloadFile downloadFile = new DownloadFile(this.driver); - boolean headless = System.getProperty("headless").equalsIgnoreCase("true"); + boolean headless = webDriverConfig.getHeadless().equalsIgnoreCase("true"); if (!downloadFile.controlloEsistenzaCartella(pathCartella)) { pathCartella.mkdirs(); } @@ -297,13 +292,9 @@ public void downloadFileAAR() { public void downloadAttestazioniOpponibili() { logger.info("Si scaricano solo i file per attestazioni opponibili all'interno della notifica"); - DettaglioNotificaMittenteSection dettaglioNotificaMittenteSection = new DettaglioNotificaMittenteSection(this.driver); - DettaglioNotificaSection dettaglioNotificaSection = new DettaglioNotificaSection(this.driver); - DataPopulation dataPopulation = new DataPopulation(); - String workingDirectory = System.getProperty("user.dir"); File pathCartella = new File(workingDirectory + "/src/test/resources/dataPopulation/downloadFileNotifica/mittente"); - DownloadFile downloadFile = new DownloadFile(this.driver); + boolean headless = webDriverConfig.getHeadless().equalsIgnoreCase("true"); if (!downloadFile.controlloEsistenzaCartella(pathCartella)) { pathCartella.mkdirs(); @@ -348,14 +339,10 @@ public void downloadAttestazioniOpponibili() { @And("Nella sezione Dettaglio Notifiche si seleziona il file, {string}, da scaricare") public void siSelezionanoIlFileDaScaricare(String nomeFile) { logger.info("Si cerca di scaricare il file " + nomeFile); - - DataPopulation dataPopulation = new DataPopulation(); boolean headless = webDriverConfig.getHeadless().equalsIgnoreCase("true"); this.datiNotifica = dataPopulation.readDataPopulation("datiNotifica.yaml"); - DettaglioNotificaMittenteSection dettaglioNotificaMittenteSection = new DettaglioNotificaMittenteSection(this.driver); dettaglioNotificaMittenteSection.clickLinkAttestazioneOpponibile(nomeFile); WebTool.waitTime(5); - downloadFile = new DownloadFile(this.driver); final String url = downloadFile.getUrl(webDriverConfig.getBaseUrl() + "notifications/sent/"); if (headless && url.isEmpty()) { @@ -374,8 +361,6 @@ public void siSelezionanoIlFileDaScaricare(String nomeFile) { @Then("Si controlla il testo all interno del file {string}") public void siControllaIlTestoAlSuoInterno(String nomeFile) { logger.info("Si controlla che il testo al suo interno si corretto"); - - DettaglioNotificaMittenteSection dettaglioNotificaMittenteSection = new DettaglioNotificaMittenteSection(this.driver); Map infoNotifiche = dettaglioNotificaMittenteSection.recuperoInfoNotifiche(); if (nomeFile.contains("PN_NOTIFICATION_ATTACHMENTS")) { if (dettaglioNotificaMittenteSection.controlloTestoFile(nomeFile, "A Simple PDF File")) { @@ -435,7 +420,6 @@ public void siControllaIlTestoAlSuoInterno(String nomeFile) { public void nellaPaginaPiattaformaNotificheSiRecuperaUnCodiceIUN() { logger.info("Nella pagina Piattaforma Notifiche si recupera un codice IUN"); - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(this.driver); piattaformaNotifichePage.siCambiaIlNumeroElementiVisualizzatiAttraversoIlFiltro(); piattaformaNotifichePage.waitLoadPiattaformaNotifichePAPage(); piattaformaNotifichePage.waitLoadingSpinner(); @@ -455,8 +439,6 @@ public void nellaPaginaPiattaformaNotificheSiRecuperaUnCodiceIUN() { @And("Nella pagina Piattaforma Notifiche si verifica l'esistenza della notifica con il codice IUN") public void nellaPaginaPiattaformaNotificheSiVerificaLEsistenzaDellaNotificaConIlCodiceIUN() { logger.info("Si verifica l'esistenza della notifica con il codice IUN"); - - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(this.driver); BackgroundTest backgroundTest = new BackgroundTest(); DataPopulation dataPopulation = new DataPopulation(); @@ -472,8 +454,6 @@ public void nellaPaginaPiattaformaNotificheSiVerificaLEsistenzaDellaNotificaConI public void downloadFileAttestazioneDisservizio() { logger.info("si effettua download del disservizio"); - DisserviziAppPAPage disserviziAppPAPage = new DisserviziAppPAPage(driver); - disserviziAppPAPage.downloadAttestazione(); WebTool.waitTime(3); } @@ -482,28 +462,22 @@ public void downloadFileAttestazioneDisservizio() { public void downloadFileAttestazioneDisservizio(Integer index) { logger.info("si effettua download del disservizio"); - DisserviziAppPAPage disserviziAppPAPage = new DisserviziAppPAPage(driver); - disserviziAppPAPage.downloadAttestazione(index); WebTool.waitTime(3); } @And("Nella pagina stato della piattaforma si cambia il numero elementi visualizzati attraverso il filtro") public void nellaPaginaStatoDellaPiattaformaSiCambiaIlNumeroElementiVisualizzatiAttraversoIlFiltroNumeroNotifiche() { - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(driver); piattaformaNotifichePage.siCambiaIlNumeroElementiVisualizzatiAttraversoIlFiltro(); } @And("Nella pagina stato della piattaforma si cambia pagina utilizzando una freccetta") public void nellaPaginaStatoDellaPiattaformaSiCambiaPaginaUtilizzandoUnaFreccetta() { - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(driver); piattaformaNotifichePage.siCambiaPaginaUtilizzandoUnaFrecetta(8); } @And("Si controlla che esista pop up scadenza") public void siControllaCheEsistaPopUpScadenza() { - DettaglioNotificaSection dettaglioNotificaSection = new DettaglioNotificaSection(driver); - dettaglioNotificaSection.checkMessaggioScadenzaDownload(); } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/LoginMittentePagoPA.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/LoginMittentePagoPA.java index caf127693..65446c7d8 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/LoginMittentePagoPA.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/LoginMittentePagoPA.java @@ -26,6 +26,7 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Primary; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; import org.springframework.context.annotation.Lazy; @@ -35,6 +36,7 @@ //@Component //@Scope("prototype") +@Primary public class LoginMittentePagoPA { private static final Logger logger = LoggerFactory.getLogger("LoginMittentePagoPA"); @@ -59,6 +61,37 @@ public class LoginMittentePagoPA { @Autowired private WebDriverConfig webDriverConfig; + @Autowired + private CookiesSection cookiesSection; + + @Autowired + private AcccediAreaRiservataPAPage acccediAreaRiservataPAPage; + + @Autowired + private ScegliSpidPAPage scegliSpidPAPage; + + @Autowired + private LoginPAPage loginPAPage; + + @Autowired + private HeaderPASection headerPASection; + + @Autowired + private PiattaformaNotifichePage piattaformaNotifichePage; + + @Autowired + private PreAccediAreaRiservataPAPage preAccediAreaRiservataPAPage; + + @Autowired + private AutorizziInvioDatiPAPage autorizziInvioDatiPAPage; + + @Autowired + private SelezionaEntePAPage selezionaEntePAPage; + + @Autowired + private AreaRiservataPAPage areaRiservataPAPage; + + @Given("Login Page mittente {string} viene visualizzata") public void loginPageMittenteVieneVisualizzata(String datiMittenteFile) { @@ -114,9 +147,7 @@ public void loginMittenteConTokenExchange() { WebTool.waitTime(10); // Si visualizza la dashboard e si verifica che gli elementi base siano presenti (header e title della pagina) - HeaderPASection headerPASection = new HeaderPASection(hooks.getDriver()); headerPASection.waitLoadHeaderSection(); - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(hooks.getDriver()); piattaformaNotifichePage.waitLoadPiattaformaNotifichePAPage(); } @@ -127,7 +158,6 @@ public void loginConMittente(String datiMittenteFile) { this.datiMittente = dataPopulation.readDataPopulation(datiMittenteFile + ".yaml"); // Creazione dell'oggetto pagina per la gestione del pre-accesso all'area riservata - PreAccediAreaRiservataPAPage preAccediAreaRiservataPAPage = new PreAccediAreaRiservataPAPage(hooks.getDriver()); preAccediAreaRiservataPAPage.waitLoadPreAccediAreaRiservataPAPage(); preAccediAreaRiservataPAPage.selezionaProcediAlLoginButton(); @@ -135,34 +165,27 @@ public void loginConMittente(String datiMittenteFile) { if (hooks.getDriver().getCurrentUrl().contains(webDriverConfig.getUrlSelfCare()) || !webDriverConfig.getCookieConfig().isCookieEnabled()) { logger.info("cookies start"); - CookiesSection cookiesPage; - cookiesPage = new CookiesSection(hooks.getDriver()); - cookiesPage.selezionaAccettaTuttiButton(); - if (cookiesPage.waitLoadCookiesPage()) { - cookiesPage.selezionaAccettaTuttiButton(); + + cookiesSection.selezionaAccettaTuttiButton(); + if (cookiesSection.waitLoadCookiesPage()) { + cookiesSection.selezionaAccettaTuttiButton(); } logger.info("cookies end"); } - AcccediAreaRiservataPAPage acccediAreaRiservataPAPage = new AcccediAreaRiservataPAPage(hooks.getDriver()); acccediAreaRiservataPAPage.waitLoadLoginPageMittente(); acccediAreaRiservataPAPage.selezionareSpidButton(); - ScegliSpidPAPage scegliSpidPAPage = new ScegliSpidPAPage(hooks.getDriver()); - scegliSpidPAPage.selezionareTestButton(); - LoginPAPage loginPAPage = new LoginPAPage(hooks.getDriver()); loginPAPage.waitLoadLoginPAPage(); loginPAPage.inserisciUtenete( webDriverConfig.getUserMittente()); loginPAPage.inserisciPassword( webDriverConfig.getPwdMittente()); loginPAPage.selezionaInviaDati(); - AutorizziInvioDatiPAPage autorizziInvioDatiPAPage = new AutorizziInvioDatiPAPage(hooks.getDriver()); autorizziInvioDatiPAPage.waitLoadAutorizziInvioDatiPAPage(); autorizziInvioDatiPAPage.selezionareInvia(); - SelezionaEntePAPage selezionaEntePAPage = new SelezionaEntePAPage(hooks.getDriver()); selezionaEntePAPage.waitLoadSelezionaEntePAPage(); selezionaEntePAPage.cercaComune(this.datiMittente.get("comune").toString()); selezionaEntePAPage.selezionareComune(this.datiMittente.get("comune").toString()); @@ -173,41 +196,32 @@ public void loginConMittente(String datiMittenteFile) { public void loginConMittente(Map datiMittenteFile) { logger.info("Si effetua la Login dal portale mittente"); - PreAccediAreaRiservataPAPage preAccediAreaRiservataPAPage = new PreAccediAreaRiservataPAPage(hooks.getDriver()); preAccediAreaRiservataPAPage.waitLoadPreAccediAreaRiservataPAPage(); preAccediAreaRiservataPAPage.selezionaProcediAlLoginButton(); if (hooks.getDriver().getCurrentUrl().contains(webDriverConfig.getUrlSelfCare()) || !webDriverConfig.getCookieConfig().isCookieEnabled()) { logger.info("cookies start"); - CookiesSection cookiesPage; - cookiesPage = new CookiesSection(hooks.getDriver()); - cookiesPage.selezionaAccettaTuttiButton(); - if (cookiesPage.waitLoadCookiesPage()) { - cookiesPage.selezionaAccettaTuttiButton(); + cookiesSection.selezionaAccettaTuttiButton(); + if (cookiesSection.waitLoadCookiesPage()) { + cookiesSection.selezionaAccettaTuttiButton(); } logger.info("cookies end"); } - AcccediAreaRiservataPAPage acccediAreaRiservataPAPage = new AcccediAreaRiservataPAPage(hooks.getDriver()); acccediAreaRiservataPAPage.waitLoadLoginPageMittente(); acccediAreaRiservataPAPage.selezionareSpidButton(); - ScegliSpidPAPage scegliSpidPAPage = new ScegliSpidPAPage(hooks.getDriver()); - scegliSpidPAPage.selezionareTestButton(); - LoginPAPage loginPAPage = new LoginPAPage(hooks.getDriver()); loginPAPage.waitLoadLoginPAPage(); loginPAPage.inserisciUtenete(webDriverConfig.getUserMittente()); loginPAPage.inserisciPassword( webDriverConfig.getPwdMittente()); loginPAPage.selezionaInviaDati(); - AutorizziInvioDatiPAPage autorizziInvioDatiPAPage = new AutorizziInvioDatiPAPage(hooks.getDriver()); autorizziInvioDatiPAPage.waitLoadAutorizziInvioDatiPAPage(); autorizziInvioDatiPAPage.selezionareInvia(); - SelezionaEntePAPage selezionaEntePAPage = new SelezionaEntePAPage(hooks.getDriver()); selezionaEntePAPage.waitLoadSelezionaEntePAPage(); selezionaEntePAPage.cercaComune(datiMittenteFile.get("comune")); selezionaEntePAPage.selezionareComune(datiMittenteFile.get("comune")); @@ -240,7 +254,6 @@ public void portaleMittenteIsDisplayed() throws InterruptedException { hooks.getDriver().get(this.urlMittente.get("urlPortale")); - SelezionaEntePAPage selezionaEntePAPage = new SelezionaEntePAPage(hooks.getDriver()); selezionaEntePAPage.waitLoadSelezionaEntePAPage(); selezionaEntePAPage.cercaComune(this.datiMittente.get("comune").toString()); selezionaEntePAPage.selezionareComune(this.datiMittente.get("comune").toString()); @@ -380,10 +393,8 @@ private void readurlPortaleMittente(String user, String password) { public void homePageMittenteVieneVisualizzataCorrettamente() { logger.info("Home page mittente viene visualizzata correttamente"); - HeaderPASection headerPASection = new HeaderPASection(hooks.getDriver()); headerPASection.waitLoadHeaderSection(); - AreaRiservataPAPage areaRiservataPAPage = new AreaRiservataPAPage(hooks.getDriver()); areaRiservataPAPage.waitLoadAreaRiservataPAPage(); if (areaRiservataPAPage.verificaCodiceFiscale(this.datiMittente.get("codiceFiscale").toString())) { logger.info("Codice fiscale presente"); @@ -405,18 +416,15 @@ public void logoutDaPortaleMittente() { WebTool.waitTime(2); - HeaderPASection headerPASection = new HeaderPASection(hooks.getDriver()); headerPASection.waitLoadHeaderSection(); headerPASection.selezionaEsciButton(); if (!webDriverConfig.getCookieConfig().isCookieEnabled()) { - CookiesSection cookiesSection = new CookiesSection(hooks.getDriver()); if (cookiesSection.waitLoadCookiesPage()) { cookiesSection.selezionaAccettaTuttiButton(); } } - AcccediAreaRiservataPAPage acccediAreaRiservataPAPage = new AcccediAreaRiservataPAPage(hooks.getDriver()); acccediAreaRiservataPAPage.waitLoadLoginPageMittente(); WebTool.waitTime(5); @@ -443,22 +451,19 @@ public void loginConMittenteTramiteTokenExchange() { @And("Si clicca sul bottone test") public void clickTestButton() { - AcccediAreaRiservataPAPage acccediAreaRiservataPAPage = new AcccediAreaRiservataPAPage(hooks.getDriver()); acccediAreaRiservataPAPage.clickTestBottone(); } @And("Si clicca bottone accetta cookies") public void clickAcceptCookies() { // Gestione della sezione cookies, accettando i cookie se necessario - CookiesSection cookiesPage = new CookiesSection(hooks.getDriver()); - if (cookiesPage.waitLoadCookiesPage()) { - cookiesPage.selezionaAccettaTuttiButton(); + if (cookiesSection.waitLoadCookiesPage()) { + cookiesSection.selezionaAccettaTuttiButton(); } } @And("Si clicca sul bottone esci") public void siCLiccaSulBottoneEsci() { - HeaderPASection headerPASection = new HeaderPASection(hooks.getDriver()); headerPASection.selezionaEsciButton(); } } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java index 7c1fa8fcd..9c9953da5 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java @@ -31,6 +31,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import java.io.File; import java.text.DateFormat; @@ -45,16 +46,23 @@ public class NotificaMittentePagoPATest { private static final Logger logger = LoggerFactory.getLogger("NotificaMittentePagoPATest"); - private final List netWorkInfos = Hooks.netWorkInfos; - private final PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(this.driver); - private final AllegatiPASection allegatiPASection = new AllegatiPASection(this.driver); - private final DestinatarioPASection destinatarioPASection = new DestinatarioPASection(this.driver); - private final DataPopulation dataPopulation = new DataPopulation(); - private final DettaglioNotificaMittenteSection dettaglioNotificaMittenteSection = new DettaglioNotificaMittenteSection(this.driver); - //private final String variabileAmbiente = System.getProperty("environment"); - private final InformazioniPreliminariPASection informazioniPreliminariPASection = new InformazioniPreliminariPASection(this.driver); + + @Autowired + private PiattaformaNotifichePage piattaformaNotifichePage; + @Autowired + private AllegatiPASection allegatiPASection; + @Autowired + private DestinatarioPASection destinatarioPASection; + @Autowired + private DataPopulation dataPopulation; + @Autowired + private DettaglioNotificaMittenteSection dettaglioNotificaMittenteSection; + @Autowired + private InformazioniPreliminariPASection informazioniPreliminariPASection; + private final LoginPersonaFisicaPagoPA loginPersonaFisicaPagoPA = new LoginPersonaFisicaPagoPA(); private final LoginPGPagoPATest loginPGPagoPATest = new LoginPGPagoPATest(); + private final String PF = "persona fisica"; private final String PG = "persona giuridica"; private final String PA = "pubblica amministrazione"; @@ -70,17 +78,19 @@ public class NotificaMittentePagoPATest { private String ApiKey; @Autowired - private CookieConfig cookieConfig; + private CookiesSection cookiesSection; @Autowired private WebDriverConfig webDriverConfig; @Autowired + @Lazy private HooksNew hooks; - private final WebDriver driver = hooks.getDriver(); + @Autowired + private AreaRiservataPAPage areaRiservataPAPage; + @When("Nella Home page mittente cliccare sul bottone Gestisci di Piattaforma Notifiche") public void nellaHomePageMittenteCliccareSuGestisciDiPiattaforma() { - AreaRiservataPAPage areaRiservataPAPage = new AreaRiservataPAPage(hooks.getDriver()); logger.info("Cliccare sul bottone di Piattaforma Notifiche dell'Ambiente " + webDriverConfig.getEnvironment()); switch (webDriverConfig.getEnvironment()) { case "dev" -> areaRiservataPAPage.selezionaPiattaformaNotificaDev(); @@ -118,7 +128,7 @@ private int getCodiceRispostaChiamataApi(String urlChiamata) { logger.info("Recupero codice risposta della chiamata" + urlChiamata); int codiceRispostaChiamataApi = 0; - for (NetWorkInfo chiamate : netWorkInfos) { + for (NetWorkInfo chiamate : webDriverConfig.getNetWorkInfos()) { if (chiamate.getRequestUrl().startsWith(urlChiamata) && chiamate.getRequestMethod().equals("GET")) { codiceRispostaChiamataApi = Integer.parseInt(chiamate.getResponseStatus()); break; @@ -133,7 +143,7 @@ public String getNumeroProtocollo() { this.piattaformaNotifichePage.siCambiaIlNumeroElementiVisualizzatiAttraversoIlFiltro(); WebTool.waitTime(5); String urlNotifiche = webDriverConfig.getBaseUrl() + "notifications/"; - for (NetWorkInfo netWorkInfo : netWorkInfos) { + for (NetWorkInfo netWorkInfo : webDriverConfig.getNetWorkInfos()) { if (netWorkInfo.getRequestUrl().contains(urlNotifiche) && netWorkInfo.getRequestUrl().endsWith("size=10")) { String responseBody = netWorkInfo.getResponseBody(); String[] allNotifiche = responseBody.split("],\"moreResult\":"); @@ -227,7 +237,7 @@ public void aspettaSecondi(int quantiSecondi) { try { TimeUnit.SECONDS.sleep(quantiSecondi); - driver.navigate().refresh(); + hooks.getDriver().navigate().refresh(); } catch (Exception exc) { logger.error(exc.toString()); throw new RuntimeException(exc); @@ -244,7 +254,7 @@ public void siVisualizzaCorrettamenteLaTimelineRelativiATuttiIDestinatari(Map= 1) { piattaformaNotifichePage.aggiornamentoPagina(); - if (!cookieConfig.isCookieEnabled()) { + if (!webDriverConfig.getCookieConfig().isCookieEnabled()) { if (cookiesSection.waitLoadCookiesPage()) { cookiesSection.selezionaAccettaTuttiButton(); } @@ -923,8 +924,6 @@ public void nellaSectionDestinatarioInserireIDatiErratiDallaPersonaGiuridica(Str @And("Nella section Allegati caricare l'atto e inserire il nome atto con estenzione non valida") public void nellaSectionAllegatiCaricareLAttoEInserireIlNomeAttoConEstenzioneNonValida() { logger.info("Si inserisce un file con estensione sbagliata"); - - AllegatiPASection allegatiPASection = new AllegatiPASection(this.driver); String pathDocumentiFile = System.getProperty("user.dir") + "/src/test/resources/dataPopulation/fileUpload/semiOfficial1.jpg"; allegatiPASection.caricareNotificaPdfDalComputer(pathDocumentiFile); } @@ -993,12 +992,11 @@ public void verificaDelloStatoDellaNotificaPersonaGiuridicaComeDepositata(String String codiceFiscale = this.personaFisica.get("codiceFiscale").toString(); String codiceIUNOld = this.datiNotifica.get("codiceIUN").toString(); - CookiesSection cookiesSection = new CookiesSection(this.driver); String codiceIUN = ""; for (int i = 0; i < 12; i++) { if (i >= 1) { piattaformaNotifichePage.aggiornamentoPagina(); - if (!cookieConfig.isCookieEnabled()) { + if (!webDriverConfig.getCookieConfig().isCookieEnabled()) { if (cookiesSection.waitLoadCookiesPage()) { cookiesSection.selezionaAccettaTuttiButton(); } @@ -1360,7 +1358,7 @@ public void siVerificaCheLInvioDellaNotificaSiaFallitoDueVolte(int numeroFallime public void siAttendeCompletamentoNotifica() { siVisualizzaCorrettamenteLaSectionDettaglioNotifica(); WebTool.waitTime(400); - driver.navigate().refresh(); + hooks.getDriver().navigate().refresh(); WebTool.waitTime(3); } @@ -1598,7 +1596,7 @@ private String getNotificationRequestId(String urlNotificationRequest) { * (2) no POST requests with the provided URL were found */ boolean foundRequestWithUndesiredStatus = false; - for (NetWorkInfo netWorkInfo : netWorkInfos) { + for (NetWorkInfo netWorkInfo : webDriverConfig.getNetWorkInfos()) { if (netWorkInfo.getRequestUrl().equals(urlNotificationRequest) && netWorkInfo.getRequestMethod().equals("POST") && netWorkInfo.getResponseStatus().equals("202")) { String values = netWorkInfo.getResponseBody(); List results = Splitter.on(CharMatcher.anyOf(",:")).splitToList(values); @@ -1646,8 +1644,6 @@ public void nellaPaginaPiattaformaNotificheSiRecuperaUnCodiceIUNValido() { public void siVerificaCheLaNotificaSiaNelloStatoConsegnata() { logger.info("Si verifica che la notifica sia nello stato consegnata"); - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage((this.driver)); - this.datiNotifica = dataPopulation.readDataPopulation("datiNotifica.yaml"); boolean notificaTrovata = false; piattaformaNotifichePage.waitLoadPiattaformaNotifichePAPage(); @@ -1754,7 +1750,6 @@ public void siControllaCheLeRicevutePECSianoScaricabili() { @And("Creazione notifica completa") public void creazioneNotificaCompleta(Map datiNotificaMap) { logger.info("Inserimento dei dati della notifica senza pagamento " ); - AllegatiPASection allegatiPASection = new AllegatiPASection(driver); File notificaFile = new File("src/test/resources/notifichePdf/notifica.pdf"); datiNotifica = dataPopulation.readDataPopulation(datiNotificaMap.get("nomeFileYaml") + ".yaml"); From 224fafcdd85b6f8e85a90b4800c65914296ad6d0 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Tue, 29 Oct 2024 09:09:36 +0100 Subject: [PATCH 149/212] fix test Login Mittente --- .../pn/frontend/e2e/pages/mittente/SelezionaEntePAPage.java | 5 +++-- .../e2e/stepDefinitions/CucumberSpringIntegration.java | 5 ++--- .../mittente/NotificaMittentePagoPATest.java | 2 ++ src/test/resources/feature/1-Login/000_loginPagoPA.feature | 6 +++--- 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/SelezionaEntePAPage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/SelezionaEntePAPage.java index ba047c0b8..4c324bbe9 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/SelezionaEntePAPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/SelezionaEntePAPage.java @@ -61,9 +61,10 @@ public void selezionareComune(String comune) { public void selezionaAccedi() { Actions actions = new Actions(driver); + accediButton = driver.findElement(By.xpath("//button[text()='Accedi']")); getWebDriverWait(60).withMessage("il buttone Accedi non è cliccabile") - .until(ExpectedConditions.elementToBeClickable(this.accediButton)); - actions.moveToElement(this.accediButton).click().perform(); + .until(ExpectedConditions.elementToBeClickable(accediButton)); + actions.moveToElement(accediButton).click().perform(); } public void cercaComune(String comune) { diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java index e2479810e..e3543b688 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java @@ -16,7 +16,6 @@ import it.pn.frontend.e2e.section.destinatario.personaGiuridica.HeaderPGSection; import it.pn.frontend.e2e.section.mittente.*; import it.pn.frontend.e2e.stepDefinitions.destinatario.personaFisica.LoginPersonaFisicaPagoPA; -import it.pn.frontend.e2e.stepDefinitions.destinatario.personaGiuridica.DisserviziAppPGTest; import it.pn.frontend.e2e.stepDefinitions.mittente.NotificaMittentePagoPATest; import it.pn.frontend.e2e.utility.CookieConfig; import it.pn.frontend.e2e.utility.DataPopulation; @@ -44,7 +43,6 @@ DisserviziAppPAPage.class, PiattaformaNotifichePage.class, DettaglioNotificaMittenteSection.class, - DettaglioNotificaSection.class, AllegatiPASection.class, DestinatarioPASection.class, InformazioniPreliminariPASection.class, @@ -69,7 +67,8 @@ PreAccediAreaRiservataPAPage.class, AutorizziInvioDatiPAPage.class, SelezionaEntePAPage.class, - AcccediAreaRiservataPAPage.class + AcccediAreaRiservataPAPage.class, + DettaglioNotificaSection.class }) diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java index 9c9953da5..734dc563f 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java @@ -32,6 +32,7 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; +import org.springframework.context.annotation.Primary; import java.io.File; import java.text.DateFormat; @@ -42,6 +43,7 @@ import static org.apache.commons.lang3.StringUtils.isNumeric; import static org.apache.commons.lang3.StringUtils.substring; +@Primary public class NotificaMittentePagoPATest { private static final Logger logger = LoggerFactory.getLogger("NotificaMittentePagoPATest"); diff --git a/src/test/resources/feature/1-Login/000_loginPagoPA.feature b/src/test/resources/feature/1-Login/000_loginPagoPA.feature index 5eb3c200a..8992ef22d 100644 --- a/src/test/resources/feature/1-Login/000_loginPagoPA.feature +++ b/src/test/resources/feature/1-Login/000_loginPagoPA.feature @@ -6,11 +6,11 @@ Feature: Login pagoPA Scenario: Login pagoPA mittente Given Login Page mittente viene visualizzata - | url | https://selfcare.dev.notifichedigitali.it | + | url | https://selfcare.test.notifichedigitali.it | When Login con mittente - | user | ggiorgi | + | user | albino63 | | pwd | test | - | comune | Viggiu | + | comune | Verona | Then Home page mittente viene visualizzata correttamente And Logout da portale mittente From 64c61f4ca5a9c6814823559a79a347a5898a993b Mon Sep 17 00:00:00 2001 From: andreadefranco Date: Tue, 29 Oct 2024 09:44:38 +0100 Subject: [PATCH 150/212] merge --- .../e2e/section/mittente/AllegatiPASection.java | 2 ++ .../e2e/stepDefinitions/CucumberSpringIntegration.java | 10 +--------- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/section/mittente/AllegatiPASection.java b/src/main/java/it/pn/frontend/e2e/section/mittente/AllegatiPASection.java index 10e7fe714..8ed8fb86b 100644 --- a/src/main/java/it/pn/frontend/e2e/section/mittente/AllegatiPASection.java +++ b/src/main/java/it/pn/frontend/e2e/section/mittente/AllegatiPASection.java @@ -10,6 +10,8 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; import java.util.List; @Component diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java index 36d915e62..47b670d40 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java @@ -77,18 +77,10 @@ AutorizziInvioDatiPAPage.class, SelezionaEntePAPage.class, AcccediAreaRiservataPAPage.class, - DettaglioNotificaSection.class - + DettaglioNotificaSection.class, HelpdeskPage.class, - HeaderPGSection.class, - AccediAreaRiservataPGPage.class, RecapitiDestinatarioPage.class, ITuoiRecapitiPage.class, - PiattaformaNotifichePage.class, - AllegatiPASection.class, - DestinatarioPASection.class, - DettaglioNotificaMittenteSection.class, - InformazioniPreliminariPASection.class }) @EnableScheduling From ff0f2f0606a5d9134ec71cca5d39f0809e144c68 Mon Sep 17 00:00:00 2001 From: andreadefranco Date: Tue, 29 Oct 2024 10:36:42 +0100 Subject: [PATCH 151/212] fix post merge --- .../e2e/stepDefinitions/CucumberSpringIntegration.java | 2 ++ .../frontend/e2e/stepDefinitions/common/BackgroundTest.java | 4 ++-- .../pn/frontend/e2e/stepDefinitions/common/HelpdeskTest.java | 5 +++++ .../destinatario/personaGiuridica/LoginPGPagoPATest.java | 1 + 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java index 47b670d40..bf2ed0f77 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java @@ -21,6 +21,7 @@ import it.pn.frontend.e2e.section.destinatario.personaGiuridica.HeaderPGSection; import it.pn.frontend.e2e.section.mittente.*; import it.pn.frontend.e2e.stepDefinitions.destinatario.personaFisica.LoginPersonaFisicaPagoPA; +import it.pn.frontend.e2e.stepDefinitions.destinatario.personaGiuridica.LoginPGPagoPATest; import it.pn.frontend.e2e.stepDefinitions.mittente.NotificaMittentePagoPATest; import it.pn.frontend.e2e.section.mittente.AllegatiPASection; import it.pn.frontend.e2e.section.mittente.DestinatarioPASection; @@ -81,6 +82,7 @@ HelpdeskPage.class, RecapitiDestinatarioPage.class, ITuoiRecapitiPage.class, + LoginPGPagoPATest.class }) @EnableScheduling diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/BackgroundTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/BackgroundTest.java index 9991ec6ea..83ba4470e 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/BackgroundTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/BackgroundTest.java @@ -39,8 +39,8 @@ public class BackgroundTest { private LoginPersonaFisicaPagoPA personaFisicaPagoPA; private final DeleghePGPagoPATest deleghePGPagoPATest = new DeleghePGPagoPATest(); - - private final DisserviziAppPGTest disserviziAppPGTest = new DisserviziAppPGTest(); + @Autowired + private DisserviziAppPGTest disserviziAppPGTest ; private final HelpdeskTest helpdeskTest = new HelpdeskTest(); diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/HelpdeskTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/HelpdeskTest.java index 9b60a70a4..f10177e2f 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/HelpdeskTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/HelpdeskTest.java @@ -20,6 +20,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; +import org.springframework.context.annotation.Primary; import java.awt.*; import java.io.IOException; @@ -30,15 +32,18 @@ import java.util.Set; import java.util.concurrent.TimeUnit; +@Primary public class HelpdeskTest { private final Logger logger = LoggerFactory.getLogger("HelpdeskAppTest"); @Autowired + @Lazy private HooksNew hooks; // private final WebDriver driver = Hooks.driver; @Autowired private DataPopulation dataPopulation; @Autowired + @Lazy private WebDriverConfig webDriverConfig; @Autowired diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java index 4a6402e75..b91e302a5 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java @@ -48,6 +48,7 @@ public class LoginPGPagoPATest { @Autowired private WebDriverConfig webDriverConfig; @Autowired + @Lazy private HooksNew hooks; //TODO da rimuovere anche il discorso dei file yaml.. From 2af0ff257cd54490954c695e24a1a26379dfbf58 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Tue, 29 Oct 2024 11:29:39 +0100 Subject: [PATCH 152/212] update cookies --- .../pn/frontend/e2e/utility/CookieConfig.java | 19 ++++++--- .../LoginPersonaFisicaPagoPA.java | 41 +++++++++---------- .../personaGiuridica/LoginPGPagoPATest.java | 30 +++++++------- .../mittente/LoginMittentePagoPA.java | 21 ++++------ 4 files changed, 56 insertions(+), 55 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/utility/CookieConfig.java b/src/main/java/it/pn/frontend/e2e/utility/CookieConfig.java index bac220474..1f8babed0 100644 --- a/src/main/java/it/pn/frontend/e2e/utility/CookieConfig.java +++ b/src/main/java/it/pn/frontend/e2e/utility/CookieConfig.java @@ -5,6 +5,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; @@ -16,12 +17,18 @@ public class CookieConfig { private static final Logger logger = LoggerFactory.getLogger("CookieConfig"); - @Autowired - @Lazy - private WebDriverConfig webDriverConfig; + // @Autowired + // @Lazy + // private WebDriverConfig webDriverConfig; // private static final String env = System.getProperty("environment"); private final Map> cookieMap; + @Value("${environment}") + private String environment; + + @Value("${cookie.config}") + private String cookie; + @Autowired public CookieConfig() { this.cookieMap = new HashMap<>(); } @@ -31,8 +38,8 @@ public CookieConfig() { public boolean isCookieEnabled() { //String isCookieEnabled = System.getProperty("cookie.config"); logger.info("COOOKIE....: "); - logger.info("COOOKIE....: "+ webDriverConfig.getCookie()); - String isCookieEnabled = webDriverConfig.getCookie(); + logger.info("COOOKIE....: "+ cookie); + String isCookieEnabled = cookie; if (isCookieEnabled == null || isCookieEnabled.equals("false")) { logger.info("Cookies are disabled"); return false; @@ -45,7 +52,7 @@ public void addCookie() { // Check if the cookie property is enabled if (isCookieEnabled()) { // Based on the environment, the cookie is added to the map - String env = webDriverConfig.getEnvironment(); + String env = environment; switch (env) { case "test": this.setUpCookieTest(); diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java index 05931b053..6ac48cab3 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java @@ -14,6 +14,7 @@ import it.pn.frontend.e2e.pages.destinatario.personaFisica.*; import it.pn.frontend.e2e.section.CookiesSection; import it.pn.frontend.e2e.section.destinatario.personaFisica.HeaderPFSection; +import it.pn.frontend.e2e.utility.CookieConfig; import it.pn.frontend.e2e.utility.DataPopulation; import it.pn.frontend.e2e.utility.WebTool; import org.junit.jupiter.api.Assertions; @@ -64,6 +65,13 @@ public class LoginPersonaFisicaPagoPA { @Autowired private AccediAPiattaformaNotifichePage accediAPiattaformaNotifichePage; + @Autowired + private CookiesSection cookiesSection; + + @Autowired + private CookieConfig cookieConfig; + + @Given("Login Page persona fisica {string} viene visualizzata") public void loginPageDestinatarioVieneVisualizzata(String datipersonaFisica) { //TODO Parametrizzzare..........eliminare la gestione file yaml.. @@ -124,12 +132,10 @@ public void loginConDestinatario(String datipersonaFisica) { this.datiPersonaFisica = dataPopulation.readDataPopulation(datipersonaFisica + ".yaml"); logger.info("cookies start"); - CookiesSection cookiesPage; - if (!webDriverConfig.getCookieConfig().isCookieEnabled()) { - cookiesPage = new CookiesSection(this.hooks.getDriver()); - if (cookiesPage.waitLoadCookiesPage()) { - cookiesPage.selezionaAccettaTuttiButton(); + if (!cookieConfig.isCookieEnabled()) { + if (cookiesSection.waitLoadCookiesPage()) { + cookiesSection.selezionaAccettaTuttiButton(); } } logger.info("cookies end"); @@ -178,21 +184,18 @@ public void loginConDestinatario(String datipersonaFisica) { public void loginConDestinatario(Map datiPF) { logger.info("user persona fisica : " + webDriverConfig.getUserCesare()); logger.info("cookies start"); - CookiesSection cookiesPage; - if (!webDriverConfig.getCookieConfig().isCookieEnabled()) { - cookiesPage = new CookiesSection(this.hooks.getDriver()); - if (cookiesPage.waitLoadCookiesPage()) { - cookiesPage.selezionaAccettaTuttiButton(); + if (!cookieConfig.isCookieEnabled()) { + if (cookiesSection.waitLoadCookiesPage()) { + cookiesSection.selezionaAccettaTuttiButton(); } } logger.info("cookies end"); accediAPiattaformaNotifichePage.waitLoadAccediAPiattaformaNotifichePage(); accediAPiattaformaNotifichePage.selezionaAccediButton(); - if (!webDriverConfig.getCookieConfig().isCookieEnabled()) { - cookiesPage = new CookiesSection(this.hooks.getDriver()); - if (cookiesPage.waitLoadCookiesPage()) { - cookiesPage.selezionaAccettaTuttiButton(); + if (!cookieConfig.isCookieEnabled()) { + if (cookiesSection.waitLoadCookiesPage()) { + cookiesSection.selezionaAccettaTuttiButton(); } } @@ -238,9 +241,7 @@ public void loginConDestinatario(Map datiPF) { @Then("Home page persona fisica viene visualizzata correttamente") public void homePageDestinatarioVieneVisualizzataCorrettamente() { - CookiesSection cookiesSection; - if (!webDriverConfig.getCookieConfig().isCookieEnabled()) { - cookiesSection = new CookiesSection(this.hooks.getDriver()); + if (!cookieConfig.isCookieEnabled()) { if (cookiesSection.waitLoadCookiesPage()) { cookiesSection.selezionaAccettaTuttiButton(); } @@ -266,8 +267,7 @@ public void homePageDestinatarioVieneVisualizzataCorrettamente() { } headerPFSection.waitLoadHeaderDESection(); - if (!webDriverConfig.getCookieConfig().isCookieEnabled()) { - cookiesSection = new CookiesSection(this.hooks.getDriver()); + if (!cookieConfig.isCookieEnabled()) { if (cookiesSection.waitLoadCookiesPage()) { cookiesSection.selezionaAccettaTuttiButton(); } @@ -320,8 +320,7 @@ public void logoutDaPortaleDestinatario() { ComeVuoiAccederePage comeVuoiAccederePage = new ComeVuoiAccederePage(this.hooks.getDriver()); comeVuoiAccederePage.waitLoadComeVuoiAccederePage(); - if (!webDriverConfig.getCookieConfig().isCookieEnabled()) { - CookiesSection cookiesSection = new CookiesSection(this.hooks.getDriver()); + if (!cookieConfig.isCookieEnabled()) { if (cookiesSection.waitLoadCookiesPage()) { logger.info("banner dei cookies visualizzato"); cookiesSection.selezionaAccettaTuttiButton(); diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java index 4a6402e75..74d487536 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java @@ -8,8 +8,6 @@ import it.pn.frontend.e2e.api.mittente.SpidLoginMittente; import it.pn.frontend.e2e.api.mittente.SpidTestEnvWestEuropeAzureContainerIoContinueResponse; import it.pn.frontend.e2e.api.mittente.SpidTestEnvWestEuropeAzureContainerIoLogin; -import it.pn.frontend.e2e.config.BearerTokenConfig; -import it.pn.frontend.e2e.config.CustomHttpClient; import it.pn.frontend.e2e.config.WebDriverConfig; import it.pn.frontend.e2e.listeners.HooksNew; import it.pn.frontend.e2e.pages.destinatario.DestinatarioPage; @@ -27,8 +25,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Primary; -import org.springframework.stereotype.Component; - import java.util.HashMap; import java.util.Map; import java.util.concurrent.TimeUnit; @@ -46,8 +42,10 @@ public class LoginPGPagoPATest { @Autowired private AccediAreaRiservataPGPage accediAreaRiservataPGPage; @Autowired + @Lazy private WebDriverConfig webDriverConfig; @Autowired + @Lazy private HooksNew hooks; //TODO da rimuovere anche il discorso dei file yaml.. @@ -75,6 +73,12 @@ public class LoginPGPagoPATest { @Autowired private DestinatarioPage destinatarioPage; + @Autowired + private CookieConfig cookieConfig; + + @Autowired + private CookiesSection cookiesSection; + @Given("Login Page persona giuridica viene visualizzata") public void loginPagePersonaGiuridicaVieneVisualizzata() { @@ -160,10 +164,9 @@ public void loginPortalePersonaGiuridicaTramiteRequestMethod() { hooks.getDriver().get(this.urlPersonaGiuridica.get("urlPortale")); - if (!webDriverConfig.getCookieConfig().isCookieEnabled()) { - CookiesSection cookiesPage = new CookiesSection(hooks.getDriver()); - if (cookiesPage.waitLoadCookiesPage()) { - cookiesPage.selezionaAccettaTuttiButton(); + if (!cookieConfig.isCookieEnabled()) { + if (cookiesSection.waitLoadCookiesPage()) { + cookiesSection.selezionaAccettaTuttiButton(); } } @@ -253,10 +256,8 @@ public void homePagePersonaGiuridicaVieneVisualizzataCorrettamente() { public void loginConPersonaGiuridica(Map datiPG) { logger.info("La persona guiridica cerca di fare il login"); - CookiesSection cookiesSection; - if (!webDriverConfig.getCookieConfig().isCookieEnabled()) { - cookiesSection = new CookiesSection(hooks.getDriver()); + if (!cookieConfig.isCookieEnabled()) { if (cookiesSection.waitLoadCookiesPage()) { cookiesSection.selezionaAccettaTuttiButton(); } @@ -327,10 +328,9 @@ public void loginPortalePersonaGiuridicaTramiteRequestMethod(String dpFile) { hooks.getDriver().get(this.urlPersonaGiuridica.get("urlPortale")); - if (!webDriverConfig.getCookieConfig().isCookieEnabled()) { - CookiesSection cookiesPage = new CookiesSection(hooks.getDriver()); - if (cookiesPage.waitLoadCookiesPage()) { - cookiesPage.selezionaAccettaTuttiButton(); + if (!cookieConfig.isCookieEnabled()) { + if (cookiesSection.waitLoadCookiesPage()) { + cookiesSection.selezionaAccettaTuttiButton(); } } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/LoginMittentePagoPA.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/LoginMittentePagoPA.java index 65446c7d8..24dd97735 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/LoginMittentePagoPA.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/LoginMittentePagoPA.java @@ -8,9 +8,7 @@ import it.pn.frontend.e2e.api.mittente.SpidLoginMittente; import it.pn.frontend.e2e.api.mittente.SpidTestEnvWestEuropeAzureContainerIoContinueResponse; import it.pn.frontend.e2e.api.mittente.SpidTestEnvWestEuropeAzureContainerIoLogin; -import it.pn.frontend.e2e.config.BearerTokenConfig; import it.pn.frontend.e2e.config.WebDriverConfig; -import it.pn.frontend.e2e.listeners.Hooks; import it.pn.frontend.e2e.listeners.HooksNew; import it.pn.frontend.e2e.pages.mittente.*; import it.pn.frontend.e2e.section.CookiesSection; @@ -21,16 +19,10 @@ import org.apache.hc.client5.http.cookie.BasicCookieStore; import org.apache.hc.client5.http.impl.cookie.BasicClientCookie; import org.junit.jupiter.api.Assertions; -import org.openqa.selenium.WebDriver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Primary; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Component; -import org.springframework.context.annotation.Lazy; - import java.util.Map; import java.util.concurrent.TimeUnit; @@ -64,6 +56,9 @@ public class LoginMittentePagoPA { @Autowired private CookiesSection cookiesSection; + @Autowired + private CookieConfig cookieConfig; + @Autowired private AcccediAreaRiservataPAPage acccediAreaRiservataPAPage; @@ -163,7 +158,7 @@ public void loginConMittente(String datiMittenteFile) { // Verifica della presenza dell'URL e dei cookie per proseguire con l'accettazione dei cookie if (hooks.getDriver().getCurrentUrl().contains(webDriverConfig.getUrlSelfCare()) || - !webDriverConfig.getCookieConfig().isCookieEnabled()) { + !cookieConfig.isCookieEnabled()) { logger.info("cookies start"); cookiesSection.selezionaAccettaTuttiButton(); @@ -179,8 +174,8 @@ public void loginConMittente(String datiMittenteFile) { scegliSpidPAPage.selezionareTestButton(); loginPAPage.waitLoadLoginPAPage(); - loginPAPage.inserisciUtenete( webDriverConfig.getUserMittente()); - loginPAPage.inserisciPassword( webDriverConfig.getPwdMittente()); + loginPAPage.inserisciUtenete(webDriverConfig.getUserMittente()); + loginPAPage.inserisciPassword(webDriverConfig.getPwdMittente()); loginPAPage.selezionaInviaDati(); autorizziInvioDatiPAPage.waitLoadAutorizziInvioDatiPAPage(); @@ -200,7 +195,7 @@ public void loginConMittente(Map datiMittenteFile) { preAccediAreaRiservataPAPage.selezionaProcediAlLoginButton(); if (hooks.getDriver().getCurrentUrl().contains(webDriverConfig.getUrlSelfCare()) || - !webDriverConfig.getCookieConfig().isCookieEnabled()) { + !cookieConfig.isCookieEnabled()) { logger.info("cookies start"); cookiesSection.selezionaAccettaTuttiButton(); if (cookiesSection.waitLoadCookiesPage()) { @@ -419,7 +414,7 @@ public void logoutDaPortaleMittente() { headerPASection.waitLoadHeaderSection(); headerPASection.selezionaEsciButton(); - if (!webDriverConfig.getCookieConfig().isCookieEnabled()) { + if (!cookieConfig.isCookieEnabled()) { if (cookiesSection.waitLoadCookiesPage()) { cookiesSection.selezionaAccettaTuttiButton(); } From 4a5e9627d69df4f6400f5c4a4081d9f9f6a59f10 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Tue, 29 Oct 2024 11:32:19 +0100 Subject: [PATCH 153/212] add dependency --- .../frontend/e2e/stepDefinitions/common/BackgroundTest.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/BackgroundTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/BackgroundTest.java index ec8c958ab..83f324a03 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/BackgroundTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/BackgroundTest.java @@ -11,6 +11,7 @@ import it.pn.frontend.e2e.stepDefinitions.mittente.NotificaMittentePagoPATest; import it.pn.frontend.e2e.utility.WebTool; import org.openqa.selenium.WebDriver; +import org.springframework.beans.factory.annotation.Autowired; import java.util.HashMap; import java.util.Map; @@ -30,7 +31,8 @@ public class BackgroundTest { private final LoginPGPagoPATest loginPGPagoPATest = new LoginPGPagoPATest(); private final LoginPersonaFisicaPagoPA personaFisicaPagoPA = new LoginPersonaFisicaPagoPA(); private final DeleghePGPagoPATest deleghePGPagoPATest = new DeleghePGPagoPATest(); - private final DisserviziAppPGTest disserviziAppPGTest = new DisserviziAppPGTest(); + @Autowired + private DisserviziAppPGTest disserviziAppPGTest; private final HelpdeskTest helpdeskTest = new HelpdeskTest(); private final NotifichePGPagoPATest notifichePGPagoPATest = new NotifichePGPagoPATest(); private final RecapitiTest recapitiTest = new RecapitiTest(); From 40c2949345e6ea892d76d1d7f4b6ef43283f5e67 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Tue, 29 Oct 2024 12:18:02 +0100 Subject: [PATCH 154/212] update disservizi --- .../pn/frontend/e2e/common/HelpdeskPage.java | 4 +- .../e2e/common/NotificheDestinatarioPage.java | 5 +- .../CucumberSpringIntegration.java | 6 +- .../stepDefinitions/common/HelpdeskTest.java | 33 ++++++--- .../RicercaNotifichePersonaFisicaPATest.java | 67 +++++++---------- .../DownloadFileMittentePagoPATest.java | 46 ++++++++---- .../mittente/NotificaMittentePagoPATest.java | 2 - .../RicercaNotificheMittentePagoPATest.java | 73 +++++-------------- 8 files changed, 114 insertions(+), 122 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/common/HelpdeskPage.java b/src/main/java/it/pn/frontend/e2e/common/HelpdeskPage.java index 69403070f..949a0982b 100644 --- a/src/main/java/it/pn/frontend/e2e/common/HelpdeskPage.java +++ b/src/main/java/it/pn/frontend/e2e/common/HelpdeskPage.java @@ -32,8 +32,9 @@ import net.lingala.zip4j.ZipFile; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; - +@Component public class HelpdeskPage extends BasePage { private final Logger logger = LoggerFactory.getLogger("Helpdesk Page"); @@ -78,6 +79,7 @@ public class HelpdeskPage extends BasePage { @Autowired private WebDriverConfig webDriverConfig; + @Autowired public HelpdeskPage(WebDriver driver) { super(driver); } diff --git a/src/main/java/it/pn/frontend/e2e/common/NotificheDestinatarioPage.java b/src/main/java/it/pn/frontend/e2e/common/NotificheDestinatarioPage.java index 18cae6133..91c19b0df 100644 --- a/src/main/java/it/pn/frontend/e2e/common/NotificheDestinatarioPage.java +++ b/src/main/java/it/pn/frontend/e2e/common/NotificheDestinatarioPage.java @@ -10,7 +10,10 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +@Component public class NotificheDestinatarioPage extends BasePage{ private static final Logger logger = LoggerFactory.getLogger("NotificheDestinatarioPage"); @@ -19,7 +22,7 @@ public class NotificheDestinatarioPage extends BasePage{ @FindBy(xpath = "//button[contains(text(),'Ricevuta di consegna PEC')]") WebElement ricevutaDiConsegnaButton; - + @Autowired public NotificheDestinatarioPage(WebDriver driver) { super(driver); } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java index e3543b688..940110725 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java @@ -2,6 +2,8 @@ import io.cucumber.spring.CucumberContextConfiguration; import it.pn.frontend.e2e.common.DettaglioNotificaSection; +import it.pn.frontend.e2e.common.HelpdeskPage; +import it.pn.frontend.e2e.common.NotificheDestinatarioPage; import it.pn.frontend.e2e.config.BearerTokenConfig; import it.pn.frontend.e2e.config.UserPasswordConfig; import it.pn.frontend.e2e.config.WebDriverConfig; @@ -68,7 +70,9 @@ AutorizziInvioDatiPAPage.class, SelezionaEntePAPage.class, AcccediAreaRiservataPAPage.class, - DettaglioNotificaSection.class + DettaglioNotificaSection.class, + NotificheDestinatarioPage.class, + HelpdeskPage.class }) diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/HelpdeskTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/HelpdeskTest.java index 0356a290c..8ccc4d6ee 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/HelpdeskTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/HelpdeskTest.java @@ -7,6 +7,7 @@ import it.pn.frontend.e2e.common.HelpdeskPage; import it.pn.frontend.e2e.config.WebDriverConfig; import it.pn.frontend.e2e.listeners.Hooks; +import it.pn.frontend.e2e.listeners.HooksNew; import it.pn.frontend.e2e.model.enums.Disservice; import it.pn.frontend.e2e.model.enums.Status; import it.pn.frontend.e2e.pages.mittente.PiattaformaNotifichePage; @@ -19,6 +20,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; +import org.springframework.context.annotation.Primary; import java.awt.*; import java.io.IOException; @@ -29,17 +32,25 @@ import java.util.Set; import java.util.concurrent.TimeUnit; +@Primary public class HelpdeskTest { - private final WebDriver driver = Hooks.driver; - private final DataPopulation dataPopulation = new DataPopulation(); private final Logger logger = LoggerFactory.getLogger("HelpdeskAppTest"); - private HelpdeskPage helpdeskPage = new HelpdeskPage(this.driver); private Map datiTestHelpdesk = new HashMap<>(); private Map datiPersonaFisica = new HashMap<>(); @Autowired private WebDriverConfig webDriverConfig; + @Autowired + private HelpdeskPage helpdeskPage; + + @Autowired + private DataPopulation dataPopulation; + + @Autowired + @Lazy + private HooksNew hooks; + @Given("Login helpdesk con utente test {string}") public void loginHelpdeskConUtenteTest(String nameFile) { this.datiTestHelpdesk = this.dataPopulation.readDataPopulation(nameFile + ".yaml"); @@ -113,11 +124,11 @@ public void siVerificaLaCreazioneDelDisservizio() { public void annullamentoDisservizio() { BackgroundTest backgroundTest = new BackgroundTest(); logger.info("Torno sulla scheda di helpdesk"); - String sendHandle = driver.getWindowHandle(); - Set windowHandles = driver.getWindowHandles(); + String sendHandle = hooks.getDriver().getWindowHandle(); + Set windowHandles = hooks.getDriver().getWindowHandles(); for (String handle : windowHandles) { if (!handle.equals(sendHandle)) { - this.driver.switchTo().window(handle); + this.hooks.getDriver().switchTo().window(handle); break; } } @@ -142,7 +153,7 @@ public void annullamentoDisservizio() { logger.info("Torno sulla piattaforma send per il logout"); for (String handle : windowHandles) { if (handle.equals(sendHandle)) { - this.driver.switchTo().window(handle); + this.hooks.getDriver().switchTo().window(handle); break; } } @@ -299,13 +310,13 @@ public void controlloCorrispondenzaCodiceFiscale() { @Given("Login helpdesk in nuova scheda") public void loginHelpdeskInNuovaScheda(Map login) { logger.info("Si apre una nuova finestra"); - JavascriptExecutor javascriptExecutor = (JavascriptExecutor) driver; + JavascriptExecutor javascriptExecutor = (JavascriptExecutor) hooks.getDriver(); javascriptExecutor.executeScript("window.open();"); logger.info("Si seleziona la nuova finestra aperta"); - ArrayList tabs = new ArrayList<>(driver.getWindowHandles()); - driver.switchTo().window(tabs.get(tabs.size() - 1)); + ArrayList tabs = new ArrayList<>(hooks.getDriver().getWindowHandles()); + hooks.getDriver().switchTo().window(tabs.get(tabs.size() - 1)); logger.info("Nella nuova finestra aperta si va sulla pagina di login di helpdesk"); - driver.get("https://helpdesk.test.notifichedigitali.it/login"); + hooks.getDriver().get("https://helpdesk.test.notifichedigitali.it/login"); helpdeskPage.loginHelpdeskNuovaScheda(login); } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RicercaNotifichePersonaFisicaPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RicercaNotifichePersonaFisicaPATest.java index 07d39f627..9cd3d490a 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RicercaNotifichePersonaFisicaPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RicercaNotifichePersonaFisicaPATest.java @@ -5,6 +5,7 @@ import io.cucumber.java.en.When; import it.pn.frontend.e2e.common.NotificheDestinatarioPage; import it.pn.frontend.e2e.listeners.Hooks; +import it.pn.frontend.e2e.listeners.HooksNew; import it.pn.frontend.e2e.model.singleton.NotificationSingleton; import it.pn.frontend.e2e.pages.destinatario.DestinatarioPage; import it.pn.frontend.e2e.pages.destinatario.personaFisica.NotifichePFPage; @@ -18,6 +19,8 @@ import org.openqa.selenium.WebDriver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import java.time.LocalDate; import java.util.HashMap; @@ -25,20 +28,31 @@ public class RicercaNotifichePersonaFisicaPATest { private static final Logger logger = LoggerFactory.getLogger("RicercaNotifichePersonaFisicaTest"); - private final WebDriver driver = Hooks.driver; + private final NotificationSingleton notificationSingleton = NotificationSingleton.getInstance(); - private final PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(this.driver); - private final DestinatarioPage destinatarioPage = new DestinatarioPage(this.driver); private Map datiNotifica = new HashMap<>(); private Map datiNotificaNonValidoPF; + @Autowired + @Lazy + private HooksNew hooks; + + @Autowired + private PiattaformaNotifichePage piattaformaNotifichePage; + @Autowired + private DestinatarioPage destinatarioPage; + @Autowired + private HeaderPFSection headerPFSection; + @Autowired + private NotifichePFPage notifichePFPage; + + @Autowired + private NotificheDestinatarioPage notificheDestinatarioPage; + @When("Si visualizza correttamente la pagina Piattaforma Notifiche persona fisica") public void siVisualizzaCorrettamenteLaPaginaPiattaformaNotificheDestinatario() { logger.info("Verifica visualizzazione piattaforma notifiche persona fisica"); - HeaderPFSection headerPFSection = new HeaderPFSection(this.driver); headerPFSection.waitLoadHeaderDESection(); - - NotifichePFPage notifichePFPage = new NotifichePFPage(this.driver); notifichePFPage.waitLoadNotificheDEPage(); } @@ -46,28 +60,28 @@ public void siVisualizzaCorrettamenteLaPaginaPiattaformaNotificheDestinatario() public void collegarsiLink(int code) { switch (code) { case 19 -> { - this.driver.get("https://cittadini.test.notifichedigitali.it/auth/login/error?errorCode=19"); + this.hooks.getDriver().get("https://cittadini.test.notifichedigitali.it/auth/login/error?errorCode=19"); } case 20 -> { - this.driver.get("https://cittadini.test.notifichedigitali.it/auth/login/error?errorCode=20"); + this.hooks.getDriver().get("https://cittadini.test.notifichedigitali.it/auth/login/error?errorCode=20"); } case 21 -> { - this.driver.get("https://cittadini.test.notifichedigitali.it/auth/login/error?errorCode=21"); + this.hooks.getDriver().get("https://cittadini.test.notifichedigitali.it/auth/login/error?errorCode=21"); } case 22 -> { - this.driver.get("https://cittadini.test.notifichedigitali.it/auth/login/error?errorCode=22"); + this.hooks.getDriver().get("https://cittadini.test.notifichedigitali.it/auth/login/error?errorCode=22"); } case 23 -> { - this.driver.get("https://cittadini.test.notifichedigitali.it/auth/login/error?errorCode=23"); + this.hooks.getDriver().get("https://cittadini.test.notifichedigitali.it/auth/login/error?errorCode=23"); } case 25 -> { - this.driver.get("https://cittadini.test.notifichedigitali.it/auth/login/error?errorCode=25"); + this.hooks.getDriver().get("https://cittadini.test.notifichedigitali.it/auth/login/error?errorCode=25"); } case 30 -> { - this.driver.get("https://cittadini.test.notifichedigitali.it/auth/login/error?errorCode=30"); + this.hooks.getDriver().get("https://cittadini.test.notifichedigitali.it/auth/login/error?errorCode=30"); } case 1001 -> { - this.driver.get("https://cittadini.test.notifichedigitali.it/auth/login/error?errorCode=1001"); + this.hooks.getDriver().get("https://cittadini.test.notifichedigitali.it/auth/login/error?errorCode=1001"); } } } @@ -80,34 +94,26 @@ public void siVisualizzaMessaggioErroreConCodice(int code) { @And("Nella pagina Piattaforma Notifiche persona fisica inserire il codice IUN {string}") public void nellaPaginaPiattaformaNotificheDestinatarioInserireIlCodiceIUN(String IUN) throws InterruptedException { logger.info("Si inserisce il codice IUN"); - NotifichePFPage notifichePFPage = new NotifichePFPage(this.driver); notifichePFPage.waitLoadPage(); - - NotificheDestinatarioPage notificheDestinatarioPage = new NotificheDestinatarioPage(this.driver); notificheDestinatarioPage.inserisciCodiceIUN(IUN); } @And("Cliccare sul bottone Filtra persona fisica") public void cliccareSulBottoneFiltra() { logger.info("Si clicca sul tasto filtra"); - NotifichePFPage notifichePFPage = new NotifichePFPage(this.driver); notifichePFPage.selectFiltraButton(); } @Then("Nella pagina Piattaforma Notifiche persona fisica vengo restituite tutte le notifiche con il codice IUN della notifica {string}") public void nellaPaginaPiattaformaNotificheDestinatarioVengoRestituiteTutteLeNotificheConIlCodiceIUNDellaNotifica(String dpDatiNotifica) { logger.info("Si verificano i risultati restituiti"); - HeaderPFSection headerPFSection = new HeaderPFSection(this.driver); headerPFSection.waitLoadHeaderDESection(); - - NotifichePFPage notifichePFPage = new NotifichePFPage(this.driver); notifichePFPage.waitLoadNotificheDEPage(); DataPopulation dataPopulation = new DataPopulation(); this.datiNotifica = dataPopulation.readDataPopulation(dpDatiNotifica + ".yaml"); String codiceIUNInserito = datiNotifica.get("codiceIUN").toString(); - NotificheDestinatarioPage notificheDestinatarioPage = new NotificheDestinatarioPage(this.driver); boolean result = notificheDestinatarioPage.verificaCodiceIUN(codiceIUNInserito); if (result) { logger.info("Il risultato é coerente con il codice IUN inserito"); @@ -120,13 +126,9 @@ public void nellaPaginaPiattaformaNotificheDestinatarioVengoRestituiteTutteLeNot @Then("Nella pagina Piattaforma Notifiche persona fisica vengo restituite tutte le notifiche con il codice IUN {string}") public void nellaPaginaPiattaformaNotificheDestinatarioVengoRestituiteTutteLeNotificheConIlCodiceIUN(String IUN) { logger.info("Si verificano i risultati restituiti"); - HeaderPFSection headerPFSection = new HeaderPFSection(this.driver); headerPFSection.waitLoadHeaderDESection(); - - NotifichePFPage notifichePFPage = new NotifichePFPage(this.driver); notifichePFPage.waitLoadNotificheDEPage(); - NotificheDestinatarioPage notificheDestinatarioPage = new NotificheDestinatarioPage(this.driver); boolean result = notificheDestinatarioPage.verificaCodiceIUN(IUN); if (result) { logger.info("Il risultato é coerente con il codice IUN inserito"); @@ -139,12 +141,10 @@ public void nellaPaginaPiattaformaNotificheDestinatarioVengoRestituiteTutteLeNot @And("Nella pagina Piattaforma Notifiche mittente inserire un arco temporale") public void nellaPaginaPiattaformaNotificheMittenteInserireUnaDataDaDAAA(Map date) { logger.info("Si inserisce l'arco temporale su cui effettuare la ricerca "); - NotifichePFPage notifichePFPage = new NotifichePFPage(this.driver); LocalDate dataFine = LocalDate.of(date.get("annoA"), date.get("meseA"), date.get("giornoA")); LocalDate dataInizio = LocalDate.of(date.get("annoDa"), date.get("meseDa"), date.get("giornoDa")); String dataDA = notifichePFPage.controlloDateInserite(dataInizio.toString()); String dataA = notifichePFPage.controlloDateInserite(dataFine.toString()); - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(this.driver); piattaformaNotifichePage.inserimentoArcoTemporale(dataDA, dataA); } @@ -159,7 +159,6 @@ public void nellaPaginaPiattaformaNotificheMittenteInserireUnaDataDaDAAA120Giorn LocalDate dateDa = dateA.minusDays(30); - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(this.driver); String dataa = piattaformaNotifichePage.conversioneFormatoDate(dateA.toString()); String datada = piattaformaNotifichePage.conversioneFormatoDate(dateDa.toString()); logger.info("ARCO TEMPORRALE SETTATO: "+datada +" - "+dataa); @@ -169,10 +168,8 @@ public void nellaPaginaPiattaformaNotificheMittenteInserireUnaDataDaDAAA120Giorn @And("Se i risultati sono contenuti in più pagine persona fisica è possibile effettuare il cambio pagina") public void seIRisultatiSonoContenutiInPiuPagineDestinatarioEPossibileEffettuareIlCambioPagina() { logger.info("Se i risultati sono contenuti in più pagine è possibile effettuare il cambio pagina"); - NotifichePFPage notifichePFPage = new NotifichePFPage(this.driver); if (piattaformaNotifichePage.verificaEsistenzaEPassaggioPagina()) { logger.info("Bottone pagina 2 trovato e cliccato"); - HeaderPFSection headerPFSection = new HeaderPFSection(this.driver); headerPFSection.waitLoadHeaderDESection(); notifichePFPage.waitLoadNotificheDEPage(); } else { @@ -182,7 +179,6 @@ public void seIRisultatiSonoContenutiInPiuPagineDestinatarioEPossibileEffettuare @And("Cliccare sul bottone Rimuovi filtri persona fisica") public void cliccareSulBottoneRimuoviFiltriPersonaFisica() { - NotifichePFPage notifichePFPage = new NotifichePFPage(this.driver); notifichePFPage.clickRimuoviFiltriButton(); } @@ -191,15 +187,12 @@ public void nellaPaginaPiattaformaNotifichePersonaGiuridicaInserireIlCodiceIunNo logger.info("Si inserisce il codice IUN non valido"); DataPopulation dataPopulation = new DataPopulation(); this.datiNotificaNonValidoPF = dataPopulation.readDataPopulation(datiNotificaNonValidoPF + ".yaml"); - NotificheDestinatarioPage notificheDestinatarioPage = new NotificheDestinatarioPage(this.driver); notificheDestinatarioPage.inserisciCodiceIUN(this.datiNotificaNonValidoPF.get("codiceIUN").toString()); } @Then("Nella pagina Piattaforma Notifiche persona fisica viene visualizzato un messaggio in rosso di errore sotto il campo errato e il rettangolo diventa rosso e il tasto Filtra è disattivo") public void NellaPaginaPiattaformaNotifichePersonaFisicaVieneVisualizzatoUnMessaggioInRossoDiErroreSottoIlCampoErratoEIlRettangoloDiventaRossoEIlTastoFiltraEDisattivo() { - NotifichePFPage notifichePFPage = new NotifichePFPage(this.driver); - boolean isErrorMessageDisplayed = notifichePFPage.isErrorMessageDisplayed(); if (isErrorMessageDisplayed) { @@ -237,16 +230,13 @@ public void siCliccaSupaginaDiversaDallaPrima() { @And("Si verifica che visualizza la prima pagina") public void siVerificaCheVisualizzaLaPrimaPagina() { - NotifichePFPage notifichePFPage = new NotifichePFPage(this.driver); notifichePFPage.firstPageDisplayed(); } @Then("Vengono visualizzate correttamente le notifiche comprese nell'arco temporale inserito") public void vengonoVisualizzateCorrettamenteLeNotificheCompreseNellArcoTemporaleInserito() { - HeaderPFSection headerPFSection = new HeaderPFSection(this.driver); headerPFSection.waitLoadHeaderDESection(); - NotifichePFPage notifichePFPage = new NotifichePFPage(this.driver); notifichePFPage.waitLoadNotificheDEPage(); boolean result = notifichePFPage.getListData(); if (result) { @@ -266,7 +256,6 @@ public void ilRettangoloDelCampoErratoDiventaRosso() { @And("Nella pagina piattaforma notifiche destinatario si effettua la ricerca per codice IUN {string}") public void nellaPaginaPiattaformaNotificheDestinatarioSiEffettuaLaRicercaPerCodiceIUN(String codiceIUN) { logger.info("Si cerca una notifica tramite IUN: " + codiceIUN); - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(driver); piattaformaNotifichePage.inserimentoCodiceIUN(codiceIUN); piattaformaNotifichePage.selectFiltraNotificaButtonDestinatario(); } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java index c90e6b910..71464e05f 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java @@ -15,11 +15,13 @@ import it.pn.frontend.e2e.utility.DownloadFile; import it.pn.frontend.e2e.utility.WebTool; +import lombok.Setter; import org.junit.jupiter.api.Assertions; import org.openqa.selenium.WebDriver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import java.io.File; import java.util.HashMap; @@ -32,6 +34,24 @@ public class DownloadFileMittentePagoPATest { private static final Logger logger = LoggerFactory.getLogger("DownloadFileMittentePagoPATest"); private Map datiNotifica = new HashMap<>(); + @Value("${environment}") + private String environment; + + @Value("${cookie.config}") + private String cookie; + + @Value("${headless}") + private String headlessParam; + + @Value("${downloadFilePath}") + private String downloadFilePath; + + @Value("${loadComponentWaitTime}") + private String loadComponentWaitTime; + + @Value("${apiBaseUrl}") + private String baseUrl; + @Autowired private DataPopulation dataPopulation; @@ -42,8 +62,6 @@ public class DownloadFileMittentePagoPATest { @Autowired private DisserviziAppPAPage disserviziAppPAPage; @Autowired - private WebDriverConfig webDriverConfig; - @Autowired private PiattaformaNotifichePage piattaformaNotifichePage; @Autowired private DettaglioNotificaMittenteSection dettaglioNotificaMittenteSection; @@ -73,7 +91,7 @@ public void downloadECheckFile() { String workingDirectory = System.getProperty("user.dir"); File pathCartella = new File(workingDirectory + "/src/test/resources/dataPopulation/downloadFileNotifica/mittente"); - boolean headless = webDriverConfig.getHeadless().equalsIgnoreCase("true"); + boolean headless = headlessParam.equalsIgnoreCase("true"); if (!downloadFile.controlloEsistenzaCartella(pathCartella)) { pathCartella.mkdirs(); } @@ -98,7 +116,7 @@ public void downloadECheckFile() { final String filepath = workingDirectory + "/src/test/resources/dataPopulation/downloadFileNotifica/mittente/notificaN"; - final String urlDocumenti = webDriverConfig.getBaseUrl() + "notifications/sent/" + codiceIUN + "/documents/"; + final String urlDocumenti = baseUrl + "notifications/sent/" + codiceIUN + "/documents/"; final String urlDocumentiAllegati = downloadFile.getUrl(urlDocumenti); File file = new File(filepath + count + ".pdf"); @@ -122,7 +140,7 @@ public void downloadECheckFile() { } catch (InterruptedException e) { throw new RuntimeException(e); } - final String url = webDriverConfig.getBaseUrl() + "notifications/sent/" + codiceIUN + "/documents/AAR?documentId=safestorage:"; + final String url = baseUrl + "notifications/sent/" + codiceIUN + "/documents/AAR?documentId=safestorage:"; final String urlAvvenutaRicezione = downloadFile.getUrl(url); if (headless && urlAvvenutaRicezione.isEmpty()) { String testoLink = dettaglioNotificaMittenteSection.getTextLinkAvvenutaRicezione(i); @@ -148,7 +166,7 @@ public void downloadECheckFile() { } catch (InterruptedException e) { throw new RuntimeException(e); } - final String urlFileAttestazioneOppponibile = downloadFile.getUrl(webDriverConfig.getBaseUrl()); + final String urlFileAttestazioneOppponibile = downloadFile.getUrl(baseUrl); if (headless && urlFileAttestazioneOppponibile.isEmpty()) { String testoLink = dettaglioNotificaSection.getTextLinkAttestazioniOpponibili(i); logger.error("Non è stato recuperato url per il download per il link: " + testoLink); @@ -174,7 +192,7 @@ public void downloadDocumentiAllegati() { String workingDirectory = System.getProperty("user.dir"); File pathCartella = new File(workingDirectory + "/src/test/resources/dataPopulation/downloadFileNotifica/mittente"); - boolean headless = webDriverConfig.getHeadless().equalsIgnoreCase("true"); + boolean headless = headlessParam.equalsIgnoreCase("true"); if (!downloadFile.controlloEsistenzaCartella(pathCartella)) { pathCartella.mkdirs(); } @@ -196,7 +214,7 @@ public void downloadDocumentiAllegati() { } final String filepath = workingDirectory + "/src/test/resources/dataPopulation/downloadFileNotifica/mittente/notificaN"; - final String urlDocumenti = webDriverConfig.getBaseUrl() + "notifications/sent/" + codiceIUN + "/attachments/documents/0"; + final String urlDocumenti = baseUrl + "notifications/sent/" + codiceIUN + "/attachments/documents/0"; final String urlDocumentiAllegati = downloadFile.getUrl(urlDocumenti); File file = new File(filepath + count + "PN_NOTIFICATION_ATTACHMENTS.pdf"); @@ -248,9 +266,9 @@ public void downloadFileAAR() { logger.info("Si scaricano solo i file AAR all'interno della notifica"); String workingDirectory = System.getProperty("user.dir"); - String variabileAmbiente = webDriverConfig.getEnvironment(); + String variabileAmbiente = environment; File pathCartella = new File(workingDirectory + "/src/test/resources/dataPopulation/downloadFileNotifica/mittente"); - boolean headless = webDriverConfig.getHeadless().equalsIgnoreCase("true"); + boolean headless = headlessParam.equalsIgnoreCase("true"); if (!downloadFile.controlloEsistenzaCartella(pathCartella)) { pathCartella.mkdirs(); } @@ -295,7 +313,7 @@ public void downloadAttestazioniOpponibili() { String workingDirectory = System.getProperty("user.dir"); File pathCartella = new File(workingDirectory + "/src/test/resources/dataPopulation/downloadFileNotifica/mittente"); - boolean headless = webDriverConfig.getHeadless().equalsIgnoreCase("true"); + boolean headless = headlessParam.equalsIgnoreCase("true"); if (!downloadFile.controlloEsistenzaCartella(pathCartella)) { pathCartella.mkdirs(); } @@ -317,7 +335,7 @@ public void downloadAttestazioniOpponibili() { } catch (InterruptedException e) { throw new RuntimeException(e); } - final String urlFileAttestazioneOpponibile = downloadFile.getUrl(webDriverConfig.getBaseUrl()); + final String urlFileAttestazioneOpponibile = downloadFile.getUrl(baseUrl); if (urlFileAttestazioneOpponibile.isEmpty()) { String testoLink = dettaglioNotificaSection.getTextLinkAttestazioniOpponibili(i); logger.error("Non è stato recuperato l'URL per il download per il link: " + testoLink); @@ -339,12 +357,12 @@ public void downloadAttestazioniOpponibili() { @And("Nella sezione Dettaglio Notifiche si seleziona il file, {string}, da scaricare") public void siSelezionanoIlFileDaScaricare(String nomeFile) { logger.info("Si cerca di scaricare il file " + nomeFile); - boolean headless = webDriverConfig.getHeadless().equalsIgnoreCase("true"); + boolean headless = headlessParam.equalsIgnoreCase("true"); this.datiNotifica = dataPopulation.readDataPopulation("datiNotifica.yaml"); dettaglioNotificaMittenteSection.clickLinkAttestazioneOpponibile(nomeFile); WebTool.waitTime(5); - final String url = downloadFile.getUrl(webDriverConfig.getBaseUrl() + "notifications/sent/"); + final String url = downloadFile.getUrl(baseUrl + "notifications/sent/"); if (headless && url.isEmpty()) { logger.error("Non è stato recuperato url per il download per il link: " + nomeFile); Assertions.fail("Non è stato recuperato url per il download per il link: " + nomeFile); diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java index 734dc563f..99f896173 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java @@ -20,13 +20,11 @@ import it.pn.frontend.e2e.stepDefinitions.common.BackgroundTest; import it.pn.frontend.e2e.stepDefinitions.destinatario.personaFisica.LoginPersonaFisicaPagoPA; import it.pn.frontend.e2e.stepDefinitions.destinatario.personaGiuridica.LoginPGPagoPATest; -import it.pn.frontend.e2e.utility.CookieConfig; import it.pn.frontend.e2e.utility.DataPopulation; import it.pn.frontend.e2e.utility.WebTool; import lombok.Setter; import org.junit.jupiter.api.Assertions; -import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/RicercaNotificheMittentePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/RicercaNotificheMittentePagoPATest.java index 5cb313e9d..cf2edc91f 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/RicercaNotificheMittentePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/RicercaNotificheMittentePagoPATest.java @@ -3,6 +3,7 @@ import io.cucumber.java.en.And; import io.cucumber.java.en.Then; import it.pn.frontend.e2e.listeners.Hooks; +import it.pn.frontend.e2e.listeners.HooksNew; import it.pn.frontend.e2e.pages.destinatario.personaGiuridica.PiattaformaNotifichePGPAPage; import it.pn.frontend.e2e.pages.mittente.PiattaformaNotifichePage; import it.pn.frontend.e2e.section.mittente.DestinatarioPASection; @@ -13,6 +14,8 @@ import org.openqa.selenium.WebDriver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import java.text.DateFormat; import java.text.SimpleDateFormat; @@ -26,11 +29,26 @@ public class RicercaNotificheMittentePagoPATest { private static final Logger logger = LoggerFactory.getLogger("NotificaMittenteTest"); - private final WebDriver driver = Hooks.driver; + private Map personaFisica = new HashMap<>(); private Map datiNotifica = new HashMap<>(); private boolean dataFineErrata; + @Autowired + @Lazy + private HooksNew hooks; + @Autowired + private DestinatarioPASection destinatarioPASection; + + @Autowired + private PiattaformaNotifichePage piattaformaNotifichePage; + + @Autowired + private PiattaformaNotifichePGPAPage piattaformaNotifichePGPAPage; + + @Autowired + private HeaderPASection headerPASection; + @And("Nella pagina Piattaforma Notifiche inserire il codice fiscale della persona fisica {string}") public void inserireCodiceFiscale(String dpFile) { logger.info("Avvio ricerca tramite codice fiscale"); @@ -38,11 +56,8 @@ public void inserireCodiceFiscale(String dpFile) { DataPopulation dataPopulation = new DataPopulation(); this.personaFisica = dataPopulation.readDataPopulation(dpFile + ".yaml"); - DestinatarioPASection destinatarioPASection = new DestinatarioPASection(this.driver); String cf = destinatarioPASection.ricercaInformazione(personaFisica.get("codiceFiscale").toString().split(","), 0); - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(this.driver); - piattaformaNotifichePage.insertCodiceFiscale(cf); } @@ -50,20 +65,17 @@ public void inserireCodiceFiscale(String dpFile) { @And("Cliccare sul bottone Filtra") public void cliccareSulBottoneFiltra() { logger.info("Si clicca sul tasto filtra"); - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(this.driver); piattaformaNotifichePage.selectFiltraNotificaButtonMittente(); } @And("Si verifica che non ci sono notifiche disponibili") public void siVerificaCheNonCiSonoNotifiche() { logger.info("Si verifica che non ci sono notifiche disponibili con i fitri applicati"); - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(this.driver); piattaformaNotifichePage.verificaNotificheNonDisponibili(); } @And("Si visualizza correttamente box di pagamento") public void siVisualizzaBoxPagamento() { - PiattaformaNotifichePGPAPage piattaformaNotifichePGPAPage = new PiattaformaNotifichePGPAPage(this.driver); if (piattaformaNotifichePGPAPage.sezionePagamentoDisplayed()) { logger.info("Si visualizza correttamente box di pagamento"); } else { @@ -74,7 +86,6 @@ public void siVisualizzaBoxPagamento() { @And("Si visualizza correttamente il messaggio notifica annullata") public void siVisulizzaIlMessagioAnnullato() { - PiattaformaNotifichePGPAPage piattaformaNotifichePGPAPage = new PiattaformaNotifichePGPAPage(this.driver); if (piattaformaNotifichePGPAPage.messaggioNotificaAnnullataDisplayed()) { logger.info("Si visualizza correttamente il messaggio notifica annulata"); } else { @@ -89,7 +100,6 @@ public void siVisulizzaIlMessagioAnnullato() { public void siVerificaCheIlBottoneFiltraSiaDisabilitato() { logger.info("Si verifica che il bottone Filtra sia disabilitato"); - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(this.driver); if (piattaformaNotifichePage.isFiltraButtonDisabled()) { logger.info("Il bottone Filtra è disabilitato"); } else { @@ -102,7 +112,6 @@ public void siVerificaCheIlBottoneFiltraSiaDisabilitato() { public void cliccareSulBottoneFiltraDelDelegato() { logger.info("Si clicca sul tasto filtra del delegante sotto notifiche"); - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(this.driver); piattaformaNotifichePage.selectFiltraNotificaButtonDestinatario(); } @@ -110,10 +119,8 @@ public void cliccareSulBottoneFiltraDelDelegato() { public void nellaPaginaPiattaformaNotificheVengoRestituiteTutteLeNotificheConIlCodiceFiscaleDelDestinatario(String codiceFiscale) { logger.info("Si verifica i risultati restituiti"); - HeaderPASection headerPASection = new HeaderPASection(this.driver); headerPASection.waitLoadHeaderSection(); - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(this.driver); piattaformaNotifichePage.waitLoadPiattaformaNotifichePAPage(); int listaCF = piattaformaNotifichePage.getListaCf(codiceFiscale); @@ -130,12 +137,9 @@ public void nellaPaginaPiattaformaNotificheVengoRestituiteTutteLeNotificheConIlC public void nellaPaginaPiattaformaNotificheIRisultatiSonoContenutiInUnaOPiuPagine() { logger.info("Se i risultati sono contenuti in più pagine è possibile effettuare il cambio pagina"); - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(this.driver); - if (piattaformaNotifichePage.verificaEsistenzaEPassaggioPagina()) { logger.info("Bottone pagina 2 trovato e cliccato"); - HeaderPASection headerPASection = new HeaderPASection(this.driver); headerPASection.waitLoadHeaderSection(); piattaformaNotifichePage.waitLoadPiattaformaNotifichePAPage(); @@ -149,18 +153,14 @@ public void nellaPaginaPiattaformaNotificheInserireIlCodiceIUNDellaNotifica(Stri logger.info("Si inserisce il codice IUN"); DataPopulation dataPopulation = new DataPopulation(); this.datiNotifica = dataPopulation.readDataPopulation(dpDatiNotifica + ".yaml"); - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(this.driver); piattaformaNotifichePage.inserimentoCodiceIUN(this.datiNotifica.get("codiceIUN").toString()); } @Then("Nella pagina Piattaforma Notifiche vengo restituite tutte le notifiche con il codice IUN della notifica") public void nellaPaginaPiattaformaNotificheVengoRestituiteTutteLeNotificheConIlCodiceIUNDellaNotifica() { logger.info("Si verifica i risultati restituiti"); - - HeaderPASection headerPASection = new HeaderPASection(this.driver); headerPASection.waitLoadHeaderSection(); - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(this.driver); piattaformaNotifichePage.waitLoadPiattaformaNotifichePAPage(); String codiceIUNInserito = piattaformaNotifichePage.getCodiceIunInserito(); boolean result = piattaformaNotifichePage.verificaCodiceIUN(codiceIUNInserito); @@ -179,7 +179,6 @@ public void nellaPaginaPiattaformaNotificheVengoRestituiteTutteLeNotificheConIlC public void nellaPaginaPiattaformaNotificheInserireUnaDataDaDAAA(String dataDA, String dataA) { logger.info("Si inserisce l'arco temporale su cui effettuare la ricerca"); - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(this.driver); if (!piattaformaNotifichePage.controlloDateInserite(dataDA)) { logger.error("Formato della data DA sbagliato. Deve essere dd/MM/yyyy"); Assertions.fail("Formato della data DA sbagliato. Deve essere dd/MM/yyyy"); @@ -196,7 +195,6 @@ public void nellaPaginaPiattaformaNotificheInserireUnaDataDaDAAA(String dataDA, public void nellaPaginaPiattaformaNotificheInserireUnaDataDaDAAAErrata(String dataDA, String dataA) { logger.info("Si inserisce l'arco temporale su cui effettuare la ricerca"); - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(this.driver); if (!piattaformaNotifichePage.controlloDateInserite(dataDA)) { logger.error("Formato della data DA sbagliato. Deve essere dd/MM/yyyy"); Assertions.fail("Formato della data DA sbagliato. Deve essere dd/MM/yyyy"); @@ -211,7 +209,6 @@ public void nellaPaginaPiattaformaNotificheInserireUnaDataDaDAAAErrata(String da @And("Verifica che non è possibile selezionare una data Fine antecedente alla data Inizio") public void verificaArcoTemporaleSelezionato() { logger.info("Si controlla l'arco temporale che sia errato su cui effettuare la ricerca"); - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(this.driver); Assertions.assertFalse(dataFineErrata); } @@ -220,10 +217,8 @@ public void verificaArcoTemporaleSelezionato() { public void nellaPaginaPiattaformaNotificheVengoRestituiteTutteLeNotificheConLaDataDellaNotificaCompresaTraDaEA() { logger.info("Si verifica che le date restituite siano comprese nell'arco temporale"); - HeaderPASection headerPASection = new HeaderPASection(this.driver); headerPASection.waitLoadHeaderSection(); - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(this.driver); piattaformaNotifichePage.waitLoadPiattaformaNotifichePAPage(); int results = piattaformaNotifichePage.getListDate(); @@ -255,7 +250,6 @@ public void nellaPaginaPiattaformaNotificheSelezionareUnoStatoNotificaStato(Stri } } - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(this.driver); piattaformaNotifichePage.selezionareStatoNotifica(statoInserito); } @@ -264,11 +258,8 @@ public void nellaPaginaPiattaformaNotificheSelezionareUnoStatoNotificaStato(Stri public void nellaPaginaPiattaformaNotificheVengoRestituiteTutteLeNotificheConLoStatoDellaNotificaStato(String statoNotifica) { logger.info("Si controllano che gli stati delle notifiche siano uguali a quello selezionato"); - HeaderPASection headerPASection = new HeaderPASection(this.driver); headerPASection.waitLoadHeaderSection(); - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(this.driver); - int numeroStatoNotifica = piattaformaNotifichePage.getListStato(statoNotifica.substring(1)); if (numeroStatoNotifica >= 1) { @@ -285,8 +276,6 @@ public void nellaPaginaPiattaformaNotificheVengoRestituiteTutteLeNotificheConLoS public void nellaPaginaPiattaformaNotificheInserireLaDataInvioNotifica() { logger.info("Inserimento data invio notifica"); - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(this.driver); - Date date = Calendar.getInstance().getTime(); DateFormat dateFormat = new SimpleDateFormat("ddMMyyyy"); String dataNotifica = dateFormat.format(date).replace("-", "/"); @@ -298,7 +287,6 @@ public void nellaPaginaPiattaformaNotificheInserireLaDataInvioNotifica() { public void nellaPaginaPiattaformaNotificheSelezionareLoStatoNotifica() { logger.info("Si seleziona lo stato notifica Depositata"); - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(this.driver); piattaformaNotifichePage.selezionareStatoNotifica("ACCEPTED"); } @@ -308,7 +296,6 @@ public void nellaPaginaPiattaformaNotificheInserireUnArcoTemporale() { LocalDate dateA = LocalDate.now(); LocalDate dateDa = dateA.minusDays(35); - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(this.driver); String dataa = piattaformaNotifichePage.conversioneFormatoDate(dateA.toString()); String datada = piattaformaNotifichePage.conversioneFormatoDate(dateDa.toString()); piattaformaNotifichePage.inserimentoArcoTemporale(datada, dataa); @@ -317,11 +304,9 @@ public void nellaPaginaPiattaformaNotificheInserireUnArcoTemporale() { @And("Il sistema restituisce notifiche con codice fiscale e arco temporale uguale a quelli inserito") public void ilSistemaRestituisceNotificheConCodiceFiscaleEArcoTemporaleUgualeAQuelliInserito() { logger.info("Si verifica i risultati restituiti"); - - HeaderPASection headerPASection = new HeaderPASection(this.driver); +; headerPASection.waitLoadHeaderSection(); - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(this.driver); piattaformaNotifichePage.waitLoadPiattaformaNotifichePAPage(); DataPopulation dataPopulation = new DataPopulation(); @@ -351,7 +336,6 @@ public void ilSistemaRestituisceNotificheConCodiceFiscaleEArcoTemporaleUgualeAQu public void nellaPaginaPiattaformaNotificheInserireUnaData() { LocalDate data = LocalDate.now(); - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(this.driver); String dataInserita = piattaformaNotifichePage.conversioneFormatoDate(data.toString()); piattaformaNotifichePage.inserimentoData(dataInserita); } @@ -361,10 +345,8 @@ public void nellaPaginaPiattaformaNotificheInserireUnaData() { public void ilSistemaRestituisceNotificheConDataEStatoUgualeAQuelliInseritoStato(String statoNotifica) { logger.info("Si verifica i risultati restituiti"); - HeaderPASection headerPASection = new HeaderPASection(this.driver); headerPASection.waitLoadHeaderSection(); - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(this.driver); piattaformaNotifichePage.waitLoadPiattaformaNotifichePAPage(); int numeroStatoNotificha = piattaformaNotifichePage.getListStato(statoNotifica); @@ -390,10 +372,7 @@ public void ilSistemaRestituisceNotificheConDataEStatoUgualeAQuelliInseritoStato public void ilSistemaRestituisceNotificheConArcoTemporaleEStatoUgualeAQuelliInseritoStato(String statoNotifica) { logger.info("Si verifica i risultati restituiti"); - HeaderPASection headerPASection = new HeaderPASection(this.driver); headerPASection.waitLoadHeaderSection(); - - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(this.driver); piattaformaNotifichePage.waitLoadPiattaformaNotifichePAPage(); int results = piattaformaNotifichePage.controlloNumeroRisultatiDate(); if (results >= 1) { @@ -415,7 +394,6 @@ public void ilSistemaRestituisceNotificheConArcoTemporaleEStatoUgualeAQuelliInse @And("Il sistema non restituisce notifiche") public void ilSistemaNonRestituisceNotifiche() { - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(this.driver); if (piattaformaNotifichePage.verificaEsistenzaRisultati()) { logger.info("Il filtro non ha nessun risultato"); } else { @@ -428,10 +406,8 @@ public void ilSistemaNonRestituisceNotifiche() { public void ilSistemaRestituisceNotificheConCodiceFiscaleEDataUgualeAQuelliInserito() { logger.info("Si verifica i risultati restituiti"); - HeaderPASection headerPASection = new HeaderPASection(this.driver); headerPASection.waitLoadHeaderSection(); - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(this.driver); piattaformaNotifichePage.waitLoadPiattaformaNotifichePAPage(); DataPopulation dataPopulation = new DataPopulation(); @@ -461,10 +437,8 @@ public void ilSistemaRestituisceNotificheConCodiceFiscaleEDataUgualeAQuelliInser public void ilSistemaRestituisceNotificheConCodiceFiscaleEStatoUgualeAQuelliInseritoStato(String statoNotifica) { logger.info("Si verifica i risultati restituiti"); - HeaderPASection headerPASection = new HeaderPASection(this.driver); headerPASection.waitLoadHeaderSection(); - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(this.driver); piattaformaNotifichePage.waitLoadPiattaformaNotifichePAPage(); DataPopulation dataPopulation = new DataPopulation(); @@ -493,7 +467,6 @@ public void ilSistemaRestituisceNotificheConCodiceFiscaleEStatoUgualeAQuelliInse @And("Nella pagina piattaforma Notifiche selezionare lo stato notifica {string}") public void nellaPaginaPiattaformaNotificheSelezionareLoStatoNotifica(String statoInserito) { - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(this.driver); switch (statoInserito.toUpperCase()) { case "TUTI GLI STATI" -> statoInserito = "All"; @@ -514,13 +487,11 @@ public void nellaPaginaPiattaformaNotificheSelezionareLoStatoNotifica(String sta @And("Nella pagina Piattaforma Notifiche inserire il codice IUN della notifica {string} con allegato") public void nellaPaginaPiattaformaNotificheInserireIlCodiceIUNDellaNotificaConAllegato(String codiceIUN) { - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(this.driver); piattaformaNotifichePage.inserimentoCodiceIUN(codiceIUN); } @And("Si verifica che i campi della ricerca delle date siano errate") public void siVerificaCheICampiDellaRicercaDelleDateSianoErrate() { - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(this.driver); if (piattaformaNotifichePage.controlloDateErrate()) { logger.info("Le date inserite sono errate"); } else { @@ -531,7 +502,6 @@ public void siVerificaCheICampiDellaRicercaDelleDateSianoErrate() { @Then("Nella pagina piattaforma Notifiche è presente un campo di ricerca con un menu a tendina per selezionare lo stato della notifica") public void nellaPaginaPiattaformaNotificheÈPresenteUnCampoDiRicercaConUnMenuATendinaPerSelezionareLoStatoDellaNotifica() { - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(this.driver); if (piattaformaNotifichePage.controlloEsistenzaStato()) { logger.info("Campo stato notifica trovato"); } else { @@ -543,7 +513,6 @@ public void siVerificaCheICampiDellaRicercaDelleDateSianoErrate() { @And("Nella pagina piattaforma notifiche si effettua la ricerca per codice IUN {string}") public void nellaPaginaPiattformaNotificheSiEffettuaLaRicercaPerCodiceIUN(String codiceIUN) { logger.info("Si cerca una notifica tramite IUN: {}", codiceIUN); - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(driver); piattaformaNotifichePage.inserimentoCodiceIUN(codiceIUN); piattaformaNotifichePage.selectFiltraNotificaButtonMittente(); } @@ -552,14 +521,12 @@ public void nellaPaginaPiattformaNotificheSiEffettuaLaRicercaPerCodiceIUN(String @And("Si clicca la notifica ricercata") public void siCliccaLaNotificaRicercata() { logger.info("Se presente si clicca la notifica ricercata"); - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(driver); piattaformaNotifichePage.clickNotificaRicercata(); } @And("Si clicca sul bottone vedi tutti") public void siCliccaVediTutti() { logger.info("Si clicca sul bottone vedi tutti"); - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(driver); piattaformaNotifichePage.clickVediTutti(); } } From 0d261f2fb1227f3de76e4f6e6af0ea760f1ddad2 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Tue, 29 Oct 2024 12:22:28 +0100 Subject: [PATCH 155/212] update disservizi --- .../common/BackgroundTest.java | 3 +-- .../personaGiuridica/DisserviziAppPGTest.java | 21 +++++++++---------- 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/BackgroundTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/BackgroundTest.java index 83f324a03..4a3f75700 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/BackgroundTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/BackgroundTest.java @@ -31,8 +31,7 @@ public class BackgroundTest { private final LoginPGPagoPATest loginPGPagoPATest = new LoginPGPagoPATest(); private final LoginPersonaFisicaPagoPA personaFisicaPagoPA = new LoginPersonaFisicaPagoPA(); private final DeleghePGPagoPATest deleghePGPagoPATest = new DeleghePGPagoPATest(); - @Autowired - private DisserviziAppPGTest disserviziAppPGTest; + private final DisserviziAppPGTest disserviziAppPGTest = new DisserviziAppPGTest(); private final HelpdeskTest helpdeskTest = new HelpdeskTest(); private final NotifichePGPagoPATest notifichePGPagoPATest = new NotifichePGPagoPATest(); private final RecapitiTest recapitiTest = new RecapitiTest(); diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/DisserviziAppPGTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/DisserviziAppPGTest.java index 36c887c91..9b7b4d59d 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/DisserviziAppPGTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/DisserviziAppPGTest.java @@ -13,27 +13,26 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; +import org.springframework.context.annotation.Primary; import java.util.Set; - +@Primary public class DisserviziAppPGTest { private final Logger logger = LoggerFactory.getLogger("DisserviziAppPGTest"); - @Setter - private WebDriver driver; + @Autowired + @Lazy + private HooksNew hooks; + @Autowired private DisserviziAppPage disserviziAppPage; @Autowired private PiattaformaNotifichePGPAPage piattaformaNotifichePGPAPage; - @Autowired - public DisserviziAppPGTest(WebDriver driver) { - this.driver = driver; - } - @Given("Nella dashboard persona giuridica clicca su disservizi app") public void nellaDashboardPersonaGiuridicaCliccaSuDisserviziApp() { @@ -63,11 +62,11 @@ public void siVisualizzaStoricoDisservizi() { public void siVerificaAvvenutoDisservizioInPaginaStatoPiattaforma() { BackgroundTest backgroundTest = new BackgroundTest(); logger.info("Torno sulla scheda della piattaforma send"); - String helpdeskHandle = driver.getWindowHandle(); - Set windowHandles = driver.getWindowHandles(); + String helpdeskHandle = hooks.getDriver().getWindowHandle(); + Set windowHandles = hooks.getDriver().getWindowHandles(); for (String handle : windowHandles) { if (!handle.equals(helpdeskHandle)) { - this.driver.switchTo().window(handle); + this.hooks.getDriver().switchTo().window(handle); break; } } From 22ce94636483f1de39639afaa55566e0ee696ca8 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Tue, 29 Oct 2024 12:48:10 +0100 Subject: [PATCH 156/212] refactor --- .../pn/frontend/e2e/config/WebDriverConfig.java | 1 - .../personaFisica/ComeVuoiAccederePage.java | 4 ++++ .../personaGiuridica/SelezionaImpresaPage.java | 2 +- .../CucumberSpringIntegration.java | 3 ++- .../personaFisica/LoginPersonaFisicaPagoPA.java | 17 ++++++++--------- .../personaGiuridica/DisserviziAppPGTest.java | 3 --- .../personaGiuridica/LoginPGPagoPATest.java | 10 +++------- .../mittente/LoginMittentePagoPA.java | 9 +++------ 8 files changed, 21 insertions(+), 28 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/config/WebDriverConfig.java b/src/main/java/it/pn/frontend/e2e/config/WebDriverConfig.java index cb415debe..174e2d1f7 100644 --- a/src/main/java/it/pn/frontend/e2e/config/WebDriverConfig.java +++ b/src/main/java/it/pn/frontend/e2e/config/WebDriverConfig.java @@ -184,7 +184,6 @@ public class WebDriverConfig { public WebDriver driver; @Autowired - @Getter public CookieConfig cookieConfig; /** diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/ComeVuoiAccederePage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/ComeVuoiAccederePage.java index 940d30f0a..8217ee89a 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/ComeVuoiAccederePage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/ComeVuoiAccederePage.java @@ -10,7 +10,10 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +@Component public class ComeVuoiAccederePage extends BasePage { private static final Logger logger = LoggerFactory.getLogger("ComeVuoiAccederePage"); @@ -18,6 +21,7 @@ public class ComeVuoiAccederePage extends BasePage { @FindBy(id = "spidButton") WebElement spidButton; + @Autowired public ComeVuoiAccederePage(WebDriver driver) { super(driver); } diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/SelezionaImpresaPage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/SelezionaImpresaPage.java index 7211cba88..cc80316c6 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/SelezionaImpresaPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/SelezionaImpresaPage.java @@ -25,7 +25,7 @@ public SelezionaImpresaPage(WebDriver driver) { public void waitLoadSelezionaImpresaPage() { - WebTool.waitTime(5); + WebTool.waitTime(10); By titlePageBy = By.xpath("//h3[contains(text(),'Seleziona la tua impresa')]"); this.getWebDriverWait(30).withMessage("Il titolo della pagina Seleziona la tua impresa non è visibile").until(ExpectedConditions.visibilityOfElementLocated(titlePageBy)); this.getWebDriverWait(30).withMessage("Il bottone accedi della pagina Seleziona la tua impresa non è visibile").until(ExpectedConditions.visibilityOf(this.accediButton)); diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java index 940110725..89a10db37 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java @@ -72,7 +72,8 @@ AcccediAreaRiservataPAPage.class, DettaglioNotificaSection.class, NotificheDestinatarioPage.class, - HelpdeskPage.class + HelpdeskPage.class, + ComeVuoiAccederePage.class }) diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java index 6ac48cab3..07871d8b6 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java @@ -69,7 +69,8 @@ public class LoginPersonaFisicaPagoPA { private CookiesSection cookiesSection; @Autowired - private CookieConfig cookieConfig; + private ComeVuoiAccederePage comeVuoiAccederePage; + @Given("Login Page persona fisica {string} viene visualizzata") @@ -133,14 +134,13 @@ public void loginConDestinatario(String datipersonaFisica) { logger.info("cookies start"); - if (!cookieConfig.isCookieEnabled()) { + if (!webDriverConfig.getCookieConfig().isCookieEnabled()) { if (cookiesSection.waitLoadCookiesPage()) { cookiesSection.selezionaAccettaTuttiButton(); } } logger.info("cookies end"); - ComeVuoiAccederePage comeVuoiAccederePage = new ComeVuoiAccederePage(this.hooks.getDriver()); comeVuoiAccederePage.waitLoadComeVuoiAccederePage(); comeVuoiAccederePage.selezionaSpidButton(); @@ -185,7 +185,7 @@ public void loginConDestinatario(Map datiPF) { logger.info("user persona fisica : " + webDriverConfig.getUserCesare()); logger.info("cookies start"); - if (!cookieConfig.isCookieEnabled()) { + if (!webDriverConfig.getCookieConfig().isCookieEnabled()) { if (cookiesSection.waitLoadCookiesPage()) { cookiesSection.selezionaAccettaTuttiButton(); } @@ -193,7 +193,7 @@ public void loginConDestinatario(Map datiPF) { logger.info("cookies end"); accediAPiattaformaNotifichePage.waitLoadAccediAPiattaformaNotifichePage(); accediAPiattaformaNotifichePage.selezionaAccediButton(); - if (!cookieConfig.isCookieEnabled()) { + if (!webDriverConfig.getCookieConfig().isCookieEnabled()) { if (cookiesSection.waitLoadCookiesPage()) { cookiesSection.selezionaAccettaTuttiButton(); } @@ -241,7 +241,7 @@ public void loginConDestinatario(Map datiPF) { @Then("Home page persona fisica viene visualizzata correttamente") public void homePageDestinatarioVieneVisualizzataCorrettamente() { - if (!cookieConfig.isCookieEnabled()) { + if (!webDriverConfig.getCookieConfig().isCookieEnabled()) { if (cookiesSection.waitLoadCookiesPage()) { cookiesSection.selezionaAccettaTuttiButton(); } @@ -267,7 +267,7 @@ public void homePageDestinatarioVieneVisualizzataCorrettamente() { } headerPFSection.waitLoadHeaderDESection(); - if (!cookieConfig.isCookieEnabled()) { + if (!webDriverConfig.getCookieConfig().isCookieEnabled()) { if (cookiesSection.waitLoadCookiesPage()) { cookiesSection.selezionaAccettaTuttiButton(); } @@ -317,10 +317,9 @@ public void logoutDaPortaleDestinatario() { headerPFSection.selezionaProfiloUtenteMenu(); headerPFSection.selezionaVoceEsci(); - ComeVuoiAccederePage comeVuoiAccederePage = new ComeVuoiAccederePage(this.hooks.getDriver()); comeVuoiAccederePage.waitLoadComeVuoiAccederePage(); - if (!cookieConfig.isCookieEnabled()) { + if (!webDriverConfig.getCookieConfig().isCookieEnabled()) { if (cookiesSection.waitLoadCookiesPage()) { logger.info("banner dei cookies visualizzato"); cookiesSection.selezionaAccettaTuttiButton(); diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/DisserviziAppPGTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/DisserviziAppPGTest.java index 9b7b4d59d..1a2fe3a50 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/DisserviziAppPGTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/DisserviziAppPGTest.java @@ -7,9 +7,7 @@ import it.pn.frontend.e2e.pages.destinatario.personaGiuridica.PiattaformaNotifichePGPAPage; import it.pn.frontend.e2e.stepDefinitions.common.BackgroundTest; import it.pn.frontend.e2e.utility.WebTool; -import lombok.Setter; import org.junit.jupiter.api.Assertions; -import org.openqa.selenium.WebDriver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -26,7 +24,6 @@ public class DisserviziAppPGTest { @Autowired @Lazy private HooksNew hooks; - @Autowired private DisserviziAppPage disserviziAppPage; @Autowired diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java index 74d487536..540823bc9 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java @@ -73,9 +73,6 @@ public class LoginPGPagoPATest { @Autowired private DestinatarioPage destinatarioPage; - @Autowired - private CookieConfig cookieConfig; - @Autowired private CookiesSection cookiesSection; @@ -164,7 +161,7 @@ public void loginPortalePersonaGiuridicaTramiteRequestMethod() { hooks.getDriver().get(this.urlPersonaGiuridica.get("urlPortale")); - if (!cookieConfig.isCookieEnabled()) { + if (!webDriverConfig.getCookieConfig().isCookieEnabled()) { if (cookiesSection.waitLoadCookiesPage()) { cookiesSection.selezionaAccettaTuttiButton(); } @@ -256,8 +253,7 @@ public void homePagePersonaGiuridicaVieneVisualizzataCorrettamente() { public void loginConPersonaGiuridica(Map datiPG) { logger.info("La persona guiridica cerca di fare il login"); - - if (!cookieConfig.isCookieEnabled()) { + if (!webDriverConfig.getCookieConfig().isCookieEnabled()) { if (cookiesSection.waitLoadCookiesPage()) { cookiesSection.selezionaAccettaTuttiButton(); } @@ -328,7 +324,7 @@ public void loginPortalePersonaGiuridicaTramiteRequestMethod(String dpFile) { hooks.getDriver().get(this.urlPersonaGiuridica.get("urlPortale")); - if (!cookieConfig.isCookieEnabled()) { + if (!webDriverConfig.getCookieConfig().isCookieEnabled()) { if (cookiesSection.waitLoadCookiesPage()) { cookiesSection.selezionaAccettaTuttiButton(); } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/LoginMittentePagoPA.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/LoginMittentePagoPA.java index 24dd97735..38d4765b5 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/LoginMittentePagoPA.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/LoginMittentePagoPA.java @@ -56,9 +56,6 @@ public class LoginMittentePagoPA { @Autowired private CookiesSection cookiesSection; - @Autowired - private CookieConfig cookieConfig; - @Autowired private AcccediAreaRiservataPAPage acccediAreaRiservataPAPage; @@ -158,7 +155,7 @@ public void loginConMittente(String datiMittenteFile) { // Verifica della presenza dell'URL e dei cookie per proseguire con l'accettazione dei cookie if (hooks.getDriver().getCurrentUrl().contains(webDriverConfig.getUrlSelfCare()) || - !cookieConfig.isCookieEnabled()) { + !webDriverConfig.getCookieConfig().isCookieEnabled()) { logger.info("cookies start"); cookiesSection.selezionaAccettaTuttiButton(); @@ -195,7 +192,7 @@ public void loginConMittente(Map datiMittenteFile) { preAccediAreaRiservataPAPage.selezionaProcediAlLoginButton(); if (hooks.getDriver().getCurrentUrl().contains(webDriverConfig.getUrlSelfCare()) || - !cookieConfig.isCookieEnabled()) { + !webDriverConfig.getCookieConfig().isCookieEnabled()) { logger.info("cookies start"); cookiesSection.selezionaAccettaTuttiButton(); if (cookiesSection.waitLoadCookiesPage()) { @@ -414,7 +411,7 @@ public void logoutDaPortaleMittente() { headerPASection.waitLoadHeaderSection(); headerPASection.selezionaEsciButton(); - if (!cookieConfig.isCookieEnabled()) { + if (!webDriverConfig.getCookieConfig().isCookieEnabled()) { if (cookiesSection.waitLoadCookiesPage()) { cookiesSection.selezionaAccettaTuttiButton(); } From fdf1e7e2785f9a6eae71ed04b307fdd7c8c7622a Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Tue, 29 Oct 2024 14:45:20 +0100 Subject: [PATCH 157/212] update --- .../DownloadFileMittentePagoPATest.java | 21 +++++-------------- 1 file changed, 5 insertions(+), 16 deletions(-) diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java index 6975b375e..2dd384799 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java @@ -70,8 +70,6 @@ public class DownloadFileMittentePagoPATest { private DettaglioNotificaSection dettaglioNotificaSection; - - @When("Nella pagina Piattaforma Notifiche si clicca sulla notifica restituita") public void clickNotificaRestituita() { logger.info("Si clicca sulla notifica restituita"); @@ -137,7 +135,7 @@ public void downloadECheckFile() { for (int i = 1; i < numeroLinkAvvenutaRicezione; i++) { dettaglioNotificaMittenteSection.clickLinkAvvenutaRicezione(i); WebTool.waitTime(5); - final String url = webDriverConfig.getBaseUrl() + "notifications/sent/" + codiceIUN + "/documents/AAR?documentId=safestorage:"; + final String url = baseUrl + "notifications/sent/" + codiceIUN + "/documents/AAR?documentId=safestorage:"; final String urlAvvenutaRicezione = downloadFile.getUrl(url); if (headless && urlAvvenutaRicezione.isEmpty()) { String testoLink = dettaglioNotificaMittenteSection.getTextLinkAvvenutaRicezione(i); @@ -157,7 +155,7 @@ public void downloadECheckFile() { for (int i = 0; i < numeroLinkAttestazioniOpponibile; i++) { dettaglioNotificaSection.clickLinkAttestazioniOpponibile(i); WebTool.waitTime(5); - final String urlFileAttestazioneOpponibile = downloadFile.getUrl(webDriverConfig.getBaseUrl()); + final String urlFileAttestazioneOpponibile = downloadFile.getUrl(baseUrl); if (headless && urlFileAttestazioneOpponibile.isEmpty()) { String testoLink = dettaglioNotificaSection.getTextLinkAttestazioniOpponibili(i); logger.error("Non è stato recuperato url per il download per il link: " + testoLink); @@ -178,7 +176,7 @@ public void downloadECheckFile() { @And("Si visualizza correttamente la tabella dei disservizi") public void siVisualizzaCorrettamenteLaTabellaDeiDisservizi() { logger.info("Si visualizza correttamente la tabella dei disservizi"); - DisserviziAppPAPage disserviziAppPAPage = new DisserviziAppPAPage(driver); + DisserviziAppPAPage disserviziAppPAPage = new DisserviziAppPAPage(hooks.getDriver()); disserviziAppPAPage.waitLoadDisserviziTable(); } @@ -186,8 +184,8 @@ public void siVisualizzaCorrettamenteLaTabellaDeiDisservizi() { public void downloadDocumentiAllegati() { logger.info("Si scaricano solo i documenti Allegati all'interno della notifica"); - DettaglioNotificaMittenteSection dettaglioNotificaMittenteSection = new DettaglioNotificaMittenteSection(driver); - DettaglioNotificaSection dettaglioNotificaSection = new DettaglioNotificaSection(driver); + DettaglioNotificaMittenteSection dettaglioNotificaMittenteSection = new DettaglioNotificaMittenteSection(hooks.getDriver()); + DettaglioNotificaSection dettaglioNotificaSection = new DettaglioNotificaSection(hooks.getDriver()); String workingDirectory = System.getProperty("user.dir"); File pathCartella = new File(workingDirectory + "/src/test/resources/dataPopulation/downloadFileNotifica/mittente"); @@ -258,11 +256,6 @@ public void clickDocumentoAttestazioneScaduta() { public void downloadFileAAR() { logger.info("Si scaricano solo i file AAR all'interno della notifica"); - DettaglioNotificaMittenteSection dettaglioNotificaMittenteSection = new DettaglioNotificaMittenteSection(this.driver); - DettaglioNotificaSection dettaglioNotificaSection = new DettaglioNotificaSection(this.driver); - DataPopulation dataPopulation = new DataPopulation(); - - String workingDirectory = System.getProperty("user.dir"); String variabileAmbiente = environment; File pathCartella = new File(workingDirectory + "/src/test/resources/dataPopulation/downloadFileNotifica/mittente"); @@ -308,10 +301,6 @@ public void downloadFileAAR() { public void downloadAttestazioniOpponibili() { logger.info("Si scaricano solo i file per attestazioni opponibili all'interno della notifica"); - DettaglioNotificaMittenteSection dettaglioNotificaMittenteSection = new DettaglioNotificaMittenteSection(this.driver); - DettaglioNotificaSection dettaglioNotificaSection = new DettaglioNotificaSection(this.driver); - DataPopulation dataPopulation = new DataPopulation(); - String workingDirectory = System.getProperty("user.dir"); File pathCartella = new File(workingDirectory + "/src/test/resources/dataPopulation/downloadFileNotifica/mittente"); From 56cea0a7fcce150eaa43b05a4665cb2b9b63be96 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Tue, 29 Oct 2024 15:44:58 +0100 Subject: [PATCH 158/212] update DashboardMittente --- .../singleton/NotificationSingleton.java | 2 ++ .../e2e/pages/mittente/DashboardPage.java | 11 ++++++++++- .../CucumberSpringIntegration.java | 5 ++++- .../LoginPersonaFisicaPagoPA.java | 2 -- .../mittente/DashboardMittentePagoPATest.java | 19 ++++++++++++++----- .../DownloadFileMittentePagoPATest.java | 10 +++------- 6 files changed, 33 insertions(+), 16 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/model/singleton/NotificationSingleton.java b/src/main/java/it/pn/frontend/e2e/model/singleton/NotificationSingleton.java index 6a40b4ba0..60b3791fc 100644 --- a/src/main/java/it/pn/frontend/e2e/model/singleton/NotificationSingleton.java +++ b/src/main/java/it/pn/frontend/e2e/model/singleton/NotificationSingleton.java @@ -1,6 +1,8 @@ package it.pn.frontend.e2e.model.singleton; +import org.springframework.stereotype.Component; + import java.util.Map; import java.util.concurrent.ConcurrentHashMap; diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/DashboardPage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/DashboardPage.java index 08b863c22..306764b2e 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/DashboardPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/DashboardPage.java @@ -157,7 +157,16 @@ public void insertDataErrata() { dateDa.get(0).sendKeys("01/01/1111"); } - public void insertDataCorretta() { + public void insertDataErrataNotificheDigitali(){ + getWebDriverWait(10).withMessage("Il filtro di data non visibile").until(ExpectedConditions.visibilityOf(dateDa.get(1))); + logger.info("Si inserisce una data errata"); + dateDa.get(1).click(); + Actions action = new Actions(driver); + action.keyDown(Keys.CONTROL).sendKeys("a").keyUp(Keys.CONTROL).sendKeys(Keys.BACK_SPACE).perform(); + WebTool.waitTime(1); + dateDa.get(1).sendKeys("01/01/1111"); + } + public void insertDataCorretta(){ getWebDriverWait(10).withMessage("Il filtro di data non visibile").until(ExpectedConditions.visibilityOf(dateDa.get(0))); logger.info("Si inserisce una data corretta"); dateDa.get(0).click(); diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java index 89a10db37..2ac414cf8 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java @@ -9,6 +9,7 @@ import it.pn.frontend.e2e.config.WebDriverConfig; import it.pn.frontend.e2e.listeners.LoggerStartupListener; import it.pn.frontend.e2e.listeners.NetWorkInfo; +import it.pn.frontend.e2e.model.singleton.NotificationSingleton; import it.pn.frontend.e2e.pages.destinatario.DestinatarioPage; import it.pn.frontend.e2e.pages.destinatario.personaFisica.*; import it.pn.frontend.e2e.pages.destinatario.personaGiuridica.*; @@ -73,7 +74,9 @@ DettaglioNotificaSection.class, NotificheDestinatarioPage.class, HelpdeskPage.class, - ComeVuoiAccederePage.class + ComeVuoiAccederePage.class, + DashboardPage.class, + NotificationSingleton.class }) diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java index 07871d8b6..81c3dc4a5 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java @@ -14,7 +14,6 @@ import it.pn.frontend.e2e.pages.destinatario.personaFisica.*; import it.pn.frontend.e2e.section.CookiesSection; import it.pn.frontend.e2e.section.destinatario.personaFisica.HeaderPFSection; -import it.pn.frontend.e2e.utility.CookieConfig; import it.pn.frontend.e2e.utility.DataPopulation; import it.pn.frontend.e2e.utility.WebTool; import org.junit.jupiter.api.Assertions; @@ -23,7 +22,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Primary; -import org.springframework.stereotype.Component; import java.util.Map; import java.util.concurrent.TimeUnit; diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DashboardMittentePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DashboardMittentePagoPATest.java index f4e12eb00..4e4be47e0 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DashboardMittentePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DashboardMittentePagoPATest.java @@ -4,22 +4,31 @@ import io.cucumber.java.en.And; import io.cucumber.java.en.Then; import io.cucumber.java.en.When; -import it.pn.frontend.e2e.listeners.Hooks; +import it.pn.frontend.e2e.listeners.HooksNew; import it.pn.frontend.e2e.pages.mittente.DashboardPage; import it.pn.frontend.e2e.pages.mittente.PiattaformaNotifichePage; import org.junit.jupiter.api.Assertions; -import org.openqa.selenium.WebDriver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; +import org.springframework.context.annotation.Primary; import java.awt.*; +@Primary public class DashboardMittentePagoPATest { private static final Logger logger = LoggerFactory.getLogger("DashboardMittentePagoPATest"); - private final WebDriver driver = Hooks.driver; - DashboardPage dashboardPage = new DashboardPage(this.driver); - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(this.driver); + + @Autowired + @Lazy + private HooksNew hooks; + + @Autowired + private DashboardPage dashboardPage; + @Autowired + private PiattaformaNotifichePage piattaformaNotifichePage; @When("Nella pagina Piattaforma Notifiche cliccare sul bottone Statistiche") diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java index 2dd384799..c835ddc29 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java @@ -22,6 +22,8 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Primary; +import org.springframework.stereotype.Component; import java.io.File; import java.util.HashMap; @@ -29,7 +31,7 @@ import java.util.Map; import java.util.concurrent.TimeUnit; -@Component +@Primary public class DownloadFileMittentePagoPATest { private static final Logger logger = LoggerFactory.getLogger("DownloadFileMittentePagoPATest"); @@ -173,12 +175,6 @@ public void downloadECheckFile() { downloadFile.controlloDownload(pathOfDownloadedFile, count - 1); } - @And("Si visualizza correttamente la tabella dei disservizi") - public void siVisualizzaCorrettamenteLaTabellaDeiDisservizi() { - logger.info("Si visualizza correttamente la tabella dei disservizi"); - DisserviziAppPAPage disserviziAppPAPage = new DisserviziAppPAPage(hooks.getDriver()); - disserviziAppPAPage.waitLoadDisserviziTable(); - } @And("Nella sezione Dettaglio Notifiche si scarica il documento allegato") public void downloadDocumentiAllegati() { From 1ce16c28c331092b894172c640385276c8f59650 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Tue, 29 Oct 2024 16:43:39 +0100 Subject: [PATCH 159/212] update NotificationSingleton ; --- .../pn/frontend/e2e/pages/destinatario/DestinatarioPage.java | 4 +++- .../frontend/e2e/pages/mittente/PiattaformaNotifichePage.java | 3 ++- .../java/it/pn/frontend/e2e/rest/RestRaddAlternative.java | 4 +++- .../personaFisica/RicercaNotifichePersonaFisicaPATest.java | 4 +++- .../stepDefinitions/mittente/NotificaMittentePagoPATest.java | 4 +++- 5 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/DestinatarioPage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/DestinatarioPage.java index 6856748a7..d0eee6321 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/DestinatarioPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/DestinatarioPage.java @@ -39,7 +39,6 @@ public class DestinatarioPage extends BasePage { @Getter @Setter private NewNotificationRequest notificationRequest; - private final NotificationSingleton notificationSingleton = NotificationSingleton.getInstance(); private final RestNotification restNotification = new RestNotification(); private static final NotificationBuilder notificationBuilder = new NotificationBuilder(); private int destinatariNumber; @@ -51,6 +50,9 @@ public DestinatarioPage(WebDriver driver) { super(driver); } + @Autowired + private NotificationSingleton notificationSingleton; + @FindBy(id = "startDate") WebElement dataInizioField; @FindBy(id = "endDate") diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java index 142cd1ccc..d925cc736 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java @@ -31,7 +31,6 @@ public class PiattaformaNotifichePage extends BasePage { private static final Logger logger = LoggerFactory.getLogger("notificaMittentePagoPA"); - private final NotificationSingleton notificationSingleton = NotificationSingleton.getInstance(); @FindBy(id = "recipientId") WebElement cfTextField; @@ -110,6 +109,8 @@ public class PiattaformaNotifichePage extends BasePage { @Autowired private WebDriverConfig webDriverConfig; + @Autowired + private NotificationSingleton notificationSingleton; @Autowired public PiattaformaNotifichePage(WebDriver driver) { diff --git a/src/main/java/it/pn/frontend/e2e/rest/RestRaddAlternative.java b/src/main/java/it/pn/frontend/e2e/rest/RestRaddAlternative.java index 81280304f..fead15009 100644 --- a/src/main/java/it/pn/frontend/e2e/rest/RestRaddAlternative.java +++ b/src/main/java/it/pn/frontend/e2e/rest/RestRaddAlternative.java @@ -20,7 +20,6 @@ @Slf4j public class RestRaddAlternative { - NotificationSingleton notificationSingleton = NotificationSingleton.getInstance(); private final Map headers = new HashMap<>(); private final String token; // private final String env = System.getProperty("environment"); @@ -29,6 +28,9 @@ public class RestRaddAlternative { @Autowired private WebDriverConfig webDriverConfig; + @Autowired + private NotificationSingleton notificationSingleton; + public RestRaddAlternative(String token) { this.token = token; } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RicercaNotifichePersonaFisicaPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RicercaNotifichePersonaFisicaPATest.java index 9cd3d490a..74af9c299 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RicercaNotifichePersonaFisicaPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RicercaNotifichePersonaFisicaPATest.java @@ -29,7 +29,6 @@ public class RicercaNotifichePersonaFisicaPATest { private static final Logger logger = LoggerFactory.getLogger("RicercaNotifichePersonaFisicaTest"); - private final NotificationSingleton notificationSingleton = NotificationSingleton.getInstance(); private Map datiNotifica = new HashMap<>(); private Map datiNotificaNonValidoPF; @@ -37,6 +36,9 @@ public class RicercaNotifichePersonaFisicaPATest { @Lazy private HooksNew hooks; + @Autowired + private NotificationSingleton notificationSingleton; + @Autowired private PiattaformaNotifichePage piattaformaNotifichePage; @Autowired diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java index 99f896173..f3a9bf304 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java @@ -66,7 +66,6 @@ public class NotificaMittentePagoPATest { private final String PF = "persona fisica"; private final String PG = "persona giuridica"; private final String PA = "pubblica amministrazione"; - private final NotificationSingleton notificationSingleton = NotificationSingleton.getInstance(); private Map datiNotifica = new HashMap<>(); private Map datiNotificaMap = new HashMap<>(); private Map personaFisica = new HashMap<>(); @@ -77,6 +76,9 @@ public class NotificaMittentePagoPATest { @Setter private String ApiKey; + + @Autowired + private NotificationSingleton notificationSingleton; @Autowired private CookiesSection cookiesSection; @Autowired From f8429eb55e3038818d5e50c3fd2b60971d030433 Mon Sep 17 00:00:00 2001 From: scritelli Date: Tue, 29 Oct 2024 16:45:28 +0100 Subject: [PATCH 160/212] Ristrutturazione classe con springboot in attesa di test con la suite di mittente inoltre refactoring del codice ottimizzato secondo i standard --- .../it/pn/frontend/e2e/common/BasePage.java | 82 +++++++++++-------- .../e2e/pages/mittente/ScegliSpidPAPage.java | 51 +++++++----- .../pages/mittente/SelezionaEntePAPage.java | 72 ++++++++++------ 3 files changed, 123 insertions(+), 82 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/common/BasePage.java b/src/main/java/it/pn/frontend/e2e/common/BasePage.java index 2ad5f7dac..656aefb30 100644 --- a/src/main/java/it/pn/frontend/e2e/common/BasePage.java +++ b/src/main/java/it/pn/frontend/e2e/common/BasePage.java @@ -14,52 +14,65 @@ import java.util.List; import java.util.concurrent.TimeUnit; +/* +*Modifiche e Ottimizzazioni +Costruttore con @Autowired: Iniezione di WebDriver tramite Spring Boot. +loadComponentWaitTime inizializzato tramite System.getProperty: Permette di definire il valore come variabile di ambiente con un valore predefinito di 10. +Metodo retryClickAndInsertText: Separato in un metodo privato per evitare codice duplicato. +Commenti migliorati: Documentazione migliorata per una migliore comprensione di alcune funzioni. +Thread.currentThread().interrupt() in waitLoadPage(): Gestisce correttamente l’interruzione del thread per conformità alle best practices di Java. +* +* +* */ + @Component public class BasePage { - protected WebDriver driver; + protected int loadComponentWaitTime; + private static final Logger loggerBase = LoggerFactory.getLogger(BasePage.class); - //protected int loadComponentWaitTime = Integer.parseInt(System.getProperty("loadComponentWaitTime")); - protected int loadComponentWaitTime; - - private static final Logger loggerBase = LoggerFactory.getLogger("BasePage"); - + @Autowired public BasePage(WebDriver driver) { this.driver = driver; PageFactory.initElements(this.driver, this); + loadComponentWaitTime = Integer.parseInt(System.getProperty("loadComponentWaitTime", "10")); } protected void scrollToElementClickAndInsertText(WebElement element, String text) { try { if (!element.isDisplayed()) { - loggerBase.info("scroll elemento"); - this.js().executeScript("arguments[0].scrollIntoView(true);", element); + loggerBase.info("Scrolling to element"); + js().executeScript("arguments[0].scrollIntoView(true);", element); } - this.js().executeScript("arguments[0].click()", element); + js().executeScript("arguments[0].click()", element); if (text != null) { - loggerBase.info("inserimento testo"); + loggerBase.info("Inserting text"); element.sendKeys(text); } } catch (ElementNotInteractableException e) { - loggerBase.error("elemento non interagibile"); - this.js().executeScript("arguments[0].click()", element); - if (text != null) { - element.sendKeys(text); - } + loggerBase.error("Element not interactable", e); + retryClickAndInsertText(element, text); + } + } + + private void retryClickAndInsertText(WebElement element, String text) { + js().executeScript("arguments[0].click()", element); + if (text != null) { + element.sendKeys(text); } } public void scrollToElementAndClick(WebElement element) { try { if (!element.isDisplayed()) { - loggerBase.info("scroll elemento"); - this.js().executeScript("arguments[0].scrollIntoView(true);", element); + loggerBase.info("Scrolling to element"); + js().executeScript("arguments[0].scrollIntoView(true);", element); } - this.js().executeScript("arguments[0].click()", element); + js().executeScript("arguments[0].click()", element); } catch (ElementNotInteractableException e) { - loggerBase.error("elemento non interagibile"); - this.js().executeScript("arguments[0].click()", element); + loggerBase.error("elemento non interagibile", e); + js().executeScript("arguments[0].click()", element); } } @@ -68,11 +81,11 @@ protected WebDriverWait getWebDriverWait(long timeout) { } protected WebElement element(By by) { - return this.driver.findElement(by); + return driver.findElement(by); } protected List elements(By by) { - return this.driver.findElements(by); + return driver.findElements(by); } protected JavascriptExecutor js() { @@ -83,33 +96,33 @@ public void waitLoadPage() { try { TimeUnit.SECONDS.sleep(10); } catch (InterruptedException e) { - throw new RuntimeException(e); + Thread.currentThread().interrupt(); + throw new RuntimeException("Interrupted while waiting for page load", e); } } public void vaiInFondoAllaPagina() { - this.js().executeScript("window.scrollBy(0,document.body.scrollHeight)"); + js().executeScript("window.scrollBy(0,document.body.scrollHeight)"); } public void aggiornamentoPagina() { - this.driver.navigate().refresh(); + driver.navigate().refresh(); } public void waitLoadingSpinner() { - By loadingSpinnerBy = By.xpath("//span[@role = 'loadingSpinner']"); - getWebDriverWait(60).withMessage("la pagina è ancora in caricamento").until(ExpectedConditions.invisibilityOfElementLocated(loadingSpinnerBy)); + By loadingSpinnerBy = By.xpath("//span[@role='loadingSpinner']"); + getWebDriverWait(60).withMessage("Page is still loading").until(ExpectedConditions.invisibilityOfElementLocated(loadingSpinnerBy)); } public void goBack() { - this.driver.navigate().back(); + driver.navigate().back(); } /** - * Clear the text field of a WebElement - * Note: this method replace clear() because - * it does not work with React-controlled inputs + * Clears text from a WebElement, compatible with React-controlled inputs. + * Replaces the default clear() method for better compatibility. * - * @param element WebElement to clear the text field + * @param element WebElement to clear */ public void clearWebElementField(WebElement element) { while (!element.getAttribute("value").isEmpty()) { @@ -117,8 +130,7 @@ public void clearWebElementField(WebElement element) { } } - public boolean checkURL(String url){ + public boolean checkURL(String url) { return driver.getCurrentUrl().contains(url); } - -} \ No newline at end of file +} diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/ScegliSpidPAPage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/ScegliSpidPAPage.java index 2872dba77..a284c59b8 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/ScegliSpidPAPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/ScegliSpidPAPage.java @@ -10,41 +10,50 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; - +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +/* +*Modifiche e Spiegazioni +Annotazione @Component: Marca la classe come un componente gestito da Spring, permettendo l’iniezione nei contesti necessari. +Costruttore con @Autowired: Permette a Spring di iniettare automaticamente WebDriver. +Logging migliorato: Utilizza il logger.error con {} per un’output più leggibile e facile da mantenere. +* */ +@Component public class ScegliSpidPAPage extends BasePage { - private static final Logger logger = LoggerFactory.getLogger("ScegliSpidPAPage"); + private static final Logger logger = LoggerFactory.getLogger(ScegliSpidPAPage.class); @FindBy(id = "xx_testenv2") - WebElement testButton; + private WebElement testButton; + @Autowired public ScegliSpidPAPage(WebDriver driver) { super(driver); } - public void waitLoadScegliSpidPAPage(){ - try{ + public void waitLoadScegliSpidPAPage() { + try { By titlePage = By.cssSelector("div.MuiTypography-root.MuiTypography-h4"); - this.getWebDriverWait(30).until(ExpectedConditions.visibilityOfElementLocated(titlePage)); - logger.info("il titolo Scegli Spid PA Page caricata"); - }catch (TimeoutException e){ - logger.error("Titlo della pagina Scegli Spid PA Page non caricato con errore : "+e.getMessage()); - Assertions.fail("Titlo della pagina Scegli Spid PA Page non caricato con errore : "+e.getMessage()); - }catch(Exception e){ - logger.error("Scelta spid provider errore generico : "+e.getMessage()); - Assertions.fail("Scelta spid provider errore generico : "+e.getMessage()); + getWebDriverWait(30).until(ExpectedConditions.visibilityOfElementLocated(titlePage)); + logger.info("Il titolo della pagina Scegli Spid PA è stato caricato"); + } catch (TimeoutException e) { + logger.error("Il titolo della pagina Scegli Spid PA non è stato caricato con errore: {}", e.getMessage()); + Assertions.fail("Il titolo della pagina Scegli Spid PA non è stato caricato con errore: " + e.getMessage()); + } catch (Exception e) { + logger.error("Errore generico durante la scelta del provider SPID: {}", e.getMessage()); + Assertions.fail("Errore generico durante la scelta del provider SPID: " + e.getMessage()); } } - public void selezionareTestButton(){ - logger.info("Si clicca sul bottone Test dello spid"); - try{ + public void selezionareTestButton() { + logger.info("Si clicca sul bottone Test dello SPID"); + try { getWebDriverWait(60).until(ExpectedConditions.elementToBeClickable(this.testButton)); this.testButton.click(); - logger.info("click sul bottone TEST effetuato"); - }catch (TimeoutException e){ - logger.error("il bottone TEST non è cliccabile con errore : "+e.getMessage()); - Assertions.fail("il bottone TEST non è cliccabile con errore : "+e.getMessage()); + logger.info("Click sul bottone TEST effettuato con successo"); + } catch (TimeoutException e) { + logger.error("Il bottone TEST non è cliccabile, errore: {}", e.getMessage()); + Assertions.fail("Il bottone TEST non è cliccabile, errore: " + e.getMessage()); } } -} +} \ No newline at end of file diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/SelezionaEntePAPage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/SelezionaEntePAPage.java index b3b28fb87..aa9d96580 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/SelezionaEntePAPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/SelezionaEntePAPage.java @@ -1,3 +1,4 @@ + package it.pn.frontend.e2e.pages.mittente; import it.pn.frontend.e2e.common.BasePage; @@ -9,22 +10,32 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Component; import java.util.List; - +/* +*Modifiche e Ottimizzazioni +Annotazione @Component: Integrazione della classe in Spring Boot per il dependency injection. +Miglioramento Logging: Utilizzo di placeholder ({}) in logger per gestire i messaggi in modo più efficiente. +Stream API in selezionareComune: Sostituisce il ciclo for con uno stream, semplificando il controllo della presenza e selezione del comune. +Verifica .ifPresentOrElse: Aggiunta di un messaggio di log per i casi in cui il comune non viene trovato. +Refactoring per Gestione delle Eccezioni: La gestione delle eccezioni è mantenuta invariata per chiarezza e robustezza del codice. +* +* +* */ +@Component public class SelezionaEntePAPage extends BasePage { - private static final Logger logger = LoggerFactory.getLogger("SelezionaEntePAPage"); + private static final Logger logger = LoggerFactory.getLogger(SelezionaEntePAPage.class); @FindBy(xpath = "//div[@role='button']//h6") - List comuneButton; + private List comuneButton; @FindBy(xpath = "//button[text()='Accedi']") - WebElement accediButton; + private WebElement accediButton; @FindBy(id = "search") - WebElement comuneSearchField; - + private WebElement comuneSearchField; public SelezionaEntePAPage(WebDriver driver) { super(driver); @@ -34,38 +45,47 @@ public void waitLoadSelezionaEntePAPage() { try { WebTool.waitTime(20); WebElement titlePage = driver.findElement(By.xpath("//h3[text()='Seleziona il tuo ente']")); - WebElement searchField = driver.findElement(By.id("search")); - this.getWebDriverWait(30).withMessage("Titolo 'Seleziona il tuo ente' della pagina non è visualizza").until(ExpectedConditions.visibilityOf(titlePage)); - this.getWebDriverWait(30).withMessage("Il campo cerca non è cliccabile nella pagina Seleziona Ente: ").until(ExpectedConditions.elementToBeClickable(searchField)); + WebElement searchField = driver.findElement(By.id("search")); + getWebDriverWait(30) + .withMessage("Titolo 'Seleziona il tuo ente' della pagina non è visibile") + .until(ExpectedConditions.visibilityOf(titlePage)); + getWebDriverWait(30) + .withMessage("Il campo cerca non è cliccabile nella pagina Seleziona Ente") + .until(ExpectedConditions.elementToBeClickable(searchField)); logger.info("Seleziona Utente PA Page caricata"); } catch (TimeoutException | NoSuchElementException | StaleElementReferenceException e) { - logger.error("Seleziona Utente PA Page non caricata con errore : " + e.getMessage()); - Assertions.fail("Seleziona Utente PA Page non caricata con errore : " + e.getMessage()); + logger.error("Seleziona Utente PA Page non caricata con errore: {}", e.getMessage()); + Assertions.fail("Seleziona Utente PA Page non caricata con errore: " + e.getMessage()); } } - public void selezionareComune(String comune) { - for (WebElement element : this.comuneButton) { - if (element.getText().contains(comune)) { - getWebDriverWait(30).withMessage("L'Ente " + comune + " non è cliccabile nella pagina seleziona Ente ") - .until(ExpectedConditions.elementToBeClickable(element)); - this.js().executeScript("arguments[0].click()", element); - break; - } - } + comuneButton.stream() + .filter(element -> element.getText().contains(comune)) + .findFirst() + .ifPresentOrElse( + element -> { + getWebDriverWait(30) + .withMessage("L'Ente " + comune + " non è cliccabile nella pagina seleziona Ente") + .until(ExpectedConditions.elementToBeClickable(element)); + js().executeScript("arguments[0].click()", element); + }, + () -> logger.warn("Ente '{}' non trovato tra i comuni disponibili", comune) + ); } public void selezionaAccedi() { Actions actions = new Actions(driver); - getWebDriverWait(60).withMessage("il buttone Eccedi non è cliccabile") - .until(ExpectedConditions.elementToBeClickable(this.accediButton)); - actions.moveToElement(this.accediButton).click().perform(); + getWebDriverWait(60) + .withMessage("Il bottone Accedi non è cliccabile") + .until(ExpectedConditions.elementToBeClickable(accediButton)); + actions.moveToElement(accediButton).click().perform(); } public void cercaComune(String comune) { - this.getWebDriverWait(30).withMessage("Il campo Comune non è visibile nella pagina seleziona un Ente") - .until(ExpectedConditions.visibilityOf(this.comuneSearchField)); - this.comuneSearchField.sendKeys(comune); + getWebDriverWait(30) + .withMessage("Il campo Comune non è visibile nella pagina seleziona un Ente") + .until(ExpectedConditions.visibilityOf(comuneSearchField)); + comuneSearchField.sendKeys(comune); } } From 1b6146836943a3689373ae199cec96efdd0cfb32 Mon Sep 17 00:00:00 2001 From: andreadefranco Date: Tue, 29 Oct 2024 16:54:27 +0100 Subject: [PATCH 161/212] fix class for the Autowired --- .../e2e/common/NotificheDestinatarioPage.java | 5 +- .../personaFisica/DeleghePage.java | 4 +- .../personaGiuridica/DeleghePGPagoPAPage.java | 6 +- .../personaFisica/LeTueDelegheSection.java | 5 +- .../PopUpRevocaDelegaSection.java | 5 +- .../AggiungiDelegaPGSection.java | 5 + .../DelegatiImpresaSection.java | 4 + .../CucumberSpringIntegration.java | 16 ++- .../common/BackgroundTest.java | 27 +++-- .../stepDefinitions/common/HelpdeskTest.java | 7 +- .../stepDefinitions/common/RecapitiTest.java | 12 +- .../personaFisica/DeleghePagoPATest.java | 42 ++++--- .../RecapitiPersonaFisicaTest.java | 13 +-- .../personaGiuridica/DeleghePGPagoPATest.java | 52 ++++++--- .../NotifichePGPagoPATest.java | 104 +++++++++++------- 15 files changed, 207 insertions(+), 100 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/common/NotificheDestinatarioPage.java b/src/main/java/it/pn/frontend/e2e/common/NotificheDestinatarioPage.java index 18cae6133..91c19b0df 100644 --- a/src/main/java/it/pn/frontend/e2e/common/NotificheDestinatarioPage.java +++ b/src/main/java/it/pn/frontend/e2e/common/NotificheDestinatarioPage.java @@ -10,7 +10,10 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +@Component public class NotificheDestinatarioPage extends BasePage{ private static final Logger logger = LoggerFactory.getLogger("NotificheDestinatarioPage"); @@ -19,7 +22,7 @@ public class NotificheDestinatarioPage extends BasePage{ @FindBy(xpath = "//button[contains(text(),'Ricevuta di consegna PEC')]") WebElement ricevutaDiConsegnaButton; - + @Autowired public NotificheDestinatarioPage(WebDriver driver) { super(driver); } diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/DeleghePage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/DeleghePage.java index e6d1bb440..34b0c77cb 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/DeleghePage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/DeleghePage.java @@ -10,9 +10,11 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; import java.util.List; +@Component public class DeleghePage extends BasePage { private final Logger logger = LoggerFactory.getLogger("DeleghePage"); @@ -32,7 +34,7 @@ public class DeleghePage extends BasePage { @FindBy(id = "dialog-close-button") WebElement annullaButton; - + @Autowired public DeleghePage(WebDriver driver) { super(driver); } diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/DeleghePGPagoPAPage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/DeleghePGPagoPAPage.java index 09ffedb78..9dcc80072 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/DeleghePGPagoPAPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/DeleghePGPagoPAPage.java @@ -7,10 +7,12 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; import java.util.List; - +@Component public class DeleghePGPagoPAPage extends BasePage { private final Logger logger = LoggerFactory.getLogger("DeleghePGPagoPAPage"); @@ -83,7 +85,7 @@ public class DeleghePGPagoPAPage extends BasePage { @FindBy(id = "error-alert") WebElement errorCodeInPopUp; - + @Autowired public DeleghePGPagoPAPage(WebDriver driver) { super(driver); } diff --git a/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/LeTueDelegheSection.java b/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/LeTueDelegheSection.java index acf3000f6..dc5020551 100644 --- a/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/LeTueDelegheSection.java +++ b/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/LeTueDelegheSection.java @@ -11,10 +11,13 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; import java.time.LocalDate; import java.util.List; +@Component public class LeTueDelegheSection extends BasePage { private static final Logger logger = LoggerFactory.getLogger("LeTueDelegheSection"); @@ -86,7 +89,7 @@ public class LeTueDelegheSection extends BasePage { @FindBy(xpath = "//tr[@data-testid='delegatorsTable.body.row']") List delegatorsTableRows; - + @Autowired public LeTueDelegheSection(WebDriver driver) { super(driver); } diff --git a/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/PopUpRevocaDelegaSection.java b/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/PopUpRevocaDelegaSection.java index 671d5dbe2..8bd64abf3 100644 --- a/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/PopUpRevocaDelegaSection.java +++ b/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/PopUpRevocaDelegaSection.java @@ -7,7 +7,10 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +@Component public class PopUpRevocaDelegaSection extends BasePage { private static final Logger logger = LoggerFactory.getLogger("RevocaDelegaSection"); @@ -16,7 +19,7 @@ public class PopUpRevocaDelegaSection extends BasePage { @FindBy(id = "dialog-action-button") WebElement revocaDialogAction; - + @Autowired public PopUpRevocaDelegaSection(WebDriver driver) { super(driver); } diff --git a/src/main/java/it/pn/frontend/e2e/section/destinatario/personaGiuridica/AggiungiDelegaPGSection.java b/src/main/java/it/pn/frontend/e2e/section/destinatario/personaGiuridica/AggiungiDelegaPGSection.java index 66d508b1d..1226892bf 100644 --- a/src/main/java/it/pn/frontend/e2e/section/destinatario/personaGiuridica/AggiungiDelegaPGSection.java +++ b/src/main/java/it/pn/frontend/e2e/section/destinatario/personaGiuridica/AggiungiDelegaPGSection.java @@ -9,10 +9,14 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.List; +@Component public class AggiungiDelegaPGSection extends BasePage { private final Logger logger = LoggerFactory.getLogger("AggiungiDelegaPGSection"); @@ -61,6 +65,7 @@ public class AggiungiDelegaPGSection extends BasePage { private boolean dataFineErrata; + @Autowired public AggiungiDelegaPGSection(WebDriver driver) { super(driver); } diff --git a/src/main/java/it/pn/frontend/e2e/section/destinatario/personaGiuridica/DelegatiImpresaSection.java b/src/main/java/it/pn/frontend/e2e/section/destinatario/personaGiuridica/DelegatiImpresaSection.java index c9533ef3f..312207bcb 100644 --- a/src/main/java/it/pn/frontend/e2e/section/destinatario/personaGiuridica/DelegatiImpresaSection.java +++ b/src/main/java/it/pn/frontend/e2e/section/destinatario/personaGiuridica/DelegatiImpresaSection.java @@ -10,9 +10,12 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; import java.util.List; +@Component public class DelegatiImpresaSection extends BasePage { private final Logger logger = LoggerFactory.getLogger("DelegatiImpresaSection"); @@ -42,6 +45,7 @@ public class DelegatiImpresaSection extends BasePage { @FindBy(id = "notifications-table") WebElement tabelleDelleDelegheDellImpresa; + @Autowired public DelegatiImpresaSection(WebDriver driver) { super(driver); } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java index bf2ed0f77..a98a4df35 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java @@ -3,6 +3,7 @@ import io.cucumber.spring.CucumberContextConfiguration; import it.pn.frontend.e2e.common.DettaglioNotificaSection; import it.pn.frontend.e2e.common.HelpdeskPage; +import it.pn.frontend.e2e.common.NotificheDestinatarioPage; import it.pn.frontend.e2e.common.RecapitiDestinatarioPage; import it.pn.frontend.e2e.config.BearerTokenConfig; import it.pn.frontend.e2e.config.UserPasswordConfig; @@ -18,8 +19,13 @@ import it.pn.frontend.e2e.pages.destinatario.personaFisica.ITuoiRecapitiPage; import it.pn.frontend.e2e.pages.destinatario.personaGiuridica.AccediAreaRiservataPGPage; import it.pn.frontend.e2e.pages.mittente.PiattaformaNotifichePage; +import it.pn.frontend.e2e.section.destinatario.personaFisica.LeTueDelegheSection; +import it.pn.frontend.e2e.section.destinatario.personaFisica.PopUpRevocaDelegaSection; +import it.pn.frontend.e2e.section.destinatario.personaGiuridica.AggiungiDelegaPGSection; +import it.pn.frontend.e2e.section.destinatario.personaGiuridica.DelegatiImpresaSection; import it.pn.frontend.e2e.section.destinatario.personaGiuridica.HeaderPGSection; import it.pn.frontend.e2e.section.mittente.*; +import it.pn.frontend.e2e.stepDefinitions.common.BackgroundTest; import it.pn.frontend.e2e.stepDefinitions.destinatario.personaFisica.LoginPersonaFisicaPagoPA; import it.pn.frontend.e2e.stepDefinitions.destinatario.personaGiuridica.LoginPGPagoPATest; import it.pn.frontend.e2e.stepDefinitions.mittente.NotificaMittentePagoPATest; @@ -82,7 +88,15 @@ HelpdeskPage.class, RecapitiDestinatarioPage.class, ITuoiRecapitiPage.class, - LoginPGPagoPATest.class + LoginPGPagoPATest.class, + DeleghePGPagoPAPage.class, + DelegatiImpresaSection.class, + AggiungiDelegaPGSection.class, + LeTueDelegheSection.class, + PopUpRevocaDelegaSection.class, + DeleghePage.class, + NotificheDestinatarioPage.class, + BackgroundTest.class }) @EnableScheduling diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/BackgroundTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/BackgroundTest.java index 83ba4470e..7c5d5953b 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/BackgroundTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/BackgroundTest.java @@ -13,14 +13,19 @@ import it.pn.frontend.e2e.utility.WebTool; import org.openqa.selenium.WebDriver; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; +import org.springframework.context.annotation.Primary; +import org.springframework.stereotype.Component; import java.util.HashMap; import java.util.Map; +@Component public class BackgroundTest { // private final WebDriver driver = Hooks.driver; @Autowired + @Lazy private HooksNew hooks; private final String nomeFileDatiNotifica = "datiNotifica"; private final String nomeFilePersonaFisica = "personaFisica"; @@ -29,30 +34,38 @@ public class BackgroundTest { private final String nomeFileNuovaDelegaPG = "nuovaDelegaPG"; private final String mittente = "mittente"; - private final DeleghePagoPATest deleghePagoPATest = new DeleghePagoPATest(); - @Autowired + @Lazy + private DeleghePagoPATest deleghePagoPATest; + @Autowired + @Lazy private RecapitiPersonaFisicaTest recapitiPersonaFisicaTest; @Autowired private LoginPGPagoPATest loginPGPagoPATest; @Autowired private LoginPersonaFisicaPagoPA personaFisicaPagoPA; - - private final DeleghePGPagoPATest deleghePGPagoPATest = new DeleghePGPagoPATest(); @Autowired + @Lazy + private DeleghePGPagoPATest deleghePGPagoPATest; + @Autowired + @Lazy private DisserviziAppPGTest disserviziAppPGTest ; private final HelpdeskTest helpdeskTest = new HelpdeskTest(); - private final NotifichePGPagoPATest notifichePGPagoPATest = new NotifichePGPagoPATest(); - - private final RecapitiTest recapitiTest = new RecapitiTest(); + @Autowired + @Lazy + private NotifichePGPagoPATest notifichePGPagoPATest; + @Autowired + @Lazy + private RecapitiTest recapitiTest; private final Map datiPersonaFisica; @Autowired private RecapitiDestinatarioPage recapitiDestinatarioPage ; @Autowired private ITuoiRecapitiPage iTuoiRecapitiPage; + @Autowired public BackgroundTest() { datiPersonaFisica = new HashMap<>(); datiPersonaFisica.put("nome", "Lucrezia"); diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/HelpdeskTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/HelpdeskTest.java index f10177e2f..fc71d40b2 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/HelpdeskTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/HelpdeskTest.java @@ -49,8 +49,8 @@ public class HelpdeskTest { @Autowired private HelpdeskPage helpdeskPage ; -// @Autowired -// private BackgroundTest backgroundTest; + @Autowired + private BackgroundTest backgroundTest; private Map datiTestHelpdesk = new HashMap<>(); private Map datiPersonaFisica = new HashMap<>(); @@ -128,7 +128,6 @@ public void siVerificaLaCreazioneDelDisservizio() { @And("Si annulla un disservizio in corso") public void annullamentoDisservizio() { - BackgroundTest backgroundTest = new BackgroundTest(); logger.info("Torno sulla scheda di helpdesk"); String sendHandle = hooks.getDriver().getWindowHandle(); Set windowHandles = hooks.getDriver().getWindowHandles(); @@ -328,13 +327,11 @@ public void loginHelpdeskInNuovaScheda(Map login) { @Given("Creazione disservizio su portale helpdesk") public void creazioneDisservizioSuPortaleHelpdesk() { - BackgroundTest backgroundTest = new BackgroundTest(); backgroundTest.creazioneDisservizio(); } @And("Risoluzione disservizio su portale helpdesk") public void risoluzioneDisservizioSuPortaleHelpdesk() { - BackgroundTest backgroundTest = new BackgroundTest(); backgroundTest.risoluzioneDisservizio(); } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/RecapitiTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/RecapitiTest.java index 10b8d3f60..414b44556 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/RecapitiTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/RecapitiTest.java @@ -10,6 +10,7 @@ import org.openqa.selenium.WebDriver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; public class RecapitiTest { @@ -17,10 +18,13 @@ public class RecapitiTest { private final String emailDiCortesia = "email di cortesia"; private final String ELIMINA = "Elimina"; private final Logger logger = LoggerFactory.getLogger("RecapitiTest"); - private final WebDriver driver = Hooks.driver; public static String OTP; - private final RecapitiDestinatarioPage recapitiDestinatarioPage = new RecapitiDestinatarioPage(this.driver); - private final ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(this.driver); + @Autowired + private RecapitiDestinatarioPage recapitiDestinatarioPage ; + @Autowired + private ITuoiRecapitiPage iTuoiRecapitiPage ; + @Autowired + private BackgroundTest backgroundTest; @And("Nella pagina I Tuoi Recapiti si inserisce il numero di telefono {string} e si clicca sul bottone avvisami via SMS") public void nellaPaginaITuoiRecapitiSiInserisceIlNumeroDiTelefonoESiCliccaSulBottoneAvvisamiViaSMS(String cellulare) { @@ -62,7 +66,6 @@ public void nellaPaginITuoiRecapitiSiControllaCheIlNumeroDiCellulareNonSiaPresen @And("Nella pagina I Tuoi Recapiti si controlla che non ci sia già una {string} e si inserisce {string}") public void nellaPaginaITuoiRecapitiSiControllaCheCiSiaGiaUnaPECESiInserisce(String tipoContatto, String indirizzoMail) { logger.info("Si controlla che non ci sia già una " + tipoContatto + " e se ne inserisce una"); - BackgroundTest backgroundTest = new BackgroundTest(); if (PEC.equalsIgnoreCase(tipoContatto)){ backgroundTest.checkPECEsistentePerEliminazioneEInserimento(indirizzoMail); } else if (emailDiCortesia.equalsIgnoreCase(tipoContatto)){ @@ -168,7 +171,6 @@ public void nellaPaginaITuoiRecapitiSiControllaCheNonCiSiaUnaEmailDiCortesiaImpo @And("Si inserisce il codice OTP errato {string} per tre volte e si controlla il messaggio di errore") public void siInserisceIlCodiceOTPErratoPerTreVolteESiControllaIlMessaggioDiErrore(String OTP) { logger.info("Si inserisce un codice OTP errato per 3 volte e si controlla il messaggio di errore"); - BackgroundTest backgroundTest = new BackgroundTest(); backgroundTest.inserimentoOTPErratoTreVolteEControlloMessaggio(OTP); } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/DeleghePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/DeleghePagoPATest.java index edbdce0b2..337928125 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/DeleghePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/DeleghePagoPATest.java @@ -4,6 +4,7 @@ import io.cucumber.java.en.Then; import io.cucumber.java.en.When; import it.pn.frontend.e2e.listeners.Hooks; +import it.pn.frontend.e2e.listeners.HooksNew; import it.pn.frontend.e2e.model.delegate.DelegatePF; import it.pn.frontend.e2e.model.delegate.DelegateRequestPF; import it.pn.frontend.e2e.model.delegate.DelegateResponsePF; @@ -23,6 +24,10 @@ import org.junit.jupiter.api.Assertions; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; +import org.springframework.context.annotation.Primary; +import org.springframework.stereotype.Component; import java.time.LocalDate; import java.time.format.DateTimeFormatter; @@ -36,13 +41,27 @@ public class DeleghePagoPATest { - private final WebDriver driver = Hooks.driver; - private final LeTueDelegheSection leTueDelegheSection = new LeTueDelegheSection(this.driver); - private final PopUpRevocaDelegaSection popUpRevocaDelegaSection = new PopUpRevocaDelegaSection(this.driver); - private final DataPopulation dataPopulation = new DataPopulation(); - private final DeleghePage deleghePage = new DeleghePage(this.driver); - private final LoginPersonaFisicaPagoPA loginPersonaFisicaPagoPA = new LoginPersonaFisicaPagoPA(); - private final DestinatarioPage destinatarioPage = new DestinatarioPage(this.driver); + @Autowired + @Lazy + private HooksNew hooks; + @Autowired + private LeTueDelegheSection leTueDelegheSection; + @Autowired + private PopUpRevocaDelegaSection popUpRevocaDelegaSection; + @Autowired + private DataPopulation dataPopulation; + @Autowired + private DeleghePage deleghePage; + @Autowired + private LoginPersonaFisicaPagoPA loginPersonaFisicaPagoPA; + @Autowired + private DestinatarioPage destinatarioPage; + @Autowired + private NotifichePFPage notifichePFPage; + @Autowired + @Lazy + private BackgroundTest backgroundTest; + private final MandateSingleton mandateSingleton = MandateSingleton.getInstance(); private final RestDelegation restDelegation = RestDelegation.getInstance(); Map deleghe = new HashMap<>(); @@ -52,7 +71,7 @@ public class DeleghePagoPATest { @When("Nella pagina Piattaforma Notifiche persona fisica click sul bottone Deleghe") public void waitDelegheButton() { log.info("Si clicca sul bottone deleghe"); - NotifichePFPage notifichePFPage = new NotifichePFPage(this.driver); +// NotifichePFPage notifichePFPage = new NotifichePFPage(this.driver); notifichePFPage.waitESelectDelegheButton(); } @@ -200,7 +219,6 @@ public void siVerificaSiaPresenteUnaDelegaNellaSezioneDelegheATuoCarico(Map person mandateSingleton.setScenarioMandateId(Hooks.getScenario(), response.getMandateId()); mandateSingleton.setScenarioVerificationCode(mandateSingleton.getMandateId(Hooks.getScenario()), response.getVerificationCode()); } - driver.navigate().refresh(); + hooks.getDriver().navigate().refresh(); } @And("Si clicca sul bottone Accetta") @@ -482,7 +500,6 @@ public void nellaSezioneDelegheSiVerificaSiaPresenteUnaDelega(Map netWorkInfos = Hooks.netWorkInfos; @@ -494,8 +498,6 @@ public void nellaPaginaITuoiRecapitiSiControllaCheCiSiaGiaUnaEmail() { Map personaFisica = dataPopulation.readDataPopulation("personaFisica.yaml"); String email = personaFisica.get("mail").toString(); - BackgroundTest backgroundTest = new BackgroundTest(); - if (!recapitiDestinatarioPage.verificaMailAssociata()) { logger.info("verifica mail associata, step 1"); backgroundTest.aggiuntaEmailPF(); @@ -655,7 +657,6 @@ public void nellaPaginaITuoiRecapitiSiVisualizzaCorrettamenteLaSezioneAltriRecap public void nellaPaginaITuoiRecapitiDiPfSiControllaCheCiSiaGiaUnaPec(String pec) { logger.info("Si controlla la presenza di una pec"); //String pec = dataPopulation.readDataPopulation("personaFisica.yaml").get("emailPec").toString(); - BackgroundTest backgroundTest = new BackgroundTest(); if (!recapitiDestinatarioPage.siVisualizzaPecInserita()) { backgroundTest.aggiungiPECPF(); } else if (!recapitiDestinatarioPage.siControllaPECModificata(pec)) { @@ -965,7 +966,6 @@ public void nellaPaginaITuoiRecapitiSiInserisceIlCodiceOTPDellaEmail(String dpFi @And("Nella pagina I Tuoi Recapiti si controlla che non ci sia già una pec") public void nellaPaginaITuoiRecapitiSiControllaCheNonCiSiaGiaUnaPec() { logger.info("Si controlla che non ci sia una pec"); - BackgroundTest backgroundTest = new BackgroundTest(); if (recapitiDestinatarioPage.verificaPecAssociata()) { backgroundTest.siEliminaPecEsistenteEAltriRecapitiAssociati(); } @@ -1012,7 +1012,6 @@ public void nellaSezioneAltriRecapitiSiControllaLEsistenzaDiUnaPEC(String dpFile @And("si verifica esistenza due pec") public void siVerificaEsistenzaDuePEC() { if (!recapitiDestinatarioPage.siVisualizzaPecInserita()) { - BackgroundTest backgroundTest = new BackgroundTest(); backgroundTest.aggiungiNuovaPECPF(); backgroundTest.aggiungiPecSezioneGiaAssociati(); } @@ -1025,8 +1024,6 @@ public void nellaPaginaITuoiRecapitiSiControllaCheCiSiaGiaUnaEmailDiversa() { ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(hooks.getDriver()); iTuoiRecapitiPage.waitLoadITuoiRecapitiPage(); - BackgroundTest backgroundTest = new BackgroundTest(); - if (!recapitiDestinatarioPage.verificaMailAssociata()) { backgroundTest.aggiuntaEmailPF(); } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/DeleghePGPagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/DeleghePGPagoPATest.java index 61b8ddd5e..ac92aca11 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/DeleghePGPagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/DeleghePGPagoPATest.java @@ -3,6 +3,7 @@ import io.cucumber.java.en.And; import io.cucumber.java.en.Then; import it.pn.frontend.e2e.listeners.Hooks; +import it.pn.frontend.e2e.listeners.HooksNew; import it.pn.frontend.e2e.model.delegate.DelegatePG; import it.pn.frontend.e2e.model.delegate.DelegateRequestPG; import it.pn.frontend.e2e.model.delegate.DelegateResponsePG; @@ -21,6 +22,8 @@ import org.openqa.selenium.WebDriver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import java.time.LocalDate; import java.time.format.DateTimeFormatter; @@ -30,19 +33,34 @@ public class DeleghePGPagoPATest { private final Logger logger = LoggerFactory.getLogger("DeleghePGPagoPATest"); - private final WebDriver driver = Hooks.driver; - private final DeleghePGPagoPAPage deleghePGPagoPAPage = new DeleghePGPagoPAPage(this.driver); - private final DeleghePagoPATest deleghePagoPATest = new DeleghePagoPATest(); - private final DelegatiImpresaSection delegatiImpresaSection = new DelegatiImpresaSection(this.driver); - private final AggiungiDelegaPGSection aggiungiDelegaPGSection = new AggiungiDelegaPGSection(this.driver); - private final DataPopulation dataPopulation = new DataPopulation(); + @Autowired + @Lazy + private HooksNew hooks; + @Autowired + private DeleghePGPagoPAPage deleghePGPagoPAPage; + @Autowired + private DeleghePagoPATest deleghePagoPATest; + @Autowired + private DelegatiImpresaSection delegatiImpresaSection; + @Autowired + private AggiungiDelegaPGSection aggiungiDelegaPGSection; + @Autowired + private DataPopulation dataPopulation; + @Autowired + private LoginPGPagoPATest loginPGPagoPaTest; + @Autowired + private PiattaformaNotifichePage piattaformaNotifichePage; + @Autowired + @Lazy + private BackgroundTest backgroundTest; + private Map datiDelega = new HashMap<>(); Map datiPersonaFisica = new HashMap<>(); - private final MandateSingleton mandateSingleton = MandateSingleton.getInstance(); + private final MandateSingleton mandateSingleton = MandateSingleton.getInstance(); private final RestDelegation restDelegation = RestDelegation.getInstance(); - private LoginPGPagoPATest loginPGPagoPaTest = new LoginPGPagoPATest(); + private boolean dataFineErrata; @And("Si visualizza correttamente la pagina Deleghe sezione Deleghe a Carico dell impresa") @@ -172,7 +190,7 @@ public void nellaSezioneLeTueDelegheInserireUnaDataConFormatoErratoEAntecedenteA @And("Verifica che non è possibile selezionare una data Fine antecedente ad oggi") public void verificaArcoTemporaleSelezionato() { logger.info("Si controlla l'arco temporale che sia errato su cui effettuare la ricerca"); - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(this.driver); +// PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(this.driver); Assertions.assertFalse(dataFineErrata); } @@ -227,7 +245,7 @@ public void nellaPaginaDelegheSezioneDelegheACaricoDellImpresaSiControllaCheVeng @And("Nella pagina Deleghe sezione Deleghe dell impresa si verifica sia presente una delega") public void nellaPaginaDelegheSezioneDelegheDellImpresaSiVerificaSiaPresenteUnaDelega() { logger.info("Si controlla che ci sia almeno una delega"); - BackgroundTest backgroundTest = new BackgroundTest(); +// BackgroundTest backgroundTest = new BackgroundTest(); if (!this.delegatiImpresaSection.siVisualizzaUnaDelega()) { backgroundTest.aggiuntaNuovaDelegaDellImpresaPG(); @@ -462,7 +480,7 @@ public void creoInBackgroundUnaDelegaPerPersonaGiuridica(Map per DelegateResponsePG response = restDelegation.addDelegationPG(delegateRequestPG, tokenExchange); mandateSingleton.setScenarioMandateId(Hooks.getScenario(),response.getMandateId()); mandateSingleton.setScenarioVerificationCode(mandateSingleton.getMandateId(Hooks.getScenario()),response.getVerificationCode()); - driver.navigate().refresh(); + hooks.getDriver().navigate().refresh(); WebTool.waitTime(2); } @@ -485,13 +503,13 @@ public void siCliccaSulBottoneAccettaDelega() { @And("Si accetta la delega senza gruppo") public void siAccettaLaDelegaSenzaGruppo() { - BackgroundTest backgroundTest = new BackgroundTest(); +// BackgroundTest backgroundTest = new BackgroundTest(); backgroundTest.accettazioneDelegaSceltaGruppo(false,null); } @And("Si accetta la delega senza gruppo PF") public void siAccettaLaDelegaSenzaGruppoPF() { - BackgroundTest backgroundTest = new BackgroundTest(); +// BackgroundTest backgroundTest = new BackgroundTest(); backgroundTest.accettazioneDelegaSceltaGruppoPF(false,null); WebTool.waitTime(2); } @@ -505,13 +523,13 @@ public void siInserisceIlCodiceDellaDelegaACaricoDellImpresaNellaModale() { @And("Si ripristina lo stato iniziale delle deleghe dall impresa {string}") public void siRipristinaLoStatoInizialeDelleDelegheDallImpresa(String ragioneSociale) { - BackgroundTest backgroundTest = new BackgroundTest(); +// BackgroundTest backgroundTest = new BackgroundTest(); backgroundTest.revocaDelegaPG(ragioneSociale); } @And("Si accetta la delega con gruppo {string}") public void siAccettaLaDelegaGruppo(String gruppo) { - BackgroundTest backgroundTest = new BackgroundTest(); +// BackgroundTest backgroundTest = new BackgroundTest(); backgroundTest.accettazioneDelegaSceltaGruppo(true,gruppo); } @@ -527,7 +545,7 @@ public void nonSiAssegnaUnGruppoAllaDelegaCheLoRichiede() { @And("Si emula accettazione della delega con gruppo con errore") public void siEmulaAccettazioneDellaDelegaConGruppoConErrore() { - BackgroundTest backgroundTest = new BackgroundTest(); +// BackgroundTest backgroundTest = new BackgroundTest(); backgroundTest.checkDelegaSceltaGruppoEInserimentoCodiceErrata(); } @@ -547,7 +565,7 @@ public void siCliccaSulBottoneIndietroInAssegnazioneGruppo() { @And("Non si inserisce il codice OTP e l invito della delega non è più presente") public void nonSiInserisceIlCodiceOTPELInvitoDellaDelegaNonèPiùPresente() { WebTool.waitTime(61 * 15); - driver.navigate().refresh(); + hooks.getDriver().navigate().refresh(); deleghePGPagoPAPage.waitLoadDeleghePage(); } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/NotifichePGPagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/NotifichePGPagoPATest.java index bc8fcb5f8..a179548db 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/NotifichePGPagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/NotifichePGPagoPATest.java @@ -7,6 +7,7 @@ import it.pn.frontend.e2e.common.NotificheDestinatarioPage; import it.pn.frontend.e2e.config.WebDriverConfig; import it.pn.frontend.e2e.listeners.Hooks; +import it.pn.frontend.e2e.listeners.HooksNew; import it.pn.frontend.e2e.listeners.NetWorkInfo; import it.pn.frontend.e2e.pages.destinatario.DestinatarioPage; import it.pn.frontend.e2e.pages.destinatario.personaFisica.AccediAPiattaformaNotifichePage; @@ -26,6 +27,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import java.awt.*; import java.io.File; @@ -38,25 +40,54 @@ public class NotifichePGPagoPATest { private final Logger logger = LoggerFactory.getLogger("NotifichePGPagoPATest"); - private final WebDriver driver = Hooks.driver; - private final LeTueDelegheSection leTueDelegheSection = new LeTueDelegheSection(this.driver); - private final PiattaformaNotifichePGPAPage piattaformaNotifichePGPAPage = new PiattaformaNotifichePGPAPage(this.driver); - private final PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(this.driver); - private final DestinatarioPage destinatarioPage = new DestinatarioPage(this.driver); - List netWorkInfos = Hooks.netWorkInfos; - DeleghePGPagoPAPage deleghePage = new DeleghePGPagoPAPage(this.driver); + + @Autowired + @Lazy + private HooksNew hooks; + @Autowired + private LeTueDelegheSection leTueDelegheSection; + @Autowired + private PiattaformaNotifichePGPAPage piattaformaNotifichePGPAPage; + @Autowired + private PiattaformaNotifichePage piattaformaNotifichePage; + @Autowired + private DestinatarioPage destinatarioPage ; +// List netWorkInfos = Hooks.netWorkInfos; + @Autowired + private DeleghePGPagoPAPage deleghePage; + Map personaGiuridica = new HashMap<>(); @Autowired private CookieConfig cookieConfig; @Autowired private WebDriverConfig webDriverConfig; + @Autowired + private HomePagePG homePagePG; + @Autowired + private DettaglioNotificaSection dettaglioNotificaSection; + @Autowired + private CookiesSection cookiesSection; + @Autowired + private DownloadFile downloadFile; + @Autowired + private DataPopulation dataPopulation; + @Autowired + private AccediAPiattaformaNotifichePage accediAPiattaformaNotifichePage; + @Autowired + private NotificheDestinatarioPage notificheDestinatarioPage; + @Autowired + private DettaglioNotificaMittenteSection dettaglioNotificaMittenteSection; + @Autowired + private BackgroundTest backgroundTest; + + @And("Nella Home page persona giuridica si clicca su Send Notifiche Digitali") public void clickSendNotificheDigitali() { this.logger.info("Si clicca su Send Notifiche Digitali"); - HomePagePG homePagePG = new HomePagePG(this.driver); +// HomePagePG homePagePG = new HomePagePG(this.driver); homePagePG.waitLoadHomePagePGPage(); String variabileAmbiente = webDriverConfig.getEnvironment(); switch (variabileAmbiente) { @@ -71,7 +102,7 @@ public void clickSendNotificheDigitali() { @And("Si visualizza correttamente la Pagina Notifiche persona giuridica {string}") public void siVisualizzaCorrettamenteLaPaginaNotifichePersonaGiuridica(String ragioneSociale) { if (!cookieConfig.isCookieEnabled()) { - CookiesSection cookiesSection = new CookiesSection(this.driver); +// CookiesSection cookiesSection = new CookiesSection(this.driver); if (cookiesSection.waitLoadCookiesPage()) { logger.info("Si accettano i cookies"); cookiesSection.selezionaAccettaTuttiButton(); @@ -95,7 +126,7 @@ private int getCodiceRispostaChiamataApi(String urlChiamata) { logger.info("Recupero codice risposta della chiamata" + urlChiamata); int codiceRispostaChiamataApi = 0; - for (NetWorkInfo chiamate : netWorkInfos) { + for (NetWorkInfo chiamate : webDriverConfig.getNetWorkInfos()) { if (chiamate.getRequestUrl().startsWith(urlChiamata) && chiamate.getRequestMethod().equals("GET")) { codiceRispostaChiamataApi = Integer.parseInt(chiamate.getResponseStatus()); break; @@ -134,7 +165,6 @@ public void nellaPaginaNotifichePersonaGiuridicaSiCliccaSoloSuNotificheDelegate( @And("Nella sezione Deleghe si verifica sia presente una delega accettata per PG") public void nellaSezioneDelegheSiVerificaSiaPresenteUnaDelegaAccettataPerPG() { logger.info("Si controlla che sia presente una delega"); - BackgroundTest backgroundTest = new BackgroundTest(); if (!this.deleghePage.siVisualizzaUnaDelegaPG()) { backgroundTest.loginPGDeleghe("personaGiuridica"); backgroundTest.aggiuntaNuovaDelegaDellImpresaPG(); @@ -144,7 +174,7 @@ public void nellaSezioneDelegheSiVerificaSiaPresenteUnaDelegaAccettataPerPG() { } else if (this.leTueDelegheSection.controlloPresenzaBottoneAccetta()) { backgroundTest.accettazioneDelegaPG(); } - this.driver.navigate().refresh(); + this.hooks.getDriver().navigate().refresh(); } @And("Si visualizza correttamente la Pagina Notifiche persona giuridica sezione notifiche delegate {string}") @@ -161,10 +191,10 @@ public void nellaPaginaPiattaformaNotifichePersonaGiuridicaSiCliccaSulBottoneITu @Then("Si selezionano i file attestazioni opponibili da scaricare, all'interno della notifica persona giuridica, e si controlla che il download sia avvenuto {string}") public void siSelezionanoIFileAttestazioniOpponibiliDaScaricareAllInternoDellaNotificaPersonaGiuridicaESiControllaCheIlDownloadSiaAvvenuto(String dpFile) { - DettaglioNotificaSection dettaglioNotificaSection = new DettaglioNotificaSection(this.driver); +// DettaglioNotificaSection dettaglioNotificaSection = new DettaglioNotificaSection(this.driver); int numeroLinkAttestazioniOpponibile = dettaglioNotificaSection.getLinkAttestazioniOpponibili(); - DownloadFile downloadFile = new DownloadFile(this.driver); - DataPopulation dataPopulation = new DataPopulation(); +// DownloadFile downloadFile = new DownloadFile(this.driver); +// DataPopulation dataPopulation = new DataPopulation(); Map datiNotifica = dataPopulation.readDataPopulation(dpFile + ".yaml"); String workingDirectory = System.getProperty("user.dir"); File pathCartella = new File(workingDirectory + "/src/test/resources/dataPopulation/downloadFileNotifica/destinatario/personaGiuridica"); @@ -205,11 +235,11 @@ private String getBearerToken() { public void siRecuperaBearerToken(String dpFile) { logger.info("Si recupera il bearer token"); - DataPopulation dataPopulation = new DataPopulation(); +// DataPopulation dataPopulation = new DataPopulation(); personaGiuridica = dataPopulation.readDataPopulation(dpFile + ".yaml"); if (!cookieConfig.isCookieEnabled()) { - CookiesSection cookiesSection = new CookiesSection(this.driver); +// CookiesSection cookiesSection = new CookiesSection(this.driver); if (cookiesSection.waitLoadCookiesPage()) { logger.info("Si accettano i cookies"); cookiesSection.selezionaAccettaTuttiButton(); @@ -246,14 +276,14 @@ public void siVerificaLaPresenzaDelloStatoNellaTimelineDellaNotifica(String stat @And("Si clicca sul radio bottone di pagamento") public void siCliccaRadioButtonPagamento() { - PiattaformaNotifichePGPAPage piattaformaNotifichePGPAPage = new PiattaformaNotifichePGPAPage(this.driver); +// PiattaformaNotifichePGPAPage piattaformaNotifichePGPAPage = new PiattaformaNotifichePGPAPage(this.driver); piattaformaNotifichePGPAPage.clickRadioBoxButton(); } @And("Si controlla sia presente il modello F24 destinatario") public void siControllaSiaPresenteIlModelloF24Destinatario() { logger.info("Si controlla sia presente il modello F24 PG"); - PiattaformaNotifichePGPAPage piattaformaNotifichePGPAPage = new PiattaformaNotifichePGPAPage(this.driver); +// PiattaformaNotifichePGPAPage piattaformaNotifichePGPAPage = new PiattaformaNotifichePGPAPage(this.driver); if (piattaformaNotifichePGPAPage.modelloF24Displayed()) { logger.info("Il modello F24 è trovato"); } else { @@ -265,7 +295,7 @@ public void siControllaSiaPresenteIlModelloF24Destinatario() { @And("Si controlla non sia presente il modello F24 destinatario") public void siControllaNonSiaPresenteIlModelloF24Destinatario() { logger.info("Si controlla non sia presente il modello F24 PG"); - PiattaformaNotifichePGPAPage piattaformaNotifichePGPAPage = new PiattaformaNotifichePGPAPage(this.driver); +// PiattaformaNotifichePGPAPage piattaformaNotifichePGPAPage = new PiattaformaNotifichePGPAPage(this.driver); if (!piattaformaNotifichePGPAPage.modelloF24Displayed()) { logger.info("Il modello F24 non è trovato"); } else { @@ -277,7 +307,7 @@ public void siControllaNonSiaPresenteIlModelloF24Destinatario() { @And("Si clicca sul modello F24 destinatario numero {int}") public void siCliccaIlModelloF24Destinatario(int numOfF24) { logger.info("Si clicca modello F24 destinatario"); - PiattaformaNotifichePGPAPage piattaformaNotifichePGPAPage = new PiattaformaNotifichePGPAPage(this.driver); +// PiattaformaNotifichePGPAPage piattaformaNotifichePGPAPage = new PiattaformaNotifichePGPAPage(this.driver); piattaformaNotifichePGPAPage.vaiInFondoAllaPagina(); piattaformaNotifichePGPAPage.clickModelloF24Numero(numOfF24); } @@ -286,7 +316,7 @@ public void siCliccaIlModelloF24Destinatario(int numOfF24) { @And("Si controlla sia presente l'avviso PagoPa destinatario") public void siControllaSiaPresenteLAvvisoPagoPaDestinatario() { logger.info("Si controlla la presenza del box per il pagamento della notifica"); - AccediAPiattaformaNotifichePage accediAPiattaformaNotifichePage = new AccediAPiattaformaNotifichePage(this.driver); +// AccediAPiattaformaNotifichePage accediAPiattaformaNotifichePage = new AccediAPiattaformaNotifichePage(this.driver); if (accediAPiattaformaNotifichePage.scaricaAvvisoDisplayed()) { logger.info("Avviso PagoPA è trovato"); } else { @@ -297,7 +327,7 @@ public void siControllaSiaPresenteLAvvisoPagoPaDestinatario() { @And("Si controlla sia presente piu avvisi PagoPa PG") public void siControllaSiaPresentePiuAvvisiPagoPaPG() { - AccediAPiattaformaNotifichePage accediAPiattaformaNotifichePage = new AccediAPiattaformaNotifichePage(this.driver); +// AccediAPiattaformaNotifichePage accediAPiattaformaNotifichePage = new AccediAPiattaformaNotifichePage(this.driver); Assertions.assertTrue(accediAPiattaformaNotifichePage.piuAvvisiDisplayed(),"Avvissi PagoPA non sono trovati"); logger.info("Avvissi PagoPA sono trovati"); @@ -306,7 +336,7 @@ public void siControllaSiaPresentePiuAvvisiPagoPaPG() { @And("Si controlla sia presente l'avvisi PagoPa PG") public void siControllaSiaPresenteLAvvisiPagoPaPG() { logger.info("Si controlla la presenza del box per il pagamento della notifica"); - AccediAPiattaformaNotifichePage accediAPiattaformaNotifichePage = new AccediAPiattaformaNotifichePage(this.driver); +// AccediAPiattaformaNotifichePage accediAPiattaformaNotifichePage = new AccediAPiattaformaNotifichePage(this.driver); Assertions.assertTrue(accediAPiattaformaNotifichePage.piuAvvisiDisplayed(),"Avviso PagoPA non è trovato"); logger.info("Avviso PagoPA è trovato"); } @@ -314,7 +344,7 @@ public void siControllaSiaPresenteLAvvisiPagoPaPG() { @And("Si controlla non sia presente l'avviso PagoPa") public void siControllaNonSiaPresenteLAvvisoPagoPa() { logger.info("Si controlla la presenza del box per il pagamento della notifica"); - AccediAPiattaformaNotifichePage accediAPiattaformaNotifichePage = new AccediAPiattaformaNotifichePage(this.driver); +// AccediAPiattaformaNotifichePage accediAPiattaformaNotifichePage = new AccediAPiattaformaNotifichePage(this.driver); WebTool.waitTime(5); Assertions.assertTrue( accediAPiattaformaNotifichePage.piuAvvisiDisplayed(), "Avviso PagoPA non sia presente"); logger.info("Avviso PagoPA è presente"); @@ -323,7 +353,7 @@ public void siControllaNonSiaPresenteLAvvisoPagoPa() { @And("Si controlla non sia presente l'allegato PagoPa") public void siControllaNonSiaPresenteLAllegatoPagoPa() { logger.info("Si controlla la presenza del box per il pagamento della notifica"); - AccediAPiattaformaNotifichePage accediAPiattaformaNotifichePage = new AccediAPiattaformaNotifichePage(this.driver); +// AccediAPiattaformaNotifichePage accediAPiattaformaNotifichePage = new AccediAPiattaformaNotifichePage(this.driver); WebTool.waitTime(5); Assertions.assertTrue(accediAPiattaformaNotifichePage.allegatoPagoPaDisplayed(),"Avviso PagoPA non sia presente"); logger.info("Avviso PagoPA è presente"); @@ -332,21 +362,21 @@ public void siControllaNonSiaPresenteLAllegatoPagoPa() { @And("Si clicca l'avviso PagoPa destinatario") public void siCliccaLAvvisoPagoPaDestinatario() { logger.info("Si clicca l'avviso PagoPa destinatario"); - AccediAPiattaformaNotifichePage accediAPiattaformaNotifichePage = new AccediAPiattaformaNotifichePage(this.driver); +// AccediAPiattaformaNotifichePage accediAPiattaformaNotifichePage = new AccediAPiattaformaNotifichePage(this.driver); accediAPiattaformaNotifichePage.clickAvvisoPagoPADestinatario(); } @And("Si controlla sia visualizza box allegati modelli F24 PG") public void siControllaSiaVisualizzaBoxF24PG() { logger.info("Si controlla sia presente il box allegati modelli F24"); - PiattaformaNotifichePGPAPage piattaformaNotifichePGPAPage = new PiattaformaNotifichePGPAPage(this.driver); +// PiattaformaNotifichePGPAPage piattaformaNotifichePGPAPage = new PiattaformaNotifichePGPAPage(this.driver); piattaformaNotifichePGPAPage.checkBoxModelloF24PG(); } @And("Nella pagina piattaforma notifiche PG si effettua la ricerca per codice IUN {string}") public void nellaPaginaPiattformaNotificheSiEffettuaLaRicercaPerCodiceIUN(String codiceIUN) { logger.info("Si cerca una notifica tramite IUN: " + codiceIUN); - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(driver); +// PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(driver); piattaformaNotifichePage.inserimentoCodiceIUN(codiceIUN); piattaformaNotifichePage.selectFiltraNotificaButtonDestinatario(); } @@ -354,7 +384,7 @@ public void nellaPaginaPiattformaNotificheSiEffettuaLaRicercaPerCodiceIUN(String @And("Si controlla la presenza di codice avviso") public void siControllaLaPresenzaDiCodiceAvviso() { logger.info("Si controlla la presenza di codice avviso"); - AccediAPiattaformaNotifichePage accediAPiattaformaNotifichePage = new AccediAPiattaformaNotifichePage(this.driver); +// AccediAPiattaformaNotifichePage accediAPiattaformaNotifichePage = new AccediAPiattaformaNotifichePage(this.driver); if (accediAPiattaformaNotifichePage.codiceAvvisoDisplayed()) { logger.info("Codice avviso è visuallizato corrttamente"); } else { @@ -365,19 +395,19 @@ public void siControllaLaPresenzaDiCodiceAvviso() { @And("controllo link per scaricare zip e scarico file Ricevuta di consegna") public void scaricaRicevutaDiConsegna() throws AWTException, IOException { - PiattaformaNotifichePGPAPage piattaformaNotifichePGPAPage = new PiattaformaNotifichePGPAPage(this.driver); +// PiattaformaNotifichePGPAPage piattaformaNotifichePGPAPage = new PiattaformaNotifichePGPAPage(this.driver); piattaformaNotifichePGPAPage.clickRicevutaDiConsegna(); } @And("controllo Ricevuta di consegna link cliccabile") public void controlloRicevutaDiConsegnaLinkCliccabile() { - NotificheDestinatarioPage notificheDestinatarioPage = new NotificheDestinatarioPage(this.driver); +// NotificheDestinatarioPage notificheDestinatarioPage = new NotificheDestinatarioPage(this.driver); notificheDestinatarioPage.checkRicevutaConsegnaCliccabile(); } @And("Controllo sia presente documento pdf") public void controlloPresenteDocumento() throws IOException { - PiattaformaNotifichePGPAPage piattaformaNotifichePGPAPage = new PiattaformaNotifichePGPAPage(this.driver); +// PiattaformaNotifichePGPAPage piattaformaNotifichePGPAPage = new PiattaformaNotifichePGPAPage(this.driver); logger.info("Controllo sia presente documento pdf"); Assertions.assertTrue(piattaformaNotifichePGPAPage.checkIfPdfExists(), "Documento non è trovato"); logger.info("Documento è trovato"); @@ -386,7 +416,7 @@ public void controlloPresenteDocumento() throws IOException { @And("estraggo il file zip") public void inseriscoPasswordEdEstraggoZip() throws IOException { logger.info("estraggo il file zip"); - PiattaformaNotifichePGPAPage piattaformaNotifichePGPAPage = new PiattaformaNotifichePGPAPage(this.driver); +// PiattaformaNotifichePGPAPage piattaformaNotifichePGPAPage = new PiattaformaNotifichePGPAPage(this.driver); piattaformaNotifichePGPAPage.extractZipWithoutPassword(); } @@ -395,10 +425,10 @@ public void siSelezionanoIlFileDaScaricare(String nomeFile) throws IOException { logger.info("Si cerca di scaricare il file " + nomeFile); boolean headless = webDriverConfig.getHeadless().equalsIgnoreCase("true"); - DettaglioNotificaMittenteSection dettaglioNotificaMittenteSection = new DettaglioNotificaMittenteSection(this.driver); +// DettaglioNotificaMittenteSection dettaglioNotificaMittenteSection = new DettaglioNotificaMittenteSection(this.driver); dettaglioNotificaMittenteSection.clickLinkAttestazioneOpponibile(nomeFile); WebTool.waitTime(5); - DownloadFile downloadFile = new DownloadFile(this.driver); +// DownloadFile downloadFile = new DownloadFile(this.driver); final String url = downloadFile.getUrl(webDriverConfig.getBaseUrl() + "notifications/received/"); if (headless && url.isEmpty()) { @@ -423,7 +453,7 @@ public void siControllaIlTestoAlSuoInternoDestonatario(String nomeFile) { @And("Si controlla il SHA all interno del file atteztazione") public void siControllaIlShaAllInternoAot() { logger.info("Si controlla che il testo al suo interno si corretto"); - DettaglioNotificaMittenteSection dettaglioNotificaMittenteSection = new DettaglioNotificaMittenteSection(this.driver); +// DettaglioNotificaMittenteSection dettaglioNotificaMittenteSection = new DettaglioNotificaMittenteSection(this.driver); if (dettaglioNotificaMittenteSection.controlloSHAFile("Attestazione_opponibile_a_terzi_notifica_presa_in_carico")) { logger.info("Il codice SHA all'interno del file è corretto"); } else { From 4c43566a8f648fcdef7b84b1abb162272b8ff804 Mon Sep 17 00:00:00 2001 From: andreadefranco Date: Tue, 29 Oct 2024 17:16:27 +0100 Subject: [PATCH 162/212] blank spaces and comments removed --- .../frontend/e2e/stepDefinitions/common/BackgroundTest.java | 6 ++++-- .../frontend/e2e/stepDefinitions/common/HelpdeskTest.java | 6 ------ 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/BackgroundTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/BackgroundTest.java index 7c5d5953b..9da60a61f 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/BackgroundTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/BackgroundTest.java @@ -50,8 +50,10 @@ public class BackgroundTest { @Autowired @Lazy private DisserviziAppPGTest disserviziAppPGTest ; - - private final HelpdeskTest helpdeskTest = new HelpdeskTest(); + @Autowired + @Lazy + private HelpdeskTest helpdeskTest; +// private final HelpdeskTest helpdeskTest = new HelpdeskTest(); @Autowired @Lazy diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/HelpdeskTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/HelpdeskTest.java index fc71d40b2..477079672 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/HelpdeskTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/HelpdeskTest.java @@ -39,24 +39,18 @@ public class HelpdeskTest { @Autowired @Lazy private HooksNew hooks; -// private final WebDriver driver = Hooks.driver; @Autowired private DataPopulation dataPopulation; @Autowired @Lazy private WebDriverConfig webDriverConfig; - @Autowired private HelpdeskPage helpdeskPage ; - @Autowired private BackgroundTest backgroundTest; - private Map datiTestHelpdesk = new HashMap<>(); private Map datiPersonaFisica = new HashMap<>(); - - @Given("Login helpdesk con utente test {string}") public void loginHelpdeskConUtenteTest(String nameFile) { this.datiTestHelpdesk = this.dataPopulation.readDataPopulation(nameFile + ".yaml"); From de54adccc3145a7da94eb9d3a4f7620ec8745cdf Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Tue, 29 Oct 2024 17:29:42 +0100 Subject: [PATCH 163/212] adeguamento mittente --- .../NotifichePersonaFisicaPagoPATest.java | 72 +++++++++---------- .../mittente/NotificaMittentePagoPATest.java | 17 ++--- 2 files changed, 37 insertions(+), 52 deletions(-) diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/NotifichePersonaFisicaPagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/NotifichePersonaFisicaPagoPATest.java index 6de92502a..c59c2134b 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/NotifichePersonaFisicaPagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/NotifichePersonaFisicaPagoPATest.java @@ -6,6 +6,7 @@ import it.pn.frontend.e2e.common.DettaglioNotificaSection; import it.pn.frontend.e2e.config.WebDriverConfig; import it.pn.frontend.e2e.listeners.Hooks; +import it.pn.frontend.e2e.listeners.HooksNew; import it.pn.frontend.e2e.pages.destinatario.DestinatarioPage; import it.pn.frontend.e2e.pages.destinatario.personaFisica.AccediAPiattaformaNotifichePage; import it.pn.frontend.e2e.pages.destinatario.personaFisica.NotifichePFPage; @@ -25,6 +26,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; +import org.springframework.context.annotation.Primary; import java.io.File; import java.util.HashMap; @@ -32,42 +35,59 @@ import java.util.Map; import java.util.concurrent.TimeUnit; +@Primary public class NotifichePersonaFisicaPagoPATest { private static final Logger logger = LoggerFactory.getLogger("NotifichePersonaFisicaTest"); - private final WebDriver driver = Hooks.driver; + private Map personaFisica = new HashMap<>(); - private final PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(driver); - private final DataPopulation dataPopulation = new DataPopulation(); - private final DestinatarioPage destinatarioPage = new DestinatarioPage(driver); - private final AccediAPiattaformaNotifichePage accediAPiattaformaNotifichePage = new AccediAPiattaformaNotifichePage(driver); - private final NotifichePFPage notifichePFPage = new NotifichePFPage(driver); - private final DettaglioNotificaSection dettaglioNotifica = new DettaglioNotificaSection(driver); + @Autowired + @Lazy + private HooksNew hooks; + @Autowired private CookieConfig cookieConfig; @Autowired private WebDriverConfig webDriverConfig; + @Autowired + private NotifichePFPage notifichePFPage; + @Autowired + private AccediAPiattaformaNotifichePage accediAPiattaformaNotifichePage; + @Autowired + private DettaglioNotificaSection dettaglioNotifica; + @Autowired + private DestinatarioPage destinatarioPage; + @Autowired + private DataPopulation dataPopulation; + @Autowired + private PiattaformaNotifichePage piattaformaNotifichePage; + @Autowired + private CookiesSection cookiesSection; + @Autowired + private HeaderPFSection headerPFSection; + + @Autowired + private DownloadFile downloadFile; + + @Autowired + private DettaglioNotificaSection dettaglioNotificaSection; @When("Nella pagina Piattaforma Notifiche persona fisica si clicca sul bottone Notifiche") public void nellaPiattaformaDestinatarioCliccareSulBottoneNotifiche() { - NotifichePFPage notifichePFPage = new NotifichePFPage(this.driver); notifichePFPage.clickNotificheButton(); } @Then("pagina Piattaforma Notifiche persona fisica viene visualizzata correttamente") public void paginaPiattaformaNotificheDestinatarioVieneVisualizzataCorrettamente() { - HeaderPFSection headerPFSection = new HeaderPFSection(this.driver); headerPFSection.waitLoadHeaderDESection(); if (!cookieConfig.isCookieEnabled()) { - CookiesSection cookiesSection = new CookiesSection(this.driver); if (cookiesSection.waitLoadCookiesPage()) { cookiesSection.selezionaAccettaTuttiButton(); } } - NotifichePFPage notifichePFPage = new NotifichePFPage(this.driver); notifichePFPage.waitLoadNotificheDEPage(); if (notifichePFPage.verificaPresenzaCodiceIunTextField()) { logger.info("text field codice iun presente"); @@ -84,43 +104,36 @@ public void paginaPiattaformaNotificheDestinatarioVieneVisualizzataCorrettamente @And("Si visualizza correttamente la Pagina Notifiche persona fisica") public void siVisualizzaCorrettamenteLaPaginaNotificheDestinatario() { - NotifichePFPage notifichePFPage = new NotifichePFPage(this.driver); notifichePFPage.siVisualizzaPaginaNotifichePersonaFisica(); } @And("Nella Pagina Notifiche persona fisica si visualizzano correttamente i filtri di ricerca") public void nellaPaginaNotificheDestinatarioSiVisualizzanoCorrettamenteIFiltriDiRicerca() { - NotifichePFPage notifichePFPage = new NotifichePFPage(this.driver); notifichePFPage.siVisualizzanoFiltriRicerca(); } @And("Nella Pagina Notifiche persona fisica si visualizza correttamente l elenco delle notifiche") public void nellaPaginaNotificheDestinatarioSiVisualizzaCorrettamenteLElencoDelleNotifiche() { - NotifichePFPage notifichePFPage = new NotifichePFPage(this.driver); notifichePFPage.siVisualizzaElencoNotifiche(); } @And("Si visualizza l elenco delle notifiche relative al delegante") public void siVisualizzaLElencoDelleNotificheRelativeAlDelegante() { - NotifichePFPage notifichePFPage = new NotifichePFPage(this.driver); 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); notifichePFPage.clickNomeDelegante(); } @Then("Si visualizzano correttamente le notifiche in elenco paginato") public void siVisualizzanoCorrettamenteLeNotificheInElencoPaginato() { - NotifichePFPage notifichePFPage = new NotifichePFPage(this.driver); int numeroRigheNotifiche = notifichePFPage.siVisualizzaNotifichePresenti(); if (numeroRigheNotifiche != 0) { @@ -133,8 +146,7 @@ public void siVisualizzanoCorrettamenteLeNotificheInElencoPaginato() { @And("Si visualizzano le notifiche dalla piu recente") public void siVisualizzanoLeNotificheDallaPiuRecente() { - driver.navigate().refresh(); - NotifichePFPage notifichePFPage = new NotifichePFPage(this.driver); + hooks.getDriver().navigate().refresh(); List dateNotifiche = notifichePFPage.getDateNotifiche(); if (dateNotifiche.size() != 0) { @@ -153,19 +165,16 @@ public void siVisualizzanoLeNotificheDallaPiuRecente() { @And("Si aggiorna la paginazione utilizzando le frecce") public void siAggiornaLaPaginazioneUtilizzandoLeFrecce() { - NotifichePFPage notifichePFPage = new NotifichePFPage(this.driver); notifichePFPage.clickPaginaSuccessiva(); } @And("Si visualizza correttamente una pagina diversa dalla precedente") public void siVisualizzaCorrettamenteUnaPaginaDiversaDallaPrecedente() { - NotifichePFPage notifichePFPage = new NotifichePFPage(this.driver); notifichePFPage.waitLoadPaginaDifferente(); } @And("Si visualizza correttamente la prossima pagina") public void siVisualizzaCorrettamenteLaSecondaPagina() { - NotifichePFPage notifichePFPage = new NotifichePFPage(this.driver); notifichePFPage.waitLoadSecondaPagina(); } @@ -173,26 +182,22 @@ public void siVisualizzaCorrettamenteLaSecondaPagina() { public void ciSiPosizionaSuUnaPaginaDifferenteAttraversoINumeriESiApplicaFiltro(String dpFile) { DataPopulation dataPopulation = new DataPopulation(); Map datiPg = dataPopulation.readDataPopulation(dpFile + ".yaml"); - NotifichePFPage notifichePFPage = new NotifichePFPage(this.driver); notifichePFPage.siSceglieUnaPaginaDiversaConNumeroESiFiltra(datiPg.get("codiceIUN").toString()); } @And("Si modifica il numero di notifiche visualizzate scegliendo un valore diverso da quello di default") public void siModificaIlNumeroDiNotificheVisualizzateScegliendoUnValoreDiversoDaQuelloDiDefault() { - NotifichePFPage notifichePFPage = new NotifichePFPage(this.driver); notifichePFPage.modificaNumeroNotifichePagina(); } @And("Ci si posiziona su una pagina differente da quella di default e si aumenta il numero di modifiche visualizzate") public void ciSiPosizionaSuUnaPaginaDifferenteDaQuellaDiDefaultESiAumentaIlNumeroDiModificheVisualizzate() { - NotifichePFPage notifichePFPage = new NotifichePFPage(this.driver); notifichePFPage.numeroDiversoPagine(); } @And("Si visualizza un numero di pagine visualizzate uguale a quello selezionato") public void siVisualizzaUnNumeroDiPagineVisualizzateUgualeAQuelloSelezionato() { - NotifichePFPage notifichePFPage = new NotifichePFPage(this.driver); try { TimeUnit.SECONDS.sleep(3); } catch (InterruptedException e) { @@ -211,21 +216,17 @@ public void siVisualizzaUnNumeroDiPagineVisualizzateUgualeAQuelloSelezionato() { @When("La persona fisica clicca sulla notifica restituita") public void ilDestinatarioCliccaSullaNotificaRestituita() { logger.info("Si clicca sulla notifica"); - NotifichePFPage notifichePFPage = new NotifichePFPage(this.driver); notifichePFPage.selezionaNotifica(); } @And("Si visualizza correttamente la section Dettaglio Notifica persona fisica") public void siVisualizzaCorrettamenteLaSectionDettaglioNotificaDestinatario() { - DettaglioNotificaSection dettaglioNotificaSection = new DettaglioNotificaSection(this.driver); dettaglioNotificaSection.waitLoadDettaglioNotificaDESection(); } @And("Si controlla sezione Pagamento se notifica prevede il pagamento") public void siControllaSezionePagamentoSeNotificaPrevedeIlPagamento() { - AccediAPiattaformaNotifichePage accediAPiattaformaNotifichePage = new AccediAPiattaformaNotifichePage(this.driver); - boolean sezionePagamentoIsDisplayed = accediAPiattaformaNotifichePage.sezionePagamentoDisplayed(); if (!sezionePagamentoIsDisplayed) { @@ -283,10 +284,7 @@ public void siControllaSezionePagamentoSeNotificaPrevedeIlPagamento() { @Then("Si selezionano i file attestazioni opponibili da scaricare, all'interno della notifica persona fisica, e si controlla che il download sia avvenuto {string}") public void siSelezionanoIFileAttestazioniOpponibiliDaScaricareAllInternoDellaNotificaDestinatarioESiControllaCheIlDownloadSiaAvvenuto(String dpFile) { - DettaglioNotificaSection dettaglioNotificaSection = new DettaglioNotificaSection(this.driver); int numeroLinkAttestazioniOpponibile = dettaglioNotificaSection.getLinkAttestazioniOpponibili(); - DownloadFile downloadFile = new DownloadFile(this.driver); - DataPopulation dataPopulation = new DataPopulation(); Map datiNotifica = dataPopulation.readDataPopulation(dpFile + ".yaml"); String workingDirectory = System.getProperty("user.dir"); boolean headless = webDriverConfig.getHeadless().equalsIgnoreCase("true"); @@ -315,7 +313,6 @@ public void siSelezionanoIFileAttestazioniOpponibiliDaScaricareAllInternoDellaNo @And("Si clicca sul opzione Vedi Dettaglio") public void siCliccaSulOpzioneVediDettaglio() { - DettaglioNotificaSection dettaglioNotificaSection = new DettaglioNotificaSection(driver); dettaglioNotificaSection.selezioneVediDettaglioButton(); } @@ -326,7 +323,6 @@ public void siVisualizzaCorrettamenteLaPaginaNotifichePersonaFisicaDelegante(Str String nome = personaFisicaDelgante.get("name").toString(); String cognome = personaFisicaDelgante.get("familyName").toString(); - NotifichePFPage notifichePFPage = new NotifichePFPage(this.driver); notifichePFPage.waitLoadNotificheDEPageDelegante(nome, cognome); } @@ -432,7 +428,6 @@ public void nellaPaginaPiattaformaNotificheVisualizzanoCorrettamenteIFiltriDiRic @Then("Si visualizza correttamente la section Dettaglio Notifica annullata") public void siVisualizzaCorrettamenteLaSectionDettaglioNotificaAnnullata() { - DettaglioNotificaSection dettaglioNotificaSection = new DettaglioNotificaSection(this.driver); dettaglioNotificaSection.waitLoadDettaglioNotificaAnnullataDESection(); } @@ -468,7 +463,7 @@ public void siControllaDiAverApertoLAvvisoPagoPa() { @And("Si torna alla pagina precedente") public void siTornaAllaPaginaPrecedente() { logger.info("Si torna alla pagina precedente"); - driver.navigate().back(); + hooks.getDriver().navigate().back(); } @And("Si controlla non sia presente il bottone paga") @@ -509,7 +504,6 @@ public void siVisualizzaStatoPagato(){ @And("Verifica nome ente mittente {string}") public void verificaNomeEnteMittente(String nomeEnte){ - DettaglioNotificaSection dettaglioNotificaSection = new DettaglioNotificaSection(this.driver); Map infoNotifiche = dettaglioNotificaSection.recuperoInfoNotificheDestinatario(); Assertions.assertTrue(infoNotifiche.get("mittente").equalsIgnoreCase(nomeEnte)); } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java index f3a9bf304..79a5b4464 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java @@ -90,6 +90,10 @@ public class NotificaMittentePagoPATest { @Autowired private AreaRiservataPAPage areaRiservataPAPage; + @Autowired + private HeaderPASection headerPASection; + + @When("Nella Home page mittente cliccare sul bottone Gestisci di Piattaforma Notifiche") public void nellaHomePageMittenteCliccareSuGestisciDiPiattaforma() { @@ -104,8 +108,6 @@ public void nellaHomePageMittenteCliccareSuGestisciDiPiattaforma() { @And("Si visualizza correttamente la pagina Piattaforma Notifiche") public void siVisualizzaCorrettamenteLaPaginaPiattaformaNotifiche() { logger.info("Si visualizza correttamente la pagina Piattaforma Notifiche"); - - HeaderPASection headerPASection = new HeaderPASection(hooks.getDriver()); headerPASection.waitLoadHeaderSection(); piattaformaNotifichePage.waitLoadPiattaformaNotifichePAPage(); @@ -189,7 +191,6 @@ public void siFinalizzaLInvioDellaNotificaESiControllaCheVengaCreataCorrettament public void siVisualizzaCorrettamenteLaPaginaPiattaformaNotificheSectionInformazioniPreliminari() { logger.info("Verifica visualizzazione section Informazioni preliminari"); - HeaderPASection headerPASection = new HeaderPASection(hooks.getDriver()); headerPASection.waitLoadHeaderSection(); informazioniPreliminariPASection.waitLoadInformazioniPreliminariPASection(); } @@ -256,7 +257,6 @@ public void siVisualizzaCorrettamenteLaTimelineRelativiATuttiIDestinatari(Map Date: Tue, 29 Oct 2024 17:51:28 +0100 Subject: [PATCH 164/212] update mittente --- .../section/mittente/SuccessPASection.java | 4 ++ .../CucumberSpringIntegration.java | 3 +- .../mittente/NotificaMittentePagoPATest.java | 46 +++++++------------ 3 files changed, 23 insertions(+), 30 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/section/mittente/SuccessPASection.java b/src/main/java/it/pn/frontend/e2e/section/mittente/SuccessPASection.java index 49f435443..950228b69 100644 --- a/src/main/java/it/pn/frontend/e2e/section/mittente/SuccessPASection.java +++ b/src/main/java/it/pn/frontend/e2e/section/mittente/SuccessPASection.java @@ -9,7 +9,10 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +@Component public class SuccessPASection extends BasePage { private static final Logger logger = LoggerFactory.getLogger("SuccessPASection"); @@ -20,6 +23,7 @@ public class SuccessPASection extends BasePage { @FindBy(id = "title-sync-feedback") WebElement successCheckBy; + @Autowired public SuccessPASection(WebDriver driver) { super(driver); } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java index 2ac414cf8..fb3479e97 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java @@ -76,7 +76,8 @@ HelpdeskPage.class, ComeVuoiAccederePage.class, DashboardPage.class, - NotificationSingleton.class + NotificationSingleton.class, + SuccessPASection.class }) diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java index 79a5b4464..f46f69aee 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java @@ -47,18 +47,7 @@ public class NotificaMittentePagoPATest { private static final Logger logger = LoggerFactory.getLogger("NotificaMittentePagoPATest"); - @Autowired - private PiattaformaNotifichePage piattaformaNotifichePage; - @Autowired - private AllegatiPASection allegatiPASection; - @Autowired - private DestinatarioPASection destinatarioPASection; - @Autowired - private DataPopulation dataPopulation; - @Autowired - private DettaglioNotificaMittenteSection dettaglioNotificaMittenteSection; - @Autowired - private InformazioniPreliminariPASection informazioniPreliminariPASection; + private final LoginPersonaFisicaPagoPA loginPersonaFisicaPagoPA = new LoginPersonaFisicaPagoPA(); private final LoginPGPagoPATest loginPGPagoPATest = new LoginPGPagoPATest(); @@ -93,6 +82,22 @@ public class NotificaMittentePagoPATest { @Autowired private HeaderPASection headerPASection; + @Autowired + private SuccessPASection successPASection; + + @Autowired + private PiattaformaNotifichePage piattaformaNotifichePage; + @Autowired + private AllegatiPASection allegatiPASection; + @Autowired + private DestinatarioPASection destinatarioPASection; + @Autowired + private DataPopulation dataPopulation; + @Autowired + private DettaglioNotificaMittenteSection dettaglioNotificaMittenteSection; + @Autowired + private InformazioniPreliminariPASection informazioniPreliminariPASection; + @When("Nella Home page mittente cliccare sul bottone Gestisci di Piattaforma Notifiche") @@ -265,11 +270,7 @@ public void siVisualizzaCorrettamenteLaPaginaPiattaformaNotificheSectionDestinat @And("Nella section Destinatario inserire nome cognome e codice fiscale da persona fisica {string}") public void nellaSectionDestinatarioInserireNomeCognomeECodiceFiscaleDaDestinatario(String destinatarioFile) { logger.info("Inserimento del nome cognome e codice fiscale dal file personaFisica.yaml"); - - this.personeFisiche = dataPopulation.readDataPopulation(destinatarioFile + ".yaml"); - - destinatarioPASection.selezionarePersonaFisica(); destinatarioPASection.inserireNomeDestinatario(this.personeFisiche.get("name").toString()); destinatarioPASection.inserireCognomeDestinatario(this.personeFisiche.get("familyName").toString()); @@ -396,7 +397,6 @@ public void siVisualizzaCorrettamenteLaFraseLaNotificaEStataCorrettamenteCreata( headerPASection.waitLoadHeaderSection(); - SuccessPASection successPASection = new SuccessPASection(hooks.getDriver()); successPASection.waitLoadSuccessPASection(); } @@ -405,7 +405,6 @@ public void siVisualizzaCorrettamenteLaFraseLaNotificaEStataCorrettamenteCreata( public void cliccareSulBottoneVaiAlleNotifiche() { logger.info("Si clicca sul bottone 'vai alle notifiche'"); - SuccessPASection successPASection = new SuccessPASection(hooks.getDriver()); successPASection.vaiAlleNotifiche(); } @@ -457,24 +456,18 @@ public void nellaPaginaPiattaformaNotificheAccettaICookies() { @When("Cliccare sulla notifica restituita") public void cliccareSullaNotificaRestituita() { logger.info("Si clicca sulla notifica"); - - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(hooks.getDriver()); piattaformaNotifichePage.selezionaPrimaNotifica(); } @When("Cliccare sulla notifica maggiore di 120 giorni") public void cliccareSullaNotificaRestituita120Giorni() { logger.info("Si clicca sulla notifica maggiore di 120 giorni"); - - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(hooks.getDriver()); piattaformaNotifichePage.selezionaNotifica120Giorni(); } @When("Cliccare sulla notifica maggiore di 120 giorni {int}") public void cliccareSullaNotificaRestituita120Giorni(Integer index) { logger.info("Si clicca sulla notifica maggiore di 120 giorni"); - - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(hooks.getDriver()); piattaformaNotifichePage.selezionaNotifica120Giorni(index); } @@ -532,7 +525,6 @@ public void siVisualizzaCorrettamenteLElencoCompletoDegliStatiCheLaNotificaHaPer @Then("Si clicca sul bottone indietro") public void siCliccaSulBottoneIndietro() { - DettaglioNotificaMittenteSection dettaglioNotificaMittenteSection = new DettaglioNotificaMittenteSection(hooks.getDriver()); dettaglioNotificaMittenteSection.clickIndietroButton(); } @@ -605,13 +597,11 @@ public void nellaSectionDestinatarioVieneVisualizzatoUnSoloDestinatario() { @And("Nella pagina Piattaforma Notifiche si visualizzano le notifiche a partire dalla più recente") public void nellaPaginaPiattaformaNotificheSiVisualizzanoLeNotificheAPartireDallaPiuRecente() { - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(hooks.getDriver()); piattaformaNotifichePage.controlloOrdineNotifiche(); } @And("Nella pagina Piattaforma Notifiche si scrolla fino alla fine della pagina") public void nellaPaginaPiattaformaNotificheSiScrollaFinoAllaFineDellaPagina() { - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(hooks.getDriver()); piattaformaNotifichePage.siScrollaFinoAllaFineDellaPagina(); } @@ -763,7 +753,6 @@ public void siVerificaCheLInvioDellaPecSiaInCorso() { @And("Verifica dello stato della notifica inviata tramite pec come {string}") public void verificaDelloStatoDellaNotificaInviataTramitePecCome(String statoNotifica) { - this.datiNotifica = dataPopulation.readDataPopulation("datiNotifica.yaml"); this.personeFisiche = dataPopulation.readDataPopulation("personaFisicaPec.yaml"); @@ -887,7 +876,6 @@ public void nellaSectionDestinatarioCliccareSuAggiungiIndirizzoFisicoCompilareID this.personaGiuridica = dataPopulation.readDataPopulation(dpFile + ".yaml"); - destinatarioPASection.selezionaAggiungiUnIndirizzoFisico(); destinatarioPASection.inserireIndirizzo(this.personaGiuridica.get("indirizzo").toString()); destinatarioPASection.inserireNumeroCivico(this.personaGiuridica.get("numeroCivico").toString()); From 16d8214ba5257b21ae09b6e1c3184af915cdca2c Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Tue, 29 Oct 2024 18:35:31 +0100 Subject: [PATCH 165/212] update --- .../e2e/stepDefinitions/common/BackgroundTest.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/BackgroundTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/BackgroundTest.java index 788c68016..d82d0cfc6 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/BackgroundTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/BackgroundTest.java @@ -33,6 +33,7 @@ public class BackgroundTest { private final String nomeFileNuovaDelega = "nuova_delega"; private final String nomeFileNuovaDelegaPG = "nuovaDelegaPG"; private final String mittente = "mittente"; + private final Map datiPersonaFisica; @Autowired @Lazy @@ -61,11 +62,12 @@ public class BackgroundTest { @Autowired @Lazy private RecapitiTest recapitiTest; - private final Map datiPersonaFisica; @Autowired private RecapitiDestinatarioPage recapitiDestinatarioPage ; @Autowired private ITuoiRecapitiPage iTuoiRecapitiPage; + @Autowired + private PiattaformaNotifichePage piattaformaNotifichePage; @Autowired public BackgroundTest() { @@ -368,21 +370,18 @@ public void inserimentoOTPErratoTreVolteEControlloMessaggio(String OTP) { } public void siFiltraLaTabellaDelleNotifichePerIUNDestinatario(String iun) { - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(driver); piattaformaNotifichePage.inserimentoCodiceIUN(iun); piattaformaNotifichePage.selectFiltraNotificaButtonDestinatario(); piattaformaNotifichePage.clickSuNotifica(); } public void siFiltraLaTabellaDelleNotificheDelDestinatarioPerIUN(String iun) { - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(driver); piattaformaNotifichePage.inserimentoCodiceIUN(iun); piattaformaNotifichePage.selectFiltraNotificaButtonDestinatario(); piattaformaNotifichePage.clickSuNotifica(); } public void siFiltraLaTabellaDelleNotifichePerIUNMittente(String iun) { - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(driver); piattaformaNotifichePage.inserimentoCodiceIUN(iun); piattaformaNotifichePage.selectFiltraNotificaButtonMittente(); WebTool.waitTime(1); From b3531474da557d96103e27dfa1b3c85bb4c55f35 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Wed, 30 Oct 2024 10:25:07 +0100 Subject: [PATCH 166/212] update --- .../mittente/NewNotifichePagoPATest.java | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NewNotifichePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NewNotifichePagoPATest.java index 0bd13f6f2..908af897e 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NewNotifichePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NewNotifichePagoPATest.java @@ -6,6 +6,7 @@ import it.pn.frontend.e2e.config.WebDriverConfig; import it.pn.frontend.e2e.listeners.Hooks; +import it.pn.frontend.e2e.listeners.HooksNew; import it.pn.frontend.e2e.pages.destinatario.DestinatarioPage; import it.pn.frontend.e2e.utility.DataPopulation; @@ -15,6 +16,7 @@ import org.junit.jupiter.api.Assertions; import org.openqa.selenium.WebDriver; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import java.util.Map; @@ -22,13 +24,17 @@ @Slf4j public class NewNotifichePagoPATest { - private final WebDriver driver = Hooks.driver; private final String FILE_TOKEN_LOGIN = "tokenLogin.yaml"; + @Value("${environment}") + private String environmentParam; + + @Autowired + private DestinatarioPage destinatarioPage; + @Autowired - private WebDriverConfig webDriverConfig; + private DataPopulation dataPopulation; - DestinatarioPage destinatarioPage = new DestinatarioPage(driver); @Then("Creo in background una notifica per destinatario tramite API REST") public void creoUnaNotificaPerDestinatarioTramiteAPIREST(){ @@ -47,8 +53,7 @@ public void siInizializzanoIDatiPerLaNotifica(Map datiNotifica) @And("Si completa percorso RADD") public void siCompletaPercorsoRADD(Map datiDestinatario) { - DataPopulation dataPopulation = new DataPopulation(); - String environment = webDriverConfig.getEnvironment(); + String environment = environmentParam; String token = ""; switch (environment) { case "dev" -> { From 60ff9d3249d4db8765fa7ccad46a6d65d41c3add Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Wed, 30 Oct 2024 10:41:07 +0100 Subject: [PATCH 167/212] update destinatario PF --- .../personaFisica/DeleghePagoPATest.java | 6 -- .../RecapitiPersonaFisicaTest.java | 55 ++----------------- .../RicercaNotifichePersonaFisicaPATest.java | 3 - 3 files changed, 6 insertions(+), 58 deletions(-) diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/DeleghePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/DeleghePagoPATest.java index 337928125..c5d031b97 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/DeleghePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/DeleghePagoPATest.java @@ -71,7 +71,6 @@ public class DeleghePagoPATest { @When("Nella pagina Piattaforma Notifiche persona fisica click sul bottone Deleghe") public void waitDelegheButton() { log.info("Si clicca sul bottone deleghe"); -// NotifichePFPage notifichePFPage = new NotifichePFPage(this.driver); notifichePFPage.waitESelectDelegheButton(); } @@ -99,7 +98,6 @@ public void nellaSezioneLeTueDelegheInserireIDati(Map personaFis String codiceFiscale = personaFisica.get("codiceFiscale"); String ente = personaFisica.get("ente"); - leTueDelegheSection.selectPersonaFisicaRadioButton(); leTueDelegheSection.insertNomeCognome(nome, cognome); @@ -114,7 +112,6 @@ public void nellaSezioneLeTueDelegheInserireIDati(Map personaFis public void nellaSezioneLeTueDelegheVerificareCheLaDataSiaCorretta() { log.info("Si controlla che la data visualizzata sia corretta"); - if (this.leTueDelegheSection.verificareCheLaDataSiaCorretta()) { log.info("La data inserita è corretta"); } else { @@ -129,7 +126,6 @@ public void nellaSezioneLeTueDelegheSalvareIlCodiceVerificaAllInternoDelFile(Str deleghe = dataPopulation.readDataPopulation(dpFile + ".yaml"); - String codiceVerifica = this.leTueDelegheSection.salvataggioCodiceVerifica(); deleghe.put("codiceDelega", codiceVerifica); dataPopulation.writeDataPopulation(dpFile + ".yaml", deleghe); @@ -176,14 +172,12 @@ public void nellaSezioneDelegheSiSceglieLOpzioneMostraCodice() { @Then("Si clicca sul bottone chiudi") public void siCliccaSulBottoneChiudi() { log.info("Si clicca sul bottone chiudi"); - deleghePage.siCliccaSulBottoneChiudi(); } @And("Nella sezione Deleghe si sceglie l'opzione revoca") public void nellaSezioneDelegheSiSceglieLOpzioneRevoca() { log.info("Si clicca sulla opzione revoca delega"); - deleghePage.clickOpzioneRevoca(); } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java index 85476e113..754e478ba 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java @@ -40,33 +40,30 @@ public class RecapitiPersonaFisicaTest { @Autowired @Lazy private BackgroundTest backgroundTest; + @Autowired + private RecapitiDestinatarioPage recapitiDestinatarioPage ; + @Autowired + private DataPopulation dataPopulation; + @Autowired + private ITuoiRecapitiPage iTuoiRecapitiPage; public static String OTP; - private final RecapitiDestinatarioPage recapitiDestinatarioPage = new RecapitiDestinatarioPage(hooks.getDriver()); - private final DataPopulation dataPopulation = new DataPopulation(); - // private final List netWorkInfos = Hooks.netWorkInfos; - - private final NotificaMittentePagoPATest notificaMittentePagoPATest = new NotificaMittentePagoPATest(); - private final ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(hooks.getDriver()); @When("Nella pagina Piattaforma Notifiche persona fisica si clicca sul bottone I Tuoi Recapiti") public void nellaPaginaPiattaformaNotifichePersonaFisicaSiCliccaSulBottoneITuoiRecapiti() { logger.info("Si cerca di cliccare il bottone I Tuoi Recapiti"); - ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(hooks.getDriver()); iTuoiRecapitiPage.iTuoiRecapitiButtonClick(); } @And("Si visualizza correttamente la pagina I Tuoi Recapiti") public void siVisualizzaCorrettamenteLaPaginaITuoiRecapiti() { logger.info("Si controlla che si visualizza correttamente la pagina I Tuoi Recapiti"); - ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(hooks.getDriver()); iTuoiRecapitiPage.waitLoadITuoiRecapitiPage(); } @And("Nella pagina I Tuoi Recapiti si visualizza correttamente la sezione 'E-mail o numero di cellulare'") public void nellaPaginaITuoiRecapitiSiVisualizzaCorrettamenteLaSezioneEmailONumeroDiCellulare() { logger.info("Si controlla che si visualizza correttamente la sezione 'E-mail o numero di cellulare'"); - ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(hooks.getDriver()); iTuoiRecapitiPage.waitLoadCourtesyContacts(); } @@ -155,7 +152,6 @@ public void siVisualizzaCorrettamenteIlMessaggioDiErrore() { @And("Cliccare sul bottone Annulla") public void cliccareSulBottoneAnnulla() { logger.info("Si clicca sul bottone Annulla"); - recapitiDestinatarioPage.annullaButtonClick(); } @@ -163,7 +159,6 @@ public void cliccareSulBottoneAnnulla() { @And("Nella pagina I Tuoi Recapiti clicca sul bottone conferma") public void nellaPaginaITuoiRecapitiCliccaSulBottoneConferma() { logger.info("Si cerca di cliccare sul bottone conferma"); - recapitiDestinatarioPage.confermaButtonClickPopUp(); } @@ -187,7 +182,6 @@ public void nellaPaginaITuoiRecapitiSiControllaCheIlTastoConfermaSiaBloccato() { @And("Si controlla che il tasto avvisami via email sia bloccato") public void nellaPaginaITuoiRecapitiSiControllaCheIlTastoAvvisamiViaEmailSiaBloccato() { - Assertions.assertTrue(recapitiDestinatarioPage.avvisamiViaEmailIsDisabled(), "il bottone avvisami via email non è disabilitato"); } @@ -206,7 +200,6 @@ public void nellaPaginaITuoiRecapitiSiInserisceLEmailDelPFECliccaSulBottoneAvvis @And("Si inserisce l'email {string} e si clicca sul bottone avvisami via email") public void nellaPaginaITuoiRecapitiSiInserisceLEmailDelPFECliccaSulBottoneAvvisami(String email) { logger.info("Si inserisce la email"); - recapitiDestinatarioPage.insertEmail(email); recapitiDestinatarioPage.clickAvvisamiViaEmail(); } @@ -214,7 +207,6 @@ public void nellaPaginaITuoiRecapitiSiInserisceLEmailDelPFECliccaSulBottoneAvvis @And("Si visualizza correttamente il pop-up e si clicca su conferma") public void siVisualizzaCorrettamenteIlPopUpESiCliccaSuConferma() { logger.info("click pop-up conferma email"); - //Assert.assertFalse("il popup Conferma email non si visualizza", recapitiDestinatarioPage.verificaPopUpConfermaEmail()); // recapitiDestinatarioPage.clickHoCapitoCheckBoxPopup(); recapitiDestinatarioPage.confermaEmailPopup(); @@ -229,17 +221,13 @@ public void nellaPaginaITuoiRecapitiSiInserisceIlNumeroDiTelefonoDelPF(String dp Map personaFisica = dataPopulation.readDataPopulation(dpFile + ".yaml"); String phoneNumber = personaFisica.get("telefono").toString(); - ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(hooks.getDriver()); iTuoiRecapitiPage.insertTelephoneNumber(phoneNumber); iTuoiRecapitiPage.clickAvvisamiViaSMS(); } @And("Nella pagina I Tuoi Recapiti si inserisce il numero di telefono PF {string} e clicca sul bottone avvisami via SMS") public void nellaPaginaITuoiRecapitiSiInserisceIlNumeroDiTelefonoPF(String phoneNumber) { - logger.info("Si inserisce il numero di telefono PF"); - - ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(hooks.getDriver()); iTuoiRecapitiPage.insertTelephoneNumber(phoneNumber); iTuoiRecapitiPage.clickAvvisamiViaSMS(); @@ -247,13 +235,11 @@ public void nellaPaginaITuoiRecapitiSiInserisceIlNumeroDiTelefonoPF(String phone @And("Nella pagina I Tuoi Recapiti si inserisce il numero di telefono errato {string}") public void nellaPaginaITuoiRecapitiSiInserisceIlNumeroDiTelefonoErrato(String numeroErrato) { - ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(hooks.getDriver()); iTuoiRecapitiPage.insertTelephoneNumber(numeroErrato); } @Then("Nella pagina I Tuoi Recapiti si visualizza correttamente il messaggio di numero di telefono errato") public void nellaPaginaITuoiRecapitiSiVisualizzaCorrettamenteIlMessaggioDiNumeroDiTelefonoErrato() { - ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(hooks.getDriver()); String errorMessageRead = iTuoiRecapitiPage.getPhoneErrorMessage(); Assertions.assertEquals("Numero di cellulare non valido", errorMessageRead, "messaggio di errore letto : '" + errorMessageRead + "' non è uguale a : Numero di cellulare non valido"); @@ -261,7 +247,6 @@ public void nellaPaginaITuoiRecapitiSiVisualizzaCorrettamenteIlMessaggioDiNumero @And("Nella pagina I Tuoi Recapiti si controlla che il tasto avvisami via sms sia bloccato") public void nellaPaginaITuoiRecapitiSiControllaCheIlTastoAvvisamiViaSmsSiaBloccato() { - ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(hooks.getDriver()); Assertions.assertTrue(iTuoiRecapitiPage.avvisamiViaSMSIsDisabled(), "il bottone avvisami via SMS non è disabilitato"); } @@ -303,7 +288,6 @@ public void nellaPaginaITuoiRecapitiSiRecuperaIlCodiceOTPTramiteChiamataRequest( public void nellaPaginaITuoiRecapitiSiRecuperaIlCodiceOTPTramiteChiamataRequestDellEmailEVieneInserito(String email) { RecuperoOTPRecapiti recuperoOTPRecapiti = new RecuperoOTPRecapiti(); - ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(hooks.getDriver()); String startUrl = "http://localhost:8887/"; String url = startUrl + recuperoOTPRecapiti.getUrlEndPoint() + email; @@ -345,7 +329,6 @@ public void nellaPaginaITuoiRecapitiSiInserisceIlCodiceOTP(String dpFile) { logger.info("Si inserisce il codice OTP di verifica"); String otp = dataPopulation.readDataPopulation(dpFile + ".yaml").get("OTPpec").toString(); - ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(hooks.getDriver()); iTuoiRecapitiPage.sendOTP(otp); recapitiDestinatarioPage.confermaButtonClickPopUp(); if (recapitiDestinatarioPage.waitMessaggioErrore()) { @@ -358,7 +341,6 @@ public void nellaPaginaITuoiRecapitiSiInserisceIlCodiceOTP(String dpFile) { @And("Nella pagina I Tuoi Recapiti si inserisce il codice OTP") public void nellaPaginaITuoiRecapitiSiInserisceIlCodiceOTP() { logger.info("Si inserisce il codice OTP di verifica"); - ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(hooks.getDriver()); WebTool.waitTime(2); iTuoiRecapitiPage.sendOTP(OTP); recapitiDestinatarioPage.confermaButtonClickPopUp(); @@ -475,7 +457,6 @@ public void nellaPaginaITuoiRecapitiSiInserisceLOTPRicevutoViaEmail(String dpFil logger.info("Si inserisce il codice OTP di verifica"); String otp = dataPopulation.readDataPopulation(dpFile + ".yaml").get("OTPmail").toString(); - ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(hooks.getDriver()); iTuoiRecapitiPage.sendOTP(otp); recapitiDestinatarioPage.confermaButtonClickPopUp(); } @@ -492,7 +473,6 @@ public void nellaPaginaITuoiRecapitiSiControllaCheLaEmailSiaPresente() { @And("Nella pagina I Tuoi Recapiti si controlla che ci sia già una Email") public void nellaPaginaITuoiRecapitiSiControllaCheCiSiaGiaUnaEmail() { logger.info("Si controlla che che ci sia già una Email"); - ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(hooks.getDriver()); iTuoiRecapitiPage.waitLoadITuoiRecapitiPage(); Map personaFisica = dataPopulation.readDataPopulation("personaFisica.yaml"); @@ -524,7 +504,6 @@ public void nellaPaginaITuoiRecapitiSiControllaCheCiSiaGiaUnaEmail() { @And("Nella pagina I Tuoi Recapiti si clicca sul bottone modifica") public void nellaPaginaITuoiRecapitiSiCliccaSulBottoneModifica() { logger.info("Si clicca sul bottone modifica"); - ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(hooks.getDriver()); iTuoiRecapitiPage.waitLoadITuoiRecapitiPage(); recapitiDestinatarioPage.clickSuModifica(); } @@ -533,7 +512,6 @@ public void nellaPaginaITuoiRecapitiSiCliccaSulBottoneModifica() { public void nellaPaginaITuoiRecapitiSiInserisceLaNuovaEmailDelPFECliccaSulBottoneAvvisamiViaEmail(String dpFile) { logger.info("Si inserisce la nuova Email e si clicca sul bottone avvisami via email"); - ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(hooks.getDriver()); iTuoiRecapitiPage.waitLoadITuoiRecapitiPage(); iTuoiRecapitiPage.cancellaTesto(); @@ -547,8 +525,6 @@ public void nellaPaginaITuoiRecapitiSiInserisceLaNuovaEmailDelPFECliccaSulBotton @Then("Nella pagina I Tuoi Recapiti si controlla che la Email sia stata modificata") public void nellaPaginaITuoiRecapitiSiControllaCheLaEmailSiaStataModificata() { logger.info("Si controlla che la Email sia stata modificata"); - - ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(hooks.getDriver()); iTuoiRecapitiPage.verificaEmailModificata(); } @@ -594,7 +570,6 @@ public void nellaPaginaITuoiRecapitiSiRecuperaLOTPDellaNuovaEmailTramiteRequestM @And("Nella pagina I Tuoi Recapiti si clicca sul bottone elimina email e si conferma nel pop up") public void nellaPaginaITuoiRecapitiSiCliccaSulBottoneEliminaEmailESiConfermaNelPopUp() { logger.info("Si clicca sul bottone elimina email"); - ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(hooks.getDriver()); iTuoiRecapitiPage.eliminaEmailEsistente(); if (recapitiDestinatarioPage.waitLoadPopUpElimina().equalsIgnoreCase("Rimuovi email")) { @@ -610,7 +585,6 @@ public void nellaPaginaITuoiRecapitiSiCliccaSulBottoneEliminaEmailESiConfermaNel @And("Nella pagina I Tuoi Recapiti si clicca sul bottone elimina email e si annulla nel pop up") public void nellaPaginaITuoiRecapitiSiCliccaSulBottoneEliminaEmailESiAnnullaNelPopUp() { logger.info("Si clicca sul bottone elimina email"); - ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(hooks.getDriver()); iTuoiRecapitiPage.eliminaEmailEsistente(); if (recapitiDestinatarioPage.waitLoadPopUpElimina().equalsIgnoreCase("Rimuovi email")) { @@ -648,9 +622,7 @@ public void nellaPaginaITuoiRecapitiSiControllaCheLIndirizzoEmailNonEStataElemin @And("Nella pagina I Tuoi Recapiti si visualizza correttamente la sezione altri recapiti") public void nellaPaginaITuoiRecapitiSiVisualizzaCorrettamenteLaSezioneAltriRecapiti() { logger.info("Si controlla che l'indirizzo Email non sia presente"); - recapitiDestinatarioPage.visualizzazioneSezioneAltriRecapiti(); - } @And("Nella pagina I Tuoi Recapiti di PF, si controlla che ci sia già una pec {string}") @@ -863,19 +835,14 @@ public void nellaPaginaITuoiRecapitiSiControllaCheLIndirizzoPecPresente() { @And("Nella sezione altri recapiti si seleziona l'ente {string}") public void nellaSezioneAltriRecapitiSiSelezionaLEnte(String dpFile) { logger.info("Si sceglie l'ente"); - Map mittente = dataPopulation.readDataPopulation(dpFile + ".yaml"); - recapitiDestinatarioPage.insertEnte(mittente.get("comune").toString()); - } @And("Nella pagina Recapiti si inserisce il numero di telefono {string} e clicca sul bottone avvisami via SMS") public void nellaPaginaRecapitiSiInserisceIlNumeroDiTelefono(String numero) { logger.info("Si inserisce il numero di telefono"); - - ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(hooks.getDriver()); iTuoiRecapitiPage.insertTelephoneNumber(numero); iTuoiRecapitiPage.clickAvvisamiViaSMS(); } @@ -889,9 +856,7 @@ public void nellaSezioneAltriRecapitiPGSiSelezionaLEnte(String ente) { @And("Nella sezione altri recapiti si seleziona il tipo di indirizzo") public void nellaSezioneAltriRecapitiSiSelezionaIlTipoDiIndirizzo() { logger.info("Si selezione il tipo di indirizzo come PEC"); - recapitiDestinatarioPage.clickSuIndirizzoPEC(); - } @And("Nella sezione altri recapiti si inserisce la PEC aggiuntiva de persona fisica {string}") @@ -939,7 +904,6 @@ public void nellaSezioneAltriRecapitiSiInserisceLaEmailAggiuntivaDellaPersonaFis @And("Nella sezione altri recapiti si seleziona il tipo di indirizzo scegliendo {string}") public void nellaSezioneAltriRecapitiSiSelezionaIlTipoDiIndirizzoScegliendoEmail(String tipoIndirizzo) { logger.info("Si seleziona il tipo di indirizzo scegliendo email"); - ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(hooks.getDriver()); if (tipoIndirizzo.equalsIgnoreCase("PEC")) iTuoiRecapitiPage.selezionaTipoPec(); else { @@ -958,7 +922,6 @@ public void nellaPaginaITuoiRecapitiSiInserisceIlCodiceOTPDellaEmail(String dpFi logger.info("Si inserisce il codice OTP di verifica"); String otp = dataPopulation.readDataPopulation(dpFile + ".yaml").get("OTPmail").toString(); - ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(hooks.getDriver()); iTuoiRecapitiPage.sendOTP(otp); recapitiDestinatarioPage.confermaButtonClickPopUp(); } @@ -985,7 +948,6 @@ public void nellaSezioneAltriRecapitiSiControllaLEsistenzaDiUnaEmail(String dpFi @And("Nella pagina I Tuoi Recapiti si controlla che non ci sia già una email") public void nellaPaginaITuoiRecapitiSiControllaCheNonCiSiaGiaUnaEmail() { logger.info("Si controlla che non ci sia già una email"); - ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(hooks.getDriver()); if (recapitiDestinatarioPage.verificaMailAssociata()) { iTuoiRecapitiPage.eliminaEmailEsistente(); if (recapitiDestinatarioPage.waitLoadPopUpElimina().equalsIgnoreCase("Rimuovi e-mail")) { @@ -1020,8 +982,6 @@ public void siVerificaEsistenzaDuePEC() { @And("Nella pagina I Tuoi Recapiti si controlla che ci sia già una Email diversa") public void nellaPaginaITuoiRecapitiSiControllaCheCiSiaGiaUnaEmailDiversa() { logger.info("Si controlla che che ci sia già una Email diversa"); - - ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(hooks.getDriver()); iTuoiRecapitiPage.waitLoadITuoiRecapitiPage(); if (!recapitiDestinatarioPage.verificaMailAssociata()) { @@ -1039,14 +999,12 @@ public void siCliccaSulBottoneAnnullaPerAnnullareLaModificaDellaPEC() { @And("Si visualizzano correttamente i pulsanti modifica, elimina ed è possibile modificare l'email") public void siVisualizzanoCorrettamenteGliElementiPostModifica() { logger.info("Si controlla che si visualizzano correttamente i pulsanti modifica, elimina ed è possibile modificare l'email"); - ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(hooks.getDriver()); iTuoiRecapitiPage.checkPostModifica(); } @When("Nella pagina I Tuoi Recapiti si visualizza correttamente il riquadro relativo alla PEC") public void nellaPaginaITuoiRecapitiSiVisualizzaCorrettamenteIlRiquadroRelativoAllaPEC() { logger.info("Si visualizza correttamente il riquadro relativo alla PEC"); - ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(hooks.getDriver()); iTuoiRecapitiPage.checkRiquadroPEC(); } @@ -1058,7 +1016,6 @@ public void nellaSezioneAltriRecapitiSiCliccaSulBottoneConfermaPerInserireUnReca @And("Si verifica siano presenti recapiti digitali") public void siVerificaSianoPresentiRecapitiDigitali(Map datiPF) { - ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(hooks.getDriver()); String email = datiPF.get("email"); if (recapitiDestinatarioPage.siVisualizzaPecInserita()) { diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RicercaNotifichePersonaFisicaPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RicercaNotifichePersonaFisicaPATest.java index 74af9c299..d328d6e78 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RicercaNotifichePersonaFisicaPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RicercaNotifichePersonaFisicaPATest.java @@ -35,10 +35,8 @@ public class RicercaNotifichePersonaFisicaPATest { @Autowired @Lazy private HooksNew hooks; - @Autowired private NotificationSingleton notificationSingleton; - @Autowired private PiattaformaNotifichePage piattaformaNotifichePage; @Autowired @@ -47,7 +45,6 @@ public class RicercaNotifichePersonaFisicaPATest { private HeaderPFSection headerPFSection; @Autowired private NotifichePFPage notifichePFPage; - @Autowired private NotificheDestinatarioPage notificheDestinatarioPage; From 93e50f99b11a8984d9c79200d4abe252ff3b27b9 Mon Sep 17 00:00:00 2001 From: AlimaZhansultan Date: Wed, 30 Oct 2024 10:47:44 +0100 Subject: [PATCH 168/212] fix @TA_MittenteGeneraApiKeyConGruppo and @TA_MittenteGeneraApiKeySenzaGruppo * Added new steps as requested in jira card QA-1171 and QA-1173 --- .../e2e/pages/mittente/ApiKeyPAPage.java | 17 ++++++++++++++++ .../stepDefinitions/mittente/ApiKeysTest.java | 20 +++++++++++++++++++ .../003_022_generaApiKeySenzaGruppo.feature | 4 +++- .../004_023_generaApiKeyConGruppo.feature | 2 ++ 4 files changed, 42 insertions(+), 1 deletion(-) diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/ApiKeyPAPage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/ApiKeyPAPage.java index ee70c3743..a637c0fb6 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/ApiKeyPAPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/ApiKeyPAPage.java @@ -1,6 +1,7 @@ package it.pn.frontend.e2e.pages.mittente; import it.pn.frontend.e2e.common.BasePage; +import it.pn.frontend.e2e.utility.WebTool; import org.junit.jupiter.api.Assertions; import org.openqa.selenium.*; import org.openqa.selenium.interactions.Actions; @@ -529,4 +530,20 @@ public void mouseHoverGroups() { Assertions.fail("Non è stato possibile trovare la colonna gruppi della prima riga"); } } + + public String copiaApiKeyESalva(){ + By apiKeyField = By.id("apiKeyId"); + return element(apiKeyField).getAttribute("value"); + } + + public String visualizzaApiKeyInElenco(){ + By contextMenu = By.xpath("//button[@data-testid='contextMenuButton']"); + elements(contextMenu).get(0).click(); + WebTool.waitTime(1); + By visualizzaCodiceButton = By.xpath("//li[@data-testid='buttonView']"); + element(visualizzaCodiceButton).click(); + WebTool.waitTime(1); + By apiKeyDaElenco = By.xpath("//input[@aria-invalid='false']"); + return element(apiKeyDaElenco).getAttribute("value"); + } } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/ApiKeysTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/ApiKeysTest.java index 38aa99464..d33688206 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/ApiKeysTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/ApiKeysTest.java @@ -9,7 +9,10 @@ import it.pn.frontend.e2e.pages.mittente.PiattaformaNotifichePage; import it.pn.frontend.e2e.section.mittente.GeneraApiKeySection; +import lombok.Getter; +import lombok.Setter; import org.junit.jupiter.api.Assertions; +import org.modelmapper.internal.util.Assert; import org.openqa.selenium.WebDriver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -23,6 +26,10 @@ public class ApiKeysTest { private final WebDriver driver = Hooks.driver; private final ApiKeyPAPage apiKeyPAPage = new ApiKeyPAPage(this.driver); + @Getter + @Setter + public static String ApiKey; + @Autowired private WebDriverConfig webDriverConfig; @@ -289,4 +296,17 @@ public void nellaPaginaApiKeyPosizionareIlCursuoreSopraIlNumeroGruppi() { apiKeyPAPage.mouseHoverGroups(); apiKeyPAPage.waitLoadMessaggioData(); } + + @And("Si copia e salva API key generata") + public void siCopiaESalvaApiKeyGenearta(){ + logger.info("Si copia e salva API key generata"); + ApiKey = apiKeyPAPage.copiaApiKeyESalva(); + } + + @And("Si clicca visualizza codice e verifica che il valore dell'apikey copiato sia uguale") + public void siVerificaValoreApiKeyUguale(){ + logger.info("Verifica che il valore dell'apikey copiato sia uguale a quello visualizzato in elenco"); + String apiKeyDaElenco = apiKeyPAPage.visualizzaApiKeyInElenco(); + Assertions.assertTrue(ApiKey.equalsIgnoreCase(apiKeyDaElenco)); + } } diff --git a/src/test/resources/feature/2-mittente/5_apiKey/003_022_generaApiKeySenzaGruppo.feature b/src/test/resources/feature/2-mittente/5_apiKey/003_022_generaApiKeySenzaGruppo.feature index b0b5f9b3e..689b4979c 100644 --- a/src/test/resources/feature/2-mittente/5_apiKey/003_022_generaApiKeySenzaGruppo.feature +++ b/src/test/resources/feature/2-mittente/5_apiKey/003_022_generaApiKeySenzaGruppo.feature @@ -14,6 +14,8 @@ Feature: Mittente genera Api Key senza gruppo And Nella sezione genera Api Key inserire il nome "testAutomationFE" per l Api Key And Nella sezione genera Api Key cliccare bottone continua And Si visualizza correttamente la pagina di conferma + And Si copia e salva API key generata And Nella pagina di conferma cliccare sul bottone Torna a API key - Then Si visualizza correttamente l api key "testAutomationFE" nell elenco in stato attivo + And Si visualizza correttamente l api key "testAutomationFE" nell elenco in stato attivo + Then Si clicca visualizza codice e verifica che il valore dell'apikey copiato sia uguale And Logout da portale mittente diff --git a/src/test/resources/feature/2-mittente/5_apiKey/004_023_generaApiKeyConGruppo.feature b/src/test/resources/feature/2-mittente/5_apiKey/004_023_generaApiKeyConGruppo.feature index 0876648a3..2c005a0e1 100644 --- a/src/test/resources/feature/2-mittente/5_apiKey/004_023_generaApiKeyConGruppo.feature +++ b/src/test/resources/feature/2-mittente/5_apiKey/004_023_generaApiKeyConGruppo.feature @@ -15,6 +15,8 @@ Feature: Mittente genera Api Key con gruppo And Nella sezione genera Api Key inserire un gruppo And Nella sezione genera Api Key cliccare bottone continua And Si visualizza correttamente la pagina di conferma + And Si copia e salva API key generata And Nella pagina di conferma cliccare sul bottone Torna a API key Then Si visualizza correttamente l api key "testAutomationFE" nell elenco in stato attivo + Then Si clicca visualizza codice e verifica che il valore dell'apikey copiato sia uguale And Logout da portale mittente From d23fbe8277f0f37340c9c763e00a876a62c10ea9 Mon Sep 17 00:00:00 2001 From: andreadefranco Date: Wed, 30 Oct 2024 10:56:47 +0100 Subject: [PATCH 169/212] insert Autowired --- .../frontend/e2e/stepDefinitions/common/BackgroundTest.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/BackgroundTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/BackgroundTest.java index d82d0cfc6..620964456 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/BackgroundTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/BackgroundTest.java @@ -68,6 +68,8 @@ public class BackgroundTest { private ITuoiRecapitiPage iTuoiRecapitiPage; @Autowired private PiattaformaNotifichePage piattaformaNotifichePage; + @Autowired + NotificaMittentePagoPATest notificaMittentePagoPATest; @Autowired public BackgroundTest() { @@ -81,7 +83,7 @@ public BackgroundTest() { public void invioNotificaErrorePec() { - NotificaMittentePagoPATest notificaMittentePagoPATest = new NotificaMittentePagoPATest(); +// NotificaMittentePagoPATest notificaMittentePagoPATest = new NotificaMittentePagoPATest(); notificaMittentePagoPATest.nellaPaginaPiattaformaNotificheSiRecuperaLUltimoNumeroProtocollo(); notificaMittentePagoPATest.nellaPaginaPiattaformaNotificheCliccareSulBottoneInviaUnaNuovaNotifica(); From e9b117f5bc1bb16735af5bf3cb00f721806d5c3a Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Wed, 30 Oct 2024 11:03:41 +0100 Subject: [PATCH 170/212] refactor --- .../personaGiuridica/DeleghePGPagoPATest.java | 21 ------------------- 1 file changed, 21 deletions(-) diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/DeleghePGPagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/DeleghePGPagoPATest.java index ac92aca11..dfe32fe07 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/DeleghePGPagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/DeleghePGPagoPATest.java @@ -149,7 +149,6 @@ public void nellaSezioneLeTueDeleghePersonaGiuridicaSalvareIlCodiceVerificaAllIn @And("Nella sezione Aggiungi Delega persona giuridica click sul bottone Invia richiesta e sul bottone torna alle deleghe") public void nellaSezioneLeTueDeleghePersonaGiuridicaclickSulBottoneInviaRichiestaESulBottoneTornaAlleDeleghe() { logger.info("Si clicca sul bottone invia richiesta"); - aggiungiDelegaPGSection.clickSulBottoneInviaRichiesta(); } @@ -190,7 +189,6 @@ public void nellaSezioneLeTueDelegheInserireUnaDataConFormatoErratoEAntecedenteA @And("Verifica che non è possibile selezionare una data Fine antecedente ad oggi") public void verificaArcoTemporaleSelezionato() { logger.info("Si controlla l'arco temporale che sia errato su cui effettuare la ricerca"); -// PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(this.driver); Assertions.assertFalse(dataFineErrata); } @@ -213,7 +211,6 @@ public void nellaSezioneLeTueDelegheSiVisualizzaIlMessaggioDiErroreDataErrata() @And("Nella pagina Deleghe si clicca su Deleghe a carico dell impresa") public void nellaPaginaDelegheSiCliccaSuDelegheACaricoDellImpresa() { logger.info("Si clicca sul tab Deleghe a carico dell'impresa"); - deleghePGPagoPAPage.clickSuDelegheCaricoDellImpresa(); } @@ -226,9 +223,7 @@ public void nellaPaginaDelegheSezioneDelegheACaricoDellImpresaSiInserisceIlCodic @And("Nella pagina Deleghe sezione Deleghe a Carico dell impresa si clicca su bottone Filtra") public void nellaPaginaDelegheSezioneDelegheACaricoDellImpresaSiCliccaSuBottoneFiltra() { logger.info("Si clicca filtra button"); - this.deleghePGPagoPAPage.clickFiltraButton(); - } @And("Nella pagina Deleghe sezione Deleghe a Carico dell impresa si controlla che venga restituita la delega con il codice fiscale inserito {string}") @@ -245,8 +240,6 @@ public void nellaPaginaDelegheSezioneDelegheACaricoDellImpresaSiControllaCheVeng @And("Nella pagina Deleghe sezione Deleghe dell impresa si verifica sia presente una delega") public void nellaPaginaDelegheSezioneDelegheDellImpresaSiVerificaSiaPresenteUnaDelega() { logger.info("Si controlla che ci sia almeno una delega"); -// BackgroundTest backgroundTest = new BackgroundTest(); - if (!this.delegatiImpresaSection.siVisualizzaUnaDelega()) { backgroundTest.aggiuntaNuovaDelegaDellImpresaPG(); } @@ -255,7 +248,6 @@ public void nellaPaginaDelegheSezioneDelegheDellImpresaSiVerificaSiaPresenteUnaD @And("Nella pagina Deleghe sezione Deleghe a carico dell'impresa clicca sul menu della delega {string}") public void nellaPaginaDelegheSezioneDelegheAcaricoDellImpresaSiCliccaSulMenuDellaDelega(String dpFile) { logger.info("Si clicca sul menu delle delega"); - this.datiDelega = dataPopulation.readDataPopulation(dpFile + ".yaml"); this.delegatiImpresaSection.clickMenuDelega(datiDelega.get("ragioneSociale").toString()); } @@ -278,7 +270,6 @@ public void nellaPaginaDelegheSezioneDelegheDellImpresaSiSceglieLOpzioneMostraCo @And("Nella sezione Deleghe persona giuridica si sceglie l'opzione revoca") public void nellaSezioneDeleghePersonaGiuridicaSiSceglieLOpzioneRevoca() { logger.info("Si clicca sull'opzione revoca del menu"); - delegatiImpresaSection.clickRevocaMenuButtonPG(); } @@ -319,7 +310,6 @@ public void siAssegnaUnGruppoAllaDelega(String gruppo) { @And("Si clicca sul bottone conferma gruppo") public void siCliccaSulBottoneConfermaGruppo() { logger.info("Si seleziona il bottone conferma"); - deleghePGPagoPAPage.clickBottoneConferma(); if (this.deleghePGPagoPAPage.verificaEsistenzaErroreCodiceSbagliato()) { logger.error("il codice inserito è sbagliato"); @@ -337,7 +327,6 @@ public void siControllaCheLaDelegaPGALoStatoAttiva(String ragioneSociale) { @And("Si clicca sul bottone conferma gruppo errato") public void siCliccaSulBottoneConfermaGruppoErrato() { logger.info("Si seleziona il bottone conferma"); - deleghePGPagoPAPage.clickBottoneConferma(); deleghePGPagoPAPage.verificaEsistenzaErroreCodiceSbagliato(); } @@ -345,14 +334,12 @@ public void siCliccaSulBottoneConfermaGruppoErrato() { @And("Nella sezione Deleghe si clicca sul bottone rifiuta") public void nellaSezioneDelegheSiCliccaSulBottoneRifiuta() { logger.info("Si clicca su l'opzione rifiuta"); - deleghePGPagoPAPage.clickOpzioneRifiuta(); } @And("Si clicca sul bottone rifiuta delega") public void siCliccaSulBottoneRifiutaDelega() { logger.info("Si clicca su bottone rifiuta del pop-up"); - deleghePGPagoPAPage.waitLoadPopUpRevoca(); deleghePGPagoPAPage.clickBottoneRifiuta(); } @@ -497,19 +484,16 @@ public void siCliccaSulBottoneAccettaDelegaDopoAverInseritoIlCodiceDiVerifica() public void siCliccaSulBottoneAccettaDelega() { logger.info("Si clicca su conferma del pop-up"); - deleghePGPagoPAPage.clickBottoneConfermaDelega(); } @And("Si accetta la delega senza gruppo") public void siAccettaLaDelegaSenzaGruppo() { -// BackgroundTest backgroundTest = new BackgroundTest(); backgroundTest.accettazioneDelegaSceltaGruppo(false,null); } @And("Si accetta la delega senza gruppo PF") public void siAccettaLaDelegaSenzaGruppoPF() { -// BackgroundTest backgroundTest = new BackgroundTest(); backgroundTest.accettazioneDelegaSceltaGruppoPF(false,null); WebTool.waitTime(2); } @@ -523,13 +507,11 @@ public void siInserisceIlCodiceDellaDelegaACaricoDellImpresaNellaModale() { @And("Si ripristina lo stato iniziale delle deleghe dall impresa {string}") public void siRipristinaLoStatoInizialeDelleDelegheDallImpresa(String ragioneSociale) { -// BackgroundTest backgroundTest = new BackgroundTest(); backgroundTest.revocaDelegaPG(ragioneSociale); } @And("Si accetta la delega con gruppo {string}") public void siAccettaLaDelegaGruppo(String gruppo) { -// BackgroundTest backgroundTest = new BackgroundTest(); backgroundTest.accettazioneDelegaSceltaGruppo(true,gruppo); } @@ -545,8 +527,6 @@ public void nonSiAssegnaUnGruppoAllaDelegaCheLoRichiede() { @And("Si emula accettazione della delega con gruppo con errore") public void siEmulaAccettazioneDellaDelegaConGruppoConErrore() { -// BackgroundTest backgroundTest = new BackgroundTest(); - backgroundTest.checkDelegaSceltaGruppoEInserimentoCodiceErrata(); } @@ -621,7 +601,6 @@ public void siControllaLaTabellaDelegatiDallImpresa() { @And("Nella sezione Delegati dall impresa si visualizza correttamente una delega in stato di attesa di conferma {string}") public void nellaSezioneDelegatiDallImpresaSiVisualizzaCorrettamenteUnaDelegaInStatoDiAttesaConferma(String ragioneSociale) { logger.info("Si controlla che la delega sia in stato attesa di conferma"); - delegatiImpresaSection.waitLoadDelegatiImpresaPage(); delegatiImpresaSection.controlloEsistenzaDelega(ragioneSociale); } From 8bcd1f33811b657d66f7c8292ac24741f9b5e0bc Mon Sep 17 00:00:00 2001 From: scritelli Date: Wed, 30 Oct 2024 14:10:00 +0100 Subject: [PATCH 171/212] Ristrutturazione classe con springboot in attesa di test con la suite di mittente inoltre refactoring del codice ottimizzato secondo i standard, tolta logica di singleton e inserito il concetto del bean di Spring --- .../singleton/NotificationSingleton.java | 40 ++-- .../pages/destinatario/DestinatarioPage.java | 106 ++++----- .../mittente/PiattaformaNotifichePage.java | 21 +- .../e2e/rest/RestRaddAlternative.java | 54 +++-- .../common/BackgroundTest.java | 63 ++++-- .../RecapitiPersonaFisicaTest.java | 13 +- .../RicercaNotifichePersonaFisicaPATest.java | 212 +++++++----------- .../personaGiuridica/LoginPGPagoPATest.java | 2 +- .../mittente/NotificaMittentePagoPATest.java | 87 +++++-- 9 files changed, 316 insertions(+), 282 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/model/singleton/NotificationSingleton.java b/src/main/java/it/pn/frontend/e2e/model/singleton/NotificationSingleton.java index 6a40b4ba0..d9934d3be 100644 --- a/src/main/java/it/pn/frontend/e2e/model/singleton/NotificationSingleton.java +++ b/src/main/java/it/pn/frontend/e2e/model/singleton/NotificationSingleton.java @@ -1,29 +1,37 @@ package it.pn.frontend.e2e.model.singleton; +import org.springframework.stereotype.Component; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; - +/* +* Modifiche Effettuate: +Annotazione @Component: Per rendere la classe un bean Spring, in modo che venga automaticamente gestita come singleton. +Rimozione del Metodo getInstance: Non è più necessario gestire manualmente l’istanza; Spring gestirà la creazione e l’unicità del bean. +Documentazione: Ho aggiunto i JavaDoc ai metodi setScenarioIun e getIun per migliorare la comprensibilità. +* */ +@Component public class NotificationSingleton { - private Map scenarioIun = new ConcurrentHashMap<>(); - private static NotificationSingleton instance; - - private void NotificationSingleton(){ - } - - public static synchronized NotificationSingleton getInstance() { - if (instance == null) { - instance = new NotificationSingleton(); - } - return instance; - } + private final Map scenarioIun = new ConcurrentHashMap<>(); - public void setScenarioIun(String scenarioName,String iun){ - scenarioIun.put(scenarioName,iun); + /** + * Setta un identificatore unico di notifica (IUN) per uno specifico scenario. + * + * @param scenarioName nome dello scenario + * @param iun identificatore unico della notifica + */ + public void setScenarioIun(String scenarioName, String iun) { + scenarioIun.put(scenarioName, iun); } - public String getIun(String scenarioName){ + /** + * Recupera l'identificatore unico di notifica (IUN) per uno specifico scenario. + * + * @param scenarioName nome dello scenario + * @return l'identificatore unico della notifica, o null se non trovato + */ + public String getIun(String scenarioName) { return scenarioIun.get(scenarioName); } } \ No newline at end of file diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/DestinatarioPage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/DestinatarioPage.java index 6dc04d4b5..1258ca675 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/DestinatarioPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/DestinatarioPage.java @@ -6,10 +6,10 @@ import it.pn.frontend.e2e.listeners.Hooks; import it.pn.frontend.e2e.listeners.HooksNew; import it.pn.frontend.e2e.model.documents.Document; -import it.pn.frontend.e2e.model.notification.NewNotificationRequest; -import it.pn.frontend.e2e.model.notification.NewNotificationResponse; import it.pn.frontend.e2e.model.enums.NotificationFeePolicyEnum; import it.pn.frontend.e2e.model.enums.PhysicalCommunicationTypeEnum; +import it.pn.frontend.e2e.model.notification.NewNotificationRequest; +import it.pn.frontend.e2e.model.notification.NewNotificationResponse; import it.pn.frontend.e2e.model.singleton.NotificationSingleton; import it.pn.frontend.e2e.rest.RestNotification; import it.pn.frontend.e2e.rest.RestRaddAlternative; @@ -19,64 +19,73 @@ import lombok.Setter; import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.Assertions; -import org.openqa.selenium.By; -import org.openqa.selenium.TimeoutException; -import org.openqa.selenium.WebDriver; -import org.openqa.selenium.WebElement; +import org.openqa.selenium.*; import org.openqa.selenium.support.FindBy; import org.openqa.selenium.support.ui.ExpectedConditions; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; import java.util.ArrayList; import java.util.List; import java.util.Map; @Slf4j +@Component public class DestinatarioPage extends BasePage { @Getter @Setter private NewNotificationRequest notificationRequest; - private final NotificationSingleton notificationSingleton = NotificationSingleton.getInstance(); - private final RestNotification restNotification = new RestNotification(); - private static final NotificationBuilder notificationBuilder = new NotificationBuilder(); - private int destinatariNumber; + + @Autowired + private NotificationSingleton notificationSingleton; + + @Autowired + private RestNotification restNotification; + + @Autowired + private NotificationBuilder notificationBuilder; @Autowired private HooksNew hooks; + private final WebDriver driver = hooks.getDriver(); + private int destinatariNumber; - //Questa classe è utilizzata per metodi in comune tra PF e PG public DestinatarioPage(WebDriver driver) { super(driver); } @FindBy(id = "startDate") WebElement dataInizioField; + @FindBy(id = "endDate") WebElement dataFineField; + @FindBy(id = "side-item-Notifiche") WebElement sideItemNotificheButton; + @FindBy(id = "notificationsTable.body.row") List listaNotificheDelegante; public void inserimentoDataErrato() { String data = "01/01/1111"; - getWebDriverWait(10).withMessage("Il campo data inizio non è visibile").until(ExpectedConditions.visibilityOfAllElements(this.dataInizioField)); + getWebDriverWait(10).until(ExpectedConditions.visibilityOfAllElements(this.dataInizioField)); dataInizioField.click(); dataInizioField.sendKeys(data); - getWebDriverWait(3).withMessage("Il valore della data che si vuole inserire non corrisponde").until(ExpectedConditions.attributeToBe(this.dataInizioField, "value", data)); - getWebDriverWait(10).withMessage("Il campo data fine non è visibile").until(ExpectedConditions.visibilityOfAllElements(this.dataFineField)); + getWebDriverWait(3).until(ExpectedConditions.attributeToBe(this.dataInizioField, "value", data)); + + getWebDriverWait(10).until(ExpectedConditions.visibilityOfAllElements(this.dataFineField)); dataFineField.click(); dataFineField.sendKeys(data); - getWebDriverWait(3).withMessage("Il valore della data che si vuole inserire non corrisponde").until(ExpectedConditions.attributeToBe(this.dataFineField, "value", data)); + getWebDriverWait(3).until(ExpectedConditions.attributeToBe(this.dataFineField, "value", data)); } public boolean isDateBoxInvalid() { - final String isTextboxInvalid = "true"; + String isTextboxInvalid = "true"; boolean invalidBoxDate = true; try { - getWebDriverWait(10).withMessage("Il campo data inizio non è visibile").until(ExpectedConditions.visibilityOfAllElements(this.dataInizioField, this.dataFineField)); + getWebDriverWait(10).until(ExpectedConditions.visibilityOfAllElements(this.dataInizioField, this.dataFineField)); String ariaInvalidInizio = dataInizioField.getAttribute("aria-invalid"); String ariaInvalidFine = dataFineField.getAttribute("aria-invalid"); if (isTextboxInvalid.equals(ariaInvalidInizio) || isTextboxInvalid.equals(ariaInvalidFine)) { @@ -100,60 +109,28 @@ public void clickButtonNotificheDelegateOnSideMenu(String nomeDelegante) { String id = "side-item-" + nomeDelegante; By buttonNotificheOnSideMenu = By.id(id); - getWebDriverWait(10).withMessage("bottone notifiche nel layout non visibile").until(ExpectedConditions.visibilityOfElementLocated(buttonNotificheOnSideMenu)); + getWebDriverWait(10).until(ExpectedConditions.visibilityOfElementLocated(buttonNotificheOnSideMenu)); this.js().executeScript("arguments[0].click()", this.element(buttonNotificheOnSideMenu)); - } public void clickSulDettaglioNotificaDelegante() { WebElement singolaNotificaDelegante = listaNotificheDelegante.get(0); - getWebDriverWait(10).withMessage("la prima notifica della tabella non è visibile").until(ExpectedConditions.visibilityOf(singolaNotificaDelegante)); + getWebDriverWait(10).until(ExpectedConditions.visibilityOf(singolaNotificaDelegante)); log.info("Si clicca sulla prima notifica del delegante"); singolaNotificaDelegante.click(); } public void clickProdotto(String xpath) { By prodottoDestinatario = By.xpath(xpath); - getWebDriverWait(10).withMessage("prodotto non disponbile").until(ExpectedConditions.visibilityOfElementLocated(prodottoDestinatario)); + getWebDriverWait(10).until(ExpectedConditions.visibilityOfElementLocated(prodottoDestinatario)); element(prodottoDestinatario).click(); } - public void clickTuttiGliEnti() { - By tuttiGliEnti = By.id("tutti-gli-enti-selezionati"); - getWebDriverWait(10).withMessage("Il radio button 'tutti gli enti selezionati' non è visibile").until(ExpectedConditions.visibilityOfElementLocated(tuttiGliEnti)); - element(tuttiGliEnti).click(); - } - - public void clickSoloEntiSelezionati() { - By soloEntiSelezionati = By.id("enti-selezionati"); - getWebDriverWait(10).withMessage("Il radio button 'solo enti selezionati' non è visibile").until(ExpectedConditions.visibilityOfElementLocated(soloEntiSelezionati)); - element(soloEntiSelezionati).click(); - } - - public void clickListaEnti() { - By listaEnti = By.id("enti"); - getWebDriverWait(10).withMessage("Il menù a tendina degli enti non è visibile").until(ExpectedConditions.visibilityOfElementLocated(listaEnti)); - element(listaEnti).click(); - } - - public void controlloEntiRadice(List enti) { - for (String ente : enti) { - By enteRadice = By.xpath("//li//p[contains(text(),'" + ente + "')]"); - getWebDriverWait(10).withMessage("Ente: " + ente + " non visibile").until(ExpectedConditions.visibilityOfElementLocated(enteRadice)); - } - } - - public void checkBannerAnnullamentoNotifica() { - By bannerAnnullamentoNotificaBy = By.xpath("//div[@data-testid='cancelledAlertText']"); - getWebDriverWait(10).withMessage("Il banner di annullamento della notifica non è presente").until(ExpectedConditions.visibilityOfElementLocated(bannerAnnullamentoNotificaBy)); - getWebDriverWait(10).withMessage("Il banner di annullamento della notifica presenta la corretta descrizione").until( - ExpectedConditions.attributeToBe(bannerAnnullamentoNotificaBy, "textContent", "Questa notifica è stata annullata dall’ente mittente. Puoi ignorarne il contenuto.")); - } - public void checkCreateNewNotification() throws RestNotificationException { int maxAttempts = 4; int attempt = 1; - Assertions.assertNotNull(notificationRequest.getRecipients(),"Non può essere creata una notifica senza alcun destinatario"); + Assertions.assertNotNull(notificationRequest.getRecipients(), "Non può essere creata una notifica senza alcun destinatario"); + while (attempt <= maxAttempts) { NewNotificationResponse responseOfCreateNotification = restNotification.newNotificationWithOneRecipientAndDocument(notificationRequest); @@ -163,7 +140,7 @@ public void checkCreateNewNotification() throws RestNotificationException { LinkedTreeMap getNotificationStatus; String notificationStatus; do { - Assertions.assertTrue(maxAttemptsPolling <= 4,"La notifica risulta ancora in stato WAITING dopo 5 tentativi"); + Assertions.assertTrue(maxAttemptsPolling <= 4, "La notifica risulta ancora in stato WAITING dopo 5 tentativi"); log.info(responseOfCreateNotification.getNotificationRequestId()); getNotificationStatus = restNotification.getNotificationStatus(responseOfCreateNotification.getNotificationRequestId()); notificationStatus = getNotificationStatus.get("notificationRequestStatus").toString(); @@ -190,17 +167,18 @@ public void checkCreateNewNotification() throws RestNotificationException { } public void aggiuntaDestinatarioANotifica(Map datiDestinatario) { - Assertions.assertTrue(destinatariNumber <= 4,"Non è possibile aggiungere un ulteriore destinatario"); + Assertions.assertTrue(destinatariNumber <= 4, "Non è possibile aggiungere un ulteriore destinatario"); log.info("Si procede con l'inserimento del destinatario nella notifica"); - String costiNotifica = "false"; - if (notificationRequest.getNotificationFeePolicy() == NotificationFeePolicyEnum.DELIVERY_MODE) { - costiNotifica = "true"; - } + String costiNotifica = notificationRequest.getNotificationFeePolicy() == NotificationFeePolicyEnum.DELIVERY_MODE ? "true" : "false"; notificationRequest.setRecipients(notificationBuilder.destinatarioBuilder(datiDestinatario, notificationRequest.getRecipients())); - WebTool.waitTime(15); - log.info("NUMERO DESTINATARI...: " + notificationRequest.getRecipients().size()); - log.info("DESTINATARIO...: " + destinatariNumber); - notificationRequest.getRecipients().get(destinatariNumber).setPayments(notificationBuilder.paymentsBuilder(Integer.parseInt(datiDestinatario.getOrDefault("avvisoPagoPa", "0")), Integer.parseInt(datiDestinatario.getOrDefault("F24", "0")), costiNotifica)); + + log.info("NUMERO DESTINATARI: " + notificationRequest.getRecipients().size()); + notificationRequest.getRecipients().get(destinatariNumber).setPayments( + notificationBuilder.paymentsBuilder( + Integer.parseInt(datiDestinatario.getOrDefault("avvisoPagoPa", "0")), + Integer.parseInt(datiDestinatario.getOrDefault("F24", "0")), + costiNotifica + )); destinatariNumber++; } diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java index 4eaf066cf..85ce132bc 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java @@ -10,25 +10,36 @@ import it.pn.frontend.e2e.utility.WebTool; import org.junit.jupiter.api.Assertions; import org.openqa.selenium.*; -import org.openqa.selenium.NoSuchElementException; import org.openqa.selenium.support.FindBy; import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; import java.text.DateFormatSymbols; import java.time.LocalDate; import java.util.*; +import java.util.NoSuchElementException; import java.util.concurrent.TimeUnit; import static org.openqa.selenium.support.ui.ExpectedConditions.elementToBeClickable; - +/* +* Modifiche principali: +Autowired NotificationSingleton e WebDriverConfig: Ho integrato i componenti tramite annotazione @Autowired per sfruttare la gestione delle dipendenze di Spring Boot, eliminando la necessità di istanziare manualmente queste classi. +Component: Aggiunta dell’annotazione @Component per rendere la classe gestibile da Spring Boot.*/ +@Component public class PiattaformaNotifichePage extends BasePage { private static final Logger logger = LoggerFactory.getLogger("notificaMittentePagoPA"); + + @Autowired + private NotificationSingleton notificationSingleton; + + @Autowired + private WebDriverConfig webDriverConfig; + private final List netWorkInfos = Hooks.netWorkInfos; - private final NotificationSingleton notificationSingleton = NotificationSingleton.getInstance(); @FindBy(id = "recipientId") WebElement cfTextField; @@ -105,10 +116,6 @@ public class PiattaformaNotifichePage extends BasePage { @FindBy(id = "message") WebElement erroreMessaggio; - @Autowired - private WebDriverConfig webDriverConfig; - - public PiattaformaNotifichePage(WebDriver driver) { super(driver); } diff --git a/src/main/java/it/pn/frontend/e2e/rest/RestRaddAlternative.java b/src/main/java/it/pn/frontend/e2e/rest/RestRaddAlternative.java index 81280304f..090a0377d 100644 --- a/src/main/java/it/pn/frontend/e2e/rest/RestRaddAlternative.java +++ b/src/main/java/it/pn/frontend/e2e/rest/RestRaddAlternative.java @@ -8,56 +8,68 @@ import it.pn.frontend.e2e.model.radd.StartTransaction.StartTransactionRequest; import it.pn.frontend.e2e.model.radd.StartTransaction.StartTransactionResponse; import it.pn.frontend.e2e.model.singleton.NotificationSingleton; -import it.pn.frontend.e2e.utility.DataPopulation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; import java.io.IOException; import java.util.HashMap; import java.util.Map; import java.util.UUID; +/* + *Dettagli delle modifiche +Iniezione di NotificationSingleton e WebDriverConfig con @Autowired: Elimina la necessità di gestire manualmente le istanze, rendendo la classe più gestibile e scalabile. + +Logging degli errori: Per un'analisi degli errori migliorata, è stato aggiunto il logging dettagliato per gestire le eccezioni durante le richieste HTTP. + +Refactoring del costruttore: La variabile token è ora impostata tramite il costruttore e mantenuta come final per garantire che venga impostata solo una volta all'inizializzazione. + * + */ @Slf4j +@Component public class RestRaddAlternative { - NotificationSingleton notificationSingleton = NotificationSingleton.getInstance(); - private final Map headers = new HashMap<>(); - private final String token; - // private final String env = System.getProperty("environment"); - private final String uid = UUID.randomUUID().toString(); + @Autowired + private NotificationSingleton notificationSingleton; @Autowired private WebDriverConfig webDriverConfig; + private final Map headers = new HashMap<>(); + private final String uid = UUID.randomUUID().toString(); + private final String token; + public RestRaddAlternative(String token) { this.token = token; } public StartTransactionResponse startTransactionRaddAlternative(String tipoDestinatario, String codiceFiscale, String operationId) { - final CustomHttpClient httpClientStart = new CustomHttpClient<>(); - httpClientStart.setBaseUrlApi("https://api.radd."+ webDriverConfig.getEnvironment() + ".notifichedigitali.it"); - final StartTransactionRequest startTransactionRequest = new StartTransactionRequest(codiceFiscale,tipoDestinatario, notificationSingleton.getIun(Hooks.getScenario()),operationId); + CustomHttpClient httpClientStart = new CustomHttpClient<>(); + httpClientStart.setBaseUrlApi("https://api.radd." + webDriverConfig.getEnvironment() + ".notifichedigitali.it"); + StartTransactionRequest startTransactionRequest = new StartTransactionRequest(codiceFiscale, tipoDestinatario, notificationSingleton.getIun(Hooks.getScenario()), operationId); + + headers.put("Authorization", this.token); + headers.put("uid", uid); try { - headers.put("Authorization", this.token); - headers.put("uid", uid); - StartTransactionResponse response = httpClientStart.sendHttpPostRequest("/radd-net/api/v1/act/transaction/start", headers, startTransactionRequest, StartTransactionResponse.class); - return response; + return httpClientStart.sendHttpPostRequest("/radd-net/api/v1/act/transaction/start", headers, startTransactionRequest, StartTransactionResponse.class); } catch (IOException e) { - throw new RuntimeException(e); + log.error("Errore nella richiesta di Start Transaction RADD", e); + throw new RuntimeException("Errore nella richiesta di Start Transaction RADD", e); } } public CompleteTransactionResponse completeTransactionRaddAlternative(String operationId) { - final CustomHttpClient httpClientComplete = new CustomHttpClient<>(); - final CompleteTransactionRequest completeTransactionRequest = new CompleteTransactionRequest(operationId); + CustomHttpClient httpClientComplete = new CustomHttpClient<>(); + CompleteTransactionRequest completeTransactionRequest = new CompleteTransactionRequest(operationId); + httpClientComplete.setBaseUrlApi("https://api.radd." + webDriverConfig.getEnvironment() + ".notifichedigitali.it"); - httpClientComplete.setBaseUrlApi("https://api.radd."+ webDriverConfig.getEnvironment() + ".notifichedigitali.it"); try { - CompleteTransactionResponse response = httpClientComplete.sendHttpPostRequest("/radd-net/api/v1/act/transaction/complete", headers, completeTransactionRequest, CompleteTransactionResponse.class); - return response; + return httpClientComplete.sendHttpPostRequest("/radd-net/api/v1/act/transaction/complete", headers, completeTransactionRequest, CompleteTransactionResponse.class); } catch (IOException e) { - throw new RuntimeException(e); + log.error("Errore nella richiesta di Complete Transaction RADD", e); + throw new RuntimeException("Errore nella richiesta di Complete Transaction RADD", e); } } -} +} \ No newline at end of file diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/BackgroundTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/BackgroundTest.java index ec8c958ab..b21138ea9 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/BackgroundTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/BackgroundTest.java @@ -2,6 +2,7 @@ import it.pn.frontend.e2e.common.RecapitiDestinatarioPage; import it.pn.frontend.e2e.listeners.Hooks; +import it.pn.frontend.e2e.listeners.HooksNew; import it.pn.frontend.e2e.pages.destinatario.personaFisica.ITuoiRecapitiPage; import it.pn.frontend.e2e.pages.mittente.PiattaformaNotifichePage; import it.pn.frontend.e2e.stepDefinitions.destinatario.personaFisica.DeleghePagoPATest; @@ -11,34 +12,66 @@ import it.pn.frontend.e2e.stepDefinitions.mittente.NotificaMittentePagoPATest; import it.pn.frontend.e2e.utility.WebTool; import org.openqa.selenium.WebDriver; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; +import org.springframework.stereotype.Component; import java.util.HashMap; import java.util.Map; +@Component public class BackgroundTest { - private final WebDriver driver = Hooks.driver; + private final WebDriver driver; + private final String nomeFileDatiNotifica = "datiNotifica"; private final String nomeFilePersonaFisica = "personaFisica"; private final String nomeFilePG = "personaGiuridica"; private final String nomeFileNuovaDelega = "nuova_delega"; private final String nomeFileNuovaDelegaPG = "nuovaDelegaPG"; private final String mittente = "mittente"; - private final DeleghePagoPATest deleghePagoPATest = new DeleghePagoPATest(); - - private final RecapitiPersonaFisicaTest recapitiPersonaFisicaTest = new RecapitiPersonaFisicaTest(); - private final LoginPGPagoPATest loginPGPagoPATest = new LoginPGPagoPATest(); - private final LoginPersonaFisicaPagoPA personaFisicaPagoPA = new LoginPersonaFisicaPagoPA(); - private final DeleghePGPagoPATest deleghePGPagoPATest = new DeleghePGPagoPATest(); - private final DisserviziAppPGTest disserviziAppPGTest = new DisserviziAppPGTest(); - private final HelpdeskTest helpdeskTest = new HelpdeskTest(); - private final NotifichePGPagoPATest notifichePGPagoPATest = new NotifichePGPagoPATest(); - private final RecapitiTest recapitiTest = new RecapitiTest(); + + @Autowired + private DeleghePagoPATest deleghePagoPATest; + + @Autowired + private RecapitiPersonaFisicaTest recapitiPersonaFisicaTest; + + @Autowired + private LoginPGPagoPATest loginPGPagoPATest; + + @Autowired + private LoginPersonaFisicaPagoPA personaFisicaPagoPA; + + @Autowired + private DeleghePGPagoPATest deleghePGPagoPATest; + + @Autowired + private DisserviziAppPGTest disserviziAppPGTest; + + @Autowired + private HelpdeskTest helpdeskTest; + + @Autowired + private NotifichePGPagoPATest notifichePGPagoPATest; + + @Autowired + private RecapitiTest recapitiTest; + + @Autowired + private RecapitiDestinatarioPage recapitiDestinatarioPage; + + @Autowired + private ITuoiRecapitiPage iTuoiRecapitiPage; + + @Autowired + private NotificaMittentePagoPATest notificaMittentePagoPATest; + private final Map datiPersonaFisica; - private final RecapitiDestinatarioPage recapitiDestinatarioPage = new RecapitiDestinatarioPage(driver); - private final ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(driver); - public BackgroundTest() { + @Autowired + public BackgroundTest(HooksNew hooks) { + this.driver = hooks.getDriver(); datiPersonaFisica = new HashMap<>(); datiPersonaFisica.put("nome", "Lucrezia"); datiPersonaFisica.put("cognome", "Borgia"); @@ -47,9 +80,7 @@ public BackgroundTest() { datiPersonaFisica.put("ragioneSociale", "Lucrezia Borgia"); } - public void invioNotificaErrorePec() { - NotificaMittentePagoPATest notificaMittentePagoPATest = new NotificaMittentePagoPATest(); notificaMittentePagoPATest.nellaPaginaPiattaformaNotificheSiRecuperaLUltimoNumeroProtocollo(); notificaMittentePagoPATest.nellaPaginaPiattaformaNotificheCliccareSulBottoneInviaUnaNuovaNotifica(); diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java index 9dcc13b39..fd38a6c98 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java @@ -35,14 +35,18 @@ public class RecapitiPersonaFisicaTest { private WebDriverConfig webDriverConfig; @Autowired private HooksNew hooks; + @Autowired + private BackgroundTest backgroundTest; + @Autowired + private NotificaMittentePagoPATest notificaMittentePagoPATest; + @Autowired + private DataPopulation dataPopulation; public static String OTP; // private final WebDriver driver = hooks.getDriver(); private final RecapitiDestinatarioPage recapitiDestinatarioPage = new RecapitiDestinatarioPage(hooks.getDriver()); - private final DataPopulation dataPopulation = new DataPopulation(); // private final List netWorkInfos = Hooks.netWorkInfos; - private final NotificaMittentePagoPATest notificaMittentePagoPATest = new NotificaMittentePagoPATest(); private final ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(hooks.getDriver()); @When("Nella pagina Piattaforma Notifiche persona fisica si clicca sul bottone I Tuoi Recapiti") @@ -494,7 +498,6 @@ public void nellaPaginaITuoiRecapitiSiControllaCheCiSiaGiaUnaEmail() { Map personaFisica = dataPopulation.readDataPopulation("personaFisica.yaml"); String email = personaFisica.get("mail").toString(); - BackgroundTest backgroundTest = new BackgroundTest(); if (!recapitiDestinatarioPage.verificaMailAssociata()) { logger.info("verifica mail associata, step 1"); @@ -655,7 +658,6 @@ public void nellaPaginaITuoiRecapitiSiVisualizzaCorrettamenteLaSezioneAltriRecap public void nellaPaginaITuoiRecapitiDiPfSiControllaCheCiSiaGiaUnaPec(String pec) { logger.info("Si controlla la presenza di una pec"); //String pec = dataPopulation.readDataPopulation("personaFisica.yaml").get("emailPec").toString(); - BackgroundTest backgroundTest = new BackgroundTest(); if (!recapitiDestinatarioPage.siVisualizzaPecInserita()) { backgroundTest.aggiungiPECPF(); } else if (!recapitiDestinatarioPage.siControllaPECModificata(pec)) { @@ -965,7 +967,6 @@ public void nellaPaginaITuoiRecapitiSiInserisceIlCodiceOTPDellaEmail(String dpFi @And("Nella pagina I Tuoi Recapiti si controlla che non ci sia già una pec") public void nellaPaginaITuoiRecapitiSiControllaCheNonCiSiaGiaUnaPec() { logger.info("Si controlla che non ci sia una pec"); - BackgroundTest backgroundTest = new BackgroundTest(); if (recapitiDestinatarioPage.verificaPecAssociata()) { backgroundTest.siEliminaPecEsistenteEAltriRecapitiAssociati(); } @@ -1012,7 +1013,6 @@ public void nellaSezioneAltriRecapitiSiControllaLEsistenzaDiUnaPEC(String dpFile @And("si verifica esistenza due pec") public void siVerificaEsistenzaDuePEC() { if (!recapitiDestinatarioPage.siVisualizzaPecInserita()) { - BackgroundTest backgroundTest = new BackgroundTest(); backgroundTest.aggiungiNuovaPECPF(); backgroundTest.aggiungiPecSezioneGiaAssociati(); } @@ -1025,7 +1025,6 @@ public void nellaPaginaITuoiRecapitiSiControllaCheCiSiaGiaUnaEmailDiversa() { ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(hooks.getDriver()); iTuoiRecapitiPage.waitLoadITuoiRecapitiPage(); - BackgroundTest backgroundTest = new BackgroundTest(); if (!recapitiDestinatarioPage.verificaMailAssociata()) { backgroundTest.aggiuntaEmailPF(); diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RicercaNotifichePersonaFisicaPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RicercaNotifichePersonaFisicaPATest.java index 07d39f627..6dfbae516 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RicercaNotifichePersonaFisicaPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RicercaNotifichePersonaFisicaPATest.java @@ -12,64 +12,58 @@ import it.pn.frontend.e2e.section.destinatario.personaFisica.HeaderPFSection; import it.pn.frontend.e2e.stepDefinitions.common.BackgroundTest; import it.pn.frontend.e2e.utility.DataPopulation; -import net.bytebuddy.asm.Advice; - import org.junit.jupiter.api.Assertions; import org.openqa.selenium.WebDriver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; import java.time.LocalDate; -import java.util.HashMap; import java.util.Map; - +/* +*Modifiche principali +Autowired per il driver Web e per altre classi: Integrato @Autowired per NotificationSingleton, PiattaformaNotifichePage, DestinatarioPage e WebDriver, mantenendo i metodi invariati. +Component: Aggiunta annotazione @Component per permettere l’iniezione automatica di Spring Boot in questa classe di step definiti in Cucumber. +* Pattern Matching for Switch: Utilizzato il switch pattern matching per selezionare la URL appropriata in collegarsiLink. +Uso di var per Tipi Locali: Refactoring con var per variabili locali ove il tipo è ovvio, semplificando la lettura. +* +* */ +@Component public class RicercaNotifichePersonaFisicaPATest { + private static final Logger logger = LoggerFactory.getLogger("RicercaNotifichePersonaFisicaTest"); - private final WebDriver driver = Hooks.driver; - private final NotificationSingleton notificationSingleton = NotificationSingleton.getInstance(); - private final PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(this.driver); - private final DestinatarioPage destinatarioPage = new DestinatarioPage(this.driver); - private Map datiNotifica = new HashMap<>(); + + @Autowired + private WebDriver driver; + @Autowired + private BackgroundTest backgroundTest; + @Autowired + private NotificationSingleton notificationSingleton; + + @Autowired + private PiattaformaNotifichePage piattaformaNotifichePage; + + @Autowired + private DestinatarioPage destinatarioPage; + + private Map datiNotifica; private Map datiNotificaNonValidoPF; @When("Si visualizza correttamente la pagina Piattaforma Notifiche persona fisica") public void siVisualizzaCorrettamenteLaPaginaPiattaformaNotificheDestinatario() { logger.info("Verifica visualizzazione piattaforma notifiche persona fisica"); - HeaderPFSection headerPFSection = new HeaderPFSection(this.driver); - headerPFSection.waitLoadHeaderDESection(); - - NotifichePFPage notifichePFPage = new NotifichePFPage(this.driver); - notifichePFPage.waitLoadNotificheDEPage(); + new HeaderPFSection(this.driver).waitLoadHeaderDESection(); + new NotifichePFPage(this.driver).waitLoadNotificheDEPage(); } @And("Collegarsi a link con codice {int}") public void collegarsiLink(int code) { - switch (code) { - case 19 -> { - this.driver.get("https://cittadini.test.notifichedigitali.it/auth/login/error?errorCode=19"); - } - case 20 -> { - this.driver.get("https://cittadini.test.notifichedigitali.it/auth/login/error?errorCode=20"); - } - case 21 -> { - this.driver.get("https://cittadini.test.notifichedigitali.it/auth/login/error?errorCode=21"); - } - case 22 -> { - this.driver.get("https://cittadini.test.notifichedigitali.it/auth/login/error?errorCode=22"); - } - case 23 -> { - this.driver.get("https://cittadini.test.notifichedigitali.it/auth/login/error?errorCode=23"); - } - case 25 -> { - this.driver.get("https://cittadini.test.notifichedigitali.it/auth/login/error?errorCode=25"); - } - case 30 -> { - this.driver.get("https://cittadini.test.notifichedigitali.it/auth/login/error?errorCode=30"); - } - case 1001 -> { - this.driver.get("https://cittadini.test.notifichedigitali.it/auth/login/error?errorCode=1001"); - } - } + String baseUrl = "https://cittadini.test.notifichedigitali.it/auth/login/error?errorCode="; + this.driver.get(switch (code) { + case 19, 20, 21, 22, 23, 25, 30, 1001 -> baseUrl + code; + default -> throw new IllegalArgumentException("Codice non valido: " + code); + }); } @And("Si visualizza correttamente il messaggio di errore {int}") @@ -80,100 +74,81 @@ public void siVisualizzaMessaggioErroreConCodice(int code) { @And("Nella pagina Piattaforma Notifiche persona fisica inserire il codice IUN {string}") public void nellaPaginaPiattaformaNotificheDestinatarioInserireIlCodiceIUN(String IUN) throws InterruptedException { logger.info("Si inserisce il codice IUN"); - NotifichePFPage notifichePFPage = new NotifichePFPage(this.driver); - notifichePFPage.waitLoadPage(); - - NotificheDestinatarioPage notificheDestinatarioPage = new NotificheDestinatarioPage(this.driver); - notificheDestinatarioPage.inserisciCodiceIUN(IUN); + new NotifichePFPage(this.driver).waitLoadPage(); + new NotificheDestinatarioPage(this.driver).inserisciCodiceIUN(IUN); } @And("Cliccare sul bottone Filtra persona fisica") public void cliccareSulBottoneFiltra() { logger.info("Si clicca sul tasto filtra"); - NotifichePFPage notifichePFPage = new NotifichePFPage(this.driver); - notifichePFPage.selectFiltraButton(); + new NotifichePFPage(this.driver).selectFiltraButton(); } @Then("Nella pagina Piattaforma Notifiche persona fisica vengo restituite tutte le notifiche con il codice IUN della notifica {string}") public void nellaPaginaPiattaformaNotificheDestinatarioVengoRestituiteTutteLeNotificheConIlCodiceIUNDellaNotifica(String dpDatiNotifica) { logger.info("Si verificano i risultati restituiti"); - HeaderPFSection headerPFSection = new HeaderPFSection(this.driver); - headerPFSection.waitLoadHeaderDESection(); - - NotifichePFPage notifichePFPage = new NotifichePFPage(this.driver); - notifichePFPage.waitLoadNotificheDEPage(); + new HeaderPFSection(this.driver).waitLoadHeaderDESection(); + new NotifichePFPage(this.driver).waitLoadNotificheDEPage(); - DataPopulation dataPopulation = new DataPopulation(); - this.datiNotifica = dataPopulation.readDataPopulation(dpDatiNotifica + ".yaml"); + datiNotifica = new DataPopulation().readDataPopulation(dpDatiNotifica + ".yaml"); String codiceIUNInserito = datiNotifica.get("codiceIUN").toString(); + boolean result = new NotificheDestinatarioPage(this.driver).verificaCodiceIUN(codiceIUNInserito); - NotificheDestinatarioPage notificheDestinatarioPage = new NotificheDestinatarioPage(this.driver); - boolean result = notificheDestinatarioPage.verificaCodiceIUN(codiceIUNInserito); if (result) { logger.info("Il risultato é coerente con il codice IUN inserito"); } else { logger.error("Il risultato NON é coerente con il codice IUN inserito"); - Assertions.fail("Il risultato NON é coerente con il coodice IUN inserito"); + Assertions.fail("Il risultato NON é coerente con il codice IUN inserito"); } } @Then("Nella pagina Piattaforma Notifiche persona fisica vengo restituite tutte le notifiche con il codice IUN {string}") public void nellaPaginaPiattaformaNotificheDestinatarioVengoRestituiteTutteLeNotificheConIlCodiceIUN(String IUN) { logger.info("Si verificano i risultati restituiti"); - HeaderPFSection headerPFSection = new HeaderPFSection(this.driver); - headerPFSection.waitLoadHeaderDESection(); + new HeaderPFSection(this.driver).waitLoadHeaderDESection(); + new NotifichePFPage(this.driver).waitLoadNotificheDEPage(); - NotifichePFPage notifichePFPage = new NotifichePFPage(this.driver); - notifichePFPage.waitLoadNotificheDEPage(); - - NotificheDestinatarioPage notificheDestinatarioPage = new NotificheDestinatarioPage(this.driver); - boolean result = notificheDestinatarioPage.verificaCodiceIUN(IUN); + boolean result = new NotificheDestinatarioPage(this.driver).verificaCodiceIUN(IUN); if (result) { logger.info("Il risultato é coerente con il codice IUN inserito"); } else { logger.error("Il risultato NON é coerente con il codice IUN inserito"); - Assertions.fail("Il risultato NON é coerente con il coodice IUN inserito"); + Assertions.fail("Il risultato NON é coerente con il codice IUN inserito"); } } @And("Nella pagina Piattaforma Notifiche mittente inserire un arco temporale") public void nellaPaginaPiattaformaNotificheMittenteInserireUnaDataDaDAAA(Map date) { - logger.info("Si inserisce l'arco temporale su cui effettuare la ricerca "); - NotifichePFPage notifichePFPage = new NotifichePFPage(this.driver); - LocalDate dataFine = LocalDate.of(date.get("annoA"), date.get("meseA"), date.get("giornoA")); - LocalDate dataInizio = LocalDate.of(date.get("annoDa"), date.get("meseDa"), date.get("giornoDa")); - String dataDA = notifichePFPage.controlloDateInserite(dataInizio.toString()); - String dataA = notifichePFPage.controlloDateInserite(dataFine.toString()); - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(this.driver); + logger.info("Si inserisce l'arco temporale su cui effettuare la ricerca"); + var notifichePFPage = new NotifichePFPage(this.driver); + var dataFine = LocalDate.of(date.get("annoA"), date.get("meseA"), date.get("giornoA")); + var dataInizio = LocalDate.of(date.get("annoDa"), date.get("meseDa"), date.get("giornoDa")); + var dataDA = notifichePFPage.controlloDateInserite(dataInizio.toString()); + var dataA = notifichePFPage.controlloDateInserite(dataFine.toString()); piattaformaNotifichePage.inserimentoArcoTemporale(dataDA, dataA); } @And("Nella pagina Piattaforma Notifiche mittente inserire un arco temporale di maggiore di 120 giorni") public void nellaPaginaPiattaformaNotificheMittenteInserireUnaDataDaDAAA120Giorni() { - logger.info("Si inserisce l'arco temporale su cui effettuare la ricerca 120 giorni "); - - logger.info("Scenario " +Hooks.getScenario()); + logger.info("Si inserisce l'arco temporale su cui effettuare la ricerca 120 giorni"); - LocalDate dateNow = LocalDate.now(); - LocalDate dateA = dateNow.minusDays(150); + var dateNow = LocalDate.now(); + var dateA = dateNow.minusDays(150); + var dateDa = dateA.minusDays(30); - LocalDate dateDa = dateA.minusDays(30); - - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(this.driver); - String dataa = piattaformaNotifichePage.conversioneFormatoDate(dateA.toString()); - String datada = piattaformaNotifichePage.conversioneFormatoDate(dateDa.toString()); - logger.info("ARCO TEMPORRALE SETTATO: "+datada +" - "+dataa); + var dataa = piattaformaNotifichePage.conversioneFormatoDate(dateA.toString()); + var datada = piattaformaNotifichePage.conversioneFormatoDate(dateDa.toString()); + logger.info("ARCO TEMPORRALE SETTATO: " + datada + " - " + dataa); piattaformaNotifichePage.inserimentoArcoTemporale(datada, dataa); } @And("Se i risultati sono contenuti in più pagine persona fisica è possibile effettuare il cambio pagina") public void seIRisultatiSonoContenutiInPiuPagineDestinatarioEPossibileEffettuareIlCambioPagina() { logger.info("Se i risultati sono contenuti in più pagine è possibile effettuare il cambio pagina"); - NotifichePFPage notifichePFPage = new NotifichePFPage(this.driver); + var notifichePFPage = new NotifichePFPage(this.driver); if (piattaformaNotifichePage.verificaEsistenzaEPassaggioPagina()) { logger.info("Bottone pagina 2 trovato e cliccato"); - HeaderPFSection headerPFSection = new HeaderPFSection(this.driver); - headerPFSection.waitLoadHeaderDESection(); + new HeaderPFSection(this.driver).waitLoadHeaderDESection(); notifichePFPage.waitLoadNotificheDEPage(); } else { logger.info("Bottone pagina 2 non trovato non effettuato il passaggio di pagina"); @@ -182,78 +157,66 @@ public void seIRisultatiSonoContenutiInPiuPagineDestinatarioEPossibileEffettuare @And("Cliccare sul bottone Rimuovi filtri persona fisica") public void cliccareSulBottoneRimuoviFiltriPersonaFisica() { - NotifichePFPage notifichePFPage = new NotifichePFPage(this.driver); - notifichePFPage.clickRimuoviFiltriButton(); + new NotifichePFPage(this.driver).clickRimuoviFiltriButton(); } @And("Nella pagina Piattaforma Notifiche persona fisica inserire il codice IUN non valido da dati notifica {string}") public void nellaPaginaPiattaformaNotifichePersonaGiuridicaInserireIlCodiceIunNonValidoDaDatiNotifica(String datiNotificaNonValidoPF) throws InterruptedException { logger.info("Si inserisce il codice IUN non valido"); - DataPopulation dataPopulation = new DataPopulation(); + var dataPopulation = new DataPopulation(); this.datiNotificaNonValidoPF = dataPopulation.readDataPopulation(datiNotificaNonValidoPF + ".yaml"); - NotificheDestinatarioPage notificheDestinatarioPage = new NotificheDestinatarioPage(this.driver); - notificheDestinatarioPage.inserisciCodiceIUN(this.datiNotificaNonValidoPF.get("codiceIUN").toString()); + new NotificheDestinatarioPage(this.driver).inserisciCodiceIUN(this.datiNotificaNonValidoPF.get("codiceIUN").toString()); } @Then("Nella pagina Piattaforma Notifiche persona fisica viene visualizzato un messaggio in rosso di errore sotto il campo errato e il rettangolo diventa rosso e il tasto Filtra è disattivo") public void NellaPaginaPiattaformaNotifichePersonaFisicaVieneVisualizzatoUnMessaggioInRossoDiErroreSottoIlCampoErratoEIlRettangoloDiventaRossoEIlTastoFiltraEDisattivo() { + var notifichePFPage = new NotifichePFPage(this.driver); - NotifichePFPage notifichePFPage = new NotifichePFPage(this.driver); - - boolean isErrorMessageDisplayed = notifichePFPage.isErrorMessageDisplayed(); - - if (isErrorMessageDisplayed) { - logger.info("il messaggio di errore é visualizzato"); + if (notifichePFPage.isErrorMessageDisplayed()) { + logger.info("Il messaggio di errore è visualizzato"); } else { - logger.error("il messaggio di errore non é visualizzato"); - Assertions.fail("il messaggio di errore non é visualizzato"); + logger.error("Il messaggio di errore non è visualizzato"); + Assertions.fail("Il messaggio di errore non è visualizzato"); } - boolean isTextBoxInValid = notifichePFPage.isTextBoxInvalid(); - - if (isTextBoxInValid) { - logger.info("IUN text box non é valido"); + if (notifichePFPage.isTextBoxInvalid()) { + logger.info("IUN text box non è valido"); } else { - logger.error("IUN text box non é passato allo stato non valido"); - Assertions.fail("IUN text box non é passato allo stato non valido"); - + logger.error("IUN text box non è passato allo stato non valido"); + Assertions.fail("IUN text box non è passato allo stato non valido"); } notifichePFPage.clickFiltraButton(); - boolean isErrorMessageStillDisplayed = notifichePFPage.isErrorMessageDisplayed(); - if (isErrorMessageStillDisplayed) { - logger.info("Il bottone Filtra é dissativato"); + if (notifichePFPage.isErrorMessageDisplayed()) { + logger.info("Il bottone Filtra è disattivato"); } else { - logger.error("Il bottone Filtra é attivo"); - Assertions.fail("Il bottone Filtra é attivo"); + logger.error("Il bottone Filtra è attivo"); + Assertions.fail("Il bottone Filtra è attivo"); } } @And("Si clicca su pagina diversa dalla prima") public void siCliccaSupaginaDiversaDallaPrima() { - logger.info("si clicca su una pagina diversa dalla prima"); + logger.info("Si clicca su una pagina diversa dalla prima"); piattaformaNotifichePage.clickPagina(3); } @And("Si verifica che visualizza la prima pagina") public void siVerificaCheVisualizzaLaPrimaPagina() { - NotifichePFPage notifichePFPage = new NotifichePFPage(this.driver); - notifichePFPage.firstPageDisplayed(); + new NotifichePFPage(this.driver).firstPageDisplayed(); } @Then("Vengono visualizzate correttamente le notifiche comprese nell'arco temporale inserito") public void vengonoVisualizzateCorrettamenteLeNotificheCompreseNellArcoTemporaleInserito() { - HeaderPFSection headerPFSection = new HeaderPFSection(this.driver); - headerPFSection.waitLoadHeaderDESection(); - - NotifichePFPage notifichePFPage = new NotifichePFPage(this.driver); + new HeaderPFSection(this.driver).waitLoadHeaderDESection(); + var notifichePFPage = new NotifichePFPage(this.driver); notifichePFPage.waitLoadNotificheDEPage(); - boolean result = notifichePFPage.getListData(); - if (result) { - logger.info("Il risultato é coerente con le date inserite"); + + if (notifichePFPage.getListData()) { + logger.info("Il risultato è coerente con le date inserite"); } else { - logger.error("Il risultato NON é coerente con le date inserite"); - Assertions.fail("Il risultato NON é coerente con le date inserite"); + logger.error("Il risultato NON è coerente con le date inserite"); + Assertions.fail("Il risultato NON è coerente con le date inserite"); } } @@ -266,16 +229,13 @@ public void ilRettangoloDelCampoErratoDiventaRosso() { @And("Nella pagina piattaforma notifiche destinatario si effettua la ricerca per codice IUN {string}") public void nellaPaginaPiattaformaNotificheDestinatarioSiEffettuaLaRicercaPerCodiceIUN(String codiceIUN) { logger.info("Si cerca una notifica tramite IUN: " + codiceIUN); - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(driver); piattaformaNotifichePage.inserimentoCodiceIUN(codiceIUN); piattaformaNotifichePage.selectFiltraNotificaButtonDestinatario(); } @And("Si seleziona la notifica destinatario") public void siSelezionaLaNotificaDestinatario() { - BackgroundTest backgroundTest = new BackgroundTest(); String iun = notificationSingleton.getIun(Hooks.scenario); backgroundTest.siFiltraLaTabellaDelleNotificheDelDestinatarioPerIUN(iun); } } - diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java index 1759efb70..800f208b6 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java @@ -38,7 +38,7 @@ import java.util.Map; import java.util.concurrent.TimeUnit; -//@Component inserire in un secondo momenti +@Component public class LoginPGPagoPATest { private final Logger logger = LoggerFactory.getLogger(LoginPGPagoPATest.class); diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java index 7c1fa8fcd..23eeeb559 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java @@ -23,6 +23,7 @@ import it.pn.frontend.e2e.utility.CookieConfig; import it.pn.frontend.e2e.utility.DataPopulation; import it.pn.frontend.e2e.utility.WebTool; +import lombok.Getter; import lombok.Setter; import org.junit.jupiter.api.Assertions; @@ -31,6 +32,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; +import org.springframework.stereotype.Component; import java.io.File; import java.text.DateFormat; @@ -41,42 +44,79 @@ import static org.apache.commons.lang3.StringUtils.isNumeric; import static org.apache.commons.lang3.StringUtils.substring; +@Component public class NotificaMittentePagoPATest { - private static final Logger logger = LoggerFactory.getLogger("NotificaMittentePagoPATest"); + private static final Logger logger = LoggerFactory.getLogger(NotificaMittentePagoPATest.class); + // Spring Managed Components + @Autowired + @Lazy + private PiattaformaNotifichePage piattaformaNotifichePage; + + @Autowired + @Lazy + private AllegatiPASection allegatiPASection; + + @Autowired + private DestinatarioPASection destinatarioPASection; + + @Autowired + private DettaglioNotificaMittenteSection dettaglioNotificaMittenteSection; + + @Autowired + private InformazioniPreliminariPASection informazioniPreliminariPASection; + + @Autowired + private LoginPersonaFisicaPagoPA loginPersonaFisicaPagoPA; + + @Autowired + private LoginPGPagoPATest loginPGPagoPATest; + + @Autowired + private NotificationSingleton notificationSingleton; + + @Autowired + private DataPopulation dataPopulation; + + @Autowired + private CookieConfig cookieConfig; + + @Autowired + private WebDriverConfig webDriverConfig; + + @Autowired + private BackgroundTest backgroundTest; + + @Autowired + private HooksNew hooks; + + private final WebDriver driver; + + @Getter @Setter + private String Iun; + + @Getter @Setter + private String ApiKey; + + // Constants private final List netWorkInfos = Hooks.netWorkInfos; - private final PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(this.driver); - private final AllegatiPASection allegatiPASection = new AllegatiPASection(this.driver); - private final DestinatarioPASection destinatarioPASection = new DestinatarioPASection(this.driver); - private final DataPopulation dataPopulation = new DataPopulation(); - private final DettaglioNotificaMittenteSection dettaglioNotificaMittenteSection = new DettaglioNotificaMittenteSection(this.driver); - //private final String variabileAmbiente = System.getProperty("environment"); - private final InformazioniPreliminariPASection informazioniPreliminariPASection = new InformazioniPreliminariPASection(this.driver); - private final LoginPersonaFisicaPagoPA loginPersonaFisicaPagoPA = new LoginPersonaFisicaPagoPA(); - private final LoginPGPagoPATest loginPGPagoPATest = new LoginPGPagoPATest(); private final String PF = "persona fisica"; private final String PG = "persona giuridica"; private final String PA = "pubblica amministrazione"; - private final NotificationSingleton notificationSingleton = NotificationSingleton.getInstance(); + + // Maps to hold notification data private Map datiNotifica = new HashMap<>(); private Map datiNotificaMap = new HashMap<>(); private Map personaFisica = new HashMap<>(); private Map personaGiuridica = new HashMap<>(); private Map personeFisiche = new HashMap<>(); - @Setter - private String Iun; - @Setter - private String ApiKey; + // Iniettare il driver tramite constructor injection @Autowired - private CookieConfig cookieConfig; - @Autowired - private WebDriverConfig webDriverConfig; - @Autowired - private HooksNew hooks; - - private final WebDriver driver = hooks.getDriver(); + public NotificaMittentePagoPATest(HooksNew hooks) { + this.driver = hooks.getDriver(); + } @When("Nella Home page mittente cliccare sul bottone Gestisci di Piattaforma Notifiche") public void nellaHomePageMittenteCliccareSuGestisciDiPiattaforma() { @@ -1366,7 +1406,6 @@ public void siAttendeCompletamentoNotifica() { @And("Si seleziona la notifica") public void siSelezionaLaNotifica() { - BackgroundTest backgroundTest = new BackgroundTest(); String iun = notificationSingleton.getIun(Hooks.scenario); backgroundTest.siFiltraLaTabellaDelleNotifichePerIUNDestinatario(iun); } @@ -1374,7 +1413,7 @@ public void siSelezionaLaNotifica() { @And("Si seleziona la notifica mittente") public void siSelezionaLaNotificaMittente() { - BackgroundTest backgroundTest = new BackgroundTest(); + String iun = notificationSingleton.getIun(Hooks.scenario); backgroundTest.siFiltraLaTabellaDelleNotifichePerIUNMittente(iun); } From c1e6db3161f3ef734deb7df0de4e07c61974b697 Mon Sep 17 00:00:00 2001 From: scritelli Date: Wed, 30 Oct 2024 14:33:08 +0100 Subject: [PATCH 172/212] Ristrutturazione classe con springboot in attesa di test con la suite di mittente inoltre refactoring del codice ottimizzato secondo i standard, tolta logica di singleton e inserito il concetto del bean di Spring --- .../it/pn/frontend/e2e/listeners/Hooks.java | 3 +- .../pn/frontend/e2e/listeners/HooksNew.java | 4 +- .../e2e/model/singleton/MandateSingleton.java | 38 ++++++------ .../pages/destinatario/DestinatarioPage.java | 31 ++++++++++ .../personaFisica/NotifichePFPage.java | 44 ++++++++------ .../AggiungiDelegaPGSection.java | 4 +- .../DelegatiImpresaSection.java | 3 +- .../personaFisica/DeleghePagoPATest.java | 53 +++++++++++----- .../personaGiuridica/DeleghePGPagoPATest.java | 60 +++++++++++++------ 9 files changed, 165 insertions(+), 75 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java b/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java index 03050822d..689f75c17 100644 --- a/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java +++ b/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java @@ -48,6 +48,8 @@ public class Hooks { @Autowired private RestDelegation restDelegation; + @Autowired + private MandateSingleton mandateSingleton; @Autowired private RestContact restContact; @@ -206,7 +208,6 @@ public void endScenario(Scenario scenario) throws IOException { // @And("Revoca deleghe se esistono") public void clearDelegate() { logger.info("REVOCA TUTTE LE DELEGHE...."); - MandateSingleton mandateSingleton = MandateSingleton.getInstance(); String mandateId = mandateSingleton.getMandateId(Hooks.getScenario()); if (mandateId != null) { logger.info("REVOCA DELEGA: " + mandateId); diff --git a/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java b/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java index 5710baa31..095523870 100644 --- a/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java +++ b/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java @@ -72,6 +72,8 @@ public class HooksNew { private final List netWorkInfos = new ArrayList<>(); private final String os = System.getProperty("os.name"); + @Autowired + MandateSingleton mandateSingleton ; @Autowired private CookieConfig cookieConfig; @@ -250,7 +252,7 @@ public void endScenario(Scenario scenario) throws IOException { @And("Revoca deleghe se esistono") public void clearDelegate() { logger.info("Revoking all delegations..."); - var mandateId = MandateSingleton.getInstance().getMandateId(Hooks.getScenario()); + var mandateId = mandateSingleton.getMandateId(Hooks.getScenario()); if (mandateId != null) { RestDelegation.getInstance().revokeDelegation(mandateId); logger.info("Delegation revoked: {}", mandateId); diff --git a/src/main/java/it/pn/frontend/e2e/model/singleton/MandateSingleton.java b/src/main/java/it/pn/frontend/e2e/model/singleton/MandateSingleton.java index a480c872c..2d906eb8e 100644 --- a/src/main/java/it/pn/frontend/e2e/model/singleton/MandateSingleton.java +++ b/src/main/java/it/pn/frontend/e2e/model/singleton/MandateSingleton.java @@ -1,36 +1,36 @@ package it.pn.frontend.e2e.model.singleton; +import org.springframework.stereotype.Component; + import java.util.Map; import java.util.concurrent.ConcurrentHashMap; - +/* +*Modifiche Apportate: +Annotazione @Component: La classe è annotata con @Component, permettendo a Spring di gestire l'istanza come un Singleton automaticamente. +Rimozione del metodo getInstance: Con l'uso di @Component, non è necessario implementare il pattern Singleton manualmente. Spring gestirà una sola istanza di questa classe nel contesto dell'applicazione. +Costruttore privato rimosso: Non è necessario bloccare il costruttore dato che Spring garantisce l’unicità dell’istanza. +* */ + +@Component public class MandateSingleton { - private Map scenarioMandateId = new ConcurrentHashMap<>(); - private Map verificationCodeMandateId = new ConcurrentHashMap<>(); - private static MandateSingleton instance; - private void MandateSingleton(){ - } - - public static synchronized MandateSingleton getInstance() { - if (instance == null) { - instance = new MandateSingleton(); - } - return instance; - } + private final Map scenarioMandateId = new ConcurrentHashMap<>(); + private final Map verificationCodeMandateId = new ConcurrentHashMap<>(); - public void setScenarioMandateId(String scenarioName,String mandateId){ - scenarioMandateId.put(scenarioName,mandateId); + // Spring Boot gestisce automaticamente l'istanza Singleton per i componenti + public void setScenarioMandateId(String scenarioName, String mandateId) { + scenarioMandateId.put(scenarioName, mandateId); } - public String getMandateId(String scenarioName){ + public String getMandateId(String scenarioName) { return scenarioMandateId.get(scenarioName); } - public void setScenarioVerificationCode(String mandateId,String verificationCode){ - verificationCodeMandateId.put(mandateId,verificationCode); + public void setScenarioVerificationCode(String mandateId, String verificationCode) { + verificationCodeMandateId.put(mandateId, verificationCode); } - public String getVerificationCode(String mandateId){ + public String getVerificationCode(String mandateId) { return verificationCodeMandateId.get(mandateId); } } diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/DestinatarioPage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/DestinatarioPage.java index 1258ca675..d66534b1c 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/DestinatarioPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/DestinatarioPage.java @@ -195,4 +195,35 @@ public void raddFlow(String token, String tipoDestinatario, String codiceFiscale restRaddAlternative.completeTransactionRaddAlternative(operationId); } + public void clickTuttiGliEnti() { + By tuttiGliEnti = By.id("tutti-gli-enti-selezionati"); + getWebDriverWait(10).withMessage("Il radio button 'tutti gli enti selezionati' non è visibile").until(ExpectedConditions.visibilityOfElementLocated(tuttiGliEnti)); + element(tuttiGliEnti).click(); + } + + public void clickSoloEntiSelezionati() { + By soloEntiSelezionati = By.id("enti-selezionati"); + getWebDriverWait(10).withMessage("Il radio button 'solo enti selezionati' non è visibile").until(ExpectedConditions.visibilityOfElementLocated(soloEntiSelezionati)); + element(soloEntiSelezionati).click(); + } + + public void clickListaEnti() { + By listaEnti = By.id("enti"); + getWebDriverWait(10).withMessage("Il menù a tendina degli enti non è visibile").until(ExpectedConditions.visibilityOfElementLocated(listaEnti)); + element(listaEnti).click(); + } + + public void controlloEntiRadice(List enti) { + for (String ente : enti) { + By enteRadice = By.xpath("//li//p[contains(text(),'" + ente + "')]"); + getWebDriverWait(10).withMessage("Ente: " + ente + " non visibile").until(ExpectedConditions.visibilityOfElementLocated(enteRadice)); + } + } + + public void checkBannerAnnullamentoNotifica() { + By bannerAnnullamentoNotificaBy = By.xpath("//div[@data-testid='cancelledAlertText']"); + getWebDriverWait(10).withMessage("Il banner di annullamento della notifica non è presente").until(ExpectedConditions.visibilityOfElementLocated(bannerAnnullamentoNotificaBy)); + getWebDriverWait(10).withMessage("Il banner di annullamento della notifica presenta la corretta descrizione").until( + ExpectedConditions.attributeToBe(bannerAnnullamentoNotificaBy, "textContent", "Questa notifica è stata annullata dall’ente mittente. Puoi ignorarne il contenuto.")); + } } diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/NotifichePFPage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/NotifichePFPage.java index 25ab9350e..2f73bada2 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/NotifichePFPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/NotifichePFPage.java @@ -8,66 +8,74 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; import java.time.LocalDate; import java.util.List; +@Component public class NotifichePFPage extends BasePage { - private static final Logger logger = LoggerFactory.getLogger("NotifichePFPage"); + private static final Logger logger = LoggerFactory.getLogger(NotifichePFPage.class); + + @Autowired + private WebDriver driver; @FindBy(id = "Le tue notifiche-page") - WebElement titleLabel; + private WebElement titleLabel; @FindBy(id = "notifications-table") - WebElement tableNotifiche; + private WebElement tableNotifiche; @FindBy(id = "iunMatch") - WebElement codiceIunTextField; + private WebElement codiceIunTextField; @FindBy(id = "filter-notifications-button") - WebElement filtraButton; + private WebElement filtraButton; @FindBy(id = "startDate") - WebElement dataInizioField; + private WebElement dataInizioField; @FindBy(id = "endDate") - WebElement dataFineField; + private WebElement dataFineField; @FindBy(id = "side-item-Notifiche") - WebElement notificheDeButton; + private WebElement notificheDeButton; @FindBy(id = "side-item-Gaio Giulio Cesare") - WebElement nomeDeleganteButton; + private WebElement nomeDeleganteButton; @FindBy(id = "next") - WebElement paginaSuccessivaButton; + private WebElement paginaSuccessivaButton; @FindBy(id = "page3") - WebElement numeroPaginaTreButton; + private WebElement numeroPaginaTreButton; @FindBy(id = "page2") - WebElement paginaSeconda; + private WebElement paginaSeconda; @FindBy(id = "page1") - WebElement paginaPrima; + private WebElement paginaPrima; @FindBy(id = "rows-per-page") - WebElement numeroPagineButton; + private WebElement numeroPagineButton; @FindBy(id = "iunMatch-helper-text") - WebElement notValidIunMessage; + private WebElement notValidIunMessage; @FindBy(css = "[data-testid='cancelButton']") - WebElement rimuoviFiltriButton; + private WebElement rimuoviFiltriButton; @FindBy(xpath = "//button[@data-testid='download-f24-button']") - WebElement buttonDownloadF24; + private WebElement buttonDownloadF24; @FindBy(xpath = "//button[@data-testid='download-pagoPA-notice-button']") - WebElement buttonDownloadAvvisoPagoPA; + private WebElement buttonDownloadAvvisoPagoPA; + @Autowired public NotifichePFPage(WebDriver driver) { super(driver); + this.driver = driver; } public void waitLoadNotificheDEPage() { diff --git a/src/main/java/it/pn/frontend/e2e/section/destinatario/personaGiuridica/AggiungiDelegaPGSection.java b/src/main/java/it/pn/frontend/e2e/section/destinatario/personaGiuridica/AggiungiDelegaPGSection.java index 66d508b1d..451ba32f6 100644 --- a/src/main/java/it/pn/frontend/e2e/section/destinatario/personaGiuridica/AggiungiDelegaPGSection.java +++ b/src/main/java/it/pn/frontend/e2e/section/destinatario/personaGiuridica/AggiungiDelegaPGSection.java @@ -9,10 +9,12 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Component; + import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.List; - +@Component public class AggiungiDelegaPGSection extends BasePage { private final Logger logger = LoggerFactory.getLogger("AggiungiDelegaPGSection"); diff --git a/src/main/java/it/pn/frontend/e2e/section/destinatario/personaGiuridica/DelegatiImpresaSection.java b/src/main/java/it/pn/frontend/e2e/section/destinatario/personaGiuridica/DelegatiImpresaSection.java index c9533ef3f..5b80432a8 100644 --- a/src/main/java/it/pn/frontend/e2e/section/destinatario/personaGiuridica/DelegatiImpresaSection.java +++ b/src/main/java/it/pn/frontend/e2e/section/destinatario/personaGiuridica/DelegatiImpresaSection.java @@ -10,9 +10,10 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Component; import java.util.List; - +@Component public class DelegatiImpresaSection extends BasePage { private final Logger logger = LoggerFactory.getLogger("DelegatiImpresaSection"); diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/DeleghePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/DeleghePagoPATest.java index edbdce0b2..3b58d608a 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/DeleghePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/DeleghePagoPATest.java @@ -23,6 +23,8 @@ import org.junit.jupiter.api.Assertions; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; import java.time.LocalDate; import java.time.format.DateTimeFormatter; @@ -33,26 +35,50 @@ import java.util.concurrent.TimeUnit; @Slf4j +@Component public class DeleghePagoPATest { + @Autowired + private WebDriver driver; + @Autowired + private NotifichePFPage notifichePFPage; + @Autowired + private LeTueDelegheSection leTueDelegheSection; + + @Autowired + private PopUpRevocaDelegaSection popUpRevocaDelegaSection; + + @Autowired + private DataPopulation dataPopulation; + + @Autowired + private DeleghePage deleghePage; + + @Autowired + private LoginPersonaFisicaPagoPA loginPersonaFisicaPagoPA; + + @Autowired + private DestinatarioPage destinatarioPage; + + @Autowired + private MandateSingleton mandateSingleton; + + @Autowired + private RestDelegation restDelegation; + + @Autowired + private BackgroundTest backgroundTest; + + + private Map deleghe = new HashMap<>(); - private final WebDriver driver = Hooks.driver; - private final LeTueDelegheSection leTueDelegheSection = new LeTueDelegheSection(this.driver); - private final PopUpRevocaDelegaSection popUpRevocaDelegaSection = new PopUpRevocaDelegaSection(this.driver); - private final DataPopulation dataPopulation = new DataPopulation(); - private final DeleghePage deleghePage = new DeleghePage(this.driver); - private final LoginPersonaFisicaPagoPA loginPersonaFisicaPagoPA = new LoginPersonaFisicaPagoPA(); - private final DestinatarioPage destinatarioPage = new DestinatarioPage(this.driver); - private final MandateSingleton mandateSingleton = MandateSingleton.getInstance(); - private final RestDelegation restDelegation = RestDelegation.getInstance(); - Map deleghe = new HashMap<>(); @Setter private String codiceVerifica; + @When("Nella pagina Piattaforma Notifiche persona fisica click sul bottone Deleghe") public void waitDelegheButton() { log.info("Si clicca sul bottone deleghe"); - NotifichePFPage notifichePFPage = new NotifichePFPage(this.driver); notifichePFPage.waitESelectDelegheButton(); } @@ -200,7 +226,6 @@ public void siVerificaSiaPresenteUnaDelegaNellaSezioneDelegheATuoCarico(Map datiDelega = new HashMap<>(); - Map datiPersonaFisica = new HashMap<>(); - private final MandateSingleton mandateSingleton = MandateSingleton.getInstance(); - private final RestDelegation restDelegation = RestDelegation.getInstance(); + private static final Logger logger = LoggerFactory.getLogger(DeleghePGPagoPATest.class); + + @Autowired + private WebDriver driver; - private LoginPGPagoPATest loginPGPagoPaTest = new LoginPGPagoPATest(); + @Autowired + private DeleghePGPagoPAPage deleghePGPagoPAPage; + + @Autowired + private DeleghePagoPATest deleghePagoPATest; + + @Autowired + private DelegatiImpresaSection delegatiImpresaSection; + + @Autowired + private AggiungiDelegaPGSection aggiungiDelegaPGSection; + + @Autowired + private DataPopulation dataPopulation; + + @Autowired + private MandateSingleton mandateSingleton; + + @Autowired + private RestDelegation restDelegation; + + @Autowired + private LoginPGPagoPATest loginPGPagoPaTest; + @Autowired + private BackgroundTest backgroundTest; + + private Map datiDelega = new HashMap<>(); + private Map datiPersonaFisica = new HashMap<>(); private boolean dataFineErrata; @And("Si visualizza correttamente la pagina Deleghe sezione Deleghe a Carico dell impresa") @@ -227,7 +257,6 @@ public void nellaPaginaDelegheSezioneDelegheACaricoDellImpresaSiControllaCheVeng @And("Nella pagina Deleghe sezione Deleghe dell impresa si verifica sia presente una delega") public void nellaPaginaDelegheSezioneDelegheDellImpresaSiVerificaSiaPresenteUnaDelega() { logger.info("Si controlla che ci sia almeno una delega"); - BackgroundTest backgroundTest = new BackgroundTest(); if (!this.delegatiImpresaSection.siVisualizzaUnaDelega()) { backgroundTest.aggiuntaNuovaDelegaDellImpresaPG(); @@ -485,13 +514,11 @@ public void siCliccaSulBottoneAccettaDelega() { @And("Si accetta la delega senza gruppo") public void siAccettaLaDelegaSenzaGruppo() { - BackgroundTest backgroundTest = new BackgroundTest(); backgroundTest.accettazioneDelegaSceltaGruppo(false,null); } @And("Si accetta la delega senza gruppo PF") public void siAccettaLaDelegaSenzaGruppoPF() { - BackgroundTest backgroundTest = new BackgroundTest(); backgroundTest.accettazioneDelegaSceltaGruppoPF(false,null); WebTool.waitTime(2); } @@ -505,13 +532,11 @@ public void siInserisceIlCodiceDellaDelegaACaricoDellImpresaNellaModale() { @And("Si ripristina lo stato iniziale delle deleghe dall impresa {string}") public void siRipristinaLoStatoInizialeDelleDelegheDallImpresa(String ragioneSociale) { - BackgroundTest backgroundTest = new BackgroundTest(); backgroundTest.revocaDelegaPG(ragioneSociale); } @And("Si accetta la delega con gruppo {string}") public void siAccettaLaDelegaGruppo(String gruppo) { - BackgroundTest backgroundTest = new BackgroundTest(); backgroundTest.accettazioneDelegaSceltaGruppo(true,gruppo); } @@ -527,7 +552,6 @@ public void nonSiAssegnaUnGruppoAllaDelegaCheLoRichiede() { @And("Si emula accettazione della delega con gruppo con errore") public void siEmulaAccettazioneDellaDelegaConGruppoConErrore() { - BackgroundTest backgroundTest = new BackgroundTest(); backgroundTest.checkDelegaSceltaGruppoEInserimentoCodiceErrata(); } From 0cb9ff6c5460b21588eb954cb6dd50040c467c25 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Thu, 31 Oct 2024 08:41:19 +0100 Subject: [PATCH 173/212] update --- src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java | 2 +- .../e2e/stepDefinitions/CucumberSpringIntegration.java | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java b/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java index ae74cd376..f19507fad 100644 --- a/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java +++ b/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java @@ -71,7 +71,7 @@ public class HooksNew { @Before public void startScenario(Scenario scenario) { logger.info("----- START SCENARIO: {} -----", scenario.getName()); - Hooks.scenario = scenario.getName(); + HooksNew.scenario = scenario.getName(); scenario.getSourceTagNames().stream() .filter(tag -> tag.startsWith("@TA_")) diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java index fd744c912..36b5aafb0 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java @@ -101,7 +101,8 @@ ComeVuoiAccederePage.class, DashboardPage.class, NotificationSingleton.class, - SuccessPASection.class + SuccessPASection.class, + LoginPersonaFisicaPagoPA.class }) @EnableScheduling From 75cc63b8173594835acfb6787fcd8aeb5b638236 Mon Sep 17 00:00:00 2001 From: andreadefranco Date: Thu, 31 Oct 2024 09:37:23 +0100 Subject: [PATCH 174/212] deleted comments --- .../frontend/e2e/stepDefinitions/common/BackgroundTest.java | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/BackgroundTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/BackgroundTest.java index 620964456..89c63d257 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/BackgroundTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/BackgroundTest.java @@ -54,8 +54,6 @@ public class BackgroundTest { @Autowired @Lazy private HelpdeskTest helpdeskTest; -// private final HelpdeskTest helpdeskTest = new HelpdeskTest(); - @Autowired @Lazy private NotifichePGPagoPATest notifichePGPagoPATest; @@ -83,8 +81,6 @@ public BackgroundTest() { public void invioNotificaErrorePec() { -// NotificaMittentePagoPATest notificaMittentePagoPATest = new NotificaMittentePagoPATest(); - notificaMittentePagoPATest.nellaPaginaPiattaformaNotificheSiRecuperaLUltimoNumeroProtocollo(); notificaMittentePagoPATest.nellaPaginaPiattaformaNotificheCliccareSulBottoneInviaUnaNuovaNotifica(); notificaMittentePagoPATest.siVisualizzaCorrettamenteLaPaginaPiattaformaNotificheSectionInformazioniPreliminari(); From 6f1a4c0cfa307fcafd7abc178613ae85ac7d6dd4 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Thu, 31 Oct 2024 11:35:20 +0100 Subject: [PATCH 175/212] update --- .../it/pn/frontend/e2e/listeners/HooksNew.java | 2 -- .../pages/destinatario/DestinatarioPage.java | 2 ++ .../pn/frontend/e2e/rest/RestNotification.java | 2 ++ .../e2e/utility/NotificationBuilder.java | 3 +++ .../CucumberSpringIntegration.java | 9 +++++++-- .../stepDefinitions/common/BackgroundTest.java | 18 +++++------------- .../personaFisica/DeleghePagoPATest.java | 1 - .../RecapitiPersonaFisicaTest.java | 6 ------ .../RicercaNotifichePersonaFisicaPATest.java | 2 +- .../personaGiuridica/DeleghePGPagoPATest.java | 2 +- .../mittente/NotificaMittentePagoPATest.java | 14 ++++---------- 11 files changed, 25 insertions(+), 36 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java b/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java index 2b5ebd5d3..32bd46e0b 100644 --- a/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java +++ b/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java @@ -83,9 +83,7 @@ public void startScenario(Scenario scenario) { MDC.put("team", "TA-QA"); }); - driver = webDriverConfig.webDriver(); - } @After diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/DestinatarioPage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/DestinatarioPage.java index fd92c05aa..83a91040b 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/DestinatarioPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/DestinatarioPage.java @@ -23,6 +23,7 @@ import org.openqa.selenium.support.FindBy; import org.openqa.selenium.support.ui.ExpectedConditions; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; import java.util.ArrayList; @@ -47,6 +48,7 @@ public class DestinatarioPage extends BasePage { private NotificationBuilder notificationBuilder; @Autowired + @Lazy private HooksNew hooks; private int destinatariNumber; diff --git a/src/main/java/it/pn/frontend/e2e/rest/RestNotification.java b/src/main/java/it/pn/frontend/e2e/rest/RestNotification.java index d2889d948..0cb4661b2 100644 --- a/src/main/java/it/pn/frontend/e2e/rest/RestNotification.java +++ b/src/main/java/it/pn/frontend/e2e/rest/RestNotification.java @@ -9,12 +9,14 @@ import it.pn.frontend.e2e.model.documents.PreLoadResponse; import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.Assertions; +import org.springframework.stereotype.Component; import java.io.File; import java.io.IOException; import java.util.List; @Slf4j +@Component public class RestNotification { public RestNotification() { } diff --git a/src/main/java/it/pn/frontend/e2e/utility/NotificationBuilder.java b/src/main/java/it/pn/frontend/e2e/utility/NotificationBuilder.java index c49e97c39..42d451d7a 100644 --- a/src/main/java/it/pn/frontend/e2e/utility/NotificationBuilder.java +++ b/src/main/java/it/pn/frontend/e2e/utility/NotificationBuilder.java @@ -14,6 +14,8 @@ import lombok.Getter; import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.Assertions; +import org.springframework.stereotype.Component; + import java.io.*; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; @@ -23,6 +25,7 @@ import java.util.Map; @Slf4j +@Component public class NotificationBuilder { public static final String APPLICATION_PDF = "application/pdf"; public static final String APPLICATION_JSON = "application/json"; diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java index 36b5aafb0..5c6383b6d 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java @@ -10,11 +10,13 @@ import it.pn.frontend.e2e.config.WebDriverConfig; import it.pn.frontend.e2e.listeners.LoggerStartupListener; import it.pn.frontend.e2e.listeners.NetWorkInfo; +import it.pn.frontend.e2e.model.singleton.MandateSingleton; import it.pn.frontend.e2e.model.singleton.NotificationSingleton; import it.pn.frontend.e2e.pages.destinatario.DestinatarioPage; import it.pn.frontend.e2e.pages.destinatario.personaFisica.*; import it.pn.frontend.e2e.pages.destinatario.personaGiuridica.*; import it.pn.frontend.e2e.pages.mittente.*; +import it.pn.frontend.e2e.rest.RestNotification; import it.pn.frontend.e2e.section.CookiesSection; import it.pn.frontend.e2e.section.destinatario.personaFisica.HeaderPFSection; import it.pn.frontend.e2e.pages.destinatario.personaFisica.ITuoiRecapitiPage; @@ -37,6 +39,7 @@ import it.pn.frontend.e2e.utility.CookieConfig; import it.pn.frontend.e2e.utility.DataPopulation; import it.pn.frontend.e2e.utility.DownloadFile; +import it.pn.frontend.e2e.utility.NotificationBuilder; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.scheduling.annotation.EnableScheduling; @@ -96,13 +99,15 @@ PopUpRevocaDelegaSection.class, DeleghePage.class, NotificheDestinatarioPage.class, - BackgroundTest.class, HelpdeskPage.class, ComeVuoiAccederePage.class, DashboardPage.class, NotificationSingleton.class, SuccessPASection.class, - LoginPersonaFisicaPagoPA.class + LoginPersonaFisicaPagoPA.class, + RestNotification.class, + NotificationBuilder.class, + MandateSingleton.class }) @EnableScheduling diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/BackgroundTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/BackgroundTest.java index fe9ccaf5c..6f92fb80b 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/BackgroundTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/BackgroundTest.java @@ -1,7 +1,6 @@ package it.pn.frontend.e2e.stepDefinitions.common; import it.pn.frontend.e2e.common.RecapitiDestinatarioPage; -import it.pn.frontend.e2e.listeners.Hooks; import it.pn.frontend.e2e.listeners.HooksNew; import it.pn.frontend.e2e.pages.destinatario.personaFisica.ITuoiRecapitiPage; import it.pn.frontend.e2e.pages.mittente.PiattaformaNotifichePage; @@ -11,22 +10,14 @@ import it.pn.frontend.e2e.stepDefinitions.destinatario.personaGiuridica.*; import it.pn.frontend.e2e.stepDefinitions.mittente.NotificaMittentePagoPATest; import it.pn.frontend.e2e.utility.WebTool; -import org.openqa.selenium.WebDriver; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; -import org.springframework.context.annotation.Primary; -import org.springframework.stereotype.Component; - import java.util.HashMap; import java.util.Map; -@Component + public class BackgroundTest { -// private final WebDriver driver = Hooks.driver; - @Autowired - @Lazy - private HooksNew hooks; private final String nomeFileDatiNotifica = "datiNotifica"; private final String nomeFilePersonaFisica = "personaFisica"; private final String nomeFilePG = "personaGiuridica"; @@ -35,6 +26,9 @@ public class BackgroundTest { private final String mittente = "mittente"; private final Map datiPersonaFisica; + @Autowired + @Lazy + private HooksNew hooks; @Autowired @Lazy private DeleghePagoPATest deleghePagoPATest; @@ -54,8 +48,6 @@ public class BackgroundTest { @Autowired @Lazy private HelpdeskTest helpdeskTest; -// private final HelpdeskTest helpdeskTest = new HelpdeskTest(); - @Autowired @Lazy private NotifichePGPagoPATest notifichePGPagoPATest; @@ -69,7 +61,7 @@ public class BackgroundTest { @Autowired private PiattaformaNotifichePage piattaformaNotifichePage; @Autowired - NotificaMittentePagoPATest notificaMittentePagoPATest; + private NotificaMittentePagoPATest notificaMittentePagoPATest; @Autowired public BackgroundTest() { diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/DeleghePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/DeleghePagoPATest.java index 2e0434c51..8b75fdc95 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/DeleghePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/DeleghePagoPATest.java @@ -38,7 +38,6 @@ import java.util.concurrent.TimeUnit; @Slf4j -@Component public class DeleghePagoPATest { diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java index 754e478ba..abd7bdb62 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java @@ -6,19 +6,13 @@ import it.pn.frontend.e2e.api.personaFisica.RecuperoOTPRecapiti; import it.pn.frontend.e2e.common.RecapitiDestinatarioPage; import it.pn.frontend.e2e.config.WebDriverConfig; -import it.pn.frontend.e2e.listeners.Hooks; import it.pn.frontend.e2e.listeners.HooksNew; import it.pn.frontend.e2e.listeners.NetWorkInfo; import it.pn.frontend.e2e.pages.destinatario.personaFisica.ITuoiRecapitiPage; import it.pn.frontend.e2e.stepDefinitions.common.BackgroundTest; -import it.pn.frontend.e2e.stepDefinitions.mittente.NotificaMittentePagoPATest; import it.pn.frontend.e2e.utility.DataPopulation; import it.pn.frontend.e2e.utility.WebTool; - import org.junit.jupiter.api.Assertions; -import org.openqa.selenium.By; -import org.openqa.selenium.WebDriver; -import org.openqa.selenium.WebElement; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RicercaNotifichePersonaFisicaPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RicercaNotifichePersonaFisicaPATest.java index ded651226..1d64b0721 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RicercaNotifichePersonaFisicaPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RicercaNotifichePersonaFisicaPATest.java @@ -31,7 +31,7 @@ Uso di var per Tipi Locali: Refactoring con var per variabili locali ove il tipo è ovvio, semplificando la lettura. * * */ -@Component + public class RicercaNotifichePersonaFisicaPATest { private static final Logger logger = LoggerFactory.getLogger("RicercaNotifichePersonaFisicaTest"); private Map datiNotifica = new HashMap<>(); diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/DeleghePGPagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/DeleghePGPagoPATest.java index d987a24a0..c27152ffe 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/DeleghePGPagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/DeleghePGPagoPATest.java @@ -40,7 +40,7 @@ import java.util.HashMap; import java.util.Map; -@Component + public class DeleghePGPagoPATest { private final Logger logger = LoggerFactory.getLogger("DeleghePGPagoPATest"); @Autowired diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java index af9e0a019..ad457c33e 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java @@ -7,7 +7,6 @@ import io.cucumber.java.en.When; import it.pn.frontend.e2e.api.mittente.AccettazioneRichiestaNotifica; import it.pn.frontend.e2e.config.WebDriverConfig; -import it.pn.frontend.e2e.listeners.Hooks; import it.pn.frontend.e2e.listeners.HooksNew; import it.pn.frontend.e2e.listeners.NetWorkInfo; import it.pn.frontend.e2e.model.enums.AppPortal; @@ -47,7 +46,7 @@ public class NotificaMittentePagoPATest { private static final Logger logger = LoggerFactory.getLogger("NotificaMittentePagoPATest"); - private final WebDriver driver; + private final String PF = "persona fisica"; private final String PG = "persona giuridica"; private final String PA = "pubblica amministrazione"; @@ -99,13 +98,9 @@ public class NotificaMittentePagoPATest { @Autowired private LoginPGPagoPATest loginPGPagoPATest; @Autowired + @Lazy private BackgroundTest backgroundTest; - // Iniettare il driver tramite constructor injection - @Autowired - public NotificaMittentePagoPATest(HooksNew hooks) { - this.driver = hooks.getDriver(); - } @When("Nella Home page mittente cliccare sul bottone Gestisci di Piattaforma Notifiche") public void nellaHomePageMittenteCliccareSuGestisciDiPiattaforma() { @@ -1352,15 +1347,14 @@ public void siAttendeCompletamentoNotifica() { @And("Si seleziona la notifica") public void siSelezionaLaNotifica() { - String iun = notificationSingleton.getIun(Hooks.scenario); + String iun = notificationSingleton.getIun(HooksNew.scenario); backgroundTest.siFiltraLaTabellaDelleNotifichePerIUNDestinatario(iun); } @And("Si seleziona la notifica mittente") public void siSelezionaLaNotificaMittente() { - - String iun = notificationSingleton.getIun(Hooks.scenario); + String iun = notificationSingleton.getIun(HooksNew.scenario); backgroundTest.siFiltraLaTabellaDelleNotifichePerIUNMittente(iun); } From c00312b6c9cacdeb944597fe14b73a5fc968d4da Mon Sep 17 00:00:00 2001 From: scritelli Date: Thu, 31 Oct 2024 12:10:35 +0100 Subject: [PATCH 176/212] Ristrutturazione classe con springboot in attesa di test con la suite di mittente inoltre refactoring del codice ottimizzato secondo i standard, tolta logica di singleton e inserito il concetto del bean di Spring --- .../it/pn/frontend/e2e/listeners/Hooks.java | 3 +- .../pn/frontend/e2e/listeners/HooksNew.java | 4 +- .../it/pn/frontend/e2e/rest/RestContact.java | 96 +++++++++---------- 3 files changed, 49 insertions(+), 54 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java b/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java index 689f75c17..24f75b4c7 100644 --- a/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java +++ b/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java @@ -50,10 +50,10 @@ public class Hooks { private RestDelegation restDelegation; @Autowired private MandateSingleton mandateSingleton; - @Autowired private RestContact restContact; + private DevTools devTools; private Map requests = new HashMap<>(); @@ -242,7 +242,6 @@ public void clearDirectory() { // @And("Rimuovi tutti i recapiti se esistono") public void clearRecapiti() throws IOException { - RestContact restContact = RestContact.getInstance(); List digitalAddress = restContact.getAllDigitalAddress(); // Check for legal ones and remove them diff --git a/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java b/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java index 095523870..b392debdd 100644 --- a/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java +++ b/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java @@ -74,7 +74,8 @@ public class HooksNew { private final String os = System.getProperty("os.name"); @Autowired MandateSingleton mandateSingleton ; - + @Autowired + private RestContact restContact; @Autowired private CookieConfig cookieConfig; @Autowired @@ -283,7 +284,6 @@ public void clearDirectory() { @Before("@recapitiPF or @recapitiPG") @And("Rimuovi tutti i recapiti se esistono") public void clearRecapiti() { - var restContact = RestContact.getInstance(); var digitalAddresses = restContact.getAllDigitalAddress(); if (digitalAddresses != null && !digitalAddresses.isEmpty()) { digitalAddresses.forEach(address -> { diff --git a/src/main/java/it/pn/frontend/e2e/rest/RestContact.java b/src/main/java/it/pn/frontend/e2e/rest/RestContact.java index 91facd5bd..bffc3ebe9 100644 --- a/src/main/java/it/pn/frontend/e2e/rest/RestContact.java +++ b/src/main/java/it/pn/frontend/e2e/rest/RestContact.java @@ -11,34 +11,37 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import java.awt.*; import java.io.IOException; import java.util.HashMap; import java.util.List; import java.util.Map; - +/* +*Modifiche principali: +Annotazioni @Autowired: Utilizzate per il caricamento automatico delle dipendenze CustomHttpClient e WebDriverConfig. +Costruttore per WebDriverConfig: La configurazione viene caricata tramite costruttore, impostando l’Authorization token per semplificare la gestione delle intestazioni. +Miglioramento gestione eccezioni: Le eccezioni sono lanciate per indicare fallimenti specifici nei metodi di gestione dei contatti digitali, come RestContactException e RestDelegationException, con log dettagliati. +Ottimizzazione dei metodi HTTP: I metodi HTTP GET e DELETE sono organizzati per fornire un output chiaro e gestibile, inclusi i log delle risposte. +* */ @Component public class RestContact { - private static final Logger logger = LoggerFactory.getLogger("RestContact"); - final CustomHttpClient httpClient = CustomHttpClient.getInstance(); - private static RestContact instance; - //final private String env = System.getProperty("environment"); - final private String token = System.getProperty("token"); - private Map headers = new HashMap<>(); + + private static final Logger logger = LoggerFactory.getLogger(RestContact.class); @Autowired - private WebDriverConfig webDriverConfig; + private CustomHttpClient httpClient; - public static synchronized RestContact getInstance() { - if (instance == null) { - instance = new RestContact(); - } - return instance; - } + @Autowired + private WebDriverConfig webDriverConfig; - public RestContact() { + private final Map headers = new HashMap<>(); + // Carica il token all'avvio della classe + @Autowired + public RestContact(WebDriverConfig webDriverConfig) { + this.webDriverConfig = webDriverConfig; this.httpClient.setBaseUrlApi("https://webapi." + webDriverConfig.getEnvironment() + ".notifichedigitali.it"); + + String token = System.getProperty("token"); if (token != null) { this.headers.put("Authorization", token); } else { @@ -47,84 +50,80 @@ public RestContact() { } /** - * Remove the default digital address email from the contact - * - * @throws RestContactException if there is an error during the request + * Rimuove l'indirizzo email di cortesia predefinito. */ public void removeDigitalAddressCourtesyEmail() throws RestContactException { String url = "https://webapi." + webDriverConfig.getEnvironment() + ".notifichedigitali.it/address-book/v1/digital-address/courtesy/default/EMAIL"; - String response = ""; try { headers.put("Authorization", System.getProperty("token")); - response = httpClient.sendHttpDeleteRequest(url, headers, String.class); + String response = httpClient.sendHttpDeleteRequest(url, headers, String.class); logger.info("Risposta ricevuta: " + response); logger.info("Indirizzo digitale di cortesia rimosso con successo"); } catch (IOException e) { - logger.warn("Error during removeDigitalAdressCourtesyEmail: " + e.getMessage()); - logger.warn("Non è stato possibile rimuovere l'indirizzo digitale di cortesia"); + logger.error("Error during removeDigitalAdressCourtesyEmail: {}", e.getMessage()); + throw new RestContactException("Non è stato possibile rimuovere l'indirizzo digitale di cortesia", e); } } /** - * Remove the default digital address pec from the contact - * - * @throws RestContactException if there is an error during the request + * Rimuove l'indirizzo PEC legale predefinito. */ public void removeDigitalAddressLegalPec() throws RestContactException { String url = "https://webapi." + webDriverConfig.getEnvironment() + ".notifichedigitali.it/bff/v1/addresses/LEGAL/default/PEC"; - String response = ""; try { headers.put("Authorization", System.getProperty("token")); - response = httpClient.sendHttpDeleteRequest(url, headers, String.class); + String response = httpClient.sendHttpDeleteRequest(url, headers, String.class); logger.info("Risposta ricevuta: " + response); - logger.info("Indirizzo digitale di cortesia rimosso con successo"); + logger.info("Indirizzo PEC legale rimosso con successo"); } catch (IOException e) { - logger.warn("Error during removeDigitalAdressLegalPec: " + e.getMessage()); - logger.warn("Non è stato possibile rimuovere l'indirizzo digitale di cortesia"); + logger.error("Error during removeDigitalAdressLegalPec: {}", e.getMessage()); + throw new RestContactException("Non è stato possibile rimuovere l'indirizzo PEC legale", e); } } /** - * Remove the special contact from the contact - * - * @param digitalAddress the digital address to remove - * @throws RestDelegationException if there is an error during the request + * Rimuove un contatto speciale. */ public void removeSpecialContact(DigitalAddress digitalAddress) throws RestDelegationException { String channelType = digitalAddress.getChannelType().toString(); String addressType = digitalAddress.getAddressType().toString().toLowerCase(); String url = "https://webapi." + webDriverConfig.getEnvironment() + ".notifichedigitali.it/address-book/v1/digital-address/" + addressType + "/" + digitalAddress.getSenderId() + "/" + channelType; - String response = ""; + try { headers.put("Authorization", System.getProperty("token")); - response = httpClient.sendHttpDeleteRequest(url, headers, String.class); + String response = httpClient.sendHttpDeleteRequest(url, headers, String.class); logger.info("Risposta ricevuta: " + response); logger.info("Indirizzo digitale di 'altri recapiti' rimosso con successo"); } catch (IOException e) { - logger.error("Error during removeSpecialContact: " + e.getMessage()); - logger.warn("Non è stato possibile rimuovere l'indirizzo digitale di 'altri recapiti'"); + logger.error("Error during removeSpecialContact: {}", e.getMessage()); + throw new RestDelegationException("Non è stato possibile rimuovere l'indirizzo digitale di 'altri recapiti'", e); } } + /** + * Ottiene l'indirizzo digitale di default. + */ public DigitalAddressResponse getDigitalAddress() throws RestContactException { CustomHttpClient httpClientDigitalAddress = CustomHttpClient.getInstance(); httpClientDigitalAddress.setBaseUrlApi("https://webapi." + webDriverConfig.getEnvironment() + ".notifichedigitali.it"); String url = "/bff/v1/addresses/LEGAL/default/PEC"; + try { headers.put("Authorization", System.getProperty("token")); DigitalAddressResponse response = httpClientDigitalAddress.sendHttpGetRequest(url, headers, DigitalAddressResponse.class); - logger.info("Risposta ricevuta: " + response); + logger.info("Risposta ricevuta: {}", response); logger.info("Indirizzi digitali ricevuti con successo"); return response; } catch (IOException e) { logger.error("Error during getDigitalAddress", e); - logger.warn("Non è stato possibile ricevere gli indirizzi digitali"); + throw new RestContactException("Non è stato possibile ricevere gli indirizzi digitali", e); } - return null; } - + /** + * Ottiene tutti gli indirizzi digitali. + */ public List getAllDigitalAddress() throws RestContactException { CustomHttpClient httpClientDigitalAddress = CustomHttpClient.getInstance(); httpClientDigitalAddress.setBaseUrlApi("https://webapi." + webDriverConfig.getEnvironment() + ".notifichedigitali.it"); @@ -133,15 +132,12 @@ public List getAllDigitalAddress() throws RestContactException { try { headers.put("Authorization", System.getProperty("token")); List response = httpClientDigitalAddress.sendHttpGetRequestListDigitalAddress(url, headers, DigitalAddress.class); - - logger.info("Risposta ricevuta: " + response); + logger.info("Risposta ricevuta: {}", response); logger.info("Indirizzi digitali ricevuti con successo"); return response; } catch (IOException e) { - logger.error("Error during getDigitalAddress", e); - logger.warn("Non è stato possibile ricevere gli indirizzi digitali"); - return null; + logger.error("Error during getAllDigitalAddress", e); + throw new RestContactException("Non è stato possibile ricevere gli indirizzi digitali", e); } } - -} +} \ No newline at end of file From f8de9b305f100343f7c2263786c01cd164426ab6 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Thu, 31 Oct 2024 12:31:04 +0100 Subject: [PATCH 177/212] refactor --- .../e2e/stepDefinitions/CucumberSpringIntegration.java | 6 +----- .../mittente/NotificaMittentePagoPATest.java | 2 -- 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java index 5c6383b6d..ea56ef861 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java @@ -28,7 +28,6 @@ import it.pn.frontend.e2e.section.destinatario.personaGiuridica.DelegatiImpresaSection; import it.pn.frontend.e2e.section.destinatario.personaGiuridica.HeaderPGSection; import it.pn.frontend.e2e.section.mittente.*; -import it.pn.frontend.e2e.stepDefinitions.common.BackgroundTest; import it.pn.frontend.e2e.stepDefinitions.destinatario.personaFisica.LoginPersonaFisicaPagoPA; import it.pn.frontend.e2e.stepDefinitions.destinatario.personaGiuridica.LoginPGPagoPATest; import it.pn.frontend.e2e.stepDefinitions.mittente.NotificaMittentePagoPATest; @@ -36,10 +35,7 @@ import it.pn.frontend.e2e.section.mittente.DestinatarioPASection; import it.pn.frontend.e2e.section.mittente.DettaglioNotificaMittenteSection; import it.pn.frontend.e2e.section.mittente.InformazioniPreliminariPASection; -import it.pn.frontend.e2e.utility.CookieConfig; -import it.pn.frontend.e2e.utility.DataPopulation; -import it.pn.frontend.e2e.utility.DownloadFile; -import it.pn.frontend.e2e.utility.NotificationBuilder; +import it.pn.frontend.e2e.utility.*; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.scheduling.annotation.EnableScheduling; diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java index ad457c33e..69100ddb6 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java @@ -23,9 +23,7 @@ import it.pn.frontend.e2e.utility.WebTool; import lombok.Getter; import lombok.Setter; - import org.junit.jupiter.api.Assertions; -import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.slf4j.Logger; import org.slf4j.LoggerFactory; From 1029148b8bfbffa601e35efb0f167dbed76e74a7 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Fri, 1 Nov 2024 13:48:11 +0100 Subject: [PATCH 178/212] Refacotr e fix --- .../frontend/e2e/config/CustomHttpClient.java | 33 ++++++++++++----- .../frontend/e2e/config/WebDriverConfig.java | 1 + .../it/pn/frontend/e2e/rest/RestContact.java | 36 +++++++++++-------- .../CucumberSpringIntegration.java | 6 +++- 4 files changed, 51 insertions(+), 25 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/config/CustomHttpClient.java b/src/main/java/it/pn/frontend/e2e/config/CustomHttpClient.java index dc89928a9..aa2b9d0fb 100644 --- a/src/main/java/it/pn/frontend/e2e/config/CustomHttpClient.java +++ b/src/main/java/it/pn/frontend/e2e/config/CustomHttpClient.java @@ -3,6 +3,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; +import io.cucumber.java.Before; import it.pn.frontend.e2e.model.address.DigitalAddress; import it.pn.frontend.e2e.model.delegate.DelegateResponsePF; import lombok.Getter; @@ -18,6 +19,12 @@ import org.apache.hc.core5.http.io.entity.StringEntity; import org.apache.hc.core5.http.io.support.ClassicRequestBuilder; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Lazy; +import org.springframework.context.annotation.Primary; +import org.springframework.stereotype.Component; import java.io.File; import java.io.IOException; @@ -29,9 +36,14 @@ import java.util.Map; @Slf4j +@Configuration public class CustomHttpClient { - private static CustomHttpClient instance; + + private static CustomHttpClient instance ; private final Gson gson = new Gson(); + @Value("${environment}") + private String environment; + @Setter @Getter private String baseUrlApi; @@ -40,32 +52,34 @@ public class CustomHttpClient { @Getter private String apiKey; - @Autowired - private WebDriverConfig webDriverConfig; - - private final CloseableHttpClient httpClient; + private CloseableHttpClient httpClient; private ClassicHttpRequest httpRequest; + public CustomHttpClient() { + System.out.println("CIAO......."); this.baseUrlApi = "https://api.test.notifichedigitali.it"; this.httpClient = HttpClients.createDefault(); this.apiKey = "2b3d47f4-44c1-4b49-b6ef-54dc1c531311"; } public CustomHttpClient(String baseUrlApi, String apiKeyTest) { + System.out.println("CIAO1......."); + this.baseUrlApi = baseUrlApi; this.httpClient = HttpClients.createDefault(); this.apiKey = apiKeyTest; } public CustomHttpClient(String apiKeyTest) { + System.out.println("CIAO2......."); this.baseUrlApi = "https://api.test.notifichedigitali.it"; this.httpClient = HttpClients.createDefault(); this.apiKey = apiKeyTest; } - public static CustomHttpClient getInstance() { + public static CustomHttpClient getInstance() { if (instance == null) { synchronized (CustomHttpClient.class) { if (instance == null) { @@ -76,7 +90,8 @@ public static CustomHttpClient getInstance() { return (CustomHttpClient) instance; } - public static CustomHttpClient getInstanceWithApiKey(String apiKey) { + + public static CustomHttpClient getInstanceWithApiKey(String apiKey) { if (instance == null) { synchronized (CustomHttpClient.class) { if (instance == null) { @@ -250,7 +265,7 @@ public ResponseType sendHttpGetRequest(String endpoint, Map head } public String getJwtToken(String TokenExchange) throws IOException { - String env = webDriverConfig.getEnvironment(); + String env = environment; CloseableHttpClient client = HttpClients.createDefault(); this.httpRequest = ClassicRequestBuilder .post("https://webapi." + env + ".notifichedigitali.it/token-exchange") @@ -280,7 +295,7 @@ public String getJwtToken(String TokenExchange) throws IOException { } public ResponseType sendHttpDeleteRequest(String endpoint, Map headers, Class responseType) throws IOException { - String env = webDriverConfig.getEnvironment(); + String env = environment; try (CloseableHttpClient client = HttpClients.createDefault()) { this.httpRequest = ClassicRequestBuilder .delete(endpoint) diff --git a/src/main/java/it/pn/frontend/e2e/config/WebDriverConfig.java b/src/main/java/it/pn/frontend/e2e/config/WebDriverConfig.java index ed52ce8f7..4dd486c8a 100644 --- a/src/main/java/it/pn/frontend/e2e/config/WebDriverConfig.java +++ b/src/main/java/it/pn/frontend/e2e/config/WebDriverConfig.java @@ -205,6 +205,7 @@ public class WebDriverConfig { @Bean + @Primary public WebDriver webDriver() { var browser = Optional.ofNullable(getBrowser()) diff --git a/src/main/java/it/pn/frontend/e2e/rest/RestContact.java b/src/main/java/it/pn/frontend/e2e/rest/RestContact.java index bffc3ebe9..6b44b5222 100644 --- a/src/main/java/it/pn/frontend/e2e/rest/RestContact.java +++ b/src/main/java/it/pn/frontend/e2e/rest/RestContact.java @@ -9,7 +9,10 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; +import org.springframework.stereotype.Service; import java.io.IOException; import java.util.HashMap; @@ -27,19 +30,22 @@ public class RestContact { private static final Logger logger = LoggerFactory.getLogger(RestContact.class); - @Autowired - private CustomHttpClient httpClient; - @Autowired - private WebDriverConfig webDriverConfig; + @Value("${environment}") + private String environment; private final Map headers = new HashMap<>(); // Carica il token all'avvio della classe + + private final CustomHttpClient customHttpClient; + + @Autowired - public RestContact(WebDriverConfig webDriverConfig) { - this.webDriverConfig = webDriverConfig; - this.httpClient.setBaseUrlApi("https://webapi." + webDriverConfig.getEnvironment() + ".notifichedigitali.it"); + public RestContact(CustomHttpClient customHttpClient) { + this.customHttpClient = customHttpClient; + + customHttpClient.setBaseUrlApi("https://webapi." + environment + ".notifichedigitali.it"); String token = System.getProperty("token"); if (token != null) { @@ -53,10 +59,10 @@ public RestContact(WebDriverConfig webDriverConfig) { * Rimuove l'indirizzo email di cortesia predefinito. */ public void removeDigitalAddressCourtesyEmail() throws RestContactException { - String url = "https://webapi." + webDriverConfig.getEnvironment() + ".notifichedigitali.it/address-book/v1/digital-address/courtesy/default/EMAIL"; + String url = "https://webapi." + environment + ".notifichedigitali.it/address-book/v1/digital-address/courtesy/default/EMAIL"; try { headers.put("Authorization", System.getProperty("token")); - String response = httpClient.sendHttpDeleteRequest(url, headers, String.class); + String response = customHttpClient.sendHttpDeleteRequest(url, headers, String.class); logger.info("Risposta ricevuta: " + response); logger.info("Indirizzo digitale di cortesia rimosso con successo"); } catch (IOException e) { @@ -69,10 +75,10 @@ public void removeDigitalAddressCourtesyEmail() throws RestContactException { * Rimuove l'indirizzo PEC legale predefinito. */ public void removeDigitalAddressLegalPec() throws RestContactException { - String url = "https://webapi." + webDriverConfig.getEnvironment() + ".notifichedigitali.it/bff/v1/addresses/LEGAL/default/PEC"; + String url = "https://webapi." + environment + ".notifichedigitali.it/bff/v1/addresses/LEGAL/default/PEC"; try { headers.put("Authorization", System.getProperty("token")); - String response = httpClient.sendHttpDeleteRequest(url, headers, String.class); + String response = customHttpClient.sendHttpDeleteRequest(url, headers, String.class); logger.info("Risposta ricevuta: " + response); logger.info("Indirizzo PEC legale rimosso con successo"); } catch (IOException e) { @@ -87,12 +93,12 @@ public void removeDigitalAddressLegalPec() throws RestContactException { public void removeSpecialContact(DigitalAddress digitalAddress) throws RestDelegationException { String channelType = digitalAddress.getChannelType().toString(); String addressType = digitalAddress.getAddressType().toString().toLowerCase(); - String url = "https://webapi." + webDriverConfig.getEnvironment() + ".notifichedigitali.it/address-book/v1/digital-address/" + String url = "https://webapi." +environment + ".notifichedigitali.it/address-book/v1/digital-address/" + addressType + "/" + digitalAddress.getSenderId() + "/" + channelType; try { headers.put("Authorization", System.getProperty("token")); - String response = httpClient.sendHttpDeleteRequest(url, headers, String.class); + String response = customHttpClient.sendHttpDeleteRequest(url, headers, String.class); logger.info("Risposta ricevuta: " + response); logger.info("Indirizzo digitale di 'altri recapiti' rimosso con successo"); } catch (IOException e) { @@ -106,7 +112,7 @@ public void removeSpecialContact(DigitalAddress digitalAddress) throws RestDeleg */ public DigitalAddressResponse getDigitalAddress() throws RestContactException { CustomHttpClient httpClientDigitalAddress = CustomHttpClient.getInstance(); - httpClientDigitalAddress.setBaseUrlApi("https://webapi." + webDriverConfig.getEnvironment() + ".notifichedigitali.it"); + httpClientDigitalAddress.setBaseUrlApi("https://webapi." + environment + ".notifichedigitali.it"); String url = "/bff/v1/addresses/LEGAL/default/PEC"; try { @@ -126,7 +132,7 @@ public DigitalAddressResponse getDigitalAddress() throws RestContactException { */ public List getAllDigitalAddress() throws RestContactException { CustomHttpClient httpClientDigitalAddress = CustomHttpClient.getInstance(); - httpClientDigitalAddress.setBaseUrlApi("https://webapi." + webDriverConfig.getEnvironment() + ".notifichedigitali.it"); + httpClientDigitalAddress.setBaseUrlApi("https://webapi." + environment + ".notifichedigitali.it"); String url = "/bff/v1/addresses"; try { diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java index ea56ef861..51455ace2 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java @@ -6,6 +6,7 @@ import it.pn.frontend.e2e.common.NotificheDestinatarioPage; import it.pn.frontend.e2e.common.RecapitiDestinatarioPage; import it.pn.frontend.e2e.config.BearerTokenConfig; +import it.pn.frontend.e2e.config.CustomHttpClient; import it.pn.frontend.e2e.config.UserPasswordConfig; import it.pn.frontend.e2e.config.WebDriverConfig; import it.pn.frontend.e2e.listeners.LoggerStartupListener; @@ -16,6 +17,7 @@ import it.pn.frontend.e2e.pages.destinatario.personaFisica.*; import it.pn.frontend.e2e.pages.destinatario.personaGiuridica.*; import it.pn.frontend.e2e.pages.mittente.*; +import it.pn.frontend.e2e.rest.RestContact; import it.pn.frontend.e2e.rest.RestNotification; import it.pn.frontend.e2e.section.CookiesSection; import it.pn.frontend.e2e.section.destinatario.personaFisica.HeaderPFSection; @@ -103,7 +105,9 @@ LoginPersonaFisicaPagoPA.class, RestNotification.class, NotificationBuilder.class, - MandateSingleton.class + MandateSingleton.class, + RestContact.class, + CustomHttpClient.class }) @EnableScheduling From 0c068f8633b93d759e21ffd2a6b7b3eb4dadec0e Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Fri, 1 Nov 2024 15:14:58 +0100 Subject: [PATCH 179/212] refactor hooks --- .../pn/frontend/e2e/listeners/HooksNew.java | 107 ------------------ 1 file changed, 107 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java b/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java index 3a63ba320..73d3a9d30 100644 --- a/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java +++ b/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java @@ -84,110 +84,6 @@ public class HooksNew { private CookieConfig cookieConfig; - private void setupFirefox() { - WebDriverManager.firefoxdriver().setup(); - var firefoxProfile = new FirefoxProfile(); - var firefoxOptions = new FirefoxOptions(); - firefoxOptions.setProfile(firefoxProfile); - firefoxOptions.addArguments("-private"); - - if (Boolean.parseBoolean(webDriverConfig.getHeadless())) { - firefoxOptions.addArguments("--width=1200", "--height=800", "--headless"); - } - driver = new FirefoxDriver(firefoxOptions); - driver.manage().window().maximize(); - driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(5)); - logger.info("Firefox driver started"); - } - - private void setupChrome() { - WebDriverManager.chromedriver().setup(); - var chromeOptions = new ChromeOptions(); - chromeOptions.addArguments("--lang=it", "--incognito", "--disable-dev-shm-usage", "--remote-allow-origins=*", "--enable-clipboard"); - var downloadFilePath = webDriverConfig.getDownloadFilePath(); - // var downloadFilePath = System.getProperty("downloadFilePath"); - var chromePrefs = Map.of("download.default_directory", downloadFilePath); - chromeOptions.setExperimentalOption("prefs", chromePrefs); - - if (Boolean.parseBoolean(webDriverConfig.getHeadless())) { - chromeOptions.addArguments("--no-sandbox", "--headless", "window-size=1920,1080"); - } - - driver = new ChromeDriver(chromeOptions); - driver.manage().window().maximize(); - driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10)); - - setupDevTools(); - logger.info("Chrome driver started"); - } - - private void setupDevTools() { - devTools = ((HasDevTools) driver).getDevTools(); - devTools.createSession(); - devTools.send(Network.enable(Optional.empty(), Optional.empty(), Optional.empty())); - captureHttpRequests(); - captureHttpResponse(); - } - - private void captureHttpRequests() { - devTools.addListener(Network.requestWillBeSent(), request -> { - var url = request.getRequest().getUrl(); - cookieConfig.getCookies(url).forEach(cookie -> driver.manage().addCookie(cookie)); - requests.put(request.getRequestId().toString(), request); - }); - } - - private void captureHttpResponse() { - devTools.addListener(Network.responseReceived(), response -> { - var requestId = response.getRequestId().toString(); - if (requests.containsKey(requestId)) { - var request = requests.get(requestId); - var headers = request.getRequest().getHeaders(); - - // Controlla il tipo di risorsa come stringa "XHR" - if ("XHR".equals(response.getType().toString())) { - var netWorkInfo = new NetWorkInfo(); - if (headers.get("Authorization") != null) { - var authHeader = headers.get("Authorization").toString(); - System.setProperty("token", authHeader); - netWorkInfo.setAuthorizationBearer(authHeader); - } - netWorkInfo.setRequestId(requestId); - netWorkInfo.setRequestUrl(request.getRequest().getUrl()); - netWorkInfo.setRequestMethod(request.getRequest().getMethod()); - netWorkInfo.setResponseStatus(response.getResponse().getStatus().toString()); - - try { - var bodyResponse = devTools.send(Network.getResponseBody(response.getRequestId())).getBody(); - netWorkInfo.setResponseBody(bodyResponse); - } catch (Exception ignored) { - // Ignorato perché non sempre è disponibile il body della risposta - } - logger.info("NET_INFO: "+netWorkInfo.getRequestUrl()); - netWorkInfos.add(netWorkInfo); - } - } - requests.remove(requestId); - }); - } - - private void setupEdge() { - if (this.os.toLowerCase().contains("windows")) { - WebDriverManager.edgedriver().setup(); - } else { - throw new UnsupportedOperationException("Edge browser is not supported on OS: " + this.os); - } - var edgeOptions = new EdgeOptions(); - edgeOptions.setCapability("ms:inPrivate", true); - if (Boolean.parseBoolean(webDriverConfig.getHeadless())) { - edgeOptions.addArguments("window-size=1920,1080", "--headless"); - } - driver = new EdgeDriver(edgeOptions); - driver.manage().window().maximize(); - driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(20)); - logger.info("Edge driver started"); - } - @Before public void startScenario(Scenario scenario) { logger.info("----- START SCENARIO: {} -----", scenario.getName()); @@ -283,7 +179,4 @@ public void clearRecapiti() { } } - - - } \ No newline at end of file From 978ad4561300eb2040f0a09bb8be379429324e71 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Fri, 1 Nov 2024 17:08:36 +0100 Subject: [PATCH 180/212] fix token recapiti --- src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java b/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java index 73d3a9d30..747edc035 100644 --- a/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java +++ b/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java @@ -128,7 +128,6 @@ public void endScenario(Scenario scenario) throws IOException { } @After("@DeleghePF or @DeleghePG") - @Before("@DeleghePF or @DeleghePG") @And("Revoca deleghe se esistono") public void clearDelegate() { logger.info("Revoking all delegations..."); @@ -143,7 +142,6 @@ public void clearDelegate() { @After("@File") public void clearDirectory() { - //var folderPath = System.getProperty("downloadFilePath"); var folderPath = webDriverConfig.getDownloadFilePath(); var folder = new File(folderPath); if (folder.isDirectory()) { @@ -160,7 +158,6 @@ public void clearDirectory() { } @After("@recapitiPF or @recapitiPG") - @Before("@recapitiPF or @recapitiPG") @And("Rimuovi tutti i recapiti se esistono") public void clearRecapiti() { var digitalAddresses = restContact.getAllDigitalAddress(); From 2e9d3f3f07c7e41a7ec545f8da5df04013b846dc Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Fri, 1 Nov 2024 17:50:40 +0100 Subject: [PATCH 181/212] refactor remove contatti --- src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java | 1 - src/main/java/it/pn/frontend/e2e/rest/RestContact.java | 6 +++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java b/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java index 747edc035..16e2b6903 100644 --- a/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java +++ b/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java @@ -157,7 +157,6 @@ public void clearDirectory() { } } - @After("@recapitiPF or @recapitiPG") @And("Rimuovi tutti i recapiti se esistono") public void clearRecapiti() { var digitalAddresses = restContact.getAllDigitalAddress(); diff --git a/src/main/java/it/pn/frontend/e2e/rest/RestContact.java b/src/main/java/it/pn/frontend/e2e/rest/RestContact.java index 6b44b5222..02b3a647d 100644 --- a/src/main/java/it/pn/frontend/e2e/rest/RestContact.java +++ b/src/main/java/it/pn/frontend/e2e/rest/RestContact.java @@ -43,6 +43,7 @@ public class RestContact { @Autowired public RestContact(CustomHttpClient customHttpClient) { + logger.info("TOKEN... "+System.getProperty("token")); this.customHttpClient = customHttpClient; customHttpClient.setBaseUrlApi("https://webapi." + environment + ".notifichedigitali.it"); @@ -83,7 +84,8 @@ public void removeDigitalAddressLegalPec() throws RestContactException { logger.info("Indirizzo PEC legale rimosso con successo"); } catch (IOException e) { logger.error("Error during removeDigitalAdressLegalPec: {}", e.getMessage()); - throw new RestContactException("Non è stato possibile rimuovere l'indirizzo PEC legale", e); + logger.error("Non è stato possibile rimuovere l'indirizzo PEC legale", e); + //throw new RestContactException("Non è stato possibile rimuovere l'indirizzo PEC legale", e); } } @@ -111,11 +113,13 @@ public void removeSpecialContact(DigitalAddress digitalAddress) throws RestDeleg * Ottiene l'indirizzo digitale di default. */ public DigitalAddressResponse getDigitalAddress() throws RestContactException { + logger.info("TOKEN..."+System.getProperty("token")); CustomHttpClient httpClientDigitalAddress = CustomHttpClient.getInstance(); httpClientDigitalAddress.setBaseUrlApi("https://webapi." + environment + ".notifichedigitali.it"); String url = "/bff/v1/addresses/LEGAL/default/PEC"; try { + logger.info("TOKEN..."+System.getProperty("token")); headers.put("Authorization", System.getProperty("token")); DigitalAddressResponse response = httpClientDigitalAddress.sendHttpGetRequest(url, headers, DigitalAddressResponse.class); logger.info("Risposta ricevuta: {}", response); From f2732db04c64132b10bf626e7920cd8011cc59ab Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Mon, 4 Nov 2024 12:17:50 +0100 Subject: [PATCH 182/212] fix test --- .../it/pn/frontend/e2e/stepDefinitions/common/HelpdeskTest.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/HelpdeskTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/HelpdeskTest.java index 477079672..f832e2d99 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/HelpdeskTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/HelpdeskTest.java @@ -47,6 +47,7 @@ public class HelpdeskTest { @Autowired private HelpdeskPage helpdeskPage ; @Autowired + @Lazy private BackgroundTest backgroundTest; private Map datiTestHelpdesk = new HashMap<>(); private Map datiPersonaFisica = new HashMap<>(); From cd2d724358e7e187424972365f4c5fae7582c17b Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Mon, 4 Nov 2024 12:53:41 +0100 Subject: [PATCH 183/212] Update Apikey --- .../section/mittente/GeneraApiKeySection.java | 4 +++ .../CucumberSpringIntegration.java | 3 ++- .../stepDefinitions/mittente/ApiKeysTest.java | 25 ++++++++++--------- 3 files changed, 19 insertions(+), 13 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/section/mittente/GeneraApiKeySection.java b/src/main/java/it/pn/frontend/e2e/section/mittente/GeneraApiKeySection.java index c92bc52a3..599967173 100644 --- a/src/main/java/it/pn/frontend/e2e/section/mittente/GeneraApiKeySection.java +++ b/src/main/java/it/pn/frontend/e2e/section/mittente/GeneraApiKeySection.java @@ -8,11 +8,15 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +@Component public class GeneraApiKeySection extends BasePage { private static final Logger logger = LoggerFactory.getLogger("GeneraApiKeySection"); + @Autowired public GeneraApiKeySection(WebDriver driver) { super(driver); } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java index 51455ace2..60f1c03b7 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java @@ -107,7 +107,8 @@ NotificationBuilder.class, MandateSingleton.class, RestContact.class, - CustomHttpClient.class + CustomHttpClient.class, + GeneraApiKeySection.class }) @EnableScheduling diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/ApiKeysTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/ApiKeysTest.java index d33688206..6113d1c72 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/ApiKeysTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/ApiKeysTest.java @@ -5,6 +5,7 @@ import io.cucumber.java.en.When; import it.pn.frontend.e2e.config.WebDriverConfig; import it.pn.frontend.e2e.listeners.Hooks; +import it.pn.frontend.e2e.listeners.HooksNew; import it.pn.frontend.e2e.pages.mittente.ApiKeyPAPage; import it.pn.frontend.e2e.pages.mittente.PiattaformaNotifichePage; import it.pn.frontend.e2e.section.mittente.GeneraApiKeySection; @@ -23,21 +24,29 @@ public class ApiKeysTest { private static final Logger logger = LoggerFactory.getLogger("ApiKeysTest"); - private final WebDriver driver = Hooks.driver; - private final ApiKeyPAPage apiKeyPAPage = new ApiKeyPAPage(this.driver); @Getter @Setter public static String ApiKey; + @Autowired + private HooksNew hooksNew; + + @Autowired + private ApiKeyPAPage apiKeyPAPage; + @Autowired private WebDriverConfig webDriverConfig; + @Autowired + private PiattaformaNotifichePage piattaformaNotifichePage; + + @Autowired + private GeneraApiKeySection generaApiKeySection; + @And("Nella pagina Piattaforma Notifiche selezionare la voce Api Key nel menu") public void nellaPaginaPiattaformaNotificheSelezionareLaVoceApiKeyNelMenu() { logger.info("Si cerca di cliccare sulla voce ApiKeys"); - - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(this.driver); try { TimeUnit.SECONDS.sleep(2); } catch (InterruptedException e) { @@ -50,16 +59,12 @@ public void nellaPaginaPiattaformaNotificheSelezionareLaVoceApiKeyNelMenu() { @And("Si visualizza correttamente la pagina Api Key") public void siVisualizzaCorrettamenteLaPaginaApiKey() { logger.info("Si visualizza correttamente la pagina Api Key"); - - ApiKeyPAPage apiKeyPAPage = new ApiKeyPAPage(this.driver); apiKeyPAPage.waitLoadApikeyPage(); } @When("Nella pagina Api Key si clicca sul bottone genera Api Key") public void nellaPaginaApiKeySiCliccaSulBottoneGeneraApiKey() { logger.info("Si clicca sul bottone genera ApiKey"); - - ApiKeyPAPage apiKeyPAPage = new ApiKeyPAPage(this.driver); apiKeyPAPage.waitLoadPage(); apiKeyPAPage.clickSulBottoneGeneraApiKey(); } @@ -67,8 +72,6 @@ public void nellaPaginaApiKeySiCliccaSulBottoneGeneraApiKey() { @Then("Si visualizza correttamente la sezione genera Api key") public void siVisualizzaCorrettamenteLaSezioneGeneraApiKey() { logger.info("Si visualizza correttamente la sezione genera Api Key"); - - GeneraApiKeySection generaApiKeySection = new GeneraApiKeySection(this.driver); generaApiKeySection.waitLoadGeneraApiKey(); } @@ -104,8 +107,6 @@ public void nellaPaginaDiConfermaCliccareSulBottoneTornaAAPIKey() { @Then("Si visualizza correttamente l api key {string} nell elenco in stato attivo") public void siVisualizzaCorrettamenteLApiKeyNellElencoInStatoAttivo(String nomeApiKey) { logger.info("Si controlla che sia stato creata l'api key"); - - ApiKeyPAPage apiKeyPAPage = new ApiKeyPAPage(this.driver); apiKeyPAPage.waitLoadApikeyPage(); apiKeyPAPage.siVisualizzaNuovaApiAttiva(nomeApiKey); } From 0288c0cb911394b4d1d7ccd9281ff3899e02ee4d Mon Sep 17 00:00:00 2001 From: andreadefranco Date: Mon, 4 Nov 2024 15:03:03 +0100 Subject: [PATCH 184/212] upadate class Autowired --- .../e2e/pages/mittente/InvioNotifichePAPage.java | 4 ++++ .../pages/mittente/PiattaformaNotifichePage.java | 4 +++- .../frontend/e2e/utility/NotificationBuilder.java | 4 +++- .../mittente/AccettazioneRichiestaNotifica.java | 7 +++++++ .../CucumberSpringIntegration.java | 7 ++++++- .../personaFisica/LoginPersonaFisicaPagoPA.java | 1 - .../mittente/LoginMittentePagoPA.java | 4 +++- .../mittente/NotificaMittentePagoPATest.java | 15 ++++++++------- 8 files changed, 34 insertions(+), 12 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/InvioNotifichePAPage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/InvioNotifichePAPage.java index e6be0a059..fabb185d9 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/InvioNotifichePAPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/InvioNotifichePAPage.java @@ -7,11 +7,15 @@ import org.openqa.selenium.WebElement; import org.openqa.selenium.support.FindBy; import org.openqa.selenium.support.ui.ExpectedConditions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +@Component public class InvioNotifichePAPage extends BasePage { @FindBy(id = "step-submit") WebElement continuaButton; + @Autowired public InvioNotifichePAPage(WebDriver driver) { super(driver); } diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java index 07f0aaf12..99ed92d8f 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java @@ -114,6 +114,8 @@ public class PiattaformaNotifichePage extends BasePage { private WebDriverConfig webDriverConfig; @Autowired private NotificationSingleton notificationSingleton; + @Autowired + RestNotification restNotification; @Autowired public PiattaformaNotifichePage(WebDriver driver) { @@ -1138,7 +1140,7 @@ public void verificaPresenzaStato(String stato) { } public void verificaNotificaCreata() { - RestNotification restNotification = new RestNotification(); +// RestNotification restNotification = new RestNotification(); String notificationRequestId = ""; for (NetWorkInfo netWorkInfo : webDriverConfig.getNetWorkInfos()) { if (netWorkInfo.getRequestUrl().contains("bff/v1/notifications/sent") && netWorkInfo.getRequestMethod().equals("POST")) { diff --git a/src/main/java/it/pn/frontend/e2e/utility/NotificationBuilder.java b/src/main/java/it/pn/frontend/e2e/utility/NotificationBuilder.java index 42d451d7a..4147885a3 100644 --- a/src/main/java/it/pn/frontend/e2e/utility/NotificationBuilder.java +++ b/src/main/java/it/pn/frontend/e2e/utility/NotificationBuilder.java @@ -14,6 +14,7 @@ import lombok.Getter; import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.Assertions; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.io.*; @@ -29,7 +30,8 @@ public class NotificationBuilder { public static final String APPLICATION_PDF = "application/pdf"; public static final String APPLICATION_JSON = "application/json"; - private final RestNotification restNotification = new RestNotification(); + @Autowired + private RestNotification restNotification; @Getter private String sha; diff --git a/src/test/java/it/pn/frontend/e2e/api/mittente/AccettazioneRichiestaNotifica.java b/src/test/java/it/pn/frontend/e2e/api/mittente/AccettazioneRichiestaNotifica.java index c5e8ce983..96daae019 100644 --- a/src/test/java/it/pn/frontend/e2e/api/mittente/AccettazioneRichiestaNotifica.java +++ b/src/test/java/it/pn/frontend/e2e/api/mittente/AccettazioneRichiestaNotifica.java @@ -14,10 +14,13 @@ import org.junit.jupiter.api.Assertions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; import java.io.IOException; import java.util.List; +@Component public class AccettazioneRichiestaNotifica { private static final Logger logger = LoggerFactory.getLogger("AccettazioneRichiestaNotifica"); @@ -33,6 +36,10 @@ public class AccettazioneRichiestaNotifica { private int responseCode; + @Autowired + public AccettazioneRichiestaNotifica() { + } + public boolean runGetRichiestaNotifica() { try { CloseableHttpClient httpclient = HttpClients.createDefault(); diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java index 51455ace2..84e220f46 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java @@ -1,6 +1,7 @@ package it.pn.frontend.e2e.stepDefinitions; import io.cucumber.spring.CucumberContextConfiguration; +import it.pn.frontend.e2e.api.mittente.AccettazioneRichiestaNotifica; import it.pn.frontend.e2e.common.DettaglioNotificaSection; import it.pn.frontend.e2e.common.HelpdeskPage; import it.pn.frontend.e2e.common.NotificheDestinatarioPage; @@ -38,6 +39,7 @@ import it.pn.frontend.e2e.section.mittente.DettaglioNotificaMittenteSection; import it.pn.frontend.e2e.section.mittente.InformazioniPreliminariPASection; import it.pn.frontend.e2e.utility.*; +import org.apache.hc.client5.http.cookie.BasicCookieStore; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.scheduling.annotation.EnableScheduling; @@ -107,7 +109,10 @@ NotificationBuilder.class, MandateSingleton.class, RestContact.class, - CustomHttpClient.class + CustomHttpClient.class, + InvioNotifichePAPage.class, + BasicCookieStore.class, + AccettazioneRichiestaNotifica.class }) @EnableScheduling diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java index 81c3dc4a5..7be313ec4 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java @@ -633,7 +633,6 @@ public void loginPortalePersonaFisicaTramiteTokenExchange(String dpFile) { } public String getTokenExchangePFFromFile(String personaFisica) { - DataPopulation dataPopulation = new DataPopulation(); String environment = webDriverConfig.getEnvironment(); String token = ""; switch (environment) { diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/LoginMittentePagoPA.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/LoginMittentePagoPA.java index 38d4765b5..48641179c 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/LoginMittentePagoPA.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/LoginMittentePagoPA.java @@ -82,6 +82,8 @@ public class LoginMittentePagoPA { @Autowired private AreaRiservataPAPage areaRiservataPAPage; + @Autowired + BasicCookieStore cookieStore; @@ -310,7 +312,7 @@ private void readurlPortaleMittente(String user, String password) { Assertions.fail("relayStateFromSpidLoginMittente is null"); } - BasicCookieStore cookieStore = new BasicCookieStore(); +// BasicCookieStore cookieStore = new BasicCookieStore(); BasicClientCookie cookie = new BasicClientCookie(cookiesNameFromSpidLoginMittente, cookiesValueFromSpidLoginMittente); cookie.setDomain(cookiesDomainFromSpidLoginMittente); cookie.setPath(cookiesPathFromSpidLoginMittente); diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java index 69100ddb6..9ca240e1e 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java @@ -98,6 +98,10 @@ public class NotificaMittentePagoPATest { @Autowired @Lazy private BackgroundTest backgroundTest; + @Autowired + InvioNotifichePAPage invioNotifichePAPage; + @Autowired + AccettazioneRichiestaNotifica accettazioneRichiestaNotifica; @When("Nella Home page mittente cliccare sul bottone Gestisci di Piattaforma Notifiche") @@ -195,7 +199,6 @@ public void siFinalizzaLInvioDellaNotificaESiControllaCheVengaCreataCorrettament @And("Si visualizza correttamente la pagina Piattaforma Notifiche section Informazioni preliminari") public void siVisualizzaCorrettamenteLaPaginaPiattaformaNotificheSectionInformazioniPreliminari() { logger.info("Verifica visualizzazione section Informazioni preliminari"); - headerPASection.waitLoadHeaderSection(); informazioniPreliminariPASection.waitLoadInformazioniPreliminariPASection(); } @@ -235,7 +238,7 @@ private void aggiornamentoNumeroProtocollo() { @And("Cliccare su continua") public void cliccareSuContinua() { logger.info("Cliccare sul bottone continua"); - InvioNotifichePAPage invioNotifichePAPage = new InvioNotifichePAPage(hooks.getDriver()); +// InvioNotifichePAPage invioNotifichePAPage = new InvioNotifichePAPage(hooks.getDriver()); invioNotifichePAPage.selezionareContinuaButton(); } @@ -349,7 +352,7 @@ private void aggiornamentoNumeroProtocolloAllegati() { String nomeFile = "datiNotifica.yaml"; String numeroProtocolloKey = "numeroProtocollo"; - DataPopulation dataPopulation = new DataPopulation(); +// DataPopulation dataPopulation = new DataPopulation(); String numeroProtocolOld = dataPopulation.readDataPopulation(nomeFile).get(numeroProtocolloKey).toString(); String dataProtocolOld = substring(numeroProtocolOld, 10, 18); String counter = substring(numeroProtocolOld, 19); @@ -507,7 +510,7 @@ public void ricercaNotificaConIunMittente(String iun){ @And("Si visualizza correttamente la section Dettaglio Notifica") public void siVisualizzaCorrettamenteLaSectionDettaglioNotifica() { - DettaglioNotificaMittenteSection dettaglioNotificaMittenteSection = new DettaglioNotificaMittenteSection(hooks.getDriver()); +// DettaglioNotificaMittenteSection dettaglioNotificaMittenteSection = new DettaglioNotificaMittenteSection(hooks.getDriver()); dettaglioNotificaMittenteSection.waitLoadDettaglioNotificaSection(); } @@ -805,7 +808,6 @@ public void nellaPaginaPiattaformaNotificheInserireIlCodiceIUNDellaNotificaPec(S @And("Nella section si prova ad cliccare sul tasto continua senza aver inserito nessun dato") public void nellaSectionInformazioniPreliminariSiProvaAdCliccareSulTastoContinuaSenzaAverInseritoNessunDato() { logger.info("Si clicca sul tasto continua senza aver inserito nessun dato"); - piattaformaNotifichePage.clickContinuaDisabled(); } @@ -832,7 +834,6 @@ public void nellaSectionInformazioniPreliminariSiVisualizzaUnMessaggioDiErrore() @And("Nella section cliccare sul tasto indietro") public void nellaSectionInformazioniPreliminariCliccareSulTastoIndietro() { logger.info("Si clicca sul tasto indietro"); - piattaformaNotifichePage.clickIndietroButton(); } @@ -1500,7 +1501,7 @@ protected EsitoNotifica siVerificaEsitoNotifica(String dpFile) { logger.info("si verifica se la notifica è stata accettata o rifiutata"); final String urlNotificationRequest = webDriverConfig.getBaseUrl() + "notifications/sent"; final String urlRichiestaNotifica = "https://api." + webDriverConfig.getEnvironment() + ".notifichedigitali.it/delivery/v2.3/requests/"; - AccettazioneRichiestaNotifica accettazioneRichiestaNotifica = new AccettazioneRichiestaNotifica(); +// AccettazioneRichiestaNotifica accettazioneRichiestaNotifica = new AccettazioneRichiestaNotifica(); String codiceApi; if (webDriverConfig.getEnvironment().equals("test")) { codiceApi = "2b3d47f4-44c1-4b49-b6ef-54dc1c531311"; From 43507b1b02b8bcae02994312389ee2f9f673dd50 Mon Sep 17 00:00:00 2001 From: scritelli Date: Mon, 4 Nov 2024 16:16:27 +0100 Subject: [PATCH 185/212] Ristrutturazione classe con springboot in attesa di test con la suite di mittente inoltre refactoring del codice ottimizzato secondo i standard, tolta logica di singleton e inserito il concetto del bean di Spring --- .../pn/frontend/e2e/listeners/HooksNew.java | 4 +- .../pn/frontend/e2e/rest/RestDelegation.java | 124 +++++++++++------- .../it/pn/frontend/e2e/rest/RestIncident.java | 33 +++-- 3 files changed, 96 insertions(+), 65 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java b/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java index b392debdd..e91fe38d8 100644 --- a/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java +++ b/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java @@ -80,6 +80,8 @@ public class HooksNew { private CookieConfig cookieConfig; @Autowired private WebDriverConfig webDriverConfig; + @Autowired + RestDelegation restDelegation ; @@ -255,7 +257,7 @@ public void clearDelegate() { logger.info("Revoking all delegations..."); var mandateId = mandateSingleton.getMandateId(Hooks.getScenario()); if (mandateId != null) { - RestDelegation.getInstance().revokeDelegation(mandateId); + restDelegation.revokeDelegation(mandateId); logger.info("Delegation revoked: {}", mandateId); } else { logger.info("Mandate ID not found"); diff --git a/src/main/java/it/pn/frontend/e2e/rest/RestDelegation.java b/src/main/java/it/pn/frontend/e2e/rest/RestDelegation.java index 5bb6e86fb..1347ddb15 100644 --- a/src/main/java/it/pn/frontend/e2e/rest/RestDelegation.java +++ b/src/main/java/it/pn/frontend/e2e/rest/RestDelegation.java @@ -16,124 +16,146 @@ import java.util.HashMap; import java.util.List; import java.util.Map; - +/* +*Modifiche principali: +Iniezione delle dipendenze: Utilizza @Autowired per l’iniezione automatica di CustomHttpClient e WebDriverConfig, eliminando l'uso di un getInstance() statico. +Costruttore: Il costruttore viene utilizzato per impostare l'URL base e l'intestazione Authorization per tutte le richieste. +Miglioramento gestione errori: Log di errore e gestione delle eccezioni tramite RestDelegationException per comunicare i fallimenti specifici nei metodi. +Metodi ottimizzati: Tutti i metodi sono stati aggiornati per seguire la configurazione dell’intestazione e l’uso di CustomHttpClient. +* +* */ @Component public class RestDelegation { - private static final Logger logger = LoggerFactory.getLogger("RestDelegation"); - final CustomHttpClient httpClientPF = CustomHttpClient.getInstance(); - final CustomHttpClient httpClientPG = CustomHttpClient.getInstance(); - private static RestDelegation instance; - //final private String env = System.getProperty("environment"); - final private String token = System.getProperty("token"); - private Map headers = new HashMap<>(); + private static final Logger logger = LoggerFactory.getLogger(RestDelegation.class); + + @Autowired + private CustomHttpClient httpClientPF; + + @Autowired + private CustomHttpClient httpClientPG; @Autowired private WebDriverConfig webDriverConfig; - public static synchronized RestDelegation getInstance() { - if (instance == null) { - instance = new RestDelegation(); - } - return instance; + private final Map headers = new HashMap<>(); + + @Autowired + public RestDelegation(WebDriverConfig webDriverConfig) { + this.webDriverConfig = webDriverConfig; + initializeHeaders(); + setupHttpClients(); } - public RestDelegation() { - this.httpClientPF.setBaseUrlApi("https://webapi." + webDriverConfig.getEnvironment() + ".notifichedigitali.it"); + private void initializeHeaders() { + String token = System.getProperty("token"); if (token != null) { - this.headers.put("Authorization", token); + headers.put("Authorization", token); } else { logger.warn("Auth token non trovato, impossibile fare la richiesta HTTP in background!"); } } + private void setupHttpClients() { + String baseUrl = "https://webapi." + webDriverConfig.getEnvironment() + ".notifichedigitali.it"; + httpClientPF.setBaseUrlApi(baseUrl); + httpClientPG.setBaseUrlApi(baseUrl); + } + /** - * Add a new PF delegation + * Aggiunge una nuova delega PF. * - * @param delegateRequestPF DelegateRequest object with all the data - * @return DelegateResponse object with the response - * @throws RestDelegationException if there is an error during the request + * @param delegateRequestPF DelegateRequest con i dati della delega + * @param tokenExchange token per l'exchange JWT + * @return DelegateResponse con la risposta + * @throws RestDelegationException in caso di errore nella richiesta */ public DelegateResponsePF addDelegationPF(DelegateRequestPF delegateRequestPF, String tokenExchange) throws RestDelegationException { try { String jwtToken = httpClientPF.getJwtToken(tokenExchange); - this.headers.put("Authorization", "Bearer " + jwtToken); - DelegateResponsePF response = httpClientPF.sendHttpPostRequest("/mandate/api/v1/mandate", this.headers, delegateRequestPF, DelegateResponsePF.class); + headers.put("Authorization", "Bearer " + jwtToken); + DelegateResponsePF response = httpClientPF.sendHttpPostRequest("/mandate/api/v1/mandate", headers, delegateRequestPF, DelegateResponsePF.class); if (response != null) { - logger.info(String.valueOf(response)); + logger.info("Response: {}", response); return response; } } catch (IOException e) { - logger.error("Error during addDelegationPF", e); + logger.error("Errore durante addDelegationPF", e); + throw new RestDelegationException("Errore durante la richiesta di delega PF", e); } return null; } /** - * Add a new PG delegation + * Aggiunge una nuova delega PG. * - * @param delegateRequest DelegateRequest object with all the data - * @return DelegateResponse object with the response - * @throws RestDelegationException if there is an error during the request + * @param delegateRequest DelegateRequest con i dati della delega + * @param tokenExchange token per l'exchange JWT + * @return DelegateResponse con la risposta + * @throws RestDelegationException in caso di errore nella richiesta */ public DelegateResponsePG addDelegationPG(DelegateRequestPG delegateRequest, String tokenExchange) throws RestDelegationException { try { String jwtToken = httpClientPG.getJwtToken(tokenExchange); - this.headers.put("Authorization", "Bearer " + jwtToken); - DelegateResponsePG response = httpClientPG.sendHttpPostRequest("/mandate/api/v1/mandate", this.headers, delegateRequest, DelegateResponsePG.class); + headers.put("Authorization", "Bearer " + jwtToken); + DelegateResponsePG response = httpClientPG.sendHttpPostRequest("/mandate/api/v1/mandate", headers, delegateRequest, DelegateResponsePG.class); if (response != null) { - logger.info(String.valueOf(response)); + logger.info("Response: {}", response); return response; } } catch (IOException e) { - logger.error("Error during addDelegationPG", e); + logger.error("Errore durante addDelegationPG", e); + throw new RestDelegationException("Errore durante la richiesta di delega PG", e); } return null; } /** - * Revoke a PF delegation - *
- * Keep in mind this method works only for the annotation @After into Hooks.java, because there isn't a jwt token set - * if you don't invoke an "addDelegation" + * Revoca una delega. * - * @param mandateId String with the mandateId - * @throws RestDelegationException if there is an error during the request + * @param mandateId ID della delega da revocare + * @throws RestDelegationException in caso di errore nella richiesta */ public void revokeDelegation(String mandateId) throws RestDelegationException { try { - httpClientPF.sendHttpPatchRequest("/mandate/api/v1/mandate/" + mandateId + "/revoke", this.headers); + httpClientPF.sendHttpPatchRequest("/mandate/api/v1/mandate/" + mandateId + "/revoke", headers); + logger.info("Delega {} revocata con successo", mandateId); } catch (IOException e) { - logger.error("Error during revokeDelegation", e); + logger.error("Errore durante revokeDelegation", e); + throw new RestDelegationException("Errore durante la revoca della delega", e); } } /** - * Reject a delegation - *
- * Keep in mind this method works only for the annotation @After into Hooks.java, because there isn't a jwt token set - * if you don't invoke an "addDelegation" + * Rifiuta una delega. * - * @param mandateId String with the mandateId - * @throws RestDelegationException if there is an error during the request + * @param mandateId ID della delega da rifiutare + * @throws RestDelegationException in caso di errore nella richiesta */ public void rejectDelegation(String mandateId) throws RestDelegationException { try { - httpClientPG.sendHttpPatchRequest("/mandate/api/v1/mandate/" + mandateId + "/reject", this.headers); + httpClientPG.sendHttpPatchRequest("/mandate/api/v1/mandate/" + mandateId + "/reject", headers); + logger.info("Delega {} rifiutata con successo", mandateId); } catch (IOException e) { - logger.error("Error during rejectDelegation", e); + logger.error("Errore durante rejectDelegation", e); + throw new RestDelegationException("Errore durante il rifiuto della delega", e); } } + /** + * Ottiene le deleghe per il delegante corrente. + * + * @return lista di `DelegateResponsePF` con le deleghe + */ public List getDelegator() { try { - List response = httpClientPF.sendHttpGetRequestListDelegate("/mandate/api/v1/mandates-by-delegator", this.headers, DelegateResponsePF.class); + List response = httpClientPF.sendHttpGetRequestListDelegate("/mandate/api/v1/mandates-by-delegator", headers, DelegateResponsePF.class); if (response != null) { - logger.info(String.valueOf(response)); + logger.info("Response: {}", response); return response; } } catch (IOException e) { - logger.error("Error during getDelegator", e); + logger.error("Errore durante getDelegator", e); } return null; } diff --git a/src/main/java/it/pn/frontend/e2e/rest/RestIncident.java b/src/main/java/it/pn/frontend/e2e/rest/RestIncident.java index 215d27c3d..9e9adad8f 100644 --- a/src/main/java/it/pn/frontend/e2e/rest/RestIncident.java +++ b/src/main/java/it/pn/frontend/e2e/rest/RestIncident.java @@ -7,24 +7,31 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; - +import org.springframework.stereotype.Component; +/*Modifiche principali +Iniezione delle dipendenze: @Autowired viene utilizzato per iniettare CustomHttpClient e WebDriverConfig. +Rimozione del Singleton: RestIncident è ora un @Component gestito da Spring, quindi non è necessario il metodo getInstance() o una gestione manuale dell'istanza. +Configurazione URL base: La configurazione dell'URL base è ora gestita nel costruttore per inizializzare httpClientIncident.*/ +@Component public class RestIncident { - private static final Logger logger = LoggerFactory.getLogger("RestIncident"); - final CustomHttpClient httpClientIncident = CustomHttpClient.getInstance(); - //final private String env = System.getProperty("environment"); + + private static final Logger logger = LoggerFactory.getLogger(RestIncident.class); + @Autowired - private WebDriverConfig webDriverConfig; + private CustomHttpClient httpClientIncident; - private static RestIncident instance; + @Autowired + private WebDriverConfig webDriverConfig; - public static synchronized RestIncident getInstance() { - if (instance == null) { - instance = new RestIncident(); - } - return instance; + @Autowired + public RestIncident(WebDriverConfig webDriverConfig) { + this.webDriverConfig = webDriverConfig; + setupHttpClient(); } - public RestIncident() { - this.httpClientIncident.setBaseUrlApi("https://api.bo." + webDriverConfig.getEnvironment() + ".notifichedigitali.it/"); + private void setupHttpClient() { + String baseUrl = "https://api.bo." + webDriverConfig.getEnvironment() + ".notifichedigitali.it/"; + httpClientIncident.setBaseUrlApi(baseUrl); + logger.info("Configured HTTP client for Incidents with base URL: {}", baseUrl); } } From 96192d93cade99e342aa5b723cfe1f5d1b5230a7 Mon Sep 17 00:00:00 2001 From: andreadefranco Date: Mon, 4 Nov 2024 16:31:54 +0100 Subject: [PATCH 186/212] upadate class Autowired --- .../DettaglioNotificaMittenteSection.java | 3 ++- .../section/mittente/GeneraApiKeySection.java | 4 ++++ .../personaFisica/RecuperoOTPRecapiti.java | 7 ++++++ .../CucumberSpringIntegration.java | 7 +++++- .../LoginPersonaFisicaPagoPA.java | 2 -- .../NotifichePersonaFisicaPagoPATest.java | 2 -- .../RecapitiPersonaFisicaTest.java | 15 ++++-------- .../RicercaNotifichePersonaFisicaPATest.java | 7 +++--- .../stepDefinitions/mittente/ApiKeysTest.java | 23 +++++++++++++------ .../DownloadFileMittentePagoPATest.java | 10 ++++---- .../mittente/NotificaMittentePagoPATest.java | 3 --- .../RicercaNotificheMittentePagoPATest.java | 3 ++- 12 files changed, 49 insertions(+), 37 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/section/mittente/DettaglioNotificaMittenteSection.java b/src/main/java/it/pn/frontend/e2e/section/mittente/DettaglioNotificaMittenteSection.java index 6994062c0..46669f6e8 100644 --- a/src/main/java/it/pn/frontend/e2e/section/mittente/DettaglioNotificaMittenteSection.java +++ b/src/main/java/it/pn/frontend/e2e/section/mittente/DettaglioNotificaMittenteSection.java @@ -68,6 +68,8 @@ public class DettaglioNotificaMittenteSection extends BasePage { WebElement apiKeyField; private int numeriStatiNotifica; + @Autowired + PiattaformaNotifichePage piattaformaNotifichePage; @Autowired public DettaglioNotificaMittenteSection(WebDriver driver) { @@ -592,7 +594,6 @@ public void sceglieEnte(String nomeEnte){ } public void ricercaNotificaConIunSalvato(String iun){ - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(this.driver); piattaformaNotifichePage.inserimentoCodiceIUN(iun); piattaformaNotifichePage.selectFiltraNotificaButtonMittente(); } diff --git a/src/main/java/it/pn/frontend/e2e/section/mittente/GeneraApiKeySection.java b/src/main/java/it/pn/frontend/e2e/section/mittente/GeneraApiKeySection.java index c92bc52a3..599967173 100644 --- a/src/main/java/it/pn/frontend/e2e/section/mittente/GeneraApiKeySection.java +++ b/src/main/java/it/pn/frontend/e2e/section/mittente/GeneraApiKeySection.java @@ -8,11 +8,15 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +@Component public class GeneraApiKeySection extends BasePage { private static final Logger logger = LoggerFactory.getLogger("GeneraApiKeySection"); + @Autowired public GeneraApiKeySection(WebDriver driver) { super(driver); } diff --git a/src/test/java/it/pn/frontend/e2e/api/personaFisica/RecuperoOTPRecapiti.java b/src/test/java/it/pn/frontend/e2e/api/personaFisica/RecuperoOTPRecapiti.java index 561682292..1de86ed55 100644 --- a/src/test/java/it/pn/frontend/e2e/api/personaFisica/RecuperoOTPRecapiti.java +++ b/src/test/java/it/pn/frontend/e2e/api/personaFisica/RecuperoOTPRecapiti.java @@ -10,10 +10,13 @@ import org.apache.hc.core5.http.io.support.ClassicRequestBuilder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; import java.io.IOException; @Data +@Component public class RecuperoOTPRecapiti { private static final Logger logger = LoggerFactory.getLogger("RecuperoOTPRecapiti"); @@ -23,6 +26,10 @@ public class RecuperoOTPRecapiti { private String responseBody; private int responseCode; + @Autowired + public RecuperoOTPRecapiti() { + } + public boolean runRecuperoOTPRecapiti(String url) { try { CloseableHttpClient httpClient = HttpClients.createDefault(); diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java index 84e220f46..2079776fe 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java @@ -2,6 +2,7 @@ import io.cucumber.spring.CucumberContextConfiguration; import it.pn.frontend.e2e.api.mittente.AccettazioneRichiestaNotifica; +import it.pn.frontend.e2e.api.personaFisica.RecuperoOTPRecapiti; import it.pn.frontend.e2e.common.DettaglioNotificaSection; import it.pn.frontend.e2e.common.HelpdeskPage; import it.pn.frontend.e2e.common.NotificheDestinatarioPage; @@ -31,6 +32,7 @@ import it.pn.frontend.e2e.section.destinatario.personaGiuridica.DelegatiImpresaSection; import it.pn.frontend.e2e.section.destinatario.personaGiuridica.HeaderPGSection; import it.pn.frontend.e2e.section.mittente.*; +import it.pn.frontend.e2e.stepDefinitions.common.BackgroundTest; import it.pn.frontend.e2e.stepDefinitions.destinatario.personaFisica.LoginPersonaFisicaPagoPA; import it.pn.frontend.e2e.stepDefinitions.destinatario.personaGiuridica.LoginPGPagoPATest; import it.pn.frontend.e2e.stepDefinitions.mittente.NotificaMittentePagoPATest; @@ -112,7 +114,10 @@ CustomHttpClient.class, InvioNotifichePAPage.class, BasicCookieStore.class, - AccettazioneRichiestaNotifica.class + AccettazioneRichiestaNotifica.class, + RecuperoOTPRecapiti.class, + BackgroundTest.class, + GeneraApiKeySection.class }) @EnableScheduling diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java index 7be313ec4..0ae547265 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/LoginPersonaFisicaPagoPA.java @@ -576,7 +576,6 @@ private void readUrlLoginPersonaFisicaWithToken(String user, String pwd) { public void loginPortaleDelegatoTramiteRequestMethod(String dpFile) { boolean urlWithTokenFound = false; int numProvaLogin = 0; - // DataPopulation dataPopulation = new DataPopulation(); //this.datiDelegato = dataPopulation.readDataPopulation(dpFile + ".yaml"); String userDelegato = webDriverConfig.getUserCesare(); @@ -609,7 +608,6 @@ public void loginPortaleDelegatoTramiteRequestMethod(String dpFile) { @When("Login portale persona fisica tramite token exchange {string}") public void loginPortalePersonaFisicaTramiteTokenExchange(String dpFile) { String variabileAmbiente = webDriverConfig.getEnvironment(); - //DataPopulation dataPopulation = new DataPopulation(); String urlIniziale = "https://cittadini." + variabileAmbiente + ".notifichedigitali.it/#token="; //TODO.... //String user = dataPopulation.readDataPopulation(dpFile + ".yaml").get("user").toString(); diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/NotifichePersonaFisicaPagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/NotifichePersonaFisicaPagoPATest.java index c59c2134b..d087c055c 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/NotifichePersonaFisicaPagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/NotifichePersonaFisicaPagoPATest.java @@ -180,7 +180,6 @@ public void siVisualizzaCorrettamenteLaSecondaPagina() { @And("Ci si posiziona su una pagina differente attraverso i numeri e si applica filtro {string}") public void ciSiPosizionaSuUnaPaginaDifferenteAttraversoINumeriESiApplicaFiltro(String dpFile) { - DataPopulation dataPopulation = new DataPopulation(); Map datiPg = dataPopulation.readDataPopulation(dpFile + ".yaml"); notifichePFPage.siSceglieUnaPaginaDiversaConNumeroESiFiltra(datiPg.get("codiceIUN").toString()); @@ -318,7 +317,6 @@ public void siCliccaSulOpzioneVediDettaglio() { @And("Si visualizza correttamente la Pagina Notifiche persona fisica delegante {string}") public void siVisualizzaCorrettamenteLaPaginaNotifichePersonaFisicaDelegante(String dpFile) { - DataPopulation dataPopulation = new DataPopulation(); Map personaFisicaDelgante = dataPopulation.readDataPopulation(dpFile + ".yaml"); String nome = personaFisicaDelgante.get("name").toString(); String cognome = personaFisicaDelgante.get("familyName").toString(); diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java index abd7bdb62..e66bd91c1 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java @@ -40,6 +40,8 @@ public class RecapitiPersonaFisicaTest { private DataPopulation dataPopulation; @Autowired private ITuoiRecapitiPage iTuoiRecapitiPage; + @Autowired + private RecuperoOTPRecapiti recuperoOTPRecapiti; public static String OTP; @@ -183,7 +185,7 @@ public void nellaPaginaITuoiRecapitiSiControllaCheIlTastoAvvisamiViaEmailSiaBloc public void nellaPaginaITuoiRecapitiSiInserisceLEmailDelPFECliccaSulBottoneAvvisamiViaEmail(String dpFile) { logger.info("Si inserisce la email"); - DataPopulation dataPopulation = new DataPopulation(); +// DataPopulation dataPopulation = new DataPopulation(); Map personaFisica = dataPopulation.readDataPopulation(dpFile + ".yaml"); String email = personaFisica.get("mail").toString(); @@ -211,7 +213,7 @@ public void nellaPaginaITuoiRecapitiSiInserisceIlNumeroDiTelefonoDelPF(String dp logger.info("Si inserisce il numero di telefono PF"); - DataPopulation dataPopulation = new DataPopulation(); +// DataPopulation dataPopulation = new DataPopulation(); Map personaFisica = dataPopulation.readDataPopulation(dpFile + ".yaml"); String phoneNumber = personaFisica.get("telefono").toString(); @@ -248,7 +250,6 @@ public void nellaPaginaITuoiRecapitiSiControllaCheIlTastoAvvisamiViaSmsSiaBlocca public void nellaPaginaITuoiRecapitiSiRecuperaIlCodiceOTPTramiteChiamataRequest(String dpFile) { Map personaFisica = dataPopulation.readDataPopulation(dpFile + ".yaml"); - RecuperoOTPRecapiti recuperoOTPRecapiti = new RecuperoOTPRecapiti(); String startUrl = "http://localhost:8887/"; String url = startUrl + recuperoOTPRecapiti.getUrlEndPoint() + personaFisica.get("emailPec"); @@ -281,8 +282,6 @@ public void nellaPaginaITuoiRecapitiSiRecuperaIlCodiceOTPTramiteChiamataRequest( @And("Nella pagina I Tuoi Recapiti si recupera il codice OTP tramite chiamata request dell'email {string} e viene inserito") public void nellaPaginaITuoiRecapitiSiRecuperaIlCodiceOTPTramiteChiamataRequestDellEmailEVieneInserito(String email) { - RecuperoOTPRecapiti recuperoOTPRecapiti = new RecuperoOTPRecapiti(); - String startUrl = "http://localhost:8887/"; String url = startUrl + recuperoOTPRecapiti.getUrlEndPoint() + email; boolean results = recuperoOTPRecapiti.runRecuperoOTPRecapiti(url); @@ -375,7 +374,6 @@ public void nellaPaginaITuoiRecapitiSiControllaCheLaPecSiaStataInseritaCorrettam @And("Nella pagina I Tuoi Recapiti si recupera l'OTP della Email tramite request method {string}") public void nellaPaginaITuoiRecapitiSiRecuperaLOTPDellaEmailTramiteRequestMethod(String dpFile) { Map personaFisica = dataPopulation.readDataPopulation(dpFile + ".yaml"); - RecuperoOTPRecapiti recuperoOTPRecapiti = new RecuperoOTPRecapiti(); try { TimeUnit.SECONDS.sleep(3); } catch (InterruptedException e) { @@ -412,7 +410,6 @@ public void nellaPaginaITuoiRecapitiSiRecuperaLOTPDellaEmailTramiteRequestMethod @And("Nella pagina I Tuoi Recapiti si recupera l'OTP della Email 'altri recapiti' tramite request method {string}") public void nellaPaginaITuoiRecapitiSiRecuperaLOTPDellaEmailAltriRecapitiTramiteRequestMethod(String dpFile) { Map personaFisica = dataPopulation.readDataPopulation(dpFile + ".yaml"); - RecuperoOTPRecapiti recuperoOTPRecapiti = new RecuperoOTPRecapiti(); try { TimeUnit.SECONDS.sleep(3); } catch (InterruptedException e) { @@ -525,7 +522,6 @@ public void nellaPaginaITuoiRecapitiSiControllaCheLaEmailSiaStataModificata() { @And("Nella pagina I Tuoi Recapiti si recupera l'OTP della nuova Email tramite request method {string}") public void nellaPaginaITuoiRecapitiSiRecuperaLOTPDellaNuovaEmailTramiteRequestMethod(String dpFile) { Map personaFisica = dataPopulation.readDataPopulation(dpFile + ".yaml"); - RecuperoOTPRecapiti recuperoOTPRecapiti = new RecuperoOTPRecapiti(); try { TimeUnit.SECONDS.sleep(3); @@ -677,7 +673,6 @@ public void nellaPaginaITuoiRecapitiSiRecuperaIlCodiceOTPDellaNuovaPECTramiteChi Map personaFisica = dataPopulation.readDataPopulation(dpFile + ".yaml"); String pec = personaFisica.get("pec").toString(); - RecuperoOTPRecapiti recuperoOTPRecapiti = new RecuperoOTPRecapiti(); String startUrl = "http://localhost:8887/"; String url = startUrl + recuperoOTPRecapiti.getUrlEndPoint() + pec; @@ -713,7 +708,6 @@ public void nellaPaginaITuoiRecapitiSiRecuperaIlCodiceOTPDellaNuovaEmailPECTrami logger.info("Si recupera il codice OTP della nuova pec"); String pec = emailPec; - RecuperoOTPRecapiti recuperoOTPRecapiti = new RecuperoOTPRecapiti(); String startUrl = "http://localhost:8887/"; String url = startUrl + recuperoOTPRecapiti.getUrlEndPoint() + pec; @@ -742,7 +736,6 @@ public void nellaPaginaITuoiRecapitiSiRecuperaIlCodiceOTPDellaNuovaEmailPECTrami @And("Nella pagina I Tuoi Recapiti si recupera il codice OTP della nuova Email {string} tramite chiamata request") public void nellaPaginaITuoiRecapitiSiRecuperaIlCodiceOTPDellaNuovaEmailTramiteChiamataRequest(String mail) { logger.info("Si recupera il codice OTP della nuova email"); - RecuperoOTPRecapiti recuperoOTPRecapiti = new RecuperoOTPRecapiti(); String startUrl = "http://localhost:8887/"; String url = startUrl + recuperoOTPRecapiti.getUrlEndPoint() + mail; diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RicercaNotifichePersonaFisicaPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RicercaNotifichePersonaFisicaPATest.java index 1d64b0721..bd50ee2a4 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RicercaNotifichePersonaFisicaPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RicercaNotifichePersonaFisicaPATest.java @@ -58,6 +58,7 @@ public class RicercaNotifichePersonaFisicaPATest { @Autowired private BackgroundTest backgroundTest; + @When("Si visualizza correttamente la pagina Piattaforma Notifiche persona fisica") public void siVisualizzaCorrettamenteLaPaginaPiattaformaNotificheDestinatario() { logger.info("Verifica visualizzazione piattaforma notifiche persona fisica"); @@ -120,7 +121,7 @@ public void nellaPaginaPiattaformaNotificheDestinatarioVengoRestituiteTutteLeNot notifichePFPage.waitLoadNotificheDEPage(); this.datiNotifica = dataPopulation.readDataPopulation(dpDatiNotifica + ".yaml"); String codiceIUNInserito = datiNotifica.get("codiceIUN").toString(); - boolean result = new NotificheDestinatarioPage(hooks.getDriver()).verificaCodiceIUN(codiceIUNInserito); + boolean result = notificheDestinatarioPage.verificaCodiceIUN(codiceIUNInserito); if (result) { logger.info("Il risultato é coerente con il codice IUN inserito"); @@ -136,7 +137,7 @@ public void nellaPaginaPiattaformaNotificheDestinatarioVengoRestituiteTutteLeNot headerPFSection.waitLoadHeaderDESection(); notifichePFPage.waitLoadNotificheDEPage(); - boolean result = new NotificheDestinatarioPage(hooks.getDriver()).verificaCodiceIUN(IUN); + boolean result = notificheDestinatarioPage.verificaCodiceIUN(IUN); if (result) { logger.info("Il risultato é coerente con il codice IUN inserito"); } else { @@ -191,7 +192,7 @@ public void nellaPaginaPiattaformaNotifichePersonaGiuridicaInserireIlCodiceIunNo logger.info("Si inserisce il codice IUN non valido"); this.datiNotificaNonValidoPF = dataPopulation.readDataPopulation(datiNotificaNonValidoPF + ".yaml"); notificheDestinatarioPage.inserisciCodiceIUN(this.datiNotificaNonValidoPF.get("codiceIUN").toString()); - new NotificheDestinatarioPage(hooks.getDriver()).inserisciCodiceIUN(this.datiNotificaNonValidoPF.get("codiceIUN").toString()); + notificheDestinatarioPage.inserisciCodiceIUN(this.datiNotificaNonValidoPF.get("codiceIUN").toString()); } @Then("Nella pagina Piattaforma Notifiche persona fisica viene visualizzato un messaggio in rosso di errore sotto il campo errato e il rettangolo diventa rosso e il tasto Filtra è disattivo") diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/ApiKeysTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/ApiKeysTest.java index d33688206..5e1e491fe 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/ApiKeysTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/ApiKeysTest.java @@ -5,6 +5,7 @@ import io.cucumber.java.en.When; import it.pn.frontend.e2e.config.WebDriverConfig; import it.pn.frontend.e2e.listeners.Hooks; +import it.pn.frontend.e2e.listeners.HooksNew; import it.pn.frontend.e2e.pages.mittente.ApiKeyPAPage; import it.pn.frontend.e2e.pages.mittente.PiattaformaNotifichePage; import it.pn.frontend.e2e.section.mittente.GeneraApiKeySection; @@ -17,27 +18,36 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import java.util.concurrent.TimeUnit; public class ApiKeysTest { private static final Logger logger = LoggerFactory.getLogger("ApiKeysTest"); - private final WebDriver driver = Hooks.driver; - private final ApiKeyPAPage apiKeyPAPage = new ApiKeyPAPage(this.driver); +// private final WebDriver driver = Hooks.driver; @Getter @Setter public static String ApiKey; + @Autowired + @Lazy + HooksNew hooks; + @Autowired private WebDriverConfig webDriverConfig; + @Autowired + private PiattaformaNotifichePage piattaformaNotifichePage; + @Autowired + private ApiKeyPAPage apiKeyPAPage; + @Autowired + private GeneraApiKeySection generaApiKeySection; @And("Nella pagina Piattaforma Notifiche selezionare la voce Api Key nel menu") public void nellaPaginaPiattaformaNotificheSelezionareLaVoceApiKeyNelMenu() { logger.info("Si cerca di cliccare sulla voce ApiKeys"); - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(this.driver); try { TimeUnit.SECONDS.sleep(2); } catch (InterruptedException e) { @@ -51,7 +61,6 @@ public void nellaPaginaPiattaformaNotificheSelezionareLaVoceApiKeyNelMenu() { public void siVisualizzaCorrettamenteLaPaginaApiKey() { logger.info("Si visualizza correttamente la pagina Api Key"); - ApiKeyPAPage apiKeyPAPage = new ApiKeyPAPage(this.driver); apiKeyPAPage.waitLoadApikeyPage(); } @@ -59,7 +68,7 @@ public void siVisualizzaCorrettamenteLaPaginaApiKey() { public void nellaPaginaApiKeySiCliccaSulBottoneGeneraApiKey() { logger.info("Si clicca sul bottone genera ApiKey"); - ApiKeyPAPage apiKeyPAPage = new ApiKeyPAPage(this.driver); +// ApiKeyPAPage apiKeyPAPage = new ApiKeyPAPage(this.driver); apiKeyPAPage.waitLoadPage(); apiKeyPAPage.clickSulBottoneGeneraApiKey(); } @@ -68,7 +77,7 @@ public void nellaPaginaApiKeySiCliccaSulBottoneGeneraApiKey() { public void siVisualizzaCorrettamenteLaSezioneGeneraApiKey() { logger.info("Si visualizza correttamente la sezione genera Api Key"); - GeneraApiKeySection generaApiKeySection = new GeneraApiKeySection(this.driver); +// GeneraApiKeySection generaApiKeySection = new GeneraApiKeySection(this.driver); generaApiKeySection.waitLoadGeneraApiKey(); } @@ -105,7 +114,7 @@ public void nellaPaginaDiConfermaCliccareSulBottoneTornaAAPIKey() { public void siVisualizzaCorrettamenteLApiKeyNellElencoInStatoAttivo(String nomeApiKey) { logger.info("Si controlla che sia stato creata l'api key"); - ApiKeyPAPage apiKeyPAPage = new ApiKeyPAPage(this.driver); +// ApiKeyPAPage apiKeyPAPage = new ApiKeyPAPage(this.driver); apiKeyPAPage.waitLoadApikeyPage(); apiKeyPAPage.siVisualizzaNuovaApiAttiva(nomeApiKey); } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java index c835ddc29..78982b778 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java @@ -22,6 +22,7 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Primary; import org.springframework.stereotype.Component; @@ -70,6 +71,9 @@ public class DownloadFileMittentePagoPATest { private DettaglioNotificaMittenteSection dettaglioNotificaMittenteSection; @Autowired private DettaglioNotificaSection dettaglioNotificaSection; + @Autowired + @Lazy + BackgroundTest backgroundTest; @When("Nella pagina Piattaforma Notifiche si clicca sulla notifica restituita") @@ -180,9 +184,6 @@ public void downloadECheckFile() { public void downloadDocumentiAllegati() { logger.info("Si scaricano solo i documenti Allegati all'interno della notifica"); - DettaglioNotificaMittenteSection dettaglioNotificaMittenteSection = new DettaglioNotificaMittenteSection(hooks.getDriver()); - DettaglioNotificaSection dettaglioNotificaSection = new DettaglioNotificaSection(hooks.getDriver()); - String workingDirectory = System.getProperty("user.dir"); File pathCartella = new File(workingDirectory + "/src/test/resources/dataPopulation/downloadFileNotifica/mittente"); boolean headless = headlessParam.equalsIgnoreCase("true"); @@ -429,7 +430,6 @@ public void nellaPaginaPiattaformaNotificheSiRecuperaUnCodiceIUN() { piattaformaNotifichePage.waitLoadPiattaformaNotifichePAPage(); piattaformaNotifichePage.waitLoadingSpinner(); List codiciIun = piattaformaNotifichePage.getCodiceIunPersonaGiuridica(); - DataPopulation dataPopulation = new DataPopulation(); this.datiNotifica = dataPopulation.readDataPopulation("datiNotificaPG.yaml"); String codiceIun = this.datiNotifica.get("codiceIUN").toString(); @@ -444,8 +444,6 @@ public void nellaPaginaPiattaformaNotificheSiRecuperaUnCodiceIUN() { @And("Nella pagina Piattaforma Notifiche si verifica l'esistenza della notifica con il codice IUN") public void nellaPaginaPiattaformaNotificheSiVerificaLEsistenzaDellaNotificaConIlCodiceIUN() { logger.info("Si verifica l'esistenza della notifica con il codice IUN"); - BackgroundTest backgroundTest = new BackgroundTest(); - DataPopulation dataPopulation = new DataPopulation(); List codiciIun = piattaformaNotifichePage.getCodiceIunPresenti(); Map personaFisica = dataPopulation.readDataPopulation("datiNotifica.yaml"); diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java index 9ca240e1e..0aa0bd5ea 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java @@ -352,7 +352,6 @@ private void aggiornamentoNumeroProtocolloAllegati() { String nomeFile = "datiNotifica.yaml"; String numeroProtocolloKey = "numeroProtocollo"; -// DataPopulation dataPopulation = new DataPopulation(); String numeroProtocolOld = dataPopulation.readDataPopulation(nomeFile).get(numeroProtocolloKey).toString(); String dataProtocolOld = substring(numeroProtocolOld, 10, 18); String counter = substring(numeroProtocolOld, 19); @@ -510,7 +509,6 @@ public void ricercaNotificaConIunMittente(String iun){ @And("Si visualizza correttamente la section Dettaglio Notifica") public void siVisualizzaCorrettamenteLaSectionDettaglioNotifica() { -// DettaglioNotificaMittenteSection dettaglioNotificaMittenteSection = new DettaglioNotificaMittenteSection(hooks.getDriver()); dettaglioNotificaMittenteSection.waitLoadDettaglioNotificaSection(); } @@ -1501,7 +1499,6 @@ protected EsitoNotifica siVerificaEsitoNotifica(String dpFile) { logger.info("si verifica se la notifica è stata accettata o rifiutata"); final String urlNotificationRequest = webDriverConfig.getBaseUrl() + "notifications/sent"; final String urlRichiestaNotifica = "https://api." + webDriverConfig.getEnvironment() + ".notifichedigitali.it/delivery/v2.3/requests/"; -// AccettazioneRichiestaNotifica accettazioneRichiestaNotifica = new AccettazioneRichiestaNotifica(); String codiceApi; if (webDriverConfig.getEnvironment().equals("test")) { codiceApi = "2b3d47f4-44c1-4b49-b6ef-54dc1c531311"; diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/RicercaNotificheMittentePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/RicercaNotificheMittentePagoPATest.java index cf2edc91f..3340db198 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/RicercaNotificheMittentePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/RicercaNotificheMittentePagoPATest.java @@ -48,12 +48,13 @@ public class RicercaNotificheMittentePagoPATest { @Autowired private HeaderPASection headerPASection; + @Autowired + DataPopulation dataPopulation; @And("Nella pagina Piattaforma Notifiche inserire il codice fiscale della persona fisica {string}") public void inserireCodiceFiscale(String dpFile) { logger.info("Avvio ricerca tramite codice fiscale"); - DataPopulation dataPopulation = new DataPopulation(); this.personaFisica = dataPopulation.readDataPopulation(dpFile + ".yaml"); String cf = destinatarioPASection.ricercaInformazione(personaFisica.get("codiceFiscale").toString().split(","), 0); From 469a592e3e66d4f0cdf8da7a484d31d434ce700d Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Mon, 4 Nov 2024 17:04:22 +0100 Subject: [PATCH 187/212] refactor --- .../java/it/pn/frontend/e2e/config/CustomHttpClient.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/config/CustomHttpClient.java b/src/main/java/it/pn/frontend/e2e/config/CustomHttpClient.java index aa2b9d0fb..9fed61b64 100644 --- a/src/main/java/it/pn/frontend/e2e/config/CustomHttpClient.java +++ b/src/main/java/it/pn/frontend/e2e/config/CustomHttpClient.java @@ -57,14 +57,14 @@ public class CustomHttpClient { public CustomHttpClient() { - System.out.println("CIAO......."); + System.out.println("CustomHttpClient......."); this.baseUrlApi = "https://api.test.notifichedigitali.it"; this.httpClient = HttpClients.createDefault(); this.apiKey = "2b3d47f4-44c1-4b49-b6ef-54dc1c531311"; } public CustomHttpClient(String baseUrlApi, String apiKeyTest) { - System.out.println("CIAO1......."); + System.out.println("CustomHttpClient1......."); this.baseUrlApi = baseUrlApi; this.httpClient = HttpClients.createDefault(); @@ -72,7 +72,7 @@ public CustomHttpClient(String baseUrlApi, String apiKeyTest) { } public CustomHttpClient(String apiKeyTest) { - System.out.println("CIAO2......."); + System.out.println("CustomHttpClient2......."); this.baseUrlApi = "https://api.test.notifichedigitali.it"; this.httpClient = HttpClients.createDefault(); this.apiKey = apiKeyTest; From 6bfd09c83d9d3f9824137e1f208972348420e3d3 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Mon, 4 Nov 2024 18:20:39 +0100 Subject: [PATCH 188/212] update gestione spring --- .../it/pn/frontend/e2e/listeners/Hooks.java | 2 +- .../pn/frontend/e2e/listeners/HooksNew.java | 2 +- .../pages/destinatario/DestinatarioPage.java | 4 +- .../mittente/PiattaformaNotifichePage.java | 6 +-- .../e2e/rest/RestRaddAlternative.java | 3 +- .../pn/frontend/e2e/utility/DownloadFile.java | 7 ++- .../personaFisica/DeleghePagoPATest.java | 7 ++- .../NotifichePersonaFisicaPagoPATest.java | 2 - .../RicercaNotifichePersonaFisicaPATest.java | 3 +- .../personaGiuridica/DeleghePGPagoPATest.java | 8 ++-- .../RecapitiPGPagoPaTest.java | 23 ++++++--- ...icercaNotifichePersonaGiuridicaPATest.java | 47 +++++++++---------- .../stepDefinitions/mittente/ApiKeysTest.java | 1 - .../DownloadFileMittentePagoPATest.java | 8 ---- .../mittente/NewNotifichePagoPATest.java | 8 ---- .../mittente/NotificaMittentePagoPATest.java | 3 ++ 16 files changed, 62 insertions(+), 72 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java b/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java index 24f75b4c7..be87fb059 100644 --- a/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java +++ b/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java @@ -208,7 +208,7 @@ public void endScenario(Scenario scenario) throws IOException { // @And("Revoca deleghe se esistono") public void clearDelegate() { logger.info("REVOCA TUTTE LE DELEGHE...."); - String mandateId = mandateSingleton.getMandateId(Hooks.getScenario()); + String mandateId = mandateSingleton.getMandateId(HooksNew.getScenario()); if (mandateId != null) { logger.info("REVOCA DELEGA: " + mandateId); restDelegation.revokeDelegation(mandateId); diff --git a/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java b/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java index 16e2b6903..77f67fa60 100644 --- a/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java +++ b/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java @@ -131,7 +131,7 @@ public void endScenario(Scenario scenario) throws IOException { @And("Revoca deleghe se esistono") public void clearDelegate() { logger.info("Revoking all delegations..."); - var mandateId = mandateSingleton.getMandateId(Hooks.getScenario()); + var mandateId = mandateSingleton.getMandateId(HooksNew.getScenario()); if (mandateId != null) { RestDelegation.getInstance().revokeDelegation(mandateId); logger.info("Delegation revoked: {}", mandateId); diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/DestinatarioPage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/DestinatarioPage.java index 83a91040b..a847fa3a8 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/DestinatarioPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/DestinatarioPage.java @@ -150,8 +150,8 @@ public void checkCreateNewNotification() throws RestNotificationException { maxAttemptsPolling++; } else { log.info("Notifica per destinatario creata con successo"); - notificationSingleton.setScenarioIun(Hooks.getScenario(), WebTool.decodeNotificationRequestId(responseOfCreateNotification.getNotificationRequestId())); - log.info("Il codice IUN della notifica creata è il seguente: {}", notificationSingleton.getIun(Hooks.getScenario())); + notificationSingleton.setScenarioIun(HooksNew.getScenario(), WebTool.decodeNotificationRequestId(responseOfCreateNotification.getNotificationRequestId())); + log.info("Il codice IUN della notifica creata è il seguente: {}", notificationSingleton.getIun(HooksNew.getScenario())); driver.navigate().refresh(); return; } diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java index 99ed92d8f..400eab2eb 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java @@ -513,7 +513,7 @@ public void selezionaNotifica120Giorni() { int index = calendar.get(Calendar.HOUR_OF_DAY); logger.info("index NOTIFICHE : " + index); - logger.info("Scenario " + Hooks.getScenario()); + logger.info("Scenario " + HooksNew.getScenario()); if (notifiche != null) { logger.info("ELENCO NOTIFICHE : " + notifiche.size()); @@ -554,7 +554,7 @@ public void selezionaNotifica120Giorni(int rows) { notificaBy = By.id("notificationsTable.body.row"); List notifiche = this.elements(notificaBy); - logger.info("Scenario " + Hooks.getScenario()); + logger.info("Scenario " + HooksNew.getScenario()); Calendar calendar = GregorianCalendar.getInstance(); int index = calendar.get(Calendar.HOUR_OF_DAY) + rows; @@ -1162,7 +1162,7 @@ public void verificaNotificaCreata() { notificationStatus = notificationData.get("notificationRequestStatus").toString(); if (notificationStatus.equals("ACCEPTED")) { notificationIUN = notificationData.get("iun").toString(); - notificationSingleton.setScenarioIun(Hooks.getScenario(), notificationIUN); + notificationSingleton.setScenarioIun(HooksNew.getScenario(), notificationIUN); return; } else { WebTool.waitTime(90); diff --git a/src/main/java/it/pn/frontend/e2e/rest/RestRaddAlternative.java b/src/main/java/it/pn/frontend/e2e/rest/RestRaddAlternative.java index 23c0884b8..bcef2ba0c 100644 --- a/src/main/java/it/pn/frontend/e2e/rest/RestRaddAlternative.java +++ b/src/main/java/it/pn/frontend/e2e/rest/RestRaddAlternative.java @@ -3,6 +3,7 @@ import it.pn.frontend.e2e.config.CustomHttpClient; import it.pn.frontend.e2e.config.WebDriverConfig; import it.pn.frontend.e2e.listeners.Hooks; +import it.pn.frontend.e2e.listeners.HooksNew; import it.pn.frontend.e2e.model.radd.CompleteTransaction.CompleteTransactionRequest; import it.pn.frontend.e2e.model.radd.CompleteTransaction.CompleteTransactionResponse; import it.pn.frontend.e2e.model.radd.StartTransaction.StartTransactionRequest; @@ -48,7 +49,7 @@ public RestRaddAlternative(String token) { public StartTransactionResponse startTransactionRaddAlternative(String tipoDestinatario, String codiceFiscale, String operationId) { CustomHttpClient httpClientStart = new CustomHttpClient<>(); httpClientStart.setBaseUrlApi("https://api.radd." + webDriverConfig.getEnvironment() + ".notifichedigitali.it"); - StartTransactionRequest startTransactionRequest = new StartTransactionRequest(codiceFiscale, tipoDestinatario, notificationSingleton.getIun(Hooks.getScenario()), operationId); + StartTransactionRequest startTransactionRequest = new StartTransactionRequest(codiceFiscale, tipoDestinatario, notificationSingleton.getIun(HooksNew.getScenario()), operationId); headers.put("Authorization", this.token); headers.put("uid", uid); diff --git a/src/main/java/it/pn/frontend/e2e/utility/DownloadFile.java b/src/main/java/it/pn/frontend/e2e/utility/DownloadFile.java index 89304c8ab..56673e724 100644 --- a/src/main/java/it/pn/frontend/e2e/utility/DownloadFile.java +++ b/src/main/java/it/pn/frontend/e2e/utility/DownloadFile.java @@ -20,7 +20,6 @@ import java.net.URL; import java.util.Optional; -import static it.pn.frontend.e2e.listeners.Hooks.netWorkInfos; /* Principali Miglioramenti: try-with-resources: Per la gestione automatica delle risorse come BufferedInputStream e BufferedOutputStream. @@ -122,7 +121,7 @@ public boolean controlloEsistenzaCartella(File cartella) { } public String getUrl(String urlChiamata) { - String url = netWorkInfos.stream() + String url = webDriverConfig.getNetWorkInfos().stream() .filter(netWorkInfo -> netWorkInfo.getRequestUrl().contains(urlChiamata) && netWorkInfo.getRequestMethod().equals("GET") && netWorkInfo.getResponseStatus().equals("200")) @@ -174,7 +173,7 @@ public String getLegalFactId() { private String getBearerSessionToken() { String environment = webDriverConfig.getEnvironment(); String urlChiamata = "https://webapi." + environment + ".notifichedigitali.it/delivery/notifications/received?"; - return netWorkInfos.stream() + return webDriverConfig.getNetWorkInfos().stream() .filter(netWorkInfo -> netWorkInfo.getRequestUrl().contains(urlChiamata)) .map(NetWorkInfo::getAuthorizationBearer) .findFirst() @@ -184,7 +183,7 @@ private String getBearerSessionToken() { private String getBearerSessionToken(String url) { String environment = webDriverConfig.getEnvironment(); String urlChiamata = "https://webapi." + environment + url; - return netWorkInfos.stream() + return webDriverConfig.getNetWorkInfos().stream() .filter(netWorkInfo -> netWorkInfo.getRequestUrl().contains(urlChiamata)) .map(NetWorkInfo::getAuthorizationBearer) .findFirst() diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/DeleghePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/DeleghePagoPATest.java index 8b75fdc95..6c9760bc2 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/DeleghePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/DeleghePagoPATest.java @@ -3,7 +3,6 @@ import io.cucumber.java.en.And; import io.cucumber.java.en.Then; import io.cucumber.java.en.When; -import it.pn.frontend.e2e.listeners.Hooks; import it.pn.frontend.e2e.listeners.HooksNew; import it.pn.frontend.e2e.model.delegate.DelegatePF; import it.pn.frontend.e2e.model.delegate.DelegateRequestPF; @@ -280,7 +279,7 @@ public void siInserisceIlCodiceDelegaNelPopUpOTP(String data) { if (data.equalsIgnoreCase("errato")) { verificationCode = "54321"; } else { - verificationCode = mandateSingleton.getVerificationCode(mandateSingleton.getMandateId(Hooks.getScenario())); + verificationCode = mandateSingleton.getVerificationCode(mandateSingleton.getMandateId(HooksNew.getScenario())); } leTueDelegheSection.inserireCodiceDelega(verificationCode); } @@ -314,8 +313,8 @@ public void creaInBackgroundUnaDelegaPerPersonaFisica(Map person String tokenExchange = loginPersonaFisicaPagoPA.getTokenExchangePFFromFile(personaFisica.get("accessoCome")); DelegateResponsePF response = restDelegation.addDelegationPF(delegateRequestPF, tokenExchange); if (response != null) { - mandateSingleton.setScenarioMandateId(Hooks.getScenario(), response.getMandateId()); - mandateSingleton.setScenarioVerificationCode(mandateSingleton.getMandateId(Hooks.getScenario()), response.getVerificationCode()); + mandateSingleton.setScenarioMandateId(HooksNew.getScenario(), response.getMandateId()); + mandateSingleton.setScenarioVerificationCode(mandateSingleton.getMandateId(HooksNew.getScenario()), response.getVerificationCode()); } hooks.getDriver().navigate().refresh(); } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/NotifichePersonaFisicaPagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/NotifichePersonaFisicaPagoPATest.java index c59c2134b..8ee0e0600 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/NotifichePersonaFisicaPagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/NotifichePersonaFisicaPagoPATest.java @@ -5,7 +5,6 @@ import io.cucumber.java.en.When; import it.pn.frontend.e2e.common.DettaglioNotificaSection; import it.pn.frontend.e2e.config.WebDriverConfig; -import it.pn.frontend.e2e.listeners.Hooks; import it.pn.frontend.e2e.listeners.HooksNew; import it.pn.frontend.e2e.pages.destinatario.DestinatarioPage; import it.pn.frontend.e2e.pages.destinatario.personaFisica.AccediAPiattaformaNotifichePage; @@ -13,7 +12,6 @@ import it.pn.frontend.e2e.pages.mittente.PiattaformaNotifichePage; import it.pn.frontend.e2e.section.CookiesSection; import it.pn.frontend.e2e.section.destinatario.personaFisica.HeaderPFSection; -import it.pn.frontend.e2e.section.mittente.DettaglioNotificaMittenteSection; import it.pn.frontend.e2e.utility.CookieConfig; import it.pn.frontend.e2e.utility.DataPopulation; import it.pn.frontend.e2e.utility.DownloadFile; diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RicercaNotifichePersonaFisicaPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RicercaNotifichePersonaFisicaPATest.java index 1d64b0721..f38bf3eec 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RicercaNotifichePersonaFisicaPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RicercaNotifichePersonaFisicaPATest.java @@ -4,7 +4,6 @@ import io.cucumber.java.en.Then; import io.cucumber.java.en.When; import it.pn.frontend.e2e.common.NotificheDestinatarioPage; -import it.pn.frontend.e2e.listeners.Hooks; import it.pn.frontend.e2e.listeners.HooksNew; import it.pn.frontend.e2e.model.singleton.NotificationSingleton; import it.pn.frontend.e2e.pages.destinatario.DestinatarioPage; @@ -262,7 +261,7 @@ public void nellaPaginaPiattaformaNotificheDestinatarioSiEffettuaLaRicercaPerCod @And("Si seleziona la notifica destinatario") public void siSelezionaLaNotificaDestinatario() { - String iun = notificationSingleton.getIun(Hooks.scenario); + String iun = notificationSingleton.getIun(HooksNew.getScenario()); backgroundTest.siFiltraLaTabellaDelleNotificheDelDestinatarioPerIUN(iun); } } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/DeleghePGPagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/DeleghePGPagoPATest.java index c27152ffe..6479e6b58 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/DeleghePGPagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/DeleghePGPagoPATest.java @@ -476,8 +476,8 @@ public void creoInBackgroundUnaDelegaPerPersonaGiuridica(Map per .build(); String tokenExchange = loginPGPagoPaTest.getTokenExchangePGFromFile(personaGiuridica.get("accessoCome")); DelegateResponsePG response = restDelegation.addDelegationPG(delegateRequestPG, tokenExchange); - mandateSingleton.setScenarioMandateId(Hooks.getScenario(),response.getMandateId()); - mandateSingleton.setScenarioVerificationCode(mandateSingleton.getMandateId(Hooks.getScenario()),response.getVerificationCode()); + mandateSingleton.setScenarioMandateId(HooksNew.getScenario(),response.getMandateId()); + mandateSingleton.setScenarioVerificationCode(mandateSingleton.getMandateId(HooksNew.getScenario()),response.getVerificationCode()); hooks.getDriver().navigate().refresh(); WebTool.waitTime(2); } @@ -511,7 +511,7 @@ public void siAccettaLaDelegaSenzaGruppoPF() { @And("Si inserisce il codice della delega a carico dell impresa nella modale") public void siInserisceIlCodiceDellaDelegaACaricoDellImpresaNellaModale() { - String verificationCode = mandateSingleton.getVerificationCode(mandateSingleton.getMandateId(Hooks.getScenario())); + String verificationCode = mandateSingleton.getVerificationCode(mandateSingleton.getMandateId(HooksNew.getScenario())); logger.info(verificationCode); deleghePGPagoPAPage.inserimentoCodiceDelegaACaricoDellImpresaAPI(verificationCode); } @@ -593,7 +593,7 @@ public void nellaPaginaDelegheSezioneDelegheACaricoDellImpresaSiControllaCheCiSi public void siRevocaDelegaComeDelegantConApi() { loginPGPagoPaTest.getTokenExchangePGFromFile("delegante"); - String mandateId = mandateSingleton.getMandateId(Hooks.getScenario()); + String mandateId = mandateSingleton.getMandateId(HooksNew.getScenario()); restDelegation.revokeDelegation(mandateId); } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/RecapitiPGPagoPaTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/RecapitiPGPagoPaTest.java index 910495f6c..012f298ad 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/RecapitiPGPagoPaTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/RecapitiPGPagoPaTest.java @@ -4,6 +4,7 @@ import io.cucumber.java.en.Then; import it.pn.frontend.e2e.common.RecapitiDestinatarioPage; import it.pn.frontend.e2e.listeners.Hooks; +import it.pn.frontend.e2e.listeners.HooksNew; import it.pn.frontend.e2e.pages.destinatario.personaFisica.ITuoiRecapitiPage; import it.pn.frontend.e2e.pages.destinatario.personaGiuridica.RecapitiPGPage; import it.pn.frontend.e2e.stepDefinitions.common.BackgroundTest; @@ -14,14 +15,24 @@ import org.openqa.selenium.WebDriver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; + import java.util.Map; public class RecapitiPGPagoPaTest { private final Logger logger = LoggerFactory.getLogger("RecapitiPGPagoPaTest"); - private final WebDriver driver = Hooks.driver; - DataPopulation dataPopulation = new DataPopulation(); - private final RecapitiPGPage recapitiPGPage = new RecapitiPGPage(this.driver); - private final RecapitiDestinatarioPage recapitiDestinatarioPage = new RecapitiDestinatarioPage(this.driver); + + @Autowired + private HooksNew hooks; + @Autowired + private DataPopulation dataPopulation; + @Autowired + private RecapitiPGPage recapitiPGPage; + @Autowired + private RecapitiDestinatarioPage recapitiDestinatarioPage; + @Autowired + private ITuoiRecapitiPage iTuoiRecapitiPage; + @And("Si visualizza correttamente la pagina Recapiti persona giuridica") public void siVisualizzaRecapitiPagePersonaGiuridica(){ @@ -75,7 +86,7 @@ public void nellaPaginaITuoiRecapitiSiInserisceIlNumeroDiTelefonoDelPGECliccaSul public void siVisualizzanoCorrettamenteTuttiGliElementiDellaSezioneAltriRecapiti() { logger.info("Si visualizzano correttamente tutti gli elementi della sezione altri recapiti"); WebTool.waitTime(10); - this.driver.navigate().refresh(); + this.hooks.getDriver().navigate().refresh(); recapitiDestinatarioPage.visualizzazioneCampiSezioneAltriRecapiti(); } @@ -94,8 +105,6 @@ public void nellaPaginaITuoiRecapitiDiPgSiControllaCheCiSiaGiaUnaPec() { @And("Si clicca su elimina email") public void siCliccaSuEliminaEmail() { - ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(this.driver); - iTuoiRecapitiPage.eliminaEmailEsistente(); } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/RicercaNotifichePersonaGiuridicaPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/RicercaNotifichePersonaGiuridicaPATest.java index 029be0196..4097e7779 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/RicercaNotifichePersonaGiuridicaPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/RicercaNotifichePersonaGiuridicaPATest.java @@ -4,7 +4,7 @@ import io.cucumber.java.en.Then; import io.cucumber.java.en.When; import it.pn.frontend.e2e.common.NotificheDestinatarioPage; -import it.pn.frontend.e2e.listeners.Hooks; +import it.pn.frontend.e2e.listeners.HooksNew; import it.pn.frontend.e2e.pages.destinatario.DestinatarioPage; import it.pn.frontend.e2e.pages.destinatario.personaFisica.NotifichePFPage; import it.pn.frontend.e2e.pages.destinatario.personaGiuridica.PiattaformaNotifichePGPAPage; @@ -17,16 +17,34 @@ import org.openqa.selenium.WebDriver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import java.time.LocalDate; import java.util.Map; public class RicercaNotifichePersonaGiuridicaPATest { private final Logger logger = LoggerFactory.getLogger("RicercaNotifichePersonaGiuridicaPATest"); - private final WebDriver driver = Hooks.driver; - private final PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(this.driver); - RicercaNotifichePGPage ricercaNotifichePGPage = new RicercaNotifichePGPage(this.driver); - DestinatarioPage destinatarioPage = new DestinatarioPage(this.driver); + + @Autowired + private HooksNew hooks; + + @Autowired + private PiattaformaNotifichePage piattaformaNotifichePage; + @Autowired + private RicercaNotifichePGPage ricercaNotifichePGPage; + @Autowired + private DestinatarioPage destinatarioPage; + @Autowired + private NotificheDestinatarioPage notificheDestinatarioPage; + @Autowired + private PiattaformaNotifichePGPAPage piattaformaNotifichePGPAPage; + @Autowired + private HeaderPASection headerPASection; + @Autowired + private HeaderPGSection headerPGSection; + @Autowired + private NotifichePFPage notifichePFPage; + private Map datiNotificaPG; @When("Nella Pagina Notifiche persona giuridica si clicca su notifiche dell impresa") @@ -38,8 +56,6 @@ public void cliccareSuNotificheDellImpresa() { @And("Nella pagina Piattaforma Notifiche persona giuridica inserire il codice IUN da dati notifica {string}") public void nellaPaginaPiattaformaNotifichePersonaGiuridicaInserireIlCodiceIUNDaDatiNotifica(String iun) throws InterruptedException { logger.info("Si inserisce il codice IUN"); - - NotificheDestinatarioPage notificheDestinatarioPage = new NotificheDestinatarioPage(driver); notificheDestinatarioPage.inserisciCodiceIUN(iun); } @@ -50,7 +66,6 @@ public void ilPersonaGiuridicaCliccaSullaNotificaRestituita(String iun) { @And("La persona giuridica clicca sulla prima notifica restituita") public void laPersonaGiuridicaCliccaSullaPrimaNotificaRestituita() { - RicercaNotifichePGPage ricercaNotifichePGPage = new RicercaNotifichePGPage(this.driver); ricercaNotifichePGPage.cliccaSuPrimaNotifica(); } @@ -61,7 +76,6 @@ public void siVisualizzaCorrettamenteLaSectionDettaglioNotificaPersonaGiuridicaD @And("Si controlla se la notifica prevede il pagamento") public void siControllaSeLaNotificaPrevedeIlPagamento() { - PiattaformaNotifichePGPAPage piattaformaNotifichePGPAPage = new PiattaformaNotifichePGPAPage(this.driver); boolean sezionePagamentoIsDisplayed = piattaformaNotifichePGPAPage.sezionePagamentoDisplayed(); if (!sezionePagamentoIsDisplayed) { logger.info("La notifica non prevede il pagamento "); @@ -110,14 +124,8 @@ public void nellaPaginaPiattaformaNotifichePersonaGiuridicaVengoRestituiteTutteL String iun = datiPG.get("iun"); String ragioneSociale = datiPG.get("ragioneSociale"); - - HeaderPASection headerPASection = new HeaderPASection(this.driver); headerPASection.waitLoadHeaderSection(); - - PiattaformaNotifichePGPAPage piattaformaNotifichePGPAPage = new PiattaformaNotifichePGPAPage(this.driver); piattaformaNotifichePGPAPage.waitLoadPiattaformaNotificaPage(ragioneSociale); - - NotificheDestinatarioPage notificheDestinatarioPage = new NotificheDestinatarioPage(driver); boolean result = notificheDestinatarioPage.verificaCodiceIUN(iun); if (result) { logger.info("Il risultato é coerente con il codice IUN inserito"); @@ -132,7 +140,6 @@ public void nellaPaginaPiattaformaNotifichePersonaGiuridicaInserireUnArcoTempora LocalDate dateA = LocalDate.now(); LocalDate dateDa = dateA.minusDays(5); - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(this.driver); String dataa = piattaformaNotifichePage.conversioneFormatoDate(dateA.toString()); String datada = piattaformaNotifichePage.conversioneFormatoDate(dateDa.toString()); piattaformaNotifichePage.inserimentoArcoTemporale(datada, dataa); @@ -140,13 +147,8 @@ public void nellaPaginaPiattaformaNotifichePersonaGiuridicaInserireUnArcoTempora @And("Nella pagina Piattaforma Notifiche persona giuridica vengo restituite tutte le notifiche con la data della notifica compresa con le date precedentemente inserite") public void nellaPaginaPiattaformaNotifichePersonaGiuridicaVengoRestituiteTutteLeNotificheConLaDataDellaNotificaCompresaConLeDatePrecedentementeInserite() { - HeaderPGSection headerPGSection = new HeaderPGSection(this.driver); headerPGSection.waitLoadHeaderPGPage(); - - PiattaformaNotifichePGPAPage piattaformaNotifichePGPAPage = new PiattaformaNotifichePGPAPage(this.driver); piattaformaNotifichePGPAPage.waitLoadPiattaformaNotificaPage("Convivio Spa"); - - NotifichePFPage notifichePFPage = new NotifichePFPage(this.driver); boolean result = notifichePFPage.getListData(); if (result) { logger.info("Il risultato é coerente con le date inserite"); @@ -164,13 +166,11 @@ public void cliccareSulBottoneRimuoviFiltriPersonaGiuridica() { @And("Nella pagina Piattaforma Notifiche persona giuridica inserire il codice IUN non valido da dati notifica {string}") public void nellaPaginaPiattaformaNotifichePersonaGiuridicaInserireIlCodiceIunNonValidoDaDatiNotifica(String datiNotificaNonValidoPG) throws InterruptedException { logger.info("Si inserisce il codice IUN non valido"); - NotificheDestinatarioPage notificheDestinatarioPage = new NotificheDestinatarioPage(this.driver); notificheDestinatarioPage.inserisciCodiceIUN(datiNotificaNonValidoPG); } @Then("Viene visualizzato un messaggio in rosso di errore sotto il campo errato e il rettangolo diventa rosso e il tasto Filtra è disattivo") public void vieneVisualizzatoUnMessaggioInRossoDiErroreSottoIlCampoErratoEIlRettangoloDiventaRossoEIlTastoFiltraEDisattivo() { - NotificheDestinatarioPage notificheDestinatarioPage = new NotificheDestinatarioPage(this.driver); boolean isErrorMessageDisplayed = ricercaNotifichePGPage.isErrorMessageDisplayed(); if (isErrorMessageDisplayed) { logger.info("il messaggio di errore é visualizzato"); @@ -201,7 +201,6 @@ public void seIRisultatiSonoContenutiInPiuPagineDestinatarioEPossibileEffettuare logger.info("Se i risultati sono contenuti in più pagine è possibile effettuare il cambio pagina"); if (piattaformaNotifichePage.verificaEsistenzaEPassaggioPagina()) { logger.info("Bottone pagina 2 trovato e cliccato"); - HeaderPGSection headerPGSection = new HeaderPGSection(this.driver); headerPGSection.waitLoadHeaderPGPage(); ricercaNotifichePGPage.waitLoadNotifichePGPage(); } else { diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/ApiKeysTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/ApiKeysTest.java index 6113d1c72..689ae5e59 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/ApiKeysTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/ApiKeysTest.java @@ -4,7 +4,6 @@ import io.cucumber.java.en.Then; import io.cucumber.java.en.When; import it.pn.frontend.e2e.config.WebDriverConfig; -import it.pn.frontend.e2e.listeners.Hooks; import it.pn.frontend.e2e.listeners.HooksNew; import it.pn.frontend.e2e.pages.mittente.ApiKeyPAPage; import it.pn.frontend.e2e.pages.mittente.PiattaformaNotifichePage; diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java index c835ddc29..c9df4916d 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java @@ -4,8 +4,6 @@ import io.cucumber.java.en.Then; import io.cucumber.java.en.When; import it.pn.frontend.e2e.common.DettaglioNotificaSection; -import it.pn.frontend.e2e.config.WebDriverConfig; -import it.pn.frontend.e2e.listeners.Hooks; import it.pn.frontend.e2e.listeners.HooksNew; import it.pn.frontend.e2e.pages.mittente.DisserviziAppPAPage; import it.pn.frontend.e2e.pages.mittente.PiattaformaNotifichePage; @@ -14,10 +12,7 @@ import it.pn.frontend.e2e.utility.DataPopulation; import it.pn.frontend.e2e.utility.DownloadFile; import it.pn.frontend.e2e.utility.WebTool; - -import lombok.Setter; import org.junit.jupiter.api.Assertions; -import org.openqa.selenium.WebDriver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -180,9 +175,6 @@ public void downloadECheckFile() { public void downloadDocumentiAllegati() { logger.info("Si scaricano solo i documenti Allegati all'interno della notifica"); - DettaglioNotificaMittenteSection dettaglioNotificaMittenteSection = new DettaglioNotificaMittenteSection(hooks.getDriver()); - DettaglioNotificaSection dettaglioNotificaSection = new DettaglioNotificaSection(hooks.getDriver()); - String workingDirectory = System.getProperty("user.dir"); File pathCartella = new File(workingDirectory + "/src/test/resources/dataPopulation/downloadFileNotifica/mittente"); boolean headless = headlessParam.equalsIgnoreCase("true"); diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NewNotifichePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NewNotifichePagoPATest.java index 908af897e..e091b95d5 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NewNotifichePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NewNotifichePagoPATest.java @@ -3,18 +3,10 @@ import io.cucumber.java.en.And; import io.cucumber.java.en.Then; import io.cucumber.java.en.When; -import it.pn.frontend.e2e.config.WebDriverConfig; -import it.pn.frontend.e2e.listeners.Hooks; - -import it.pn.frontend.e2e.listeners.HooksNew; import it.pn.frontend.e2e.pages.destinatario.DestinatarioPage; - import it.pn.frontend.e2e.utility.DataPopulation; import lombok.extern.slf4j.Slf4j; - - import org.junit.jupiter.api.Assertions; -import org.openqa.selenium.WebDriver; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java index 9ca240e1e..0b27f5ef8 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java @@ -1353,7 +1353,10 @@ public void siSelezionaLaNotifica() { @And("Si seleziona la notifica mittente") public void siSelezionaLaNotificaMittente() { + logger.info("ATTENZIONE........."); String iun = notificationSingleton.getIun(HooksNew.scenario); + logger.info("SCENARIO..."+HooksNew.scenario); + logger.info("SCENARIO..."+iun); backgroundTest.siFiltraLaTabellaDelleNotifichePerIUNMittente(iun); } From d797495ed2133b0272d8da09bca8bbffbb5fb1a8 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Mon, 4 Nov 2024 18:41:15 +0100 Subject: [PATCH 189/212] fix BackgroundTest --- .../frontend/e2e/stepDefinitions/common/RecapitiTest.java | 2 ++ .../destinatario/personaFisica/DeleghePagoPATest.java | 6 ------ .../personaFisica/RicercaNotifichePersonaFisicaPATest.java | 1 + .../destinatario/personaGiuridica/DisserviziAppPGTest.java | 5 +++-- .../personaGiuridica/NotifichePGPagoPATest.java | 1 + .../destinatario/personaGiuridica/RecapitiPGPagoPaTest.java | 6 ++++-- .../mittente/DownloadFileMittentePagoPATest.java | 6 ++++-- 7 files changed, 15 insertions(+), 12 deletions(-) diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/RecapitiTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/RecapitiTest.java index 414b44556..63c853357 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/RecapitiTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/RecapitiTest.java @@ -11,6 +11,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; public class RecapitiTest { @@ -24,6 +25,7 @@ public class RecapitiTest { @Autowired private ITuoiRecapitiPage iTuoiRecapitiPage ; @Autowired + @Lazy private BackgroundTest backgroundTest; @And("Nella pagina I Tuoi Recapiti si inserisce il numero di telefono {string} e si clicca sul bottone avvisami via SMS") diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/DeleghePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/DeleghePagoPATest.java index 6c9760bc2..371783fb6 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/DeleghePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/DeleghePagoPATest.java @@ -19,15 +19,9 @@ import it.pn.frontend.e2e.utility.WebTool; import lombok.Setter; import lombok.extern.slf4j.Slf4j; - import org.junit.jupiter.api.Assertions; -import org.openqa.selenium.WebDriver; -import org.openqa.selenium.WebElement; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; -import org.springframework.context.annotation.Primary; -import org.springframework.stereotype.Component; - import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.ArrayList; diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RicercaNotifichePersonaFisicaPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RicercaNotifichePersonaFisicaPATest.java index f38bf3eec..b9fa73f58 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RicercaNotifichePersonaFisicaPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RicercaNotifichePersonaFisicaPATest.java @@ -55,6 +55,7 @@ public class RicercaNotifichePersonaFisicaPATest { @Autowired private DataPopulation dataPopulation; @Autowired + @Lazy private BackgroundTest backgroundTest; @When("Si visualizza correttamente la pagina Piattaforma Notifiche persona fisica") diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/DisserviziAppPGTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/DisserviziAppPGTest.java index 1a2fe3a50..f40412bac 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/DisserviziAppPGTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/DisserviziAppPGTest.java @@ -28,7 +28,9 @@ public class DisserviziAppPGTest { private DisserviziAppPage disserviziAppPage; @Autowired private PiattaformaNotifichePGPAPage piattaformaNotifichePGPAPage; - + @Autowired + @Lazy + private BackgroundTest backgroundTest; @Given("Nella dashboard persona giuridica clicca su disservizi app") @@ -57,7 +59,6 @@ public void siVisualizzaStoricoDisservizi() { @And("Si verifica avvenuto disservizio in pagina stato piattaforma") public void siVerificaAvvenutoDisservizioInPaginaStatoPiattaforma() { - BackgroundTest backgroundTest = new BackgroundTest(); logger.info("Torno sulla scheda della piattaforma send"); String helpdeskHandle = hooks.getDriver().getWindowHandle(); Set windowHandles = hooks.getDriver().getWindowHandles(); diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/NotifichePGPagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/NotifichePGPagoPATest.java index a179548db..e090521e6 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/NotifichePGPagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/NotifichePGPagoPATest.java @@ -79,6 +79,7 @@ public class NotifichePGPagoPATest { @Autowired private DettaglioNotificaMittenteSection dettaglioNotificaMittenteSection; @Autowired + @Lazy private BackgroundTest backgroundTest; diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/RecapitiPGPagoPaTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/RecapitiPGPagoPaTest.java index 012f298ad..82cf9a2e3 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/RecapitiPGPagoPaTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/RecapitiPGPagoPaTest.java @@ -16,6 +16,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import java.util.Map; @@ -32,6 +33,9 @@ public class RecapitiPGPagoPaTest { private RecapitiDestinatarioPage recapitiDestinatarioPage; @Autowired private ITuoiRecapitiPage iTuoiRecapitiPage; + @Autowired + @Lazy + private BackgroundTest backgroundTest; @And("Si visualizza correttamente la pagina Recapiti persona giuridica") @@ -94,7 +98,6 @@ public void siVisualizzanoCorrettamenteTuttiGliElementiDellaSezioneAltriRecapiti public void nellaPaginaITuoiRecapitiDiPgSiControllaCheCiSiaGiaUnaPec() { logger.info("Si controlla la presenza di una pec"); String pec = dataPopulation.readDataPopulation("personaGiuridica.yaml").get("emailPec").toString(); - BackgroundTest backgroundTest = new BackgroundTest(); if (!recapitiDestinatarioPage.siVisualizzaPecInserita()) { backgroundTest.aggiungiPECPG(); } else if (!recapitiDestinatarioPage.siControllaPECModificata(pec)) { @@ -128,7 +131,6 @@ public void siControllaPresenzaEmailPrecedentementeSalvata(String email) { @And("Nella sezione altri recapiti si inserisce un recapito") public void nellaSezioneAltriRecapitiSiInserisceUnRecapito(){ - BackgroundTest backgroundTest = new BackgroundTest(); backgroundTest.aggiungiPecSezioneGiaAssociati(); } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java index c9df4916d..d18fd4c99 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java @@ -17,6 +17,7 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Primary; import org.springframework.stereotype.Component; @@ -65,6 +66,9 @@ public class DownloadFileMittentePagoPATest { private DettaglioNotificaMittenteSection dettaglioNotificaMittenteSection; @Autowired private DettaglioNotificaSection dettaglioNotificaSection; + @Autowired + @Lazy + private BackgroundTest backgroundTest; @When("Nella pagina Piattaforma Notifiche si clicca sulla notifica restituita") @@ -436,8 +440,6 @@ public void nellaPaginaPiattaformaNotificheSiRecuperaUnCodiceIUN() { @And("Nella pagina Piattaforma Notifiche si verifica l'esistenza della notifica con il codice IUN") public void nellaPaginaPiattaformaNotificheSiVerificaLEsistenzaDellaNotificaConIlCodiceIUN() { logger.info("Si verifica l'esistenza della notifica con il codice IUN"); - BackgroundTest backgroundTest = new BackgroundTest(); - DataPopulation dataPopulation = new DataPopulation(); List codiciIun = piattaformaNotifichePage.getCodiceIunPresenti(); Map personaFisica = dataPopulation.readDataPopulation("datiNotifica.yaml"); From 03573499a038b345dcb51b602e5caf104c784c05 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Mon, 4 Nov 2024 21:52:43 +0100 Subject: [PATCH 190/212] fix --- .../e2e/pages/mittente/PiattaformaNotifichePage.java | 6 ++++-- .../frontend/e2e/stepDefinitions/common/BackgroundTest.java | 5 +++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java index 400eab2eb..a6d0f62a6 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java @@ -115,7 +115,7 @@ public class PiattaformaNotifichePage extends BasePage { @Autowired private NotificationSingleton notificationSingleton; @Autowired - RestNotification restNotification; + private RestNotification restNotification; @Autowired public PiattaformaNotifichePage(WebDriver driver) { @@ -125,7 +125,9 @@ public PiattaformaNotifichePage(WebDriver driver) { public void waitLoadPiattaformaNotifichePAPage() { try { By notificheTitle = By.id("Notifiche-page"); - this.getWebDriverWait(10).withMessage("Il bottone invia notifica non visibile").until(ExpectedConditions.visibilityOf(this.inviaNuovaNotificaButton)); + WebTool.waitTime(10); + inviaNuovaNotificaButton = driver.findElement(By.id("new-notification-btn")); + this.getWebDriverWait(10).withMessage("Il bottone invia notifica non visibile").until(ExpectedConditions.visibilityOf(inviaNuovaNotificaButton)); this.getWebDriverWait(10).withMessage("Il titolo non è visibile").until(ExpectedConditions.visibilityOfElementLocated(notificheTitle)); logger.info("Piattaforma Notifiche Page caricata"); } catch (TimeoutException e) { diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/BackgroundTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/BackgroundTest.java index 6f92fb80b..aed3b79b4 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/BackgroundTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/BackgroundTest.java @@ -36,8 +36,10 @@ public class BackgroundTest { @Lazy private RecapitiPersonaFisicaTest recapitiPersonaFisicaTest; @Autowired + @Lazy private LoginPGPagoPATest loginPGPagoPATest; @Autowired + @Lazy private LoginPersonaFisicaPagoPA personaFisicaPagoPA; @Autowired @Lazy @@ -55,10 +57,13 @@ public class BackgroundTest { @Lazy private RecapitiTest recapitiTest; @Autowired + @Lazy private RecapitiDestinatarioPage recapitiDestinatarioPage ; @Autowired + @Lazy private ITuoiRecapitiPage iTuoiRecapitiPage; @Autowired + @Lazy private PiattaformaNotifichePage piattaformaNotifichePage; @Autowired private NotificaMittentePagoPATest notificaMittentePagoPATest; From 195eebc4ff1a6f525e48b3842a6c82f9be4b61b6 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Tue, 5 Nov 2024 07:55:38 +0100 Subject: [PATCH 191/212] add rest delegation --- .../e2e/stepDefinitions/CucumberSpringIntegration.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java index 2079776fe..007c70322 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java @@ -20,6 +20,7 @@ import it.pn.frontend.e2e.pages.destinatario.personaGiuridica.*; import it.pn.frontend.e2e.pages.mittente.*; import it.pn.frontend.e2e.rest.RestContact; +import it.pn.frontend.e2e.rest.RestDelegation; import it.pn.frontend.e2e.rest.RestNotification; import it.pn.frontend.e2e.section.CookiesSection; import it.pn.frontend.e2e.section.destinatario.personaFisica.HeaderPFSection; @@ -117,7 +118,7 @@ AccettazioneRichiestaNotifica.class, RecuperoOTPRecapiti.class, BackgroundTest.class, - GeneraApiKeySection.class + GeneraApiKeySection.class, }) @EnableScheduling From 3535fc1a3456c6aa2238899c8e82d06df6c2be76 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Tue, 5 Nov 2024 10:29:28 +0100 Subject: [PATCH 192/212] update webTool --- .../e2e/common/DettaglioNotificaSection.java | 9 ++- .../pn/frontend/e2e/common/HelpdeskPage.java | 10 ++- .../e2e/common/NotificheDestinatarioPage.java | 7 +- .../e2e/common/RecapitiDestinatarioPage.java | 25 ++++--- .../frontend/e2e/config/CustomHttpClient.java | 7 ++ .../pn/frontend/e2e/listeners/HooksNew.java | 2 +- .../pages/destinatario/DestinatarioPage.java | 6 +- .../AccediAPiattaformaNotifichePage.java | 27 ++++--- .../personaFisica/DeleghePage.java | 9 ++- .../personaFisica/NotifichePFPage.java | 10 ++- .../personaGiuridica/GruppiPGPage.java | 5 +- .../PiattaformaNotifichePGPAPage.java | 16 +++-- .../RicercaNotifichePGPage.java | 8 ++- .../SelezionaImpresaPage.java | 7 +- .../personaGiuridica/UtentiPGPage.java | 12 +++- .../e2e/pages/mittente/ApiKeyPAPage.java | 9 ++- .../e2e/pages/mittente/DashboardPage.java | 18 +++-- .../pages/mittente/DisserviziAppPAPage.java | 9 ++- .../pages/mittente/InvioNotifichePAPage.java | 6 +- .../mittente/PiattaformaNotifichePage.java | 72 ++++++++++--------- .../pages/mittente/SelezionaEntePAPage.java | 7 +- .../pn/frontend/e2e/rest/RestDelegation.java | 10 +-- .../personaFisica/HeaderPFSection.java | 7 +- .../personaFisica/LeTueDelegheSection.java | 9 ++- .../AggiungiDelegaPGSection.java | 11 ++- .../DettaglioNotificaMittenteSection.java | 11 ++- .../InformazioniPreliminariPASection.java | 7 +- .../it/pn/frontend/e2e/utility/WebTool.java | 71 ++++++++++-------- .../CucumberSpringIntegration.java | 12 ++++ .../common/BackgroundTest.java | 11 +-- .../stepDefinitions/common/HelpdeskTest.java | 13 ++-- .../personaFisica/DeleghePagoPATest.java | 8 ++- .../LoginPersonaFisicaPagoPA.java | 7 +- .../NotifichePersonaFisicaPagoPATest.java | 9 ++- .../RecapitiPersonaFisicaTest.java | 26 ++++--- .../personaGiuridica/DeleghePGPagoPATest.java | 9 ++- .../personaGiuridica/DisserviziAppPGTest.java | 5 +- .../personaGiuridica/GruppiPGPagoPATest.java | 11 ++- .../personaGiuridica/LoginPGPagoPATest.java | 10 ++- .../NotifichePGPagoPATest.java | 11 +-- .../RecapitiPGPagoPaTest.java | 5 +- .../personaGiuridica/UtentiPGPagoPATest.java | 16 +++-- .../mittente/DisserviziAppPATest.java | 6 +- .../DownloadFileMittentePagoPATest.java | 19 ++--- .../mittente/LoginMittentePagoPA.java | 12 ++-- .../mittente/NotificaMittentePagoPATest.java | 58 ++++++++------- 46 files changed, 431 insertions(+), 224 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/common/DettaglioNotificaSection.java b/src/main/java/it/pn/frontend/e2e/common/DettaglioNotificaSection.java index 523538e5f..760537238 100644 --- a/src/main/java/it/pn/frontend/e2e/common/DettaglioNotificaSection.java +++ b/src/main/java/it/pn/frontend/e2e/common/DettaglioNotificaSection.java @@ -11,6 +11,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; import java.util.HashMap; @@ -41,6 +42,10 @@ public class DettaglioNotificaSection extends BasePage { @FindBy(id = "breadcrumb-indietro-button") WebElement indietroButton; + @Autowired + @Lazy + private WebTool webTool; + @Autowired public DettaglioNotificaSection(WebDriver driver) { super(driver); @@ -69,7 +74,7 @@ public void waitLoadDettaglioNotificaDESection() { } public void clickLinkAttestazioniOpponibile(int numeroLinkAttestazioniOpponibile) { - WebTool.waitTime(2); + webTool.waitTime(2); attestazioniFile = driver.findElements(By.xpath("//button[contains(text(),'Attestazione opponibile a terzi: notifica presa in carico')]")); if (attestazioniFile.get(numeroLinkAttestazioniOpponibile).isDisplayed()) { attestazioniFile.get(numeroLinkAttestazioniOpponibile).click(); @@ -79,7 +84,7 @@ public void clickLinkAttestazioniOpponibile(int numeroLinkAttestazioniOpponibile } public void toBeClickableLinkAttestazioniOpponibile(int numeroLinkAttestazioniOpponibile) { - WebTool.waitTime(2); + webTool.waitTime(2); attestazioniFile = driver.findElements(By.xpath("//button[contains(text(),'Attestazione opponibile a terzi: notifica presa in carico')]")); if (attestazioniFile.get(numeroLinkAttestazioniOpponibile).isDisplayed()) { getWebDriverWait(10).withMessage("Il link non è cliccabile").until(elementToBeClickable(attestazioniFile.get(numeroLinkAttestazioniOpponibile))); diff --git a/src/main/java/it/pn/frontend/e2e/common/HelpdeskPage.java b/src/main/java/it/pn/frontend/e2e/common/HelpdeskPage.java index 949a0982b..ffe459cf7 100644 --- a/src/main/java/it/pn/frontend/e2e/common/HelpdeskPage.java +++ b/src/main/java/it/pn/frontend/e2e/common/HelpdeskPage.java @@ -32,6 +32,7 @@ import net.lingala.zip4j.ZipFile; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; @Component @@ -78,6 +79,9 @@ public class HelpdeskPage extends BasePage { @Autowired private WebDriverConfig webDriverConfig; + @Autowired + @Lazy + private WebTool webTool; @Autowired public HelpdeskPage(WebDriver driver) { @@ -298,7 +302,7 @@ public void insertIunAndRicercaOnPage(String iun) { this.getWebDriverWait(30).withMessage("bottone per la ricerca non trovato").until(ExpectedConditions.elementToBeClickable(buttonRicerca)); buttonRicerca.click(); - WebTool.waitTime(3); + webTool.waitTime(3); } public void insertIun(String iun) { @@ -649,7 +653,7 @@ public void spuntareDeanonimizzazioneDati() { public void inserimentoArcoTemporale() { - WebTool.waitTime(60); + webTool.waitTime(60); logger.info(driver.getPageSource()); By calendarButton = By.xpath("//div[@data-testid='data-range-picker']//div//div//button"); @@ -657,7 +661,7 @@ public void inserimentoArcoTemporale() { element(calendarButton).click(); By previousMonth = By.xpath("//button[@aria-label='Previous month']"); element(previousMonth).click(); - WebTool.waitTime(1); + webTool.waitTime(1); By dateEleven = By.xpath("//button[contains(text(),'11')]"); element(dateEleven).click(); } diff --git a/src/main/java/it/pn/frontend/e2e/common/NotificheDestinatarioPage.java b/src/main/java/it/pn/frontend/e2e/common/NotificheDestinatarioPage.java index 91c19b0df..b58e77953 100644 --- a/src/main/java/it/pn/frontend/e2e/common/NotificheDestinatarioPage.java +++ b/src/main/java/it/pn/frontend/e2e/common/NotificheDestinatarioPage.java @@ -11,6 +11,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; @Component @@ -22,6 +23,10 @@ public class NotificheDestinatarioPage extends BasePage{ @FindBy(xpath = "//button[contains(text(),'Ricevuta di consegna PEC')]") WebElement ricevutaDiConsegnaButton; + @Autowired + @Lazy + private WebTool webTool; + @Autowired public NotificheDestinatarioPage(WebDriver driver) { super(driver); @@ -29,7 +34,7 @@ public NotificheDestinatarioPage(WebDriver driver) { public void inserisciCodiceIUN(String codiceIUN) throws InterruptedException { getWebDriverWait(10).withMessage("L'input codice IUN non è visibile").until(ExpectedConditions.visibilityOf(this.codiceIunTextField)); - WebTool.waitTime(1); + webTool.waitTime(1); codiceIunTextField.sendKeys(codiceIUN); } public boolean verificaCodiceIUN(String codiceIUNInserito) { diff --git a/src/main/java/it/pn/frontend/e2e/common/RecapitiDestinatarioPage.java b/src/main/java/it/pn/frontend/e2e/common/RecapitiDestinatarioPage.java index 4745ac1da..450826516 100644 --- a/src/main/java/it/pn/frontend/e2e/common/RecapitiDestinatarioPage.java +++ b/src/main/java/it/pn/frontend/e2e/common/RecapitiDestinatarioPage.java @@ -8,6 +8,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; import java.util.List; @@ -83,6 +84,10 @@ public class RecapitiDestinatarioPage extends BasePage { @FindBy(id = "default_pec-typography") WebElement pecEmail; + @Autowired + @Lazy + private WebTool webTool; + @Autowired public RecapitiDestinatarioPage(WebDriver driver) { super(driver); @@ -104,21 +109,21 @@ public void eliminaPecEsistente() { public void clickSuChiudiPopUp() { //By chiudiButtonBy = By.xpath("//button[contains(text(),'Chiudi')]"); logger.info("Log clickSuChiudiPopUp"); - WebTool.waitTime(5); + webTool.waitTime(5); WebElement chiudiButtonBy = driver.findElement(By.xpath("//h2[@id='dialog-title']/following-sibling::div/button[contains(text(),'Annulla')]")); getWebDriverWait(10).withMessage("Il bottone chiudi non è cliccabile").until(ExpectedConditions.elementToBeClickable(chiudiButtonBy)); this.js().executeScript("arguments[0].click()", chiudiButtonBy); } public void insertEmailPEC(String emailPEC) { - WebTool.waitTime(5); + webTool.waitTime(5); pecField = driver.findElement(By.id("default_pec")); getWebDriverWait(10).withMessage("input pec field non trovato").until(ExpectedConditions.visibilityOf(pecField)); pecField.sendKeys(emailPEC); } public void confermaButtonClick() { - WebTool.waitTime(5); + webTool.waitTime(5); By attivaButton = By.id("default_pec-button"); getWebDriverWait(10).withMessage("Il bottone Attiva non è cliccabile").until(ExpectedConditions.elementToBeClickable(element(attivaButton))); element(attivaButton).click(); @@ -191,7 +196,7 @@ public void confermaButtonClickPopUp() { getWebDriverWait(10).until(ExpectedConditions.elementToBeClickable(confermaButtonPopUp)); confermaButtonPopUp.click(); - WebTool.waitTime(5); + webTool.waitTime(5); By confermaButtonPostInserimentoBy = By.id("code-confirm-button"); if (!driver.findElements(confermaButtonPostInserimentoBy).isEmpty()) { element(confermaButtonPostInserimentoBy).click(); @@ -416,7 +421,7 @@ public boolean siControllaPresenzaPEC() { } public void insertEnte(String comune) { - WebTool.waitTime(5); + webTool.waitTime(5); enteField = driver.findElement(By.id("sender")); this.enteField.sendKeys(comune); // wait 2seconds for the list to appear @@ -619,7 +624,7 @@ public void visualizzazioneCampiSezioneAltriRecapiti() { public void checkButtonAnnullaEliminazioneInPopUp() { try { - WebTool.waitTime(3); + webTool.waitTime(3); buttonAnnullaEliminazioneInPopUp = driver.findElement(By.id("buttonAnnulla")); getWebDriverWait(10).withMessage("pulsante annulla eliminazione non trovato").until(ExpectedConditions.visibilityOf(buttonAnnullaEliminazioneInPopUp)); logger.info("pulsante annulla eliminazione visibile"); @@ -630,7 +635,7 @@ public void checkButtonAnnullaEliminazioneInPopUp() { } public void clickButtonAnnullaEliminazioneInPopUp() { - WebTool.waitTime(5); + webTool.waitTime(5); buttonAnnullaEliminazioneInPopUp = driver.findElement(By.id("buttonAnnulla")); getWebDriverWait(10).withMessage("Non è stato possibile cliccare sul bottone annulla").until(ExpectedConditions.elementToBeClickable(buttonAnnullaEliminazioneInPopUp)); buttonAnnullaEliminazioneInPopUp.click(); @@ -802,7 +807,7 @@ public void visualizzazioneSezioneAltriRecapitiPG(String textboxId) { public void selezionaTipoEmail() { this.tipoIndirizzoField.click(); - WebTool.waitTime(2); + webTool.waitTime(2); By opzioneEmail = By.id("EMAIL"); getWebDriverWait(10) .withMessage("Non è visibile l'opzione indirizzo email") @@ -812,7 +817,7 @@ public void selezionaTipoEmail() { public void selezionaTipoPec() { tipoIndirizzoField.click(); - WebTool.waitTime(2); + webTool.waitTime(2); By opzionePEC = By.id("PEC"); getWebDriverWait(10) .withMessage("Non è visibile l'opzione indirizzo PEC") @@ -822,7 +827,7 @@ public void selezionaTipoPec() { public void selezionaTipoCelulare() { this.tipoIndirizzoField.click(); - WebTool.waitTime(2); + webTool.waitTime(2); By opzioneCelulare = By.id("Celulare"); getWebDriverWait(10) .withMessage("Non è visibile l'opzione celulare") diff --git a/src/main/java/it/pn/frontend/e2e/config/CustomHttpClient.java b/src/main/java/it/pn/frontend/e2e/config/CustomHttpClient.java index 9fed61b64..7fb7fe302 100644 --- a/src/main/java/it/pn/frontend/e2e/config/CustomHttpClient.java +++ b/src/main/java/it/pn/frontend/e2e/config/CustomHttpClient.java @@ -71,6 +71,13 @@ public CustomHttpClient(String baseUrlApi, String apiKeyTest) { this.apiKey = apiKeyTest; } + public CustomHttpClient(CustomHttpClient customHttpClient) { + System.out.println("CustomHttpClient2......."); + this.baseUrlApi = "https://api.test.notifichedigitali.it"; + this.httpClient = HttpClients.createDefault(); + this.apiKey = "2b3d47f4-44c1-4b49-b6ef-54dc1c531311"; + } + public CustomHttpClient(String apiKeyTest) { System.out.println("CustomHttpClient2......."); this.baseUrlApi = "https://api.test.notifichedigitali.it"; diff --git a/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java b/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java index 3c376beca..62c74c895 100644 --- a/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java +++ b/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java @@ -128,7 +128,7 @@ public void endScenario(Scenario scenario) throws IOException { logger.info("----- END SCENARIO: {} -----", scenario.getName()); } - @After("@DeleghePF or @DeleghePG") + @And("Revoca deleghe se esistono") public void clearDelegate() { logger.info("Revoking all delegations..."); diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/DestinatarioPage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/DestinatarioPage.java index a847fa3a8..2dfb7b39a 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/DestinatarioPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/DestinatarioPage.java @@ -68,6 +68,10 @@ public DestinatarioPage(WebDriver driver) { @FindBy(id = "notificationsTable.body.row") List listaNotificheDelegante; + @Autowired + @Lazy + private WebTool webTool; + public void inserimentoDataErrato() { String data = "01/01/1111"; getWebDriverWait(10).until(ExpectedConditions.visibilityOfAllElements(this.dataInizioField)); @@ -145,7 +149,7 @@ public void checkCreateNewNotification() throws RestNotificationException { getNotificationStatus = restNotification.getNotificationStatus(responseOfCreateNotification.getNotificationRequestId()); notificationStatus = getNotificationStatus.get("notificationRequestStatus").toString(); if (!notificationStatus.equals("ACCEPTED")) { - WebTool.waitTime(90); + webTool.waitTime(90); log.info("Tentativo n. " + maxAttemptsPolling + " - Stato notifica: " + notificationStatus); maxAttemptsPolling++; } else { diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java index accc6966b..047042b9f 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/AccediAPiattaformaNotifichePage.java @@ -8,6 +8,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; import java.util.List; @@ -79,6 +80,10 @@ public class AccediAPiattaformaNotifichePage extends BasePage { @FindBy(xpath = "//*[@id=\"root\"]/div[1]/div/main/div/div/div[1]/div[3]/div[4]/div/button[2]") List pagopaAllegatoItems; + @Autowired + @Lazy + private WebTool webTool; + @Autowired public AccediAPiattaformaNotifichePage(WebDriver driver) { @@ -252,7 +257,7 @@ public boolean siControllaCostiDiNotifica() { public void cliccaPaga() { logger.info("Si clicca su bottone paga"); - WebTool.waitTime(5); + webTool.waitTime(5); pagaAvviso = driver.findElement(By.cssSelector("[data-testid='pay-button']")); pagaAvviso.click(); } @@ -268,13 +273,13 @@ public void inserireDatiPagamento(String email) { public void checkoutPagamento() throws InterruptedException { logger.info("Si procede con il pagamento"); - WebTool.waitTime(5); + webTool.waitTime(5); element(By.cssSelector("[data-qaid='CP']")).click(); - WebTool.waitTime(5); + webTool.waitTime(5); // frame of the card number WebElement iframeCardNumber = driver.findElement(By.xpath("//iframe[@id='frame_CARD_NUMBER']")); driver.switchTo().frame(iframeCardNumber); - WebTool.waitTime(5); + webTool.waitTime(5); getWebDriverWait(10).withMessage("Il textbox numero di carta non è visibile").until(ExpectedConditions.visibilityOf(creditCardNumber)); creditCardNumber.click(); creditCardNumber.clear(); @@ -312,40 +317,40 @@ public void checkoutPagamento() throws InterruptedException { element(titolare).sendKeys("Titolare"); driver.switchTo().defaultContent(); - WebTool.waitTime(5); + webTool.waitTime(5); WebElement continuaBottone = driver.findElement(By.xpath("//button[@aria-label='Continue']")); //for local test use //button[@aria-label='Continua'] getWebDriverWait(8).withMessage("Il bottone Continua non è cliccabile").until(ExpectedConditions.elementToBeClickable(continuaBottone)); continuaBottone.click(); - WebTool.waitTime(10); + webTool.waitTime(10); //Select Nexi WebElement modificaButton = driver.findElement(By.xpath("//button[@aria-label='Change payment service provider (PSP)']")); //for local test use //button[@aria-label='Modifica PSP'] getWebDriverWait(5).withMessage("Il bottone modifica non è cliccabile").until(ExpectedConditions.elementToBeClickable(modificaButton)); modificaButton.click(); - WebTool.waitTime(10); + webTool.waitTime(10); List nexiButton = driver.findElements(By.xpath("//div[contains(text(),'Intesa Sanpaolo S.p.A')]")); - WebTool.waitTime(10); + webTool.waitTime(10); //getWebDriverWait(10).withMessage("Il bottone Nexi non è cliccabile").until(ExpectedConditions.elementToBeClickable(nexiButton)); if (nexiButton.size() == 2) { nexiButton.get(1).click(); } else { nexiButton.get(0).click(); } - WebTool.waitTime(5); + webTool.waitTime(5); WebElement pagaButton = driver.findElement(By.xpath("//button[@id='paymentCheckPageButtonPay']")); getWebDriverWait(5).withMessage("Il bottone Paga non è cliccabile").until(ExpectedConditions.elementToBeClickable(pagaButton)); pagaButton.click(); - WebTool.waitTime(50); + webTool.waitTime(50); List chiudi = driver.findElements(By.xpath("//button[contains(text(),'Continue')]")); //for local test use //button[@aria-label='Continua'] getWebDriverWait(10).withMessage("Il bottone Chiudi non è cliccabile").until(ExpectedConditions.elementToBeClickable(chiudi.get(0))); chiudi.get(0).click(); } public void siVisualizzaStatoPagato() { - WebTool.waitTime(20); + webTool.waitTime(20); By statoPagamento = By.xpath("//div[@id='status-chip-Pagato']"); getWebDriverWait(5).withMessage("Lo stato di pagamento non è visibile").until(ExpectedConditions.visibilityOfElementLocated(statoPagamento)); logger.info("Lo stato di pagamento è Pagato"); diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/DeleghePage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/DeleghePage.java index 34b0c77cb..94654b1f7 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/DeleghePage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/DeleghePage.java @@ -10,6 +10,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; import java.util.List; @@ -34,6 +35,10 @@ public class DeleghePage extends BasePage { @FindBy(id = "dialog-close-button") WebElement annullaButton; + @Autowired + @Lazy + private WebTool webTool; + @Autowired public DeleghePage(WebDriver driver) { super(driver); @@ -54,7 +59,7 @@ public void clickAggiungiDelegaButton() { getWebDriverWait(10).withMessage("Il bottone aggiungi delega non è visualizzato").until(ExpectedConditions.elementToBeClickable(addDelegaButton)); logger.info("click sul bottone add deleghe"); - WebTool.waitTime(3); + webTool.waitTime(3); this.addDelegaButton.click(); } @@ -216,7 +221,7 @@ public boolean verificaEsistenzaDelega(String nome, String cognome) { public boolean siVisualizzaUnaDelegaConNome(String nome, String cognome) { try { - WebTool.waitTime(5); + webTool.waitTime(5); By delegaBy = By.xpath("//tr[@id = 'delegatesTable.body.row']//p[contains(text(),'"+ nome +" "+ cognome +"')]"); this.getWebDriverWait(10).until(ExpectedConditions.visibilityOfElementLocated(delegaBy)); diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/NotifichePFPage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/NotifichePFPage.java index 2f73bada2..1a5346a9c 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/NotifichePFPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/NotifichePFPage.java @@ -9,6 +9,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; import java.time.LocalDate; @@ -71,6 +72,9 @@ public class NotifichePFPage extends BasePage { @FindBy(xpath = "//button[@data-testid='download-pagoPA-notice-button']") private WebElement buttonDownloadAvvisoPagoPA; + @Autowired + @Lazy + private WebTool webTool; @Autowired public NotifichePFPage(WebDriver driver) { @@ -104,7 +108,7 @@ public void waitESelectDelegheButton() { } public void selectFiltraButton() { - WebTool.waitTime(5); + webTool.waitTime(5); filtraButton = driver.findElement(By.id("filter-notifications-button")); getWebDriverWait(40).withMessage("Il bottone filtra sulla pagina notifiche non è cliccabile").until(ExpectedConditions.elementToBeClickable(filtraButton)); filtraButton.click(); @@ -255,7 +259,7 @@ public void siSceglieUnaPaginaDiversaConNumeroESiFiltra(String iun) { codiceIunTextField.click(); codiceIunTextField.sendKeys(iun); clickFiltraButton(); - WebTool.waitTime(2); + webTool.waitTime(2); clickRimuoviFiltriButton(); } @@ -282,7 +286,7 @@ public int conteggioNotifiche() { public void selezionaNotifica() { By notificaBy = By.xpath("//td[contains(@class,'MuiTableCell-root MuiTableCell-body MuiTableCell-sizeMedium css-1cpwezh')]"); - WebTool.waitTime(2); + webTool.waitTime(2); getWebDriverWait(30).withMessage("Non viene visualizzata la prima riga della tabella delle notifiche").until(ExpectedConditions.elementToBeClickable(notificaBy)); elements(notificaBy).get(0).click(); } diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/GruppiPGPage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/GruppiPGPage.java index 6441a7c63..0c6a93e29 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/GruppiPGPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/GruppiPGPage.java @@ -12,6 +12,7 @@ import org.openqa.selenium.support.FindBy; import org.openqa.selenium.support.ui.ExpectedConditions; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; import java.time.Instant; import java.time.LocalDate; @@ -20,6 +21,7 @@ import java.util.Map; @Slf4j +@Component public class GruppiPGPage extends BasePage { private final AccediAreaRiservataPGPage accediAreaRiservataPGPage = new AccediAreaRiservataPGPage(driver); @@ -46,6 +48,7 @@ public class GruppiPGPage extends BasePage { @Autowired private WebTool webTool; + @Autowired public GruppiPGPage(WebDriver driver) { super(driver); } @@ -126,7 +129,7 @@ public void creazioneNuovoGruppo(Map datiGruppo) { } public void checkButtonConfermaAndClick() { - WebTool.waitTime(5); + webTool.waitTime(5); buttonConferma = driver.findElement(By.xpath("//button[contains(text(), 'Conferma')]")); getWebDriverWait(10).withMessage("Il bottone conferma non è abilitato").until(ExpectedConditions.elementToBeClickable(buttonConferma)); log.info("Il bottone è abilitato e lo si clicca"); diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/PiattaformaNotifichePGPAPage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/PiattaformaNotifichePGPAPage.java index fbdada6ee..5eb7e3d0e 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/PiattaformaNotifichePGPAPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/PiattaformaNotifichePGPAPage.java @@ -16,6 +16,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; import java.io.IOException; @@ -77,6 +78,9 @@ public class PiattaformaNotifichePGPAPage extends BasePage { @Autowired private WebDriverConfig webDriverConfig; + @Autowired + @Lazy + private WebTool webTool; @Autowired public PiattaformaNotifichePGPAPage(WebDriver driver) { @@ -126,10 +130,10 @@ public void clickSuDelegeButton() { } public void clickNotificheENotificheDelegate() { - WebTool.waitTime(5); + webTool.waitTime(5); getWebDriverWait(10).until(ExpectedConditions.visibilityOf(this.sideItemNotificheButton)); sideItemNotificheButton.click(); - WebTool.waitTime(10); + webTool.waitTime(10); By notificheDelegateButton = By.id("menu-item(notifiche delegate)"); this.getWebDriverWait(10).until(ExpectedConditions.elementToBeClickable(notificheDelegateButton)); this.js().executeScript("arguments[0].click()", this.element(notificheDelegateButton)); @@ -137,7 +141,7 @@ public void clickNotificheENotificheDelegate() { } public void clickNotificheDelegate() { - WebTool.waitTime(5); + webTool.waitTime(5); By notificheDelegateButton = By.id("menu-item(notifiche delegate)"); this.getWebDriverWait(10).until(ExpectedConditions.elementToBeClickable(notificheDelegateButton)); this.js().executeScript("arguments[0].click()", this.element(notificheDelegateButton)); @@ -217,7 +221,7 @@ public boolean modelloF24Displayed() { public void clickModelloF24Numero(int numOfF24) { List f24 = driver.findElements(By.xpath("//button[@data-testid='download-f24-button']")); logger.info("F24 trovato:" + f24.size()); - WebTool.waitTime(3); + webTool.waitTime(3); getWebDriverWait(30).withMessage("Il sezione scarica modello F24 non è cliccabile").until(ExpectedConditions.elementToBeClickable(f24.get(numOfF24 - 1))); f24.get(numOfF24 - 1).click(); } @@ -272,12 +276,12 @@ public void clickRicevutaDiConsegna() throws AWTException, IOException { DownloadFile downloadFile = new DownloadFile(this.driver); DettaglioNotificaMittenteSection dettaglioNotificaMittenteSection = new DettaglioNotificaMittenteSection(this.driver); String codiceIUN; - WebTool.waitTime(1); + webTool.waitTime(1); codiceIUN = dettaglioNotificaMittenteSection.getInfoNotifica(3); File file = new File(downloadDirectory, fileName); ricevutaDiConsegnaButton.click(); - WebTool.waitTime(1); + webTool.waitTime(1); final String urlFileRicevuta = downloadFile.getUrl("https://webapi.test.notifichedigitali.it/bff/v1/notifications/received/" + codiceIUN + "/documents/"); FileUtils.copyURLToFile(new URL(urlFileRicevuta), file, 1000, 1000); logger.info("ZIP file downloaded successfully."); diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/RicercaNotifichePGPage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/RicercaNotifichePGPage.java index 4896afe04..22738de9e 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/RicercaNotifichePGPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/RicercaNotifichePGPage.java @@ -8,6 +8,8 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import java.sql.Driver; @@ -28,6 +30,10 @@ public RicercaNotifichePGPage(WebDriver driver) { @FindBy(id = "notificationsTable.body.row") WebElement primaNotifica; + @Autowired + @Lazy + private WebTool webTool; + public void clickNotificheImpresa() { try { By notificheImpresaButton = By.xpath("//div[@data-testid=\"sideMenuItem-Notifiche dell'impresa\"]"); @@ -103,7 +109,7 @@ public void waitLoadNotifichePGPage() { public void cliccaSuPrimaNotifica(){ try { - WebTool.waitTime(10); + webTool.waitTime(10); primaNotifica = driver.findElement(By.id("notificationsTable.body.row")); getWebDriverWait(10).until(ExpectedConditions.elementToBeClickable(primaNotifica)); logger.info("Si clicca sulla prima notifica"); diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/SelezionaImpresaPage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/SelezionaImpresaPage.java index cc80316c6..aff2567d6 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/SelezionaImpresaPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/SelezionaImpresaPage.java @@ -8,6 +8,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; @Component @@ -18,6 +19,10 @@ public class SelezionaImpresaPage extends BasePage { @FindBy(xpath = "//button[contains(text(),'Accedi')]") WebElement accediButton; + @Autowired + @Lazy + private WebTool webTool; + @Autowired public SelezionaImpresaPage(WebDriver driver) { super(driver); @@ -25,7 +30,7 @@ public SelezionaImpresaPage(WebDriver driver) { public void waitLoadSelezionaImpresaPage() { - WebTool.waitTime(10); + webTool.waitTime(10); By titlePageBy = By.xpath("//h3[contains(text(),'Seleziona la tua impresa')]"); this.getWebDriverWait(30).withMessage("Il titolo della pagina Seleziona la tua impresa non è visibile").until(ExpectedConditions.visibilityOfElementLocated(titlePageBy)); this.getWebDriverWait(30).withMessage("Il bottone accedi della pagina Seleziona la tua impresa non è visibile").until(ExpectedConditions.visibilityOf(this.accediButton)); diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/UtentiPGPage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/UtentiPGPage.java index 3579503e6..9b7a91d5a 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/UtentiPGPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/UtentiPGPage.java @@ -11,11 +11,13 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; +import org.springframework.stereotype.Component; import java.util.List; import java.util.Set; - +@Component public class UtentiPGPage extends BasePage { private final Logger logger = LoggerFactory.getLogger("UtentiPGPage"); @@ -74,7 +76,11 @@ public class UtentiPGPage extends BasePage { @Autowired private WebDriverConfig webDriverConfig; + @Autowired + @Lazy + private WebTool webTool; + @Autowired public UtentiPGPage(WebDriver driver) { super(driver); } @@ -123,7 +129,7 @@ public void loginUtenti(String nome, String pwd) { public void waitLoadUtentiPage() { try { - WebTool.waitTime(15); + webTool.waitTime(15); WebElement utentiPageTitle = driver.findElement(By.xpath("//div/h4[contains(text(),'Utenti')]")); WebElement sottoTitolo = driver.findElement(By.xpath("//div/p[contains(text(),'Gestisci gli utenti')]")); WebElement addUserButton = driver.findElement(By.xpath("//button[contains(text(),'Aggiungi utente')]")); @@ -162,7 +168,7 @@ public void waitLoadAggiungiUtentePage() { public void insertData(String codiceFiscale, String name, String surname, String email) throws InterruptedException { codiceFiscaleBox.sendKeys(codiceFiscale); - WebTool.waitTime(2); + webTool.waitTime(2); if (nameBox.getAttribute("value").equalsIgnoreCase(name) && surnameBox.getAttribute("value").equalsIgnoreCase(surname)) { logger.info("Il nome e il cognome è generato correttamente"); } else { diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/ApiKeyPAPage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/ApiKeyPAPage.java index a637c0fb6..6ebe4ef32 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/ApiKeyPAPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/ApiKeyPAPage.java @@ -10,6 +10,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; import java.util.List; @@ -65,6 +66,10 @@ public class ApiKeyPAPage extends BasePage { @FindBy(id = "close-modal-button") private WebElement closeButtonPopUpVisualizza; + @Autowired + @Lazy + private WebTool webTool; + @Autowired public ApiKeyPAPage(WebDriver driver) { super(driver); @@ -539,10 +544,10 @@ public String copiaApiKeyESalva(){ public String visualizzaApiKeyInElenco(){ By contextMenu = By.xpath("//button[@data-testid='contextMenuButton']"); elements(contextMenu).get(0).click(); - WebTool.waitTime(1); + webTool.waitTime(1); By visualizzaCodiceButton = By.xpath("//li[@data-testid='buttonView']"); element(visualizzaCodiceButton).click(); - WebTool.waitTime(1); + webTool.waitTime(1); By apiKeyDaElenco = By.xpath("//input[@aria-invalid='false']"); return element(apiKeyDaElenco).getAttribute("value"); } diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/DashboardPage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/DashboardPage.java index 306764b2e..7a4fd59d8 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/DashboardPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/DashboardPage.java @@ -12,6 +12,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; import java.awt.*; @@ -83,6 +84,9 @@ public class DashboardPage extends BasePage { @Autowired private WebDriverConfig webDriverConfig; + @Autowired + @Lazy + private WebTool webTool; @Autowired public DashboardPage(WebDriver driver) { @@ -153,7 +157,7 @@ public void insertDataErrata() { .keyUp(Keys.CONTROL) .sendKeys(Keys.BACK_SPACE) .perform(); - WebTool.waitTime(1); + webTool.waitTime(1); dateDa.get(0).sendKeys("01/01/1111"); } @@ -163,7 +167,7 @@ public void insertDataErrataNotificheDigitali(){ dateDa.get(1).click(); Actions action = new Actions(driver); action.keyDown(Keys.CONTROL).sendKeys("a").keyUp(Keys.CONTROL).sendKeys(Keys.BACK_SPACE).perform(); - WebTool.waitTime(1); + webTool.waitTime(1); dateDa.get(1).sendKeys("01/01/1111"); } public void insertDataCorretta(){ @@ -179,7 +183,7 @@ public void insertDataCorretta(){ LocalDate dataDaInserire = LocalDate.now().minusDays(90); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy"); String formattedDate = dataDaInserire.format(formatter); - WebTool.waitTime(1); + webTool.waitTime(1); dateDa.get(0).sendKeys(formattedDate); } public void insertDataCorrettaNotificheDigitali(){ @@ -191,7 +195,7 @@ public void insertDataCorrettaNotificheDigitali(){ LocalDate dataDaInserire = LocalDate.now().minusDays(90); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy"); String formattedDate = dataDaInserire.format(formatter); - WebTool.waitTime(1); + webTool.waitTime(1); dateDa.get(1).sendKeys(formattedDate); } @@ -242,14 +246,14 @@ public void checkTipoGraficoPerModalitaInvio(String tipoGrafico){ public void cambiaTipoGrafico(){ getWebDriverWait(10).withMessage("Il tipo di grafico Aggregato non visibile").until(ExpectedConditions.visibilityOf(tipoAggregato.get(0))); tipoAggregato.get(0).click(); - WebTool.waitTime(1); + webTool.waitTime(1); tipoAndamentale.get(0).click(); } public void cambiaTipoGraficoPerModalitaInvio(){ getWebDriverWait(10).withMessage("Il tipo di grafico Aggregato non visibile").until(ExpectedConditions.visibilityOf(tipoAggregato.get(0))); tipoAggregato.get(1).click(); - WebTool.waitTime(1); + webTool.waitTime(1); tipoAndamentale.get(0).click(); } @@ -305,7 +309,7 @@ public void clickJpegExport() throws AWTException { logger.info("Si clicca sul bottone Esporta JPEG"); esportaJpegBottone.click(); - WebTool.waitTime(2); + webTool.waitTime(2); File downloadedFile = new File(downloadDirectory + fileName); Assertions.assertTrue(downloadedFile.exists()); logger.info("JPEG file downloaded successfully."); diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/DisserviziAppPAPage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/DisserviziAppPAPage.java index 03f19d9bc..1ad1c2457 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/DisserviziAppPAPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/DisserviziAppPAPage.java @@ -14,6 +14,7 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; import java.io.File; @@ -46,6 +47,10 @@ public class DisserviziAppPAPage extends BasePage { @FindBy(xpath = "//span[contains(text(), 'Risolto')]") private List stato; + @Autowired + @Lazy + private WebTool webTool; + @Autowired public DisserviziAppPAPage(WebDriver driver) { super(driver); @@ -53,7 +58,7 @@ public DisserviziAppPAPage(WebDriver driver) { public void waitLoadStatoDellaPiattaformaPage() { - WebTool.waitTime(5); + webTool.waitTime(5); try { By disserviziPageTitle = By.id("Stato della piattaforma-page"); By disserviziPageSubTitle = By.id("subtitle-page"); @@ -104,7 +109,7 @@ public void getDateDisservice() { public void waitLoadDisserviziTable() { try { - WebTool.waitTime(10); + webTool.waitTime(10); disserviziTable = driver.findElement(By.id("notifications-table")); getWebDriverWait(10).withMessage("Non si visualizza correttamente la tabella dei disservizi") .until(ExpectedConditions.visibilityOf(disserviziTable)); diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/InvioNotifichePAPage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/InvioNotifichePAPage.java index fabb185d9..cb2304087 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/InvioNotifichePAPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/InvioNotifichePAPage.java @@ -8,12 +8,16 @@ import org.openqa.selenium.support.FindBy; import org.openqa.selenium.support.ui.ExpectedConditions; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; @Component public class InvioNotifichePAPage extends BasePage { @FindBy(id = "step-submit") WebElement continuaButton; + @Autowired + @Lazy + private WebTool webTool; @Autowired public InvioNotifichePAPage(WebDriver driver) { @@ -21,7 +25,7 @@ public InvioNotifichePAPage(WebDriver driver) { } public void selezionareContinuaButton() { - WebTool.waitTime(5); + webTool.waitTime(5); continuaButton = driver.findElement(By.id("step-submit")); getWebDriverWait(10).withMessage("Il bottone continua nella pagina invio notifica PA non è cliccabile").until(ExpectedConditions.elementToBeClickable(this.continuaButton)); scrollToElementAndClick(this.continuaButton); diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java index a6d0f62a6..72e0b7bba 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java @@ -18,6 +18,7 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; import java.text.DateFormatSymbols; @@ -116,6 +117,9 @@ public class PiattaformaNotifichePage extends BasePage { private NotificationSingleton notificationSingleton; @Autowired private RestNotification restNotification; + @Autowired + @Lazy + private WebTool webTool; @Autowired public PiattaformaNotifichePage(WebDriver driver) { @@ -125,7 +129,7 @@ public PiattaformaNotifichePage(WebDriver driver) { public void waitLoadPiattaformaNotifichePAPage() { try { By notificheTitle = By.id("Notifiche-page"); - WebTool.waitTime(10); + webTool.waitTime(10); inviaNuovaNotificaButton = driver.findElement(By.id("new-notification-btn")); this.getWebDriverWait(10).withMessage("Il bottone invia notifica non visibile").until(ExpectedConditions.visibilityOf(inviaNuovaNotificaButton)); this.getWebDriverWait(10).withMessage("Il titolo non è visibile").until(ExpectedConditions.visibilityOfElementLocated(notificheTitle)); @@ -151,7 +155,7 @@ public void insertCodiceFiscale(String codiceFiscale) { } public void selectFiltraNotificaButtonMittente() { - WebTool.waitTime(10); + webTool.waitTime(10); filtraNotificaButtonMittente = driver.findElement(By.id("filter-button")); getWebDriverWait(10).withMessage("Il bottone filtra non è cliccabile").until(elementToBeClickable(filtraNotificaButtonMittente)); filtraNotificaButtonMittente.click(); @@ -159,7 +163,7 @@ public void selectFiltraNotificaButtonMittente() { } public void selectFiltraNotificaButtonDestinatario() { - WebTool.waitTime(10); + webTool.waitTime(10); filtraNotificaButton = driver.findElement(By.id("filter-notifications-button")); getWebDriverWait(10).withMessage("Il filtro non è cliccabile").until(elementToBeClickable(filtraNotificaButton)); filtraNotificaButton.click(); @@ -204,7 +208,7 @@ public boolean verificaEsistenzaEPassaggioPagina() { public void inserimentoCodiceIUN(String codiceIUN) { - WebTool.waitTime(5); + webTool.waitTime(5); codiceIUNTextField = driver.findElement(By.id("iunMatch")); getWebDriverWait(10).withMessage("Il campo per l'inserimento del codice IUN non è visibile").until(ExpectedConditions.visibilityOf(codiceIUNTextField)); codiceIUNTextField.click(); @@ -241,7 +245,7 @@ public void inserimentoArcoTemporale(String da, String a) { dataInizioField = getWebDriverWait(10).until(ExpectedConditions.elementToBeClickable(By.id("startDate"))); dataInizioField = getWebDriverWait(10).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[@id='startDate']"))); - WebTool.waitTime(2); + webTool.waitTime(2); String[] arraySplitDateDa = da.split("/"); List dataFieldList = driver.findElements(By.cssSelector(".MuiInputBase-input")); @@ -287,7 +291,7 @@ public void inserimentoArcoTemporale(String da, String a) { } } // Step 4: Select a date (e.g., the 15th day of the current month) - WebTool.waitTime(2); + webTool.waitTime(2); WebElement dateToSelect = calendar.findElement(By.xpath("//div[contains(@class, 'MuiDateCalendar-root')]//div[contains(@class,'MuiDayCalendar-monthContainer')]//*[text()='" + dayDa + "']")); dateToSelect = getWebDriverWait(10).until(ExpectedConditions.elementToBeClickable(dateToSelect)); dateToSelect.click(); @@ -303,7 +307,7 @@ public void inserimentoArcoTemporale(String da, String a) { int monthA = Integer.parseInt(arraySplitDateA[1]); int yerarsA = Integer.parseInt(arraySplitDateA[2]); - WebTool.waitTime(2); + webTool.waitTime(2); // Step 2: Click on the input field to open the calendar pop-up if (dataFieldList != null && dataFieldList.size() == 5) { @@ -334,7 +338,7 @@ public void inserimentoArcoTemporale(String da, String a) { } } - WebTool.waitTime(2); + webTool.waitTime(2); // Step 4: Select a date (e.g., the 15th day of the current month) // Adjust based on your app @@ -356,7 +360,7 @@ public boolean inserimentoArcoTemporaleErrato(String da, String a) { dataInizioField = getWebDriverWait(10).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[@id='startDate']"))); - WebTool.waitTime(5); + webTool.waitTime(5); String[] arraySplitDateDa = da.split("/"); @@ -390,7 +394,7 @@ public boolean inserimentoArcoTemporaleErrato(String da, String a) { } // Step 4: Select a date (e.g., the 15th day of the current month) - WebTool.waitTime(3); + webTool.waitTime(3); WebElement dateToSelect = calendar.findElement(By.xpath("//div[contains(@class, 'MuiDateCalendar-root')]//div[contains(@class,'MuiDayCalendar-monthContainer')]//*[text()='" + dayDa + "']")); dateToSelect = getWebDriverWait(10).until(ExpectedConditions.elementToBeClickable(dateToSelect)); dateToSelect.click(); @@ -407,7 +411,7 @@ public boolean inserimentoArcoTemporaleErrato(String da, String a) { int monthA = Integer.parseInt(arraySplitDateA[1]); int yerarsA = Integer.parseInt(arraySplitDateA[2]); - WebTool.waitTime(3); + webTool.waitTime(3); // Step 2: Click on the input field to open the calendar pop-up dataFieldList.get(3).click(); @@ -430,7 +434,7 @@ public boolean inserimentoArcoTemporaleErrato(String da, String a) { } } - WebTool.waitTime(3); + webTool.waitTime(3); // Step 4: Select a date (e.g., the 15th day of the current month) WebElement dateToSelect1 = calendar1.findElement(By.xpath("//div[contains(@class, 'MuiDateCalendar-root')]//div[contains(@class,'MuiDayCalendar-monthContainer')]//*[text()='" + dayA + "']")); @@ -506,7 +510,7 @@ public void selezionaNotifica120Giorni() { getWebDriverWait(3).withMessage("Il bottone filtra non è cliccabile").until(elementToBeClickable(pageSize50)); pageSize50.click(); - WebTool.waitTime(10); + webTool.waitTime(10); notificaBy = By.id("notificationsTable.body.row"); List notifiche = this.elements(notificaBy); @@ -552,7 +556,7 @@ public void selezionaNotifica120Giorni(int rows) { getWebDriverWait(3).withMessage("Il bottone filtra non è cliccabile").until(elementToBeClickable(pageSize50)); pageSize50.click(); - WebTool.waitTime(10); + webTool.waitTime(10); notificaBy = By.id("notificationsTable.body.row"); List notifiche = this.elements(notificaBy); @@ -605,7 +609,7 @@ public void selezionaPrimaNotifica() { getWebDriverWait(3).withMessage("Il bottone filtra non è cliccabile").until(elementToBeClickable(pageSize50)); pageSize50.click(); - WebTool.waitTime(10); + webTool.waitTime(10); notificaBy = By.id("notificationsTable.body.row"); List notifiche = this.elements(notificaBy); @@ -628,7 +632,7 @@ public void selectInviaUnaNuovaNotificaButton() { public void waitLoadRefreshPage() { - WebTool.waitTime(5); + webTool.waitTime(5); } public String ricercaNotifica(String oggettoDellaNotifica, String statoNotifica) { @@ -710,14 +714,14 @@ public int controlloNumeroRisultatiDate() { public void inserimentoData(String dataInserita) { getWebDriverWait(10).withMessage("il campo data non è visibile nella pagina").until(ExpectedConditions.visibilityOf(this.dataInizioField)); - WebTool.waitTime(15); + webTool.waitTime(15); getWebDriverWait(10).until(ExpectedConditions.visibilityOfAllElements(dataInizioField, dataFineField)); dataInizioField = getWebDriverWait(10).until(ExpectedConditions.elementToBeClickable(By.id("startDate"))); dataInizioField = getWebDriverWait(10).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[@id='startDate']"))); - WebTool.waitTime(10); + webTool.waitTime(10); String[] arraySplitDateDa = dataInserita.split("/"); @@ -907,7 +911,7 @@ public void siCambiaPaginaUtilizzandoUnaFrecetta(Integer numPage) { while (index <= numPage) { frecciaPaginaSuccessiva.click(); index++; - WebTool.waitTime(2); + webTool.waitTime(2); } } @@ -919,7 +923,7 @@ public void selezionaUltimaPaginaUtilizzandoUnaFrecetta() { } while (frecciaPaginaSuccessiva.isEnabled()) { frecciaPaginaSuccessiva.click(); - WebTool.waitTime(2); + webTool.waitTime(2); } } @@ -935,12 +939,12 @@ public void siCambiaIlNumeroElementiVisualizzatiAttraversoIlFiltro() { .withMessage("Il pulsante 'righe per pagina' non è presente") .until(ExpectedConditions.visibilityOf(this.numeroNotificheButton)); vaiInFondoAllaPagina(); - WebTool.waitTime(1); + webTool.waitTime(1); this.numeroNotificheButton.click(); this.getWebDriverWait(10) .withMessage("Il pulsante '50' per assegnare il numero di notifiche per pagina non è presente") .until(ExpectedConditions.visibilityOf(this.numberElement)); - WebTool.waitTime(1); + webTool.waitTime(1); this.numberElement.click(); } @@ -1134,7 +1138,7 @@ public void checkPaginaNotificheDelegante(String nomeDelegante) { public void verificaPresenzaStato(String stato) { - WebTool.waitTime(10); + webTool.waitTime(10); By statusChip = By.xpath("//div[@data-testid='itemStatus']//span[contains(text(),'" + stato + "')]"); getWebDriverWait(10).withMessage("Lo stato " + stato + " non è presente") .until(ExpectedConditions.visibilityOfElementLocated(statusChip)); @@ -1167,7 +1171,7 @@ public void verificaNotificaCreata() { notificationSingleton.setScenarioIun(HooksNew.getScenario(), notificationIUN); return; } else { - WebTool.waitTime(90); + webTool.waitTime(90); logger.info("Tentativo n.{} - Stato notifica: {}", maximumRetry, notificationStatus); maximumRetry++; } @@ -1181,7 +1185,7 @@ public void clickSuNotifica() { String iun = notificationSingleton.getIun(Hooks.scenario); logger.info("iun notifica {}", iun); //By notification = By.xpath("//table[@id='notifications-table']//tr[.//button[contains(text(),'" + iun + "')]]"); - WebTool.waitTime(10); + webTool.waitTime(10); WebElement notification = driver.findElement(By.xpath("//table[@id='notifications-table']//tr[.//button[contains(text(),'" + iun + "')]]")); getWebDriverWait(30).withMessage("notifica non esistente").until(ExpectedConditions.visibilityOf(notification)); notification.click(); @@ -1189,7 +1193,7 @@ public void clickSuNotifica() { public void checkStatoNotifica(String stato) { driver.navigate().refresh(); - WebTool.waitTime(10); + webTool.waitTime(10); WebElement notificationLine = notificationsTableLines.get(0); WebElement chipStatus = notificationLine.findElement(By.id("status-chip-" + stato)); getWebDriverWait(10).withMessage("La notifica non ha lo stato " + stato).until(ExpectedConditions.visibilityOf(chipStatus)); @@ -1209,7 +1213,7 @@ public void selezionaNotificaConStato(String statoNotifica) { } catch (NoSuchElementException e) { logger.info("Dopo " + i + " tentativi la notifica non è ancora passata allo stato: " + statoNotifica); } - WebTool.waitTime(15); + webTool.waitTime(15); driver.navigate().refresh(); } if (!testSuccess) { @@ -1232,7 +1236,7 @@ public void pollingSuStatoNotificaPerCompletamento(String statoNotifica) { } catch (NoSuchElementException e) { logger.info("Dopo " + i + " tentativi la notifica non è ancora passata allo stato: " + statoNotifica); } - WebTool.waitTime(15); + webTool.waitTime(15); driver.navigate().refresh(); } if (!testSuccess) { @@ -1271,7 +1275,7 @@ public void clickBottoneAnnullaNotifica() { public void visualizzaTimelineTuttiDestinatari(Map destinatari) { logger.info("Si clicca vedi piu dettagli"); - WebTool.waitTime(10); + webTool.waitTime(10); List viewMore = driver.findElements(By.xpath("//*[@id='more-less-timeline-step']")); //Equals() method utilizzato per String. Per confrontare int variabile dobbiamo usare == String size = Integer.toString(viewMore.size()); @@ -1295,7 +1299,7 @@ public void visualizzaTimelineTuttiDestinatari(Map destinatari) } public void visualizzaTimeline(String check) { - WebTool.waitTime(10); + webTool.waitTime(10); List viewMore = driver.findElements(By.xpath("//*[@id='more-less-timeline-step']")); viewMore.get(0).click(); String size = Integer.toString(viewMore.size()); @@ -1333,9 +1337,9 @@ public void verificaDestinatariNonRaggiungibili(Map destinatari) if (size.equals("2")) { viewMore.get(1).click(); } - WebTool.waitTime(2); + webTool.waitTime(2); WebElement destPF = driver.findElement(By.xpath("//p[contains(text(),'" + destinatari.get("PF") + " è fallito')]")); - WebTool.waitTime(2); + webTool.waitTime(2); WebElement destPG = driver.findElement(By.xpath("//p[contains(text(),'" + destinatari.get("PG") + " è fallito')]")); if (destPG.isDisplayed() && destPF.isDisplayed()) { @@ -1412,7 +1416,7 @@ public void clickNotificaRicercata() { } public void checkMessaggioErroreConCodice(int code) { - WebTool.waitTime(3); + webTool.waitTime(3); erroreMessaggio = driver.findElement(By.id("message")); switch (code) { case 19 -> { @@ -1495,7 +1499,7 @@ public void checkClickDownloadRicevutePEC() { } public void verificaMittente(String ente) { - WebTool.waitTime(2); + webTool.waitTime(2); By mittente = By.id("row-value-1"); getWebDriverWait(10).withMessage("Mittente non trovato").until(ExpectedConditions.and( ExpectedConditions.visibilityOfElementLocated(mittente), diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/SelezionaEntePAPage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/SelezionaEntePAPage.java index 09144a909..666f6a042 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/SelezionaEntePAPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/SelezionaEntePAPage.java @@ -10,6 +10,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; import java.util.List; @@ -37,6 +38,10 @@ public class SelezionaEntePAPage extends BasePage { @FindBy(id = "search") private WebElement comuneSearchField; + @Autowired + @Lazy + private WebTool webTool; + @Autowired public SelezionaEntePAPage(WebDriver driver) { super(driver); @@ -44,7 +49,7 @@ public SelezionaEntePAPage(WebDriver driver) { public void waitLoadSelezionaEntePAPage() { try { - WebTool.waitTime(20); + webTool.waitTime(20); WebElement titlePage = driver.findElement(By.xpath("//h3[text()='Seleziona il tuo ente']")); WebElement searchField = driver.findElement(By.id("search")); getWebDriverWait(30) diff --git a/src/main/java/it/pn/frontend/e2e/rest/RestDelegation.java b/src/main/java/it/pn/frontend/e2e/rest/RestDelegation.java index 1347ddb15..afccf1eee 100644 --- a/src/main/java/it/pn/frontend/e2e/rest/RestDelegation.java +++ b/src/main/java/it/pn/frontend/e2e/rest/RestDelegation.java @@ -10,6 +10,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import java.io.IOException; @@ -35,14 +36,13 @@ public class RestDelegation { @Autowired private CustomHttpClient httpClientPG; - @Autowired - private WebDriverConfig webDriverConfig; + @Value("${environment}") + private String environment; private final Map headers = new HashMap<>(); @Autowired - public RestDelegation(WebDriverConfig webDriverConfig) { - this.webDriverConfig = webDriverConfig; + public RestDelegation() { initializeHeaders(); setupHttpClients(); } @@ -57,7 +57,7 @@ private void initializeHeaders() { } private void setupHttpClients() { - String baseUrl = "https://webapi." + webDriverConfig.getEnvironment() + ".notifichedigitali.it"; + String baseUrl = "https://webapi." + environment + ".notifichedigitali.it"; httpClientPF.setBaseUrlApi(baseUrl); httpClientPG.setBaseUrlApi(baseUrl); } diff --git a/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/HeaderPFSection.java b/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/HeaderPFSection.java index 7d7af4000..4dca208eb 100644 --- a/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/HeaderPFSection.java +++ b/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/HeaderPFSection.java @@ -12,6 +12,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; import java.util.List; @@ -30,6 +31,10 @@ public class HeaderPFSection extends BasePage { @FindBy(xpath = "//ul[@role='menu']//li") List menuProfileItems; + @Autowired + @Lazy + private WebTool webTool; + @Autowired public HeaderPFSection(WebDriver driver) { super(driver); @@ -37,7 +42,7 @@ public HeaderPFSection(WebDriver driver) { public void waitLoadHeaderDESection() { try { - WebTool.waitTime(15); + webTool.waitTime(15); titleLabel = driver.findElement(By.xpath("//a[@title='Sito di PagoPA S.p.A.']")); buttonProfile = driver.findElement(By.xpath("//button[@aria-label='party-menu-button']")); getWebDriverWait(30).withMessage("il titolo del header non è visibile").until(ExpectedConditions.visibilityOf(titleLabel)); diff --git a/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/LeTueDelegheSection.java b/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/LeTueDelegheSection.java index dc5020551..0e1f83ead 100644 --- a/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/LeTueDelegheSection.java +++ b/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/LeTueDelegheSection.java @@ -12,6 +12,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; import java.time.LocalDate; @@ -89,6 +90,10 @@ public class LeTueDelegheSection extends BasePage { @FindBy(xpath = "//tr[@data-testid='delegatorsTable.body.row']") List delegatorsTableRows; + @Autowired + @Lazy + private WebTool webTool; + @Autowired public LeTueDelegheSection(WebDriver driver) { super(driver); @@ -201,7 +206,7 @@ public void messaggioDiErroreDelegaPresente() { } public void clickOpzioneAccetta() { - WebTool.waitTime(1); + webTool.waitTime(1); By acceptDelegaButton = By.xpath("//*[@id='accept-button']"); element(acceptDelegaButton).click(); } @@ -355,7 +360,7 @@ public boolean verificaEsistenzaErroreCodiceSbagliato() { } public void checkIndicatoreNumerico(){ try { - WebTool.waitTime(10); + webTool.waitTime(10); By notificationNumber = By.xpath("//*[@data-testid='notifications']"); getWebDriverWait(5).withMessage("La notifica con il indicatore non è visibile").until(ExpectedConditions.visibilityOfElementLocated(notificationNumber)); }catch (RuntimeException e){ diff --git a/src/main/java/it/pn/frontend/e2e/section/destinatario/personaGiuridica/AggiungiDelegaPGSection.java b/src/main/java/it/pn/frontend/e2e/section/destinatario/personaGiuridica/AggiungiDelegaPGSection.java index b5b77ab70..0cc624c90 100644 --- a/src/main/java/it/pn/frontend/e2e/section/destinatario/personaGiuridica/AggiungiDelegaPGSection.java +++ b/src/main/java/it/pn/frontend/e2e/section/destinatario/personaGiuridica/AggiungiDelegaPGSection.java @@ -10,6 +10,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; import java.time.LocalDate; @@ -63,6 +64,10 @@ public class AggiungiDelegaPGSection extends BasePage { @FindBy(id = "expirationDate-helper-text") WebElement messaggioErroreData; + @Autowired + @Lazy + private WebTool webTool; + private boolean dataFineErrata; public AggiungiDelegaPGSection(WebDriver driver) { @@ -100,7 +105,7 @@ public void clickSulBottoneInviaRichiesta() { this.getWebDriverWait(10).withMessage("Bottone invia la richiesta non visualizzato").until(ExpectedConditions.elementToBeClickable(this.inviaLaRichiestaButton)); logger.info("click invia richiesta"); this.inviaLaRichiestaButton.click(); - WebTool.waitTime(3); + webTool.waitTime(3); this.getWebDriverWait(10).withMessage("Bottone torna alle deleghe non visualizzato").until(ExpectedConditions.elementToBeClickable(this.tornaDelegheButton)); this.tornaDelegheButton.click(); logger.info("click torna alle deleghe"); @@ -183,11 +188,11 @@ public boolean insertData(String dataInserita) { try { getWebDriverWait(10).withMessage("il campo data non è visibile nella pagina").until(ExpectedConditions.visibilityOf(this.dataTermineDelegaInput)); - WebTool.waitTime(15); + webTool.waitTime(15); dataTermineDelegaInput = getWebDriverWait(10).until(ExpectedConditions.elementToBeClickable(By.id("expirationDate"))); - WebTool.waitTime(10); + webTool.waitTime(10); String[] arraySplitDateDa = dataInserita.split("/"); List dataFieldList = driver.findElements(By.cssSelector(".MuiInputBase-input")); diff --git a/src/main/java/it/pn/frontend/e2e/section/mittente/DettaglioNotificaMittenteSection.java b/src/main/java/it/pn/frontend/e2e/section/mittente/DettaglioNotificaMittenteSection.java index 46669f6e8..589792f7f 100644 --- a/src/main/java/it/pn/frontend/e2e/section/mittente/DettaglioNotificaMittenteSection.java +++ b/src/main/java/it/pn/frontend/e2e/section/mittente/DettaglioNotificaMittenteSection.java @@ -12,6 +12,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; import java.io.File; @@ -71,6 +72,10 @@ public class DettaglioNotificaMittenteSection extends BasePage { @Autowired PiattaformaNotifichePage piattaformaNotifichePage; + @Autowired + @Lazy + private WebTool webTool; + @Autowired public DettaglioNotificaMittenteSection(WebDriver driver) { super(driver); @@ -557,7 +562,7 @@ public void checkInvioMessaggioDiCortesia() { } catch (NoSuchElementException e) { logger.info("Dopo " + (i + 1) + " tentativi l'invio del messaggio al contatto di cortesia non è avvenuto"); } - WebTool.waitTime(15); + webTool.waitTime(15); driver.navigate().refresh(); } if (!testSuccess) { @@ -582,13 +587,13 @@ public void insertIunSalvatoAndRicercaOnPage(String iun) { this.getWebDriverWait(30).withMessage("bottone per la ricerca non trovato").until(ExpectedConditions.elementToBeClickable(buttonRicerca)); buttonRicerca.click(); - WebTool.waitTime(3); + webTool.waitTime(3); } public void sceglieEnte(String nomeEnte){ logger.info("Si sceglie ente: " + nomeEnte); enteButton.click(); - WebTool.waitTime(1); + webTool.waitTime(1); By ente = By.xpath("//h6[contains(text(), '" + nomeEnte + "')]"); element(ente).click(); } diff --git a/src/main/java/it/pn/frontend/e2e/section/mittente/InformazioniPreliminariPASection.java b/src/main/java/it/pn/frontend/e2e/section/mittente/InformazioniPreliminariPASection.java index 8df1f3ca4..3e8491710 100644 --- a/src/main/java/it/pn/frontend/e2e/section/mittente/InformazioniPreliminariPASection.java +++ b/src/main/java/it/pn/frontend/e2e/section/mittente/InformazioniPreliminariPASection.java @@ -13,6 +13,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; import java.util.Map; @@ -46,6 +47,10 @@ public class InformazioniPreliminariPASection extends BasePage { @Autowired private WebDriverConfig webDriverConfig; + @Autowired + @Lazy + private WebTool webTool; + @Autowired public InformazioniPreliminariPASection(WebDriver driver) { super(driver); @@ -138,7 +143,7 @@ public void compilazioneInformazioniPreliminari(Map datiNotificaM insertNumeroDiProtocollo(WebTool.generatePaProtocolNumber()); insertOggettoNotifica(datiNotificaMap.get("oggettoDellaNotifica")); insertDescrizione(datiNotificaMap.get("descrizione")); - WebTool.waitTime(2); + webTool.waitTime(2); insertGruppo(gruppo); insertCodiceTassonometrico(datiNotificaMap.get("codiceTassonometrico")); if (datiNotificaMap.get("modello").equals("AR")){ diff --git a/src/main/java/it/pn/frontend/e2e/utility/WebTool.java b/src/main/java/it/pn/frontend/e2e/utility/WebTool.java index c6f4c3eb6..73a39a7b9 100644 --- a/src/main/java/it/pn/frontend/e2e/utility/WebTool.java +++ b/src/main/java/it/pn/frontend/e2e/utility/WebTool.java @@ -17,6 +17,8 @@ import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.WebDriver; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; +import org.springframework.stereotype.Component; import java.text.SimpleDateFormat; import java.time.*; @@ -28,78 +30,85 @@ import java.util.concurrent.TimeUnit; @Slf4j +@Component public class WebTool { @Autowired + @Lazy private WebDriverConfig webDriverConfig; - @Autowired - private HooksNew hooks; + @Lazy + private HooksNew hooks; + @Autowired + private HeaderPASection headerPASection; + @Autowired + private HeaderPFSection headerPFSection; + @Autowired + private HeaderPGSection headerPGSection; + @Autowired + private NotifichePFPage notifichePFPage; + @Autowired + private PiattaformaNotifichePage piattaformaNotifichePage; + @Autowired + private CookiesSection cookiesSection; private static final Integer NOTICE_CODE_LENGTH = 18; - private static final WebDriver driver = Hooks.driver; - private final List netWorkInfos = Hooks.netWorkInfos; //private final String env1 = System.getProperty("environment"); //@Getter //private static final String apiBaseUrl = System.getProperty("apiBaseUrl"); - public static String switchToPortal(AppPortal portal) { + public String switchToPortal(AppPortal portal) { openNewTab(); switch (portal) { case PA -> { - driver.get(portal.url); - HeaderPASection headerPASection = new HeaderPASection(driver); + hooks.getDriver().get(portal.url); headerPASection.waitLoadHeaderSection(); - PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(driver); piattaformaNotifichePage.waitLoadPiattaformaNotifichePAPage(); } case PF -> { - driver.get(portal.url); - HeaderPFSection headerPFSection = new HeaderPFSection(driver); + hooks.getDriver().get(portal.url); headerPFSection.waitLoadHeaderDESection(); - NotifichePFPage notifichePFPage = new NotifichePFPage(driver); notifichePFPage.waitLoadNotificheDEPage(); } case PG -> { - driver.get(portal.url); - HeaderPGSection headerPGSection = new HeaderPGSection(driver); + hooks.getDriver().get(portal.url); headerPGSection.waitLoadHeaderPGPage(); } case HELPDESK -> { - driver.get(portal.url); + hooks.getDriver().get(portal.url); } default -> { log.error("Tipologia di portale non specificato o errato!"); Assertions.fail("Tipologia di portale non specificato o errato!"); } } - CookiesSection cookiesPage = new CookiesSection(driver); - if (cookiesPage.waitLoadCookiesPage()) { - cookiesPage.selezionaAccettaTuttiButton(); + + if (cookiesSection.waitLoadCookiesPage()) { + cookiesSection.selezionaAccettaTuttiButton(); } - return driver.getWindowHandle(); + return hooks.getDriver().getWindowHandle(); } - public static void openNewTab() { - ((JavascriptExecutor) driver).executeScript("window.open()"); - String newTab = driver.getWindowHandles().stream().reduce((first, second) -> second).orElse(null); - driver.switchTo().window(newTab); + public void openNewTab() { + ((JavascriptExecutor) hooks.getDriver()).executeScript("window.open()"); + String newTab = hooks.getDriver().getWindowHandles().stream().reduce((first, second) -> second).orElse(null); + hooks.getDriver().switchTo().window(newTab); } - public static void closeTab() { + public void closeTab() { log.info("Si chiude la scheda corrente"); - driver.close(); - String newTab = driver.getWindowHandles().stream().reduce((first, second) -> second).orElse(null); - driver.switchTo().window(newTab); + hooks.getDriver().close(); + String newTab = hooks.getDriver().getWindowHandles().stream().reduce((first, second) -> second).orElse(null); + hooks.getDriver().switchTo().window(newTab); } - public static void switchToOtherTab(){ - String parentWindowHandle = driver.getWindowHandle(); - Set windowHandles = driver.getWindowHandles(); + public void switchToOtherTab(){ + String parentWindowHandle = hooks.getDriver().getWindowHandle(); + Set windowHandles = hooks.getDriver().getWindowHandles(); for (String handle : windowHandles) { if (!handle.equals(parentWindowHandle)) { - driver.switchTo().window(handle); + hooks.getDriver().switchTo().window(handle); break; } } @@ -144,7 +153,7 @@ public static String decodeNotificationRequestId(String NotificationRequestId) { * * @param seconds the number of seconds to wait */ - public static void waitTime(int seconds) { + public void waitTime(int seconds) { try { int minutes; int remainingSeconds; diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java index 007c70322..3c9f4f371 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java @@ -13,6 +13,10 @@ import it.pn.frontend.e2e.config.WebDriverConfig; import it.pn.frontend.e2e.listeners.LoggerStartupListener; import it.pn.frontend.e2e.listeners.NetWorkInfo; +import it.pn.frontend.e2e.model.delegate.DelegateRequestPF; +import it.pn.frontend.e2e.model.delegate.DelegateRequestPG; +import it.pn.frontend.e2e.model.delegate.DelegateResponsePF; +import it.pn.frontend.e2e.model.delegate.DelegateResponsePG; import it.pn.frontend.e2e.model.singleton.MandateSingleton; import it.pn.frontend.e2e.model.singleton.NotificationSingleton; import it.pn.frontend.e2e.pages.destinatario.DestinatarioPage; @@ -119,6 +123,14 @@ RecuperoOTPRecapiti.class, BackgroundTest.class, GeneraApiKeySection.class, + RestDelegation.class, + DelegateRequestPF.class, + DelegateRequestPG.class, + DelegateResponsePF.class, + DelegateResponsePG.class, + WebTool.class, + UtentiPGPage.class, + GruppiPGPage.class }) @EnableScheduling diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/BackgroundTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/BackgroundTest.java index aed3b79b4..3e516490a 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/BackgroundTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/BackgroundTest.java @@ -67,6 +67,9 @@ public class BackgroundTest { private PiattaformaNotifichePage piattaformaNotifichePage; @Autowired private NotificaMittentePagoPATest notificaMittentePagoPATest; + @Autowired + @Lazy + private WebTool webTool; @Autowired public BackgroundTest() { @@ -301,7 +304,7 @@ public void aggiuntaEmailDiCortesia(String email) { public void siEliminaPecEsistenteEAltriRecapitiAssociati() { recapitiDestinatarioPage.clickSuEliminaPec(); - WebTool.waitTime(3); + webTool.waitTime(3); if (recapitiDestinatarioPage.waitLoadPopUpElimina().equalsIgnoreCase("Rimuovi PEC")) { recapitiDestinatarioPage.clickSuConfermaElimina(); } else { @@ -336,7 +339,7 @@ public void checkPECEsistentePerEliminazioneEInserimento(String emailPEC) { } siInserisceUnaPECConCampoInputVisibile(emailPEC); } - WebTool.waitTime(10); + webTool.waitTime(10); } public void checkEmailDiCortesiaPerEliminazioneEInserimento(String emailDiCortesia) { @@ -355,7 +358,7 @@ public void checkEmailDiCortesiaPerEliminazioneEInserimento(String emailDiCortes } aggiuntaEmailDiCortesia(emailDiCortesia); } - WebTool.waitTime(10); + webTool.waitTime(10); } public void inserimentoOTPErratoTreVolteEControlloMessaggio(String OTP) { @@ -382,7 +385,7 @@ public void siFiltraLaTabellaDelleNotificheDelDestinatarioPerIUN(String iun) { public void siFiltraLaTabellaDelleNotifichePerIUNMittente(String iun) { piattaformaNotifichePage.inserimentoCodiceIUN(iun); piattaformaNotifichePage.selectFiltraNotificaButtonMittente(); - WebTool.waitTime(1); + webTool.waitTime(1); piattaformaNotifichePage.clickSuNotifica(); } } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/HelpdeskTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/HelpdeskTest.java index f832e2d99..b47b64e97 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/HelpdeskTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/HelpdeskTest.java @@ -49,6 +49,11 @@ public class HelpdeskTest { @Autowired @Lazy private BackgroundTest backgroundTest; + + @Autowired + @Lazy + private WebTool webTool; + private Map datiTestHelpdesk = new HashMap<>(); private Map datiPersonaFisica = new HashMap<>(); @@ -100,19 +105,19 @@ public void siVisualizzaCorrettamenteHomeMonitoraggio() { @And("Si crea il disservizio") public void siCreaIlDisservizio() { - WebTool.waitTime(5); + webTool.waitTime(5); if (!helpdeskPage.checkIsCreatedDisservizio()) { helpdeskPage.handleDisservizio(Disservice.CREAZIONE_NOTIFICHE, Status.KO); - WebTool.waitTime(5); + webTool.waitTime(5); } } @And("Si risolve il disservizio") public void siRisolveIlDisservizio() { - WebTool.waitTime(5); + webTool.waitTime(5); if (helpdeskPage.checkIsCreatedDisservizio()) { helpdeskPage.handleDisservizio(Disservice.CREAZIONE_NOTIFICHE,Status.OK); - WebTool.waitTime(5); + webTool.waitTime(5); } } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/DeleghePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/DeleghePagoPATest.java index 371783fb6..816a303d5 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/DeleghePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/DeleghePagoPATest.java @@ -61,6 +61,10 @@ public class DeleghePagoPATest { @Autowired private RestDelegation restDelegation; + @Autowired + @Lazy + private WebTool webTool; + Map deleghe = new HashMap<>(); @Setter private String codiceVerifica; @@ -493,7 +497,7 @@ public void nellaSezioneDelegheSiVerificaSiaPresenteUnaDelega(Map datiDelegato; @@ -117,7 +120,7 @@ public void loginMittenteConTokenExchange(String personaFisica) { String urlLogin = "https://cittadini." + environment + ".notifichedigitali.it/#token=" + token; this.hooks.getDriver().get(urlLogin); logger.info("Login effettuato con successo"); - WebTool.waitTime(10); + webTool.waitTime(10); // Si visualizza la dashboard e si verifica che gli elementi base siano presenti (header e title della pagina) headerPFSection.waitLoadHeaderDESection(); @@ -233,7 +236,7 @@ public void loginConDestinatario(Map datiPF) { confermaDatiSpidPFPage.selezionaConfermaButton(); headerPFSection.waitUrlToken(); - WebTool.waitTime(2); + webTool.waitTime(2); } @Then("Home page persona fisica viene visualizzata correttamente") diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/NotifichePersonaFisicaPagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/NotifichePersonaFisicaPagoPATest.java index 84b014c2f..12fdddc1e 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/NotifichePersonaFisicaPagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/NotifichePersonaFisicaPagoPATest.java @@ -70,6 +70,9 @@ public class NotifichePersonaFisicaPagoPATest { @Autowired private DettaglioNotificaSection dettaglioNotificaSection; + @Autowired + @Lazy + private WebTool webTool; @When("Nella pagina Piattaforma Notifiche persona fisica si clicca sul bottone Notifiche") public void nellaPiattaformaDestinatarioCliccareSulBottoneNotifiche() { @@ -291,7 +294,7 @@ public void siSelezionanoIFileAttestazioniOpponibiliDaScaricareAllInternoDellaNo } for (int i = 0; i < numeroLinkAttestazioniOpponibile; i++) { dettaglioNotificaSection.clickLinkAttestazioniOpponibile(i); - WebTool.waitTime(5); + webTool.waitTime(5); String urlFileAttestazioneOppponibile = downloadFile.getUrl("https://webapi.test.notifichedigitali.it/delivery-push/" + datiNotifica.get("codiceIUN").toString() + "/legal-facts/"); if (headless && urlFileAttestazioneOppponibile.isEmpty()) { @@ -370,7 +373,7 @@ public void siControllaCheNelPortaleDelDestinatarioLaNotificaSiaESiChiudeLaSched logger.info("Si controlla che anche nel portale del destinatario la notifica sia in stato " + statoNotifica + " e si chiude la scheda"); piattaformaNotifichePage.selezionaPrimaNotifica(); piattaformaNotifichePage.verificaPresenzaStato(statoNotifica); - WebTool.closeTab(); + webTool.closeTab(); } @And("Si verifica che gli allegati denominati {string} non sono scaricabili") @@ -483,7 +486,7 @@ public void siControllaCostiDiNotifica() { @And("Cliccare sul bottone Paga") public void cliccaBottonePaga(){ - WebTool.waitTime(5); + webTool.waitTime(5); accediAPiattaformaNotifichePage.cliccaPaga(); } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java index e66bd91c1..000896916 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java @@ -43,6 +43,10 @@ public class RecapitiPersonaFisicaTest { @Autowired private RecuperoOTPRecapiti recuperoOTPRecapiti; + @Autowired + @Lazy + private WebTool webTool; + public static String OTP; @When("Nella pagina Piattaforma Notifiche persona fisica si clicca sul bottone I Tuoi Recapiti") @@ -84,7 +88,7 @@ public void nellaPaginaITuoiRecapitiSiInserisceLIndirizzoDellaPECDelDestinatario @And("Nella pagina I Tuoi Recapiti si clicca sul bottone conferma") public void nellaPaginaITuoiRecapitiSiCliccaSulBottoneConferma() { logger.info("Si cerca di cliccare sul bottone conferma"); - WebTool.waitTime(10); + webTool.waitTime(10); recapitiDestinatarioPage.confermaButtonClick(); } @@ -93,7 +97,7 @@ public void nellaPaginaITuoiRecapitiSiVisualizzaCorrettamenteIlPopUpDiInseriment logger.info("Si visualizza correttamente il pop-up di inserimento OTP"); String url = webDriverConfig.getBaseUrl() + "addresses"; recapitiDestinatarioPage.waitLoadPopUp(); - WebTool.waitTime(3); + webTool.waitTime(3); if (verificaChiamataEmail(url)) { logger.info("La chiamata per inviare l'otp è stata effettuata"); } else { @@ -126,13 +130,13 @@ public void nellaPaginaITuoiRecapitiSiInserisceOTPSbagliato3Volte(String otp) { while (attempts < 3) { recapitiDestinatarioPage.sendOTP(otp); recapitiDestinatarioPage.confermaButtonClickPopUp(); - WebTool.waitTime(2); + webTool.waitTime(2); recapitiDestinatarioPage.clearOTP(); attempts++; } recapitiDestinatarioPage.sendOTP(otp); recapitiDestinatarioPage.confermaButtonClickPopUp(); - WebTool.waitTime(2); + webTool.waitTime(2); } @And("Si visualizza correttamente il messaggio di errore") @@ -166,7 +170,7 @@ public void nellaPaginaITuoiRecapitiSiInserisceLaPECErrata(String pecErrata) { @Then("Si visualizza correttamente il messaggio di pec errata") public void nellaPaginaITuoiRecapitiSiVisualizzaCorrettamenteIlMessaggioDiPecErrata() { - WebTool.waitTime(3); + webTool.waitTime(3); String errorMessageRead = recapitiDestinatarioPage.getPecErrorMessage(); Assertions.assertEquals("Indirizzo PEC non valido", errorMessageRead, "messaggio di errore letto : '" + errorMessageRead + "' non è uguale a : Indirizzo PEC non valido"); } @@ -334,7 +338,7 @@ public void nellaPaginaITuoiRecapitiSiInserisceIlCodiceOTP(String dpFile) { @And("Nella pagina I Tuoi Recapiti si inserisce il codice OTP") public void nellaPaginaITuoiRecapitiSiInserisceIlCodiceOTP() { logger.info("Si inserisce il codice OTP di verifica"); - WebTool.waitTime(2); + webTool.waitTime(2); iTuoiRecapitiPage.sendOTP(OTP); recapitiDestinatarioPage.confermaButtonClickPopUp(); if (recapitiDestinatarioPage.waitMessaggioErrore()) { @@ -363,7 +367,7 @@ public void nellaPaginaITuoiRecapitiSiInserisceIlCodiceOTPScaduto() throws Inter @Then("Nella pagina i Tuoi Recapiti si controlla che la pec sia stata inserita correttamente") public void nellaPaginaITuoiRecapitiSiControllaCheLaPecSiaStataInseritaCorrettamente() { logger.info("Si controlla che la pec sia stata inserita correttamente"); - WebTool.waitTime(15); + webTool.waitTime(15); hooks.getDriver().navigate().refresh(); if (!recapitiDestinatarioPage.verificaPecAssociata()) { logger.error("Pec non associata con errore"); @@ -475,7 +479,7 @@ public void nellaPaginaITuoiRecapitiSiControllaCheCiSiaGiaUnaEmail() { } else if (recapitiDestinatarioPage.controlloEmailAssociata(email)) { logger.info("verifica mail associata, step 2"); iTuoiRecapitiPage.eliminaEmailEsistente(); - WebTool.waitTime(3); + webTool.waitTime(3); if (recapitiDestinatarioPage.waitLoadPopUpElimina().equalsIgnoreCase("Rimuovi e-mail")) { logger.info("verifica mail associata, step 3"); @@ -648,7 +652,7 @@ public void nellaPaginaITuoiRecapitiSiVerificaCheLaPecSiaStataModificata(String recapitiDestinatarioPage.clickConfermaButton(); recapitiDestinatarioPage.visualizzaValidazione(); } else { - WebTool.waitTime(5); + webTool.waitTime(5); hooks.getDriver().navigate().refresh(); if (recapitiDestinatarioPage.siControllaPECModificata(pec)) { logger.info("La PEC è stata modificata"); @@ -772,7 +776,7 @@ public void nellaPaginaITuoiRecapitiSiCliccaSulBottoneEliminaPEC() { @And("Nel pop up elimina indirizzo pec si clicca sul bottone conferma") public void nelPopUpEliminaIndirizzoPecSiCliccaSulBottoneConferma() { logger.info("Si clicca sul bottone conferma"); - WebTool.waitTime(3); + webTool.waitTime(3); if (recapitiDestinatarioPage.waitLoadPopUpElimina().equalsIgnoreCase("Rimuovi PEC")) { recapitiDestinatarioPage.clickSuConfermaElimina(); } else { @@ -873,7 +877,7 @@ public void nellaSezioneAltriRecapitiSiControllaCheLaPecAggiuntivaSiaStataInseri } String pec = dataPopulation.readDataPopulation("personaFisica.yaml").get("additionalEmail").toString(); hooks.getDriver().navigate().refresh(); - WebTool.waitTime(10); + webTool.waitTime(10); if (!recapitiDestinatarioPage.verificaNuovaEmailEPEC(pec)) { logger.error("La email PEC non è stata associata correttamente"); Assertions.fail("La email PEC non è stata associata correttamente"); diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/DeleghePGPagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/DeleghePGPagoPATest.java index 6479e6b58..cac1cd092 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/DeleghePGPagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/DeleghePGPagoPATest.java @@ -71,6 +71,9 @@ public class DeleghePGPagoPATest { @Autowired private RestDelegation restDelegation; + @Autowired + @Lazy + private WebTool webTool; private boolean dataFineErrata; @@ -479,7 +482,7 @@ public void creoInBackgroundUnaDelegaPerPersonaGiuridica(Map per mandateSingleton.setScenarioMandateId(HooksNew.getScenario(),response.getMandateId()); mandateSingleton.setScenarioVerificationCode(mandateSingleton.getMandateId(HooksNew.getScenario()),response.getVerificationCode()); hooks.getDriver().navigate().refresh(); - WebTool.waitTime(2); + webTool.waitTime(2); } @And("Si clicca sul bottone accetta delega dopo aver inserito il codice di verifica") @@ -506,7 +509,7 @@ public void siAccettaLaDelegaSenzaGruppo() { @And("Si accetta la delega senza gruppo PF") public void siAccettaLaDelegaSenzaGruppoPF() { backgroundTest.accettazioneDelegaSceltaGruppoPF(false,null); - WebTool.waitTime(2); + webTool.waitTime(2); } @And("Si inserisce il codice della delega a carico dell impresa nella modale") @@ -555,7 +558,7 @@ public void siCliccaSulBottoneIndietroInAssegnazioneGruppo() { @And("Non si inserisce il codice OTP e l invito della delega non è più presente") public void nonSiInserisceIlCodiceOTPELInvitoDellaDelegaNonèPiùPresente() { - WebTool.waitTime(61 * 15); + webTool.waitTime(61 * 15); hooks.getDriver().navigate().refresh(); deleghePGPagoPAPage.waitLoadDeleghePage(); } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/DisserviziAppPGTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/DisserviziAppPGTest.java index f40412bac..8332e4fb4 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/DisserviziAppPGTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/DisserviziAppPGTest.java @@ -31,6 +31,9 @@ public class DisserviziAppPGTest { @Autowired @Lazy private BackgroundTest backgroundTest; + @Autowired + @Lazy + private WebTool webTool; @Given("Nella dashboard persona giuridica clicca su disservizi app") @@ -71,7 +74,7 @@ public void siVerificaAvvenutoDisservizioInPaginaStatoPiattaforma() { backgroundTest.getStatoDellaPiattaformaPage(); boolean res = false; for (int i = 0; i < 2; i++) { - WebTool.waitTime(30); + webTool.waitTime(30); disserviziAppPage.aggiornamentoPagina(); if (disserviziAppPage.checkDisservizioInCorso()) { res = true; diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/GruppiPGPagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/GruppiPGPagoPATest.java index 1a83eda9c..604c16194 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/GruppiPGPagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/GruppiPGPagoPATest.java @@ -8,14 +8,19 @@ import it.pn.frontend.e2e.utility.WebTool; import lombok.extern.slf4j.Slf4j; import org.openqa.selenium.WebDriver; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import java.util.Map; @Slf4j public class GruppiPGPagoPATest { - private final WebDriver driver = Hooks.driver; - private final GruppiPGPage gruppiPGPage = new GruppiPGPage(this.driver); + @Autowired + @Lazy + private WebTool webTool; + @Autowired + private GruppiPGPage gruppiPGPage; @When("Nella pagina Piattaforma Notifiche persona giuridica si clicca sul bottone Gruppi") public void nellaPaginaPiattaformaNotifichePersonaGiuridicaSiCliccaSulBottoneGruppi() { @@ -155,7 +160,7 @@ public void siVerificaCheVengaMostratoCorrettamenteIlPopupDiEliminazione() { @And("Si {string} il gruppo {string} creato inizialmente") public void siIlGruppoCreatoInizialmente(String azioneGruppo, String nomeGruppo) { log.info("Si elimina il gruppo {} creato all'inizio del test", nomeGruppo); - WebTool.waitTime(3); + webTool.waitTime(3); gruppiPGPage.eliminaGruppoDaPaginaIniziale(azioneGruppo, nomeGruppo); } } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java index 540823bc9..5c6a79898 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java @@ -76,6 +76,10 @@ public class LoginPGPagoPATest { @Autowired private CookiesSection cookiesSection; + @Autowired + @Lazy + private WebTool webTool; + @Given("Login Page persona giuridica viene visualizzata") public void loginPagePersonaGiuridicaVieneVisualizzata() { @@ -113,7 +117,7 @@ public void loginMittenteConTokenExchange(String personaGiuridica) { hooks.getDriver().get(urlLogin); logger.info("Login effettuato con successo"); - WebTool.waitTime(10); + webTool.waitTime(10); headerPGSection.waitLoadHeaderPGPage(); @@ -284,10 +288,10 @@ public void loginConPersonaGiuridica(Map datiPG) { public void logoutDaPortalePersonaGiuridica() { headerPGSection.waitLoadHeaderPGPage(); headerPGSection.clickEsciButton(); - WebTool.waitTime(5); + webTool.waitTime(5); accediAreaRiservataPGPage.waitLoadAccediAreaRiservataPGPage(); - WebTool.waitTime(5); + webTool.waitTime(5); } @When("Login {string} portale persona giuridica tramite request method") diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/NotifichePGPagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/NotifichePGPagoPATest.java index e090521e6..66a261006 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/NotifichePGPagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/NotifichePGPagoPATest.java @@ -81,6 +81,9 @@ public class NotifichePGPagoPATest { @Autowired @Lazy private BackgroundTest backgroundTest; + @Autowired + @Lazy + private WebTool webTool; @@ -205,7 +208,7 @@ public void siSelezionanoIFileAttestazioniOpponibiliDaScaricareAllInternoDellaNo } for (int i = 0; i < numeroLinkAttestazioniOpponibile; i++) { dettaglioNotificaSection.clickLinkAttestazioniOpponibile(i); - WebTool.waitTime(5); + webTool.waitTime(5); String urlFileAttestazioneOppponubile = downloadFile.getUrl("https://webapi.test.notifichedigitali.it/bff/v1/notifications/received/" + datiNotifica.get("codiceIUN").toString() + "/documents/"); if (headless && urlFileAttestazioneOppponubile.isEmpty()) { String testoLink = dettaglioNotificaSection.getTextLinkAttestazioniOpponibili(i); @@ -346,7 +349,7 @@ public void siControllaSiaPresenteLAvvisiPagoPaPG() { public void siControllaNonSiaPresenteLAvvisoPagoPa() { logger.info("Si controlla la presenza del box per il pagamento della notifica"); // AccediAPiattaformaNotifichePage accediAPiattaformaNotifichePage = new AccediAPiattaformaNotifichePage(this.driver); - WebTool.waitTime(5); + webTool.waitTime(5); Assertions.assertTrue( accediAPiattaformaNotifichePage.piuAvvisiDisplayed(), "Avviso PagoPA non sia presente"); logger.info("Avviso PagoPA è presente"); } @@ -355,7 +358,7 @@ public void siControllaNonSiaPresenteLAvvisoPagoPa() { public void siControllaNonSiaPresenteLAllegatoPagoPa() { logger.info("Si controlla la presenza del box per il pagamento della notifica"); // AccediAPiattaformaNotifichePage accediAPiattaformaNotifichePage = new AccediAPiattaformaNotifichePage(this.driver); - WebTool.waitTime(5); + webTool.waitTime(5); Assertions.assertTrue(accediAPiattaformaNotifichePage.allegatoPagoPaDisplayed(),"Avviso PagoPA non sia presente"); logger.info("Avviso PagoPA è presente"); } @@ -428,7 +431,7 @@ public void siSelezionanoIlFileDaScaricare(String nomeFile) throws IOException { boolean headless = webDriverConfig.getHeadless().equalsIgnoreCase("true"); // DettaglioNotificaMittenteSection dettaglioNotificaMittenteSection = new DettaglioNotificaMittenteSection(this.driver); dettaglioNotificaMittenteSection.clickLinkAttestazioneOpponibile(nomeFile); - WebTool.waitTime(5); + webTool.waitTime(5); // DownloadFile downloadFile = new DownloadFile(this.driver); final String url = downloadFile.getUrl(webDriverConfig.getBaseUrl() + "notifications/received/"); diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/RecapitiPGPagoPaTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/RecapitiPGPagoPaTest.java index 82cf9a2e3..959231b1d 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/RecapitiPGPagoPaTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/RecapitiPGPagoPaTest.java @@ -36,6 +36,9 @@ public class RecapitiPGPagoPaTest { @Autowired @Lazy private BackgroundTest backgroundTest; + @Autowired + @Lazy + private WebTool webTool; @And("Si visualizza correttamente la pagina Recapiti persona giuridica") @@ -89,7 +92,7 @@ public void nellaPaginaITuoiRecapitiSiInserisceIlNumeroDiTelefonoDelPGECliccaSul @Then("Si visualizzano correttamente tutti gli elementi della sezione altri recapiti") public void siVisualizzanoCorrettamenteTuttiGliElementiDellaSezioneAltriRecapiti() { logger.info("Si visualizzano correttamente tutti gli elementi della sezione altri recapiti"); - WebTool.waitTime(10); + webTool.waitTime(10); this.hooks.getDriver().navigate().refresh(); recapitiDestinatarioPage.visualizzazioneCampiSezioneAltriRecapiti(); } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/UtentiPGPagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/UtentiPGPagoPATest.java index e8b7f3d3c..462135b33 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/UtentiPGPagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/UtentiPGPagoPATest.java @@ -5,20 +5,28 @@ import io.cucumber.java.en.Then; import io.cucumber.java.en.When; import it.pn.frontend.e2e.listeners.Hooks; +import it.pn.frontend.e2e.listeners.HooksNew; import it.pn.frontend.e2e.pages.destinatario.personaGiuridica.HomePagePG; import it.pn.frontend.e2e.pages.destinatario.personaGiuridica.UtentiPGPage; import it.pn.frontend.e2e.utility.WebTool; import org.openqa.selenium.WebDriver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import java.util.Map; public class UtentiPGPagoPATest { private final Logger logger = LoggerFactory.getLogger("UtentiPGPagoPATest"); - private final WebDriver driver = Hooks.driver; - private final UtentiPGPage utentiPGPage = new UtentiPGPage(this.driver); - private final HomePagePG homePagePG = new HomePagePG(this.driver); + + @Autowired + @Lazy + private WebTool webTool; + @Autowired + private UtentiPGPage utentiPGPage; + @Autowired + private HomePagePG homePagePG; @And("Si visualizza correttamente la pagina utenti") public void siVisualizzaCorrettamenteLaPAginaUtenti() { @@ -32,7 +40,7 @@ public void siCliccaSulBottoneAggiungiUtente() { @And("Si visualizza correttamente la pagina aggiungi nuovo utente") public void siVisualizzaCorrettamenteLaPaginaAggiungiNuovoUtente() { - WebTool.waitTime(5); + webTool.waitTime(5); utentiPGPage.waitLoadAggiungiUtentePage(); } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DisserviziAppPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DisserviziAppPATest.java index 0282bdc47..d8b0c09e3 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DisserviziAppPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DisserviziAppPATest.java @@ -14,6 +14,7 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Lazy; import java.io.File; import java.io.IOException; @@ -40,6 +41,9 @@ public class DisserviziAppPATest { @Autowired private DownloadFile downloadFile; + @Autowired + @Lazy + private WebTool webTool; @When("Nella pagina Piattaforma Notifiche selezionare la voce 'stato della piattaforma'") public void nellaPaginaPiattaformaNotificheSelezionareLaVoceStatoDellaPiattaforma() { @@ -89,7 +93,7 @@ public void siScaricaAttestazioneOpponibileDisservizi() throws IOException { pathCartella.mkdirs(); } disserviziAppPAPage.clickLinkAttestazioniOpponibileDisservizi(0); - WebTool.waitTime(5); + webTool.waitTime(5); String legalFactId = downloadFile.getLegalFactId(); String urlFileAttestazioneOpponibile = baseUrl + "downtime/legal-facts/" + legalFactId; diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java index 22f562713..31a579b8d 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/DownloadFileMittentePagoPATest.java @@ -69,6 +69,9 @@ public class DownloadFileMittentePagoPATest { @Autowired @Lazy private BackgroundTest backgroundTest; + @Autowired + @Lazy + private WebTool webTool; @When("Nella pagina Piattaforma Notifiche si clicca sulla notifica restituita") @@ -109,7 +112,7 @@ public void downloadECheckFile() { } dettaglioNotificaMittenteSection.clickLinkDocumentiAllegati(); - WebTool.waitTime(5); + webTool.waitTime(5); final String filepath = workingDirectory + "/src/test/resources/dataPopulation/downloadFileNotifica/mittente/notificaN"; @@ -135,7 +138,7 @@ public void downloadECheckFile() { int numeroLinkAvvenutaRicezione = dettaglioNotificaMittenteSection.getLinkAvvenutaRicezione(); for (int i = 1; i < numeroLinkAvvenutaRicezione; i++) { dettaglioNotificaMittenteSection.clickLinkAvvenutaRicezione(i); - WebTool.waitTime(5); + webTool.waitTime(5); final String url = baseUrl + "notifications/sent/" + codiceIUN + "/documents/AAR?documentId=safestorage:"; final String urlAvvenutaRicezione = downloadFile.getUrl(url); if (headless && urlAvvenutaRicezione.isEmpty()) { @@ -155,7 +158,7 @@ public void downloadECheckFile() { for (int i = 0; i < numeroLinkAttestazioniOpponibile; i++) { dettaglioNotificaSection.clickLinkAttestazioniOpponibile(i); - WebTool.waitTime(5); + webTool.waitTime(5); final String urlFileAttestazioneOpponibile = downloadFile.getUrl(baseUrl); if (headless && urlFileAttestazioneOpponibile.isEmpty()) { String testoLink = dettaglioNotificaSection.getTextLinkAttestazioniOpponibili(i); @@ -196,7 +199,7 @@ public void downloadDocumentiAllegati() { codiceIUN = dettaglioNotificaMittenteSection.getInfoNotifica(4); } dettaglioNotificaMittenteSection.clickLinkDocumentiAllegati(); - WebTool.waitTime(5); + webTool.waitTime(5); final String filepath = workingDirectory + "/src/test/resources/dataPopulation/downloadFileNotifica/mittente/notificaN"; final String urlDocumenti = baseUrl + "notifications/sent/" + codiceIUN + "/attachments/documents/0"; @@ -268,7 +271,7 @@ public void downloadFileAAR() { int numeroLinkAvvenutaRicezione = dettaglioNotificaMittenteSection.getLinkAvvenutaRicezione(); for (int i = 1; i < numeroLinkAvvenutaRicezione; i++) { dettaglioNotificaMittenteSection.clickLinkAvvenutaRicezione(i); - WebTool.waitTime(5); + webTool.waitTime(5); final String url = "https://webapi." + variabileAmbiente + ".notifichedigitali.it/delivery-push/" + codiceIUN + "/document/AAR?documentId=safestorage:"; final String urlAvvenutaRicezione = downloadFile.getUrl(url); if (urlAvvenutaRicezione.isEmpty()) { @@ -343,7 +346,7 @@ public void siSelezionanoIlFileDaScaricare(String nomeFile) { boolean headless = headlessParam.equalsIgnoreCase("true"); this.datiNotifica = dataPopulation.readDataPopulation("datiNotifica.yaml"); dettaglioNotificaMittenteSection.clickLinkAttestazioneOpponibile(nomeFile); - WebTool.waitTime(5); + webTool.waitTime(5); final String url = downloadFile.getUrl(baseUrl + "notifications/sent/"); if (headless && url.isEmpty()) { @@ -453,7 +456,7 @@ public void downloadFileAttestazioneDisservizio() { logger.info("si effettua download del disservizio"); disserviziAppPAPage.downloadAttestazione(); - WebTool.waitTime(3); + webTool.waitTime(3); } @And("Download file attestazione disservizio {int}") @@ -461,7 +464,7 @@ public void downloadFileAttestazioneDisservizio(Integer index) { logger.info("si effettua download del disservizio"); disserviziAppPAPage.downloadAttestazione(index); - WebTool.waitTime(3); + webTool.waitTime(3); } @And("Nella pagina stato della piattaforma si cambia il numero elementi visualizzati attraverso il filtro") diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/LoginMittentePagoPA.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/LoginMittentePagoPA.java index 48641179c..227ea9a1d 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/LoginMittentePagoPA.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/LoginMittentePagoPA.java @@ -13,7 +13,6 @@ import it.pn.frontend.e2e.pages.mittente.*; import it.pn.frontend.e2e.section.CookiesSection; import it.pn.frontend.e2e.section.mittente.HeaderPASection; -import it.pn.frontend.e2e.utility.CookieConfig; import it.pn.frontend.e2e.utility.DataPopulation; import it.pn.frontend.e2e.utility.WebTool; import org.apache.hc.client5.http.cookie.BasicCookieStore; @@ -22,6 +21,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Primary; import java.util.Map; import java.util.concurrent.TimeUnit; @@ -39,6 +39,9 @@ public class LoginMittentePagoPA { @Autowired private DataPopulation dataPopulation; + @Autowired + @Lazy + private WebTool webTool; // Percorso del file token specificato nelle configurazioni, con valore di default 'tokenLogin.yaml' // @Value("${token.login.file:tokenLogin.yaml}") @@ -87,6 +90,7 @@ public class LoginMittentePagoPA { + @Given("Login Page mittente {string} viene visualizzata") public void loginPageMittenteVieneVisualizzata(String datiMittenteFile) { logger.info("Si recupera l'ambiente e si visualizza la pagina di login 1"); @@ -138,7 +142,7 @@ public void loginMittenteConTokenExchange() { hooks.getDriver().get(urlLogin); logger.info("Login effettuato con successo"); // Attesa statica di 10 secondi - considerare l'uso di WebDriverWait per migliorare l'efficienza - WebTool.waitTime(10); + webTool.waitTime(10); // Si visualizza la dashboard e si verifica che gli elementi base siano presenti (header e title della pagina) headerPASection.waitLoadHeaderSection(); @@ -408,7 +412,7 @@ public void homePageMittenteVieneVisualizzataCorrettamente() { public void logoutDaPortaleMittente() { logger.info("Si esce dal portale mittente"); - WebTool.waitTime(2); + webTool.waitTime(2); headerPASection.waitLoadHeaderSection(); headerPASection.selezionaEsciButton(); @@ -421,7 +425,7 @@ public void logoutDaPortaleMittente() { acccediAreaRiservataPAPage.waitLoadLoginPageMittente(); - WebTool.waitTime(5); + webTool.waitTime(5); } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java index a7019bcab..b15ffb3aa 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java @@ -58,7 +58,9 @@ public class NotificaMittentePagoPATest { @Getter @Setter private String ApiKey; - + @Autowired + @Lazy + private WebTool webTool; @Autowired private NotificationSingleton notificationSingleton; @Autowired @@ -104,6 +106,8 @@ public class NotificaMittentePagoPATest { AccettazioneRichiestaNotifica accettazioneRichiestaNotifica; + + @When("Nella Home page mittente cliccare sul bottone Gestisci di Piattaforma Notifiche") public void nellaHomePageMittenteCliccareSuGestisciDiPiattaforma() { logger.info("Cliccare sul bottone di Piattaforma Notifiche dell'Ambiente " + webDriverConfig.getEnvironment()); @@ -154,7 +158,7 @@ public String getNumeroProtocollo() { logger.info("Si recupera l'ultimo numero protocollo utilizzato"); this.piattaformaNotifichePage.siCambiaIlNumeroElementiVisualizzatiAttraversoIlFiltro(); - WebTool.waitTime(5); + webTool.waitTime(5); String urlNotifiche = webDriverConfig.getBaseUrl() + "notifications/"; for (NetWorkInfo netWorkInfo : webDriverConfig.getNetWorkInfos()) { if (netWorkInfo.getRequestUrl().contains(urlNotifiche) && netWorkInfo.getRequestUrl().endsWith("size=10")) { @@ -1216,39 +1220,39 @@ public void siVerificaCheLaNotificaEStataCreataCorrettamente() { @Then("In parallelo si effettua l'accesso al portale destinatario {string} e si apre la notifica ricevuta") public void inParalleloSiEffettuaLAccessoAlPortaleDestinatarioESiApreLaNotificaRicevuta(String destinatario) { if (PF.equalsIgnoreCase(destinatario)) { - WebTool.switchToPortal(AppPortal.PF); + webTool.switchToPortal(AppPortal.PF); } else { - WebTool.switchToPortal(AppPortal.PG); + webTool.switchToPortal(AppPortal.PG); } piattaformaNotifichePage.selezionaPrimaNotifica(); - WebTool.waitTime(5); - WebTool.closeTab(); + webTool.waitTime(5); + webTool.closeTab(); } @Then("In parallelo si effettua l'accesso al portale destinatario persona fisica e si verifica la timeline {string}") public void inParalleloSiEffettuaLAccessoAlPortaleDestinatarioPFESiVerificaLaTimeline(String messaggio) { - WebTool.switchToPortal(AppPortal.PF); + webTool.switchToPortal(AppPortal.PF); piattaformaNotifichePage.selezionaPrimaNotifica(); - WebTool.waitTime(5); + webTool.waitTime(5); piattaformaNotifichePage.visualizzaTimeline(messaggio); - WebTool.closeTab(); + webTool.closeTab(); } @Then("In parallelo si effettua l'accesso al portale destinatario persona giuridica e si apre la notifica ricevuta") public void inParalleloSiEffettuaLAccessoAlPortaleDestinatarioPGESiApreLaNotificaRicevuta() { - WebTool.switchToPortal(AppPortal.PG); + webTool.switchToPortal(AppPortal.PG); piattaformaNotifichePage.selezionaPrimaNotifica(); - WebTool.waitTime(5); - WebTool.closeTab(); + webTool.waitTime(5); + webTool.closeTab(); } @Then("In parallelo si effettua l'accesso al portale destinatario persona giuridica e si verifica la timeline {string}") public void inParalleloSiEffettuaLAccessoAlPortaleDestinatarioPGESiVerificaLaTimeline(String messagio) { - WebTool.switchToPortal(AppPortal.PG); + webTool.switchToPortal(AppPortal.PG); piattaformaNotifichePage.selezionaPrimaNotifica(); - WebTool.waitTime(5); + webTool.waitTime(5); piattaformaNotifichePage.visualizzaTimeline(messagio); - WebTool.closeTab(); + webTool.closeTab(); } @Then("In parallelo si effettua l'accesso al portale di {string}") @@ -1256,19 +1260,19 @@ public void inParalleloSiEffettuaLAccessoAlPortaleDestinatario(String portal) { portal = portal.toLowerCase(); switch (portal) { case PF: - WebTool.switchToPortal(AppPortal.PF); + webTool.switchToPortal(AppPortal.PF); break; case PG: - WebTool.switchToPortal(AppPortal.PG); + webTool.switchToPortal(AppPortal.PG); break; case PA: - WebTool.switchToPortal(AppPortal.PA); + webTool.switchToPortal(AppPortal.PA); break; default: logger.error("Tipologia di portale non specificato o errato!"); Assertions.fail("Tipologia di portale non specificato o errato!"); } - WebTool.waitTime(5); + webTool.waitTime(5); } @And("Nella timeline della notifica si visualizza l'invio del messaggio di cortesia") @@ -1287,9 +1291,9 @@ public void siVerificaCheLaNotificaAbbiaLoStato(String stato) { public void siAnnullaLaNotifica() { logger.info("Si clicca sul pusante annulla notifica"); piattaformaNotifichePage.clickBottoneAnnullaNotifica(); - WebTool.waitTime(3); + webTool.waitTime(3); piattaformaNotifichePage.clickAnnullaNotificaModale(); - WebTool.waitTime(3); + webTool.waitTime(3); } @And("Il bottone annulla notifica non è visualizzabile nella descrizione della notifica") @@ -1308,7 +1312,7 @@ public void nellaPaginaPiattaformaNotificheLaNotificaPresentaLoStato(String stat public void siCliccaIlBottoneIndietroNellaDescrizioneDellaNotifica() { logger.info("Si clicca sul bottone indietro della pagina della descrizione della notifica"); dettaglioNotificaMittenteSection.clickIndietroButton(); - WebTool.waitTime(10); + webTool.waitTime(10); } @And("Si attende che lo stato della notifica sia {string}") @@ -1337,9 +1341,9 @@ public void siVerificaCheLInvioDellaNotificaSiaFallitoDueVolte(int numeroFallime @And("Si attende la visualizzazione corretta del dettaglio della notifica") public void siAttendeCompletamentoNotifica() { siVisualizzaCorrettamenteLaSectionDettaglioNotifica(); - WebTool.waitTime(400); + webTool.waitTime(400); hooks.getDriver().navigate().refresh(); - WebTool.waitTime(3); + webTool.waitTime(3); } @And("Si seleziona la notifica") @@ -1510,7 +1514,7 @@ protected EsitoNotifica siVerificaEsitoNotifica(String dpFile) { } accettazioneRichiestaNotifica.setxApikey(codiceApi); String statusNotifica = "WAITING"; - WebTool.waitTime(5); + webTool.waitTime(5); String notificationRequestId = getNotificationRequestId(urlNotificationRequest); if (notificationRequestId == null) { logger.error("NotificationRequestId non trovato, il codice della risposta al url " + urlNotificationRequest + " è diverso di 202 "); @@ -1768,7 +1772,7 @@ public void siControllaLoStatoTimelineInDettaglioNotifica(Map da String idStato = datiDettaglioNotifica.get("xpathStato"); String viewDetail = datiDettaglioNotifica.get("vediDettagli"); siVisualizzaCorrettamenteLElencoCompletoDegliStatiCheLaNotificaHaPercorso(); - WebTool.waitTime(2); + webTool.waitTime(2); if (viewDetail.equals("true")){ dettaglioNotificaMittenteSection.clickVediPiuDettaglio(); } @@ -1780,7 +1784,7 @@ public void siVerificaLaCliccabilitaDellaRicevutaDiPostalizzazione(Map Date: Tue, 5 Nov 2024 11:17:22 +0100 Subject: [PATCH 193/212] fix rest delegation --- .../pn/frontend/e2e/config/CustomHttpClient.java | 3 ++- .../e2e/model/delegate/DelegateRequestPF.java | 1 + .../e2e/model/delegate/DelegateRequestPG.java | 1 + .../e2e/model/delegate/DelegateResponsePF.java | 1 + .../e2e/model/delegate/DelegateResponsePG.java | 1 + .../it/pn/frontend/e2e/rest/RestDelegation.java | 14 ++++++++------ .../stepDefinitions/CucumberSpringIntegration.java | 4 ---- .../feature/1-Login/000_loginPagoPA.feature | 1 - 8 files changed, 14 insertions(+), 12 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/config/CustomHttpClient.java b/src/main/java/it/pn/frontend/e2e/config/CustomHttpClient.java index 7fb7fe302..e1c47d256 100644 --- a/src/main/java/it/pn/frontend/e2e/config/CustomHttpClient.java +++ b/src/main/java/it/pn/frontend/e2e/config/CustomHttpClient.java @@ -52,7 +52,7 @@ public class CustomHttpClient { @Getter private String apiKey; - private CloseableHttpClient httpClient; + private final CloseableHttpClient httpClient; private ClassicHttpRequest httpRequest; @@ -73,6 +73,7 @@ public CustomHttpClient(String baseUrlApi, String apiKeyTest) { public CustomHttpClient(CustomHttpClient customHttpClient) { System.out.println("CustomHttpClient2......."); + instance = customHttpClient; this.baseUrlApi = "https://api.test.notifichedigitali.it"; this.httpClient = HttpClients.createDefault(); this.apiKey = "2b3d47f4-44c1-4b49-b6ef-54dc1c531311"; diff --git a/src/main/java/it/pn/frontend/e2e/model/delegate/DelegateRequestPF.java b/src/main/java/it/pn/frontend/e2e/model/delegate/DelegateRequestPF.java index 688905a1f..ad628cc31 100644 --- a/src/main/java/it/pn/frontend/e2e/model/delegate/DelegateRequestPF.java +++ b/src/main/java/it/pn/frontend/e2e/model/delegate/DelegateRequestPF.java @@ -2,6 +2,7 @@ import lombok.Builder; import lombok.Data; +import org.springframework.stereotype.Component; import java.util.List; diff --git a/src/main/java/it/pn/frontend/e2e/model/delegate/DelegateRequestPG.java b/src/main/java/it/pn/frontend/e2e/model/delegate/DelegateRequestPG.java index 719cb9e44..45a026985 100644 --- a/src/main/java/it/pn/frontend/e2e/model/delegate/DelegateRequestPG.java +++ b/src/main/java/it/pn/frontend/e2e/model/delegate/DelegateRequestPG.java @@ -2,6 +2,7 @@ import lombok.Builder; import lombok.Data; +import org.springframework.stereotype.Component; import java.util.List; diff --git a/src/main/java/it/pn/frontend/e2e/model/delegate/DelegateResponsePF.java b/src/main/java/it/pn/frontend/e2e/model/delegate/DelegateResponsePF.java index 79b45bf96..d01aa7e88 100644 --- a/src/main/java/it/pn/frontend/e2e/model/delegate/DelegateResponsePF.java +++ b/src/main/java/it/pn/frontend/e2e/model/delegate/DelegateResponsePF.java @@ -4,6 +4,7 @@ import lombok.Builder; import lombok.Data; import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Component; import java.util.List; import java.util.Map; diff --git a/src/main/java/it/pn/frontend/e2e/model/delegate/DelegateResponsePG.java b/src/main/java/it/pn/frontend/e2e/model/delegate/DelegateResponsePG.java index a0b39ea56..4777905cc 100644 --- a/src/main/java/it/pn/frontend/e2e/model/delegate/DelegateResponsePG.java +++ b/src/main/java/it/pn/frontend/e2e/model/delegate/DelegateResponsePG.java @@ -4,6 +4,7 @@ import lombok.Builder; import lombok.Data; import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Component; import java.util.List; import java.util.Map; diff --git a/src/main/java/it/pn/frontend/e2e/rest/RestDelegation.java b/src/main/java/it/pn/frontend/e2e/rest/RestDelegation.java index afccf1eee..396e87a75 100644 --- a/src/main/java/it/pn/frontend/e2e/rest/RestDelegation.java +++ b/src/main/java/it/pn/frontend/e2e/rest/RestDelegation.java @@ -30,19 +30,21 @@ public class RestDelegation { private static final Logger logger = LoggerFactory.getLogger(RestDelegation.class); - @Autowired - private CustomHttpClient httpClientPF; - - @Autowired - private CustomHttpClient httpClientPG; @Value("${environment}") private String environment; private final Map headers = new HashMap<>(); + private final CustomHttpClient httpClientPF; + private final CustomHttpClient httpClientPG; + + + @Autowired - public RestDelegation() { + public RestDelegation(CustomHttpClient httpClientPF, CustomHttpClient httpClientPG) { + this.httpClientPF = httpClientPF; + this.httpClientPG = httpClientPG; initializeHeaders(); setupHttpClients(); } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java index 3c9f4f371..16e385d93 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java @@ -124,10 +124,6 @@ BackgroundTest.class, GeneraApiKeySection.class, RestDelegation.class, - DelegateRequestPF.class, - DelegateRequestPG.class, - DelegateResponsePF.class, - DelegateResponsePG.class, WebTool.class, UtentiPGPage.class, GruppiPGPage.class diff --git a/src/test/resources/feature/1-Login/000_loginPagoPA.feature b/src/test/resources/feature/1-Login/000_loginPagoPA.feature index 8992ef22d..919761f65 100644 --- a/src/test/resources/feature/1-Login/000_loginPagoPA.feature +++ b/src/test/resources/feature/1-Login/000_loginPagoPA.feature @@ -3,7 +3,6 @@ Feature: Login pagoPA @TA_loginMittente @TestSuite @loginFE - Scenario: Login pagoPA mittente Given Login Page mittente viene visualizzata | url | https://selfcare.test.notifichedigitali.it | From 3ff6f77d0612df24feec0b072a417781645c92da Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Tue, 5 Nov 2024 11:44:48 +0100 Subject: [PATCH 194/212] fix --- .../frontend/e2e/pages/mittente/PiattaformaNotifichePage.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java index 72e0b7bba..3c7dea47d 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java @@ -1182,7 +1182,7 @@ public void verificaNotificaCreata() { public void clickSuNotifica() { - String iun = notificationSingleton.getIun(Hooks.scenario); + String iun = notificationSingleton.getIun(HooksNew.scenario); logger.info("iun notifica {}", iun); //By notification = By.xpath("//table[@id='notifications-table']//tr[.//button[contains(text(),'" + iun + "')]]"); webTool.waitTime(10); From 9f8dfaa521a93864274f82ca87f2f1fbfe8f2cd6 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Tue, 5 Nov 2024 14:30:08 +0100 Subject: [PATCH 195/212] fix apikeyPage --- .../e2e/stepDefinitions/CucumberSpringIntegration.java | 3 ++- .../destinatario/personaFisica/DeleghePagoPATest.java | 8 ++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java index 16e385d93..84624eda1 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java @@ -126,7 +126,8 @@ RestDelegation.class, WebTool.class, UtentiPGPage.class, - GruppiPGPage.class + GruppiPGPage.class, + ApiKeyPAPage.class }) @EnableScheduling diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/DeleghePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/DeleghePagoPATest.java index 816a303d5..7ab3f0cd6 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/DeleghePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/DeleghePagoPATest.java @@ -152,14 +152,14 @@ public void nellaSezioneDelegheSiVisualizzaLaDelegaInStatoDiAttesaDiConferma() { @And("Nella sezione Deleghe si clicca sul menu della delega") public void nellaSezioneDelegheSiCliccaSulMenuDellaDelega(Map personaFisica) { - log.info("Si clicca sul menu della delega"); + log.info("Nella sezione Deleghe si clicca sul menu della delega"); String fullName = personaFisica.get("nome") + " " + personaFisica.get("cognome"); deleghePage.clickMenuDelegante(fullName); } @And("Nella sezione Deleghe si clicca sul menu dei delegati") public void nellaSezioneDelegheSiCliccaSulMenuDeliDelegati(Map personaFisica) { - log.info("Si clicca sul menu della delega"); + log.info("Nella sezione Deleghe si clicca sul menu dei delegati"); String fullName = personaFisica.get("nome") + " " + personaFisica.get("cognome"); deleghePage.clickMenuDelegato(fullName); } @@ -209,7 +209,7 @@ public void nellaSezioneLeTueDelegheSiVisualizzaIlMessaggioDiErroreDelegaGiaAggi @And("Si verifica sia presente una delega nella sezione Deleghe a Tuo Carico") public void siVerificaSiaPresenteUnaDelegaNellaSezioneDelegheATuoCarico(Map datiPersonaFisica) { - log.info("Si controlla che ci sia almeno una delega"); + log.info("Si verifica sia presente una delega nella sezione Deleghe a Tuo Carico"); String nome = datiPersonaFisica.get("nome"); String cognome = datiPersonaFisica.get("cognome"); @@ -270,7 +270,7 @@ public void siInserisceIlCodiceErratoDelegaNelPopUp(String codice) { @And("Si inserisce il codice delega nel pop-up OTP {string}") public void siInserisceIlCodiceDelegaNelPopUpOTP(String data) { - log.info("Si inserisce il codice per accettare la delega"); + log.info("Si inserisce il codice delega nel pop-up OTP"); String verificationCode = ""; leTueDelegheSection.waitPopUpLoad(); From 54bc3d19e3ed5fe0a93ac3c48a1abc212aea23da Mon Sep 17 00:00:00 2001 From: scritelli Date: Tue, 5 Nov 2024 15:00:02 +0100 Subject: [PATCH 196/212] Ristrutturazione classe con springboot in attesa di test con la suite di mittente inoltre refactoring del codice ottimizzato secondo i standard, tolta logica di singleton e inserito il concetto del bean di Spring eliminazione singleton --- .../it/pn/frontend/e2e/config/CustomHttpClient.java | 13 +++---------- .../java/it/pn/frontend/e2e/rest/RestContact.java | 7 ++++--- .../it/pn/frontend/e2e/rest/RestNotification.java | 10 +++++++--- 3 files changed, 14 insertions(+), 16 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/config/CustomHttpClient.java b/src/main/java/it/pn/frontend/e2e/config/CustomHttpClient.java index dc89928a9..7eedff93b 100644 --- a/src/main/java/it/pn/frontend/e2e/config/CustomHttpClient.java +++ b/src/main/java/it/pn/frontend/e2e/config/CustomHttpClient.java @@ -18,6 +18,7 @@ import org.apache.hc.core5.http.io.entity.StringEntity; import org.apache.hc.core5.http.io.support.ClassicRequestBuilder; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; import java.io.File; import java.io.IOException; @@ -28,6 +29,7 @@ import java.util.List; import java.util.Map; +@Component @Slf4j public class CustomHttpClient { private static CustomHttpClient instance; @@ -65,16 +67,7 @@ public CustomHttpClient(String apiKeyTest) { } - public static CustomHttpClient getInstance() { - if (instance == null) { - synchronized (CustomHttpClient.class) { - if (instance == null) { - instance = new CustomHttpClient<>(); - } - } - } - return (CustomHttpClient) instance; - } + public static CustomHttpClient getInstanceWithApiKey(String apiKey) { if (instance == null) { diff --git a/src/main/java/it/pn/frontend/e2e/rest/RestContact.java b/src/main/java/it/pn/frontend/e2e/rest/RestContact.java index bffc3ebe9..db9c640bb 100644 --- a/src/main/java/it/pn/frontend/e2e/rest/RestContact.java +++ b/src/main/java/it/pn/frontend/e2e/rest/RestContact.java @@ -32,7 +32,8 @@ public class RestContact { @Autowired private WebDriverConfig webDriverConfig; - + @Autowired + private CustomHttpClient customHttpClient; private final Map headers = new HashMap<>(); // Carica il token all'avvio della classe @@ -105,7 +106,7 @@ public void removeSpecialContact(DigitalAddress digitalAddress) throws RestDeleg * Ottiene l'indirizzo digitale di default. */ public DigitalAddressResponse getDigitalAddress() throws RestContactException { - CustomHttpClient httpClientDigitalAddress = CustomHttpClient.getInstance(); + CustomHttpClient httpClientDigitalAddress = customHttpClient; httpClientDigitalAddress.setBaseUrlApi("https://webapi." + webDriverConfig.getEnvironment() + ".notifichedigitali.it"); String url = "/bff/v1/addresses/LEGAL/default/PEC"; @@ -125,7 +126,7 @@ public DigitalAddressResponse getDigitalAddress() throws RestContactException { * Ottiene tutti gli indirizzi digitali. */ public List getAllDigitalAddress() throws RestContactException { - CustomHttpClient httpClientDigitalAddress = CustomHttpClient.getInstance(); + CustomHttpClient httpClientDigitalAddress = customHttpClient; httpClientDigitalAddress.setBaseUrlApi("https://webapi." + webDriverConfig.getEnvironment() + ".notifichedigitali.it"); String url = "/bff/v1/addresses"; diff --git a/src/main/java/it/pn/frontend/e2e/rest/RestNotification.java b/src/main/java/it/pn/frontend/e2e/rest/RestNotification.java index d2889d948..3644224d3 100644 --- a/src/main/java/it/pn/frontend/e2e/rest/RestNotification.java +++ b/src/main/java/it/pn/frontend/e2e/rest/RestNotification.java @@ -9,6 +9,7 @@ import it.pn.frontend.e2e.model.documents.PreLoadResponse; import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.Assertions; +import org.springframework.beans.factory.annotation.Autowired; import java.io.File; import java.io.IOException; @@ -19,6 +20,9 @@ public class RestNotification { public RestNotification() { } + @Autowired + private CustomHttpClient customHttpClient; + /** * Create a new notification with one recipient and one document * @@ -53,7 +57,7 @@ public List preLoadDocument(List preLoadList) t } public void uploadDocument(String url, String secret, String sha256) throws RestNotificationException { - final CustomHttpClient httpClient2 = CustomHttpClient.getInstance(); + final CustomHttpClient httpClient2 = customHttpClient; try { httpClient2.sendHttpUpLoadPutRequest(url, secret, sha256, null); } catch (IOException e) { @@ -63,7 +67,7 @@ public void uploadDocument(String url, String secret, String sha256) throws Rest } public void uploadDocumentF24(String url, String secret, String sha256, File metaDatiDocument) throws RestNotificationException { - final CustomHttpClient httpClient2 = CustomHttpClient.getInstance(); + final CustomHttpClient httpClient2 = customHttpClient; try { httpClient2.sendHttpUpLoadf24PutRequest(url, secret, sha256, null, metaDatiDocument); } catch (IOException e) { @@ -73,7 +77,7 @@ public void uploadDocumentF24(String url, String secret, String sha256, File met } public LinkedTreeMap getNotificationStatus(String notificationRequestId) { - final CustomHttpClient httpClient2 = CustomHttpClient.getInstance(); // Modifica qui + final CustomHttpClient httpClient2 = customHttpClient; // Modifica qui httpClient2.setBaseUrlApi("https://api.test.notifichedigitali.it"); try { Object response = httpClient2.sendHttpGetRequest("/delivery/v2.3/requests?notificationRequestId=" + notificationRequestId, null, Object.class); From d6cba73a34f1ab8c8ff10923bd72c631f26babb1 Mon Sep 17 00:00:00 2001 From: andreadefranco Date: Tue, 5 Nov 2024 17:17:44 +0100 Subject: [PATCH 197/212] integration spring --- .../AccediAreaRiservataPGPage.java | 2 ++ .../personaGiuridica/GruppiPGPage.java | 18 ++++++++++--- .../PiattaformaNotifichePGPAPage.java | 15 +++++++---- .../personaGiuridica/UtentiPGPage.java | 21 +++++++++++---- .../mittente/PiattaformaNotifichePage.java | 1 - .../CucumberSpringIntegration.java | 2 ++ .../RecapitiPersonaFisicaTest.java | 2 -- .../personaGiuridica/GruppiPGPagoPATest.java | 11 ++++++-- .../personaGiuridica/LoginPGPagoPATest.java | 1 - .../NotifichePGPagoPATest.java | 27 ------------------- .../personaGiuridica/UtentiPGPagoPATest.java | 14 +++++++--- .../mittente/LoginMittentePagoPA.java | 1 - .../mittente/NotificaMittentePagoPATest.java | 1 - 13 files changed, 64 insertions(+), 52 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/AccediAreaRiservataPGPage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/AccediAreaRiservataPGPage.java index 5c504da56..518b6f289 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/AccediAreaRiservataPGPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/AccediAreaRiservataPGPage.java @@ -11,7 +11,9 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +@Component public class AccediAreaRiservataPGPage extends BasePage { private final Logger logger = LoggerFactory.getLogger("AccediAreaRiservataPGPage"); diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/GruppiPGPage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/GruppiPGPage.java index 6441a7c63..707fe8f74 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/GruppiPGPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/GruppiPGPage.java @@ -12,6 +12,7 @@ import org.openqa.selenium.support.FindBy; import org.openqa.selenium.support.ui.ExpectedConditions; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; import java.time.Instant; import java.time.LocalDate; @@ -20,9 +21,9 @@ import java.util.Map; @Slf4j +@Component public class GruppiPGPage extends BasePage { - private final AccediAreaRiservataPGPage accediAreaRiservataPGPage = new AccediAreaRiservataPGPage(driver); private final Actions actions = new Actions(driver); @FindBy(id = "side-item-Gruppi") @@ -45,7 +46,16 @@ public class GruppiPGPage extends BasePage { @Autowired private WebTool webTool; + @Autowired + private AccediAreaRiservataPGPage accediAreaRiservataPGPage; + @Autowired + private ScegliSpidPGPage scegliSpidPGPage ; + @Autowired + private LoginPGPagoPAPage loginPGPagoPAPage; + @Autowired + private AutorizzaInvioDatiPGPage autorizzaInvioDatiPGPage ; + @Autowired public GruppiPGPage(WebDriver driver) { super(driver); } @@ -61,14 +71,14 @@ public void clickGruppiButton() { public void loginGruppi(String nome, String pwd) { accediAreaRiservataPGPage.waitLoadAccediAreaRiservataPGPage(); accediAreaRiservataPGPage.clickSpidButton(); - ScegliSpidPGPage scegliSpidPGPage = new ScegliSpidPGPage(driver); + scegliSpidPGPage.clickTestButton(); - LoginPGPagoPAPage loginPGPagoPAPage = new LoginPGPagoPAPage(driver); + loginPGPagoPAPage.waitLoadLoginPGPage(); loginPGPagoPAPage.insertUsername(nome); loginPGPagoPAPage.insertPassword(pwd); loginPGPagoPAPage.clickInviaButton(); - AutorizzaInvioDatiPGPage autorizzaInvioDatiPGPage = new AutorizzaInvioDatiPGPage(driver); + autorizzaInvioDatiPGPage.waitLoadAutorizzaInvioDatiPGPage(); autorizzaInvioDatiPGPage.clickInviaButton(); } diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/PiattaformaNotifichePGPAPage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/PiattaformaNotifichePGPAPage.java index fbdada6ee..a82eda785 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/PiattaformaNotifichePGPAPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/PiattaformaNotifichePGPAPage.java @@ -77,6 +77,15 @@ public class PiattaformaNotifichePGPAPage extends BasePage { @Autowired private WebDriverConfig webDriverConfig; + @Autowired + private DownloadFile downloadFile; + @Autowired + private DettaglioNotificaMittenteSection dettaglioNotificaMittenteSection; + @Autowired + private HelpdeskPage helpdeskPage ; + @Autowired + private DettaglioNotificaSection dettaglioNotificaSection ; + @Autowired public PiattaformaNotifichePGPAPage(WebDriver driver) { @@ -269,8 +278,6 @@ public void clickRicevutaDiConsegna() throws AWTException, IOException { // Generate a unique filename for the downloaded ZIP file String fileName = "downloaded_" + System.currentTimeMillis() + ".zip"; - DownloadFile downloadFile = new DownloadFile(this.driver); - DettaglioNotificaMittenteSection dettaglioNotificaMittenteSection = new DettaglioNotificaMittenteSection(this.driver); String codiceIUN; WebTool.waitTime(1); codiceIUN = dettaglioNotificaMittenteSection.getInfoNotifica(3); @@ -340,7 +347,6 @@ public void extractZipWithoutPassword() throws IOException { String zipDirectoryPath = workingDirectory + "/src/test/resources/dataPopulation/zip"; String extractDirectoryPath = zipDirectoryPath + "/extract"; - HelpdeskPage helpdeskPage = new HelpdeskPage(this.driver); // Find the latest ZIP file File latestZipFile = helpdeskPage.findLatestZipFile(zipDirectoryPath); if (latestZipFile == null) { @@ -360,8 +366,7 @@ public void extractZipWithoutPassword() throws IOException { } public void controllaTesto(String nomeFile) { - DettaglioNotificaSection dettaglioNotificaSection = new DettaglioNotificaSection(this.driver); - DettaglioNotificaMittenteSection dettaglioNotificaMittenteSection = new DettaglioNotificaMittenteSection(this.driver); + Map infoNotifiche = dettaglioNotificaSection.recuperoInfoNotificheDestinatario(); if (nomeFile.contains("PN_NOTIFICATION_ATTACHMENTS")) { if (dettaglioNotificaMittenteSection.controlloTestoFile(nomeFile, "A Simple PDF File")) { diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/UtentiPGPage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/UtentiPGPage.java index 3579503e6..eb0f30170 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/UtentiPGPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/UtentiPGPage.java @@ -11,16 +11,18 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; import java.util.List; import java.util.Set; - +@Component public class UtentiPGPage extends BasePage { private final Logger logger = LoggerFactory.getLogger("UtentiPGPage"); - private final AccediAreaRiservataPGPage accediAreaRiservataPGPage = new AccediAreaRiservataPGPage(this.driver); + private final Actions actions = new Actions(this.driver); + @FindBy(xpath = "//button[contains(text(),'Aggiungi utente')]") WebElement addUserButton; @FindBy(xpath = "//button[contains(text(),'Indietro')]") @@ -74,7 +76,16 @@ public class UtentiPGPage extends BasePage { @Autowired private WebDriverConfig webDriverConfig; + @Autowired + private ScegliSpidPGPage scegliSpidPGPage ; + @Autowired + private AccediAreaRiservataPGPage accediAreaRiservataPGPage; + @Autowired + private LoginPGPagoPAPage loginPGPagoPAPage; + @Autowired + private AutorizzaInvioDatiPGPage autorizzaInvioDatiPGPage; + @Autowired public UtentiPGPage(WebDriver driver) { super(driver); } @@ -107,16 +118,16 @@ public void loginUtenti(String nome, String pwd) { accediAreaRiservataPGPage.waitLoadAccediAreaRiservataPGPage(); accediAreaRiservataPGPage.clickSpidButton(); - ScegliSpidPGPage scegliSpidPGPage = new ScegliSpidPGPage(this.driver); + scegliSpidPGPage.clickTestButton(); - LoginPGPagoPAPage loginPGPagoPAPage = new LoginPGPagoPAPage(this.driver); + loginPGPagoPAPage.waitLoadLoginPGPage(); loginPGPagoPAPage.insertUsername(nome); loginPGPagoPAPage.insertPassword(pwd); loginPGPagoPAPage.clickInviaButton(); - AutorizzaInvioDatiPGPage autorizzaInvioDatiPGPage = new AutorizzaInvioDatiPGPage(this.driver); + autorizzaInvioDatiPGPage.waitLoadAutorizzaInvioDatiPGPage(); autorizzaInvioDatiPGPage.clickInviaButton(); } diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java index a6d0f62a6..1743785a0 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/PiattaformaNotifichePage.java @@ -1142,7 +1142,6 @@ public void verificaPresenzaStato(String stato) { } public void verificaNotificaCreata() { -// RestNotification restNotification = new RestNotification(); String notificationRequestId = ""; for (NetWorkInfo netWorkInfo : webDriverConfig.getNetWorkInfos()) { if (netWorkInfo.getRequestUrl().contains("bff/v1/notifications/sent") && netWorkInfo.getRequestMethod().equals("POST")) { diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java index 007c70322..d9d307838 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/CucumberSpringIntegration.java @@ -119,6 +119,8 @@ RecuperoOTPRecapiti.class, BackgroundTest.class, GeneraApiKeySection.class, + UtentiPGPage.class, + GruppiPGPage.class }) @EnableScheduling diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java index e66bd91c1..0f1df0b50 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java @@ -185,7 +185,6 @@ public void nellaPaginaITuoiRecapitiSiControllaCheIlTastoAvvisamiViaEmailSiaBloc public void nellaPaginaITuoiRecapitiSiInserisceLEmailDelPFECliccaSulBottoneAvvisamiViaEmail(String dpFile) { logger.info("Si inserisce la email"); -// DataPopulation dataPopulation = new DataPopulation(); Map personaFisica = dataPopulation.readDataPopulation(dpFile + ".yaml"); String email = personaFisica.get("mail").toString(); @@ -213,7 +212,6 @@ public void nellaPaginaITuoiRecapitiSiInserisceIlNumeroDiTelefonoDelPF(String dp logger.info("Si inserisce il numero di telefono PF"); -// DataPopulation dataPopulation = new DataPopulation(); Map personaFisica = dataPopulation.readDataPopulation(dpFile + ".yaml"); String phoneNumber = personaFisica.get("telefono").toString(); diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/GruppiPGPagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/GruppiPGPagoPATest.java index 1a83eda9c..e1bb52985 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/GruppiPGPagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/GruppiPGPagoPATest.java @@ -4,18 +4,25 @@ import io.cucumber.java.en.Then; import io.cucumber.java.en.When; import it.pn.frontend.e2e.listeners.Hooks; +import it.pn.frontend.e2e.listeners.HooksNew; import it.pn.frontend.e2e.pages.destinatario.personaGiuridica.GruppiPGPage; import it.pn.frontend.e2e.utility.WebTool; import lombok.extern.slf4j.Slf4j; import org.openqa.selenium.WebDriver; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import java.util.Map; @Slf4j public class GruppiPGPagoPATest { - private final WebDriver driver = Hooks.driver; - private final GruppiPGPage gruppiPGPage = new GruppiPGPage(this.driver); +// private final WebDriver driver = Hooks.driver; + @Autowired + @Lazy + private HooksNew hooks; + @Autowired + private GruppiPGPage gruppiPGPage ; @When("Nella pagina Piattaforma Notifiche persona giuridica si clicca sul bottone Gruppi") public void nellaPaginaPiattaformaNotifichePersonaGiuridicaSiCliccaSulBottoneGruppi() { diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java index 540823bc9..fe6f0c76c 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/LoginPGPagoPATest.java @@ -357,7 +357,6 @@ public void loginPortalePersonaGiuridicaTramiteTokenExchange(String dpFile) { } public String getTokenExchangePGFromFile(String personaGiuridica) { - //DataPopulation dataPopulation = new DataPopulation(); String environment = webDriverConfig.getEnvironment(); String token = ""; switch (environment) { diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/NotifichePGPagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/NotifichePGPagoPATest.java index e090521e6..8e864cf15 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/NotifichePGPagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/NotifichePGPagoPATest.java @@ -88,7 +88,6 @@ public class NotifichePGPagoPATest { public void clickSendNotificheDigitali() { this.logger.info("Si clicca su Send Notifiche Digitali"); -// HomePagePG homePagePG = new HomePagePG(this.driver); homePagePG.waitLoadHomePagePGPage(); String variabileAmbiente = webDriverConfig.getEnvironment(); switch (variabileAmbiente) { @@ -103,7 +102,6 @@ public void clickSendNotificheDigitali() { @And("Si visualizza correttamente la Pagina Notifiche persona giuridica {string}") public void siVisualizzaCorrettamenteLaPaginaNotifichePersonaGiuridica(String ragioneSociale) { if (!cookieConfig.isCookieEnabled()) { -// CookiesSection cookiesSection = new CookiesSection(this.driver); if (cookiesSection.waitLoadCookiesPage()) { logger.info("Si accettano i cookies"); cookiesSection.selezionaAccettaTuttiButton(); @@ -192,10 +190,7 @@ public void nellaPaginaPiattaformaNotifichePersonaGiuridicaSiCliccaSulBottoneITu @Then("Si selezionano i file attestazioni opponibili da scaricare, all'interno della notifica persona giuridica, e si controlla che il download sia avvenuto {string}") public void siSelezionanoIFileAttestazioniOpponibiliDaScaricareAllInternoDellaNotificaPersonaGiuridicaESiControllaCheIlDownloadSiaAvvenuto(String dpFile) { -// DettaglioNotificaSection dettaglioNotificaSection = new DettaglioNotificaSection(this.driver); int numeroLinkAttestazioniOpponibile = dettaglioNotificaSection.getLinkAttestazioniOpponibili(); -// DownloadFile downloadFile = new DownloadFile(this.driver); -// DataPopulation dataPopulation = new DataPopulation(); Map datiNotifica = dataPopulation.readDataPopulation(dpFile + ".yaml"); String workingDirectory = System.getProperty("user.dir"); File pathCartella = new File(workingDirectory + "/src/test/resources/dataPopulation/downloadFileNotifica/destinatario/personaGiuridica"); @@ -236,11 +231,9 @@ private String getBearerToken() { public void siRecuperaBearerToken(String dpFile) { logger.info("Si recupera il bearer token"); -// DataPopulation dataPopulation = new DataPopulation(); personaGiuridica = dataPopulation.readDataPopulation(dpFile + ".yaml"); if (!cookieConfig.isCookieEnabled()) { -// CookiesSection cookiesSection = new CookiesSection(this.driver); if (cookiesSection.waitLoadCookiesPage()) { logger.info("Si accettano i cookies"); cookiesSection.selezionaAccettaTuttiButton(); @@ -277,14 +270,12 @@ public void siVerificaLaPresenzaDelloStatoNellaTimelineDellaNotifica(String stat @And("Si clicca sul radio bottone di pagamento") public void siCliccaRadioButtonPagamento() { -// PiattaformaNotifichePGPAPage piattaformaNotifichePGPAPage = new PiattaformaNotifichePGPAPage(this.driver); piattaformaNotifichePGPAPage.clickRadioBoxButton(); } @And("Si controlla sia presente il modello F24 destinatario") public void siControllaSiaPresenteIlModelloF24Destinatario() { logger.info("Si controlla sia presente il modello F24 PG"); -// PiattaformaNotifichePGPAPage piattaformaNotifichePGPAPage = new PiattaformaNotifichePGPAPage(this.driver); if (piattaformaNotifichePGPAPage.modelloF24Displayed()) { logger.info("Il modello F24 è trovato"); } else { @@ -296,7 +287,6 @@ public void siControllaSiaPresenteIlModelloF24Destinatario() { @And("Si controlla non sia presente il modello F24 destinatario") public void siControllaNonSiaPresenteIlModelloF24Destinatario() { logger.info("Si controlla non sia presente il modello F24 PG"); -// PiattaformaNotifichePGPAPage piattaformaNotifichePGPAPage = new PiattaformaNotifichePGPAPage(this.driver); if (!piattaformaNotifichePGPAPage.modelloF24Displayed()) { logger.info("Il modello F24 non è trovato"); } else { @@ -308,7 +298,6 @@ public void siControllaNonSiaPresenteIlModelloF24Destinatario() { @And("Si clicca sul modello F24 destinatario numero {int}") public void siCliccaIlModelloF24Destinatario(int numOfF24) { logger.info("Si clicca modello F24 destinatario"); -// PiattaformaNotifichePGPAPage piattaformaNotifichePGPAPage = new PiattaformaNotifichePGPAPage(this.driver); piattaformaNotifichePGPAPage.vaiInFondoAllaPagina(); piattaformaNotifichePGPAPage.clickModelloF24Numero(numOfF24); } @@ -317,7 +306,6 @@ public void siCliccaIlModelloF24Destinatario(int numOfF24) { @And("Si controlla sia presente l'avviso PagoPa destinatario") public void siControllaSiaPresenteLAvvisoPagoPaDestinatario() { logger.info("Si controlla la presenza del box per il pagamento della notifica"); -// AccediAPiattaformaNotifichePage accediAPiattaformaNotifichePage = new AccediAPiattaformaNotifichePage(this.driver); if (accediAPiattaformaNotifichePage.scaricaAvvisoDisplayed()) { logger.info("Avviso PagoPA è trovato"); } else { @@ -328,7 +316,6 @@ public void siControllaSiaPresenteLAvvisoPagoPaDestinatario() { @And("Si controlla sia presente piu avvisi PagoPa PG") public void siControllaSiaPresentePiuAvvisiPagoPaPG() { -// AccediAPiattaformaNotifichePage accediAPiattaformaNotifichePage = new AccediAPiattaformaNotifichePage(this.driver); Assertions.assertTrue(accediAPiattaformaNotifichePage.piuAvvisiDisplayed(),"Avvissi PagoPA non sono trovati"); logger.info("Avvissi PagoPA sono trovati"); @@ -337,7 +324,6 @@ public void siControllaSiaPresentePiuAvvisiPagoPaPG() { @And("Si controlla sia presente l'avvisi PagoPa PG") public void siControllaSiaPresenteLAvvisiPagoPaPG() { logger.info("Si controlla la presenza del box per il pagamento della notifica"); -// AccediAPiattaformaNotifichePage accediAPiattaformaNotifichePage = new AccediAPiattaformaNotifichePage(this.driver); Assertions.assertTrue(accediAPiattaformaNotifichePage.piuAvvisiDisplayed(),"Avviso PagoPA non è trovato"); logger.info("Avviso PagoPA è trovato"); } @@ -345,7 +331,6 @@ public void siControllaSiaPresenteLAvvisiPagoPaPG() { @And("Si controlla non sia presente l'avviso PagoPa") public void siControllaNonSiaPresenteLAvvisoPagoPa() { logger.info("Si controlla la presenza del box per il pagamento della notifica"); -// AccediAPiattaformaNotifichePage accediAPiattaformaNotifichePage = new AccediAPiattaformaNotifichePage(this.driver); WebTool.waitTime(5); Assertions.assertTrue( accediAPiattaformaNotifichePage.piuAvvisiDisplayed(), "Avviso PagoPA non sia presente"); logger.info("Avviso PagoPA è presente"); @@ -354,7 +339,6 @@ public void siControllaNonSiaPresenteLAvvisoPagoPa() { @And("Si controlla non sia presente l'allegato PagoPa") public void siControllaNonSiaPresenteLAllegatoPagoPa() { logger.info("Si controlla la presenza del box per il pagamento della notifica"); -// AccediAPiattaformaNotifichePage accediAPiattaformaNotifichePage = new AccediAPiattaformaNotifichePage(this.driver); WebTool.waitTime(5); Assertions.assertTrue(accediAPiattaformaNotifichePage.allegatoPagoPaDisplayed(),"Avviso PagoPA non sia presente"); logger.info("Avviso PagoPA è presente"); @@ -363,21 +347,18 @@ public void siControllaNonSiaPresenteLAllegatoPagoPa() { @And("Si clicca l'avviso PagoPa destinatario") public void siCliccaLAvvisoPagoPaDestinatario() { logger.info("Si clicca l'avviso PagoPa destinatario"); -// AccediAPiattaformaNotifichePage accediAPiattaformaNotifichePage = new AccediAPiattaformaNotifichePage(this.driver); accediAPiattaformaNotifichePage.clickAvvisoPagoPADestinatario(); } @And("Si controlla sia visualizza box allegati modelli F24 PG") public void siControllaSiaVisualizzaBoxF24PG() { logger.info("Si controlla sia presente il box allegati modelli F24"); -// PiattaformaNotifichePGPAPage piattaformaNotifichePGPAPage = new PiattaformaNotifichePGPAPage(this.driver); piattaformaNotifichePGPAPage.checkBoxModelloF24PG(); } @And("Nella pagina piattaforma notifiche PG si effettua la ricerca per codice IUN {string}") public void nellaPaginaPiattformaNotificheSiEffettuaLaRicercaPerCodiceIUN(String codiceIUN) { logger.info("Si cerca una notifica tramite IUN: " + codiceIUN); -// PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(driver); piattaformaNotifichePage.inserimentoCodiceIUN(codiceIUN); piattaformaNotifichePage.selectFiltraNotificaButtonDestinatario(); } @@ -385,7 +366,6 @@ public void nellaPaginaPiattformaNotificheSiEffettuaLaRicercaPerCodiceIUN(String @And("Si controlla la presenza di codice avviso") public void siControllaLaPresenzaDiCodiceAvviso() { logger.info("Si controlla la presenza di codice avviso"); -// AccediAPiattaformaNotifichePage accediAPiattaformaNotifichePage = new AccediAPiattaformaNotifichePage(this.driver); if (accediAPiattaformaNotifichePage.codiceAvvisoDisplayed()) { logger.info("Codice avviso è visuallizato corrttamente"); } else { @@ -396,19 +376,16 @@ public void siControllaLaPresenzaDiCodiceAvviso() { @And("controllo link per scaricare zip e scarico file Ricevuta di consegna") public void scaricaRicevutaDiConsegna() throws AWTException, IOException { -// PiattaformaNotifichePGPAPage piattaformaNotifichePGPAPage = new PiattaformaNotifichePGPAPage(this.driver); piattaformaNotifichePGPAPage.clickRicevutaDiConsegna(); } @And("controllo Ricevuta di consegna link cliccabile") public void controlloRicevutaDiConsegnaLinkCliccabile() { -// NotificheDestinatarioPage notificheDestinatarioPage = new NotificheDestinatarioPage(this.driver); notificheDestinatarioPage.checkRicevutaConsegnaCliccabile(); } @And("Controllo sia presente documento pdf") public void controlloPresenteDocumento() throws IOException { -// PiattaformaNotifichePGPAPage piattaformaNotifichePGPAPage = new PiattaformaNotifichePGPAPage(this.driver); logger.info("Controllo sia presente documento pdf"); Assertions.assertTrue(piattaformaNotifichePGPAPage.checkIfPdfExists(), "Documento non è trovato"); logger.info("Documento è trovato"); @@ -417,7 +394,6 @@ public void controlloPresenteDocumento() throws IOException { @And("estraggo il file zip") public void inseriscoPasswordEdEstraggoZip() throws IOException { logger.info("estraggo il file zip"); -// PiattaformaNotifichePGPAPage piattaformaNotifichePGPAPage = new PiattaformaNotifichePGPAPage(this.driver); piattaformaNotifichePGPAPage.extractZipWithoutPassword(); } @@ -426,10 +402,8 @@ public void siSelezionanoIlFileDaScaricare(String nomeFile) throws IOException { logger.info("Si cerca di scaricare il file " + nomeFile); boolean headless = webDriverConfig.getHeadless().equalsIgnoreCase("true"); -// DettaglioNotificaMittenteSection dettaglioNotificaMittenteSection = new DettaglioNotificaMittenteSection(this.driver); dettaglioNotificaMittenteSection.clickLinkAttestazioneOpponibile(nomeFile); WebTool.waitTime(5); -// DownloadFile downloadFile = new DownloadFile(this.driver); final String url = downloadFile.getUrl(webDriverConfig.getBaseUrl() + "notifications/received/"); if (headless && url.isEmpty()) { @@ -454,7 +428,6 @@ public void siControllaIlTestoAlSuoInternoDestonatario(String nomeFile) { @And("Si controlla il SHA all interno del file atteztazione") public void siControllaIlShaAllInternoAot() { logger.info("Si controlla che il testo al suo interno si corretto"); -// DettaglioNotificaMittenteSection dettaglioNotificaMittenteSection = new DettaglioNotificaMittenteSection(this.driver); if (dettaglioNotificaMittenteSection.controlloSHAFile("Attestazione_opponibile_a_terzi_notifica_presa_in_carico")) { logger.info("Il codice SHA all'interno del file è corretto"); } else { diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/UtentiPGPagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/UtentiPGPagoPATest.java index e8b7f3d3c..40a25b66d 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/UtentiPGPagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/UtentiPGPagoPATest.java @@ -5,20 +5,28 @@ import io.cucumber.java.en.Then; import io.cucumber.java.en.When; import it.pn.frontend.e2e.listeners.Hooks; +import it.pn.frontend.e2e.listeners.HooksNew; import it.pn.frontend.e2e.pages.destinatario.personaGiuridica.HomePagePG; import it.pn.frontend.e2e.pages.destinatario.personaGiuridica.UtentiPGPage; import it.pn.frontend.e2e.utility.WebTool; import org.openqa.selenium.WebDriver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import java.util.Map; public class UtentiPGPagoPATest { private final Logger logger = LoggerFactory.getLogger("UtentiPGPagoPATest"); - private final WebDriver driver = Hooks.driver; - private final UtentiPGPage utentiPGPage = new UtentiPGPage(this.driver); - private final HomePagePG homePagePG = new HomePagePG(this.driver); + //private final WebDriver driver = Hooks.driver; + @Autowired + @Lazy + private HooksNew hooks; + @Autowired + private UtentiPGPage utentiPGPage; + @Autowired + private HomePagePG homePagePG ; @And("Si visualizza correttamente la pagina utenti") public void siVisualizzaCorrettamenteLaPAginaUtenti() { diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/LoginMittentePagoPA.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/LoginMittentePagoPA.java index 48641179c..4143144b8 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/LoginMittentePagoPA.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/LoginMittentePagoPA.java @@ -312,7 +312,6 @@ private void readurlPortaleMittente(String user, String password) { Assertions.fail("relayStateFromSpidLoginMittente is null"); } -// BasicCookieStore cookieStore = new BasicCookieStore(); BasicClientCookie cookie = new BasicClientCookie(cookiesNameFromSpidLoginMittente, cookiesValueFromSpidLoginMittente); cookie.setDomain(cookiesDomainFromSpidLoginMittente); cookie.setPath(cookiesPathFromSpidLoginMittente); diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java index a7019bcab..b3e7a94a9 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/NotificaMittentePagoPATest.java @@ -238,7 +238,6 @@ private void aggiornamentoNumeroProtocollo() { @And("Cliccare su continua") public void cliccareSuContinua() { logger.info("Cliccare sul bottone continua"); -// InvioNotifichePAPage invioNotifichePAPage = new InvioNotifichePAPage(hooks.getDriver()); invioNotifichePAPage.selezionareContinuaButton(); } From 12ca27b4d4f3655f9cf7cf5ef9b22d399042142d Mon Sep 17 00:00:00 2001 From: andreadefranco Date: Tue, 5 Nov 2024 17:18:53 +0100 Subject: [PATCH 198/212] deleted space --- .../e2e/pages/destinatario/personaGiuridica/UtentiPGPage.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/UtentiPGPage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/UtentiPGPage.java index eb0f30170..898080964 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/UtentiPGPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaGiuridica/UtentiPGPage.java @@ -84,7 +84,6 @@ public class UtentiPGPage extends BasePage { private LoginPGPagoPAPage loginPGPagoPAPage; @Autowired private AutorizzaInvioDatiPGPage autorizzaInvioDatiPGPage; - @Autowired public UtentiPGPage(WebDriver driver) { super(driver); From 8276082d8989af1a30dfb3f518f7e3d5f9394ed9 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Wed, 6 Nov 2024 11:41:15 +0100 Subject: [PATCH 199/212] fix restContact --- .../frontend/e2e/config/CustomHttpClient.java | 14 +++---- .../it/pn/frontend/e2e/rest/RestContact.java | 41 ++++++++++--------- .../e2e/section/mittente/HeaderPASection.java | 8 ++++ 3 files changed, 36 insertions(+), 27 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/config/CustomHttpClient.java b/src/main/java/it/pn/frontend/e2e/config/CustomHttpClient.java index e1c47d256..94ee3fd5a 100644 --- a/src/main/java/it/pn/frontend/e2e/config/CustomHttpClient.java +++ b/src/main/java/it/pn/frontend/e2e/config/CustomHttpClient.java @@ -36,13 +36,13 @@ import java.util.Map; @Slf4j -@Configuration +@Component public class CustomHttpClient { private static CustomHttpClient instance ; private final Gson gson = new Gson(); - @Value("${environment}") - private String environment; + @Autowired + private WebDriverConfig webDriverConfig; @Setter @Getter @@ -86,7 +86,7 @@ public CustomHttpClient(String apiKeyTest) { this.apiKey = apiKeyTest; } - +/** public static CustomHttpClient getInstance() { if (instance == null) { synchronized (CustomHttpClient.class) { @@ -97,7 +97,7 @@ public static CustomHttpClient getInstance() { } return (CustomHttpClient) instance; } - +**/ public static CustomHttpClient getInstanceWithApiKey(String apiKey) { if (instance == null) { @@ -273,7 +273,7 @@ public ResponseType sendHttpGetRequest(String endpoint, Map head } public String getJwtToken(String TokenExchange) throws IOException { - String env = environment; + String env = webDriverConfig.getEnvironment(); CloseableHttpClient client = HttpClients.createDefault(); this.httpRequest = ClassicRequestBuilder .post("https://webapi." + env + ".notifichedigitali.it/token-exchange") @@ -303,7 +303,7 @@ public String getJwtToken(String TokenExchange) throws IOException { } public ResponseType sendHttpDeleteRequest(String endpoint, Map headers, Class responseType) throws IOException { - String env = environment; + String env = webDriverConfig.getEnvironment(); try (CloseableHttpClient client = HttpClients.createDefault()) { this.httpRequest = ClassicRequestBuilder .delete(endpoint) diff --git a/src/main/java/it/pn/frontend/e2e/rest/RestContact.java b/src/main/java/it/pn/frontend/e2e/rest/RestContact.java index 92668b5fe..80610be48 100644 --- a/src/main/java/it/pn/frontend/e2e/rest/RestContact.java +++ b/src/main/java/it/pn/frontend/e2e/rest/RestContact.java @@ -30,23 +30,22 @@ public class RestContact { private static final Logger logger = LoggerFactory.getLogger(RestContact.class); - - @Value("${environment}") - private String environment; - private final Map headers = new HashMap<>(); // Carica il token all'avvio della classe + @Autowired + private WebDriverConfig webDriverConfig; - private final CustomHttpClient customHttpClient; + @Autowired + private CustomHttpClient customHttpClient; + private final CustomHttpClient httpClient; @Autowired - public RestContact(CustomHttpClient customHttpClient) { - logger.info("TOKEN... "+System.getProperty("token")); - this.customHttpClient = customHttpClient; - - customHttpClient.setBaseUrlApi("https://webapi." + environment + ".notifichedigitali.it"); + public RestContact(WebDriverConfig webDriverConfig, CustomHttpClient httpClient) { + this.httpClient = httpClient; + this.webDriverConfig = webDriverConfig; + this.httpClient.setBaseUrlApi("https://webapi." + webDriverConfig.getEnvironment() + ".notifichedigitali.it"); String token = System.getProperty("token"); if (token != null) { @@ -56,14 +55,16 @@ public RestContact(CustomHttpClient customHttpClient) { } } + + /** * Rimuove l'indirizzo email di cortesia predefinito. */ public void removeDigitalAddressCourtesyEmail() throws RestContactException { - String url = "https://webapi." + environment + ".notifichedigitali.it/address-book/v1/digital-address/courtesy/default/EMAIL"; + String url = "https://webapi." + webDriverConfig.getEnvironment() + ".notifichedigitali.it/address-book/v1/digital-address/courtesy/default/EMAIL"; try { headers.put("Authorization", System.getProperty("token")); - String response = customHttpClient.sendHttpDeleteRequest(url, headers, String.class); + String response = httpClient.sendHttpDeleteRequest(url, headers, String.class); logger.info("Risposta ricevuta: " + response); logger.info("Indirizzo digitale di cortesia rimosso con successo"); } catch (IOException e) { @@ -76,10 +77,10 @@ public void removeDigitalAddressCourtesyEmail() throws RestContactException { * Rimuove l'indirizzo PEC legale predefinito. */ public void removeDigitalAddressLegalPec() throws RestContactException { - String url = "https://webapi." + environment + ".notifichedigitali.it/bff/v1/addresses/LEGAL/default/PEC"; + String url = "https://webapi." + webDriverConfig.getEnvironment() + ".notifichedigitali.it/bff/v1/addresses/LEGAL/default/PEC"; try { headers.put("Authorization", System.getProperty("token")); - String response = customHttpClient.sendHttpDeleteRequest(url, headers, String.class); + String response = httpClient.sendHttpDeleteRequest(url, headers, String.class); logger.info("Risposta ricevuta: " + response); logger.info("Indirizzo PEC legale rimosso con successo"); } catch (IOException e) { @@ -95,12 +96,12 @@ public void removeDigitalAddressLegalPec() throws RestContactException { public void removeSpecialContact(DigitalAddress digitalAddress) throws RestDelegationException { String channelType = digitalAddress.getChannelType().toString(); String addressType = digitalAddress.getAddressType().toString().toLowerCase(); - String url = "https://webapi." +environment + ".notifichedigitali.it/address-book/v1/digital-address/" + String url = "https://webapi." +webDriverConfig.getEnvironment() + ".notifichedigitali.it/address-book/v1/digital-address/" + addressType + "/" + digitalAddress.getSenderId() + "/" + channelType; try { headers.put("Authorization", System.getProperty("token")); - String response = customHttpClient.sendHttpDeleteRequest(url, headers, String.class); + String response = httpClient.sendHttpDeleteRequest(url, headers, String.class); logger.info("Risposta ricevuta: " + response); logger.info("Indirizzo digitale di 'altri recapiti' rimosso con successo"); } catch (IOException e) { @@ -113,8 +114,8 @@ public void removeSpecialContact(DigitalAddress digitalAddress) throws RestDeleg * Ottiene l'indirizzo digitale di default. */ public DigitalAddressResponse getDigitalAddress() throws RestContactException { - CustomHttpClient httpClientDigitalAddress = CustomHttpClient.getInstance(); - httpClientDigitalAddress.setBaseUrlApi("https://webapi." + environment + ".notifichedigitali.it"); + CustomHttpClient httpClientDigitalAddress = customHttpClient; + httpClientDigitalAddress.setBaseUrlApi("https://webapi." + webDriverConfig.getEnvironment() + ".notifichedigitali.it"); String url = "/bff/v1/addresses/LEGAL/default/PEC"; try { @@ -134,8 +135,8 @@ public DigitalAddressResponse getDigitalAddress() throws RestContactException { * Ottiene tutti gli indirizzi digitali. */ public List getAllDigitalAddress() throws RestContactException { - CustomHttpClient httpClientDigitalAddress = CustomHttpClient.getInstance(); - httpClientDigitalAddress.setBaseUrlApi("https://webapi." + environment + ".notifichedigitali.it"); + CustomHttpClient httpClientDigitalAddress = customHttpClient; + httpClientDigitalAddress.setBaseUrlApi("https://webapi." + webDriverConfig.getEnvironment() + ".notifichedigitali.it"); String url = "/bff/v1/addresses"; try { diff --git a/src/main/java/it/pn/frontend/e2e/section/mittente/HeaderPASection.java b/src/main/java/it/pn/frontend/e2e/section/mittente/HeaderPASection.java index 07f7e7a23..b8c81cc68 100644 --- a/src/main/java/it/pn/frontend/e2e/section/mittente/HeaderPASection.java +++ b/src/main/java/it/pn/frontend/e2e/section/mittente/HeaderPASection.java @@ -1,6 +1,7 @@ package it.pn.frontend.e2e.section.mittente; import it.pn.frontend.e2e.common.BasePage; +import it.pn.frontend.e2e.utility.WebTool; import org.junit.jupiter.api.Assertions; import org.openqa.selenium.By; import org.openqa.selenium.TimeoutException; @@ -11,6 +12,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; @Component @@ -21,6 +23,10 @@ public class HeaderPASection extends BasePage { @FindBy(xpath = "//button[contains(text(),'Esci')]") WebElement esciButton; + @Autowired + @Lazy + private WebTool webTool; + @Autowired public HeaderPASection(WebDriver driver) { super(driver); @@ -39,6 +45,8 @@ public void waitLoadHeaderSection() { public void selezionaEsciButton() { try { + logger.info("HTML....."+driver.getPageSource()); + esciButton = driver.findElement(By.xpath("//button[contains(text(),'Esci')]")); getWebDriverWait(10).until(ExpectedConditions.elementToBeClickable(esciButton)); //this.js().executeScript("arguments[0].scrollIntoView(true);", this.esciButton); esciButton.click(); From 37271a04e8b2948963eba59526e5894f7afed808 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Wed, 6 Nov 2024 14:22:12 +0100 Subject: [PATCH 200/212] fix test group apikey --- .../it/pn/frontend/e2e/section/mittente/HeaderPASection.java | 1 - .../5_apiKey/003_022_generaApiKeySenzaGruppo.feature | 1 + .../2-mittente/5_apiKey/004_023_generaApiKeyConGruppo.feature | 3 ++- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/section/mittente/HeaderPASection.java b/src/main/java/it/pn/frontend/e2e/section/mittente/HeaderPASection.java index b8c81cc68..44400d5f6 100644 --- a/src/main/java/it/pn/frontend/e2e/section/mittente/HeaderPASection.java +++ b/src/main/java/it/pn/frontend/e2e/section/mittente/HeaderPASection.java @@ -45,7 +45,6 @@ public void waitLoadHeaderSection() { public void selezionaEsciButton() { try { - logger.info("HTML....."+driver.getPageSource()); esciButton = driver.findElement(By.xpath("//button[contains(text(),'Esci')]")); getWebDriverWait(10).until(ExpectedConditions.elementToBeClickable(esciButton)); //this.js().executeScript("arguments[0].scrollIntoView(true);", this.esciButton); diff --git a/src/test/resources/feature/2-mittente/5_apiKey/003_022_generaApiKeySenzaGruppo.feature b/src/test/resources/feature/2-mittente/5_apiKey/003_022_generaApiKeySenzaGruppo.feature index 689b4979c..9fbb56eed 100644 --- a/src/test/resources/feature/2-mittente/5_apiKey/003_022_generaApiKeySenzaGruppo.feature +++ b/src/test/resources/feature/2-mittente/5_apiKey/003_022_generaApiKeySenzaGruppo.feature @@ -18,4 +18,5 @@ Feature: Mittente genera Api Key senza gruppo And Nella pagina di conferma cliccare sul bottone Torna a API key And Si visualizza correttamente l api key "testAutomationFE" nell elenco in stato attivo Then Si clicca visualizza codice e verifica che il valore dell'apikey copiato sia uguale + And Nella pop up cliccare sul tasto chiudi And Logout da portale mittente diff --git a/src/test/resources/feature/2-mittente/5_apiKey/004_023_generaApiKeyConGruppo.feature b/src/test/resources/feature/2-mittente/5_apiKey/004_023_generaApiKeyConGruppo.feature index 2c005a0e1..fc0d17970 100644 --- a/src/test/resources/feature/2-mittente/5_apiKey/004_023_generaApiKeyConGruppo.feature +++ b/src/test/resources/feature/2-mittente/5_apiKey/004_023_generaApiKeyConGruppo.feature @@ -18,5 +18,6 @@ Feature: Mittente genera Api Key con gruppo And Si copia e salva API key generata And Nella pagina di conferma cliccare sul bottone Torna a API key Then Si visualizza correttamente l api key "testAutomationFE" nell elenco in stato attivo - Then Si clicca visualizza codice e verifica che il valore dell'apikey copiato sia uguale + And Si clicca visualizza codice e verifica che il valore dell'apikey copiato sia uguale + And Nella pop up cliccare sul tasto chiudi And Logout da portale mittente From be733b9fa96380501277d065543897cb9b59588d Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Wed, 6 Nov 2024 15:25:09 +0100 Subject: [PATCH 201/212] fix test --- .../pn/frontend/e2e/pages/mittente/ApiKeyPAPage.java | 4 +++- .../e2e/pages/mittente/DisserviziAppPAPage.java | 10 ++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/ApiKeyPAPage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/ApiKeyPAPage.java index 6ebe4ef32..b41bb4ee0 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/ApiKeyPAPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/ApiKeyPAPage.java @@ -483,8 +483,10 @@ public void chiudiPopUpVisualizza() { } public void clickVisualizzaIdApiKey() { + webTool.waitTime(5); + visualizzaIdGruppo = driver.findElement(By.id("button-view-groups-id")); this.getWebDriverWait(30).withMessage("Il bottone visualizza Id api key non è cliccabile") - .until(ExpectedConditions.elementToBeClickable(this.visualizzaIdGruppo)); + .until(ExpectedConditions.elementToBeClickable(visualizzaIdGruppo)); this.visualizzaIdGruppo.click(); } diff --git a/src/main/java/it/pn/frontend/e2e/pages/mittente/DisserviziAppPAPage.java b/src/main/java/it/pn/frontend/e2e/pages/mittente/DisserviziAppPAPage.java index 1ad1c2457..097d422f6 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/mittente/DisserviziAppPAPage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/mittente/DisserviziAppPAPage.java @@ -27,9 +27,10 @@ public class DisserviziAppPAPage extends BasePage { private final Logger logger = LoggerFactory.getLogger("Disservizi PA Page"); - @Value("${downloadFilePath}") - private String downloadFilePath; - + // @Value("${downloadFilePath}") + // private String downloadFilePath; + @Autowired + private WebDriverConfig webDriverConfig; @Autowired private DataPopulation dataPopulation; @@ -352,7 +353,8 @@ public void clickLinkAttestazioniOpponibileDisservizi(int numeroLinkAttestazioni public boolean confrontoFileConDisservizio() { getDateDisservice(); logger.info("date prese con successo dal disserivizio"); - String folderPath = downloadFilePath; + String folderPath = webDriverConfig.getDownloadFilePath(); + logger.info("DOWNLOAD FOLDER "+folderPath); // Stringa da cercare nel nome del file String searchString = "PN_DOWNTIME_LEGAL_FACTS"; // Creazione di un oggetto File che rappresenta la cartella From 182a40ced4034f734c6e1d115c0f772981a41971 Mon Sep 17 00:00:00 2001 From: andreadefranco Date: Thu, 7 Nov 2024 12:43:32 +0100 Subject: [PATCH 202/212] change username --- .../ente_radice_e_ente_figlio.feature | 20 +++++++++---------- ...ttestazioneOpponibilePresaInCarico.feature | 10 +++++----- .../downloadFile/downloadAOTPG.feature | 4 ++-- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/test/resources/feature/2-mittente/ente_radice_e_ente_figlio.feature b/src/test/resources/feature/2-mittente/ente_radice_e_ente_figlio.feature index 09eb3bff9..7c8c5c639 100644 --- a/src/test/resources/feature/2-mittente/ente_radice_e_ente_figlio.feature +++ b/src/test/resources/feature/2-mittente/ente_radice_e_ente_figlio.feature @@ -8,9 +8,9 @@ Feature: Ente figlio e Ente radice Given Login Page mittente viene visualizzata | url | https://selfcare.dev.notifichedigitali.it | When Login con mittente - | user | ggiorgi | + | user | albino63 | | pwd | test | - | comune | Viggiu | + | comune | Verona | And Si clicca sul bottone test And Si clicca bottone accetta cookies And Cliccare sulla notifica restituita @@ -26,9 +26,9 @@ Feature: Ente figlio e Ente radice Given Login Page mittente viene visualizzata | url | https://selfcare.dev.notifichedigitali.it | When Login con mittente - | user | ggiorgi | + | user | albino63 | | pwd | test | - | comune | Viggiu | + | comune | Verona | And Si clicca sul bottone test And Si clicca bottone accetta cookies And Si sceglie ente figlio "EDILIZIA PRIVATA E SUAP" @@ -45,9 +45,9 @@ Feature: Ente figlio e Ente radice Given Login Page mittente viene visualizzata | url | https://selfcare.dev.notifichedigitali.it | When Login con mittente - | user | ggiorgi | + | user | albino63 | | pwd | test | - | comune | Viggiu | + | comune | Verona | And Si clicca sul bottone test And Si clicca bottone accetta cookies And Si sceglie ente figlio "EDILIZIA PRIVATA E SUAP" @@ -74,9 +74,9 @@ Feature: Ente figlio e Ente radice Given Login Page mittente viene visualizzata | url | https://selfcare.dev.notifichedigitali.it | When Login con mittente - | user | ggiorgi | + | user | albino63 | | pwd | test | - | comune | Viggiu | + | comune | Verona | And Si clicca sul bottone test And Si clicca bottone accetta cookies And Nella pagina Piattaforma Notifiche selezionare la voce Api Key nel menu @@ -104,9 +104,9 @@ Feature: Ente figlio e Ente radice Given Login Page mittente viene visualizzata | url | https://selfcare.dev.notifichedigitali.it | When Login con mittente - | user | ggiorgi | + | user | albino63 | | pwd | test | - | comune | Viggiu | + | comune | Verona | And Si clicca sul bottone test And Si clicca bottone accetta cookies And Si sceglie ente figlio "EDILIZIA PRIVATA E SUAP" diff --git a/src/test/resources/feature/3-destinatario/personaFisica/downloadFile/downloadAttestazioneOpponibilePresaInCarico.feature b/src/test/resources/feature/3-destinatario/personaFisica/downloadFile/downloadAttestazioneOpponibilePresaInCarico.feature index 35d8e2582..a79338da4 100644 --- a/src/test/resources/feature/3-destinatario/personaFisica/downloadFile/downloadAttestazioneOpponibilePresaInCarico.feature +++ b/src/test/resources/feature/3-destinatario/personaFisica/downloadFile/downloadAttestazioneOpponibilePresaInCarico.feature @@ -41,9 +41,9 @@ Feature: persona fisica scarica attestazioni all'interno di una notifica Given Login Page mittente viene visualizzata | url | https://selfcare.dev.notifichedigitali.it | When Login con mittente - | user | ggiorgi | + | user | albino63 | | pwd | test | - | comune | Viggiu | + | comune | Verona | And Si clicca sul bottone test And Si clicca bottone accetta cookies Then Home page mittente viene visualizzata correttamente @@ -81,14 +81,14 @@ Feature: persona fisica scarica attestazioni all'interno di una notifica And Logout da portale persona fisica - @@TA_PFVerificaEnteNelDettaglioNotifica + @TA_PFVerificaEnteNelDettaglioNotifica Scenario: PN-10427 - Persona fisica verifica concatenazione nome ente Radice e ente Figlio in dettaglio notifica Given Login Page mittente viene visualizzata | url | https://selfcare.dev.notifichedigitali.it | When Login con mittente - | user | ggiorgi | + | user | albino63 | | pwd | test | - | comune | Viggiu | + | comune | Verona | And Si clicca sul bottone test And Si clicca bottone accetta cookies Then Home page mittente viene visualizzata correttamente diff --git a/src/test/resources/feature/3-destinatario/personaGiuridica/downloadFile/downloadAOTPG.feature b/src/test/resources/feature/3-destinatario/personaGiuridica/downloadFile/downloadAOTPG.feature index 01c5f38e6..c5a0682cd 100644 --- a/src/test/resources/feature/3-destinatario/personaGiuridica/downloadFile/downloadAOTPG.feature +++ b/src/test/resources/feature/3-destinatario/personaGiuridica/downloadFile/downloadAOTPG.feature @@ -9,9 +9,9 @@ Feature: persona giuridica scarica attestazione opponibile Given Login Page mittente viene visualizzata | url | https://selfcare.dev.notifichedigitali.it | When Login con mittente - | user | ggiorgi | + | user | albino63 | | pwd | test | - | comune | Viggiu | + | comune | Verona | And Si clicca sul bottone test And Si clicca bottone accetta cookies Then Home page mittente viene visualizzata correttamente From 2f4314410cd60d7e5749682b57cc25eb49f2a6c1 Mon Sep 17 00:00:00 2001 From: andreadefranco Date: Thu, 7 Nov 2024 12:46:21 +0100 Subject: [PATCH 203/212] new url inserted --- .../2-mittente/ente_radice_e_ente_figlio.feature | 10 +++++----- ...downloadAttestazioneOpponibilePresaInCarico.feature | 4 ++-- .../downloadFile/downloadAOTPG.feature | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/test/resources/feature/2-mittente/ente_radice_e_ente_figlio.feature b/src/test/resources/feature/2-mittente/ente_radice_e_ente_figlio.feature index 7c8c5c639..c089b213a 100644 --- a/src/test/resources/feature/2-mittente/ente_radice_e_ente_figlio.feature +++ b/src/test/resources/feature/2-mittente/ente_radice_e_ente_figlio.feature @@ -6,7 +6,7 @@ Feature: Ente figlio e Ente radice @verificaAssenzaNotificheEnteRadice Scenario: PN-10413 - Ente Figlio - Verifica assenza notifiche ente radice Given Login Page mittente viene visualizzata - | url | https://selfcare.dev.notifichedigitali.it | + | url | https://selfcare.test.notifichedigitali.it | When Login con mittente | user | albino63 | | pwd | test | @@ -24,7 +24,7 @@ Feature: Ente figlio e Ente radice @verificaAssenzaNotificheEnteFiglio Scenario: PN-10411 - Ente Radice - Verifica assenza notifiche ente figlio Given Login Page mittente viene visualizzata - | url | https://selfcare.dev.notifichedigitali.it | + | url | https://selfcare.test.notifichedigitali.it | When Login con mittente | user | albino63 | | pwd | test | @@ -43,7 +43,7 @@ Feature: Ente figlio e Ente radice @verificaAssenzaApikeyEnteFiglio Scenario: PN-10412 - Ente Radice - Verifica assenza apikey ente figlio Given Login Page mittente viene visualizzata - | url | https://selfcare.dev.notifichedigitali.it | + | url | https://selfcare.test.notifichedigitali.it | When Login con mittente | user | albino63 | | pwd | test | @@ -72,7 +72,7 @@ Feature: Ente figlio e Ente radice @verificaAssenzaApikeyEnteRadice Scenario: PN-10414 - Ente Figlio - Verifica assenza apikey ente radice Given Login Page mittente viene visualizzata - | url | https://selfcare.dev.notifichedigitali.it | + | url | https://selfcare.test.notifichedigitali.it | When Login con mittente | user | albino63 | | pwd | test | @@ -102,7 +102,7 @@ Feature: Ente figlio e Ente radice @test5 Scenario: PN-10419 - Ente Figlio - Verifica presenza notifiche da parte del delegato Given Login Page mittente viene visualizzata - | url | https://selfcare.dev.notifichedigitali.it | + | url | https://selfcare.test.notifichedigitali.it | When Login con mittente | user | albino63 | | pwd | test | diff --git a/src/test/resources/feature/3-destinatario/personaFisica/downloadFile/downloadAttestazioneOpponibilePresaInCarico.feature b/src/test/resources/feature/3-destinatario/personaFisica/downloadFile/downloadAttestazioneOpponibilePresaInCarico.feature index a79338da4..7e19262f3 100644 --- a/src/test/resources/feature/3-destinatario/personaFisica/downloadFile/downloadAttestazioneOpponibilePresaInCarico.feature +++ b/src/test/resources/feature/3-destinatario/personaFisica/downloadFile/downloadAttestazioneOpponibilePresaInCarico.feature @@ -39,7 +39,7 @@ Feature: persona fisica scarica attestazioni all'interno di una notifica @TA_PFDownloadAttestazioneOpponibilePresaInCaricoEVerificaEnte Scenario: PN-10428 - Persona fisica scarica Attestazione opponibile a terzi: notifica presa in carico Given Login Page mittente viene visualizzata - | url | https://selfcare.dev.notifichedigitali.it | + | url | https://selfcare.test.notifichedigitali.it | When Login con mittente | user | albino63 | | pwd | test | @@ -84,7 +84,7 @@ Feature: persona fisica scarica attestazioni all'interno di una notifica @TA_PFVerificaEnteNelDettaglioNotifica Scenario: PN-10427 - Persona fisica verifica concatenazione nome ente Radice e ente Figlio in dettaglio notifica Given Login Page mittente viene visualizzata - | url | https://selfcare.dev.notifichedigitali.it | + | url | https://selfcare.test.notifichedigitali.it | When Login con mittente | user | albino63 | | pwd | test | diff --git a/src/test/resources/feature/3-destinatario/personaGiuridica/downloadFile/downloadAOTPG.feature b/src/test/resources/feature/3-destinatario/personaGiuridica/downloadFile/downloadAOTPG.feature index c5a0682cd..cf6fae1a7 100644 --- a/src/test/resources/feature/3-destinatario/personaGiuridica/downloadFile/downloadAOTPG.feature +++ b/src/test/resources/feature/3-destinatario/personaGiuridica/downloadFile/downloadAOTPG.feature @@ -7,7 +7,7 @@ Feature: persona giuridica scarica attestazione opponibile Scenario: PN-10432 - Persona giuridica scarica Attestazione opponibile a terzi: notifica presa in carico Given Login Page mittente viene visualizzata - | url | https://selfcare.dev.notifichedigitali.it | + | url | https://selfcare.test.notifichedigitali.it | When Login con mittente | user | albino63 | | pwd | test | From 6c041bdcd423fe223866731efb5bab5814a56e00 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Thu, 7 Nov 2024 15:42:17 +0100 Subject: [PATCH 204/212] fix test --- .../it/pn/frontend/e2e/common/RecapitiDestinatarioPage.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/it/pn/frontend/e2e/common/RecapitiDestinatarioPage.java b/src/main/java/it/pn/frontend/e2e/common/RecapitiDestinatarioPage.java index 450826516..8c4717439 100644 --- a/src/main/java/it/pn/frontend/e2e/common/RecapitiDestinatarioPage.java +++ b/src/main/java/it/pn/frontend/e2e/common/RecapitiDestinatarioPage.java @@ -652,6 +652,8 @@ public void checkEmailPrecedentementeSalvata(String email) { public void verificaPecModificabile() { try { + webTool.waitTime(5); + pecField = driver.findElement(By.id("default_pec")); getWebDriverWait(10).until(ExpectedConditions.and( ExpectedConditions.visibilityOf(pecField), ExpectedConditions.attributeToBe(pecField, "readonly", ""))); From 17dbc2822efaa31c12084c459c1cae049b21ad45 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Thu, 7 Nov 2024 16:46:17 +0100 Subject: [PATCH 205/212] refactor e remove Hooks old --- .../frontend/e2e/config/WebDriverConfig.java | 1 - .../it/pn/frontend/e2e/listeners/Hooks.java | 229 +----------------- .../it/pn/frontend/e2e/utility/WebTool.java | 6 - .../NotifichePGPagoPATest.java | 2 +- 4 files changed, 2 insertions(+), 236 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/config/WebDriverConfig.java b/src/main/java/it/pn/frontend/e2e/config/WebDriverConfig.java index 4dd486c8a..83436a329 100644 --- a/src/main/java/it/pn/frontend/e2e/config/WebDriverConfig.java +++ b/src/main/java/it/pn/frontend/e2e/config/WebDriverConfig.java @@ -22,7 +22,6 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; -import org.springframework.beans.factory.config.ConfigurableBeanFactory; import org.springframework.context.annotation.*; import java.time.Duration; diff --git a/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java b/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java index be87fb059..b112dfca2 100644 --- a/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java +++ b/src/main/java/it/pn/frontend/e2e/listeners/Hooks.java @@ -36,234 +36,7 @@ Rimozione di new per altre dipendenze: Ho sostituito la creazione di oggetti come CookieConfig, RestDelegation e RestContact con l'iniezione di dipendenze utilizzando @Autowired.*/ -@Component public class Hooks { - private static final Logger logger = LoggerFactory.getLogger(Hooks.class); - - - - @Autowired - private CookieConfig cookieConfig; - - @Autowired - private RestDelegation restDelegation; - @Autowired - private MandateSingleton mandateSingleton; - @Autowired - private RestContact restContact; - - - private DevTools devTools; - private Map requests = new HashMap<>(); - - @Getter - public static String scenario; - - @Value("${test.headless:false}") - private String headless; - - @Value("${downloadFilePath}") - private String downloadFilePath; - - @Value("${os.name}") - private String os; - public static WebDriver driver; - - public static List netWorkInfos = new ArrayList<>(); - - private void configureChromeOptions(ChromeOptions chromeOptions) { - chromeOptions.addArguments("--lang=it"); - chromeOptions.addArguments("--incognito"); - chromeOptions.addArguments("--disable-dev-shm-usage"); - chromeOptions.addArguments("--remote-allow-origins=*"); - chromeOptions.addArguments("--enable-clipboard"); - - HashMap chromePrefs = new HashMap<>(); - chromePrefs.put("download.default_directory", downloadFilePath); - chromeOptions.setExperimentalOption("prefs", chromePrefs); - - if (this.headless.equalsIgnoreCase("true")) { - chromeOptions.addArguments("--no-sandbox"); - chromeOptions.addArguments("headless"); - chromeOptions.addArguments("window-size=1920,1080"); - } - } - - private void captureHttpRequests() { - devTools.addListener( - Network.requestWillBeSent(), - request -> { - String url = request.getRequest().getUrl(); - if (!cookieConfig.getCookies(url).isEmpty()) { - cookieConfig.getCookies(url).forEach(cookie -> driver.manage().addCookie(cookie)); - } - requests.put(request.getRequestId().toString(), request); - } - ); - } - - private void captureHttpResponse() { - devTools.addListener( - Network.responseReceived(), - response -> { - String requestId = response.getRequestId().toString(); - if (requests.containsKey(requestId)) { - RequestWillBeSent request = requests.get(requestId); - if (response.getType().equals(ResourceType.XHR)) { - NetWorkInfo netWorkInfo = new NetWorkInfo(); - netWorkInfo.setRequestId(requestId); - netWorkInfo.setRequestUrl(request.getRequest().getUrl()); - netWorkInfo.setRequestMethod(request.getRequest().getMethod()); - netWorkInfo.setResponseStatus(response.getResponse().getStatus().toString()); - try { - String bodyResponse = devTools.send(Network.getResponseBody(response.getRequestId())).getBody(); - netWorkInfo.setResponseBody(bodyResponse); - } catch (DevToolsException ignored) { - // Ignored because the response body is not always available. - } - netWorkInfos.add(netWorkInfo); - } - } - requests.remove(requestId); - } - ); - } - - // @Before - public void startScenario(Scenario scenario) { - logger.info("-------------------------------------------START SCENARIO: " + scenario.getName() + "------------------------------------------------"); - Hooks.scenario = scenario.getName(); - Collection tags = scenario.getSourceTagNames(); - for (String tag : tags) { - if (tag.startsWith("@TA_")) { - MDC.put("tag", tag); - MDC.put("team", "TA-QA"); - } - } - - logger.info("os type : " + this.os); - logger.info("user language : " + System.getProperty("user.language")); - - devTools = ((HasDevTools) driver).getDevTools(); - devTools.createSession(); - devTools.send(Network.enable( - Optional.empty(), - Optional.empty(), - Optional.empty() - )); - - this.captureHttpRequests(); - this.captureHttpResponse(); - cookieConfig.addCookie(); - } - - - //@After - public void endScenario(Scenario scenario) throws IOException { - System.clearProperty("IUN"); - netWorkInfos.forEach(netWorkInfo -> { - logger.info("Request ID: {}", netWorkInfo.getRequestId()); - logger.info("Request URL: {}", netWorkInfo.getRequestUrl()); - logger.info("Method: {}", netWorkInfo.getRequestMethod()); - logger.info("Response Status: {}", netWorkInfo.getResponseStatus()); - logger.info("Response Body: {}", netWorkInfo.getResponseBody()); - }); - - System.clearProperty("IUN"); - - for (NetWorkInfo netWorkInfo : netWorkInfos) { - logger.info(netWorkInfo.getRequestId()); - logger.info(netWorkInfo.getRequestUrl()); - logger.info(netWorkInfo.getRequestMethod()); - logger.info(netWorkInfo.getResponseStatus()); - logger.info(netWorkInfo.getResponseBody()); - } - - if (scenario.isFailed()) { - logger.error("scenario go to error : " + scenario.getName()); - try { - File screenshot = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE); - byte[] screenshotByte = FileUtils.readFileToByteArray(screenshot); - Date date = Calendar.getInstance().getTime(); - DateFormat formatter = new SimpleDateFormat("dd_MM_yyyy_HH_mm_ss"); - String today = formatter.format(date); - String testCaseFailed = "logs/" + scenario.getName() + "_" + today + ".png"; - FileUtils.copyFile(screenshot, new File(testCaseFailed)); - scenario.attach(screenshotByte, "image/png", scenario.getName()); - } catch (IOException e) { - logger.error(e.getCause().toString()); - } - } - - logger.info("quit driver"); - driver.quit(); - requests.clear(); - netWorkInfos.clear(); - } - - - // @After("@DeleghePF or @DeleghePG") - // @Before("@DeleghePF or @DeleghePG") - // @And("Revoca deleghe se esistono") - public void clearDelegate() { - logger.info("REVOCA TUTTE LE DELEGHE...."); - String mandateId = mandateSingleton.getMandateId(HooksNew.getScenario()); - if (mandateId != null) { - logger.info("REVOCA DELEGA: " + mandateId); - restDelegation.revokeDelegation(mandateId); - logger.info("Delega revocata con successo"); - } else { - logger.info("mandateId non trovato"); - } - } - - //@After("@File") - public void clearDirectory() { - File folder = new File(downloadFilePath); - - if (folder.isDirectory()) { - File[] files = folder.listFiles(); - for (File file : files) { - if (file.isFile()) { - if (file.delete()) { - logger.info("File cancellato: " + file.getAbsolutePath()); - } else { - logger.info("Impossibile cancellare il file: " + file.getAbsolutePath()); - } - } - } - } - } - - - // @After("@recapitiPF or @recapitiPG") - // @Before("@recapitiPF or @recapitiPG") - // @And("Rimuovi tutti i recapiti se esistono") - public void clearRecapiti() throws IOException { - - List digitalAddress = restContact.getAllDigitalAddress(); - - // Check for legal ones and remove them - if (digitalAddress != null) { - logger.info("SENDER DIGITAL ADDRESS...." + digitalAddress); - logger.info("SENDER DIGITAL ADDRESS...." + digitalAddress.size()); - digitalAddress.forEach(addressDigital -> { - logger.info("SENDER_ID: " + addressDigital.getSenderId()); - if (addressDigital.getSenderId().equalsIgnoreCase("default")) { - - if ("PEC".equalsIgnoreCase(addressDigital.getChannelType())) { - logger.info("Remove Digital Address LegalPec: " + addressDigital.getSenderId()); - restContact.removeDigitalAddressLegalPec(); - } else { - logger.info("Remove Digital Address Courtesy Email: " + addressDigital.getSenderId()); - restContact.removeDigitalAddressCourtesyEmail(); - } - } else { - logger.info("Remove Special Contact: " + addressDigital.getSenderId()); - restContact.removeSpecialContact(addressDigital); - } - }); - } - } +//Update HooksNew } diff --git a/src/main/java/it/pn/frontend/e2e/utility/WebTool.java b/src/main/java/it/pn/frontend/e2e/utility/WebTool.java index 73a39a7b9..054b77e6c 100644 --- a/src/main/java/it/pn/frontend/e2e/utility/WebTool.java +++ b/src/main/java/it/pn/frontend/e2e/utility/WebTool.java @@ -1,9 +1,7 @@ package it.pn.frontend.e2e.utility; import it.pn.frontend.e2e.config.WebDriverConfig; -import it.pn.frontend.e2e.listeners.Hooks; import it.pn.frontend.e2e.listeners.HooksNew; -import it.pn.frontend.e2e.listeners.NetWorkInfo; import it.pn.frontend.e2e.model.enums.AppPortal; import it.pn.frontend.e2e.pages.destinatario.personaFisica.NotifichePFPage; import it.pn.frontend.e2e.pages.mittente.PiattaformaNotifichePage; @@ -12,19 +10,15 @@ import it.pn.frontend.e2e.section.destinatario.personaGiuridica.HeaderPGSection; import it.pn.frontend.e2e.section.mittente.HeaderPASection; import lombok.extern.slf4j.Slf4j; -import lombok.Getter; import org.junit.jupiter.api.Assertions; import org.openqa.selenium.JavascriptExecutor; -import org.openqa.selenium.WebDriver; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; - import java.text.SimpleDateFormat; import java.time.*; import java.time.format.DateTimeFormatter; import java.util.Date; -import java.util.List; import java.util.Random; import java.util.Set; import java.util.concurrent.TimeUnit; diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/NotifichePGPagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/NotifichePGPagoPATest.java index a490e4809..2ebbdd9b9 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/NotifichePGPagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaGiuridica/NotifichePGPagoPATest.java @@ -221,7 +221,7 @@ public void siSelezionanoIFileAttestazioniOpponibiliDaScaricareAllInternoDellaNo private String getBearerToken() { - List netWorkInfos = Hooks.netWorkInfos; + List netWorkInfos = webDriverConfig.getNetWorkInfos(); String bearerToken = ""; for (NetWorkInfo netWorkInfo : netWorkInfos) { String urlChiamata = webDriverConfig.getBaseUrl() + "notifications/received?"; From 04526561df91ef31a2e1a19c2841ad2493cfdf9c Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Thu, 7 Nov 2024 16:57:24 +0100 Subject: [PATCH 206/212] refactor --- .../personaFisica/RecapitiPersonaFisicaTest.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java index dde67d936..daac5a880 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/RecapitiPersonaFisicaTest.java @@ -75,13 +75,13 @@ public void nellaPaginaITuoiRecapitiSiInserisceLaPECDelDestinatario(String email @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"); + logger.info("Si inserisce la email PEC del destinatario"); 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"); + logger.info("Nella pagina I Tuoi Recapiti si inserisce l'indirizzo della PEC"); recapitiDestinatarioPage.insertEmailPEC(emailPEC); } @@ -707,7 +707,7 @@ public void nellaPaginaITuoiRecapitiSiRecuperaIlCodiceOTPDellaNuovaPECTramiteChi @And("Nella pagina I Tuoi Recapiti si recupera il codice OTP della nuova PEC {string} tramite chiamata request") public void nellaPaginaITuoiRecapitiSiRecuperaIlCodiceOTPDellaNuovaEmailPECTramiteChiamataRequest(String emailPec) { - logger.info("Si recupera il codice OTP della nuova pec"); + logger.info("Nella pagina I Tuoi Recapiti si recupera il codice OTP della nuova PEC tramite chiamata request"); String pec = emailPec; From be9f3905e81fc7a423285ebde8bf33e36b70efcf Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Thu, 7 Nov 2024 17:06:26 +0100 Subject: [PATCH 207/212] fix test TA_eliminaPECPF --- .../it/pn/frontend/e2e/common/RecapitiDestinatarioPage.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/it/pn/frontend/e2e/common/RecapitiDestinatarioPage.java b/src/main/java/it/pn/frontend/e2e/common/RecapitiDestinatarioPage.java index 8c4717439..ee11376e1 100644 --- a/src/main/java/it/pn/frontend/e2e/common/RecapitiDestinatarioPage.java +++ b/src/main/java/it/pn/frontend/e2e/common/RecapitiDestinatarioPage.java @@ -413,6 +413,8 @@ public void clickSuConfermaElimina() { } public boolean siControllaEliminazionePEC() { + webTool.waitTime(3); + pecField = driver.findElement(By.id("default_pec")); return pecField.isDisplayed(); } From a5030e9781a661e8a5eb969d52a3e287ffa9d528 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Thu, 7 Nov 2024 17:13:26 +0100 Subject: [PATCH 208/212] remove data population --- .../mittente/RicercaNotificheMittentePagoPATest.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/RicercaNotificheMittentePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/RicercaNotificheMittentePagoPATest.java index 3340db198..d4e7a2e78 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/RicercaNotificheMittentePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/mittente/RicercaNotificheMittentePagoPATest.java @@ -152,7 +152,6 @@ public void nellaPaginaPiattaformaNotificheIRisultatiSonoContenutiInUnaOPiuPagin @And("Nella pagina Piattaforma Notifiche inserire il codice IUN della notifica {string}") public void nellaPaginaPiattaformaNotificheInserireIlCodiceIUNDellaNotifica(String dpDatiNotifica) { logger.info("Si inserisce il codice IUN"); - DataPopulation dataPopulation = new DataPopulation(); this.datiNotifica = dataPopulation.readDataPopulation(dpDatiNotifica + ".yaml"); piattaformaNotifichePage.inserimentoCodiceIUN(this.datiNotifica.get("codiceIUN").toString()); } @@ -310,7 +309,6 @@ public void ilSistemaRestituisceNotificheConCodiceFiscaleEArcoTemporaleUgualeAQu piattaformaNotifichePage.waitLoadPiattaformaNotifichePAPage(); - DataPopulation dataPopulation = new DataPopulation(); this.personaFisica = dataPopulation.readDataPopulation("personaFisica.yaml"); String cfInserito = this.personaFisica.get("codiceFiscale").toString(); From d4ab45bb0a46c1d702c73f0ddb0fdffe2f58ed14 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Thu, 7 Nov 2024 18:39:13 +0100 Subject: [PATCH 209/212] fix test deleghe --- .../it/pn/frontend/e2e/config/CustomHttpClient.java | 6 +++--- src/main/java/it/pn/frontend/e2e/rest/RestContact.java | 3 +-- .../java/it/pn/frontend/e2e/rest/RestDelegation.java | 10 ++++++---- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/config/CustomHttpClient.java b/src/main/java/it/pn/frontend/e2e/config/CustomHttpClient.java index 94ee3fd5a..7e2e41af6 100644 --- a/src/main/java/it/pn/frontend/e2e/config/CustomHttpClient.java +++ b/src/main/java/it/pn/frontend/e2e/config/CustomHttpClient.java @@ -34,6 +34,7 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; +import java.util.logging.Logger; @Slf4j @Component @@ -98,7 +99,7 @@ public static CustomHttpClient getInstance() { return (CustomHttpClient) instance; } **/ - +/** public static CustomHttpClient getInstanceWithApiKey(String apiKey) { if (instance == null) { synchronized (CustomHttpClient.class) { @@ -109,10 +110,9 @@ public static CustomHttpClient getInstanceWithApiKey(String apiKey } return (CustomHttpClient) instance; } - +**/ public ResponseType sendHttpPostRequest(String endpoint, Map headers, RequestType requestObject, Class responseType) throws IOException { String apiUrl = baseUrlApi + endpoint; - try (CloseableHttpClient client = HttpClients.createDefault()) { ObjectMapper objectMapper = new ObjectMapper(); String jsonBody = objectMapper.writeValueAsString(requestObject); diff --git a/src/main/java/it/pn/frontend/e2e/rest/RestContact.java b/src/main/java/it/pn/frontend/e2e/rest/RestContact.java index 80610be48..1405f8f49 100644 --- a/src/main/java/it/pn/frontend/e2e/rest/RestContact.java +++ b/src/main/java/it/pn/frontend/e2e/rest/RestContact.java @@ -33,7 +33,6 @@ public class RestContact { private final Map headers = new HashMap<>(); // Carica il token all'avvio della classe - @Autowired private WebDriverConfig webDriverConfig; @Autowired @@ -45,7 +44,7 @@ public class RestContact { public RestContact(WebDriverConfig webDriverConfig, CustomHttpClient httpClient) { this.httpClient = httpClient; this.webDriverConfig = webDriverConfig; - this.httpClient.setBaseUrlApi("https://webapi." + webDriverConfig.getEnvironment() + ".notifichedigitali.it"); + this.httpClient.setBaseUrlApi("https://webapi." + this.webDriverConfig.getEnvironment() + ".notifichedigitali.it"); String token = System.getProperty("token"); if (token != null) { diff --git a/src/main/java/it/pn/frontend/e2e/rest/RestDelegation.java b/src/main/java/it/pn/frontend/e2e/rest/RestDelegation.java index 396e87a75..cc036f315 100644 --- a/src/main/java/it/pn/frontend/e2e/rest/RestDelegation.java +++ b/src/main/java/it/pn/frontend/e2e/rest/RestDelegation.java @@ -11,6 +11,7 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; import java.io.IOException; @@ -31,8 +32,8 @@ public class RestDelegation { private static final Logger logger = LoggerFactory.getLogger(RestDelegation.class); - @Value("${environment}") - private String environment; + + private WebDriverConfig webDriverConfig; private final Map headers = new HashMap<>(); @@ -42,9 +43,10 @@ public class RestDelegation { @Autowired - public RestDelegation(CustomHttpClient httpClientPF, CustomHttpClient httpClientPG) { + public RestDelegation( WebDriverConfig webDriverConfig, CustomHttpClient httpClientPF, CustomHttpClient httpClientPG) { this.httpClientPF = httpClientPF; this.httpClientPG = httpClientPG; + this.webDriverConfig = webDriverConfig; initializeHeaders(); setupHttpClients(); } @@ -59,7 +61,7 @@ private void initializeHeaders() { } private void setupHttpClients() { - String baseUrl = "https://webapi." + environment + ".notifichedigitali.it"; + String baseUrl = "https://webapi." + webDriverConfig.getEnvironment() + ".notifichedigitali.it"; httpClientPF.setBaseUrlApi(baseUrl); httpClientPG.setBaseUrlApi(baseUrl); } From 73ccf226112a6b3603a4e02373cd6e57956408ee Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Thu, 7 Nov 2024 20:32:25 +0100 Subject: [PATCH 210/212] fix test delega --- .../e2e/pages/destinatario/personaFisica/DeleghePage.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/DeleghePage.java b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/DeleghePage.java index 94654b1f7..9ab11ed21 100644 --- a/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/DeleghePage.java +++ b/src/main/java/it/pn/frontend/e2e/pages/destinatario/personaFisica/DeleghePage.java @@ -161,6 +161,7 @@ public void clickOpzioneRevoca() { public void clickMenuPerRifiuto(String nome, String cognome) { try { + webTool.waitTime(5); By menuDelegheBy = By.xpath("//table[@id='notifications-table']//td[div/p[contains(text(),'" + nome + " " + cognome + "')]]/following-sibling::td//button[@data-testid='delegationMenuIcon']"); getWebDriverWait(Integer.parseInt(webDriverConfig.getLoadComponentWaitTime())).until(ExpectedConditions.visibilityOfElementLocated(menuDelegheBy)); logger.info("Si clicca correttamente il menu della delega"); From 742919b943f9e0b0192a8e11cedd0c61772acad9 Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Fri, 8 Nov 2024 10:02:56 +0100 Subject: [PATCH 211/212] fix rifiuto delega --- src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java | 1 + .../destinatario/personaFisica/LeTueDelegheSection.java | 2 ++ .../destinatario/personaFisica/DeleghePagoPATest.java | 7 +++---- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java b/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java index 62c74c895..1f82e7a0e 100644 --- a/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java +++ b/src/main/java/it/pn/frontend/e2e/listeners/HooksNew.java @@ -130,6 +130,7 @@ public void endScenario(Scenario scenario) throws IOException { @And("Revoca deleghe se esistono") + @After("@DeleghePF or @DeleghePG") public void clearDelegate() { logger.info("Revoking all delegations..."); var mandateId = mandateSingleton.getMandateId(HooksNew.getScenario()); diff --git a/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/LeTueDelegheSection.java b/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/LeTueDelegheSection.java index 0e1f83ead..f45e897e7 100644 --- a/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/LeTueDelegheSection.java +++ b/src/main/java/it/pn/frontend/e2e/section/destinatario/personaFisica/LeTueDelegheSection.java @@ -129,6 +129,8 @@ public void clickSulBottoneInviaRichiesta() { this.getWebDriverWait(10).withMessage("Invia richiesta button non è cliccabile o non trovato").until(ExpectedConditions.elementToBeClickable(this.inviaLaRichiestaButton)); logger.info("click su invia richiesta"); this.inviaLaRichiestaButton.click(); + webTool.waitTime(5); + tornaDelegheButton = driver.findElement(By.id("courtesy-page-button")); this.getWebDriverWait(10).withMessage("Torna deleghe button non è cliccabile o non è trovato").until(ExpectedConditions.elementToBeClickable(this.tornaDelegheButton)); this.tornaDelegheButton.click(); } diff --git a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/DeleghePagoPATest.java b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/DeleghePagoPATest.java index 7ab3f0cd6..947c728dc 100644 --- a/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/DeleghePagoPATest.java +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/destinatario/personaFisica/DeleghePagoPATest.java @@ -1,6 +1,7 @@ package it.pn.frontend.e2e.stepDefinitions.destinatario.personaFisica; import io.cucumber.java.en.And; +import io.cucumber.java.en.Given; import io.cucumber.java.en.Then; import io.cucumber.java.en.When; import it.pn.frontend.e2e.listeners.HooksNew; @@ -24,10 +25,7 @@ import org.springframework.context.annotation.Lazy; import java.time.LocalDate; import java.time.format.DateTimeFormatter; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.concurrent.TimeUnit; @Slf4j @@ -597,4 +595,5 @@ public void nellaPaginaPiattaformaNotifichePersonaFisicaSiCliccaSulleNotificheDi log.info("Nella pagina Piattaforma Notifiche della persona fisica nel menu laterale si clicca sulla voce notifiche di " + personaFisica); deleghePage.clickDelegheDelDelegante(personaFisica); } + } From b32c62da3fc5c814e16a11b6e9efda1b90985acc Mon Sep 17 00:00:00 2001 From: "angelo.minisci" Date: Fri, 8 Nov 2024 14:43:54 +0100 Subject: [PATCH 212/212] update conf --- config/configuration.properties | 14 ++++++++------ .../pn/frontend/e2e/config/BearerTokenConfig.java | 2 +- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/config/configuration.properties b/config/configuration.properties index 2a260a872..c4611a29e 100644 --- a/config/configuration.properties +++ b/config/configuration.properties @@ -1,4 +1,6 @@ # test-config.properties +spring.profiles.active=uat + browser=chrome environment=test cookie.config=true @@ -6,17 +8,17 @@ headless=true # the folder path must start with / and end with / downloadFilePath=src/test/resources/dataPopulation/downloads/ loadComponentWaitTime=120 -apiBaseUrl=https://webapi.test.notifichedigitali.it/bff/v1/ +apiBaseUrl=https://webapi.${environment}.notifichedigitali.it/bff/v1/ #---------------------------------------------------------------- ragione.sociale.baldassarre = Comune di Milano -url.login.pg.dev = https://imprese.dev.notifichedigitali.it/ -url.login.pg.test = https://imprese.test.notifichedigitali.it/ -url.login.pf.dev = https://cittadini.dev.notifichedigitali.it/ -url.login.pf.test = https://cittadini.test.notifichedigitali.it/ +#url.login.pg.dev = https://imprese.dev.notifichedigitali.it/ +url.login.pg.test = https://imprese.${environment}.notifichedigitali.it/ +#url.login.pf.dev = https://cittadini.dev.notifichedigitali.it/ +url.login.pf.test = https://cittadini.${environment}.notifichedigitali.it/ url.selfcare = https://uat.selfcare.pagopa.it/ -url.mittente = https://selfcare.dev.notifichedigitali.it +url.mittente = https://selfcare.${environment}.notifichedigitali.it codice.iun = YRUZ-NYXJ-DAJK-20240 codice.iun.n1 = YRUZ-NYXJ-DAJK-202405-N-1 diff --git a/src/main/java/it/pn/frontend/e2e/config/BearerTokenConfig.java b/src/main/java/it/pn/frontend/e2e/config/BearerTokenConfig.java index 21c968886..7ef6790c8 100644 --- a/src/main/java/it/pn/frontend/e2e/config/BearerTokenConfig.java +++ b/src/main/java/it/pn/frontend/e2e/config/BearerTokenConfig.java @@ -18,7 +18,7 @@ * */ @Getter @Configuration -@PropertySource( value = "file:config/bearer-token-test.properties", ignoreResourceNotFound = true ) +@PropertySource( value = "file:config/bearer-token-${environment}.properties", ignoreResourceNotFound = true ) public class BearerTokenConfig {