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

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26