/[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 2996 by nhaye, Fri Apr 25 16:00:19 2014 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 test_01_OuvertureMenu() {
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->verifyNoErrors();
195            // On vérifie que le titre du widget est correct
196            $this->assertEquals("Infos profil", $this->byCssSelector("#widget_2 .widget-header h3")->text());
197            // On vérifie que le profil est bon
198            $this->assertEquals("INSTRUCTEUR", $this->byCssSelector(".profil-infos-profil span.value")->text());
199            // On vérifie que le nom de l'instructeur affiché est le bon
200            $this->assertEquals("Louis Laurent", $this->byCssSelector(".profil-infos-nom span.value")->text());
201            // On vérifie que la division de l'instructeur affichée est la bonne
202            $this->assertEquals("H", $this->byCssSelector(".profil-infos-division span.value")->text());
203            // On se déconnecte
204            $this->byLinkText("Déconnexion")->click();
205            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
206            $this->verifyNoErrors();
207            // On se connecte en tant que "instr"
208            $this->login("instr1", "instr");
209            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
210            $this->verifyNoErrors();
211            // On vérifie que le titre du widget est correct
212            $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            //{{{ Ajout de d'un nouveau dossier
281            // On se connecte à l'application
282            $this->login("guichet", "guichet");
283            //On clique sur le menu des instructions
284            $this->byLinkText("Nouveau Dossier")->click();
285            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
286            $this->verifyNoErrors();
287            //On ajoute un nouveau dossier
288            $dossier = $this->addDossierInstruction(1, 1);
289            // On se déconnecte
290            $this->deconnect();
291            //}}}
292            // On se connecte en tant que "instr"
293            $this->login("instr", "instr");
294            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
295            $this->verifyNoErrors();
296            // On clique sur le lien "Mes encours" dans le menu
297            $this->byLinkText("Mes Encours")->click();
298            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
299            $this->verifyNoErrors();
300            sleep(1);
301            // On clique sur le dossier dernièrement créé
302            $this->byLinkText($dossier)->click();
303            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
304            $this->verifyNoErrors();
305            // On clique sur l'onglet "Instruction"
306            $this->byId("instruction")->click();
307            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
308            $this->verifyNoErrors();
309            //Ajout d'une instruction simple
310            // On clique sur le lien d'ajout dans le tableau
311            $this->byCssSelector(".actions-max-1 a")->click();
312            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
313            $this->verifyNoErrors();
314            //On choisi l'événement CDEC majoration appel decision [majoration]
315            $this->select($this->byId("evenement"))->selectOptionByValue("22");
316            //On valide le formulaire
317            $this->byXPath("//input[@value='Ajouter']")->click();
318            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
319            $this->verifyNoErrors();
320            // On vérifie le mesage d'erreur
321            $this->assertRegExp('/.*Restriction non valide*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
322            // On se déconnecte
323            $this->deconnect();
324            // On se connecte en tant que "admin"
325            $this->login("admin", "admin");
326            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
327            $this->verifyNoErrors();
328            // On clique sur le lien "Paramétrage Dossiers" dans le menu
329            $this->byLinkText("Paramétrage Dossiers")->click();
330            // On clique sur le sousmenu "Événement"
331            $this->byLinkText("Événement")->click();
332            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
333            $this->verifyNoErrors();
334            // On remplis le champs de recherche simple
335            $this->byCssSelector("input[name='recherche']")->value('CDEC');
336            // On clique sur le bouton recherche
337            $this->byCssSelector(".ui-button")->click();
338            // On clique sur le résultat
339            $this->byLinkText("CDEC majoration appel decision")->click();
340            // On clique sur le bouton "Modifier"
341            $this->byId('action-form-evenement-modifier')->click();
342            // On modifie le champ restriction pour qu'il ne retourne pas d'erreur
343            // au moment de l'ajout de l'instruction
344            $this->byId('restriction')->clear();
345            $this->byId('restriction')->value("date_evenement <= date_evenement + 1");
346            // On valide la modification
347            $this->byCssSelector("input[value='Modifier']")->click();
348            // On vérifie le message de validation
349            $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#tabs-1 .message")->text());
350            // On se déconnecte
351            $this->deconnect();
352    
353          $this->clickAndWait("link=mes encours");          // On se connecte en tant que "admin"
354          // Accès au dossier en visualisation          $this->login("admin", "admin");
355          $this->clickAndWait("link=AZ0130551200001P0");          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
356          $this->verifyNoDatabaseError();          $this->verifyNoErrors();
357          // Accès à l'onglet des consultations          // On clique sur le lien "Paramétrage Dossiers" dans le menu
358          $this->click("id=consultation");          $this->byLinkText("Paramétrage Dossiers")->click();
359          $this->setSpeed('120');          // On clique sur le sousmenu "Événement"
360          $this->verifyNoDatabaseError();          $this->byLinkText("Événement")->click();
361          //// Ajout d'une simple consultation          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
362          // On clique sur le bouton ajout          $this->verifyNoErrors();
363          $this->click("//div[@id='sousform-consultation']/table/thead/tr/th/a/span");          // On remplis le champs de recherche simple
364          $this->verifyNoDatabaseError();          $this->byCssSelector("input[name='recherche']")->value('accepter un dossier sans réserve');
365          // On sélectionne le service          // On clique sur le bouton recherche
366          $this->select("id=service", "label=1ER Maire 1er Secteur");          $this->byCssSelector(".ui-button")->click();
367            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
368            $this->verifyNoErrors();
369            // On clique sur le résultat
370            $this->byLinkText("accepter un dossier sans réserve")->click();
371            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
372            $this->verifyNoErrors();
373            // On clique sur le bouton "Modifier"
374            $this->byId('bible')->click();
375            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
376            $this->verifyNoErrors();
377            // On Ajoute 2 éléments de bible automatique
378            $this->byId('bible')->click();
379            //On clique sur le "+" du tableau
380            $this->byClassName("add-16")->click();
381            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
382            $this->verifyNoErrors();
383            $this->byCssSelector('#sousform-bible #libelle')->value("test 1");
384            $this->byId('contenu')->value("test contenu 1");
385            $this->select($this->byId("complement"))->selectOptionByValue("1");
386            $this->select($this->byId("automatique"))->selectOptionByValue("Oui");
387            // On valide la modification
388            $this->byCssSelector("input[value='Ajouter']")->click();
389            sleep(1);
390            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
391            $this->verifyNoErrors();
392            // On vérifie le message de validation
393            $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-bible .message")->text());
394            //On retourne sur le tableau d'instructions
395            $this->byCssSelector("#sousform-bible .retour")->click();
396            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
397            $this->verifyNoErrors();
398            //On clique sur le "+" du tableau
399            $this->byClassName("add-16")->click();
400            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
401            $this->verifyNoErrors();
402            $this->byCssSelector('#sousform-bible #libelle')->value("test 2");
403            $this->byId('contenu')->value("test contenu 2");
404            $this->select($this->byId("complement"))->selectOptionByValue("2");
405            $this->select($this->byId("automatique"))->selectOptionByValue("Oui");
406            // On valide la modification
407            $this->byCssSelector("input[value='Ajouter']")->click();
408            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
409            $this->verifyNoErrors();
410            // On vérifie le message de validation
411            $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-bible .message")->text());
412            // On se déconnecte
413            $this->deconnect();
414    //
415            // On se connecte en tant que "instr"
416            $this->login("instr", "instr");
417            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
418            $this->verifyNoErrors();
419            // On clique sur le lien "Mes encours" dans le menu
420            $this->byLinkText("Mes Encours")->click();
421            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
422            $this->verifyNoErrors();
423            sleep(1);
424            // On clique sur le dossier dernièrement créé
425            $this->byLinkText($dossier)->click();
426            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
427            $this->verifyNoErrors();
428            // On clique sur l'onglet "Instruction"
429            $this->byId("instruction")->click();
430            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
431            $this->verifyNoErrors();
432            //Ajout d'une instruction simple
433            // On clique sur le lien d'ajout dans le tableau
434            $this->byCssSelector(".actions-max-1 a")->click();
435            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
436            $this->verifyNoErrors();
437            //On choisi l'événement CDEC majoration appel decision [majoration]
438            $this->select($this->byId("evenement"))->selectOptionByValue("22");
439            //On valide le formulaire
440            $this->byXPath("//input[@value='Ajouter']")->click();
441            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
442            $this->verifyNoErrors();
443            sleep(1);
444            $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
445            //On retourne sur le tableau d'instructions
446            $this->byCssSelector("#sousform-instruction .retour")->click();
447            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
448            $this->verifyNoErrors();
449            //On affiche l'instruction
450            $this->byLinkText("CDEC majoration appel decision")->click();
451            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
452            $this->verifyNoErrors();
453            //On vérifie que certains champs n'apparaissent pas
454            $this->assertFalse($this->byId("date_envoi_controle_legalite")->displayed());
455            $this->assertFalse($this->byId("date_retour_controle_legalite")->displayed());
456            //On retourne sur le tableau d'instructions
457            $this->byCssSelector("#sousform-instruction .retour")->click();
458            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
459            $this->verifyNoErrors();
460            //Ajout d'une instruction de type arrêté        
461            // On clique sur le lien d'ajout dans le tableau
462            $this->byCssSelector(".actions-max-1 a")->click();
463            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
464            $this->verifyNoErrors();
465            //On choisi l'événement "accepter un dossier sans réserve [acceptation]"
466            $this->select($this->byId("evenement"))->selectOptionByValue("81");
467            // On clique sur la bible automatique
468            $this->byLinkText('automatique')->click();
469            // On clique sur la bible
470            $this->byLinkText('bible')->click();
471            // On vérifie qu'il y est les enregistrments "V56" et "V64"
472            $this->assertRegExp('/^[\s\S]*V56[\s\S]*$/',
473                $this->byCssSelector("#tab-bible")->text());
474            $this->assertRegExp('/^[\s\S]*V64[\s\S]*$/',
475                $this->byCssSelector("#tab-bible")->text());
476            // On choisit plusieurs éléments
477            $this->byId('checkbox5')->click();
478            $this->byId('checkbox6')->click();
479          // On valide le formulaire          // On valide le formulaire
480          $this->click("//input[@value='Ajouter']");          $this->byXPath("//input[@value='Valider']")->click();
481          $this->verifyNoDatabaseError();          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
482          //          $this->verifyNoErrors();
483          $this->verifyTextPresent("Vos modifications ont bien été enregistrées.");          // On valide le formulaire
484            $this->byXPath("//input[@value='Ajouter']")->click();
485            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
486            $this->verifyNoErrors();
487            // On vérifie le message de validation
488            $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
489            //On retourne sur le tableau d'instructions
490            $this->byCssSelector("#sousform-instruction .retour")->click();
491            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
492            $this->verifyNoErrors();
493            // On clique sur l'instruction
494            $this->byLinkText("accepter un dossier sans réserve")->click();
495            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
496            $this->verifyNoErrors();
497            // On vérifie le contenu du champ "complément"
498            $this->assertContains("contenu 1", $this->byId("complement_om_html")->text());
499            $this->assertContains("Vu l'avis favorable de l'Architecte des Bâtiments de France en date du", $this->byId("complement_om_html")->text());
500            $this->assertContains("Vu l'avis favorable avec prescriptions de la Direction Régionale des Affaires Culturelles en date du", $this->byId("complement_om_html")->text());
501            $this->assertContains("contenu 2", $this->byId("complement2_om_html")->text());
502            //On vérifie que certains champs apparaissent
503            $this->assertTrue($this->byClassName("libelle-date_envoi_controle_legalite")->displayed());
504            $this->assertTrue($this->byClassName("libelle-date_envoi_controle_legalite")->displayed());
505            // On se déconnecte
506            $this->deconnect();
507    
508            //{{{
509            // Ajout de d'un nouveau dossier pour test d'ajout d'événement d'instruction
510            // sans lettretype
511            // On se connecte à l'application
512            $this->login("guichet", "guichet");
513            //On clique sur le menu des instructions
514            $this->byLinkText("Nouveau Dossier")->click();
515            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
516            $this->verifyNoErrors();
517            //On ajoute un nouveau dossier
518            $dossier = $this->addDossierInstruction(1, 1, "Test instruction sans édition");
519            // On se déconnecte
520            $this->deconnect();
521            // On se connecte en tant que "instr"
522            $this->login("instr", "instr");
523            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
524            $this->verifyNoErrors();
525            // On clique sur le lien "Mes encours" dans le menu
526            $this->byLinkText("Mes Encours")->click();
527            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
528            $this->verifyNoErrors();
529            sleep(1);
530            // On clique sur le dossier dernièrement créé
531            $this->byLinkText($dossier)->click();
532            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
533            $this->verifyNoErrors();
534            // On clique sur l'onglet "Instruction"
535            $this->byId("instruction")->click();
536            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
537            $this->verifyNoErrors();
538            //Ajout d'une instruction de refus
539            // On clique sur le lien d'ajout dans le tableau
540            $this->byCssSelector(".actions-max-1 a")->click();
541            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
542            $this->verifyNoErrors();
543            //On choisi l'événement Refus HS
544            $this->select($this->byId("evenement"))->selectOptionByValue("94");
545            //On valide le formulaire
546            $this->byXPath("//input[@value='Ajouter']")->click();
547            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
548            $this->verifyNoErrors();
549            // On vérifie le mesage de validation
550            $this->assertRegExp(
551                '/.*Vos modifications ont bien été enregistrées.*/',
552                $this->byCssSelector("#sousform-instruction .message .text")->text()
553            );
554            //On retourne sur le tableau d'instructions
555            $this->byCssSelector("#sousform-instruction .retour")->click();
556            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
557            $this->verifyNoErrors();
558            // On clique sur l'instruction
559            $this->byLinkText("Changer l'autorité compétente 'commune état'")->click();
560            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
561            $this->verifyNoErrors();
562            // On vérifie qu'il n'y a pas d'action "Édition" dans le portlet d'actions
563            $test = preg_match(
564                '/Édition/i',
565                $this->byCssSelector("#sousform-instruction #portlet-actions")->text()
566            );
567            $this->assertTrue(!$test);
568            // On vérifie qu'il n'y a pas d'action "Finaliser le document" dans
569            // le portlet d'actions
570            $test = preg_match(
571                '/Finaliser le document/i',
572                $this->byCssSelector("#sousform-instruction #portlet-actions")->text()
573            );
574            $this->assertTrue(!$test);
575            // On se déconnecte
576            $this->logout();
577            // }}}
578        }
579    
580        /**
581         * test le formulaire de la demande de type qui possède des select filtrés
582         */
583        public function test_05_ajout_lot() {
584            // On se connecte en tant que "instr"
585            $this->login("instr", "instr");
586            // On clique sur le lien "Mes encours" dans le menu
587            $this->byLinkText("Mes Encours")->click();
588            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
589            $this->verifyNoErrors();
590            // On clique sur le lien "AZ0130551200001P0" dans le tableau
591            $this->byLinkText("AZ 013055 12 00001P0")->click();
592            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
593            $this->verifyNoErrors();
594            // On clique sur l'onglet "Lot(s)"
595            $this->byId("lot")->click();
596            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
597            $this->verifyNoErrors();
598            // On clique sur le bouton d'ajout de lots
599            $this->byXPath("//div[@id='sousform-lot']/table/thead/tr/th/a/span")->click();
600            // Vérification des champs obligatoires
601            $this->byXPath("//input[@value='Ajouter']")->click();
602            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
603            $this->verifyNoErrors();
604            // On vérifie que le message de champ vide soit affiché
605            $this->assertRegExp('/.*SAISIE NON ENREGISTRÉE.*/', $this->byCssSelector("#sousform-lot .message .text")->text());
606            // Insertion d'un lot
607            $this->byId("libelle")->value("Lot n°1");
608            $this->byXPath("//input[@value='Ajouter']")->click();
609            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
610            $this->verifyNoErrors();
611            sleep(1);
612            // On retourne sur le tableau listant les lots
613            $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();
614            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
615            $this->verifyNoErrors();
616            // On clique sur le bouton d'ajout de lots
617            $this->byXPath("//div[@id='sousform-lot']/table/thead/tr/th/a/span")->click();
618            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
619            $this->verifyNoErrors();
620            // Insertion d'un second lot
621            $this->byId("libelle")->value("Lot n°2");
622            $this->byXPath("//input[@value='Ajouter']")->click();
623            sleep(1);
624            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
625            $this->verifyNoErrors();
626            // On retourne sur le tableau listant les lots
627            $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();
628            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
629            $this->verifyNoErrors();
630            // On se déconnecte
631            $this->logout();
632        }
633    //
634        /**
635         * test du lien automatique entre choix autorité compétente dans DI et
636         * évènement d'instruction à créer
637         */
638        // Fonction privé
639        private function modification_autorite_competente($utilisateur) {
640            // On se connecte à l'application
641            $this->login($utilisateur["login"], $utilisateur["mdp"]);
642            // Ouvre le menu
643            $this->openMenu("Instruction", $utilisateur);
644            // On clique sur le lien "Mes encours" dans le menu
645            $this->byLinkText("Recherche")->click();
646            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
647            $this->verifyNoErrors();
648            // On clique sur le lien "AZ0130551200001P0" dans le tableau
649            $this->byLinkText("AZ 013055 12 00001P0")->click();
650            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
651            $this->verifyNoErrors();
652            // On clique sur l'onglet "Instruction"
653            $this->byId("instruction")->click();
654            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
655            $this->verifyNoErrors();
656            // On clique sur le bouton d'ajout de lots
657            $this->byXPath("//div[@id='sousform-instruction']/table/thead/tr/th/a/span")->click();
658            // Vérification des champs obligatoires
659            $this->byXPath("//input[@value='Ajouter']")->click();
660            sleep(1);
661            //On choisi un événement
662            $this->select($this->byId("evenement"))->selectOptionByValue("94");
663            // Validation du formulaire
664            $this->byXPath("//input[@value='Ajouter']")->click();
665            sleep(1);
666            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
667            $this->verifyNoErrors();
668            $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
669            $this->byCssSelector("form[name=\"f2\"] > a.retour")->click();
670            // Retour à l'onglet principal
671            $this->byId("main")->click();
672            $this->refresh();
673            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
674            $this->verifyNoErrors();
675            // On verifie que l'autorité compétente à changée.
676            $this->assertRegExp('/.*Commune pour état*/', $this->byCssSelector("#tabs-1 #autorite_competente")->text());
677            // On se déconnecte
678            $this->deconnect();
679    //
680            // On se connecte en tant que "admin"
681            $this->login("admin", "admin");
682            sleep(1);
683            $this->byLinkText("Instruction")->click();
684            // On clique sur le lien "Recherche" dans le menu
685            $this->byLinkText("Recherche")->click();
686            // On clique sur le lien "AZ0130551200001P0" dans le tableau
687            $this->byLinkText("AZ 013055 12 00001P0")->click();
688            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
689            $this->verifyNoErrors();
690            // On verifie que l'autorité compétente à changée
691            $this->assertEquals('Commune pour état', $this->byCssSelector("#tabs-1 #autorite_competente")->text());
692            // On clique sur l'onglet "Instruction"
693            $this->byId("instruction")->click();
694            $this->byLinkText("Changer l'autorité compétente 'commune état'")->click();
695            sleep(1);
696            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
697            $this->verifyNoErrors();
698            // On supprime l'element et on verifie le retour de l'autorité "commune"
699            $this->byId("action-sousform-instruction-supprimer")->click();
700            // On valide le formulaire
701            $this->byXPath("//input[@value='Supprimer']")->click();sleep(1);
702            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
703            $this->verifyNoErrors();
704          // On clique sur le bouton retour          // On clique sur le bouton retour
705          $this->click("css=form[name=\"f2\"] > div.formControls > a.retour");          $this->byLinkText("Retour")->click();
706                    // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
707          //// Ajout de plusieurs consultations          $this->verifyNoErrors();
708          // On clique sur le bouton ajout multiple          // On vérifie que l'événement d'instruction n'est plus dans le tableau
709          $this->click("//div[@id='sousform-consultation']/table/thead/tr/th/a[2]/span");          $this->assertNotContains("Changer l'autorité compétente 'commune état'", $this->byId("sousform-instruction")->text());
710          $this->verifyNoDatabaseError();          // Retour à l'onglet principal
711          // On sélectionne trois servcies          $this->byId("main")->click();
712          $this->click("id=t10_572_0_");          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
713          $this->click("id=t10_575_0_");          $this->verifyNoErrors();
714          $this->click("id=t10_584_0_");          // On rafraîchit la page
715          // On les ajoute à la sélection          $this->refresh();
716          $this->click("id=add-ser-them");          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
717            $this->verifyNoErrors();
718            // On verifie que l'autorité compétente à changée.
719            $this->assertEquals('Commune', $this->byCssSelector("#tabs-1 #autorite_competente")->text());
720            // On se déconnecte
721            $this->deconnect();
722        }
723        // Fonction public
724        public function test_06_modification_autorite_competente() {
725            // Récupération des utilisateurs
726            $utilisateurs = $this->listUtlisateurs;
727            // Pour chaque utilisateur on lance le test
728            foreach ($utilisateurs as $utilisateur) {
729                //
730                $this->modification_autorite_competente($utilisateur);
731            }
732            // On vérifie la déconnexion
733            $this->verifyDeconnect();
734        }
735    //
736        /**
737         * test de l'ajout de données techniques au dossier
738         */
739        public function test_07_edition_donnees_techniques() {
740            // On se connecte en tant que "guichet"
741            $this->login("guichet", "guichet");
742            /** On instancie une nouvelle demande initial PCI **/
743            // On clique sur le menu "Guichet Unique"
744            $this->byLinkText("Guichet Unique")->click();
745            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
746            $this->verifyNoErrors();
747            // On clique sur le sous-menu "Nouveau Dossier"
748            $this->byLinkText("Nouveau Dossier")->click();
749            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
750            $this->verifyNoErrors();
751            $this->select($this->byName("dossier_autorisation_type_detaille"))->selectOptionByValue("7");
752            $dossier = $this->addDossierInstruction(1, 1, "Test cerfa");
753            // On se déconnecte
754            $this->deconnect();
755            // On se connecte en tant que "instr"
756            $this->login("admin", "admin");
757            sleep(1);
758            // Ouverture du menu de paramétrage des dossiers
759            $this->byLinkText("Paramétrage Dossiers")->click();
760            // Ouverture du menu des cerfa
761            $this->byLinkText("Cerfa")->click();
762            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
763            $this->verifyNoErrors();
764            // Ouverture d'un cerfa
765            $this->byLinkText("cerfa de test n°1")->click();
766            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
767            $this->verifyNoErrors();
768            // Modification du cerfa affiché
769            $this->byXPath("//div[@id='portlet-actions']/ul/li/a/span")->click();
770            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
771            $this->verifyNoErrors();
772            // On modifie la durée de validité
773            $this->byId("om_validite_fin")->clear();
774            $this->acceptAlert();
775            $this->byId("om_validite_fin")->value("31/12/2013");
776          // On valide le formulaire          // On valide le formulaire
777          $this->click("id=button_val");          $this->byXPath("//input[@value='Modifier']")->click();
778          $this->verifyNoDatabaseError();          // On vérifie le message de validation
779          //          $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text());
780          $this->verifyTextPresent("3 service(s) sélectionné(s) dont 0 consultation(s) papier.");          // On se déconnecte
781            $this->deconnect();
782            // On verifie que les données techniques sont toujours disponibles
783            // On se connecte en tant que "instr"
784            $this->login("instr", "instr");
785            // On clique sur le lien "Mes encours" dans le menu
786            $this->byLinkText("Mes Encours")->click();
787            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
788            $this->verifyNoErrors();
789            // On clique sur le lien "PC 013055 12 00002P0" dans le tableau
790            $this->byLinkText($dossier)->click();
791            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
792            $this->verifyNoErrors();
793            // On click sur le lien "Données techniques"
794            $this->byXPath("//div[@id='portlet-actions']/ul/li[2]/a/span")->click();
795            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
796            $this->verifyNoErrors();
797            sleep(1);
798            // Vérification des fieldset
799            $this->assertContains("Aménager", $this->byCssSelector("#sousform-donnees_techniques #form-content")->text());
800            $this->assertContains("Construire", $this->byCssSelector("#sousform-donnees_techniques #form-content")->text());
801            $this->assertContains("Démolir", $this->byCssSelector("#sousform-donnees_techniques #form-content")->text());
802            $this->byCssSelector(".ui-dialog-titlebar-close")->click();
803            // On se déconnecte
804            $this->deconnect();
805            // On se connecte en tant que "admin"
806            $this->login("admin", "admin");
807            sleep(1);
808            // Ouverture du menu de paramétrage des dossiers
809            $this->byLinkText("Paramétrage Dossiers")->click();
810            // Ouverture du menu des cerfa
811            $this->byLinkText("Cerfa")->click();
812            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
813            $this->verifyNoErrors();
814            //On clique sur le "+" du tableau
815            $this->byClassName("add-16")->click();
816            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
817            $this->verifyNoErrors();
818            $this->byId("libelle")->value("test cerfa 2");
819            $this->byId("code")->value("cerfa 2");
820            $this->byId("om_validite_debut")->value("01/04/2014");
821            $this->byId("om_validite_fin")->value("01/04/2018");
822            // Ajout de champs au formulaire des données techniques
823            $this->byXPath("//div[@id='form-content']/div[2]/fieldset/legend")->click();
824            $this->byId("terr_juri_titul")->click();
825            $this->byId("terr_juri_lot")->click();
826            $this->byId("terr_juri_zac")->click();
827            $this->byId("terr_juri_afu")->click();
828            $this->byId("terr_juri_pup")->click();
829            $this->byId("terr_juri_oin")->click();
830            $this->byId("terr_juri_desc")->click();
831            // Validation du formulaire
832            $this->byXPath("//input[@value='Ajouter']")->click();
833            // Vérification des erreurs
834            $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector(".message .text")->text());
835            $this->byLinkText("Retour")->click();
836            // Ouverture du menu des DATD
837            $this->byLinkText("Type DA Détaillé")->click();
838            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
839            $this->verifyNoErrors();
840            // Ouverture du PCI
841            $this->byLinkText("PCI")->click();
842            // Modification du DATD affiché
843            $this->byXPath("//div[@id='portlet-actions']/ul/li/a/span")->click();
844            $this->select($this->byId("cerfa"))->clearSelectedOptions();
845            $this->select($this->byName("cerfa"))->selectOptionByLabel("test cerfa 2");
846            // On valide le formulaire
847            $this->byXPath("//input[@value='Modifier']")->click();
848            // On vérifie le message de validation
849            $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text());
850            // On clique sur "Retour"
851            $this->byLinkText("Retour")->click();
852            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
853            $this->verifyNoErrors();
854            // On clique sur "Retour"
855            $this->byLinkText("Retour")->click();
856            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
857            $this->verifyNoErrors();
858            // Ouverture du PCI
859            $this->byLinkText("AZ")->click();
860            // Modification du DATD affiché
861            $this->byXPath("//div[@id='portlet-actions']/ul/li/a/span")->click();
862            $this->select($this->byName("cerfa"))->selectOptionByValue("");
863            // On valide le formulaire
864            $this->byXPath("//input[@value='Modifier']")->click();
865            // On vérifie le message de validation
866            $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text());
867            // On clique sur "Retour"
868            $this->byLinkText("Retour")->click();
869            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
870            $this->verifyNoErrors();
871            // On se déconnecte
872            $this->deconnect();
873            // On verifie que les données techniques sont toujours disponibles
874            // On se connecte en tant que "instr"
875            $this->login("instr", "instr");
876            // On clique sur le lien "Mes encours" dans le menu
877            $this->byLinkText("Mes Encours")->click();
878            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
879            $this->verifyNoErrors();
880            // On clique sur le lien "AZ0130551200001P0" dans le tableau
881            $this->byLinkText($dossier)->click();
882            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
883            $this->verifyNoErrors();
884            // On click sur le lien "Données techniques"
885            $this->byXPath("//div[@id='portlet-actions']/ul/li[2]/a/span")->click();
886            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
887            $this->verifyNoErrors();
888            // Vérification des fieldset
889            $this->assertContains("Aménager", $this->byCssSelector("#sousform-donnees_techniques #form-content")->text());
890            $this->assertContains("Construire", $this->byCssSelector("#sousform-donnees_techniques #form-content")->text());
891            $this->assertContains("Démolir", $this->byCssSelector("#sousform-donnees_techniques #form-content")->text());
892            $this->byCssSelector(".ui-dialog-titlebar-close")->click();
893            // On se déconnecte
894            $this->deconnect();
895            // On se connecte en tant que "instr"
896            $this->login("guichet", "guichet");
897            /** On instancie une nouvelle demande initial PCI **/
898            // On clique sur le menu "Guichet Unique"
899            $this->byLinkText("Guichet Unique")->click();
900            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
901            $this->verifyNoErrors();
902            // On clique sur le sous-menu "Nouveau Dossier"
903            $this->byLinkText("Nouveau Dossier")->click();
904            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
905            $this->verifyNoErrors();
906            $this->select($this->byName("dossier_autorisation_type_detaille"))->selectOptionByValue("7");
907            $dossier = $this->addDossierInstruction(1, 1, "Test cerfa");
908            // On se déconnecte
909            $this->deconnect();
910            // On se connecte en tant que "instr"
911            $this->login("instr", "instr");
912            // On clique sur le lien "Mes encours" dans le menu
913            $this->byLinkText("Mes Encours")->click();
914            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
915            $this->verifyNoErrors();
916            //On cherche le service
917            $this->byName("recherche")->value(str_replace(" ","",$dossier));
918            //On valide
919            $this->byName("s1")->click();
920            // On clique sur le lien "AZ0130551200001P0" dans le tableau
921            $this->byLinkText($dossier)->click();
922            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
923            $this->verifyNoErrors();
924            // On click sur le lien "Données techniques"
925            $this->byXPath("//div[@id='portlet-actions']/ul/li[2]/a/span")->click();
926            sleep(1);
927            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
928            $this->verifyNoErrors();
929            $this->assertRegExp('/^[\s\S]*Terrain[\s\S]*$/', $this->byCssSelector("#sousform-donnees_techniques #form-content")->text());
930            $this->byCssSelector(".ui-dialog-titlebar-close")->click();
931            // On se déconnecte
932            $this->deconnect();
933            // On se connecte en tant que "instr"
934            $this->login("admin", "admin");
935            sleep(1);
936            // Ouverture du menu de paramétrage des dossiers
937            $this->byLinkText("Paramétrage Dossiers")->click();
938            // Ouverture du menu des cerfa
939            $this->byLinkText("Cerfa")->click();
940            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
941            $this->verifyNoErrors();
942            // Afficher les éléments expirés
943            $this->byLinkText("Afficher les éléments expirés")->click();
944            sleep(0.5);
945            // Ouverture d'un cerfa
946            $this->byLinkText("cerfa de test n°1")->click();
947            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
948            $this->verifyNoErrors();
949            // Modification du cerfa affiché
950            $this->byXPath("//div[@id='portlet-actions']/ul/li/a/span")->click();
951            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
952            $this->verifyNoErrors();
953            // On modifie la durée de validité
954            $this->byId("om_validite_fin")->clear();
955            $this->acceptAlert();
956            $this->byId("om_validite_fin")->value("31/12/2018");
957            // On valide le formulaire
958            $this->byXPath("//input[@value='Modifier']")->click();
959            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
960            $this->verifyNoErrors();
961            // Ouverture du menu des DATD
962            $this->byLinkText("Type DA Détaillé")->click();
963            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
964            $this->verifyNoErrors();
965            // Ouverture du PCI
966            $this->byLinkText("PCI")->click();
967            // Modification du DATD affiché
968            $this->byXPath("//div[@id='portlet-actions']/ul/li/a/span")->click();
969            $this->select($this->byId("cerfa"))->clearSelectedOptions();
970            $this->select($this->byName("cerfa"))->selectOptionByLabel("cerfa de test n°1");
971            // On valide le formulaire
972            $this->byXPath("//input[@value='Modifier']")->click();
973            // On vérifie le message de validation
974            $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text());
975            // On clique sur "Retour"
976            $this->byLinkText("Retour")->click();
977            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
978            $this->verifyNoErrors();
979            // On clique sur "Retour"
980            $this->byLinkText("Retour")->click();
981            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
982            $this->verifyNoErrors();
983            // Ouverture du PCI
984            $this->byLinkText("AZ")->click();
985            // Modification du DATD affiché
986            $this->byXPath("//div[@id='portlet-actions']/ul/li/a/span")->click();
987            $this->select($this->byName("cerfa"))->selectOptionByLabel("cerfa de test n°1");
988            // On valide le formulaire
989            $this->byXPath("//input[@value='Modifier']")->click();
990            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
991            $this->verifyNoErrors();
992            // On se déconnecte
993            $this->logout();
994        }
995    //
996        /**
997         * test un événement d'instruction qui a un événement "retour"
998         */
999        public function test_08_evenement_instruction_retour() {
1000    //
1001            // On se connecte à l'application en tant qu'administrateur
1002            $this->login("admin", "admin");
1003            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1004            $this->verifyNoErrors();
1005    //
1006            /** On ajoute une action "retour signature" **/
1007            // On clique sur le menu "Paramétrage Dossiers"
1008            $this->byLinkText("Paramétrage Dossiers")->click();
1009            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1010            $this->verifyNoErrors();
1011            // On clique sur le sous-menu "Action"
1012            $this->byLinkText("Action")->click();
1013            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1014            $this->verifyNoErrors();
1015            // On clique sur le bouton "ajouter"
1016            $this->byId("action-tab-action-corner-ajouter")->click();
1017            // On remplis les champs
1018            $this->byId("action")->value("retour signature");
1019            $this->byId("libelle")->value("retour signature");
1020            $this->byId("regle_etat")->value("etat");
1021            $this->byId("regle_date_validite")->value("date_retour_signature + duree_validite");
1022            // On valide le formulaire
1023            $this->byXPath("//input[@value='Ajouter']")->click();
1024            // On vérifie le message de validation
1025            $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text());
1026            /** Fin **/
1027    //
1028            /** On ajoute un événement "retour signature" **/
1029            // On clique sur le sous-menu "Événement"
1030            $this->byLinkText("Événement")->click();
1031            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1032            $this->verifyNoErrors();
1033            // On clique sur le bouton "ajouter"
1034            $this->byId("action-tab-evenement-corner-ajouter")->click();
1035            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1036            $this->verifyNoErrors();
1037            // On remplis les champs
1038            $this->byId("libelle")->value("retour signature");
1039            $this->byId("retour")->click();
1040            $this->select($this->byName("etats_depuis_lequel_l_evenement_est_disponible[]"))->clearSelectedOptions();;
1041            $this->select($this->byName("etats_depuis_lequel_l_evenement_est_disponible[]"))->selectOptionByLabel("dossier accepter");
1042            $this->select($this->byName("dossier_instruction_type[]"))->clearSelectedOptions();
1043            $this->select($this->byName("dossier_instruction_type[]"))->selectOptionByLabel("PCI - P - Initial");
1044            $this->select($this->byId("action"))->selectOptionByLabel("retour signature");
1045            // On valide le formulaire
1046            $this->byXPath("//input[@value='Ajouter']")->click();
1047            // On vérifie le message de validation
1048            $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text());
1049            // On clique sur "Retour"
1050            $this->byLinkText("Retour")->click();
1051            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1052            $this->verifyNoErrors();
1053            // On recherche l'événement "accepter un dossier sans réserve"
1054            $this->byCssSelector("input[name='recherche']")->value('accepter un dossier sans réserve');
1055            // On clique sur le bouton recherche
1056            $this->byCssSelector(".ui-button")->click();
1057            // On clique sur le résultat
1058            $this->byLinkText("accepter un dossier sans réserve")->click();
1059            // On clique sur le bouton "Modifier"
1060            $this->byId('action-form-evenement-modifier')->click();
1061            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1062            $this->verifyNoErrors();
1063            // On sélectionne l'événement "retour" dans "evenement_retour_signature"
1064            $this->select($this->byId("evenement_retour_signature"))->selectOptionByLabel("retour signature");
1065            // On valide le formulaire
1066            $this->byXPath("//input[@value='Modifier']")->click();
1067            // On vérifie le message de validation
1068            $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text());
1069            /** Fin **/
1070    //
1071            /** On ajoute une durée de validité au type de DA PCI **/
1072            // On clique sur le sous-menu "Type DA Détaillé"
1073            $this->byLinkText("Type DA Détaillé")->click();
1074            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1075            $this->verifyNoErrors();
1076            // On clique sur le PCI
1077            $this->byLinkText("PCI")->click();
1078            // On clique sur le bouton "modifier"
1079            $this->byId("action-form-dossier_autorisation_type_detaille-modifier")->click();
1080            // On modifie la durée de validité
1081            $this->byId("duree_validite_parametrage")->clear();
1082            $this->byId("duree_validite_parametrage")->value("5");
1083            // On valide le formulaire
1084            $this->byXPath("//input[@value='Modifier']")->click();
1085            // On vérifie le message de validation
1086            $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text());
1087            /** Fin **/
1088    //
1089            /** On instancie une nouvelle demande initial PCI **/
1090            // On clique sur le menu "Guichet Unique"
1091            $this->byLinkText("Guichet Unique")->click();
1092            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1093            $this->verifyNoErrors();
1094            // On clique sur le sous-menu "Nouveau Dossier"
1095            $this->byLinkText("Nouveau Dossier")->click();
1096            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1097            $this->verifyNoErrors();
1098            // On selectionne le type de dossier d'autorisation détaillé "Permis de construire pour une maison individuelle et / ou ses annexes"
1099            $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel("Permis de construire pour une maison individuelle et / ou ses annexes");
1100            // On selectionne le type de demande "Dépôt Initial"
1101            $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
1102            // On clique pour ajouter un pétitionnaire principale
1103            $this->byId("add_petitionnaire_principal")->click();
1104            // On remplit le champ
1105            $this->byId("particulier_nom")->value("DURAND");
1106            // On remplit le champ
1107            $this->byId("particulier_prenom")->value("MICKAEL");
1108            // On remplit le champ
1109            $this->byId("particulier_date_naissance")->value("03/01/1956");
1110            // On remplit le champ
1111            $this->byId("particulier_commune_naissance")->value("LILLE");
1112            // On remplit le champ
1113            $this->byId("particulier_departement_naissance")->value("NORD");
1114            // On remplit le champ
1115            $this->byId("numero")->value("12");
1116            // On remplit le champ
1117            $this->byId("voie")->value("RUE DE LA LOI");
1118            // On remplit le champ
1119            $this->byId("complement")->value("APPT 12");
1120            // On remplit le champ
1121            $this->byId("localite")->value("MARSEILLE");
1122            // On remplit le champ
1123            $this->byId("code_postal")->value("13012");
1124            // On remplit le champ
1125            $this->byId("telephone_fixe")->value("0404040404");
1126            // On clique sur ajouter
1127            $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
1128            // On vérifie le message
1129            $this->assertContains("Vos modifications ont bien été enregistrées", $this->byCssSelector("#sousform-petitionnaire .message")->text());
1130            // On clique sur le bouton retour
1131            $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
1132            // On vérifie que le text est présent
1133            $this->assertContains("DURAND MICKAEL",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
1134            // On clique sur ajouter
1135            $this->byXPath("//input[@value='Ajouter']")->click();
1136            // On vérifie le message
1137            $this->assertContains("Création du dossier d'autorisation n°",$this->byCssSelector(".message .text")->text());
1138            // Récupération du numéro de dossier
1139            preg_match('/(PC)[0-9 ]*(P0)/', $this->byCssSelector(".message .text")->text(), $dossier);
1140            $dossier = $dossier[0];
1141            /** Fin **/
1142    //
1143            /** On ajoute une instruction de dossier accepter et on la finalise **/
1144            // On clique sur le menu "Instruction"
1145            $this->byLinkText("Instruction")->click();
1146            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1147            $this->verifyNoErrors();
1148            // On clique sur le sous-menu "Recherche"
1149            $this->byLinkText("Recherche")->click();
1150            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1151            $this->verifyNoErrors();
1152            // On recherche le dossier crée
1153            $this->byId("dossier")->value(str_replace(' ', '', $dossier));
1154            // On clique sur le bouton recherche
1155            $this->byId("adv-search-submit")->click();
1156            // On clique sur le résultat
1157            $this->byLinkText($dossier)->click();
1158            // On clique sur l'onglet "Instruction"
1159            $this->byId("instruction")->click();
1160            // On ajoute un événement d'instruction
1161            $this->byId("action-soustab-instruction-corner-ajouter")->click();
1162            // On choisit un signataire Albert Dupont
1163            $this->select($this->byId("signataire_arrete"))->selectOptionByValue("1");
1164            //On choisit l'instruction 'accepter un dossier sans réserve
1165            //[acceptation]'
1166            $this->select($this->byId("evenement"))->selectOptionByValue(81);
1167            // On valide le formulaire
1168            $this->byXPath("//input[@value='Ajouter']")->click();
1169            // On vérifie le message
1170            $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message .text")->text());
1171            // On clique sur le bouton "retour"
1172            $this->byLinkText("Retour")->click();
1173            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1174            $this->verifyNoErrors();
1175            // On clique sur l'événement d'instruction "accepter un dossier sans réserve"
1176            $this->byLinkText("accepter un dossier sans réserve")->click();
1177            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1178            $this->verifyNoErrors();
1179            // On valide l'instruction
1180            $this->byId("action-sousform-instruction-finalisation")->click();
1181            // On vérifie le message de validation
1182            $this->assertContains("La finalisation du document s'est effectuée avec succès.",$this->byCssSelector(".message .text")->text());
1183            // On clique sur le bouton "Retour"
1184            $this->byLinkText("Retour")->click();
1185            // On clique sur l'événement "accepter un dossier sans réserve"
1186            $this->byLinkText("accepter un dossier sans réserve")->click();sleep(1);
1187            // Récupération du numéro d'événement
1188            $evenement = $this->byCssSelector("#instruction.field_value")->text();
1189            /** Fin **/
1190    //
1191            /** On met à jour la date de retour signature **/
1192            // Date de retour signature
1193            $date_retour_signature = date("d/m/Y", mktime(0, 0, 0, date("m"), date("d")+5,  date("Y")));
1194            // On clique sur le menu "Suivi"
1195            $this->byLinkText("Suivi")->click();
1196            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1197            $this->verifyNoErrors();
1198            // On clique sur le sous-menu "Mise À Jour Des Dates"
1199            $this->byLinkText("Mise À Jour Des Dates")->click();
1200            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1201            $this->verifyNoErrors();
1202            // On sélectionne "date de retour de signature + Envoi contrôle légalite"
1203            $this->select($this->byId("type_mise_a_jour"))->selectOptionByLabel("date de retour de signature + Envoi contrôle légalite");
1204            // On remplit à la date du jour + 5 jours
1205            $this->byId("date")->value($date_retour_signature);
1206            // On remplit le code barres de l'instruction
1207            $this->byId("code_barres")->value("11".str_pad($evenement, 10, "0", STR_PAD_LEFT));
1208            // On clique sur Valider
1209            $this->byCssSelector("#suivi_mise_a_jour_des_dates_form div.formControls input.om-button")->click();sleep(1);
1210            // On vérifie la synthèse avec le numéro du dossier et l'événement
1211            $this->assertContains($dossier, $this->byId("dossier_libelle")->text());
1212            $this->assertContains("accepter un dossier sans réserve", $this->byId("evenement")->text());
1213            // On clique sur Valider
1214            $this->byCssSelector("#suivi_mise_a_jour_des_dates_form div.formControls input.om-button")->click();
1215            // On vérifie le message de validation
1216            $this->assertContains("Saisie enregistrée",$this->byCssSelector(".message .text")->text());
1217            /** Fin **/
1218    //
1219            /** Vérifie l'instruction "retour" et le DI **/
1220            // Date de validité
1221            $date_validite = $this->mois_date(date("Y-m-d", mktime(0, 0, 0, date("m"), date("d")+5,  date("Y"))), 5, "+");
1222            $date_validite = date("d/m/Y", strtotime($date_validite));
1223            // On clique sur le menu "Instruction"
1224            $this->byLinkText("Instruction")->click();
1225            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1226            $this->verifyNoErrors();
1227            // On clique sur le sous-menu "Recherche"
1228            $this->byLinkText("Recherche")->click();
1229            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1230            $this->verifyNoErrors();
1231            // On recherche le dossier crée
1232            $this->byId("dossier")->value(str_replace(' ', '', $dossier));
1233            // On clique sur le bouton recherche
1234            $this->byId("adv-search-submit")->click();
1235            // On clique sur le résultat
1236            $this->byLinkText($dossier)->click();
1237            // On vérifie la date de validité mise à jour par l'action
1238            $this->assertContains($date_validite, $this->byId("date_validite")->text());
1239            // On clique sur l'onglet "Instruction"
1240            $this->byId("instruction")->click();
1241            // On clique sur l'instruction "retour signature"
1242            $this->byLinkText("retour signature")->click();
1243            // On contrôle la date de retour signature
1244            $this->assertContains($date_retour_signature, $this->byId("date_retour_signature")->text());
1245            /** Fin **/
1246    //
1247            // On se déconnecte
1248            $this->logout();
1249    //
1250        }
1251        //
1252        /**
1253         * test la suppression d'un événement d'instruction lié à une demande qui ne
1254         * créée pas de nouveau dossier d'instruction
1255         */
1256        public function test_09_suppression_evenement_demande(){
1257            //
1258            //Ajout du paramétrage d'une nouvelle demande
1259            // On se connecte à l'application en tant qu'administrateur
1260            $this->login("admin", "admin");
1261            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1262            $this->verifyNoErrors();
1263            //On clique sur "Paramétrage dossier"
1264            $this->byLinkText("Paramétrage Dossiers")->click();
1265            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1266            $this->verifyNoErrors();
1267            //On clique sur Type
1268            $this->byLinkText("Type")->click();
1269            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1270            $this->verifyNoErrors();
1271            //On clique sur le "+" du tableau
1272            $this->byClassName("add-16")->click();
1273            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1274            $this->verifyNoErrors();
1275            //On saisit le type de la demande
1276            $this->byId("code")->value("test_09_suppression");
1277            $this->byId("libelle")->value("test_09_suppression");
1278            // On sélectionne le groupe 'Autorisation ADS'
1279            $this->select($this->byId("groupe"))->selectOptionByValue("1");sleep(1);
1280            // On sélectionne 'AZ (Demande d'autorisation spéciale de travaux dans
1281            // le périmètre d'une AVAP)'
1282            $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByValue("7");sleep(1);
1283            // On sélectionne la nature 'Dossier existant'
1284            $this->select($this->byId("demande_nature"))->selectOptionByValue("2");
1285            // On sélectionne l'état 'En cours'
1286            $this->select($this->byName("etats_dossier_autorisation_autorises[]"))->selectOptionByValue("1");
1287            // On sélectionne l'événement 'Defrichement soumis a enquete publique'
1288            $this->select($this->byId("evenement"))->selectOptionByValue("15");
1289            // On sélectionne la contrainte 'Avec récupération demandeur'
1290            $this->select($this->byId("contraintes"))->selectOptionByValue("avec_recup");
1291            // On clique sur le bouton ajouter
1292            $this->byXPath("//input[@value='Ajouter']")->click();
1293            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1294            $this->verifyNoErrors();
1295            // On vérifie que le type de demande a bien été ajouté
1296            $this->assertContains('Vos modifications ont bien été enregistrées', $this->byCssSelector(".message .text")->text());
1297            //On se déconnecte
1298            $this->deconnect();
1299            //
1300            //Création d'un nouveau dossier d'instruction
1301            // On se connecte à l'application
1302            $this->login("guichet", "guichet");
1303            //On clique sur "Dossier En Cours"
1304            $this->byLinkText("Dossier En Cours")->click();
1305            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1306            $this->verifyNoErrors();
1307            //On clique sur le dossier "AZ0130551200001P0"
1308            $this->byId("action-tab-demande_dossier_encours-left-consulter-AZ0130551200001P0")->click();
1309            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1310            $this->verifyNoErrors();
1311            //On sélectionne le type de la demande
1312            $this->select($this->byId("demande_type"))->selectOptionByLabel("test_09_suppression");sleep(1);
1313            // On clique sur le bouton ajouter
1314            $this->byXPath("//input[@value='Ajouter']")->click();
1315            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1316            $this->verifyNoErrors();
1317            // On vérifie que le type de demande a bien été ajouté
1318            $this->assertContains('Vos modifications ont bien été enregistrées', $this->byCssSelector(".message .text")->text());
1319            //On se déconnecte
1320            $this->deconnect();
1321            //
1322            //Suppression de l'événement d'instruction
1323            // On se connecte à l'application
1324            $this->login("admin", "admin");
1325            //On clique sur le menu "Instruction"
1326            $this->byLinkText("Instruction")->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 menu "Recherche"
1330            $this->byLinkText("Recherche")->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 le dossier "AZ 013055 12 00001P0"
1334            $this->byLinkText("AZ 013055 12 00001P0")->click();
1335            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1336            $this->verifyNoErrors();
1337            //On clique sur l'onglet "Instruction"
1338            $this->byId("instruction")->click();
1339            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1340            $this->verifyNoErrors();
1341            //On clique sur l'instruction "Defrichement soumis a enquete publique"
1342            $this->byLinkText("Defrichement soumis a enquete publique")->click();
1343            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1344            $this->verifyNoErrors();
1345            //On définalise l'instruction
1346            $this->byClassName("definalise")->click();
1347            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1348            $this->verifyNoErrors();
1349            //On clique "Supprimer"
1350            $this->byCssSelector("#sousform-instruction .delete-16")->click();
1351            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1352            $this->verifyNoErrors();
1353            //On clique sur supprimer
1354            $this->byXPath("//input[@value='Supprimer']")->click();
1355            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1356            $this->verifyNoErrors();
1357            //On vérifie que lasuppression a été éffectuée
1358            $this->assertContains("La suppression a été correctement effectuée.",
1359                $this->byCssSelector("#sousform-instruction .message .text")->text());
1360            // On se déconnecte
1361            $this->logout();
1362        }
1363    //
1364        /**
1365         * test sur les types d'éditions des consultations
1366         */
1367        function test_10_nouveau_type_edition_consultation(){
1368            //
1369            //On saisit un service de test        
1370            // On se connecte à l'application
1371            $this->login("admin", "admin");
1372            //On clique sur "Paramétrage"
1373            $this->byLinkText("Paramétrage")->click();
1374            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1375            $this->verifyNoErrors();
1376            //On clique sur "Service"
1377            $this->byLinkText("Service")->click();
1378            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1379            $this->verifyNoErrors();        
1380            //On clique sur le "+" du tableau
1381            $this->byClassName("add-16")->click();
1382            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1383            $this->verifyNoErrors();
1384            //On saisit les données du service
1385            $this->byId("abrege")->value("test_10");
1386            $this->byId("libelle")->value("test_10");
1387            $this->byId("consultation_papier")->click();
1388            $this->select($this->byId("edition"))->selectOptionByLabel("test_10");
1389            // On clique sur le bouton ajouter
1390            $this->byXPath("//input[@value='Ajouter']")->click();
1391            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1392            $this->verifyNoErrors();
1393            // On vérifie que le service a bien été ajouté
1394            $this->assertContains('Vos modifications ont bien été enregistrées', $this->byCssSelector(".message .text")->text());
1395            //On se déconnecte
1396            $this->deconnect();
1397            //
1398            //On ajoute une consultation sur un dossier et on vérifie l'édition
1399            // On se connecte à l'application
1400            $this->login("instr", "instr");
1401            //On clique sur "Recherche"
1402            $this->byLinkText("Recherche")->click();
1403            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1404            $this->verifyNoErrors();
1405            //On choisit le dossier "AZ 013055 12 00001P0"
1406            $this->byLinkText("AZ 013055 12 00001P0")->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 l'onglet "Consultation"
1410            $this->byId("consultation")->click();
1411            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1412            $this->verifyNoErrors();
1413            //On clique sur le "+" du tableau
1414            $this->byClassName("add-16")->click();
1415            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1416            $this->verifyNoErrors();
1417            //On saist une nouvelle consultation
1418            $this->select($this->byId("service"))->selectOptionByLabel("test_10");
1419            // On clique sur le bouton ajouter
1420            $this->byXPath("//input[@value='Ajouter']")->click();
1421            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1422            $this->verifyNoErrors();
1423            // On vérifie que la consultation a bien été ajoutée
1424            $this->assertContains('Vos modifications ont bien été enregistrées', $this->byCssSelector(".message .text")->text());
1425            //On clique sur retour
1426            $this->byCssSelector("#sousform-consultation .retour")->click();
1427            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1428            $this->verifyNoErrors();
1429            //On clique sur la consultation au service "test_10"
1430            $this->byLinkText("test_10")->click();
1431            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1432            $this->verifyNoErrors();
1433            //On affiche le PDF
1434            $this->byId("action-sousform-consultation-pdfetat")->click();sleep(5);
1435            // Liste les fenêtres
1436            $windows = $this->windowHandles();
1437            // Change la fenêtre
1438            $this->window($windows[1]);
1439            // On vérifie qu'il n'y ait pas d'erreur
1440            $this->verifynoerrors();
1441            // On vérifie que le text est présent
1442            $this->assertContains("test_10",$this->source());
1443            $this->assertNotContains("test_10_2",$this->source());
1444            // On ferme la fenêtre
1445            $this->closeWindow();
1446            // On change le focus de la fenêtre
1447            $this->window($windows[0]);
1448            //On se déconnecte
1449            $this->deconnect();
1450            //
1451            //On change l'édition
1452            // On se connecte à l'application
1453            $this->login("admin", "admin");
1454            //On clique sur "Paramétrage"
1455            $this->byLinkText("Paramétrage")->click();
1456            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1457            $this->verifyNoErrors();
1458            //On clique sur "Service"
1459            $this->byLinkText("Service")->click();
1460            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1461            $this->verifyNoErrors();
1462            //On cherche le service
1463            $this->byName("recherche")->value("test_10");
1464            //On valide
1465            $this->byName("s1")->click();
1466            //On clique sur le service test_10
1467            $this->byLinkText("test_10")->click();
1468            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1469            $this->verifyNoErrors();
1470            //On clique sur "Modifier" dans le portail d'action
1471            $this->byClassName("edit-16")->click();
1472            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1473            $this->verifyNoErrors();
1474            //On choisit une seconde édition
1475            $this->select($this->byId("edition"))->selectOptionByLabel("test_10_2");
1476            // On clique sur le bouton ajouter
1477            $this->byXPath("//input[@value='Modifier']")->click();
1478            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1479            $this->verifyNoErrors();
1480            // On vérifie que le service a bien été ajouté
1481            $this->assertContains('Vos modifications ont bien été enregistrées', $this->byCssSelector(".message .text")->text());
1482            //On se déconnecte
1483            $this->deconnect();
1484            //
1485            //On vérifie que c'est la bonne édition qui est affiché
1486            // On se connecte à l'application
1487            $this->login("instr", "instr");
1488            //On clique sur "Recherche"
1489            $this->byLinkText("Recherche")->click();
1490            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1491            $this->verifyNoErrors();
1492            //On choisit le dossier "AZ 013055 12 00001P0"
1493            $this->byLinkText("AZ 013055 12 00001P0")->click();
1494            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1495            $this->verifyNoErrors();
1496            //On clique sur l'onglet "Consultation"
1497            $this->byId("consultation")->click();
1498            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1499            $this->verifyNoErrors();
1500            //On clique sur la consultation au service "test_10"
1501            $this->byLinkText("test_10")->click();
1502            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1503            $this->verifyNoErrors();
1504            //on definalise la consultaion
1505            $this->byClassName("definalise")->click();
1506            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1507            $this->verifyNoErrors();
1508            //On vérifie que la consultation s'est bien définalisée
1509            $this->assertEquals('La definalisation du document s\'est effectuée avec succès.', $this->byCssSelector("#sousform-consultation .message .text")->text());sleep(10);
1510            //On affiche le PDF
1511            $this->byId("action-sousform-consultation-pdfetat")->click();sleep(5);
1512            // Liste les fenêtres
1513            $windows = $this->windowHandles();
1514            // Change la fenêtre
1515            $this->window($windows[1]);
1516            // On vérifie qu'il n'y ait pas d'erreur
1517            $this->verifynoerrors();
1518            // On vérifie que le text est présent
1519            $this->assertContains("test_10_2",$this->source());
1520            // On ferme la fenêtre
1521            $this->closeWindow();
1522            // On change le focus de la fenêtre
1523            $this->window($windows[0]);
1524            //
1525            // On se déconnecte
1526            $this->logout();
1527        }
1528    //
1529        /**
1530         * test sur un événement non verrouillable
1531         */
1532        public function test_11_evenement_non_verrouillable(){
1533    //
1534            /* On crée une nouvelle demande initial */
1535            // On se connecte à l'application
1536            $this->login("guichet", "guichet");
1537            // On clique sur le menu "Nouveau Dossier"
1538            $this->byLinkText("Nouveau Dossier")->click();
1539            // On vérifie qu'il n'y ait pas d'erreur
1540            $this->verifynoerrors();
1541            // On vérifie le nom de l'onglet
1542            $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
1543            // On sélectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
1544            $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel("Permis de construire pour une maison individuelle et / ou ses annexes");
1545            // On selectionne le label "Dépôt Initial"
1546            $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
1547            // On clique pour ajouter un pétitionnaire principale
1548            $this->byId("add_petitionnaire_principal")->click();
1549            // On remplit le champ
1550            $this->byId("particulier_nom")->value("DURAND");
1551            // On remplit le champ
1552            $this->byId("particulier_prenom")->value("MICKAEL");
1553            // On remplit le champ
1554            $this->byId("particulier_date_naissance")->value("03/01/1956");
1555            // On remplit le champ
1556            $this->byId("particulier_commune_naissance")->value("LILLE");
1557            // On remplit le champ
1558            $this->byId("particulier_departement_naissance")->value("NORD");
1559            // On remplit le champ
1560            $this->byId("numero")->value("12");
1561            // On remplit le champ
1562            $this->byId("voie")->value("RUE DE LA LOI");
1563            // On remplit le champ
1564            $this->byId("complement")->value("APPT 12");
1565            // On remplit le champ
1566            $this->byId("localite")->value("MARSEILLE");
1567            // On remplit le champ
1568            $this->byId("code_postal")->value("13012");
1569            // On remplit le champ
1570            $this->byId("telephone_fixe")->value("0404040404");
1571            // On clique sur ajouter
1572            $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
1573            // On vérifie qu'il n'y ait pas d'erreur
1574            $this->verifynoerrors();
1575            // On vérifie le message
1576            $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-petitionnaire .message")->text());
1577            // On clique sur le bouton retour
1578            $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
1579            // On vérifie que le text est présent
1580            $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
1581            // On clique sur ajouter
1582            $this->byXPath("//input[@value='Ajouter']")->click();
1583            // On vérifie qu'il n'y ait pas d'erreur
1584            $this->verifynoerrors();
1585            // On vérifie le message
1586            $this->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°[\s\S]*$/",$this->byCssSelector(".message")->text());
1587            // Récupération du numéro de dossier
1588            preg_match('/(PC)[0-9 ]*(P0)/', $this->byCssSelector(".message .text")->text(), $matches);
1589            $dossier_libelle = $matches[0];
1590            $dossier = str_replace(' ', '', $dossier_libelle);
1591            $dossier_dir = substr_replace($dossier, '.', -2, -3);
1592            // On clique
1593            $this->byCssSelector("a.lien")->click();sleep(5);
1594            // Liste les fenêtres
1595            $windows = $this->windowHandles();
1596            // Change la fenêtre
1597            $this->window($windows[1]);
1598            // On vérifie qu'il n'y ait pas d'erreur
1599            $this->verifynoerrors();
1600            // On vérifie que le text est présent
1601            $this->assertRegExp("/^[\s\S]*RECEPISSE DE DEPOT[\s\S]*$/",$this->source());
1602            // On ferme la fenêtre
1603            $this->closeWindow();
1604            // On change le focus de la fenêtre
1605            $this->window($windows[0]);
1606            // On clique sur le bouton retour
1607            $this->byLinkText("Retour")->click();
1608            // On vérifie qu'il n'y ait pas d'erreur
1609            $this->verifynoerrors();
1610            // On vérifie que le répertoire s'est crée
1611            $this->assertTrue(file_exists("../trs/numerisation/Todo/".$dossier_dir));
1612            // On se déconnecte
1613            $this->deconnect();
1614            /* Fin */
1615    //
1616            /* On accepte le dossier d'instruction et le finalise */
1617            // On se connecte à l'application
1618            $this->login("instr", "instr");
1619            // On clique sur le menu 'Recherche'
1620            $this->byLinkText("Recherche")->click();
1621            // On recherche le dossier crée
1622            $this->byId("dossier")->value($dossier);
1623            // On clique sur le bouton recherche
1624            $this->byId("adv-search-submit")->click();
1625            // On clique sur le résultat
1626            $this->byLinkText($dossier_libelle)->click();
1627            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1628            $this->verifyNoErrors();
1629            // On clique sur l'onglet "Instruction"
1630            $this->byId("instruction")->click();
1631            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1632            $this->verifyNoErrors();
1633            // On clique sur le lien d'ajout dans le tableau
1634            $this->byCssSelector(".actions-max-1 a")->click();
1635            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1636            $this->verifyNoErrors();
1637            //On choisit l'instruction 'accepter un dossier sans réserve
1638            //[acceptation]'
1639            $this->select($this->byId("evenement"))->selectOptionByValue(81);
1640            // On valide le formulaire
1641            $this->byXPath("//input[@value='Ajouter']")->click();
1642            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1643            $this->verifyNoErrors();
1644            sleep(1);
1645            $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
1646            // On retourne sur le tableau d'instructions
1647            $this->byCssSelector("#sousform-instruction .retour")->click();
1648            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1649            $this->verifyNoErrors();
1650            // On clique sur l'événement d'instruction "accepter un dossier sans réserve"
1651            $this->byLinkText("accepter un dossier sans réserve")->click();
1652            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1653            $this->verifyNoErrors();
1654            // On valide l'instruction (un événement verrouillable ne pourrait pas
1655            // être finalisé)
1656            $this->byId("action-sousform-instruction-finalisation")->click();
1657            // On vérifie le message de validation
1658            $this->assertContains("La finalisation du document s'est effectuée avec succès.",$this->byCssSelector(".message .text")->text());
1659            /* Fin */
1660        }
1661    //
1662        /**
1663         * test que les données du dossier d'autorisation sont recopiés dans les
1664         * champs 'archive_' de l'événement d'instruction de la création du nouveau
1665         * dossier d'instruction
1666         */
1667        public function test_12_recopie_donnees_da_vers_nouveau_di(){
1668            //
1669            //{{{ Ajout de d'un nouveau dossier
1670            // On se connecte à l'application
1671            $this->login("guichet", "guichet");
1672            //On clique sur le menu des instructions
1673            $this->byLinkText("Nouveau Dossier")->click();
1674            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1675            $this->verifyNoErrors();
1676            //On ajoute un nouveau dossier
1677            $dossier = $this->addDossierInstruction( 1, 1);                
1678            // On se déconnecte
1679            $this->deconnect();
1680            //}}}
1681            //
1682            //{{{ Clôture du nouveau dossier
1683            // On se connecte à l'application
1684            $this->login("instr", "instr");
1685            //On clique sur le menu "Recherche"
1686            $this->byLinkText("Recherche")->click();
1687            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1688            $this->verifyNoErrors();
1689            // On recherche le dossier crée
1690            $this->byId("dossier")->value(str_replace(' ', '', $dossier));
1691            // On clique sur le bouton recherche
1692            $this->byId("adv-search-submit")->click();
1693            // On clique sur le résultat
1694            $this->byLinkText($dossier)->click();
1695            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1696            $this->verifyNoErrors();
1697            //On clique sur l'onglet "instruction"
1698            $this->byId("instruction")->click();
1699            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1700            $this->verifyNoErrors();
1701            // On ajoute une instruction
1702            $this->byCssSelector("#sousform-instruction .add-16")->click();
1703            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1704            $this->verifyNoErrors();
1705            //On choisit l'instruction 'accepter un dossier sans réserve
1706            //[acceptation]'
1707            $this->select($this->byId("evenement"))->selectOptionByValue(81);
1708            // On clique sur ajouter
1709            $this->byXPath("//input[@value='Ajouter']")->click();
1710            // On vérifie qu'il n'y ait pas d'erreur
1711            $this->verifynoerrors();
1712            // On vérifie le message
1713            $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1714            //On rafraichit la page pour vérifier que le dossier est clôturé
1715            $this->refresh();
1716            $this->assertEquals("Favorable", $this->byId("avis_decision")->text());
1717            // On se déconnecte
1718            $this->deconnect();
1719            //}}}
1720            //
1721            //{{{ Ajout de l'action
1722            // On se connecte à l'application
1723            $this->login("admin", "admin");
1724            //On clique sur le menu "Paramétrage dossiers"
1725            $this->byLinkText("Paramétrage Dossiers")->click();
1726            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1727            $this->verifyNoErrors();
1728            //On clique sur le menu "Action"
1729            $this->byLinkText("Action")->click();
1730            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1731            $this->verifyNoErrors();
1732            //On clique sur le "+" du tableau
1733            $this->byClassName("add-16")->click();
1734            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1735            $this->verifyNoErrors();
1736            //On remplit la règle de calcul de la date de validité
1737            $this->byId("action")->value("test_12_recopie_donnees");
1738            $this->byId("libelle")->value("test_12_recopie_donnees");
1739            $this->byId("regle_date_validite")->value("archive_date_validite+12");
1740            // On clique sur ajouter
1741            $this->byXPath("//input[@value='Ajouter']")->click();
1742            // On vérifie qu'il n'y ait pas d'erreur
1743            $this->verifynoerrors();
1744            // On vérifie le message
1745            $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1746            //}}}
1747            //
1748            //{{{ Ajout de l'événement
1749            //On clique sur le menu "Événement"
1750            $this->byLinkText("Événement")->click();
1751            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1752            $this->verifyNoErrors();
1753            //On clique sur le "+" du tableau
1754            $this->byClassName("add-16")->click();
1755            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1756            $this->verifyNoErrors();
1757            //On remplit l'événement qui va être ajouté avec la nouvelle demande
1758            $this->byId("libelle")->value("test_12_recopie_donnees");
1759            $this->select($this->byName("etats_depuis_lequel_l_evenement_est_disponible[]"))->selectOptionByValue("accepter");
1760            // On sélectionne PCI - P - Initial
1761            $this->select($this->byName("dossier_instruction_type[]"))->selectOptionByValue(1);
1762            $this->select($this->byName("action"))->selectOptionByLabel("test_12_recopie_donnees");
1763            // On clique sur ajouter
1764            $this->byXPath("//input[@value='Ajouter']")->click();
1765            // On vérifie qu'il n'y ait pas d'erreur
1766            $this->verifynoerrors();
1767            // On vérifie le message
1768            $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1769            //}}}
1770            //
1771            //{{{ Ajout du type de dossier d'instruction
1772            //On clique sur le menu "Type DI"
1773            $this->byLinkText("Type DI")->click();
1774            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1775            $this->verifyNoErrors();
1776            //On clique sur le "+" du tableau
1777            $this->byClassName("add-16")->click();
1778            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1779            $this->verifyNoErrors();
1780            //On remplit le type de la demande
1781            $this->byId("code")->value("DT");
1782            $this->byId("libelle")->value("test_12_recopie_donnees");
1783            // On sélectionne PCI (Permis de construire pour une maison individuelle
1784            // et / ou ses annexes)
1785            $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByValue(1);sleep(1);
1786            $this->byId("suffixe")->click();
1787            // On clique sur ajouter
1788            $this->byXPath("//input[@value='Ajouter']")->click();
1789            // On vérifie qu'il n'y ait pas d'erreur
1790            $this->verifynoerrors();
1791            // On vérifie le message
1792            $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1793            //}}}
1794            //
1795            //{{{ Ajout du type de la demande
1796            //On clique sur le menu "Type"
1797            $this->byLinkText("Type")->click();
1798            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1799            $this->verifyNoErrors();
1800            //On clique sur le "+" du tableau
1801            $this->byClassName("add-16")->click();
1802            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1803            $this->verifyNoErrors();
1804            //On remplit le type de la demande
1805            $this->byId("code")->value("test_12_recopie_donnees");
1806            $this->byId("libelle")->value("test_12_recopie_donnees");
1807            // On sélectionne Autorisation ADS
1808            $this->select($this->byId("groupe"))->selectOptionByValue(1);sleep(1);
1809            // On sélectionne PCI (Permis de construire pour une maison individuelle
1810            // et / ou ses annexes)
1811            $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByValue(1);
1812            // On sélectionne Dossier existant
1813            $this->select($this->byId("demande_nature"))->selectOptionByValue(2);
1814            // On sélectionne Accordé
1815            $this->select($this->byName("etats_dossier_autorisation_autorises[]"))->selectOptionByValue(2);
1816            $this->select($this->byId("dossier_instruction_type"))->selectOptionByLabel("PCI - test_12_recopie_donnees");
1817            $this->select($this->byId("evenement"))->selectOptionByLabel("test_12_recopie_donnees");
1818            // On clique sur ajouter
1819            $this->byXPath("//input[@value='Ajouter']")->click();
1820            // On vérifie qu'il n'y ait pas d'erreur
1821            $this->verifynoerrors();
1822            // On vérifie le message
1823            $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1824            //On clique sur retour
1825            $this->byClassName("retour")->click();
1826            // On vérifie qu'il n'y ait pas d'erreur
1827            $this->verifynoerrors();
1828            //On saisit le libellé du type de la demande saisit
1829            $this->byName("recherche")->value("test_12_recopie_donnees");
1830            //On valide
1831            $this->byName("s1")->click();
1832            // On vérifie qu'il n'y ait pas d'erreur
1833            $this->verifynoerrors();
1834            //On clique sur le type de la demande
1835            $this->byLinkText("test_12_recopie_donnees")->click();
1836            // On vérifie qu'il n'y ait pas d'erreur
1837            $this->verifynoerrors();
1838            //On récupère l'identifiant du type de la demande
1839            $demande_type = $this->byId("demande_type")->text();
1840            // On se déconnecte
1841            $this->deconnect();
1842            //}}}
1843            //
1844            //{{{ Ajout de d'un nouveau dossier
1845            // On se connecte à l'application
1846            $this->login("guichet", "guichet");
1847            //On clique sur le menu des instructions
1848            $this->byLinkText("Dossier En Cours")->click();
1849            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1850            $this->verifyNoErrors();
1851            //On ajoute un nouveau dossier
1852            $dossier = $this->addDossierInstruction(1, $demande_type, "Test validité", 2, str_replace(" ", "", $dossier));                
1853            // On se déconnecte
1854            $this->deconnect();
1855            //}}}
1856            //
1857            //{{{ Vérification de la date de validité
1858            // On se connecte à l'application
1859            $this->login("instr", "instr");
1860            //On clique sur le menu "Recherche"
1861            $this->byLinkText("Recherche")->click();
1862            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1863            $this->verifyNoErrors();
1864            // On recherche le dossier crée
1865            $this->byId("dossier")->value(str_replace(' ', '', $dossier));
1866            // On clique sur le bouton recherche
1867            $this->byId("adv-search-submit")->click();
1868            // On clique sur le résultat
1869            $this->byLinkText($dossier)->click();
1870            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1871            $this->verifyNoErrors();
1872            //On vérifie la date de validité
1873            $date_validite = $this->mois_date(date("Y-m-d"), 12, "+");
1874            $date_validite = date("d/m/Y", strtotime($date_validite));
1875            $this->assertEquals($date_validite, $this->byId("date_validite")->text());
1876            // On se déconnecte
1877            $this->deconnect();
1878            //}}}
1879        }
1880        //
1881        /**
1882         * test de la numérotation des DI successifs
1883         */
1884        function test_13_numerotation_dossier_instruction_successif(){
1885                //
1886            //{{{ Ajout de d'un nouveau dossier d'instruction P0
1887            // On se connecte à l'application
1888            $this->login("guichet", "guichet");
1889            // On clique sur le menu "Nouveau Dossier"
1890            $this->byLinkText("Nouveau Dossier")->click();
1891            // On vérifie qu'il n'y ait pas d'erreur
1892            $this->verifynoerrors();
1893            // On ajoute un nouveau dossier d'instruction
1894            $dossierP0 = str_replace(" ", "", trim($this->addDossierInstruction(1, 1)));
1895            // On se déconnecte
1896            $this->deconnect();
1897            //}}}
1898            //
1899            //{{{ Accord du P0 créé
1900            // On se connecte à l'application
1901            $this->login("instr", "instr");
1902            // On clique sur le menu "Recherche"
1903            $this->byLinkText("Recherche")->click();
1904            // On vérifie qu'il n'y ait pas d'erreur
1905            $this->verifynoerrors();
1906            // On saisit le numéro du dossier d'instruction
1907            $this->byId("dossier")->value($dossierP0);
1908            // On valide la recherche
1909            $this->byId("adv-search-submit")->click();
1910            // On vérifie qu'il n'y ait pas d'erreur
1911            $this->verifynoerrors();
1912            // On clique sur le dossier d'instruction
1913            $this->byId("action-tab-dossier_instruction-left-consulter-".$dossierP0)->click();
1914            // On vérifie qu'il n'y ait pas d'erreur
1915            $this->verifynoerrors();
1916            // On clique sur l'onglet instruction
1917            $this->byId("instruction")->click();
1918            // On vérifie qu'il n'y ait pas d'erreur
1919            $this->verifynoerrors();
1920            // On clique sur le + du tableau
1921            $this->byClassName("add-16")->click();
1922            // On vérifie qu'il n'y ait pas d'erreur
1923            $this->verifynoerrors();
1924            // On choisit l'événement n°81 accepter un dossier sans réserve
1925            $this->select($this->byName("evenement"))->selectOptionByValue(81);
1926            // On clique sur ajouter
1927            $this->byXPath("//input[@value='Ajouter']")->click();
1928            sleep(1);
1929            // On vérifie qu'il n'y ait pas d'erreur
1930            $this->verifynoerrors();
1931            // On vérifie que l'événement d'instruction s'est bien ajouté
1932            $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector("#sousform-instruction .message")->text());
1933            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1934            $this->verifyNoErrors();
1935            // On se déconnecte
1936            $this->deconnect();
1937            //}}}
1938            //
1939            //{{{ Ajout d'un nouveau type de dossier d'instruction
1940            // On se connecte à l'application
1941            $this->login("admin", "admin");
1942            // On clique sur le menu "Paramétrage Dossiers"
1943            $this->byLinkText("Paramétrage Dossiers")->click();
1944            // On vérifie qu'il n'y ait pas d'erreur
1945            $this->verifynoerrors();
1946            // On clique sur le menu "Type DI"
1947            $this->byLinkText("Type DI")->click();
1948            // On vérifie qu'il n'y ait pas d'erreur
1949            $this->verifynoerrors();
1950            // On clique sur le + du tableau
1951            $this->byClassName("add-16")->click();
1952            // On vérifie qu'il n'y ait pas d'erreur
1953            $this->verifynoerrors();
1954            //On saisit les données
1955            $this->byId("code")->value("TN");
1956            $this->byId("libelle")->value("Test numérotation");
1957            $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByValue(1);
1958            $this->byId("suffixe")->click();
1959            // On clique sur ajouter
1960            $this->byXPath("//input[@value='Ajouter']")->click();
1961            // On vérifie qu'il n'y ait pas d'erreur
1962            $this->verifynoerrors();
1963            // On vérifie que le type de dossier d'instruction s'est bien ajouté
1964            $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1965            // On clique sur "Retour"
1966            $this->byClassName("retour")->click();
1967            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1968            $this->verifyNoErrors();
1969            //On saisie le nom due l'événement dans la recherche simple
1970            $this->byName("recherche")->value("Test numérotation");
1971            //On valide la recherche
1972            $this->byName('s1')->submit();
1973            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1974            $this->verifyNoErrors();
1975            //On clique sur l'événement
1976            $this->byLinkText("Test numérotation")->click();
1977            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1978            $this->verifyNoErrors();
1979            //On récupère l'identifiant
1980            $dossier_instruction_type = trim($this->byId("dossier_instruction_type")->text());
1981            //}}}
1982            //
1983            //{{{ Ajout d'un nouveau type de demande
1984            // On clique sur le menu "Type"
1985            $this->byLinkText("Type")->click();
1986            // On vérifie qu'il n'y ait pas d'erreur
1987            $this->verifynoerrors();
1988            // On clique sur le + du tableau
1989            $this->byClassName("add-16")->click();
1990            // On vérifie qu'il n'y ait pas d'erreur
1991            $this->verifynoerrors();
1992            //On saisit les données
1993            $this->byId("code")->value("TN");
1994            $this->byId("libelle")->value("Test numérotation");
1995            $this->select($this->byId("groupe"))->selectOptionByValue(1);
1996            sleep(1);
1997            $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByValue(1);
1998            sleep(1);
1999            $this->select($this->byId("demande_nature"))->selectOptionByValue(2);
2000            sleep(1);
2001            $this->select($this->byName("etats_dossier_autorisation_autorises[]"))->selectOptionByValue(2);
2002            sleep(1);
2003            $this->select($this->byId("dossier_instruction_type"))->selectOptionByValue($dossier_instruction_type);
2004            sleep(1);
2005            $this->select($this->byId("evenement"))->selectOptionByValue(1);
2006            // On clique sur ajouter
2007            $this->byXPath("//input[@value='Ajouter']")->click();
2008            // On vérifie qu'il n'y ait pas d'erreur
2009            $this->verifynoerrors();
2010            // On vérifie qu'il n'y ait pas d'erreur
2011            $this->verifynoerrors();
2012            // On vérifie que le type de dossier d'instruction s'est bien ajouté
2013            $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
2014            // On clique sur "Retour"
2015            $this->byClassName("retour")->click();
2016            // On vérifie qu'il n'y ait pas d'erreur
2017            $this->verifynoerrors();
2018            // On saisit le libelle du type de la demande nouvellement créée
2019            $this->byClassName("champFormulaire")->value("Test numérotation");
2020            // On valide la recherche
2021            $this->byName("f1")->submit();
2022            //On clique sur le type de la demande
2023            $this->byLinkText("Test numérotation")->click();
2024            // On vérifie qu'il n'y ait pas d'erreur
2025            $this->verifynoerrors();
2026            // On récupère l'identifiant
2027            $idDemandeType = trim($this->byId("demande_type")->text());
2028            // On se déconnecte
2029            $this->deconnect();
2030            //}}}
2031            //
2032            //{{{ Ajout de d'un nouveau dossier d'instruction avec le nouveau type
2033            //de dossier d'instruction
2034            // On se connecte à l'application
2035            $this->login("guichet", "guichet");
2036            // On clique sur le menu "Dossier En Cours"
2037            $this->byLinkText("Dossier En Cours")->click();
2038            // On vérifie qu'il n'y ait pas d'erreur
2039            $this->verifynoerrors();
2040            // On ajoute un nouveau dossier d'instruction
2041            $dossierTN01 = trim($this->addDossierInstruction(1, $idDemandeType, "Test nouveau DI", 3, $dossierP0));
2042            //On vérifie que le numéro du dossier d'instruction est celui attendu
2043            assert(preg_match('/(PC)[0-9 ]*(TN01)/', $dossierTN01) === 1);
2044            // On se déconnecte
2045            $this->deconnect();
2046            //}}}
2047                    
2048          // On vérifie que nous avons bien 4 consultations affichées          
2049          $this->verifyTextPresent("1 - 4 enregistrement(s) sur 4");      }
2050    
2051        /**
2052         * test de la numérotation des DI successifs
2053         */
2054        function test_14_recalcul_donnees_DI_vers_DA(){
2055            //{{{ Ajout de d'un nouveau dossier
2056            // On se connecte à l'application
2057            $this->login("guichet", "guichet");
2058            //On clique sur le menu des instructions
2059            $this->byLinkText("Nouveau Dossier")->click();
2060            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2061            $this->verifyNoErrors();
2062            //On ajoute un nouveau dossier
2063            $dossier = $this->addDossierInstruction( 1, 1);                
2064            // On se déconnecte
2065            $this->deconnect();
2066            //}}}
2067            //
2068            //{{{
2069            // Mise à jour des données techniques
2070            // On se connecte à l'application
2071            $this->login("instr", "instr");
2072            //On clique sur le menu "Recherche"
2073            $this->byLinkText("Recherche")->click();
2074            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2075            $this->verifyNoErrors();
2076            // On recherche le dossier crée
2077            $this->byId("dossier")->value(str_replace(' ', '', $dossier));
2078            // On clique sur le bouton recherche
2079            $this->byId("adv-search-submit")->click();
2080            // On clique sur le résultat
2081            $this->byLinkText($dossier)->click();
2082            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2083            $this->verifyNoErrors();
2084            // Ouverture du formulaire des données techniques
2085            $this->byCssSelector("#formulaire .rediger-16")->click();
2086            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2087            $this->verifyNoErrors();
2088            // Modification des données techniques
2089            $this->byCssSelector("#sousform-donnees_techniques .edit-16")->click();
2090            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2091            $this->verifyNoErrors();
2092            sleep(1);
2093            // On déplie le fieldset Construire
2094            $this->byCssSelector("#fieldset-sousform-donnees_techniques-construire legend")->click();
2095            sleep(1);
2096            // On déplie le fieldset Destinations et surfaces des constructions
2097            $this->byCssSelector("#fieldset-sousform-donnees_techniques-destinations-et-surfaces-des-constructions legend")->click();
2098            sleep(1);
2099            //On remplit des données techniques
2100            $this->byId("su_cstr_shon1")->value("120");
2101            // On clique sur ajouter
2102            $this->byXPath("//input[@value='Modifier']")->click();
2103            sleep(1);
2104            // On vérifie qu'il n'y ait pas d'erreur
2105            $this->verifynoerrors();
2106            // On vérifie le message
2107            $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector("#sousform-donnees_techniques .message")->text());
2108            //On clique sur retour
2109            $this->byCssSelector("#sousform-donnees_techniques .retour")->click();
2110            //}}}
2111            //
2112            //{{{ Clôture du nouveau dossier
2113            //On clique sur le menu "Recherche"
2114            $this->byLinkText("Recherche")->click();
2115            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2116            $this->verifyNoErrors();
2117            // On recherche le dossier crée
2118            $this->byId("dossier")->value(str_replace(' ', '', $dossier));
2119            // On clique sur le bouton recherche
2120            $this->byId("adv-search-submit")->click();
2121            // On clique sur le résultat
2122            $this->byLinkText($dossier)->click();
2123            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2124            $this->verifyNoErrors();
2125            //On clique sur l'onglet "instruction"
2126            $this->byId("instruction")->click();
2127            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2128            $this->verifyNoErrors();
2129            // On ajoute une instruction
2130            $this->byCssSelector("#sousform-instruction .add-16")->click();
2131            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2132            $this->verifyNoErrors();
2133            //On choisit l'instruction 'accepter un dossier sans réserve
2134            //[acceptation]'
2135            $this->select($this->byId("evenement"))->selectOptionByValue(81);
2136            // On clique sur ajouter
2137            $this->byXPath("//input[@value='Ajouter']")->click();
2138            // On vérifie qu'il n'y ait pas d'erreur
2139            $this->verifynoerrors();
2140            // On vérifie le message
2141            $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
2142            //On rafraichit la page pour vérifier que le dossier est clôturé
2143            $this->refresh();
2144            $this->assertEquals("Favorable", $this->byId("avis_decision")->text());
2145            //}}}
2146          //          //
2147            //{{{ Vérification des données techniques dans la visu DA
2148            //On clique sur le menu "Recherche"
2149            $this->byLinkText("Recherche")->click();
2150            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2151            $this->verifyNoErrors();
2152            // On recherche le dossier crée
2153            $this->byId("dossier")->value(str_replace(' ', '', $dossier));
2154            // On clique sur le bouton recherche
2155            $this->byId("adv-search-submit")->click();
2156            // On clique sur le résultat
2157            $this->byLinkText($dossier)->click();
2158            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2159            $this->verifyNoErrors();
2160            //On clique sur l'onglet "DA"
2161            $this->byId("dossier_autorisation")->click();
2162            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2163            $this->verifyNoErrors();
2164            // On ajoute une instruction
2165            $this->byCssSelector("#sousform-dossier_autorisation .consult-16")->click();
2166            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2167            $this->verifyNoErrors();
2168            // Affichage des données techniques
2169            $this->byId("donnees_techniques_da")->click();
2170            sleep(1);
2171            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2172            $this->verifyNoErrors();
2173            // On déplie le fieldset Construire
2174            $this->byCssSelector("#fieldset-sousform-donnees_techniques-construire legend")->click();
2175            sleep(1);
2176            // On déplie le fieldset Destinations et surfaces des constructions
2177            $this->byCssSelector("#fieldset-sousform-donnees_techniques-destinations-et-surfaces-des-constructions legend")->click();
2178            sleep(1);
2179            $this->assertEquals("120", $this->byId("su_cstr_shon1")->text());
2180            //On clique sur retour
2181            $this->byCssSelector("#sousform-donnees_techniques .retour")->click();
2182            // On se déconnecte
2183            $this->deconnect();
2184            //}}}
2185            
2186            // Vérification du calcul de l'état du DA
2187            //{{{ Ajout de d'un nouveau dossier
2188            // On se connecte à l'application
2189            $this->login("guichet", "guichet");
2190            //On clique sur le menu des instructions
2191            $this->byLinkText("Nouveau Dossier")->click();
2192            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2193            $this->verifyNoErrors();
2194            //On ajoute un nouveau dossier
2195            $dossier = $this->addDossierInstruction( 1, 1, "test recalcul état DA");
2196            // On se déconnecte
2197            $this->deconnect();
2198            //}}}
2199            // On se connecte à l'application
2200            $this->login("instr", "instr");
2201            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2202            $this->verifyNoErrors();
2203            // On clique sur le lien "Mes encours" dans le menu
2204            $this->byLinkText("Mes Encours")->click();
2205            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2206            $this->verifyNoErrors();
2207            sleep(1);
2208            //On cherche le dossier d'instruction
2209            $this->byName("recherche")->value(str_replace(" ", "", $dossier));
2210            // On valide la recherche
2211            $this->byName("s1")->click();
2212            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2213            $this->verifyNoErrors();
2214            // On clique sur le dossier dernièrement créé
2215            $this->byLinkText($dossier)->click();
2216            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2217            $this->verifyNoErrors();
2218            $this->verifierEtatDA($dossier,81, "Accordé");
2219            // On se déconnecte
2220            $this->deconnect();
2221            //}}}
2222            //{{{ Ajout de d'un nouveau dossier
2223            // On se connecte à l'application
2224            $this->login("guichet", "guichet");
2225            //On clique sur le menu des instructions
2226            $this->byLinkText("Nouveau Dossier")->click();
2227            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2228            $this->verifyNoErrors();
2229            //On ajoute un nouveau dossier
2230            $dossier = $this->addDossierInstruction( 1, 1, "test recalcul état DA");
2231            // On se déconnecte
2232            $this->deconnect();
2233            //}}}
2234            // On se connecte à l'application
2235            $this->login("instr", "instr");
2236            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2237            $this->verifyNoErrors();
2238            // On clique sur le lien "Mes encours" dans le menu
2239            $this->byLinkText("Mes Encours")->click();
2240            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2241            $this->verifyNoErrors();
2242            sleep(1);
2243            //On cherche le dossier d'instruction
2244            $this->byClassName("champFormulaire")->value(str_replace(" ", "", $dossier));
2245            // On valide la recherche
2246            $this->byId("f1")->submit();
2247            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2248            $this->verifyNoErrors();
2249            // On clique sur le dossier dernièrement créé
2250            $this->byLinkText($dossier)->click();
2251            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2252            $this->verifyNoErrors();
2253            $this->verifierEtatDA($dossier,31, "Refusé");
2254            // On se déconnecte
2255            $this->deconnect();
2256            //}}}
2257        }
2258        
2259        /*
2260         * Cette méthode teste l'envoi de message au référentiel ERP lors de l'ajout
2261         * d'instruction
2262         */
2263        public function test_15_envoi_de_message_erp(){
2264            
2265            // On se connecte en tant que "admin"
2266            $this->login("admin", "admin");
2267            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2268            $this->verifyNoErrors();
2269            //On clique sur Paramétrage Dossiers
2270            $this->byLinkText("Paramétrage Dossiers")->click();
2271            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2272            $this->verifyNoErrors();
2273            //On clique sur Service
2274            $this->byLinkText("Événement")->click();
2275            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2276            $this->verifyNoErrors();
2277            //Initialisation de la variable
2278            $evenements = array();
2279            //{{{ Ajout d'événements
2280            //On ajoute trois événements
2281            for ($i = 1 ; $i < 3 ; $i++){
2282                $evenements[] = $this->addEvenement("test_evenement_erp_".$i);
2283            }
2284            //}}}
2285            
2286            //{{{ On change trois variables erp_service_accessibilite,
2287            // erp_service_securite et erp_service_conformite
2288            //On clique sur Administration
2289            $this->byLinkText("Administration")->click();
2290            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2291            $this->verifyNoErrors();
2292            //On clique sur Paramètre
2293            $this->byLinkText("Paramètre")->click();
2294            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2295            $this->verifyNoErrors();
2296            $erp_evenement_accepter_sans_reserve = $this->changeParametreEvenementErp("erp_evenement_accepter_sans_reserve", $evenements[0]);
2297            $erp_evenement_refuser_dossier = $this->changeParametreEvenementErp("erp_evenement_refuser_dossier", $evenements[1]);
2298            $option_referentiel_arrete = $this->changeParametreEvenementErp("option_referentiel_arrete", 'true');
2299            ///}}}
2300            // On se déconnecte
2301            $this->deconnect();
2302            
2303            // On se connecte en tant que "guichet"
2304            $this->login("guichet", "guichet");
2305            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2306            $this->verifyNoErrors();
2307            //{{{On ajoute un dossier d'instruction
2308            //On clique sur Nouveau Dossier
2309            $this->byLinkText("Nouveau Dossier")->click();
2310            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2311            $this->verifyNoErrors();
2312            //On ajoute le dossier
2313            $dossier = $this->addDossierInstruction("1", "1");
2314            //}}}
2315            // On se déconnecte
2316            $this->deconnect();
2317            
2318            // On se connecte en tant que "instr"
2319            $this->login("instr", "instr");
2320            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2321            $this->verifyNoErrors();
2322            //{{{ On ajoute trois événement
2323            //On clique sur Nouveau Dossier
2324            $this->byLinkText("Recherche")->click();
2325            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2326            $this->verifyNoErrors();
2327            //On cherche le dossier d'instruction
2328            $this->byId("dossier")->value(str_replace(" ", "", $dossier));
2329            // On valide la recherche
2330            $this->byId("adv-search-submit")->click();
2331            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2332            $this->verifyNoErrors();
2333            //On clique sur le dossier d'instruction
2334            $this->byLinkText($dossier)->click();
2335            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2336            $this->verifyNoErrors();
2337            //On clique sur Modifier
2338            $this->byClassName("edit-16")->click();
2339            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2340            $this->verifyNoErrors();
2341            //On clique sur erp
2342            $this->byId("erp")->click();
2343            //On valide le formulaire
2344            $this->byName("f1")->submit();
2345            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2346            $this->verifyNoErrors();
2347            // On vérifie le message
2348            $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message .text")->text());
2349            //On clique sur l'onglet instruction
2350            $this->byId("instruction")->click();
2351            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2352            $this->verifyNoErrors();
2353            //On ajoute trois consultations
2354            foreach ($evenements as $value) {
2355                $this->addInstruction($value);
2356            }
2357    
2358            //On clique sur le + du tableau
2359            $this->byClassName("add-16")->click();
2360            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2361            $this->verifyNoErrors();
2362            //On choisit l'événement
2363            $this->select($this->byId("evenement"))->selectOptionByValue(81);
2364            //On valide le formulaire
2365            $this->byName("f2")->submit();
2366            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2367            $this->verifyNoErrors();
2368            // On vérifie que le message de validation est présent
2369            $this->assertContains('Vos modifications ont bien été enregistrées.', $this->byCssSelector("#sousform-instruction .message .text")->text());
2370            //On clique sur Retour
2371            $this->byLinkText("Retour")->click();
2372            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2373            $this->verifyNoErrors();
2374            //On clique sur l'instruction
2375            $this->byLinkText("accepter un dossier sans réserve")->click();
2376            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2377            $this->verifyNoErrors();
2378            //On récupère le numéro d'instruction
2379            $instruction = trim($this->byId("instruction")->text());
2380            //On la finalise
2381            $this->byClassName("finalise")->click();
2382            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2383            $this->verifyNoErrors();
2384            // On vérifie que le message de validation est présent
2385            $this->assertContains('La finalisation du document s\'est effectuée avec succès.', $this->byCssSelector("#sousform-instruction .message .text")->text());
2386            // On se déconnecte
2387            $this->deconnect();
2388            
2389            // On se connecte en tant que "admin"
2390            $this->login("admin", "admin");
2391            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2392            $this->verifyNoErrors();
2393            //On clique sur instruction
2394            $this->byLinkText("Instruction")->click();
2395            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2396            $this->verifyNoErrors();
2397            //On clique sur Recherche
2398            $this->byLinkText("Recherche")->click();
2399            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2400            $this->verifyNoErrors();
2401            //On cherche le dossier d'instruction
2402            $this->byId("dossier")->value(str_replace(" ", "", $dossier));
2403            // On valide la recherche
2404            $this->byId("adv-search-submit")->click();
2405            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2406            $this->verifyNoErrors();
2407            //On clique sur le dossier d'instruction
2408            $this->byLinkText($dossier)->click();
2409            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2410            $this->verifyNoErrors();
2411            //On clique sur l'onglet instruction
2412            $this->byId("instruction")->click();
2413            //On clique sur l'instruction accepter un dossier sans réserve
2414            $this->byLinkText("accepter un dossier sans réserve")->click();
2415            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2416            $this->verifyNoErrors();
2417            //On la definalise
2418            $this->byClassName("definalise")->click();
2419            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2420            $this->verifyNoErrors();
2421            // On vérifie que le message de validation est présent
2422            $this->assertContains('La definalisation du document s\'est effectuée avec succès.', $this->byCssSelector("#sousform-instruction .message .text")->text());
2423            //On clique sur modifier
2424            $this->byCssSelector("#sousform-instruction .edit-16")->click();
2425            sleep(2);
2426            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2427            $this->verifyNoErrors();
2428            //On choisit un signataire Albert Dupont
2429            $this->select($this->byId("signataire_arrete"))->selectOptionByValue("1");
2430            //On remplit la date de retour sign
2431            $this->byId("date_retour_signature")->value(date('d/m/Y'));
2432            //On valide le formulaire
2433            $this->byName("f2")->submit();
2434            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2435            $this->verifyNoErrors();
2436            // On vérifie que le message de validation est présent
2437            $this->assertContains('Vos modifications ont bien été enregistrées.', $this->byCssSelector("#sousform-instruction .message .text")->text());
2438            // On vérifie que le message d'envoi est présent
2439            $this->assertContains('Le message a été transmis au référentiel arrêté.', $this->byCssSelector("#sousform-instruction .message .text")->text());
2440            //}}}
2441            
2442            // On se déconnecte
2443            $this->deconnect();
2444            
2445            // On se connecte en tant que "admin"
2446            $this->login("admin", "admin");
2447            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2448            $this->verifyNoErrors();
2449            //{{{ On remet les valeurs par défaut des paramètres
2450            //On clique sur Administration
2451            $this->byLinkText("Administration")->click();
2452            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2453            $this->verifyNoErrors();
2454            //On clique sur Paramètre
2455            $this->byLinkText("Paramètre")->click();
2456            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2457            $this->verifyNoErrors();
2458            $this->changeParametreEvenementErp("erp_evenement_accepter_sans_reserve", $erp_evenement_accepter_sans_reserve);
2459            $this->changeParametreEvenementErp("erp_evenement_refuser_dossier", $erp_evenement_refuser_dossier);
2460            $this->changeParametreEvenementErp("option_referentiel_arrete", $option_referentiel_arrete);
2461            //}}}
2462            
2463            //On se déconnecte
2464            $this->logout();
2465        }
2466        
2467        /*
2468         * Cette méthode teste l'envoi de message au référentiel ERP lors de la
2469         * modification d'un dossier d'insruction
2470         */
2471        public function test_16_envoi_de_message_erp_dossier_instruction(){
2472            
2473            // On se connecte en tant que "admin"
2474            $this->login("admin", "admin");
2475            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2476            $this->verifyNoErrors();
2477            
2478            //{{{ On change deux variables erp_nature_dat et erp_dossier_nature_pc
2479            //On clique sur Administration
2480            $this->byLinkText("Administration")->click();
2481            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2482            $this->verifyNoErrors();
2483            //On clique sur Paramètre
2484            $this->byLinkText("Paramètre")->click();
2485            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2486            $this->verifyNoErrors();
2487            //On change la valeur des paramètres
2488            $erp_nature_dat = $this->changeParametreEvenementErp("erp_nature_dat", "AT");
2489            $erp_dossier_nature_pc = $this->changeParametreEvenementErp("erp_dossier_nature_pc", "PCI");
2490            //}}}
2491            // On se déconnecte
2492            $this->deconnect();
2493            
2494            //{{{Ajout d'un dossier AT par le guichet unique
2495            // On se connecte en tant que "guichet"
2496            $this->login("guichet", "guichet");
2497            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2498            $this->verifyNoErrors();
2499            //On clique sur Nouveau Dossier
2500            $this->byLinkText("Nouveau Dossier")->click();
2501            //On ajoute un dossier d'instruction de type AT
2502            $dossier = $this->addDossierInstruction(8, 8);
2503            //}}}
2504            // On se déconnecte
2505            $this->deconnect();
2506            
2507            // On se connecte en tant que "instr"
2508            $this->login("instr", "instr");
2509            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2510            $this->verifyNoErrors();
2511            //{{{On change le dossier en a été qualifié
2512            //On clique sur Recherche
2513            $this->byLinkText("Recherche")->click();
2514            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2515            $this->verifyNoErrors();
2516            //On cherche le dossier d'instruction
2517            $this->byId("dossier")->value(str_replace(" ", "", $dossier));
2518            // On valide la recherche
2519            $this->byId("adv-search-submit")->click();
2520            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2521            $this->verifyNoErrors();
2522            //On clique sur le dossier d'instruction
2523            $this->byLinkText($dossier)->click();
2524            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2525            $this->verifyNoErrors();
2526            //On clique sur modifier
2527            $this->byClassName("edit-16")->click();
2528            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2529            $this->verifyNoErrors();
2530            //On décoche à qualifier
2531            $this->byId("a_qualifier")->click();
2532            //On valide le formulaire
2533            $this->byName("f1")->submit();
2534            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2535            $this->verifyNoErrors();
2536            // On vérifie que le message de validation est présent
2537            $this->assertContains('Vos modifications ont bien été enregistrées.',
2538                $this->byCssSelector(".message .text")->text());
2539            // On vérifie que le message d'envoi est présent
2540            $this->assertContains('Le message a été transmis au référentiel ERP.',
2541                $this->byCssSelector(".message .text")->text());
2542            //}}}
2543            // On se déconnecte
2544            $this->deconnect();
2545            
2546            //{{{Ajout d'un dossier PC par le guichet unique
2547            // On se connecte en tant que "guichet"
2548            $this->login("guichet", "guichet");
2549            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2550            $this->verifyNoErrors();
2551            //On clique sur Nouveau Dossier
2552            $this->byLinkText("Nouveau Dossier")->click();
2553            //On ajoute un dossier d'instruction de type AT
2554            $dossier = $this->addDossierInstruction(1, 1);
2555            //}}}
2556            // On se déconnecte
2557            $this->deconnect();
2558            
2559            // On se connecte en tant que "instr"
2560            $this->login("instr", "instr");
2561            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2562            $this->verifyNoErrors();
2563            //{{{On change le dossier en ERP
2564            //On clique sur Recherche
2565            $this->byLinkText("Recherche")->click();
2566            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2567            $this->verifyNoErrors();
2568            //On cherche le dossier d'instruction
2569            $this->byId("dossier")->value(str_replace(" ", "", $dossier));
2570            // On valide la recherche
2571            $this->byId("adv-search-submit")->click();
2572            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2573            $this->verifyNoErrors();
2574            //On clique sur le dossier d'instruction
2575            $this->byLinkText($dossier)->click();
2576            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2577            $this->verifyNoErrors();
2578            //On clique sur modifier
2579            $this->byClassName("edit-16")->click();
2580            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2581            $this->verifyNoErrors();
2582            //On décoche à qualifier
2583            $this->byId("a_qualifier")->click();
2584            //On coche ERP
2585            $this->byId("erp")->click();
2586            //On valide le formulaire
2587            $this->byName("f1")->submit();
2588            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2589            $this->verifyNoErrors();
2590            // On vérifie que le message de validation est présent
2591            $this->assertContains('Vos modifications ont bien été enregistrées.',
2592                $this->byCssSelector(".message .text")->text());
2593            // On vérifie que le message d'envoi est présent
2594            $this->assertContains('Le message a été transmis au référentiel ERP.',
2595                $this->byCssSelector(".message .text")->text());
2596            //}}}
2597            // On se déconnecte
2598            $this->deconnect();
2599            
2600            // On se connecte en tant que "admin"
2601            $this->login("admin", "admin");
2602            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2603            $this->verifyNoErrors();
2604            
2605            //{{{ On change deux variables erp_nature_dat et erp_dossier_nature_pc
2606            //On clique sur Administration
2607            $this->byLinkText("Administration")->click();
2608            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2609            $this->verifyNoErrors();
2610            //On clique sur Paramètre
2611            $this->byLinkText("Paramètre")->click();
2612            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2613            $this->verifyNoErrors();
2614            //On change la valeur des paramètres
2615            $this->changeParametreEvenementErp("erp_nature_dat", $erp_nature_dat);
2616            $this->changeParametreEvenementErp("erp_dossier_nature_pc", $erp_dossier_nature_pc);
2617            //}}}
2618            
2619            //On se déconnecte
2620          $this->logout();          $this->logout();
2621      }      }
2622    
2623        /**
2624         * Test d'annulation d'un DA.
2625         */
2626        function test_17_di_annulation() {
2627            // On se connecte en tant que "admin"
2628            $this->login("admin", "admin");
2629            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2630            $this->verifyNoErrors();
2631            
2632            //On clique sur Administration
2633            $this->byLinkText("Paramétrage Dossiers")->click();
2634            // Ajout d'un type de DI ANNULATION
2635            $this->byLinkText("Type DI")->click();
2636            $this->byCssSelector(".add-16")->click();
2637            $this->byId("code")->value('ANNUL');
2638            $this->byId("libelle")->value('Demande d\'annulation');
2639            $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByValue('1');
2640            $this->byId('suffixe')->click();
2641            $this->select($this->byName("mouvement_sitadel"))->selectOptionByValue('SUPPRESSION');
2642            // On clique sur ajouter
2643            $this->byXPath("//input[@value='Ajouter']")->click();
2644            // On vérifie qu'il n'y ait pas d'erreur
2645            $this->verifynoerrors();
2646            // On vérifie que le message de validation est présent
2647            $this->assertContains('Vos modifications ont bien été enregistrées.',
2648                $this->byCssSelector(".message .text")->text());
2649            //On clique sur le bouton retour
2650            $this->byLinkText("Retour")->click();
2651            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2652            $this->verifyNoErrors();
2653            //On saisie le nom due l'événement dans la recherche simple
2654            $this->byClassName("champFormulaire")->value("ANNUL");
2655            //On valide la recherche
2656            $this->byName('s1')->submit();
2657            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2658            $this->verifyNoErrors();
2659            //On clique sur l'événement
2660            $this->byLinkText("ANNUL")->click();
2661            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2662            $this->verifyNoErrors();
2663            // Récupération de l'id du type de DI
2664            $idDIAnnul = $this->byId("dossier_instruction_type")->text();
2665            // Ajout d'un type de demande ANNULATION
2666            $this->byLinkText("Type")->click();
2667            $this->byCssSelector(".add-16")->click();
2668            $this->byId("code")->value('ANNUL');
2669            $this->byId("libelle")->value('Demande d\'annulation');
2670            $this->select($this->byName("groupe"))->selectOptionByValue('1');
2671            $this->select($this->byName("dossier_autorisation_type_detaille"))->selectOptionByValue('1');
2672            $this->select($this->byName("demande_nature"))->selectOptionByValue('2');
2673            $this->select($this->byName("etats_dossier_autorisation_autorises[]"))
2674                ->selectOptionByValue("1");
2675            $this->select($this->byName("contraintes"))->selectOptionByValue('avec_recup');
2676            $this->select($this->byName("dossier_instruction_type"))->selectOptionByValue($idDIAnnul);
2677            $this->select($this->byName("evenement"))->selectOptionByValue('25');
2678            // On clique sur ajouter
2679            $this->byXPath("//input[@value='Ajouter']")->click();
2680            // On vérifie qu'il n'y ait pas d'erreur
2681            $this->verifynoerrors();
2682            // On vérifie que le message de validation est présent
2683            $this->assertContains('Vos modifications ont bien été enregistrées.',
2684                $this->byCssSelector(".message .text")->text());
2685            //On clique sur le bouton retour
2686            $this->byLinkText("Retour")->click();
2687            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2688            $this->verifyNoErrors();
2689            //On saisie le nom due l'événement dans la recherche simple
2690            $this->byClassName("champFormulaire")->value("ANNUL");
2691            //On valide la recherche
2692            $this->byName('s1')->submit();
2693            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2694            $this->verifyNoErrors();
2695            //On clique sur l'événement
2696            $this->byLinkText("ANNUL")->click();
2697            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2698            $this->verifyNoErrors();
2699            // Récupération de l'id de la demande
2700            $idDemandeAnnul = $this->byId("demande_type")->text();
2701            // Modification de l'action d'abandon de dossier
2702            $this->byLinkText("Action")->click();
2703            // On vérifie qu'il n'y ait pas d'erreur
2704            $this->verifynoerrors();
2705            // Modification de l'action d'abandon de dossier
2706            $this->byLinkText("abandon")->click();
2707            // Modification de l'action d'abandon de dossier
2708            $this->byCssSelector(".edit-16")->click();
2709            // On vérifie qu'il n'y ait pas d'erreur
2710            $this->verifynoerrors();
2711            $this->byId("regle_avis")->clear();
2712            $this->byId("regle_avis")->value('avis_decision');
2713            $this->byId("regle_date_decision")->clear();
2714            $this->byId("regle_date_decision")->value('date_evenement');
2715            // On clique sur ajouter
2716            $this->byXPath("//input[@value='Modifier']")->click();
2717            // On vérifie qu'il n'y ait pas d'erreur
2718            $this->verifynoerrors();
2719            // On vérifie que le message de validation est présent
2720            $this->assertContains('Vos modifications ont bien été enregistrées.',
2721                $this->byCssSelector(".message .text")->text());
2722            // On se déconnecte
2723            $this->deconnect();
2724            // On se connecte en tant que "admin"
2725            $this->login("guichet", "guichet");
2726            //On clique sur le menu des instructions
2727            $this->byLinkText("Nouveau Dossier")->click();
2728            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2729            $this->verifyNoErrors();
2730            // Création d'un DI
2731            $dossier = $this->addDossierInstruction(1, 1, "test annulation");
2732            // On se déconnecte
2733            $this->deconnect();
2734            // On se connecte en tant que "instr"
2735            $this->login("instr", "instr");
2736            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2737            $this->verifyNoErrors();
2738            // On clique sur le lien "Mes encours" dans le menu
2739            $this->byLinkText("Recherche")->click();
2740            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2741            $this->verifyNoErrors();
2742            $this->byId("dossier")->value(str_replace(" ", "", $dossier));
2743            $this->byName("advanced-search-submit")->click();
2744            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2745            $this->verifyNoErrors();
2746            // On clique sur le dossier dernièrement créé
2747            $this->byLinkText($dossier)->click();
2748            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2749            $this->verifyNoErrors();
2750            // On clique sur l'onglet "Instruction"
2751            $this->byId("dossier_autorisation")->click();
2752            sleep(1);
2753            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2754            $this->verifyNoErrors();
2755            // Verification de l'état du DA correspondant
2756            $this->assertContains('En cours', $this->byCssSelector("#sousform-dossier_autorisation")->text());
2757            // On se déconnecte
2758            $this->deconnect();
2759            // On se connecte en tant que "guichet"
2760            $this->login("guichet", "guichet");
2761            //On clique sur le menu des instructions
2762            $this->byLinkText("Dossier En Cours")->click();
2763            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2764            $this->verifyNoErrors();
2765            // Création d'un DI
2766            $dossier = $this->addDossierInstruction(
2767                1,
2768                $idDemandeAnnul,
2769                "test annulation",
2770                2,
2771                $dossier,
2772                false);
2773            // On se déconnecte
2774            $this->deconnect();
2775            // On se connecte en tant que "instr"
2776            $this->login("instr", "instr");
2777            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2778            $this->verifyNoErrors();
2779            // On clique sur le lien "Mes encours" dans le menu
2780            $this->byLinkText("Recherche")->click();
2781            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2782            $this->verifyNoErrors();
2783            $this->byId("dossier")->value(str_replace(" ", "", $dossier));
2784            $this->byName("advanced-search-submit")->click();
2785            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2786            $this->verifyNoErrors();
2787            // On clique sur le dossier dernièrement créé
2788            $this->byLinkText($dossier)->click();
2789            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2790            $this->verifyNoErrors();
2791            // On clique sur l'onglet "Instruction"
2792            $this->byId("dossier_autorisation")->click();
2793            sleep(1);
2794            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2795            $this->verifyNoErrors();
2796            // Verification de l'état du DA correspondant
2797            $this->assertContains('Abandonné', $this->byCssSelector("#sousform-dossier_autorisation")->text());
2798            //On se déconnecte
2799            $this->logout();
2800        }
2801        
2802        /**
2803         * Ajout d'un dossier d'instruction par le guichet unique
2804         *
2805         * @param int $dossier_autorisation_type_detaille L'identifiant du type détaillé
2806         *  de dossier d'autorisation
2807         * @param int $demande_type L'identifiant du type de la demande
2808         * @param int $type Type de la demande : nouveau dossier ou dossier existant
2809         * @return le numéro de dossier d'instruction qui vient d'être créé
2810         */
2811        public function addDossierInstruction($dossier_autorisation_type_detaille,
2812            $demande_type, $nom_petit = "test recopie",  $type = 1, $dossier = "",
2813            $petit = true){
2814            
2815            if ($type===1){
2816                //On choisit le type détaillé de dossier d'autorisation
2817                $this->select($this->byName("dossier_autorisation_type_detaille"))->selectOptionByValue($dossier_autorisation_type_detaille);
2818            }
2819            else {
2820                sleep(2);
2821                // On remplit le champ de recherche simple
2822                $this->byCssSelector("input[name='recherche']")->value(str_replace(' ', '', $dossier));
2823                // On clique sur le bouton recherche
2824                $this->byCssSelector(".ui-button")->click();sleep(1);
2825                // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2826                $this->verifyNoErrors();
2827                // On clique sur le résultat
2828                $this->byId("action-tab-demande_dossier_encours-left-consulter-".str_replace(' ', '', $dossier))->click();
2829                // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2830                $this->verifyNoErrors();
2831            }
2832            //On choisit le type de demande
2833            $this->select($this->byName("demande_type"))->selectOptionByValue($demande_type);
2834            if($petit) {
2835                //On clique sur "Saisir le pétitionnaire principal"
2836                $this->byId("add_petitionnaire_principal")->click();
2837                // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2838                $this->verifyNoErrors();
2839                //On saisie le nom du pétitionnaire principal
2840                $this->byId("particulier_nom")->value($nom_petit);
2841                // On clique sur ajouter
2842                $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
2843                // On vérifie qu'il n'y ait pas d'erreur
2844                $this->verifynoerrors();
2845                //On vérifie que le pétitionnaire s'est bien ajouté
2846                // On vérifie le message
2847                $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector("#sousform-petitionnaire .message")->text());
2848                // On clique sur le bouton retour
2849                $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
2850                // On vérifie que le text est présent
2851                $this->assertContains($nom_petit,$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
2852            }
2853            // On clique sur ajouter
2854            $this->byXPath("//input[@value='Ajouter']")->click();
2855            // On vérifie qu'il n'y ait pas d'erreur
2856            $this->verifynoerrors();
2857            // On vérifie le message
2858            $this->assertContains("Création du dossier",$this->byCssSelector(".message")->text());
2859            //On récupère le numéro de dossier d'instruction créé
2860            if ($type===1){
2861                preg_match('/(PC|AT)[0-9 ]*(P0)/', $this->byCssSelector("#tabs-1 .message")->text(), $dossier);
2862            }
2863            elseif ($type===2){
2864                preg_match('/(PC|AT)[0-9 ]*[A-Z]*(0)[1-9]{1}/', $this->byCssSelector("#tabs-1 .message")->text(), $dossier);
2865            }
2866            else{
2867                preg_match('/(PC|AT)[0-9 ]*[A-Z]*(0)[1-9]{1}/', $this->byCssSelector("#tabs-1 .message")->text(), $dossier);
2868            }
2869            return $dossier[0];
2870        }
2871    
2872        /*
2873         * Ajoute un événement
2874         * @param $libelle le libelle de l'événement
2875         *
2876         * @return l'identifiant de l'événement
2877         */
2878        private function addEvenement($libelle){
2879            
2880            //On clique sur le + du tableau
2881            $this->byClassName("add-16")->click();
2882            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2883            $this->verifyNoErrors();
2884            //On remplit les champs
2885            $this->byId("libelle")->value($libelle);
2886            $this->select($this->byName("etats_depuis_lequel_l_evenement_est_disponible[]"))
2887                ->selectOptionByValue("notifier");
2888            $this->select($this->byName("dossier_instruction_type[]"))
2889                ->selectOptionByValue("1");
2890            //On valide le formulaire
2891            $this->byName('f1')->submit();
2892            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2893            $this->verifyNoErrors();
2894            // On vérifie que le message de validation est présent
2895            $this->assertContains('Vos modifications ont bien été enregistrées.', $this->byCssSelector(".message .text")->text());
2896            //On clique sur le bouton retour
2897            $this->byLinkText("Retour")->click();
2898            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2899            $this->verifyNoErrors();
2900            //On saisie le nom due l'événement dans la recherche simple
2901            $this->byClassName("champFormulaire")->value($libelle);
2902            //On valide la recherche
2903            $this->byName('s1')->submit();
2904            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2905            $this->verifyNoErrors();
2906            //On clique sur l'événement
2907            $this->byLinkText($libelle)->click();
2908            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2909            $this->verifyNoErrors();
2910            //On récupère l'identifiant
2911            $evenementId = trim($this->byId("evenement")->text());
2912            //On clique sur le bouton Retour
2913            $this->byLinkText("Retour")->click();
2914            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2915            $this->verifyNoErrors();
2916            //On retourne l'identifiant
2917            return $evenementId;
2918        }
2919    
2920        /*
2921         * Modifie la valeur du paramètre du numéro de'événement pour le message ERP
2922         * @param string $parametre le libelle du paramètre
2923         * @param string $valeur la valeur à renseigner
2924         *
2925         * @return string la valeur précédente du paramètre
2926         */
2927        private function changeParametreEvenementErp($parametre, $valeur){
2928            
2929            //On vide le champ
2930            $this->byClassName("champFormulaire")->clear();
2931            //On saisie le nom de la variable dans la recherche simple
2932            $this->byClassName("champFormulaire")->value($parametre);
2933            //On valide la recherche
2934            $this->byName('s1')->submit();
2935            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2936            $this->verifyNoErrors();
2937            //On clique sur le paramètre
2938            $this->byLinkText($parametre)->click();
2939            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2940            $this->verifyNoErrors();
2941            //On clique sur modifier dans le portail d'action
2942            $this->byClassName("edit-16")->click();
2943            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2944            $this->verifyNoErrors();
2945            //On récupère la valeur actuelle du paramètre
2946            $parametre = trim($this->byId("valeur")->value());
2947            //On vide le champ
2948            $this->byId("valeur")->clear();
2949            //On change la valeur du paramètre
2950            $this->byId("valeur")->value($valeur);
2951            //On valide le formulaire
2952            $this->byName('f1')->submit();
2953            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2954            $this->verifyNoErrors();
2955            // On vérifie que le message de validation est présent
2956            $this->assertContains('Vos modifications ont bien été enregistrées.', $this->byCssSelector(".message .text")->text());
2957            //On clique sur le bouton retour
2958            $this->byLinkText("Retour")->click();
2959            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2960            $this->verifyNoErrors();
2961            //On clique sur le bouton retour
2962            $this->byLinkText("Retour")->click();
2963            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2964            $this->verifyNoErrors();
2965            //On retourne la valeur
2966            return $parametre;
2967        }
2968    
2969        /*
2970         * Ajoute une instruction
2971         * @param int $service l'identifiant du service
2972         */
2973        private function addInstruction($evenement, $erp = true){
2974            
2975            //On clique sur le + du tableau
2976            $this->byClassName("add-16")->click();
2977            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2978            $this->verifyNoErrors();
2979            //On choisit l'événement
2980            $this->select($this->byId("evenement"))->selectOptionByValue($evenement);
2981            //On valide le formulaire
2982            $this->byName("f2")->submit();
2983            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2984            $this->verifyNoErrors();
2985            // On vérifie que le message de validation est présent
2986            $this->assertContains('Vos modifications ont bien été enregistrées.', $this->byCssSelector("#sousform-instruction .message .text")->text());
2987            if($erp) {
2988                // On vérifie que le message d'envoi est présent
2989                $this->assertContains('Le message a été transmis au référentiel ERP.', $this->byCssSelector("#sousform-instruction .message .text")->text());
2990            }
2991            //On clique sur le bouton retour
2992            $this->byLinkText("Retour")->click();
2993            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2994            $this->verifyNoErrors();
2995        }
2996    
2997        /**
2998         * Permet de vérifier l'état d'un DA en fonction de l'état de ses DI.
2999         * @param  string  $dossier numéro de dossier
3000         * @param  integer $event   numéro d'événement
3001         * @param  string  $etat    état du DA
3002         */
3003        private function verifierEtatDA($dossier, $event, $etat) {
3004            // On clique sur l'onglet "DA"
3005            $this->byId("dossier_autorisation")->click();
3006            sleep(1);
3007            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
3008            $this->verifyNoErrors();
3009            $this->assertContains('En cours', $this->byCssSelector("#sousform-dossier_autorisation")->text());
3010            // retour sur l'ajout d'événement
3011            $this->byId("instruction")->click();
3012            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
3013            $this->verifyNoErrors();
3014            $this->addInstruction($event, false);
3015            // On clique sur l'onglet "DA"
3016            $this->byId("dossier_autorisation")->click();
3017            sleep(1);
3018            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
3019            $this->verifyNoErrors();
3020            $this->assertContains($etat, $this->byCssSelector("#sousform-dossier_autorisation")->text());
3021        }
3022  }  }
3023    
3024  ?>  ?>

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26