/[openfoncier]/branches/3.14.x/tests/testInstruction.php
ViewVC logotype

Contents of /branches/3.14.x/tests/testInstruction.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3670 - (show annotations)
Mon Oct 12 16:50:05 2015 UTC (9 years, 3 months ago) by nmeucci
File size: 158812 byte(s)
Correction du test de l'instruction

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

Properties

Name Value
svn:keywords Id

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26