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

Contents of /trunk/tests/testInstruction.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2567 - (show annotations)
Tue Dec 3 16:45:16 2013 UTC (11 years, 2 months ago) by softime
File size: 44150 byte(s)
Correction du test pour faire une recherche sur le dossier d'instruction

1 <?php
2 /**
3 *
4 *
5 * @package openfoncier
6 * @version SVN : $Id$
7 */
8
9 //
10 require_once "base.php";
11
12 /**
13 *
14 */
15 class Instruction extends Base2TestCase {
16
17 /**
18 * Ce test vise uniquement à vérifier que les écrans correspondant à chaque
19 * entrée de menu ne génère pas une erreur de base de données
20 */
21 public function test_01_ouverture_de_chaque_ecran_par_l_instructeur() {
22 //
23 $this->login("instr", "instr");
24 //
25 $this->byLinkText("Mes Encours")->click();
26 $this->verifyNoErrors();
27 $this->assertEquals("DI", $this->byXPath("//a[@href='#tabs-1']")->text());
28 //
29 $this->byLinkText("Tous Les Encours")->click();
30 $this->verifyNoErrors();
31 $this->assertEquals("DI", $this->byXPath("//a[@href='#tabs-1']")->text());
32 //
33 $this->byLinkText("Mes Clôturés")->click();
34 $this->verifyNoErrors();
35 $this->assertEquals("DI", $this->byXPath("//a[@href='#tabs-1']")->text());
36 //
37 $this->byLinkText("Tous Les Clôturés")->click();
38 $this->verifyNoErrors();
39 $this->assertEquals("DI", $this->byXPath("//a[@href='#tabs-1']")->text());
40 //
41 $this->byLinkText("Recherche")->click();
42 $this->verifyNoErrors();
43 $this->assertEquals("DI", $this->byXPath("//a[@href='#tabs-1']")->text());
44 //
45 $this->byLinkText("Dossiers À Qualifier")->click();
46 $this->verifyNoErrors();
47 $this->assertEquals("dossier", $this->byCssSelector(".col-1 .name a")->text());
48 //
49 $this->byLinkText("Mes Retours")->click();
50 $this->verifyNoErrors();
51 $this->assertEquals("dossier", $this->byCssSelector(".col-1 .name a")->text());
52 //
53 $this->byLinkText("Tous Les Retours")->click();
54 $this->verifyNoErrors();
55 $this->assertEquals("dossier", $this->byCssSelector(".col-1 .name a")->text());
56 //
57 $this->byLinkText("Mes Messages")->click();
58 $this->verifyNoErrors();
59 $this->assertEquals("dossier", $this->byCssSelector(".col-1 .name a")->text());
60 //
61 $this->byLinkText("Tous Les Messages")->click();
62 $this->verifyNoErrors();
63 $this->assertEquals("dossier", $this->byCssSelector(".col-1 .name a")->text());
64 //
65 $this->byCssSelector("a.commission_mes_retours-16")->click();
66 $this->verifyNoErrors();
67 $this->assertEquals("dossier", $this->byCssSelector(".col-1 .name a")->text());
68 //
69 $this->byCssSelector("a.commission_tous_retours-16")->click();
70 $this->verifyNoErrors();
71 $this->assertEquals("dossier", $this->byCssSelector(".col-1 .name a")->text());
72
73 //
74 $this->logout();
75 }
76
77 /**
78 *
79 */
80 public function test_02_visualisation_di_et_da_par_l_instructeur_en_charge() {
81
82 // On se connecte en tant que "instr"
83 $this->login("instr", "instr");
84 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
85 $this->verifyNoErrors();
86 // On clique sur le lien "Mes encours" dans le menu
87 $this->byLinkText("Mes Encours")->click();
88 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
89 $this->verifyNoErrors();
90 // On clique sur le lien "AZ0130551200001P0" dans le tableau
91 $this->byLinkText("AZ 013055 12 00001P0")->click();
92 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
93 $this->verifyNoErrors();
94 // On vérifie que le breadcrumb est correct
95 $this->assertEquals("AZ 013055 12 00001P0", $this->byId("dossier_libelle")->text());
96 // On clique sur l'onglet "Instruction"
97 $this->byId("instruction")->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 l'onglet "Consultation(s)"
101 $this->byId("consultation")->click();
102 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
103 $this->verifyNoErrors();
104 // On clique sur l'onglet "Lot(s)"
105 $this->byId("lot")->click();
106 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
107 $this->verifyNoErrors();
108 // On clique sur l'onglet "Message(s)"
109 $this->byId("dossier_message")->click();
110 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
111 $this->verifyNoErrors();
112 // On clique sur l'onglet "Commission(s)"
113 $this->byId("dossier_commission")->click();
114 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
115 $this->verifyNoErrors();
116 // On clique sur l'onglet "Bloc-note"
117 $this->byId("blocnote")->click();
118 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
119 $this->verifyNoErrors();
120 // On clique sur l'onglet "DA"
121 $this->byId("dossier_autorisation")->click();
122 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
123 $this->verifyNoErrors();
124 // On clique sur le lien "AZ0130551200001" dans le tableau
125 $this->byLinkText("AZ 013055 12 00001")->click();
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 breadcrumb est correct
129 $this->assertEquals("AZ 013055 12 00001", $this->byCssSelector(".form-content #dossier_autorisation_libelle")->text());
130 // On clique sur l'onglet "Dossier(s) d'instruction"
131 $this->byId("dossier_instruction")->click();
132 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
133 $this->verifyNoErrors();
134 // On clique sur le lien "AZ0130551200001P0" dans le tableau
135 $this->byLinkText("AZ 013055 12 00001P0")->click();
136 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
137 $this->verifyNoErrors();
138 // On vérifie que le breadcrumb est correct
139 $this->assertEquals("AZ 013055 12 00001P0", $this->byId("dossier_libelle")->text());
140 // On se déconnecte
141 $this->logout();
142 }
143
144 /**
145 *
146 */
147 public function test_03_informations_du_widget_profil_instructeur() {
148 // On se connecte en tant que "instr"
149 $this->login("instr", "instr");
150 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
151 $this->verifyNoErrors();
152 // On vérifie que le titre du widget est correct
153 $this->assertEquals("Infos profil", $this->byCssSelector("#widget_2 .widget-header h3")->text());
154 // On vérifie que le profil est bon
155 $this->assertEquals("INSTRUCTEUR", $this->byCssSelector(".profil-infos-profil span.value")->text());
156 // On vérifie que le nom de l'instructeur affiché est le bon
157 $this->assertEquals("Louis Laurent", $this->byCssSelector(".profil-infos-nom span.value")->text());
158 // On vérifie que la division de l'instructeur affichée est la bonne
159 $this->assertEquals("H", $this->byCssSelector(".profil-infos-division span.value")->text());
160 // On se déconnecte
161 $this->byLinkText("Déconnexion")->click();
162 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
163 $this->verifyNoErrors();
164 // On se connecte en tant que "instr"
165 $this->login("instr1", "instr");
166 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
167 $this->verifyNoErrors();
168 // On vérifie que le titre du widget est correct
169 $this->assertEquals("Infos profil", $this->byCssSelector("#widget_2 .widget-header h3")->text());
170 // On vérifie que le profil est bon
171 $this->assertEquals("INSTRUCTEUR", $this->byCssSelector(".profil-infos-profil span.value")->text());
172 // On vérifie que le nom de l'instructeur affiché est le bon
173 $this->assertEquals("Martine Nadeau", $this->byCssSelector(".profil-infos-nom span.value")->text());
174 // On vérifie que la division de l'instructeur affichée est la bonne
175 $this->assertEquals("H", $this->byCssSelector(".profil-infos-division span.value")->text());
176 // On se déconnecte
177 $this->byLinkText("Déconnexion")->click();
178 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
179 $this->verifyNoErrors();
180 // On se connecte en tant que "instr"
181 $this->login("instr2", "instr");
182 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
183 $this->verifyNoErrors();
184 // On vérifie que le titre du widget est correct
185 $this->assertEquals("Infos profil", $this->byCssSelector("#widget_2 .widget-header h3")->text());
186 // On vérifie que le profil est bon
187 $this->assertEquals("INSTRUCTEUR", $this->byCssSelector(".profil-infos-profil span.value")->text());
188 // On vérifie que le nom de l'instructeur affiché est le bon
189 $this->assertEquals("Roland Richard", $this->byCssSelector(".profil-infos-nom span.value")->text());
190 // On vérifie que la division de l'instructeur affichée est la bonne
191 $this->assertEquals("J", $this->byCssSelector(".profil-infos-division span.value")->text());
192 // On se déconnecte
193 $this->logout();
194 }
195
196 /**
197 * Ajout d'instructions par l'instructeur sur le dossier DP0130551200001P0
198 * Modification d'un événement
199 */
200 public function test_04_ajout_instructions_par_instructeur() {
201
202 // On se connecte en tant que "admin"
203 $this->login("admin", "admin");
204 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
205 $this->verifyNoErrors();
206 // On clique sur le lien "Paramétrage Dossiers" dans le menu
207 $this->byLinkText("Paramétrage Dossiers")->click();
208 // On clique sur le sousmenu "Événement"
209 $this->byLinkText("Événement")->click();
210 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
211 $this->verifyNoErrors();
212 // On remplis le champs de recherche simple
213 $this->byCssSelector("input[name='recherche']")->value('CDEC');
214 // On clique sur le bouton recherche
215 $this->byCssSelector(".ui-button")->click();
216 // On clique sur le résultat
217 $this->byLinkText("CDEC majoration appel decision")->click();
218 // On clique sur le bouton "Modifier"
219 $this->byId('action-form-evenement-modifier')->click();
220 // On modifie le champ restriction avec des données erronées
221 $this->byId('restriction')->clear();
222 $this->byId('restriction')->value("date_evenement >= champ_errone + 1");
223 // On valide la modification
224 $this->byCssSelector("input[value='Modifier']")->click();
225 // On vérifie le message de validation
226 $this->assertRegExp("/^[\s\S]*Le champ champ_errone n'est pas utilisable pour le champ restriction[\s\S]*$/",$this->byCssSelector("#tabs-1 .message")->text());
227 // On modifie le champ restriction pour qu'il retourne une erreur au
228 // moment de l'ajout de l'instruction
229 $this->byId('restriction')->clear();
230 $this->byId('restriction')->value("date_evenement >= date_evenement + 1");
231 // On valide la modification
232 $this->byCssSelector("input[value='Modifier']")->click();
233 // On vérifie le message de validation
234 $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#tabs-1 .message")->text());
235 // On se déconnecte
236 $this->deconnect();
237 // On se connecte en tant que "instr"
238 $this->login("instr", "instr");
239 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
240 $this->verifyNoErrors();
241 // On clique sur le lien "Mes encours" dans le menu
242 $this->byLinkText("Mes Encours")->click();
243 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
244 $this->verifyNoErrors();
245 sleep(1);
246 // On clique sur le lien "AZ0130551200001P0" dans le tableau
247 $this->byLinkText("DP 013055 12 00001P0")->click();
248 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
249 $this->verifyNoErrors();
250 // On clique sur l'onglet "Instruction"
251 $this->byId("instruction")->click();
252 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
253 $this->verifyNoErrors();
254 //Ajout d'une instruction simple
255 // On clique sur le lien d'ajout dans le tableau
256 $this->byCssSelector(".actions-max-1 a")->click();
257 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
258 $this->verifyNoErrors();
259 //On choisi un événement
260 $this->select($this->byId("evenement"))->selectOptionByValue("22");
261 //On valide le formulaire
262 $this->byXPath("//input[@value='Ajouter']")->click();
263 // On vérifie le mesage d'erreur
264 $this->assertRegExp('/.*Restriction non valide*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
265 // On se déconnecte
266 $this->deconnect();
267 // On se connecte en tant que "admin"
268 $this->login("admin", "admin");
269 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
270 $this->verifyNoErrors();
271 // On clique sur le lien "Paramétrage Dossiers" dans le menu
272 $this->byLinkText("Paramétrage Dossiers")->click();
273 // On clique sur le sousmenu "Événement"
274 $this->byLinkText("Événement")->click();
275 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
276 $this->verifyNoErrors();
277 // On remplis le champs de recherche simple
278 $this->byCssSelector("input[name='recherche']")->value('CDEC');
279 // On clique sur le bouton recherche
280 $this->byCssSelector(".ui-button")->click();
281 // On clique sur le résultat
282 $this->byLinkText("CDEC majoration appel decision")->click();
283 // On clique sur le bouton "Modifier"
284 $this->byId('action-form-evenement-modifier')->click();
285 // On modifie le champ restriction pour qu'il ne retourne pas d'erreur
286 // au moment de l'ajout de l'instruction
287 $this->byId('restriction')->clear();
288 $this->byId('restriction')->value("date_evenement <= date_evenement + 1");
289 // On valide la modification
290 $this->byCssSelector("input[value='Modifier']")->click();
291 // On vérifie le message de validation
292 $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#tabs-1 .message")->text());
293 // On se déconnecte
294 $this->deconnect();
295 // On se connecte en tant que "instr"
296 $this->login("instr", "instr");
297 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
298 $this->verifyNoErrors();
299 // On clique sur le lien "Mes encours" dans le menu
300 $this->byLinkText("Mes Encours")->click();
301 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
302 $this->verifyNoErrors();
303 sleep(1);
304 // On clique sur le lien "AZ0130551200001P0" dans le tableau
305 $this->byLinkText("DP 013055 12 00001P0")->click();
306 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
307 $this->verifyNoErrors();
308 // On clique sur l'onglet "Instruction"
309 $this->byId("instruction")->click();
310 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
311 $this->verifyNoErrors();
312 //Ajout d'une instruction simple
313 // On clique sur le lien d'ajout dans le tableau
314 $this->byCssSelector(".actions-max-1 a")->click();
315 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
316 $this->verifyNoErrors();
317 //On choisi un événement
318 $this->select($this->byId("evenement"))->selectOptionByValue("22");
319 //On valide le formulaire
320 $this->byXPath("//input[@value='Ajouter']")->click();
321 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
322 $this->verifyNoErrors();
323 sleep(1);
324 $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
325 //On retourne sur le tableau d'instructions
326 $this->byCssSelector("#sousform-instruction .retour")->click();
327 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
328 $this->verifyNoErrors();
329 //On affiche l'instruction
330 $this->byLinkText("CDEC majoration appel decision")->click();
331 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
332 $this->verifyNoErrors();
333 //On vérifie que certains champs n'apparaissent pas
334 $this->assertFalse($this->byId("date_envoi_controle_legalite")->displayed());
335 $this->assertFalse($this->byId("date_retour_controle_legalite")->displayed());
336 //On retourne sur le tableau d'instructions
337 $this->byCssSelector("#sousform-instruction .retour")->click();
338 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
339 $this->verifyNoErrors();
340 //Ajout d'une instruction de type arrêté
341 // On clique sur le lien d'ajout dans le tableau
342 $this->byCssSelector(".actions-max-1 a")->click();
343 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
344 $this->verifyNoErrors();
345 //On choisi l'événement "accepter un dossier sans réserve [acceptation]"
346 $this->select($this->byId("evenement"))->selectOptionByValue("81");
347 // On clique sur la bible
348 $this->byLinkText('bible')->click();
349 // On vérifie qu'il y est les enregistrments "V56" et "V64"
350 $this->assertRegExp('/^[\s\S]*V56[\s\S]*$/',
351 $this->byCssSelector("#tab-bible")->text());
352 $this->assertRegExp('/^[\s\S]*V64[\s\S]*$/',
353 $this->byCssSelector("#tab-bible")->text());
354 // On choisit plusieurs éléments
355 $this->byId('checkbox0')->click();
356 $this->byId('checkbox1')->click();
357 // On valide le formulaire
358 $this->byXPath("//input[@value='Valider']")->click();
359 // On vérifie le contenu du champ "complément"
360 $this->assertRegExp('/^[\s\S]*Vu l\'avis favorable de l\'Architecte des Bâtiments de France en date du[\s\S]*$/', $this->byCssSelector("#complement")->text());
361 $this->assertRegExp('/^[\s\S]*Vu l\'avis favorable avec prescriptions de la Direction Régionale des Affaires Culturelles en date du[\s\S]*$/', $this->byCssSelector("#complement")->text());
362 // On valide le formulaire
363 $this->byXPath("//input[@value='Ajouter']")->click();
364 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
365 $this->verifyNoErrors();
366 sleep(1);
367 $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
368 //On retourne sur le tableau d'instructions
369 $this->byCssSelector("#sousform-instruction .retour")->click();
370 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
371 $this->verifyNoErrors();
372 //On affiche l'instruction
373 $this->byLinkText("accepter un dossier sans réserve")->click();
374 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
375 $this->verifyNoErrors();
376 //On vérifie que certains champs apparaissent
377 $this->assertTrue($this->byClassName("libelle-date_envoi_controle_legalite")->displayed());
378 $this->assertTrue($this->byClassName("libelle-date_envoi_controle_legalite")->displayed());
379 // On se déconnecte
380 $this->logout();
381 }
382
383 /**
384 * Test le formulaire de la demande de type qui possède des select filtrés
385 */
386 public function test_05_ajout_lot() {
387 // On se connecte en tant que "instr"
388 $this->login("instr", "instr");
389 // On clique sur le lien "Mes encours" dans le menu
390 $this->byLinkText("Mes Encours")->click();
391 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
392 $this->verifyNoErrors();
393 // On clique sur le lien "AZ0130551200001P0" dans le tableau
394 $this->byLinkText("AZ 013055 12 00001P0")->click();
395 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
396 $this->verifyNoErrors();
397 // On clique sur l'onglet "Lot(s)"
398 $this->byId("lot")->click();
399 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
400 $this->verifyNoErrors();
401 // On clique sur le bouton d'ajout de lots
402 $this->byXPath("//div[@id='sousform-lot']/table/thead/tr/th/a/span")->click();
403 // Vérification des champs obligatoires
404 $this->byXPath("//input[@value='Ajouter']")->click();
405 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
406 $this->verifyNoErrors();
407 // On vérifie que le message de champ vide soit affiché
408 $this->assertRegExp('/.*SAISIE NON ENREGISTRÉE.*/', $this->byCssSelector("#sousform-lot .message .text")->text());
409 // Insertion d'un lot
410 $this->byId("libelle")->value("Lot n°1");
411 $this->byXPath("//input[@value='Ajouter']")->click();
412 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
413 $this->verifyNoErrors();
414 sleep(1);
415 // On retourne sur le tableau listant les lots
416 $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();
417 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
418 $this->verifyNoErrors();
419 // On clique sur le bouton d'ajout de lots
420 $this->byXPath("//div[@id='sousform-lot']/table/thead/tr/th/a/span")->click();
421 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
422 $this->verifyNoErrors();
423 // Insertion d'un second lot
424 $this->byId("libelle")->value("Lot n°2");
425 $this->byXPath("//input[@value='Ajouter']")->click();
426 sleep(1);
427 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
428 $this->verifyNoErrors();
429 // On retourne sur le tableau listant les lots
430 $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();
431 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
432 $this->verifyNoErrors();
433 // On se déconnecte
434 $this->logout();
435 }
436
437 /**
438 * Test du lien automatique entre choix autorité compétente dans DI et
439 * évènement d'instruction à créer
440 */
441 public function test_06_modification_autorite_competente() {
442 // On se connecte en tant que "instr"
443 $this->login("instr", "instr");
444 // On clique sur le lien "Mes encours" dans le menu
445 $this->byLinkText("Mes Encours")->click();
446 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
447 $this->verifyNoErrors();
448 // On clique sur le lien "AZ0130551200001P0" dans le tableau
449 $this->byLinkText("AZ 013055 12 00001P0")->click();
450 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
451 $this->verifyNoErrors();
452 // On clique sur l'onglet "Instruction"
453 $this->byId("instruction")->click();
454 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
455 $this->verifyNoErrors();
456 // On clique sur le bouton d'ajout de lots
457 $this->byXPath("//div[@id='sousform-instruction']/table/thead/tr/th/a/span")->click();
458 // Vérification des champs obligatoires
459 $this->byXPath("//input[@value='Ajouter']")->click();
460 sleep(1);
461 //On choisi un événement
462 $this->select($this->byId("evenement"))->selectOptionByValue("94");
463 // Validation du formulaire
464 $this->byXPath("//input[@value='Ajouter']")->click();
465 sleep(1);
466 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
467 $this->verifyNoErrors();
468 $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
469 $this->byCssSelector("form[name=\"f2\"] > a.retour")->click();
470 // Retour à l'onglet principal
471 $this->byId("main")->click();
472 $this->refresh();
473 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
474 $this->verifyNoErrors();
475 // On verifie que l'autorité compétente à changée.
476 $this->assertRegExp('/.*Commune pour état*/', $this->byCssSelector("#tabs-1 #autorite_competente")->text());
477 // On se déconnecte
478 $this->deconnect();
479 // On se connecte en tant que "admin"
480 $this->login("admin", "admin");
481 sleep(1);
482 $this->byLinkText("Instruction")->click();
483 // On clique sur le lien "Recherche" dans le menu
484 $this->byLinkText("Recherche")->click();
485 // On clique sur le lien "AZ0130551200001P0" dans le tableau
486 $this->byLinkText("AZ 013055 12 00001P0")->click();
487 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
488 $this->verifyNoErrors();
489 // On verifie que l'autorité compétente à changée.
490 $this->assertRegExp('/.*Commune pour état*/', $this->byCssSelector("#tabs-1 #autorite_competente")->text());
491 // On clique sur l'onglet "Instruction"
492 $this->byId("instruction")->click();
493 $this->byLinkText("Changer l'autorité compétente 'commune état'")->click();
494 sleep(1);
495 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
496 $this->verifyNoErrors();
497 $this->byXPath("(//div[@id='portlet-actions']/ul/li[2]/a/span)[2]")->click();
498 // On supprime l'element et on verifie le retour de l'autorité "commune"
499 $this->byCssSelector("form[name=\"f2\"] > a.retour")->click();
500 // Retour à l'onglet principal
501 $this->byId("main")->click();
502 $this->refresh();
503 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
504 $this->verifyNoErrors();
505 // On verifie que l'autorité compétente à changée.
506 $this->assertRegExp('/.*Commune*/', $this->byCssSelector("#tabs-1 #autorite_competente")->text());
507 // On se déconnecte
508 $this->logout();
509 }
510
511 /**
512 * Test de l'ajout de données techniques au dossier
513 */
514 public function test_07_edition_donnees_techniques() {
515 // On se connecte en tant que "instr"
516 $this->login("admin", "admin");
517 sleep(1);
518 // Ouverture du menu de paramétrage des dossiers
519 $this->byLinkText("Paramétrage Dossiers")->click();
520 // Ouverture du menu des cerfa
521 $this->byLinkText("Cerfa")->click();
522 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
523 $this->verifyNoErrors();
524 // Ouverture d'un cerfa
525 $this->byLinkText("cerfa de test n°1")->click();
526 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
527 $this->verifyNoErrors();
528 // Modification du cerfa affiché
529 $this->byXPath("//div[@id='portlet-actions']/ul/li/a/span")->click();
530 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
531 $this->verifyNoErrors();
532 // Ajout de champs au formulaire des données techniques
533 $this->byXPath("//div[@id='form-content']/div[2]/fieldset/legend")->click();
534 $this->byId("terr_juri_titul")->click();
535 $this->byId("terr_juri_lot")->click();
536 $this->byId("terr_juri_zac")->click();
537 $this->byId("terr_juri_afu")->click();
538 $this->byId("terr_juri_pup")->click();
539 $this->byId("terr_juri_oin")->click();
540 $this->byId("terr_juri_desc")->click();
541 // Validation du formulaire
542 $this->byXPath("//input[@value='Modifier']")->click();
543 // Vérification des erreurs
544 $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector(".message .text")->text());
545 $this->byLinkText("Retour")->click();
546 // On se déconnecte
547 $this->deconnect();
548 // On se connecte en tant que "instr"
549 $this->login("instr", "instr");
550 // On clique sur le lien "Mes encours" dans le menu
551 $this->byLinkText("Mes Encours")->click();
552 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
553 $this->verifyNoErrors();
554 // On clique sur le lien "AZ0130551200001P0" dans le tableau
555 $this->byLinkText("AZ 013055 12 00001P0")->click();
556 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
557 $this->verifyNoErrors();
558 // On click sur le lien "Données techniques"
559 $this->byXPath("//div[@id='portlet-actions']/ul/li[2]/a/span")->click();
560 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
561 $this->verifyNoErrors();
562 sleep(1);
563 // Modification des données techniques
564 $this->byCssSelector("#sousform-donnees_techniques .edit-16")->click();
565 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
566 $this->verifyNoErrors();
567 sleep(1);
568 $this->assertRegExp('/^[\s\S]*Terrain[\s\S]*$/', $this->byCssSelector("#sformulaire #form-content legend")->text());
569 // Validation du formulaire
570 $this->byXPath("//input[@value='Modifier']")->click();
571 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
572 $this->verifyNoErrors();
573 $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-donnees_techniques .message .text")->text());
574 $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();
575 sleep(1);
576 // On se déconnecte
577 $this->logout();
578
579 }
580
581 /**
582 * Test un événement d'instruction qui a un événement "retour"
583 */
584 public function test_08_evenement_instruction_retour() {
585
586 // Instancie la timezone
587 date_default_timezone_set('Europe/Paris');
588
589 // On se connecte à l'application en tant qu'administrateur
590 $this->login("admin", "admin");
591 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
592 $this->verifyNoErrors();
593
594 /** On ajoute une action "retour signature" **/
595 // On clique sur le menu "Paramétrage Dossiers"
596 $this->byLinkText("Paramétrage Dossiers")->click();
597 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
598 $this->verifyNoErrors();
599 // On clique sur le sous-menu "Action"
600 $this->byLinkText("Action")->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 "ajouter"
604 $this->byId("action-tab-action-corner-ajouter")->click();
605 // On remplis les champs
606 $this->byId("action")->value("retour signature");
607 $this->byId("libelle")->value("retour signature");
608 $this->byId("regle_etat")->value("etat");
609 $this->byId("regle_date_validite")->value("date_retour_signature + duree_validite");
610 // On valide le formulaire
611 $this->byXPath("//input[@value='Ajouter']")->click();
612 // On vérifie le message de validation
613 $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text());
614 /** Fin **/
615
616 /** On ajoute un événement "retour signature" **/
617 // On clique sur le sous-menu "Événement"
618 $this->byLinkText("Événement")->click();
619 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
620 $this->verifyNoErrors();
621 // On clique sur le bouton "ajouter"
622 $this->byId("action-tab-evenement-corner-ajouter")->click();
623 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
624 $this->verifyNoErrors();
625 // On remplis les champs
626 $this->byId("libelle")->value("retour signature");
627 $this->byId("retour")->click();
628 $this->select($this->byName("etats_depuis_lequel_l_evenement_est_disponible[]"))->clearSelectedOptions();;
629 $this->select($this->byName("etats_depuis_lequel_l_evenement_est_disponible[]"))->selectOptionByLabel("dossier accepter");
630 $this->select($this->byName("dossier_instruction_type[]"))->clearSelectedOptions();
631 $this->select($this->byName("dossier_instruction_type[]"))->selectOptionByLabel("PCI - P - Initial");
632 $this->select($this->byId("action"))->selectOptionByLabel("retour signature");
633 // On valide le formulaire
634 $this->byXPath("//input[@value='Ajouter']")->click();
635 // On vérifie le message de validation
636 $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text());
637 // On clique sur "Retour"
638 $this->byLinkText("Retour")->click();
639 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
640 $this->verifyNoErrors();
641 // On recherche l'événement "test_princ"
642 $this->byCssSelector("input[name='recherche']")->value('accepter un dossier sans réserve');
643 // On clique sur le bouton recherche
644 $this->byCssSelector(".ui-button")->click();
645 // On clique sur le résultat
646 $this->byLinkText("accepter un dossier sans réserve")->click();
647 // On clique sur le bouton "Modifier"
648 $this->byId('action-form-evenement-modifier')->click();
649 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
650 $this->verifyNoErrors();
651 // On sélectionne l'événement "retour" dans "evenement_retour_signature"
652 $this->select($this->byId("evenement_retour_signature"))->selectOptionByLabel("retour signature");
653 // On valide le formulaire
654 $this->byXPath("//input[@value='Modifier']")->click();
655 // On vérifie le message de validation
656 $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text());
657 /** Fin **/
658
659 /** On ajoute une durée de validité au type de DA PCI **/
660 // On clique sur le sous-menu "Type DA Détaillé"
661 $this->byLinkText("Type DA Détaillé")->click();
662 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
663 $this->verifyNoErrors();
664 // On clique sur le PCI
665 $this->byLinkText("PCI")->click();
666 // On clique sur le bouton "modifier"
667 $this->byId("action-form-dossier_autorisation_type_detaille-modifier")->click();
668 // On modifie la durée de validité
669 $this->byId("duree_validite_parametrage")->clear();
670 $this->byId("duree_validite_parametrage")->value("5");
671 // On valide le formulaire
672 $this->byXPath("//input[@value='Modifier']")->click();
673 // On vérifie le message de validation
674 $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text());
675 /** Fin **/
676
677 /** On instancie une nouvelle demande initial PCI **/
678 // On clique sur le menu "Guichet Unique"
679 $this->byLinkText("Guichet Unique")->click();
680 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
681 $this->verifyNoErrors();
682 // On clique sur le sous-menu "Nouveau Dossier"
683 $this->byLinkText("Nouveau Dossier")->click();
684 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
685 $this->verifyNoErrors();
686 // On selectionne le type de dossier d'autorisation détaillé "Permis de construire pour une maison individuelle et / ou ses annexes"
687 $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel("Permis de construire pour une maison individuelle et / ou ses annexes");
688 // On selectionne le type de demande "Dépôt Initial"
689 $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
690 // On clique pour ajouter un pétitionnaire principale
691 $this->byId("add_petitionnaire_principal")->click();
692 // On remplit le champ
693 $this->byId("particulier_nom")->value("DURAND");
694 // On remplit le champ
695 $this->byId("particulier_prenom")->value("MICKAEL");
696 // On remplit le champ
697 $this->byId("particulier_date_naissance")->value("03/01/1956");
698 // On remplit le champ
699 $this->byId("particulier_commune_naissance")->value("LILLE");
700 // On remplit le champ
701 $this->byId("particulier_departement_naissance")->value("NORD");
702 // On remplit le champ
703 $this->byId("numero")->value("12");
704 // On remplit le champ
705 $this->byId("voie")->value("RUE DE LA LOI");
706 // On remplit le champ
707 $this->byId("complement")->value("APPT 12");
708 // On remplit le champ
709 $this->byId("localite")->value("MARSEILLE");
710 // On remplit le champ
711 $this->byId("code_postal")->value("13012");
712 // On remplit le champ
713 $this->byId("telephone_fixe")->value("0404040404");
714 // On clique sur ajouter
715 $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
716 // On vérifie le message
717 $this->assertContains("Vos modifications ont bien été enregistrées", $this->byCssSelector("#sousform-petitionnaire .message")->text());
718 // On clique sur le bouton retour
719 $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
720 // On vérifie que le text est présent
721 $this->assertContains("DURAND MICKAEL",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
722 // On clique sur ajouter
723 $this->byXPath("//input[@value='Ajouter']")->click();
724 // On vérifie le message
725 $this->assertContains("Création du dossier d'autorisation n°",$this->byCssSelector(".message .text")->text());
726 // Récupération du numéro de dossier
727 preg_match('/(PC)[0-9 ]*(P0)/', $this->byCssSelector(".message .text")->text(), $dossier);
728 $dossier = $dossier[0];
729 /** Fin **/
730
731 /** On ajoute une instruction de dossier accepter et on la finalise **/
732 // On clique sur le menu "Instruction"
733 $this->byLinkText("Instruction")->click();
734 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
735 $this->verifyNoErrors();
736 // On clique sur le sous-menu "Recherche"
737 $this->byLinkText("Recherche")->click();
738 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
739 $this->verifyNoErrors();
740 // On recherche le dossier crée
741 $this->byId("dossier")->value(str_replace(' ', '', $dossier));
742 // On clique sur le bouton recherche
743 $this->byId("adv-search-submit")->click();
744 // On clique sur le résultat
745 $this->byLinkText($dossier)->click();
746 // On clique sur l'onglet "Instruction"
747 $this->byId("instruction")->click();
748 // On ajoute un événement d'instruction
749 $this->byId("action-soustab-instruction-corner-ajouter")->click();
750 // On sélectionne l'évenement "accepter un dossier sans réserve"
751 $this->select($this->byId("evenement"))->selectOptionByLabel("accepter un dossier sans réserve [acceptation]");
752 // On valide le formulaire
753 $this->byXPath("//input[@value='Ajouter']")->click();
754 // On vérifie le message
755 $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message .text")->text());
756 // On clique sur le bouton "retour"
757 $this->byLinkText("Retour")->click();
758 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
759 $this->verifyNoErrors();
760 // On clique sur l'événement d'instruction "accepter un dossier sans réserve"
761 $this->byLinkText("accepter un dossier sans réserve")->click();
762 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
763 $this->verifyNoErrors();
764 // On valide l'instruction
765 $this->byId("action-sousform-instruction-finalisation")->click();
766 // On vérifie le message de validation
767 $this->assertContains("La finalisation du document s'est effectuée avec succès.",$this->byCssSelector(".message .text")->text());
768 // On clique sur le bouton "Retour"
769 $this->byLinkText("Retour")->click();
770 // On clique sur l'événement "accepter un dossier sans réserve"
771 $this->byLinkText("accepter un dossier sans réserve")->click();sleep(1);
772 // Récupération du numéro d'événement
773 $evenement = $this->byCssSelector("#instruction.field_value")->text();
774 /** Fin **/
775
776 /** On met à jour la date de retour signature **/
777 // Date de retour signature
778 $date_retour_signature = date("d/m/Y", mktime(0, 0, 0, date("m"), date("d")+5, date("Y")));
779 // On clique sur le menu "Suivi"
780 $this->byLinkText("Suivi")->click();
781 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
782 $this->verifyNoErrors();
783 // On clique sur le sous-menu "Mise À Jour Des Dates"
784 $this->byLinkText("Mise À Jour Des Dates")->click();
785 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
786 $this->verifyNoErrors();
787 // On sélectionne "date de retour de signature + Envoi contrôle légalite"
788 $this->select($this->byId("type_mise_a_jour"))->selectOptionByLabel("date de retour de signature + Envoi contrôle légalite");
789 // On remplit à la date du jour + 5 jours
790 $this->byId("date")->value($date_retour_signature);
791 // On remplit le code barres de l'instruction
792 $this->byId("code_barres")->value("11".str_pad($evenement, 10, "0", STR_PAD_LEFT));
793 // On clique sur Valider
794 $this->byCssSelector("#suivi_mise_a_jour_des_dates_form div.formControls input.om-button")->click();sleep(1);
795 // On vérifie la synthèse avec le numéro du dossier et l'événement
796 $this->assertContains($dossier, $this->byId("dossier_libelle")->text());
797 $this->assertContains("accepter un dossier sans réserve", $this->byId("evenement")->text());
798 // On clique sur Valider
799 $this->byCssSelector("#suivi_mise_a_jour_des_dates_form div.formControls input.om-button")->click();
800 // On vérifie le message de validation
801 $this->assertContains("Saisie enregistrée",$this->byCssSelector(".message .text")->text());
802 /** Fin **/
803
804 /** Vérifie l'instruction "retour" et le DI **/
805 // Date de validité
806 $date_validite = date("d/m/Y", mktime(0, 0, 0, date("m")+5, date("d")+5, date("Y")));
807 // On clique sur le menu "Instruction"
808 $this->byLinkText("Instruction")->click();
809 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
810 $this->verifyNoErrors();
811 // On clique sur le sous-menu "Recherche"
812 $this->byLinkText("Recherche")->click();
813 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
814 $this->verifyNoErrors();
815 // On clique sur le dossier ""
816 $this->byLinkText($dossier)->click();
817 // On vérifie la date de validité mise à jour par l'action
818 $this->assertContains($date_validite, $this->byId("date_validite")->text());
819 // On clique sur l'onglet "Instruction"
820 $this->byId("instruction")->click();
821 // On clique sur l'instruction "retour signature"
822 $this->byLinkText("retour signature")->click();
823 // On contrôle la date de retour signature
824 $this->assertContains($date_retour_signature, $this->byId("date_retour_signature")->text());
825 /** Fin **/
826
827 // On se déconnecte
828 $this->logout();
829
830 }
831 }
832
833 ?>

Properties

Name Value
svn:keywords Id

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26