/[openfoncier]/trunk/tests/testInstruction.php
ViewVC logotype

Diff of /trunk/tests/testInstruction.php

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

revision 1714 by nhaye, Tue Apr 16 17:38:50 2013 UTC revision 2564 by softime, Tue Dec 3 14:17:35 2013 UTC
# Line 12  require_once "base.php"; Line 12  require_once "base.php";
12  /**  /**
13   *   *
14   */   */
15  class Instruction extends BaseTestCase {  class Instruction extends Base2TestCase {
   
     private function login() {  
         // on commence par se connecter  
         $this->connect("instr", "instr");  
         // On doit être connecté  
         $this->assertTrue($this->isTextPresent("Votre session est maintenant ouverte."));  
     }  
   
     private function logout() {  
         // puis on se déconnecte  
         $this->deconnect();  
         // on doit avoir un message nous indiquant que la session est finie  
         $this->assertTrue($this->isTextPresent("Votre session est maintenant terminée."));  
         // on ne doit plus avoir de lien de déconnexion  
         $this->assertFalse($this->isElementPresent("link=Déconnexion"));  
     }  
16    
17      /**      /**
18       * Ce test vise uniquement à vérifier que les écrans correspondant à chaque       * Ce test vise uniquement à vérifier que les écrans correspondant à chaque
19       * entrée de menu ne génère pas une erreur de base de données       * entrée de menu ne génère pas une erreur de base de données
20       */       */
21      public function testGeneral() {      public function test_01_ouverture_de_chaque_ecran_par_l_instructeur() {
         //  
         $this->login();  
   
         //  
         $this->clickAndWait("link=mes encours");  
         $this->verifyTextPresent("DI");  
         $this->verifyNoDatabaseError();  
         //  
         $this->clickAndWait("link=tous les encours");  
         $this->verifyTextPresent("DI");  
         $this->verifyNoDatabaseError();  
22          //          //
23          $this->clickAndWait("link=mes clôturés");          $this->login("instr", "instr");
         $this->verifyTextPresent("DI");  
         $this->verifyNoDatabaseError();  
24          //          //
25          $this->clickAndWait("link=tous les clôturés");          $this->byLinkText("Mes Encours")->click();
26          $this->verifyTextPresent("DI");          $this->verifyNoErrors();
27          $this->verifyNoDatabaseError();          $this->assertEquals("DI", $this->byXPath("//a[@href='#tabs-1']")->text());
28          //          //
29          $this->clickAndWait("link=recherche");          $this->byLinkText("Tous Les Encours")->click();
30          $this->verifyTextPresent("DI");          $this->verifyNoErrors();
31          $this->verifyNoDatabaseError();          $this->assertEquals("DI", $this->byXPath("//a[@href='#tabs-1']")->text());
32          //          //
33          $this->clickAndWait("link=dossiers à qualifier");          $this->byLinkText("Mes Clôturés")->click();
34          $this->verifyTextPresent("dossier");          $this->verifyNoErrors();
35          $this->verifyNoDatabaseError();          $this->assertEquals("DI", $this->byXPath("//a[@href='#tabs-1']")->text());
36          //          //
37          $this->clickAndWait("link=Mes retours");          $this->byLinkText("Tous Les Clôturés")->click();
38          $this->verifyTextPresent("dossier");          $this->verifyNoErrors();
39          $this->verifyNoDatabaseError();          $this->assertEquals("DI", $this->byXPath("//a[@href='#tabs-1']")->text());
40          //          //
41          $this->clickAndWait("link=Tous les retours");          $this->byLinkText("Recherche")->click();
42          $this->verifyTextPresent("dossier");          $this->verifyNoErrors();
43          $this->verifyNoDatabaseError();          $this->assertEquals("DI", $this->byXPath("//a[@href='#tabs-1']")->text());
44          //          //
45          $this->clickAndWait("link=Mes messages");          $this->byLinkText("Dossiers À Qualifier")->click();
46          $this->verifyTextPresent("dossier");          $this->verifyNoErrors();
47          $this->verifyNoDatabaseError();          $this->assertEquals("dossier", $this->byCssSelector(".col-1 .name a")->text());
48          //          //
49          $this->clickAndWait("link=Tous les messages");          $this->byLinkText("Mes Retours")->click();
50          $this->verifyTextPresent("dossier");          $this->verifyNoErrors();
51          $this->verifyNoDatabaseError();          $this->assertEquals("dossier", $this->byCssSelector(".col-1 .name a")->text());
52          //          //
53          $this->clickAndWait("css=a.commission_mes_retours-16");          $this->byLinkText("Tous Les Retours")->click();
54          $this->verifyTextPresent("dossier");          $this->verifyNoErrors();
55          $this->verifyNoDatabaseError();          $this->assertEquals("dossier", $this->byCssSelector(".col-1 .name a")->text());
56          //          //
57          $this->clickAndWait("css=a.commission_tous_retours-16");          $this->byLinkText("Mes Messages")->click();
58          $this->verifyTextPresent("dossier");          $this->verifyNoErrors();
59          $this->verifyNoDatabaseError();          $this->assertEquals("dossier", $this->byCssSelector(".col-1 .name a")->text());
60            //
61            $this->byLinkText("Tous Les Messages")->click();
62            $this->verifyNoErrors();
63            $this->assertEquals("dossier", $this->byCssSelector(".col-1 .name a")->text());
64            //
65            $this->byCssSelector("a.commission_mes_retours-16")->click();
66            $this->verifyNoErrors();
67            $this->assertEquals("dossier", $this->byCssSelector(".col-1 .name a")->text());
68            //
69            $this->byCssSelector("a.commission_tous_retours-16")->click();
70            $this->verifyNoErrors();
71            $this->assertEquals("dossier", $this->byCssSelector(".col-1 .name a")->text());
72        
73          //          //
74          $this->logout();          $this->logout();
75      }      }
76        
77        /**
78         *
79         */
80        public function test_02_visualisation_di_et_da_par_l_instructeur_en_charge() {
81            
82            // On se connecte en tant que "instr"
83            $this->login("instr", "instr");
84            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
85            $this->verifyNoErrors();
86            // On clique sur le lien "Mes encours" dans le menu
87            $this->byLinkText("Mes Encours")->click();
88            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
89            $this->verifyNoErrors();
90            // On clique sur le lien "AZ0130551200001P0" dans le tableau
91            $this->byLinkText("AZ 013055 12 00001P0")->click();
92            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
93            $this->verifyNoErrors();
94            // On vérifie que le breadcrumb est correct
95            $this->assertEquals("AZ 013055 12 00001P0", $this->byId("dossier_libelle")->text());
96            // On clique sur l'onglet "Instruction"
97            $this->byId("instruction")->click();
98            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
99            $this->verifyNoErrors();
100            // On clique sur l'onglet "Consultation(s)"
101            $this->byId("consultation")->click();
102            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
103            $this->verifyNoErrors();
104            // On clique sur l'onglet "Lot(s)"
105            $this->byId("lot")->click();
106            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
107            $this->verifyNoErrors();
108            // On clique sur l'onglet "Message(s)"
109            $this->byId("dossier_message")->click();
110            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
111            $this->verifyNoErrors();
112            // On clique sur l'onglet "Commission(s)"
113            $this->byId("dossier_commission")->click();
114            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
115            $this->verifyNoErrors();
116            // On clique sur l'onglet "Bloc-note"
117            $this->byId("blocnote")->click();
118            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
119            $this->verifyNoErrors();
120            // On clique sur l'onglet "DA"
121            $this->byId("dossier_autorisation")->click();
122            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
123            $this->verifyNoErrors();
124            // On clique sur le lien "AZ0130551200001" dans le tableau
125            $this->byLinkText("AZ 013055 12 00001")->click();
126            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
127            $this->verifyNoErrors();
128            // On vérifie que le breadcrumb est correct
129            $this->assertEquals("AZ 013055 12 00001", $this->byCssSelector(".form-content #dossier_autorisation_libelle")->text());
130            // On clique sur l'onglet "Dossier(s) d'instruction"
131            $this->byId("dossier_instruction")->click();
132            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
133            $this->verifyNoErrors();
134            // On clique sur le lien "AZ0130551200001P0" dans le tableau
135            $this->byLinkText("AZ 013055 12 00001P0")->click();
136            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
137            $this->verifyNoErrors();
138            // On vérifie que le breadcrumb est correct
139            $this->assertEquals("AZ 013055 12 00001P0", $this->byId("dossier_libelle")->text());
140            // On se déconnecte
141            $this->logout();
142        }
143    
144      /**      /**
145       *       *
146       */       */
147      public function testConsultationDeServices() {      public function test_03_informations_du_widget_profil_instructeur() {
148          //          // On se connecte en tant que "instr"
149          $this->login();          $this->login("instr", "instr");
150            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
151            $this->verifyNoErrors();
152            // On vérifie que le titre du widget est correct
153            $this->assertEquals("Infos profil", $this->byCssSelector("#widget_2 .widget-header h3")->text());
154            // On vérifie que le profil est bon
155            $this->assertEquals("INSTRUCTEUR", $this->byCssSelector(".profil-infos-profil span.value")->text());
156            // On vérifie que le nom de l'instructeur affiché est le bon
157            $this->assertEquals("Louis Laurent", $this->byCssSelector(".profil-infos-nom span.value")->text());
158            // On vérifie que la division de l'instructeur affichée est la bonne
159            $this->assertEquals("H", $this->byCssSelector(".profil-infos-division span.value")->text());
160            // On se déconnecte
161            $this->byLinkText("Déconnexion")->click();
162            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
163            $this->verifyNoErrors();
164            // On se connecte en tant que "instr"
165            $this->login("instr1", "instr");
166            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
167            $this->verifyNoErrors();
168            // On vérifie que le titre du widget est correct
169            $this->assertEquals("Infos profil", $this->byCssSelector("#widget_2 .widget-header h3")->text());
170            // On vérifie que le profil est bon
171            $this->assertEquals("INSTRUCTEUR", $this->byCssSelector(".profil-infos-profil span.value")->text());
172            // On vérifie que le nom de l'instructeur affiché est le bon
173            $this->assertEquals("Martine Nadeau", $this->byCssSelector(".profil-infos-nom span.value")->text());
174            // On vérifie que la division de l'instructeur affichée est la bonne
175            $this->assertEquals("H", $this->byCssSelector(".profil-infos-division span.value")->text());
176            // On se déconnecte
177            $this->byLinkText("Déconnexion")->click();
178            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
179            $this->verifyNoErrors();
180            // On se connecte en tant que "instr"
181            $this->login("instr2", "instr");
182            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
183            $this->verifyNoErrors();
184            // On vérifie que le titre du widget est correct
185            $this->assertEquals("Infos profil", $this->byCssSelector("#widget_2 .widget-header h3")->text());
186            // On vérifie que le profil est bon
187            $this->assertEquals("INSTRUCTEUR", $this->byCssSelector(".profil-infos-profil span.value")->text());
188            // On vérifie que le nom de l'instructeur affiché est le bon
189            $this->assertEquals("Roland Richard", $this->byCssSelector(".profil-infos-nom span.value")->text());
190            // On vérifie que la division de l'instructeur affichée est la bonne
191            $this->assertEquals("J", $this->byCssSelector(".profil-infos-division span.value")->text());
192            // On se déconnecte
193            $this->logout();
194        }
195    
196          $this->clickAndWait("link=mes encours");      /**
197          // Accès au dossier en visualisation       * Ajout d'instructions par l'instructeur sur le dossier DP0130551200001P0
198          $this->clickAndWait("link=AZ0130551200001P0");       * Modification d'un événement
199          $this->verifyNoDatabaseError();       */
200          // Accès à l'onglet des consultations      public function test_04_ajout_instructions_par_instructeur() {
         $this->click("id=consultation");  
         $this->setSpeed('120');  
         $this->verifyNoDatabaseError();  
   
         for($i = 0; $i < 2; $i++) {  
             //// Ajout d'une simple consultation  
             // On clique sur le bouton ajout  
             $this->click("//div[@id='sousform-consultation']/table/thead/tr/th/a/span");  
             $this->verifyNoDatabaseError();  
             // On sélectionne le service  
             $this->select("id=service", "label=59.01 Direction de l'Eau et de l'Assainissement");  
             // On valide le formulaire  
             $this->click("//input[@value='Ajouter']");  
             $this->verifyNoDatabaseError();  
             //  
             $this->verifyTextPresent("Vos modifications ont bien été enregistrées.");  
             // On clique sur le bouton retour  
             $this->click("css=form[name=\"f2\"] > div.formControls > a.retour");  
         }  
201                    
202          //// Ajout de plusieurs consultations          // On se connecte en tant que "admin"
203          // On clique sur le bouton ajout multiple          $this->login("admin", "admin");
204          $this->click("//div[@id='sousform-consultation']/table/thead/tr/th/a[2]/span");          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
205          $this->verifyNoDatabaseError();          $this->verifyNoErrors();
206          // On sélectionne trois servcies          // On clique sur le lien "Paramétrage Dossiers" dans le menu
207          $this->click("id=t10_572_0_");          $this->byLinkText("Paramétrage Dossiers")->click();
208          $this->click("id=t10_575_0_");          // On clique sur le sousmenu "Événement"
209          $this->click("id=t10_584_0_");          $this->byLinkText("Événement")->click();
210          // On les ajoute à la sélection          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
211          $this->click("id=add-ser-them");          $this->verifyNoErrors();
212            // On remplis le champs de recherche simple
213            $this->byCssSelector("input[name='recherche']")->value('CDEC');
214            // On clique sur le bouton recherche
215            $this->byCssSelector(".ui-button")->click();
216            // On clique sur le résultat
217            $this->byLinkText("CDEC majoration appel decision")->click();
218            // On clique sur le bouton "Modifier"
219            $this->byId('action-form-evenement-modifier')->click();
220            // On modifie le champ restriction avec des données erronées
221            $this->byId('restriction')->clear();
222            $this->byId('restriction')->value("date_evenement >= champ_errone + 1");
223            // On valide la modification
224            $this->byCssSelector("input[value='Modifier']")->click();
225            // On vérifie le message de validation
226            $this->assertRegExp("/^[\s\S]*Le champ champ_errone n'est pas utilisable pour le champ restriction[\s\S]*$/",$this->byCssSelector("#tabs-1 .message")->text());
227            // On modifie le champ restriction pour qu'il retourne une erreur au
228            // moment de l'ajout de l'instruction
229            $this->byId('restriction')->clear();
230            $this->byId('restriction')->value("date_evenement >= date_evenement + 1");
231            // On valide la modification
232            $this->byCssSelector("input[value='Modifier']")->click();
233            // On vérifie le message de validation
234            $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#tabs-1 .message")->text());
235            // On se déconnecte
236            $this->deconnect();
237            // On se connecte en tant que "instr"
238            $this->login("instr", "instr");
239            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
240            $this->verifyNoErrors();
241            // On clique sur le lien "Mes encours" dans le menu
242            $this->byLinkText("Mes Encours")->click();
243            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
244            $this->verifyNoErrors();
245            sleep(1);
246            // On clique sur le lien "AZ0130551200001P0" dans le tableau
247            $this->byLinkText("DP 013055 12 00001P0")->click();
248            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
249            $this->verifyNoErrors();
250            // On clique sur l'onglet "Instruction"
251            $this->byId("instruction")->click();
252            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
253            $this->verifyNoErrors();
254            //Ajout d'une instruction simple
255            // On clique sur le lien d'ajout dans le tableau
256            $this->byCssSelector(".actions-max-1 a")->click();
257            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
258            $this->verifyNoErrors();
259            //On choisi un événement
260            $this->select($this->byId("evenement"))->selectOptionByValue("22");
261            //On valide le formulaire
262            $this->byXPath("//input[@value='Ajouter']")->click();
263            // On vérifie le mesage d'erreur
264            $this->assertRegExp('/.*Restriction non valide*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
265            // On se déconnecte
266            $this->deconnect();
267            // On se connecte en tant que "admin"
268            $this->login("admin", "admin");
269            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
270            $this->verifyNoErrors();
271            // On clique sur le lien "Paramétrage Dossiers" dans le menu
272            $this->byLinkText("Paramétrage Dossiers")->click();
273            // On clique sur le sousmenu "Événement"
274            $this->byLinkText("Événement")->click();
275            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
276            $this->verifyNoErrors();
277            // On remplis le champs de recherche simple
278            $this->byCssSelector("input[name='recherche']")->value('CDEC');
279            // On clique sur le bouton recherche
280            $this->byCssSelector(".ui-button")->click();
281            // On clique sur le résultat
282            $this->byLinkText("CDEC majoration appel decision")->click();
283            // On clique sur le bouton "Modifier"
284            $this->byId('action-form-evenement-modifier')->click();
285            // On modifie le champ restriction pour qu'il ne retourne pas d'erreur
286            // au moment de l'ajout de l'instruction
287            $this->byId('restriction')->clear();
288            $this->byId('restriction')->value("date_evenement <= date_evenement + 1");
289            // On valide la modification
290            $this->byCssSelector("input[value='Modifier']")->click();
291            // On vérifie le message de validation
292            $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#tabs-1 .message")->text());
293            // On se déconnecte
294            $this->deconnect();
295            // On se connecte en tant que "instr"
296            $this->login("instr", "instr");
297            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
298            $this->verifyNoErrors();
299            // On clique sur le lien "Mes encours" dans le menu
300            $this->byLinkText("Mes Encours")->click();
301            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
302            $this->verifyNoErrors();
303            sleep(1);
304            // On clique sur le lien "AZ0130551200001P0" dans le tableau
305            $this->byLinkText("DP 013055 12 00001P0")->click();
306            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
307            $this->verifyNoErrors();
308            // On clique sur l'onglet "Instruction"
309            $this->byId("instruction")->click();
310            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
311            $this->verifyNoErrors();
312            //Ajout d'une instruction simple
313            // On clique sur le lien d'ajout dans le tableau
314            $this->byCssSelector(".actions-max-1 a")->click();
315            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
316            $this->verifyNoErrors();
317            //On choisi un événement
318            $this->select($this->byId("evenement"))->selectOptionByValue("22");
319            //On valide le formulaire
320            $this->byXPath("//input[@value='Ajouter']")->click();
321            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
322            $this->verifyNoErrors();
323            sleep(1);
324            $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
325            //On retourne sur le tableau d'instructions
326            $this->byCssSelector("#sousform-instruction .retour")->click();
327            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
328            $this->verifyNoErrors();
329            //On affiche l'instruction
330            $this->byLinkText("CDEC majoration appel decision")->click();
331            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
332            $this->verifyNoErrors();
333            //On vérifie que certains champs n'apparaissent pas
334            $this->assertFalse($this->byId("date_envoi_controle_legalite")->displayed());
335            $this->assertFalse($this->byId("date_retour_controle_legalite")->displayed());
336            //On retourne sur le tableau d'instructions
337            $this->byCssSelector("#sousform-instruction .retour")->click();
338            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
339            $this->verifyNoErrors();
340            //Ajout d'une instruction de type arrêté        
341            // On clique sur le lien d'ajout dans le tableau
342            $this->byCssSelector(".actions-max-1 a")->click();
343            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
344            $this->verifyNoErrors();
345            //On choisi l'événement "accepter un dossier sans réserve [acceptation]"
346            $this->select($this->byId("evenement"))->selectOptionByValue("81");
347            // On clique sur la bible
348            $this->byLinkText('bible')->click();
349            // On vérifie qu'il y est les enregistrments "V56" et "V64"
350            $this->assertRegExp('/^[\s\S]*V56[\s\S]*$/',
351                $this->byCssSelector("#tab-bible")->text());
352            $this->assertRegExp('/^[\s\S]*V64[\s\S]*$/',
353                $this->byCssSelector("#tab-bible")->text());
354            // On choisit plusieurs éléments
355            $this->byId('checkbox0')->click();
356            $this->byId('checkbox1')->click();
357          // On valide le formulaire          // On valide le formulaire
358          $this->click("id=button_val");          $this->byXPath("//input[@value='Valider']")->click();
359          $this->verifyNoDatabaseError();          // On vérifie le contenu du champ "complément"
360          //          $this->assertRegExp('/^[\s\S]*Vu l\'avis favorable de l\'Architecte des Bâtiments de France en date du[\s\S]*$/', $this->byCssSelector("#complement")->text());
361          $this->verifyTextPresent("3 service(s) sélectionné(s) dont 0 consultation(s) papier.");          $this->assertRegExp('/^[\s\S]*Vu l\'avis favorable avec prescriptions de la Direction Régionale des Affaires Culturelles en date du[\s\S]*$/', $this->byCssSelector("#complement")->text());
362                    // On valide le formulaire
363          // On vérifie que nous avons bien 5 consultations affichées          $this->byXPath("//input[@value='Ajouter']")->click();
364          $this->verifyTextPresent("1 - 5 enregistrement(s) sur 5");          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
365            $this->verifyNoErrors();
366            sleep(1);
367            $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
368            //On retourne sur le tableau d'instructions
369            $this->byCssSelector("#sousform-instruction .retour")->click();
370            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
371            $this->verifyNoErrors();
372            //On affiche l'instruction
373            $this->byLinkText("accepter un dossier sans réserve")->click();
374            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
375            $this->verifyNoErrors();
376            //On vérifie que certains champs apparaissent
377            $this->assertTrue($this->byClassName("libelle-date_envoi_controle_legalite")->displayed());
378            $this->assertTrue($this->byClassName("libelle-date_envoi_controle_legalite")->displayed());
379            // On se déconnecte
380            $this->logout();
381        }
382    
383          //      /**
384         * Test le formulaire de la demande de type qui possède des select filtrés
385         */
386        public function test_05_ajout_lot() {
387            // On se connecte en tant que "instr"
388            $this->login("instr", "instr");
389            // On clique sur le lien "Mes encours" dans le menu
390            $this->byLinkText("Mes Encours")->click();
391            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
392            $this->verifyNoErrors();
393            // On clique sur le lien "AZ0130551200001P0" dans le tableau
394            $this->byLinkText("AZ 013055 12 00001P0")->click();
395            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
396            $this->verifyNoErrors();
397            // On clique sur l'onglet "Lot(s)"
398            $this->byId("lot")->click();
399            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
400            $this->verifyNoErrors();
401            // On clique sur le bouton d'ajout de lots
402            $this->byXPath("//div[@id='sousform-lot']/table/thead/tr/th/a/span")->click();
403            // Vérification des champs obligatoires
404            $this->byXPath("//input[@value='Ajouter']")->click();
405            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
406            $this->verifyNoErrors();
407            // On vérifie que le message de champ vide soit affiché
408            $this->assertRegExp('/.*SAISIE NON ENREGISTRÉE.*/', $this->byCssSelector("#sousform-lot .message .text")->text());
409            // Insertion d'un lot
410            $this->byId("libelle")->value("Lot n°1");
411            $this->byXPath("//input[@value='Ajouter']")->click();
412            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
413            $this->verifyNoErrors();
414            sleep(1);
415            // On retourne sur le tableau listant les lots
416            $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();
417            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
418            $this->verifyNoErrors();
419            // On clique sur le bouton d'ajout de lots
420            $this->byXPath("//div[@id='sousform-lot']/table/thead/tr/th/a/span")->click();
421            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
422            $this->verifyNoErrors();
423            // Insertion d'un second lot
424            $this->byId("libelle")->value("Lot n°2");
425            $this->byXPath("//input[@value='Ajouter']")->click();
426            sleep(1);
427            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
428            $this->verifyNoErrors();
429            // On retourne sur le tableau listant les lots
430            $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();
431            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
432            $this->verifyNoErrors();
433            // On se déconnecte
434          $this->logout();          $this->logout();
435      }      }
436    
437        /**
438         * Test du lien automatique entre choix autorité compétente dans DI et
439         * évènement d'instruction à créer
440         */
441        public function test_06_modification_autorite_competente() {
442            // On se connecte en tant que "instr"
443            $this->login("instr", "instr");
444            // On clique sur le lien "Mes encours" dans le menu
445            $this->byLinkText("Mes Encours")->click();
446            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
447            $this->verifyNoErrors();
448            // On clique sur le lien "AZ0130551200001P0" dans le tableau
449            $this->byLinkText("AZ 013055 12 00001P0")->click();
450            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
451            $this->verifyNoErrors();
452            // On clique sur l'onglet "Instruction"
453            $this->byId("instruction")->click();
454            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
455            $this->verifyNoErrors();
456            // On clique sur le bouton d'ajout de lots
457            $this->byXPath("//div[@id='sousform-instruction']/table/thead/tr/th/a/span")->click();
458            // Vérification des champs obligatoires
459            $this->byXPath("//input[@value='Ajouter']")->click();
460            sleep(1);
461            //On choisi un événement
462            $this->select($this->byId("evenement"))->selectOptionByValue("94");
463            // Validation du formulaire
464            $this->byXPath("//input[@value='Ajouter']")->click();
465            sleep(1);
466            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
467            $this->verifyNoErrors();
468            $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
469            $this->byCssSelector("form[name=\"f2\"] > a.retour")->click();
470            // Retour à l'onglet principal
471            $this->byId("main")->click();
472            $this->refresh();
473            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
474            $this->verifyNoErrors();
475            // On verifie que l'autorité compétente à changée.
476            $this->assertRegExp('/.*Commune pour état*/', $this->byCssSelector("#tabs-1 #autorite_competente")->text());
477            // On se déconnecte
478            $this->deconnect();
479            // On se connecte en tant que "admin"
480            $this->login("admin", "admin");
481            sleep(1);
482            $this->byLinkText("Instruction")->click();
483            // On clique sur le lien "Recherche" dans le menu
484            $this->byLinkText("Recherche")->click();
485            // On clique sur le lien "AZ0130551200001P0" dans le tableau
486            $this->byLinkText("AZ 013055 12 00001P0")->click();
487            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
488            $this->verifyNoErrors();
489            // On verifie que l'autorité compétente à changée.
490            $this->assertRegExp('/.*Commune pour état*/', $this->byCssSelector("#tabs-1 #autorite_competente")->text());
491            // On clique sur l'onglet "Instruction"
492            $this->byId("instruction")->click();
493            $this->byLinkText("Changer l'autorité compétente 'commune état'")->click();
494            sleep(1);
495            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
496            $this->verifyNoErrors();
497            $this->byXPath("(//div[@id='portlet-actions']/ul/li[2]/a/span)[2]")->click();
498            // On supprime l'element et on verifie le retour de l'autorité "commune"
499            $this->byCssSelector("form[name=\"f2\"] > a.retour")->click();
500            // Retour à l'onglet principal
501            $this->byId("main")->click();
502            $this->refresh();
503            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
504            $this->verifyNoErrors();
505            // On verifie que l'autorité compétente à changée.
506            $this->assertRegExp('/.*Commune*/', $this->byCssSelector("#tabs-1 #autorite_competente")->text());
507            // On se déconnecte
508            $this->logout();
509        }
510    
511        /**
512         * Test de l'ajout de données techniques au dossier
513         */
514        public function test_07_edition_donnees_techniques() {
515            // On se connecte en tant que "instr"
516            $this->login("admin", "admin");
517            sleep(1);
518            // Ouverture du menu de paramétrage des dossiers
519            $this->byLinkText("Paramétrage Dossiers")->click();
520            // Ouverture du menu des cerfa
521            $this->byLinkText("Cerfa")->click();
522            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
523            $this->verifyNoErrors();
524            // Ouverture d'un cerfa
525            $this->byLinkText("cerfa de test n°1")->click();
526            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
527            $this->verifyNoErrors();
528            // Modification du cerfa affiché
529            $this->byXPath("//div[@id='portlet-actions']/ul/li/a/span")->click();
530            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
531            $this->verifyNoErrors();
532            // Ajout de champs au formulaire des données techniques
533            $this->byXPath("//div[@id='form-content']/div[2]/fieldset/legend")->click();
534            $this->byId("terr_juri_titul")->click();
535            $this->byId("terr_juri_lot")->click();
536            $this->byId("terr_juri_zac")->click();
537            $this->byId("terr_juri_afu")->click();
538            $this->byId("terr_juri_pup")->click();
539            $this->byId("terr_juri_oin")->click();
540            $this->byId("terr_juri_desc")->click();
541            // Validation du formulaire
542            $this->byXPath("//input[@value='Modifier']")->click();
543            // Vérification des erreurs
544            $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector(".message .text")->text());
545            $this->byLinkText("Retour")->click();
546            // On se déconnecte
547            $this->deconnect();
548            // On se connecte en tant que "instr"
549            $this->login("instr", "instr");
550            // On clique sur le lien "Mes encours" dans le menu
551            $this->byLinkText("Mes Encours")->click();
552            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
553            $this->verifyNoErrors();
554            // On clique sur le lien "AZ0130551200001P0" dans le tableau
555            $this->byLinkText("AZ 013055 12 00001P0")->click();
556            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
557            $this->verifyNoErrors();
558            // On click sur le lien "Données techniques"
559            $this->byXPath("//div[@id='portlet-actions']/ul/li[2]/a/span")->click();
560            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
561            $this->verifyNoErrors();
562            sleep(1);
563            // Modification des données techniques
564            $this->byCssSelector("#sousform-donnees_techniques .edit-16")->click();
565            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
566            $this->verifyNoErrors();
567            sleep(1);
568            $this->assertRegExp('/^[\s\S]*Terrain[\s\S]*$/', $this->byCssSelector("#sformulaire #form-content legend")->text());
569            // Validation du formulaire
570            $this->byXPath("//input[@value='Modifier']")->click();
571            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
572            $this->verifyNoErrors();
573            $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-donnees_techniques .message .text")->text());
574            $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();
575            sleep(1);
576            // On se déconnecte
577            $this->logout();
578    
579        }
580    
581        /**
582         * Test un événement d'instruction qui a un événement "retour"
583         */
584        public function test_08_evenement_instruction_retour() {
585    
586            // Instancie la timezone
587            date_default_timezone_set('Europe/Paris');
588    
589            // On se connecte à l'application en tant qu'administrateur
590            $this->login("admin", "admin");
591            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
592            $this->verifyNoErrors();
593    
594            /** On ajoute une action "retour signature" **/
595            // On clique sur le menu "Paramétrage Dossiers"
596            $this->byLinkText("Paramétrage Dossiers")->click();
597            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
598            $this->verifyNoErrors();
599            // On clique sur le sous-menu "Action"
600            $this->byLinkText("Action")->click();
601            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
602            $this->verifyNoErrors();
603            // On clique sur le bouton "ajouter"
604            $this->byId("action-tab-action-corner-ajouter")->click();
605            // On remplis les champs
606            $this->byId("action")->value("retour signature");
607            $this->byId("libelle")->value("retour signature");
608            $this->byId("regle_etat")->value("etat");
609            $this->byId("regle_date_validite")->value("date_retour_signature + duree_validite");
610            // On valide le formulaire
611            $this->byXPath("//input[@value='Ajouter']")->click();
612            // On vérifie le message de validation
613            $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text());
614            /** Fin **/
615    
616            /** On ajoute un événement "retour signature" **/
617            // On clique sur le sous-menu "Événement"
618            $this->byLinkText("Événement")->click();
619            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
620            $this->verifyNoErrors();
621            // On clique sur le bouton "ajouter"
622            $this->byId("action-tab-evenement-corner-ajouter")->click();
623            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
624            $this->verifyNoErrors();
625            // On remplis les champs
626            $this->byId("libelle")->value("retour signature");
627            $this->byId("retour")->click();
628            $this->select($this->byName("etats_depuis_lequel_l_evenement_est_disponible[]"))->clearSelectedOptions();;
629            $this->select($this->byName("etats_depuis_lequel_l_evenement_est_disponible[]"))->selectOptionByLabel("dossier accepter");
630            $this->select($this->byName("dossier_instruction_type[]"))->clearSelectedOptions();
631            $this->select($this->byName("dossier_instruction_type[]"))->selectOptionByLabel("PCI - P - Initial");
632            $this->select($this->byId("action"))->selectOptionByLabel("retour signature");
633            // On valide le formulaire
634            $this->byXPath("//input[@value='Ajouter']")->click();
635            // On vérifie le message de validation
636            $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text());
637            // On clique sur "Retour"
638            $this->byLinkText("Retour")->click();
639            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
640            $this->verifyNoErrors();
641            // On recherche l'événement "test_princ"
642            $this->byCssSelector("input[name='recherche']")->value('accepter un dossier sans réserve');
643            // On clique sur le bouton recherche
644            $this->byCssSelector(".ui-button")->click();
645            // On clique sur le résultat
646            $this->byLinkText("accepter un dossier sans réserve")->click();
647            // On clique sur le bouton "Modifier"
648            $this->byId('action-form-evenement-modifier')->click();
649            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
650            $this->verifyNoErrors();
651            // On sélectionne l'événement "retour" dans "evenement_retour_signature"
652            $this->select($this->byId("evenement_retour_signature"))->selectOptionByLabel("retour signature");
653            // On valide le formulaire
654            $this->byXPath("//input[@value='Modifier']")->click();
655            // On vérifie le message de validation
656            $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text());
657            /** Fin **/
658    
659            /** On ajoute une durée de validité au type de DA PCI **/
660            // On clique sur le sous-menu "Type DA Détaillé"
661            $this->byLinkText("Type DA Détaillé")->click();
662            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
663            $this->verifyNoErrors();
664            // On clique sur le PCI
665            $this->byLinkText("PCI")->click();
666            // On clique sur le bouton "modifier"
667            $this->byId("action-form-dossier_autorisation_type_detaille-modifier")->click();
668            // On modifie la durée de validité
669            $this->byId("duree_validite_parametrage")->clear();
670            $this->byId("duree_validite_parametrage")->value("5");
671            // On valide le formulaire
672            $this->byXPath("//input[@value='Modifier']")->click();
673            // On vérifie le message de validation
674            $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text());
675            /** Fin **/
676    
677            /** On instancie une nouvelle demande initial PCI **/
678            // On clique sur le menu "Guichet Unique"
679            $this->byLinkText("Guichet Unique")->click();
680            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
681            $this->verifyNoErrors();
682            // On clique sur le sous-menu "Nouveau Dossier"
683            $this->byLinkText("Nouveau Dossier")->click();
684            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
685            $this->verifyNoErrors();
686            // On selectionne le type de dossier d'autorisation détaillé "Permis de construire pour une maison individuelle et / ou ses annexes"
687            $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel("Permis de construire pour une maison individuelle et / ou ses annexes");
688            // On selectionne le type de demande "Dépôt Initial"
689            $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
690            // On clique pour ajouter un pétitionnaire principale
691            $this->byId("add_petitionnaire_principal")->click();
692            // On remplit le champ
693            $this->byId("particulier_nom")->value("DURAND");
694            // On remplit le champ
695            $this->byId("particulier_prenom")->value("MICKAEL");
696            // On remplit le champ
697            $this->byId("particulier_date_naissance")->value("03/01/1956");
698            // On remplit le champ
699            $this->byId("particulier_commune_naissance")->value("LILLE");
700            // On remplit le champ
701            $this->byId("particulier_departement_naissance")->value("NORD");
702            // On remplit le champ
703            $this->byId("numero")->value("12");
704            // On remplit le champ
705            $this->byId("voie")->value("RUE DE LA LOI");
706            // On remplit le champ
707            $this->byId("complement")->value("APPT 12");
708            // On remplit le champ
709            $this->byId("localite")->value("MARSEILLE");
710            // On remplit le champ
711            $this->byId("code_postal")->value("13012");
712            // On remplit le champ
713            $this->byId("telephone_fixe")->value("0404040404");
714            // On clique sur ajouter
715            $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
716            // On vérifie le message
717            $this->assertContains("Vos modifications ont bien été enregistrées", $this->byCssSelector("#sousform-petitionnaire .message")->text());
718            // On clique sur le bouton retour
719            $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
720            // On vérifie que le text est présent
721            $this->assertContains("DURAND MICKAEL",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
722            // On clique sur ajouter
723            $this->byXPath("//input[@value='Ajouter']")->click();
724            // On vérifie le message
725            $this->assertContains("Création du dossier d'autorisation n°",$this->byCssSelector(".message .text")->text());
726            // Récupération du numéro de dossier
727            preg_match('/(PC)[0-9 ]*(P0)/', $this->byCssSelector(".message .text")->text(), $dossier);
728            $dossier = $dossier[0];
729            /** Fin **/
730    
731            /** On ajoute une instruction de dossier accepter et on la finalise **/
732            // On clique sur le menu "Instruction"
733            $this->byLinkText("Instruction")->click();
734            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
735            $this->verifyNoErrors();
736            // On clique sur le sous-menu "Recherche"
737            $this->byLinkText("Recherche")->click();
738            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
739            $this->verifyNoErrors();
740            // On clique sur le dossier ""
741            $this->byLinkText($dossier)->click();
742            // On clique sur l'onglet "Instruction"
743            $this->byId("instruction")->click();
744            // On ajoute un événement d'instruction
745            $this->byId("action-soustab-instruction-corner-ajouter")->click();
746            // On sélectionne l'évenement "accepter un dossier sans réserve"
747            $this->select($this->byId("evenement"))->selectOptionByLabel("accepter un dossier sans réserve [acceptation]");
748            // On valide le formulaire
749            $this->byXPath("//input[@value='Ajouter']")->click();
750            // On vérifie le message
751            $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message .text")->text());
752            // On clique sur le bouton "retour"
753            $this->byLinkText("Retour")->click();
754            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
755            $this->verifyNoErrors();
756            // On clique sur l'événement d'instruction "accepter un dossier sans réserve"
757            $this->byLinkText("accepter un dossier sans réserve")->click();
758            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
759            $this->verifyNoErrors();
760            // On valide l'instruction
761            $this->byId("action-sousform-instruction-finalisation")->click();
762            // On vérifie le message de validation
763            $this->assertContains("La finalisation du document s'est effectuée avec succès.",$this->byCssSelector(".message .text")->text());
764            // On clique sur le bouton "Retour"
765            $this->byLinkText("Retour")->click();
766            // On clique sur l'événement "accepter un dossier sans réserve"
767            $this->byLinkText("accepter un dossier sans réserve")->click();sleep(1);
768            // Récupération du numéro d'événement
769            $evenement = $this->byCssSelector("#instruction.field_value")->text();
770            /** Fin **/
771    
772            /** On met à jour la date de retour signature **/
773            // Date de retour signature
774            $date_retour_signature = date("d/m/Y", mktime(0, 0, 0, date("m"), date("d")+5,  date("Y")));
775            // On clique sur le menu "Suivi"
776            $this->byLinkText("Suivi")->click();
777            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
778            $this->verifyNoErrors();
779            // On clique sur le sous-menu "Mise À Jour Des Dates"
780            $this->byLinkText("Mise À Jour Des Dates")->click();
781            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
782            $this->verifyNoErrors();
783            // On sélectionne "date de retour de signature + Envoi contrôle légalite"
784            $this->select($this->byId("type_mise_a_jour"))->selectOptionByLabel("date de retour de signature + Envoi contrôle légalite");
785            // On remplit à la date du jour + 5 jours
786            $this->byId("date")->value($date_retour_signature);
787            // On remplit le code barres de l'instruction
788            $this->byId("code_barres")->value("11".str_pad($evenement, 10, "0", STR_PAD_LEFT));
789            // On clique sur Valider
790            $this->byCssSelector("#suivi_mise_a_jour_des_dates_form div.formControls input.om-button")->click();sleep(1);
791            // On vérifie la synthèse avec le numéro du dossier et l'événement
792            $this->assertContains($dossier, $this->byId("dossier_libelle")->text());
793            $this->assertContains("accepter un dossier sans réserve", $this->byId("evenement")->text());
794            // On clique sur Valider
795            $this->byCssSelector("#suivi_mise_a_jour_des_dates_form div.formControls input.om-button")->click();
796            // On vérifie le message de validation
797            $this->assertContains("Saisie enregistrée",$this->byCssSelector(".message .text")->text());
798            /** Fin **/
799    
800            /** Vérifie l'instruction "retour" et le DI **/
801            // Date de validité
802            $date_validite = date("d/m/Y", mktime(0, 0, 0, date("m")+5, date("d")+5,  date("Y")));
803            // On clique sur le menu "Instruction"
804            $this->byLinkText("Instruction")->click();
805            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
806            $this->verifyNoErrors();
807            // On clique sur le sous-menu "Recherche"
808            $this->byLinkText("Recherche")->click();
809            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
810            $this->verifyNoErrors();
811            // On clique sur le dossier ""
812            $this->byLinkText($dossier)->click();
813            // On vérifie la date de validité mise à jour par l'action
814            $this->assertContains($date_validite, $this->byId("date_validite")->text());
815            // On clique sur l'onglet "Instruction"
816            $this->byId("instruction")->click();
817            // On clique sur l'instruction "retour signature"
818            $this->byLinkText("retour signature")->click();
819            // On contrôle la date de retour signature
820            $this->assertContains($date_retour_signature, $this->byId("date_retour_signature")->text());
821            /** Fin **/
822    
823            // On se déconnecte
824            $this->logout();
825    
826        }
827  }  }
828    
829  ?>  ?>

Legend:
Removed from v.1714  
changed lines
  Added in v.2564

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26