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

Annotation of /trunk/tests/testInstructions.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 4636 - (hide annotations)
Tue Jun 28 10:59:15 2016 UTC (8 years, 7 months ago) by softime
File size: 139122 byte(s)
* Réglementaire - Ajouts et modifications des données techniques par rapport aux
  nouvelles versions des CERFA, notamment l'ajout du nouveau tableau des
  surfaces. Ajout d'une correspondance entre l'ancien tableau des surfaces et le
  nouveau pour l'export SITADEL.
  Ticket #8285.

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

Properties

Name Value
svn:executable *

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26