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

Contents of /trunk/tests/testInstruction.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2936 - (show annotations)
Tue Apr 15 10:35:09 2014 UTC (10 years, 9 months ago) by nhaye
File size: 142147 byte(s)
Correction du test instruction

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

Properties

Name Value
svn:keywords Id

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26