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

Contents of /trunk/tests/testInstruction.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2741 - (show annotations)
Mon Feb 17 09:51:45 2014 UTC (10 years, 11 months ago) by softime
File size: 83060 byte(s)
Correction des tests : clique sur un dossier

1 <?php
2 /**
3 *
4 *
5 * @package openfoncier
6 * @version SVN : $Id$
7 */
8
9 //
10 require_once "base.php";
11
12 /**
13 *
14 */
15 class Instruction extends Base2TestCase {
16
17 // Liste des utilisateurs
18 var $listUtlisateurs = array(
19 array(
20 "login" => "instr",
21 "mdp" => "instr"
22 ),
23 array(
24 "login" => "adminfonct",
25 "mdp" => "adminfonct"
26 ),
27 );
28
29 /**
30 * Ce test vise uniquement à vérifier que les écrans correspondant à chaque
31 * entrée de menu ne génère pas une erreur de base de données
32 */
33 // Fonction privé
34 private function ouvertureMenu($utilisateur) {
35 // On se connecte
36 $this->login($utilisateur["login"], $utilisateur["mdp"]);
37 // Ouvre le menu
38 $this->openMenu("Instruction", $utilisateur);
39 // On vérifie le menu ""
40 $this->byLinkText("Mes Encours")->click();
41 $this->assertContains("Instruction > Dossiers D'instruction",
42 $this->byId("title")->text());
43 $this->verifyNoErrors();
44 // On vérifie le menu ""
45 $this->byLinkText("Tous Les Encours")->click();
46 $this->assertContains("Instruction > Dossiers D'instruction",
47 $this->byId("title")->text());
48 $this->verifyNoErrors();
49 // On vérifie le menu ""
50 $this->byLinkText("Mes Clôturés")->click();
51 $this->assertContains("Instruction > Dossiers D'instruction",
52 $this->byId("title")->text());
53 $this->verifyNoErrors();
54 // On vérifie le menu ""
55 $this->byLinkText("Tous Les Clôturés")->click();
56 $this->assertContains("Instruction > Dossiers D'instruction",
57 $this->byId("title")->text());
58 $this->verifyNoErrors();
59 // On vérifie le menu ""
60 $this->byLinkText("Recherche")->click();
61 $this->assertContains("Instruction > Dossiers D'instruction",
62 $this->byId("title")->text());
63 $this->verifyNoErrors();
64 // On vérifie le menu ""
65 $this->byLinkText("Dossiers À Qualifier")->click();
66 $this->assertContains("Instruction > Qualification > Dossiers À Qualifier",
67 $this->byId("title")->text());
68 $this->verifyNoErrors();
69 // On vérifie le menu ""
70 $this->byLinkText("Architecte Fréquent")->click();
71 $this->assertContains("Instruction > Qualification > Architecte Fréquent",
72 $this->byId("title")->text());
73 $this->verifyNoErrors();
74 // On vérifie le menu ""
75 $this->byLinkText("Mes Retours")->click();
76 $this->assertContains("Instruction > Consultations > Mes Retours",
77 $this->byId("title")->text());
78 $this->verifyNoErrors();
79 // On vérifie le menu ""
80 $this->byLinkText("Tous Les Retours")->click();
81 $this->assertContains("Instruction > Consultations > Tous Les Retours",
82 $this->byId("title")->text());
83 $this->verifyNoErrors();
84 // On vérifie le menu ""
85 $this->byLinkText("Mes Messages")->click();
86 $this->assertContains("Instruction > Messages > Mes Messages",
87 $this->byId("title")->text());
88 $this->verifyNoErrors();
89 // On vérifie le menu ""
90 $this->byLinkText("Tous Les Messages")->click();
91 $this->assertContains("Instruction > Messages > Tous Les Messages",
92 $this->byId("title")->text());
93 $this->verifyNoErrors();
94 // On vérifie le menu ""
95 $this->byCssSelector("a.commission_mes_retours-16")->click();
96 $this->assertContains("Instruction > Commissions > Mes Retours",
97 $this->byId("title")->text());
98 $this->verifyNoErrors();
99 // On vérifie le menu ""
100 $this->byCssSelector("a.commission_tous_retours-16")->click();
101 $this->assertContains("Instruction > Commissions > Tous Les Retours",
102 $this->byId("title")->text());
103 $this->verifyNoErrors();
104 // On se déconnecte
105 $this->deconnect();
106 }
107 // Fonction public
108 public function test01OuvertureMenu() {
109 // Récupération des utilisateurs
110 $utilisateurs = $this->listUtlisateurs;
111 // Pour chaque utilisateur on lance le test
112 foreach ($utilisateurs as $utilisateur) {
113 //
114 $this->ouvertureMenu($utilisateur);
115 }
116 // On vérifie la déconnexion
117 $this->verifyDeconnect();
118 }
119
120 /**
121 *
122 */
123 public function test_02_visualisation_di_et_da_par_l_instructeur_en_charge() {
124
125 // On se connecte en tant que "instr"
126 $this->login("instr", "instr");
127 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
128 $this->verifyNoErrors();
129 // On clique sur le lien "Mes encours" dans le menu
130 $this->byLinkText("Mes Encours")->click();
131 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
132 $this->verifyNoErrors();
133 // On clique sur le lien "AZ0130551200001P0" dans le tableau
134 $this->byLinkText("AZ 013055 12 00001P0")->click();
135 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
136 $this->verifyNoErrors();
137 // On vérifie que le breadcrumb est correct
138 $this->assertEquals("AZ 013055 12 00001P0", $this->byId("dossier_libelle")->text());
139 // On clique sur l'onglet "Instruction"
140 $this->byId("instruction")->click();
141 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
142 $this->verifyNoErrors();
143 // On clique sur l'onglet "Consultation(s)"
144 $this->byId("consultation")->click();
145 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
146 $this->verifyNoErrors();
147 // On clique sur l'onglet "Lot(s)"
148 $this->byId("lot")->click();
149 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
150 $this->verifyNoErrors();
151 // On clique sur l'onglet "Message(s)"
152 $this->byId("dossier_message")->click();
153 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
154 $this->verifyNoErrors();
155 // On clique sur l'onglet "Commission(s)"
156 $this->byId("dossier_commission")->click();
157 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
158 $this->verifyNoErrors();
159 // On clique sur l'onglet "Bloc-note"
160 $this->byId("blocnote")->click();
161 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
162 $this->verifyNoErrors();
163 // On clique sur l'onglet "DA"
164 $this->byId("dossier_autorisation")->click();
165 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
166 $this->verifyNoErrors();
167 // On clique sur le lien "AZ0130551200001" dans le tableau
168 $this->byLinkText("AZ 013055 12 00001")->click();
169 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
170 $this->verifyNoErrors();
171 // On vérifie que le breadcrumb est correct
172 $this->assertEquals("AZ 013055 12 00001", $this->byCssSelector(".form-content #dossier_autorisation_libelle")->text());
173 // On clique sur l'onglet "Dossier(s) d'instruction"
174 $this->byId("dossier_instruction")->click();
175 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
176 $this->verifyNoErrors();
177 // On clique sur le lien "AZ0130551200001P0" dans le tableau
178 $this->byLinkText("AZ 013055 12 00001P0")->click();
179 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
180 $this->verifyNoErrors();
181 // On vérifie que le breadcrumb est correct
182 $this->assertEquals("AZ 013055 12 00001P0", $this->byId("dossier_libelle")->text());
183 // On se déconnecte
184 $this->logout();
185 }
186
187 /**
188 *
189 */
190 public function test_03_informations_du_widget_profil_instructeur() {
191 // On se connecte en tant que "instr"
192 $this->login("instr", "instr");
193 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
194 $this->verifyNoErrors();
195 // On vérifie que le titre du widget est correct
196 $this->assertEquals("Infos profil", $this->byCssSelector("#widget_2 .widget-header h3")->text());
197 // On vérifie que le profil est bon
198 $this->assertEquals("INSTRUCTEUR", $this->byCssSelector(".profil-infos-profil span.value")->text());
199 // On vérifie que le nom de l'instructeur affiché est le bon
200 $this->assertEquals("Louis Laurent", $this->byCssSelector(".profil-infos-nom span.value")->text());
201 // On vérifie que la division de l'instructeur affichée est la bonne
202 $this->assertEquals("H", $this->byCssSelector(".profil-infos-division span.value")->text());
203 // On se déconnecte
204 $this->byLinkText("Déconnexion")->click();
205 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
206 $this->verifyNoErrors();
207 // On se connecte en tant que "instr"
208 $this->login("instr1", "instr");
209 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
210 $this->verifyNoErrors();
211 // On vérifie que le titre du widget est correct
212 $this->assertEquals("Infos profil", $this->byCssSelector("#widget_2 .widget-header h3")->text());
213 // On vérifie que le profil est bon
214 $this->assertEquals("INSTRUCTEUR", $this->byCssSelector(".profil-infos-profil span.value")->text());
215 // On vérifie que le nom de l'instructeur affiché est le bon
216 $this->assertEquals("Martine Nadeau", $this->byCssSelector(".profil-infos-nom span.value")->text());
217 // On vérifie que la division de l'instructeur affichée est la bonne
218 $this->assertEquals("H", $this->byCssSelector(".profil-infos-division span.value")->text());
219 // On se déconnecte
220 $this->byLinkText("Déconnexion")->click();
221 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
222 $this->verifyNoErrors();
223 // On se connecte en tant que "instr"
224 $this->login("instr2", "instr");
225 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
226 $this->verifyNoErrors();
227 // On vérifie que le titre du widget est correct
228 $this->assertEquals("Infos profil", $this->byCssSelector("#widget_2 .widget-header h3")->text());
229 // On vérifie que le profil est bon
230 $this->assertEquals("INSTRUCTEUR", $this->byCssSelector(".profil-infos-profil span.value")->text());
231 // On vérifie que le nom de l'instructeur affiché est le bon
232 $this->assertEquals("Roland Richard", $this->byCssSelector(".profil-infos-nom span.value")->text());
233 // On vérifie que la division de l'instructeur affichée est la bonne
234 $this->assertEquals("J", $this->byCssSelector(".profil-infos-division span.value")->text());
235 // On se déconnecte
236 $this->logout();
237 }
238
239 /**
240 * Ajout d'instructions par l'instructeur sur le dossier DP0130551200001P0
241 * Modification d'un événement
242 */
243 public function test_04_ajout_instructions_par_instructeur() {
244
245 // On se connecte en tant que "admin"
246 $this->login("admin", "admin");
247 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
248 $this->verifyNoErrors();
249 // On clique sur le lien "Paramétrage Dossiers" dans le menu
250 $this->byLinkText("Paramétrage Dossiers")->click();
251 // On clique sur le sousmenu "Événement"
252 $this->byLinkText("Événement")->click();
253 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
254 $this->verifyNoErrors();
255 // On remplis le champs de recherche simple
256 $this->byCssSelector("input[name='recherche']")->value('CDEC');
257 // On clique sur le bouton recherche
258 $this->byCssSelector(".ui-button")->click();
259 // On clique sur le résultat
260 $this->byLinkText("CDEC majoration appel decision")->click();
261 // On clique sur le bouton "Modifier"
262 $this->byId('action-form-evenement-modifier')->click();
263 // On modifie le champ restriction avec des données erronées
264 $this->byId('restriction')->clear();
265 $this->byId('restriction')->value("date_evenement >= champ_errone + 1");
266 // On valide la modification
267 $this->byCssSelector("input[value='Modifier']")->click();
268 // On vérifie le message de validation
269 $this->assertRegExp("/^[\s\S]*Le champ champ_errone n'est pas utilisable pour le champ restriction[\s\S]*$/",$this->byCssSelector("#tabs-1 .message")->text());
270 // On modifie le champ restriction pour qu'il retourne une erreur au
271 // moment de l'ajout de l'instruction
272 $this->byId('restriction')->clear();
273 $this->byId('restriction')->value("date_evenement >= date_evenement + 1");
274 // On valide la modification
275 $this->byCssSelector("input[value='Modifier']")->click();
276 // On vérifie le message de validation
277 $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#tabs-1 .message")->text());
278 // On se déconnecte
279 $this->deconnect();
280 //{{{ Ajout de d'un nouveau dossier
281 // On se connecte à l'application
282 $this->login("guichet", "guichet");
283 //On clique sur le menu des instructions
284 $this->byLinkText("Nouveau Dossier")->click();
285 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
286 $this->verifyNoErrors();
287 //On ajoute un nouveau dossier
288 $dossier = $this->addDossierInstruction(1, 1);
289 // On se déconnecte
290 $this->deconnect();
291 //}}}
292 // On se connecte en tant que "instr"
293 $this->login("instr", "instr");
294 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
295 $this->verifyNoErrors();
296 // On clique sur le lien "Mes encours" dans le menu
297 $this->byLinkText("Mes Encours")->click();
298 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
299 $this->verifyNoErrors();
300 sleep(1);
301 // On clique sur le dossier dernièrement créé
302 $this->byLinkText($dossier)->click();
303 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
304 $this->verifyNoErrors();
305 // On clique sur l'onglet "Instruction"
306 $this->byId("instruction")->click();
307 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
308 $this->verifyNoErrors();
309 //Ajout d'une instruction simple
310 // On clique sur le lien d'ajout dans le tableau
311 $this->byCssSelector(".actions-max-1 a")->click();
312 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
313 $this->verifyNoErrors();
314 //On choisi l'événement CDEC majoration appel decision [majoration]
315 $this->select($this->byId("evenement"))->selectOptionByValue("22");
316 //On valide le formulaire
317 $this->byXPath("//input[@value='Ajouter']")->click();
318 // On vérifie le mesage d'erreur
319 $this->assertRegExp('/.*Restriction non valide*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
320 // On se déconnecte
321 $this->deconnect();
322 // On se connecte en tant que "admin"
323 $this->login("admin", "admin");
324 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
325 $this->verifyNoErrors();
326 // On clique sur le lien "Paramétrage Dossiers" dans le menu
327 $this->byLinkText("Paramétrage Dossiers")->click();
328 // On clique sur le sousmenu "Événement"
329 $this->byLinkText("Événement")->click();
330 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
331 $this->verifyNoErrors();
332 // On remplis le champs de recherche simple
333 $this->byCssSelector("input[name='recherche']")->value('CDEC');
334 // On clique sur le bouton recherche
335 $this->byCssSelector(".ui-button")->click();
336 // On clique sur le résultat
337 $this->byLinkText("CDEC majoration appel decision")->click();
338 // On clique sur le bouton "Modifier"
339 $this->byId('action-form-evenement-modifier')->click();
340 // On modifie le champ restriction pour qu'il ne retourne pas d'erreur
341 // au moment de l'ajout de l'instruction
342 $this->byId('restriction')->clear();
343 $this->byId('restriction')->value("date_evenement <= date_evenement + 1");
344 // On valide la modification
345 $this->byCssSelector("input[value='Modifier']")->click();
346 // On vérifie le message de validation
347 $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#tabs-1 .message")->text());
348 // On se déconnecte
349 $this->deconnect();
350
351 // On se connecte en tant que "instr"
352 $this->login("instr", "instr");
353 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
354 $this->verifyNoErrors();
355 // On clique sur le lien "Mes encours" dans le menu
356 $this->byLinkText("Mes Encours")->click();
357 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
358 $this->verifyNoErrors();
359 sleep(1);
360 // On clique sur le dossier dernièrement créé
361 $this->byLinkText($dossier)->click();
362 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
363 $this->verifyNoErrors();
364 // On clique sur l'onglet "Instruction"
365 $this->byId("instruction")->click();
366 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
367 $this->verifyNoErrors();
368 //Ajout d'une instruction simple
369 // On clique sur le lien d'ajout dans le tableau
370 $this->byCssSelector(".actions-max-1 a")->click();
371 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
372 $this->verifyNoErrors();
373 //On choisi l'événement CDEC majoration appel decision [majoration]
374 $this->select($this->byId("evenement"))->selectOptionByValue("22");
375 //On valide le formulaire
376 $this->byXPath("//input[@value='Ajouter']")->click();
377 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
378 $this->verifyNoErrors();
379 sleep(1);
380 $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
381 //On retourne sur le tableau d'instructions
382 $this->byCssSelector("#sousform-instruction .retour")->click();
383 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
384 $this->verifyNoErrors();
385 //On affiche l'instruction
386 $this->byLinkText("CDEC majoration appel decision")->click();
387 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
388 $this->verifyNoErrors();
389 //On vérifie que certains champs n'apparaissent pas
390 $this->assertFalse($this->byId("date_envoi_controle_legalite")->displayed());
391 $this->assertFalse($this->byId("date_retour_controle_legalite")->displayed());
392 //On retourne sur le tableau d'instructions
393 $this->byCssSelector("#sousform-instruction .retour")->click();
394 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
395 $this->verifyNoErrors();
396 //Ajout d'une instruction de type arrêté
397 // On clique sur le lien d'ajout dans le tableau
398 $this->byCssSelector(".actions-max-1 a")->click();
399 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
400 $this->verifyNoErrors();
401 //On choisi l'événement "accepter un dossier sans réserve [acceptation]"
402 $this->select($this->byId("evenement"))->selectOptionByValue("81");
403 // On clique sur la bible
404 $this->byLinkText('bible')->click();
405 // On vérifie qu'il y est les enregistrments "V56" et "V64"
406 $this->assertRegExp('/^[\s\S]*V56[\s\S]*$/',
407 $this->byCssSelector("#tab-bible")->text());
408 $this->assertRegExp('/^[\s\S]*V64[\s\S]*$/',
409 $this->byCssSelector("#tab-bible")->text());
410 // On choisit plusieurs éléments
411 $this->byId('checkbox0')->click();
412 $this->byId('checkbox1')->click();
413 // On valide le formulaire
414 $this->byXPath("//input[@value='Valider']")->click();
415 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
416 $this->verifyNoErrors();
417 // On valide le formulaire
418 $this->byXPath("//input[@value='Ajouter']")->click();
419 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
420 $this->verifyNoErrors();
421 // On vérifie le message de validation
422 $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
423 //On retourne sur le tableau d'instructions
424 $this->byCssSelector("#sousform-instruction .retour")->click();
425 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
426 $this->verifyNoErrors();
427 // On clique sur l'instruction
428 $this->byLinkText("accepter un dossier sans réserve")->click();
429 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
430 $this->verifyNoErrors();
431 // On vérifie le contenu du champ "complément"
432 $this->assertContains("Vu l'avis favorable de l'Architecte des Bâtiments de France en date du", $this->byId("complement_om_html")->text());
433 $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());
434 //On vérifie que certains champs apparaissent
435 $this->assertTrue($this->byClassName("libelle-date_envoi_controle_legalite")->displayed());
436 $this->assertTrue($this->byClassName("libelle-date_envoi_controle_legalite")->displayed());
437 // On se déconnecte
438 $this->logout();
439 }
440
441 /**
442 * Test le formulaire de la demande de type qui possède des select filtrés
443 */
444 public function test_05_ajout_lot() {
445 // On se connecte en tant que "instr"
446 $this->login("instr", "instr");
447 // On clique sur le lien "Mes encours" dans le menu
448 $this->byLinkText("Mes Encours")->click();
449 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
450 $this->verifyNoErrors();
451 // On clique sur le lien "AZ0130551200001P0" dans le tableau
452 $this->byLinkText("AZ 013055 12 00001P0")->click();
453 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
454 $this->verifyNoErrors();
455 // On clique sur l'onglet "Lot(s)"
456 $this->byId("lot")->click();
457 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
458 $this->verifyNoErrors();
459 // On clique sur le bouton d'ajout de lots
460 $this->byXPath("//div[@id='sousform-lot']/table/thead/tr/th/a/span")->click();
461 // Vérification des champs obligatoires
462 $this->byXPath("//input[@value='Ajouter']")->click();
463 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
464 $this->verifyNoErrors();
465 // On vérifie que le message de champ vide soit affiché
466 $this->assertRegExp('/.*SAISIE NON ENREGISTRÉE.*/', $this->byCssSelector("#sousform-lot .message .text")->text());
467 // Insertion d'un lot
468 $this->byId("libelle")->value("Lot n°1");
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 sleep(1);
473 // On retourne sur le tableau listant les lots
474 $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();
475 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
476 $this->verifyNoErrors();
477 // On clique sur le bouton d'ajout de lots
478 $this->byXPath("//div[@id='sousform-lot']/table/thead/tr/th/a/span")->click();
479 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
480 $this->verifyNoErrors();
481 // Insertion d'un second lot
482 $this->byId("libelle")->value("Lot n°2");
483 $this->byXPath("//input[@value='Ajouter']")->click();
484 sleep(1);
485 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
486 $this->verifyNoErrors();
487 // On retourne sur le tableau listant les lots
488 $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();
489 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
490 $this->verifyNoErrors();
491 // On se déconnecte
492 $this->logout();
493 }
494
495 /**
496 * Test du lien automatique entre choix autorité compétente dans DI et
497 * évènement d'instruction à créer
498 */
499 // Fonction privé
500 private function modification_autorite_competente($utilisateur) {
501 // On se connecte à l'application
502 $this->login($utilisateur["login"], $utilisateur["mdp"]);
503 // Ouvre le menu
504 $this->openMenu("Instruction", $utilisateur);
505 // On clique sur le lien "Mes encours" dans le menu
506 $this->byLinkText("Recherche")->click();
507 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
508 $this->verifyNoErrors();
509 // On clique sur le lien "AZ0130551200001P0" dans le tableau
510 $this->byLinkText("AZ 013055 12 00001P0")->click();
511 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
512 $this->verifyNoErrors();
513 // On clique sur l'onglet "Instruction"
514 $this->byId("instruction")->click();
515 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
516 $this->verifyNoErrors();
517 // On clique sur le bouton d'ajout de lots
518 $this->byXPath("//div[@id='sousform-instruction']/table/thead/tr/th/a/span")->click();
519 // Vérification des champs obligatoires
520 $this->byXPath("//input[@value='Ajouter']")->click();
521 sleep(1);
522 //On choisi un événement
523 $this->select($this->byId("evenement"))->selectOptionByValue("94");
524 // Validation du formulaire
525 $this->byXPath("//input[@value='Ajouter']")->click();
526 sleep(1);
527 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
528 $this->verifyNoErrors();
529 $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
530 $this->byCssSelector("form[name=\"f2\"] > a.retour")->click();
531 // Retour à l'onglet principal
532 $this->byId("main")->click();
533 $this->refresh();
534 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
535 $this->verifyNoErrors();
536 // On verifie que l'autorité compétente à changée.
537 $this->assertRegExp('/.*Commune pour état*/', $this->byCssSelector("#tabs-1 #autorite_competente")->text());
538 // On se déconnecte
539 $this->deconnect();
540
541 // On se connecte en tant que "admin"
542 $this->login("admin", "admin");
543 sleep(1);
544 $this->byLinkText("Instruction")->click();
545 // On clique sur le lien "Recherche" dans le menu
546 $this->byLinkText("Recherche")->click();
547 // On clique sur le lien "AZ0130551200001P0" dans le tableau
548 $this->byLinkText("AZ 013055 12 00001P0")->click();
549 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
550 $this->verifyNoErrors();
551 // On verifie que l'autorité compétente à changée
552 $this->assertEquals('Commune pour état', $this->byCssSelector("#tabs-1 #autorite_competente")->text());
553 // On clique sur l'onglet "Instruction"
554 $this->byId("instruction")->click();
555 $this->byLinkText("Changer l'autorité compétente 'commune état'")->click();
556 sleep(1);
557 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
558 $this->verifyNoErrors();
559 // On supprime l'element et on verifie le retour de l'autorité "commune"
560 $this->byId("action-sousform-instruction-supprimer")->click();
561 // On valide le formulaire
562 $this->byXPath("//input[@value='Supprimer']")->click();sleep(1);
563 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
564 $this->verifyNoErrors();
565 // On clique sur le bouton retour
566 $this->byLinkText("Retour")->click();
567 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
568 $this->verifyNoErrors();
569 // On vérifie que l'événement d'instruction n'est plus dans le tableau
570 $this->assertNotContains("Changer l'autorité compétente 'commune état'", $this->byId("sousform-instruction")->text());
571 // Retour à l'onglet principal
572 $this->byId("main")->click();
573 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
574 $this->verifyNoErrors();
575 // On rafraîchit la page
576 $this->refresh();
577 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
578 $this->verifyNoErrors();
579 // On verifie que l'autorité compétente à changée.
580 $this->assertEquals('Commune', $this->byCssSelector("#tabs-1 #autorite_competente")->text());
581 // On se déconnecte
582 $this->deconnect();
583 }
584 // Fonction public
585 public function test_06_modification_autorite_competente() {
586 // Récupération des utilisateurs
587 $utilisateurs = $this->listUtlisateurs;
588 // Pour chaque utilisateur on lance le test
589 foreach ($utilisateurs as $utilisateur) {
590 //
591 $this->modification_autorite_competente($utilisateur);
592 }
593 // On vérifie la déconnexion
594 $this->verifyDeconnect();
595 }
596
597 /**
598 * Test de l'ajout de données techniques au dossier
599 */
600 public function test_07_edition_donnees_techniques() {
601 // On se connecte en tant que "instr"
602 $this->login("admin", "admin");
603 sleep(1);
604 // Ouverture du menu de paramétrage des dossiers
605 $this->byLinkText("Paramétrage Dossiers")->click();
606 // Ouverture du menu des cerfa
607 $this->byLinkText("Cerfa")->click();
608 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
609 $this->verifyNoErrors();
610 // Ouverture d'un cerfa
611 $this->byLinkText("cerfa de test n°1")->click();
612 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
613 $this->verifyNoErrors();
614 // Modification du cerfa affiché
615 $this->byXPath("//div[@id='portlet-actions']/ul/li/a/span")->click();
616 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
617 $this->verifyNoErrors();
618 // Ajout de champs au formulaire des données techniques
619 $this->byXPath("//div[@id='form-content']/div[2]/fieldset/legend")->click();
620 $this->byId("terr_juri_titul")->click();
621 $this->byId("terr_juri_lot")->click();
622 $this->byId("terr_juri_zac")->click();
623 $this->byId("terr_juri_afu")->click();
624 $this->byId("terr_juri_pup")->click();
625 $this->byId("terr_juri_oin")->click();
626 $this->byId("terr_juri_desc")->click();
627 // Validation du formulaire
628 $this->byXPath("//input[@value='Modifier']")->click();
629 // Vérification des erreurs
630 $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector(".message .text")->text());
631 $this->byLinkText("Retour")->click();
632 // On se déconnecte
633 $this->deconnect();
634 // On se connecte en tant que "instr"
635 $this->login("instr", "instr");
636 // On clique sur le lien "Mes encours" dans le menu
637 $this->byLinkText("Mes Encours")->click();
638 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
639 $this->verifyNoErrors();
640 // On clique sur le lien "AZ0130551200001P0" dans le tableau
641 $this->byLinkText("AZ 013055 12 00001P0")->click();
642 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
643 $this->verifyNoErrors();
644 // On click sur le lien "Données techniques"
645 $this->byXPath("//div[@id='portlet-actions']/ul/li[2]/a/span")->click();
646 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
647 $this->verifyNoErrors();
648 sleep(1);
649 // Modification des données techniques
650 $this->byCssSelector("#sousform-donnees_techniques .edit-16")->click();
651 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
652 $this->verifyNoErrors();
653 sleep(1);
654 $this->assertRegExp('/^[\s\S]*Terrain[\s\S]*$/', $this->byCssSelector("#sformulaire #form-content legend")->text());
655 // Validation du formulaire
656 $this->byXPath("//input[@value='Modifier']")->click();
657 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
658 $this->verifyNoErrors();
659 $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-donnees_techniques .message .text")->text());
660 $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();
661 sleep(1);
662 // On se déconnecte
663 $this->logout();
664
665 }
666
667 /**
668 * Test un événement d'instruction qui a un événement "retour"
669 */
670 public function test_08_evenement_instruction_retour() {
671
672 // On se connecte à l'application en tant qu'administrateur
673 $this->login("admin", "admin");
674 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
675 $this->verifyNoErrors();
676
677 /** On ajoute une action "retour signature" **/
678 // On clique sur le menu "Paramétrage Dossiers"
679 $this->byLinkText("Paramétrage Dossiers")->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 "Action"
683 $this->byLinkText("Action")->click();
684 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
685 $this->verifyNoErrors();
686 // On clique sur le bouton "ajouter"
687 $this->byId("action-tab-action-corner-ajouter")->click();
688 // On remplis les champs
689 $this->byId("action")->value("retour signature");
690 $this->byId("libelle")->value("retour signature");
691 $this->byId("regle_etat")->value("etat");
692 $this->byId("regle_date_validite")->value("date_retour_signature + duree_validite");
693 // On valide le formulaire
694 $this->byXPath("//input[@value='Ajouter']")->click();
695 // On vérifie le message de validation
696 $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text());
697 /** Fin **/
698
699 /** On ajoute un événement "retour signature" **/
700 // On clique sur le sous-menu "Événement"
701 $this->byLinkText("Événement")->click();
702 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
703 $this->verifyNoErrors();
704 // On clique sur le bouton "ajouter"
705 $this->byId("action-tab-evenement-corner-ajouter")->click();
706 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
707 $this->verifyNoErrors();
708 // On remplis les champs
709 $this->byId("libelle")->value("retour signature");
710 $this->byId("retour")->click();
711 $this->select($this->byName("etats_depuis_lequel_l_evenement_est_disponible[]"))->clearSelectedOptions();;
712 $this->select($this->byName("etats_depuis_lequel_l_evenement_est_disponible[]"))->selectOptionByLabel("dossier accepter");
713 $this->select($this->byName("dossier_instruction_type[]"))->clearSelectedOptions();
714 $this->select($this->byName("dossier_instruction_type[]"))->selectOptionByLabel("PCI - P - Initial");
715 $this->select($this->byId("action"))->selectOptionByLabel("retour signature");
716 // On valide le formulaire
717 $this->byXPath("//input[@value='Ajouter']")->click();
718 // On vérifie le message de validation
719 $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text());
720 // On clique sur "Retour"
721 $this->byLinkText("Retour")->click();
722 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
723 $this->verifyNoErrors();
724 // On recherche l'événement "accepter un dossier sans réserve"
725 $this->byCssSelector("input[name='recherche']")->value('accepter un dossier sans réserve');
726 // On clique sur le bouton recherche
727 $this->byCssSelector(".ui-button")->click();
728 // On clique sur le résultat
729 $this->byLinkText("accepter un dossier sans réserve")->click();
730 // On clique sur le bouton "Modifier"
731 $this->byId('action-form-evenement-modifier')->click();
732 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
733 $this->verifyNoErrors();
734 // On sélectionne l'événement "retour" dans "evenement_retour_signature"
735 $this->select($this->byId("evenement_retour_signature"))->selectOptionByLabel("retour signature");
736 // On valide le formulaire
737 $this->byXPath("//input[@value='Modifier']")->click();
738 // On vérifie le message de validation
739 $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text());
740 /** Fin **/
741
742 /** On ajoute une durée de validité au type de DA PCI **/
743 // On clique sur le sous-menu "Type DA Détaillé"
744 $this->byLinkText("Type DA Détaillé")->click();
745 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
746 $this->verifyNoErrors();
747 // On clique sur le PCI
748 $this->byLinkText("PCI")->click();
749 // On clique sur le bouton "modifier"
750 $this->byId("action-form-dossier_autorisation_type_detaille-modifier")->click();
751 // On modifie la durée de validité
752 $this->byId("duree_validite_parametrage")->clear();
753 $this->byId("duree_validite_parametrage")->value("5");
754 // On valide le formulaire
755 $this->byXPath("//input[@value='Modifier']")->click();
756 // On vérifie le message de validation
757 $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text());
758 /** Fin **/
759
760 /** On instancie une nouvelle demande initial PCI **/
761 // On clique sur le menu "Guichet Unique"
762 $this->byLinkText("Guichet Unique")->click();
763 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
764 $this->verifyNoErrors();
765 // On clique sur le sous-menu "Nouveau Dossier"
766 $this->byLinkText("Nouveau Dossier")->click();
767 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
768 $this->verifyNoErrors();
769 // On selectionne le type de dossier d'autorisation détaillé "Permis de construire pour une maison individuelle et / ou ses annexes"
770 $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel("Permis de construire pour une maison individuelle et / ou ses annexes");
771 // On selectionne le type de demande "Dépôt Initial"
772 $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
773 // On clique pour ajouter un pétitionnaire principale
774 $this->byId("add_petitionnaire_principal")->click();
775 // On remplit le champ
776 $this->byId("particulier_nom")->value("DURAND");
777 // On remplit le champ
778 $this->byId("particulier_prenom")->value("MICKAEL");
779 // On remplit le champ
780 $this->byId("particulier_date_naissance")->value("03/01/1956");
781 // On remplit le champ
782 $this->byId("particulier_commune_naissance")->value("LILLE");
783 // On remplit le champ
784 $this->byId("particulier_departement_naissance")->value("NORD");
785 // On remplit le champ
786 $this->byId("numero")->value("12");
787 // On remplit le champ
788 $this->byId("voie")->value("RUE DE LA LOI");
789 // On remplit le champ
790 $this->byId("complement")->value("APPT 12");
791 // On remplit le champ
792 $this->byId("localite")->value("MARSEILLE");
793 // On remplit le champ
794 $this->byId("code_postal")->value("13012");
795 // On remplit le champ
796 $this->byId("telephone_fixe")->value("0404040404");
797 // On clique sur ajouter
798 $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
799 // On vérifie le message
800 $this->assertContains("Vos modifications ont bien été enregistrées", $this->byCssSelector("#sousform-petitionnaire .message")->text());
801 // On clique sur le bouton retour
802 $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
803 // On vérifie que le text est présent
804 $this->assertContains("DURAND MICKAEL",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
805 // On clique sur ajouter
806 $this->byXPath("//input[@value='Ajouter']")->click();
807 // On vérifie le message
808 $this->assertContains("Création du dossier d'autorisation n°",$this->byCssSelector(".message .text")->text());
809 // Récupération du numéro de dossier
810 preg_match('/(PC)[0-9 ]*(P0)/', $this->byCssSelector(".message .text")->text(), $dossier);
811 $dossier = $dossier[0];
812 /** Fin **/
813
814 /** On ajoute une instruction de dossier accepter et on la finalise **/
815 // On clique sur le menu "Instruction"
816 $this->byLinkText("Instruction")->click();
817 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
818 $this->verifyNoErrors();
819 // On clique sur le sous-menu "Recherche"
820 $this->byLinkText("Recherche")->click();
821 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
822 $this->verifyNoErrors();
823 // On recherche le dossier crée
824 $this->byId("dossier")->value(str_replace(' ', '', $dossier));
825 // On clique sur le bouton recherche
826 $this->byId("adv-search-submit")->click();
827 // On clique sur le résultat
828 $this->byLinkText($dossier)->click();
829 // On clique sur l'onglet "Instruction"
830 $this->byId("instruction")->click();
831 // On ajoute un événement d'instruction
832 $this->byId("action-soustab-instruction-corner-ajouter")->click();
833 // On sélectionne l'évenement "accepter un dossier sans réserve"
834 $this->select($this->byId("evenement"))->selectOptionByLabel("accepter un dossier sans réserve [acceptation]");
835 // On valide le formulaire
836 $this->byXPath("//input[@value='Ajouter']")->click();
837 // On vérifie le message
838 $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message .text")->text());
839 // On clique sur le bouton "retour"
840 $this->byLinkText("Retour")->click();
841 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
842 $this->verifyNoErrors();
843 // On clique sur l'événement d'instruction "accepter un dossier sans réserve"
844 $this->byLinkText("accepter un dossier sans réserve")->click();
845 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
846 $this->verifyNoErrors();
847 // On valide l'instruction
848 $this->byId("action-sousform-instruction-finalisation")->click();
849 // On vérifie le message de validation
850 $this->assertContains("La finalisation du document s'est effectuée avec succès.",$this->byCssSelector(".message .text")->text());
851 // On clique sur le bouton "Retour"
852 $this->byLinkText("Retour")->click();
853 // On clique sur l'événement "accepter un dossier sans réserve"
854 $this->byLinkText("accepter un dossier sans réserve")->click();sleep(1);
855 // Récupération du numéro d'événement
856 $evenement = $this->byCssSelector("#instruction.field_value")->text();
857 /** Fin **/
858
859 /** On met à jour la date de retour signature **/
860 // Date de retour signature
861 $date_retour_signature = date("d/m/Y", mktime(0, 0, 0, date("m"), date("d")+5, date("Y")));
862 // On clique sur le menu "Suivi"
863 $this->byLinkText("Suivi")->click();
864 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
865 $this->verifyNoErrors();
866 // On clique sur le sous-menu "Mise À Jour Des Dates"
867 $this->byLinkText("Mise À Jour Des Dates")->click();
868 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
869 $this->verifyNoErrors();
870 // On sélectionne "date de retour de signature + Envoi contrôle légalite"
871 $this->select($this->byId("type_mise_a_jour"))->selectOptionByLabel("date de retour de signature + Envoi contrôle légalite");
872 // On remplit à la date du jour + 5 jours
873 $this->byId("date")->value($date_retour_signature);
874 // On remplit le code barres de l'instruction
875 $this->byId("code_barres")->value("11".str_pad($evenement, 10, "0", STR_PAD_LEFT));
876 // On clique sur Valider
877 $this->byCssSelector("#suivi_mise_a_jour_des_dates_form div.formControls input.om-button")->click();sleep(1);
878 // On vérifie la synthèse avec le numéro du dossier et l'événement
879 $this->assertContains($dossier, $this->byId("dossier_libelle")->text());
880 $this->assertContains("accepter un dossier sans réserve", $this->byId("evenement")->text());
881 // On clique sur Valider
882 $this->byCssSelector("#suivi_mise_a_jour_des_dates_form div.formControls input.om-button")->click();
883 // On vérifie le message de validation
884 $this->assertContains("Saisie enregistrée",$this->byCssSelector(".message .text")->text());
885 /** Fin **/
886
887 /** Vérifie l'instruction "retour" et le DI **/
888 // Date de validité
889 $date_validite = date("d/m/Y", mktime(0, 0, 0, date("m")+5, date("d")+5, date("Y")));
890 // On clique sur le menu "Instruction"
891 $this->byLinkText("Instruction")->click();
892 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
893 $this->verifyNoErrors();
894 // On clique sur le sous-menu "Recherche"
895 $this->byLinkText("Recherche")->click();
896 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
897 $this->verifyNoErrors();
898 // On recherche le dossier crée
899 $this->byId("dossier")->value(str_replace(' ', '', $dossier));
900 // On clique sur le bouton recherche
901 $this->byId("adv-search-submit")->click();
902 // On clique sur le résultat
903 $this->byLinkText($dossier)->click();
904 // On vérifie la date de validité mise à jour par l'action
905 $this->assertContains($date_validite, $this->byId("date_validite")->text());
906 // On clique sur l'onglet "Instruction"
907 $this->byId("instruction")->click();
908 // On clique sur l'instruction "retour signature"
909 $this->byLinkText("retour signature")->click();
910 // On contrôle la date de retour signature
911 $this->assertContains($date_retour_signature, $this->byId("date_retour_signature")->text());
912 /** Fin **/
913
914 // On se déconnecte
915 $this->logout();
916
917 }
918
919 /**
920 * Test la suppression d'un événement d'instruction lié à une demande qui ne
921 * créée pas de nouveau dossier d'instruction
922 */
923 public function test_09_suppression_evenement_demande(){
924
925 //Ajout du paramétrage d'une nouvelle demande
926 // On se connecte à l'application en tant qu'administrateur
927 $this->login("admin", "admin");
928 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
929 $this->verifyNoErrors();
930 //On clique sur "Paramétrage dossier"
931 $this->byLinkText("Paramétrage Dossiers")->click();
932 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
933 $this->verifyNoErrors();
934 //On clique sur Type
935 $this->byLinkText("Type")->click();
936 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
937 $this->verifyNoErrors();
938 //On clique sur le "+" du tableau
939 $this->byClassName("add-16")->click();
940 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
941 $this->verifyNoErrors();
942 //On saisit le type de la demande
943 $this->byId("code")->value("test_09_suppression");
944 $this->byId("libelle")->value("test_09_suppression");
945 // On sélectionne le groupe 'Autorisation ADS'
946 $this->select($this->byId("groupe"))->selectOptionByValue("1");sleep(1);
947 // On sélectionne 'AZ (Demande d'autorisation spéciale de travaux dans
948 // le périmètre d'une AVAP)'
949 $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByValue("7");sleep(1);
950 // On sélectionne la nature 'Dossier existant'
951 $this->select($this->byId("demande_nature"))->selectOptionByValue("2");
952 // On sélectionne l'état 'En cours'
953 $this->select($this->byName("etats_dossier_autorisation_autorises[]"))->selectOptionByValue("1");
954 // On sélectionne l'événement 'Defrichement soumis a enquete publique'
955 $this->select($this->byId("evenement"))->selectOptionByValue("15");
956 // On sélectionne la contrainte 'Avec récupération demandeur'
957 $this->select($this->byId("contraintes"))->selectOptionByValue("avec_recup");
958 // On clique sur le bouton ajouter
959 $this->byXPath("//input[@value='Ajouter']")->click();
960 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
961 $this->verifyNoErrors();
962 // On vérifie que le type de demande a bien été ajouté
963 $this->assertContains('Vos modifications ont bien été enregistrées', $this->byCssSelector(".message .text")->text());
964 //On se déconnecte
965 $this->deconnect();
966
967 //Création d'un nouveau dossier d'instruction
968 // On se connecte à l'application
969 $this->login("guichet", "guichet");
970 //On clique sur "Dossier En Cours"
971 $this->byLinkText("Dossier En Cours")->click();
972 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
973 $this->verifyNoErrors();
974 //On clique sur le dossier "AZ0130551200001P0"
975 $this->byId("action-tab-demande_dossier_encours-left-consulter-AZ0130551200001P0")->click();
976 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
977 $this->verifyNoErrors();
978 //On sélectionne le type de la demande
979 $this->select($this->byId("demande_type"))->selectOptionByLabel("test_09_suppression");sleep(1);
980 // On clique sur le bouton ajouter
981 $this->byXPath("//input[@value='Ajouter']")->click();
982 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
983 $this->verifyNoErrors();
984 // On vérifie que le type de demande a bien été ajouté
985 $this->assertContains('Vos modifications ont bien été enregistrées', $this->byCssSelector(".message .text")->text());
986 //On se déconnecte
987 $this->deconnect();
988
989 //Suppression de l'événement d'instruction
990 // On se connecte à l'application
991 $this->login("admin", "admin");
992 //On clique sur le menu "Instruction"
993 $this->byLinkText("Instruction")->click();
994 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
995 $this->verifyNoErrors();
996 //On clique sur le menu "Recherche"
997 $this->byLinkText("Recherche")->click();
998 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
999 $this->verifyNoErrors();
1000 //On clique sur le dossier "AZ 013055 12 00001P0"
1001 $this->byLinkText("AZ 013055 12 00001P0")->click();
1002 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1003 $this->verifyNoErrors();
1004 //On clique sur l'onglet "Instruction"
1005 $this->byId("instruction")->click();
1006 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1007 $this->verifyNoErrors();
1008 //On clique sur l'instruction "Defrichement soumis a enquete publique"
1009 $this->byLinkText("Defrichement soumis a enquete publique")->click();
1010 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1011 $this->verifyNoErrors();
1012 //On définalise l'instruction
1013 $this->byClassName("definalise")->click();
1014 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1015 $this->verifyNoErrors();
1016 //On clique "Supprimer"
1017 $this->byCssSelector("#sousform-instruction .delete-16")->click();
1018 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1019 $this->verifyNoErrors();
1020 //On clique sur supprimer
1021 $this->byXPath("//input[@value='Supprimer']")->click();
1022 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1023 $this->verifyNoErrors();
1024 //On vérifie que lasuppression a été éffectuée
1025 $this->assertContains("La suppression a été correctement effectuée.",
1026 $this->byCssSelector("#sousform-instruction .message .text")->text());
1027 // On se déconnecte
1028 $this->logout();
1029 }
1030
1031 /**
1032 * Test sur les types d'éditions des consultations
1033 */
1034 function test_10_nouveau_type_edition_consultation(){
1035
1036 //On saisit un service de test
1037 // On se connecte à l'application
1038 $this->login("admin", "admin");
1039 //On clique sur "Paramétrage"
1040 $this->byLinkText("Paramétrage")->click();
1041 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1042 $this->verifyNoErrors();
1043 //On clique sur "Service"
1044 $this->byLinkText("Service")->click();
1045 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1046 $this->verifyNoErrors();
1047 //On clique sur le "+" du tableau
1048 $this->byClassName("add-16")->click();
1049 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1050 $this->verifyNoErrors();
1051 //On saisit les données du service
1052 $this->byId("abrege")->value("test_10");
1053 $this->byId("libelle")->value("test_10");
1054 $this->byId("consultation_papier")->click();
1055 $this->select($this->byId("edition"))->selectOptionByLabel("test_10");
1056 // On clique sur le bouton ajouter
1057 $this->byXPath("//input[@value='Ajouter']")->click();
1058 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1059 $this->verifyNoErrors();
1060 // On vérifie que le service a bien été ajouté
1061 $this->assertContains('Vos modifications ont bien été enregistrées', $this->byCssSelector(".message .text")->text());
1062 //On se déconnecte
1063 $this->deconnect();
1064
1065 //On ajoute une consultation sur un dossier et on vérifie l'édition
1066 // On se connecte à l'application
1067 $this->login("instr", "instr");
1068 //On clique sur "Recherche"
1069 $this->byLinkText("Recherche")->click();
1070 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1071 $this->verifyNoErrors();
1072 //On choisit le dossier "AZ 013055 12 00001P0"
1073 $this->byLinkText("AZ 013055 12 00001P0")->click();
1074 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1075 $this->verifyNoErrors();
1076 //On clique sur l'onglet "Consultation"
1077 $this->byId("consultation")->click();
1078 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1079 $this->verifyNoErrors();
1080 //On clique sur le "+" du tableau
1081 $this->byClassName("add-16")->click();
1082 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1083 $this->verifyNoErrors();
1084 //On saist une nouvelle consultation
1085 $this->select($this->byId("service"))->selectOptionByLabel("test_10");
1086 // On clique sur le bouton ajouter
1087 $this->byXPath("//input[@value='Ajouter']")->click();
1088 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1089 $this->verifyNoErrors();
1090 // On vérifie que la consultation a bien été ajoutée
1091 $this->assertContains('Vos modifications ont bien été enregistrées', $this->byCssSelector(".message .text")->text());
1092 //On clique sur retour
1093 $this->byCssSelector("#sousform-consultation .retour")->click();
1094 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1095 $this->verifyNoErrors();
1096 //On clique sur la consultation au service "test_10"
1097 $this->byLinkText("test_10")->click();
1098 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1099 $this->verifyNoErrors();
1100 //On affiche le PDF
1101 $this->byId("action-sousform-consultation-pdfetat")->click();sleep(5);
1102 // Liste les fenêtres
1103 $windows = $this->windowHandles();
1104 // Change la fenêtre
1105 $this->window($windows[1]);
1106 // On vérifie qu'il n'y ait pas d'erreur
1107 $this->verifynoerrors();
1108 // On vérifie que le text est présent
1109 $this->assertContains("test_10",$this->source());
1110 $this->assertNotContains("test_10_2",$this->source());
1111 // On ferme la fenêtre
1112 $this->closeWindow();
1113 // On change le focus de la fenêtre
1114 $this->window($windows[0]);
1115 //On se déconnecte
1116 $this->deconnect();
1117
1118 //On change l'édition
1119 // On se connecte à l'application
1120 $this->login("admin", "admin");
1121 //On clique sur "Paramétrage"
1122 $this->byLinkText("Paramétrage")->click();
1123 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1124 $this->verifyNoErrors();
1125 //On clique sur "Service"
1126 $this->byLinkText("Service")->click();
1127 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1128 $this->verifyNoErrors();
1129 //On cherche le service
1130 $this->byName("recherche")->value("test_10");
1131 //On valide
1132 $this->byName("s1")->click();
1133 //On clique sur le service test_10
1134 $this->byLinkText("test_10")->click();
1135 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1136 $this->verifyNoErrors();
1137 //On clique sur "Modifier" dans le portail d'action
1138 $this->byClassName("edit-16")->click();
1139 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1140 $this->verifyNoErrors();
1141 //On choisit une seconde édition
1142 $this->select($this->byId("edition"))->selectOptionByLabel("test_10_2");
1143 // On clique sur le bouton ajouter
1144 $this->byXPath("//input[@value='Modifier']")->click();
1145 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1146 $this->verifyNoErrors();
1147 // On vérifie que le service a bien été ajouté
1148 $this->assertContains('Vos modifications ont bien été enregistrées', $this->byCssSelector(".message .text")->text());
1149 //On se déconnecte
1150 $this->deconnect();
1151
1152 //On vérifie que c'est la bonne édition qui est affiché
1153 // On se connecte à l'application
1154 $this->login("instr", "instr");
1155 //On clique sur "Recherche"
1156 $this->byLinkText("Recherche")->click();
1157 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1158 $this->verifyNoErrors();
1159 //On choisit le dossier "AZ 013055 12 00001P0"
1160 $this->byLinkText("AZ 013055 12 00001P0")->click();
1161 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1162 $this->verifyNoErrors();
1163 //On clique sur l'onglet "Consultation"
1164 $this->byId("consultation")->click();
1165 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1166 $this->verifyNoErrors();
1167 //On clique sur la consultation au service "test_10"
1168 $this->byLinkText("test_10")->click();
1169 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1170 $this->verifyNoErrors();
1171 //on definalise la consultaion
1172 $this->byClassName("definalise")->click();
1173 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1174 $this->verifyNoErrors();
1175 //On vérifie que la consultation s'est bien définalisée
1176 $this->assertEquals('La definalisation du document s\'est effectuée avec succès.', $this->byCssSelector("#sousform-consultation .message .text")->text());sleep(10);
1177 //On affiche le PDF
1178 $this->byId("action-sousform-consultation-pdfetat")->click();sleep(5);
1179 // Liste les fenêtres
1180 $windows = $this->windowHandles();
1181 // Change la fenêtre
1182 $this->window($windows[1]);
1183 // On vérifie qu'il n'y ait pas d'erreur
1184 $this->verifynoerrors();
1185 // On vérifie que le text est présent
1186 $this->assertContains("test_10_2",$this->source());
1187 // On ferme la fenêtre
1188 $this->closeWindow();
1189 // On change le focus de la fenêtre
1190 $this->window($windows[0]);
1191
1192 // On se déconnecte
1193 $this->logout();
1194 }
1195
1196 /**
1197 * Test sur un événement non verrouillable
1198 */
1199 public function test_11_evenement_non_verrouillable(){
1200
1201 /* On crée une nouvelle demande initial */
1202 // On se connecte à l'application
1203 $this->login("guichet", "guichet");
1204 // On clique sur le menu "Nouveau Dossier"
1205 $this->byLinkText("Nouveau Dossier")->click();
1206 // On vérifie qu'il n'y ait pas d'erreur
1207 $this->verifynoerrors();
1208 // On vérifie le nom de l'onglet
1209 $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
1210 // On sélectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
1211 $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel("Permis de construire pour une maison individuelle et / ou ses annexes");
1212 // On selectionne le label "Dépôt Initial"
1213 $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
1214 // On clique pour ajouter un pétitionnaire principale
1215 $this->byId("add_petitionnaire_principal")->click();
1216 // On remplit le champ
1217 $this->byId("particulier_nom")->value("DURAND");
1218 // On remplit le champ
1219 $this->byId("particulier_prenom")->value("MICKAEL");
1220 // On remplit le champ
1221 $this->byId("particulier_date_naissance")->value("03/01/1956");
1222 // On remplit le champ
1223 $this->byId("particulier_commune_naissance")->value("LILLE");
1224 // On remplit le champ
1225 $this->byId("particulier_departement_naissance")->value("NORD");
1226 // On remplit le champ
1227 $this->byId("numero")->value("12");
1228 // On remplit le champ
1229 $this->byId("voie")->value("RUE DE LA LOI");
1230 // On remplit le champ
1231 $this->byId("complement")->value("APPT 12");
1232 // On remplit le champ
1233 $this->byId("localite")->value("MARSEILLE");
1234 // On remplit le champ
1235 $this->byId("code_postal")->value("13012");
1236 // On remplit le champ
1237 $this->byId("telephone_fixe")->value("0404040404");
1238 // On clique sur ajouter
1239 $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
1240 // On vérifie qu'il n'y ait pas d'erreur
1241 $this->verifynoerrors();
1242 // On vérifie le message
1243 $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-petitionnaire .message")->text());
1244 // On clique sur le bouton retour
1245 $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
1246 // On vérifie que le text est présent
1247 $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
1248 // On clique sur ajouter
1249 $this->byXPath("//input[@value='Ajouter']")->click();
1250 // On vérifie qu'il n'y ait pas d'erreur
1251 $this->verifynoerrors();
1252 // On vérifie le message
1253 $this->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°[\s\S]*$/",$this->byCssSelector(".message")->text());
1254 // Récupération du numéro de dossier
1255 preg_match('/(PC)[0-9 ]*(P0)/', $this->byCssSelector(".message .text")->text(), $matches);
1256 $dossier_libelle = $matches[0];
1257 $dossier = str_replace(' ', '', $dossier_libelle);
1258 $dossier_dir = substr_replace($dossier, '.', -2, -3);
1259 // On clique
1260 $this->byCssSelector("a.lien")->click();sleep(5);
1261 // Liste les fenêtres
1262 $windows = $this->windowHandles();
1263 // Change la fenêtre
1264 $this->window($windows[1]);
1265 // On vérifie qu'il n'y ait pas d'erreur
1266 $this->verifynoerrors();
1267 // On vérifie que le text est présent
1268 $this->assertRegExp("/^[\s\S]*RECEPISSE DE DEPOT[\s\S]*$/",$this->source());
1269 // On ferme la fenêtre
1270 $this->closeWindow();
1271 // On change le focus de la fenêtre
1272 $this->window($windows[0]);
1273 // On clique sur le bouton retour
1274 $this->byLinkText("Retour")->click();
1275 // On vérifie qu'il n'y ait pas d'erreur
1276 $this->verifynoerrors();
1277 // On vérifie que le répertoire s'est crée
1278 $this->assertTrue(file_exists("../trs/numerisation/Todo/".$dossier_dir));
1279 // On se déconnecte
1280 $this->deconnect();
1281 /* Fin */
1282
1283 /* On accepte le dossier d'instruction et le finalise */
1284 // On se connecte à l'application
1285 $this->login("instr", "instr");
1286 // On clique sur le menu 'Recherche'
1287 $this->byLinkText("Recherche")->click();
1288 // On recherche le dossier crée
1289 $this->byId("dossier")->value($dossier);
1290 // On clique sur le bouton recherche
1291 $this->byId("adv-search-submit")->click();
1292 // On clique sur le résultat
1293 $this->byLinkText($dossier_libelle)->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 "Instruction"
1297 $this->byId("instruction")->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 lien d'ajout dans le tableau
1301 $this->byCssSelector(".actions-max-1 a")->click();
1302 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1303 $this->verifyNoErrors();
1304 // On choisi un événement
1305 $this->select($this->byId("evenement"))->selectOptionByLabel("accepter un dossier sans réserve [acceptation]");
1306 // On valide le formulaire
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 sleep(1);
1311 $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
1312 // On retourne sur le tableau d'instructions
1313 $this->byCssSelector("#sousform-instruction .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 l'événement d'instruction "accepter un dossier sans réserve"
1317 $this->byLinkText("accepter un dossier sans réserve")->click();
1318 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1319 $this->verifyNoErrors();
1320 // On valide l'instruction (un événement verrouillable ne pourrait pas
1321 // être finalisé)
1322 $this->byId("action-sousform-instruction-finalisation")->click();
1323 // On vérifie le message de validation
1324 $this->assertContains("La finalisation du document s'est effectuée avec succès.",$this->byCssSelector(".message .text")->text());
1325 /* Fin */
1326 }
1327
1328 /**
1329 * Test que les données du dossier d'autorisation sont recopiés dans les
1330 * champs 'archive_' de l'événement d'instruction de la création du nouveau
1331 * dossier d'instruction
1332 */
1333 public function test_12_recopie_donnees_da_vers_nouveau_di(){
1334
1335 //{{{ Ajout de d'un nouveau dossier
1336 // On se connecte à l'application
1337 $this->login("guichet", "guichet");
1338 //On clique sur le menu des instructions
1339 $this->byLinkText("Nouveau Dossier")->click();
1340 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1341 $this->verifyNoErrors();
1342 //On ajoute un nouveau dossier
1343 $dossier = $this->addDossierInstruction( 1, 1);
1344 // On se déconnecte
1345 $this->deconnect();
1346 //}}}
1347
1348 //{{{ Clôture du nouveau dossier
1349 // On se connecte à l'application
1350 $this->login("instr", "instr");
1351 //On clique sur le menu "Recherche"
1352 $this->byLinkText("Recherche")->click();
1353 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1354 $this->verifyNoErrors();
1355 // On recherche le dossier crée
1356 $this->byId("dossier")->value(str_replace(' ', '', $dossier));
1357 // On clique sur le bouton recherche
1358 $this->byId("adv-search-submit")->click();
1359 // On clique sur le résultat
1360 $this->byLinkText($dossier)->click();
1361 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1362 $this->verifyNoErrors();
1363 //On clique sur l'onglet "instruction"
1364 $this->byId("instruction")->click();
1365 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1366 $this->verifyNoErrors();
1367 // On ajoute une instruction
1368 $this->byCssSelector("#sousform-instruction .add-16")->click();
1369 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1370 $this->verifyNoErrors();
1371 //On choisit l'instruction 'accepter un dossier sans réserve
1372 //[acceptation]'
1373 $this->select($this->byId("evenement"))->selectOptionByValue(81);
1374 // On clique sur ajouter
1375 $this->byXPath("//input[@value='Ajouter']")->click();
1376 // On vérifie qu'il n'y ait pas d'erreur
1377 $this->verifynoerrors();
1378 // On vérifie le message
1379 $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1380 //On rafraichit la page pour vérifier que le dossier est clôturé
1381 $this->refresh();
1382 $this->assertEquals("Favorable", $this->byId("avis_decision")->text());
1383 // On se déconnecte
1384 $this->deconnect();
1385 //}}}
1386
1387 //{{{ Ajout de l'action
1388 // On se connecte à l'application
1389 $this->login("admin", "admin");
1390 //On clique sur le menu "Paramétrage dossiers"
1391 $this->byLinkText("Paramétrage Dossiers")->click();
1392 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1393 $this->verifyNoErrors();
1394 //On clique sur le menu "Action"
1395 $this->byLinkText("Action")->click();
1396 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1397 $this->verifyNoErrors();
1398 //On clique sur le "+" du tableau
1399 $this->byClassName("add-16")->click();
1400 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1401 $this->verifyNoErrors();
1402 //On remplit la règle de calcul de la date de validité
1403 $this->byId("action")->value("test_12_recopie_donnees");
1404 $this->byId("libelle")->value("test_12_recopie_donnees");
1405 $this->byId("regle_date_validite")->value("archive_date_validite+12");
1406 // On clique sur ajouter
1407 $this->byXPath("//input[@value='Ajouter']")->click();
1408 // On vérifie qu'il n'y ait pas d'erreur
1409 $this->verifynoerrors();
1410 // On vérifie le message
1411 $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1412 //}}}
1413
1414 //{{{ Ajout de l'événement
1415 //On clique sur le menu "Événement"
1416 $this->byLinkText("Événement")->click();
1417 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1418 $this->verifyNoErrors();
1419 //On clique sur le "+" du tableau
1420 $this->byClassName("add-16")->click();
1421 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1422 $this->verifyNoErrors();
1423 //On remplit l'événement qui va être ajouté avec la nouvelle demande
1424 $this->byId("libelle")->value("test_12_recopie_donnees");
1425 $this->select($this->byName("etats_depuis_lequel_l_evenement_est_disponible[]"))->selectOptionByValue("accepter");
1426 // On sélectionne PCI - P - Initial
1427 $this->select($this->byName("dossier_instruction_type[]"))->selectOptionByValue(1);
1428 $this->select($this->byName("action"))->selectOptionByLabel("test_12_recopie_donnees");
1429 // On clique sur ajouter
1430 $this->byXPath("//input[@value='Ajouter']")->click();
1431 // On vérifie qu'il n'y ait pas d'erreur
1432 $this->verifynoerrors();
1433 // On vérifie le message
1434 $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1435 //}}}
1436
1437 //{{{ Ajout du type de dossier d'instruction
1438 //On clique sur le menu "Type DI"
1439 $this->byLinkText("Type DI")->click();
1440 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1441 $this->verifyNoErrors();
1442 //On clique sur le "+" du tableau
1443 $this->byClassName("add-16")->click();
1444 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1445 $this->verifyNoErrors();
1446 //On remplit le type de la demande
1447 $this->byId("code")->value("DT");
1448 $this->byId("libelle")->value("test_12_recopie_donnees");
1449 // On sélectionne PCI (Permis de construire pour une maison individuelle
1450 // et / ou ses annexes)
1451 $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByValue(1);sleep(1);
1452 $this->byId("suffixe")->click();
1453 // On clique sur ajouter
1454 $this->byXPath("//input[@value='Ajouter']")->click();
1455 // On vérifie qu'il n'y ait pas d'erreur
1456 $this->verifynoerrors();
1457 // On vérifie le message
1458 $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1459 //}}}
1460
1461 //{{{ Ajout du type de la demande
1462 //On clique sur le menu "Type"
1463 $this->byLinkText("Type")->click();
1464 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1465 $this->verifyNoErrors();
1466 //On clique sur le "+" du tableau
1467 $this->byClassName("add-16")->click();
1468 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1469 $this->verifyNoErrors();
1470 //On remplit le type de la demande
1471 $this->byId("code")->value("test_12_recopie_donnees");
1472 $this->byId("libelle")->value("test_12_recopie_donnees");
1473 // On sélectionne Autorisation ADS
1474 $this->select($this->byId("groupe"))->selectOptionByValue(1);sleep(1);
1475 // On sélectionne PCI (Permis de construire pour une maison individuelle
1476 // et / ou ses annexes)
1477 $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByValue(1);
1478 // On sélectionne Dossier existant
1479 $this->select($this->byId("demande_nature"))->selectOptionByValue(2);
1480 // On sélectionne Accordé
1481 $this->select($this->byName("etats_dossier_autorisation_autorises[]"))->selectOptionByValue(2);
1482 $this->select($this->byId("dossier_instruction_type"))->selectOptionByLabel("PCI - test_12_recopie_donnees");
1483 $this->select($this->byId("evenement"))->selectOptionByLabel("test_12_recopie_donnees");
1484 // On clique sur ajouter
1485 $this->byXPath("//input[@value='Ajouter']")->click();
1486 // On vérifie qu'il n'y ait pas d'erreur
1487 $this->verifynoerrors();
1488 // On vérifie le message
1489 $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1490 //On clique sur retour
1491 $this->byClassName("retour")->click();
1492 // On vérifie qu'il n'y ait pas d'erreur
1493 $this->verifynoerrors();
1494 //On saisit le libellé du type de la demande saisit
1495 $this->byName("recherche")->value("test_12_recopie_donnees");
1496 //On valide
1497 $this->byName("s1")->click();
1498 // On vérifie qu'il n'y ait pas d'erreur
1499 $this->verifynoerrors();
1500 //On clique sur le type de la demande
1501 $this->byLinkText("test_12_recopie_donnees")->click();
1502 // On vérifie qu'il n'y ait pas d'erreur
1503 $this->verifynoerrors();
1504 //On récupère l'identifiant du type de la demande
1505 $demande_type = $this->byId("demande_type")->text();
1506 // On se déconnecte
1507 $this->deconnect();
1508 //}}}
1509
1510 //{{{ Ajout de d'un nouveau dossier
1511 // On se connecte à l'application
1512 $this->login("guichet", "guichet");
1513 //On clique sur le menu des instructions
1514 $this->byLinkText("Dossier En Cours")->click();
1515 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1516 $this->verifyNoErrors();
1517 //On ajoute un nouveau dossier
1518 $dossier = $this->addDossierInstruction( 1, $demande_type, 2, str_replace(" ", "", $dossier));
1519 // On se déconnecte
1520 $this->deconnect();
1521 //}}}
1522
1523 //{{{ Vérification de la date de validité
1524 // On se connecte à l'application
1525 $this->login("instr", "instr");
1526 //On clique sur le menu "Recherche"
1527 $this->byLinkText("Recherche")->click();
1528 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1529 $this->verifyNoErrors();
1530 // On recherche le dossier crée
1531 $this->byId("dossier")->value(str_replace(' ', '', $dossier));
1532 // On clique sur le bouton recherche
1533 $this->byId("adv-search-submit")->click();
1534 // On clique sur le résultat
1535 $this->byLinkText($dossier)->click();
1536 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1537 $this->verifyNoErrors();
1538 //On vérifie la date de validité
1539 $this->assertEquals(date("d/m/Y", strtotime('+12 months')), $this->byId("date_validite")->text());
1540 // On se déconnecte
1541 $this->deconnect();
1542 //}}}
1543 }
1544
1545 /**
1546 * Ajout d'un dossier d'instruction par le guichet unique
1547 *
1548 * @param int $dossier_autorisation_type_detaille L'identifiant du type détaillé
1549 * de dossier d'autorisation
1550 * @param int $demande_type L'identifiant du type de la demande
1551 * @param int $type Type de la demande : nouveau dossier ou dossier existant
1552 * @return le numéro de dossier d'instruction qui vient d'être créé
1553 */
1554 public function addDossierInstruction($dossier_autorisation_type_detaille,
1555 $demande_type, $type = 1, $dossier = "" ){
1556
1557 if ($type===1){
1558 //On choisit le type détaillé de dossier d'autorisation
1559 $this->select($this->byName("dossier_autorisation_type_detaille"))->selectOptionByValue($dossier_autorisation_type_detaille);
1560 }
1561 else {
1562 sleep(2);
1563 // On remplit le champ de recherche simple
1564 $this->byCssSelector("input[name='recherche']")->value(str_replace(' ', '', $dossier));
1565 // On clique sur le bouton recherche
1566 $this->byCssSelector(".ui-button")->click();sleep(1);
1567 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1568 $this->verifyNoErrors();
1569 // On clique sur le résultat
1570 $this->byId("action-tab-demande_dossier_encours-left-consulter-".str_replace(' ', '', $dossier))->click();
1571 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1572 $this->verifyNoErrors();
1573 }
1574 //On choisit le type de demande
1575 $this->select($this->byName("demande_type"))->selectOptionByValue($demande_type);
1576 //On clique sur "Saisir le pétitionnaire principal"
1577 $this->byId("add_petitionnaire_principal")->click();
1578 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1579 $this->verifyNoErrors();
1580 //On saisie le nom du pétitionnaire principal
1581 $this->byId("particulier_nom")->value("test recopie");
1582 // On clique sur ajouter
1583 $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
1584 // On vérifie qu'il n'y ait pas d'erreur
1585 $this->verifynoerrors();
1586 //On vérifie que le pétitionnaire s'est bien ajouté
1587 // On vérifie le message
1588 $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector("#sousform-petitionnaire .message")->text());
1589 // On clique sur le bouton retour
1590 $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
1591 // On vérifie que le text est présent
1592 $this->assertContains("test recopie",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
1593 // On clique sur ajouter
1594 $this->byXPath("//input[@value='Ajouter']")->click();
1595 // On vérifie qu'il n'y ait pas d'erreur
1596 $this->verifynoerrors();
1597 // On vérifie le message
1598 $this->assertContains("Création du dossier",$this->byCssSelector(".message")->text());
1599 //On récupère le numéro de dossier d'instruction créé
1600 if ($type===1){
1601 preg_match('/(PC)[0-9 ]*(P0)/', $this->byCssSelector("#tabs-1 .message")->text(), $dossier);
1602 }
1603 else{
1604 preg_match('/(PC)[0-9 ]*(DT1)/', $this->byCssSelector("#tabs-1 .message")->text(), $dossier);
1605 }
1606 return $dossier[0];
1607 }
1608 }
1609
1610 ?>

Properties

Name Value
svn:keywords Id

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26