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

Contents of /trunk/tests/testInstruction.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2907 - (show annotations)
Wed Apr 2 14:15:40 2014 UTC (10 years, 10 months ago) by nhaye
File size: 129278 byte(s)
Correction des bugs existant dans les tests sur les instructions

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

Properties

Name Value
svn:keywords Id

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26