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

Annotation of /trunk/tests/testInstruction.php

Parent Directory Parent Directory | Revision Log Revision Log


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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26