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

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

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

revision 1677 by fmichon, Mon Apr 15 12:30:11 2013 UTC revision 2631 by vpihour, Fri Dec 20 18:44:15 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 {
16    
17      private function login() {      // Liste des utilisateurs
18          // on commence par se connecter      var $listUtlisateurs = array(
19          $this->connect("instr", "instr");              array(
20          // On doit être connecté                  "login" => "instr",
21          $this->assertTrue($this->isTextPresent("Votre session est maintenant ouverte."));                  "mdp" => "instr"
22      }              ),
23                array(
24      private function logout() {                  "login" => "adminfonct",
25          // puis on se déconnecte                  "mdp" => "adminfonct"
26          $this->deconnect();              ),
27          // 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"));  
     }  
28    
29      /**      /**
30       * Ce test vise uniquement à vérifier que les écrans correspondant à chaque       * Ce test vise uniquement à vérifier que les écrans correspondant à chaque
31       * entrée de menu ne génère pas une erreur de base de données       * entrée de menu ne génère pas une erreur de base de données
32       */       */
33      public function testGeneral() {      // Fonction privé
34          //      private function ouvertureMenu($utilisateur) {
35          $this->login();          // On se connecte
36            $this->login($utilisateur["login"], $utilisateur["mdp"]);
37          //          // Ouvre le menu
38          $this->clickAndWait("link=mes encours");          $this->openMenu("Instruction", $utilisateur);
39          $this->verifyTextPresent("DI");          // On vérifie le menu ""
40          $this->verifyNoDatabaseError();          $this->byLinkText("Mes Encours")->click();
41          //          $this->assertContains("Instruction > Dossiers D'instruction",
42          $this->clickAndWait("link=tous les encours");              $this->byId("title")->text());
43          $this->verifyTextPresent("DI");          $this->verifyNoErrors();
44          $this->verifyNoDatabaseError();          // On vérifie le menu ""
45          //          $this->byLinkText("Tous Les Encours")->click();
46          $this->clickAndWait("link=mes clôturés");          $this->assertContains("Instruction > Dossiers D'instruction",
47          $this->verifyTextPresent("DI");              $this->byId("title")->text());
48          $this->verifyNoDatabaseError();          $this->verifyNoErrors();
49          //          // On vérifie le menu ""
50          $this->clickAndWait("link=tous les clôturés");          $this->byLinkText("Mes Clôturés")->click();
51          $this->verifyTextPresent("DI");          $this->assertContains("Instruction > Dossiers D'instruction",
52          $this->verifyNoDatabaseError();              $this->byId("title")->text());
53          //          $this->verifyNoErrors();
54          $this->clickAndWait("link=recherche");          // On vérifie le menu ""
55          $this->verifyTextPresent("DI");          $this->byLinkText("Tous Les Clôturés")->click();
56          $this->verifyNoDatabaseError();          $this->assertContains("Instruction > Dossiers D'instruction",
57          //              $this->byId("title")->text());
58          $this->clickAndWait("link=dossiers a qualifier");          $this->verifyNoErrors();
59          $this->verifyTextPresent("dossier");          // On vérifie le menu ""
60          $this->verifyNoDatabaseError();          $this->byLinkText("Recherche")->click();
61          //          $this->assertContains("Instruction > Dossiers D'instruction",
62          $this->clickAndWait("link=Mes retours");              $this->byId("title")->text());
63          $this->verifyTextPresent("dossier");          $this->verifyNoErrors();
64          $this->verifyNoDatabaseError();          // On vérifie le menu ""
65          //          $this->byLinkText("Dossiers À Qualifier")->click();
66          $this->clickAndWait("link=Tous les retours");          $this->assertContains("Instruction > Qualification > Dossiers À Qualifier",
67          $this->verifyTextPresent("dossier");              $this->byId("title")->text());
68          $this->verifyNoDatabaseError();          $this->verifyNoErrors();
69          //          // On vérifie le menu ""
70          $this->clickAndWait("link=Mes messages");          $this->byLinkText("Architecte Fréquent")->click();
71          $this->verifyTextPresent("dossier");          $this->assertContains("Instruction > Qualification > Architecte Fréquent",
72          $this->verifyNoDatabaseError();              $this->byId("title")->text());
73          //          $this->verifyNoErrors();
74          $this->clickAndWait("link=Tous les messages");          // On vérifie le menu ""
75          $this->verifyTextPresent("dossier");          $this->byLinkText("Mes Retours")->click();
76          $this->verifyNoDatabaseError();          $this->assertContains("Instruction > Consultations > Mes Retours",
77          //              $this->byId("title")->text());
78          $this->clickAndWait("css=a.commission_mes_retours-16");          $this->verifyNoErrors();
79          $this->verifyTextPresent("dossier");          // On vérifie le menu ""
80          $this->verifyNoDatabaseError();          $this->byLinkText("Tous Les Retours")->click();
81          //          $this->assertContains("Instruction > Consultations > Tous Les Retours",
82          $this->clickAndWait("css=a.commission_tous_retours-16");              $this->byId("title")->text());
83          $this->verifyTextPresent("dossier");          $this->verifyNoErrors();
84          $this->verifyNoDatabaseError();          // On vérifie le menu ""
85            $this->byLinkText("Mes Messages")->click();
86          //          $this->assertContains("Instruction > Messages > Mes Messages",
87                $this->byId("title")->text());
88            $this->verifyNoErrors();
89            // On vérifie le menu ""
90            $this->byLinkText("Tous Les Messages")->click();
91            $this->assertContains("Instruction > Messages > Tous Les Messages",
92                $this->byId("title")->text());
93            $this->verifyNoErrors();
94            // On vérifie le menu ""
95            $this->byCssSelector("a.commission_mes_retours-16")->click();
96            $this->assertContains("Instruction > Commissions > Mes Retours",
97                $this->byId("title")->text());
98            $this->verifyNoErrors();
99            // On vérifie le menu ""
100            $this->byCssSelector("a.commission_tous_retours-16")->click();
101            $this->assertContains("Instruction > Commissions > Tous Les Retours",
102                $this->byId("title")->text());
103            $this->verifyNoErrors();
104            // On se déconnecte
105            $this->deconnect();
106        }
107        // Fonction public
108        public function test01OuvertureMenu() {
109            // Récupération des utilisateurs
110            $utilisateurs = $this->listUtlisateurs;
111            // Pour chaque utilisateur on lance le test
112            foreach ($utilisateurs as $utilisateur) {
113                //
114                $this->ouvertureMenu($utilisateur);
115            }
116            // On vérifie la déconnexion
117            $this->verifyDeconnect();
118        }
119        
120        /**
121         *
122         */
123        public function test_02_visualisation_di_et_da_par_l_instructeur_en_charge() {
124            
125            // On se connecte en tant que "instr"
126            $this->login("instr", "instr");
127            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
128            $this->verifyNoErrors();
129            // On clique sur le lien "Mes encours" dans le menu
130            $this->byLinkText("Mes Encours")->click();
131            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
132            $this->verifyNoErrors();
133            // On clique sur le lien "AZ0130551200001P0" dans le tableau
134            $this->byLinkText("AZ 013055 12 00001P0")->click();
135            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
136            $this->verifyNoErrors();
137            // On vérifie que le breadcrumb est correct
138            $this->assertEquals("AZ 013055 12 00001P0", $this->byId("dossier_libelle")->text());
139            // On clique sur l'onglet "Instruction"
140            $this->byId("instruction")->click();
141            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
142            $this->verifyNoErrors();
143            // On clique sur l'onglet "Consultation(s)"
144            $this->byId("consultation")->click();
145            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
146            $this->verifyNoErrors();
147            // On clique sur l'onglet "Lot(s)"
148            $this->byId("lot")->click();
149            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
150            $this->verifyNoErrors();
151            // On clique sur l'onglet "Message(s)"
152            $this->byId("dossier_message")->click();
153            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
154            $this->verifyNoErrors();
155            // On clique sur l'onglet "Commission(s)"
156            $this->byId("dossier_commission")->click();
157            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
158            $this->verifyNoErrors();
159            // On clique sur l'onglet "Bloc-note"
160            $this->byId("blocnote")->click();
161            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
162            $this->verifyNoErrors();
163            // On clique sur l'onglet "DA"
164            $this->byId("dossier_autorisation")->click();
165            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
166            $this->verifyNoErrors();
167            // On clique sur le lien "AZ0130551200001" dans le tableau
168            $this->byLinkText("AZ 013055 12 00001")->click();
169            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
170            $this->verifyNoErrors();
171            // On vérifie que le breadcrumb est correct
172            $this->assertEquals("AZ 013055 12 00001", $this->byCssSelector(".form-content #dossier_autorisation_libelle")->text());
173            // On clique sur l'onglet "Dossier(s) d'instruction"
174            $this->byId("dossier_instruction")->click();
175            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
176            $this->verifyNoErrors();
177            // On clique sur le lien "AZ0130551200001P0" dans le tableau
178            $this->byLinkText("AZ 013055 12 00001P0")->click();
179            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
180            $this->verifyNoErrors();
181            // On vérifie que le breadcrumb est correct
182            $this->assertEquals("AZ 013055 12 00001P0", $this->byId("dossier_libelle")->text());
183            // On se déconnecte
184          $this->logout();          $this->logout();
185      }      }
186    
187      /**      /**
188       *       *
189       */       */
190      public function testConsultationDeServices() {      public function test_03_informations_du_widget_profil_instructeur() {
191          //          // On se connecte en tant que "instr"
192          $this->login();          $this->login("instr", "instr");
193            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
194          $this->clickAndWait("link=mes encours");          $this->verifyNoErrors();
195          // Accès au dossier en visualisation          // On vérifie que le titre du widget est correct
196          $this->clickAndWait("link=AZ0130551200001P0");          $this->assertEquals("Infos profil", $this->byCssSelector("#widget_2 .widget-header h3")->text());
197          $this->verifyNoDatabaseError();          // On vérifie que le profil est bon
198          // Accès à l'onglet des consultations          $this->assertEquals("INSTRUCTEUR", $this->byCssSelector(".profil-infos-profil span.value")->text());
199          $this->click("id=consultation");          // On vérifie que le nom de l'instructeur affiché est le bon
200          $this->setSpeed('120');          $this->assertEquals("Louis Laurent", $this->byCssSelector(".profil-infos-nom span.value")->text());
201          $this->verifyNoDatabaseError();          // On vérifie que la division de l'instructeur affichée est la bonne
202          //// Ajout d'une simple consultation          $this->assertEquals("H", $this->byCssSelector(".profil-infos-division span.value")->text());
203          // On clique sur le bouton ajout          // On se déconnecte
204          $this->click("//div[@id='sousform-consultation']/table/thead/tr/th/a/span");          $this->byLinkText("Déconnexion")->click();
205          $this->verifyNoDatabaseError();          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
206          // On sélectionne le service          $this->verifyNoErrors();
207          $this->select("id=service", "label=1ER Maire 1er Secteur");          // On se connecte en tant que "instr"
208          // On valide le formulaire          $this->login("instr1", "instr");
209          $this->click("//input[@value='Ajouter']");          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
210          $this->verifyNoDatabaseError();          $this->verifyNoErrors();
211          //          // On vérifie que le titre du widget est correct
212          $this->verifyTextPresent("Vos modifications ont bien été enregistrées.");          $this->assertEquals("Infos profil", $this->byCssSelector("#widget_2 .widget-header h3")->text());
213            // On vérifie que le profil est bon
214            $this->assertEquals("INSTRUCTEUR", $this->byCssSelector(".profil-infos-profil span.value")->text());
215            // On vérifie que le nom de l'instructeur affiché est le bon
216            $this->assertEquals("Martine Nadeau", $this->byCssSelector(".profil-infos-nom span.value")->text());
217            // On vérifie que la division de l'instructeur affichée est la bonne
218            $this->assertEquals("H", $this->byCssSelector(".profil-infos-division span.value")->text());
219            // On se déconnecte
220            $this->byLinkText("Déconnexion")->click();
221            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
222            $this->verifyNoErrors();
223            // On se connecte en tant que "instr"
224            $this->login("instr2", "instr");
225            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
226            $this->verifyNoErrors();
227            // On vérifie que le titre du widget est correct
228            $this->assertEquals("Infos profil", $this->byCssSelector("#widget_2 .widget-header h3")->text());
229            // On vérifie que le profil est bon
230            $this->assertEquals("INSTRUCTEUR", $this->byCssSelector(".profil-infos-profil span.value")->text());
231            // On vérifie que le nom de l'instructeur affiché est le bon
232            $this->assertEquals("Roland Richard", $this->byCssSelector(".profil-infos-nom span.value")->text());
233            // On vérifie que la division de l'instructeur affichée est la bonne
234            $this->assertEquals("J", $this->byCssSelector(".profil-infos-division span.value")->text());
235            // On se déconnecte
236            $this->logout();
237        }
238    
239        /**
240         * Ajout d'instructions par l'instructeur sur le dossier DP0130551200001P0
241         * Modification d'un événement
242         */
243        public function test_04_ajout_instructions_par_instructeur() {
244            
245            // On se connecte en tant que "admin"
246            $this->login("admin", "admin");
247            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
248            $this->verifyNoErrors();
249            // On clique sur le lien "Paramétrage Dossiers" dans le menu
250            $this->byLinkText("Paramétrage Dossiers")->click();
251            // On clique sur le sousmenu "Événement"
252            $this->byLinkText("Événement")->click();
253            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
254            $this->verifyNoErrors();
255            // On remplis le champs de recherche simple
256            $this->byCssSelector("input[name='recherche']")->value('CDEC');
257            // On clique sur le bouton recherche
258            $this->byCssSelector(".ui-button")->click();
259            // On clique sur le résultat
260            $this->byLinkText("CDEC majoration appel decision")->click();
261            // On clique sur le bouton "Modifier"
262            $this->byId('action-form-evenement-modifier')->click();
263            // On modifie le champ restriction avec des données erronées
264            $this->byId('restriction')->clear();
265            $this->byId('restriction')->value("date_evenement >= champ_errone + 1");
266            // On valide la modification
267            $this->byCssSelector("input[value='Modifier']")->click();
268            // On vérifie le message de validation
269            $this->assertRegExp("/^[\s\S]*Le champ champ_errone n'est pas utilisable pour le champ restriction[\s\S]*$/",$this->byCssSelector("#tabs-1 .message")->text());
270            // On modifie le champ restriction pour qu'il retourne une erreur au
271            // moment de l'ajout de l'instruction
272            $this->byId('restriction')->clear();
273            $this->byId('restriction')->value("date_evenement >= date_evenement + 1");
274            // On valide la modification
275            $this->byCssSelector("input[value='Modifier']")->click();
276            // On vérifie le message de validation
277            $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#tabs-1 .message")->text());
278            // On se déconnecte
279            $this->deconnect();
280            // On se connecte en tant que "instr"
281            $this->login("instr", "instr");
282            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
283            $this->verifyNoErrors();
284            // On clique sur le lien "Mes encours" dans le menu
285            $this->byLinkText("Mes Encours")->click();
286            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
287            $this->verifyNoErrors();
288            sleep(1);
289            // On clique sur le lien "DP 013055 12 00001P0" dans le tableau
290            $this->byLinkText("DP 013055 12 00001P0")->click();
291            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
292            $this->verifyNoErrors();
293            // On clique sur l'onglet "Instruction"
294            $this->byId("instruction")->click();
295            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
296            $this->verifyNoErrors();
297            //Ajout d'une instruction simple
298            // On clique sur le lien d'ajout dans le tableau
299            $this->byCssSelector(".actions-max-1 a")->click();
300            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
301            $this->verifyNoErrors();
302            //On choisi un événement
303            $this->select($this->byId("evenement"))->selectOptionByValue("22");
304            //On valide le formulaire
305            $this->byXPath("//input[@value='Ajouter']")->click();
306            // On vérifie le mesage d'erreur
307            $this->assertRegExp('/.*Restriction non valide*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
308            // On se déconnecte
309            $this->deconnect();
310            // On se connecte en tant que "admin"
311            $this->login("admin", "admin");
312            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
313            $this->verifyNoErrors();
314            // On clique sur le lien "Paramétrage Dossiers" dans le menu
315            $this->byLinkText("Paramétrage Dossiers")->click();
316            // On clique sur le sousmenu "Événement"
317            $this->byLinkText("Événement")->click();
318            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
319            $this->verifyNoErrors();
320            // On remplis le champs de recherche simple
321            $this->byCssSelector("input[name='recherche']")->value('CDEC');
322            // On clique sur le bouton recherche
323            $this->byCssSelector(".ui-button")->click();
324            // On clique sur le résultat
325            $this->byLinkText("CDEC majoration appel decision")->click();
326            // On clique sur le bouton "Modifier"
327            $this->byId('action-form-evenement-modifier')->click();
328            // On modifie le champ restriction pour qu'il ne retourne pas d'erreur
329            // au moment de l'ajout de l'instruction
330            $this->byId('restriction')->clear();
331            $this->byId('restriction')->value("date_evenement <= date_evenement + 1");
332            // On valide la modification
333            $this->byCssSelector("input[value='Modifier']")->click();
334            // On vérifie le message de validation
335            $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#tabs-1 .message")->text());
336            // On se déconnecte
337            $this->deconnect();
338            // On se connecte en tant que "instr"
339            $this->login("instr", "instr");
340            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
341            $this->verifyNoErrors();
342            // On clique sur le lien "Mes encours" dans le menu
343            $this->byLinkText("Mes Encours")->click();
344            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
345            $this->verifyNoErrors();
346            sleep(1);
347            // On clique sur le lien "DP 013055 12 00001P0" dans le tableau
348            $this->byLinkText("DP 013055 12 00001P0")->click();
349            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
350            $this->verifyNoErrors();
351            // On clique sur l'onglet "Instruction"
352            $this->byId("instruction")->click();
353            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
354            $this->verifyNoErrors();
355            //Ajout d'une instruction simple
356            // On clique sur le lien d'ajout dans le tableau
357            $this->byCssSelector(".actions-max-1 a")->click();
358            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
359            $this->verifyNoErrors();
360            //On choisi un événement
361            $this->select($this->byId("evenement"))->selectOptionByValue("22");
362            //On valide le formulaire
363            $this->byXPath("//input[@value='Ajouter']")->click();
364            // 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("CDEC majoration appel decision")->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 n'apparaissent pas
377            $this->assertFalse($this->byId("date_envoi_controle_legalite")->displayed());
378            $this->assertFalse($this->byId("date_retour_controle_legalite")->displayed());
379            //On retourne sur le tableau d'instructions
380            $this->byCssSelector("#sousform-instruction .retour")->click();
381            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
382            $this->verifyNoErrors();
383            //Ajout d'une instruction de type arrêté        
384            // On clique sur le lien d'ajout dans le tableau
385            $this->byCssSelector(".actions-max-1 a")->click();
386            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
387            $this->verifyNoErrors();
388            //On choisi l'événement "accepter un dossier sans réserve [acceptation]"
389            $this->select($this->byId("evenement"))->selectOptionByValue("81");
390            // On clique sur la bible
391            $this->byLinkText('bible')->click();
392            // On vérifie qu'il y est les enregistrments "V56" et "V64"
393            $this->assertRegExp('/^[\s\S]*V56[\s\S]*$/',
394                $this->byCssSelector("#tab-bible")->text());
395            $this->assertRegExp('/^[\s\S]*V64[\s\S]*$/',
396                $this->byCssSelector("#tab-bible")->text());
397            // On choisit plusieurs éléments
398            $this->byId('checkbox0')->click();
399            $this->byId('checkbox1')->click();
400            // On valide le formulaire
401            $this->byXPath("//input[@value='Valider']")->click();
402            // On vérifie le contenu du champ "complément"
403            $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());
404            $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());
405            // On valide le formulaire
406            $this->byXPath("//input[@value='Ajouter']")->click();
407            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
408            $this->verifyNoErrors();
409            sleep(1);
410            $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
411            //On retourne sur le tableau d'instructions
412            $this->byCssSelector("#sousform-instruction .retour")->click();
413            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
414            $this->verifyNoErrors();
415            //On affiche l'instruction
416            $this->byLinkText("accepter un dossier sans réserve")->click();
417            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
418            $this->verifyNoErrors();
419            //On vérifie que certains champs apparaissent
420            $this->assertTrue($this->byClassName("libelle-date_envoi_controle_legalite")->displayed());
421            $this->assertTrue($this->byClassName("libelle-date_envoi_controle_legalite")->displayed());
422            // On se déconnecte
423            $this->logout();
424        }
425    
426        /**
427         * Test le formulaire de la demande de type qui possède des select filtrés
428         */
429        public function test_05_ajout_lot() {
430            // On se connecte en tant que "instr"
431            $this->login("instr", "instr");
432            // On clique sur le lien "Mes encours" dans le menu
433            $this->byLinkText("Mes Encours")->click();
434            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
435            $this->verifyNoErrors();
436            // On clique sur le lien "AZ0130551200001P0" dans le tableau
437            $this->byLinkText("AZ 013055 12 00001P0")->click();
438            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
439            $this->verifyNoErrors();
440            // On clique sur l'onglet "Lot(s)"
441            $this->byId("lot")->click();
442            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
443            $this->verifyNoErrors();
444            // On clique sur le bouton d'ajout de lots
445            $this->byXPath("//div[@id='sousform-lot']/table/thead/tr/th/a/span")->click();
446            // Vérification des champs obligatoires
447            $this->byXPath("//input[@value='Ajouter']")->click();
448            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
449            $this->verifyNoErrors();
450            // On vérifie que le message de champ vide soit affiché
451            $this->assertRegExp('/.*SAISIE NON ENREGISTRÉE.*/', $this->byCssSelector("#sousform-lot .message .text")->text());
452            // Insertion d'un lot
453            $this->byId("libelle")->value("Lot n°1");
454            $this->byXPath("//input[@value='Ajouter']")->click();
455            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
456            $this->verifyNoErrors();
457            sleep(1);
458            // On retourne sur le tableau listant les lots
459            $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();
460            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
461            $this->verifyNoErrors();
462            // On clique sur le bouton d'ajout de lots
463            $this->byXPath("//div[@id='sousform-lot']/table/thead/tr/th/a/span")->click();
464            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
465            $this->verifyNoErrors();
466            // Insertion d'un second lot
467            $this->byId("libelle")->value("Lot n°2");
468            $this->byXPath("//input[@value='Ajouter']")->click();
469            sleep(1);
470            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
471            $this->verifyNoErrors();
472            // On retourne sur le tableau listant les lots
473            $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();
474            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
475            $this->verifyNoErrors();
476            // On se déconnecte
477            $this->logout();
478        }
479    
480        /**
481         * Test du lien automatique entre choix autorité compétente dans DI et
482         * évènement d'instruction à créer
483         */
484        // Fonction privé
485        private function modification_autorite_competente($utilisateur) {
486            // On se connecte à l'application
487            $this->login($utilisateur["login"], $utilisateur["mdp"]);
488            // Ouvre le menu
489            $this->openMenu("Instruction", $utilisateur);
490            // On clique sur le lien "Mes encours" dans le menu
491            $this->byLinkText("Recherche")->click();
492            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
493            $this->verifyNoErrors();
494            // On clique sur le lien "AZ0130551200001P0" dans le tableau
495            $this->byLinkText("AZ 013055 12 00001P0")->click();
496            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
497            $this->verifyNoErrors();
498            // On clique sur l'onglet "Instruction"
499            $this->byId("instruction")->click();
500            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
501            $this->verifyNoErrors();
502            // On clique sur le bouton d'ajout de lots
503            $this->byXPath("//div[@id='sousform-instruction']/table/thead/tr/th/a/span")->click();
504            // Vérification des champs obligatoires
505            $this->byXPath("//input[@value='Ajouter']")->click();
506            sleep(1);
507            //On choisi un événement
508            $this->select($this->byId("evenement"))->selectOptionByValue("94");
509            // Validation du formulaire
510            $this->byXPath("//input[@value='Ajouter']")->click();
511            sleep(1);
512            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
513            $this->verifyNoErrors();
514            $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
515            $this->byCssSelector("form[name=\"f2\"] > a.retour")->click();
516            // Retour à l'onglet principal
517            $this->byId("main")->click();
518            $this->refresh();
519            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
520            $this->verifyNoErrors();
521            // On verifie que l'autorité compétente à changée.
522            $this->assertRegExp('/.*Commune pour état*/', $this->byCssSelector("#tabs-1 #autorite_competente")->text());
523            // On se déconnecte
524            $this->deconnect();
525    
526            // On se connecte en tant que "admin"
527            $this->login("admin", "admin");
528            sleep(1);
529            $this->byLinkText("Instruction")->click();
530            // On clique sur le lien "Recherche" dans le menu
531            $this->byLinkText("Recherche")->click();
532            // On clique sur le lien "AZ0130551200001P0" dans le tableau
533            $this->byLinkText("AZ 013055 12 00001P0")->click();
534            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
535            $this->verifyNoErrors();
536            // On verifie que l'autorité compétente à changée.
537            $this->assertRegExp('/.*Commune pour état*/', $this->byCssSelector("#tabs-1 #autorite_competente")->text());
538            // On clique sur l'onglet "Instruction"
539            $this->byId("instruction")->click();
540            $this->byLinkText("Changer l'autorité compétente 'commune état'")->click();
541            sleep(1);
542            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
543            $this->verifyNoErrors();
544            $this->byXPath("(//div[@id='portlet-actions']/ul/li[2]/a/span)[2]")->click();
545            // On supprime l'element et on verifie le retour de l'autorité "commune"
546            $this->byCssSelector("form[name=\"f2\"] > a.retour")->click();
547            // Retour à l'onglet principal
548            $this->byId("main")->click();
549            $this->refresh();
550            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
551            $this->verifyNoErrors();
552            // On verifie que l'autorité compétente à changée.
553            $this->assertRegExp('/.*Commune*/', $this->byCssSelector("#tabs-1 #autorite_competente")->text());
554            // On se déconnecte
555            $this->deconnect();
556        }
557        // Fonction public
558        public function test_06_modification_autorite_competente() {
559            // Récupération des utilisateurs
560            $utilisateurs = $this->listUtlisateurs;
561            // Pour chaque utilisateur on lance le test
562            foreach ($utilisateurs as $utilisateur) {
563                //
564                $this->modification_autorite_competente($utilisateur);
565            }
566            // On vérifie la déconnexion
567            $this->verifyDeconnect();
568        }
569    
570        /**
571         * Test de l'ajout de données techniques au dossier
572         */
573        public function test_07_edition_donnees_techniques() {
574            // On se connecte en tant que "instr"
575            $this->login("admin", "admin");
576            sleep(1);
577            // Ouverture du menu de paramétrage des dossiers
578            $this->byLinkText("Paramétrage Dossiers")->click();
579            // Ouverture du menu des cerfa
580            $this->byLinkText("Cerfa")->click();
581            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
582            $this->verifyNoErrors();
583            // Ouverture d'un cerfa
584            $this->byLinkText("cerfa de test n°1")->click();
585            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
586            $this->verifyNoErrors();
587            // Modification du cerfa affiché
588            $this->byXPath("//div[@id='portlet-actions']/ul/li/a/span")->click();
589            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
590            $this->verifyNoErrors();
591            // Ajout de champs au formulaire des données techniques
592            $this->byXPath("//div[@id='form-content']/div[2]/fieldset/legend")->click();
593            $this->byId("terr_juri_titul")->click();
594            $this->byId("terr_juri_lot")->click();
595            $this->byId("terr_juri_zac")->click();
596            $this->byId("terr_juri_afu")->click();
597            $this->byId("terr_juri_pup")->click();
598            $this->byId("terr_juri_oin")->click();
599            $this->byId("terr_juri_desc")->click();
600            // Validation du formulaire
601            $this->byXPath("//input[@value='Modifier']")->click();
602            // Vérification des erreurs
603            $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector(".message .text")->text());
604            $this->byLinkText("Retour")->click();
605            // On se déconnecte
606            $this->deconnect();
607            // On se connecte en tant que "instr"
608            $this->login("instr", "instr");
609            // On clique sur le lien "Mes encours" dans le menu
610            $this->byLinkText("Mes Encours")->click();
611            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
612            $this->verifyNoErrors();
613            // On clique sur le lien "AZ0130551200001P0" dans le tableau
614            $this->byLinkText("AZ 013055 12 00001P0")->click();
615            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
616            $this->verifyNoErrors();
617            // On click sur le lien "Données techniques"
618            $this->byXPath("//div[@id='portlet-actions']/ul/li[2]/a/span")->click();
619            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
620            $this->verifyNoErrors();
621            sleep(1);
622            // Modification des données techniques
623            $this->byCssSelector("#sousform-donnees_techniques .edit-16")->click();
624            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
625            $this->verifyNoErrors();
626            sleep(1);
627            $this->assertRegExp('/^[\s\S]*Terrain[\s\S]*$/', $this->byCssSelector("#sformulaire #form-content legend")->text());
628            // Validation du formulaire
629            $this->byXPath("//input[@value='Modifier']")->click();
630            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
631            $this->verifyNoErrors();
632            $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-donnees_techniques .message .text")->text());
633            $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();
634            sleep(1);
635            // On se déconnecte
636            $this->logout();
637    
638        }
639    
640        /**
641         * Test un événement d'instruction qui a un événement "retour"
642         */
643        public function test_08_evenement_instruction_retour() {
644    
645            // Instancie la timezone
646            date_default_timezone_set('Europe/Paris');
647    
648            // On se connecte à l'application en tant qu'administrateur
649            $this->login("admin", "admin");
650            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
651            $this->verifyNoErrors();
652    
653            /** On ajoute une action "retour signature" **/
654            // On clique sur le menu "Paramétrage Dossiers"
655            $this->byLinkText("Paramétrage Dossiers")->click();
656            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
657            $this->verifyNoErrors();
658            // On clique sur le sous-menu "Action"
659            $this->byLinkText("Action")->click();
660            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
661            $this->verifyNoErrors();
662            // On clique sur le bouton "ajouter"
663            $this->byId("action-tab-action-corner-ajouter")->click();
664            // On remplis les champs
665            $this->byId("action")->value("retour signature");
666            $this->byId("libelle")->value("retour signature");
667            $this->byId("regle_etat")->value("etat");
668            $this->byId("regle_date_validite")->value("date_retour_signature + duree_validite");
669            // On valide le formulaire
670            $this->byXPath("//input[@value='Ajouter']")->click();
671            // On vérifie le message de validation
672            $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text());
673            /** Fin **/
674    
675            /** On ajoute un événement "retour signature" **/
676            // On clique sur le sous-menu "Événement"
677            $this->byLinkText("Événement")->click();
678            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
679            $this->verifyNoErrors();
680            // On clique sur le bouton "ajouter"
681            $this->byId("action-tab-evenement-corner-ajouter")->click();
682            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
683            $this->verifyNoErrors();
684            // On remplis les champs
685            $this->byId("libelle")->value("retour signature");
686            $this->byId("retour")->click();
687            $this->select($this->byName("etats_depuis_lequel_l_evenement_est_disponible[]"))->clearSelectedOptions();;
688            $this->select($this->byName("etats_depuis_lequel_l_evenement_est_disponible[]"))->selectOptionByLabel("dossier accepter");
689            $this->select($this->byName("dossier_instruction_type[]"))->clearSelectedOptions();
690            $this->select($this->byName("dossier_instruction_type[]"))->selectOptionByLabel("PCI - P - Initial");
691            $this->select($this->byId("action"))->selectOptionByLabel("retour signature");
692            // On valide le formulaire
693            $this->byXPath("//input[@value='Ajouter']")->click();
694            // On vérifie le message de validation
695            $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text());
696            // On clique sur "Retour"
697            $this->byLinkText("Retour")->click();
698            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
699            $this->verifyNoErrors();
700            // On recherche l'événement "accepter un dossier sans réserve"
701            $this->byCssSelector("input[name='recherche']")->value('accepter un dossier sans réserve');
702            // On clique sur le bouton recherche
703            $this->byCssSelector(".ui-button")->click();
704            // On clique sur le résultat
705            $this->byLinkText("accepter un dossier sans réserve")->click();
706            // On clique sur le bouton "Modifier"
707            $this->byId('action-form-evenement-modifier')->click();
708            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
709            $this->verifyNoErrors();
710            // On sélectionne l'événement "retour" dans "evenement_retour_signature"
711            $this->select($this->byId("evenement_retour_signature"))->selectOptionByLabel("retour signature");
712            // On valide le formulaire
713            $this->byXPath("//input[@value='Modifier']")->click();
714            // On vérifie le message de validation
715            $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text());
716            /** Fin **/
717    
718            /** On ajoute une durée de validité au type de DA PCI **/
719            // On clique sur le sous-menu "Type DA Détaillé"
720            $this->byLinkText("Type DA Détaillé")->click();
721            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
722            $this->verifyNoErrors();
723            // On clique sur le PCI
724            $this->byLinkText("PCI")->click();
725            // On clique sur le bouton "modifier"
726            $this->byId("action-form-dossier_autorisation_type_detaille-modifier")->click();
727            // On modifie la durée de validité
728            $this->byId("duree_validite_parametrage")->clear();
729            $this->byId("duree_validite_parametrage")->value("5");
730            // On valide le formulaire
731            $this->byXPath("//input[@value='Modifier']")->click();
732            // On vérifie le message de validation
733            $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text());
734            /** Fin **/
735    
736            /** On instancie une nouvelle demande initial PCI **/
737            // On clique sur le menu "Guichet Unique"
738            $this->byLinkText("Guichet Unique")->click();
739            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
740            $this->verifyNoErrors();
741            // On clique sur le sous-menu "Nouveau Dossier"
742            $this->byLinkText("Nouveau Dossier")->click();
743            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
744            $this->verifyNoErrors();
745            // On selectionne le type de dossier d'autorisation détaillé "Permis de construire pour une maison individuelle et / ou ses annexes"
746            $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel("Permis de construire pour une maison individuelle et / ou ses annexes");
747            // On selectionne le type de demande "Dépôt Initial"
748            $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
749            // On clique pour ajouter un pétitionnaire principale
750            $this->byId("add_petitionnaire_principal")->click();
751            // On remplit le champ
752            $this->byId("particulier_nom")->value("DURAND");
753            // On remplit le champ
754            $this->byId("particulier_prenom")->value("MICKAEL");
755            // On remplit le champ
756            $this->byId("particulier_date_naissance")->value("03/01/1956");
757            // On remplit le champ
758            $this->byId("particulier_commune_naissance")->value("LILLE");
759            // On remplit le champ
760            $this->byId("particulier_departement_naissance")->value("NORD");
761            // On remplit le champ
762            $this->byId("numero")->value("12");
763            // On remplit le champ
764            $this->byId("voie")->value("RUE DE LA LOI");
765            // On remplit le champ
766            $this->byId("complement")->value("APPT 12");
767            // On remplit le champ
768            $this->byId("localite")->value("MARSEILLE");
769            // On remplit le champ
770            $this->byId("code_postal")->value("13012");
771            // On remplit le champ
772            $this->byId("telephone_fixe")->value("0404040404");
773            // On clique sur ajouter
774            $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
775            // On vérifie le message
776            $this->assertContains("Vos modifications ont bien été enregistrées", $this->byCssSelector("#sousform-petitionnaire .message")->text());
777          // On clique sur le bouton retour          // On clique sur le bouton retour
778          $this->click("css=form[name=\"f2\"] > div.formControls > a.retour");          $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
779            // On vérifie que le text est présent
780            $this->assertContains("DURAND MICKAEL",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
781            // On clique sur ajouter
782            $this->byXPath("//input[@value='Ajouter']")->click();
783            // On vérifie le message
784            $this->assertContains("Création du dossier d'autorisation n°",$this->byCssSelector(".message .text")->text());
785            // Récupération du numéro de dossier
786            preg_match('/(PC)[0-9 ]*(P0)/', $this->byCssSelector(".message .text")->text(), $dossier);
787            $dossier = $dossier[0];
788            /** Fin **/
789    
790            /** On ajoute une instruction de dossier accepter et on la finalise **/
791            // On clique sur le menu "Instruction"
792            $this->byLinkText("Instruction")->click();
793            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
794            $this->verifyNoErrors();
795            // On clique sur le sous-menu "Recherche"
796            $this->byLinkText("Recherche")->click();
797            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
798            $this->verifyNoErrors();
799            // On recherche le dossier crée
800            $this->byId("dossier")->value(str_replace(' ', '', $dossier));
801            // On clique sur le bouton recherche
802            $this->byId("adv-search-submit")->click();
803            // On clique sur le résultat
804            $this->byLinkText($dossier)->click();
805            // On clique sur l'onglet "Instruction"
806            $this->byId("instruction")->click();
807            // On ajoute un événement d'instruction
808            $this->byId("action-soustab-instruction-corner-ajouter")->click();
809            // On sélectionne l'évenement "accepter un dossier sans réserve"
810            $this->select($this->byId("evenement"))->selectOptionByLabel("accepter un dossier sans réserve [acceptation]");
811            // On valide le formulaire
812            $this->byXPath("//input[@value='Ajouter']")->click();
813            // On vérifie le message
814            $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message .text")->text());
815            // On clique sur le bouton "retour"
816            $this->byLinkText("Retour")->click();
817            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
818            $this->verifyNoErrors();
819            // On clique sur l'événement d'instruction "accepter un dossier sans réserve"
820            $this->byLinkText("accepter un dossier sans réserve")->click();
821            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
822            $this->verifyNoErrors();
823            // On valide l'instruction
824            $this->byId("action-sousform-instruction-finalisation")->click();
825            // On vérifie le message de validation
826            $this->assertContains("La finalisation du document s'est effectuée avec succès.",$this->byCssSelector(".message .text")->text());
827            // On clique sur le bouton "Retour"
828            $this->byLinkText("Retour")->click();
829            // On clique sur l'événement "accepter un dossier sans réserve"
830            $this->byLinkText("accepter un dossier sans réserve")->click();sleep(1);
831            // Récupération du numéro d'événement
832            $evenement = $this->byCssSelector("#instruction.field_value")->text();
833            /** Fin **/
834    
835            /** On met à jour la date de retour signature **/
836            // Date de retour signature
837            $date_retour_signature = date("d/m/Y", mktime(0, 0, 0, date("m"), date("d")+5,  date("Y")));
838            // On clique sur le menu "Suivi"
839            $this->byLinkText("Suivi")->click();
840            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
841            $this->verifyNoErrors();
842            // On clique sur le sous-menu "Mise À Jour Des Dates"
843            $this->byLinkText("Mise À Jour Des Dates")->click();
844            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
845            $this->verifyNoErrors();
846            // On sélectionne "date de retour de signature + Envoi contrôle légalite"
847            $this->select($this->byId("type_mise_a_jour"))->selectOptionByLabel("date de retour de signature + Envoi contrôle légalite");
848            // On remplit à la date du jour + 5 jours
849            $this->byId("date")->value($date_retour_signature);
850            // On remplit le code barres de l'instruction
851            $this->byId("code_barres")->value("11".str_pad($evenement, 10, "0", STR_PAD_LEFT));
852            // On clique sur Valider
853            $this->byCssSelector("#suivi_mise_a_jour_des_dates_form div.formControls input.om-button")->click();sleep(1);
854            // On vérifie la synthèse avec le numéro du dossier et l'événement
855            $this->assertContains($dossier, $this->byId("dossier_libelle")->text());
856            $this->assertContains("accepter un dossier sans réserve", $this->byId("evenement")->text());
857            // On clique sur Valider
858            $this->byCssSelector("#suivi_mise_a_jour_des_dates_form div.formControls input.om-button")->click();
859            // On vérifie le message de validation
860            $this->assertContains("Saisie enregistrée",$this->byCssSelector(".message .text")->text());
861            /** Fin **/
862    
863            /** Vérifie l'instruction "retour" et le DI **/
864            // Date de validité
865            $date_validite = date("d/m/Y", mktime(0, 0, 0, date("m")+5, date("d")+5,  date("Y")));
866            // On clique sur le menu "Instruction"
867            $this->byLinkText("Instruction")->click();
868            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
869            $this->verifyNoErrors();
870            // On clique sur le sous-menu "Recherche"
871            $this->byLinkText("Recherche")->click();
872            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
873            $this->verifyNoErrors();
874            // On recherche le dossier crée
875            $this->byId("dossier")->value(str_replace(' ', '', $dossier));
876            // On clique sur le bouton recherche
877            $this->byId("adv-search-submit")->click();
878            // On clique sur le résultat
879            $this->byLinkText($dossier)->click();
880            // On vérifie la date de validité mise à jour par l'action
881            $this->assertContains($date_validite, $this->byId("date_validite")->text());
882            // On clique sur l'onglet "Instruction"
883            $this->byId("instruction")->click();
884            // On clique sur l'instruction "retour signature"
885            $this->byLinkText("retour signature")->click();
886            // On contrôle la date de retour signature
887            $this->assertContains($date_retour_signature, $this->byId("date_retour_signature")->text());
888            /** Fin **/
889    
890            // On se déconnecte
891            $this->logout();
892    
893        }
894        
895        /**
896         * Test la suppression d'un événement d'instruction lié à une demande qui ne
897         * créée pas de nouveau dossier d'instruction
898         */
899        public function test_09_suppression_evenement_demande(){
900                    
901          //// Ajout de plusieurs consultations          //Ajout du paramétrage d'une nouvelle demande
902          // On clique sur le bouton ajout multiple          // On se connecte à l'application en tant qu'administrateur
903          $this->click("//div[@id='sousform-consultation']/table/thead/tr/th/a[2]/span");          $this->login("admin", "admin");
904          $this->verifyNoDatabaseError();          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
905          // On sélectionne trois servcies          $this->verifyNoErrors();
906          $this->click("id=t10_572_0_");          //On clique sur "Paramétrage dossier"
907          $this->click("id=t10_575_0_");          $this->byLinkText("Paramétrage Dossiers")->click();
908          $this->click("id=t10_584_0_");          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
909          // On les ajoute à la sélection          $this->verifyNoErrors();
910          $this->click("id=add-ser-them");          //On clique sur Type
911          // On valide le formulaire          $this->byLinkText("Type")->click();
912          $this->click("id=button_val");          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
913          $this->verifyNoDatabaseError();          $this->verifyNoErrors();
914          //          //On clique sur le "+" du tableau
915          $this->verifyTextPresent("3 service(s) sélectionné(s) dont 0 consultation(s) papier.");          $this->byClassName("add-16")->click();
916            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
917            $this->verifyNoErrors();
918            //On saisit le type de la demande
919            $this->byId("code")->value("test_09_suppression");
920            $this->byId("libelle")->value("test_09_suppression");
921            $this->select($this->byId("groupe"))->selectOptionByValue("1");sleep(1);
922            $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByValue("7");sleep(1);
923            $this->select($this->byId("demande_nature"))->selectOptionByValue("2");
924            $this->select($this->byName("etats_dossier_autorisation_autorises[]"))->selectOptionByValue("1");
925            $this->select($this->byId("evenement"))->selectOptionByValue("15");
926            $this->select($this->byId("contraintes"))->selectOptionByValue("avec_recup");
927            // On clique sur le bouton ajouter
928            $this->byXPath("//input[@value='Ajouter']")->click();
929            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
930            $this->verifyNoErrors();
931            // On vérifie que le type de demande a bien été ajouté
932            $this->assertContains('Vos modifications ont bien été enregistrées', $this->byCssSelector(".message .text")->text());
933            //On se déconnecte
934            $this->deconnect();
935                    
936          // On vérifie que nous avons bien 4 consultations affichées          //Création d'un nouveau dossier d'instruction
937          $this->verifyTextPresent("1 - 4 enregistrement(s) sur 4");          // On se connecte à l'application
938            $this->login("guichet", "guichet");
939            //On clique sur "Guichet Unique"
940            $this->byLinkText("Guichet Unique")->click();
941            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
942            $this->verifyNoErrors();
943            //On clique sur "Dossier En Cours"
944            $this->byLinkText("Dossier En Cours")->click();
945            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
946            $this->verifyNoErrors();
947            //On clique sur le dossier "AZ0130551200001P0"
948            $this->byId("action-tab-demande_dossier_encours-left-consulter-AZ0130551200001P0")->click();
949            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
950            $this->verifyNoErrors();
951            //On sélectionne le type de la demande
952            $this->select($this->byId("demande_type"))->selectOptionByLabel("test_09_suppression");sleep(1);
953            // On clique sur le bouton ajouter
954            $this->byXPath("//input[@value='Ajouter']")->click();
955            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
956            $this->verifyNoErrors();
957            // On vérifie que le type de demande a bien été ajouté
958            $this->assertContains('Vos modifications ont bien été enregistrées', $this->byCssSelector(".message .text")->text());
959            //On se déconnecte
960            $this->deconnect();
961            
962            //Suppression de l'événement d'instruction
963            // On se connecte à l'application
964            $this->login("admin", "admin");
965            //On clique sur le menu "Instruction"
966            $this->byLinkText("Instruction")->click();
967            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
968            $this->verifyNoErrors();
969            //On clique sur le menu "Recherche"
970            $this->byLinkText("Recherche")->click();
971            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
972            $this->verifyNoErrors();
973            //On clique sur le dossier "AZ 013055 12 00001P0"
974            $this->byLinkText("AZ 013055 12 00001P0")->click();
975            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
976            $this->verifyNoErrors();
977            //On clique sur l'onglet "Instruction"
978            $this->byId("instruction")->click();
979            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
980            $this->verifyNoErrors();
981            //On clique sur l'instruction "Defrichement soumis a enquete publique"
982            $this->byLinkText("Defrichement soumis a enquete publique")->click();
983            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
984            $this->verifyNoErrors();
985            //On définalise l'instruction
986            $this->byClassName("definalise")->click();
987            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
988            $this->verifyNoErrors();
989            //On clique "Supprimer"
990            $this->byCssSelector("#sousform-instruction .delete-16")->click();
991            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
992            $this->verifyNoErrors();
993            //On clique sur supprimer
994            $this->byXPath("//input[@value='Supprimer']")->click();
995            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
996            $this->verifyNoErrors();
997            //On vérifie que lasuppression a été éffectuée
998            $this->assertContains("La suppression a été correctement effectuée.",
999                $this->byCssSelector("#sousform-instruction .message .text")->text());
1000            // On se déconnecte
1001            $this->logout();
1002        }
1003    
1004          //      /**
1005         * Test sur les types d'éditions des consultations
1006         */
1007        function test_10_nouveau_type_edition_consultation(){
1008            
1009            //On saisit un service de test        
1010            // On se connecte à l'application
1011            $this->login("admin", "admin");
1012            //On clique sur "Paramétrage"
1013            $this->byLinkText("Paramétrage")->click();
1014            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1015            $this->verifyNoErrors();
1016            //On clique sur "Service"
1017            $this->byLinkText("Service")->click();
1018            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1019            $this->verifyNoErrors();        
1020            //On clique sur le "+" du tableau
1021            $this->byClassName("add-16")->click();
1022            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1023            $this->verifyNoErrors();
1024            //On saisit les données du service
1025            $this->byId("abrege")->value("test_10");
1026            $this->byId("libelle")->value("test_10");
1027            $this->byId("consultation_papier")->click();
1028            $this->select($this->byId("edition"))->selectOptionByLabel("test_10");
1029            // On clique sur le bouton ajouter
1030            $this->byXPath("//input[@value='Ajouter']")->click();
1031            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1032            $this->verifyNoErrors();
1033            // On vérifie que le service a bien été ajouté
1034            $this->assertContains('Vos modifications ont bien été enregistrées', $this->byCssSelector(".message .text")->text());
1035            //On se déconnecte
1036            $this->deconnect();
1037            
1038            //On ajoute une consultation sur un dossier et on vérifie l'édition
1039            // On se connecte à l'application
1040            $this->login("instr", "instr");
1041            //On clique sur "Recherche"
1042            $this->byLinkText("Recherche")->click();
1043            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1044            $this->verifyNoErrors();
1045            //On choisit le dossier "AZ 013055 12 00001P0"
1046            $this->byLinkText("AZ 013055 12 00001P0")->click();
1047            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1048            $this->verifyNoErrors();
1049            //On clique sur l'onglet "Consultation"
1050            $this->byId("consultation")->click();
1051            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1052            $this->verifyNoErrors();
1053            //On clique sur le "+" du tableau
1054            $this->byClassName("add-16")->click();
1055            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1056            $this->verifyNoErrors();
1057            //On saist une nouvelle consultation
1058            $this->select($this->byId("service"))->selectOptionByLabel("test_10");
1059            // On clique sur le bouton ajouter
1060            $this->byXPath("//input[@value='Ajouter']")->click();
1061            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1062            $this->verifyNoErrors();
1063            // On vérifie que la consultation a bien été ajoutée
1064            $this->assertContains('Vos modifications ont bien été enregistrées', $this->byCssSelector(".message .text")->text());
1065            //On clique sur retour
1066            $this->byCssSelector("#sousform-consultation .retour")->click();
1067            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1068            $this->verifyNoErrors();
1069            //On clique sur la consultation au service "test_10"
1070            $this->byLinkText("test_10")->click();
1071            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1072            $this->verifyNoErrors();
1073            //On affiche le PDF
1074            $this->byId("action-sousform-consultation-pdfetat")->click();sleep(5);
1075            // Liste les fenêtres
1076            $windows = $this->windowHandles();
1077            // Change la fenêtre
1078            $this->window($windows[1]);
1079            // On vérifie qu'il n'y ait pas d'erreur
1080            $this->verifynoerrors();
1081            // On vérifie que le text est présent
1082            $this->assertContains("test_10",$this->source());
1083            $this->assertNotContains("test_10_2",$this->source());
1084            // On ferme la fenêtre
1085            $this->closeWindow();
1086            // On change le focus de la fenêtre
1087            $this->window($windows[0]);
1088            //On se déconnecte
1089            $this->deconnect();
1090            
1091            //On change l'édition
1092            // On se connecte à l'application
1093            $this->login("admin", "admin");
1094            //On clique sur "Paramétrage"
1095            $this->byLinkText("Paramétrage")->click();
1096            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1097            $this->verifyNoErrors();
1098            //On clique sur "Service"
1099            $this->byLinkText("Service")->click();
1100            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1101            $this->verifyNoErrors();
1102            //On cherche le service
1103            $this->byName("recherche")->value("test_10");
1104            //On valide
1105            $this->byName("s1")->click();
1106            //On clique sur le service test_10
1107            $this->byLinkText("test_10")->click();
1108            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1109            $this->verifyNoErrors();
1110            //On clique sur "Modifier" dans le portail d'action
1111            $this->byClassName("edit-16")->click();
1112            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1113            $this->verifyNoErrors();
1114            //On choisit une seconde édition
1115            $this->select($this->byId("edition"))->selectOptionByLabel("test_10_2");
1116            // On clique sur le bouton ajouter
1117            $this->byXPath("//input[@value='Modifier']")->click();
1118            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1119            $this->verifyNoErrors();
1120            // On vérifie que le service a bien été ajouté
1121            $this->assertContains('Vos modifications ont bien été enregistrées', $this->byCssSelector(".message .text")->text());
1122            //On se déconnecte
1123            $this->deconnect();
1124            
1125            //On vérifie que c'est la bonne édition qui est affiché
1126            // On se connecte à l'application
1127            $this->login("instr", "instr");
1128            //On clique sur "Recherche"
1129            $this->byLinkText("Recherche")->click();
1130            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1131            $this->verifyNoErrors();
1132            //On choisit le dossier "AZ 013055 12 00001P0"
1133            $this->byLinkText("AZ 013055 12 00001P0")->click();
1134            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1135            $this->verifyNoErrors();
1136            //On clique sur l'onglet "Consultation"
1137            $this->byId("consultation")->click();
1138            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1139            $this->verifyNoErrors();
1140            //On clique sur la consultation au service "test_10"
1141            $this->byLinkText("test_10")->click();
1142            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1143            $this->verifyNoErrors();
1144            //on definalise la consultaion
1145            $this->byClassName("definalise")->click();
1146            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1147            $this->verifyNoErrors();
1148            //On vérifie que la consultation s'est bien définalisée
1149            $this->assertEquals('La definalisation du document s\'est effectuée avec succès.', $this->byCssSelector("#sousform-consultation .message .text")->text());sleep(10);
1150            //On affiche le PDF
1151            $this->byId("action-sousform-consultation-pdfetat")->click();sleep(5);
1152            // Liste les fenêtres
1153            $windows = $this->windowHandles();
1154            // Change la fenêtre
1155            $this->window($windows[1]);
1156            // On vérifie qu'il n'y ait pas d'erreur
1157            $this->verifynoerrors();
1158            // On vérifie que le text est présent
1159            $this->assertContains("test_10_2",$this->source());
1160            // On ferme la fenêtre
1161            $this->closeWindow();
1162            // On change le focus de la fenêtre
1163            $this->window($windows[0]);
1164            
1165            // On se déconnecte
1166          $this->logout();          $this->logout();
1167      }      }
1168    
1169        /**
1170         * Test sur un événement non verrouillable
1171         */
1172        public function test_11_evenement_non_verrouillable(){
1173    
1174            /* On crée une nouvelle demande initial */
1175            // On se connecte à l'application
1176            $this->login("guichet", "guichet");
1177            // On clique sur le menu "Nouveau Dossier"
1178            $this->byLinkText("Nouveau Dossier")->click();
1179            // On vérifie qu'il n'y ait pas d'erreur
1180            $this->verifynoerrors();
1181            // On vérifie le nom de l'onglet
1182            $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
1183            // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
1184            $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel("Permis de construire pour une maison individuelle et / ou ses annexes");
1185            // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
1186            $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
1187            // On clique pour ajouter un pétitionnaire principale
1188            $this->byId("add_petitionnaire_principal")->click();
1189            // On remplit le champ
1190            $this->byId("particulier_nom")->value("DURAND");
1191            // On remplit le champ
1192            $this->byId("particulier_prenom")->value("MICKAEL");
1193            // On remplit le champ
1194            $this->byId("particulier_date_naissance")->value("03/01/1956");
1195            // On remplit le champ
1196            $this->byId("particulier_commune_naissance")->value("LILLE");
1197            // On remplit le champ
1198            $this->byId("particulier_departement_naissance")->value("NORD");
1199            // On remplit le champ
1200            $this->byId("numero")->value("12");
1201            // On remplit le champ
1202            $this->byId("voie")->value("RUE DE LA LOI");
1203            // On remplit le champ
1204            $this->byId("complement")->value("APPT 12");
1205            // On remplit le champ
1206            $this->byId("localite")->value("MARSEILLE");
1207            // On remplit le champ
1208            $this->byId("code_postal")->value("13012");
1209            // On remplit le champ
1210            $this->byId("telephone_fixe")->value("0404040404");
1211            // On clique sur ajouter
1212            $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
1213            // On vérifie qu'il n'y ait pas d'erreur
1214            $this->verifynoerrors();
1215            // On vérifie le message
1216            $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-petitionnaire .message")->text());
1217            // On clique sur le bouton retour
1218            $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
1219            // On vérifie que le text est présent
1220            $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
1221            // On clique sur ajouter
1222            $this->byXPath("//input[@value='Ajouter']")->click();
1223            // On vérifie qu'il n'y ait pas d'erreur
1224            $this->verifynoerrors();
1225            // On vérifie le message
1226            $this->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°[\s\S]*$/",$this->byCssSelector(".message")->text());
1227            // Récupération du numéro de dossier
1228            preg_match('/(PC)[0-9 ]*(P0)/', $this->byCssSelector(".message .text")->text(), $matches);
1229            $dossier_libelle = $matches[0];
1230            $dossier = str_replace(' ', '', $dossier_libelle);
1231            $dossier_dir = substr_replace($dossier, '.', -2, -3);
1232            // On clique
1233            $this->byCssSelector("a.lien")->click();sleep(5);
1234            // Liste les fenêtres
1235            $windows = $this->windowHandles();
1236            // Change la fenêtre
1237            $this->window($windows[1]);
1238            // On vérifie qu'il n'y ait pas d'erreur
1239            $this->verifynoerrors();
1240            // On vérifie que le text est présent
1241            $this->assertRegExp("/^[\s\S]*RECEPISSE DE DEPOT[\s\S]*$/",$this->source());
1242            // On ferme la fenêtre
1243            $this->closeWindow();
1244            // On change le focus de la fenêtre
1245            $this->window($windows[0]);
1246            // On clique sur le bouton retour
1247            $this->byLinkText("Retour")->click();
1248            // On vérifie qu'il n'y ait pas d'erreur
1249            $this->verifynoerrors();
1250            // On vérifie que le répertoire s'est crée
1251            $this->assertTrue(file_exists("../trs/numerisation/Todo/".$dossier_dir));
1252            // On se déconnecte
1253            $this->deconnect();
1254            /* Fin */
1255    
1256            /* On accepte le dossier d'instruction et le finalise */
1257            // On se connecte à l'application
1258            $this->login("instr", "instr");
1259            // On clique sur le menu 'Recherche'
1260            $this->byLinkText("Recherche")->click();
1261            // On recherche le dossier crée
1262            $this->byId("dossier")->value($dossier);
1263            // On clique sur le bouton recherche
1264            $this->byId("adv-search-submit")->click();
1265            // On clique sur le résultat
1266            $this->byLinkText($dossier_libelle)->click();
1267            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1268            $this->verifyNoErrors();
1269            // On clique sur l'onglet "Instruction"
1270            $this->byId("instruction")->click();
1271            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1272            $this->verifyNoErrors();
1273            // On clique sur le lien d'ajout dans le tableau
1274            $this->byCssSelector(".actions-max-1 a")->click();
1275            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1276            $this->verifyNoErrors();
1277            // On choisi un événement
1278            $this->select($this->byId("evenement"))->selectOptionByLabel("accepter un dossier sans réserve [acceptation]");
1279            // On valide le formulaire
1280            $this->byXPath("//input[@value='Ajouter']")->click();
1281            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1282            $this->verifyNoErrors();
1283            sleep(1);
1284            $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
1285            // On retourne sur le tableau d'instructions
1286            $this->byCssSelector("#sousform-instruction .retour")->click();
1287            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1288            $this->verifyNoErrors();
1289            // On clique sur l'événement d'instruction "accepter un dossier sans réserve"
1290            $this->byLinkText("accepter un dossier sans réserve")->click();
1291            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1292            $this->verifyNoErrors();
1293            // On valide l'instruction (un événement verrouillable ne pourrait pas
1294            // être finalisé)
1295            $this->byId("action-sousform-instruction-finalisation")->click();
1296            // On vérifie le message de validation
1297            $this->assertContains("La finalisation du document s'est effectuée avec succès.",$this->byCssSelector(".message .text")->text());
1298            /* Fin */
1299        }
1300    
1301        /**
1302         * Test que les données du dossier d'autorisation sont recopiés dans les
1303         * champs 'archive_' de l'événement d'instruction de la création du nouveau
1304         * dossier d'instruction
1305         */
1306        public function eetest_12_recopie_donnees_da_vers_nouveau_di(){
1307            date_default_timezone_set("Europe/Paris");
1308            
1309            //{{{ Ajout de d'un nouveau dossier
1310            // On se connecte à l'application
1311            $this->login("guichet", "guichet");
1312            //On clique sur le menu des instructions
1313            $this->byLinkText("Nouveau Dossier")->click();
1314            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1315            $this->verifyNoErrors();
1316            //On ajoute un nouveau dossier
1317            $dossier = $this->addDossierInstruction( 1, 1);                
1318            // On se déconnecte
1319            $this->deconnect();
1320            //}}}
1321            
1322            //{{{ Clôture du nouveau dossier
1323            // On se connecte à l'application
1324            $this->login("instr", "instr");
1325            //On clique sur le menu "Recherche"
1326            $this->byLinkText("Recherche")->click();
1327            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1328            $this->verifyNoErrors();
1329            //On clique sur le nouveau dossier
1330            $this->byLinkText($dossier)->click();
1331            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1332            $this->verifyNoErrors();
1333            //On clique sur l'onglet "instruction"
1334            $this->byId("instruction")->click();
1335            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1336            $this->verifyNoErrors();
1337            // On ajoute une instruction
1338            $this->byCssSelector("#sousform-instruction .add-16")->click();
1339            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1340            $this->verifyNoErrors();
1341            //On choisit l'instruction 81
1342            $this->select($this->byId("evenement"))->selectOptionByValue(81);
1343            // On clique sur ajouter
1344            $this->byXPath("//input[@value='Ajouter']")->click();
1345            // On vérifie qu'il n'y ait pas d'erreur
1346            $this->verifynoerrors();
1347            // On vérifie le message
1348            $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1349            //On rafraichit la page pour vérifier que le dossier est clôturé
1350            $this->refresh();
1351            $this->assertEquals("Favorable", $this->byId("avis_decision")->text());
1352            // On se déconnecte
1353            $this->deconnect();
1354            //}}}
1355            
1356            //{{{ Ajout de l'action
1357            // On se connecte à l'application
1358            $this->login("admin", "admin");
1359            //On clique sur le menu "Paramétrage dossiers"
1360            $this->byLinkText("Paramétrage Dossiers")->click();
1361            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1362            $this->verifyNoErrors();
1363            //On clique sur le menu "Action"
1364            $this->byLinkText("Action")->click();
1365            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1366            $this->verifyNoErrors();
1367            //On clique sur le "+" du tableau
1368            $this->byClassName("add-16")->click();
1369            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1370            $this->verifyNoErrors();
1371            //On remplit la règle de calcul de la date de validité
1372            $this->byId("action")->value("test_12_recopie_donnees");
1373            $this->byId("libelle")->value("test_12_recopie_donnees");
1374            $this->byId("regle_date_validite")->value("archive_date_validite + 12");
1375            // On clique sur ajouter
1376            $this->byXPath("//input[@value='Ajouter']")->click();
1377            // On vérifie qu'il n'y ait pas d'erreur
1378            $this->verifynoerrors();
1379            // On vérifie le message
1380            $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1381            //}}}
1382            
1383            //{{{ Ajout de l'événement
1384            //On clique sur le menu "Événement"
1385            $this->byLinkText("Événement")->click();
1386            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1387            $this->verifyNoErrors();
1388            //On clique sur le "+" du tableau
1389            $this->byClassName("add-16")->click();
1390            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1391            $this->verifyNoErrors();
1392            //On remplit l'événement qui va être ajouté avec la nouvelle demande
1393            $this->byId("libelle")->value("test_12_recopie_donnees");
1394            $this->select($this->byName("etats_depuis_lequel_l_evenement_est_disponible[]"))->selectOptionByValue("accepter");
1395            $this->select($this->byName("dossier_instruction_type[]"))->selectOptionByValue(1);
1396            // On clique sur ajouter
1397            $this->byXPath("//input[@value='Ajouter']")->click();
1398            // On vérifie qu'il n'y ait pas d'erreur
1399            $this->verifynoerrors();
1400            // On vérifie le message
1401            $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1402            //}}}
1403            
1404            //{{{ Ajout du type de dossier d'instruction
1405            //On clique sur le menu "Type DI"
1406            $this->byLinkText("Type DI")->click();
1407            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1408            $this->verifyNoErrors();
1409            //On clique sur le "+" du tableau
1410            $this->byClassName("add-16")->click();
1411            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1412            $this->verifyNoErrors();
1413            //On remplit le type de la demande
1414            $this->byId("code")->value("DT");
1415            $this->byId("libelle")->value("test_12_recopie_donnees");
1416            $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByValue(1);sleep(1);
1417            $this->byId("suffixe")->click();
1418            // On clique sur ajouter
1419            $this->byXPath("//input[@value='Ajouter']")->click();
1420            // On vérifie qu'il n'y ait pas d'erreur
1421            $this->verifynoerrors();
1422            // On vérifie le message
1423            $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1424            //}}}
1425            
1426            //{{{ Ajout du type de la demande
1427            //On clique sur le menu "Type"
1428            $this->byLinkText("Type")->click();
1429            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1430            $this->verifyNoErrors();
1431            //On clique sur le "+" du tableau
1432            $this->byClassName("add-16")->click();
1433            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1434            $this->verifyNoErrors();
1435            //On remplit le type de la demande
1436            $this->byId("code")->value("test_12_recopie_donnees");
1437            $this->byId("libelle")->value("test_12_recopie_donnees");
1438            $this->select($this->byId("groupe"))->selectOptionByValue(1);sleep(1);
1439            $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByValue(1);
1440            $this->select($this->byId("demande_nature"))->selectOptionByValue(2);
1441            $this->select($this->byName("etats_dossier_autorisation_autorises[]"))->selectOptionByValue(2);
1442            $this->select($this->byId("dossier_instruction_type"))->selectOptionByLabel("PCI - test_12_recopie_donnees");
1443            $this->select($this->byId("evenement"))->selectOptionByLabel("test_12_recopie_donnees");
1444            // On clique sur ajouter
1445            $this->byXPath("//input[@value='Ajouter']")->click();
1446            // On vérifie qu'il n'y ait pas d'erreur
1447            $this->verifynoerrors();
1448            // On vérifie le message
1449            $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1450            //On clique sur retour
1451            $this->byClassName("retour")->click();
1452            // On vérifie qu'il n'y ait pas d'erreur
1453            $this->verifynoerrors();
1454            //On saisit le libellé du type de la demande saisit
1455            $this->byName("recherche")->value("test_12_recopie_donnees");
1456            //On valide
1457            $this->byName("s1")->click();
1458            // On vérifie qu'il n'y ait pas d'erreur
1459            $this->verifynoerrors();
1460            //On clique sur le type de la demande
1461            $this->byLinkText("test_12_recopie_donnees")->click();
1462            // On vérifie qu'il n'y ait pas d'erreur
1463            $this->verifynoerrors();
1464            //On récupère l'identifiant du type de la demande
1465            $demande_type = $this->byId("demande_type")->text();
1466            // On se déconnecte
1467            $this->deconnect();
1468            //}}}
1469            
1470            //{{{ Ajout de d'un nouveau dossier
1471            // On se connecte à l'application
1472            $this->login("guichet", "guichet");
1473            //On clique sur le menu des instructions
1474            $this->byLinkText("Dossier En Cours")->click();
1475            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1476            $this->verifyNoErrors();
1477            //On ajoute un nouveau dossier
1478            $dossier = $this->addDossierInstruction( 1, $demande_type, 2, str_replace(" ", "", $dossier));                
1479            // On se déconnecte
1480            $this->deconnect();
1481            //}}}
1482            
1483            //{{{ Vérification de la date de validité
1484            // On se connecte à l'application
1485            $this->login("instr", "instr");
1486            //On clique sur le menu "Recherche"
1487            $this->byLinkText("Recherche")->click();
1488            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1489            $this->verifyNoErrors();
1490            //On clique sur le nouveau dossier
1491            $this->byLinkText($dossier)->click();
1492            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1493            $this->verifyNoErrors();
1494            //On vérifie la date de validité
1495            $this->assertEquals(date("d/m/Y", strtotime('+12 months')), $this->byId("date_validite")->text());
1496            // On se déconnecte
1497            $this->deconnect();
1498            //}}}
1499        }
1500        
1501        /**
1502         * Ajout d'un dossier d'instruction par le guichet unique
1503         *
1504         * @param int $dossier_autorisation_type_detaille L'identifiant du type détaillé
1505         *  de dossier d'autorisation
1506         * @param int $demande_type L'identifiant du type de la demande
1507         * @param int $type Type de la demande : nouveau dossier ou dossier existant
1508         * @return le numéro de dossier d'instruction qui vient d'être créé
1509         */
1510        public function addDossierInstruction($dossier_autorisation_type_detaille,
1511            $demande_type, $type = 1, $dossier = "" ){
1512            
1513            if ($type===1){
1514                //On choisit le type détaillé de dossier d'autorisation
1515                $this->select($this->byName("dossier_autorisation_type_detaille"))->selectOptionByValue($dossier_autorisation_type_detaille);
1516            }
1517            else {
1518                $this->byId("action-tab-demande_dossier_encours-left-consulter-".$dossier)->click();
1519            }
1520            //On choisit le type de demande
1521            $this->select($this->byName("demande_type"))->selectOptionByValue($demande_type);
1522            //On clique sur "Saisir le pétitionnaire principal"
1523            $this->byId("add_petitionnaire_principal")->click();
1524            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1525            $this->verifyNoErrors();
1526            //On saisie le nom du pétitionnaire principal
1527            $this->byId("particulier_nom")->value("test recopie");
1528            // On clique sur ajouter
1529            $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
1530            // On vérifie qu'il n'y ait pas d'erreur
1531            $this->verifynoerrors();
1532            //On vérifie que le pétitionnaire s'est bien ajouté
1533            // On vérifie le message
1534            $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector("#sousform-petitionnaire .message")->text());
1535            // On clique sur le bouton retour
1536            $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
1537            // On vérifie que le text est présent
1538            $this->assertContains("test recopie",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
1539            // On clique sur ajouter
1540            $this->byXPath("//input[@value='Ajouter']")->click();
1541            // On vérifie qu'il n'y ait pas d'erreur
1542            $this->verifynoerrors();
1543            // On vérifie le message
1544            $this->assertContains("Création du dossier",$this->byCssSelector(".message")->text());
1545            //On récupère le numéro de dossier d'instruction créé
1546            if ($type===1){
1547                preg_match('/(PC)[0-9 ]*(P0)/', $this->byCssSelector("#tabs-1 .message")->text(), $dossier);
1548            }
1549            else{
1550                preg_match('/(PC)[0-9 ]*(DT1)/', $this->byCssSelector("#tabs-1 .message")->text(), $dossier);
1551            }
1552            return $dossier[0];
1553        }
1554  }  }
1555    
1556  ?>  ?>

Legend:
Removed from v.1677  
changed lines
  Added in v.2631

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26