/[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

trunk/tests/testGuichetUnique.php revision 1674 by fmichon, Mon Apr 15 11:17:16 2013 UTC branches/3.14.x/tests/testGuichetUnique.php revision 3343 by vpihour, Thu Mar 19 17:34:18 2015 UTC
# Line 7  Line 7 
7   */   */
8    
9  //  //
10  require "base.php";  require_once "base.php";
11    
12  /**  /**
13   *   *
14   */   */
15  class GuichetUnique extends BaseTestCase {  class GuichetUnique extends Base2TestCase {
16    
17      private function login() {      // Liste des utilisateurs
18          // on commence par se connecter      var $listUtlisateurs = array(
19          $this->connect("guichet", "guichet");              array(
20          // On doit être connecté                  "login" => "guichet",
21          $this->assertTrue($this->isTextPresent("Votre session est maintenant ouverte."));                  "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
92         */
93        // Fonction privé
94        private function ajoutDemandeInitial($utilisateur) {
95    
96            // On se connecte à l'application
97            $this->login($utilisateur["login"], $utilisateur["mdp"]);
98            // Ouvre le menu
99            $this->openMenu("Guichet Unique", $utilisateur);
100            // On clique sur le menu "Nouveau Dossier"
101            $this->byLinkText("Nouveau Dossier")->click();
102            // On vérifie qu'il n'y ait pas d'erreur
103            $this->verifynoerrors();
104            // On vérifie le nom de l'onglet
105            $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
106            // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
107            $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel("Permis de construire pour une maison individuelle et / ou ses annexes");
108            // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
109            $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
110            // On clique pour ajouter un pétitionnaire principale
111            $this->byId("add_petitionnaire_principal")->click();
112            // On remplit le champ
113            $this->select($this->byId("particulier_civilite"))->selectOptionByLabel("Monsieur");
114            // On remplit le champ
115            $this->byId("particulier_nom")->value("DURAND");
116            // On remplit le champ
117            $this->byId("particulier_prenom")->value("MICKAEL");
118            // On remplit le champ
119            $this->byId("particulier_date_naissance")->value("03/01/1956");
120            // On remplit le champ
121            $this->byId("particulier_commune_naissance")->value("LILLE");
122            // On remplit le champ
123            $this->byId("particulier_departement_naissance")->value("NORD");
124            // On remplit le champ
125            $this->byId("numero")->value("12");
126            // On remplit le champ
127            $this->byId("voie")->value("RUE DE LA LOI");
128            // On remplit le champ
129            $this->byId("complement")->value("APPT 12");
130            // On remplit le champ
131            $this->byId("localite")->value("MARSEILLE");
132            // On remplit le champ
133            $this->byId("code_postal")->value("13012");
134            // On remplit le champ
135            $this->byId("telephone_fixe")->value("0404040404");
136            // On remplit le champ
137            $this->byId("fax")->value("0405040404");
138            // On clique sur ajouter
139            $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
140            // On vérifie qu'il n'y ait pas d'erreur
141            $this->verifynoerrors();
142            // On vérifie le message
143            $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-petitionnaire .message")->text());
144            // On clique sur le bouton retour
145            $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
146            // On vérifie que le text est présent
147            $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
148            // On clique sur ajouter
149            $this->byXPath("//input[@value='Ajouter']")->click();
150            // On vérifie qu'il n'y ait pas d'erreur
151            $this->verifynoerrors();
152            // On vérifie le message
153            $this->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°[\s\S]*$/",$this->byCssSelector(".message")->text());
154            // Récupération du numéro de dossier
155            preg_match('/(PC)[0-9 ]*(P0)/', $this->byCssSelector(".message .text")->text(), $matches);
156            $dossier_libelle = $matches[0];
157            $dossier = str_replace(' ', '', $dossier_libelle);
158            $dossier_dir = substr_replace($dossier, '.', -2, -3);
159            // On clique
160            $this->byCssSelector("a.lien")->click();sleep(5);
161            // Liste les fenêtres
162            $windows = $this->windowHandles();
163            // Change la fenêtre
164            $this->window($windows[1]);
165            // On vérifie qu'il n'y ait pas d'erreur
166            $this->verifynoerrors();
167            // On vérifie que le text est présent
168            $this->assertRegExp("/^[\s\S]*RECEPISSE DE DEPOT[\s\S]*$/",$this->source());
169            // On ferme la fenêtre
170            $this->closeWindow();
171            // On change le focus de la fenêtre
172            $this->window($windows[0]);
173            // On clique sur le bouton retour
174            $this->byLinkText("Retour")->click();
175            // On vérifie qu'il n'y ait pas d'erreur
176            $this->verifynoerrors();
177            // On vérifie que le répertoire s'est crée
178            $this->assertTrue(file_exists("../trs/numerisation/Todo/".$dossier_dir));
179            // On se déconnecte
180            $this->deconnect();
181        }
182        // Fonction public
183        public function test02AjoutDemandeInitial() {
184            // Récupération des utilisateurs
185            $utilisateurs = $this->listUtlisateurs;
186            // Pour chaque utilisateur on lance le test
187            foreach ($utilisateurs as $utilisateur) {
188                //
189                $this->ajoutDemandeInitial($utilisateur);
190            }
191            // On vérifie la déconnexion
192            $this->verifyDeconnect();
193        }
194    
195        /**
196         * Test l'ajout d'une demande et de création d'une nouvelle sequence
197         */
198        public function testAjoutDemandeNouvelleSequence() {
199    
200            // On se connecte à l'application
201            $this->login("guichet", "guichet");
202            // On clique sur le menu "Nouveau Dossier"
203            $this->byLinkText("Nouveau Dossier")->click();
204            // On vérifie qu'il n'y ait pas d'erreur
205            $this->verifynoerrors();
206            // On vérifie le nom de l'onglet
207            $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
208            // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
209            $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel("Permis de construire pour une maison individuelle et / ou ses annexes");
210            // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
211            $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
212            // Modification de la date
213            $this->byId("date_demande")->clear();
214            $this->byId("date_demande")->value("10/10/2014");
215            // On clique pour ajouter un pétitionnaire principale
216            $this->byId("add_petitionnaire_principal")->click();
217            // On remplit le champ
218            $this->select($this->byId("particulier_civilite"))->selectOptionByLabel("Monsieur");
219            // On remplit le champ
220            $this->byId("particulier_nom")->value("DURAND");
221            // On remplit le champ
222            $this->byId("particulier_prenom")->value("MICKAEL");
223            // On remplit le champ
224            $this->byId("particulier_date_naissance")->value("03/01/1956");
225            // On remplit le champ
226            $this->byId("particulier_commune_naissance")->value("LILLE");
227            // On remplit le champ
228            $this->byId("particulier_departement_naissance")->value("NORD");
229            // On remplit le champ
230            $this->byId("numero")->value("12");
231            // On remplit le champ
232            $this->byId("voie")->value("RUE DE LA LOI");
233            // On remplit le champ
234            $this->byId("complement")->value("APPT 12");
235            // On remplit le champ
236            $this->byId("localite")->value("MARSEILLE");
237            // On remplit le champ
238            $this->byId("code_postal")->value("13012");
239            // On remplit le champ
240            $this->byId("telephone_fixe")->value("0404040404");
241            // On clique sur ajouter
242            $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
243            // On vérifie qu'il n'y ait pas d'erreur
244            $this->verifynoerrors();
245            // On vérifie le message
246            $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-petitionnaire .message")->text());
247            // On clique sur le bouton retour
248            $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
249            // On vérifie que le text est présent
250            $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
251            // On clique sur ajouter
252            $this->byXPath("//input[@value='Ajouter']")->click();
253            // On vérifie qu'il n'y ait pas d'erreur
254            $this->verifynoerrors();
255            // On vérifie le message
256            $this->assertContains("Création du dossier d'autorisation n°",$this->byCssSelector(".message .text")->text());
257            // Récupération du numéro de dossier
258            preg_match('/(PC)[0-9 ]*(P0)/', $this->byCssSelector(".message .text")->text(), $dossier);
259            $dossier = $dossier[0];
260            // On se déconnecte
261            $this->logout();
262      }      }
263    
264      private function logout() {      /**
265          // puis on se déconnecte       * Test l'ajout d'une demande de modification
266         */
267        public function testAjoutDemandeModification() {
268    
269            // Année en cours
270            $annee = date("y");
271    
272            /// On se connecte à l'application en tant qu'instructeur
273            // pour ajouter une instruction arrêté sur le dossier crée
274            $this->login("instr", "instr");
275            // On clique sur le menu
276            $this->byLinkText("Recherche")->click();
277            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
278            $this->verifyNoErrors();
279            // On clique sur le dossier
280            $this->byId("action-tab-dossier_instruction-left-consulter-PC013055".$annee."00001P0")->click();
281            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
282            $this->verifyNoErrors();
283            //On déplie le fieldset Pétitionnaire
284            $this->byCssSelector("#liste_demandeur legend")->click();
285            sleep(1);
286            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
287            $this->verifyNoErrors();
288            // On vérifie la civilité du demandeur
289            $this->assertContains("Monsieur",$this->byCssSelector(".synthese_demandeur")->text());
290            // On clique sur l'onglet instruction
291            $this->byId("instruction")->click();
292            // On clique sur le + pour ajouter une instruction
293            $this->byCssSelector("#sousform-instruction .actions-max-1 a")->click();
294            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
295            $this->verifyNoErrors();
296            // On choisi l'événement
297            $this->select($this->byId("evenement"))->selectOptionByValue(81);
298            // On clique sur le bouton ajouter
299            $this->byXPath("//input[@value='Ajouter']")->click();
300            // On vérifie que l'instruction s'est bien ajouté
301            $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
302            // On clique sur le bouton retour
303            $this->byCssSelector("#sousform-instruction form a.retour")->click();
304            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
305            $this->verifyNoErrors();
306            // On clique sur l'onglet DI
307            $this->byId("main")->click();
308            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
309            $this->verifyNoErrors();
310            // on rafraichis la page
311            $this->refresh();
312            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
313            $this->verifyNoErrors();
314            // On vérifie l'état du dossier
315            $this->assertEquals("dossier accepter", $this->byId('etat')->text());
316            // On se déconnecte de l'instructeur
317          $this->deconnect();          $this->deconnect();
318          // on doit avoir un message nous indiquant que la session est finie          // On se connecte en tant que guichet unique
319          $this->assertTrue($this->isTextPresent("Votre session est maintenant terminée."));          $this->login("guichet", "guichet");
320          // on ne doit plus avoir de lien de déconnexion          // On clique sur le menu "Nouveau Dossier"
321          $this->assertFalse($this->isElementPresent("link=Déconnexion"));          $this->byLinkText("Autre Dossier")->click();
322            // On vérifie qu'il n'y ait pas d'erreur
323            $this->verifynoerrors();
324            // On vérifie le nom de l'onglet
325            $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
326            // On clique pour ajouter une demande au dossier existant
327            $this->byId("action-tab-demande_autre_dossier-left-consulter-PC013055".$annee."00001P0")->click();
328            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
329            $this->verifyNoErrors();
330            // Vérifie le fil d'Ariane
331            $this->assertContains("Guichet Unique > Nouvelle Demande > Autre Dossier > PC 013055", $this->byXPath("//div[3]/div/h2")->text());
332            // On choisis le type de demande
333            $this->select($this->byId("demande_type"))->selectOptionByLabel("Demande de modification");
334            // On clique sur ajouter
335            $this->byXPath("//input[@value='Ajouter']")->click();
336            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
337            $this->verifyNoErrors();
338            // On vérifie le message
339            $this->assertRegExp("/^[\s\S]*Création du dossier d'instruction n°[\s\S]*$/", $this->byCssSelector("BODY")->text());
340            // On vérifie que le répertoire s'est crée
341            $this->assertTrue(file_exists("../trs/numerisation/Todo/PC013055".$annee."00001.M01"));
342            // On se déconnecte
343            $this->logout();
344            
345      }      }
346    
347      /**      /**
348       * Ce test doit être réalisé juste après la réinitialisation de la base       * Tests l'affichage réglementaire
      * de données.  
349       */       */
350      public function testAffichageReglementaire() {      public function testAffichageReglementaire() {
         //  
         $this->login();  
   
         //  
         $this->clickAndWait("link=attestation");  
         $this->verifyTextPresent("imprimer l'attestation d'affichage réglementaire");  
         //  
         $this->type("id=dossier", "PC0130551200002P0");  
         $this->clickAndWait("//input[@value='Valider']");  
         $this->verifyTextPresent("Ce dossier n'a jamais été affiché.");  
   
         //  
         $this->clickAndWait("link=registre");  
         $this->verifyTextPresent("imprimer le registre d'affichage réglementaire");  
         //  
         $this->click("//input[@value='Valider']");  
         $this->assertTrue((bool)preg_match('/^Etes-vous sur de vouloir confirmer cette action [\s\S]$/',$this->getConfirmation()));  
         //  
         $this->waitForPopUp("", "30000");  
         $this->selectPopUp();  
         sleep(5);  
         $this->verifyNoDatabaseError();  
         $this->verifyTextPresent("Registre des dossiers en cours");  
         $this->close();  
         //  
         $this->selectWindow();  
         $this->verifyTextPresent("Traitement terminé. Le registre a été téléchargé.");  
   
         //  
         $this->clickAndWait("link=attestation");  
         $this->verifyTextPresent("imprimer l'attestation d'affichage réglementaire");  
         //  
         $this->clickAndWait("//input[@value='Valider']");  
         $this->verifyTextPresent("Veuiller saisir un N° de dossier.");  
         //  
         $this->type("id=dossier", "123");  
         $this->clickAndWait("//input[@value='Valider']");  
         $this->verifyTextPresent("Ce dossier n'existe pas.");  
         //  
         $this->type("id=dossier", "PC0130551200002P0");  
         $this->clickAndWait("//input[@value='Valider']");  
         $this->verifyTextPresent("Cliquez sur le lien ci-dessous pour télécharger votre attestation d'affichage : \n\nAttestation d'affichage");  
         //  
         $this->click("link=Attestation d'affichage");  
         $this->waitForPopUp("", "30000");  
         $this->selectPopUp();  
         sleep(5);  
         $this->verifyNoDatabaseError();  
         $this->verifyTextPresent("ATTESTATION D'AFFICHAGE REGLEMENTAIRE");  
         $this->close();  
         //  
         $this->selectWindow();  
351    
352          //          // On se connecte à l'application
353            $this->login("guichet", "guichet");
354            // On clique sur le menu "Attestation"
355            $this->byLinkText("Attestation")->click();
356            // On vérifie qu'il n'y ait pas d'erreur
357            $this->verifynoerrors();
358            // On vérifie le nom de l'onglet
359            $this->assertEquals("Imprimer L'attestation D'affichage Réglementaire", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
360            // On écrit "PC0130551200002P0" dans le champ dossier
361            $this->byId("dossier")->value("PC0130551200002P0");
362            // On clique sur "Valider"
363            $this->byXPath("//input[@value='Valider']")->click();
364            // On vérifie qu'il n'y ait pas d'erreur
365            $this->verifynoerrors();
366            // On vérifie que text est présent
367            $this->assertRegExp("/^[\s\S]*Ce dossier n'a jamais été affiché.[\s\S]*$/",$this->byCssSelector("BODY")->text());
368            // On clique sur le menu "Registre"
369            $this->byLinkText("Registre")->click();
370            // On vérifie qu'il n'y ait pas d'erreur
371            $this->verifynoerrors();
372            // On vérifie le nom de l'onglet
373            $this->assertEquals("Imprimer Le Registre D'affichage Réglementaire", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
374            // On clique sur "Valider"
375            $this->byXPath("//input[@value='Valider']")->click();
376            // On clique sur "Oui" dans la fenêtre js qui apparaît
377            $this->acceptAlert();sleep(5);
378            // Liste des fenêtres ouvertes
379            $windows = $this->windowHandles();
380            // On change le focus de la fenêtre
381            $this->window($windows[1]);
382            // On vérifie qu'il n'y ait pas d'erreur
383            $this->verifynoerrors();
384            // On vérifie que text est présent
385            $this->assertRegExp('/^[\s\S]*Registre des dossiers en cours[\s\S]*$/',$this->source());
386            // On ferme la fenêtre
387            $this->closeWindow();
388            // On change le focus de la fenêtre
389            $this->window($windows[0]);
390            // On vérifie qu'il n'y ait pas d'erreur
391            $this->verifynoerrors();
392            // On vérifie que text est présent
393            $this->assertRegExp('/^[\s\S]*Traitement terminé. Le registre a été téléchargé.[\s\S]*$/',$this->byCssSelector("BODY")->text());
394            // On clique sur le menu "Attestation"
395            $this->byLinkText("Attestation")->click();
396            // On vérifie qu'il n'y ait pas d'erreur
397            $this->verifynoerrors();
398            // On vérifie le nom de l'onglet
399            $this->assertEquals("Imprimer L'attestation D'affichage Réglementaire", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
400            // On clique sur "Valider"
401            $this->byXPath("//input[@value='Valider']")->click();
402            // On vérifie qu'il n'y ait pas d'erreur
403            $this->verifynoerrors();
404            // On vérifie que text est présent
405            $this->assertRegExp("/^[\s\S]*Veuiller saisir un N° de dossier.[\s\S]*$/",$this->byCssSelector("BODY")->text());
406            // On écrit "123" dans le champ dossier
407            $this->byId("dossier")->value("123");
408            // On clique sur "Valider"
409            $this->byXPath("//input[@value='Valider']")->click();
410            // On vérifie qu'il n'y ait pas d'erreur
411            $this->verifynoerrors();
412            // On vérifie que text est présent
413            $this->assertRegExp("/^[\s\S]*Ce dossier n'existe pas.[\s\S]*$/",$this->byCssSelector("BODY")->text());
414            // On écrit "PC0130551200002P0" dans le champ dossier
415            $this->byId("dossier")->value("PC0130551200002P0");
416            // On clique sur "Valider"
417            $this->byXPath("//input[@value='Valider']")->click();
418            // On vérifie qu'il n'y ait pas d'erreur
419            $this->verifynoerrors();
420            // On vérifie que le text est présent
421            $this->assertRegExp("/^[\s\S]*Cliquez sur le lien ci-dessous pour télécharger votre attestation d'affichage[\s\S]*$/",$this->byCssSelector("BODY")->text());
422            // On clique sur "Attestation d'affichage"
423            $this->byLinkText("Attestation d'affichage")->click();sleep(5);
424            // Liste les fenêtres
425            $windows = $this->windowHandles();
426            // Change la fenêtre
427            $this->window($windows[1]);
428            // On vérifie qu'il n'y ait pas d'erreur
429            $this->verifynoerrors();
430            // On vérifie que le text est
431            // présent
432            $this->assertRegExp("/^[\s\S]*ATTESTATION D'AFFICHAGE REGLEMENTAIRE[\s\S]*$/",$this->source());
433            // On ferme la fenêtre
434            $this->closeWindow();
435            // On change le focus de la fenêtre
436            $this->window($windows[0]);
437            // On se deconnecte
438          $this->logout();          $this->logout();
439      }      }
440    
441      /**      /**
442       *       * Test le Récépissé
443       */       */
444      public function testRecepisse() {      public function testRecepisse() {
         //  
         $this->login();  
   
         //  
         $this->clickAndWait("link=récépissé");  
         $this->verifyTextPresent("demande");  
         //  
         $this->clickAndWait("link=DAT0130551200001P0");  
         $this->verifyTextPresent("Demande d'autorisation de construire, d'aménager ou de modifier un ERP");  
         //  
         $this->click("link=Éditer le récépissé PDF");  
         $this->waitForPopUp("", "30000");  
         $this->selectPopUp();  
         sleep(5);  
         $this->verifyNoDatabaseError();  
         $this->verifyTextPresent("RECEPISSE DE DEPOT");  
         $this->close();  
         //  
         $this->selectWindow();  
         //  
         $this->clickAndWait("link=Retour");  
         $this->verifyTextPresent("demande");  
445    
446          //          // On se connecte à l'application
447            $this->login("guichet", "guichet");
448            // On clique sur le menu "Récépissé"
449            $this->byLinkText("Récépissé")->click();
450            // On vérifie qu'il n'y ait pas d'erreur
451            $this->verifynoerrors();
452            // On vérifie le nom de l'onglet
453            $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
454            // On clique sur "AT0130551200001P0"
455            $this->byLinkText("AT 013055 12 00001P0")->click();
456            // On vérifie qu'il n'y ait pas d'erreur
457            $this->verifynoerrors();
458            // Vérifie le fil d'Ariane
459            $this->assertEquals("Guichet Unique > Nouvelle Demande > Récépissé > AT 013055 12 00001P0", $this->byXPath("//div[3]/div/h2")->text());
460            // On vérifie que le text est présent
461            $this->assertRegExp("/^[\s\S]*Demande d'autorisation de construire, d'aménager ou de modifier un ERP[\s\S]*$/",$this->byCssSelector("BODY")->text());
462            // Le nom du pétitionnaire doit apparaître
463            $this->assertRegExp("/^[\s\S]*BERNARD LILIANE[\s\S]*$/",$this->byCssSelector("BODY")->text());
464            // On clique sur le lien
465            $this->byLinkText("Éditer le récépissé PDF")->click();sleep(5);
466            // Liste les fenêtres
467            $windows = $this->windowHandles();
468            // Change la fenêtre
469            $this->window($windows[1]);
470            // On vérifie qu'il n'y ait pas d'erreur
471            $this->verifynoerrors();
472            // On vérifie que le text est présent
473            $this->assertRegExp("/^[\s\S]*RECEPISSE DE DEPOT[\s\S]*$/",$this->source());
474            // On ferme la fenêtre
475            $this->closeWindow();
476            // On change le focus de la fenêtre
477            $this->window($windows[0]);
478            // On clique sur "Retour"
479            $this->byLinkText("Retour")->click();
480            // On vérifie qu'il n'y ait pas d'erreur
481            $this->verifynoerrors();
482            // On vérifie le nom de l'onglet
483            $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
484            // On se deconnecte
485          $this->logout();          $this->logout();
486      }      }
487    
488      /**      /**
489       *       * Test les pétitionnaires fréquents
490       */       */
491      public function testPetitionnaireFrequent() {      public function testPetitionnaireFrequent() {
         //  
         $this->login();  
492    
493          //          // On se connecte à l'application
494          $this->clickAndWait("link=nouveau dossier");          $this->login("guichet", "guichet");
495          $this->verifyTextPresent("demande");          // On clique sur le menu "Nouveau Dossier"
496          //          $this->byLinkText("Nouveau Dossier")->click();
497          $this->select("id=dossier_autorisation_type_detaille", "label=Permis de construire pour une maison individuelle et / ou ses annexes");          // On vérifie qu'il n'y ait pas d'erreur
498          $this->select("id=demande_type", "label=Dépôt Initial");          $this->verifynoerrors();
499          $this->click("id=add_petitionnaire_principal");          // On vérifie le nom de l'onglet
500          $this->type("id=particulier_nom", "DURAND");          $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
501          $this->type("id=particulier_prenom", "MICKAEL");          // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
502          $this->type("id=particulier_date_naissance", "03/01/1956");          $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel("Permis de construire pour une maison individuelle et / ou ses annexes");
503          $this->type("id=particulier_commune_naissance", "LILLE");          // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
504          $this->type("id=particulier_departement_naissance", "NORD");          $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
505          $this->type("id=numero", "12");          // On clique pour ajouter un pétitionnaire principale
506          $this->type("id=voie", "RUE DE LA LOI");          $this->byId("add_petitionnaire_principal")->click();
507          $this->type("document.f2.complement", "APPT 12");          // On remplit le champ
508          $this->type("id=localite", "MARSEILLE");          $this->byId("particulier_nom")->value("DURAND");
509          $this->type("id=code_postal", "13012");          // On remplit le champ
510          $this->type("id=telephone_fixe", "0404040404");          $this->byId("particulier_prenom")->value("MICKAEL");
511          $this->click("id=frequent");          // On remplit le champ
512                    $this->byId("particulier_date_naissance")->value("03/01/1956");
513          $this->click("//input[@value=\"Ajouter l'enregistrement de la table : 'demandeur'\"]");          // On remplit le champ
514            $this->byId("particulier_commune_naissance")->value("LILLE");
515            // On remplit le champ
516            $this->byId("particulier_departement_naissance")->value("NORD");
517            // On remplit le champ
518            $this->byId("numero")->value("12");
519            // On remplit le champ
520            $this->byId("voie")->value("RUE DE LA LOI");
521            // On remplit le champ
522            $this->byId("complement")->value("APPT 12");
523            // On remplit le champ
524            $this->byId("localite")->value("MARSEILLE");
525            // On remplit le champ
526            $this->byId("code_postal")->value("13012");
527            // On remplit le champ
528            $this->byId("telephone_fixe")->value("0404040404");
529            // On sélectionne pétitionnaire fréquent
530            $this->byId("frequent")->click();
531            // On clique sur ajouter
532            $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
533            // On vérifie qu'il n'y ait pas d'erreur
534            $this->verifynoerrors();
535            // On vérifie le message
536            $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-petitionnaire .message")->text());
537            // On clique sur le bouton retour
538            $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
539            // On vérifie que le text est présent
540            $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
541            // On clique sur ajouter
542            $this->byXPath("//input[@value='Ajouter']")->click();
543            // On vérifie qu'il n'y ait pas d'erreur
544            $this->verifynoerrors();
545            // On vérifie le message
546            $this->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°[\s\S]*$/",$this->byCssSelector(".message")->text());
547            // On clique
548            $this->byCssSelector("a.lien")->click();sleep(5);
549            // Liste les fenêtres
550            $windows = $this->windowHandles();
551            // Change la fenêtre
552            $this->window($windows[1]);
553            // On vérifie qu'il n'y ait pas d'erreur
554            $this->verifynoerrors();
555            // On vérifie que le text est présent
556            $this->assertRegExp("/^[\s\S]*RECEPISSE DE DEPOT[\s\S]*$/",$this->source());
557            // On ferme la fenêtre
558            $this->closeWindow();
559            // On change le focus de la fenêtre
560            $this->window($windows[0]);
561            // On clique sur le bouton retour
562            $this->byLinkText("Retour")->click();
563            // On vérifie qu'il n'y ait pas d'erreur
564            $this->verifynoerrors();
565            // On clique sur pétitionnaire fréquent
566            $this->byLinkText("Pétitionnaire Fréquent")->click();
567            // On vérifie qu'il n'y ait pas d'erreur
568            $this->verifynoerrors();
569            // On vérifie que le text est présent
570            $this->assertRegExp("/^[\s\S]*pétitionnaire fréquent[\s\S]*$/",$this->source());
571            // On vérifie que le text est présent
572            $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->source());
573            // On clique sur le résultat
574            $this->byLinkText("DURAND MICKAEL")->click();
575            // On vérifie qu'il n'y ait pas d'erreur
576            $this->verifynoerrors();
577            // On vérifie que le text est présent
578            $this->assertRegExp("/^[\s\S]*RUE DE LA LOI[\s\S]*$/",$this->source());
579            // On clique sur le bouton "Retour"
580            $this->byLinkText("Retour")->click();
581            // On vérifie qu'il n'y ait pas d'erreur
582            $this->verifynoerrors();
583            // On vérifie que le text est présent
584            $this->assertRegExp("/^[\s\S]*pétitionnaire fréquent[\s\S]*$/",$this->source());
585            // On se déconnecte
586            $this->logout();
587        }
588    
589        /**
590         * Active l'option sig avec la valeur nécessaire pour la suite des tests
591         */
592        public function test_active_option_sig() {
593    
594            // On se connecte en tant que "admin"
595            $this->login("admin", "admin");
596            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
597            $this->verifyNoErrors();
598            // On clique sur le lien "Administration" dans le menu
599            $this->byLinkText("Administration")->click();
600            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
601            $this->verifyNoErrors();
602            // // On clique sur le lien "Paramètre" dans le menu
603            $this->byLinkText("Paramètre")->click();
604            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
605            $this->verifyNoErrors();
606            // On remplis le champs de recherche simple
607            $this->byCssSelector("input[name='recherche']")->value('option_sig');
608            // On clique sur le bouton recherche
609            $this->byCssSelector(".ui-button")->click();
610            // On clique sur le résultat
611            $this->byLinkText("option_sig")->click();
612            // On clique sur le bouton "Modifier"
613            $this->byId('action-form-om_parametre-modifier')->click();
614            // On change la valeur par "sig_externe"
615            $this->byId('valeur')->clear();
616            $this->byId('valeur')->value('sig_externe');
617            // On valide la modification
618            $this->byCssSelector("input[value='Modifier']")->click();
619            // On vérifie le message de validation
620            $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#tabs-1 .message")->text());
621            // On clique sur le bouton 'Retour'
622            $this->byLinkText("Retour")->click();
623            // On vérifie les nouvelles données
624            $this->assertEquals("sig_externe", $this->byId("valeur")->text());
625            // On se déconnecte
626            $this->logout();
627        }
628    
629        /**
630         * Test l'ajout d'une demande initial en utilisant les références cadastrales
631         * pour récupérer l'adresse
632         */
633        public function testAjoutDemandeInitialReferenceCadastrale() {
634    
635            // On se connecte à l'application
636            $this->login("guichet", "guichet");
637            // On clique sur le menu "Nouveau Dossier"
638            $this->byLinkText("Nouveau Dossier")->click();
639            // On vérifie qu'il n'y ait pas d'erreur
640            $this->verifynoerrors();
641            // On vérifie le nom de l'onglet
642            $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
643            // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
644            $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel("Permis de construire pour une maison individuelle et / ou ses annexes");
645            // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
646            $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
647            // XXX Problème de javascript seulement dans cette fonction
648            // Les alerts ne passent pas lorsque le focus n'est pas sur le
649            // navigateur
650            //On saisie des références cadastrales inccorect
651            // $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(1)")->value("aa");
652            // // On change le focus pour faire apparaitre le message
653            // $this->byId('date_demande')->value(date('d/m/Y'));
654            // sleep(5);
655            // // Message d'erreur concernant le numéro de quartier
656            // $this->assertEquals("Vous ne devez saisir que des nombres entiers", $this->alertText());
657            // $this->acceptAlert();
658            // $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(2)")->value("11");
659            // // On change le focus pour faire apparaitre le message
660            // $this->byId('date_demande')->value(date('d/m/Y'));
661            // sleep(5);
662            // // Message d'erreur concernant la section
663            // $this->assertEquals("Vous ne devez saisir que des lettres dans ce champs.", $this->alertText());
664            // $this->acceptAlert();
665            // $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(3)")->value("bb");
666            // // On change le focus pour faire apparaitre le message
667            // $this->byId('date_demande')->value(date('d/m/Y'));
668            // sleep(5);
669            // // Message d'erreur concernant le numéro de parcelle
670            // $this->assertEquals("Vous ne devez saisir que des nombres entiers", $this->alertText());
671            // $this->acceptAlert();
672            //On saisie les références cadastrales
673            // $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(1)")->value("1");
674            // $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(2)")->value("dc");
675            // $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(3)")->value("15");
676            // XXX Renplace les valeurs juste au dessus qui devraient se mettre au
677            // bon format automatiquement grâce au javascript
678            $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(1)")->value("001");
679            $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(2)")->value("DC");
680            $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(3)")->value("0015");
681            //On clique sur le bouton de recherche "Cadastrale = > Adresse"
682            $this->byId("cad-adr-them")->click();
683          sleep(1);          sleep(1);
684          $this->verifyTextPresent("Vos modifications ont bien été enregistrées.");          // On vérifie que le format des champs est mise à jour automatiquement
685          $this->click("css=form[name=\"f2\"] > div.formControls > a.retour");          $this->assertEquals("001", $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(1)")->attribute('value'));
686            $this->assertEquals("DC", $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(2)")->attribute('value'));
687            $this->assertEquals("0015", $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(3)")->attribute('value'));
688            //On verifie l'adresse
689            $this->assertEquals("0075", $this->byId("terrain_adresse_voie_numero")->attribute('value'));
690            $this->assertEquals("TRA DE LA DOMINIQUE", $this->byId("terrain_adresse_voie")->attribute('value'));
691            $this->assertEquals("13011", $this->byId("terrain_adresse_code_postal")->attribute('value'));
692            $this->assertEquals("MARSEILLE", $this->byId("terrain_adresse_localite")->attribute('value'));
693            // On valide le formulaire
694            $this->byXPath("//input[@value='Ajouter']")->click();
695            // On vérifie le message d'erreur
696            $this->assertRegExp("/^[\s\S]*SAISIE NON ENREGISTRÉE[\s\S]*$/", $this->byCssSelector(".message")->text());
697          sleep(1);          sleep(1);
698          //          // On vérifie que les références cadastrales soient toujours affiché
699          $this->verifyTextPresent("DURAND MICKAEL\n 12 RUE DE LA LOI APPT 12 \n 13012 MARSEILLE \n 0404040404");          $this->assertEquals("001", $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(1)")->attribute('value'));
700          $this->clickAndWait("//input[@value='Ajouter']");          $this->assertEquals("DC", $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(2)")->attribute('value'));
701          $this->verifyTextPresent("Création du dossier d'autorisation n°PC0130551300003");          $this->assertEquals("0015", $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(3)")->attribute('value'));
702          //          //On saisie les références cadastrales
703          //$this->click("link=     Télécharger le récépissé de la demande");          $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(1)")->clear();
704          $this->click("css=a.lien");          $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(2)")->clear();
705          $this->waitForPopUp("", "30000");          $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(3)")->clear();
706          $this->selectPopUp();          //On clique sur le bouton de recherche "Cadastrale = > Adresse"
707          sleep(5);          $this->byId("cad-adr-them")->click();
708          $this->verifyNoDatabaseError();          //On valide le message d'erreur
709          $this->verifyTextPresent("RECEPISSE DE DEPOT");          $this->assertEquals('Aucune référence cadastrale fournie', $this->alertText());
710          $this->close();          $this->acceptAlert();
711          //          // On ressaisit les références cadatrales
712          $this->selectWindow();          // ref 1
713          //          $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(1)")->value("001");
714          $this->clickAndWait("link=Retour");          $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(2)")->value("DC");
715          //          $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(3)")->value("0015");
716          $this->clickAndWait("link=pétitionnaire fréquent");          // réf 2
717          $this->verifyTextPresent("pétitionnaire fréquent");          $this->byCssSelector("div#morelineReferenceCadastrale > div.form-content > span.add-16")->click();
718          //          $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(6)")->value("002");
719          $this->verifyTextPresent("DURAND MICKAEL");          $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(7)")->value("DC");
720          //          $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(8)")->value("0015");
721          $this->clickAndWait("link=DURAND MICKAEL");          // réf 3
722          $this->verifyTextPresent("RUE DE LA LOI ");          $this->byCssSelector("div#morelineReferenceCadastrale > div.form-content > span.add-16")->click();
723          //          $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(11)")->value("003");
724          $this->clickAndWait("link=Retour");          $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(12)")->value("DC");
725          $this->verifyTextPresent("pétitionnaire fréquent");          $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(13)")->value("0015");
726          //          // réf 4
727            $this->byCssSelector("div#morelineReferenceCadastrale > div.form-content > span.add-16")->click();
728            $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(16)")->value("004");
729            $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(17)")->value("DC");
730            $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(18)")->value("0015");
731            // réf 5
732            $this->byCssSelector("div#morelineReferenceCadastrale > div.form-content > span.add-16")->click();
733            $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(21)")->value("005");
734            $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(22)")->value("DC");
735            $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(23)")->value("0015");
736            // réf 6
737            $this->byCssSelector("div#morelineReferenceCadastrale > div.form-content > span.add-16")->click();
738            $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(26)")->value("006");
739            $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(27)")->value("DC");
740            $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(28)")->value("0015");
741            // réf 7
742            $this->byCssSelector("div#morelineReferenceCadastrale > div.form-content > span.add-16")->click();
743            $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(31)")->value("007");
744            $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(32)")->value("DC");
745            $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(33)")->value("0015");
746            // réf 8
747            $this->byCssSelector("div#morelineReferenceCadastrale > div.form-content > span.add-16")->click();
748            $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(36)")->value("008");
749            $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(37)")->value("DC");
750            $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(38)")->value("0015");
751            // réf 9
752            $this->byCssSelector("div#morelineReferenceCadastrale > div.form-content > span.add-16")->click();
753            $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(41)")->value("009");
754            $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(42)")->value("DC");
755            $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(43)")->value("0015");
756            // réf 10
757            $this->byCssSelector("div#morelineReferenceCadastrale > div.form-content > span.add-16")->click();
758            $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(46)")->value("010");
759            $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(47)")->value("DC");
760            $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(48)")->value("0015");
761            // réf 11
762            $this->byCssSelector("div#morelineReferenceCadastrale > div.form-content > span.add-16")->click();
763            $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(51)")->value("011");
764            $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(52)")->value("DC");
765            $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(53)")->value("0015");
766            // réf 12
767            $this->byCssSelector("div#morelineReferenceCadastrale > div.form-content > span.add-16")->click();
768            $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(56)")->value("012");
769            $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(57)")->value("DC");
770            $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(58)")->value("0015");
771            // réf 13
772            $this->byCssSelector("div#morelineReferenceCadastrale > div.form-content > span.add-16")->click();
773            $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(61)")->value("013");
774            $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(62)")->value("DC");
775            $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(63)")->value("0015");
776            // réf 14
777            $this->byCssSelector("div#morelineReferenceCadastrale > div.form-content > span.add-16")->click();
778            $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(66)")->value("014");
779            $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(67)")->value("DC");
780            $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(68)")->value("0015");
781            // On clique pour ajouter un pétitionnaire principale
782            $this->byId("add_petitionnaire_principal")->click();
783            // On remplit le champ
784            $this->byId("particulier_nom")->value("DURAND");
785            // On remplit le champ
786            $this->byId("particulier_prenom")->value("MICKAEL");
787            // On remplit le champ
788            $this->byId("particulier_date_naissance")->value("03/01/1956");
789            // On remplit le champ
790            $this->byId("particulier_commune_naissance")->value("LILLE");
791            // On remplit le champ
792            $this->byId("particulier_departement_naissance")->value("NORD");
793            // On remplit le champ
794            $this->byId("numero")->value("12");
795            // On remplit le champ
796            $this->byId("voie")->value("RUE DE LA LOI");
797            // On remplit le champ
798            $this->byId("complement")->value("APPT 12");
799            // On remplit le champ
800            $this->byId("localite")->value("MARSEILLE");
801            // On remplit le champ
802            $this->byId("code_postal")->value("13012");
803            // On remplit le champ
804            $this->byId("telephone_fixe")->value("0404040404");
805            // On clique sur ajouter
806            $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
807            // On vérifie qu'il n'y ait pas d'erreur
808            $this->verifynoerrors();
809            // On vérifie le message
810            $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-petitionnaire .message")->text());
811            // On clique sur le bouton retour
812            $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
813            // On vérifie que le text est présent
814            $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
815            // On clique sur ajouter
816            $this->byXPath("//input[@value='Ajouter']")->click();
817            // On vérifie qu'il n'y ait pas d'erreur
818            $this->verifynoerrors();
819            // On vérifie le message
820            $this->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°[\s\S]*$/",$this->byCssSelector(".message")->text());
821            // Récupération du numéro de dossier
822            preg_match('/(PC)[0-9 ]*(P0)/', $this->byCssSelector(".message .text")->text(), $dossier);
823            $dossier_libelle = $dossier[0];
824            $dossier = str_replace(' ', '', $dossier_libelle);
825            $dossier_dir = substr_replace($dossier, '.', -2, -3);
826            // On clique
827            $this->byCssSelector("a.lien")->click();sleep(5);
828            // Liste les fenêtres
829            $windows = $this->windowHandles();
830            // Change la fenêtre
831            $this->window($windows[1]);
832            // On vérifie qu'il n'y ait pas d'erreur
833            $this->verifynoerrors();
834            // On vérifie que le text est présent
835            $this->assertRegExp("/^[\s\S]*RECEPISSE DE DEPOT[\s\S]*$/",$this->source());
836            // On ferme la fenêtre
837            $this->closeWindow();
838            // On change le focus de la fenêtre
839            $this->window($windows[0]);
840            // On clique sur le bouton retour
841            $this->byLinkText("Retour")->click();
842            // On vérifie qu'il n'y ait pas d'erreur
843            $this->verifynoerrors();
844            // On vérifie que le répertoire s'est crée
845            $this->assertTrue(file_exists("../trs/numerisation/Todo/".$dossier_dir));
846            // On se déconnecte
847            $this->logout();
848        }
849        
850        /*
851         * Cette fonction va tester l'affectation automatique des instructeurs aux
852         * dossiers d'instruction.
853         * Quatre cas sont possibles :
854         * - Aucun instructeur ne correspond,  ;
855         * - Un instructeur joker correspond,  ;
856         * - Un instructeur correspond, .
857         */
858        function testAffectationAutomatique(){
859            
860            // On se connecte à l'application
861            $this->login("guichet", "guichet");
862            //Ajout d'un dossier d'instructeur avec affectation d'aucun instructeur
863            $this->ajoutDossierAffectationAutomatique("801", "A", "0001", "Permis de construire comprenant ou non des démolitions", " -");
864            
865            //Ajout d'un dossier d'instructeur avec affectation d'un instructeur
866            //joker avec seulement le type de dossier d'autorisation détaillé de
867            //renseigné
868            $this->ajoutDossierAffectationAutomatique("806", "A", "0001", "Permis de construire pour une maison individuelle et / ou ses annexes", "Louis Laurent");
869            
870            //Ajout d'un dossier d'instructeur avec affectation du seul instructeur
871            //correspondant parfaitement aux critères
872            $this->ajoutDossierAffectationAutomatique("801", "A", "0001", "Permis de construire pour une maison individuelle et / ou ses annexes", "Pierre Martin");
873            // On se déconnecte
874            $this->logout();
875        }
876        
877        /**
878         * Ajoute un dossier d'instruction
879         * @param string $reference_cadastrale_quartier Le quartier de la référence
880         *               cadastrale du dossier
881         * @param string $reference_cadastrale_section La section de la référence
882         *               cadastrale du dossier
883         * @param string $reference_cadastrale_parcelle La parcelle de la référence
884         *               cadastrale du dossier
885         * @param string $datd dossier d'autorisation type détaillé
886         * @param string $instructeur le nom de l'instructeur
887         *
888         * @return boolean
889         */
890        function ajoutDossierAffectationAutomatique($reference_cadastrale_quartier,
891            $reference_cadastrale_section, $reference_cadastrale_parcelle,$datd,
892            $instructeur){
893            
894            //On affiche le tableau de bord
895            $this->byLinkText("Tableau de bord")->click();
896            // On clique sur le menu "Nouveau Dossier"
897            $this->byLinkText("Nouveau Dossier")->click();
898            // On vérifie qu'il n'y ait pas d'erreur
899            $this->verifynoerrors();
900            // On vérifie le nom de l'onglet
901            $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
902            // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
903            $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel($datd);
904            // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
905            $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
906            //On saisie les références cadastrales
907            $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(1)")->value($reference_cadastrale_quartier);
908            $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(2)")->value($reference_cadastrale_section);
909            $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(3)")->value($reference_cadastrale_parcelle);
910            //On clique sur le bouton de recherche "Cadastrale = > Adresse"
911            $this->byId("cad-adr-them")->click();
912            // On clique pour ajouter un pétitionnaire principale
913            $this->byId("add_petitionnaire_principal")->click();
914            // On remplit le champ
915            $this->byId("particulier_nom")->value("DURAND");
916            // On remplit le champ
917            $this->byId("particulier_prenom")->value("MICKAEL");
918            // On remplit le champ
919            $this->byId("particulier_date_naissance")->value("03/01/1956");
920            // On remplit le champ
921            $this->byId("particulier_commune_naissance")->value("LILLE");
922            // On remplit le champ
923            $this->byId("particulier_departement_naissance")->value("NORD");
924            // On remplit le champ
925            $this->byId("numero")->value("12");
926            // On remplit le champ
927            $this->byId("voie")->value("RUE DE LA LOI");
928            // On remplit le champ
929            $this->byId("complement")->value("APPT 12");
930            // On remplit le champ
931            $this->byId("localite")->value("MARSEILLE");
932            // On remplit le champ
933            $this->byId("code_postal")->value("13012");
934            // On remplit le champ
935            $this->byId("telephone_fixe")->value("0404040404");
936            // On clique sur ajouter
937            $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
938            // On vérifie qu'il n'y ait pas d'erreur
939            $this->verifynoerrors();
940            // On vérifie le message
941            $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-petitionnaire .message")->text());
942            // On clique sur le bouton retour
943            $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
944            // On vérifie que le text est présent
945            $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
946            // On clique sur ajouter
947            $this->byXPath("//input[@value='Ajouter']")->click();
948            // On vérifie qu'il n'y ait pas d'erreur
949            $this->verifynoerrors();
950            // On vérifie le message
951            $this->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°[\s\S]*$/",$this->byCssSelector(".message")->text());
952            // On clique
953            $this->byCssSelector("a.lien")->click();sleep(5);
954            // Liste les fenêtres
955            $windows = $this->windowHandles();
956            // Change la fenêtre
957            $this->window($windows[1]);
958            // On vérifie qu'il n'y ait pas d'erreur
959            $this->verifynoerrors();
960            // On vérifie que le text est présent
961            $this->assertRegExp("/^[\s\S]*Dossier suivi par  ".$instructeur."[\s\S]*$/",$this->source());
962            // On ferme la fenêtre
963            $this->closeWindow();
964            // On change le focus de la fenêtre
965            $this->window($windows[0]);
966        }
967    
968        /**
969         * Vérifie le menu "Autre Dossier" et "Dossier En Cours"
970         */
971        public function test_autre_dossier() {
972    
973            // On se connecte en tant que "guichet"
974            $this->login("guichet", "guichet");
975            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
976            $this->verifyNoErrors();
977            // On clique sur "Autre Dossier"
978            $this->byLinkText("Autre Dossier")->click();
979            // On vérifie qu'il n'y ait pas d'erreur
980            $this->verifynoerrors();
981            // On vérifie que le dossier qui ne doit pas être dans
982            // "Dossier En Cours" sont ici
983            $this->assertRegExp("/^[\s\S]*PC 013055 ".date("y")." 00001P0[\s\S]*$/",
984                $this->byCssSelector("#tab-demande_autre_dossier .tab-tab")->text());
985            // On clique sur "Dossier En Cours"
986            $this->byLinkText("Dossier En Cours")->click();
987            // On vérifie qu'il n'y ait pas d'erreur
988            $this->verifynoerrors();
989            // On vérifie que le dossier précédement contrôlé n'ait pas
990            // affiché
991            $this->assertNotContains("PC 013055 13 00001P0",
992                $this->byCssSelector("#tab-demande_dossier_encours .tab-tab")->text());
993            // On se déconnecte
994          $this->logout();          $this->logout();
995      }      }
996    
997        /**
998         * Désactive l'option sig avec la valeur nécessaire
999         */
1000        public function test_desactive_option_sig() {
1001    
1002            // On se connecte en tant que "admin"
1003            $this->login("admin", "admin");
1004            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1005            $this->verifyNoErrors();
1006            // On clique sur le lien "Administration" dans le menu
1007            $this->byLinkText("Administration")->click();
1008            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1009            $this->verifyNoErrors();
1010            // // On clique sur le lien "Paramètre" dans le menu
1011            $this->byLinkText("Paramètre")->click();
1012            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1013            $this->verifyNoErrors();
1014            // On remplis le champs de recherche simple
1015            $this->byCssSelector("input[name='recherche']")->value('option_sig');
1016            // On clique sur le bouton recherche
1017            $this->byCssSelector(".ui-button")->click();
1018            // On clique sur le résultat
1019            $this->byLinkText("option_sig")->click();
1020            // On clique sur le bouton "Modifier"
1021            $this->byId('action-form-om_parametre-modifier')->click();
1022            // On change la valeur par "aucun"
1023            $this->byId('valeur')->clear();
1024            $this->byId('valeur')->value('aucun');
1025            // On valide la modification
1026            $this->byCssSelector("input[value='Modifier']")->click();
1027            // On vérifie le message de validation
1028            $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#tabs-1 .message")->text());
1029            // On clique sur le bouton 'Retour'
1030            $this->byLinkText("Retour")->click();
1031            // On vérifie les nouvelles données
1032            $this->assertEquals("aucun", $this->byId("valeur")->text());
1033            // On se déconnecte
1034            $this->logout();
1035        }
1036  }  }
1037    
1038  ?>  ?>

Legend:
Removed from v.1674  
changed lines
  Added in v.3343

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26