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

Annotation of /trunk/tests/testInstructions.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 4171 - (hide annotations)
Tue May 17 08:08:22 2016 UTC (8 years, 8 months ago) by fmichon
File size: 152554 byte(s)
* Suppression de deux om_etat dédiés aux jeux de tests. Ils sont désormais 
  créés directement dans le testcase RF.

1 nmeucci 4108 <?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 Instructions 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 fmichon 4171
1250 nmeucci 4108 /**
1251     * test sur un événement non verrouillable
1252     */
1253     public function test_11_evenement_non_verrouillable(){
1254     //
1255     /* On crée une nouvelle demande initial */
1256     // On se connecte à l'application
1257     $this->login("guichet", "guichet");
1258     // On clique sur le menu "Nouveau Dossier"
1259     $this->byLinkText("Nouveau Dossier")->click();
1260     // On vérifie qu'il n'y ait pas d'erreur
1261     $this->verifynoerrors();
1262     // On vérifie le nom de l'onglet
1263     $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
1264     // On sélectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
1265     $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel("Permis de construire pour une maison individuelle et / ou ses annexes");
1266     // On selectionne le label "Dépôt Initial"
1267     $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
1268     // On clique pour ajouter un pétitionnaire principale
1269     $this->byId("add_petitionnaire_principal")->click();
1270     // On remplit le champ
1271     $this->byId("particulier_nom")->value("DURAND");
1272     // On remplit le champ
1273     $this->byId("particulier_prenom")->value("MICKAEL");
1274     // On remplit le champ
1275     $this->byId("particulier_date_naissance")->value("03/01/1956");
1276     // On remplit le champ
1277     $this->byId("particulier_commune_naissance")->value("LILLE");
1278     // On remplit le champ
1279     $this->byId("particulier_departement_naissance")->value("NORD");
1280     // On remplit le champ
1281     $this->byId("numero")->value("12");
1282     // On remplit le champ
1283     $this->byId("voie")->value("RUE DE LA LOI");
1284     // On remplit le champ
1285     $this->byId("complement")->value("APPT 12");
1286     // On remplit le champ
1287     $this->byId("localite")->value("MARSEILLE");
1288     // On remplit le champ
1289     $this->byId("code_postal")->value("13012");
1290     // On remplit le champ
1291     $this->byId("telephone_fixe")->value("0404040404");
1292     // On clique sur ajouter
1293     $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
1294     // On vérifie qu'il n'y ait pas d'erreur
1295     $this->verifynoerrors();
1296     // On vérifie le message
1297     $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-petitionnaire .message")->text());
1298     // On clique sur le bouton retour
1299     $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
1300     // On vérifie que le text est présent
1301     $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
1302     // On clique sur ajouter
1303     $this->byXPath("//input[@value='Ajouter']")->click();
1304     // On vérifie qu'il n'y ait pas d'erreur
1305     $this->verifynoerrors();
1306     // On vérifie le message
1307     $this->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°[\s\S]*$/",$this->byCssSelector(".message")->text());
1308     // Récupération du numéro de dossier
1309     preg_match('/(PC)[0-9 ]*(P0)/', $this->byCssSelector(".message .text")->text(), $matches);
1310     $dossier_libelle = $matches[0];
1311     $dossier = str_replace(' ', '', $dossier_libelle);
1312     // On clique
1313     $this->byCssSelector("a#link_demande_recepisse")->click();sleep(5);
1314     // Liste les fenêtres
1315     $windows = $this->windowHandles();
1316     // Change la fenêtre
1317     $this->window($windows[1]);
1318     // On vérifie qu'il n'y ait pas d'erreur
1319     $this->verifynoerrors();
1320     // On vérifie que le text est présent
1321     $this->assertRegExp("/^[\s\S]*RECEPISSE DE DEPOT[\s\S]*$/",$this->source());
1322     // On ferme la fenêtre
1323     $this->closeWindow();
1324     // On change le focus de la fenêtre
1325     $this->window($windows[0]);
1326     // On clique sur le bouton retour
1327     $this->byLinkText("Retour")->click();
1328     // On vérifie qu'il n'y ait pas d'erreur
1329     $this->verifynoerrors();
1330     // On se déconnecte
1331     $this->deconnect();
1332     /* Fin */
1333     //
1334     /* On accepte le dossier d'instruction et le finalise */
1335     // On se connecte à l'application
1336     $this->login("instr", "instr");
1337     // On clique sur le menu 'Recherche'
1338     $this->byLinkText("Recherche")->click();
1339     // On recherche le dossier crée
1340     $this->byId("dossier")->value($dossier);
1341     // On clique sur le bouton recherche
1342     $this->byId("adv-search-submit")->click();
1343     // On clique sur le résultat
1344     $this->byLinkText($dossier_libelle)->click();
1345     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1346     $this->verifyNoErrors();
1347     // On clique sur l'onglet "Instruction"
1348     $this->byId("instruction")->click();
1349     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1350     $this->verifyNoErrors();
1351     // On clique sur le lien d'ajout dans le tableau
1352     $this->byCssSelector(".actions-max-1 a")->click();
1353     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1354     $this->verifyNoErrors();
1355     //On choisit l'instruction 'accepter un dossier sans réserve
1356     //[acceptation]'
1357     $this->select($this->byId("evenement"))->selectOptionByValue(81);
1358     // On valide le formulaire
1359     $this->byXPath("//input[@value='Ajouter']")->click();
1360     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1361     $this->verifyNoErrors();
1362     sleep(1);
1363     $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
1364     // On retourne sur le tableau d'instructions
1365     $this->byCssSelector("#sousform-instruction .retour")->click();
1366     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1367     $this->verifyNoErrors();
1368     // On clique sur l'événement d'instruction "accepter un dossier sans réserve"
1369     $this->byLinkText("accepter un dossier sans réserve")->click();
1370     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1371     $this->verifyNoErrors();
1372     // On valide l'instruction (un événement verrouillable ne pourrait pas
1373     // être finalisé)
1374     $this->byId("action-sousform-instruction-finaliser")->click();
1375     // On vérifie le message de validation
1376     $this->assertContains("La finalisation du document s'est effectuée avec succès.",$this->byCssSelector(".message .text")->text());
1377     /* Fin */
1378     }
1379     //
1380     /**
1381     * test que les données du dossier d'autorisation sont recopiés dans les
1382     * champs 'archive_' de l'événement d'instruction de la création du nouveau
1383     * dossier d'instruction
1384     */
1385     public function test_12_recopie_donnees_da_vers_nouveau_di(){
1386     //
1387     //{{{ Ajout de d'un nouveau dossier
1388     // On se connecte à l'application
1389     $this->login("guichet", "guichet");
1390     //On clique sur le menu des instructions
1391     $this->byLinkText("Nouveau Dossier")->click();
1392     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1393     $this->verifyNoErrors();
1394     //On ajoute un nouveau dossier
1395     $dossier = $this->addDossierInstruction( 1, 1);
1396     // On se déconnecte
1397     $this->deconnect();
1398     //}}}
1399     //
1400     //{{{ Clôture du nouveau dossier
1401     // On se connecte à l'application
1402     $this->login("instr", "instr");
1403     //On clique sur le menu "Recherche"
1404     $this->byLinkText("Recherche")->click();
1405     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1406     $this->verifyNoErrors();
1407     // On recherche le dossier crée
1408     $this->byId("dossier")->value(str_replace(' ', '', $dossier));
1409     // On clique sur le bouton recherche
1410     $this->byId("adv-search-submit")->click();
1411     // On clique sur le résultat
1412     $this->byLinkText($dossier)->click();
1413     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1414     $this->verifyNoErrors();
1415     //On clique sur l'onglet "instruction"
1416     $this->byId("instruction")->click();
1417     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1418     $this->verifyNoErrors();
1419     // On ajoute une instruction
1420     $this->byCssSelector("#sousform-instruction .add-16")->click();
1421     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1422     $this->verifyNoErrors();
1423     //On choisit l'instruction 'accepter un dossier sans réserve
1424     //[acceptation]'
1425     $this->select($this->byId("evenement"))->selectOptionByValue(81);
1426     // On clique sur ajouter
1427     $this->byXPath("//input[@value='Ajouter']")->click();
1428     // On vérifie qu'il n'y ait pas d'erreur
1429     $this->verifynoerrors();
1430     // On vérifie le message
1431     $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1432     //On rafraichit la page pour vérifier que le dossier est clôturé
1433     $this->refresh();
1434     $this->assertEquals("Favorable", $this->byId("avis_decision")->text());
1435     // On se déconnecte
1436     $this->deconnect();
1437     //}}}
1438     //
1439     //{{{ Ajout de l'action
1440     // On se connecte à l'application
1441     $this->login("admin", "admin");
1442     //On clique sur le menu "Paramétrage dossiers"
1443     $this->byLinkText("Paramétrage Dossiers")->click();
1444     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1445     $this->verifyNoErrors();
1446     //On clique sur le menu "Action"
1447     $this->byLinkText("Action")->click();
1448     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1449     $this->verifyNoErrors();
1450     //On clique sur le "+" du tableau
1451     $this->byClassName("add-16")->click();
1452     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1453     $this->verifyNoErrors();
1454     //On remplit la règle de calcul de la date de validité
1455     $this->byId("action")->value("test_12_recopie_donnees");
1456     $this->byId("libelle")->value("test_12_recopie_donnees");
1457     $this->byId("regle_date_validite")->value("archive_date_validite+12");
1458     // On clique sur ajouter
1459     $this->byXPath("//input[@value='Ajouter']")->click();
1460     // On vérifie qu'il n'y ait pas d'erreur
1461     $this->verifynoerrors();
1462     // On vérifie le message
1463     $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1464     //}}}
1465     //
1466     //{{{ Ajout de l'événement
1467     //On clique sur le menu "Événement"
1468     $this->byLinkText("Événement")->click();
1469     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1470     $this->verifyNoErrors();
1471     //On clique sur le "+" du tableau
1472     $this->byClassName("add-16")->click();
1473     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1474     $this->verifyNoErrors();
1475     //On remplit l'événement qui va être ajouté avec la nouvelle demande
1476     $this->byId("libelle")->value("test_12_recopie_donnees");
1477     $this->select($this->byName("etats_depuis_lequel_l_evenement_est_disponible[]"))->selectOptionByValue("accepter");
1478     // On sélectionne PCI - P - Initial
1479     $this->select($this->byName("dossier_instruction_type[]"))->selectOptionByValue(1);
1480     $this->select($this->byName("action"))->selectOptionByLabel("test_12_recopie_donnees");
1481     // On clique sur ajouter
1482     $this->byXPath("//input[@value='Ajouter']")->click();
1483     // On vérifie qu'il n'y ait pas d'erreur
1484     $this->verifynoerrors();
1485     // On vérifie le message
1486     $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1487     //}}}
1488     //
1489     //{{{ Ajout du type de dossier d'instruction
1490     //On clique sur le menu "Type DI"
1491     $this->byLinkText("Type DI")->click();
1492     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1493     $this->verifyNoErrors();
1494     //On clique sur le "+" du tableau
1495     $this->byClassName("add-16")->click();
1496     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1497     $this->verifyNoErrors();
1498     //On remplit le type de la demande
1499     $this->byId("code")->value("DT");
1500     $this->byId("libelle")->value("test_12_recopie_donnees");
1501     // On sélectionne PCI (Permis de construire pour une maison individuelle
1502     // et / ou ses annexes)
1503     $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByValue(1);sleep(1);
1504     $this->byId("suffixe")->click();
1505     // On clique sur ajouter
1506     $this->byXPath("//input[@value='Ajouter']")->click();
1507     // On vérifie qu'il n'y ait pas d'erreur
1508     $this->verifynoerrors();
1509     // On vérifie le message
1510     $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1511     //}}}
1512     //
1513     //{{{ Ajout du type de la demande
1514     //On clique sur le menu "Type"
1515     $this->byLinkText("Type")->click();
1516     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1517     $this->verifyNoErrors();
1518     //On clique sur le "+" du tableau
1519     $this->byClassName("add-16")->click();
1520     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1521     $this->verifyNoErrors();
1522     //On remplit le type de la demande
1523     $this->byId("code")->value("test_12_recopie_donnees");
1524     $this->byId("libelle")->value("test_12_recopie_donnees");
1525     // On sélectionne Autorisation ADS
1526     $this->select($this->byId("groupe"))->selectOptionByValue(1);sleep(1);
1527     // On sélectionne PCI (Permis de construire pour une maison individuelle
1528     // et / ou ses annexes)
1529     $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByValue(1);
1530     // On sélectionne Dossier existant
1531     $this->select($this->byId("demande_nature"))->selectOptionByValue(2);
1532     // On sélectionne Accordé
1533     $this->select($this->byName("etats_autorises[]"))->selectOptionByValue('accepter');
1534     $this->select($this->byId("dossier_instruction_type"))->selectOptionByLabel("PCI - test_12_recopie_donnees");
1535     $this->select($this->byId("evenement"))->selectOptionByLabel("test_12_recopie_donnees");
1536     // On clique sur ajouter
1537     $this->byXPath("//input[@value='Ajouter']")->click();
1538     // On vérifie qu'il n'y ait pas d'erreur
1539     $this->verifynoerrors();
1540     // On vérifie le message
1541     $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1542     //On clique sur retour
1543     $this->byClassName("retour")->click();
1544     // On vérifie qu'il n'y ait pas d'erreur
1545     $this->verifynoerrors();
1546     //On saisit le libellé du type de la demande saisit
1547     $this->byName("recherche")->value("test_12_recopie_donnees");
1548     //On valide
1549     $this->byName("s1")->click();
1550     // On vérifie qu'il n'y ait pas d'erreur
1551     $this->verifynoerrors();
1552     //On clique sur le type de la demande
1553     $this->byLinkText("test_12_recopie_donnees")->click();
1554     // On vérifie qu'il n'y ait pas d'erreur
1555     $this->verifynoerrors();
1556     //On récupère l'identifiant du type de la demande
1557     $demande_type = $this->byId("demande_type")->text();
1558     // On se déconnecte
1559     $this->deconnect();
1560     //}}}
1561     //
1562     //{{{ Ajout de d'un nouveau dossier
1563     // On se connecte à l'application
1564     $this->login("guichet", "guichet");
1565     //On clique sur le menu des instructions
1566     $this->byLinkText("Dossier En Cours")->click();
1567     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1568     $this->verifyNoErrors();
1569     //On ajoute un nouveau dossier
1570     $dossier = $this->addDossierInstruction(1, $demande_type, "Test validité", 2, str_replace(" ", "", $dossier));
1571     // On se déconnecte
1572     $this->deconnect();
1573     //}}}
1574     //
1575     //{{{ Vérification de la date de validité
1576     // On se connecte à l'application
1577     $this->login("instr", "instr");
1578     //On clique sur le menu "Recherche"
1579     $this->byLinkText("Recherche")->click();
1580     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1581     $this->verifyNoErrors();
1582     // On recherche le dossier crée
1583     $this->byId("dossier")->value(str_replace(' ', '', $dossier));
1584     // On clique sur le bouton recherche
1585     $this->byId("adv-search-submit")->click();
1586     // On clique sur le résultat
1587     $this->byLinkText($dossier)->click();
1588     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1589     $this->verifyNoErrors();
1590     //On vérifie la date de validité
1591     $date_validite = $this->mois_date(date("Y-m-d"), 12, "+");
1592     $date_validite = date("d/m/Y", strtotime($date_validite));
1593     $this->assertEquals($date_validite, $this->byId("date_validite")->text());
1594     // On se déconnecte
1595     $this->deconnect();
1596     //}}}
1597     }
1598     //
1599     /**
1600     * test de la numérotation des DI successifs
1601     */
1602     function test_13_numerotation_dossier_instruction_successif(){
1603     //
1604     //{{{ Ajout de d'un nouveau dossier d'instruction P0
1605     // On se connecte à l'application
1606     $this->login("guichet", "guichet");
1607     // On clique sur le menu "Nouveau Dossier"
1608     $this->byLinkText("Nouveau Dossier")->click();
1609     // On vérifie qu'il n'y ait pas d'erreur
1610     $this->verifynoerrors();
1611     // On ajoute un nouveau dossier d'instruction
1612     $dossierP0 = str_replace(" ", "", trim($this->addDossierInstruction(1, 1)));
1613     // On se déconnecte
1614     $this->deconnect();
1615     //}}}
1616     //
1617     //{{{ Accord du P0 créé
1618     // On se connecte à l'application
1619     $this->login("instr", "instr");
1620     // On clique sur le menu "Recherche"
1621     $this->byLinkText("Recherche")->click();
1622     // On vérifie qu'il n'y ait pas d'erreur
1623     $this->verifynoerrors();
1624     // On saisit le numéro du dossier d'instruction
1625     $this->byId("dossier")->value($dossierP0);
1626     // On valide la recherche
1627     $this->byId("adv-search-submit")->click();
1628     // On vérifie qu'il n'y ait pas d'erreur
1629     $this->verifynoerrors();
1630     // On clique sur le dossier d'instruction
1631     $this->byId("action-tab-dossier_instruction-left-consulter-".$dossierP0)->click();
1632     // On vérifie qu'il n'y ait pas d'erreur
1633     $this->verifynoerrors();
1634     // On clique sur l'onglet instruction
1635     $this->byId("instruction")->click();
1636     // On vérifie qu'il n'y ait pas d'erreur
1637     $this->verifynoerrors();
1638     // On clique sur le + du tableau
1639     $this->byClassName("add-16")->click();
1640     // On vérifie qu'il n'y ait pas d'erreur
1641     $this->verifynoerrors();
1642     // On choisit l'événement n°81 accepter un dossier sans réserve
1643     $this->select($this->byName("evenement"))->selectOptionByValue(81);
1644     // On clique sur ajouter
1645     $this->byXPath("//input[@value='Ajouter']")->click();
1646     sleep(1);
1647     // On vérifie qu'il n'y ait pas d'erreur
1648     $this->verifynoerrors();
1649     // On vérifie que l'événement d'instruction s'est bien ajouté
1650     $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector("#sousform-instruction .message")->text());
1651     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1652     $this->verifyNoErrors();
1653     // On se déconnecte
1654     $this->deconnect();
1655     //}}}
1656     //
1657     //{{{ Ajout d'un nouveau type de dossier d'instruction
1658     // On se connecte à l'application
1659     $this->login("admin", "admin");
1660     // On clique sur le menu "Paramétrage Dossiers"
1661     $this->byLinkText("Paramétrage Dossiers")->click();
1662     // On vérifie qu'il n'y ait pas d'erreur
1663     $this->verifynoerrors();
1664     // On clique sur le menu "Type DI"
1665     $this->byLinkText("Type DI")->click();
1666     // On vérifie qu'il n'y ait pas d'erreur
1667     $this->verifynoerrors();
1668     // On clique sur le + du tableau
1669     $this->byClassName("add-16")->click();
1670     // On vérifie qu'il n'y ait pas d'erreur
1671     $this->verifynoerrors();
1672     //On saisit les données
1673     $this->byId("code")->value("TN");
1674     $this->byId("libelle")->value("Test numérotation");
1675     $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByValue(1);
1676     $this->byId("suffixe")->click();
1677     // On clique sur ajouter
1678     $this->byXPath("//input[@value='Ajouter']")->click();
1679     // On vérifie qu'il n'y ait pas d'erreur
1680     $this->verifynoerrors();
1681     // On vérifie que le type de dossier d'instruction s'est bien ajouté
1682     $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1683     // On clique sur "Retour"
1684     $this->byClassName("retour")->click();
1685     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1686     $this->verifyNoErrors();
1687     //On saisie le nom due l'événement dans la recherche simple
1688     $this->byName("recherche")->value("Test numérotation");
1689     //On valide la recherche
1690     $this->byName('s1')->submit();
1691     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1692     $this->verifyNoErrors();
1693     //On clique sur l'événement
1694     $this->byLinkText("Test numérotation")->click();
1695     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1696     $this->verifyNoErrors();
1697     //On récupère l'identifiant
1698     $dossier_instruction_type = trim($this->byId("dossier_instruction_type")->text());
1699     //}}}
1700     //
1701     //{{{ Ajout d'un nouveau type de demande
1702     // On clique sur le menu "Type"
1703     $this->byLinkText("Type")->click();
1704     // On vérifie qu'il n'y ait pas d'erreur
1705     $this->verifynoerrors();
1706     // On clique sur le + du tableau
1707     $this->byClassName("add-16")->click();
1708     // On vérifie qu'il n'y ait pas d'erreur
1709     $this->verifynoerrors();
1710     //On saisit les données
1711     $this->byId("code")->value("TN");
1712     $this->byId("libelle")->value("Test numérotation");
1713     $this->select($this->byId("groupe"))->selectOptionByValue(1);
1714     sleep(1);
1715     $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByValue(1);
1716     sleep(1);
1717     $this->select($this->byId("demande_nature"))->selectOptionByValue(2);
1718     sleep(1);
1719     $this->select($this->byName("etats_autorises[]"))->selectOptionByValue('accepter');
1720     sleep(1);
1721     $this->select($this->byId("dossier_instruction_type"))->selectOptionByValue($dossier_instruction_type);
1722     sleep(1);
1723     $this->select($this->byId("evenement"))->selectOptionByValue(1);
1724     // On clique sur ajouter
1725     $this->byXPath("//input[@value='Ajouter']")->click();
1726     // On vérifie qu'il n'y ait pas d'erreur
1727     $this->verifynoerrors();
1728     // On vérifie qu'il n'y ait pas d'erreur
1729     $this->verifynoerrors();
1730     // On vérifie que le type de dossier d'instruction s'est bien ajouté
1731     $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1732     // On clique sur "Retour"
1733     $this->byClassName("retour")->click();
1734     // On vérifie qu'il n'y ait pas d'erreur
1735     $this->verifynoerrors();
1736     // On saisit le libelle du type de la demande nouvellement créée
1737     $this->byClassName("champFormulaire")->value("Test numérotation");
1738     // On valide la recherche
1739     $this->byName("f1")->submit();
1740     //On clique sur le type de la demande
1741     $this->byLinkText("Test numérotation")->click();
1742     // On vérifie qu'il n'y ait pas d'erreur
1743     $this->verifynoerrors();
1744     // On récupère l'identifiant
1745     $idDemandeType = trim($this->byId("demande_type")->text());
1746     // On se déconnecte
1747     $this->deconnect();
1748     //}}}
1749     //
1750     //{{{ Ajout de d'un nouveau dossier d'instruction avec le nouveau type
1751     //de dossier d'instruction
1752     // On se connecte à l'application
1753     $this->login("guichet", "guichet");
1754     // On clique sur le menu "Dossier En Cours"
1755     $this->byLinkText("Dossier En Cours")->click();
1756     // On vérifie qu'il n'y ait pas d'erreur
1757     $this->verifynoerrors();
1758     // On ajoute un nouveau dossier d'instruction
1759     $dossierTN01 = trim($this->addDossierInstruction(1, $idDemandeType, "Test nouveau DI", 3, $dossierP0));
1760     //On vérifie que le numéro du dossier d'instruction est celui attendu
1761     assert(preg_match('/(PC)[0-9 ]*(TN01)/', $dossierTN01) === 1);
1762     // On se déconnecte
1763     $this->deconnect();
1764     //}}}
1765    
1766    
1767     }
1768    
1769     /**
1770     * test de la numérotation des DI successifs
1771     */
1772     function test_14_recalcul_donnees_DI_vers_DA(){
1773     //{{{ Ajout de d'un nouveau dossier
1774     // On se connecte à l'application
1775     $this->login("guichet", "guichet");
1776     //On clique sur le menu des instructions
1777     $this->byLinkText("Nouveau Dossier")->click();
1778     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1779     $this->verifyNoErrors();
1780     //On ajoute un nouveau dossier
1781     $dossier = $this->addDossierInstruction( 1, 1);
1782     // On se déconnecte
1783     $this->deconnect();
1784     //}}}
1785     //
1786     //{{{
1787     // Mise à jour des données techniques
1788     // On se connecte à l'application
1789     $this->login("instr", "instr");
1790     //On clique sur le menu "Recherche"
1791     $this->byLinkText("Recherche")->click();
1792     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1793     $this->verifyNoErrors();
1794     // On recherche le dossier crée
1795     $this->byId("dossier")->value(str_replace(' ', '', $dossier));
1796     // On clique sur le bouton recherche
1797     $this->byId("adv-search-submit")->click();
1798     // On clique sur le résultat
1799     $this->byLinkText($dossier)->click();
1800     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1801     $this->verifyNoErrors();
1802     // Ouverture du formulaire des données techniques
1803     $this->byCssSelector("#formulaire .rediger-16")->click();
1804     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1805     $this->verifyNoErrors();
1806     // Modification des données techniques
1807     $this->byCssSelector("#sousform-donnees_techniques .edit-16")->click();
1808     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1809     $this->verifyNoErrors();
1810     sleep(5);
1811     // On déplie le fieldset Construire
1812     $this->byCssSelector("#fieldset-sousform-donnees_techniques-construire legend")->click();
1813     sleep(5);
1814     // On déplie le fieldset Destinations et surfaces des constructions
1815     $this->byCssSelector("#fieldset-sousform-donnees_techniques-destinations-et-surfaces-des-constructions legend")->click();
1816     sleep(1);
1817     //On remplit des données techniques
1818     $this->byId("su_cstr_shon1")->value("120");
1819     // On clique sur ajouter
1820     $this->byXPath("//input[@value='Modifier']")->click();
1821     sleep(1);
1822     // On vérifie qu'il n'y ait pas d'erreur
1823     $this->verifynoerrors();
1824     // On vérifie le message
1825     $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector("#sousform-donnees_techniques .message")->text());
1826     //On clique sur retour
1827     $this->byCssSelector("#sousform-donnees_techniques .retour")->click();
1828     //}}}
1829     //
1830     //{{{ Clôture du nouveau dossier
1831     //On clique sur le menu "Recherche"
1832     $this->byLinkText("Recherche")->click();
1833     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1834     $this->verifyNoErrors();
1835     // On recherche le dossier crée
1836     $this->byId("dossier")->value(str_replace(' ', '', $dossier));
1837     // On clique sur le bouton recherche
1838     $this->byId("adv-search-submit")->click();
1839     // On clique sur le résultat
1840     $this->byLinkText($dossier)->click();
1841     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1842     $this->verifyNoErrors();
1843     //On clique sur l'onglet "instruction"
1844     $this->byId("instruction")->click();
1845     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1846     $this->verifyNoErrors();
1847     // On ajoute une instruction
1848     $this->byCssSelector("#sousform-instruction .add-16")->click();
1849     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1850     $this->verifyNoErrors();
1851     //On choisit l'instruction 'accepter un dossier sans réserve
1852     //[acceptation]'
1853     $this->select($this->byId("evenement"))->selectOptionByValue(81);
1854     // On clique sur ajouter
1855     $this->byXPath("//input[@value='Ajouter']")->click();
1856     // On vérifie qu'il n'y ait pas d'erreur
1857     $this->verifynoerrors();
1858     // On vérifie le message
1859     $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1860     //On rafraichit la page pour vérifier que le dossier est clôturé
1861     $this->refresh();
1862     $this->assertEquals("Favorable", $this->byId("avis_decision")->text());
1863     //}}}
1864     //
1865     //{{{ Vérification des données techniques dans la visu DA
1866     //On clique sur le menu "Recherche"
1867     $this->byLinkText("Recherche")->click();
1868     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1869     $this->verifyNoErrors();
1870     // On recherche le dossier crée
1871     $this->byId("dossier")->value(str_replace(' ', '', $dossier));
1872     // On clique sur le bouton recherche
1873     $this->byId("adv-search-submit")->click();
1874     // On clique sur le résultat
1875     $this->byLinkText($dossier)->click();
1876     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1877     $this->verifyNoErrors();
1878     //On clique sur l'onglet "DA"
1879     $this->byId("dossier_autorisation")->click();
1880     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1881     $this->verifyNoErrors();
1882     // On ajoute une instruction
1883     $this->byCssSelector("#sousform-dossier_autorisation .consult-16")->click();
1884     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1885     $this->verifyNoErrors();
1886     // Affichage des données techniques
1887     $this->byId("donnees_techniques_da")->click();
1888     sleep(1);
1889     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1890     $this->verifyNoErrors();
1891     // On déplie le fieldset Construire
1892     $this->byCssSelector("#fieldset-sousform-donnees_techniques-construire legend")->click();
1893     sleep(1);
1894     // On déplie le fieldset Destinations et surfaces des constructions
1895     $this->byCssSelector("#fieldset-sousform-donnees_techniques-destinations-et-surfaces-des-constructions legend")->click();
1896     sleep(1);
1897     $this->assertEquals("120", $this->byId("su_cstr_shon1")->text());
1898     //On clique sur retour
1899     $this->byCssSelector("#sousform-donnees_techniques .retour")->click();
1900     // On se déconnecte
1901     $this->deconnect();
1902     //}}}
1903    
1904     // Vérification du calcul de l'état du DA
1905     //{{{ Ajout de d'un nouveau dossier
1906     // On se connecte à l'application
1907     $this->login("guichet", "guichet");
1908     //On clique sur le menu des instructions
1909     $this->byLinkText("Nouveau Dossier")->click();
1910     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1911     $this->verifyNoErrors();
1912     //On ajoute un nouveau dossier
1913     $dossier = $this->addDossierInstruction( 1, 1, "test recalcul état DA");
1914     // On se déconnecte
1915     $this->deconnect();
1916     //}}}
1917     // On se connecte à l'application
1918     $this->login("instr", "instr");
1919     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1920     $this->verifyNoErrors();
1921     // On clique sur le lien "Mes encours" dans le menu
1922     $this->byLinkText("Mes Encours")->click();
1923     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1924     $this->verifyNoErrors();
1925     sleep(1);
1926     //On cherche le dossier d'instruction
1927     $this->byName("recherche")->value(str_replace(" ", "", $dossier));
1928     // On valide la recherche
1929     $this->byName("s1")->click();
1930     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1931     $this->verifyNoErrors();
1932     // On clique sur le dossier dernièrement créé
1933     $this->byLinkText($dossier)->click();
1934     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1935     $this->verifyNoErrors();
1936     $this->verifierEtatDA($dossier,81, "Accordé");
1937     // On se déconnecte
1938     $this->deconnect();
1939     //}}}
1940     //{{{ Ajout de d'un nouveau dossier
1941     // On se connecte à l'application
1942     $this->login("guichet", "guichet");
1943     //On clique sur le menu des instructions
1944     $this->byLinkText("Nouveau Dossier")->click();
1945     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1946     $this->verifyNoErrors();
1947     //On ajoute un nouveau dossier
1948     $dossier = $this->addDossierInstruction( 1, 1, "test recalcul état DA");
1949     // On se déconnecte
1950     $this->deconnect();
1951     //}}}
1952     // On se connecte à l'application
1953     $this->login("instr", "instr");
1954     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1955     $this->verifyNoErrors();
1956     // On clique sur le lien "Mes encours" dans le menu
1957     $this->byLinkText("Mes Encours")->click();
1958     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1959     $this->verifyNoErrors();
1960     sleep(1);
1961     //On cherche le dossier d'instruction
1962     $this->byClassName("champFormulaire")->value(str_replace(" ", "", $dossier));
1963     // On valide la recherche
1964     $this->byId("f1")->submit();
1965     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1966     $this->verifyNoErrors();
1967     // On clique sur le dossier dernièrement créé
1968     $this->byLinkText($dossier)->click();
1969     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1970     $this->verifyNoErrors();
1971     $this->verifierEtatDA($dossier,31, "Refusé");
1972     // On se déconnecte
1973     $this->deconnect();
1974     //}}}
1975     }
1976    
1977     /*
1978     * Cette méthode teste l'envoi de message au référentiel ERP lors de l'ajout
1979     * d'instruction
1980     */
1981     public function test_15_envoi_de_message_erp(){
1982    
1983     // On se connecte en tant que "admin"
1984     $this->login("admin", "admin");
1985     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1986     $this->verifyNoErrors();
1987     //On clique sur Paramétrage Dossiers
1988     $this->byLinkText("Paramétrage Dossiers")->click();
1989     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1990     $this->verifyNoErrors();
1991     //On clique sur Service
1992     $this->byLinkText("Événement")->click();
1993     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1994     $this->verifyNoErrors();
1995     //Initialisation de la variable
1996     $evenements = array();
1997     //{{{ Ajout d'événements
1998     //On ajoute trois événements
1999     for ($i = 1 ; $i < 3 ; $i++){
2000     $evenements[] = $this->addEvenement("test_evenement_erp_".$i);
2001     }
2002     //}}}
2003    
2004     //{{{ On change trois variables erp_service_accessibilite,
2005     // erp_service_securite et erp_service_conformite
2006     //On clique sur Administration
2007     $this->byLinkText("Administration")->click();
2008     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2009     $this->verifyNoErrors();
2010     //On clique sur Paramètre
2011     $this->byLinkText("Paramètre")->click();
2012     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2013     $this->verifyNoErrors();
2014     $erp_evenement_accepter_sans_reserve = $this->changeParametreEvenementErp("erp_evenement_accepter_sans_reserve", $evenements[0]);
2015     $erp_evenement_refuser_dossier = $this->changeParametreEvenementErp("erp_evenement_refuser_dossier", $evenements[1]);
2016     $option_referentiel_arrete = $this->changeParametreEvenementErp("option_referentiel_arrete", 'true');
2017     ///}}}
2018     // On se déconnecte
2019     $this->deconnect();
2020    
2021     // On se connecte en tant que "guichet"
2022     $this->login("guichet", "guichet");
2023     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2024     $this->verifyNoErrors();
2025     //{{{On ajoute un dossier d'instruction
2026     //On clique sur Nouveau Dossier
2027     $this->byLinkText("Nouveau Dossier")->click();
2028     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2029     $this->verifyNoErrors();
2030     //On ajoute le dossier
2031     $dossier = $this->addDossierInstruction("1", "1");
2032     //}}}
2033     // On se déconnecte
2034     $this->deconnect();
2035    
2036     // On se connecte en tant que "instr"
2037     $this->login("instr", "instr");
2038     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2039     $this->verifyNoErrors();
2040     //{{{ On ajoute trois événement
2041     //On clique sur Nouveau Dossier
2042     $this->byLinkText("Recherche")->click();
2043     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2044     $this->verifyNoErrors();
2045     //On cherche le dossier d'instruction
2046     $this->byId("dossier")->value(str_replace(" ", "", $dossier));
2047     // On valide la recherche
2048     $this->byId("adv-search-submit")->click();
2049     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2050     $this->verifyNoErrors();
2051     //On clique sur le dossier d'instruction
2052     $this->byLinkText($dossier)->click();
2053     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2054     $this->verifyNoErrors();
2055     //On clique sur Modifier
2056     $this->byClassName("edit-16")->click();
2057     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2058     $this->verifyNoErrors();
2059     //On clique sur erp
2060     $this->byId("erp")->click();
2061     //On valide le formulaire
2062     $this->byName("f1")->submit();
2063     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2064     $this->verifyNoErrors();
2065     // On vérifie le message
2066     $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message .text")->text());
2067     //On clique sur l'onglet instruction
2068     $this->byId("instruction")->click();
2069     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2070     $this->verifyNoErrors();
2071     //On ajoute trois consultations
2072     foreach ($evenements as $value) {
2073     $this->addInstruction($value);
2074     }
2075    
2076     //On clique sur le + du tableau
2077     $this->byClassName("add-16")->click();
2078     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2079     $this->verifyNoErrors();
2080     //On choisit l'événement
2081     $this->select($this->byId("evenement"))->selectOptionByValue(81);
2082     //On valide le formulaire
2083     $this->byName("f2")->submit();
2084     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2085     $this->verifyNoErrors();
2086     // On vérifie que le message de validation est présent
2087     $this->assertContains('Vos modifications ont bien été enregistrées.', $this->byCssSelector("#sousform-instruction .message .text")->text());
2088     //On clique sur Retour
2089     $this->byLinkText("Retour")->click();
2090     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2091     $this->verifyNoErrors();
2092     //On clique sur l'instruction
2093     $this->byLinkText("accepter un dossier sans réserve")->click();
2094     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2095     $this->verifyNoErrors();
2096     //On récupère le numéro d'instruction
2097     //$instruction = trim($this->byId("instruction")->text());
2098     //On la finalise
2099     $this->byClassName("finalise")->click();
2100     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2101     $this->verifyNoErrors();
2102     // On vérifie que le message de validation est présent
2103     $this->assertContains('La finalisation du document s\'est effectuée avec succès.', $this->byCssSelector("#sousform-instruction .message .text")->text());
2104     // On se déconnecte
2105     $this->deconnect();
2106    
2107     // On se connecte en tant que "admin"
2108     $this->login("admin", "admin");
2109     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2110     $this->verifyNoErrors();
2111     //On clique sur instruction
2112     $this->byLinkText("Instruction")->click();
2113     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2114     $this->verifyNoErrors();
2115     //On clique sur Recherche
2116     $this->byLinkText("Recherche")->click();
2117     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2118     $this->verifyNoErrors();
2119     //On cherche le dossier d'instruction
2120     $this->byId("dossier")->value(str_replace(" ", "", $dossier));
2121     // On valide la recherche
2122     $this->byId("adv-search-submit")->click();
2123     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2124     $this->verifyNoErrors();
2125     //On clique sur le dossier d'instruction
2126     $this->byLinkText($dossier)->click();
2127     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2128     $this->verifyNoErrors();
2129     //On clique sur l'onglet instruction
2130     $this->byId("instruction")->click();
2131     //On clique sur l'instruction accepter un dossier sans réserve
2132     $this->byLinkText("accepter un dossier sans réserve")->click();
2133     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2134     $this->verifyNoErrors();
2135     //On la definalise
2136     $this->byClassName("definalise")->click();
2137     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2138     $this->verifyNoErrors();
2139     // On vérifie que le message de validation est présent
2140     $this->assertContains('La definalisation du document s\'est effectuée avec succès.', $this->byCssSelector("#sousform-instruction .message .text")->text());
2141     //On clique sur modifier
2142     $this->byCssSelector("#sousform-instruction .edit-16")->click();
2143     sleep(2);
2144     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2145     $this->verifyNoErrors();
2146     //On choisit un signataire Albert Dupont
2147     $this->select($this->byId("signataire_arrete"))->selectOptionByValue("1");
2148     //On remplit la date de retour sign
2149     $this->byId("date_retour_signature")->value(date('d/m/Y'));
2150     //On valide le formulaire
2151     $this->byName("f2")->submit();
2152     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2153     $this->verifyNoErrors();
2154     // On vérifie que le message de validation est présent
2155     $this->assertContains('Vos modifications ont bien été enregistrées.', $this->byCssSelector("#sousform-instruction .message .text")->text());
2156     // On vérifie que le message d'envoi est présent
2157     $this->assertContains('Le message a été transmis au référentiel arrêté.', $this->byCssSelector("#sousform-instruction .message .text")->text());
2158     //}}}
2159    
2160     // On se déconnecte
2161     $this->deconnect();
2162    
2163     // On se connecte en tant que "admin"
2164     $this->login("admin", "admin");
2165     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2166     $this->verifyNoErrors();
2167     //{{{ On remet les valeurs par défaut des paramètres
2168     //On clique sur Administration
2169     $this->byLinkText("Administration")->click();
2170     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2171     $this->verifyNoErrors();
2172     //On clique sur Paramètre
2173     $this->byLinkText("Paramètre")->click();
2174     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2175     $this->verifyNoErrors();
2176     $this->changeParametreEvenementErp("erp_evenement_accepter_sans_reserve", $erp_evenement_accepter_sans_reserve);
2177     $this->changeParametreEvenementErp("erp_evenement_refuser_dossier", $erp_evenement_refuser_dossier);
2178     $this->changeParametreEvenementErp("option_referentiel_arrete", $option_referentiel_arrete);
2179     //}}}
2180    
2181     //On se déconnecte
2182     $this->logout();
2183     }
2184    
2185     /*
2186     * Cette méthode teste l'envoi de message au référentiel ERP lors de la
2187     * modification d'un dossier d'insruction
2188     */
2189     public function test_16_envoi_de_message_erp_dossier_instruction(){
2190    
2191     // On se connecte en tant que "admin"
2192     $this->login("admin", "admin");
2193     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2194     $this->verifyNoErrors();
2195    
2196     //{{{ On change deux variables erp_nature_dat et erp_dossier_nature_pc
2197     //On clique sur Administration
2198     $this->byLinkText("Administration")->click();
2199     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2200     $this->verifyNoErrors();
2201     //On clique sur Paramètre
2202     $this->byLinkText("Paramètre")->click();
2203     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2204     $this->verifyNoErrors();
2205     //On change la valeur des paramètres
2206     $erp_nature_dat = $this->changeParametreEvenementErp("erp_nature_dat", "AT");
2207     $erp_dossier_nature_pc = $this->changeParametreEvenementErp("erp_dossier_nature_pc", "PCI");
2208     //}}}
2209     // On se déconnecte
2210     $this->deconnect();
2211    
2212     //{{{Ajout d'un dossier AT par le guichet unique
2213     // On se connecte en tant que "guichet"
2214     $this->login("guichet", "guichet");
2215     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2216     $this->verifyNoErrors();
2217     //On clique sur Nouveau Dossier
2218     $this->byLinkText("Nouveau Dossier")->click();
2219     //On ajoute un dossier d'instruction de type AT
2220     $dossier = $this->addDossierInstruction(8, 8);
2221     //}}}
2222     // On se déconnecte
2223     $this->deconnect();
2224    
2225     // On se connecte en tant que "instr"
2226     $this->login("instr", "instr");
2227     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2228     $this->verifyNoErrors();
2229     //{{{On change le dossier en a été qualifié
2230     //On clique sur Recherche
2231     $this->byLinkText("Recherche")->click();
2232     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2233     $this->verifyNoErrors();
2234     //On cherche le dossier d'instruction
2235     $this->byId("dossier")->value(str_replace(" ", "", $dossier));
2236     // On valide la recherche
2237     $this->byId("adv-search-submit")->click();
2238     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2239     $this->verifyNoErrors();
2240     //On clique sur le dossier d'instruction
2241     $this->byLinkText($dossier)->click();
2242     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2243     $this->verifyNoErrors();
2244     //On clique sur modifier
2245     $this->byClassName("edit-16")->click();
2246     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2247     $this->verifyNoErrors();
2248     //On décoche à qualifier
2249     $this->byId("a_qualifier")->click();
2250     //On valide le formulaire
2251     $this->byName("f1")->submit();
2252     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2253     $this->verifyNoErrors();
2254     // On vérifie que le message de validation est présent
2255     $this->assertContains('Vos modifications ont bien été enregistrées.',
2256     $this->byCssSelector(".message .text")->text());
2257     // On vérifie que le message d'envoi est présent
2258     $this->assertContains('Le message a été transmis au référentiel ERP.',
2259     $this->byCssSelector(".message .text")->text());
2260     //}}}
2261     // On se déconnecte
2262     $this->deconnect();
2263    
2264     //{{{Ajout d'un dossier PC par le guichet unique
2265     // On se connecte en tant que "guichet"
2266     $this->login("guichet", "guichet");
2267     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2268     $this->verifyNoErrors();
2269     //On clique sur Nouveau Dossier
2270     $this->byLinkText("Nouveau Dossier")->click();
2271     //On ajoute un dossier d'instruction de type AT
2272     $dossier = $this->addDossierInstruction(1, 1);
2273     //}}}
2274     // On se déconnecte
2275     $this->deconnect();
2276    
2277     // On se connecte en tant que "instr"
2278     $this->login("instr", "instr");
2279     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2280     $this->verifyNoErrors();
2281     //{{{On change le dossier en ERP
2282     //On clique sur Recherche
2283     $this->byLinkText("Recherche")->click();
2284     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2285     $this->verifyNoErrors();
2286     //On cherche le dossier d'instruction
2287     $this->byId("dossier")->value(str_replace(" ", "", $dossier));
2288     // On valide la recherche
2289     $this->byId("adv-search-submit")->click();
2290     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2291     $this->verifyNoErrors();
2292     //On clique sur le dossier d'instruction
2293     $this->byLinkText($dossier)->click();
2294     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2295     $this->verifyNoErrors();
2296     //On clique sur modifier
2297     $this->byClassName("edit-16")->click();
2298     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2299     $this->verifyNoErrors();
2300     //On décoche à qualifier
2301     $this->byId("a_qualifier")->click();
2302     //On coche ERP
2303     $this->byId("erp")->click();
2304     //On valide le formulaire
2305     $this->byName("f1")->submit();
2306     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2307     $this->verifyNoErrors();
2308     // On vérifie que le message de validation est présent
2309     $this->assertContains('Vos modifications ont bien été enregistrées.',
2310     $this->byCssSelector(".message .text")->text());
2311     // On vérifie que le message d'envoi est présent
2312     $this->assertContains('Le message a été transmis au référentiel ERP.',
2313     $this->byCssSelector(".message .text")->text());
2314     //}}}
2315     // On se déconnecte
2316     $this->deconnect();
2317    
2318     // On se connecte en tant que "admin"
2319     $this->login("admin", "admin");
2320     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2321     $this->verifyNoErrors();
2322    
2323     //{{{ On change deux variables erp_nature_dat et erp_dossier_nature_pc
2324     //On clique sur Administration
2325     $this->byLinkText("Administration")->click();
2326     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2327     $this->verifyNoErrors();
2328     //On clique sur Paramètre
2329     $this->byLinkText("Paramètre")->click();
2330     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2331     $this->verifyNoErrors();
2332     //On change la valeur des paramètres
2333     $this->changeParametreEvenementErp("erp_nature_dat", $erp_nature_dat);
2334     $this->changeParametreEvenementErp("erp_dossier_nature_pc", $erp_dossier_nature_pc);
2335     //}}}
2336    
2337     //On se déconnecte
2338     $this->logout();
2339     }
2340    
2341     /**
2342     * test d'annulation d'un DA.
2343     */
2344     function test_17_di_annulation() {
2345     // On se connecte en tant que "admin"
2346     $this->login("admin", "admin");
2347     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2348     $this->verifyNoErrors();
2349    
2350     //On clique sur Administration
2351     $this->byLinkText("Paramétrage Dossiers")->click();
2352     // Ajout d'un type de DI ANNULATION
2353     $this->byLinkText("Type DI")->click();
2354     $this->byCssSelector(".add-16")->click();
2355     $this->byId("code")->value('ANNUL');
2356     $this->byId("libelle")->value('Demande d\'annulation');
2357     $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByValue('1');
2358     $this->byId('suffixe')->click();
2359     $this->select($this->byName("mouvement_sitadel"))->selectOptionByValue('SUPPRESSION');
2360     // On clique sur ajouter
2361     $this->byXPath("//input[@value='Ajouter']")->click();
2362     // On vérifie qu'il n'y ait pas d'erreur
2363     $this->verifynoerrors();
2364     // On vérifie que le message de validation est présent
2365     $this->assertContains('Vos modifications ont bien été enregistrées.',
2366     $this->byCssSelector(".message .text")->text());
2367     //On clique sur le bouton retour
2368     $this->byLinkText("Retour")->click();
2369     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2370     $this->verifyNoErrors();
2371     //On saisie le nom due l'événement dans la recherche simple
2372     $this->byClassName("champFormulaire")->value("ANNUL");
2373     //On valide la recherche
2374     $this->byName('s1')->submit();
2375     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2376     $this->verifyNoErrors();
2377     //On clique sur l'événement
2378     $this->byLinkText("ANNUL")->click();
2379     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2380     $this->verifyNoErrors();
2381     // Récupération de l'id du type de DI
2382     $idDIAnnul = $this->byId("dossier_instruction_type")->text();
2383     // Ajout d'un type de demande ANNULATION
2384     $this->byLinkText("Type")->click();
2385     $this->byCssSelector(".add-16")->click();
2386     $this->byId("code")->value('ANNUL');
2387     $this->byId("libelle")->value('Demande d\'annulation');
2388     $this->select($this->byName("groupe"))->selectOptionByValue('1');
2389     $this->select($this->byName("dossier_autorisation_type_detaille"))->selectOptionByValue('1');
2390     $this->select($this->byName("demande_nature"))->selectOptionByValue('2');
2391     $this->select($this->byName("etats_autorises[]"))
2392     ->selectOptionByValue("notifier");
2393     $this->select($this->byName("contraintes"))->selectOptionByValue('avec_recup');
2394     $this->select($this->byName("dossier_instruction_type"))->selectOptionByValue($idDIAnnul);
2395     $this->select($this->byName("evenement"))->selectOptionByValue('25');
2396     // On clique sur ajouter
2397     $this->byXPath("//input[@value='Ajouter']")->click();
2398     // On vérifie qu'il n'y ait pas d'erreur
2399     $this->verifynoerrors();
2400     // On vérifie que le message de validation est présent
2401     $this->assertContains('Vos modifications ont bien été enregistrées.',
2402     $this->byCssSelector(".message .text")->text());
2403     //On clique sur le bouton retour
2404     $this->byLinkText("Retour")->click();
2405     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2406     $this->verifyNoErrors();
2407     //On saisie le nom due l'événement dans la recherche simple
2408     $this->byClassName("champFormulaire")->value("ANNUL");
2409     //On valide la recherche
2410     $this->byName('s1')->submit();
2411     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2412     $this->verifyNoErrors();
2413     //On clique sur l'événement
2414     $this->byLinkText("ANNUL")->click();
2415     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2416     $this->verifyNoErrors();
2417     // Récupération de l'id de la demande
2418     $idDemandeAnnul = $this->byId("demande_type")->text();
2419     // Modification de l'action d'abandon de dossier
2420     $this->byLinkText("Action")->click();
2421     // On vérifie qu'il n'y ait pas d'erreur
2422     $this->verifynoerrors();
2423     // Modification de l'action d'abandon de dossier
2424     $this->byLinkText("abandon")->click();
2425     // Modification de l'action d'abandon de dossier
2426     $this->byCssSelector(".edit-16")->click();
2427     // On vérifie qu'il n'y ait pas d'erreur
2428     $this->verifynoerrors();
2429     $this->byId("regle_avis")->clear();
2430     $this->byId("regle_avis")->value('avis_decision');
2431     $this->byId("regle_date_decision")->clear();
2432     $this->byId("regle_date_decision")->value('date_evenement');
2433     // On clique sur ajouter
2434     $this->byXPath("//input[@value='Modifier']")->click();
2435     // On vérifie qu'il n'y ait pas d'erreur
2436     $this->verifynoerrors();
2437     // On vérifie que le message de validation est présent
2438     $this->assertContains('Vos modifications ont bien été enregistrées.',
2439     $this->byCssSelector(".message .text")->text());
2440     // On se déconnecte
2441     $this->deconnect();
2442     // On se connecte en tant que "admin"
2443     $this->login("guichet", "guichet");
2444     //On clique sur le menu des instructions
2445     $this->byLinkText("Nouveau Dossier")->click();
2446     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2447     $this->verifyNoErrors();
2448     // Création d'un DI
2449     $dossier = $this->addDossierInstruction(1, 1, "test annulation");
2450     // On se déconnecte
2451     $this->deconnect();
2452     // On se connecte en tant que "instr"
2453     $this->login("instr", "instr");
2454     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2455     $this->verifyNoErrors();
2456     // On clique sur le lien "Mes encours" dans le menu
2457     $this->byLinkText("Recherche")->click();
2458     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2459     $this->verifyNoErrors();
2460     $this->byId("dossier")->value(str_replace(" ", "", $dossier));
2461     $this->byName("advanced-search-submit")->click();
2462     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2463     $this->verifyNoErrors();
2464     // On clique sur le dossier dernièrement créé
2465     $this->byLinkText($dossier)->click();
2466     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2467     $this->verifyNoErrors();
2468     // On clique sur l'onglet "Instruction"
2469     $this->byId("dossier_autorisation")->click();
2470     sleep(1);
2471     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2472     $this->verifyNoErrors();
2473     // Verification de l'état du DA correspondant
2474     $this->assertContains('En cours', $this->byCssSelector("#sousform-dossier_autorisation")->text());
2475     // On se déconnecte
2476     $this->deconnect();
2477     // On se connecte en tant que "guichet"
2478     $this->login("guichet", "guichet");
2479     //On clique sur le menu des instructions
2480     $this->byLinkText("Dossier En Cours")->click();
2481     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2482     $this->verifyNoErrors();
2483     // Création d'un DI
2484     $dossier = $this->addDossierInstruction(
2485     1,
2486     $idDemandeAnnul,
2487     "test annulation",
2488     2,
2489     $dossier,
2490     false);
2491     // On se déconnecte
2492     $this->deconnect();
2493     // On se connecte en tant que "instr"
2494     $this->login("instr", "instr");
2495     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2496     $this->verifyNoErrors();
2497     // On clique sur le lien "Mes encours" dans le menu
2498     $this->byLinkText("Recherche")->click();
2499     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2500     $this->verifyNoErrors();
2501     $this->byId("dossier")->value(str_replace(" ", "", $dossier));
2502     $this->byName("advanced-search-submit")->click();
2503     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2504     $this->verifyNoErrors();
2505     // On clique sur le dossier dernièrement créé
2506     $this->byLinkText($dossier)->click();
2507     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2508     $this->verifyNoErrors();
2509     // On clique sur l'onglet "Instruction"
2510     $this->byId("dossier_autorisation")->click();
2511     sleep(1);
2512     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2513     $this->verifyNoErrors();
2514     // Verification de l'état du DA correspondant
2515     $this->assertContains('Abandonné', $this->byCssSelector("#sousform-dossier_autorisation")->text());
2516     //On se déconnecte
2517     $this->logout();
2518     }
2519    
2520     public function test_18_verification_references_cadastrales(){
2521     //{{{ On ajoute un nouveau dossier }}}
2522     // On se connecte à l'application
2523     $this->login("guichet", "guichet");
2524     // On clique sur le menu "Nouveau Dossier"
2525     $this->byLinkText("Nouveau Dossier")->click();
2526     // On vérifie qu'il n'y ait pas d'erreur
2527     $this->verifynoerrors();
2528     // On vérifie le nom de l'onglet
2529     $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
2530     // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
2531     $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel("Permis de construire pour une maison individuelle et / ou ses annexes");
2532     // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
2533     $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
2534     // On clique pour ajouter un pétitionnaire principale
2535     $this->byId("add_petitionnaire_principal")->click();
2536     // On remplit le champ
2537     $this->byId("particulier_nom")->value("DURAND");
2538     // On remplit le champ
2539     $this->byId("particulier_prenom")->value("MICKAEL");
2540     // On clique sur ajouter
2541     $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
2542     // On vérifie qu'il n'y ait pas d'erreur
2543     $this->verifynoerrors();
2544     // On vérifie le message
2545     $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-petitionnaire .message")->text());
2546     // On clique sur le bouton retour
2547     $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
2548     // On vérifie que le text est présent
2549     $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
2550     // On clique sur ajouter
2551     $this->byXPath("//input[@value='Ajouter']")->click();
2552     // On vérifie qu'il n'y ait pas d'erreur
2553     $this->verifynoerrors();
2554     // On vérifie le message
2555     $this->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°[\s\S]*$/",$this->byCssSelector(".message")->text());
2556     // Récupération du numéro de dossier
2557     preg_match('/(PC)[0-9 ]*(P0)/', $this->byCssSelector(".message .text")->text(), $dossier);
2558     $dossier_libelle = $dossier[0];
2559     $dossier = str_replace(' ', '', $dossier_libelle);
2560     //On se déconnecte
2561     $this->deconnect();
2562     //{{{ On modifie les références cadastrales }}}
2563     // On se connecte en tant que "instr"
2564     $this->login("instr", "instr");
2565     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2566     $this->verifyNoErrors();
2567     // On clique sur le lien "Mes encours" dans le menu
2568     $this->byLinkText("Recherche")->click();
2569     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2570     $this->verifyNoErrors();
2571     $this->byId("dossier")->value($dossier);
2572     $this->byName("advanced-search-submit")->click();
2573     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2574     $this->verifyNoErrors();
2575     // On clique sur le dossier dernièrement créé
2576     $this->byLinkText($dossier_libelle)->click();
2577     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2578     $this->verifyNoErrors();
2579     //On clique sur Modifier
2580     $this->byClassName("edit-16")->click();
2581     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2582     $this->verifyNoErrors();
2583     // On modifie les références cadastrales
2584    
2585     //On déplie le fieldset
2586     $this->byCssSelector("#fieldset-form-dossier_instruction-localisation-du-terrain legend")->click();
2587     sleep(1);
2588     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2589     $this->verifyNoErrors();
2590     //On saisit les références cadastrale
2591     $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(1)")->value("001");
2592     $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(2)")->value("DC");
2593     // On valide le formulaire
2594     $this->byXPath("//input[@value='Modifier']")->click();
2595     //Un alert javascript doit apparaître, on vérifie le message
2596     $this->assertEquals("Les références cadastrales saisies sont incorrectes. Veuillez les corriger.", $this->alertText());
2597     // On valide l'alert
2598     $this->acceptAlert();sleep(1);
2599     //On ajoute la référence
2600     $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(3)")->value("0015");
2601     //On valide le formulaire
2602     $this->byXPath("//input[@value='Modifier']")->click();
2603     }
2604    
2605     /**
2606     * Ajout d'un dossier d'instruction par le guichet unique
2607     *
2608     * @param int $dossier_autorisation_type_detaille L'identifiant du type détaillé
2609     * de dossier d'autorisation
2610     * @param int $demande_type L'identifiant du type de la demande
2611     * @param int $type Type de la demande : nouveau dossier ou dossier existant
2612     * @return le numéro de dossier d'instruction qui vient d'être créé
2613     */
2614     public function addDossierInstruction($dossier_autorisation_type_detaille,
2615     $demande_type, $nom_petit = "test recopie", $type = 1, $dossier = "",
2616     $petit = true){
2617    
2618     if ($type===1){
2619     //On choisit le type détaillé de dossier d'autorisation
2620     $this->select($this->byName("dossier_autorisation_type_detaille"))->selectOptionByValue($dossier_autorisation_type_detaille);
2621     }
2622     else {
2623     sleep(5);
2624     // On remplit le champ de recherche simple
2625     $this->byCssSelector("input[name='recherche']")->value(str_replace(' ', '', $dossier));
2626     // On clique sur le bouton recherche
2627     $this->byCssSelector(".ui-button")->click();sleep(1);
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 résultat
2631     $this->byId("action-tab-demande_dossier_encours-left-consulter-".str_replace(' ', '', $dossier))->click();
2632     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2633     $this->verifyNoErrors();
2634     }
2635     //On choisit le type de demande
2636     $this->select($this->byName("demande_type"))->selectOptionByValue($demande_type);
2637     if($petit) {
2638     //On clique sur "Saisir le pétitionnaire principal"
2639     $this->byId("add_petitionnaire_principal")->click();
2640     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2641     $this->verifyNoErrors();
2642     //On saisie le nom du pétitionnaire principal
2643     $this->byId("particulier_nom")->value($nom_petit);
2644     // On clique sur ajouter
2645     $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
2646     // On vérifie qu'il n'y ait pas d'erreur
2647     $this->verifynoerrors();
2648     //On vérifie que le pétitionnaire s'est bien ajouté
2649     // On vérifie le message
2650     $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector("#sousform-petitionnaire .message")->text());
2651     // On clique sur le bouton retour
2652     $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
2653     // On vérifie que le text est présent
2654     $this->assertContains($nom_petit,$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
2655     }
2656     // On clique sur ajouter
2657     $this->byXPath("//input[@value='Ajouter']")->click();
2658     // On vérifie qu'il n'y ait pas d'erreur
2659     $this->verifynoerrors();
2660     // On vérifie le message
2661     $this->assertContains("Création du dossier",$this->byCssSelector(".message")->text());
2662     //On récupère le numéro de dossier d'instruction créé
2663     if ($type===1){
2664     preg_match('/(PC|AT)[0-9 ]*(P0)/', $this->byCssSelector("#tabs-1 .message")->text(), $dossier);
2665     }
2666     elseif ($type===2){
2667     preg_match('/(PC|AT)[0-9 ]*[A-Z]*(0)[1-9]{1}/', $this->byCssSelector("#tabs-1 .message")->text(), $dossier);
2668     }
2669     else{
2670     preg_match('/(PC|AT)[0-9 ]*[A-Z]*(0)[1-9]{1}/', $this->byCssSelector("#tabs-1 .message")->text(), $dossier);
2671     }
2672     return $dossier[0];
2673     }
2674    
2675     /*
2676     * Ajoute un événement
2677     * @param $libelle le libelle de l'événement
2678     *
2679     * @return l'identifiant de l'événement
2680     */
2681     private function addEvenement($libelle){
2682    
2683     //On clique sur le + du tableau
2684     $this->byClassName("add-16")->click();
2685     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2686     $this->verifyNoErrors();
2687     //On remplit les champs
2688     $this->byId("libelle")->value($libelle);
2689     $this->select($this->byName("etats_depuis_lequel_l_evenement_est_disponible[]"))
2690     ->selectOptionByValue("notifier");
2691     $this->select($this->byName("dossier_instruction_type[]"))
2692     ->selectOptionByValue("1");
2693     //On valide le formulaire
2694     $this->byName('f1')->submit();
2695     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2696     $this->verifyNoErrors();
2697     // On vérifie que le message de validation est présent
2698     $this->assertContains('Vos modifications ont bien été enregistrées.', $this->byCssSelector(".message .text")->text());
2699     //On clique sur le bouton retour
2700     $this->byLinkText("Retour")->click();
2701     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2702     $this->verifyNoErrors();
2703     //On saisie le nom due l'événement dans la recherche simple
2704     $this->byClassName("champFormulaire")->value($libelle);
2705     //On valide la recherche
2706     $this->byName('s1')->submit();
2707     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2708     $this->verifyNoErrors();
2709     //On clique sur l'événement
2710     $this->byLinkText($libelle)->click();
2711     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2712     $this->verifyNoErrors();
2713     //On récupère l'identifiant
2714     $evenementId = trim($this->byId("evenement")->text());
2715     //On clique sur le bouton Retour
2716     $this->byLinkText("Retour")->click();
2717     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2718     $this->verifyNoErrors();
2719     //On retourne l'identifiant
2720     return $evenementId;
2721     }
2722    
2723     /*
2724     * Modifie la valeur du paramètre du numéro de'événement pour le message ERP
2725     * @param string $parametre le libelle du paramètre
2726     * @param string $valeur la valeur à renseigner
2727     *
2728     * @return string la valeur précédente du paramètre
2729     */
2730     private function changeParametreEvenementErp($parametre, $valeur){
2731    
2732     //On vide le champ
2733     $this->byClassName("champFormulaire")->clear();
2734     //On saisie le nom de la variable dans la recherche simple
2735     $this->byClassName("champFormulaire")->value($parametre);
2736     //On valide la recherche
2737     $this->byName('s1')->submit();
2738     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2739     $this->verifyNoErrors();
2740     //On clique sur le paramètre
2741     $this->byLinkText($parametre)->click();
2742     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2743     $this->verifyNoErrors();
2744     //On clique sur modifier dans le portail d'action
2745     $this->byClassName("edit-16")->click();
2746     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2747     $this->verifyNoErrors();
2748     //On récupère la valeur actuelle du paramètre
2749     $parametre = trim($this->byId("valeur")->attribute('value'));
2750     //On vide le champ
2751     $this->byId("valeur")->clear();
2752     //On change la valeur du paramètre
2753     $this->byId("valeur")->value($valeur);
2754     //On valide le formulaire
2755     $this->byName('f1')->submit();
2756     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2757     $this->verifyNoErrors();
2758     // On vérifie que le message de validation est présent
2759     $this->assertContains('Vos modifications ont bien été enregistrées.', $this->byCssSelector(".message .text")->text());
2760     //On clique sur le bouton retour
2761     $this->byLinkText("Retour")->click();
2762     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2763     $this->verifyNoErrors();
2764     //On clique sur le bouton retour
2765     $this->byLinkText("Retour")->click();
2766     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2767     $this->verifyNoErrors();
2768     //On retourne la valeur
2769     return $parametre;
2770     }
2771    
2772     /*
2773     * Ajoute une instruction
2774     * @param int $service l'identifiant du service
2775     */
2776     private function addInstruction($evenement, $erp = true){
2777    
2778     //On clique sur le + du tableau
2779     $this->byClassName("add-16")->click();
2780     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2781     $this->verifyNoErrors();
2782     //On choisit l'événement
2783     $this->select($this->byId("evenement"))->selectOptionByValue($evenement);
2784     //On valide le formulaire
2785     $this->byName("f2")->submit();
2786     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2787     $this->verifyNoErrors();
2788     // On vérifie que le message de validation est présent
2789     $this->assertContains('Vos modifications ont bien été enregistrées.', $this->byCssSelector("#sousform-instruction .message .text")->text());
2790     if($erp) {
2791     // On vérifie que le message d'envoi est présent
2792     $this->assertContains('Le message a été transmis au référentiel ERP.', $this->byCssSelector("#sousform-instruction .message .text")->text());
2793     }
2794     //On clique sur le bouton retour
2795     $this->byLinkText("Retour")->click();
2796     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2797     $this->verifyNoErrors();
2798     }
2799    
2800     /**
2801     * Permet de vérifier l'état d'un DA en fonction de l'état de ses DI.
2802     * @param string $dossier numéro de dossier
2803     * @param integer $event numéro d'événement
2804     * @param string $etat état du DA
2805     */
2806     private function verifierEtatDA($dossier, $event, $etat) {
2807     // On clique sur l'onglet "DA"
2808     $this->byId("dossier_autorisation")->click();
2809     sleep(1);
2810     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2811     $this->verifyNoErrors();
2812     $this->assertContains('En cours', $this->byCssSelector("#sousform-dossier_autorisation")->text());
2813     // retour sur l'ajout d'événement
2814     $this->byId("instruction")->click();
2815     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2816     $this->verifyNoErrors();
2817     $this->addInstruction($event, false);
2818     // On clique sur l'onglet "DA"
2819     $this->byId("dossier_autorisation")->click();
2820     sleep(1);
2821     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2822     $this->verifyNoErrors();
2823     $this->assertContains($etat, $this->byCssSelector("#sousform-dossier_autorisation")->text());
2824     }
2825    
2826     /**
2827     * test du lien automatique entre choix autorité compétente dans DI et
2828     * évènement d'instruction à créer
2829     */
2830     // Fonction privé
2831     private function modification_autorite_competente($utilisateur) {
2832     // On se connecte à l'application
2833     $this->login($utilisateur["login"], $utilisateur["mdp"]);
2834     // Ouvre le menu
2835     $this->openMenu("Instruction", $utilisateur);
2836     // On clique sur le lien "Mes encours" dans le menu
2837     $this->byLinkText("Recherche")->click();
2838     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2839     $this->verifyNoErrors();
2840     // On clique sur le lien "AZ0130551200001P0" dans le tableau
2841     $this->byLinkText("AZ 013055 12 00001P0")->click();
2842     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2843     $this->verifyNoErrors();
2844     // On clique sur l'onglet "Instruction"
2845     $this->byId("instruction")->click();
2846     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2847     $this->verifyNoErrors();
2848     // On clique sur le bouton d'ajout de lots
2849     $this->byXPath("//div[@id='sousform-instruction']/table/thead/tr/th/a/span")->click();
2850     // Vérification des champs obligatoires
2851     $this->byXPath("//input[@value='Ajouter']")->click();
2852     sleep(1);
2853     //On choisi un événement
2854     $this->select($this->byId("evenement"))->selectOptionByValue("94");
2855     // Validation du formulaire
2856     $this->byXPath("//input[@value='Ajouter']")->click();
2857     sleep(1);
2858     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2859     $this->verifyNoErrors();
2860     $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
2861     $this->byCssSelector("form[name=\"f2\"] > a.retour")->click();
2862     // Retour à l'onglet principal
2863     $this->byId("main")->click();
2864     $this->refresh();
2865     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2866     $this->verifyNoErrors();
2867     // On verifie que l'autorité compétente à changée.
2868     $this->assertRegExp('/.*Commune pour état*/', $this->byCssSelector("#tabs-1 #autorite_competente")->text());
2869     // On se déconnecte
2870     $this->deconnect();
2871     // On se connecte en tant que "admin"
2872     $this->login("admin", "admin");
2873     sleep(1);
2874     $this->byLinkText("Instruction")->click();
2875     // On clique sur le lien "Recherche" dans le menu
2876     $this->byLinkText("Recherche")->click();
2877     // On clique sur le lien "AZ0130551200001P0" dans le tableau
2878     $this->byLinkText("AZ 013055 12 00001P0")->click();
2879     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2880     $this->verifyNoErrors();
2881     // On verifie que l'autorité compétente à changée
2882     $this->assertEquals('Commune pour état', $this->byCssSelector("#tabs-1 #autorite_competente")->text());
2883     // On clique sur l'onglet "Instruction"
2884     $this->byId("instruction")->click();
2885     $this->byLinkText("Changer l'autorité compétente 'commune état'")->click();
2886     sleep(1);
2887     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2888     $this->verifyNoErrors();
2889     // On supprime l'element et on verifie le retour de l'autorité "commune"
2890     $this->byId("action-sousform-instruction-supprimer")->click();
2891     // On valide le formulaire
2892     $this->byXPath("//input[@value='Supprimer']")->click();sleep(1);
2893     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2894     $this->verifyNoErrors();
2895     // On clique sur le bouton retour
2896     $this->byLinkText("Retour")->click();
2897     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2898     $this->verifyNoErrors();
2899     // On vérifie que l'événement d'instruction n'est plus dans le tableau
2900     $this->assertNotContains("Changer l'autorité compétente 'commune état'", $this->byId("sousform-instruction")->text());
2901     // Retour à l'onglet principal
2902     $this->byId("main")->click();
2903     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2904     $this->verifyNoErrors();
2905     // On rafraîchit la page
2906     $this->refresh();
2907     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2908     $this->verifyNoErrors();
2909     // On verifie que l'autorité compétente à changée.
2910     $this->assertEquals('Commune', $this->byCssSelector("#tabs-1 #autorite_competente")->text());
2911     // On se déconnecte
2912     $this->deconnect();
2913     }
2914    
2915     /**
2916     * Ce test vise uniquement à vérifier que les écrans correspondant à chaque
2917     * entrée de menu ne génère pas une erreur de base de données
2918     */
2919     // Fonction privé
2920     private function ouvertureMenu($utilisateur) {
2921     // On se connecte
2922     $this->login($utilisateur["login"], $utilisateur["mdp"]);
2923     // Ouvre le menu
2924     $this->openMenu("Instruction", $utilisateur);
2925     // On vérifie le menu ""
2926     $this->byLinkText("Mes Encours")->click();
2927     $this->assertContains("Instruction > Dossiers D'instruction",
2928     $this->byId("title")->text());
2929     $this->verifyNoErrors();
2930     // On vérifie le menu ""
2931     $this->byLinkText("Tous Les Encours")->click();
2932     $this->assertContains("Instruction > Dossiers D'instruction",
2933     $this->byId("title")->text());
2934     $this->verifyNoErrors();
2935     // On vérifie le menu ""
2936     $this->byLinkText("Mes Clôturés")->click();
2937     $this->assertContains("Instruction > Dossiers D'instruction",
2938     $this->byId("title")->text());
2939     $this->verifyNoErrors();
2940     // On vérifie le menu ""
2941     $this->byLinkText("Tous Les Clôturés")->click();
2942     $this->assertContains("Instruction > Dossiers D'instruction",
2943     $this->byId("title")->text());
2944     $this->verifyNoErrors();
2945     // On vérifie le menu ""
2946     $this->byLinkText("Recherche")->click();
2947     $this->assertContains("Instruction > Dossiers D'instruction",
2948     $this->byId("title")->text());
2949     $this->verifyNoErrors();
2950     // On vérifie le menu ""
2951     $this->byLinkText("Dossiers À Qualifier")->click();
2952     $this->assertContains("Instruction > Qualification > Dossiers À Qualifier",
2953     $this->byId("title")->text());
2954     $this->verifyNoErrors();
2955     // On vérifie le menu ""
2956     $this->byLinkText("Architecte Fréquent")->click();
2957     $this->assertContains("Instruction > Qualification > Architecte Fréquent",
2958     $this->byId("title")->text());
2959     $this->verifyNoErrors();
2960     // On vérifie le menu ""
2961     $this->byLinkText("Mes Retours")->click();
2962     $this->assertContains("Instruction > Consultations > Mes Retours",
2963     $this->byId("title")->text());
2964     $this->verifyNoErrors();
2965     // On vérifie le menu ""
2966     $this->byLinkText("Tous Les Retours")->click();
2967     $this->assertContains("Instruction > Consultations > Tous Les Retours",
2968     $this->byId("title")->text());
2969     $this->verifyNoErrors();
2970     // On vérifie le menu ""
2971     $this->byLinkText("Mes Messages")->click();
2972     $this->assertContains("Instruction > Messages > Mes Messages",
2973     $this->byId("title")->text());
2974     $this->verifyNoErrors();
2975     // On vérifie le menu ""
2976     $this->byLinkText("Tous Les Messages")->click();
2977     $this->assertContains("Instruction > Messages > Tous Les Messages",
2978     $this->byId("title")->text());
2979     $this->verifyNoErrors();
2980     // On vérifie le menu ""
2981     $this->byCssSelector("a.commission_mes_retours-16")->click();
2982     $this->assertContains("Instruction > Commissions > Mes Retours",
2983     $this->byId("title")->text());
2984     $this->verifyNoErrors();
2985     // On vérifie le menu ""
2986     $this->byCssSelector("a.commission_tous_retours-16")->click();
2987     $this->assertContains("Instruction > Commissions > Tous Les Retours",
2988     $this->byId("title")->text());
2989     $this->verifyNoErrors();
2990     // On se déconnecte
2991     $this->deconnect();
2992     }
2993     }
2994    
2995     ?>

Properties

Name Value
svn:executable *

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26