"instr", "mdp" => "instr" ), 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); } // 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(); } // public function test_02_visualisation_di_et_da_par_l_instructeur_en_charge() { // 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 vérifie que le breadcrumb est correct $this->assertEquals("AZ 013055 12 00001P0", $this->byId("dossier_libelle")->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 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 l'onglet "Lot(s)" $this->byId("lot")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur l'onglet "Message(s)" $this->byId("dossier_message")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur l'onglet "Commission(s)" $this->byId("dossier_commission")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur l'onglet "Bloc-note" $this->byId("blocnote")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur l'onglet "DA" $this->byId("dossier_autorisation")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur le lien "AZ0130551200001" dans le tableau $this->byLinkText("AZ 013055 12 00001")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On vérifie que le breadcrumb est correct $this->assertEquals("AZ 013055 12 00001", $this->byCssSelector(".form-content #dossier_autorisation_libelle")->text()); // On clique sur l'onglet "Dossier(s) d'instruction" $this->byId("dossier_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 "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 vérifie que le breadcrumb est correct $this->assertEquals("AZ 013055 12 00001P0", $this->byId("dossier_libelle")->text()); // On se déconnecte $this->logout(); } /** * */ public function test_03_informations_du_widget_profil_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 le titre du widget est correct $this->assertEquals("Infos profil", $this->byCssSelector("#widget_2 .widget-header h3")->text()); // On vérifie que le profil est bon $this->assertEquals("INSTRUCTEUR", $this->byCssSelector(".profil-infos-profil span.value")->text()); // On vérifie que le nom de l'instructeur affiché est le bon $this->assertEquals("Louis Laurent", $this->byCssSelector(".profil-infos-nom span.value")->text()); // On vérifie que la division de l'instructeur affichée est la bonne $this->assertEquals("H", $this->byCssSelector(".profil-infos-division span.value")->text()); // On se déconnecte $this->byLinkText("Déconnexion")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On se connecte en tant que "instr" $this->login("instr1", "instr"); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On vérifie que le titre du widget est correct $this->assertEquals("Infos profil", $this->byCssSelector("#widget_2 .widget-header h3")->text()); // On vérifie que le profil est bon $this->assertEquals("INSTRUCTEUR", $this->byCssSelector(".profil-infos-profil span.value")->text()); // On vérifie que le nom de l'instructeur affiché est le bon $this->assertEquals("Martine Nadeau", $this->byCssSelector(".profil-infos-nom span.value")->text()); // On vérifie que la division de l'instructeur affichée est la bonne $this->assertEquals("H", $this->byCssSelector(".profil-infos-division span.value")->text()); // On se déconnecte $this->byLinkText("Déconnexion")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On se connecte en tant que "instr" $this->login("instr2", "instr"); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On vérifie que le titre du widget est correct $this->assertEquals("Infos profil", $this->byCssSelector("#widget_2 .widget-header h3")->text()); // On vérifie que le profil est bon $this->assertEquals("INSTRUCTEUR", $this->byCssSelector(".profil-infos-profil span.value")->text()); // On vérifie que le nom de l'instructeur affiché est le bon $this->assertEquals("Roland Richard", $this->byCssSelector(".profil-infos-nom span.value")->text()); // On vérifie que la division de l'instructeur affichée est la bonne $this->assertEquals("J", $this->byCssSelector(".profil-infos-division span.value")->text()); // On se déconnecte $this->logout(); } /** * Ajout d'instructions par l'instructeur sur le dossier DP0130551200001P0 * Modification d'un événement */ public function test_04_ajout_instructions_par_instructeur() { // 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 "Paramétrage Dossiers" dans le menu $this->byLinkText("Paramétrage Dossiers")->click(); // On clique sur le sousmenu "Événement" $this->byLinkText("Événement")->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('CDEC'); // On clique sur le bouton recherche $this->byCssSelector(".ui-button")->click(); // On clique sur le résultat $this->byLinkText("CDEC majoration appel decision")->click(); // On clique sur le bouton "Modifier" $this->byId('action-form-evenement-modifier')->click(); // On modifie le champ restriction avec des données erronées $this->byId('restriction')->clear(); $this->byId('restriction')->value("date_evenement >= champ_errone + 1"); // On valide la modification $this->byCssSelector("input[value='Modifier']")->click(); // On vérifie le message de validation $this->assertRegExp("/^[\s\S]*Le champ champ_errone n'est pas utilisable pour le champ restriction[\s\S]*$/",$this->byCssSelector("#tabs-1 .message")->text()); // On modifie le champ restriction pour qu'il retourne une erreur au // moment de l'ajout de l'instruction $this->byId('restriction')->clear(); $this->byId('restriction')->value("date_evenement >= date_evenement + 1"); // 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 se déconnecte $this->deconnect(); //{{{ Ajout de d'un nouveau dossier // On se connecte à l'application $this->login("guichet", "guichet"); //On clique sur le menu des instructions $this->byLinkText("Nouveau Dossier")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On ajoute un nouveau dossier $dossier = $this->addDossierInstruction(1, 1); // 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 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(); sleep(1); // On clique sur le dossier dernièrement créé $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 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(); //Ajout d'une instruction simple // 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 CDEC majoration appel decision [majoration] $this->select($this->byId("evenement"))->selectOptionByValue("22"); //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(); // On vérifie le mesage d'erreur // on vérifie que le retour d'incomplétude est en erreur $this->assertRegExp( '/.*Problème de dates :*/', $this->byCssSelector("#formulaire .message .text")->text() ); $this->assertRegExp( '/.*date d\'événement \>\= date d\'événement \+ 1*/', $this->byCssSelector("#formulaire .message .text")->text() ); $this->assertRegExp( '/.*SAISIE NON ENREGISTRÉE*/', $this->byCssSelector("#formulaire .message .text")->text() ); // 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 clique sur le lien "Paramétrage Dossiers" dans le menu $this->byLinkText("Paramétrage Dossiers")->click(); // On clique sur le sousmenu "Événement" $this->byLinkText("Événement")->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('CDEC'); // On clique sur le bouton recherche $this->byCssSelector(".ui-button")->click(); // On clique sur le résultat $this->byLinkText("CDEC majoration appel decision")->click(); // On clique sur le bouton "Modifier" $this->byId('action-form-evenement-modifier')->click(); // On modifie le champ restriction pour qu'il ne retourne pas d'erreur // au moment de l'ajout de l'instruction $this->byId('restriction')->clear(); $this->byId('restriction')->value("date_evenement <= date_evenement + 1"); // 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 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 clique sur le lien "Paramétrage Dossiers" dans le menu $this->byLinkText("Paramétrage Dossiers")->click(); // On clique sur le sousmenu "Événement" $this->byLinkText("Événement")->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('accepter un dossier sans réserve'); // On clique sur le bouton recherche $this->byCssSelector(".ui-button")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur le résultat $this->byLinkText("accepter un dossier sans réserve")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur le bouton "Modifier" $this->byId('bible')->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On Ajoute 2 éléments de bible automatique $this->byId('bible')->click(); //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(); $this->byCssSelector('#sousform-bible #libelle')->value("test 1"); $this->byId('contenu')->value("test contenu 1"); $this->select($this->byId("complement"))->selectOptionByValue("1"); $this->select($this->byId("automatique"))->selectOptionByValue("Oui"); $this->select($this->byId("om_collectivite"))->selectOptionByLabel("agglo"); // On valide la modification $this->byCssSelector("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 le message de validation $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-bible .message")->text()); //On retourne sur le tableau d'instructions $this->byCssSelector("#sousform-bible .retour")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //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(); $this->byCssSelector('#sousform-bible #libelle')->value("test 2"); $this->byId('contenu')->value("test contenu 2"); $this->select($this->byId("complement"))->selectOptionByValue("2"); $this->select($this->byId("automatique"))->selectOptionByValue("Oui"); $this->select($this->byId("om_collectivite"))->selectOptionByLabel("agglo"); // On valide la modification $this->byCssSelector("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 de validation $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-bible .message")->text()); //On retourne sur le tableau d'instructions $this->byCssSelector("#sousform-bible .retour")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //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(); $this->byCssSelector('#sousform-bible #libelle')->value("test 3"); $this->byId('contenu')->value("test contenu 3"); $this->select($this->byId("complement"))->selectOptionByValue("3"); $this->select($this->byId("automatique"))->selectOptionByValue("Oui"); $this->select($this->byId("om_collectivite"))->selectOptionByLabel("agglo"); // On valide la modification $this->byCssSelector("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 de validation $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-bible .message")->text()); //On retourne sur le tableau d'instructions $this->byCssSelector("#sousform-bible .retour")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //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(); $this->byCssSelector('#sousform-bible #libelle')->value("test 4"); $this->byId('contenu')->value("test contenu 4"); $this->select($this->byId("complement"))->selectOptionByValue("4"); $this->select($this->byId("automatique"))->selectOptionByValue("Oui"); $this->select($this->byId("om_collectivite"))->selectOptionByLabel("agglo"); // On valide la modification $this->byCssSelector("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 de validation $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-bible .message")->text()); // 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 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(); sleep(1); // On clique sur le dossier dernièrement créé $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 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(); //Ajout d'une instruction simple // 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 CDEC majoration appel decision [majoration] $this->select($this->byId("evenement"))->selectOptionByValue("22"); //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); $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text()); //On retourne sur le tableau d'instructions $this->byCssSelector("#sousform-instruction .retour")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On affiche l'instruction $this->byLinkText("CDEC majoration appel decision")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On vérifie que certains champs n'apparaissent pas $this->assertFalse($this->byId("date_envoi_controle_legalite")->displayed()); $this->assertFalse($this->byId("date_retour_controle_legalite")->displayed()); //On retourne sur le tableau d'instructions $this->byCssSelector("#sousform-instruction .retour")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //Ajout d'une instruction de type arrêté // 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 "accepter un dossier sans réserve [acceptation]" $this->select($this->byId("evenement"))->selectOptionByValue("81"); // On clique sur la bible automatique $this->byLinkText('automatique')->click(); // On clique sur la bible $this->byLinkText('bible')->click(); // On vérifie qu'il y est les enregistrments "V56" et "V64" $this->assertRegExp('/^[\s\S]*V56[\s\S]*$/', $this->byCssSelector("#tab-bible")->text()); $this->assertRegExp('/^[\s\S]*V64[\s\S]*$/', $this->byCssSelector("#tab-bible")->text()); // On choisit plusieurs éléments $this->byId('checkbox5')->click(); $this->byId('checkbox6')->click(); // 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 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(); // On vérifie le message de validation $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text()); //On retourne sur le tableau d'instructions $this->byCssSelector("#sousform-instruction .retour")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur l'instruction $this->byLinkText("accepter un dossier sans réserve")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On vérifie le contenu du champ "complément" $this->assertContains("contenu 1", $this->byId("complement_om_html")->text()); $this->assertContains("Vu l'avis favorable de l'Architecte des Bâtiments de France en date du", $this->byId("complement_om_html")->text()); $this->assertContains("Vu l'avis favorable avec prescriptions de la Direction Régionale des Affaires Culturelles en date du", $this->byId("complement_om_html")->text()); $this->assertContains("contenu 2", $this->byId("complement2_om_html")->text()); $this->assertContains("contenu 3", $this->byId("complement3_om_html")->text()); $this->assertContains("contenu 4", $this->byId("complement4_om_html")->text()); //On vérifie que certains champs apparaissent $this->assertTrue($this->byClassName("libelle-date_envoi_controle_legalite")->displayed()); $this->assertTrue($this->byClassName("libelle-date_envoi_controle_legalite")->displayed()); // On se déconnecte $this->deconnect(); //{{{ // Ajout de d'un nouveau dossier pour test d'ajout d'événement d'instruction // sans lettretype // On se connecte à l'application $this->login("guichet", "guichet"); //On clique sur le menu des instructions $this->byLinkText("Nouveau Dossier")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On ajoute un nouveau dossier $dossier = $this->addDossierInstruction(1, 1, "Test instruction sans édition"); // 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 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(); sleep(1); // On clique sur le dossier dernièrement créé $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 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(); //Ajout d'une instruction de refus // 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 Refus HS $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(); // On vérifie le mesage de validation $this->assertRegExp( '/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text() ); //On retourne sur le tableau d'instructions $this->byCssSelector("#sousform-instruction .retour")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur l'instruction $this->byLinkText("Changer l'autorité compétente 'commune état'")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On vérifie qu'il n'y a pas d'action "Édition" dans le portlet d'actions $test = preg_match( '/Édition/i', $this->byCssSelector("#sousform-instruction #portlet-actions")->text() ); $this->assertTrue(!$test); // On vérifie qu'il n'y a pas d'action "Finaliser le document" dans // le portlet d'actions $test = preg_match( '/Finaliser le document/i', $this->byCssSelector("#sousform-instruction #portlet-actions")->text() ); $this->assertTrue(!$test); // On se déconnecte $this->logout(); // }}} } /** * test le formulaire de la demande de type qui possède des select filtrés */ public function test_05_ajout_lot() { // 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 "Lot(s)" $this->byId("lot")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur le bouton d'ajout de lots $this->byXPath("//div[@id='sousform-lot']/table/thead/tr/th/a/span")->click(); // Vérification des champs obligatoires $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 que le message de champ vide soit affiché $this->assertRegExp('/.*SAISIE NON ENREGISTRÉE.*/', $this->byCssSelector("#sousform-lot .message .text")->text()); // Insertion d'un lot $this->byId("libelle")->value("Lot n°1"); $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 retourne sur le tableau listant les lots $this->byCssSelector("form[name=\"f2\"] > div.formControls > 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 bouton d'ajout de lots $this->byXPath("//div[@id='sousform-lot']/table/thead/tr/th/a/span")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // Insertion d'un second lot $this->byId("libelle")->value("Lot n°2"); $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 retourne sur le tableau listant les lots $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On se déconnecte $this->logout(); } // Fonction public public function test_06_modification_autorite_competente() { // Récupération des utilisateurs $utilisateurs = $this->listUtlisateurs; // Pour chaque utilisateur on lance le test foreach ($utilisateurs as $utilisateur) { // $this->modification_autorite_competente($utilisateur); } // On vérifie la déconnexion $this->verifyDeconnect(); } /** * test de l'ajout de données techniques au dossier */ public function test_07_edition_donnees_techniques() { // On se connecte en tant que "guichet" $this->login("guichet", "guichet"); // On clique sur le sous-menu "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(); $this->select($this->byName("dossier_autorisation_type_detaille"))->selectOptionByValue("1"); $dossier = $this->addDossierInstruction(1, 1, "Test cerfa"); // On se déconnecte $this->deconnect(); // On se connecte en tant que "admin" $this->login("admin", "admin"); sleep(1); // Ouverture du menu de paramétrage des dossiers $this->byLinkText("Paramétrage Dossiers")->click(); // Ouverture du menu des cerfa $this->byLinkText("Cerfa")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // Ouverture d'un cerfa $this->byLinkText("cerfa de test n°3")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // Modification du cerfa affiché $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 modifie la durée de validité $this->byId("om_validite_fin")->clear(); $this->byId("om_validite_fin")->value("31/12/2013"); // On valide le formulaire $this->byXPath("//input[@value='Modifier']")->click(); // On vérifie le message de validation $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text()); // On se déconnecte $this->deconnect(); // On verifie que les données techniques sont toujours disponibles // 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 recherche le dossier crée $this->byName("recherche")->value(str_replace(' ', '', $dossier)); // On clique sur le bouton recherche $this->byName("s1")->click(); // On clique sur le lien "PC 013055 12 00002P0" dans le tableau $this->byLinkText($dossier)->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On click sur le lien "Données techniques" $this->byId("action-form-dossier_instruction_mes_encours-donnees_techniques")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); sleep(1); // Vérification des fieldset $this->assertContains("Aménager", $this->byCssSelector("#sousform-donnees_techniques #form-content")->text()); $this->assertContains("Construire", $this->byCssSelector("#sousform-donnees_techniques #form-content")->text()); $this->assertContains("Démolir", $this->byCssSelector("#sousform-donnees_techniques #form-content")->text()); $this->byCssSelector(".ui-dialog-titlebar-close")->click(); // On se déconnecte $this->deconnect(); // On se connecte en tant que "admin" $this->login("admin", "admin"); sleep(1); // Ouverture du menu de paramétrage des dossiers $this->byLinkText("Paramétrage Dossiers")->click(); // Ouverture du menu des cerfa $this->byLinkText("Cerfa")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //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(); $this->byId("libelle")->value("test cerfa 3"); $this->byId("code")->value("cerfa 3"); $this->byId("om_validite_debut")->value("01/04/2014"); $this->byId("om_validite_fin")->value("01/04/2018"); // Ajout de champs au formulaire des données techniques $this->byXPath("//div[@id='form-content']/div[2]/fieldset/legend")->click(); $this->byId("terr_juri_titul")->click(); $this->byId("terr_juri_lot")->click(); $this->byId("terr_juri_zac")->click(); $this->byId("terr_juri_afu")->click(); $this->byId("terr_juri_pup")->click(); $this->byId("terr_juri_oin")->click(); $this->byId("terr_juri_desc")->click(); // Validation du formulaire $this->byXPath("//input[@value='Ajouter']")->click(); // Vérification des erreurs $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector(".message .text")->text()); $this->byLinkText("Retour")->click(); // Ouverture du menu des DATD $this->byLinkText("Type DA Détaillé")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // Ouverture du PCI $this->byLinkText("PCI")->click(); // Modification du DATD affiché $this->byXPath("//div[@id='portlet-actions']/ul/li/a/span")->click(); $this->select($this->byId("cerfa"))->clearSelectedOptions(); $this->select($this->byName("cerfa"))->selectOptionByLabel("test cerfa 3"); // On valide le formulaire $this->byXPath("//input[@value='Modifier']")->click(); // On vérifie le message de validation $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text()); // On clique sur "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 "Retour" $this->byLinkText("Retour")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // Ouverture du PCI $this->byLinkText("AZ")->click(); // Modification du DATD affiché $this->byXPath("//div[@id='portlet-actions']/ul/li/a/span")->click(); $this->select($this->byName("cerfa"))->selectOptionByValue(""); // On valide le formulaire $this->byXPath("//input[@value='Modifier']")->click(); // On vérifie le message de validation $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text()); // On clique sur "Retour" $this->byLinkText("Retour")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On se déconnecte $this->deconnect(); // On verifie que les données techniques sont toujours disponibles // 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($dossier)->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On click sur le lien "Données techniques" $this->byXPath("//div[@id='portlet-actions']/ul/li[2]/a/span")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // Vérification des fieldset $this->assertContains("Aménager", $this->byCssSelector("#sousform-donnees_techniques #form-content")->text()); $this->assertContains("Construire", $this->byCssSelector("#sousform-donnees_techniques #form-content")->text()); $this->assertContains("Démolir", $this->byCssSelector("#sousform-donnees_techniques #form-content")->text()); $this->byCssSelector(".ui-dialog-titlebar-close")->click(); // On se déconnecte $this->deconnect(); // On se connecte en tant que "instr" $this->login("guichet", "guichet"); /** On instancie une nouvelle demande initial PCI **/ // On clique sur le sous-menu "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(); $this->select($this->byName("dossier_autorisation_type_detaille"))->selectOptionByValue("1"); $dossier = $this->addDossierInstruction(1, 1, "Test cerfa"); // On se déconnecte $this->deconnect(); // 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 cherche le service $this->byName("recherche")->value(str_replace(" ","",$dossier)); //On valide $this->byName("s1")->click(); // On clique sur le lien "AZ0130551200001P0" dans le tableau $this->byLinkText($dossier)->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On click sur le lien "Données techniques" $this->byXPath("//div[@id='portlet-actions']/ul/li[2]/a/span")->click(); sleep(1); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); $this->assertRegExp('/^[\s\S]*Terrain[\s\S]*$/', $this->byCssSelector("#sousform-donnees_techniques #form-content")->text()); $this->byCssSelector(".ui-dialog-titlebar-close")->click(); // On se déconnecte $this->deconnect(); // On se connecte en tant que "instr" $this->login("admin", "admin"); sleep(1); // Ouverture du menu de paramétrage des dossiers $this->byLinkText("Paramétrage Dossiers")->click(); // Ouverture du menu des cerfa $this->byLinkText("Cerfa")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // Afficher les éléments expirés $this->byLinkText("Afficher les éléments expirés")->click(); sleep(0.5); // Ouverture d'un cerfa $this->byLinkText("cerfa de test n°3")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // Modification du cerfa affiché $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 modifie la durée de validité $this->byId("om_validite_fin")->clear(); $this->byId("om_validite_fin")->value("31/12/2018"); // On valide le formulaire $this->byXPath("//input[@value='Modifier']")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // Ouverture du menu des DATD $this->byLinkText("Type DA Détaillé")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // Ouverture du PCI $this->byLinkText("PCI")->click(); // Modification du DATD affiché $this->byXPath("//div[@id='portlet-actions']/ul/li/a/span")->click(); $this->select($this->byId("cerfa"))->clearSelectedOptions(); $this->select($this->byName("cerfa"))->selectOptionByLabel("cerfa de test n°3"); // On valide le formulaire $this->byXPath("//input[@value='Modifier']")->click(); // On vérifie le message de validation $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text()); // On clique sur "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 "Retour" $this->byLinkText("Retour")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // Ouverture du PCI $this->byLinkText("AZ")->click(); // Modification du DATD affiché $this->byXPath("//div[@id='portlet-actions']/ul/li/a/span")->click(); $this->select($this->byName("cerfa"))->selectOptionByLabel("cerfa de test n°3"); // On valide le formulaire $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 se déconnecte $this->logout(); } // /** * test un événement d'instruction qui a un événement "retour" */ public function test_08_evenement_instruction_retour() { // // On se connecte à l'application en tant qu'administrateur $this->login("admin", "admin"); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // /** On ajoute une action "retour signature" **/ // On clique sur le menu "Paramétrage Dossiers" $this->byLinkText("Paramétrage Dossiers")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur le sous-menu "Action" $this->byLinkText("Action")->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" $this->byId("action-tab-action-corner-ajouter")->click(); // On remplis les champs $this->byId("action")->value("retour signature"); $this->byId("libelle")->value("retour signature"); $this->byId("regle_etat")->value("etat"); $this->byId("regle_date_validite")->value("date_retour_signature + duree_validite"); // On valide le formulaire $this->byXPath("//input[@value='Ajouter']")->click(); // On vérifie le message de validation $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text()); /** Fin **/ // /** On ajoute un événement "retour signature" **/ // On clique sur le sous-menu "Événement" $this->byLinkText("Événement")->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" $this->byId("action-tab-evenement-corner-ajouter")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On remplis les champs $this->byId("libelle")->value("retour signature"); $this->byId("retour")->click(); $this->select($this->byName("etats_depuis_lequel_l_evenement_est_disponible[]"))->clearSelectedOptions();; $this->select($this->byName("etats_depuis_lequel_l_evenement_est_disponible[]"))->selectOptionByLabel("dossier accepter"); $this->select($this->byName("dossier_instruction_type[]"))->clearSelectedOptions(); $this->select($this->byName("dossier_instruction_type[]"))->selectOptionByLabel("PCI - P - Initial"); $this->select($this->byId("action"))->selectOptionByLabel("retour signature"); // On valide le formulaire $this->byXPath("//input[@value='Ajouter']")->click(); // On vérifie le message de validation $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text()); // On clique sur "Retour" $this->byLinkText("Retour")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On recherche l'événement "accepter un dossier sans réserve" $this->byCssSelector("input[name='recherche']")->value('accepter un dossier sans réserve'); // On clique sur le bouton recherche $this->byCssSelector(".ui-button")->click(); // On clique sur le résultat $this->byLinkText("accepter un dossier sans réserve")->click(); // On clique sur le bouton "Modifier" $this->byId('action-form-evenement-modifier')->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On sélectionne l'événement "retour" dans "evenement_retour_signature" $this->select($this->byId("evenement_retour_signature"))->selectOptionByLabel("retour signature"); // On valide le formulaire $this->byXPath("//input[@value='Modifier']")->click(); // On vérifie le message de validation $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text()); /** Fin **/ // /** On ajoute une durée de validité au type de DA PCI **/ // On clique sur le sous-menu "Type DA Détaillé" $this->byLinkText("Type DA Détaillé")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur le PCI $this->byLinkText("PCI")->click(); // On clique sur le bouton "modifier" $this->byId("action-form-dossier_autorisation_type_detaille-modifier")->click(); // On modifie la durée de validité $this->byId("duree_validite_parametrage")->clear(); $this->byId("duree_validite_parametrage")->value("5"); // On valide le formulaire $this->byXPath("//input[@value='Modifier']")->click(); // On vérifie le message de validation $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text()); /** Fin **/ // /** On instancie une nouvelle demande initial PCI **/ // On clique sur le menu "Guichet Unique" $this->byLinkText("Guichet Unique")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur le sous-menu "Nouveau Dossier" $this->byLinkText("Nouveau Dossier")->click();sleep(1); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On selectionne le type de dossier d'autorisation détaillé "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 type de demande "Dépôt Initial" $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial"); // Puis la collectivité $this->select($this->byId("om_collectivite"))->selectOptionByLabel("agglo"); // On clique pour ajouter un pétitionnaire principale $this->byId("add_petitionnaire_principal")->click(); $this->byId("particulier_nom")->value("DURAND"); $this->byId("particulier_prenom")->value("MICKAEL"); $this->byId("particulier_date_naissance")->value("03/01/1956"); $this->byId("particulier_commune_naissance")->value("LILLE"); $this->byId("particulier_departement_naissance")->value("NORD"); $this->byId("numero")->value("12"); $this->byId("voie")->value("RUE DE LA LOI"); $this->byId("complement")->value("APPT 12"); $this->byId("localite")->value("MARSEILLE"); $this->byId("code_postal")->value("13012"); $this->byId("telephone_fixe")->value("0404040404"); $this->select($this->byCssSelector("#sformulaire #om_collectivite"))->selectOptionByLabel("agglo"); // On clique sur ajouter $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1); // 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("DURAND MICKAEL",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text()); // On clique sur ajouter $this->byXPath("//input[@value='Ajouter']")->click(); // 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]; /** Fin **/ // /** On ajoute une instruction de dossier accepter et on la finalise **/ // On clique sur le menu "Instruction" $this->byLinkText("Instruction")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur le sous-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 recherche le dossier crée $this->byId("dossier")->value(str_replace(' ', '', $dossier)); // On clique sur le bouton recherche $this->byId("adv-search-submit")->click(); // On clique sur le résultat $this->byLinkText($dossier)->click(); // On clique sur l'onglet "Instruction" $this->byId("instruction")->click(); // On ajoute un événement d'instruction $this->byId("action-soustab-instruction-corner-ajouter")->click(); // On choisit un signataire Albert Dupont $this->select($this->byId("signataire_arrete"))->selectOptionByValue("1"); //On choisit l'instruction 'accepter un dossier sans réserve //[acceptation]' $this->select($this->byId("evenement"))->selectOptionByValue(81); // On valide le formulaire $this->byXPath("//input[@value='Ajouter']")->click(); // On vérifie le message $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 l'événement d'instruction "accepter un dossier sans réserve" $this->byLinkText("accepter un dossier sans réserve")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On valide l'instruction $this->byId("action-sousform-instruction-finaliser")->click(); // On vérifie le message de validation $this->assertContains("La finalisation du document s'est effectuée avec succès.",$this->byCssSelector(".message .text")->text()); sleep(1); // On clique sur le bouton "Retour" $this->byLinkText("Retour")->click(); // On clique sur l'événement "accepter un dossier sans réserve" $this->byLinkText("accepter un dossier sans réserve")->click();sleep(1); // Récupération du numéro d'événement $evenement = $this->byCssSelector("#instruction.field_value")->text(); /** Fin **/ // /** On met à jour la date de retour signature **/ // Date de retour signature $date_retour_signature = date("d/m/Y", mktime(0, 0, 0, date("m"), date("d")+5, date("Y"))); // On clique sur le menu "Suivi" $this->byLinkText("Suivi")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur le sous-menu "Mise À Jour Des Dates" $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(); // On sélectionne "date de retour de signature + Envoi contrôle légalite" $this->select($this->byId("type_mise_a_jour"))->selectOptionByLabel("date de retour de signature + Envoi contrôle légalite"); // On remplit à la date du jour + 5 jours $this->byId("date")->value($date_retour_signature); // On remplit le code barres de l'instruction $this->byId("code_barres")->value("11".str_pad($evenement, 10, "0", STR_PAD_LEFT)); // On clique sur Valider $this->byCssSelector("#suivi_mise_a_jour_des_dates_form div.formControls input.om-button")->click();sleep(1); // On vérifie la synthèse avec le numéro du dossier et l'événement $this->assertContains($dossier, $this->byId("dossier_libelle")->text()); $this->assertContains("accepter un dossier sans réserve", $this->byId("evenement")->text()); // On clique sur Valider $this->byCssSelector("#suivi_mise_a_jour_des_dates_form div.formControls input.om-button")->click(); // On vérifie le message de validation $this->assertContains("Saisie enregistrée",$this->byCssSelector(".message .text")->text()); /** Fin **/ // /** Vérifie l'instruction "retour" et le DI **/ // Date de validité $date_validite = $this->mois_date(date("Y-m-d", mktime(0, 0, 0, date("m"), date("d")+5, date("Y"))), 5, "+"); $date_validite = date("d/m/Y", strtotime($date_validite)); // On clique sur le menu "Instruction" $this->byLinkText("Instruction")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur le sous-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 recherche le dossier crée $this->byId("dossier")->value(str_replace(' ', '', $dossier)); // On clique sur le bouton recherche $this->byId("adv-search-submit")->click(); // On clique sur le résultat $this->byLinkText($dossier)->click(); // On vérifie la date de validité mise à jour par l'action $this->assertContains($date_validite, $this->byId("date_validite")->text()); // On clique sur l'onglet "Instruction" $this->byId("instruction")->click(); // On clique sur l'instruction "retour signature" $this->byLinkText("retour signature")->click(); // On contrôle la date de retour signature $this->assertContains($date_retour_signature, $this->byId("date_retour_signature")->text()); /** Fin **/ // // On se déconnecte $this->logout(); // } // /** * test la suppression d'un événement d'instruction lié à une demande qui ne * créée pas de nouveau dossier d'instruction */ public function test_09_suppression_evenement_demande(){ // //Ajout du paramétrage d'une nouvelle demande // On se connecte à l'application en tant qu'administrateur $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 "Paramétrage dossier" $this->byLinkText("Paramétrage Dossiers")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On clique sur Type $this->byLinkText("Type")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //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 saisit le type de la demande $this->byId("code")->value("test_09_suppression"); $this->byId("libelle")->value("test_09_suppression"); // On sélectionne le groupe 'Autorisation ADS' $this->select($this->byId("groupe"))->selectOptionByValue("1");sleep(1); // On sélectionne 'AZ (Demande d'autorisation spéciale de travaux dans // le périmètre d'une AVAP)' $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByValue("7");sleep(1); // On sélectionne la nature 'Dossier existant' $this->select($this->byId("demande_nature"))->selectOptionByValue("2"); // On sélectionne l'état 'En cours' $this->select($this->byName("etats_autorises[]"))->selectOptionByValue("notifier"); // On sélectionne l'événement 'Defrichement soumis a enquete publique' $this->select($this->byId("evenement"))->selectOptionByValue("15"); // On sélectionne la contrainte 'Avec récupération demandeur' $this->select($this->byId("contraintes"))->selectOptionByValue("avec_recup"); // On clique sur le bouton 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 que le type de demande a bien été ajouté $this->assertContains('Vos modifications ont bien été enregistrées', $this->byCssSelector(".message .text")->text()); //On se déconnecte $this->deconnect(); // //Création d'un nouveau dossier d'instruction // On se connecte à l'application $this->login("guichet", "guichet"); //On clique sur "Dossier En Cours" $this->byLinkText("Dossier En Cours")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On clique sur le dossier "AZ0130551200001P0" $this->byId("action-tab-demande_dossier_encours-left-consulter-AZ0130551200001P0")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On vérifie l'état du DI $this->assertContains("delai de notification envoye", $this->byCssSelector("#fieldset-form-demande_dossier_encours-etat-du-dossier-d_instruction.cadre .fieldsetContent .form-content")->text()); //On sélectionne le type de la demande $this->select($this->byId("demande_type"))->selectOptionByLabel("test_09_suppression");sleep(1); // On clique sur le bouton 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 que le type de demande a bien été ajouté $this->assertContains('Vos modifications ont bien été enregistrées', $this->byCssSelector(".message .text")->text()); //On se déconnecte $this->deconnect(); // //Suppression de l'événement d'instruction // On se connecte à l'application $this->login("admin", "admin"); //On clique sur le menu "Instruction" $this->byLinkText("Instruction")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //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 "AZ 013055 12 00001P0" $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 "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 l'instruction "Defrichement soumis a enquete publique" $this->byLinkText("Defrichement soumis a enquete publique")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On définalise l'instruction $this->byClassName("definalise")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On clique "Supprimer" $this->byCssSelector("#sousform-instruction .delete-16")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On clique sur supprimer $this->byXPath("//input[@value='Supprimer']")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On vérifie que lasuppression a été éffectuée $this->assertContains("La suppression a été correctement effectuée.", $this->byCssSelector("#sousform-instruction .message .text")->text()); // On se déconnecte $this->logout(); } /** * test sur un événement non verrouillable */ public function test_11_evenement_non_verrouillable(){ // /* On crée une nouvelle demande initial */ // 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 sélectionne 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 "Dépôt Initial" $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 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()); // Récupération du numéro de dossier preg_match('/(PC)[0-9 ]*(P0)/', $this->byCssSelector(".message .text")->text(), $matches); $dossier_libelle = $matches[0]; $dossier = str_replace(' ', '', $dossier_libelle); // 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(); /* Fin */ // /* On accepte le dossier d'instruction et le finalise */ // On se connecte à l'application $this->login("instr", "instr"); // On clique sur le menu 'Recherche' $this->byLinkText("Recherche")->click(); // On recherche le dossier crée $this->byId("dossier")->value($dossier); // On clique sur le bouton recherche $this->byId("adv-search-submit")->click(); // On clique sur le résultat $this->byLinkText($dossier_libelle)->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 choisit l'instruction 'accepter un dossier sans réserve //[acceptation]' $this->select($this->byId("evenement"))->selectOptionByValue(81); // 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); $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text()); // On retourne sur le tableau d'instructions $this->byCssSelector("#sousform-instruction .retour")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur l'événement d'instruction "accepter un dossier sans réserve" $this->byLinkText("accepter un dossier sans réserve")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On valide l'instruction (un événement verrouillable ne pourrait pas // être finalisé) $this->byId("action-sousform-instruction-finaliser")->click(); // On vérifie le message de validation $this->assertContains("La finalisation du document s'est effectuée avec succès.",$this->byCssSelector(".message .text")->text()); /* Fin */ } // /** * test que les données du dossier d'autorisation sont recopiés dans les * champs 'archive_' de l'événement d'instruction de la création du nouveau * dossier d'instruction */ public function test_12_recopie_donnees_da_vers_nouveau_di(){ // //{{{ Ajout de d'un nouveau dossier // On se connecte à l'application $this->login("guichet", "guichet"); //On clique sur le menu des instructions $this->byLinkText("Nouveau Dossier")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On ajoute un nouveau dossier $dossier = $this->addDossierInstruction( 1, 1); // On se déconnecte $this->deconnect(); //}}} // //{{{ Clôture du nouveau dossier // On se connecte à l'application $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 recherche le dossier crée $this->byId("dossier")->value(str_replace(' ', '', $dossier)); // On clique sur le bouton recherche $this->byId("adv-search-submit")->click(); // On clique sur le résultat $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 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 ajoute une instruction $this->byCssSelector("#sousform-instruction .add-16")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On choisit l'instruction 'accepter un dossier sans réserve //[acceptation]' $this->select($this->byId("evenement"))->selectOptionByValue(81); // 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("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text()); //On rafraichit la page pour vérifier que le dossier est clôturé $this->refresh(); $this->assertEquals("Favorable", $this->byId("avis_decision")->text()); // On se déconnecte $this->deconnect(); //}}} // //{{{ Ajout de l'action // On se connecte à l'application $this->login("admin", "admin"); //On clique sur le menu "Paramétrage dossiers" $this->byLinkText("Paramétrage Dossiers")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On clique sur le menu "Action" $this->byLinkText("Action")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //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 la règle de calcul de la date de validité $this->byId("action")->value("test_12_recopie_donnees"); $this->byId("libelle")->value("test_12_recopie_donnees"); $this->byId("regle_date_validite")->value("archive_date_validite+12"); // 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("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text()); //}}} // //{{{ Ajout de l'événement //On clique sur le menu "Événement" $this->byLinkText("Événement")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //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 l'événement qui va être ajouté avec la nouvelle demande $this->byId("libelle")->value("test_12_recopie_donnees"); $this->select($this->byName("etats_depuis_lequel_l_evenement_est_disponible[]"))->selectOptionByValue("accepter"); // On sélectionne PCI - P - Initial $this->select($this->byName("dossier_instruction_type[]"))->selectOptionByValue(1); $this->select($this->byName("action"))->selectOptionByLabel("test_12_recopie_donnees"); // 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("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text()); //}}} // //{{{ Ajout du type de dossier d'instruction //On clique sur le menu "Type DI" $this->byLinkText("Type DI")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //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 le type de la demande $this->byId("code")->value("DT"); $this->byId("libelle")->value("test_12_recopie_donnees"); // On sélectionne PCI (Permis de construire pour une maison individuelle // et / ou ses annexes) $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByValue(1);sleep(1); $this->byId("suffixe")->click(); // 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("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text()); //}}} // //{{{ Ajout du type de la demande //On clique sur le menu "Type" $this->byLinkText("Type")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //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 le type de la demande $this->byId("code")->value("test_12_recopie_donnees"); $this->byId("libelle")->value("test_12_recopie_donnees"); // On sélectionne Autorisation ADS $this->select($this->byId("groupe"))->selectOptionByValue(1);sleep(1); // On sélectionne PCI (Permis de construire pour une maison individuelle // et / ou ses annexes) $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByValue(1); // On sélectionne Dossier existant $this->select($this->byId("demande_nature"))->selectOptionByValue(2); // On sélectionne Accordé $this->select($this->byName("etats_autorises[]"))->selectOptionByValue('accepter'); $this->select($this->byId("dossier_instruction_type"))->selectOptionByLabel("PCI - test_12_recopie_donnees"); $this->select($this->byId("evenement"))->selectOptionByLabel("test_12_recopie_donnees"); // 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("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text()); //On clique sur retour $this->byClassName("retour")->click(); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); //On saisit le libellé du type de la demande saisit $this->byName("recherche")->value("test_12_recopie_donnees"); //On valide $this->byName("s1")->click(); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); //On clique sur le type de la demande $this->byLinkText("test_12_recopie_donnees")->click(); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); //On récupère l'identifiant du type de la demande $demande_type = $this->byId("demande_type")->text(); // On se déconnecte $this->deconnect(); //}}} // //{{{ Ajout de d'un nouveau dossier // On se connecte à l'application $this->login("guichet", "guichet"); //On clique sur le menu des instructions $this->byLinkText("Dossier En Cours")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On ajoute un nouveau dossier $dossier = $this->addDossierInstruction(1, $demande_type, "Test validité", 2, str_replace(" ", "", $dossier)); // On se déconnecte $this->deconnect(); //}}} // //{{{ Vérification de la date de validité // On se connecte à l'application $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 recherche le dossier crée $this->byId("dossier")->value(str_replace(' ', '', $dossier)); // On clique sur le bouton recherche $this->byId("adv-search-submit")->click(); // On clique sur le résultat $this->byLinkText($dossier)->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On vérifie la date de validité $date_validite = $this->mois_date(date("Y-m-d"), 12, "+"); $date_validite = date("d/m/Y", strtotime($date_validite)); $this->assertEquals($date_validite, $this->byId("date_validite")->text()); // On se déconnecte $this->deconnect(); //}}} } // /** * test de la numérotation des DI successifs */ function test_13_numerotation_dossier_instruction_successif(){ // //{{{ Ajout de d'un nouveau dossier d'instruction P0 // 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 ajoute un nouveau dossier d'instruction $dossierP0 = str_replace(" ", "", trim($this->addDossierInstruction(1, 1))); // On se déconnecte $this->deconnect(); //}}} // //{{{ Accord du P0 créé // On se connecte à l'application $this->login("instr", "instr"); // On clique sur le menu "Recherche" $this->byLinkText("Recherche")->click(); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // On saisit le numéro du dossier d'instruction $this->byId("dossier")->value($dossierP0); // On valide la recherche $this->byId("adv-search-submit")->click(); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // On clique sur le dossier d'instruction $this->byId("action-tab-dossier_instruction-left-consulter-".$dossierP0)->click(); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // On clique sur l'onglet instruction $this->byId("instruction")->click(); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // On clique sur le + du tableau $this->byClassName("add-16")->click(); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // On choisit l'événement n°81 accepter un dossier sans réserve $this->select($this->byName("evenement"))->selectOptionByValue(81); // On clique sur ajouter $this->byXPath("//input[@value='Ajouter']")->click(); sleep(1); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // On vérifie que l'événement d'instruction s'est bien ajouté $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector("#sousform-instruction .message")->text()); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On se déconnecte $this->deconnect(); //}}} // //{{{ Ajout d'un nouveau type de dossier d'instruction // On se connecte à l'application $this->login("admin", "admin"); // On clique sur le menu "Paramétrage Dossiers" $this->byLinkText("Paramétrage Dossiers")->click(); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // On clique sur le menu "Type DI" $this->byLinkText("Type DI")->click(); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // On clique sur le + du tableau $this->byClassName("add-16")->click(); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); //On saisit les données $this->byId("code")->value("TN"); $this->byId("libelle")->value("Test numérotation"); $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByValue(1); $this->byId("suffixe")->click(); // 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 que le type de dossier d'instruction s'est bien ajouté $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text()); // On clique sur "Retour" $this->byClassName("retour")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On saisie le nom due l'événement dans la recherche simple $this->byName("recherche")->value("Test numérotation"); //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 l'événement $this->byLinkText("Test numérotation")->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 $dossier_instruction_type = trim($this->byId("dossier_instruction_type")->text()); //}}} // //{{{ Ajout d'un nouveau type de demande // On clique sur le menu "Type" $this->byLinkText("Type")->click(); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // On clique sur le + du tableau $this->byClassName("add-16")->click(); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); //On saisit les données $this->byId("code")->value("TN"); $this->byId("libelle")->value("Test numérotation"); $this->select($this->byId("groupe"))->selectOptionByValue(1); sleep(1); $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByValue(1); sleep(1); $this->select($this->byId("demande_nature"))->selectOptionByValue(2); sleep(1); $this->select($this->byName("etats_autorises[]"))->selectOptionByValue('accepter'); sleep(1); $this->select($this->byId("dossier_instruction_type"))->selectOptionByValue($dossier_instruction_type); sleep(1); $this->select($this->byId("evenement"))->selectOptionByValue(1); // 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 qu'il n'y ait pas d'erreur $this->verifynoerrors(); // On vérifie que le type de dossier d'instruction s'est bien ajouté $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text()); // On clique sur "Retour" $this->byClassName("retour")->click(); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // On saisit le libelle du type de la demande nouvellement créée $this->byClassName("champFormulaire")->value("Test numérotation"); // On valide la recherche $this->byName("f1")->submit(); //On clique sur le type de la demande $this->byLinkText("Test numérotation")->click(); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // On récupère l'identifiant $idDemandeType = trim($this->byId("demande_type")->text()); // On se déconnecte $this->deconnect(); //}}} // //{{{ Ajout de d'un nouveau dossier d'instruction avec le nouveau type //de dossier d'instruction // On se connecte à l'application $this->login("guichet", "guichet"); // On clique sur le menu "Dossier En Cours" $this->byLinkText("Dossier En Cours")->click(); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // On ajoute un nouveau dossier d'instruction $dossierTN01 = trim($this->addDossierInstruction(1, $idDemandeType, "Test nouveau DI", 3, $dossierP0)); //On vérifie que le numéro du dossier d'instruction est celui attendu assert(preg_match('/(PC)[0-9 ]*(TN01)/', $dossierTN01) === 1); // On se déconnecte $this->deconnect(); //}}} } /** * test de la numérotation des DI successifs */ function test_14_recalcul_donnees_DI_vers_DA(){ //{{{ Ajout de d'un nouveau dossier // On se connecte à l'application $this->login("guichet", "guichet"); //On clique sur le menu des instructions $this->byLinkText("Nouveau Dossier")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On ajoute un nouveau dossier $dossier = $this->addDossierInstruction( 1, 1); // On se déconnecte $this->deconnect(); //}}} // //{{{ // Mise à jour des données techniques // On se connecte à l'application $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 recherche le dossier crée $this->byId("dossier")->value(str_replace(' ', '', $dossier)); // On clique sur le bouton recherche $this->byId("adv-search-submit")->click(); // On clique sur le résultat $this->byLinkText($dossier)->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // Ouverture du formulaire des données techniques $this->byCssSelector("#formulaire .rediger-16")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // Modification des données techniques $this->byCssSelector("#sousform-donnees_techniques .edit-16")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); sleep(5); // On déplie le fieldset Construire $this->byCssSelector("#fieldset-sousform-donnees_techniques-construire legend")->click(); sleep(5); // On déplie le fieldset Destinations et surfaces des constructions $this->byCssSelector("#fieldset-sousform-donnees_techniques-destinations-et-surfaces-des-constructions legend")->click(); sleep(1); //On remplit des données techniques $this->byId("su_cstr_shon1")->value("120"); // On clique sur ajouter $this->byXPath("//input[@value='Modifier']")->click(); sleep(1); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // On vérifie le message $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector("#sousform-donnees_techniques .message")->text()); //On clique sur retour $this->byCssSelector("#sousform-donnees_techniques .retour")->click(); //}}} // //{{{ Clôture du nouveau dossier //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 recherche le dossier crée $this->byId("dossier")->value(str_replace(' ', '', $dossier)); // On clique sur le bouton recherche $this->byId("adv-search-submit")->click(); // On clique sur le résultat $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 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 ajoute une instruction $this->byCssSelector("#sousform-instruction .add-16")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On choisit l'instruction 'accepter un dossier sans réserve //[acceptation]' $this->select($this->byId("evenement"))->selectOptionByValue(81); // 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("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text()); //On rafraichit la page pour vérifier que le dossier est clôturé $this->refresh(); $this->assertEquals("Favorable", $this->byId("avis_decision")->text()); //}}} // //{{{ Vérification des données techniques dans la visu DA //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 recherche le dossier crée $this->byId("dossier")->value(str_replace(' ', '', $dossier)); // On clique sur le bouton recherche $this->byId("adv-search-submit")->click(); // On clique sur le résultat $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 l'onglet "DA" $this->byId("dossier_autorisation")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On ajoute une instruction $this->byCssSelector("#sousform-dossier_autorisation .consult-16")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // Affichage des données techniques $this->byId("donnees_techniques_da")->click(); sleep(1); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On déplie le fieldset Construire $this->byCssSelector("#fieldset-sousform-donnees_techniques-construire legend")->click(); sleep(1); // On déplie le fieldset Destinations et surfaces des constructions $this->byCssSelector("#fieldset-sousform-donnees_techniques-destinations-et-surfaces-des-constructions legend")->click(); sleep(1); $this->assertEquals("120", $this->byId("su_cstr_shon1")->text()); //On clique sur retour $this->byCssSelector("#sousform-donnees_techniques .retour")->click(); // On se déconnecte $this->deconnect(); //}}} // Vérification du calcul de l'état du DA //{{{ Ajout de d'un nouveau dossier // On se connecte à l'application $this->login("guichet", "guichet"); //On clique sur le menu des instructions $this->byLinkText("Nouveau Dossier")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On ajoute un nouveau dossier $dossier = $this->addDossierInstruction( 1, 1, "test recalcul état DA"); // On se déconnecte $this->deconnect(); //}}} // On se connecte à l'application $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(); sleep(1); //On cherche le dossier d'instruction $this->byName("recherche")->value(str_replace(" ", "", $dossier)); // On valide la recherche $this->byName("s1")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur le dossier dernièrement créé $this->byLinkText($dossier)->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); $this->verifierEtatDA($dossier,81, "Accordé"); // On se déconnecte $this->deconnect(); //}}} //{{{ Ajout de d'un nouveau dossier // On se connecte à l'application $this->login("guichet", "guichet"); //On clique sur le menu des instructions $this->byLinkText("Nouveau Dossier")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On ajoute un nouveau dossier $dossier = $this->addDossierInstruction( 1, 1, "test recalcul état DA"); // On se déconnecte $this->deconnect(); //}}} // On se connecte à l'application $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(); sleep(1); //On cherche le dossier d'instruction $this->byClassName("champFormulaire")->value(str_replace(" ", "", $dossier)); // On valide la recherche $this->byId("f1")->submit(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur le dossier dernièrement créé $this->byLinkText($dossier)->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); $this->verifierEtatDA($dossier,31, "Refusé"); // On se déconnecte $this->deconnect(); //}}} } /* * Cette méthode teste l'envoi de message au référentiel ERP lors de l'ajout * d'instruction */ public function test_15_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 clique sur Paramétrage Dossiers $this->byLinkText("Paramétrage Dossiers")->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("Événement")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //Initialisation de la variable $evenements = array(); //{{{ Ajout d'événements //On ajoute trois événements for ($i = 1 ; $i < 3 ; $i++){ $evenements[] = $this->addEvenement("test_evenement_erp_".$i); } //}}} //{{{ On change trois variables erp_service_accessibilite, // erp_service_securite et erp_service_conformite //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_evenement_accepter_sans_reserve = $this->changeParametreEvenementErp("erp_evenement_accepter_sans_reserve", $evenements[0]); $erp_evenement_refuser_dossier = $this->changeParametreEvenementErp("erp_evenement_refuser_dossier", $evenements[1]); $option_referentiel_arrete = $this->changeParametreEvenementErp("option_referentiel_arrete", 'true'); ///}}} // On se déconnecte $this->deconnect(); // 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 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 ajoute le dossier $dossier = $this->addDossierInstruction("1", "1"); //}}} // 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 événement //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("adv-search-submit")->click(); // 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 instruction $this->byId("instruction")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On ajoute trois consultations foreach ($evenements as $value) { $this->addInstruction($value); } //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 l'événement $this->select($this->byId("evenement"))->selectOptionByValue(81); //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-instruction .message .text")->text()); //On clique sur 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 l'instruction $this->byLinkText("accepter un dossier sans réserve")->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 d'instruction //$instruction = trim($this->byId("instruction")->text()); //On la finalise $this->byClassName("finalise")->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->assertContains('La finalisation du document s\'est effectuée avec succès.', $this->byCssSelector("#sousform-instruction .message .text")->text()); // 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 clique sur instruction $this->byLinkText("Instruction")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On clique sur Recherche $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("adv-search-submit")->click(); // 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 l'onglet instruction $this->byId("instruction")->click(); //On clique sur l'instruction accepter un dossier sans réserve $this->byLinkText("accepter un dossier sans réserve")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On la definalise $this->byClassName("definalise")->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->assertContains('La definalisation du document s\'est effectuée avec succès.', $this->byCssSelector("#sousform-instruction .message .text")->text()); //On clique sur modifier $this->byCssSelector("#sousform-instruction .edit-16")->click(); sleep(2); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On choisit un signataire Albert Dupont $this->select($this->byId("signataire_arrete"))->selectOptionByValue("1"); //On remplit la date de retour sign $this->byId("date_retour_signature")->value(date('d/m/Y')); //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-instruction .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 arrêté.', $this->byCssSelector("#sousform-instruction .message .text")->text()); //}}} // 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->changeParametreEvenementErp("erp_evenement_accepter_sans_reserve", $erp_evenement_accepter_sans_reserve); $this->changeParametreEvenementErp("erp_evenement_refuser_dossier", $erp_evenement_refuser_dossier); $this->changeParametreEvenementErp("option_referentiel_arrete", $option_referentiel_arrete); //}}} //On se déconnecte $this->logout(); } /* * Cette méthode teste l'envoi de message au référentiel ERP lors de la * modification d'un dossier d'insruction */ public function test_16_envoi_de_message_erp_dossier_instruction(){ // 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 change deux variables erp_nature_dat et erp_dossier_nature_pc //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(); //On change la valeur des paramètres $erp_nature_dat = $this->changeParametreEvenementErp("erp_nature_dat", "AT"); $erp_dossier_nature_pc = $this->changeParametreEvenementErp("erp_dossier_nature_pc", "PCI"); //}}} // On se déconnecte $this->deconnect(); //{{{Ajout d'un dossier AT par le guichet unique // 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 Nouveau Dossier $this->byLinkText("Nouveau Dossier")->click(); //On ajoute un dossier d'instruction de type AT $dossier = $this->addDossierInstruction(8, 8); //}}} // 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 change le dossier en a été qualifié //On clique sur Recherche $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("adv-search-submit")->click(); // 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 décoche à qualifier $this->byId("a_qualifier")->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 que le message de validation est présent $this->assertContains('Vos modifications ont bien été enregistrées.', $this->byCssSelector(".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(".message .text")->text()); //}}} // On se déconnecte $this->deconnect(); //{{{Ajout d'un dossier PC par le guichet unique // 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 Nouveau Dossier $this->byLinkText("Nouveau Dossier")->click(); //On ajoute un dossier d'instruction de type AT $dossier = $this->addDossierInstruction(1, 1); //}}} // 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 change le dossier en ERP //On clique sur Recherche $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("adv-search-submit")->click(); // 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 décoche à qualifier $this->byId("a_qualifier")->click(); //On coche 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 que le message de validation est présent $this->assertContains('Vos modifications ont bien été enregistrées.', $this->byCssSelector(".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(".message .text")->text()); //}}} // 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 change deux variables erp_nature_dat et erp_dossier_nature_pc //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(); //On change la valeur des paramètres $this->changeParametreEvenementErp("erp_nature_dat", $erp_nature_dat); $this->changeParametreEvenementErp("erp_dossier_nature_pc", $erp_dossier_nature_pc); //}}} //On se déconnecte $this->logout(); } /** * test d'annulation d'un DA. */ function test_17_di_annulation() { // 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 Administration $this->byLinkText("Paramétrage Dossiers")->click(); // Ajout d'un type de DI ANNULATION $this->byLinkText("Type DI")->click(); $this->byCssSelector(".add-16")->click(); $this->byId("code")->value('ANNUL'); $this->byId("libelle")->value('Demande d\'annulation'); $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByValue('1'); $this->byId('suffixe')->click(); $this->select($this->byName("mouvement_sitadel"))->selectOptionByValue('SUPPRESSION'); // 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 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 due l'événement dans la recherche simple $this->byClassName("champFormulaire")->value("ANNUL"); //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 l'événement $this->byLinkText("ANNUL")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // Récupération de l'id du type de DI $idDIAnnul = $this->byId("dossier_instruction_type")->text(); // Ajout d'un type de demande ANNULATION $this->byLinkText("Type")->click(); $this->byCssSelector(".add-16")->click(); $this->byId("code")->value('ANNUL'); $this->byId("libelle")->value('Demande d\'annulation'); $this->select($this->byName("groupe"))->selectOptionByValue('1'); $this->select($this->byName("dossier_autorisation_type_detaille"))->selectOptionByValue('1'); $this->select($this->byName("demande_nature"))->selectOptionByValue('2'); $this->select($this->byName("etats_autorises[]")) ->selectOptionByValue("notifier"); $this->select($this->byName("contraintes"))->selectOptionByValue('avec_recup'); $this->select($this->byName("dossier_instruction_type"))->selectOptionByValue($idDIAnnul); $this->select($this->byName("evenement"))->selectOptionByValue('25'); // 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 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 due l'événement dans la recherche simple $this->byClassName("champFormulaire")->value("ANNUL"); //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 l'événement $this->byLinkText("ANNUL")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // Récupération de l'id de la demande $idDemandeAnnul = $this->byId("demande_type")->text(); // Modification de l'action d'abandon de dossier $this->byLinkText("Action")->click(); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // Modification de l'action d'abandon de dossier $this->byLinkText("abandon")->click(); // Modification de l'action d'abandon de dossier $this->byCssSelector(".edit-16")->click(); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); $this->byId("regle_avis")->clear(); $this->byId("regle_avis")->value('avis_decision'); $this->byId("regle_date_decision")->clear(); $this->byId("regle_date_decision")->value('date_evenement'); // On clique sur ajouter $this->byXPath("//input[@value='Modifier']")->click(); // On vérifie qu'il n'y ait pas d'erreur $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 se déconnecte $this->deconnect(); // On se connecte en tant que "admin" $this->login("guichet", "guichet"); //On clique sur le menu des instructions $this->byLinkText("Nouveau Dossier")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // Création d'un DI $dossier = $this->addDossierInstruction(1, 1, "test annulation"); // 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 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(); $this->byId("dossier")->value(str_replace(" ", "", $dossier)); $this->byName("advanced-search-submit")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur le dossier dernièrement créé $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 l'onglet "Instruction" $this->byId("dossier_autorisation")->click(); sleep(1); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // Verification de l'état du DA correspondant $this->assertContains('En cours', $this->byCssSelector("#sousform-dossier_autorisation")->text()); // On se déconnecte $this->deconnect(); // On se connecte en tant que "guichet" $this->login("guichet", "guichet"); //On clique sur le menu des instructions $this->byLinkText("Dossier En Cours")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // Création d'un DI $dossier = $this->addDossierInstruction( 1, $idDemandeAnnul, "test annulation", 2, $dossier, false); // 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 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(); $this->byId("dossier")->value(str_replace(" ", "", $dossier)); $this->byName("advanced-search-submit")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur le dossier dernièrement créé $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 l'onglet "Instruction" $this->byId("dossier_autorisation")->click(); sleep(1); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // Verification de l'état du DA correspondant $this->assertContains('Abandonné', $this->byCssSelector("#sousform-dossier_autorisation")->text()); //On se déconnecte $this->logout(); } public function test_18_verification_references_cadastrales(){ //{{{ On ajoute un nouveau dossier }}} // 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 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()); // Récupération du numéro de dossier preg_match('/(PC)[0-9 ]*(P0)/', $this->byCssSelector(".message .text")->text(), $dossier); $dossier_libelle = $dossier[0]; $dossier = str_replace(' ', '', $dossier_libelle); //On se déconnecte $this->deconnect(); //{{{ On modifie les références cadastrales }}} // 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(); $this->byId("dossier")->value($dossier); $this->byName("advanced-search-submit")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur le dossier dernièrement créé $this->byLinkText($dossier_libelle)->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 modifie les références cadastrales //On déplie le fieldset $this->byCssSelector("#fieldset-form-dossier_instruction-localisation-du-terrain legend")->click(); sleep(1); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On saisit les références cadastrale $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(1)")->value("001"); $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(2)")->value("DC"); // On valide le formulaire $this->byXPath("//input[@value='Modifier']")->click(); //Un alert javascript doit apparaître, on vérifie le message $this->assertEquals("Les références cadastrales saisies sont incorrectes. Veuillez les corriger.", $this->alertText()); // On valide l'alert $this->acceptAlert();sleep(1); //On ajoute la référence $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(3)")->value("0015"); //On valide le formulaire $this->byXPath("//input[@value='Modifier']")->click(); } /** * Ajout d'un dossier d'instruction par le guichet unique * * @param int $dossier_autorisation_type_detaille L'identifiant du type détaillé * de dossier d'autorisation * @param int $demande_type L'identifiant du type de la demande * @param int $type Type de la demande : nouveau dossier ou dossier existant * @return le numéro de dossier d'instruction qui vient d'être créé */ public function addDossierInstruction($dossier_autorisation_type_detaille, $demande_type, $nom_petit = "test recopie", $type = 1, $dossier = "", $petit = true){ if ($type===1){ //On choisit le type détaillé de dossier d'autorisation $this->select($this->byName("dossier_autorisation_type_detaille"))->selectOptionByValue($dossier_autorisation_type_detaille); } else { sleep(5); // On remplit le champ de recherche simple $this->byCssSelector("input[name='recherche']")->value(str_replace(' ', '', $dossier)); // On clique sur le bouton recherche $this->byCssSelector(".ui-button")->click();sleep(1); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur le résultat $this->byId("action-tab-demande_dossier_encours-left-consulter-".str_replace(' ', '', $dossier))->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); } //On choisit le type de demande $this->select($this->byName("demande_type"))->selectOptionByValue($demande_type); if($petit) { //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 saisie le nom du pétitionnaire principal $this->byId("particulier_nom")->value($nom_petit); // 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($nom_petit,$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éé if ($type===1){ preg_match('/(PC|AT)[0-9 ]*(P0)/', $this->byCssSelector("#tabs-1 .message")->text(), $dossier); } elseif ($type===2){ preg_match('/(PC|AT)[0-9 ]*[A-Z]*(0)[1-9]{1}/', $this->byCssSelector("#tabs-1 .message")->text(), $dossier); } else{ preg_match('/(PC|AT)[0-9 ]*[A-Z]*(0)[1-9]{1}/', $this->byCssSelector("#tabs-1 .message")->text(), $dossier); } return $dossier[0]; } /* * Ajoute un événement * @param $libelle le libelle de l'événement * * @return l'identifiant de l'événement */ private function addEvenement($libelle){ //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 $this->byId("libelle")->value($libelle); $this->select($this->byName("etats_depuis_lequel_l_evenement_est_disponible[]")) ->selectOptionByValue("notifier"); $this->select($this->byName("dossier_instruction_type[]")) ->selectOptionByValue("1"); //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 due l'événement 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 l'événement $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 $evenementId = trim($this->byId("evenement")->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 $evenementId; } /* * Modifie la valeur du paramètre du numéro de'événement 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 changeParametreEvenementErp($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 paramètre $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 instruction * @param int $service l'identifiant du service */ private function addInstruction($evenement, $erp = true){ //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 l'événement $this->select($this->byId("evenement"))->selectOptionByValue($evenement); //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-instruction .message .text")->text()); if($erp) { // 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-instruction .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(); } /** * Permet de vérifier l'état d'un DA en fonction de l'état de ses DI. * @param string $dossier numéro de dossier * @param integer $event numéro d'événement * @param string $etat état du DA */ private function verifierEtatDA($dossier, $event, $etat) { // On clique sur l'onglet "DA" $this->byId("dossier_autorisation")->click(); sleep(1); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); $this->assertContains('En cours', $this->byCssSelector("#sousform-dossier_autorisation")->text()); // retour sur l'ajout d'événement $this->byId("instruction")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); $this->addInstruction($event, false); // On clique sur l'onglet "DA" $this->byId("dossier_autorisation")->click(); sleep(1); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); $this->assertContains($etat, $this->byCssSelector("#sousform-dossier_autorisation")->text()); } /** * test du lien automatique entre choix autorité compétente dans DI et * événement d'instruction à créer */ // Fonction privé private function modification_autorite_competente($utilisateur) { // On se connecte à l'application $this->login($utilisateur["login"], $utilisateur["mdp"]); // Ouvre le menu $this->openMenu("Instruction", $utilisateur); // 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(); // 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 "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 bouton d'ajout de lots $this->byXPath("//div[@id='sousform-instruction']/table/thead/tr/th/a/span")->click(); // Vérification des champs obligatoires $this->byXPath("//input[@value='Ajouter']")->click(); sleep(1); //On choisi un événement $this->select($this->byId("evenement"))->selectOptionByValue("94"); // Validation 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(); $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text()); $this->byCssSelector("form[name=\"f2\"] > a.retour")->click(); // Retour à l'onglet principal $this->byId("main")->click(); $this->refresh(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On verifie que l'autorité compétente à changée. $this->assertRegExp('/.*Commune pour état*/', $this->byCssSelector("#tabs-1 #autorite_competente")->text()); // On se déconnecte $this->deconnect(); // On se connecte en tant que "admin" $this->login("admin", "admin"); sleep(1); $this->byLinkText("Instruction")->click(); // On clique sur le lien "Recherche" dans le menu $this->byLinkText("Recherche")->click(); // 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 verifie que l'autorité compétente à changée $this->assertEquals('Commune pour état', $this->byCssSelector("#tabs-1 #autorite_competente")->text()); // On clique sur l'onglet "Instruction" $this->byId("instruction")->click(); $this->byLinkText("Changer l'autorité compétente 'commune état'")->click(); sleep(1); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On supprime l'element et on verifie le retour de l'autorité "commune" $this->byId("action-sousform-instruction-supprimer")->click(); // On valide le formulaire $this->byXPath("//input[@value='Supprimer']")->click();sleep(1); // 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 vérifie que l'événement d'instruction n'est plus dans le tableau $this->assertNotContains("Changer l'autorité compétente 'commune état'", $this->byId("sousform-instruction")->text()); // Retour à l'onglet principal $this->byId("main")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On rafraîchit la page $this->refresh(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On verifie que l'autorité compétente à changée. $this->assertEquals('Commune', $this->byCssSelector("#tabs-1 #autorite_competente")->text()); // On se déconnecte $this->deconnect(); } /** * 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("Instruction", $utilisateur); // On vérifie le menu "" $this->byLinkText("Mes Encours")->click(); $this->assertContains("Instruction > Dossiers D'instruction", $this->byId("title")->text()); $this->verifyNoErrors(); // On vérifie le menu "" $this->byLinkText("Tous Les Encours")->click(); $this->assertContains("Instruction > Dossiers D'instruction", $this->byId("title")->text()); $this->verifyNoErrors(); // On vérifie le menu "" $this->byLinkText("Mes Clôturés")->click(); $this->assertContains("Instruction > Dossiers D'instruction", $this->byId("title")->text()); $this->verifyNoErrors(); // On vérifie le menu "" $this->byLinkText("Tous Les Clôturés")->click(); $this->assertContains("Instruction > Dossiers D'instruction", $this->byId("title")->text()); $this->verifyNoErrors(); // On vérifie le menu "" $this->byLinkText("Recherche")->click(); $this->assertContains("Instruction > Dossiers D'instruction", $this->byId("title")->text()); $this->verifyNoErrors(); // On vérifie le menu "" $this->byLinkText("Dossiers À Qualifier")->click(); $this->assertContains("Instruction > Qualification > Dossiers À Qualifier", $this->byId("title")->text()); $this->verifyNoErrors(); // On vérifie le menu "" $this->byLinkText("Architecte Fréquent")->click(); $this->assertContains("Instruction > Qualification > Architecte Fréquent", $this->byId("title")->text()); $this->verifyNoErrors(); // On vérifie le menu "" $this->byLinkText("Mes Retours")->click(); $this->assertContains("Instruction > Consultations > Mes Retours", $this->byId("title")->text()); $this->verifyNoErrors(); // On vérifie le menu "" $this->byLinkText("Tous Les Retours")->click(); $this->assertContains("Instruction > Consultations > Tous Les Retours", $this->byId("title")->text()); $this->verifyNoErrors(); // On vérifie le menu "" $this->byLinkText("Mes Messages")->click(); $this->assertContains("Instruction > Messages > Mes Messages", $this->byId("title")->text()); $this->verifyNoErrors(); // On vérifie le menu "" $this->byLinkText("Tous Les Messages")->click(); $this->assertContains("Instruction > Messages > Tous Les Messages", $this->byId("title")->text()); $this->verifyNoErrors(); // On vérifie le menu "" $this->byCssSelector("a.commission_mes_retours-16")->click(); $this->assertContains("Instruction > Commissions > Mes Retours", $this->byId("title")->text()); $this->verifyNoErrors(); // On vérifie le menu "" $this->byCssSelector("a.commission_tous_retours-16")->click(); $this->assertContains("Instruction > Commissions > Tous Les Retours", $this->byId("title")->text()); $this->verifyNoErrors(); // On se déconnecte $this->deconnect(); } } ?>