getName())."\r\n"; } public function onNotSuccessfulTest(Exception $e){ echo 'Line '.$e->getLine().' : '.$e->getMessage()."\r\n"; parent::onNotSuccessfulTest($e); } public function test_01_ajout_consultation_simple_par_l_instructeur() { // On se connecte en tant que "instr" $this->login("instr", "instr"); // On clique sur le lien "Mes encours" dans le menu $this->byLinkText("Mes Encours")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur le lien "AZ0130551200001P0" dans le tableau $this->byLinkText("AZ 013055 12 00001P0")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur l'onglet "Consultation(s)" $this->byId("consultation")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur le lien "Ajouter" dans le tableau $this->byId("action-soustab-consultation-corner-ajouter")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On vérifie que la date du jour est pré-remplie dans le champs "date d'envoi" $this->assertEquals(date("d/m/Y"), $this->byId("date_envoi")->attribute('value')); // On clique sur le bouton "Ajouter" du formulaire sans sélectionner de service $this->byXPath("//input[@value='Ajouter']")->click();sleep(1); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On vérifie que le message d'erreur est présent $this->assertRegExp('/.*SAISIE NON ENREGISTRÉE.*/', $this->byCssSelector("#sousform-consultation .message .text")->text()); // On sélectionne le service "59.01 Direction de l'Eau et de l'Assainissement" $this->select($this->byId("service"))->selectOptionByValue("1"); // On saisit une date d'envoi vide $this->byId("date_envoi")->clear(); // On clique sur le bouton "Ajouter" du formulaire $this->byXPath("//input[@value='Ajouter']")->click();sleep(1); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On vérifie que le message d'erreur est présent $this->assertRegExp('/.*SAISIE NON ENREGISTRÉE.*/', $this->byCssSelector("#sousform-consultation .message .text")->text());sleep(2); // On saisit une date d'envoi vide $this->byId("date_envoi")->value("20/".date("m/Y"));sleep(1); // On ouvre le calendrier /*$this->byCssSelector(".ui-datepicker-trigger")->click();sleep(2); // On clique sur le "20" du mois encours $this->byLinkText("20")->click();sleep(2);*/ // On clique sur le bouton "Ajouter" du formulaire $this->byXPath("//input[@value='Ajouter']")->click();sleep(5); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors();sleep(1); // On vérifie que le message de notification de mail est présent $this->assertRegExp("/.*Envoi d'un mail de notification au service.*/", $this->byCssSelector("#sousform-consultation .message .text")->text()); // On vérifie le message de validation $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-consultation .message .text")->text()); // On clique sur le bouton retour $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click(); // On vérifie que nous avons bien 1 consultation affichée $this->assertRegExp('/.*1 \- 2 enregistrement\(s\) sur 2*/', $this->byCssSelector("#sousform-consultation .pagination-text")->text()); // On se déconnecte $this->logout(); } public function test_02_ajout_consultation_multiple_par_l_instructeur() { // On se connecte en tant que "instr" $this->login("instr", "instr"); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur le lien "Mes encours" dans le menu $this->byLinkText("Mes Encours")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur le lien "AZ0130551200001P0" dans le tableau $this->byLinkText("AZ 013055 12 00001P0")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur l'onglet "Consultation(s)" $this->byId("consultation")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur le lien "Ajouter multiples" dans le tableau $this->byXPath("//div[@id='sousform-consultation']/table/thead/tr/th/a[2]/span")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur le bouton "Ajouter" du formulaire sans sélectionner de service $this->byId("button_val")->click(); // On vérifie qu'une alerte javascript nous indique qu'il y a une erreur de saisie $this->assertEquals("Veuillez choisir au moins un service et une date d envoi", $this->alertText()); $this->acceptAlert(); // On sélectionne quatre services $this->byId("t10_572_0_")->click(); $this->byId("t10_575_0_")->click(); $this->byId("t2_13_0_")->click(); $this->byId("t10_542_0_")->click(); // On les ajoute à la sélection $this->byId("add-ser-them")->click(); // On sélectionne un des services sélectionnés $this->byCssSelector("div[name=\"t10_542_0_\"]")->click(); // On l'enlève de la sélection $this->byId("del-ser-them")->click(); // On coche la case pour la consultation papier pour un des services $this->byCssSelector("div.cell2 > div > input.t10_575_0_")->click(); // On clique sur le bouton "Ajouter" du formulaire $this->byId("button_val")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On vérifie que le message de validation est présent avec le bon nombre de consultations $this->assertRegExp('/.*3 service\(s\) sélectionné\(s\) dont 1 consultation\(s\) papier.*/', $this->byCssSelector("#sousform-consultation .message .text")->text()); // On vérifie que nous avons bien 4 consultations affichées $this->assertRegExp('/.*1 - 5 enregistrement\(s\) sur 5*/', $this->byCssSelector("#sousform-consultation .pagination-text")->text()); // On se déconnecte $this->logout(); } public function test_03_reponse_a_une_consultation_par_le_service_consulte() { // On se connecte en tant que "consu" // !!! Attention on n'utilise pas la méthode login standard car // l'utilisateur est redirigé automatiquement vers un autre écran // sans voir le message de connexion !!! // On se connecte $this->connect("consu", "consu"); // Allonge le temps d'attente lors de la recherche d'élément $this->timeouts()->implicitWait(10000); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifynoerrors(); // On temporise pour laisser le temps au javascript de redirection // de faire son travail sleep(1); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifynoerrors(); // On clique sur le lien "AZ0130551200001P0" dans le tableau $this->byLinkText("59.13")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur le lien "Saisir un avis" dans le portlet $this->byXPath("//div[@id='portlet-actions']/ul/li/a/span")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On vérifie que le sous-titre de l'élément affiché est correct $this->assertEquals("9", $this->byCssSelector("#sformulaire #consultation")->attribute('value')); // On clique sur le bouton "Modifier" du formulaire sans saisir de retour d'avis $this->byXPath("//input[@value='Modifier']")->click(); sleep(1); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // Retour à la liste des demandes $this->byCssSelector("#sformulaire a.retour")->click(); // Accès au dossier en visualisation $this->byLinkText("AZ 013055 12 00001P0")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // Accès à l'onglet des consultations $this->byXPath("//div[@id='portlet-actions']/ul/li/a/span")->click(); $this->assertEquals("9", $this->byCssSelector("#sformulaire #consultation")->attribute('value')); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // Saisie de valeurs $this->select($this->byCssSelector("select#avis_consultation.champFormulaire"))->selectOptionByLabel("Defavorable"); $this->byCssSelector("textarea#motivation.champFormulaire")->value("Pas motivé"); // Upload de fichier $this->byCssSelector("span.ui-icon.ui-icon-arrowthickstop-1-s")->click(); // Validation sans saisie de fichier $this->byName("submit")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // $this->assertRegExp('/.*Vous devez sélectionner un fichier.*/', $this->byCssSelector("#upload-container .message .text")->text()); // Saisie de fichier $this->byName("userfile[]")->value(dirname(__FILE__)."/binary_files/lettre_rar16042013124515.pdf"); $this->byName("submit")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // Validation de la modification de la demande d'avis $this->byXPath("//input[@value='Modifier']")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On vérifie que le message de validation est présent $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sformulaire .message .text")->text()); // On clique sur le lien retour $this->byCssSelector("#sformulaire a.retour")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // Vérification que la demande d'avis n'est plus presente try { $el = $this->byLinkText("59.13"); $this->fail('Cet élément ne devrait pas exister.'); } catch (PHPUnit_Extensions_Selenium2TestCase_WebDriverException $e) { $this->assertEquals(PHPUnit_Extensions_Selenium2TestCase_WebDriverException::NoSuchElement, $e->getCode()); } // On se déconnecte $this->logout(); } public function test_04_reponse_a_une_consultation_par_la_cellule_suivi() { // On se connecte en tant que "suivi" $this->login("suivi", "suivi"); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // $this->byLinkText("Retours De Consultation")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On vérifie que le titre de la page est correct $this->assertRegExp('/.*Retours De Consultation.*/', $this->byCssSelector("#title h2")->text()); // On clique sur le bouton "Valider" sans saisir de code barres $this->byXPath("//input[@value='Valider']")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // $this->assertRegExp('/.*Veuiller saisir un code barres de consultation.*/', $this->byCssSelector(".message .text")->text()); // $this->byId("code_barres")->value("aze"); $this->byXPath("//input[@value='Valider']")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); $this->assertRegExp('/.*Cette consultation n\'existe pas.*/', $this->byCssSelector(".message .text")->text()); // XXX Aller plus loin dans les cas d'utilisation lors de la saisie $this->byId("code_barres")->value("120000000006"); $this->byXPath("//input[@value='Valider']")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On vérifie que le titre de la page est correct $this->assertEquals("6", $this->byId("consultation")->attribute('value')); $this->assertEquals("AZ 013055 12 00001P0", $this->byId("dossier_libelle")->attribute('value')); $this->select($this->byId("avis_consultation"))->selectOptionByLabel("Favorable"); $this->byId("motivation")->value("blablabla"); // Upload de fichier $this->byCssSelector("span.ui-icon.ui-icon-arrowthickstop-1-s")->click(); // Validation sans saisie de fichier $this->byName("submit")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); $this->assertRegExp('/.*Vous devez sélectionner un fichier.*/', $this->byCssSelector("#upload-container .message .text")->text()); // Saisie de fichier $this->byName("userfile[]")->value(dirname(__FILE__)."/binary_files/lettre_rar16042013124515.pdf"); $this->byName("submit")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // Visualisation du fichier $this->byCssSelector("span.ui-icon.ui-icon-newwin")->click(); $this->assertRegExp('/.*lettre_rar16042013124515.pdf.*/', $this->byId("fichier_upload")->attribute('value')); //On ferme l'overlay $this->byCssSelector(".ui-dialog .ui-icon-closethick")->click(); // $this->byXPath("//input[@value='Modifier']")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On vérifie que le message de validation est présent $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector(".message .text")->text()); // On clique sur le lien retour $this->byLinkText("Retour")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On vérifie que le titre de la page est correct $this->assertStringEndsWith('app/suivi_retours_de_consultation.php', $this->url()); // On se déconnecte $this->logout(); } public function test_05_gestion_de_la_consultation_par_l_instructeur() { // On se connecte en tant que "instr" $this->login("instr", "instr"); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On vérifie que les consultations apparaissent bien sur le tableau de bord de l'instructeur $this->assertEquals("5",$this->byCssSelector("#widget_3 .widget-content-wrapper .message .text .bold")->text()); // On clique sur le lien "Mes retours" dans le menu $this->byLinkText("Mes Retours")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On vérifie que le titre de la page est correct $this->assertEquals("Consultation_mes_retours", $this->byXPath("//a[@href='#tabs-1']")->text()); // On vérifie que les deux consultations sont présentes dans le tableau $this->assertEquals("1 - 5 enregistrement(s) sur 5", $this->byClassName("pagination-text")->text()); // On clique sur le lien "59.01 Direction de l'Eau et de l'Assainissement" dans le tableau $this->byLinkText("59.01 Direction de l'Eau et de l'Assainissement")->click(); // On temporise pour laisser un peu de temps à l'onglet de se charger // (accès direct) sleep(2); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On vérifie que le formulaire de la consultation s'est bien ouvert $this->assertEquals("3", $this->byCssSelector("#sousform-consultation #consultation")->text()); // On clique sur le lien "Marquer comme lu" dans le portlet $this->byId("action-sousform-consultation-marquer_comme_lu")->click(); sleep(1); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On vérifie que le message de validation est présent avec le bon nombre de consultations $this->assertRegExp('/.*Mise à jour effectuée avec succès*/', $this->byCssSelector(".message .text")->text()); // On clique sur le lien retour $this->byCssSelector("#sousform-consultation #sformulaire div.formControls a.retour")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On vérifie que le nombre de consultations est le bon $this->assertEquals("1 - 3 enregistrement(s) sur 3", $this->byClassName("pagination-text")->text()); // On clique sur le lien "Tableau de bord" dans le menu $this->byLinkText("Tableau de bord")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On vérifie que les consultations apparaissent bien sur le tableau de bord de l'instructeur $this->assertEquals("4", $this->byCssSelector("#widget_3 .widget-content-wrapper .message .text .bold")->text()); // On se déconnecte $this->logout(); } /* * Cette méthode teste l'envoi de message au référentiel ERP lors de l'ajout * de consultation */ public function test_06_envoi_de_message_erp(){ // On se connecte en tant que "admin" $this->login("admin", "admin"); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //{{{ On ajoute trois services //On clique sur Paramétrage $this->byLinkText("Paramétrage")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On clique sur Service $this->byLinkText("Service")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //Initialisation de la variable $services = array(); //On ajoute trois services for ($i = 1 ; $i < 4 ; $i++){ $services[] = $this->addService("test_erp_".$i, "test_service_erp_".$i); } //}}} //{{{ On change trois variables erp_service_accessibilite, // erp_service_securite et erp_service_conformite //Retour sur le tableau de bord $this->byLinkText("Tableau de bord")->click(); //On clique sur Administration $this->byLinkText("Administration")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On clique sur Paramètre $this->byLinkText("Paramètre")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); $erp_service_accessibilite = $this->changeParametreServiceErp("erp_service_accessibilite", $services[0]); $erp_service_securite = $this->changeParametreServiceErp("erp_service_securite", $services[1]); $erp_service_conformite = $this->changeParametreServiceErp("erp_service_conformite", $services[2]); ///}}} // On se déconnecte $this->deconnect(); // On se connecte en tant que "instr" $this->login("guichet", "guichet"); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //{{{On ajoute un dossier d'instruction //On clique sur Nouveau Dossier $this->byLinkText("Nouveau Dossier")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On choisit le type détaillé de dossier d'autorisation $this->select($this->byName("dossier_autorisation_type_detaille"))->selectOptionByValue("1"); //On choisit le type de demande - Dépôt initial $this->select($this->byName("demande_type"))->selectOptionByValue("1"); //On clique sur "Saisir le pétitionnaire principal" $this->byId("add_petitionnaire_principal")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On remplit le champ $this->select($this->byId("particulier_civilite"))->selectOptionByLabel("Monsieur"); //On saisie le nom du pétitionnaire principal $this->byId("particulier_nom")->value("test"); // On clique sur ajouter $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); //On vérifie que le pétitionnaire s'est bien ajouté // On vérifie le message $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector("#sousform-petitionnaire .message")->text()); // On clique sur le bouton retour $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1); // On vérifie que le text est présent $this->assertContains("test",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text()); // On clique sur ajouter $this->byXPath("//input[@value='Ajouter']")->click(); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // On vérifie le message $this->assertContains("Création du dossier",$this->byCssSelector(".message")->text()); //On récupère le numéro de dossier d'instruction créé preg_match('/(PC)[0-9 ]*(P0)/', $this->byCssSelector("#tabs-1 .message")->text(), $dossier); //On récupère le numéro de dossier $dossier = $dossier[0]; //}}} // On se déconnecte $this->deconnect(); // On se connecte en tant que "instr" $this->login("instr", "instr"); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //{{{ On ajoute trois consultation //On clique sur Nouveau Dossier $this->byLinkText("Recherche")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On cherche le dossier d'instruction $this->byId("dossier")->value(str_replace(" ", "", $dossier)); // On valide la recherche $this->byId("advanced-form")->submit(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On clique sur le dossier d'instruction $this->byLinkText($dossier)->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On clique sur Modifier $this->byClassName("edit-16")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On clique sur erp $this->byId("erp")->click(); //On valide le formulaire $this->byName("f1")->submit(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On vérifie le message $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message .text")->text()); //On clique sur l'onglet Consulation $this->byId("consultation")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On ajoute trois consultations foreach ($services as $value) { $this->addConsultation($value); } //}}} // On se déconnecte $this->deconnect(); // On se connecte en tant que "admin" $this->login("admin", "admin"); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //{{{ On remet les valeurs par défaut des paramètres //On clique sur Administration $this->byLinkText("Administration")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On clique sur Paramètre $this->byLinkText("Paramètre")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); $this->changeParametreServiceErp("erp_service_accessibilite", $erp_service_accessibilite); $this->changeParametreServiceErp("erp_service_securite", $erp_service_securite); $this->changeParametreServiceErp("erp_service_conformite", $erp_service_conformite); //}}} //On se déconnecte $this->logout(); } /* * Ajoute un service * @param string $abrege le nom abrege du service * @param string $libelle le libelle du service * * @return int l'identifiant du service crée */ private function addService($abrege, $libelle, $collectivite="agglo"){ //On clique sur le + du tableau $this->byClassName("add-16")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On remplit les champs obligatoires $this->byId("abrege")->value($abrege); $this->byId("libelle")->value($libelle); //Consultation - Demande d'avis $this->select($this->byId("edition"))->selectOptionByValue("9"); // om_collectivite $this->select($this->byId("om_collectivite"))->selectOptionByLabel($collectivite); //On valide le formulaire $this->byName('f1')->submit(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On vérifie que le message de validation est présent $this->assertContains('Vos modifications ont bien été enregistrées.', $this->byCssSelector(".message .text")->text()); //On clique sur le bouton retour $this->byLinkText("Retour")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On saisie le nom du service dans la recherche simple $this->byClassName("champFormulaire")->value($libelle); //On valide la recherche $this->byName('s1')->submit(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On clique sur le service $this->byLinkText($libelle)->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On récupère l'identifiant $serviceId = trim($this->byId("service")->text()); //On clique sur le bouton Retour $this->byLinkText("Retour")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On retourne l'identifiant return $serviceId; } /* * Modifie la valeur du paramètre du numéro de service pour le message ERP * @param string $parametre le libelle du paramètre * @param string $valeur la valeur à renseigner * * @return string la valeur précédente du paramètre */ private function changeParametreServiceErp($parametre, $valeur){ //On vide le champ $this->byClassName("champFormulaire")->clear(); //On saisie le nom de la variable dans la recherche simple $this->byClassName("champFormulaire")->value($parametre); //On valide la recherche $this->byName('s1')->submit(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On clique sur le service $this->byLinkText($parametre)->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On clique sur modifier dans le portail d'action $this->byClassName("edit-16")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On récupère la valeur actuelle du paramètre $parametre = trim($this->byId("valeur")->attribute('value')); //On vide le champ $this->byId("valeur")->clear(); //On change la valeur du paramètre $this->byId("valeur")->value($valeur); //On valide le formulaire $this->byName('f1')->submit(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On vérifie que le message de validation est présent $this->assertContains('Vos modifications ont bien été enregistrées.', $this->byCssSelector(".message .text")->text()); //On clique sur le bouton retour $this->byLinkText("Retour")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On clique sur le bouton retour $this->byLinkText("Retour")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On retourne la valeur return $parametre; } /* * Ajoute une consultation * @param int $service l'identifiant du service */ private function addConsultation($service){ //On clique sur le + du tableau $this->byClassName("add-16")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On choisit le service $this->select($this->byId("service"))->selectOptionByValue($service); //On valide le formulaire $this->byName("f2")->submit(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On vérifie que le message de validation est présent $this->assertContains('Vos modifications ont bien été enregistrées.', $this->byCssSelector("#sousform-consultation .message .text")->text()); // On vérifie que le message d'envoi est présent $this->assertContains('Le message a été transmis au référentiel ERP.', $this->byCssSelector("#sousform-consultation .message .text")->text()); //On clique sur le bouton retour $this->byLinkText("Retour")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); } } ?>