From df7cc6a920ac7eba78c3b1fb14b9246aaf171fe2 Mon Sep 17 00:00:00 2001 From: Gabriiii99 <137268502+Gabriiii99@users.noreply.github.com> Date: Wed, 10 Apr 2024 19:25:56 +0200 Subject: [PATCH] Pn 9156 e 2 e destinatario pg recapiti cortesia modifica email pg (#149) * PN - 9160 - waiting for the call implementation to retrieve the OTP for add the mobile number in "altri recapiti" section * fix * Added new file for standard step (both PG and PF) and completed test 9160, missing the call for phone number's OTP * Test terminato. commit pre test locale (piattaforma offline per intervento selfcare) * merge conflicts resolved + yaml logic removed from the test * unused import deleted * test funzionante without yaml logic + fix visibility of ho capito checkbox * comments resolved --- .../e2e/common/RecapitiDestinatarioPage.java | 78 +++++++-- .../personaFisica/ITuoiRecapitiPage.java | 8 +- .../AccediAreaRiservataPGPage.java | 4 +- .../personaGiuridica/HeaderPGSection.java | 4 +- .../common/BackgroundTest.java | 9 ++ .../stepDefinitions/common/RecapitiTest.java | 148 ++++++++++++++++++ .../RecapitiPersonaFisicaTest.java | 24 --- .../RecapitiPGPagoPaTest.java | 12 +- .../012_066_eliminaEmailPG.feature | 2 +- .../013_068_eliminaNumeroDiTelefonoPG.feature | 32 ++++ .../014_064_modificaEmailPG.feature | 29 ++++ 11 files changed, 305 insertions(+), 45 deletions(-) create mode 100644 src/test/java/it/pn/frontend/e2e/stepDefinitions/common/RecapitiTest.java create mode 100644 src/test/resources/feature/3-destinatario/personaGiuridica/altriRecapiti/013_068_eliminaNumeroDiTelefonoPG.feature create mode 100644 src/test/resources/feature/3-destinatario/personaGiuridica/altriRecapiti/014_064_modificaEmailPG.feature 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 bf8f4d5ff..268bdc1f3 100644 --- a/src/main/java/it/pn/frontend/e2e/common/RecapitiDestinatarioPage.java +++ b/src/main/java/it/pn/frontend/e2e/common/RecapitiDestinatarioPage.java @@ -68,6 +68,9 @@ public class RecapitiDestinatarioPage extends BasePage { @FindBy(id = "courtesyContacts-email") WebElement emailAssociata; + @FindBy(id = "courtesyContacts-phone") + WebElement cellulareAssociato; + @FindBy(id = "pec") WebElement pecField; @@ -186,7 +189,7 @@ public boolean waitMessaggioErrore() { public void annullaButtonClick() { try { - getWebDriverWait(30).until(ExpectedConditions.elementToBeClickable(this.annullaButton)); + getWebDriverWait(10).until(ExpectedConditions.elementToBeClickable(this.annullaButton)); this.annullaButton.click(); } catch (TimeoutException e) { logger.error("Il bottone annulla non è cliccabile con errore: " + e.getMessage()); @@ -267,7 +270,7 @@ public void visualizzaValidazione() { public boolean verificaMailAssociata() { try { - getWebDriverWait(10).until(ExpectedConditions.visibilityOf(emailAssociata)); + getWebDriverWait(5).withMessage("L'email di cortesia non è presente").until(ExpectedConditions.visibilityOf(emailAssociata)); return true; } catch (TimeoutException e) { return false; @@ -469,15 +472,15 @@ public void eliminaNuovaPec() { } public void confermaButtonEliminaClick() { - By confermaEliminaButtonBy = By.xpath("//div[@aria-labelledby='dialog-title']//button[contains(text(),'Conferma')]"); - this.getWebDriverWait(40).withMessage("Il bottone conferma del pop-up elimina non cliccabile").until(ExpectedConditions.elementToBeClickable(confermaEliminaButtonBy)); + By confermaEliminaButtonBy = By.id("buttonConferma"); + this.getWebDriverWait(10).withMessage("Il bottone conferma del pop-up elimina non cliccabile").until(ExpectedConditions.elementToBeClickable(confermaEliminaButtonBy)); this.element(confermaEliminaButtonBy).click(); } public String getEmailErrorMessage() { By errorBy = By.id("email-helper-text"); WebElement errorMessage = driver.findElement(errorBy); - this.getWebDriverWait(10).until(ExpectedConditions.visibilityOf(errorMessage)); + getWebDriverWait(10).until(ExpectedConditions.visibilityOf(errorMessage)); return errorMessage.getText(); } @@ -506,9 +509,9 @@ public void clickHoCapitoCheckBoxPopup() { } public void confermaEmailPopup() { - By popupConfirmaButtonBy = By.xpath("//button[@data-testid='disclaimer-confirm-button']"); - this.getWebDriverWait(30).until(ExpectedConditions.elementToBeClickable(popupConfirmaButtonBy)); - this.driver.findElement(popupConfirmaButtonBy).click(); + By popupConfirmButtonBy = By.id("confirmButton"); + getWebDriverWait(10).until(ExpectedConditions.elementToBeClickable(popupConfirmButtonBy)); + this.driver.findElement(popupConfirmButtonBy).click(); } public boolean verificaPopUpConfermaEmail() { @@ -517,7 +520,7 @@ public boolean verificaPopUpConfermaEmail() { } public void clickAvvisamiViaEmail() { - getWebDriverWait(60).withMessage("avvisami via email non è visibile").until(ExpectedConditions.elementToBeClickable(this.avvisamiViaEmailButton)); + getWebDriverWait(10).withMessage("avvisami via email non è visibile").until(ExpectedConditions.elementToBeClickable(this.avvisamiViaEmailButton)); this.avvisamiViaEmailButton.click(); } @@ -629,4 +632,61 @@ public void clickConfermaRecapitoGiaPresente() { getWebDriverWait(10).withMessage("Bottone conferma non visualizzato").until(ExpectedConditions.and(ExpectedConditions.visibilityOfElementLocated(confermaButton), ExpectedConditions.elementToBeClickable(confermaButton))); this.element(confermaButton).click(); } + + public void checkNumeroDiCellulareCorretto(String cellulare) { + getWebDriverWait(10).withMessage("Numero di cellulare appena inserito non visualizzato").until(ExpectedConditions.and( + ExpectedConditions.visibilityOf(cellulareAssociato), + ExpectedConditions.attributeToBe(cellulareAssociato, "innerText", "+39" + cellulare))); + } + + public void clickSuBottoneCellulareDiCortesia(String actionButton){ + By bottoneActionBy = By.xpath("//form[contains(., 'Numero di cellulare')]//button[contains(text(), '" + actionButton + "')]"); + getWebDriverWait(10).withMessage("Il bottone non è cliccabile").until(ExpectedConditions.visibilityOfElementLocated(bottoneActionBy)); + this.element(bottoneActionBy).click(); + } + + public void clickSuBottoneEmailDiCortesia(String actionButton){ + By bottoneActionBy = By.xpath("//form[contains(., 'Indirizzo e-mail')]//button[contains(text(), '" + actionButton + "')]"); + getWebDriverWait(10).withMessage("Il bottone non è cliccabile").until(ExpectedConditions.visibilityOfElementLocated(bottoneActionBy)); + this.element(bottoneActionBy).click(); + } + + public void checkNumeroDiCellulareNonPresente(){ + try { + getWebDriverWait(10).withMessage("Input numero di cellulare non visualizzato o non vuoto").until(ExpectedConditions.and( + ExpectedConditions.visibilityOf(inserimentoPhoneField), + ExpectedConditions.attributeToBe(inserimentoPhoneField, "value", "") + )); + }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()); + } + } + + public void checkCampoEmailModificabile(){ + try { + 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()); + } + } + + public void checkDisclaimer(){ + By textDisclaimerBy = By.xpath("//div[contains(text(), 'Se l’impresa non ha una PEC')]"); + By hoCapitoCheckboxBy = By.xpath("//span[@data-testid='disclaimer-checkbox']"); + By annullaButtonBy = By.id("cancelButton"); + By confermaButtonBy = By.id("confirmButton"); + try { + getWebDriverWait(10).withMessage("Testo del disclaimer non visualizzato").until(ExpectedConditions.visibilityOfElementLocated(textDisclaimerBy)); + getWebDriverWait(10).withMessage("Checkbox 'Ho capito' non Visualizzata").until(ExpectedConditions.visibilityOfElementLocated(hoCapitoCheckboxBy)); + getWebDriverWait(10).withMessage("Bottone annulla non visualizzato").until(ExpectedConditions.visibilityOfElementLocated(annullaButtonBy)); + getWebDriverWait(10).withMessage("Bottone conferma non visualizzato o cliccabile").until(ExpectedConditions.and( + ExpectedConditions.visibilityOfElementLocated(confermaButtonBy), + 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()); + } + } } \ No newline at end of file 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 a872d9ef2..1aba6e844 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 @@ -121,7 +121,7 @@ public void eliminaEmailEsistente() { public void insertEmail(String emailPEC) { By inserimentoEmailFieldBy = By.id("email"); - this.getWebDriverWait(30).withMessage("input pec field non trovato").until(ExpectedConditions.visibilityOfElementLocated(inserimentoEmailFieldBy)); + getWebDriverWait(10).withMessage("input pec field non trovato").until(ExpectedConditions.visibilityOfElementLocated(inserimentoEmailFieldBy)); this.element(inserimentoEmailFieldBy).sendKeys(emailPEC); } @@ -208,13 +208,13 @@ public void checkPostModifica() { By saveButton = By.id("saveModifyButton-default"); By cancelButton = By.xpath("//button[contains(text(),'Annulla')]"); By emailField = By.id("email"); - this.getWebDriverWait(10).withMessage("Non si visualizza il bottone salva o non è cliccabile").until(ExpectedConditions.and( + getWebDriverWait(10).withMessage("Non si visualizza il bottone salva e non è cliccabile").until(ExpectedConditions.and( ExpectedConditions.visibilityOfElementLocated(saveButton), ExpectedConditions.elementToBeClickable(saveButton))); - this.getWebDriverWait(10).withMessage("Non si visualizza il bottone annulla o non è cliccabile").until(ExpectedConditions.and( + getWebDriverWait(10).withMessage("Non si visualizza il bottone annulla e non è cliccabile").until(ExpectedConditions.and( ExpectedConditions.visibilityOfElementLocated(cancelButton), ExpectedConditions.elementToBeClickable(cancelButton))); - this.getWebDriverWait(10).withMessage("Non si visualizza il campo email o non è modificabile").until(ExpectedConditions.and( + getWebDriverWait(10).withMessage("Non si visualizza il campo email e non è modificabile").until(ExpectedConditions.and( ExpectedConditions.visibilityOfElementLocated(emailField), ExpectedConditions.attributeToBe(this.element(emailField), "readonly", ""), ExpectedConditions.attributeToBeNotEmpty(this.element(emailField), "value"))); 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 6bc7cae87..13561b348 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 @@ -24,8 +24,8 @@ public AccediAreaRiservataPGPage(WebDriver driver) { public void waitLoadAccediAreaRiservataPGPage() { try { By titleBy = By.xpath("//h3[contains(text(),'Come vuoi accedere?')]"); - this.getWebDriverWait(30).withMessage("il titolo della pagina Accedi Area Riservata non è visibile").until(ExpectedConditions.visibilityOfElementLocated(titleBy)); - this.getWebDriverWait(30).withMessage("Lo spid Button della pagina Accedi Area Riservata non è visibile").until(ExpectedConditions.elementToBeClickable(this.spidButton)); + getWebDriverWait(30).withMessage("il titolo della pagina Accedi Area Riservata non è visibile").until(ExpectedConditions.visibilityOfElementLocated(titleBy)); + getWebDriverWait(30).withMessage("Lo spid Button della pagina Accedi Area Riservata non è visibile").until(ExpectedConditions.elementToBeClickable(this.spidButton)); logger.info("AccediAreaRiservaPage caricata correttamente"); } catch (TimeoutException e ){ logger.error("Accedi Area Riservata Page non caricata correttamente con errore: "+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 26dc5d4ac..23d485166 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 @@ -26,8 +26,8 @@ public void waitLoadHeaderPGPage() { try { By titlePageBy = By.xpath("//a[@title = 'Sito di PagoPA S.p.A.']"); By esciButtonBy = By.xpath("//button[@title = 'Esci']"); - this.getWebDriverWait(30).until(ExpectedConditions.visibilityOfElementLocated(titlePageBy)); - this.getWebDriverWait(30).until(ExpectedConditions.visibilityOfElementLocated(esciButtonBy)); + getWebDriverWait(10).until(ExpectedConditions.visibilityOfElementLocated(titlePageBy)); + getWebDriverWait(10).until(ExpectedConditions.visibilityOfElementLocated(esciButtonBy)); logger.info("HeaderSectionPG caricata correttamente"); } catch (TimeoutException e){ logger.error("HeaderSectionPG non caricata correttamente con errrore: "+e.getMessage()); 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 8aeb11c38..416920bd8 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 @@ -27,6 +27,7 @@ public class BackgroundTest { 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 Map datiPersonaFisica; public BackgroundTest(){ @@ -252,4 +253,12 @@ public void rifiutoDelegaACaricoDellImpresa(String dpFile) { deleghePGPagoPATest.siCliccaSulBottoneRifiutaDelega(); deleghePGPagoPATest.siControllaCheLaDelegaNonSiPiuPresenteInElenco(); } + + public void aggiuntaEmailDiCortesia(String email) { + recapitiTest.siInserisceLEmailDiCortesiaESiCliccaSulBottoneAvvisamiViaEmail(email); + recapitiTest.siVisualizzaIlPopUpDisclaimerSiCliccaLaCheckboxEIlBottoneConferma(); + recapitiPersonaFisicaTest.nellaPaginaITuoiRecapitiSiVisualizzaCorrettamenteIlPopUpDiInserimentoOTP(); + recapitiPersonaFisicaTest.nellaPaginaITuoiRecapitiSiRecuperaIlCodiceOTPTramiteChiamataRequestDellEmailEVieneInserito(email); + recapitiTest.siControllaCheLEmailInseritaSiaPresente(); + } } 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 new file mode 100644 index 000000000..cfe1b8118 --- /dev/null +++ b/src/test/java/it/pn/frontend/e2e/stepDefinitions/common/RecapitiTest.java @@ -0,0 +1,148 @@ +package it.pn.frontend.e2e.stepDefinitions.common; + +import io.cucumber.java.en.And; +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.pages.destinatario.personaFisica.ITuoiRecapitiPage; +import it.pn.frontend.e2e.utility.WebTool; +import org.junit.Assert; +import org.openqa.selenium.WebDriver; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class RecapitiTest { + + private final WebDriver driver = Hooks.driver; + public static String OTP; + private final Logger logger = LoggerFactory.getLogger("RecapitiTest"); + private final RecapitiDestinatarioPage recapitiDestinatarioPage = new RecapitiDestinatarioPage(this.driver); + private final ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(this.driver); + + @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) { + logger.info("Si inserisce l'email del PG e clicca sul bottone avvisami via numero telefonico"); + recapitiDestinatarioPage.insertPhone(cellulare); + recapitiDestinatarioPage.clickAvvisamiSMS(); + } + + @And("Si annulla eliminazione numero di cellulare") + public void siAnnullaEliminazioneNUmeroDiCellulare() { + recapitiDestinatarioPage.checkButtonAnnullaEliminazioneInPopUp(); + recapitiDestinatarioPage.clickButtonAnnullaEliminazioneInPopUp(); + } + + @And("Nella pagina I Tuoi Recapiti si visualizza correttamente il numero di cellulare {string}") + public void nellaPaginaITuoiRecapitiSiVisualizzaCorrettamenteIlNumeroDiCellulare(String cellulare) { + logger.info("Si controlla la presenza e correttezza del numero di cellulare inserito"); + recapitiDestinatarioPage.checkNumeroDiCellulareCorretto(cellulare); + } + + @And("Nella pagina I Tuoi Recapiti si preme sul bottone {string} del numero di cellulare di cortesia") + public void nellaPaginaITuoiRecapitiSiPremeSulBottoneDelNumeroDiCellulareDiCortesia(String actionButton) { + logger.info("Si preme sul bottone " + actionButton + " del numero di cellulare di cortesia"); + recapitiDestinatarioPage.clickSuBottoneCellulareDiCortesia(actionButton); + } + + @And("Nella pagina I Tuoi Recapiti si preme sul bottone {string} dell'email di cortesia") + public void nellaPaginaITuoiRecapitiSiPremeSulBottoneDellEmailDiCortesia(String actionButton) { + logger.info("Si preme sul bottone " + actionButton + " dell'email di cortesia"); + recapitiDestinatarioPage.clickSuBottoneEmailDiCortesia(actionButton); + } + + @Then("Nella pagina I Tuoi Recapiti si controlla che il numero di cellulare non sia presente") + public void nellaPaginITuoiRecapitiSiControllaCheIlNumeroDiCellulareNonSiaPresente() { + logger.info("Si controlla che il numero di cellulare di cortesia sia stato eliminato"); + recapitiDestinatarioPage.checkNumeroDiCellulareNonPresente(); + } + + @And("Nella pagina I Tuoi Recapiti si controlla che ci sia già una Email o si inserisce {string}") + public void nellaPaginaITuoiRecapitiSiControllaCheCiSiaGiaUnaEmailOSiInserisce(String email) { + logger.info("Si controlla che che ci sia già una Email e se ne inserisce una"); + ITuoiRecapitiPage iTuoiRecapitiPage = new ITuoiRecapitiPage(this.driver); + BackgroundTest backgroundTest = new BackgroundTest(); + iTuoiRecapitiPage.waitLoadITuoiRecapitiPage(); + if (!recapitiDestinatarioPage.verificaMailAssociata()) { + backgroundTest.aggiuntaEmailDiCortesia(email); + } else if (recapitiDestinatarioPage.controlloEmailAssociata(email)) { + iTuoiRecapitiPage.eliminaEmailEsistente(); + if (recapitiDestinatarioPage.waitLoadPopUpElimina().equalsIgnoreCase("Rimuovi e-mail")) { + recapitiDestinatarioPage.clickConfermaButtonEliminaPopUp(); + } else { + recapitiDestinatarioPage.clickSuChiudiPopUp(); + recapitiDestinatarioPage.eliminaNuovaEmail(); + iTuoiRecapitiPage.eliminaEmailEsistente(); + recapitiDestinatarioPage.waitLoadPopUpElimina(); + recapitiDestinatarioPage.clickConfermaButtonEliminaPopUp(); + } + backgroundTest.aggiuntaEmailDiCortesia(email); + } + WebTool.waitTime(10); + } + + @Then("Si visualizza il campo email modificabile") + public void siVisualizzaIlCampoEmailModificabile() { + logger.info("Si visualizza il campo email modificabile"); + recapitiDestinatarioPage.checkCampoEmailModificabile(); + } + + @And("Nella pagina I Tuoi Recapiti si inserisce l'email errata {string}") + public void nellaPaginaITuoiRecapitiSiInserisceLEmailErrata(String emailErrata) { + recapitiDestinatarioPage.insertEmail(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")) { + Assert.fail("messaggio di errore letto : '" + errorMessageRead + "' non è uguale a : Indirizzo e-mail non valido o Scrivi massimo 254 caratteri"); + } + } + + @And("Nella pagina I Tuoi Recapiti si inserisce un email maggiore di {int} caratteri") + public void nellaPaginaITuoiRecapitiSiInserisceUnEmailMaggioreDiCaratteri(int numeroCaratteri) { + String email = "test"; + for (int i = 0; i < numeroCaratteri; i++) { + email += "a"; + } + recapitiDestinatarioPage.insertEmail(email); + } + + @And("Nella pagina I Tuoi Recapiti si inserisce la nuova email {string}") + public void nellaPaginaITuoiRecapitiSiInserisceLaNuovaEmailProvaTestIt(String email) { + logger.info("Si inserisce la nuova mail e si clicca sul bottone avvisami via email"); + iTuoiRecapitiPage.waitLoadITuoiRecapitiPage(); + iTuoiRecapitiPage.cancellaTesto(); + iTuoiRecapitiPage.insertEmail(email); + } + + @And("Nella pagina I Tuoi Recapiti si clicca sul bottone conferma del disclaimer") + public void nellaPaginaITuoiRecapitiSiCliccaSulBottoneConfermaDelDisclaimer() { + logger.info("Si clicca sul bottone di conferma del disclaimer"); + recapitiDestinatarioPage.clickHoCapitoCheckBoxPopup(); + recapitiDestinatarioPage.confermaEmailPopup(); + } + + @And("Si inserisce l'email di cortesia e si clicca sul bottone avvisami via email") + public void siInserisceLEmailDiCortesiaESiCliccaSulBottoneAvvisamiViaEmail(String email) { + logger.info("Si inserisce l'email"); + recapitiDestinatarioPage.insertEmail(email); + recapitiDestinatarioPage.clickAvvisamiViaEmail(); + } + + @And("Si visualizza il pop-up disclaimer si clicca la checkbox e il bottone conferma") + public void siVisualizzaIlPopUpDisclaimerSiCliccaLaCheckboxEIlBottoneConferma() { + logger.info("Si visualizza il disclaimer, clicco la checkbox e il bottone conferma"); + recapitiDestinatarioPage.clickHoCapitoCheckBoxPopup(); + recapitiDestinatarioPage.confermaEmailPopup(); + } + + @Then("Si controlla che l'Email inserita sia presente") + 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"); + } + } +} 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 0dbc849bc..8ca927ae3 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 @@ -154,28 +154,6 @@ public void nellaPaginaITuoiRecapitiSiControllaCheIlTastoConfermaSiaBloccato() { Assert.assertTrue("il buttone Conferma non è disabilitato", recapitiDestinatarioPage.verificaBottoneConfermaDisabilitato()); } - @And("Nella pagina I Tuoi Recapiti si inserisce l'email errata {string}") - public void nellaPaginaITuoiRecapitiSiInserisceLEmailErrata(String emailErrata) { - recapitiDestinatarioPage.insertEmail(emailErrata); - } - - @And("Nella pagina I Tuoi Recapiti si inserisce un email maggiore di {int} caratteri") - public void nellaPaginaITuoiRecapitiSiInserisceUnEmailMaggioreDiCaratteri(int numeroCaratteri) { - String email = "test"; - for (int i = 0; i < numeroCaratteri; i++) { - email += "a"; - } - recapitiDestinatarioPage.insertEmail(email); - } - - @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")) { - Assert.fail("messaggio di errore letto : '" + errorMessageRead + "' non è uguale a : Indirizzo e-mail non valido o Scrivi massimo 254 caratteri"); - } - } - @And("Si controlla che il tasto avvisami via email sia bloccato") public void nellaPaginaITuoiRecapitiSiControllaCheIlTastoAvvisamiViaEmailSiaBloccato() { @@ -199,7 +177,6 @@ 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(); } @@ -448,7 +425,6 @@ public void nellaPaginaITuoiRecapitiSiControllaCheLaEmailSiaPresente() { logger.error("Email non è stata inserita correttamente"); Assert.fail("Email non è stata inserita correttamente"); } - } @And("Nella pagina I Tuoi Recapiti si controlla che ci sia già una Email") 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 85bb51cf9..0a32cb09f 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 @@ -103,9 +103,9 @@ public void siAnnullaEliminazioneEmail() { recapitiDestinatarioPage.clickButtonAnnullaEliminazioneInPopUp(); } - @And("Si conferma eliminazione nel pop up") - public void siConfermaEliminazioneNelPopUp() { - if (recapitiDestinatarioPage.waitLoadPopUpElimina().equalsIgnoreCase("Rimuovi e-mail")) { + @And("Si conferma {string} nel pop up") + public void siConfermaEliminazioneNelPopUp(String contattoCortesia) { + if (recapitiDestinatarioPage.waitLoadPopUpElimina().equalsIgnoreCase(contattoCortesia)) { recapitiDestinatarioPage.confermaButtonEliminaClick(); } } @@ -120,4 +120,10 @@ public void nellaSezioneAltriRecapitiSiInserisceUnRecapito(){ BackgroundTest backgroundTest = new BackgroundTest(); backgroundTest.aggiungiPecSezioneGiaAssociati(); } + + @And("Nella pagina I Tuoi Recapiti si visualizza il pop up di disclaimer") + public void nellaPaginaITuoiRecapitiSiVisualizzaIlPopUpDiDisclaimer() { + logger.info("Si controlla il disclaimer per il cambio dell'email di cortesia"); + recapitiDestinatarioPage.checkDisclaimer(); + } } 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 b2250f67d..54df60d1a 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 @@ -14,6 +14,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 eliminazione nel pop up + And Si conferma "Rimuovi e-mail" 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 new file mode 100644 index 000000000..ebaae6a65 --- /dev/null +++ b/src/test/resources/feature/3-destinatario/personaGiuridica/altriRecapiti/013_068_eliminaNumeroDiTelefonoPG.feature @@ -0,0 +1,32 @@ +Feature: La persona giuridica elimina il numero di cellulare di cortesia + + @TestSuite + @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 + When Nella pagina Piattaforma Notifiche persona giuridica si clicca sul bottone I Tuoi Recapiti + And Si visualizza correttamente la pagina Recapiti persona giuridica + + #Step per eliminazione di un numero di cellulare già inserito + + And Nella pagina I Tuoi Recapiti si inserisce il numero di telefono "3334545899" e si clicca sul bottone avvisami via SMS + And Si visualizza correttamente il pop-up e si clicca su conferma + + #In questo step viene fatta una chiamata per OTP delle mail, da cambiare quando avremo la chiamata per il cellulare + And Nella pagina I Tuoi Recapiti si visualizza correttamente il pop-up di inserimento OTP + + # manca la chiamata per prendere l'OTP per inserimento del cellulare + #And Nella pagina I Tuoi Recapiti si recupera il codice OTP tramite chiamata request "personaGiuridica" + #And Nella pagina I Tuoi Recapiti si inserisce il codice OTP "personaGiuridica" + + And Nella pagina I Tuoi Recapiti si visualizza correttamente il numero di cellulare "3334545899" + And Nella pagina I Tuoi Recapiti si preme sul bottone "Elimina" del numero di cellulare di cortesia + And Si annulla eliminazione numero di cellulare + And Nella pagina I Tuoi Recapiti si visualizza correttamente il numero di cellulare "3334545899" + And Nella pagina I Tuoi Recapiti si preme sul bottone "Elimina" del numero di cellulare di cortesia + And Si conferma "Rimuovi cellulare" nel pop up + Then Nella pagina I Tuoi Recapiti si controlla che il numero di cellulare non sia presente + And Logout da portale persona giuridica 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 new file mode 100644 index 000000000..1c87e8211 --- /dev/null +++ b/src/test/resources/feature/3-destinatario/personaGiuridica/altriRecapiti/014_064_modificaEmailPG.feature @@ -0,0 +1,29 @@ +Feature: La persona giuridica modifica l'email di cortesia + + @TestSuite + @TA_modificaEmailPG + @PG + @recapitiPG + + Scenario: PN - 9156 la persona giuridica modifica l'email di cortesia + Given PG - Si effettua la login tramite token exchange come "delegante", e viene visualizzata la dashboard + 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 controlla che ci sia già una Email o si inserisce "prova@test.it" + And Nella pagina I Tuoi Recapiti si preme sul bottone "Modifica" dell'email di cortesia + Then Si visualizza il campo email modificabile + And Nella pagina I Tuoi Recapiti si preme sul bottone "Annulla" dell'email di cortesia + And Si controlla presenza email precedentemente salvata "prova@test.it" + And Nella pagina I Tuoi Recapiti si preme sul bottone "Modifica" dell'email di cortesia + And Nella pagina I Tuoi Recapiti si inserisce l'email errata "provà&@gmail.com" + Then Nella pagina I Tuoi Recapiti si visualizza correttamente il messaggio email errata + And Nella pagina I Tuoi Recapiti si inserisce un email maggiore di 255 caratteri + 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 + And Logout da portale persona giuridica \ No newline at end of file