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

Contents of /trunk/tests/testInstruction.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3360 - (show annotations)
Thu Mar 26 16:36:15 2015 UTC (9 years, 10 months ago) by vpihour
File size: 157275 byte(s)
Correction des tests fonctionnels

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 test_01_OuvertureMenu() {
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 "guichet"
741 $this->login("guichet", "guichet");
742 // On clique sur le sous-menu "Nouveau Dossier"
743 $this->byLinkText("Nouveau Dossier")->click();
744 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
745 $this->verifyNoErrors();
746 $this->select($this->byName("dossier_autorisation_type_detaille"))->selectOptionByValue("1");
747 $dossier = $this->addDossierInstruction(1, 1, "Test cerfa");
748 // On se déconnecte
749 $this->deconnect();
750 // On se connecte en tant que "instr"
751 $this->login("admin", "admin");
752 sleep(1);
753 // Ouverture du menu de paramétrage des dossiers
754 $this->byLinkText("Paramétrage Dossiers")->click();
755 // Ouverture du menu des cerfa
756 $this->byLinkText("Cerfa")->click();
757 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
758 $this->verifyNoErrors();
759 // Ouverture d'un cerfa
760 $this->byLinkText("cerfa de test n°1")->click();
761 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
762 $this->verifyNoErrors();
763 // Modification du cerfa affiché
764 $this->byXPath("//div[@id='portlet-actions']/ul/li/a/span")->click();
765 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
766 $this->verifyNoErrors();
767 // On modifie la durée de validité
768 $this->byId("om_validite_fin")->clear();
769 $this->byId("om_validite_fin")->value("31/12/2013");
770 // On valide le formulaire
771 $this->byXPath("//input[@value='Modifier']")->click();
772 // On vérifie le message de validation
773 $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text());
774 // On se déconnecte
775 $this->deconnect();
776 // On verifie que les données techniques sont toujours disponibles
777 // On se connecte en tant que "instr"
778 $this->login("instr", "instr");
779 // On clique sur le lien "Mes encours" dans le menu
780 $this->byLinkText("Mes Encours")->click();
781 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
782 $this->verifyNoErrors();
783 // On clique sur le lien "PC 013055 12 00002P0" dans le tableau
784 $this->byLinkText($dossier)->click();
785 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
786 $this->verifyNoErrors();
787 // On click sur le lien "Données techniques"
788 $this->byId("action-form-dossier_instruction_mes_encours-donnees_techniques")->click();
789 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
790 $this->verifyNoErrors();
791 sleep(1);
792 // Vérification des fieldset
793 $this->assertContains("Aménager", $this->byCssSelector("#sousform-donnees_techniques #form-content")->text());
794 $this->assertContains("Construire", $this->byCssSelector("#sousform-donnees_techniques #form-content")->text());
795 $this->assertContains("Démolir", $this->byCssSelector("#sousform-donnees_techniques #form-content")->text());
796 $this->byCssSelector(".ui-dialog-titlebar-close")->click();
797 // On se déconnecte
798 $this->deconnect();
799 // On se connecte en tant que "admin"
800 $this->login("admin", "admin");
801 sleep(1);
802 // Ouverture du menu de paramétrage des dossiers
803 $this->byLinkText("Paramétrage Dossiers")->click();
804 // Ouverture du menu des cerfa
805 $this->byLinkText("Cerfa")->click();
806 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
807 $this->verifyNoErrors();
808 //On clique sur le "+" du tableau
809 $this->byClassName("add-16")->click();
810 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
811 $this->verifyNoErrors();
812 $this->byId("libelle")->value("test cerfa 2");
813 $this->byId("code")->value("cerfa 2");
814 $this->byId("om_validite_debut")->value("01/04/2014");
815 $this->byId("om_validite_fin")->value("01/04/2018");
816 // Ajout de champs au formulaire des données techniques
817 $this->byXPath("//div[@id='form-content']/div[2]/fieldset/legend")->click();
818 $this->byId("terr_juri_titul")->click();
819 $this->byId("terr_juri_lot")->click();
820 $this->byId("terr_juri_zac")->click();
821 $this->byId("terr_juri_afu")->click();
822 $this->byId("terr_juri_pup")->click();
823 $this->byId("terr_juri_oin")->click();
824 $this->byId("terr_juri_desc")->click();
825 // Validation du formulaire
826 $this->byXPath("//input[@value='Ajouter']")->click();
827 // Vérification des erreurs
828 $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector(".message .text")->text());
829 $this->byLinkText("Retour")->click();
830 // Ouverture du menu des DATD
831 $this->byLinkText("Type DA Détaillé")->click();
832 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
833 $this->verifyNoErrors();
834 // Ouverture du PCI
835 $this->byLinkText("PCI")->click();
836 // Modification du DATD affiché
837 $this->byXPath("//div[@id='portlet-actions']/ul/li/a/span")->click();
838 $this->select($this->byId("cerfa"))->clearSelectedOptions();
839 $this->select($this->byName("cerfa"))->selectOptionByLabel("test cerfa 2");
840 // On valide le formulaire
841 $this->byXPath("//input[@value='Modifier']")->click();
842 // On vérifie le message de validation
843 $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text());
844 // On clique sur "Retour"
845 $this->byLinkText("Retour")->click();
846 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
847 $this->verifyNoErrors();
848 // On clique sur "Retour"
849 $this->byLinkText("Retour")->click();
850 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
851 $this->verifyNoErrors();
852 // Ouverture du PCI
853 $this->byLinkText("AZ")->click();
854 // Modification du DATD affiché
855 $this->byXPath("//div[@id='portlet-actions']/ul/li/a/span")->click();
856 $this->select($this->byName("cerfa"))->selectOptionByValue("");
857 // On valide le formulaire
858 $this->byXPath("//input[@value='Modifier']")->click();
859 // On vérifie le message de validation
860 $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text());
861 // On clique sur "Retour"
862 $this->byLinkText("Retour")->click();
863 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
864 $this->verifyNoErrors();
865 // On se déconnecte
866 $this->deconnect();
867 // On verifie que les données techniques sont toujours disponibles
868 // On se connecte en tant que "instr"
869 $this->login("instr", "instr");
870 // On clique sur le lien "Mes encours" dans le menu
871 $this->byLinkText("Mes Encours")->click();
872 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
873 $this->verifyNoErrors();
874 // On clique sur le lien "AZ0130551200001P0" dans le tableau
875 $this->byLinkText($dossier)->click();
876 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
877 $this->verifyNoErrors();
878 // On click sur le lien "Données techniques"
879 $this->byXPath("//div[@id='portlet-actions']/ul/li[2]/a/span")->click();
880 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
881 $this->verifyNoErrors();
882 // Vérification des fieldset
883 $this->assertContains("Aménager", $this->byCssSelector("#sousform-donnees_techniques #form-content")->text());
884 $this->assertContains("Construire", $this->byCssSelector("#sousform-donnees_techniques #form-content")->text());
885 $this->assertContains("Démolir", $this->byCssSelector("#sousform-donnees_techniques #form-content")->text());
886 $this->byCssSelector(".ui-dialog-titlebar-close")->click();
887 // On se déconnecte
888 $this->deconnect();
889 // On se connecte en tant que "instr"
890 $this->login("guichet", "guichet");
891 /** On instancie une nouvelle demande initial PCI **/
892 // On clique sur le menu "Guichet Unique"
893 $this->byLinkText("Guichet Unique")->click();
894 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
895 $this->verifyNoErrors();
896 // On clique sur le sous-menu "Nouveau Dossier"
897 $this->byLinkText("Nouveau Dossier")->click();
898 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
899 $this->verifyNoErrors();
900 $this->select($this->byName("dossier_autorisation_type_detaille"))->selectOptionByValue("1");
901 $dossier = $this->addDossierInstruction(1, 1, "Test cerfa");
902 // On se déconnecte
903 $this->deconnect();
904 // On se connecte en tant que "instr"
905 $this->login("instr", "instr");
906 // On clique sur le lien "Mes encours" dans le menu
907 $this->byLinkText("Mes Encours")->click();
908 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
909 $this->verifyNoErrors();
910 //On cherche le service
911 $this->byName("recherche")->value(str_replace(" ","",$dossier));
912 //On valide
913 $this->byName("s1")->click();
914 // On clique sur le lien "AZ0130551200001P0" dans le tableau
915 $this->byLinkText($dossier)->click();
916 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
917 $this->verifyNoErrors();
918 // On click sur le lien "Données techniques"
919 $this->byXPath("//div[@id='portlet-actions']/ul/li[2]/a/span")->click();
920 sleep(1);
921 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
922 $this->verifyNoErrors();
923 $this->assertRegExp('/^[\s\S]*Terrain[\s\S]*$/', $this->byCssSelector("#sousform-donnees_techniques #form-content")->text());
924 $this->byCssSelector(".ui-dialog-titlebar-close")->click();
925 // On se déconnecte
926 $this->deconnect();
927 // On se connecte en tant que "instr"
928 $this->login("admin", "admin");
929 sleep(1);
930 // Ouverture du menu de paramétrage des dossiers
931 $this->byLinkText("Paramétrage Dossiers")->click();
932 // Ouverture du menu des cerfa
933 $this->byLinkText("Cerfa")->click();
934 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
935 $this->verifyNoErrors();
936 // Afficher les éléments expirés
937 $this->byLinkText("Afficher les éléments expirés")->click();
938 sleep(0.5);
939 // Ouverture d'un cerfa
940 $this->byLinkText("cerfa de test n°1")->click();
941 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
942 $this->verifyNoErrors();
943 // Modification du cerfa affiché
944 $this->byXPath("//div[@id='portlet-actions']/ul/li/a/span")->click();
945 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
946 $this->verifyNoErrors();
947 // On modifie la durée de validité
948 $this->byId("om_validite_fin")->clear();
949 $this->byId("om_validite_fin")->value("31/12/2018");
950 // On valide le formulaire
951 $this->byXPath("//input[@value='Modifier']")->click();
952 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
953 $this->verifyNoErrors();
954 // Ouverture du menu des DATD
955 $this->byLinkText("Type DA Détaillé")->click();
956 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
957 $this->verifyNoErrors();
958 // Ouverture du PCI
959 $this->byLinkText("PCI")->click();
960 // Modification du DATD affiché
961 $this->byXPath("//div[@id='portlet-actions']/ul/li/a/span")->click();
962 $this->select($this->byId("cerfa"))->clearSelectedOptions();
963 $this->select($this->byName("cerfa"))->selectOptionByLabel("cerfa de test n°1");
964 // On valide le formulaire
965 $this->byXPath("//input[@value='Modifier']")->click();
966 // On vérifie le message de validation
967 $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text());
968 // On clique sur "Retour"
969 $this->byLinkText("Retour")->click();
970 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
971 $this->verifyNoErrors();
972 // On clique sur "Retour"
973 $this->byLinkText("Retour")->click();
974 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
975 $this->verifyNoErrors();
976 // Ouverture du PCI
977 $this->byLinkText("AZ")->click();
978 // Modification du DATD affiché
979 $this->byXPath("//div[@id='portlet-actions']/ul/li/a/span")->click();
980 $this->select($this->byName("cerfa"))->selectOptionByLabel("cerfa de test n°1");
981 // On valide le formulaire
982 $this->byXPath("//input[@value='Modifier']")->click();
983 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
984 $this->verifyNoErrors();
985 // On se déconnecte
986 $this->logout();
987 }
988 //
989 /**
990 * test un événement d'instruction qui a un événement "retour"
991 */
992 public function test_08_evenement_instruction_retour() {
993 //
994 // On se connecte à l'application en tant qu'administrateur
995 $this->login("admin", "admin");
996 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
997 $this->verifyNoErrors();
998 //
999 /** On ajoute une action "retour signature" **/
1000 // On clique sur le menu "Paramétrage Dossiers"
1001 $this->byLinkText("Paramétrage Dossiers")->click();
1002 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1003 $this->verifyNoErrors();
1004 // On clique sur le sous-menu "Action"
1005 $this->byLinkText("Action")->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 bouton "ajouter"
1009 $this->byId("action-tab-action-corner-ajouter")->click();
1010 // On remplis les champs
1011 $this->byId("action")->value("retour signature");
1012 $this->byId("libelle")->value("retour signature");
1013 $this->byId("regle_etat")->value("etat");
1014 $this->byId("regle_date_validite")->value("date_retour_signature + duree_validite");
1015 // On valide le formulaire
1016 $this->byXPath("//input[@value='Ajouter']")->click();
1017 // On vérifie le message de validation
1018 $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text());
1019 /** Fin **/
1020 //
1021 /** On ajoute un événement "retour signature" **/
1022 // On clique sur le sous-menu "Événement"
1023 $this->byLinkText("Événement")->click();
1024 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1025 $this->verifyNoErrors();
1026 // On clique sur le bouton "ajouter"
1027 $this->byId("action-tab-evenement-corner-ajouter")->click();
1028 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1029 $this->verifyNoErrors();
1030 // On remplis les champs
1031 $this->byId("libelle")->value("retour signature");
1032 $this->byId("retour")->click();
1033 $this->select($this->byName("etats_depuis_lequel_l_evenement_est_disponible[]"))->clearSelectedOptions();;
1034 $this->select($this->byName("etats_depuis_lequel_l_evenement_est_disponible[]"))->selectOptionByLabel("dossier accepter");
1035 $this->select($this->byName("dossier_instruction_type[]"))->clearSelectedOptions();
1036 $this->select($this->byName("dossier_instruction_type[]"))->selectOptionByLabel("PCI - P - Initial");
1037 $this->select($this->byId("action"))->selectOptionByLabel("retour signature");
1038 // On valide le formulaire
1039 $this->byXPath("//input[@value='Ajouter']")->click();
1040 // On vérifie le message de validation
1041 $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text());
1042 // On clique sur "Retour"
1043 $this->byLinkText("Retour")->click();
1044 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1045 $this->verifyNoErrors();
1046 // On recherche l'événement "accepter un dossier sans réserve"
1047 $this->byCssSelector("input[name='recherche']")->value('accepter un dossier sans réserve');
1048 // On clique sur le bouton recherche
1049 $this->byCssSelector(".ui-button")->click();
1050 // On clique sur le résultat
1051 $this->byLinkText("accepter un dossier sans réserve")->click();
1052 // On clique sur le bouton "Modifier"
1053 $this->byId('action-form-evenement-modifier')->click();
1054 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1055 $this->verifyNoErrors();
1056 // On sélectionne l'événement "retour" dans "evenement_retour_signature"
1057 $this->select($this->byId("evenement_retour_signature"))->selectOptionByLabel("retour signature");
1058 // On valide le formulaire
1059 $this->byXPath("//input[@value='Modifier']")->click();
1060 // On vérifie le message de validation
1061 $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text());
1062 /** Fin **/
1063 //
1064 /** On ajoute une durée de validité au type de DA PCI **/
1065 // On clique sur le sous-menu "Type DA Détaillé"
1066 $this->byLinkText("Type DA Détaillé")->click();
1067 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1068 $this->verifyNoErrors();
1069 // On clique sur le PCI
1070 $this->byLinkText("PCI")->click();
1071 // On clique sur le bouton "modifier"
1072 $this->byId("action-form-dossier_autorisation_type_detaille-modifier")->click();
1073 // On modifie la durée de validité
1074 $this->byId("duree_validite_parametrage")->clear();
1075 $this->byId("duree_validite_parametrage")->value("5");
1076 // On valide le formulaire
1077 $this->byXPath("//input[@value='Modifier']")->click();
1078 // On vérifie le message de validation
1079 $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text());
1080 /** Fin **/
1081 //
1082 /** On instancie une nouvelle demande initial PCI **/
1083 // On clique sur le menu "Guichet Unique"
1084 $this->byLinkText("Guichet Unique")->click();
1085 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1086 $this->verifyNoErrors();
1087 // On clique sur le sous-menu "Nouveau Dossier"
1088 $this->byLinkText("Nouveau Dossier")->click();
1089 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1090 $this->verifyNoErrors();
1091 // On selectionne le type de dossier d'autorisation détaillé "Permis de construire pour une maison individuelle et / ou ses annexes"
1092 $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel("Permis de construire pour une maison individuelle et / ou ses annexes");
1093 // On selectionne le type de demande "Dépôt Initial"
1094 $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
1095 // On clique pour ajouter un pétitionnaire principale
1096 $this->byId("add_petitionnaire_principal")->click();
1097 // On remplit le champ
1098 $this->byId("particulier_nom")->value("DURAND");
1099 // On remplit le champ
1100 $this->byId("particulier_prenom")->value("MICKAEL");
1101 // On remplit le champ
1102 $this->byId("particulier_date_naissance")->value("03/01/1956");
1103 // On remplit le champ
1104 $this->byId("particulier_commune_naissance")->value("LILLE");
1105 // On remplit le champ
1106 $this->byId("particulier_departement_naissance")->value("NORD");
1107 // On remplit le champ
1108 $this->byId("numero")->value("12");
1109 // On remplit le champ
1110 $this->byId("voie")->value("RUE DE LA LOI");
1111 // On remplit le champ
1112 $this->byId("complement")->value("APPT 12");
1113 // On remplit le champ
1114 $this->byId("localite")->value("MARSEILLE");
1115 // On remplit le champ
1116 $this->byId("code_postal")->value("13012");
1117 // On remplit le champ
1118 $this->byId("telephone_fixe")->value("0404040404");
1119 // On clique sur ajouter
1120 $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
1121 // On vérifie le message
1122 $this->assertContains("Vos modifications ont bien été enregistrées", $this->byCssSelector("#sousform-petitionnaire .message")->text());
1123 // On clique sur le bouton retour
1124 $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
1125 // On vérifie que le text est présent
1126 $this->assertContains("DURAND MICKAEL",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
1127 // On clique sur ajouter
1128 $this->byXPath("//input[@value='Ajouter']")->click();
1129 // On vérifie le message
1130 $this->assertContains("Création du dossier d'autorisation n°",$this->byCssSelector(".message .text")->text());
1131 // Récupération du numéro de dossier
1132 preg_match('/(PC)[0-9 ]*(P0)/', $this->byCssSelector(".message .text")->text(), $dossier);
1133 $dossier = $dossier[0];
1134 /** Fin **/
1135 //
1136 /** On ajoute une instruction de dossier accepter et on la finalise **/
1137 // On clique sur le menu "Instruction"
1138 $this->byLinkText("Instruction")->click();
1139 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1140 $this->verifyNoErrors();
1141 // On clique sur le sous-menu "Recherche"
1142 $this->byLinkText("Recherche")->click();
1143 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1144 $this->verifyNoErrors();
1145 // On recherche le dossier crée
1146 $this->byId("dossier")->value(str_replace(' ', '', $dossier));
1147 // On clique sur le bouton recherche
1148 $this->byId("adv-search-submit")->click();
1149 // On clique sur le résultat
1150 $this->byLinkText($dossier)->click();
1151 // On clique sur l'onglet "Instruction"
1152 $this->byId("instruction")->click();
1153 // On ajoute un événement d'instruction
1154 $this->byId("action-soustab-instruction-corner-ajouter")->click();
1155 // On choisit un signataire Albert Dupont
1156 $this->select($this->byId("signataire_arrete"))->selectOptionByValue("1");
1157 //On choisit l'instruction 'accepter un dossier sans réserve
1158 //[acceptation]'
1159 $this->select($this->byId("evenement"))->selectOptionByValue(81);
1160 // On valide le formulaire
1161 $this->byXPath("//input[@value='Ajouter']")->click();
1162 // On vérifie le message
1163 $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message .text")->text());
1164 // On clique sur le bouton "retour"
1165 $this->byLinkText("Retour")->click();
1166 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1167 $this->verifyNoErrors();
1168 // On clique sur l'événement d'instruction "accepter un dossier sans réserve"
1169 $this->byLinkText("accepter un dossier sans réserve")->click();
1170 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1171 $this->verifyNoErrors();
1172 // On valide l'instruction
1173 $this->byId("action-sousform-instruction-finalisation")->click();
1174 // On vérifie le message de validation
1175 $this->assertContains("La finalisation du document s'est effectuée avec succès.",$this->byCssSelector(".message .text")->text());
1176 // On clique sur le bouton "Retour"
1177 $this->byLinkText("Retour")->click();
1178 // On clique sur l'événement "accepter un dossier sans réserve"
1179 $this->byLinkText("accepter un dossier sans réserve")->click();sleep(1);
1180 // Récupération du numéro d'événement
1181 $evenement = $this->byCssSelector("#instruction.field_value")->text();
1182 /** Fin **/
1183 //
1184 /** On met à jour la date de retour signature **/
1185 // Date de retour signature
1186 $date_retour_signature = date("d/m/Y", mktime(0, 0, 0, date("m"), date("d")+5, date("Y")));
1187 // On clique sur le menu "Suivi"
1188 $this->byLinkText("Suivi")->click();
1189 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1190 $this->verifyNoErrors();
1191 // On clique sur le sous-menu "Mise À Jour Des Dates"
1192 $this->byLinkText("Mise À Jour Des Dates")->click();
1193 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1194 $this->verifyNoErrors();
1195 // On sélectionne "date de retour de signature + Envoi contrôle légalite"
1196 $this->select($this->byId("type_mise_a_jour"))->selectOptionByLabel("date de retour de signature + Envoi contrôle légalite");
1197 // On remplit à la date du jour + 5 jours
1198 $this->byId("date")->value($date_retour_signature);
1199 // On remplit le code barres de l'instruction
1200 $this->byId("code_barres")->value("11".str_pad($evenement, 10, "0", STR_PAD_LEFT));
1201 // On clique sur Valider
1202 $this->byCssSelector("#suivi_mise_a_jour_des_dates_form div.formControls input.om-button")->click();sleep(1);
1203 // On vérifie la synthèse avec le numéro du dossier et l'événement
1204 $this->assertContains($dossier, $this->byId("dossier_libelle")->text());
1205 $this->assertContains("accepter un dossier sans réserve", $this->byId("evenement")->text());
1206 // On clique sur Valider
1207 $this->byCssSelector("#suivi_mise_a_jour_des_dates_form div.formControls input.om-button")->click();
1208 // On vérifie le message de validation
1209 $this->assertContains("Saisie enregistrée",$this->byCssSelector(".message .text")->text());
1210 /** Fin **/
1211 //
1212 /** Vérifie l'instruction "retour" et le DI **/
1213 // Date de validité
1214 $date_validite = $this->mois_date(date("Y-m-d", mktime(0, 0, 0, date("m"), date("d")+5, date("Y"))), 5, "+");
1215 $date_validite = date("d/m/Y", strtotime($date_validite));
1216 // On clique sur le menu "Instruction"
1217 $this->byLinkText("Instruction")->click();
1218 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1219 $this->verifyNoErrors();
1220 // On clique sur le sous-menu "Recherche"
1221 $this->byLinkText("Recherche")->click();
1222 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1223 $this->verifyNoErrors();
1224 // On recherche le dossier crée
1225 $this->byId("dossier")->value(str_replace(' ', '', $dossier));
1226 // On clique sur le bouton recherche
1227 $this->byId("adv-search-submit")->click();
1228 // On clique sur le résultat
1229 $this->byLinkText($dossier)->click();
1230 // On vérifie la date de validité mise à jour par l'action
1231 $this->assertContains($date_validite, $this->byId("date_validite")->text());
1232 // On clique sur l'onglet "Instruction"
1233 $this->byId("instruction")->click();
1234 // On clique sur l'instruction "retour signature"
1235 $this->byLinkText("retour signature")->click();
1236 // On contrôle la date de retour signature
1237 $this->assertContains($date_retour_signature, $this->byId("date_retour_signature")->text());
1238 /** Fin **/
1239 //
1240 // On se déconnecte
1241 $this->logout();
1242 //
1243 }
1244 //
1245 /**
1246 * test la suppression d'un événement d'instruction lié à une demande qui ne
1247 * créée pas de nouveau dossier d'instruction
1248 */
1249 public function test_09_suppression_evenement_demande(){
1250 //
1251 //Ajout du paramétrage d'une nouvelle demande
1252 // On se connecte à l'application en tant qu'administrateur
1253 $this->login("admin", "admin");
1254 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1255 $this->verifyNoErrors();
1256 //On clique sur "Paramétrage dossier"
1257 $this->byLinkText("Paramétrage Dossiers")->click();
1258 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1259 $this->verifyNoErrors();
1260 //On clique sur Type
1261 $this->byLinkText("Type")->click();
1262 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1263 $this->verifyNoErrors();
1264 //On clique sur le "+" du tableau
1265 $this->byClassName("add-16")->click();
1266 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1267 $this->verifyNoErrors();
1268 //On saisit le type de la demande
1269 $this->byId("code")->value("test_09_suppression");
1270 $this->byId("libelle")->value("test_09_suppression");
1271 // On sélectionne le groupe 'Autorisation ADS'
1272 $this->select($this->byId("groupe"))->selectOptionByValue("1");sleep(1);
1273 // On sélectionne 'AZ (Demande d'autorisation spéciale de travaux dans
1274 // le périmètre d'une AVAP)'
1275 $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByValue("7");sleep(1);
1276 // On sélectionne la nature 'Dossier existant'
1277 $this->select($this->byId("demande_nature"))->selectOptionByValue("2");
1278 // On sélectionne l'état 'En cours'
1279 $this->select($this->byName("etats_autorises[]"))->selectOptionByValue("notifier");
1280 // On sélectionne l'événement 'Defrichement soumis a enquete publique'
1281 $this->select($this->byId("evenement"))->selectOptionByValue("15");
1282 // On sélectionne la contrainte 'Avec récupération demandeur'
1283 $this->select($this->byId("contraintes"))->selectOptionByValue("avec_recup");
1284 // On clique sur le bouton ajouter
1285 $this->byXPath("//input[@value='Ajouter']")->click();
1286 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1287 $this->verifyNoErrors();
1288 // On vérifie que le type de demande a bien été ajouté
1289 $this->assertContains('Vos modifications ont bien été enregistrées', $this->byCssSelector(".message .text")->text());
1290 //On se déconnecte
1291 $this->deconnect();
1292 //
1293 //Création d'un nouveau dossier d'instruction
1294 // On se connecte à l'application
1295 $this->login("guichet", "guichet");
1296 //On clique sur "Dossier En Cours"
1297 $this->byLinkText("Dossier En Cours")->click();
1298 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1299 $this->verifyNoErrors();
1300 //On clique sur le dossier "AZ0130551200001P0"
1301 $this->byId("action-tab-demande_dossier_encours-left-consulter-AZ0130551200001P0")->click();
1302 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1303 $this->verifyNoErrors();
1304 // On vérifie l'état du DI
1305 $this->assertContains("delai de notification envoye", $this->byCssSelector("#fieldset-form-demande_dossier_encours-etat-du-dossier-d_instruction.cadre .fieldsetContent .form-content")->text());
1306 //On sélectionne le type de la demande
1307 $this->select($this->byId("demande_type"))->selectOptionByLabel("test_09_suppression");sleep(1);
1308 // On clique sur le bouton ajouter
1309 $this->byXPath("//input[@value='Ajouter']")->click();
1310 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1311 $this->verifyNoErrors();
1312 // On vérifie que le type de demande a bien été ajouté
1313 $this->assertContains('Vos modifications ont bien été enregistrées', $this->byCssSelector(".message .text")->text());
1314 //On se déconnecte
1315 $this->deconnect();
1316 //
1317 //Suppression de l'événement d'instruction
1318 // On se connecte à l'application
1319 $this->login("admin", "admin");
1320 //On clique sur le menu "Instruction"
1321 $this->byLinkText("Instruction")->click();
1322 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1323 $this->verifyNoErrors();
1324 //On clique sur le menu "Recherche"
1325 $this->byLinkText("Recherche")->click();
1326 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1327 $this->verifyNoErrors();
1328 //On clique sur le dossier "AZ 013055 12 00001P0"
1329 $this->byLinkText("AZ 013055 12 00001P0")->click();
1330 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1331 $this->verifyNoErrors();
1332 //On clique sur l'onglet "Instruction"
1333 $this->byId("instruction")->click();
1334 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1335 $this->verifyNoErrors();
1336 //On clique sur l'instruction "Defrichement soumis a enquete publique"
1337 $this->byLinkText("Defrichement soumis a enquete publique")->click();
1338 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1339 $this->verifyNoErrors();
1340 //On définalise l'instruction
1341 $this->byClassName("definalise")->click();
1342 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1343 $this->verifyNoErrors();
1344 //On clique "Supprimer"
1345 $this->byCssSelector("#sousform-instruction .delete-16")->click();
1346 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1347 $this->verifyNoErrors();
1348 //On clique sur supprimer
1349 $this->byXPath("//input[@value='Supprimer']")->click();
1350 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1351 $this->verifyNoErrors();
1352 //On vérifie que lasuppression a été éffectuée
1353 $this->assertContains("La suppression a été correctement effectuée.",
1354 $this->byCssSelector("#sousform-instruction .message .text")->text());
1355 // On se déconnecte
1356 $this->logout();
1357 }
1358 //
1359 /**
1360 * test sur les types d'éditions des consultations
1361 */
1362 function test_10_nouveau_type_edition_consultation(){
1363 //
1364 //On saisit un service de test
1365 // On se connecte à l'application
1366 $this->login("admin", "admin");
1367 //On clique sur "Paramétrage"
1368 $this->byLinkText("Paramétrage")->click();
1369 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1370 $this->verifyNoErrors();
1371 //On clique sur "Service"
1372 $this->byLinkText("Service")->click();
1373 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1374 $this->verifyNoErrors();
1375 //On clique sur le "+" du tableau
1376 $this->byClassName("add-16")->click();
1377 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1378 $this->verifyNoErrors();
1379 //On saisit les données du service
1380 $this->byId("abrege")->value("test_10");
1381 $this->byId("libelle")->value("test_10");
1382 $this->byId("consultation_papier")->click();
1383 $this->select($this->byId("edition"))->selectOptionByLabel("test_10");
1384 // On clique sur le bouton ajouter
1385 $this->byXPath("//input[@value='Ajouter']")->click();
1386 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1387 $this->verifyNoErrors();
1388 // On vérifie que le service a bien été ajouté
1389 $this->assertContains('Vos modifications ont bien été enregistrées', $this->byCssSelector(".message .text")->text());
1390 //On se déconnecte
1391 $this->deconnect();
1392 //
1393 //On ajoute une consultation sur un dossier et on vérifie l'édition
1394 // On se connecte à l'application
1395 $this->login("instr", "instr");
1396 //On clique sur "Recherche"
1397 $this->byLinkText("Recherche")->click();
1398 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1399 $this->verifyNoErrors();
1400 //On choisit le dossier "AZ 013055 12 00001P0"
1401 $this->byLinkText("AZ 013055 12 00001P0")->click();
1402 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1403 $this->verifyNoErrors();
1404 //On clique sur l'onglet "Consultation"
1405 $this->byId("consultation")->click();
1406 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1407 $this->verifyNoErrors();
1408 //On clique sur le "+" du tableau
1409 $this->byClassName("add-16")->click();
1410 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1411 $this->verifyNoErrors();
1412 //On saist une nouvelle consultation
1413 $this->select($this->byId("service"))->selectOptionByLabel("test_10");
1414 // On clique sur le bouton ajouter
1415 $this->byXPath("//input[@value='Ajouter']")->click();
1416 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1417 $this->verifyNoErrors();
1418 // On vérifie que la consultation a bien été ajoutée
1419 $this->assertContains('Vos modifications ont bien été enregistrées', $this->byCssSelector(".message .text")->text());
1420 //On clique sur retour
1421 $this->byCssSelector("#sousform-consultation .retour")->click();
1422 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1423 $this->verifyNoErrors();
1424 //On clique sur la consultation au service "test_10"
1425 $this->byLinkText("test_10")->click();
1426 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1427 $this->verifyNoErrors();
1428 //On affiche le PDF
1429 $this->byId("action-sousform-consultation-pdfetat")->click();sleep(5);
1430 // Liste les fenêtres
1431 $windows = $this->windowHandles();
1432 // Change la fenêtre
1433 $this->window($windows[1]);
1434 // On vérifie qu'il n'y ait pas d'erreur
1435 $this->verifynoerrors();
1436 // On vérifie que le text est présent
1437 $this->assertContains("test_10",$this->source());
1438 $this->assertNotContains("test_10_2",$this->source());
1439 // On ferme la fenêtre
1440 $this->closeWindow();
1441 // On change le focus de la fenêtre
1442 $this->window($windows[0]);
1443 //On se déconnecte
1444 $this->deconnect();
1445 //
1446 //On change l'édition
1447 // On se connecte à l'application
1448 $this->login("admin", "admin");
1449 //On clique sur "Paramétrage"
1450 $this->byLinkText("Paramétrage")->click();
1451 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1452 $this->verifyNoErrors();
1453 //On clique sur "Service"
1454 $this->byLinkText("Service")->click();
1455 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1456 $this->verifyNoErrors();
1457 //On cherche le service
1458 $this->byName("recherche")->value("test_10");
1459 //On valide
1460 $this->byName("s1")->click();
1461 //On clique sur le service test_10
1462 $this->byLinkText("test_10")->click();
1463 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1464 $this->verifyNoErrors();
1465 //On clique sur "Modifier" dans le portail d'action
1466 $this->byClassName("edit-16")->click();
1467 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1468 $this->verifyNoErrors();
1469 //On choisit une seconde édition
1470 $this->select($this->byId("edition"))->selectOptionByLabel("test_10_2");
1471 // On clique sur le bouton ajouter
1472 $this->byXPath("//input[@value='Modifier']")->click();
1473 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1474 $this->verifyNoErrors();
1475 // On vérifie que le service a bien été ajouté
1476 $this->assertContains('Vos modifications ont bien été enregistrées', $this->byCssSelector(".message .text")->text());
1477 //On se déconnecte
1478 $this->deconnect();
1479 //
1480 //On vérifie que c'est la bonne édition qui est affiché
1481 // On se connecte à l'application
1482 $this->login("instr", "instr");
1483 //On clique sur "Recherche"
1484 $this->byLinkText("Recherche")->click();
1485 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1486 $this->verifyNoErrors();
1487 //On choisit le dossier "AZ 013055 12 00001P0"
1488 $this->byLinkText("AZ 013055 12 00001P0")->click();
1489 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1490 $this->verifyNoErrors();
1491 //On clique sur l'onglet "Consultation"
1492 $this->byId("consultation")->click();
1493 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1494 $this->verifyNoErrors();
1495 //On clique sur la consultation au service "test_10"
1496 $this->byLinkText("test_10")->click();
1497 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1498 $this->verifyNoErrors();
1499 //on definalise la consultaion
1500 $this->byClassName("definalise")->click();
1501 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1502 $this->verifyNoErrors();
1503 //On vérifie que la consultation s'est bien définalisée
1504 $this->assertEquals('La definalisation du document s\'est effectuée avec succès.', $this->byCssSelector("#sousform-consultation .message .text")->text());sleep(10);
1505 //On affiche le PDF
1506 $this->byId("action-sousform-consultation-pdfetat")->click();sleep(5);
1507 // Liste les fenêtres
1508 $windows = $this->windowHandles();
1509 // Change la fenêtre
1510 $this->window($windows[1]);
1511 // On vérifie qu'il n'y ait pas d'erreur
1512 $this->verifynoerrors();
1513 // On vérifie que le text est présent
1514 $this->assertContains("test_10_2",$this->source());
1515 // On ferme la fenêtre
1516 $this->closeWindow();
1517 // On change le focus de la fenêtre
1518 $this->window($windows[0]);
1519 //
1520 // On se déconnecte
1521 $this->logout();
1522 }
1523 //
1524 /**
1525 * test sur un événement non verrouillable
1526 */
1527 public function test_11_evenement_non_verrouillable(){
1528 //
1529 /* On crée une nouvelle demande initial */
1530 // On se connecte à l'application
1531 $this->login("guichet", "guichet");
1532 // On clique sur le menu "Nouveau Dossier"
1533 $this->byLinkText("Nouveau Dossier")->click();
1534 // On vérifie qu'il n'y ait pas d'erreur
1535 $this->verifynoerrors();
1536 // On vérifie le nom de l'onglet
1537 $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
1538 // On sélectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
1539 $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel("Permis de construire pour une maison individuelle et / ou ses annexes");
1540 // On selectionne le label "Dépôt Initial"
1541 $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
1542 // On clique pour ajouter un pétitionnaire principale
1543 $this->byId("add_petitionnaire_principal")->click();
1544 // On remplit le champ
1545 $this->byId("particulier_nom")->value("DURAND");
1546 // On remplit le champ
1547 $this->byId("particulier_prenom")->value("MICKAEL");
1548 // On remplit le champ
1549 $this->byId("particulier_date_naissance")->value("03/01/1956");
1550 // On remplit le champ
1551 $this->byId("particulier_commune_naissance")->value("LILLE");
1552 // On remplit le champ
1553 $this->byId("particulier_departement_naissance")->value("NORD");
1554 // On remplit le champ
1555 $this->byId("numero")->value("12");
1556 // On remplit le champ
1557 $this->byId("voie")->value("RUE DE LA LOI");
1558 // On remplit le champ
1559 $this->byId("complement")->value("APPT 12");
1560 // On remplit le champ
1561 $this->byId("localite")->value("MARSEILLE");
1562 // On remplit le champ
1563 $this->byId("code_postal")->value("13012");
1564 // On remplit le champ
1565 $this->byId("telephone_fixe")->value("0404040404");
1566 // On clique sur ajouter
1567 $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
1568 // On vérifie qu'il n'y ait pas d'erreur
1569 $this->verifynoerrors();
1570 // On vérifie le message
1571 $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-petitionnaire .message")->text());
1572 // On clique sur le bouton retour
1573 $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
1574 // On vérifie que le text est présent
1575 $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
1576 // On clique sur ajouter
1577 $this->byXPath("//input[@value='Ajouter']")->click();
1578 // On vérifie qu'il n'y ait pas d'erreur
1579 $this->verifynoerrors();
1580 // On vérifie le message
1581 $this->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°[\s\S]*$/",$this->byCssSelector(".message")->text());
1582 // Récupération du numéro de dossier
1583 preg_match('/(PC)[0-9 ]*(P0)/', $this->byCssSelector(".message .text")->text(), $matches);
1584 $dossier_libelle = $matches[0];
1585 $dossier = str_replace(' ', '', $dossier_libelle);
1586 $dossier_dir = substr_replace($dossier, '.', -2, -3);
1587 // On clique
1588 $this->byCssSelector("a.lien")->click();sleep(5);
1589 // Liste les fenêtres
1590 $windows = $this->windowHandles();
1591 // Change la fenêtre
1592 $this->window($windows[1]);
1593 // On vérifie qu'il n'y ait pas d'erreur
1594 $this->verifynoerrors();
1595 // On vérifie que le text est présent
1596 $this->assertRegExp("/^[\s\S]*RECEPISSE DE DEPOT[\s\S]*$/",$this->source());
1597 // On ferme la fenêtre
1598 $this->closeWindow();
1599 // On change le focus de la fenêtre
1600 $this->window($windows[0]);
1601 // On clique sur le bouton retour
1602 $this->byLinkText("Retour")->click();
1603 // On vérifie qu'il n'y ait pas d'erreur
1604 $this->verifynoerrors();
1605 // On vérifie que le répertoire s'est crée
1606 $this->assertTrue(file_exists("../trs/numerisation/Todo/".$dossier_dir));
1607 // On se déconnecte
1608 $this->deconnect();
1609 /* Fin */
1610 //
1611 /* On accepte le dossier d'instruction et le finalise */
1612 // On se connecte à l'application
1613 $this->login("instr", "instr");
1614 // On clique sur le menu 'Recherche'
1615 $this->byLinkText("Recherche")->click();
1616 // On recherche le dossier crée
1617 $this->byId("dossier")->value($dossier);
1618 // On clique sur le bouton recherche
1619 $this->byId("adv-search-submit")->click();
1620 // On clique sur le résultat
1621 $this->byLinkText($dossier_libelle)->click();
1622 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1623 $this->verifyNoErrors();
1624 // On clique sur l'onglet "Instruction"
1625 $this->byId("instruction")->click();
1626 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1627 $this->verifyNoErrors();
1628 // On clique sur le lien d'ajout dans le tableau
1629 $this->byCssSelector(".actions-max-1 a")->click();
1630 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1631 $this->verifyNoErrors();
1632 //On choisit l'instruction 'accepter un dossier sans réserve
1633 //[acceptation]'
1634 $this->select($this->byId("evenement"))->selectOptionByValue(81);
1635 // On valide le formulaire
1636 $this->byXPath("//input[@value='Ajouter']")->click();
1637 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1638 $this->verifyNoErrors();
1639 sleep(1);
1640 $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
1641 // On retourne sur le tableau d'instructions
1642 $this->byCssSelector("#sousform-instruction .retour")->click();
1643 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1644 $this->verifyNoErrors();
1645 // On clique sur l'événement d'instruction "accepter un dossier sans réserve"
1646 $this->byLinkText("accepter un dossier sans réserve")->click();
1647 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1648 $this->verifyNoErrors();
1649 // On valide l'instruction (un événement verrouillable ne pourrait pas
1650 // être finalisé)
1651 $this->byId("action-sousform-instruction-finalisation")->click();
1652 // On vérifie le message de validation
1653 $this->assertContains("La finalisation du document s'est effectuée avec succès.",$this->byCssSelector(".message .text")->text());
1654 /* Fin */
1655 }
1656 //
1657 /**
1658 * test que les données du dossier d'autorisation sont recopiés dans les
1659 * champs 'archive_' de l'événement d'instruction de la création du nouveau
1660 * dossier d'instruction
1661 */
1662 public function test_12_recopie_donnees_da_vers_nouveau_di(){
1663 //
1664 //{{{ Ajout de d'un nouveau dossier
1665 // On se connecte à l'application
1666 $this->login("guichet", "guichet");
1667 //On clique sur le menu des instructions
1668 $this->byLinkText("Nouveau Dossier")->click();
1669 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1670 $this->verifyNoErrors();
1671 //On ajoute un nouveau dossier
1672 $dossier = $this->addDossierInstruction( 1, 1);
1673 // On se déconnecte
1674 $this->deconnect();
1675 //}}}
1676 //
1677 //{{{ Clôture du nouveau dossier
1678 // On se connecte à l'application
1679 $this->login("instr", "instr");
1680 //On clique sur le menu "Recherche"
1681 $this->byLinkText("Recherche")->click();
1682 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1683 $this->verifyNoErrors();
1684 // On recherche le dossier crée
1685 $this->byId("dossier")->value(str_replace(' ', '', $dossier));
1686 // On clique sur le bouton recherche
1687 $this->byId("adv-search-submit")->click();
1688 // On clique sur le résultat
1689 $this->byLinkText($dossier)->click();
1690 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1691 $this->verifyNoErrors();
1692 //On clique sur l'onglet "instruction"
1693 $this->byId("instruction")->click();
1694 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1695 $this->verifyNoErrors();
1696 // On ajoute une instruction
1697 $this->byCssSelector("#sousform-instruction .add-16")->click();
1698 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1699 $this->verifyNoErrors();
1700 //On choisit l'instruction 'accepter un dossier sans réserve
1701 //[acceptation]'
1702 $this->select($this->byId("evenement"))->selectOptionByValue(81);
1703 // On clique sur ajouter
1704 $this->byXPath("//input[@value='Ajouter']")->click();
1705 // On vérifie qu'il n'y ait pas d'erreur
1706 $this->verifynoerrors();
1707 // On vérifie le message
1708 $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1709 //On rafraichit la page pour vérifier que le dossier est clôturé
1710 $this->refresh();
1711 $this->assertEquals("Favorable", $this->byId("avis_decision")->text());
1712 // On se déconnecte
1713 $this->deconnect();
1714 //}}}
1715 //
1716 //{{{ Ajout de l'action
1717 // On se connecte à l'application
1718 $this->login("admin", "admin");
1719 //On clique sur le menu "Paramétrage dossiers"
1720 $this->byLinkText("Paramétrage Dossiers")->click();
1721 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1722 $this->verifyNoErrors();
1723 //On clique sur le menu "Action"
1724 $this->byLinkText("Action")->click();
1725 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1726 $this->verifyNoErrors();
1727 //On clique sur le "+" du tableau
1728 $this->byClassName("add-16")->click();
1729 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1730 $this->verifyNoErrors();
1731 //On remplit la règle de calcul de la date de validité
1732 $this->byId("action")->value("test_12_recopie_donnees");
1733 $this->byId("libelle")->value("test_12_recopie_donnees");
1734 $this->byId("regle_date_validite")->value("archive_date_validite+12");
1735 // On clique sur ajouter
1736 $this->byXPath("//input[@value='Ajouter']")->click();
1737 // On vérifie qu'il n'y ait pas d'erreur
1738 $this->verifynoerrors();
1739 // On vérifie le message
1740 $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1741 //}}}
1742 //
1743 //{{{ Ajout de l'événement
1744 //On clique sur le menu "Événement"
1745 $this->byLinkText("Événement")->click();
1746 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1747 $this->verifyNoErrors();
1748 //On clique sur le "+" du tableau
1749 $this->byClassName("add-16")->click();
1750 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1751 $this->verifyNoErrors();
1752 //On remplit l'événement qui va être ajouté avec la nouvelle demande
1753 $this->byId("libelle")->value("test_12_recopie_donnees");
1754 $this->select($this->byName("etats_depuis_lequel_l_evenement_est_disponible[]"))->selectOptionByValue("accepter");
1755 // On sélectionne PCI - P - Initial
1756 $this->select($this->byName("dossier_instruction_type[]"))->selectOptionByValue(1);
1757 $this->select($this->byName("action"))->selectOptionByLabel("test_12_recopie_donnees");
1758 // On clique sur ajouter
1759 $this->byXPath("//input[@value='Ajouter']")->click();
1760 // On vérifie qu'il n'y ait pas d'erreur
1761 $this->verifynoerrors();
1762 // On vérifie le message
1763 $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1764 //}}}
1765 //
1766 //{{{ Ajout du type de dossier d'instruction
1767 //On clique sur le menu "Type DI"
1768 $this->byLinkText("Type DI")->click();
1769 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1770 $this->verifyNoErrors();
1771 //On clique sur le "+" du tableau
1772 $this->byClassName("add-16")->click();
1773 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1774 $this->verifyNoErrors();
1775 //On remplit le type de la demande
1776 $this->byId("code")->value("DT");
1777 $this->byId("libelle")->value("test_12_recopie_donnees");
1778 // On sélectionne PCI (Permis de construire pour une maison individuelle
1779 // et / ou ses annexes)
1780 $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByValue(1);sleep(1);
1781 $this->byId("suffixe")->click();
1782 // On clique sur ajouter
1783 $this->byXPath("//input[@value='Ajouter']")->click();
1784 // On vérifie qu'il n'y ait pas d'erreur
1785 $this->verifynoerrors();
1786 // On vérifie le message
1787 $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1788 //}}}
1789 //
1790 //{{{ Ajout du type de la demande
1791 //On clique sur le menu "Type"
1792 $this->byLinkText("Type")->click();
1793 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1794 $this->verifyNoErrors();
1795 //On clique sur le "+" du tableau
1796 $this->byClassName("add-16")->click();
1797 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1798 $this->verifyNoErrors();
1799 //On remplit le type de la demande
1800 $this->byId("code")->value("test_12_recopie_donnees");
1801 $this->byId("libelle")->value("test_12_recopie_donnees");
1802 // On sélectionne Autorisation ADS
1803 $this->select($this->byId("groupe"))->selectOptionByValue(1);sleep(1);
1804 // On sélectionne PCI (Permis de construire pour une maison individuelle
1805 // et / ou ses annexes)
1806 $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByValue(1);
1807 // On sélectionne Dossier existant
1808 $this->select($this->byId("demande_nature"))->selectOptionByValue(2);
1809 // On sélectionne Accordé
1810 $this->select($this->byName("etats_autorises[]"))->selectOptionByValue('accepter');
1811 $this->select($this->byId("dossier_instruction_type"))->selectOptionByLabel("PCI - test_12_recopie_donnees");
1812 $this->select($this->byId("evenement"))->selectOptionByLabel("test_12_recopie_donnees");
1813 // On clique sur ajouter
1814 $this->byXPath("//input[@value='Ajouter']")->click();
1815 // On vérifie qu'il n'y ait pas d'erreur
1816 $this->verifynoerrors();
1817 // On vérifie le message
1818 $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1819 //On clique sur retour
1820 $this->byClassName("retour")->click();
1821 // On vérifie qu'il n'y ait pas d'erreur
1822 $this->verifynoerrors();
1823 //On saisit le libellé du type de la demande saisit
1824 $this->byName("recherche")->value("test_12_recopie_donnees");
1825 //On valide
1826 $this->byName("s1")->click();
1827 // On vérifie qu'il n'y ait pas d'erreur
1828 $this->verifynoerrors();
1829 //On clique sur le type de la demande
1830 $this->byLinkText("test_12_recopie_donnees")->click();
1831 // On vérifie qu'il n'y ait pas d'erreur
1832 $this->verifynoerrors();
1833 //On récupère l'identifiant du type de la demande
1834 $demande_type = $this->byId("demande_type")->text();
1835 // On se déconnecte
1836 $this->deconnect();
1837 //}}}
1838 //
1839 //{{{ Ajout de d'un nouveau dossier
1840 // On se connecte à l'application
1841 $this->login("guichet", "guichet");
1842 //On clique sur le menu des instructions
1843 $this->byLinkText("Dossier En Cours")->click();
1844 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1845 $this->verifyNoErrors();
1846 //On ajoute un nouveau dossier
1847 $dossier = $this->addDossierInstruction(1, $demande_type, "Test validité", 2, str_replace(" ", "", $dossier));
1848 // On se déconnecte
1849 $this->deconnect();
1850 //}}}
1851 //
1852 //{{{ Vérification de la date de validité
1853 // On se connecte à l'application
1854 $this->login("instr", "instr");
1855 //On clique sur le menu "Recherche"
1856 $this->byLinkText("Recherche")->click();
1857 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1858 $this->verifyNoErrors();
1859 // On recherche le dossier crée
1860 $this->byId("dossier")->value(str_replace(' ', '', $dossier));
1861 // On clique sur le bouton recherche
1862 $this->byId("adv-search-submit")->click();
1863 // On clique sur le résultat
1864 $this->byLinkText($dossier)->click();
1865 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1866 $this->verifyNoErrors();
1867 //On vérifie la date de validité
1868 $date_validite = $this->mois_date(date("Y-m-d"), 12, "+");
1869 $date_validite = date("d/m/Y", strtotime($date_validite));
1870 $this->assertEquals($date_validite, $this->byId("date_validite")->text());
1871 // On se déconnecte
1872 $this->deconnect();
1873 //}}}
1874 }
1875 //
1876 /**
1877 * test de la numérotation des DI successifs
1878 */
1879 function test_13_numerotation_dossier_instruction_successif(){
1880 //
1881 //{{{ Ajout de d'un nouveau dossier d'instruction P0
1882 // On se connecte à l'application
1883 $this->login("guichet", "guichet");
1884 // On clique sur le menu "Nouveau Dossier"
1885 $this->byLinkText("Nouveau Dossier")->click();
1886 // On vérifie qu'il n'y ait pas d'erreur
1887 $this->verifynoerrors();
1888 // On ajoute un nouveau dossier d'instruction
1889 $dossierP0 = str_replace(" ", "", trim($this->addDossierInstruction(1, 1)));
1890 // On se déconnecte
1891 $this->deconnect();
1892 //}}}
1893 //
1894 //{{{ Accord du P0 créé
1895 // On se connecte à l'application
1896 $this->login("instr", "instr");
1897 // On clique sur le menu "Recherche"
1898 $this->byLinkText("Recherche")->click();
1899 // On vérifie qu'il n'y ait pas d'erreur
1900 $this->verifynoerrors();
1901 // On saisit le numéro du dossier d'instruction
1902 $this->byId("dossier")->value($dossierP0);
1903 // On valide la recherche
1904 $this->byId("adv-search-submit")->click();
1905 // On vérifie qu'il n'y ait pas d'erreur
1906 $this->verifynoerrors();
1907 // On clique sur le dossier d'instruction
1908 $this->byId("action-tab-dossier_instruction-left-consulter-".$dossierP0)->click();
1909 // On vérifie qu'il n'y ait pas d'erreur
1910 $this->verifynoerrors();
1911 // On clique sur l'onglet instruction
1912 $this->byId("instruction")->click();
1913 // On vérifie qu'il n'y ait pas d'erreur
1914 $this->verifynoerrors();
1915 // On clique sur le + du tableau
1916 $this->byClassName("add-16")->click();
1917 // On vérifie qu'il n'y ait pas d'erreur
1918 $this->verifynoerrors();
1919 // On choisit l'événement n°81 accepter un dossier sans réserve
1920 $this->select($this->byName("evenement"))->selectOptionByValue(81);
1921 // On clique sur ajouter
1922 $this->byXPath("//input[@value='Ajouter']")->click();
1923 sleep(1);
1924 // On vérifie qu'il n'y ait pas d'erreur
1925 $this->verifynoerrors();
1926 // On vérifie que l'événement d'instruction s'est bien ajouté
1927 $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector("#sousform-instruction .message")->text());
1928 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1929 $this->verifyNoErrors();
1930 // On se déconnecte
1931 $this->deconnect();
1932 //}}}
1933 //
1934 //{{{ Ajout d'un nouveau type de dossier d'instruction
1935 // On se connecte à l'application
1936 $this->login("admin", "admin");
1937 // On clique sur le menu "Paramétrage Dossiers"
1938 $this->byLinkText("Paramétrage Dossiers")->click();
1939 // On vérifie qu'il n'y ait pas d'erreur
1940 $this->verifynoerrors();
1941 // On clique sur le menu "Type DI"
1942 $this->byLinkText("Type DI")->click();
1943 // On vérifie qu'il n'y ait pas d'erreur
1944 $this->verifynoerrors();
1945 // On clique sur le + du tableau
1946 $this->byClassName("add-16")->click();
1947 // On vérifie qu'il n'y ait pas d'erreur
1948 $this->verifynoerrors();
1949 //On saisit les données
1950 $this->byId("code")->value("TN");
1951 $this->byId("libelle")->value("Test numérotation");
1952 $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByValue(1);
1953 $this->byId("suffixe")->click();
1954 // On clique sur ajouter
1955 $this->byXPath("//input[@value='Ajouter']")->click();
1956 // On vérifie qu'il n'y ait pas d'erreur
1957 $this->verifynoerrors();
1958 // On vérifie que le type de dossier d'instruction s'est bien ajouté
1959 $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1960 // On clique sur "Retour"
1961 $this->byClassName("retour")->click();
1962 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1963 $this->verifyNoErrors();
1964 //On saisie le nom due l'événement dans la recherche simple
1965 $this->byName("recherche")->value("Test numérotation");
1966 //On valide la recherche
1967 $this->byName('s1')->submit();
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'événement
1971 $this->byLinkText("Test numérotation")->click();
1972 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1973 $this->verifyNoErrors();
1974 //On récupère l'identifiant
1975 $dossier_instruction_type = trim($this->byId("dossier_instruction_type")->text());
1976 //}}}
1977 //
1978 //{{{ Ajout d'un nouveau type de demande
1979 // On clique sur le menu "Type"
1980 $this->byLinkText("Type")->click();
1981 // On vérifie qu'il n'y ait pas d'erreur
1982 $this->verifynoerrors();
1983 // On clique sur le + du tableau
1984 $this->byClassName("add-16")->click();
1985 // On vérifie qu'il n'y ait pas d'erreur
1986 $this->verifynoerrors();
1987 //On saisit les données
1988 $this->byId("code")->value("TN");
1989 $this->byId("libelle")->value("Test numérotation");
1990 $this->select($this->byId("groupe"))->selectOptionByValue(1);
1991 sleep(1);
1992 $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByValue(1);
1993 sleep(1);
1994 $this->select($this->byId("demande_nature"))->selectOptionByValue(2);
1995 sleep(1);
1996 $this->select($this->byName("etats_autorises[]"))->selectOptionByValue('accepter');
1997 sleep(1);
1998 $this->select($this->byId("dossier_instruction_type"))->selectOptionByValue($dossier_instruction_type);
1999 sleep(1);
2000 $this->select($this->byId("evenement"))->selectOptionByValue(1);
2001 // On clique sur ajouter
2002 $this->byXPath("//input[@value='Ajouter']")->click();
2003 // On vérifie qu'il n'y ait pas d'erreur
2004 $this->verifynoerrors();
2005 // On vérifie qu'il n'y ait pas d'erreur
2006 $this->verifynoerrors();
2007 // On vérifie que le type de dossier d'instruction s'est bien ajouté
2008 $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
2009 // On clique sur "Retour"
2010 $this->byClassName("retour")->click();
2011 // On vérifie qu'il n'y ait pas d'erreur
2012 $this->verifynoerrors();
2013 // On saisit le libelle du type de la demande nouvellement créée
2014 $this->byClassName("champFormulaire")->value("Test numérotation");
2015 // On valide la recherche
2016 $this->byName("f1")->submit();
2017 //On clique sur le type de la demande
2018 $this->byLinkText("Test numérotation")->click();
2019 // On vérifie qu'il n'y ait pas d'erreur
2020 $this->verifynoerrors();
2021 // On récupère l'identifiant
2022 $idDemandeType = trim($this->byId("demande_type")->text());
2023 // On se déconnecte
2024 $this->deconnect();
2025 //}}}
2026 //
2027 //{{{ Ajout de d'un nouveau dossier d'instruction avec le nouveau type
2028 //de dossier d'instruction
2029 // On se connecte à l'application
2030 $this->login("guichet", "guichet");
2031 // On clique sur le menu "Dossier En Cours"
2032 $this->byLinkText("Dossier En Cours")->click();
2033 // On vérifie qu'il n'y ait pas d'erreur
2034 $this->verifynoerrors();
2035 // On ajoute un nouveau dossier d'instruction
2036 $dossierTN01 = trim($this->addDossierInstruction(1, $idDemandeType, "Test nouveau DI", 3, $dossierP0));
2037 //On vérifie que le numéro du dossier d'instruction est celui attendu
2038 assert(preg_match('/(PC)[0-9 ]*(TN01)/', $dossierTN01) === 1);
2039 // On se déconnecte
2040 $this->deconnect();
2041 //}}}
2042
2043
2044 }
2045
2046 /**
2047 * test de la numérotation des DI successifs
2048 */
2049 function test_14_recalcul_donnees_DI_vers_DA(){
2050 //{{{ Ajout de d'un nouveau dossier
2051 // On se connecte à l'application
2052 $this->login("guichet", "guichet");
2053 //On clique sur le menu des instructions
2054 $this->byLinkText("Nouveau Dossier")->click();
2055 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2056 $this->verifyNoErrors();
2057 //On ajoute un nouveau dossier
2058 $dossier = $this->addDossierInstruction( 1, 1);
2059 // On se déconnecte
2060 $this->deconnect();
2061 //}}}
2062 //
2063 //{{{
2064 // Mise à jour des données techniques
2065 // On se connecte à l'application
2066 $this->login("instr", "instr");
2067 //On clique sur le menu "Recherche"
2068 $this->byLinkText("Recherche")->click();
2069 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2070 $this->verifyNoErrors();
2071 // On recherche le dossier crée
2072 $this->byId("dossier")->value(str_replace(' ', '', $dossier));
2073 // On clique sur le bouton recherche
2074 $this->byId("adv-search-submit")->click();
2075 // On clique sur le résultat
2076 $this->byLinkText($dossier)->click();
2077 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2078 $this->verifyNoErrors();
2079 // Ouverture du formulaire des données techniques
2080 $this->byCssSelector("#formulaire .rediger-16")->click();
2081 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2082 $this->verifyNoErrors();
2083 // Modification des données techniques
2084 $this->byCssSelector("#sousform-donnees_techniques .edit-16")->click();
2085 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2086 $this->verifyNoErrors();
2087 sleep(1);
2088 // On déplie le fieldset Construire
2089 $this->byCssSelector("#fieldset-sousform-donnees_techniques-construire legend")->click();
2090 sleep(5);
2091 // On déplie le fieldset Destinations et surfaces des constructions
2092 $this->byCssSelector("#fieldset-sousform-donnees_techniques-destinations-et-surfaces-des-constructions legend")->click();
2093 sleep(1);
2094 //On remplit des données techniques
2095 $this->byId("su_cstr_shon1")->value("120");
2096 // On clique sur ajouter
2097 $this->byXPath("//input[@value='Modifier']")->click();
2098 sleep(1);
2099 // On vérifie qu'il n'y ait pas d'erreur
2100 $this->verifynoerrors();
2101 // On vérifie le message
2102 $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector("#sousform-donnees_techniques .message")->text());
2103 //On clique sur retour
2104 $this->byCssSelector("#sousform-donnees_techniques .retour")->click();
2105 //}}}
2106 //
2107 //{{{ Clôture du nouveau dossier
2108 //On clique sur le menu "Recherche"
2109 $this->byLinkText("Recherche")->click();
2110 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2111 $this->verifyNoErrors();
2112 // On recherche le dossier crée
2113 $this->byId("dossier")->value(str_replace(' ', '', $dossier));
2114 // On clique sur le bouton recherche
2115 $this->byId("adv-search-submit")->click();
2116 // On clique sur le résultat
2117 $this->byLinkText($dossier)->click();
2118 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2119 $this->verifyNoErrors();
2120 //On clique sur l'onglet "instruction"
2121 $this->byId("instruction")->click();
2122 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2123 $this->verifyNoErrors();
2124 // On ajoute une instruction
2125 $this->byCssSelector("#sousform-instruction .add-16")->click();
2126 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2127 $this->verifyNoErrors();
2128 //On choisit l'instruction 'accepter un dossier sans réserve
2129 //[acceptation]'
2130 $this->select($this->byId("evenement"))->selectOptionByValue(81);
2131 // On clique sur ajouter
2132 $this->byXPath("//input[@value='Ajouter']")->click();
2133 // On vérifie qu'il n'y ait pas d'erreur
2134 $this->verifynoerrors();
2135 // On vérifie le message
2136 $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
2137 //On rafraichit la page pour vérifier que le dossier est clôturé
2138 $this->refresh();
2139 $this->assertEquals("Favorable", $this->byId("avis_decision")->text());
2140 //}}}
2141 //
2142 //{{{ Vérification des données techniques dans la visu DA
2143 //On clique sur le menu "Recherche"
2144 $this->byLinkText("Recherche")->click();
2145 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2146 $this->verifyNoErrors();
2147 // On recherche le dossier crée
2148 $this->byId("dossier")->value(str_replace(' ', '', $dossier));
2149 // On clique sur le bouton recherche
2150 $this->byId("adv-search-submit")->click();
2151 // On clique sur le résultat
2152 $this->byLinkText($dossier)->click();
2153 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2154 $this->verifyNoErrors();
2155 //On clique sur l'onglet "DA"
2156 $this->byId("dossier_autorisation")->click();
2157 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2158 $this->verifyNoErrors();
2159 // On ajoute une instruction
2160 $this->byCssSelector("#sousform-dossier_autorisation .consult-16")->click();
2161 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2162 $this->verifyNoErrors();
2163 // Affichage des données techniques
2164 $this->byId("donnees_techniques_da")->click();
2165 sleep(1);
2166 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2167 $this->verifyNoErrors();
2168 // On déplie le fieldset Construire
2169 $this->byCssSelector("#fieldset-sousform-donnees_techniques-construire legend")->click();
2170 sleep(1);
2171 // On déplie le fieldset Destinations et surfaces des constructions
2172 $this->byCssSelector("#fieldset-sousform-donnees_techniques-destinations-et-surfaces-des-constructions legend")->click();
2173 sleep(1);
2174 $this->assertEquals("120", $this->byId("su_cstr_shon1")->text());
2175 //On clique sur retour
2176 $this->byCssSelector("#sousform-donnees_techniques .retour")->click();
2177 // On se déconnecte
2178 $this->deconnect();
2179 //}}}
2180
2181 // Vérification du calcul de l'état du DA
2182 //{{{ Ajout de d'un nouveau dossier
2183 // On se connecte à l'application
2184 $this->login("guichet", "guichet");
2185 //On clique sur le menu des instructions
2186 $this->byLinkText("Nouveau Dossier")->click();
2187 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2188 $this->verifyNoErrors();
2189 //On ajoute un nouveau dossier
2190 $dossier = $this->addDossierInstruction( 1, 1, "test recalcul état DA");
2191 // On se déconnecte
2192 $this->deconnect();
2193 //}}}
2194 // On se connecte à l'application
2195 $this->login("instr", "instr");
2196 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2197 $this->verifyNoErrors();
2198 // On clique sur le lien "Mes encours" dans le menu
2199 $this->byLinkText("Mes Encours")->click();
2200 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2201 $this->verifyNoErrors();
2202 sleep(1);
2203 //On cherche le dossier d'instruction
2204 $this->byName("recherche")->value(str_replace(" ", "", $dossier));
2205 // On valide la recherche
2206 $this->byName("s1")->click();
2207 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2208 $this->verifyNoErrors();
2209 // On clique sur le dossier dernièrement créé
2210 $this->byLinkText($dossier)->click();
2211 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2212 $this->verifyNoErrors();
2213 $this->verifierEtatDA($dossier,81, "Accordé");
2214 // On se déconnecte
2215 $this->deconnect();
2216 //}}}
2217 //{{{ Ajout de d'un nouveau dossier
2218 // On se connecte à l'application
2219 $this->login("guichet", "guichet");
2220 //On clique sur le menu des instructions
2221 $this->byLinkText("Nouveau Dossier")->click();
2222 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2223 $this->verifyNoErrors();
2224 //On ajoute un nouveau dossier
2225 $dossier = $this->addDossierInstruction( 1, 1, "test recalcul état DA");
2226 // On se déconnecte
2227 $this->deconnect();
2228 //}}}
2229 // On se connecte à l'application
2230 $this->login("instr", "instr");
2231 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2232 $this->verifyNoErrors();
2233 // On clique sur le lien "Mes encours" dans le menu
2234 $this->byLinkText("Mes Encours")->click();
2235 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2236 $this->verifyNoErrors();
2237 sleep(1);
2238 //On cherche le dossier d'instruction
2239 $this->byClassName("champFormulaire")->value(str_replace(" ", "", $dossier));
2240 // On valide la recherche
2241 $this->byId("f1")->submit();
2242 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2243 $this->verifyNoErrors();
2244 // On clique sur le dossier dernièrement créé
2245 $this->byLinkText($dossier)->click();
2246 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2247 $this->verifyNoErrors();
2248 $this->verifierEtatDA($dossier,31, "Refusé");
2249 // On se déconnecte
2250 $this->deconnect();
2251 //}}}
2252 }
2253
2254 /*
2255 * Cette méthode teste l'envoi de message au référentiel ERP lors de l'ajout
2256 * d'instruction
2257 */
2258 public function test_15_envoi_de_message_erp(){
2259
2260 // On se connecte en tant que "admin"
2261 $this->login("admin", "admin");
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étrage Dossiers
2265 $this->byLinkText("Paramétrage Dossiers")->click();
2266 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2267 $this->verifyNoErrors();
2268 //On clique sur Service
2269 $this->byLinkText("Événement")->click();
2270 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2271 $this->verifyNoErrors();
2272 //Initialisation de la variable
2273 $evenements = array();
2274 //{{{ Ajout d'événements
2275 //On ajoute trois événements
2276 for ($i = 1 ; $i < 3 ; $i++){
2277 $evenements[] = $this->addEvenement("test_evenement_erp_".$i);
2278 }
2279 //}}}
2280
2281 //{{{ On change trois variables erp_service_accessibilite,
2282 // erp_service_securite et erp_service_conformite
2283 //On clique sur Administration
2284 $this->byLinkText("Administration")->click();
2285 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2286 $this->verifyNoErrors();
2287 //On clique sur Paramètre
2288 $this->byLinkText("Paramètre")->click();
2289 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2290 $this->verifyNoErrors();
2291 $erp_evenement_accepter_sans_reserve = $this->changeParametreEvenementErp("erp_evenement_accepter_sans_reserve", $evenements[0]);
2292 $erp_evenement_refuser_dossier = $this->changeParametreEvenementErp("erp_evenement_refuser_dossier", $evenements[1]);
2293 $option_referentiel_arrete = $this->changeParametreEvenementErp("option_referentiel_arrete", 'true');
2294 ///}}}
2295 // On se déconnecte
2296 $this->deconnect();
2297
2298 // On se connecte en tant que "guichet"
2299 $this->login("guichet", "guichet");
2300 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2301 $this->verifyNoErrors();
2302 //{{{On ajoute un dossier d'instruction
2303 //On clique sur Nouveau Dossier
2304 $this->byLinkText("Nouveau Dossier")->click();
2305 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2306 $this->verifyNoErrors();
2307 //On ajoute le dossier
2308 $dossier = $this->addDossierInstruction("1", "1");
2309 //}}}
2310 // On se déconnecte
2311 $this->deconnect();
2312
2313 // On se connecte en tant que "instr"
2314 $this->login("instr", "instr");
2315 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2316 $this->verifyNoErrors();
2317 //{{{ On ajoute trois événement
2318 //On clique sur Nouveau Dossier
2319 $this->byLinkText("Recherche")->click();
2320 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2321 $this->verifyNoErrors();
2322 //On cherche le dossier d'instruction
2323 $this->byId("dossier")->value(str_replace(" ", "", $dossier));
2324 // On valide la recherche
2325 $this->byId("adv-search-submit")->click();
2326 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2327 $this->verifyNoErrors();
2328 //On clique sur le dossier d'instruction
2329 $this->byLinkText($dossier)->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 Modifier
2333 $this->byClassName("edit-16")->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 erp
2337 $this->byId("erp")->click();
2338 //On valide le formulaire
2339 $this->byName("f1")->submit();
2340 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2341 $this->verifyNoErrors();
2342 // On vérifie le message
2343 $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message .text")->text());
2344 //On clique sur l'onglet instruction
2345 $this->byId("instruction")->click();
2346 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2347 $this->verifyNoErrors();
2348 //On ajoute trois consultations
2349 foreach ($evenements as $value) {
2350 $this->addInstruction($value);
2351 }
2352
2353 //On clique sur le + du tableau
2354 $this->byClassName("add-16")->click();
2355 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2356 $this->verifyNoErrors();
2357 //On choisit l'événement
2358 $this->select($this->byId("evenement"))->selectOptionByValue(81);
2359 //On valide le formulaire
2360 $this->byName("f2")->submit();
2361 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2362 $this->verifyNoErrors();
2363 // On vérifie que le message de validation est présent
2364 $this->assertContains('Vos modifications ont bien été enregistrées.', $this->byCssSelector("#sousform-instruction .message .text")->text());
2365 //On clique sur Retour
2366 $this->byLinkText("Retour")->click();
2367 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2368 $this->verifyNoErrors();
2369 //On clique sur l'instruction
2370 $this->byLinkText("accepter un dossier sans réserve")->click();
2371 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2372 $this->verifyNoErrors();
2373 //On récupère le numéro d'instruction
2374 $instruction = trim($this->byId("instruction")->text());
2375 //On la finalise
2376 $this->byClassName("finalise")->click();
2377 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2378 $this->verifyNoErrors();
2379 // On vérifie que le message de validation est présent
2380 $this->assertContains('La finalisation du document s\'est effectuée avec succès.', $this->byCssSelector("#sousform-instruction .message .text")->text());
2381 // On se déconnecte
2382 $this->deconnect();
2383
2384 // On se connecte en tant que "admin"
2385 $this->login("admin", "admin");
2386 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2387 $this->verifyNoErrors();
2388 //On clique sur instruction
2389 $this->byLinkText("Instruction")->click();
2390 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2391 $this->verifyNoErrors();
2392 //On clique sur Recherche
2393 $this->byLinkText("Recherche")->click();
2394 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2395 $this->verifyNoErrors();
2396 //On cherche le dossier d'instruction
2397 $this->byId("dossier")->value(str_replace(" ", "", $dossier));
2398 // On valide la recherche
2399 $this->byId("adv-search-submit")->click();
2400 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2401 $this->verifyNoErrors();
2402 //On clique sur le dossier d'instruction
2403 $this->byLinkText($dossier)->click();
2404 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2405 $this->verifyNoErrors();
2406 //On clique sur l'onglet instruction
2407 $this->byId("instruction")->click();
2408 //On clique sur l'instruction accepter un dossier sans réserve
2409 $this->byLinkText("accepter un dossier sans réserve")->click();
2410 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2411 $this->verifyNoErrors();
2412 //On la definalise
2413 $this->byClassName("definalise")->click();
2414 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2415 $this->verifyNoErrors();
2416 // On vérifie que le message de validation est présent
2417 $this->assertContains('La definalisation du document s\'est effectuée avec succès.', $this->byCssSelector("#sousform-instruction .message .text")->text());
2418 //On clique sur modifier
2419 $this->byCssSelector("#sousform-instruction .edit-16")->click();
2420 sleep(2);
2421 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2422 $this->verifyNoErrors();
2423 //On choisit un signataire Albert Dupont
2424 $this->select($this->byId("signataire_arrete"))->selectOptionByValue("1");
2425 //On remplit la date de retour sign
2426 $this->byId("date_retour_signature")->value(date('d/m/Y'));
2427 //On valide le formulaire
2428 $this->byName("f2")->submit();
2429 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2430 $this->verifyNoErrors();
2431 // On vérifie que le message de validation est présent
2432 $this->assertContains('Vos modifications ont bien été enregistrées.', $this->byCssSelector("#sousform-instruction .message .text")->text());
2433 // On vérifie que le message d'envoi est présent
2434 $this->assertContains('Le message a été transmis au référentiel arrêté.', $this->byCssSelector("#sousform-instruction .message .text")->text());
2435 //}}}
2436
2437 // On se déconnecte
2438 $this->deconnect();
2439
2440 // On se connecte en tant que "admin"
2441 $this->login("admin", "admin");
2442 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2443 $this->verifyNoErrors();
2444 //{{{ On remet les valeurs par défaut des paramètres
2445 //On clique sur Administration
2446 $this->byLinkText("Administration")->click();
2447 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2448 $this->verifyNoErrors();
2449 //On clique sur Paramètre
2450 $this->byLinkText("Paramètre")->click();
2451 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2452 $this->verifyNoErrors();
2453 $this->changeParametreEvenementErp("erp_evenement_accepter_sans_reserve", $erp_evenement_accepter_sans_reserve);
2454 $this->changeParametreEvenementErp("erp_evenement_refuser_dossier", $erp_evenement_refuser_dossier);
2455 $this->changeParametreEvenementErp("option_referentiel_arrete", $option_referentiel_arrete);
2456 //}}}
2457
2458 //On se déconnecte
2459 $this->logout();
2460 }
2461
2462 /*
2463 * Cette méthode teste l'envoi de message au référentiel ERP lors de la
2464 * modification d'un dossier d'insruction
2465 */
2466 public function test_16_envoi_de_message_erp_dossier_instruction(){
2467
2468 // On se connecte en tant que "admin"
2469 $this->login("admin", "admin");
2470 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2471 $this->verifyNoErrors();
2472
2473 //{{{ On change deux variables erp_nature_dat et erp_dossier_nature_pc
2474 //On clique sur Administration
2475 $this->byLinkText("Administration")->click();
2476 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2477 $this->verifyNoErrors();
2478 //On clique sur Paramètre
2479 $this->byLinkText("Paramètre")->click();
2480 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2481 $this->verifyNoErrors();
2482 //On change la valeur des paramètres
2483 $erp_nature_dat = $this->changeParametreEvenementErp("erp_nature_dat", "AT");
2484 $erp_dossier_nature_pc = $this->changeParametreEvenementErp("erp_dossier_nature_pc", "PCI");
2485 //}}}
2486 // On se déconnecte
2487 $this->deconnect();
2488
2489 //{{{Ajout d'un dossier AT par le guichet unique
2490 // On se connecte en tant que "guichet"
2491 $this->login("guichet", "guichet");
2492 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2493 $this->verifyNoErrors();
2494 //On clique sur Nouveau Dossier
2495 $this->byLinkText("Nouveau Dossier")->click();
2496 //On ajoute un dossier d'instruction de type AT
2497 $dossier = $this->addDossierInstruction(8, 8);
2498 //}}}
2499 // On se déconnecte
2500 $this->deconnect();
2501
2502 // On se connecte en tant que "instr"
2503 $this->login("instr", "instr");
2504 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2505 $this->verifyNoErrors();
2506 //{{{On change le dossier en a été qualifié
2507 //On clique sur Recherche
2508 $this->byLinkText("Recherche")->click();
2509 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2510 $this->verifyNoErrors();
2511 //On cherche le dossier d'instruction
2512 $this->byId("dossier")->value(str_replace(" ", "", $dossier));
2513 // On valide la recherche
2514 $this->byId("adv-search-submit")->click();
2515 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2516 $this->verifyNoErrors();
2517 //On clique sur le dossier d'instruction
2518 $this->byLinkText($dossier)->click();
2519 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2520 $this->verifyNoErrors();
2521 //On clique sur modifier
2522 $this->byClassName("edit-16")->click();
2523 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2524 $this->verifyNoErrors();
2525 //On décoche à qualifier
2526 $this->byId("a_qualifier")->click();
2527 //On valide le formulaire
2528 $this->byName("f1")->submit();
2529 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2530 $this->verifyNoErrors();
2531 // On vérifie que le message de validation est présent
2532 $this->assertContains('Vos modifications ont bien été enregistrées.',
2533 $this->byCssSelector(".message .text")->text());
2534 // On vérifie que le message d'envoi est présent
2535 $this->assertContains('Le message a été transmis au référentiel ERP.',
2536 $this->byCssSelector(".message .text")->text());
2537 //}}}
2538 // On se déconnecte
2539 $this->deconnect();
2540
2541 //{{{Ajout d'un dossier PC par le guichet unique
2542 // On se connecte en tant que "guichet"
2543 $this->login("guichet", "guichet");
2544 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2545 $this->verifyNoErrors();
2546 //On clique sur Nouveau Dossier
2547 $this->byLinkText("Nouveau Dossier")->click();
2548 //On ajoute un dossier d'instruction de type AT
2549 $dossier = $this->addDossierInstruction(1, 1);
2550 //}}}
2551 // On se déconnecte
2552 $this->deconnect();
2553
2554 // On se connecte en tant que "instr"
2555 $this->login("instr", "instr");
2556 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2557 $this->verifyNoErrors();
2558 //{{{On change le dossier en ERP
2559 //On clique sur Recherche
2560 $this->byLinkText("Recherche")->click();
2561 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2562 $this->verifyNoErrors();
2563 //On cherche le dossier d'instruction
2564 $this->byId("dossier")->value(str_replace(" ", "", $dossier));
2565 // On valide la recherche
2566 $this->byId("adv-search-submit")->click();
2567 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2568 $this->verifyNoErrors();
2569 //On clique sur le dossier d'instruction
2570 $this->byLinkText($dossier)->click();
2571 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2572 $this->verifyNoErrors();
2573 //On clique sur modifier
2574 $this->byClassName("edit-16")->click();
2575 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2576 $this->verifyNoErrors();
2577 //On décoche à qualifier
2578 $this->byId("a_qualifier")->click();
2579 //On coche ERP
2580 $this->byId("erp")->click();
2581 //On valide le formulaire
2582 $this->byName("f1")->submit();
2583 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2584 $this->verifyNoErrors();
2585 // On vérifie que le message de validation est présent
2586 $this->assertContains('Vos modifications ont bien été enregistrées.',
2587 $this->byCssSelector(".message .text")->text());
2588 // On vérifie que le message d'envoi est présent
2589 $this->assertContains('Le message a été transmis au référentiel ERP.',
2590 $this->byCssSelector(".message .text")->text());
2591 //}}}
2592 // On se déconnecte
2593 $this->deconnect();
2594
2595 // On se connecte en tant que "admin"
2596 $this->login("admin", "admin");
2597 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2598 $this->verifyNoErrors();
2599
2600 //{{{ On change deux variables erp_nature_dat et erp_dossier_nature_pc
2601 //On clique sur Administration
2602 $this->byLinkText("Administration")->click();
2603 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2604 $this->verifyNoErrors();
2605 //On clique sur Paramètre
2606 $this->byLinkText("Paramètre")->click();
2607 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2608 $this->verifyNoErrors();
2609 //On change la valeur des paramètres
2610 $this->changeParametreEvenementErp("erp_nature_dat", $erp_nature_dat);
2611 $this->changeParametreEvenementErp("erp_dossier_nature_pc", $erp_dossier_nature_pc);
2612 //}}}
2613
2614 //On se déconnecte
2615 $this->logout();
2616 }
2617
2618 /**
2619 * test d'annulation d'un DA.
2620 */
2621 function test_17_di_annulation() {
2622 // On se connecte en tant que "admin"
2623 $this->login("admin", "admin");
2624 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2625 $this->verifyNoErrors();
2626
2627 //On clique sur Administration
2628 $this->byLinkText("Paramétrage Dossiers")->click();
2629 // Ajout d'un type de DI ANNULATION
2630 $this->byLinkText("Type DI")->click();
2631 $this->byCssSelector(".add-16")->click();
2632 $this->byId("code")->value('ANNUL');
2633 $this->byId("libelle")->value('Demande d\'annulation');
2634 $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByValue('1');
2635 $this->byId('suffixe')->click();
2636 $this->select($this->byName("mouvement_sitadel"))->selectOptionByValue('SUPPRESSION');
2637 // On clique sur ajouter
2638 $this->byXPath("//input[@value='Ajouter']")->click();
2639 // On vérifie qu'il n'y ait pas d'erreur
2640 $this->verifynoerrors();
2641 // On vérifie que le message de validation est présent
2642 $this->assertContains('Vos modifications ont bien été enregistrées.',
2643 $this->byCssSelector(".message .text")->text());
2644 //On clique sur le bouton retour
2645 $this->byLinkText("Retour")->click();
2646 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2647 $this->verifyNoErrors();
2648 //On saisie le nom due l'événement dans la recherche simple
2649 $this->byClassName("champFormulaire")->value("ANNUL");
2650 //On valide la recherche
2651 $this->byName('s1')->submit();
2652 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2653 $this->verifyNoErrors();
2654 //On clique sur l'événement
2655 $this->byLinkText("ANNUL")->click();
2656 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2657 $this->verifyNoErrors();
2658 // Récupération de l'id du type de DI
2659 $idDIAnnul = $this->byId("dossier_instruction_type")->text();
2660 // Ajout d'un type de demande ANNULATION
2661 $this->byLinkText("Type")->click();
2662 $this->byCssSelector(".add-16")->click();
2663 $this->byId("code")->value('ANNUL');
2664 $this->byId("libelle")->value('Demande d\'annulation');
2665 $this->select($this->byName("groupe"))->selectOptionByValue('1');
2666 $this->select($this->byName("dossier_autorisation_type_detaille"))->selectOptionByValue('1');
2667 $this->select($this->byName("demande_nature"))->selectOptionByValue('2');
2668 $this->select($this->byName("etats_autorises[]"))
2669 ->selectOptionByValue("notifier");
2670 $this->select($this->byName("contraintes"))->selectOptionByValue('avec_recup');
2671 $this->select($this->byName("dossier_instruction_type"))->selectOptionByValue($idDIAnnul);
2672 $this->select($this->byName("evenement"))->selectOptionByValue('25');
2673 // On clique sur ajouter
2674 $this->byXPath("//input[@value='Ajouter']")->click();
2675 // On vérifie qu'il n'y ait pas d'erreur
2676 $this->verifynoerrors();
2677 // On vérifie que le message de validation est présent
2678 $this->assertContains('Vos modifications ont bien été enregistrées.',
2679 $this->byCssSelector(".message .text")->text());
2680 //On clique sur le bouton retour
2681 $this->byLinkText("Retour")->click();
2682 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2683 $this->verifyNoErrors();
2684 //On saisie le nom due l'événement dans la recherche simple
2685 $this->byClassName("champFormulaire")->value("ANNUL");
2686 //On valide la recherche
2687 $this->byName('s1')->submit();
2688 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2689 $this->verifyNoErrors();
2690 //On clique sur l'événement
2691 $this->byLinkText("ANNUL")->click();
2692 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2693 $this->verifyNoErrors();
2694 // Récupération de l'id de la demande
2695 $idDemandeAnnul = $this->byId("demande_type")->text();
2696 // Modification de l'action d'abandon de dossier
2697 $this->byLinkText("Action")->click();
2698 // On vérifie qu'il n'y ait pas d'erreur
2699 $this->verifynoerrors();
2700 // Modification de l'action d'abandon de dossier
2701 $this->byLinkText("abandon")->click();
2702 // Modification de l'action d'abandon de dossier
2703 $this->byCssSelector(".edit-16")->click();
2704 // On vérifie qu'il n'y ait pas d'erreur
2705 $this->verifynoerrors();
2706 $this->byId("regle_avis")->clear();
2707 $this->byId("regle_avis")->value('avis_decision');
2708 $this->byId("regle_date_decision")->clear();
2709 $this->byId("regle_date_decision")->value('date_evenement');
2710 // On clique sur ajouter
2711 $this->byXPath("//input[@value='Modifier']")->click();
2712 // On vérifie qu'il n'y ait pas d'erreur
2713 $this->verifynoerrors();
2714 // On vérifie que le message de validation est présent
2715 $this->assertContains('Vos modifications ont bien été enregistrées.',
2716 $this->byCssSelector(".message .text")->text());
2717 // On se déconnecte
2718 $this->deconnect();
2719 // On se connecte en tant que "admin"
2720 $this->login("guichet", "guichet");
2721 //On clique sur le menu des instructions
2722 $this->byLinkText("Nouveau Dossier")->click();
2723 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2724 $this->verifyNoErrors();
2725 // Création d'un DI
2726 $dossier = $this->addDossierInstruction(1, 1, "test annulation");
2727 // On se déconnecte
2728 $this->deconnect();
2729 // On se connecte en tant que "instr"
2730 $this->login("instr", "instr");
2731 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2732 $this->verifyNoErrors();
2733 // On clique sur le lien "Mes encours" dans le menu
2734 $this->byLinkText("Recherche")->click();
2735 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2736 $this->verifyNoErrors();
2737 $this->byId("dossier")->value(str_replace(" ", "", $dossier));
2738 $this->byName("advanced-search-submit")->click();
2739 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2740 $this->verifyNoErrors();
2741 // On clique sur le dossier dernièrement créé
2742 $this->byLinkText($dossier)->click();
2743 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2744 $this->verifyNoErrors();
2745 // On clique sur l'onglet "Instruction"
2746 $this->byId("dossier_autorisation")->click();
2747 sleep(1);
2748 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2749 $this->verifyNoErrors();
2750 // Verification de l'état du DA correspondant
2751 $this->assertContains('En cours', $this->byCssSelector("#sousform-dossier_autorisation")->text());
2752 // On se déconnecte
2753 $this->deconnect();
2754 // On se connecte en tant que "guichet"
2755 $this->login("guichet", "guichet");
2756 //On clique sur le menu des instructions
2757 $this->byLinkText("Dossier En Cours")->click();
2758 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2759 $this->verifyNoErrors();
2760 // Création d'un DI
2761 $dossier = $this->addDossierInstruction(
2762 1,
2763 $idDemandeAnnul,
2764 "test annulation",
2765 2,
2766 $dossier,
2767 false);
2768 // On se déconnecte
2769 $this->deconnect();
2770 // On se connecte en tant que "instr"
2771 $this->login("instr", "instr");
2772 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2773 $this->verifyNoErrors();
2774 // On clique sur le lien "Mes encours" dans le menu
2775 $this->byLinkText("Recherche")->click();
2776 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2777 $this->verifyNoErrors();
2778 $this->byId("dossier")->value(str_replace(" ", "", $dossier));
2779 $this->byName("advanced-search-submit")->click();
2780 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2781 $this->verifyNoErrors();
2782 // On clique sur le dossier dernièrement créé
2783 $this->byLinkText($dossier)->click();
2784 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2785 $this->verifyNoErrors();
2786 // On clique sur l'onglet "Instruction"
2787 $this->byId("dossier_autorisation")->click();
2788 sleep(1);
2789 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2790 $this->verifyNoErrors();
2791 // Verification de l'état du DA correspondant
2792 $this->assertContains('Abandonné', $this->byCssSelector("#sousform-dossier_autorisation")->text());
2793 //On se déconnecte
2794 $this->logout();
2795 }
2796
2797 /**
2798 * Ajout d'un dossier d'instruction par le guichet unique
2799 *
2800 * @param int $dossier_autorisation_type_detaille L'identifiant du type détaillé
2801 * de dossier d'autorisation
2802 * @param int $demande_type L'identifiant du type de la demande
2803 * @param int $type Type de la demande : nouveau dossier ou dossier existant
2804 * @return le numéro de dossier d'instruction qui vient d'être créé
2805 */
2806 public function addDossierInstruction($dossier_autorisation_type_detaille,
2807 $demande_type, $nom_petit = "test recopie", $type = 1, $dossier = "",
2808 $petit = true){
2809
2810 if ($type===1){
2811 //On choisit le type détaillé de dossier d'autorisation
2812 $this->select($this->byName("dossier_autorisation_type_detaille"))->selectOptionByValue($dossier_autorisation_type_detaille);
2813 }
2814 else {
2815 sleep(2);
2816 // On remplit le champ de recherche simple
2817 $this->byCssSelector("input[name='recherche']")->value(str_replace(' ', '', $dossier));
2818 // On clique sur le bouton recherche
2819 $this->byCssSelector(".ui-button")->click();sleep(1);
2820 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2821 $this->verifyNoErrors();
2822 // On clique sur le résultat
2823 $this->byId("action-tab-demande_dossier_encours-left-consulter-".str_replace(' ', '', $dossier))->click();
2824 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2825 $this->verifyNoErrors();
2826 }
2827 //On choisit le type de demande
2828 $this->select($this->byName("demande_type"))->selectOptionByValue($demande_type);
2829 if($petit) {
2830 //On clique sur "Saisir le pétitionnaire principal"
2831 $this->byId("add_petitionnaire_principal")->click();
2832 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2833 $this->verifyNoErrors();
2834 //On saisie le nom du pétitionnaire principal
2835 $this->byId("particulier_nom")->value($nom_petit);
2836 // On clique sur ajouter
2837 $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
2838 // On vérifie qu'il n'y ait pas d'erreur
2839 $this->verifynoerrors();
2840 //On vérifie que le pétitionnaire s'est bien ajouté
2841 // On vérifie le message
2842 $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector("#sousform-petitionnaire .message")->text());
2843 // On clique sur le bouton retour
2844 $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
2845 // On vérifie que le text est présent
2846 $this->assertContains($nom_petit,$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
2847 }
2848 // On clique sur ajouter
2849 $this->byXPath("//input[@value='Ajouter']")->click();
2850 // On vérifie qu'il n'y ait pas d'erreur
2851 $this->verifynoerrors();
2852 // On vérifie le message
2853 $this->assertContains("Création du dossier",$this->byCssSelector(".message")->text());
2854 //On récupère le numéro de dossier d'instruction créé
2855 if ($type===1){
2856 preg_match('/(PC|AT)[0-9 ]*(P0)/', $this->byCssSelector("#tabs-1 .message")->text(), $dossier);
2857 }
2858 elseif ($type===2){
2859 preg_match('/(PC|AT)[0-9 ]*[A-Z]*(0)[1-9]{1}/', $this->byCssSelector("#tabs-1 .message")->text(), $dossier);
2860 }
2861 else{
2862 preg_match('/(PC|AT)[0-9 ]*[A-Z]*(0)[1-9]{1}/', $this->byCssSelector("#tabs-1 .message")->text(), $dossier);
2863 }
2864 return $dossier[0];
2865 }
2866
2867 /*
2868 * Ajoute un événement
2869 * @param $libelle le libelle de l'événement
2870 *
2871 * @return l'identifiant de l'événement
2872 */
2873 private function addEvenement($libelle){
2874
2875 //On clique sur le + du tableau
2876 $this->byClassName("add-16")->click();
2877 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2878 $this->verifyNoErrors();
2879 //On remplit les champs
2880 $this->byId("libelle")->value($libelle);
2881 $this->select($this->byName("etats_depuis_lequel_l_evenement_est_disponible[]"))
2882 ->selectOptionByValue("notifier");
2883 $this->select($this->byName("dossier_instruction_type[]"))
2884 ->selectOptionByValue("1");
2885 //On valide le formulaire
2886 $this->byName('f1')->submit();
2887 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2888 $this->verifyNoErrors();
2889 // On vérifie que le message de validation est présent
2890 $this->assertContains('Vos modifications ont bien été enregistrées.', $this->byCssSelector(".message .text")->text());
2891 //On clique sur le bouton retour
2892 $this->byLinkText("Retour")->click();
2893 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2894 $this->verifyNoErrors();
2895 //On saisie le nom due l'événement dans la recherche simple
2896 $this->byClassName("champFormulaire")->value($libelle);
2897 //On valide la recherche
2898 $this->byName('s1')->submit();
2899 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2900 $this->verifyNoErrors();
2901 //On clique sur l'événement
2902 $this->byLinkText($libelle)->click();
2903 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2904 $this->verifyNoErrors();
2905 //On récupère l'identifiant
2906 $evenementId = trim($this->byId("evenement")->text());
2907 //On clique sur le bouton Retour
2908 $this->byLinkText("Retour")->click();
2909 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2910 $this->verifyNoErrors();
2911 //On retourne l'identifiant
2912 return $evenementId;
2913 }
2914
2915 /*
2916 * Modifie la valeur du paramètre du numéro de'événement pour le message ERP
2917 * @param string $parametre le libelle du paramètre
2918 * @param string $valeur la valeur à renseigner
2919 *
2920 * @return string la valeur précédente du paramètre
2921 */
2922 private function changeParametreEvenementErp($parametre, $valeur){
2923
2924 //On vide le champ
2925 $this->byClassName("champFormulaire")->clear();
2926 //On saisie le nom de la variable dans la recherche simple
2927 $this->byClassName("champFormulaire")->value($parametre);
2928 //On valide la recherche
2929 $this->byName('s1')->submit();
2930 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2931 $this->verifyNoErrors();
2932 //On clique sur le paramètre
2933 $this->byLinkText($parametre)->click();
2934 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2935 $this->verifyNoErrors();
2936 //On clique sur modifier dans le portail d'action
2937 $this->byClassName("edit-16")->click();
2938 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2939 $this->verifyNoErrors();
2940 //On récupère la valeur actuelle du paramètre
2941 $parametre = trim($this->byId("valeur")->attribute('value'));
2942 //On vide le champ
2943 $this->byId("valeur")->clear();
2944 //On change la valeur du paramètre
2945 $this->byId("valeur")->value($valeur);
2946 //On valide le formulaire
2947 $this->byName('f1')->submit();
2948 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2949 $this->verifyNoErrors();
2950 // On vérifie que le message de validation est présent
2951 $this->assertContains('Vos modifications ont bien été enregistrées.', $this->byCssSelector(".message .text")->text());
2952 //On clique sur le bouton retour
2953 $this->byLinkText("Retour")->click();
2954 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2955 $this->verifyNoErrors();
2956 //On clique sur le bouton retour
2957 $this->byLinkText("Retour")->click();
2958 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2959 $this->verifyNoErrors();
2960 //On retourne la valeur
2961 return $parametre;
2962 }
2963
2964 /*
2965 * Ajoute une instruction
2966 * @param int $service l'identifiant du service
2967 */
2968 private function addInstruction($evenement, $erp = true){
2969
2970 //On clique sur le + du tableau
2971 $this->byClassName("add-16")->click();
2972 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2973 $this->verifyNoErrors();
2974 //On choisit l'événement
2975 $this->select($this->byId("evenement"))->selectOptionByValue($evenement);
2976 //On valide le formulaire
2977 $this->byName("f2")->submit();
2978 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2979 $this->verifyNoErrors();
2980 // On vérifie que le message de validation est présent
2981 $this->assertContains('Vos modifications ont bien été enregistrées.', $this->byCssSelector("#sousform-instruction .message .text")->text());
2982 if($erp) {
2983 // On vérifie que le message d'envoi est présent
2984 $this->assertContains('Le message a été transmis au référentiel ERP.', $this->byCssSelector("#sousform-instruction .message .text")->text());
2985 }
2986 //On clique sur le bouton retour
2987 $this->byLinkText("Retour")->click();
2988 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2989 $this->verifyNoErrors();
2990 }
2991
2992 /**
2993 * Permet de vérifier l'état d'un DA en fonction de l'état de ses DI.
2994 * @param string $dossier numéro de dossier
2995 * @param integer $event numéro d'événement
2996 * @param string $etat état du DA
2997 */
2998 private function verifierEtatDA($dossier, $event, $etat) {
2999 // On clique sur l'onglet "DA"
3000 $this->byId("dossier_autorisation")->click();
3001 sleep(1);
3002 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
3003 $this->verifyNoErrors();
3004 $this->assertContains('En cours', $this->byCssSelector("#sousform-dossier_autorisation")->text());
3005 // retour sur l'ajout d'événement
3006 $this->byId("instruction")->click();
3007 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
3008 $this->verifyNoErrors();
3009 $this->addInstruction($event, false);
3010 // On clique sur l'onglet "DA"
3011 $this->byId("dossier_autorisation")->click();
3012 sleep(1);
3013 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
3014 $this->verifyNoErrors();
3015 $this->assertContains($etat, $this->byCssSelector("#sousform-dossier_autorisation")->text());
3016 }
3017
3018 public function test_18_verification_references_cadastrales(){
3019
3020
3021 //{{{ On ajoute un nouveau dossier }}}
3022 // On se connecte à l'application
3023 $this->login("guichet", "guichet");
3024 // On clique sur le menu "Nouveau Dossier"
3025 $this->byLinkText("Nouveau Dossier")->click();
3026 // On vérifie qu'il n'y ait pas d'erreur
3027 $this->verifynoerrors();
3028 // On vérifie le nom de l'onglet
3029 $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
3030 // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
3031 $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel("Permis de construire pour une maison individuelle et / ou ses annexes");
3032 // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
3033 $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
3034 // On clique pour ajouter un pétitionnaire principale
3035 $this->byId("add_petitionnaire_principal")->click();
3036 // On remplit le champ
3037 $this->byId("particulier_nom")->value("DURAND");
3038 // On remplit le champ
3039 $this->byId("particulier_prenom")->value("MICKAEL");
3040 // On clique sur ajouter
3041 $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
3042 // On vérifie qu'il n'y ait pas d'erreur
3043 $this->verifynoerrors();
3044 // On vérifie le message
3045 $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-petitionnaire .message")->text());
3046 // On clique sur le bouton retour
3047 $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
3048 // On vérifie que le text est présent
3049 $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
3050 // On clique sur ajouter
3051 $this->byXPath("//input[@value='Ajouter']")->click();
3052 // On vérifie qu'il n'y ait pas d'erreur
3053 $this->verifynoerrors();
3054 // On vérifie le message
3055 $this->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°[\s\S]*$/",$this->byCssSelector(".message")->text());
3056 // Récupération du numéro de dossier
3057 preg_match('/(PC)[0-9 ]*(P0)/', $this->byCssSelector(".message .text")->text(), $dossier);
3058 $dossier_libelle = $dossier[0];
3059 $dossier = str_replace(' ', '', $dossier_libelle);
3060 //On se déconnecte
3061 $this->deconnect();
3062
3063 //{{{ On modifie les références cadastrales }}}
3064 // On se connecte en tant que "instr"
3065 $this->login("instr", "instr");
3066 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
3067 $this->verifyNoErrors();
3068 // On clique sur le lien "Mes encours" dans le menu
3069 $this->byLinkText("Recherche")->click();
3070 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
3071 $this->verifyNoErrors();
3072 $this->byId("dossier")->value($dossier);
3073 $this->byName("advanced-search-submit")->click();
3074 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
3075 $this->verifyNoErrors();
3076 // On clique sur le dossier dernièrement créé
3077 $this->byLinkText($dossier_libelle)->click();
3078 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
3079 $this->verifyNoErrors();
3080 //On clique sur Modifier
3081 $this->byClassName("edit-16")->click();
3082 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
3083 $this->verifyNoErrors();
3084 // On modifie les références cadastrales
3085
3086 //On déplie le fieldset
3087 $this->byCssSelector("#fieldset-form-dossier_instruction-localisation-du-terrain legend")->click();
3088 sleep(1);
3089 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
3090 $this->verifyNoErrors();
3091 //On saisit les références cadastrale
3092 $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(1)")->value("001");
3093 $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(2)")->value("DC");
3094 // On valide le formulaire
3095 $this->byXPath("//input[@value='Modifier']")->click();
3096 //Un alert javascript doit apparaître, on vérifie le message
3097 $this->assertEquals("Les références cadastrales saisies sont incorrectes. Veuillez les corriger.", $this->alertText());
3098 // On valide l'alert
3099 $this->acceptAlert();sleep(1);
3100 //On ajoute la référence
3101 $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(3)")->value("0015");
3102 //On valide le formulaire
3103 $this->byXPath("//input[@value='Modifier']")->click();
3104 }
3105 }
3106
3107 ?>

Properties

Name Value
svn:keywords Id

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26