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

Contents of /trunk/tests/testInstruction.php

Parent Directory Parent Directory | Revision Log Revision Log


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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26