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

Diff of /trunk/tests/testInstruction.php

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

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

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26