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

Annotation of /trunk/tests/testInstructions.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 4526 - (hide annotations)
Wed Jun 22 08:18:23 2016 UTC (8 years, 7 months ago) by nmeucci
File size: 139122 byte(s)
* Évolution - Il est dorénavant possible de créer un dossier d'instruction sans
  suffixe dans son numéro. Pour ce faire il faut désactiver l'option dans le
  paramétrage du type de dossier d'instruction.
  Ticket #8261.

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     $this->byLinkText("cerfa de test n°3")->click();
607     // 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     $this->byLinkText("cerfa de test n°3")->click();
787     // 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     $this->select($this->byName("cerfa"))->selectOptionByLabel("cerfa de test n°3");
810     // 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     $this->select($this->byName("cerfa"))->selectOptionByLabel("cerfa de test n°3");
827     // 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