/[openfoncier]/branches/3.14.x/tests/testGuichetUnique.php
ViewVC logotype

Diff of /branches/3.14.x/tests/testGuichetUnique.php

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2076 by softime, Thu Jul 11 10:38:42 2013 UTC revision 2740 by softime, Fri Feb 14 16:41:21 2014 UTC
# Line 14  require_once "base.php"; Line 14  require_once "base.php";
14   */   */
15  class GuichetUnique extends Base2TestCase {  class GuichetUnique extends Base2TestCase {
16    
17        // Liste des utilisateurs
18        var $listUtlisateurs = array(
19                array(
20                    "login" => "guichet",
21                    "mdp" => "guichet"
22                ),
23                array(
24                    "login" => "adminfonct",
25                    "mdp" => "adminfonct"
26                ),
27            );
28    
29        /**
30         * Ce test vise uniquement à vérifier que les écrans correspondant à chaque
31         * entrée de menu ne génère pas une erreur de base de données
32         */
33        // Fonction privé
34        private function ouvertureMenu($utilisateur) {
35            // On se connecte
36            $this->login($utilisateur["login"], $utilisateur["mdp"]);
37            // Ouvre le menu
38            $this->openMenu("Guichet Unique", $utilisateur);
39            // On vérifie le menu "Nouveau Dossier"
40            $this->byLinkText("Nouveau Dossier")->click();
41            $this->assertContains("Guichet Unique > Nouvelle Demande > Nouveau Dossier",
42                $this->byId("title")->text());
43            $this->verifyNoErrors();
44            // On vérifie le menu "Dossier En Cours"
45            $this->byLinkText("Dossier En Cours")->click();
46            $this->assertContains("Guichet Unique > Nouvelle Demande > Dossier En Cours",
47                $this->byId("title")->text());
48            $this->verifyNoErrors();
49            // On vérifie le menu "Autre Dossier"
50            $this->byLinkText("Autre Dossier")->click();
51            $this->assertContains("Guichet Unique > Nouvelle Demande > Autre Dossier",
52                $this->byId("title")->text());
53            $this->verifyNoErrors();
54            // On vérifie le menu "Récépissé"
55            $this->byLinkText("Récépissé")->click();
56            $this->assertContains("Guichet Unique > Nouvelle Demande > Récépissé",
57                $this->byId("title")->text());
58            $this->verifyNoErrors();
59            // On vérifie le menu "Pétitionnaire Fréquent"
60            $this->byLinkText("Pétitionnaire Fréquent")->click();
61            $this->assertContains("Guichet Unique > Nouvelle Demande > Pétitionnaire Fréquent",
62                $this->byId("title")->text());
63            $this->verifyNoErrors();
64            // On vérifie le menu "Registre"
65            $this->byLinkText("Registre")->click();
66            $this->assertContains("Guichet Unique > Affichage Réglementaire > Registre",
67                $this->byId("title")->text());
68            $this->verifyNoErrors();
69            // On vérifie le menu "Attestation"
70            $this->byLinkText("Attestation")->click();
71            $this->assertContains("Guichet Unique > Affichage Réglementaire > Attestation",
72                $this->byId("title")->text());
73            $this->verifyNoErrors();
74            // On se déconnecte
75            $this->deconnect();
76        }
77        // Fonction public
78        public function test01OuvertureMenu() {
79            // Récupération des utilisateurs
80            $utilisateurs = $this->listUtlisateurs;
81            // Pour chaque utilisateur on lance le test
82            foreach ($utilisateurs as $utilisateur) {
83                //
84                $this->ouvertureMenu($utilisateur);
85            }
86            // On vérifie la déconnexion
87            $this->verifyDeconnect();
88        }
89    
90      /**      /**
91       * Test l'ajout d'une demande       * Test l'ajout d'une demande
92       */       */
93      public function testAjoutDemandeInitial() {      // Fonction privé
94        private function ajoutDemandeInitial($utilisateur) {
95    
96          // On se connecte à l'application          // On se connecte à l'application
97          $this->login("guichet", "guichet");          $this->login($utilisateur["login"], $utilisateur["mdp"]);
98            // Ouvre le menu
99            $this->openMenu("Guichet Unique", $utilisateur);
100          // On clique sur le menu "Nouveau Dossier"          // On clique sur le menu "Nouveau Dossier"
101          $this->byLinkText("Nouveau Dossier")->click();          $this->byLinkText("Nouveau Dossier")->click();
102          // On vérifie qu'il n'y ait pas d'erreur          // On vérifie qu'il n'y ait pas d'erreur
# Line 60  class GuichetUnique extends Base2TestCas Line 136  class GuichetUnique extends Base2TestCas
136          // On vérifie qu'il n'y ait pas d'erreur          // On vérifie qu'il n'y ait pas d'erreur
137          $this->verifynoerrors();          $this->verifynoerrors();
138          // On vérifie le message          // On vérifie le message
139          $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("BODY")->text());          $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-petitionnaire .message")->text());
140          // On clique sur le bouton retour          // On clique sur le bouton retour
141          $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);          $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
142          // On vérifie que le text est présent          // On vérifie que le text est présent
143          $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->byCssSelector("BODY")->text());          $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
144          // On clique sur ajouter          // On clique sur ajouter
145          $this->byXPath("//input[@value='Ajouter']")->click();          $this->byXPath("//input[@value='Ajouter']")->click();
146          // On vérifie qu'il n'y ait pas d'erreur          // On vérifie qu'il n'y ait pas d'erreur
147          $this->verifynoerrors();          $this->verifynoerrors();
148          // On vérifie le message          // On vérifie le message
149          $this->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°PC0130551300001[\s\S]*$/",$this->byCssSelector("BODY")->text());          $this->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°[\s\S]*$/",$this->byCssSelector(".message")->text());
150            // Récupération du numéro de dossier
151            preg_match('/(PC)[0-9 ]*(P0)/', $this->byCssSelector(".message .text")->text(), $matches);
152            $dossier_libelle = $matches[0];
153            $dossier = str_replace(' ', '', $dossier_libelle);
154            $dossier_dir = substr_replace($dossier, '.', -2, -3);
155          // On clique          // On clique
156          $this->byCssSelector("a.lien")->click();sleep(5);          $this->byCssSelector("a.lien")->click();sleep(5);
157          // Liste les fenêtres          // Liste les fenêtres
# Line 90  class GuichetUnique extends Base2TestCas Line 171  class GuichetUnique extends Base2TestCas
171          // On vérifie qu'il n'y ait pas d'erreur          // On vérifie qu'il n'y ait pas d'erreur
172          $this->verifynoerrors();          $this->verifynoerrors();
173          // On vérifie que le répertoire s'est crée          // On vérifie que le répertoire s'est crée
174          $this->assertTrue(file_exists("../trs/numerisation/Todo/PC0130551300001.P0"));          $this->assertTrue(file_exists("../trs/numerisation/Todo/".$dossier_dir));
175            // On se déconnecte
176            $this->deconnect();
177        }
178        // Fonction public
179        public function test02AjoutDemandeInitial() {
180            // Récupération des utilisateurs
181            $utilisateurs = $this->listUtlisateurs;
182            // Pour chaque utilisateur on lance le test
183            foreach ($utilisateurs as $utilisateur) {
184                //
185                $this->ajoutDemandeInitial($utilisateur);
186            }
187            // On vérifie la déconnexion
188            $this->verifyDeconnect();
189        }
190    
191        /**
192         * Test l'ajout d'une demande et de création d'une nouvelle sequence
193         */
194        public function testAjoutDemandeNouvelleSequence() {
195    
196            // On se connecte à l'application
197            $this->login("guichet", "guichet");
198            // On clique sur le menu "Nouveau Dossier"
199            $this->byLinkText("Nouveau Dossier")->click();
200            // On vérifie qu'il n'y ait pas d'erreur
201            $this->verifynoerrors();
202            // On vérifie le nom de l'onglet
203            $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
204            // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
205            $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel("Permis de construire pour une maison individuelle et / ou ses annexes");
206            // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
207            $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
208            // Modification de la date
209            $this->byId("date_demande")->clear();
210            $this->acceptAlert();
211            $this->byId("date_demande")->value("10/10/2014");
212            // On clique pour ajouter un pétitionnaire principale
213            $this->byId("add_petitionnaire_principal")->click();
214            // On remplit le champ
215            $this->byId("particulier_nom")->value("DURAND");
216            // On remplit le champ
217            $this->byId("particulier_prenom")->value("MICKAEL");
218            // On remplit le champ
219            $this->byId("particulier_date_naissance")->value("03/01/1956");
220            // On remplit le champ
221            $this->byId("particulier_commune_naissance")->value("LILLE");
222            // On remplit le champ
223            $this->byId("particulier_departement_naissance")->value("NORD");
224            // On remplit le champ
225            $this->byId("numero")->value("12");
226            // On remplit le champ
227            $this->byId("voie")->value("RUE DE LA LOI");
228            // On remplit le champ
229            $this->byId("complement")->value("APPT 12");
230            // On remplit le champ
231            $this->byId("localite")->value("MARSEILLE");
232            // On remplit le champ
233            $this->byId("code_postal")->value("13012");
234            // On remplit le champ
235            $this->byId("telephone_fixe")->value("0404040404");
236            // On clique sur ajouter
237            $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
238            // On vérifie qu'il n'y ait pas d'erreur
239            $this->verifynoerrors();
240            // On vérifie le message
241            $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-petitionnaire .message")->text());
242            // On clique sur le bouton retour
243            $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
244            // On vérifie que le text est présent
245            $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
246            // On clique sur ajouter
247            $this->byXPath("//input[@value='Ajouter']")->click();
248            // On vérifie qu'il n'y ait pas d'erreur
249            $this->verifynoerrors();
250            // On vérifie le message
251            $this->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°PC 013055 14 00003[\s\S]*$/",$this->byCssSelector(".message")->text());
252          // On se déconnecte          // On se déconnecte
253          $this->logout();          $this->logout();
254      }      }
# Line 100  class GuichetUnique extends Base2TestCas Line 258  class GuichetUnique extends Base2TestCas
258       */       */
259      public function testAjoutDemandeModification() {      public function testAjoutDemandeModification() {
260    
261            // Année en cours
262            $annee = date("y");
263    
264          /// On se connecte à l'application en tant qu'instructeur          /// On se connecte à l'application en tant qu'instructeur
265          // pour ajouter une instruction arrêté sur le dossier crée          // pour ajouter une instruction arrêté sur le dossier crée
266          $this->login("instr", "instr");          $this->login("instr", "instr");
# Line 108  class GuichetUnique extends Base2TestCas Line 269  class GuichetUnique extends Base2TestCas
269          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
270          $this->verifyNoErrors();          $this->verifyNoErrors();
271          // On clique sur le dossier          // On clique sur le dossier
272          $this->byXPath("//div[@id='tab-dossier_instruction']/table/tbody/tr[8]/td/a/span")->click();          $this->byId("action-tab-dossier_instruction-left-consulter-PC013055".$annee."00001P0")->click();
273          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
274          $this->verifyNoErrors();          $this->verifyNoErrors();
275          // On clique sur l'onglet instruction          // On clique sur l'onglet instruction
# Line 142  class GuichetUnique extends Base2TestCas Line 303  class GuichetUnique extends Base2TestCas
303          // On se connecte en tant que guichet unique          // On se connecte en tant que guichet unique
304          $this->login("guichet", "guichet");          $this->login("guichet", "guichet");
305          // On clique sur le menu "Nouveau Dossier"          // On clique sur le menu "Nouveau Dossier"
306          $this->byLinkText("Dossier Existant")->click();          $this->byLinkText("Autre Dossier")->click();
307          // On vérifie qu'il n'y ait pas d'erreur          // On vérifie qu'il n'y ait pas d'erreur
308          $this->verifynoerrors();          $this->verifynoerrors();
309          // On vérifie le nom de l'onglet          // On vérifie le nom de l'onglet
310          $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());          $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
311          // On clique pour ajouter une demande au dossier existant          // On clique pour ajouter une demande au dossier existant
312          $this->byXPath("//div[@id='tab-demande_dossier_existant']/table/tbody/tr[8]/td/a/span")->click();          $this->byId("action-tab-demande_autre_dossier-left-consulter-PC013055".$annee."00001P0")->click();
313          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
314          $this->verifyNoErrors();          $this->verifyNoErrors();
315            // Vérifie le fil d'Ariane
316            $this->assertContains("Guichet Unique > Nouvelle Demande > Autre Dossier > PC 013055", $this->byXPath("//div[3]/div/h2")->text());
317          // On choisis le type de demande          // On choisis le type de demande
318          $this->select($this->byId("demande_type"))->selectOptionByLabel("Demande de modification");          $this->select($this->byId("demande_type"))->selectOptionByLabel("Demande de modification");
319          // On clique sur ajouter          // On clique sur ajouter
# Line 158  class GuichetUnique extends Base2TestCas Line 321  class GuichetUnique extends Base2TestCas
321          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
322          $this->verifyNoErrors();          $this->verifyNoErrors();
323          // On vérifie le message          // On vérifie le message
324          $this->assertRegExp("/^[\s\S]*Création du dossier d'instruction n°PC0130551300001M1[\s\S]*$/",$this->byCssSelector("BODY")->text());          $this->assertRegExp("/^[\s\S]*Création du dossier d'instruction n°[\s\S]*$/", $this->byCssSelector("BODY")->text());
325          // On vérifie que le répertoire s'est crée          // On vérifie que le répertoire s'est crée
326          $this->assertTrue(file_exists("../trs/numerisation/Todo/PC0130551300001.M1"));          $this->assertTrue(file_exists("../trs/numerisation/Todo/PC013055".$annee."00001.M01"));
327          // On se déconnecte          // On se déconnecte
328          $this->logout();          $this->logout();
329                    
# Line 249  class GuichetUnique extends Base2TestCas Line 412  class GuichetUnique extends Base2TestCas
412          $this->window($windows[1]);          $this->window($windows[1]);
413          // On vérifie qu'il n'y ait pas d'erreur          // On vérifie qu'il n'y ait pas d'erreur
414          $this->verifynoerrors();          $this->verifynoerrors();
415          // On vérifie que le text est présent          // On vérifie que le text est
416            // présent
417          $this->assertRegExp("/^[\s\S]*ATTESTATION D'AFFICHAGE REGLEMENTAIRE[\s\S]*$/",$this->source());          $this->assertRegExp("/^[\s\S]*ATTESTATION D'AFFICHAGE REGLEMENTAIRE[\s\S]*$/",$this->source());
418          // On ferme la fenêtre          // On ferme la fenêtre
419          $this->closeWindow();          $this->closeWindow();
# Line 273  class GuichetUnique extends Base2TestCas Line 437  class GuichetUnique extends Base2TestCas
437          // On vérifie le nom de l'onglet          // On vérifie le nom de l'onglet
438          $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());          $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
439          // On clique sur "AT0130551200001P0"          // On clique sur "AT0130551200001P0"
440          $this->byLinkText("AT0130551200001P0")->click();          $this->byLinkText("AT 013055 12 00001P0")->click();
441          // On vérifie qu'il n'y ait pas d'erreur          // On vérifie qu'il n'y ait pas d'erreur
442          $this->verifynoerrors();          $this->verifynoerrors();
443            // Vérifie le fil d'Ariane
444            $this->assertEquals("Guichet Unique > Nouvelle Demande > Récépissé > AT 013055 12 00001P0", $this->byXPath("//div[3]/div/h2")->text());
445          // On vérifie que le text est présent          // On vérifie que le text est présent
446          $this->assertRegExp("/^[\s\S]*Demande d'autorisation de construire, d'aménager ou de modifier un ERP[\s\S]*$/",$this->byCssSelector("BODY")->text());          $this->assertRegExp("/^[\s\S]*Demande d'autorisation de construire, d'aménager ou de modifier un ERP[\s\S]*$/",$this->byCssSelector("BODY")->text());
447          // Le nom du pétitionnaire doit apparaître          // Le nom du pétitionnaire doit apparaître
# Line 352  class GuichetUnique extends Base2TestCas Line 518  class GuichetUnique extends Base2TestCas
518          // On vérifie qu'il n'y ait pas d'erreur          // On vérifie qu'il n'y ait pas d'erreur
519          $this->verifynoerrors();          $this->verifynoerrors();
520          // On vérifie le message          // On vérifie le message
521          $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("BODY")->text());          $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-petitionnaire .message")->text());
522          // On clique sur le bouton retour          // On clique sur le bouton retour
523          $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);          $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
524          // On vérifie que le text est présent          // On vérifie que le text est présent
525          $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->byCssSelector("BODY")->text());          $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
526          // On clique sur ajouter          // On clique sur ajouter
527          $this->byXPath("//input[@value='Ajouter']")->click();          $this->byXPath("//input[@value='Ajouter']")->click();
528          // On vérifie qu'il n'y ait pas d'erreur          // On vérifie qu'il n'y ait pas d'erreur
529          $this->verifynoerrors();          $this->verifynoerrors();
530          // On vérifie le message          // On vérifie le message
531          $this->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°PC0130551300002[\s\S]*$/",$this->byCssSelector("BODY")->text());          $this->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°[\s\S]*$/",$this->byCssSelector(".message")->text());
532          // On clique          // On clique
533          $this->byCssSelector("a.lien")->click();sleep(5);          $this->byCssSelector("a.lien")->click();sleep(5);
534          // Liste les fenêtres          // Liste les fenêtres
# Line 405  class GuichetUnique extends Base2TestCas Line 571  class GuichetUnique extends Base2TestCas
571          $this->logout();          $this->logout();
572      }      }
573    
574        /**
575         * Active l'option sig avec la valeur nécessaire pour la suite des tests
576         */
577        public function test_active_option_sig() {
578    
579            // On se connecte en tant que "admin"
580            $this->login("admin", "admin");
581            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
582            $this->verifyNoErrors();
583            // On clique sur le lien "Administration" dans le menu
584            $this->byLinkText("Administration")->click();
585            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
586            $this->verifyNoErrors();
587            // // On clique sur le lien "Paramètre" dans le menu
588            $this->byLinkText("Paramètre")->click();
589            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
590            $this->verifyNoErrors();
591            // On remplis le champs de recherche simple
592            $this->byCssSelector("input[name='recherche']")->value('option_sig');
593            // On clique sur le bouton recherche
594            $this->byCssSelector(".ui-button")->click();
595            // On clique sur le résultat
596            $this->byLinkText("option_sig")->click();
597            // On clique sur le bouton "Modifier"
598            $this->byId('action-form-om_parametre-modifier')->click();
599            // On change la valeur par "sig_externe"
600            $this->byId('valeur')->clear();
601            $this->byId('valeur')->value('sig_externe');
602            // On valide la modification
603            $this->byCssSelector("input[value='Modifier']")->click();
604            // On vérifie le message de validation
605            $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#tabs-1 .message")->text());
606            // On clique sur le bouton 'Retour'
607            $this->byLinkText("Retour")->click();
608            // On vérifie les nouvelles données
609            $this->assertEquals("sig_externe", $this->byId("valeur")->text());
610            // On se déconnecte
611            $this->logout();
612        }
613    
614        /**
615         * Test l'ajout d'une demande initial en utilisant les références cadastrales
616         * pour récupérer l'adresse
617         */
618        public function testAjoutDemandeInitialReferenceCadastrale() {
619    
620            // On se connecte à l'application
621            $this->login("guichet", "guichet");
622            // On clique sur le menu "Nouveau Dossier"
623            $this->byLinkText("Nouveau Dossier")->click();
624            // On vérifie qu'il n'y ait pas d'erreur
625            $this->verifynoerrors();
626            // On vérifie le nom de l'onglet
627            $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
628            // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
629            $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel("Permis de construire pour une maison individuelle et / ou ses annexes");
630            // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
631            $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
632            // XXX Problème de javascript seulement dans cette fonction
633            // Les alerts ne passent pas lorsque le focus n'est pas sur le
634            // navigateur
635            //On saisie des références cadastrales inccorect
636            // $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(1)")->value("aa");
637            // // On change le focus pour faire apparaitre le message
638            // $this->byId('date_demande')->value(date('d/m/Y'));
639            // sleep(5);
640            // // Message d'erreur concernant le numéro de quartier
641            // $this->assertEquals("Vous ne devez saisir que des nombres entiers", $this->alertText());
642            // $this->acceptAlert();
643            // $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(2)")->value("11");
644            // // On change le focus pour faire apparaitre le message
645            // $this->byId('date_demande')->value(date('d/m/Y'));
646            // sleep(5);
647            // // Message d'erreur concernant la section
648            // $this->assertEquals("Vous ne devez saisir que des lettres dans ce champs.", $this->alertText());
649            // $this->acceptAlert();
650            // $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(3)")->value("bb");
651            // // On change le focus pour faire apparaitre le message
652            // $this->byId('date_demande')->value(date('d/m/Y'));
653            // sleep(5);
654            // // Message d'erreur concernant le numéro de parcelle
655            // $this->assertEquals("Vous ne devez saisir que des nombres entiers", $this->alertText());
656            // $this->acceptAlert();
657            //On saisie les références cadastrales
658            // $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(1)")->value("1");
659            // $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(2)")->value("dc");
660            // $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(3)")->value("15");
661            // XXX Renplace les valeurs juste au dessus qui devraient se mettre au
662            // bon format automatiquement grâce au javascript
663            $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(1)")->value("001");
664            $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(2)")->value("DC");
665            $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(3)")->value("0015");
666            //On clique sur le bouton de recherche "Cadastrale = > Adresse"
667            $this->byId("cad-adr-them")->click();
668            sleep(1);
669            // On vérifie que le format des champs est mise à jour automatiquement
670            $this->assertEquals("001", $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(1)")->value());
671            $this->assertEquals("DC", $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(2)")->value());
672            $this->assertEquals("0015", $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(3)")->value());
673            //On verifie l'adresse
674            $this->assertEquals("0075", $this->byId("terrain_adresse_voie_numero")->value());
675            $this->assertEquals("TRA DE LA DOMINIQUE", $this->byId("terrain_adresse_voie")->value());
676            $this->assertEquals("13011", $this->byId("terrain_adresse_code_postal")->value());
677            $this->assertEquals("MARSEILLE", $this->byId("terrain_adresse_localite")->value());
678            // On valide le formulaire
679            $this->byXPath("//input[@value='Ajouter']")->click();
680            // On vérifie le message d'erreur
681            $this->assertRegExp("/^[\s\S]*SAISIE NON ENREGISTRÉE[\s\S]*$/", $this->byCssSelector(".message")->text());
682            sleep(1);
683            // On vérifie que les références cadastrales soient toujours affiché
684            $this->assertEquals("001", $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(1)")->value());
685            $this->assertEquals("DC", $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(2)")->value());
686            $this->assertEquals("0015", $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(3)")->value());        
687            //On saisie les références cadastrales
688            $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(1)")->clear();
689            $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(2)")->clear();
690            $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(3)")->clear();
691            //On clique sur le bouton de recherche "Cadastrale = > Adresse"
692            $this->byId("cad-adr-them")->click();
693            //On valide le message d'erreur
694            $this->assertEquals('Aucune référence cadastrale fournie', $this->alertText());
695            $this->acceptAlert();
696            // On clique pour ajouter un pétitionnaire principale
697            $this->byId("add_petitionnaire_principal")->click();
698            // On remplit le champ
699            $this->byId("particulier_nom")->value("DURAND");
700            // On remplit le champ
701            $this->byId("particulier_prenom")->value("MICKAEL");
702            // On remplit le champ
703            $this->byId("particulier_date_naissance")->value("03/01/1956");
704            // On remplit le champ
705            $this->byId("particulier_commune_naissance")->value("LILLE");
706            // On remplit le champ
707            $this->byId("particulier_departement_naissance")->value("NORD");
708            // On remplit le champ
709            $this->byId("numero")->value("12");
710            // On remplit le champ
711            $this->byId("voie")->value("RUE DE LA LOI");
712            // On remplit le champ
713            $this->byId("complement")->value("APPT 12");
714            // On remplit le champ
715            $this->byId("localite")->value("MARSEILLE");
716            // On remplit le champ
717            $this->byId("code_postal")->value("13012");
718            // On remplit le champ
719            $this->byId("telephone_fixe")->value("0404040404");
720            // On clique sur ajouter
721            $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
722            // On vérifie qu'il n'y ait pas d'erreur
723            $this->verifynoerrors();
724            // On vérifie le message
725            $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-petitionnaire .message")->text());
726            // On clique sur le bouton retour
727            $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
728            // On vérifie que le text est présent
729            $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
730            // On clique sur ajouter
731            $this->byXPath("//input[@value='Ajouter']")->click();
732            // On vérifie qu'il n'y ait pas d'erreur
733            $this->verifynoerrors();
734            // On vérifie le message
735            $this->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°[\s\S]*$/",$this->byCssSelector(".message")->text());
736            // Récupération du numéro de dossier
737            preg_match('/(PC)[0-9 ]*(P0)/', $this->byCssSelector(".message .text")->text(), $dossier);
738            $dossier_libelle = $dossier[0];
739            $dossier = str_replace(' ', '', $dossier_libelle);
740            $dossier_dir = substr_replace($dossier, '.', -2, -3);
741            // On clique
742            $this->byCssSelector("a.lien")->click();sleep(5);
743            // Liste les fenêtres
744            $windows = $this->windowHandles();
745            // Change la fenêtre
746            $this->window($windows[1]);
747            // On vérifie qu'il n'y ait pas d'erreur
748            $this->verifynoerrors();
749            // On vérifie que le text est présent
750            $this->assertRegExp("/^[\s\S]*RECEPISSE DE DEPOT[\s\S]*$/",$this->source());
751            // On ferme la fenêtre
752            $this->closeWindow();
753            // On change le focus de la fenêtre
754            $this->window($windows[0]);
755            // On clique sur le bouton retour
756            $this->byLinkText("Retour")->click();
757            // On vérifie qu'il n'y ait pas d'erreur
758            $this->verifynoerrors();
759            // On vérifie que le répertoire s'est crée
760            $this->assertTrue(file_exists("../trs/numerisation/Todo/".$dossier_dir));
761            // On se déconnecte
762            $this->logout();
763        }
764        
765        /*
766         * Cette fonction va tester l'affectation automatique des instructeurs aux
767         * dossiers d'instruction.
768         * Quatre cas sont possibles :
769         * - Aucun instructeur ne correspond,  ;
770         * - Un instructeur joker correspond,  ;
771         * - Un instructeur correspond, .
772         */
773        function testAffectationAutomatique(){
774            
775            // On se connecte à l'application
776            $this->login("guichet", "guichet");
777            //Ajout d'un dossier d'instructeur avec affectation d'aucun instructeur
778            $this->ajoutDossierAffectationAutomatique("801", "A", "0001", "Permis de construire comprenant ou non des démolitions", " -");
779            
780            //Ajout d'un dossier d'instructeur avec affectation d'un instructeur
781            //joker avec seulement le type de dossier d'autorisation détaillé de
782            //renseigné
783            $this->ajoutDossierAffectationAutomatique("806", "A", "0001", "Permis de construire pour une maison individuelle et / ou ses annexes", "Louis Laurent");
784            
785            //Ajout d'un dossier d'instructeur avec affectation du seul instructeur
786            //correspondant parfaitement aux critères
787            $this->ajoutDossierAffectationAutomatique("801", "A", "0001", "Permis de construire pour une maison individuelle et / ou ses annexes", "Pierre Martin");
788            // On se déconnecte
789            $this->logout();
790        }
791        
792        /**
793         * Ajoute un dossier d'instruction
794         * @param string $reference_cadastrale_quartier Le quartier de la référence
795         *               cadastrale du dossier
796         * @param string $reference_cadastrale_section La section de la référence
797         *               cadastrale du dossier
798         * @param string $reference_cadastrale_parcelle La parcelle de la référence
799         *               cadastrale du dossier
800         * @param string $datd dossier d'autorisation type détaillé
801         * @param string $instructeur le nom de l'instructeur
802         *
803         * @return boolean
804         */
805        function ajoutDossierAffectationAutomatique($reference_cadastrale_quartier,
806            $reference_cadastrale_section, $reference_cadastrale_parcelle,$datd,
807            $instructeur){
808            
809            //On affiche le tableau de bord
810            $this->byLinkText("Tableau de bord")->click();
811            // On clique sur le menu "Nouveau Dossier"
812            $this->byLinkText("Nouveau Dossier")->click();
813            // On vérifie qu'il n'y ait pas d'erreur
814            $this->verifynoerrors();
815            // On vérifie le nom de l'onglet
816            $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
817            // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
818            $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel($datd);
819            // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
820            $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
821            //On saisie les références cadastrales
822            $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(1)")->value($reference_cadastrale_quartier);
823            $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(2)")->value($reference_cadastrale_section);
824            $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(3)")->value($reference_cadastrale_parcelle);
825            //On clique sur le bouton de recherche "Cadastrale = > Adresse"
826            $this->byId("cad-adr-them")->click();
827            // On clique pour ajouter un pétitionnaire principale
828            $this->byId("add_petitionnaire_principal")->click();
829            // On remplit le champ
830            $this->byId("particulier_nom")->value("DURAND");
831            // On remplit le champ
832            $this->byId("particulier_prenom")->value("MICKAEL");
833            // On remplit le champ
834            $this->byId("particulier_date_naissance")->value("03/01/1956");
835            // On remplit le champ
836            $this->byId("particulier_commune_naissance")->value("LILLE");
837            // On remplit le champ
838            $this->byId("particulier_departement_naissance")->value("NORD");
839            // On remplit le champ
840            $this->byId("numero")->value("12");
841            // On remplit le champ
842            $this->byId("voie")->value("RUE DE LA LOI");
843            // On remplit le champ
844            $this->byId("complement")->value("APPT 12");
845            // On remplit le champ
846            $this->byId("localite")->value("MARSEILLE");
847            // On remplit le champ
848            $this->byId("code_postal")->value("13012");
849            // On remplit le champ
850            $this->byId("telephone_fixe")->value("0404040404");
851            // On clique sur ajouter
852            $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
853            // On vérifie qu'il n'y ait pas d'erreur
854            $this->verifynoerrors();
855            // On vérifie le message
856            $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-petitionnaire .message")->text());
857            // On clique sur le bouton retour
858            $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
859            // On vérifie que le text est présent
860            $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
861            // On clique sur ajouter
862            $this->byXPath("//input[@value='Ajouter']")->click();
863            // On vérifie qu'il n'y ait pas d'erreur
864            $this->verifynoerrors();
865            // On vérifie le message
866            $this->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°[\s\S]*$/",$this->byCssSelector(".message")->text());
867            // On clique
868            $this->byCssSelector("a.lien")->click();sleep(5);
869            // Liste les fenêtres
870            $windows = $this->windowHandles();
871            // Change la fenêtre
872            $this->window($windows[1]);
873            // On vérifie qu'il n'y ait pas d'erreur
874            $this->verifynoerrors();
875            // On vérifie que le text est présent
876            $this->assertRegExp("/^[\s\S]*Dossier suivi par  ".$instructeur."[\s\S]*$/",$this->source());
877            // On ferme la fenêtre
878            $this->closeWindow();
879            // On change le focus de la fenêtre
880            $this->window($windows[0]);
881        }
882    
883        /**
884         * Vérifie le menu "Autre Dossier" et "Dossier En Cours"
885         */
886        public function test_autre_dossier() {
887    
888            // On se connecte en tant que "guichet"
889            $this->login("guichet", "guichet");
890            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
891            $this->verifyNoErrors();
892            // On clique sur "Autre Dossier"
893            $this->byLinkText("Autre Dossier")->click();
894            // On vérifie qu'il n'y ait pas d'erreur
895            $this->verifynoerrors();
896            // On vérifie que ledossier qui ne doit pas être dans
897            // "Dossier En Cours" sont ici
898            $this->assertRegExp("/^[\s\S]*PC 013055 14 00001P0[\s\S]*$/",
899                $this->byCssSelector("#tab-demande_autre_dossier .tab-tab")->text());
900            // On clique sur "Dossier En Cours"
901            $this->byLinkText("Dossier En Cours")->click();
902            // On vérifie qu'il n'y ait pas d'erreur
903            $this->verifynoerrors();
904            // On vérifie que le dossier précédement contrôlé n'ait pas
905            // affiché
906            $this->assertNotContains("PC 013055 13 00001P0",
907                $this->byCssSelector("#tab-demande_dossier_encours .tab-tab")->text());
908            // On se déconnecte
909            $this->logout();
910        }
911    
912        /**
913         * Désactive l'option sig avec la valeur nécessaire
914         */
915        public function test_desactive_option_sig() {
916    
917            // On se connecte en tant que "admin"
918            $this->login("admin", "admin");
919            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
920            $this->verifyNoErrors();
921            // On clique sur le lien "Administration" dans le menu
922            $this->byLinkText("Administration")->click();
923            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
924            $this->verifyNoErrors();
925            // // On clique sur le lien "Paramètre" dans le menu
926            $this->byLinkText("Paramètre")->click();
927            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
928            $this->verifyNoErrors();
929            // On remplis le champs de recherche simple
930            $this->byCssSelector("input[name='recherche']")->value('option_sig');
931            // On clique sur le bouton recherche
932            $this->byCssSelector(".ui-button")->click();
933            // On clique sur le résultat
934            $this->byLinkText("option_sig")->click();
935            // On clique sur le bouton "Modifier"
936            $this->byId('action-form-om_parametre-modifier')->click();
937            // On change la valeur par "aucun"
938            $this->byId('valeur')->clear();
939            $this->byId('valeur')->value('aucun');
940            // On valide la modification
941            $this->byCssSelector("input[value='Modifier']")->click();
942            // On vérifie le message de validation
943            $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#tabs-1 .message")->text());
944            // On clique sur le bouton 'Retour'
945            $this->byLinkText("Retour")->click();
946            // On vérifie les nouvelles données
947            $this->assertEquals("aucun", $this->byId("valeur")->text());
948            // On se déconnecte
949            $this->logout();
950        }
951  }  }
952    
953  ?>  ?>

Legend:
Removed from v.2076  
changed lines
  Added in v.2740

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26