getName())."\r\n"; } public function onNotSuccessfulTest(Exception $e){ echo 'Line '.$e->getLine().' : '.$e->getMessage()."\r\n"; parent::onNotSuccessfulTest($e); } // Liste des utilisateurs var $listUtlisateurs = array( array( "login" => "guichet", "mdp" => "guichet" ), array( "login" => "adminfonct", "mdp" => "adminfonct" ), ); /** * 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("Guichet Unique", $utilisateur); // On vérifie le menu "Nouveau Dossier" $this->byLinkText("Nouveau Dossier")->click(); $this->assertContains("Guichet Unique > Nouvelle Demande > Nouveau Dossier", $this->byId("title")->text()); $this->verifyNoErrors(); // On vérifie le menu "Dossier En Cours" $this->byLinkText("Dossier En Cours")->click(); $this->assertContains("Guichet Unique > Nouvelle Demande > Dossier En Cours", $this->byId("title")->text()); $this->verifyNoErrors(); // On vérifie le menu "Autre Dossier" $this->byLinkText("Autre Dossier")->click(); $this->assertContains("Guichet Unique > Nouvelle Demande > Autre Dossier", $this->byId("title")->text()); $this->verifyNoErrors(); // On vérifie le menu "Récépissé" $this->byLinkText("Récépissé")->click(); $this->assertContains("Guichet Unique > Nouvelle Demande > Récépissé", $this->byId("title")->text()); $this->verifyNoErrors(); // On vérifie le menu "Pétitionnaire Fréquent" $this->byLinkText("Pétitionnaire Fréquent")->click(); $this->assertContains("Guichet Unique > Nouvelle Demande > Pétitionnaire Fréquent", $this->byId("title")->text()); $this->verifyNoErrors(); // On vérifie le menu "Registre" $this->byLinkText("Registre")->click(); $this->assertContains("Guichet Unique > Affichage Réglementaire > Registre", $this->byId("title")->text()); $this->verifyNoErrors(); // On vérifie le menu "Attestation" $this->byLinkText("Attestation")->click(); $this->assertContains("Guichet Unique > Affichage Réglementaire > Attestation", $this->byId("title")->text()); $this->verifyNoErrors(); // On se déconnecte $this->deconnect(); } // Fonction public public function test_01_OuvertureMenu() { // 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(); } /** * Test l'ajout d'une demande */ // Fonction privé private function ajoutDemandeInitial($utilisateur) { // On se connecte à l'application $this->login($utilisateur["login"], $utilisateur["mdp"]); // Ouvre le menu $this->openMenu("Guichet Unique", $utilisateur); // On clique sur le menu "Nouveau Dossier" $this->byLinkText("Nouveau Dossier")->click(); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // On vérifie le nom de l'onglet $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text()); // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes" $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel("Permis de construire pour une maison individuelle et / ou ses annexes"); // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes" $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial"); // On clique pour ajouter un pétitionnaire principale $this->byId("add_petitionnaire_principal")->click(); // On remplit le champ $this->select($this->byId("particulier_civilite"))->selectOptionByLabel("Monsieur"); // On remplit le champ $this->byId("particulier_nom")->value("DURAND"); // On remplit le champ $this->byId("particulier_prenom")->value("MICKAEL"); // On remplit le champ $this->byId("particulier_date_naissance")->value("03/01/1956"); // On remplit le champ $this->byId("particulier_commune_naissance")->value("LILLE"); // On remplit le champ $this->byId("particulier_departement_naissance")->value("NORD"); // On remplit le champ $this->byId("numero")->value("12"); // On remplit le champ $this->byId("voie")->value("RUE DE LA LOI"); // On remplit le champ $this->byId("complement")->value("APPT 12"); // On remplit le champ $this->byId("localite")->value("MARSEILLE"); // On remplit le champ $this->byId("code_postal")->value("13012"); // On remplit le champ $this->byId("telephone_fixe")->value("0404040404"); // On remplit le champ $this->byId("fax")->value("0405040404"); // 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 le message $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$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->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$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->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°[\s\S]*$/",$this->byCssSelector(".message")->text()); // On clique $this->byCssSelector("a#link_demande_recepisse")->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 text est présent $this->assertRegExp("/^[\s\S]*RECEPISSE DE DEPOT[\s\S]*$/",$this->source()); // On ferme la fenêtre $this->closeWindow(); // On change le focus de la fenêtre $this->window($windows[0]); // On clique sur le bouton retour $this->byLinkText("Retour")->click(); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // On se déconnecte $this->deconnect(); } // Fonction public public function test_02_AjoutDemandeInitial() { // Récupération des utilisateurs $utilisateurs = $this->listUtlisateurs; // Pour chaque utilisateur on lance le test foreach ($utilisateurs as $utilisateur) { // $this->ajoutDemandeInitial($utilisateur); } // On vérifie la déconnexion $this->verifyDeconnect(); } /** * Test l'ajout d'une demande et de création d'une nouvelle sequence */ public function test_03_AjoutDemandeNouvelleSequence() { // On se connecte à l'application $this->login("guichet", "guichet"); // On clique sur le menu "Nouveau Dossier" $this->byLinkText("Nouveau Dossier")->click(); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // On vérifie le nom de l'onglet $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text()); // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes" $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel("Permis de construire pour une maison individuelle et / ou ses annexes"); // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes" $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial"); // Modification de la date $this->byId("date_demande")->clear(); $this->byId("date_demande")->value("10/10/2014"); // On clique pour ajouter un pétitionnaire principale $this->byId("add_petitionnaire_principal")->click(); // On remplit le champ $this->select($this->byId("particulier_civilite"))->selectOptionByLabel("Monsieur"); // On remplit le champ $this->byId("particulier_nom")->value("DURAND"); // On remplit le champ $this->byId("particulier_prenom")->value("MICKAEL"); // On remplit le champ $this->byId("particulier_date_naissance")->value("03/01/1956"); // On remplit le champ $this->byId("particulier_commune_naissance")->value("LILLE"); // On remplit le champ $this->byId("particulier_departement_naissance")->value("NORD"); // On remplit le champ $this->byId("numero")->value("12"); // On remplit le champ $this->byId("voie")->value("RUE DE LA LOI"); // On remplit le champ $this->byId("complement")->value("APPT 12"); // On remplit le champ $this->byId("localite")->value("MARSEILLE"); // On remplit le champ $this->byId("code_postal")->value("13012"); // On remplit le champ $this->byId("telephone_fixe")->value("0404040404"); // 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 le message $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$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->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$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 d'autorisation n°",$this->byCssSelector(".message .text")->text()); // Récupération du numéro de dossier preg_match('/(PC)[0-9 ]*(P0)/', $this->byCssSelector(".message .text")->text(), $dossier); $dossier = $dossier[0]; // On se déconnecte $this->logout(); } /** * Test l'ajout d'une demande de modification */ public function test_04_AjoutDemandeModification() { // Année en cours $annee = date("y"); /// On se connecte à l'application en tant qu'instructeur // pour ajouter une instruction arrêté sur le dossier crée $this->login("instr", "instr"); // On clique sur le menu $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 $this->byId("action-tab-dossier_instruction-left-consulter-PC013055".$annee."00001P0")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On déplie le fieldset Pétitionnaire $this->byCssSelector("#liste_demandeur legend")->click(); sleep(1); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On vérifie la civilité du demandeur $this->assertContains("Monsieur",$this->byCssSelector(".synthese_demandeur")->text()); // On clique sur l'onglet instruction $this->byId("instruction")->click(); // On clique sur le + pour ajouter une instruction $this->byCssSelector("#sousform-instruction .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 $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 vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur l'onglet DI $this->byId("main")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // on rafraichis la page $this->refresh(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On vérifie l'état du dossier $this->assertEquals("dossier accepter", $this->byId('etat')->text()); // On se déconnecte de l'instructeur $this->deconnect(); // On se connecte en tant que guichet unique $this->login("guichet", "guichet"); // On clique sur le menu "Nouveau Dossier" $this->byLinkText("Autre Dossier")->click(); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // On vérifie le nom de l'onglet $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text()); // On clique pour ajouter une demande au dossier existant $this->byId("action-tab-demande_autre_dossier-left-consulter-PC013055".$annee."00001P0")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // Vérifie le fil d'Ariane $this->assertContains("Guichet Unique > Nouvelle Demande > Autre Dossier > PC 013055", $this->byXPath("//div[3]/div/h2")->text()); // On choisis le type de demande $this->select($this->byId("demande_type"))->selectOptionByLabel("Demande de modification"); // On clique sur ajouter $this->byXPath("//input[@value='Ajouter']")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On vérifie le message $this->assertRegExp("/^[\s\S]*Création du dossier d'instruction n°[\s\S]*$/", $this->byCssSelector("BODY")->text()); // On se déconnecte $this->logout(); } /** * Tests l'affichage réglementaire */ public function test_05_AffichageReglementaire() { // On se connecte à l'application $this->login("guichet", "guichet"); // On clique sur le menu "Attestation" $this->byLinkText("Attestation")->click(); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // On vérifie le nom de l'onglet $this->assertEquals("Imprimer L'attestation D'affichage Réglementaire", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text()); // On écrit "PC0130551200002P0" dans le champ dossier $this->byId("dossier")->value("PC0130551200002P0"); // On clique sur "Valider" $this->byXPath("//input[@value='Valider']")->click(); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // On vérifie que text est présent $this->assertRegExp("/^[\s\S]*Ce dossier n'a jamais été affiché.[\s\S]*$/",$this->byCssSelector("BODY")->text()); // On clique sur le menu "Registre" $this->byLinkText("Registre")->click(); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // On vérifie le nom de l'onglet $this->assertEquals("Imprimer Le Registre D'affichage Réglementaire", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text()); // On clique sur "Valider" $this->byXPath("//input[@value='Valider']")->click(); // On clique sur "Oui" dans la fenêtre js qui apparaît $this->acceptAlert();sleep(5); // Liste des fenêtres ouvertes $windows = $this->windowHandles(); // On change le focus de la fenêtre $this->window($windows[1]); sleep(2); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // On vérifie que text est présent $this->assertRegExp('/^[\s\S]*Registre des dossiers en cours[\s\S]*$/',$this->source()); // On ferme la fenêtre $this->closeWindow(); // On change le focus de la fenêtre $this->window($windows[0]); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // On vérifie que text est présent $this->assertRegExp('/^[\s\S]*Traitement terminé. Le registre a été téléchargé.[\s\S]*$/',$this->byCssSelector("BODY")->text()); // On clique sur le menu "Attestation" $this->byLinkText("Attestation")->click(); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // On vérifie le nom de l'onglet $this->assertEquals("Imprimer L'attestation D'affichage Réglementaire", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text()); // On clique sur "Valider" $this->byXPath("//input[@value='Valider']")->click(); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // On vérifie que text est présent $this->assertRegExp("/^[\s\S]*Veuiller saisir un N° de dossier.[\s\S]*$/",$this->byCssSelector("BODY")->text()); // On écrit "123" dans le champ dossier $this->byId("dossier")->value("123"); // On clique sur "Valider" $this->byXPath("//input[@value='Valider']")->click(); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // On vérifie que text est présent $this->assertRegExp("/^[\s\S]*Ce dossier n'existe pas.[\s\S]*$/",$this->byCssSelector("BODY")->text()); // On écrit "PC0130551200002P0" dans le champ dossier $this->byId("dossier")->value("PC0130551200002P0"); // On clique sur "Valider" $this->byXPath("//input[@value='Valider']")->click(); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // On vérifie que le text est présent $this->assertRegExp("/^[\s\S]*Cliquez sur le lien ci-dessous pour télécharger votre attestation d'affichage[\s\S]*$/",$this->byCssSelector("BODY")->text()); // On clique sur "Attestation d'affichage" $this->byLinkText("Attestation d'affichage")->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 text est // présent $this->assertRegExp("/^[\s\S]*ATTESTATION D'AFFICHAGE REGLEMENTAIRE[\s\S]*$/",$this->source()); // On ferme la fenêtre $this->closeWindow(); // On change le focus de la fenêtre $this->window($windows[0]); // On se deconnecte $this->logout(); } /** * Test le Récépissé */ public function test_06_Recepisse() { // On se connecte à l'application $this->login("guichet", "guichet"); // On clique sur le menu "Récépissé" $this->byLinkText("Récépissé")->click(); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // On vérifie le nom de l'onglet $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text()); // On clique sur "AT0130551200001P0" $this->byLinkText("AT 013055 12 00001P0")->click(); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // Vérifie le fil d'Ariane $this->assertEquals("Guichet Unique > Nouvelle Demande > Récépissé > AT 013055 12 00001P0", $this->byXPath("//div[3]/div/h2")->text()); // On vérifie que le text est présent $this->assertRegExp("/^[\s\S]*Demande d'autorisation de construire, d'aménager ou de modifier un ERP[\s\S]*$/",$this->byCssSelector("BODY")->text()); // Le nom du pétitionnaire doit apparaître $this->assertRegExp("/^[\s\S]*BERNARD LILIANE[\s\S]*$/",$this->byCssSelector("BODY")->text()); // On clique sur le lien $this->byLinkText("Éditer le récépissé PDF")->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 text est présent $this->assertRegExp("/^[\s\S]*RECEPISSE DE DEPOT[\s\S]*$/",$this->source()); // On ferme la fenêtre $this->closeWindow(); // On change le focus de la fenêtre $this->window($windows[0]); // On clique sur "Retour" $this->byLinkText("Retour")->click(); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // On vérifie le nom de l'onglet $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text()); // On se deconnecte $this->logout(); } /** * Test les pétitionnaires fréquents */ public function test_07_PetitionnaireFrequent() { // On se connecte à l'application $this->login("guichet", "guichet"); // On clique sur le menu "Nouveau Dossier" $this->byLinkText("Nouveau Dossier")->click(); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // On vérifie le nom de l'onglet $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text()); // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes" $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel("Permis de construire pour une maison individuelle et / ou ses annexes"); // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes" $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial"); // On clique pour ajouter un pétitionnaire principale $this->byId("add_petitionnaire_principal")->click(); // On remplit le champ $this->byId("particulier_nom")->value("DURAND"); // On remplit le champ $this->byId("particulier_prenom")->value("MICKAEL"); // On remplit le champ $this->byId("particulier_date_naissance")->value("03/01/1956"); // On remplit le champ $this->byId("particulier_commune_naissance")->value("LILLE"); // On remplit le champ $this->byId("particulier_departement_naissance")->value("NORD"); // On remplit le champ $this->byId("numero")->value("12"); // On remplit le champ $this->byId("voie")->value("RUE DE LA LOI"); // On remplit le champ $this->byId("complement")->value("APPT 12"); // On remplit le champ $this->byId("localite")->value("MARSEILLE"); // On remplit le champ $this->byId("code_postal")->value("13012"); // On remplit le champ $this->byId("telephone_fixe")->value("0404040404"); // On sélectionne pétitionnaire fréquent $this->byId("frequent")->click(); // 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 le message $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$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->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$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->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°[\s\S]*$/",$this->byCssSelector(".message")->text()); // On clique $this->byCssSelector("a#link_demande_recepisse")->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 text est présent $this->assertRegExp("/^[\s\S]*RECEPISSE DE DEPOT[\s\S]*$/",$this->source()); // On ferme la fenêtre $this->closeWindow(); // On change le focus de la fenêtre $this->window($windows[0]); // On clique sur le bouton retour $this->byLinkText("Retour")->click(); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); //On se déconnecte $this->deconnect(); //On se connecte en administrateur $this->login("admin", "admin"); //On clique sur le menu guichet unique $this->byLinkText("Guichet Unique")->click(); // On clique sur pétitionnaire fréquent $this->byLinkText("Pétitionnaire Fréquent")->click(); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // On vérifie que le text est présent $this->assertRegExp("/^[\s\S]*pétitionnaire fréquent[\s\S]*$/",$this->source()); // On lance une recherche simple $this->byName("recherche")->value("*DUR"); $this->select($this->byName("selectioncol"))->selectOptionByLabel("nom"); // On clique sur recherche $this->byName("s1")->click(); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // On vérifie que le text est présent $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->source()); // On clique sur le résultat $this->byLinkText("DURAND MICKAEL")->click(); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // On vérifie que le text est présent $this->assertRegExp("/^[\s\S]*RUE DE LA LOI[\s\S]*$/",$this->source()); // On marque le pétitionnaire comme non fréquent $this->byId("action-form-petitionnaire_frequent-non_frequent")->click(); //On vérifie le message $this->assertRegExp("/^[\s\S]*Mise à jour effectuée avec succès[\s\S]*$/",$this->byCssSelector("#tabs-1 .message")->text()); // On clique sur le bouton "Retour" $this->byLinkText("Retour")->click(); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // On vérifie que le text est présent $this->assertRegExp("/^[\s\S]*pétitionnaire fréquent[\s\S]*$/",$this->source()); $this->assertNotContains('DURAND MICKAEL', $this->source()); // On se déconnecte $this->logout(); } /** * Active l'option sig avec la valeur nécessaire pour la suite des tests */ public function test_08_active_option_sig() { // 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('option_sig'); // On clique sur le bouton recherche $this->byCssSelector(".ui-button")->click(); // On clique sur le résultat MONO $this->byLinkText("MARSEILLE")->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('sig_externe'); // 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("sig_externe", $this->byId("valeur")->text()); // On se déconnecte $this->logout(); } /* * Cette fonction va tester l'affectation automatique des instructeurs aux * dossiers d'instruction. * Quatre cas sont possibles : * - Aucun instructeur ne correspond, ; * - Un instructeur joker correspond, ; * - Un instructeur correspond, . */ function test_10_AffectationAutomatique(){ // On se connecte à l'application $this->login("guichet", "guichet"); //Ajout d'un dossier d'instructeur avec affectation d'aucun instructeur $this->ajoutDossierAffectationAutomatique("801", "A", "0001", "Permis de construire comprenant ou non des démolitions", "Poly Com Marseille"); //Ajout d'un dossier d'instructeur avec affectation d'un instructeur //joker avec seulement le type de dossier d'autorisation détaillé de //renseigné $this->ajoutDossierAffectationAutomatique("806", "A", "0001", "Permis de construire pour une maison individuelle et / ou ses annexes", "Louis Laurent"); //Ajout d'un dossier d'instructeur avec affectation du seul instructeur //correspondant parfaitement aux critères $this->ajoutDossierAffectationAutomatique("801", "A", "0001", "Permis de construire pour une maison individuelle et / ou ses annexes", "Pierre Martin"); // On se déconnecte $this->logout(); } /** * Ajoute un dossier d'instruction * @param string $reference_cadastrale_quartier Le quartier de la référence * cadastrale du dossier * @param string $reference_cadastrale_section La section de la référence * cadastrale du dossier * @param string $reference_cadastrale_parcelle La parcelle de la référence * cadastrale du dossier * @param string $datd dossier d'autorisation type détaillé * @param string $instructeur le nom de l'instructeur * * @return boolean */ function ajoutDossierAffectationAutomatique($reference_cadastrale_quartier, $reference_cadastrale_section, $reference_cadastrale_parcelle,$datd, $instructeur){ //On affiche le tableau de bord $this->byLinkText("Tableau de bord")->click(); // On clique sur le menu "Nouveau Dossier" $this->byLinkText("Nouveau Dossier")->click(); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // On vérifie le nom de l'onglet $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text()); // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes" $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel($datd); // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes" $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial"); //On saisie les références cadastrales $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(1)")->value($reference_cadastrale_quartier); $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(2)")->value($reference_cadastrale_section); $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(3)")->value($reference_cadastrale_parcelle); //On saisi l'adresse $this->byId("terrain_adresse_voie_numero")->value("0075"); $this->byId("terrain_adresse_voie")->value("TRA DE LA DOMINIQUE"); $this->byId("terrain_adresse_code_postal")->value("13011"); $this->byId("terrain_adresse_localite")->value("MARSEILLE"); // On clique pour ajouter un pétitionnaire principale $this->byId("add_petitionnaire_principal")->click(); // On remplit le champ $this->byId("particulier_nom")->value("DURAND"); // On remplit le champ $this->byId("particulier_prenom")->value("MICKAEL"); // On remplit le champ $this->byId("particulier_date_naissance")->value("03/01/1956"); // On remplit le champ $this->byId("particulier_commune_naissance")->value("LILLE"); // On remplit le champ $this->byId("particulier_departement_naissance")->value("NORD"); // On remplit le champ $this->byId("numero")->value("12"); // On remplit le champ $this->byId("voie")->value("RUE DE LA LOI"); // On remplit le champ $this->byId("complement")->value("APPT 12"); // On remplit le champ $this->byId("localite")->value("MARSEILLE"); // On remplit le champ $this->byId("code_postal")->value("13012"); // On remplit le champ $this->byId("telephone_fixe")->value("0404040404"); // 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 le message $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$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->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$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->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°[\s\S]*$/",$this->byCssSelector(".message")->text()); // On clique $this->byCssSelector("a#link_demande_recepisse")->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 text est présent $this->assertRegExp("/^[\s\S]*Dossier suivi par ".$instructeur."[\s\S]*$/",$this->source()); // On ferme la fenêtre $this->closeWindow(); // On change le focus de la fenêtre $this->window($windows[0]); } /** * Vérifie le menu "Autre Dossier" et "Dossier En Cours" */ public function test_11_autre_dossier() { // On se connecte en tant que "guichet" $this->login("guichet", "guichet"); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur "Autre Dossier" $this->byLinkText("Autre Dossier")->click(); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // On vérifie que le dossier qui ne doit pas être dans // "Dossier En Cours" sont ici $this->assertRegExp("/^[\s\S]*PC 013055 ".date("y")." 00001P0[\s\S]*$/", $this->byCssSelector("#tab-demande_autre_dossier .tab-tab")->text()); // On clique sur "Dossier En Cours" $this->byLinkText("Dossier En Cours")->click(); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // On vérifie que le dossier précédement contrôlé n'ait pas // affiché $this->assertNotContains("PC 013055 13 00001P0", $this->byCssSelector("#tab-demande_dossier_encours .tab-tab")->text()); // On se déconnecte $this->logout(); } /** * Désactive l'option sig avec la valeur nécessaire */ public function test_12_desactive_option_sig() { // 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('option_sig'); // On clique sur le bouton recherche $this->byCssSelector(".ui-button")->click(); // On clique sur le résultat MONO $this->byLinkText("MARSEILLE")->click(); // On clique sur le bouton "Modifier" $this->byId('action-form-om_parametre-modifier')->click(); // On change la valeur par "aucun" $this->byId('valeur')->clear(); $this->byId('valeur')->value('aucun'); // 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("aucun", $this->byId("valeur")->text()); // On se déconnecte $this->logout(); } } ?>