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

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

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

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

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26