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

Annotation of /trunk/tests/testInstructions.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 5169 - (hide annotations)
Thu Nov 17 18:17:08 2016 UTC (8 years, 2 months ago) by softime
File size: 126751 byte(s)
* Merge de la branche de développement 3.34.0 vers le trunk

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     // Fonction public
516     public function test_06_modification_autorite_competente() {
517     // Récupération des utilisateurs
518     $utilisateurs = $this->listUtlisateurs;
519     // Pour chaque utilisateur on lance le test
520     foreach ($utilisateurs as $utilisateur) {
521     //
522     $this->modification_autorite_competente($utilisateur);
523     }
524     // On vérifie la déconnexion
525     $this->verifyDeconnect();
526     }
527    
528     /**
529     * test de l'ajout de données techniques au dossier
530     */
531     public function test_07_edition_donnees_techniques() {
532     // On se connecte en tant que "guichet"
533     $this->login("guichet", "guichet");
534     // On clique sur le sous-menu "Nouveau Dossier"
535     $this->byLinkText("Nouveau Dossier")->click();
536     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
537     $this->verifyNoErrors();
538     $this->select($this->byName("dossier_autorisation_type_detaille"))->selectOptionByValue("1");
539     $dossier = $this->addDossierInstruction(1, 1, "Test cerfa");
540     // On se déconnecte
541     $this->deconnect();
542     // On se connecte en tant que "admin"
543     $this->login("admin", "admin");
544     sleep(1);
545     // Ouverture du menu de paramétrage des dossiers
546     $this->byLinkText("Paramétrage Dossiers")->click();
547     // Ouverture du menu des cerfa
548     $this->byLinkText("Cerfa")->click();
549     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
550     $this->verifyNoErrors();
551     // Ouverture d'un cerfa
552 softime 5169 $this->byLinkText("cerfa de test n°5")->click();
553 nmeucci 4108 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
554     $this->verifyNoErrors();
555     // Modification du cerfa affiché
556     $this->byXPath("//div[@id='portlet-actions']/ul/li/a/span")->click();
557     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
558     $this->verifyNoErrors();
559     // On modifie la durée de validité
560     $this->byId("om_validite_fin")->clear();
561     $this->byId("om_validite_fin")->value("31/12/2013");
562     // On valide le formulaire
563     $this->byXPath("//input[@value='Modifier']")->click();
564     // On vérifie le message de validation
565     $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text());
566     // On se déconnecte
567     $this->deconnect();
568     // On verifie que les données techniques sont toujours disponibles
569     // On se connecte en tant que "instr"
570     $this->login("instr", "instr");
571     // On clique sur le lien "Mes encours" dans le menu
572     $this->byLinkText("Mes Encours")->click();
573     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
574     $this->verifyNoErrors();
575     // On recherche le dossier crée
576     $this->byName("recherche")->value(str_replace(' ', '', $dossier));
577     // On clique sur le bouton recherche
578     $this->byName("s1")->click();
579     // On clique sur le lien "PC 013055 12 00002P0" dans le tableau
580     $this->byLinkText($dossier)->click();
581     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
582     $this->verifyNoErrors();
583     // On click sur le lien "Données techniques"
584     $this->byId("action-form-dossier_instruction_mes_encours-donnees_techniques")->click();
585     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
586     $this->verifyNoErrors();
587     sleep(1);
588     // Vérification des fieldset
589     $this->assertContains("Aménager", $this->byCssSelector("#sousform-donnees_techniques #form-content")->text());
590     $this->assertContains("Construire", $this->byCssSelector("#sousform-donnees_techniques #form-content")->text());
591     $this->assertContains("Démolir", $this->byCssSelector("#sousform-donnees_techniques #form-content")->text());
592     $this->byCssSelector(".ui-dialog-titlebar-close")->click();
593     // On se déconnecte
594     $this->deconnect();
595     // On se connecte en tant que "admin"
596     $this->login("admin", "admin");
597     sleep(1);
598     // Ouverture du menu de paramétrage des dossiers
599     $this->byLinkText("Paramétrage Dossiers")->click();
600     // Ouverture du menu des cerfa
601     $this->byLinkText("Cerfa")->click();
602     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
603     $this->verifyNoErrors();
604     //On clique sur le "+" du tableau
605     $this->byClassName("add-16")->click();
606     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
607     $this->verifyNoErrors();
608     $this->byId("libelle")->value("test cerfa 3");
609     $this->byId("code")->value("cerfa 3");
610     $this->byId("om_validite_debut")->value("01/04/2014");
611     $this->byId("om_validite_fin")->value("01/04/2018");
612     // Ajout de champs au formulaire des données techniques
613     $this->byXPath("//div[@id='form-content']/div[2]/fieldset/legend")->click();
614     $this->byId("terr_juri_titul")->click();
615     $this->byId("terr_juri_lot")->click();
616     $this->byId("terr_juri_zac")->click();
617     $this->byId("terr_juri_afu")->click();
618     $this->byId("terr_juri_pup")->click();
619     $this->byId("terr_juri_oin")->click();
620     $this->byId("terr_juri_desc")->click();
621     // Validation du formulaire
622     $this->byXPath("//input[@value='Ajouter']")->click();
623     // Vérification des erreurs
624     $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector(".message .text")->text());
625     $this->byLinkText("Retour")->click();
626     // Ouverture du menu des DATD
627     $this->byLinkText("Type DA Détaillé")->click();
628     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
629     $this->verifyNoErrors();
630     // Ouverture du PCI
631     $this->byLinkText("PCI")->click();
632     // Modification du DATD affiché
633     $this->byXPath("//div[@id='portlet-actions']/ul/li/a/span")->click();
634     $this->select($this->byId("cerfa"))->clearSelectedOptions();
635     $this->select($this->byName("cerfa"))->selectOptionByLabel("test cerfa 3");
636     // On valide le formulaire
637     $this->byXPath("//input[@value='Modifier']")->click();
638     // On vérifie le message de validation
639     $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text());
640     // On clique sur "Retour"
641     $this->byLinkText("Retour")->click();
642     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
643     $this->verifyNoErrors();
644     // On clique sur "Retour"
645     $this->byLinkText("Retour")->click();
646     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
647     $this->verifyNoErrors();
648     // Ouverture du PCI
649     $this->byLinkText("AZ")->click();
650     // Modification du DATD affiché
651     $this->byXPath("//div[@id='portlet-actions']/ul/li/a/span")->click();
652     $this->select($this->byName("cerfa"))->selectOptionByValue("");
653     // On valide le formulaire
654     $this->byXPath("//input[@value='Modifier']")->click();
655     // On vérifie le message de validation
656     $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text());
657     // On clique sur "Retour"
658     $this->byLinkText("Retour")->click();
659     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
660     $this->verifyNoErrors();
661     // On se déconnecte
662     $this->deconnect();
663     // On verifie que les données techniques sont toujours disponibles
664     // On se connecte en tant que "instr"
665     $this->login("instr", "instr");
666     // On clique sur le lien "Mes encours" dans le menu
667     $this->byLinkText("Mes Encours")->click();
668     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
669     $this->verifyNoErrors();
670     // On clique sur le lien "AZ0130551200001P0" dans le tableau
671     $this->byLinkText($dossier)->click();
672     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
673     $this->verifyNoErrors();
674     // On click sur le lien "Données techniques"
675     $this->byXPath("//div[@id='portlet-actions']/ul/li[2]/a/span")->click();
676     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
677     $this->verifyNoErrors();
678     // Vérification des fieldset
679     $this->assertContains("Aménager", $this->byCssSelector("#sousform-donnees_techniques #form-content")->text());
680     $this->assertContains("Construire", $this->byCssSelector("#sousform-donnees_techniques #form-content")->text());
681     $this->assertContains("Démolir", $this->byCssSelector("#sousform-donnees_techniques #form-content")->text());
682     $this->byCssSelector(".ui-dialog-titlebar-close")->click();
683     // On se déconnecte
684     $this->deconnect();
685     // On se connecte en tant que "instr"
686     $this->login("guichet", "guichet");
687     /** On instancie une nouvelle demande initial PCI **/
688     // On clique sur le sous-menu "Nouveau Dossier"
689     $this->byLinkText("Nouveau Dossier")->click();
690     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
691     $this->verifyNoErrors();
692     $this->select($this->byName("dossier_autorisation_type_detaille"))->selectOptionByValue("1");
693     $dossier = $this->addDossierInstruction(1, 1, "Test cerfa");
694     // On se déconnecte
695     $this->deconnect();
696     // On se connecte en tant que "instr"
697     $this->login("instr", "instr");
698     // On clique sur le lien "Mes encours" dans le menu
699     $this->byLinkText("Mes Encours")->click();
700     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
701     $this->verifyNoErrors();
702     //On cherche le service
703     $this->byName("recherche")->value(str_replace(" ","",$dossier));
704     //On valide
705     $this->byName("s1")->click();
706     // On clique sur le lien "AZ0130551200001P0" dans le tableau
707     $this->byLinkText($dossier)->click();
708     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
709     $this->verifyNoErrors();
710     // On click sur le lien "Données techniques"
711     $this->byXPath("//div[@id='portlet-actions']/ul/li[2]/a/span")->click();
712     sleep(1);
713     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
714     $this->verifyNoErrors();
715     $this->assertRegExp('/^[\s\S]*Terrain[\s\S]*$/', $this->byCssSelector("#sousform-donnees_techniques #form-content")->text());
716     $this->byCssSelector(".ui-dialog-titlebar-close")->click();
717     // On se déconnecte
718     $this->deconnect();
719     // On se connecte en tant que "instr"
720     $this->login("admin", "admin");
721     sleep(1);
722     // Ouverture du menu de paramétrage des dossiers
723     $this->byLinkText("Paramétrage Dossiers")->click();
724     // Ouverture du menu des cerfa
725     $this->byLinkText("Cerfa")->click();
726     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
727     $this->verifyNoErrors();
728     // Afficher les éléments expirés
729     $this->byLinkText("Afficher les éléments expirés")->click();
730     sleep(0.5);
731     // Ouverture d'un cerfa
732 softime 5169 $this->byLinkText("cerfa de test n°5")->click();
733 nmeucci 4108 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
734     $this->verifyNoErrors();
735     // Modification du cerfa affiché
736     $this->byXPath("//div[@id='portlet-actions']/ul/li/a/span")->click();
737     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
738     $this->verifyNoErrors();
739     // On modifie la durée de validité
740     $this->byId("om_validite_fin")->clear();
741     $this->byId("om_validite_fin")->value("31/12/2018");
742     // On valide le formulaire
743     $this->byXPath("//input[@value='Modifier']")->click();
744     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
745     $this->verifyNoErrors();
746     // Ouverture du menu des DATD
747     $this->byLinkText("Type DA Détaillé")->click();
748     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
749     $this->verifyNoErrors();
750     // Ouverture du PCI
751     $this->byLinkText("PCI")->click();
752     // Modification du DATD affiché
753     $this->byXPath("//div[@id='portlet-actions']/ul/li/a/span")->click();
754     $this->select($this->byId("cerfa"))->clearSelectedOptions();
755 softime 5169 $this->select($this->byName("cerfa"))->selectOptionByLabel("cerfa de test n°5");
756 nmeucci 4108 // On valide le formulaire
757     $this->byXPath("//input[@value='Modifier']")->click();
758     // On vérifie le message de validation
759     $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text());
760     // On clique sur "Retour"
761     $this->byLinkText("Retour")->click();
762     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
763     $this->verifyNoErrors();
764     // On clique sur "Retour"
765     $this->byLinkText("Retour")->click();
766     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
767     $this->verifyNoErrors();
768     // Ouverture du PCI
769     $this->byLinkText("AZ")->click();
770     // Modification du DATD affiché
771     $this->byXPath("//div[@id='portlet-actions']/ul/li/a/span")->click();
772 softime 5169 $this->select($this->byName("cerfa"))->selectOptionByLabel("cerfa de test n°5");
773 nmeucci 4108 // On valide le formulaire
774     $this->byXPath("//input[@value='Modifier']")->click();
775     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
776     $this->verifyNoErrors();
777     // On se déconnecte
778     $this->logout();
779     }
780     //
781     /**
782     * test un événement d'instruction qui a un événement "retour"
783     */
784     public function test_08_evenement_instruction_retour() {
785     //
786     // On se connecte à l'application en tant qu'administrateur
787     $this->login("admin", "admin");
788     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
789     $this->verifyNoErrors();
790     //
791     /** On ajoute une action "retour signature" **/
792     // On clique sur le menu "Paramétrage Dossiers"
793     $this->byLinkText("Paramétrage Dossiers")->click();
794     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
795     $this->verifyNoErrors();
796     // On clique sur le sous-menu "Action"
797     $this->byLinkText("Action")->click();
798     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
799     $this->verifyNoErrors();
800     // On clique sur le bouton "ajouter"
801     $this->byId("action-tab-action-corner-ajouter")->click();
802     // On remplis les champs
803     $this->byId("action")->value("retour signature");
804     $this->byId("libelle")->value("retour signature");
805     $this->byId("regle_etat")->value("etat");
806     $this->byId("regle_date_validite")->value("date_retour_signature + duree_validite");
807     // On valide le formulaire
808     $this->byXPath("//input[@value='Ajouter']")->click();
809     // On vérifie le message de validation
810     $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text());
811     /** Fin **/
812     //
813     /** On ajoute un événement "retour signature" **/
814     // On clique sur le sous-menu "Événement"
815     $this->byLinkText("Événement")->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 le bouton "ajouter"
819     $this->byId("action-tab-evenement-corner-ajouter")->click();
820     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
821     $this->verifyNoErrors();
822     // On remplis les champs
823     $this->byId("libelle")->value("retour signature");
824     $this->byId("retour")->click();
825     $this->select($this->byName("etats_depuis_lequel_l_evenement_est_disponible[]"))->clearSelectedOptions();;
826     $this->select($this->byName("etats_depuis_lequel_l_evenement_est_disponible[]"))->selectOptionByLabel("dossier accepter");
827     $this->select($this->byName("dossier_instruction_type[]"))->clearSelectedOptions();
828     $this->select($this->byName("dossier_instruction_type[]"))->selectOptionByLabel("PCI - P - Initial");
829     $this->select($this->byId("action"))->selectOptionByLabel("retour signature");
830     // On valide le formulaire
831     $this->byXPath("//input[@value='Ajouter']")->click();
832     // On vérifie le message de validation
833     $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text());
834     // On clique sur "Retour"
835     $this->byLinkText("Retour")->click();
836     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
837     $this->verifyNoErrors();
838     // On recherche l'événement "accepter un dossier sans réserve"
839     $this->byCssSelector("input[name='recherche']")->value('accepter un dossier sans réserve');
840     // On clique sur le bouton recherche
841     $this->byCssSelector(".ui-button")->click();
842     // On clique sur le résultat
843     $this->byLinkText("accepter un dossier sans réserve")->click();
844     // On clique sur le bouton "Modifier"
845     $this->byId('action-form-evenement-modifier')->click();
846     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
847     $this->verifyNoErrors();
848     // On sélectionne l'événement "retour" dans "evenement_retour_signature"
849     $this->select($this->byId("evenement_retour_signature"))->selectOptionByLabel("retour signature");
850     // On valide le formulaire
851     $this->byXPath("//input[@value='Modifier']")->click();
852     // On vérifie le message de validation
853     $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text());
854     /** Fin **/
855     //
856     /** On ajoute une durée de validité au type de DA PCI **/
857     // On clique sur le sous-menu "Type DA Détaillé"
858     $this->byLinkText("Type DA Détaillé")->click();
859     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
860     $this->verifyNoErrors();
861     // On clique sur le PCI
862     $this->byLinkText("PCI")->click();
863     // On clique sur le bouton "modifier"
864     $this->byId("action-form-dossier_autorisation_type_detaille-modifier")->click();
865     // On modifie la durée de validité
866     $this->byId("duree_validite_parametrage")->clear();
867     $this->byId("duree_validite_parametrage")->value("5");
868     // On valide le formulaire
869     $this->byXPath("//input[@value='Modifier']")->click();
870     // On vérifie le message de validation
871     $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text());
872     /** Fin **/
873     //
874     /** On instancie une nouvelle demande initial PCI **/
875     // On clique sur le menu "Guichet Unique"
876     $this->byLinkText("Guichet Unique")->click();
877     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
878     $this->verifyNoErrors();
879     // On clique sur le sous-menu "Nouveau Dossier"
880     $this->byLinkText("Nouveau Dossier")->click();sleep(1);
881     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
882     $this->verifyNoErrors();
883     // On selectionne le type de dossier d'autorisation détaillé "Permis de construire pour une maison individuelle et / ou ses annexes"
884     $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel("Permis de construire pour une maison individuelle et / ou ses annexes");
885     // On selectionne le type de demande "Dépôt Initial"
886     $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
887     // Puis la collectivité
888     $this->select($this->byId("om_collectivite"))->selectOptionByLabel("agglo");
889     // On clique pour ajouter un pétitionnaire principale
890     $this->byId("add_petitionnaire_principal")->click();
891     $this->byId("particulier_nom")->value("DURAND");
892     $this->byId("particulier_prenom")->value("MICKAEL");
893     $this->byId("particulier_date_naissance")->value("03/01/1956");
894     $this->byId("particulier_commune_naissance")->value("LILLE");
895     $this->byId("particulier_departement_naissance")->value("NORD");
896     $this->byId("numero")->value("12");
897     $this->byId("voie")->value("RUE DE LA LOI");
898     $this->byId("complement")->value("APPT 12");
899     $this->byId("localite")->value("MARSEILLE");
900     $this->byId("code_postal")->value("13012");
901     $this->byId("telephone_fixe")->value("0404040404");
902     $this->select($this->byCssSelector("#sformulaire #om_collectivite"))->selectOptionByLabel("agglo");
903     // On clique sur ajouter
904     $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
905     // On vérifie le message
906     $this->assertContains("Vos modifications ont bien été enregistrées", $this->byCssSelector("#sousform-petitionnaire .message")->text());
907     // On clique sur le bouton retour
908     $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
909     // On vérifie que le text est présent
910     $this->assertContains("DURAND MICKAEL",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
911     // On clique sur ajouter
912     $this->byXPath("//input[@value='Ajouter']")->click();
913     // On vérifie le message
914     $this->assertContains("Création du dossier d'autorisation n°",$this->byCssSelector(".message .text")->text());
915     // Récupération du numéro de dossier
916     preg_match('/(PC)[0-9 ]*(P0)/', $this->byCssSelector(".message .text")->text(), $dossier);
917     $dossier = $dossier[0];
918     /** Fin **/
919     //
920     /** On ajoute une instruction de dossier accepter et on la finalise **/
921     // On clique sur le menu "Instruction"
922     $this->byLinkText("Instruction")->click();
923     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
924     $this->verifyNoErrors();
925     // On clique sur le sous-menu "Recherche"
926     $this->byLinkText("Recherche")->click();
927     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
928     $this->verifyNoErrors();
929     // On recherche le dossier crée
930     $this->byId("dossier")->value(str_replace(' ', '', $dossier));
931     // On clique sur le bouton recherche
932     $this->byId("adv-search-submit")->click();
933     // On clique sur le résultat
934     $this->byLinkText($dossier)->click();
935     // On clique sur l'onglet "Instruction"
936     $this->byId("instruction")->click();
937     // On ajoute un événement d'instruction
938     $this->byId("action-soustab-instruction-corner-ajouter")->click();
939     // On choisit un signataire Albert Dupont
940     $this->select($this->byId("signataire_arrete"))->selectOptionByValue("1");
941     //On choisit l'instruction 'accepter un dossier sans réserve
942     //[acceptation]'
943     $this->select($this->byId("evenement"))->selectOptionByValue(81);
944     // On valide le formulaire
945     $this->byXPath("//input[@value='Ajouter']")->click();
946     // On vérifie le message
947     $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message .text")->text());
948     // On clique sur le bouton "retour"
949     $this->byLinkText("Retour")->click();
950     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
951     $this->verifyNoErrors();
952     // On clique sur l'événement d'instruction "accepter un dossier sans réserve"
953     $this->byLinkText("accepter un dossier sans réserve")->click();
954     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
955     $this->verifyNoErrors();
956     // On valide l'instruction
957     $this->byId("action-sousform-instruction-finaliser")->click();
958     // On vérifie le message de validation
959     $this->assertContains("La finalisation du document s'est effectuée avec succès.",$this->byCssSelector(".message .text")->text());
960     sleep(1);
961     // On clique sur le bouton "Retour"
962     $this->byLinkText("Retour")->click();
963     // On clique sur l'événement "accepter un dossier sans réserve"
964     $this->byLinkText("accepter un dossier sans réserve")->click();sleep(1);
965     // Récupération du numéro d'événement
966     $evenement = $this->byCssSelector("#instruction.field_value")->text();
967     /** Fin **/
968     //
969     /** On met à jour la date de retour signature **/
970     // Date de retour signature
971     $date_retour_signature = date("d/m/Y", mktime(0, 0, 0, date("m"), date("d")+5, date("Y")));
972     // On clique sur le menu "Suivi"
973     $this->byLinkText("Suivi")->click();
974     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
975     $this->verifyNoErrors();
976     // On clique sur le sous-menu "Mise À Jour Des Dates"
977     $this->byLinkText("Mise À Jour Des Dates")->click();
978     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
979     $this->verifyNoErrors();
980     // On sélectionne "date de retour de signature + Envoi contrôle légalite"
981     $this->select($this->byId("type_mise_a_jour"))->selectOptionByLabel("date de retour de signature + Envoi contrôle légalite");
982     // On remplit à la date du jour + 5 jours
983     $this->byId("date")->value($date_retour_signature);
984     // On remplit le code barres de l'instruction
985     $this->byId("code_barres")->value("11".str_pad($evenement, 10, "0", STR_PAD_LEFT));
986     // On clique sur Valider
987     $this->byCssSelector("#suivi_mise_a_jour_des_dates_form div.formControls input.om-button")->click();sleep(1);
988     // On vérifie la synthèse avec le numéro du dossier et l'événement
989     $this->assertContains($dossier, $this->byId("dossier_libelle")->text());
990     $this->assertContains("accepter un dossier sans réserve", $this->byId("evenement")->text());
991     // On clique sur Valider
992     $this->byCssSelector("#suivi_mise_a_jour_des_dates_form div.formControls input.om-button")->click();
993     // On vérifie le message de validation
994     $this->assertContains("Saisie enregistrée",$this->byCssSelector(".message .text")->text());
995     /** Fin **/
996     //
997     /** Vérifie l'instruction "retour" et le DI **/
998     // Date de validité
999     $date_validite = $this->mois_date(date("Y-m-d", mktime(0, 0, 0, date("m"), date("d")+5, date("Y"))), 5, "+");
1000     $date_validite = date("d/m/Y", strtotime($date_validite));
1001     // On clique sur le menu "Instruction"
1002     $this->byLinkText("Instruction")->click();
1003     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1004     $this->verifyNoErrors();
1005     // On clique sur le sous-menu "Recherche"
1006     $this->byLinkText("Recherche")->click();
1007     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1008     $this->verifyNoErrors();
1009     // On recherche le dossier crée
1010     $this->byId("dossier")->value(str_replace(' ', '', $dossier));
1011     // On clique sur le bouton recherche
1012     $this->byId("adv-search-submit")->click();
1013     // On clique sur le résultat
1014     $this->byLinkText($dossier)->click();
1015     // On vérifie la date de validité mise à jour par l'action
1016     $this->assertContains($date_validite, $this->byId("date_validite")->text());
1017     // On clique sur l'onglet "Instruction"
1018     $this->byId("instruction")->click();
1019     // On clique sur l'instruction "retour signature"
1020     $this->byLinkText("retour signature")->click();
1021     // On contrôle la date de retour signature
1022     $this->assertContains($date_retour_signature, $this->byId("date_retour_signature")->text());
1023     /** Fin **/
1024     //
1025     // On se déconnecte
1026     $this->logout();
1027     //
1028     }
1029     //
1030     /**
1031     * test la suppression d'un événement d'instruction lié à une demande qui ne
1032     * créée pas de nouveau dossier d'instruction
1033     */
1034     public function test_09_suppression_evenement_demande(){
1035     //
1036     //Ajout du paramétrage d'une nouvelle demande
1037     // On se connecte à l'application en tant qu'administrateur
1038     $this->login("admin", "admin");
1039     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1040     $this->verifyNoErrors();
1041     //On clique sur "Paramétrage dossier"
1042     $this->byLinkText("Paramétrage Dossiers")->click();
1043     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1044     $this->verifyNoErrors();
1045     //On clique sur Type
1046     $this->byLinkText("Type")->click();
1047     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1048     $this->verifyNoErrors();
1049     //On clique sur le "+" du tableau
1050     $this->byClassName("add-16")->click();
1051     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1052     $this->verifyNoErrors();
1053     //On saisit le type de la demande
1054     $this->byId("code")->value("test_09_suppression");
1055     $this->byId("libelle")->value("test_09_suppression");
1056     // On sélectionne le groupe 'Autorisation ADS'
1057     $this->select($this->byId("groupe"))->selectOptionByValue("1");sleep(1);
1058     // On sélectionne 'AZ (Demande d'autorisation spéciale de travaux dans
1059     // le périmètre d'une AVAP)'
1060     $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByValue("7");sleep(1);
1061     // On sélectionne la nature 'Dossier existant'
1062     $this->select($this->byId("demande_nature"))->selectOptionByValue("2");
1063     // On sélectionne l'état 'En cours'
1064     $this->select($this->byName("etats_autorises[]"))->selectOptionByValue("notifier");
1065     // On sélectionne l'événement 'Defrichement soumis a enquete publique'
1066     $this->select($this->byId("evenement"))->selectOptionByValue("15");
1067     // On sélectionne la contrainte 'Avec récupération demandeur'
1068     $this->select($this->byId("contraintes"))->selectOptionByValue("avec_recup");
1069     // On clique sur le bouton ajouter
1070     $this->byXPath("//input[@value='Ajouter']")->click();
1071     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1072     $this->verifyNoErrors();
1073     // On vérifie que le type de demande a bien été ajouté
1074     $this->assertContains('Vos modifications ont bien été enregistrées', $this->byCssSelector(".message .text")->text());
1075     //On se déconnecte
1076     $this->deconnect();
1077     //
1078     //Création d'un nouveau dossier d'instruction
1079     // On se connecte à l'application
1080     $this->login("guichet", "guichet");
1081     //On clique sur "Dossier En Cours"
1082     $this->byLinkText("Dossier En Cours")->click();
1083     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1084     $this->verifyNoErrors();
1085     //On clique sur le dossier "AZ0130551200001P0"
1086     $this->byId("action-tab-demande_dossier_encours-left-consulter-AZ0130551200001P0")->click();
1087     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1088     $this->verifyNoErrors();
1089     // On vérifie l'état du DI
1090     $this->assertContains("delai de notification envoye", $this->byCssSelector("#fieldset-form-demande_dossier_encours-etat-du-dossier-d_instruction.cadre .fieldsetContent .form-content")->text());
1091     //On sélectionne le type de la demande
1092     $this->select($this->byId("demande_type"))->selectOptionByLabel("test_09_suppression");sleep(1);
1093     // On clique sur le bouton ajouter
1094     $this->byXPath("//input[@value='Ajouter']")->click();
1095     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1096     $this->verifyNoErrors();
1097     // On vérifie que le type de demande a bien été ajouté
1098     $this->assertContains('Vos modifications ont bien été enregistrées', $this->byCssSelector(".message .text")->text());
1099     //On se déconnecte
1100     $this->deconnect();
1101     //
1102     //Suppression de l'événement d'instruction
1103     // On se connecte à l'application
1104     $this->login("admin", "admin");
1105     //On clique sur le menu "Instruction"
1106     $this->byLinkText("Instruction")->click();
1107     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1108     $this->verifyNoErrors();
1109     //On clique sur le menu "Recherche"
1110     $this->byLinkText("Recherche")->click();
1111     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1112     $this->verifyNoErrors();
1113     //On clique sur le dossier "AZ 013055 12 00001P0"
1114     $this->byLinkText("AZ 013055 12 00001P0")->click();
1115     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1116     $this->verifyNoErrors();
1117     //On clique sur l'onglet "Instruction"
1118     $this->byId("instruction")->click();
1119     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1120     $this->verifyNoErrors();
1121     //On clique sur l'instruction "Defrichement soumis a enquete publique"
1122     $this->byLinkText("Defrichement soumis a enquete publique")->click();
1123     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1124     $this->verifyNoErrors();
1125     //On définalise l'instruction
1126     $this->byClassName("definalise")->click();
1127     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1128     $this->verifyNoErrors();
1129     //On clique "Supprimer"
1130     $this->byCssSelector("#sousform-instruction .delete-16")->click();
1131     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1132     $this->verifyNoErrors();
1133     //On clique sur supprimer
1134     $this->byXPath("//input[@value='Supprimer']")->click();
1135     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1136     $this->verifyNoErrors();
1137     //On vérifie que lasuppression a été éffectuée
1138     $this->assertContains("La suppression a été correctement effectuée.",
1139     $this->byCssSelector("#sousform-instruction .message .text")->text());
1140     // On se déconnecte
1141     $this->logout();
1142     }
1143 fmichon 4171
1144 nmeucci 4108 /**
1145     * test sur un événement non verrouillable
1146     */
1147     public function test_11_evenement_non_verrouillable(){
1148     //
1149     /* On crée une nouvelle demande initial */
1150     // On se connecte à l'application
1151     $this->login("guichet", "guichet");
1152     // On clique sur le menu "Nouveau Dossier"
1153     $this->byLinkText("Nouveau Dossier")->click();
1154     // On vérifie qu'il n'y ait pas d'erreur
1155     $this->verifynoerrors();
1156     // On vérifie le nom de l'onglet
1157     $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
1158     // On sélectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
1159     $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel("Permis de construire pour une maison individuelle et / ou ses annexes");
1160     // On selectionne le label "Dépôt Initial"
1161     $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
1162     // On clique pour ajouter un pétitionnaire principale
1163     $this->byId("add_petitionnaire_principal")->click();
1164     // On remplit le champ
1165     $this->byId("particulier_nom")->value("DURAND");
1166     // On remplit le champ
1167     $this->byId("particulier_prenom")->value("MICKAEL");
1168     // On remplit le champ
1169     $this->byId("particulier_date_naissance")->value("03/01/1956");
1170     // On remplit le champ
1171     $this->byId("particulier_commune_naissance")->value("LILLE");
1172     // On remplit le champ
1173     $this->byId("particulier_departement_naissance")->value("NORD");
1174     // On remplit le champ
1175     $this->byId("numero")->value("12");
1176     // On remplit le champ
1177     $this->byId("voie")->value("RUE DE LA LOI");
1178     // On remplit le champ
1179     $this->byId("complement")->value("APPT 12");
1180     // On remplit le champ
1181     $this->byId("localite")->value("MARSEILLE");
1182     // On remplit le champ
1183     $this->byId("code_postal")->value("13012");
1184     // On remplit le champ
1185     $this->byId("telephone_fixe")->value("0404040404");
1186     // On clique sur ajouter
1187     $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
1188     // On vérifie qu'il n'y ait pas d'erreur
1189     $this->verifynoerrors();
1190     // On vérifie le message
1191     $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-petitionnaire .message")->text());
1192     // On clique sur le bouton retour
1193     $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
1194     // On vérifie que le text est présent
1195     $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
1196     // On clique sur ajouter
1197     $this->byXPath("//input[@value='Ajouter']")->click();
1198     // On vérifie qu'il n'y ait pas d'erreur
1199     $this->verifynoerrors();
1200     // On vérifie le message
1201     $this->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°[\s\S]*$/",$this->byCssSelector(".message")->text());
1202     // Récupération du numéro de dossier
1203     preg_match('/(PC)[0-9 ]*(P0)/', $this->byCssSelector(".message .text")->text(), $matches);
1204     $dossier_libelle = $matches[0];
1205     $dossier = str_replace(' ', '', $dossier_libelle);
1206     // On clique
1207     $this->byCssSelector("a#link_demande_recepisse")->click();sleep(5);
1208     // Liste les fenêtres
1209     $windows = $this->windowHandles();
1210     // Change la fenêtre
1211     $this->window($windows[1]);
1212     // On vérifie qu'il n'y ait pas d'erreur
1213     $this->verifynoerrors();
1214     // On vérifie que le text est présent
1215     $this->assertRegExp("/^[\s\S]*RECEPISSE DE DEPOT[\s\S]*$/",$this->source());
1216     // On ferme la fenêtre
1217     $this->closeWindow();
1218     // On change le focus de la fenêtre
1219     $this->window($windows[0]);
1220     // On clique sur le bouton retour
1221     $this->byLinkText("Retour")->click();
1222     // On vérifie qu'il n'y ait pas d'erreur
1223     $this->verifynoerrors();
1224     // On se déconnecte
1225     $this->deconnect();
1226     /* Fin */
1227     //
1228     /* On accepte le dossier d'instruction et le finalise */
1229     // On se connecte à l'application
1230     $this->login("instr", "instr");
1231     // On clique sur le menu 'Recherche'
1232     $this->byLinkText("Recherche")->click();
1233     // On recherche le dossier crée
1234     $this->byId("dossier")->value($dossier);
1235     // On clique sur le bouton recherche
1236     $this->byId("adv-search-submit")->click();
1237     // On clique sur le résultat
1238     $this->byLinkText($dossier_libelle)->click();
1239     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1240     $this->verifyNoErrors();
1241     // On clique sur l'onglet "Instruction"
1242     $this->byId("instruction")->click();
1243     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1244     $this->verifyNoErrors();
1245     // On clique sur le lien d'ajout dans le tableau
1246     $this->byCssSelector(".actions-max-1 a")->click();
1247     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1248     $this->verifyNoErrors();
1249     //On choisit l'instruction 'accepter un dossier sans réserve
1250     //[acceptation]'
1251     $this->select($this->byId("evenement"))->selectOptionByValue(81);
1252     // On valide le formulaire
1253     $this->byXPath("//input[@value='Ajouter']")->click();
1254     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1255     $this->verifyNoErrors();
1256     sleep(1);
1257     $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
1258     // On retourne sur le tableau d'instructions
1259     $this->byCssSelector("#sousform-instruction .retour")->click();
1260     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1261     $this->verifyNoErrors();
1262     // On clique sur l'événement d'instruction "accepter un dossier sans réserve"
1263     $this->byLinkText("accepter un dossier sans réserve")->click();
1264     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1265     $this->verifyNoErrors();
1266     // On valide l'instruction (un événement verrouillable ne pourrait pas
1267     // être finalisé)
1268     $this->byId("action-sousform-instruction-finaliser")->click();
1269     // On vérifie le message de validation
1270     $this->assertContains("La finalisation du document s'est effectuée avec succès.",$this->byCssSelector(".message .text")->text());
1271     /* Fin */
1272     }
1273     //
1274     /**
1275     * test que les données du dossier d'autorisation sont recopiés dans les
1276     * champs 'archive_' de l'événement d'instruction de la création du nouveau
1277     * dossier d'instruction
1278     */
1279     public function test_12_recopie_donnees_da_vers_nouveau_di(){
1280     //
1281     //{{{ Ajout de d'un nouveau dossier
1282     // On se connecte à l'application
1283     $this->login("guichet", "guichet");
1284     //On clique sur le menu des instructions
1285     $this->byLinkText("Nouveau Dossier")->click();
1286     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1287     $this->verifyNoErrors();
1288     //On ajoute un nouveau dossier
1289     $dossier = $this->addDossierInstruction( 1, 1);
1290     // On se déconnecte
1291     $this->deconnect();
1292     //}}}
1293     //
1294     //{{{ Clôture du nouveau dossier
1295     // On se connecte à l'application
1296     $this->login("instr", "instr");
1297     //On clique sur le menu "Recherche"
1298     $this->byLinkText("Recherche")->click();
1299     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1300     $this->verifyNoErrors();
1301     // On recherche le dossier crée
1302     $this->byId("dossier")->value(str_replace(' ', '', $dossier));
1303     // On clique sur le bouton recherche
1304     $this->byId("adv-search-submit")->click();
1305     // On clique sur le résultat
1306     $this->byLinkText($dossier)->click();
1307     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1308     $this->verifyNoErrors();
1309     //On clique sur l'onglet "instruction"
1310     $this->byId("instruction")->click();
1311     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1312     $this->verifyNoErrors();
1313     // On ajoute une instruction
1314     $this->byCssSelector("#sousform-instruction .add-16")->click();
1315     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1316     $this->verifyNoErrors();
1317     //On choisit l'instruction 'accepter un dossier sans réserve
1318     //[acceptation]'
1319     $this->select($this->byId("evenement"))->selectOptionByValue(81);
1320     // On clique sur ajouter
1321     $this->byXPath("//input[@value='Ajouter']")->click();
1322     // On vérifie qu'il n'y ait pas d'erreur
1323     $this->verifynoerrors();
1324     // On vérifie le message
1325     $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1326     //On rafraichit la page pour vérifier que le dossier est clôturé
1327     $this->refresh();
1328     $this->assertEquals("Favorable", $this->byId("avis_decision")->text());
1329     // On se déconnecte
1330     $this->deconnect();
1331     //}}}
1332     //
1333     //{{{ Ajout de l'action
1334     // On se connecte à l'application
1335     $this->login("admin", "admin");
1336     //On clique sur le menu "Paramétrage dossiers"
1337     $this->byLinkText("Paramétrage Dossiers")->click();
1338     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1339     $this->verifyNoErrors();
1340     //On clique sur le menu "Action"
1341     $this->byLinkText("Action")->click();
1342     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1343     $this->verifyNoErrors();
1344     //On clique sur le "+" du tableau
1345     $this->byClassName("add-16")->click();
1346     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1347     $this->verifyNoErrors();
1348     //On remplit la règle de calcul de la date de validité
1349     $this->byId("action")->value("test_12_recopie_donnees");
1350     $this->byId("libelle")->value("test_12_recopie_donnees");
1351     $this->byId("regle_date_validite")->value("archive_date_validite+12");
1352     // On clique sur ajouter
1353     $this->byXPath("//input[@value='Ajouter']")->click();
1354     // On vérifie qu'il n'y ait pas d'erreur
1355     $this->verifynoerrors();
1356     // On vérifie le message
1357     $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1358     //}}}
1359     //
1360     //{{{ Ajout de l'événement
1361     //On clique sur le menu "Événement"
1362     $this->byLinkText("Événement")->click();
1363     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1364     $this->verifyNoErrors();
1365     //On clique sur le "+" du tableau
1366     $this->byClassName("add-16")->click();
1367     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1368     $this->verifyNoErrors();
1369     //On remplit l'événement qui va être ajouté avec la nouvelle demande
1370     $this->byId("libelle")->value("test_12_recopie_donnees");
1371     $this->select($this->byName("etats_depuis_lequel_l_evenement_est_disponible[]"))->selectOptionByValue("accepter");
1372     // On sélectionne PCI - P - Initial
1373     $this->select($this->byName("dossier_instruction_type[]"))->selectOptionByValue(1);
1374     $this->select($this->byName("action"))->selectOptionByLabel("test_12_recopie_donnees");
1375     // On clique sur ajouter
1376     $this->byXPath("//input[@value='Ajouter']")->click();
1377     // On vérifie qu'il n'y ait pas d'erreur
1378     $this->verifynoerrors();
1379     // On vérifie le message
1380     $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1381     //}}}
1382     //
1383     //{{{ Ajout du type de dossier d'instruction
1384     //On clique sur le menu "Type DI"
1385     $this->byLinkText("Type DI")->click();
1386     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1387     $this->verifyNoErrors();
1388     //On clique sur le "+" du tableau
1389     $this->byClassName("add-16")->click();
1390     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1391     $this->verifyNoErrors();
1392     //On remplit le type de la demande
1393     $this->byId("code")->value("DT");
1394     $this->byId("libelle")->value("test_12_recopie_donnees");
1395     // On sélectionne PCI (Permis de construire pour une maison individuelle
1396     // et / ou ses annexes)
1397     $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByValue(1);sleep(1);
1398     $this->byId("suffixe")->click();
1399     // On clique sur ajouter
1400     $this->byXPath("//input[@value='Ajouter']")->click();
1401     // On vérifie qu'il n'y ait pas d'erreur
1402     $this->verifynoerrors();
1403     // On vérifie le message
1404     $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1405     //}}}
1406     //
1407     //{{{ Ajout du type de la demande
1408     //On clique sur le menu "Type"
1409     $this->byLinkText("Type")->click();
1410     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1411     $this->verifyNoErrors();
1412     //On clique sur le "+" du tableau
1413     $this->byClassName("add-16")->click();
1414     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1415     $this->verifyNoErrors();
1416     //On remplit le type de la demande
1417     $this->byId("code")->value("test_12_recopie_donnees");
1418     $this->byId("libelle")->value("test_12_recopie_donnees");
1419     // On sélectionne Autorisation ADS
1420     $this->select($this->byId("groupe"))->selectOptionByValue(1);sleep(1);
1421     // On sélectionne PCI (Permis de construire pour une maison individuelle
1422     // et / ou ses annexes)
1423     $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByValue(1);
1424     // On sélectionne Dossier existant
1425     $this->select($this->byId("demande_nature"))->selectOptionByValue(2);
1426     // On sélectionne Accordé
1427     $this->select($this->byName("etats_autorises[]"))->selectOptionByValue('accepter');
1428     $this->select($this->byId("dossier_instruction_type"))->selectOptionByLabel("PCI - test_12_recopie_donnees");
1429     $this->select($this->byId("evenement"))->selectOptionByLabel("test_12_recopie_donnees");
1430     // On clique sur ajouter
1431     $this->byXPath("//input[@value='Ajouter']")->click();
1432     // On vérifie qu'il n'y ait pas d'erreur
1433     $this->verifynoerrors();
1434     // On vérifie le message
1435     $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1436     //On clique sur retour
1437     $this->byClassName("retour")->click();
1438     // On vérifie qu'il n'y ait pas d'erreur
1439     $this->verifynoerrors();
1440     //On saisit le libellé du type de la demande saisit
1441     $this->byName("recherche")->value("test_12_recopie_donnees");
1442     //On valide
1443     $this->byName("s1")->click();
1444     // On vérifie qu'il n'y ait pas d'erreur
1445     $this->verifynoerrors();
1446     //On clique sur le type de la demande
1447     $this->byLinkText("test_12_recopie_donnees")->click();
1448     // On vérifie qu'il n'y ait pas d'erreur
1449     $this->verifynoerrors();
1450     //On récupère l'identifiant du type de la demande
1451     $demande_type = $this->byId("demande_type")->text();
1452     // On se déconnecte
1453     $this->deconnect();
1454     //}}}
1455     //
1456     //{{{ Ajout de d'un nouveau dossier
1457     // On se connecte à l'application
1458     $this->login("guichet", "guichet");
1459     //On clique sur le menu des instructions
1460     $this->byLinkText("Dossier En Cours")->click();
1461     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1462     $this->verifyNoErrors();
1463     //On ajoute un nouveau dossier
1464     $dossier = $this->addDossierInstruction(1, $demande_type, "Test validité", 2, str_replace(" ", "", $dossier));
1465     // On se déconnecte
1466     $this->deconnect();
1467     //}}}
1468     //
1469     //{{{ Vérification de la date de validité
1470     // On se connecte à l'application
1471     $this->login("instr", "instr");
1472     //On clique sur le menu "Recherche"
1473     $this->byLinkText("Recherche")->click();
1474     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1475     $this->verifyNoErrors();
1476     // On recherche le dossier crée
1477     $this->byId("dossier")->value(str_replace(' ', '', $dossier));
1478     // On clique sur le bouton recherche
1479     $this->byId("adv-search-submit")->click();
1480     // On clique sur le résultat
1481     $this->byLinkText($dossier)->click();
1482     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1483     $this->verifyNoErrors();
1484     //On vérifie la date de validité
1485     $date_validite = $this->mois_date(date("Y-m-d"), 12, "+");
1486     $date_validite = date("d/m/Y", strtotime($date_validite));
1487     $this->assertEquals($date_validite, $this->byId("date_validite")->text());
1488     // On se déconnecte
1489     $this->deconnect();
1490     //}}}
1491     }
1492     //
1493     /**
1494     * test de la numérotation des DI successifs
1495     */
1496     function test_13_numerotation_dossier_instruction_successif(){
1497     //
1498     //{{{ Ajout de d'un nouveau dossier d'instruction P0
1499     // On se connecte à l'application
1500     $this->login("guichet", "guichet");
1501     // On clique sur le menu "Nouveau Dossier"
1502     $this->byLinkText("Nouveau Dossier")->click();
1503     // On vérifie qu'il n'y ait pas d'erreur
1504     $this->verifynoerrors();
1505     // On ajoute un nouveau dossier d'instruction
1506     $dossierP0 = str_replace(" ", "", trim($this->addDossierInstruction(1, 1)));
1507     // On se déconnecte
1508     $this->deconnect();
1509     //}}}
1510     //
1511     //{{{ Accord du P0 créé
1512     // On se connecte à l'application
1513     $this->login("instr", "instr");
1514     // On clique sur le menu "Recherche"
1515     $this->byLinkText("Recherche")->click();
1516     // On vérifie qu'il n'y ait pas d'erreur
1517     $this->verifynoerrors();
1518     // On saisit le numéro du dossier d'instruction
1519     $this->byId("dossier")->value($dossierP0);
1520     // On valide la recherche
1521     $this->byId("adv-search-submit")->click();
1522     // On vérifie qu'il n'y ait pas d'erreur
1523     $this->verifynoerrors();
1524     // On clique sur le dossier d'instruction
1525     $this->byId("action-tab-dossier_instruction-left-consulter-".$dossierP0)->click();
1526     // On vérifie qu'il n'y ait pas d'erreur
1527     $this->verifynoerrors();
1528     // On clique sur l'onglet instruction
1529     $this->byId("instruction")->click();
1530     // On vérifie qu'il n'y ait pas d'erreur
1531     $this->verifynoerrors();
1532     // On clique sur le + du tableau
1533     $this->byClassName("add-16")->click();
1534     // On vérifie qu'il n'y ait pas d'erreur
1535     $this->verifynoerrors();
1536     // On choisit l'événement n°81 accepter un dossier sans réserve
1537     $this->select($this->byName("evenement"))->selectOptionByValue(81);
1538     // On clique sur ajouter
1539     $this->byXPath("//input[@value='Ajouter']")->click();
1540     sleep(1);
1541     // On vérifie qu'il n'y ait pas d'erreur
1542     $this->verifynoerrors();
1543     // On vérifie que l'événement d'instruction s'est bien ajouté
1544     $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector("#sousform-instruction .message")->text());
1545     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1546     $this->verifyNoErrors();
1547     // On se déconnecte
1548     $this->deconnect();
1549     //}}}
1550     //
1551     //{{{ Ajout d'un nouveau type de dossier d'instruction
1552     // On se connecte à l'application
1553     $this->login("admin", "admin");
1554     // On clique sur le menu "Paramétrage Dossiers"
1555     $this->byLinkText("Paramétrage Dossiers")->click();
1556     // On vérifie qu'il n'y ait pas d'erreur
1557     $this->verifynoerrors();
1558     // On clique sur le menu "Type DI"
1559     $this->byLinkText("Type DI")->click();
1560     // On vérifie qu'il n'y ait pas d'erreur
1561     $this->verifynoerrors();
1562     // On clique sur le + du tableau
1563     $this->byClassName("add-16")->click();
1564     // On vérifie qu'il n'y ait pas d'erreur
1565     $this->verifynoerrors();
1566     //On saisit les données
1567     $this->byId("code")->value("TN");
1568     $this->byId("libelle")->value("Test numérotation");
1569     $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByValue(1);
1570     $this->byId("suffixe")->click();
1571     // On clique sur ajouter
1572     $this->byXPath("//input[@value='Ajouter']")->click();
1573     // On vérifie qu'il n'y ait pas d'erreur
1574     $this->verifynoerrors();
1575     // On vérifie que le type de dossier d'instruction s'est bien ajouté
1576     $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1577     // On clique sur "Retour"
1578     $this->byClassName("retour")->click();
1579     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1580     $this->verifyNoErrors();
1581     //On saisie le nom due l'événement dans la recherche simple
1582     $this->byName("recherche")->value("Test numérotation");
1583     //On valide la recherche
1584     $this->byName('s1')->submit();
1585     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1586     $this->verifyNoErrors();
1587     //On clique sur l'événement
1588     $this->byLinkText("Test numérotation")->click();
1589     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1590     $this->verifyNoErrors();
1591     //On récupère l'identifiant
1592     $dossier_instruction_type = trim($this->byId("dossier_instruction_type")->text());
1593     //}}}
1594     //
1595     //{{{ Ajout d'un nouveau type de demande
1596     // On clique sur le menu "Type"
1597     $this->byLinkText("Type")->click();
1598     // On vérifie qu'il n'y ait pas d'erreur
1599     $this->verifynoerrors();
1600     // On clique sur le + du tableau
1601     $this->byClassName("add-16")->click();
1602     // On vérifie qu'il n'y ait pas d'erreur
1603     $this->verifynoerrors();
1604     //On saisit les données
1605     $this->byId("code")->value("TN");
1606     $this->byId("libelle")->value("Test numérotation");
1607     $this->select($this->byId("groupe"))->selectOptionByValue(1);
1608     sleep(1);
1609     $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByValue(1);
1610     sleep(1);
1611     $this->select($this->byId("demande_nature"))->selectOptionByValue(2);
1612     sleep(1);
1613     $this->select($this->byName("etats_autorises[]"))->selectOptionByValue('accepter');
1614     sleep(1);
1615     $this->select($this->byId("dossier_instruction_type"))->selectOptionByValue($dossier_instruction_type);
1616     sleep(1);
1617     $this->select($this->byId("evenement"))->selectOptionByValue(1);
1618     // On clique sur ajouter
1619     $this->byXPath("//input[@value='Ajouter']")->click();
1620     // On vérifie qu'il n'y ait pas d'erreur
1621     $this->verifynoerrors();
1622     // On vérifie qu'il n'y ait pas d'erreur
1623     $this->verifynoerrors();
1624     // On vérifie que le type de dossier d'instruction s'est bien ajouté
1625     $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1626     // On clique sur "Retour"
1627     $this->byClassName("retour")->click();
1628     // On vérifie qu'il n'y ait pas d'erreur
1629     $this->verifynoerrors();
1630     // On saisit le libelle du type de la demande nouvellement créée
1631     $this->byClassName("champFormulaire")->value("Test numérotation");
1632     // On valide la recherche
1633     $this->byName("f1")->submit();
1634     //On clique sur le type de la demande
1635     $this->byLinkText("Test numérotation")->click();
1636     // On vérifie qu'il n'y ait pas d'erreur
1637     $this->verifynoerrors();
1638     // On récupère l'identifiant
1639     $idDemandeType = trim($this->byId("demande_type")->text());
1640     // On se déconnecte
1641     $this->deconnect();
1642     //}}}
1643     //
1644     //{{{ Ajout de d'un nouveau dossier d'instruction avec le nouveau type
1645     //de dossier d'instruction
1646     // On se connecte à l'application
1647     $this->login("guichet", "guichet");
1648     // On clique sur le menu "Dossier En Cours"
1649     $this->byLinkText("Dossier En Cours")->click();
1650     // On vérifie qu'il n'y ait pas d'erreur
1651     $this->verifynoerrors();
1652     // On ajoute un nouveau dossier d'instruction
1653     $dossierTN01 = trim($this->addDossierInstruction(1, $idDemandeType, "Test nouveau DI", 3, $dossierP0));
1654     //On vérifie que le numéro du dossier d'instruction est celui attendu
1655     assert(preg_match('/(PC)[0-9 ]*(TN01)/', $dossierTN01) === 1);
1656     // On se déconnecte
1657     $this->deconnect();
1658     //}}}
1659    
1660    
1661     }
1662    
1663     /**
1664     * test de la numérotation des DI successifs
1665     */
1666     function test_14_recalcul_donnees_DI_vers_DA(){
1667     //{{{ Ajout de d'un nouveau dossier
1668     // On se connecte à l'application
1669     $this->login("guichet", "guichet");
1670     //On clique sur le menu des instructions
1671     $this->byLinkText("Nouveau Dossier")->click();
1672     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1673     $this->verifyNoErrors();
1674     //On ajoute un nouveau dossier
1675     $dossier = $this->addDossierInstruction( 1, 1);
1676     // On se déconnecte
1677     $this->deconnect();
1678     //}}}
1679     //
1680     //{{{
1681     // Mise à jour des données techniques
1682     // On se connecte à l'application
1683     $this->login("instr", "instr");
1684     //On clique sur le menu "Recherche"
1685     $this->byLinkText("Recherche")->click();
1686     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1687     $this->verifyNoErrors();
1688     // On recherche le dossier crée
1689     $this->byId("dossier")->value(str_replace(' ', '', $dossier));
1690     // On clique sur le bouton recherche
1691     $this->byId("adv-search-submit")->click();
1692     // On clique sur le résultat
1693     $this->byLinkText($dossier)->click();
1694     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1695     $this->verifyNoErrors();
1696     // Ouverture du formulaire des données techniques
1697     $this->byCssSelector("#formulaire .rediger-16")->click();
1698     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1699     $this->verifyNoErrors();
1700     // Modification des données techniques
1701     $this->byCssSelector("#sousform-donnees_techniques .edit-16")->click();
1702     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1703     $this->verifyNoErrors();
1704     sleep(5);
1705     // On déplie le fieldset Construire
1706     $this->byCssSelector("#fieldset-sousform-donnees_techniques-construire legend")->click();
1707     sleep(5);
1708     // On déplie le fieldset Destinations et surfaces des constructions
1709     $this->byCssSelector("#fieldset-sousform-donnees_techniques-destinations-et-surfaces-des-constructions legend")->click();
1710     sleep(1);
1711     //On remplit des données techniques
1712     $this->byId("su_cstr_shon1")->value("120");
1713     // On clique sur ajouter
1714     $this->byXPath("//input[@value='Modifier']")->click();
1715     sleep(1);
1716     // On vérifie qu'il n'y ait pas d'erreur
1717     $this->verifynoerrors();
1718     // On vérifie le message
1719     $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector("#sousform-donnees_techniques .message")->text());
1720     //On clique sur retour
1721     $this->byCssSelector("#sousform-donnees_techniques .retour")->click();
1722     //}}}
1723     //
1724     //{{{ Clôture du nouveau dossier
1725     //On clique sur le menu "Recherche"
1726     $this->byLinkText("Recherche")->click();
1727     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1728     $this->verifyNoErrors();
1729     // On recherche le dossier crée
1730     $this->byId("dossier")->value(str_replace(' ', '', $dossier));
1731     // On clique sur le bouton recherche
1732     $this->byId("adv-search-submit")->click();
1733     // On clique sur le résultat
1734     $this->byLinkText($dossier)->click();
1735     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1736     $this->verifyNoErrors();
1737     //On clique sur l'onglet "instruction"
1738     $this->byId("instruction")->click();
1739     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1740     $this->verifyNoErrors();
1741     // On ajoute une instruction
1742     $this->byCssSelector("#sousform-instruction .add-16")->click();
1743     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1744     $this->verifyNoErrors();
1745     //On choisit l'instruction 'accepter un dossier sans réserve
1746     //[acceptation]'
1747     $this->select($this->byId("evenement"))->selectOptionByValue(81);
1748     // On clique sur ajouter
1749     $this->byXPath("//input[@value='Ajouter']")->click();
1750     // On vérifie qu'il n'y ait pas d'erreur
1751     $this->verifynoerrors();
1752     // On vérifie le message
1753     $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1754     //On rafraichit la page pour vérifier que le dossier est clôturé
1755     $this->refresh();
1756     $this->assertEquals("Favorable", $this->byId("avis_decision")->text());
1757     //}}}
1758     //
1759     //{{{ Vérification des données techniques dans la visu DA
1760     //On clique sur le menu "Recherche"
1761     $this->byLinkText("Recherche")->click();
1762     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1763     $this->verifyNoErrors();
1764     // On recherche le dossier crée
1765     $this->byId("dossier")->value(str_replace(' ', '', $dossier));
1766     // On clique sur le bouton recherche
1767     $this->byId("adv-search-submit")->click();
1768     // On clique sur le résultat
1769     $this->byLinkText($dossier)->click();
1770     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1771     $this->verifyNoErrors();
1772     //On clique sur l'onglet "DA"
1773     $this->byId("dossier_autorisation")->click();
1774     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1775     $this->verifyNoErrors();
1776     // On ajoute une instruction
1777     $this->byCssSelector("#sousform-dossier_autorisation .consult-16")->click();
1778     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1779     $this->verifyNoErrors();
1780     // Affichage des données techniques
1781     $this->byId("donnees_techniques_da")->click();
1782     sleep(1);
1783     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1784     $this->verifyNoErrors();
1785     // On déplie le fieldset Construire
1786     $this->byCssSelector("#fieldset-sousform-donnees_techniques-construire legend")->click();
1787     sleep(1);
1788     // On déplie le fieldset Destinations et surfaces des constructions
1789     $this->byCssSelector("#fieldset-sousform-donnees_techniques-destinations-et-surfaces-des-constructions legend")->click();
1790     sleep(1);
1791     $this->assertEquals("120", $this->byId("su_cstr_shon1")->text());
1792     //On clique sur retour
1793     $this->byCssSelector("#sousform-donnees_techniques .retour")->click();
1794     // On se déconnecte
1795     $this->deconnect();
1796     //}}}
1797    
1798     // Vérification du calcul de l'état du DA
1799     //{{{ Ajout de d'un nouveau dossier
1800     // On se connecte à l'application
1801     $this->login("guichet", "guichet");
1802     //On clique sur le menu des instructions
1803     $this->byLinkText("Nouveau Dossier")->click();
1804     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1805     $this->verifyNoErrors();
1806     //On ajoute un nouveau dossier
1807     $dossier = $this->addDossierInstruction( 1, 1, "test recalcul état DA");
1808     // On se déconnecte
1809     $this->deconnect();
1810     //}}}
1811     // On se connecte à l'application
1812     $this->login("instr", "instr");
1813     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1814     $this->verifyNoErrors();
1815     // On clique sur le lien "Mes encours" dans le menu
1816     $this->byLinkText("Mes Encours")->click();
1817     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1818     $this->verifyNoErrors();
1819     sleep(1);
1820     //On cherche le dossier d'instruction
1821     $this->byName("recherche")->value(str_replace(" ", "", $dossier));
1822     // On valide la recherche
1823     $this->byName("s1")->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 le dossier dernièrement créé
1827     $this->byLinkText($dossier)->click();
1828     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1829     $this->verifyNoErrors();
1830     $this->verifierEtatDA($dossier,81, "Accordé");
1831     // On se déconnecte
1832     $this->deconnect();
1833     //}}}
1834     //{{{ Ajout de d'un nouveau dossier
1835     // On se connecte à l'application
1836     $this->login("guichet", "guichet");
1837     //On clique sur le menu des instructions
1838     $this->byLinkText("Nouveau Dossier")->click();
1839     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1840     $this->verifyNoErrors();
1841     //On ajoute un nouveau dossier
1842     $dossier = $this->addDossierInstruction( 1, 1, "test recalcul état DA");
1843     // On se déconnecte
1844     $this->deconnect();
1845     //}}}
1846     // On se connecte à l'application
1847     $this->login("instr", "instr");
1848     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1849     $this->verifyNoErrors();
1850     // On clique sur le lien "Mes encours" dans le menu
1851     $this->byLinkText("Mes Encours")->click();
1852     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1853     $this->verifyNoErrors();
1854     sleep(1);
1855     //On cherche le dossier d'instruction
1856     $this->byClassName("champFormulaire")->value(str_replace(" ", "", $dossier));
1857     // On valide la recherche
1858     $this->byId("f1")->submit();
1859     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1860     $this->verifyNoErrors();
1861     // On clique sur le dossier dernièrement créé
1862     $this->byLinkText($dossier)->click();
1863     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1864     $this->verifyNoErrors();
1865     $this->verifierEtatDA($dossier,31, "Refusé");
1866     // On se déconnecte
1867     $this->deconnect();
1868     //}}}
1869     }
1870    
1871     /**
1872     * test d'annulation d'un DA.
1873     */
1874     function test_17_di_annulation() {
1875     // On se connecte en tant que "admin"
1876     $this->login("admin", "admin");
1877     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1878     $this->verifyNoErrors();
1879    
1880     //On clique sur Administration
1881     $this->byLinkText("Paramétrage Dossiers")->click();
1882     // Ajout d'un type de DI ANNULATION
1883     $this->byLinkText("Type DI")->click();
1884     $this->byCssSelector(".add-16")->click();
1885     $this->byId("code")->value('ANNUL');
1886     $this->byId("libelle")->value('Demande d\'annulation');
1887     $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByValue('1');
1888     $this->byId('suffixe')->click();
1889     $this->select($this->byName("mouvement_sitadel"))->selectOptionByValue('SUPPRESSION');
1890     // On clique sur ajouter
1891     $this->byXPath("//input[@value='Ajouter']")->click();
1892     // On vérifie qu'il n'y ait pas d'erreur
1893     $this->verifynoerrors();
1894     // On vérifie que le message de validation est présent
1895     $this->assertContains('Vos modifications ont bien été enregistrées.',
1896     $this->byCssSelector(".message .text")->text());
1897     //On clique sur le bouton retour
1898     $this->byLinkText("Retour")->click();
1899     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1900     $this->verifyNoErrors();
1901     //On saisie le nom due l'événement dans la recherche simple
1902     $this->byClassName("champFormulaire")->value("ANNUL");
1903     //On valide la recherche
1904     $this->byName('s1')->submit();
1905     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1906     $this->verifyNoErrors();
1907     //On clique sur l'événement
1908     $this->byLinkText("ANNUL")->click();
1909     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1910     $this->verifyNoErrors();
1911     // Récupération de l'id du type de DI
1912     $idDIAnnul = $this->byId("dossier_instruction_type")->text();
1913     // Ajout d'un type de demande ANNULATION
1914     $this->byLinkText("Type")->click();
1915     $this->byCssSelector(".add-16")->click();
1916     $this->byId("code")->value('ANNUL');
1917     $this->byId("libelle")->value('Demande d\'annulation');
1918     $this->select($this->byName("groupe"))->selectOptionByValue('1');
1919     $this->select($this->byName("dossier_autorisation_type_detaille"))->selectOptionByValue('1');
1920     $this->select($this->byName("demande_nature"))->selectOptionByValue('2');
1921     $this->select($this->byName("etats_autorises[]"))
1922     ->selectOptionByValue("notifier");
1923     $this->select($this->byName("contraintes"))->selectOptionByValue('avec_recup');
1924     $this->select($this->byName("dossier_instruction_type"))->selectOptionByValue($idDIAnnul);
1925     $this->select($this->byName("evenement"))->selectOptionByValue('25');
1926     // On clique sur ajouter
1927     $this->byXPath("//input[@value='Ajouter']")->click();
1928     // On vérifie qu'il n'y ait pas d'erreur
1929     $this->verifynoerrors();
1930     // On vérifie que le message de validation est présent
1931     $this->assertContains('Vos modifications ont bien été enregistrées.',
1932     $this->byCssSelector(".message .text")->text());
1933     //On clique sur le bouton retour
1934     $this->byLinkText("Retour")->click();
1935     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1936     $this->verifyNoErrors();
1937     //On saisie le nom due l'événement dans la recherche simple
1938     $this->byClassName("champFormulaire")->value("ANNUL");
1939     //On valide la recherche
1940     $this->byName('s1')->submit();
1941     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1942     $this->verifyNoErrors();
1943     //On clique sur l'événement
1944     $this->byLinkText("ANNUL")->click();
1945     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1946     $this->verifyNoErrors();
1947     // Récupération de l'id de la demande
1948     $idDemandeAnnul = $this->byId("demande_type")->text();
1949     // Modification de l'action d'abandon de dossier
1950     $this->byLinkText("Action")->click();
1951     // On vérifie qu'il n'y ait pas d'erreur
1952     $this->verifynoerrors();
1953     // Modification de l'action d'abandon de dossier
1954     $this->byLinkText("abandon")->click();
1955     // Modification de l'action d'abandon de dossier
1956     $this->byCssSelector(".edit-16")->click();
1957     // On vérifie qu'il n'y ait pas d'erreur
1958     $this->verifynoerrors();
1959     $this->byId("regle_avis")->clear();
1960     $this->byId("regle_avis")->value('avis_decision');
1961     $this->byId("regle_date_decision")->clear();
1962     $this->byId("regle_date_decision")->value('date_evenement');
1963     // On clique sur ajouter
1964     $this->byXPath("//input[@value='Modifier']")->click();
1965     // On vérifie qu'il n'y ait pas d'erreur
1966     $this->verifynoerrors();
1967     // On vérifie que le message de validation est présent
1968     $this->assertContains('Vos modifications ont bien été enregistrées.',
1969     $this->byCssSelector(".message .text")->text());
1970     // On se déconnecte
1971     $this->deconnect();
1972     // On se connecte en tant que "admin"
1973     $this->login("guichet", "guichet");
1974     //On clique sur le menu des instructions
1975     $this->byLinkText("Nouveau Dossier")->click();
1976     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1977     $this->verifyNoErrors();
1978     // Création d'un DI
1979     $dossier = $this->addDossierInstruction(1, 1, "test annulation");
1980     // On se déconnecte
1981     $this->deconnect();
1982     // On se connecte en tant que "instr"
1983     $this->login("instr", "instr");
1984     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1985     $this->verifyNoErrors();
1986     // On clique sur le lien "Mes encours" dans le menu
1987     $this->byLinkText("Recherche")->click();
1988     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1989     $this->verifyNoErrors();
1990     $this->byId("dossier")->value(str_replace(" ", "", $dossier));
1991     $this->byName("advanced-search-submit")->click();
1992     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1993     $this->verifyNoErrors();
1994     // On clique sur le dossier dernièrement créé
1995     $this->byLinkText($dossier)->click();
1996     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1997     $this->verifyNoErrors();
1998     // On clique sur l'onglet "Instruction"
1999     $this->byId("dossier_autorisation")->click();
2000     sleep(1);
2001     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2002     $this->verifyNoErrors();
2003     // Verification de l'état du DA correspondant
2004     $this->assertContains('En cours', $this->byCssSelector("#sousform-dossier_autorisation")->text());
2005     // On se déconnecte
2006     $this->deconnect();
2007     // On se connecte en tant que "guichet"
2008     $this->login("guichet", "guichet");
2009     //On clique sur le menu des instructions
2010     $this->byLinkText("Dossier En Cours")->click();
2011     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2012     $this->verifyNoErrors();
2013     // Création d'un DI
2014     $dossier = $this->addDossierInstruction(
2015     1,
2016     $idDemandeAnnul,
2017     "test annulation",
2018     2,
2019     $dossier,
2020     false);
2021     // On se déconnecte
2022     $this->deconnect();
2023     // On se connecte en tant que "instr"
2024     $this->login("instr", "instr");
2025     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2026     $this->verifyNoErrors();
2027     // On clique sur le lien "Mes encours" dans le menu
2028     $this->byLinkText("Recherche")->click();
2029     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2030     $this->verifyNoErrors();
2031     $this->byId("dossier")->value(str_replace(" ", "", $dossier));
2032     $this->byName("advanced-search-submit")->click();
2033     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2034     $this->verifyNoErrors();
2035     // On clique sur le dossier dernièrement créé
2036     $this->byLinkText($dossier)->click();
2037     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2038     $this->verifyNoErrors();
2039     // On clique sur l'onglet "Instruction"
2040     $this->byId("dossier_autorisation")->click();
2041     sleep(1);
2042     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2043     $this->verifyNoErrors();
2044     // Verification de l'état du DA correspondant
2045     $this->assertContains('Abandonné', $this->byCssSelector("#sousform-dossier_autorisation")->text());
2046     //On se déconnecte
2047     $this->logout();
2048     }
2049    
2050     public function test_18_verification_references_cadastrales(){
2051     //{{{ On ajoute un nouveau dossier }}}
2052     // On se connecte à l'application
2053     $this->login("guichet", "guichet");
2054     // On clique sur le menu "Nouveau Dossier"
2055     $this->byLinkText("Nouveau Dossier")->click();
2056     // On vérifie qu'il n'y ait pas d'erreur
2057     $this->verifynoerrors();
2058     // On vérifie le nom de l'onglet
2059     $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
2060     // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
2061     $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel("Permis de construire pour une maison individuelle et / ou ses annexes");
2062     // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
2063     $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
2064     // On clique pour ajouter un pétitionnaire principale
2065     $this->byId("add_petitionnaire_principal")->click();
2066     // On remplit le champ
2067     $this->byId("particulier_nom")->value("DURAND");
2068     // On remplit le champ
2069     $this->byId("particulier_prenom")->value("MICKAEL");
2070     // On clique sur ajouter
2071     $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
2072     // On vérifie qu'il n'y ait pas d'erreur
2073     $this->verifynoerrors();
2074     // On vérifie le message
2075     $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-petitionnaire .message")->text());
2076     // On clique sur le bouton retour
2077     $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
2078     // On vérifie que le text est présent
2079     $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
2080     // On clique sur ajouter
2081     $this->byXPath("//input[@value='Ajouter']")->click();
2082     // On vérifie qu'il n'y ait pas d'erreur
2083     $this->verifynoerrors();
2084     // On vérifie le message
2085     $this->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°[\s\S]*$/",$this->byCssSelector(".message")->text());
2086     // Récupération du numéro de dossier
2087     preg_match('/(PC)[0-9 ]*(P0)/', $this->byCssSelector(".message .text")->text(), $dossier);
2088     $dossier_libelle = $dossier[0];
2089     $dossier = str_replace(' ', '', $dossier_libelle);
2090     //On se déconnecte
2091     $this->deconnect();
2092     //{{{ On modifie les références cadastrales }}}
2093     // On se connecte en tant que "instr"
2094     $this->login("instr", "instr");
2095     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2096     $this->verifyNoErrors();
2097     // On clique sur le lien "Mes encours" dans le menu
2098     $this->byLinkText("Recherche")->click();
2099     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2100     $this->verifyNoErrors();
2101     $this->byId("dossier")->value($dossier);
2102     $this->byName("advanced-search-submit")->click();
2103     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2104     $this->verifyNoErrors();
2105     // On clique sur le dossier dernièrement créé
2106     $this->byLinkText($dossier_libelle)->click();
2107     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2108     $this->verifyNoErrors();
2109     //On clique sur Modifier
2110     $this->byClassName("edit-16")->click();
2111     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2112     $this->verifyNoErrors();
2113     // On modifie les références cadastrales
2114    
2115     //On déplie le fieldset
2116     $this->byCssSelector("#fieldset-form-dossier_instruction-localisation-du-terrain legend")->click();
2117     sleep(1);
2118     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2119     $this->verifyNoErrors();
2120     //On saisit les références cadastrale
2121     $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(1)")->value("001");
2122     $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(2)")->value("DC");
2123     // On valide le formulaire
2124     $this->byXPath("//input[@value='Modifier']")->click();
2125     //Un alert javascript doit apparaître, on vérifie le message
2126     $this->assertEquals("Les références cadastrales saisies sont incorrectes. Veuillez les corriger.", $this->alertText());
2127     // On valide l'alert
2128     $this->acceptAlert();sleep(1);
2129     //On ajoute la référence
2130     $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(3)")->value("0015");
2131     //On valide le formulaire
2132     $this->byXPath("//input[@value='Modifier']")->click();
2133     }
2134    
2135     /**
2136     * Ajout d'un dossier d'instruction par le guichet unique
2137     *
2138     * @param int $dossier_autorisation_type_detaille L'identifiant du type détaillé
2139     * de dossier d'autorisation
2140     * @param int $demande_type L'identifiant du type de la demande
2141     * @param int $type Type de la demande : nouveau dossier ou dossier existant
2142     * @return le numéro de dossier d'instruction qui vient d'être créé
2143     */
2144     public function addDossierInstruction($dossier_autorisation_type_detaille,
2145     $demande_type, $nom_petit = "test recopie", $type = 1, $dossier = "",
2146     $petit = true){
2147    
2148     if ($type===1){
2149     //On choisit le type détaillé de dossier d'autorisation
2150     $this->select($this->byName("dossier_autorisation_type_detaille"))->selectOptionByValue($dossier_autorisation_type_detaille);
2151     }
2152     else {
2153     sleep(5);
2154     // On remplit le champ de recherche simple
2155     $this->byCssSelector("input[name='recherche']")->value(str_replace(' ', '', $dossier));
2156     // On clique sur le bouton recherche
2157     $this->byCssSelector(".ui-button")->click();sleep(1);
2158     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2159     $this->verifyNoErrors();
2160     // On clique sur le résultat
2161     $this->byId("action-tab-demande_dossier_encours-left-consulter-".str_replace(' ', '', $dossier))->click();
2162     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2163     $this->verifyNoErrors();
2164     }
2165     //On choisit le type de demande
2166     $this->select($this->byName("demande_type"))->selectOptionByValue($demande_type);
2167     if($petit) {
2168     //On clique sur "Saisir le pétitionnaire principal"
2169     $this->byId("add_petitionnaire_principal")->click();
2170     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2171     $this->verifyNoErrors();
2172     //On saisie le nom du pétitionnaire principal
2173     $this->byId("particulier_nom")->value($nom_petit);
2174     // On clique sur ajouter
2175     $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
2176     // On vérifie qu'il n'y ait pas d'erreur
2177     $this->verifynoerrors();
2178     //On vérifie que le pétitionnaire s'est bien ajouté
2179     // On vérifie le message
2180     $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector("#sousform-petitionnaire .message")->text());
2181     // On clique sur le bouton retour
2182     $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
2183     // On vérifie que le text est présent
2184     $this->assertContains($nom_petit,$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
2185     }
2186     // On clique sur ajouter
2187     $this->byXPath("//input[@value='Ajouter']")->click();
2188     // On vérifie qu'il n'y ait pas d'erreur
2189     $this->verifynoerrors();
2190     // On vérifie le message
2191     $this->assertContains("Création du dossier",$this->byCssSelector(".message")->text());
2192     //On récupère le numéro de dossier d'instruction créé
2193     if ($type===1){
2194     preg_match('/(PC|AT)[0-9 ]*(P0)/', $this->byCssSelector("#tabs-1 .message")->text(), $dossier);
2195     }
2196     elseif ($type===2){
2197     preg_match('/(PC|AT)[0-9 ]*[A-Z]*(0)[1-9]{1}/', $this->byCssSelector("#tabs-1 .message")->text(), $dossier);
2198     }
2199     else{
2200     preg_match('/(PC|AT)[0-9 ]*[A-Z]*(0)[1-9]{1}/', $this->byCssSelector("#tabs-1 .message")->text(), $dossier);
2201     }
2202     return $dossier[0];
2203     }
2204    
2205     /*
2206     * Ajoute un événement
2207     * @param $libelle le libelle de l'événement
2208     *
2209     * @return l'identifiant de l'événement
2210     */
2211     private function addEvenement($libelle){
2212    
2213     //On clique sur le + du tableau
2214     $this->byClassName("add-16")->click();
2215     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2216     $this->verifyNoErrors();
2217     //On remplit les champs
2218     $this->byId("libelle")->value($libelle);
2219     $this->select($this->byName("etats_depuis_lequel_l_evenement_est_disponible[]"))
2220     ->selectOptionByValue("notifier");
2221     $this->select($this->byName("dossier_instruction_type[]"))
2222     ->selectOptionByValue("1");
2223     //On valide le formulaire
2224     $this->byName('f1')->submit();
2225     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2226     $this->verifyNoErrors();
2227     // On vérifie que le message de validation est présent
2228     $this->assertContains('Vos modifications ont bien été enregistrées.', $this->byCssSelector(".message .text")->text());
2229     //On clique sur le bouton retour
2230     $this->byLinkText("Retour")->click();
2231     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2232     $this->verifyNoErrors();
2233     //On saisie le nom due l'événement dans la recherche simple
2234     $this->byClassName("champFormulaire")->value($libelle);
2235     //On valide la recherche
2236     $this->byName('s1')->submit();
2237     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2238     $this->verifyNoErrors();
2239     //On clique sur l'événement
2240     $this->byLinkText($libelle)->click();
2241     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2242     $this->verifyNoErrors();
2243     //On récupère l'identifiant
2244     $evenementId = trim($this->byId("evenement")->text());
2245     //On clique sur le bouton Retour
2246     $this->byLinkText("Retour")->click();
2247     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2248     $this->verifyNoErrors();
2249     //On retourne l'identifiant
2250     return $evenementId;
2251     }
2252    
2253     /*
2254     * Ajoute une instruction
2255     * @param int $service l'identifiant du service
2256     */
2257 fmichon 4708 private function addInstruction($evenement){
2258 nmeucci 4108
2259     //On clique sur le + du tableau
2260     $this->byClassName("add-16")->click();
2261     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2262     $this->verifyNoErrors();
2263     //On choisit l'événement
2264     $this->select($this->byId("evenement"))->selectOptionByValue($evenement);
2265     //On valide le formulaire
2266     $this->byName("f2")->submit();
2267     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2268     $this->verifyNoErrors();
2269     // On vérifie que le message de validation est présent
2270     $this->assertContains('Vos modifications ont bien été enregistrées.', $this->byCssSelector("#sousform-instruction .message .text")->text());
2271     //On clique sur le bouton retour
2272     $this->byLinkText("Retour")->click();
2273     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2274     $this->verifyNoErrors();
2275     }
2276    
2277     /**
2278     * Permet de vérifier l'état d'un DA en fonction de l'état de ses DI.
2279     * @param string $dossier numéro de dossier
2280     * @param integer $event numéro d'événement
2281     * @param string $etat état du DA
2282     */
2283     private function verifierEtatDA($dossier, $event, $etat) {
2284     // On clique sur l'onglet "DA"
2285     $this->byId("dossier_autorisation")->click();
2286     sleep(1);
2287     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2288     $this->verifyNoErrors();
2289     $this->assertContains('En cours', $this->byCssSelector("#sousform-dossier_autorisation")->text());
2290     // retour sur l'ajout d'événement
2291     $this->byId("instruction")->click();
2292     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2293     $this->verifyNoErrors();
2294 fmichon 4708 $this->addInstruction($event);
2295 nmeucci 4108 // On clique sur l'onglet "DA"
2296     $this->byId("dossier_autorisation")->click();
2297     sleep(1);
2298     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2299     $this->verifyNoErrors();
2300     $this->assertContains($etat, $this->byCssSelector("#sousform-dossier_autorisation")->text());
2301     }
2302    
2303     /**
2304     * test du lien automatique entre choix autorité compétente dans DI et
2305 jymadier 4330 * événement d'instruction à créer
2306 nmeucci 4108 */
2307     // Fonction privé
2308     private function modification_autorite_competente($utilisateur) {
2309     // On se connecte à l'application
2310     $this->login($utilisateur["login"], $utilisateur["mdp"]);
2311     // Ouvre le menu
2312     $this->openMenu("Instruction", $utilisateur);
2313     // On clique sur le lien "Mes encours" dans le menu
2314     $this->byLinkText("Recherche")->click();
2315     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2316     $this->verifyNoErrors();
2317     // On clique sur le lien "AZ0130551200001P0" dans le tableau
2318     $this->byLinkText("AZ 013055 12 00001P0")->click();
2319     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2320     $this->verifyNoErrors();
2321     // On clique sur l'onglet "Instruction"
2322     $this->byId("instruction")->click();
2323     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2324     $this->verifyNoErrors();
2325     // On clique sur le bouton d'ajout de lots
2326     $this->byXPath("//div[@id='sousform-instruction']/table/thead/tr/th/a/span")->click();
2327     // Vérification des champs obligatoires
2328     $this->byXPath("//input[@value='Ajouter']")->click();
2329     sleep(1);
2330     //On choisi un événement
2331     $this->select($this->byId("evenement"))->selectOptionByValue("94");
2332     // Validation du formulaire
2333     $this->byXPath("//input[@value='Ajouter']")->click();
2334     sleep(1);
2335     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2336     $this->verifyNoErrors();
2337     $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
2338     $this->byCssSelector("form[name=\"f2\"] > a.retour")->click();
2339     // Retour à l'onglet principal
2340     $this->byId("main")->click();
2341     $this->refresh();
2342     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2343     $this->verifyNoErrors();
2344     // On verifie que l'autorité compétente à changée.
2345     $this->assertRegExp('/.*Commune pour état*/', $this->byCssSelector("#tabs-1 #autorite_competente")->text());
2346     // On se déconnecte
2347     $this->deconnect();
2348     // On se connecte en tant que "admin"
2349     $this->login("admin", "admin");
2350     sleep(1);
2351     $this->byLinkText("Instruction")->click();
2352     // On clique sur le lien "Recherche" dans le menu
2353     $this->byLinkText("Recherche")->click();
2354     // On clique sur le lien "AZ0130551200001P0" dans le tableau
2355     $this->byLinkText("AZ 013055 12 00001P0")->click();
2356     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2357     $this->verifyNoErrors();
2358     // On verifie que l'autorité compétente à changée
2359     $this->assertEquals('Commune pour état', $this->byCssSelector("#tabs-1 #autorite_competente")->text());
2360     // On clique sur l'onglet "Instruction"
2361     $this->byId("instruction")->click();
2362     $this->byLinkText("Changer l'autorité compétente 'commune état'")->click();
2363     sleep(1);
2364     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2365     $this->verifyNoErrors();
2366     // On supprime l'element et on verifie le retour de l'autorité "commune"
2367     $this->byId("action-sousform-instruction-supprimer")->click();
2368     // On valide le formulaire
2369     $this->byXPath("//input[@value='Supprimer']")->click();sleep(1);
2370     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2371     $this->verifyNoErrors();
2372     // On clique sur le bouton retour
2373     $this->byLinkText("Retour")->click();
2374     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2375     $this->verifyNoErrors();
2376     // On vérifie que l'événement d'instruction n'est plus dans le tableau
2377     $this->assertNotContains("Changer l'autorité compétente 'commune état'", $this->byId("sousform-instruction")->text());
2378     // Retour à l'onglet principal
2379     $this->byId("main")->click();
2380     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2381     $this->verifyNoErrors();
2382     // On rafraîchit la page
2383     $this->refresh();
2384     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2385     $this->verifyNoErrors();
2386     // On verifie que l'autorité compétente à changée.
2387     $this->assertEquals('Commune', $this->byCssSelector("#tabs-1 #autorite_competente")->text());
2388     // On se déconnecte
2389     $this->deconnect();
2390     }
2391    
2392     /**
2393     * Ce test vise uniquement à vérifier que les écrans correspondant à chaque
2394     * entrée de menu ne génère pas une erreur de base de données
2395     */
2396     // Fonction privé
2397     private function ouvertureMenu($utilisateur) {
2398     // On se connecte
2399     $this->login($utilisateur["login"], $utilisateur["mdp"]);
2400     // Ouvre le menu
2401     $this->openMenu("Instruction", $utilisateur);
2402     // On vérifie le menu ""
2403     $this->byLinkText("Mes Encours")->click();
2404     $this->assertContains("Instruction > Dossiers D'instruction",
2405     $this->byId("title")->text());
2406     $this->verifyNoErrors();
2407     // On vérifie le menu ""
2408     $this->byLinkText("Tous Les Encours")->click();
2409     $this->assertContains("Instruction > Dossiers D'instruction",
2410     $this->byId("title")->text());
2411     $this->verifyNoErrors();
2412     // On vérifie le menu ""
2413     $this->byLinkText("Mes Clôturés")->click();
2414     $this->assertContains("Instruction > Dossiers D'instruction",
2415     $this->byId("title")->text());
2416     $this->verifyNoErrors();
2417     // On vérifie le menu ""
2418     $this->byLinkText("Tous Les Clôturés")->click();
2419     $this->assertContains("Instruction > Dossiers D'instruction",
2420     $this->byId("title")->text());
2421     $this->verifyNoErrors();
2422     // On vérifie le menu ""
2423     $this->byLinkText("Recherche")->click();
2424     $this->assertContains("Instruction > Dossiers D'instruction",
2425     $this->byId("title")->text());
2426     $this->verifyNoErrors();
2427     // On vérifie le menu ""
2428     $this->byLinkText("Dossiers À Qualifier")->click();
2429     $this->assertContains("Instruction > Qualification > Dossiers À Qualifier",
2430     $this->byId("title")->text());
2431     $this->verifyNoErrors();
2432     // On vérifie le menu ""
2433     $this->byLinkText("Architecte Fréquent")->click();
2434     $this->assertContains("Instruction > Qualification > Architecte Fréquent",
2435     $this->byId("title")->text());
2436     $this->verifyNoErrors();
2437     // On vérifie le menu ""
2438     $this->byLinkText("Mes Retours")->click();
2439     $this->assertContains("Instruction > Consultations > Mes Retours",
2440     $this->byId("title")->text());
2441     $this->verifyNoErrors();
2442     // On vérifie le menu ""
2443     $this->byLinkText("Tous Les Retours")->click();
2444     $this->assertContains("Instruction > Consultations > Tous Les Retours",
2445     $this->byId("title")->text());
2446     $this->verifyNoErrors();
2447     // On vérifie le menu ""
2448     $this->byLinkText("Mes Messages")->click();
2449     $this->assertContains("Instruction > Messages > Mes Messages",
2450     $this->byId("title")->text());
2451     $this->verifyNoErrors();
2452     // On vérifie le menu ""
2453     $this->byLinkText("Tous Les Messages")->click();
2454     $this->assertContains("Instruction > Messages > Tous Les Messages",
2455     $this->byId("title")->text());
2456     $this->verifyNoErrors();
2457     // On vérifie le menu ""
2458     $this->byCssSelector("a.commission_mes_retours-16")->click();
2459     $this->assertContains("Instruction > Commissions > Mes Retours",
2460     $this->byId("title")->text());
2461     $this->verifyNoErrors();
2462     // On vérifie le menu ""
2463     $this->byCssSelector("a.commission_tous_retours-16")->click();
2464     $this->assertContains("Instruction > Commissions > Tous Les Retours",
2465     $this->byId("title")->text());
2466     $this->verifyNoErrors();
2467     // On se déconnecte
2468     $this->deconnect();
2469     }
2470     }
2471    
2472     ?>

Properties

Name Value
svn:executable *

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26