"suivi", "mdp" => "suivi" ), array( "login" => "adminfonct", "mdp" => "adminfonct" ), ); /** * Fonction lancée en debut de chaque test */ public function setUp() { parent::setUp(); echo ' = '.get_class().'.'.str_replace('test_', '', $this->getName())."\r\n"; } public function onNotSuccessfulTest(Exception $e){ echo 'Line '.$e->getLine().' : '.$e->getMessage()."\r\n"; parent::onNotSuccessfulTest($e); } // Fonction public public function test_01_ouverture_menu() { // Récupération des utilisateurs $utilisateurs = $this->listUtlisateurs; // Pour chaque utilisateur on lance le test foreach ($utilisateurs as $utilisateur) { // $this->ouvertureMenu($utilisateur); } // On vérifie la déconnexion $this->verifyDeconnect(); } // Fonction public public function test_02_envoi_lettreRAR() { // Récupération des utilisateurs $utilisateurs = $this->listUtlisateurs; // Liste des dossiers par utilisateur $dossiers = array( "suivi" => "PC 013055 12 00001P0", "adminfonct" => "PC 013055 12 00002P0" ); // Pour chaque utilisateur on lance le test foreach ($utilisateurs as $utilisateur) { // $this->envoiLettreRAR($utilisateur, $dossiers[$utilisateur['login']]); } // On vérifie la déconnexion $this->verifyDeconnect(); } public function test_03_mise_a_jour_des_dates_simple_par_la_cellule_suivi() { // On se connecte en tant que "instr" $this->login("admin", "admin"); // On clique sur le menu Instruction $this->byLinkText("Instruction")->click(); // On clique sur le menu Recherche $this->byLinkText("Recherche")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur le dossier PC 013055 12 00002P $this->byLinkText("PC 013055 12 00002P0")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // liste des instructions $this->byId("instruction")->click(); // On clique sur l'instruction nouvellement créée $this->byLinkText("accepter un dossier sans réserve")->click(); $idInstr = $this->byCssSelector("div.form-content > #instruction")->text(); //On clique sur le bouton retour $this->byLinkText("Retour")->click(); sleep(1); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur l'instruction nouvellement créée $this->byLinkText("retrait apres decision")->click(); $idInstr2 = $this->byCssSelector("div.form-content > #instruction")->text(); $this->deconnect(); // On se connecte en tant que "suivi" $this->login("suivi", "suivi"); // On clique sur le lien "Mise à jour des dates" dans le menu $this->byLinkText("Mise À Jour Des Dates")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // $dates = array( 0 => array( "id" => "date_envoi_signature", "label" => "date d'envoi pour signature Mairie/Préfet", "date" => date("d/m/Y", strtotime("- 6 day")), ), 1 => array( "id" => "date_retour_signature", "label" => "date de retour de signature Mairie/Préfet", "date" => date("d/m/Y", strtotime("- 4 day")), ), 2 => array( "id" => "date_envoi_controle_legalite", "label" => "date d'envoi au contrôle de légalite", "date" => date("d/m/Y", strtotime("- 4 day")), ), 3 => array( "id" => "date_retour_controle_legalite", "label" => "date de retour de controle de légalite", "date" => date("d/m/Y"), ), ); foreach($dates as $date) { // On vérifie que le titre de la page est correct $this->assertContains("Suivi > Suivi Des Pièces > Mise À Jour Des Dates", $this->byCssSelector("#content")->text()); // On saisi les informations de mise à jour de la date $this->select($this->byId("type_mise_a_jour"))->selectOptionByValue( $date["id"]); $this->byId("date")->clear(); $this->byId("date")->value($date["date"]); $this->byId("code_barres")->value("1100000000".$idInstr); // On clique sur le bouton "Valider" $this->byName("validation")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On vérifie que le les informations du dossier sont bien présentes $this->assertEquals("PC 013055 12 00002P0", $this->byId("dossier_libelle")->text()); $this->assertEquals($date["date"], $this->byCssSelector("#".$date["id"])->text()); // On clique sur le bouton "Valider" $this->byName("validation")->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->assertEquals("Saisie enregistrée", $this->byCssSelector("span.text")->text()); } foreach($dates as $date) { // On vérifie que le titre de la page est correct $this->assertContains("Suivi > Suivi Des Pièces > Mise À Jour Des Dates", $this->byCssSelector("#content")->text()); // On saisi les informations de mise à jour de la date $this->select($this->byId("type_mise_a_jour"))->selectOptionByValue( $date["id"]); $this->byId("date")->clear(); $this->byId("date")->value($date["date"]); $this->byId("code_barres")->value("1100000000".$idInstr2); // On clique sur le bouton "Valider" $this->byName("validation")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On vérifie que le les informations du dossier sont bien présentes $this->assertEquals("PC 013055 12 00002P0", $this->byId("dossier_libelle")->text()); $this->assertEquals($date["date"], $this->byCssSelector("#".$date["id"])->text()); // On clique sur le bouton "Valider" $this->byName("validation")->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->assertEquals("Saisie enregistrée", $this->byCssSelector("span.text")->text()); } // On se déconnecte $this->deconnect(); // On se connecte en tant que "instr" $this->login("instr", "instr"); // On saisit le numéro de dossier "PC0130551200002P0" dans le champ de // recherche du widget "accès direct" du tableau de bord qui possède le focus $this->byId("dossier")->value("PC0130551200002P0"); // On clique sur le bouton "Rechercher" du widget "accès direct" du // tableau de bord $this->byName("validation")->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 // (que nous sommes sur le bon dossier) $this->assertContains("Instruction > Dossiers D'instruction > PC 013055 12 00002P0", $this->byCssSelector("#content")->text()); // On clique sur l'onglet "Instruction" $this->byId("instruction")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur le lien de l'événement d'instruction n°11 $this->byLinkText("arrete")->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 est correct (que nous sommes sur le bon // événement d'instruction) $this->assertEquals($idInstr, $this->byCssSelector("div.form-content > #instruction")->text()); // On boucle sur chaque date pour vérifier que ces dernières sont bien // présentes sur l'écran de visualisation de l'événement d'instruction foreach($dates as $date) { // $this->assertEquals($date["date"], $this->byId($date["id"])->text()); } // On clique sur le bouton 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(); // On clique sur le lien de l'événement d'instruction n°11 $this->byLinkText("retrait apres decision")->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 est correct (que nous sommes sur le bon // événement d'instruction) $this->assertEquals($idInstr2, $this->byCssSelector("div.form-content > #instruction")->text()); // On boucle sur chaque date pour vérifier que ces dernières sont bien // présentes sur l'écran de visualisation de l'événement d'instruction foreach($dates as $date) { // $this->assertEquals($date["date"], $this->byId($date["id"])->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 rajoute une consultation avec demande d'avis //On clique sur le menu "Recherche" $this->byLinkText("Recherche")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On choisit le dossier AT 013055 13 00001P0 $this->byLinkText("AT 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 $this->byId("consultation")->click(); //L'assertion précédente est un chargement javascript, on attend 2 secondes sleep(2); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On ajoute deux consultation de test $consultationPourConformite = $this->addConsultation(2, "59.02 - Atelier du Patrimoine"); $consultationAvecAvisAttendu = $this->addConsultation(13, "59.13 - Régie des Tranports de Marseille - DTP/CIP"); //On se déconnecte $this->deconnect(); //}}} // On se connecte à l'application $this->login("suivi", "suivi"); //On clique sur le menu "Mise à jour des dates" de la catégorie "Demandes d'avis" $this->byClassName("demandes_avis_mise_a_jour_des_dates-16")->click(); //On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On vérifie qu'on est dans le bon menu $this->assertContains("Demande D'avis", $this->byCssSelector("#title h2")->text()); //On saisit un code barres et on ne saisit pas la date $this->byId("code_barres")->value("123456789123"); //On valide $this->byXPath("//input[@type='submit']")->click();sleep(1); //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("Tous les champs doivent être remplis.", $this->byCssSelector(".message .text")->text()); //On saisit la date $this->byId("date")->value(date("d/m/Y",strtotime("+1 day"))); //On saisit une consultation qui n'existe pas $this->byId("code_barres")->clear(); $this->byId("code_barres")->value("123456789123"); //On valide $this->byXPath("//input[@type='submit']")->click();sleep(1); //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("Le numéro saisi ne correspond à aucun code barres de consultation.", $this->byCssSelector(".message .text")->text()); //On saisit une consultation qui n'est pas une demande d'avis $this->byId("code_barres")->clear(); $this->byId("code_barres")->value("12".str_pad($consultationPourConformite, 10, "0", STR_PAD_LEFT)); //On valide $this->byXPath("//input[@type='submit']")->click();sleep(1); //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("Cette consultation n'a pas d'avis attendu.", $this->byCssSelector(".message .text")->text()); //On saisit une consultation qui a une demande d'avis $this->byId("code_barres")->clear(); $this->byId("code_barres")->value("12".str_pad($consultationAvecAvisAttendu, 10, "0", STR_PAD_LEFT)); //On valide $this->byXPath("//input[@type='submit']")->click();sleep(1); //On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On vérifie qu'on est sur la consultation $this->assertEquals(trim($this->byId("dossier_libelle")->text()), "AT 013055 12 00001P0"); $this->assertEquals($this->byId("code_barres")->attribute('value'), "12".str_pad($consultationAvecAvisAttendu, 10, "0", STR_PAD_LEFT)); //On valide la mise à jour de la date $this->byXPath("//input[@type='submit']")->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 la saisie s'est correctement enregistrée $this->assertContains("Saisie enregistrée", $this->byCssSelector(".message .text")->text()); //On se déconnecte $this->deconnect(); // On se connecte en tant que "instr" $this->login("instr", "instr"); //On clique sur le menu "Recherche" $this->byLinkText("Recherche")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On choisit le dossier AT 013055 13 00001P0 $this->byLinkText("AT 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 $this->byId("consultation")->click(); //L'assertion précédente est un chargement javascript, on attend 2 secondes sleep(2); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On clique sur la consultation $this->byLinkText($consultationAvecAvisAttendu)->click(); //On vérifie que la date s'est bien mise à jour $this->assertEquals(date("d/m/Y",strtotime("+1 day")), $this->byId("date_reception")->text()); // On se déconnecte $this->logout(); } /** * Teste les bordereaux d'envoi */ public function test_04_bordereaux() { //On ajoute le paramétrage nécessaire // 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 clique sur le lien "Administration" dans le menu $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 le lien "Paramètre" dans le menu $this->byLinkText("Paramètre")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On remplis le champs de recherche simple $this->byCssSelector("input[name='recherche']")->value('id_evenement_bordereau_avis_maire_prefet'); // On clique sur le bouton recherche $this->byCssSelector(".ui-button")->click(); // On clique sur le résultat $this->byLinkText("id_evenement_bordereau_avis_maire_prefet")->click(); // On clique sur le bouton "Modifier" $this->byId('action-form-om_parametre-modifier')->click(); // On change la valeur par "sig_externe" $this->byId('valeur')->clear(); $this->byId('valeur')->value('81'); // On valide la modification $this->byCssSelector("input[value='Modifier']")->click(); // On vérifie le message de validation $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#tabs-1 .message")->text()); // On clique sur le bouton 'Retour' $this->byLinkText("Retour")->click(); // On vérifie les nouvelles données $this->assertEquals("81", $this->byId("valeur")->text()); // On se déconnecte $this->deconnect(); // On change l'autorité compétente du dossier pour que le test // fonctionne // 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("Recherche")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); sleep(1); // On recherche le dossier crée $this->byId("dossier")->value("PC0130551200001P0"); // On clique sur le bouton recherche $this->byId("adv-search-submit")->click(); // On clique sur le résultat $this->byLinkText("PC 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 "Instruction" $this->byId("instruction")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur le lien d'ajout dans le tableau $this->byCssSelector(".actions-max-1 a")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On choisi l'événement "Changer l'autorité compétente 'commune état' [autorite]" $this->select($this->byId("evenement"))->selectOptionByValue("94"); //On valide le formulaire $this->byXPath("//input[@value='Ajouter']")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); sleep(1); // On vérifie le message de validation $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text()); // On se déconnecte $this->deconnect(); // On se connecte en tant que "suivi" $this->login("suivi", "suivi"); // On clique sur le menu "Bordereaux" $this->byLinkText("Bordereaux")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On vérifie le fil d'Ariane $this->assertContains("Suivi > Suivi Des Pièces > Bordereaux", $this->byCssSelector("#content")->text()); // On clique sur le bouton valider $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 qu'il y a un message d'erreur $this->assertEquals("Veuillez sélectionner un bordereau.", $this->byCssSelector("span.text")->text()); // On sélectionne le bordereau "bordereau_avis_maire_prefet" $this->select($this->byId("bordereau"))->selectOptionByValue( "bordereau_avis_maire_prefet"); // On supprime la date de début $this->byId("date_bordereau_debut")->clear(); sleep(1); // On supprime la date de fin $this->byId("date_bordereau_fin")->clear(); sleep(1); // On clique sur le bouton valider $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 le message d'erreur $this->assertEquals("Veuillez saisir une date valide.", $this->byCssSelector("span.text")->text()); // Tableau valeurs => libelle des bordereaux $bordereaux = array( "bordereau_avis_maire_prefet" => "Bordereau d'envoi des avis du Maire au Préfet", "bordereau_controle_legalite" => "Bordereau d'envoi des contrôles de légalité", "bordereau_courriers_signature_maire" => "Bordereau d'envoi de courriers signature Maire", "bordereau_decisions" => "Bordereau d'envoi des décisions", ); // Pour chaque bordereaux foreach ($bordereaux as $key => $bordereau) { // Le dossier à tester $dossier = "PC 013055 12 00002P0"; // Initialise les dates de début et de fin $date_debut = date("d/m/Y", strtotime("- 1 year")); $date_fin = date("d/m/Y", strtotime("+ 1 year")); // Si le "Bordereau d'envoi des avis du Maire au Préfet" est testé if ($key == "bordereau_avis_maire_prefet") { // On teste sur le dossier "PC 013055 12 00001P0" $dossier = "PC 013055 12 00001P0"; } // On remplis les dates de début et de fin $this->byId("date_bordereau_debut")->value($date_debut); $this->byId("date_bordereau_fin")->value($date_fin); // On sélectionne le bordereau $this->select($this->byId("bordereau"))->selectOptionByValue( $key); // On valide le formulaire $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 le message de validation $this->assertContains( "Cliquez sur le lien ci-dessous pour télécharger votre bordereau :\n\n".$bordereau." du ".$date_debut." au ".$date_fin, $this->byCssSelector("span.text")->text()); // $this->byLinkText($bordereau." du ".$date_debut." au ".$date_fin)->click(); sleep(5); // Liste les fenêtres $windows = $this->windowHandles(); // Change la fenêtre $this->window($windows[1]); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // On vérifie que le texte est présent $this->assertContains("Edition du ".date("d/m/Y"), $this->source()); $this->assertContains("Résultat du ".$date_debut." au ".$date_fin, $this->source()); $this->assertContains($dossier, $this->source()); // On ferme la fenêtre $this->closeWindow(); // On change le focus de la fenêtre $this->window($windows[0]); } // $this->logout(); } /** * Ajoute une consultation * @param $serviceId L'identifiant du service à consulter * @param $serviceLibelle Le libellé du service à consulter * @return L'identifiant de la consultation ajoutée */ private function addConsultation($service, $serviceLibelle){ // On clique sur le lien "+" dans le 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 un service dont le type d'avis est "avec avis attendu" (13) $this->select($this->byId("service"))->selectOptionByValue($service); // On clique sur le bouton "Ajouter" du formulaire sans sélectionner de service $this->byXPath("//input[@value='Ajouter']")->click();sleep(1); //On vérifie que la consultation s'est bien ajoutée $this->assertContains('Vos modifications ont bien été enregistrées.', $this->byCssSelector("#sousform-consultation .message .text")->text()); //On clique sur retour $this->byCssSelector("#sousform-consultation .retour")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On clique sur la nouvelle consultation $this->byLinkText($serviceLibelle)->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On récupère le numéro de la consultation $consultation = trim($this->byCssSelector("#sousform-consultation #consultation")->text()); //On clique sur retour $this->byCssSelector("#sousform-consultation .retour")->click(); //On retourne le numéro de la consultation return $consultation; } /** * Ce test vise uniquement à vérifier que les écrans correspondant à chaque * entrée de menu ne génère pas une erreur de base de données */ // Fonction privé private function ouvertureMenu($utilisateur) { // On se connecte $this->login($utilisateur["login"], $utilisateur["mdp"]); // Ouvre le menu $this->openMenu("Suivi", $utilisateur); // On vérifie le menu "Retours De Consultation" $this->byLinkText("Retours De Consultation")->click(); $this->assertContains("Suivi > Suivi Des Pièces > Retours De Consultation", $this->byId("title")->text()); $this->verifyNoErrors(); // On vérifie le menu "Mise À Jour Des Dates" $this->byLinkText("Mise À Jour Des Dates")->click(); $this->assertContains("Suivi > Suivi Des Pièces > Mise À Jour Des Dates", $this->byId("title")->text()); $this->verifyNoErrors(); // On vérifie le menu "Envoi Lettre RAR" $this->byLinkText("Envoi Lettre RAR")->click(); $this->assertContains("Suivi > Suivi Des Pièces > Envoi Lettre RAR", $this->byId("title")->text()); $this->verifyNoErrors(); // On vérifie le menu "Bordereaux" $this->byLinkText("Bordereaux")->click(); $this->assertContains("Suivi > Suivi Des Pièces > Bordereaux", $this->byId("title")->text()); $this->verifyNoErrors(); // On vérifie le menu "Mise À Jour Des Dates" de la catégorie // "Demandes D'avis" $this->byClassName("demandes_avis_mise_a_jour_des_dates-16")->click(); $this->assertContains("Suivi > Demande D'avis > Mise À Jour Des Dates", $this->byId("title")->text()); $this->verifyNoErrors(); // On vérifie le menu "Gestion" $this->byLinkText("Gestion")->click(); $this->assertContains("Suivi > Commissions > Gestion", $this->byId("title")->text()); $this->verifyNoErrors(); // On vérifie le menu "Demandes" $this->byLinkText("Demandes")->click(); $this->assertContains("Suivi > Commissions > Demandes", $this->byId("title")->text()); $this->verifyNoErrors(); // On se déconnecte $this->deconnect(); } /** * XXX tous les cas d'utilisation ne sont pas testés * Permet de tester la génération de feuillets pour lettre avec accusé de récéption */ // Fonction privé private function envoiLettreRAR($utilisateur, $dossier) { // On se connecte en tant que "admin" $this->login("admin", "admin"); // On clique sur le menu Instruction $this->byLinkText("Instruction")->click(); // On clique sur le menu Recherche $this->byLinkText("Recherche")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur le dossier PC 013055 12 00002P $this->byLinkText($dossier)->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // liste des instructions $this->byId("instruction")->click(); // On clique sur le + pour ajouter une instruction $this->byCssSelector("#sousform-instruction .actions-max-1 a")->click(); // On choisit un signataire Albert Dupont $this->select($this->byId("signataire_arrete"))->selectOptionByValue("1"); // On choisi l'événement "adjoint [majoration]" $this->select($this->byId("evenement"))->selectOptionByValue("81"); // On clique sur le bouton ajouter $this->byXPath("//input[@value='Ajouter']")->click(); // On vérifie que l'instruction s'est bien ajouté $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text()); // On clique sur le bouton retour $this->byCssSelector("#sousform-instruction form a.retour")->click(); // On clique sur l'instruction nouvellement créée $this->byLinkText("accepter un dossier sans réserve")->click(); $idInstr = $this->byCssSelector("div.form-content > #instruction")->text(); // On finalise le document $this->byCssSelector("#sousform-instruction .portlet-list li:nth-child(4) a")->click(); // On vérifie le message de validation $this->assertEquals('La finalisation du document s\'est effectuée avec succès.', $this->byCssSelector("#sousform-instruction .message .text")->text()); sleep(1); //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 + pour ajouter une instruction $this->byCssSelector("#sousform-instruction .actions-max-1 a")->click(); // On choisit un signataire Albert Dupont $this->select($this->byId("signataire_arrete"))->selectOptionByValue("1"); // On choisi l'événement "adjoint [majoration]" $this->select($this->byId("evenement"))->selectOptionByValue("29"); // On clique sur le bouton ajouter $this->byXPath("//input[@value='Ajouter']")->click(); // On vérifie que l'instruction s'est bien ajouté $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text()); // On clique sur le bouton retour $this->byCssSelector("#sousform-instruction form a.retour")->click(); // On clique sur l'instruction nouvellement créée $this->byLinkText("retrait apres decision")->click(); $idInstr2 = $this->byCssSelector("div.form-content > #instruction")->text(); // On finalise le document $this->byCssSelector("#sousform-instruction .portlet-list li:nth-child(4) a")->click(); // On vérifie le message de validation $this->assertEquals('La finalisation du document s\'est effectuée avec succès.', $this->byCssSelector("#sousform-instruction .message .text")->text()); //On se déconnecte de l'application $this->deconnect(); // Vérification du formulaire de génération des RAR // On se connecte $this->login($utilisateur["login"], $utilisateur["mdp"]); // Ouvre le menu $this->openMenu("Suivi", $utilisateur); // On vérifie le menu "Envoi Lettre RAR" $this->byLinkText("Envoi Lettre RAR")->click(); $this->assertContains("Suivi > Suivi Des Pièces > Envoi Lettre RAR", $this->byCssSelector("#content")->text()); $this->verifyNoErrors(); // Vérification sans valeur saisie $this->byXPath("//input[@value='Valider']")->click(); $this->verifyNoErrors(); $this->assertEquals("Tous les champs doivent être remplis.", $this->byCssSelector("span.text")->text()); // Vérification avec un numéro non valide $this->byId('liste_code_barres_instruction')->value("a"); $this->byXPath("//input[@value='Valider']")->click(); $this->verifyNoErrors(); $this->assertEquals("Le code barres d'instruction a n'est pas valide.", $this->byCssSelector("span.text")->text()); // Vérification avec un numéro non présent en base $this->byId('liste_code_barres_instruction')->clear(); $this->byId('liste_code_barres_instruction')->value("123"); $this->byXPath("//input[@value='Valider']")->click(); $this->verifyNoErrors(); $this->assertEquals("Le numéro 123 ne correspond à aucun code barres d'instruction.", $this->byCssSelector("span.text")->text()); // Vérification formulaire valide $this->byId('liste_code_barres_instruction')->clear(); $this->byId('liste_code_barres_instruction')->value("1100000000".$idInstr); $this->byXPath("//input[@value='Valider']")->click(); $this->verifyNoErrors(); $this->assertContains("Cliquez sur le lien ci-dessous pour télécharger votre document :", $this->byCssSelector("span.text")->text()); $this->assertContains("Télécharger le document pour 1 RAR", $this->byCssSelector("span.text")->text()); // $this->byId('liste_code_barres_instruction')->clear(); $this->byId('liste_code_barres_instruction')->value("1100000000".$idInstr2); $this->byXPath("//input[@value='Valider']")->click(); $this->verifyNoErrors(); $this->assertContains("Cliquez sur le lien ci-dessous pour télécharger votre document :", $this->byCssSelector("span.text")->text()); $this->assertContains("Télécharger le document pour 1 RAR", $this->byCssSelector("span.text")->text()); $this->deconnect(); } } ?>