/[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 2808 by nhaye, Tue Mar 11 15:34:16 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 qu'il n'y a pas d'erreur sur l'élément affiché
319            $this->verifyNoErrors();
320            // On vérifie le mesage d'erreur
321            $this->assertRegExp('/.*Restriction non valide*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
322            // On se déconnecte
323            $this->deconnect();
324            // On se connecte en tant que "admin"
325            $this->login("admin", "admin");
326            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
327            $this->verifyNoErrors();
328            // On clique sur le lien "Paramétrage Dossiers" dans le menu
329            $this->byLinkText("Paramétrage Dossiers")->click();
330            // On clique sur le sousmenu "Événement"
331            $this->byLinkText("Événement")->click();
332            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
333            $this->verifyNoErrors();
334            // On remplis le champs de recherche simple
335            $this->byCssSelector("input[name='recherche']")->value('CDEC');
336            // On clique sur le bouton recherche
337            $this->byCssSelector(".ui-button")->click();
338            // On clique sur le résultat
339            $this->byLinkText("CDEC majoration appel decision")->click();
340            // On clique sur le bouton "Modifier"
341            $this->byId('action-form-evenement-modifier')->click();
342            // On modifie le champ restriction pour qu'il ne retourne pas d'erreur
343            // au moment de l'ajout de l'instruction
344            $this->byId('restriction')->clear();
345            $this->byId('restriction')->value("date_evenement <= date_evenement + 1");
346            // On valide la modification
347            $this->byCssSelector("input[value='Modifier']")->click();
348            // On vérifie le message de validation
349            $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#tabs-1 .message")->text());
350            // On se déconnecte
351            $this->deconnect();
352    
353            // On se connecte en tant que "instr"
354            $this->login("instr", "instr");
355            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
356            $this->verifyNoErrors();
357            // On clique sur le lien "Mes encours" dans le menu
358            $this->byLinkText("Mes Encours")->click();
359            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
360            $this->verifyNoErrors();
361            sleep(1);
362            // On clique sur le dossier dernièrement créé
363            $this->byLinkText($dossier)->click();
364            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
365            $this->verifyNoErrors();
366            // On clique sur l'onglet "Instruction"
367            $this->byId("instruction")->click();
368            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
369            $this->verifyNoErrors();
370            //Ajout d'une instruction simple
371            // On clique sur le lien d'ajout dans le tableau
372            $this->byCssSelector(".actions-max-1 a")->click();
373            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
374            $this->verifyNoErrors();
375            //On choisi l'événement CDEC majoration appel decision [majoration]
376            $this->select($this->byId("evenement"))->selectOptionByValue("22");
377            //On valide le formulaire
378            $this->byXPath("//input[@value='Ajouter']")->click();
379            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
380            $this->verifyNoErrors();
381            sleep(1);
382            $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
383            //On retourne sur le tableau d'instructions
384            $this->byCssSelector("#sousform-instruction .retour")->click();
385            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
386            $this->verifyNoErrors();
387            //On affiche l'instruction
388            $this->byLinkText("CDEC majoration appel decision")->click();
389            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
390            $this->verifyNoErrors();
391            //On vérifie que certains champs n'apparaissent pas
392            $this->assertFalse($this->byId("date_envoi_controle_legalite")->displayed());
393            $this->assertFalse($this->byId("date_retour_controle_legalite")->displayed());
394            //On retourne sur le tableau d'instructions
395            $this->byCssSelector("#sousform-instruction .retour")->click();
396            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
397            $this->verifyNoErrors();
398            //Ajout d'une instruction de type arrêté        
399            // On clique sur le lien d'ajout dans le tableau
400            $this->byCssSelector(".actions-max-1 a")->click();
401            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
402            $this->verifyNoErrors();
403            //On choisi l'événement "accepter un dossier sans réserve [acceptation]"
404            $this->select($this->byId("evenement"))->selectOptionByValue("81");
405            // On clique sur la bible
406            $this->byLinkText('bible')->click();
407            // On vérifie qu'il y est les enregistrments "V56" et "V64"
408            $this->assertRegExp('/^[\s\S]*V56[\s\S]*$/',
409                $this->byCssSelector("#tab-bible")->text());
410            $this->assertRegExp('/^[\s\S]*V64[\s\S]*$/',
411                $this->byCssSelector("#tab-bible")->text());
412            // On choisit plusieurs éléments
413            $this->byId('checkbox4')->click();
414            $this->byId('checkbox5')->click();
415            // On valide le formulaire
416            $this->byXPath("//input[@value='Valider']")->click();
417            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
418            $this->verifyNoErrors();
419            // On valide le formulaire
420            $this->byXPath("//input[@value='Ajouter']")->click();
421            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
422            $this->verifyNoErrors();
423            // On vérifie le message de validation
424            $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
425            //On retourne sur le tableau d'instructions
426            $this->byCssSelector("#sousform-instruction .retour")->click();
427            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
428            $this->verifyNoErrors();
429            // On clique sur l'instruction
430            $this->byLinkText("accepter un dossier sans réserve")->click();
431            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
432            $this->verifyNoErrors();
433            // On vérifie le contenu du champ "complément"
434            $this->assertContains("Vu l'avis favorable de l'Architecte des Bâtiments de France en date du", $this->byId("complement_om_html")->text());
435            $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());
436            //On vérifie que certains champs apparaissent
437            $this->assertTrue($this->byClassName("libelle-date_envoi_controle_legalite")->displayed());
438            $this->assertTrue($this->byClassName("libelle-date_envoi_controle_legalite")->displayed());
439            // On se déconnecte
440            $this->logout();
441        }
442    
443        /**
444         * Test le formulaire de la demande de type qui possède des select filtrés
445         */
446        public function test_05_ajout_lot() {
447            // On se connecte en tant que "instr"
448            $this->login("instr", "instr");
449            // On clique sur le lien "Mes encours" dans le menu
450            $this->byLinkText("Mes Encours")->click();
451            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
452            $this->verifyNoErrors();
453            // On clique sur le lien "AZ0130551200001P0" dans le tableau
454            $this->byLinkText("AZ 013055 12 00001P0")->click();
455            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
456            $this->verifyNoErrors();
457            // On clique sur l'onglet "Lot(s)"
458            $this->byId("lot")->click();
459            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
460            $this->verifyNoErrors();
461            // On clique sur le bouton d'ajout de lots
462            $this->byXPath("//div[@id='sousform-lot']/table/thead/tr/th/a/span")->click();
463            // Vérification des champs obligatoires
464            $this->byXPath("//input[@value='Ajouter']")->click();
465            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
466            $this->verifyNoErrors();
467            // On vérifie que le message de champ vide soit affiché
468            $this->assertRegExp('/.*SAISIE NON ENREGISTRÉE.*/', $this->byCssSelector("#sousform-lot .message .text")->text());
469            // Insertion d'un lot
470            $this->byId("libelle")->value("Lot n°1");
471            $this->byXPath("//input[@value='Ajouter']")->click();
472            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
473            $this->verifyNoErrors();
474            sleep(1);
475            // On retourne sur le tableau listant les lots
476            $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();
477            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
478            $this->verifyNoErrors();
479            // On clique sur le bouton d'ajout de lots
480            $this->byXPath("//div[@id='sousform-lot']/table/thead/tr/th/a/span")->click();
481            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
482            $this->verifyNoErrors();
483            // Insertion d'un second lot
484            $this->byId("libelle")->value("Lot n°2");
485            $this->byXPath("//input[@value='Ajouter']")->click();
486            sleep(1);
487            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
488            $this->verifyNoErrors();
489            // On retourne sur le tableau listant les lots
490            $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();
491            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
492            $this->verifyNoErrors();
493            // On se déconnecte
494            $this->logout();
495        }
496    
497        /**
498         * Test du lien automatique entre choix autorité compétente dans DI et
499         * évènement d'instruction à créer
500         */
501        // Fonction privé
502        private function modification_autorite_competente($utilisateur) {
503            // On se connecte à l'application
504            $this->login($utilisateur["login"], $utilisateur["mdp"]);
505            // Ouvre le menu
506            $this->openMenu("Instruction", $utilisateur);
507            // On clique sur le lien "Mes encours" dans le menu
508            $this->byLinkText("Recherche")->click();
509            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
510            $this->verifyNoErrors();
511            // On clique sur le lien "AZ0130551200001P0" dans le tableau
512            $this->byLinkText("AZ 013055 12 00001P0")->click();
513            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
514            $this->verifyNoErrors();
515            // On clique sur l'onglet "Instruction"
516            $this->byId("instruction")->click();
517            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
518            $this->verifyNoErrors();
519            // On clique sur le bouton d'ajout de lots
520            $this->byXPath("//div[@id='sousform-instruction']/table/thead/tr/th/a/span")->click();
521            // Vérification des champs obligatoires
522            $this->byXPath("//input[@value='Ajouter']")->click();
523            sleep(1);
524            //On choisi un événement
525            $this->select($this->byId("evenement"))->selectOptionByValue("94");
526            // Validation du formulaire
527            $this->byXPath("//input[@value='Ajouter']")->click();
528            sleep(1);
529            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
530            $this->verifyNoErrors();
531            $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
532            $this->byCssSelector("form[name=\"f2\"] > a.retour")->click();
533            // Retour à l'onglet principal
534            $this->byId("main")->click();
535            $this->refresh();
536            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
537            $this->verifyNoErrors();
538            // On verifie que l'autorité compétente à changée.
539            $this->assertRegExp('/.*Commune pour état*/', $this->byCssSelector("#tabs-1 #autorite_competente")->text());
540            // On se déconnecte
541            $this->deconnect();
542    
543            // On se connecte en tant que "admin"
544            $this->login("admin", "admin");
545            sleep(1);
546            $this->byLinkText("Instruction")->click();
547            // On clique sur le lien "Recherche" dans le menu
548            $this->byLinkText("Recherche")->click();
549            // On clique sur le lien "AZ0130551200001P0" dans le tableau
550            $this->byLinkText("AZ 013055 12 00001P0")->click();
551            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
552            $this->verifyNoErrors();
553            // On verifie que l'autorité compétente à changée
554            $this->assertEquals('Commune pour état', $this->byCssSelector("#tabs-1 #autorite_competente")->text());
555            // On clique sur l'onglet "Instruction"
556            $this->byId("instruction")->click();
557            $this->byLinkText("Changer l'autorité compétente 'commune état'")->click();
558            sleep(1);
559            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
560            $this->verifyNoErrors();
561            // On supprime l'element et on verifie le retour de l'autorité "commune"
562            $this->byId("action-sousform-instruction-supprimer")->click();
563            // On valide le formulaire
564            $this->byXPath("//input[@value='Supprimer']")->click();sleep(1);
565            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
566            $this->verifyNoErrors();
567            // On clique sur le bouton retour
568            $this->byLinkText("Retour")->click();
569            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
570            $this->verifyNoErrors();
571            // On vérifie que l'événement d'instruction n'est plus dans le tableau
572            $this->assertNotContains("Changer l'autorité compétente 'commune état'", $this->byId("sousform-instruction")->text());
573            // Retour à l'onglet principal
574            $this->byId("main")->click();
575            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
576            $this->verifyNoErrors();
577            // On rafraîchit la page
578            $this->refresh();
579            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
580            $this->verifyNoErrors();
581            // On verifie que l'autorité compétente à changée.
582            $this->assertEquals('Commune', $this->byCssSelector("#tabs-1 #autorite_competente")->text());
583            // On se déconnecte
584            $this->deconnect();
585        }
586        // Fonction public
587        public function test_06_modification_autorite_competente() {
588            // Récupération des utilisateurs
589            $utilisateurs = $this->listUtlisateurs;
590            // Pour chaque utilisateur on lance le test
591            foreach ($utilisateurs as $utilisateur) {
592                //
593                $this->modification_autorite_competente($utilisateur);
594            }
595            // On vérifie la déconnexion
596            $this->verifyDeconnect();
597        }
598    
599        /**
600         * Test de l'ajout de données techniques au dossier
601         */
602        public function test_07_edition_donnees_techniques() {
603            // On se connecte en tant que "instr"
604            $this->login("admin", "admin");
605            sleep(1);
606            // Ouverture du menu de paramétrage des dossiers
607            $this->byLinkText("Paramétrage Dossiers")->click();
608            // Ouverture du menu des cerfa
609            $this->byLinkText("Cerfa")->click();
610            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
611            $this->verifyNoErrors();
612            // Ouverture d'un cerfa
613            $this->byLinkText("cerfa de test n°1")->click();
614            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
615            $this->verifyNoErrors();
616            // Modification du cerfa affiché
617            $this->byXPath("//div[@id='portlet-actions']/ul/li/a/span")->click();
618            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
619            $this->verifyNoErrors();
620            // Ajout de champs au formulaire des données techniques
621            $this->byXPath("//div[@id='form-content']/div[2]/fieldset/legend")->click();
622            $this->byId("terr_juri_titul")->click();
623            $this->byId("terr_juri_lot")->click();
624            $this->byId("terr_juri_zac")->click();
625            $this->byId("terr_juri_afu")->click();
626            $this->byId("terr_juri_pup")->click();
627            $this->byId("terr_juri_oin")->click();
628            $this->byId("terr_juri_desc")->click();
629            // Validation du formulaire
630            $this->byXPath("//input[@value='Modifier']")->click();
631            // Vérification des erreurs
632            $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector(".message .text")->text());
633            $this->byLinkText("Retour")->click();
634            // On se déconnecte
635            $this->deconnect();
636            // On se connecte en tant que "instr"
637            $this->login("instr", "instr");
638            // On clique sur le lien "Mes encours" dans le menu
639            $this->byLinkText("Mes Encours")->click();
640            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
641            $this->verifyNoErrors();
642            // On clique sur le lien "AZ0130551200001P0" dans le tableau
643            $this->byLinkText("AZ 013055 12 00001P0")->click();
644            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
645            $this->verifyNoErrors();
646            // On click sur le lien "Données techniques"
647            $this->byXPath("//div[@id='portlet-actions']/ul/li[2]/a/span")->click();
648            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
649            $this->verifyNoErrors();
650            sleep(1);
651            // Modification des données techniques
652            $this->byCssSelector("#sousform-donnees_techniques .edit-16")->click();
653            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
654            $this->verifyNoErrors();
655            sleep(1);
656            $this->assertRegExp('/^[\s\S]*Terrain[\s\S]*$/', $this->byCssSelector("#sformulaire #form-content legend")->text());
657            // Validation du formulaire
658            $this->byXPath("//input[@value='Modifier']")->click();
659            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
660            $this->verifyNoErrors();
661            $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-donnees_techniques .message .text")->text());
662            $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();
663            sleep(1);
664            // On se déconnecte
665            $this->logout();
666    
667        }
668    
669        /**
670         * Test un événement d'instruction qui a un événement "retour"
671         */
672        public function test_08_evenement_instruction_retour() {
673    
674            // On se connecte à l'application en tant qu'administrateur
675            $this->login("admin", "admin");
676            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
677            $this->verifyNoErrors();
678    
679            /** On ajoute une action "retour signature" **/
680            // On clique sur le menu "Paramétrage Dossiers"
681            $this->byLinkText("Paramétrage Dossiers")->click();
682            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
683            $this->verifyNoErrors();
684            // On clique sur le sous-menu "Action"
685            $this->byLinkText("Action")->click();
686            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
687            $this->verifyNoErrors();
688            // On clique sur le bouton "ajouter"
689            $this->byId("action-tab-action-corner-ajouter")->click();
690            // On remplis les champs
691            $this->byId("action")->value("retour signature");
692            $this->byId("libelle")->value("retour signature");
693            $this->byId("regle_etat")->value("etat");
694            $this->byId("regle_date_validite")->value("date_retour_signature + duree_validite");
695            // On valide le formulaire
696            $this->byXPath("//input[@value='Ajouter']")->click();
697            // On vérifie le message de validation
698            $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text());
699            /** Fin **/
700    
701            /** On ajoute un événement "retour signature" **/
702            // On clique sur le sous-menu "Événement"
703            $this->byLinkText("Événement")->click();
704            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
705            $this->verifyNoErrors();
706            // On clique sur le bouton "ajouter"
707            $this->byId("action-tab-evenement-corner-ajouter")->click();
708            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
709            $this->verifyNoErrors();
710            // On remplis les champs
711            $this->byId("libelle")->value("retour signature");
712            $this->byId("retour")->click();
713            $this->select($this->byName("etats_depuis_lequel_l_evenement_est_disponible[]"))->clearSelectedOptions();;
714            $this->select($this->byName("etats_depuis_lequel_l_evenement_est_disponible[]"))->selectOptionByLabel("dossier accepter");
715            $this->select($this->byName("dossier_instruction_type[]"))->clearSelectedOptions();
716            $this->select($this->byName("dossier_instruction_type[]"))->selectOptionByLabel("PCI - P - Initial");
717            $this->select($this->byId("action"))->selectOptionByLabel("retour signature");
718            // On valide le formulaire
719            $this->byXPath("//input[@value='Ajouter']")->click();
720            // On vérifie le message de validation
721            $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text());
722            // On clique sur "Retour"
723            $this->byLinkText("Retour")->click();
724            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
725            $this->verifyNoErrors();
726            // On recherche l'événement "accepter un dossier sans réserve"
727            $this->byCssSelector("input[name='recherche']")->value('accepter un dossier sans réserve');
728            // On clique sur le bouton recherche
729            $this->byCssSelector(".ui-button")->click();
730            // On clique sur le résultat
731            $this->byLinkText("accepter un dossier sans réserve")->click();
732            // On clique sur le bouton "Modifier"
733            $this->byId('action-form-evenement-modifier')->click();
734            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
735            $this->verifyNoErrors();
736            // On sélectionne l'événement "retour" dans "evenement_retour_signature"
737            $this->select($this->byId("evenement_retour_signature"))->selectOptionByLabel("retour signature");
738            // On valide le formulaire
739            $this->byXPath("//input[@value='Modifier']")->click();
740            // On vérifie le message de validation
741            $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text());
742            /** Fin **/
743    
744            /** On ajoute une durée de validité au type de DA PCI **/
745            // On clique sur le sous-menu "Type DA Détaillé"
746            $this->byLinkText("Type DA Détaillé")->click();
747            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
748            $this->verifyNoErrors();
749            // On clique sur le PCI
750            $this->byLinkText("PCI")->click();
751            // On clique sur le bouton "modifier"
752            $this->byId("action-form-dossier_autorisation_type_detaille-modifier")->click();
753            // On modifie la durée de validité
754            $this->byId("duree_validite_parametrage")->clear();
755            $this->byId("duree_validite_parametrage")->value("5");
756            // On valide le formulaire
757            $this->byXPath("//input[@value='Modifier']")->click();
758            // On vérifie le message de validation
759            $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text());
760            /** Fin **/
761    
762            /** On instancie une nouvelle demande initial PCI **/
763            // On clique sur le menu "Guichet Unique"
764            $this->byLinkText("Guichet Unique")->click();
765            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
766            $this->verifyNoErrors();
767            // On clique sur le sous-menu "Nouveau Dossier"
768            $this->byLinkText("Nouveau Dossier")->click();
769            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
770            $this->verifyNoErrors();
771            // On selectionne le type de dossier d'autorisation détaillé "Permis de construire pour une maison individuelle et / ou ses annexes"
772            $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel("Permis de construire pour une maison individuelle et / ou ses annexes");
773            // On selectionne le type de demande "Dépôt Initial"
774            $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
775            // On clique pour ajouter un pétitionnaire principale
776            $this->byId("add_petitionnaire_principal")->click();
777            // On remplit le champ
778            $this->byId("particulier_nom")->value("DURAND");
779            // On remplit le champ
780            $this->byId("particulier_prenom")->value("MICKAEL");
781            // On remplit le champ
782            $this->byId("particulier_date_naissance")->value("03/01/1956");
783            // On remplit le champ
784            $this->byId("particulier_commune_naissance")->value("LILLE");
785            // On remplit le champ
786            $this->byId("particulier_departement_naissance")->value("NORD");
787            // On remplit le champ
788            $this->byId("numero")->value("12");
789            // On remplit le champ
790            $this->byId("voie")->value("RUE DE LA LOI");
791            // On remplit le champ
792            $this->byId("complement")->value("APPT 12");
793            // On remplit le champ
794            $this->byId("localite")->value("MARSEILLE");
795            // On remplit le champ
796            $this->byId("code_postal")->value("13012");
797            // On remplit le champ
798            $this->byId("telephone_fixe")->value("0404040404");
799            // On clique sur ajouter
800            $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
801            // On vérifie le message
802            $this->assertContains("Vos modifications ont bien été enregistrées", $this->byCssSelector("#sousform-petitionnaire .message")->text());
803          // On clique sur le bouton retour          // On clique sur le bouton retour
804          $this->click("css=form[name=\"f2\"] > div.formControls > a.retour");          $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
805            // On vérifie que le text est présent
806            $this->assertContains("DURAND MICKAEL",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
807            // On clique sur ajouter
808            $this->byXPath("//input[@value='Ajouter']")->click();
809            // On vérifie le message
810            $this->assertContains("Création du dossier d'autorisation n°",$this->byCssSelector(".message .text")->text());
811            // Récupération du numéro de dossier
812            preg_match('/(PC)[0-9 ]*(P0)/', $this->byCssSelector(".message .text")->text(), $dossier);
813            $dossier = $dossier[0];
814            /** Fin **/
815    
816            /** On ajoute une instruction de dossier accepter et on la finalise **/
817            // On clique sur le menu "Instruction"
818            $this->byLinkText("Instruction")->click();
819            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
820            $this->verifyNoErrors();
821            // On clique sur le sous-menu "Recherche"
822            $this->byLinkText("Recherche")->click();
823            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
824            $this->verifyNoErrors();
825            // On recherche le dossier crée
826            $this->byId("dossier")->value(str_replace(' ', '', $dossier));
827            // On clique sur le bouton recherche
828            $this->byId("adv-search-submit")->click();
829            // On clique sur le résultat
830            $this->byLinkText($dossier)->click();
831            // On clique sur l'onglet "Instruction"
832            $this->byId("instruction")->click();
833            // On ajoute un événement d'instruction
834            $this->byId("action-soustab-instruction-corner-ajouter")->click();
835            // On sélectionne l'évenement "accepter un dossier sans réserve"
836            $this->select($this->byId("evenement"))->selectOptionByLabel("accepter un dossier sans réserve [acceptation]");
837            // On valide le formulaire
838            $this->byXPath("//input[@value='Ajouter']")->click();
839            // On vérifie le message
840            $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message .text")->text());
841            // On clique sur le bouton "retour"
842            $this->byLinkText("Retour")->click();
843            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
844            $this->verifyNoErrors();
845            // On clique sur l'événement d'instruction "accepter un dossier sans réserve"
846            $this->byLinkText("accepter un dossier sans réserve")->click();
847            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
848            $this->verifyNoErrors();
849            // On valide l'instruction
850            $this->byId("action-sousform-instruction-finalisation")->click();
851            // On vérifie le message de validation
852            $this->assertContains("La finalisation du document s'est effectuée avec succès.",$this->byCssSelector(".message .text")->text());
853            // On clique sur le bouton "Retour"
854            $this->byLinkText("Retour")->click();
855            // On clique sur l'événement "accepter un dossier sans réserve"
856            $this->byLinkText("accepter un dossier sans réserve")->click();sleep(1);
857            // Récupération du numéro d'événement
858            $evenement = $this->byCssSelector("#instruction.field_value")->text();
859            /** Fin **/
860    
861            /** On met à jour la date de retour signature **/
862            // Date de retour signature
863            $date_retour_signature = date("d/m/Y", mktime(0, 0, 0, date("m"), date("d")+5,  date("Y")));
864            // On clique sur le menu "Suivi"
865            $this->byLinkText("Suivi")->click();
866            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
867            $this->verifyNoErrors();
868            // On clique sur le sous-menu "Mise À Jour Des Dates"
869            $this->byLinkText("Mise À Jour Des Dates")->click();
870            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
871            $this->verifyNoErrors();
872            // On sélectionne "date de retour de signature + Envoi contrôle légalite"
873            $this->select($this->byId("type_mise_a_jour"))->selectOptionByLabel("date de retour de signature + Envoi contrôle légalite");
874            // On remplit à la date du jour + 5 jours
875            $this->byId("date")->value($date_retour_signature);
876            // On remplit le code barres de l'instruction
877            $this->byId("code_barres")->value("11".str_pad($evenement, 10, "0", STR_PAD_LEFT));
878            // On clique sur Valider
879            $this->byCssSelector("#suivi_mise_a_jour_des_dates_form div.formControls input.om-button")->click();sleep(1);
880            // On vérifie la synthèse avec le numéro du dossier et l'événement
881            $this->assertContains($dossier, $this->byId("dossier_libelle")->text());
882            $this->assertContains("accepter un dossier sans réserve", $this->byId("evenement")->text());
883            // On clique sur Valider
884            $this->byCssSelector("#suivi_mise_a_jour_des_dates_form div.formControls input.om-button")->click();
885            // On vérifie le message de validation
886            $this->assertContains("Saisie enregistrée",$this->byCssSelector(".message .text")->text());
887            /** Fin **/
888    
889            /** Vérifie l'instruction "retour" et le DI **/
890            // Date de validité
891            $date_validite = $this->mois_date(date("Y-m-d", mktime(0, 0, 0, date("m"), date("d")+5,  date("Y"))), 5, "+");
892            $date_validite = date("d/m/Y", strtotime($date_validite));
893            // On clique sur le menu "Instruction"
894            $this->byLinkText("Instruction")->click();
895            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
896            $this->verifyNoErrors();
897            // On clique sur le sous-menu "Recherche"
898            $this->byLinkText("Recherche")->click();
899            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
900            $this->verifyNoErrors();
901            // On recherche le dossier crée
902            $this->byId("dossier")->value(str_replace(' ', '', $dossier));
903            // On clique sur le bouton recherche
904            $this->byId("adv-search-submit")->click();
905            // On clique sur le résultat
906            $this->byLinkText($dossier)->click();
907            // On vérifie la date de validité mise à jour par l'action
908            $this->assertContains($date_validite, $this->byId("date_validite")->text());
909            // On clique sur l'onglet "Instruction"
910            $this->byId("instruction")->click();
911            // On clique sur l'instruction "retour signature"
912            $this->byLinkText("retour signature")->click();
913            // On contrôle la date de retour signature
914            $this->assertContains($date_retour_signature, $this->byId("date_retour_signature")->text());
915            /** Fin **/
916    
917            // On se déconnecte
918            $this->logout();
919    
920        }
921        
922        /**
923         * Test la suppression d'un événement d'instruction lié à une demande qui ne
924         * créée pas de nouveau dossier d'instruction
925         */
926        public function test_09_suppression_evenement_demande(){
927                    
928          //// Ajout de plusieurs consultations          //Ajout du paramétrage d'une nouvelle demande
929          // On clique sur le bouton ajout multiple          // On se connecte à l'application en tant qu'administrateur
930          $this->click("//div[@id='sousform-consultation']/table/thead/tr/th/a[2]/span");          $this->login("admin", "admin");
931          $this->verifyNoDatabaseError();          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
932          // On sélectionne trois servcies          $this->verifyNoErrors();
933          $this->click("id=t10_572_0_");          //On clique sur "Paramétrage dossier"
934          $this->click("id=t10_575_0_");          $this->byLinkText("Paramétrage Dossiers")->click();
935          $this->click("id=t10_584_0_");          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
936          // On les ajoute à la sélection          $this->verifyNoErrors();
937          $this->click("id=add-ser-them");          //On clique sur Type
938          // On valide le formulaire          $this->byLinkText("Type")->click();
939          $this->click("id=button_val");          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
940          $this->verifyNoDatabaseError();          $this->verifyNoErrors();
941          //          //On clique sur le "+" du tableau
942          $this->verifyTextPresent("3 service(s) sélectionné(s) dont 0 consultation(s) papier.");          $this->byClassName("add-16")->click();
943            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
944            $this->verifyNoErrors();
945            //On saisit le type de la demande
946            $this->byId("code")->value("test_09_suppression");
947            $this->byId("libelle")->value("test_09_suppression");
948            // On sélectionne le groupe 'Autorisation ADS'
949            $this->select($this->byId("groupe"))->selectOptionByValue("1");sleep(1);
950            // On sélectionne 'AZ (Demande d'autorisation spéciale de travaux dans
951            // le périmètre d'une AVAP)'
952            $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByValue("7");sleep(1);
953            // On sélectionne la nature 'Dossier existant'
954            $this->select($this->byId("demande_nature"))->selectOptionByValue("2");
955            // On sélectionne l'état 'En cours'
956            $this->select($this->byName("etats_dossier_autorisation_autorises[]"))->selectOptionByValue("1");
957            // On sélectionne l'événement 'Defrichement soumis a enquete publique'
958            $this->select($this->byId("evenement"))->selectOptionByValue("15");
959            // On sélectionne la contrainte 'Avec récupération demandeur'
960            $this->select($this->byId("contraintes"))->selectOptionByValue("avec_recup");
961            // On clique sur le bouton ajouter
962            $this->byXPath("//input[@value='Ajouter']")->click();
963            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
964            $this->verifyNoErrors();
965            // On vérifie que le type de demande a bien été ajouté
966            $this->assertContains('Vos modifications ont bien été enregistrées', $this->byCssSelector(".message .text")->text());
967            //On se déconnecte
968            $this->deconnect();
969            
970            //Création d'un nouveau dossier d'instruction
971            // On se connecte à l'application
972            $this->login("guichet", "guichet");
973            //On clique sur "Dossier En Cours"
974            $this->byLinkText("Dossier En Cours")->click();
975            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
976            $this->verifyNoErrors();
977            //On clique sur le dossier "AZ0130551200001P0"
978            $this->byId("action-tab-demande_dossier_encours-left-consulter-AZ0130551200001P0")->click();
979            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
980            $this->verifyNoErrors();
981            //On sélectionne le type de la demande
982            $this->select($this->byId("demande_type"))->selectOptionByLabel("test_09_suppression");sleep(1);
983            // On clique sur le bouton ajouter
984            $this->byXPath("//input[@value='Ajouter']")->click();
985            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
986            $this->verifyNoErrors();
987            // On vérifie que le type de demande a bien été ajouté
988            $this->assertContains('Vos modifications ont bien été enregistrées', $this->byCssSelector(".message .text")->text());
989            //On se déconnecte
990            $this->deconnect();
991                    
992          // On vérifie que nous avons bien 4 consultations affichées          //Suppression de l'événement d'instruction
993          $this->verifyTextPresent("1 - 4 enregistrement(s) sur 4");          // On se connecte à l'application
994            $this->login("admin", "admin");
995            //On clique sur le menu "Instruction"
996            $this->byLinkText("Instruction")->click();
997            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
998            $this->verifyNoErrors();
999            //On clique sur le menu "Recherche"
1000            $this->byLinkText("Recherche")->click();
1001            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1002            $this->verifyNoErrors();
1003            //On clique sur le dossier "AZ 013055 12 00001P0"
1004            $this->byLinkText("AZ 013055 12 00001P0")->click();
1005            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1006            $this->verifyNoErrors();
1007            //On clique sur l'onglet "Instruction"
1008            $this->byId("instruction")->click();
1009            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1010            $this->verifyNoErrors();
1011            //On clique sur l'instruction "Defrichement soumis a enquete publique"
1012            $this->byLinkText("Defrichement soumis a enquete publique")->click();
1013            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1014            $this->verifyNoErrors();
1015            //On définalise l'instruction
1016            $this->byClassName("definalise")->click();
1017            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1018            $this->verifyNoErrors();
1019            //On clique "Supprimer"
1020            $this->byCssSelector("#sousform-instruction .delete-16")->click();
1021            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1022            $this->verifyNoErrors();
1023            //On clique sur supprimer
1024            $this->byXPath("//input[@value='Supprimer']")->click();
1025            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1026            $this->verifyNoErrors();
1027            //On vérifie que lasuppression a été éffectuée
1028            $this->assertContains("La suppression a été correctement effectuée.",
1029                $this->byCssSelector("#sousform-instruction .message .text")->text());
1030            // On se déconnecte
1031            $this->logout();
1032        }
1033    
1034          //      /**
1035         * Test sur les types d'éditions des consultations
1036         */
1037        function test_10_nouveau_type_edition_consultation(){
1038            
1039            //On saisit un service de test        
1040            // On se connecte à l'application
1041            $this->login("admin", "admin");
1042            //On clique sur "Paramétrage"
1043            $this->byLinkText("Paramétrage")->click();
1044            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1045            $this->verifyNoErrors();
1046            //On clique sur "Service"
1047            $this->byLinkText("Service")->click();
1048            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1049            $this->verifyNoErrors();        
1050            //On clique sur le "+" du tableau
1051            $this->byClassName("add-16")->click();
1052            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1053            $this->verifyNoErrors();
1054            //On saisit les données du service
1055            $this->byId("abrege")->value("test_10");
1056            $this->byId("libelle")->value("test_10");
1057            $this->byId("consultation_papier")->click();
1058            $this->select($this->byId("edition"))->selectOptionByLabel("test_10");
1059            // On clique sur le bouton ajouter
1060            $this->byXPath("//input[@value='Ajouter']")->click();
1061            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1062            $this->verifyNoErrors();
1063            // On vérifie que le service a bien été ajouté
1064            $this->assertContains('Vos modifications ont bien été enregistrées', $this->byCssSelector(".message .text")->text());
1065            //On se déconnecte
1066            $this->deconnect();
1067            
1068            //On ajoute une consultation sur un dossier et on vérifie l'édition
1069            // On se connecte à l'application
1070            $this->login("instr", "instr");
1071            //On clique sur "Recherche"
1072            $this->byLinkText("Recherche")->click();
1073            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1074            $this->verifyNoErrors();
1075            //On choisit le dossier "AZ 013055 12 00001P0"
1076            $this->byLinkText("AZ 013055 12 00001P0")->click();
1077            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1078            $this->verifyNoErrors();
1079            //On clique sur l'onglet "Consultation"
1080            $this->byId("consultation")->click();
1081            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1082            $this->verifyNoErrors();
1083            //On clique sur le "+" du tableau
1084            $this->byClassName("add-16")->click();
1085            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1086            $this->verifyNoErrors();
1087            //On saist une nouvelle consultation
1088            $this->select($this->byId("service"))->selectOptionByLabel("test_10");
1089            // On clique sur le bouton ajouter
1090            $this->byXPath("//input[@value='Ajouter']")->click();
1091            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1092            $this->verifyNoErrors();
1093            // On vérifie que la consultation a bien été ajoutée
1094            $this->assertContains('Vos modifications ont bien été enregistrées', $this->byCssSelector(".message .text")->text());
1095            //On clique sur retour
1096            $this->byCssSelector("#sousform-consultation .retour")->click();
1097            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1098            $this->verifyNoErrors();
1099            //On clique sur la consultation au service "test_10"
1100            $this->byLinkText("test_10")->click();
1101            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1102            $this->verifyNoErrors();
1103            //On affiche le PDF
1104            $this->byId("action-sousform-consultation-pdfetat")->click();sleep(5);
1105            // Liste les fenêtres
1106            $windows = $this->windowHandles();
1107            // Change la fenêtre
1108            $this->window($windows[1]);
1109            // On vérifie qu'il n'y ait pas d'erreur
1110            $this->verifynoerrors();
1111            // On vérifie que le text est présent
1112            $this->assertContains("test_10",$this->source());
1113            $this->assertNotContains("test_10_2",$this->source());
1114            // On ferme la fenêtre
1115            $this->closeWindow();
1116            // On change le focus de la fenêtre
1117            $this->window($windows[0]);
1118            //On se déconnecte
1119            $this->deconnect();
1120            
1121            //On change l'édition
1122            // On se connecte à l'application
1123            $this->login("admin", "admin");
1124            //On clique sur "Paramétrage"
1125            $this->byLinkText("Paramétrage")->click();
1126            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1127            $this->verifyNoErrors();
1128            //On clique sur "Service"
1129            $this->byLinkText("Service")->click();
1130            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1131            $this->verifyNoErrors();
1132            //On cherche le service
1133            $this->byName("recherche")->value("test_10");
1134            //On valide
1135            $this->byName("s1")->click();
1136            //On clique sur le service test_10
1137            $this->byLinkText("test_10")->click();
1138            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1139            $this->verifyNoErrors();
1140            //On clique sur "Modifier" dans le portail d'action
1141            $this->byClassName("edit-16")->click();
1142            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1143            $this->verifyNoErrors();
1144            //On choisit une seconde édition
1145            $this->select($this->byId("edition"))->selectOptionByLabel("test_10_2");
1146            // On clique sur le bouton ajouter
1147            $this->byXPath("//input[@value='Modifier']")->click();
1148            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1149            $this->verifyNoErrors();
1150            // On vérifie que le service a bien été ajouté
1151            $this->assertContains('Vos modifications ont bien été enregistrées', $this->byCssSelector(".message .text")->text());
1152            //On se déconnecte
1153            $this->deconnect();
1154            
1155            //On vérifie que c'est la bonne édition qui est affiché
1156            // On se connecte à l'application
1157            $this->login("instr", "instr");
1158            //On clique sur "Recherche"
1159            $this->byLinkText("Recherche")->click();
1160            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1161            $this->verifyNoErrors();
1162            //On choisit le dossier "AZ 013055 12 00001P0"
1163            $this->byLinkText("AZ 013055 12 00001P0")->click();
1164            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1165            $this->verifyNoErrors();
1166            //On clique sur l'onglet "Consultation"
1167            $this->byId("consultation")->click();
1168            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1169            $this->verifyNoErrors();
1170            //On clique sur la consultation au service "test_10"
1171            $this->byLinkText("test_10")->click();
1172            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1173            $this->verifyNoErrors();
1174            //on definalise la consultaion
1175            $this->byClassName("definalise")->click();
1176            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1177            $this->verifyNoErrors();
1178            //On vérifie que la consultation s'est bien définalisée
1179            $this->assertEquals('La definalisation du document s\'est effectuée avec succès.', $this->byCssSelector("#sousform-consultation .message .text")->text());sleep(10);
1180            //On affiche le PDF
1181            $this->byId("action-sousform-consultation-pdfetat")->click();sleep(5);
1182            // Liste les fenêtres
1183            $windows = $this->windowHandles();
1184            // Change la fenêtre
1185            $this->window($windows[1]);
1186            // On vérifie qu'il n'y ait pas d'erreur
1187            $this->verifynoerrors();
1188            // On vérifie que le text est présent
1189            $this->assertContains("test_10_2",$this->source());
1190            // On ferme la fenêtre
1191            $this->closeWindow();
1192            // On change le focus de la fenêtre
1193            $this->window($windows[0]);
1194            
1195            // On se déconnecte
1196          $this->logout();          $this->logout();
1197      }      }
1198    
1199        /**
1200         * Test sur un événement non verrouillable
1201         */
1202        public function test_11_evenement_non_verrouillable(){
1203    
1204            /* On crée une nouvelle demande initial */
1205            // On se connecte à l'application
1206            $this->login("guichet", "guichet");
1207            // On clique sur le menu "Nouveau Dossier"
1208            $this->byLinkText("Nouveau Dossier")->click();
1209            // On vérifie qu'il n'y ait pas d'erreur
1210            $this->verifynoerrors();
1211            // On vérifie le nom de l'onglet
1212            $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
1213            // On sélectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
1214            $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel("Permis de construire pour une maison individuelle et / ou ses annexes");
1215            // On selectionne le label "Dépôt Initial"
1216            $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
1217            // On clique pour ajouter un pétitionnaire principale
1218            $this->byId("add_petitionnaire_principal")->click();
1219            // On remplit le champ
1220            $this->byId("particulier_nom")->value("DURAND");
1221            // On remplit le champ
1222            $this->byId("particulier_prenom")->value("MICKAEL");
1223            // On remplit le champ
1224            $this->byId("particulier_date_naissance")->value("03/01/1956");
1225            // On remplit le champ
1226            $this->byId("particulier_commune_naissance")->value("LILLE");
1227            // On remplit le champ
1228            $this->byId("particulier_departement_naissance")->value("NORD");
1229            // On remplit le champ
1230            $this->byId("numero")->value("12");
1231            // On remplit le champ
1232            $this->byId("voie")->value("RUE DE LA LOI");
1233            // On remplit le champ
1234            $this->byId("complement")->value("APPT 12");
1235            // On remplit le champ
1236            $this->byId("localite")->value("MARSEILLE");
1237            // On remplit le champ
1238            $this->byId("code_postal")->value("13012");
1239            // On remplit le champ
1240            $this->byId("telephone_fixe")->value("0404040404");
1241            // On clique sur ajouter
1242            $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
1243            // On vérifie qu'il n'y ait pas d'erreur
1244            $this->verifynoerrors();
1245            // On vérifie le message
1246            $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-petitionnaire .message")->text());
1247            // On clique sur le bouton retour
1248            $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
1249            // On vérifie que le text est présent
1250            $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
1251            // On clique sur ajouter
1252            $this->byXPath("//input[@value='Ajouter']")->click();
1253            // On vérifie qu'il n'y ait pas d'erreur
1254            $this->verifynoerrors();
1255            // On vérifie le message
1256            $this->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°[\s\S]*$/",$this->byCssSelector(".message")->text());
1257            // Récupération du numéro de dossier
1258            preg_match('/(PC)[0-9 ]*(P0)/', $this->byCssSelector(".message .text")->text(), $matches);
1259            $dossier_libelle = $matches[0];
1260            $dossier = str_replace(' ', '', $dossier_libelle);
1261            $dossier_dir = substr_replace($dossier, '.', -2, -3);
1262            // On clique
1263            $this->byCssSelector("a.lien")->click();sleep(5);
1264            // Liste les fenêtres
1265            $windows = $this->windowHandles();
1266            // Change la fenêtre
1267            $this->window($windows[1]);
1268            // On vérifie qu'il n'y ait pas d'erreur
1269            $this->verifynoerrors();
1270            // On vérifie que le text est présent
1271            $this->assertRegExp("/^[\s\S]*RECEPISSE DE DEPOT[\s\S]*$/",$this->source());
1272            // On ferme la fenêtre
1273            $this->closeWindow();
1274            // On change le focus de la fenêtre
1275            $this->window($windows[0]);
1276            // On clique sur le bouton retour
1277            $this->byLinkText("Retour")->click();
1278            // On vérifie qu'il n'y ait pas d'erreur
1279            $this->verifynoerrors();
1280            // On vérifie que le répertoire s'est crée
1281            $this->assertTrue(file_exists("../trs/numerisation/Todo/".$dossier_dir));
1282            // On se déconnecte
1283            $this->deconnect();
1284            /* Fin */
1285    
1286            /* On accepte le dossier d'instruction et le finalise */
1287            // On se connecte à l'application
1288            $this->login("instr", "instr");
1289            // On clique sur le menu 'Recherche'
1290            $this->byLinkText("Recherche")->click();
1291            // On recherche le dossier crée
1292            $this->byId("dossier")->value($dossier);
1293            // On clique sur le bouton recherche
1294            $this->byId("adv-search-submit")->click();
1295            // On clique sur le résultat
1296            $this->byLinkText($dossier_libelle)->click();
1297            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1298            $this->verifyNoErrors();
1299            // On clique sur l'onglet "Instruction"
1300            $this->byId("instruction")->click();
1301            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1302            $this->verifyNoErrors();
1303            // On clique sur le lien d'ajout dans le tableau
1304            $this->byCssSelector(".actions-max-1 a")->click();
1305            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1306            $this->verifyNoErrors();
1307            // On choisi un événement
1308            $this->select($this->byId("evenement"))->selectOptionByLabel("accepter un dossier sans réserve [acceptation]");
1309            // On valide le formulaire
1310            $this->byXPath("//input[@value='Ajouter']")->click();
1311            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1312            $this->verifyNoErrors();
1313            sleep(1);
1314            $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
1315            // On retourne sur le tableau d'instructions
1316            $this->byCssSelector("#sousform-instruction .retour")->click();
1317            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1318            $this->verifyNoErrors();
1319            // On clique sur l'événement d'instruction "accepter un dossier sans réserve"
1320            $this->byLinkText("accepter un dossier sans réserve")->click();
1321            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1322            $this->verifyNoErrors();
1323            // On valide l'instruction (un événement verrouillable ne pourrait pas
1324            // être finalisé)
1325            $this->byId("action-sousform-instruction-finalisation")->click();
1326            // On vérifie le message de validation
1327            $this->assertContains("La finalisation du document s'est effectuée avec succès.",$this->byCssSelector(".message .text")->text());
1328            /* Fin */
1329        }
1330    
1331        /**
1332         * Test que les données du dossier d'autorisation sont recopiés dans les
1333         * champs 'archive_' de l'événement d'instruction de la création du nouveau
1334         * dossier d'instruction
1335         */
1336        public function test_12_recopie_donnees_da_vers_nouveau_di(){
1337            
1338            //{{{ Ajout de d'un nouveau dossier
1339            // On se connecte à l'application
1340            $this->login("guichet", "guichet");
1341            //On clique sur le menu des instructions
1342            $this->byLinkText("Nouveau Dossier")->click();
1343            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1344            $this->verifyNoErrors();
1345            //On ajoute un nouveau dossier
1346            $dossier = $this->addDossierInstruction( 1, 1);                
1347            // On se déconnecte
1348            $this->deconnect();
1349            //}}}
1350            
1351            //{{{
1352            // Mise à jour des données techniques
1353            // On se connecte à l'application
1354            $this->login("instr", "instr");
1355            //On clique sur le menu "Recherche"
1356            $this->byLinkText("Recherche")->click();
1357            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1358            $this->verifyNoErrors();
1359            // On recherche le dossier crée
1360            $this->byId("dossier")->value(str_replace(' ', '', $dossier));
1361            // On clique sur le bouton recherche
1362            $this->byId("adv-search-submit")->click();
1363            // On clique sur le résultat
1364            $this->byLinkText($dossier)->click();
1365            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1366            $this->verifyNoErrors();
1367            // Ouverture du formulaire des données techniques
1368            $this->byCssSelector("#formulaire .rediger-16")->click();
1369            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1370            $this->verifyNoErrors();
1371            // Modification des données techniques
1372            $this->byCssSelector("#sousform-donnees_techniques .edit-16")->click();
1373            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1374            $this->verifyNoErrors();
1375            sleep(1);
1376            // On déplie le fieldset Construire
1377            $this->byCssSelector("#fieldset-sousform-donnees_techniques-construire legend")->click();
1378            sleep(1);
1379            // On déplie le fieldset Destinations et surfaces des constructions
1380            $this->byCssSelector("#fieldset-sousform-donnees_techniques-destinations-et-surfaces-des-constructions legend")->click();
1381            sleep(1);
1382            //On remplit des données techniques
1383            $this->byId("su_cstr_shon1")->value("120");
1384            // On clique sur ajouter
1385            $this->byXPath("//input[@value='Modifier']")->click();
1386            // On vérifie qu'il n'y ait pas d'erreur
1387            $this->verifynoerrors();
1388            // On vérifie le message
1389            $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1390            //On clique sur retour
1391            $this->byCssSelector("#sousform-donnees_techniques .retour")->click();
1392            // On se déconnecte
1393            $this->deconnect();
1394            //}}}
1395            
1396            //{{{ Clôture du nouveau dossier
1397            // On se connecte à l'application
1398            $this->login("instr", "instr");
1399            //On clique sur le menu "Recherche"
1400            $this->byLinkText("Recherche")->click();
1401            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1402            $this->verifyNoErrors();
1403            // On recherche le dossier crée
1404            $this->byId("dossier")->value(str_replace(' ', '', $dossier));
1405            // On clique sur le bouton recherche
1406            $this->byId("adv-search-submit")->click();
1407            // On clique sur le résultat
1408            $this->byLinkText($dossier)->click();
1409            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1410            $this->verifyNoErrors();
1411            //On clique sur l'onglet "instruction"
1412            $this->byId("instruction")->click();
1413            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1414            $this->verifyNoErrors();
1415            // On ajoute une instruction
1416            $this->byCssSelector("#sousform-instruction .add-16")->click();
1417            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1418            $this->verifyNoErrors();
1419            //On choisit l'instruction 'accepter un dossier sans réserve
1420            //[acceptation]'
1421            $this->select($this->byId("evenement"))->selectOptionByValue(81);
1422            // On clique sur ajouter
1423            $this->byXPath("//input[@value='Ajouter']")->click();
1424            // On vérifie qu'il n'y ait pas d'erreur
1425            $this->verifynoerrors();
1426            // On vérifie le message
1427            $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1428            //On rafraichit la page pour vérifier que le dossier est clôturé
1429            $this->refresh();
1430            $this->assertEquals("Favorable", $this->byId("avis_decision")->text());
1431            // On se déconnecte
1432            $this->deconnect();
1433            //}}}
1434            
1435            //{{{ Vérification des données techniques dans la visu DA
1436            // On se connecte à l'application
1437            $this->login("instr", "instr");
1438            //On clique sur le menu "Recherche"
1439            $this->byLinkText("Recherche")->click();
1440            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1441            $this->verifyNoErrors();
1442            // On recherche le dossier crée
1443            $this->byId("dossier")->value(str_replace(' ', '', $dossier));
1444            // On clique sur le bouton recherche
1445            $this->byId("adv-search-submit")->click();
1446            // On clique sur le résultat
1447            $this->byLinkText($dossier)->click();
1448            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1449            $this->verifyNoErrors();
1450            //On clique sur l'onglet "DA"
1451            $this->byId("dossier_autorisation")->click();
1452            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1453            $this->verifyNoErrors();
1454            // On ajoute une instruction
1455            $this->byCssSelector("#sousform-dossier_autorisation .consult-16")->click();
1456            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1457            $this->verifyNoErrors();
1458            // Affichage des données techniques
1459            $this->byId("donnees_techniques_da")->click();
1460            sleep(1);
1461            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1462            $this->verifyNoErrors();
1463            // On déplie le fieldset Construire
1464            $this->byCssSelector("#fieldset-sousform-donnees_techniques-construire legend")->click();
1465            sleep(1);
1466            // On déplie le fieldset Destinations et surfaces des constructions
1467            $this->byCssSelector("#fieldset-sousform-donnees_techniques-destinations-et-surfaces-des-constructions legend")->click();
1468            sleep(1);
1469            $this->assertEquals("120", $this->byId("su_cstr_shon1")->text());
1470            //On clique sur retour
1471            $this->byCssSelector("#sousform-donnees_techniques .retour")->click();
1472            // On se déconnecte
1473            $this->deconnect();
1474            //}}}
1475            
1476            //{{{ Ajout de l'action
1477            // On se connecte à l'application
1478            $this->login("admin", "admin");
1479            //On clique sur le menu "Paramétrage dossiers"
1480            $this->byLinkText("Paramétrage Dossiers")->click();
1481            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1482            $this->verifyNoErrors();
1483            //On clique sur le menu "Action"
1484            $this->byLinkText("Action")->click();
1485            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1486            $this->verifyNoErrors();
1487            //On clique sur le "+" du tableau
1488            $this->byClassName("add-16")->click();
1489            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1490            $this->verifyNoErrors();
1491            //On remplit la règle de calcul de la date de validité
1492            $this->byId("action")->value("test_12_recopie_donnees");
1493            $this->byId("libelle")->value("test_12_recopie_donnees");
1494            $this->byId("regle_date_validite")->value("archive_date_validite+12");
1495            // On clique sur ajouter
1496            $this->byXPath("//input[@value='Ajouter']")->click();
1497            // On vérifie qu'il n'y ait pas d'erreur
1498            $this->verifynoerrors();
1499            // On vérifie le message
1500            $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1501            //}}}
1502            
1503            //{{{ Ajout de l'événement
1504            //On clique sur le menu "Événement"
1505            $this->byLinkText("Événement")->click();
1506            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1507            $this->verifyNoErrors();
1508            //On clique sur le "+" du tableau
1509            $this->byClassName("add-16")->click();
1510            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1511            $this->verifyNoErrors();
1512            //On remplit l'événement qui va être ajouté avec la nouvelle demande
1513            $this->byId("libelle")->value("test_12_recopie_donnees");
1514            $this->select($this->byName("etats_depuis_lequel_l_evenement_est_disponible[]"))->selectOptionByValue("accepter");
1515            // On sélectionne PCI - P - Initial
1516            $this->select($this->byName("dossier_instruction_type[]"))->selectOptionByValue(1);
1517            $this->select($this->byName("action"))->selectOptionByLabel("test_12_recopie_donnees");
1518            // On clique sur ajouter
1519            $this->byXPath("//input[@value='Ajouter']")->click();
1520            // On vérifie qu'il n'y ait pas d'erreur
1521            $this->verifynoerrors();
1522            // On vérifie le message
1523            $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1524            //}}}
1525            
1526            //{{{ Ajout du type de dossier d'instruction
1527            //On clique sur le menu "Type DI"
1528            $this->byLinkText("Type DI")->click();
1529            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1530            $this->verifyNoErrors();
1531            //On clique sur le "+" du tableau
1532            $this->byClassName("add-16")->click();
1533            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1534            $this->verifyNoErrors();
1535            //On remplit le type de la demande
1536            $this->byId("code")->value("DT");
1537            $this->byId("libelle")->value("test_12_recopie_donnees");
1538            // On sélectionne PCI (Permis de construire pour une maison individuelle
1539            // et / ou ses annexes)
1540            $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByValue(1);sleep(1);
1541            $this->byId("suffixe")->click();
1542            // On clique sur ajouter
1543            $this->byXPath("//input[@value='Ajouter']")->click();
1544            // On vérifie qu'il n'y ait pas d'erreur
1545            $this->verifynoerrors();
1546            // On vérifie le message
1547            $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1548            //}}}
1549            
1550            //{{{ Ajout du type de la demande
1551            //On clique sur le menu "Type"
1552            $this->byLinkText("Type")->click();
1553            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1554            $this->verifyNoErrors();
1555            //On clique sur le "+" du tableau
1556            $this->byClassName("add-16")->click();
1557            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1558            $this->verifyNoErrors();
1559            //On remplit le type de la demande
1560            $this->byId("code")->value("test_12_recopie_donnees");
1561            $this->byId("libelle")->value("test_12_recopie_donnees");
1562            // On sélectionne Autorisation ADS
1563            $this->select($this->byId("groupe"))->selectOptionByValue(1);sleep(1);
1564            // On sélectionne PCI (Permis de construire pour une maison individuelle
1565            // et / ou ses annexes)
1566            $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByValue(1);
1567            // On sélectionne Dossier existant
1568            $this->select($this->byId("demande_nature"))->selectOptionByValue(2);
1569            // On sélectionne Accordé
1570            $this->select($this->byName("etats_dossier_autorisation_autorises[]"))->selectOptionByValue(2);
1571            $this->select($this->byId("dossier_instruction_type"))->selectOptionByLabel("PCI - test_12_recopie_donnees");
1572            $this->select($this->byId("evenement"))->selectOptionByLabel("test_12_recopie_donnees");
1573            // On clique sur ajouter
1574            $this->byXPath("//input[@value='Ajouter']")->click();
1575            // On vérifie qu'il n'y ait pas d'erreur
1576            $this->verifynoerrors();
1577            // On vérifie le message
1578            $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1579            //On clique sur retour
1580            $this->byClassName("retour")->click();
1581            // On vérifie qu'il n'y ait pas d'erreur
1582            $this->verifynoerrors();
1583            //On saisit le libellé du type de la demande saisit
1584            $this->byName("recherche")->value("test_12_recopie_donnees");
1585            //On valide
1586            $this->byName("s1")->click();
1587            // On vérifie qu'il n'y ait pas d'erreur
1588            $this->verifynoerrors();
1589            //On clique sur le type de la demande
1590            $this->byLinkText("test_12_recopie_donnees")->click();
1591            // On vérifie qu'il n'y ait pas d'erreur
1592            $this->verifynoerrors();
1593            //On récupère l'identifiant du type de la demande
1594            $demande_type = $this->byId("demande_type")->text();
1595            // On se déconnecte
1596            $this->deconnect();
1597            //}}}
1598            
1599            //{{{ Ajout de d'un nouveau dossier
1600            // On se connecte à l'application
1601            $this->login("guichet", "guichet");
1602            //On clique sur le menu des instructions
1603            $this->byLinkText("Dossier En Cours")->click();
1604            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1605            $this->verifyNoErrors();
1606            //On ajoute un nouveau dossier
1607            $dossier = $this->addDossierInstruction( 1, $demande_type, 2, str_replace(" ", "", $dossier));                
1608            // On se déconnecte
1609            $this->deconnect();
1610            //}}}
1611            
1612            //{{{ Vérification de la date de validité
1613            // On se connecte à l'application
1614            $this->login("instr", "instr");
1615            //On clique sur le menu "Recherche"
1616            $this->byLinkText("Recherche")->click();
1617            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1618            $this->verifyNoErrors();
1619            // On recherche le dossier crée
1620            $this->byId("dossier")->value(str_replace(' ', '', $dossier));
1621            // On clique sur le bouton recherche
1622            $this->byId("adv-search-submit")->click();
1623            // On clique sur le résultat
1624            $this->byLinkText($dossier)->click();
1625            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1626            $this->verifyNoErrors();
1627            //On vérifie la date de validité
1628            $date_validite = $this->mois_date(date("Y-m-d"), 12, "+");
1629            $date_validite = date("d/m/Y", strtotime($date_validite));
1630            $this->assertEquals($date_validite, $this->byId("date_validite")->text());
1631            // On se déconnecte
1632            $this->deconnect();
1633            //}}}
1634        }
1635        
1636        /**
1637         * Test de la numérotation des DI successifs
1638         */
1639        function test_13_numerotation_dossier_instruction_successif(){
1640                
1641            //{{{ Ajout de d'un nouveau dossier d'instruction P0
1642            // On se connecte à l'application
1643            $this->login("guichet", "guichet");
1644            // On clique sur le menu "Nouveau Dossier"
1645            $this->byLinkText("Nouveau Dossier")->click();
1646            // On vérifie qu'il n'y ait pas d'erreur
1647            $this->verifynoerrors();
1648            // On ajoute un nouveau dossier d'instruction
1649            $dossierP0 = str_replace(" ", "", trim($this->addDossierInstruction(1, 1)));
1650            // On se déconnecte
1651            $this->deconnect();
1652            //}}}
1653            
1654            //{{{ Accord du P0 créé
1655            // On se connecte à l'application
1656            $this->login("instr", "instr");
1657            // On clique sur le menu "Recherche"
1658            $this->byLinkText("Recherche")->click();
1659            // On vérifie qu'il n'y ait pas d'erreur
1660            $this->verifynoerrors();
1661            // On saisit le numéro du dossier d'instruction
1662            $this->byId("dossier")->value($dossierP0);
1663            // On valide la recherche
1664            $this->byId("adv-search-submit")->click();
1665            // On vérifie qu'il n'y ait pas d'erreur
1666            $this->verifynoerrors();
1667            // On clique sur le dossier d'instruction
1668            $this->byId("action-tab-dossier_instruction-left-consulter-".$dossierP0)->click();
1669            // On vérifie qu'il n'y ait pas d'erreur
1670            $this->verifynoerrors();
1671            // On clique sur l'onglet instruction
1672            $this->byId("instruction")->click();
1673            // On vérifie qu'il n'y ait pas d'erreur
1674            $this->verifynoerrors();
1675            // On clique sur le + du tableau
1676            $this->byClassName("add-16")->click();
1677            // On vérifie qu'il n'y ait pas d'erreur
1678            $this->verifynoerrors();
1679            // On choisit l'événement n°81 accepter un dossier sans réserve
1680            $this->select($this->byName("evenement"))->selectOptionByValue(81);
1681            // On clique sur ajouter
1682            $this->byXPath("//input[@value='Ajouter']")->click();
1683            // On vérifie qu'il n'y ait pas d'erreur
1684            $this->verifynoerrors();
1685            // On vérifie que l'événement d'instruction s'est bien ajouté
1686            $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector("#sousform-instruction .message")->text());
1687            // On se déconnecte
1688            $this->deconnect();
1689            //}}}
1690            
1691            //{{{ Ajout d'un nouveau type de dossier d'instruction
1692            // On se connecte à l'application
1693            $this->login("admin", "admin");
1694            // On clique sur le menu "Paramétrage Dossiers"
1695            $this->byLinkText("Paramétrage Dossiers")->click();
1696            // On vérifie qu'il n'y ait pas d'erreur
1697            $this->verifynoerrors();
1698            // On clique sur le menu "Type DI"
1699            $this->byLinkText("Type DI")->click();
1700            // On vérifie qu'il n'y ait pas d'erreur
1701            $this->verifynoerrors();
1702            // On clique sur le + du tableau
1703            $this->byClassName("add-16")->click();
1704            // On vérifie qu'il n'y ait pas d'erreur
1705            $this->verifynoerrors();
1706            //On saisit les données
1707            $this->byId("code")->value("TN");
1708            $this->byId("libelle")->value("Test numérotation");
1709            $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByValue(1);
1710            $this->byId("suffixe")->click();
1711            // On clique sur ajouter
1712            $this->byXPath("//input[@value='Ajouter']")->click();
1713            // On vérifie qu'il n'y ait pas d'erreur
1714            $this->verifynoerrors();
1715            // On vérifie que le type de dossier d'instruction s'est bien ajouté
1716            $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1717            //}}}
1718            
1719            //{{{ Ajout d'un nouveau type de demande
1720            // On clique sur le menu "Type"
1721            $this->byLinkText("Type")->click();
1722            // On vérifie qu'il n'y ait pas d'erreur
1723            $this->verifynoerrors();
1724            // On clique sur le + du tableau
1725            $this->byClassName("add-16")->click();
1726            // On vérifie qu'il n'y ait pas d'erreur
1727            $this->verifynoerrors();
1728            //On saisit les données
1729            $this->byId("code")->value("TN");
1730            $this->byId("libelle")->value("Test numérotation");
1731            $this->select($this->byId("groupe"))->selectOptionByValue(1);
1732            sleep(1);
1733            $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByValue(1);
1734            $this->select($this->byId("demande_nature"))->selectOptionByValue(2);
1735            $this->select($this->byName("etats_dossier_autorisation_autorises[]"))->selectOptionByValue(2);
1736            $this->select($this->byId("dossier_instruction_type"))->selectOptionByLabel("PCI - Test numérotation");
1737            $this->select($this->byId("evenement"))->selectOptionByValue(1);
1738            // On clique sur ajouter
1739            $this->byXPath("//input[@value='Ajouter']")->click();
1740            // On vérifie qu'il n'y ait pas d'erreur
1741            $this->verifynoerrors();
1742            // On vérifie qu'il n'y ait pas d'erreur
1743            $this->verifynoerrors();
1744            // On vérifie que le type de dossier d'instruction s'est bien ajouté
1745            $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1746            // On clique sur "Retour"
1747            $this->byClassName("retour")->click();
1748            // On vérifie qu'il n'y ait pas d'erreur
1749            $this->verifynoerrors();
1750            // On saisit le libelle du type de la demande nouvellement créée
1751            $this->byClassName("champFormulaire")->value("Test numérotation");
1752            // On valide la recherche
1753            $this->byName("f1")->submit();
1754            //On clique sur le type de la demande
1755            $this->byLinkText("Test numérotation")->click();
1756            // On vérifie qu'il n'y ait pas d'erreur
1757            $this->verifynoerrors();
1758            // On récupère l'identifiant
1759            $idDemandeType = trim($this->byId("demande_type")->text());
1760            // On se déconnecte
1761            $this->deconnect();
1762            //}}}
1763            
1764            //{{{ Ajout de d'un nouveau dossier d'instruction avec le nouveau type
1765            //de dossier d'instruction
1766            // On se connecte à l'application
1767            $this->login("guichet", "guichet");
1768            // On clique sur le menu "Dossier En Cours"
1769            $this->byLinkText("Dossier En Cours")->click();
1770            // On vérifie qu'il n'y ait pas d'erreur
1771            $this->verifynoerrors();
1772            // On ajoute un nouveau dossier d'instruction
1773            $dossierTN01 = trim($this->addDossierInstruction(1, $idDemandeType, 3, $dossierP0));
1774            //On vérifie que le numéro du dossier d'instruction est celui attendu
1775            assert(preg_match('/(PC)[0-9 ]*(TN01)/', $dossierTN01) === 1);
1776            // On se déconnecte
1777            $this->deconnect();
1778            //}}}
1779            
1780            
1781        }
1782        
1783        /**
1784         * Ajout d'un dossier d'instruction par le guichet unique
1785         *
1786         * @param int $dossier_autorisation_type_detaille L'identifiant du type détaillé
1787         *  de dossier d'autorisation
1788         * @param int $demande_type L'identifiant du type de la demande
1789         * @param int $type Type de la demande : nouveau dossier ou dossier existant
1790         * @return le numéro de dossier d'instruction qui vient d'être créé
1791         */
1792        public function addDossierInstruction($dossier_autorisation_type_detaille,
1793            $demande_type, $type = 1, $dossier = "" ){
1794            
1795            if ($type===1){
1796                //On choisit le type détaillé de dossier d'autorisation
1797                $this->select($this->byName("dossier_autorisation_type_detaille"))->selectOptionByValue($dossier_autorisation_type_detaille);
1798            }
1799            else {
1800                sleep(2);
1801                // On remplit le champ de recherche simple
1802                $this->byCssSelector("input[name='recherche']")->value(str_replace(' ', '', $dossier));
1803                // On clique sur le bouton recherche
1804                $this->byCssSelector(".ui-button")->click();sleep(1);
1805                // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1806                $this->verifyNoErrors();
1807                // On clique sur le résultat
1808                $this->byId("action-tab-demande_dossier_encours-left-consulter-".str_replace(' ', '', $dossier))->click();
1809                // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1810                $this->verifyNoErrors();
1811            }
1812            //On choisit le type de demande
1813            $this->select($this->byName("demande_type"))->selectOptionByValue($demande_type);
1814            //On clique sur "Saisir le pétitionnaire principal"
1815            $this->byId("add_petitionnaire_principal")->click();
1816            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1817            $this->verifyNoErrors();
1818            //On saisie le nom du pétitionnaire principal
1819            $this->byId("particulier_nom")->value("test recopie");
1820            // On clique sur ajouter
1821            $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
1822            // On vérifie qu'il n'y ait pas d'erreur
1823            $this->verifynoerrors();
1824            //On vérifie que le pétitionnaire s'est bien ajouté
1825            // On vérifie le message
1826            $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector("#sousform-petitionnaire .message")->text());
1827            // On clique sur le bouton retour
1828            $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
1829            // On vérifie que le text est présent
1830            $this->assertContains("test recopie",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
1831            // On clique sur ajouter
1832            $this->byXPath("//input[@value='Ajouter']")->click();
1833            // On vérifie qu'il n'y ait pas d'erreur
1834            $this->verifynoerrors();
1835            // On vérifie le message
1836            $this->assertContains("Création du dossier",$this->byCssSelector(".message")->text());
1837            //On récupère le numéro de dossier d'instruction créé
1838            if ($type===1){
1839                preg_match('/(PC)[0-9 ]*(P0)/', $this->byCssSelector("#tabs-1 .message")->text(), $dossier);
1840            }
1841            elseif ($type===2){
1842                preg_match('/(PC)[0-9 ]*(DT01)/', $this->byCssSelector("#tabs-1 .message")->text(), $dossier);
1843            }
1844            else{
1845                preg_match('/(PC)[0-9 ]*[A-Z]*(0)[1-9]{1}/', $this->byCssSelector("#tabs-1 .message")->text(), $dossier);
1846            }
1847            return $dossier[0];
1848        }
1849  }  }
1850    
1851  ?>  ?>

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26