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

Contents of /trunk/tests/testInstruction.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2676 - (show annotations)
Tue Jan 7 17:54:58 2014 UTC (11 years ago) by softime
File size: 83163 byte(s)
Correction des tests.
+ Correction de la requête d'affichage des dossiers encours qui provoquait une erreur de base de données lors d'une recherche simple.

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 // Instancie la timezone
673 date_default_timezone_set('Europe/Paris');
674
675 // On se connecte à l'application en tant qu'administrateur
676 $this->login("admin", "admin");
677 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
678 $this->verifyNoErrors();
679
680 /** On ajoute une action "retour signature" **/
681 // On clique sur le menu "Paramétrage Dossiers"
682 $this->byLinkText("Paramétrage Dossiers")->click();
683 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
684 $this->verifyNoErrors();
685 // On clique sur le sous-menu "Action"
686 $this->byLinkText("Action")->click();
687 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
688 $this->verifyNoErrors();
689 // On clique sur le bouton "ajouter"
690 $this->byId("action-tab-action-corner-ajouter")->click();
691 // On remplis les champs
692 $this->byId("action")->value("retour signature");
693 $this->byId("libelle")->value("retour signature");
694 $this->byId("regle_etat")->value("etat");
695 $this->byId("regle_date_validite")->value("date_retour_signature + duree_validite");
696 // On valide le formulaire
697 $this->byXPath("//input[@value='Ajouter']")->click();
698 // On vérifie le message de validation
699 $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text());
700 /** Fin **/
701
702 /** On ajoute un événement "retour signature" **/
703 // On clique sur le sous-menu "Événement"
704 $this->byLinkText("Événement")->click();
705 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
706 $this->verifyNoErrors();
707 // On clique sur le bouton "ajouter"
708 $this->byId("action-tab-evenement-corner-ajouter")->click();
709 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
710 $this->verifyNoErrors();
711 // On remplis les champs
712 $this->byId("libelle")->value("retour signature");
713 $this->byId("retour")->click();
714 $this->select($this->byName("etats_depuis_lequel_l_evenement_est_disponible[]"))->clearSelectedOptions();;
715 $this->select($this->byName("etats_depuis_lequel_l_evenement_est_disponible[]"))->selectOptionByLabel("dossier accepter");
716 $this->select($this->byName("dossier_instruction_type[]"))->clearSelectedOptions();
717 $this->select($this->byName("dossier_instruction_type[]"))->selectOptionByLabel("PCI - P - Initial");
718 $this->select($this->byId("action"))->selectOptionByLabel("retour signature");
719 // On valide le formulaire
720 $this->byXPath("//input[@value='Ajouter']")->click();
721 // On vérifie le message de validation
722 $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text());
723 // On clique sur "Retour"
724 $this->byLinkText("Retour")->click();
725 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
726 $this->verifyNoErrors();
727 // On recherche l'événement "accepter un dossier sans réserve"
728 $this->byCssSelector("input[name='recherche']")->value('accepter un dossier sans réserve');
729 // On clique sur le bouton recherche
730 $this->byCssSelector(".ui-button")->click();
731 // On clique sur le résultat
732 $this->byLinkText("accepter un dossier sans réserve")->click();
733 // On clique sur le bouton "Modifier"
734 $this->byId('action-form-evenement-modifier')->click();
735 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
736 $this->verifyNoErrors();
737 // On sélectionne l'événement "retour" dans "evenement_retour_signature"
738 $this->select($this->byId("evenement_retour_signature"))->selectOptionByLabel("retour signature");
739 // On valide le formulaire
740 $this->byXPath("//input[@value='Modifier']")->click();
741 // On vérifie le message de validation
742 $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text());
743 /** Fin **/
744
745 /** On ajoute une durée de validité au type de DA PCI **/
746 // On clique sur le sous-menu "Type DA Détaillé"
747 $this->byLinkText("Type DA Détaillé")->click();
748 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
749 $this->verifyNoErrors();
750 // On clique sur le PCI
751 $this->byLinkText("PCI")->click();
752 // On clique sur le bouton "modifier"
753 $this->byId("action-form-dossier_autorisation_type_detaille-modifier")->click();
754 // On modifie la durée de validité
755 $this->byId("duree_validite_parametrage")->clear();
756 $this->byId("duree_validite_parametrage")->value("5");
757 // On valide le formulaire
758 $this->byXPath("//input[@value='Modifier']")->click();
759 // On vérifie le message de validation
760 $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text());
761 /** Fin **/
762
763 /** On instancie une nouvelle demande initial PCI **/
764 // On clique sur le menu "Guichet Unique"
765 $this->byLinkText("Guichet Unique")->click();
766 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
767 $this->verifyNoErrors();
768 // On clique sur le sous-menu "Nouveau Dossier"
769 $this->byLinkText("Nouveau Dossier")->click();
770 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
771 $this->verifyNoErrors();
772 // On selectionne le type de dossier d'autorisation détaillé "Permis de construire pour une maison individuelle et / ou ses annexes"
773 $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel("Permis de construire pour une maison individuelle et / ou ses annexes");
774 // On selectionne le type de demande "Dépôt Initial"
775 $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
776 // On clique pour ajouter un pétitionnaire principale
777 $this->byId("add_petitionnaire_principal")->click();
778 // On remplit le champ
779 $this->byId("particulier_nom")->value("DURAND");
780 // On remplit le champ
781 $this->byId("particulier_prenom")->value("MICKAEL");
782 // On remplit le champ
783 $this->byId("particulier_date_naissance")->value("03/01/1956");
784 // On remplit le champ
785 $this->byId("particulier_commune_naissance")->value("LILLE");
786 // On remplit le champ
787 $this->byId("particulier_departement_naissance")->value("NORD");
788 // On remplit le champ
789 $this->byId("numero")->value("12");
790 // On remplit le champ
791 $this->byId("voie")->value("RUE DE LA LOI");
792 // On remplit le champ
793 $this->byId("complement")->value("APPT 12");
794 // On remplit le champ
795 $this->byId("localite")->value("MARSEILLE");
796 // On remplit le champ
797 $this->byId("code_postal")->value("13012");
798 // On remplit le champ
799 $this->byId("telephone_fixe")->value("0404040404");
800 // On clique sur ajouter
801 $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
802 // On vérifie le message
803 $this->assertContains("Vos modifications ont bien été enregistrées", $this->byCssSelector("#sousform-petitionnaire .message")->text());
804 // On clique sur le bouton retour
805 $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
806 // On vérifie que le text est présent
807 $this->assertContains("DURAND MICKAEL",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
808 // On clique sur ajouter
809 $this->byXPath("//input[@value='Ajouter']")->click();
810 // On vérifie le message
811 $this->assertContains("Création du dossier d'autorisation n°",$this->byCssSelector(".message .text")->text());
812 // Récupération du numéro de dossier
813 preg_match('/(PC)[0-9 ]*(P0)/', $this->byCssSelector(".message .text")->text(), $dossier);
814 $dossier = $dossier[0];
815 /** Fin **/
816
817 /** On ajoute une instruction de dossier accepter et on la finalise **/
818 // On clique sur le menu "Instruction"
819 $this->byLinkText("Instruction")->click();
820 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
821 $this->verifyNoErrors();
822 // On clique sur le sous-menu "Recherche"
823 $this->byLinkText("Recherche")->click();
824 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
825 $this->verifyNoErrors();
826 // On recherche le dossier crée
827 $this->byId("dossier")->value(str_replace(' ', '', $dossier));
828 // On clique sur le bouton recherche
829 $this->byId("adv-search-submit")->click();
830 // On clique sur le résultat
831 $this->byLinkText($dossier)->click();
832 // On clique sur l'onglet "Instruction"
833 $this->byId("instruction")->click();
834 // On ajoute un événement d'instruction
835 $this->byId("action-soustab-instruction-corner-ajouter")->click();
836 // On sélectionne l'évenement "accepter un dossier sans réserve"
837 $this->select($this->byId("evenement"))->selectOptionByLabel("accepter un dossier sans réserve [acceptation]");
838 // On valide le formulaire
839 $this->byXPath("//input[@value='Ajouter']")->click();
840 // On vérifie le message
841 $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message .text")->text());
842 // On clique sur le bouton "retour"
843 $this->byLinkText("Retour")->click();
844 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
845 $this->verifyNoErrors();
846 // On clique sur l'événement d'instruction "accepter un dossier sans réserve"
847 $this->byLinkText("accepter un dossier sans réserve")->click();
848 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
849 $this->verifyNoErrors();
850 // On valide l'instruction
851 $this->byId("action-sousform-instruction-finalisation")->click();
852 // On vérifie le message de validation
853 $this->assertContains("La finalisation du document s'est effectuée avec succès.",$this->byCssSelector(".message .text")->text());
854 // On clique sur le bouton "Retour"
855 $this->byLinkText("Retour")->click();
856 // On clique sur l'événement "accepter un dossier sans réserve"
857 $this->byLinkText("accepter un dossier sans réserve")->click();sleep(1);
858 // Récupération du numéro d'événement
859 $evenement = $this->byCssSelector("#instruction.field_value")->text();
860 /** Fin **/
861
862 /** On met à jour la date de retour signature **/
863 // Date de retour signature
864 $date_retour_signature = date("d/m/Y", mktime(0, 0, 0, date("m"), date("d")+5, date("Y")));
865 // On clique sur le menu "Suivi"
866 $this->byLinkText("Suivi")->click();
867 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
868 $this->verifyNoErrors();
869 // On clique sur le sous-menu "Mise À Jour Des Dates"
870 $this->byLinkText("Mise À Jour Des Dates")->click();
871 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
872 $this->verifyNoErrors();
873 // On sélectionne "date de retour de signature + Envoi contrôle légalite"
874 $this->select($this->byId("type_mise_a_jour"))->selectOptionByLabel("date de retour de signature + Envoi contrôle légalite");
875 // On remplit à la date du jour + 5 jours
876 $this->byId("date")->value($date_retour_signature);
877 // On remplit le code barres de l'instruction
878 $this->byId("code_barres")->value("11".str_pad($evenement, 10, "0", STR_PAD_LEFT));
879 // On clique sur Valider
880 $this->byCssSelector("#suivi_mise_a_jour_des_dates_form div.formControls input.om-button")->click();sleep(1);
881 // On vérifie la synthèse avec le numéro du dossier et l'événement
882 $this->assertContains($dossier, $this->byId("dossier_libelle")->text());
883 $this->assertContains("accepter un dossier sans réserve", $this->byId("evenement")->text());
884 // On clique sur Valider
885 $this->byCssSelector("#suivi_mise_a_jour_des_dates_form div.formControls input.om-button")->click();
886 // On vérifie le message de validation
887 $this->assertContains("Saisie enregistrée",$this->byCssSelector(".message .text")->text());
888 /** Fin **/
889
890 /** Vérifie l'instruction "retour" et le DI **/
891 // Date de validité
892 $date_validite = date("d/m/Y", mktime(0, 0, 0, date("m")+5, date("d")+5, date("Y")));
893 // On clique sur le menu "Instruction"
894 $this->byLinkText("Instruction")->click();
895 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
896 $this->verifyNoErrors();
897 // On clique sur le sous-menu "Recherche"
898 $this->byLinkText("Recherche")->click();
899 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
900 $this->verifyNoErrors();
901 // On recherche le dossier crée
902 $this->byId("dossier")->value(str_replace(' ', '', $dossier));
903 // On clique sur le bouton recherche
904 $this->byId("adv-search-submit")->click();
905 // On clique sur le résultat
906 $this->byLinkText($dossier)->click();
907 // On vérifie la date de validité mise à jour par l'action
908 $this->assertContains($date_validite, $this->byId("date_validite")->text());
909 // On clique sur l'onglet "Instruction"
910 $this->byId("instruction")->click();
911 // On clique sur l'instruction "retour signature"
912 $this->byLinkText("retour signature")->click();
913 // On contrôle la date de retour signature
914 $this->assertContains($date_retour_signature, $this->byId("date_retour_signature")->text());
915 /** Fin **/
916
917 // On se déconnecte
918 $this->logout();
919
920 }
921
922 /**
923 * Test la suppression d'un événement d'instruction lié à une demande qui ne
924 * créée pas de nouveau dossier d'instruction
925 */
926 public function test_09_suppression_evenement_demande(){
927
928 //Ajout du paramétrage d'une nouvelle demande
929 // On se connecte à l'application en tant qu'administrateur
930 $this->login("admin", "admin");
931 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
932 $this->verifyNoErrors();
933 //On clique sur "Paramétrage dossier"
934 $this->byLinkText("Paramétrage Dossiers")->click();
935 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
936 $this->verifyNoErrors();
937 //On clique sur Type
938 $this->byLinkText("Type")->click();
939 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
940 $this->verifyNoErrors();
941 //On clique sur le "+" du tableau
942 $this->byClassName("add-16")->click();
943 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
944 $this->verifyNoErrors();
945 //On saisit le type de la demande
946 $this->byId("code")->value("test_09_suppression");
947 $this->byId("libelle")->value("test_09_suppression");
948 // On sélectionne le groupe 'Autorisation ADS'
949 $this->select($this->byId("groupe"))->selectOptionByValue("1");sleep(1);
950 // On sélectionne 'AZ (Demande d'autorisation spéciale de travaux dans
951 // le périmètre d'une AVAP)'
952 $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByValue("7");sleep(1);
953 // On sélectionne la nature 'Dossier existant'
954 $this->select($this->byId("demande_nature"))->selectOptionByValue("2");
955 // On sélectionne l'état 'En cours'
956 $this->select($this->byName("etats_dossier_autorisation_autorises[]"))->selectOptionByValue("1");
957 // On sélectionne l'événement 'Defrichement soumis a enquete publique'
958 $this->select($this->byId("evenement"))->selectOptionByValue("15");
959 // On sélectionne la contrainte 'Avec récupération demandeur'
960 $this->select($this->byId("contraintes"))->selectOptionByValue("avec_recup");
961 // On clique sur le bouton ajouter
962 $this->byXPath("//input[@value='Ajouter']")->click();
963 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
964 $this->verifyNoErrors();
965 // On vérifie que le type de demande a bien été ajouté
966 $this->assertContains('Vos modifications ont bien été enregistrées', $this->byCssSelector(".message .text")->text());
967 //On se déconnecte
968 $this->deconnect();
969
970 //Création d'un nouveau dossier d'instruction
971 // On se connecte à l'application
972 $this->login("guichet", "guichet");
973 //On clique sur "Guichet Unique"
974 $this->byLinkText("Guichet Unique")->click();
975 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
976 $this->verifyNoErrors();
977 //On clique sur "Dossier En Cours"
978 $this->byLinkText("Dossier En Cours")->click();
979 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
980 $this->verifyNoErrors();
981 //On clique sur le dossier "AZ0130551200001P0"
982 $this->byId("action-tab-demande_dossier_encours-left-consulter-AZ0130551200001P0")->click();
983 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
984 $this->verifyNoErrors();
985 //On sélectionne le type de la demande
986 $this->select($this->byId("demande_type"))->selectOptionByLabel("test_09_suppression");sleep(1);
987 // On clique sur le bouton ajouter
988 $this->byXPath("//input[@value='Ajouter']")->click();
989 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
990 $this->verifyNoErrors();
991 // On vérifie que le type de demande a bien été ajouté
992 $this->assertContains('Vos modifications ont bien été enregistrées', $this->byCssSelector(".message .text")->text());
993 //On se déconnecte
994 $this->deconnect();
995
996 //Suppression de l'événement d'instruction
997 // On se connecte à l'application
998 $this->login("admin", "admin");
999 //On clique sur le menu "Instruction"
1000 $this->byLinkText("Instruction")->click();
1001 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1002 $this->verifyNoErrors();
1003 //On clique sur le menu "Recherche"
1004 $this->byLinkText("Recherche")->click();
1005 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1006 $this->verifyNoErrors();
1007 //On clique sur le dossier "AZ 013055 12 00001P0"
1008 $this->byLinkText("AZ 013055 12 00001P0")->click();
1009 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1010 $this->verifyNoErrors();
1011 //On clique sur l'onglet "Instruction"
1012 $this->byId("instruction")->click();
1013 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1014 $this->verifyNoErrors();
1015 //On clique sur l'instruction "Defrichement soumis a enquete publique"
1016 $this->byLinkText("Defrichement soumis a enquete publique")->click();
1017 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1018 $this->verifyNoErrors();
1019 //On définalise l'instruction
1020 $this->byClassName("definalise")->click();
1021 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1022 $this->verifyNoErrors();
1023 //On clique "Supprimer"
1024 $this->byCssSelector("#sousform-instruction .delete-16")->click();
1025 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1026 $this->verifyNoErrors();
1027 //On clique sur supprimer
1028 $this->byXPath("//input[@value='Supprimer']")->click();
1029 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1030 $this->verifyNoErrors();
1031 //On vérifie que lasuppression a été éffectuée
1032 $this->assertContains("La suppression a été correctement effectuée.",
1033 $this->byCssSelector("#sousform-instruction .message .text")->text());
1034 // On se déconnecte
1035 $this->logout();
1036 }
1037
1038 /**
1039 * Test sur les types d'éditions des consultations
1040 */
1041 function test_10_nouveau_type_edition_consultation(){
1042
1043 //On saisit un service de test
1044 // On se connecte à l'application
1045 $this->login("admin", "admin");
1046 //On clique sur "Paramétrage"
1047 $this->byLinkText("Paramétrage")->click();
1048 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1049 $this->verifyNoErrors();
1050 //On clique sur "Service"
1051 $this->byLinkText("Service")->click();
1052 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1053 $this->verifyNoErrors();
1054 //On clique sur le "+" du tableau
1055 $this->byClassName("add-16")->click();
1056 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1057 $this->verifyNoErrors();
1058 //On saisit les données du service
1059 $this->byId("abrege")->value("test_10");
1060 $this->byId("libelle")->value("test_10");
1061 $this->byId("consultation_papier")->click();
1062 $this->select($this->byId("edition"))->selectOptionByLabel("test_10");
1063 // On clique sur le bouton ajouter
1064 $this->byXPath("//input[@value='Ajouter']")->click();
1065 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1066 $this->verifyNoErrors();
1067 // On vérifie que le service a bien été ajouté
1068 $this->assertContains('Vos modifications ont bien été enregistrées', $this->byCssSelector(".message .text")->text());
1069 //On se déconnecte
1070 $this->deconnect();
1071
1072 //On ajoute une consultation sur un dossier et on vérifie l'édition
1073 // On se connecte à l'application
1074 $this->login("instr", "instr");
1075 //On clique sur "Recherche"
1076 $this->byLinkText("Recherche")->click();
1077 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1078 $this->verifyNoErrors();
1079 //On choisit le dossier "AZ 013055 12 00001P0"
1080 $this->byLinkText("AZ 013055 12 00001P0")->click();
1081 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1082 $this->verifyNoErrors();
1083 //On clique sur l'onglet "Consultation"
1084 $this->byId("consultation")->click();
1085 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1086 $this->verifyNoErrors();
1087 //On clique sur le "+" du tableau
1088 $this->byClassName("add-16")->click();
1089 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1090 $this->verifyNoErrors();
1091 //On saist une nouvelle consultation
1092 $this->select($this->byId("service"))->selectOptionByLabel("test_10");
1093 // On clique sur le bouton ajouter
1094 $this->byXPath("//input[@value='Ajouter']")->click();
1095 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1096 $this->verifyNoErrors();
1097 // On vérifie que la consultation a bien été ajoutée
1098 $this->assertContains('Vos modifications ont bien été enregistrées', $this->byCssSelector(".message .text")->text());
1099 //On clique sur retour
1100 $this->byCssSelector("#sousform-consultation .retour")->click();
1101 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1102 $this->verifyNoErrors();
1103 //On clique sur la consultation au service "test_10"
1104 $this->byLinkText("test_10")->click();
1105 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1106 $this->verifyNoErrors();
1107 //On affiche le PDF
1108 $this->byId("action-sousform-consultation-pdfetat")->click();sleep(5);
1109 // Liste les fenêtres
1110 $windows = $this->windowHandles();
1111 // Change la fenêtre
1112 $this->window($windows[1]);
1113 // On vérifie qu'il n'y ait pas d'erreur
1114 $this->verifynoerrors();
1115 // On vérifie que le text est présent
1116 $this->assertContains("test_10",$this->source());
1117 $this->assertNotContains("test_10_2",$this->source());
1118 // On ferme la fenêtre
1119 $this->closeWindow();
1120 // On change le focus de la fenêtre
1121 $this->window($windows[0]);
1122 //On se déconnecte
1123 $this->deconnect();
1124
1125 //On change l'édition
1126 // On se connecte à l'application
1127 $this->login("admin", "admin");
1128 //On clique sur "Paramétrage"
1129 $this->byLinkText("Paramétrage")->click();
1130 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1131 $this->verifyNoErrors();
1132 //On clique sur "Service"
1133 $this->byLinkText("Service")->click();
1134 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1135 $this->verifyNoErrors();
1136 //On cherche le service
1137 $this->byName("recherche")->value("test_10");
1138 //On valide
1139 $this->byName("s1")->click();
1140 //On clique sur le service test_10
1141 $this->byLinkText("test_10")->click();
1142 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1143 $this->verifyNoErrors();
1144 //On clique sur "Modifier" dans le portail d'action
1145 $this->byClassName("edit-16")->click();
1146 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1147 $this->verifyNoErrors();
1148 //On choisit une seconde édition
1149 $this->select($this->byId("edition"))->selectOptionByLabel("test_10_2");
1150 // On clique sur le bouton ajouter
1151 $this->byXPath("//input[@value='Modifier']")->click();
1152 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1153 $this->verifyNoErrors();
1154 // On vérifie que le service a bien été ajouté
1155 $this->assertContains('Vos modifications ont bien été enregistrées', $this->byCssSelector(".message .text")->text());
1156 //On se déconnecte
1157 $this->deconnect();
1158
1159 //On vérifie que c'est la bonne édition qui est affiché
1160 // On se connecte à l'application
1161 $this->login("instr", "instr");
1162 //On clique sur "Recherche"
1163 $this->byLinkText("Recherche")->click();
1164 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1165 $this->verifyNoErrors();
1166 //On choisit le dossier "AZ 013055 12 00001P0"
1167 $this->byLinkText("AZ 013055 12 00001P0")->click();
1168 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1169 $this->verifyNoErrors();
1170 //On clique sur l'onglet "Consultation"
1171 $this->byId("consultation")->click();
1172 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1173 $this->verifyNoErrors();
1174 //On clique sur la consultation au service "test_10"
1175 $this->byLinkText("test_10")->click();
1176 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1177 $this->verifyNoErrors();
1178 //on definalise la consultaion
1179 $this->byClassName("definalise")->click();
1180 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1181 $this->verifyNoErrors();
1182 //On vérifie que la consultation s'est bien définalisée
1183 $this->assertEquals('La definalisation du document s\'est effectuée avec succès.', $this->byCssSelector("#sousform-consultation .message .text")->text());sleep(10);
1184 //On affiche le PDF
1185 $this->byId("action-sousform-consultation-pdfetat")->click();sleep(5);
1186 // Liste les fenêtres
1187 $windows = $this->windowHandles();
1188 // Change la fenêtre
1189 $this->window($windows[1]);
1190 // On vérifie qu'il n'y ait pas d'erreur
1191 $this->verifynoerrors();
1192 // On vérifie que le text est présent
1193 $this->assertContains("test_10_2",$this->source());
1194 // On ferme la fenêtre
1195 $this->closeWindow();
1196 // On change le focus de la fenêtre
1197 $this->window($windows[0]);
1198
1199 // On se déconnecte
1200 $this->logout();
1201 }
1202
1203 /**
1204 * Test sur un événement non verrouillable
1205 */
1206 public function test_11_evenement_non_verrouillable(){
1207
1208 /* On crée une nouvelle demande initial */
1209 // On se connecte à l'application
1210 $this->login("guichet", "guichet");
1211 // On clique sur le menu "Nouveau Dossier"
1212 $this->byLinkText("Nouveau Dossier")->click();
1213 // On vérifie qu'il n'y ait pas d'erreur
1214 $this->verifynoerrors();
1215 // On vérifie le nom de l'onglet
1216 $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
1217 // On sélectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
1218 $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel("Permis de construire pour une maison individuelle et / ou ses annexes");
1219 // On selectionne le label "Dépôt Initial"
1220 $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
1221 // On clique pour ajouter un pétitionnaire principale
1222 $this->byId("add_petitionnaire_principal")->click();
1223 // On remplit le champ
1224 $this->byId("particulier_nom")->value("DURAND");
1225 // On remplit le champ
1226 $this->byId("particulier_prenom")->value("MICKAEL");
1227 // On remplit le champ
1228 $this->byId("particulier_date_naissance")->value("03/01/1956");
1229 // On remplit le champ
1230 $this->byId("particulier_commune_naissance")->value("LILLE");
1231 // On remplit le champ
1232 $this->byId("particulier_departement_naissance")->value("NORD");
1233 // On remplit le champ
1234 $this->byId("numero")->value("12");
1235 // On remplit le champ
1236 $this->byId("voie")->value("RUE DE LA LOI");
1237 // On remplit le champ
1238 $this->byId("complement")->value("APPT 12");
1239 // On remplit le champ
1240 $this->byId("localite")->value("MARSEILLE");
1241 // On remplit le champ
1242 $this->byId("code_postal")->value("13012");
1243 // On remplit le champ
1244 $this->byId("telephone_fixe")->value("0404040404");
1245 // On clique sur ajouter
1246 $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
1247 // On vérifie qu'il n'y ait pas d'erreur
1248 $this->verifynoerrors();
1249 // On vérifie le message
1250 $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-petitionnaire .message")->text());
1251 // On clique sur le bouton retour
1252 $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
1253 // On vérifie que le text est présent
1254 $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
1255 // On clique sur ajouter
1256 $this->byXPath("//input[@value='Ajouter']")->click();
1257 // On vérifie qu'il n'y ait pas d'erreur
1258 $this->verifynoerrors();
1259 // On vérifie le message
1260 $this->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°[\s\S]*$/",$this->byCssSelector(".message")->text());
1261 // Récupération du numéro de dossier
1262 preg_match('/(PC)[0-9 ]*(P0)/', $this->byCssSelector(".message .text")->text(), $matches);
1263 $dossier_libelle = $matches[0];
1264 $dossier = str_replace(' ', '', $dossier_libelle);
1265 $dossier_dir = substr_replace($dossier, '.', -2, -3);
1266 // On clique
1267 $this->byCssSelector("a.lien")->click();sleep(5);
1268 // Liste les fenêtres
1269 $windows = $this->windowHandles();
1270 // Change la fenêtre
1271 $this->window($windows[1]);
1272 // On vérifie qu'il n'y ait pas d'erreur
1273 $this->verifynoerrors();
1274 // On vérifie que le text est présent
1275 $this->assertRegExp("/^[\s\S]*RECEPISSE DE DEPOT[\s\S]*$/",$this->source());
1276 // On ferme la fenêtre
1277 $this->closeWindow();
1278 // On change le focus de la fenêtre
1279 $this->window($windows[0]);
1280 // On clique sur le bouton retour
1281 $this->byLinkText("Retour")->click();
1282 // On vérifie qu'il n'y ait pas d'erreur
1283 $this->verifynoerrors();
1284 // On vérifie que le répertoire s'est crée
1285 $this->assertTrue(file_exists("../trs/numerisation/Todo/".$dossier_dir));
1286 // On se déconnecte
1287 $this->deconnect();
1288 /* Fin */
1289
1290 /* On accepte le dossier d'instruction et le finalise */
1291 // On se connecte à l'application
1292 $this->login("instr", "instr");
1293 // On clique sur le menu 'Recherche'
1294 $this->byLinkText("Recherche")->click();
1295 // On recherche le dossier crée
1296 $this->byId("dossier")->value($dossier);
1297 // On clique sur le bouton recherche
1298 $this->byId("adv-search-submit")->click();
1299 // On clique sur le résultat
1300 $this->byLinkText($dossier_libelle)->click();
1301 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1302 $this->verifyNoErrors();
1303 // On clique sur l'onglet "Instruction"
1304 $this->byId("instruction")->click();
1305 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1306 $this->verifyNoErrors();
1307 // On clique sur le lien d'ajout dans le tableau
1308 $this->byCssSelector(".actions-max-1 a")->click();
1309 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1310 $this->verifyNoErrors();
1311 // On choisi un événement
1312 $this->select($this->byId("evenement"))->selectOptionByLabel("accepter un dossier sans réserve [acceptation]");
1313 // On valide le formulaire
1314 $this->byXPath("//input[@value='Ajouter']")->click();
1315 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1316 $this->verifyNoErrors();
1317 sleep(1);
1318 $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
1319 // On retourne sur le tableau d'instructions
1320 $this->byCssSelector("#sousform-instruction .retour")->click();
1321 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1322 $this->verifyNoErrors();
1323 // On clique sur l'événement d'instruction "accepter un dossier sans réserve"
1324 $this->byLinkText("accepter un dossier sans réserve")->click();
1325 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1326 $this->verifyNoErrors();
1327 // On valide l'instruction (un événement verrouillable ne pourrait pas
1328 // être finalisé)
1329 $this->byId("action-sousform-instruction-finalisation")->click();
1330 // On vérifie le message de validation
1331 $this->assertContains("La finalisation du document s'est effectuée avec succès.",$this->byCssSelector(".message .text")->text());
1332 /* Fin */
1333 }
1334
1335 /**
1336 * Test que les données du dossier d'autorisation sont recopiés dans les
1337 * champs 'archive_' de l'événement d'instruction de la création du nouveau
1338 * dossier d'instruction
1339 */
1340 public function test_12_recopie_donnees_da_vers_nouveau_di(){
1341 date_default_timezone_set("Europe/Paris");
1342
1343 //{{{ Ajout de d'un nouveau dossier
1344 // On se connecte à l'application
1345 $this->login("guichet", "guichet");
1346 //On clique sur le menu des instructions
1347 $this->byLinkText("Nouveau Dossier")->click();
1348 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1349 $this->verifyNoErrors();
1350 //On ajoute un nouveau dossier
1351 $dossier = $this->addDossierInstruction( 1, 1);
1352 // On se déconnecte
1353 $this->deconnect();
1354 //}}}
1355
1356 //{{{ Clôture du nouveau dossier
1357 // On se connecte à l'application
1358 $this->login("instr", "instr");
1359 //On clique sur le menu "Recherche"
1360 $this->byLinkText("Recherche")->click();
1361 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1362 $this->verifyNoErrors();
1363 // On recherche le dossier crée
1364 $this->byId("dossier")->value(str_replace(' ', '', $dossier));
1365 // On clique sur le bouton recherche
1366 $this->byId("adv-search-submit")->click();
1367 // On clique sur le résultat
1368 $this->byLinkText($dossier)->click();
1369 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1370 $this->verifyNoErrors();
1371 //On clique sur l'onglet "instruction"
1372 $this->byId("instruction")->click();
1373 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1374 $this->verifyNoErrors();
1375 // On ajoute une instruction
1376 $this->byCssSelector("#sousform-instruction .add-16")->click();
1377 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1378 $this->verifyNoErrors();
1379 //On choisit l'instruction 'accepter un dossier sans réserve
1380 //[acceptation]'
1381 $this->select($this->byId("evenement"))->selectOptionByValue(81);
1382 // On clique sur ajouter
1383 $this->byXPath("//input[@value='Ajouter']")->click();
1384 // On vérifie qu'il n'y ait pas d'erreur
1385 $this->verifynoerrors();
1386 // On vérifie le message
1387 $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1388 //On rafraichit la page pour vérifier que le dossier est clôturé
1389 $this->refresh();
1390 $this->assertEquals("Favorable", $this->byId("avis_decision")->text());
1391 // On se déconnecte
1392 $this->deconnect();
1393 //}}}
1394
1395 //{{{ Ajout de l'action
1396 // On se connecte à l'application
1397 $this->login("admin", "admin");
1398 //On clique sur le menu "Paramétrage dossiers"
1399 $this->byLinkText("Paramétrage Dossiers")->click();
1400 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1401 $this->verifyNoErrors();
1402 //On clique sur le menu "Action"
1403 $this->byLinkText("Action")->click();
1404 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1405 $this->verifyNoErrors();
1406 //On clique sur le "+" du tableau
1407 $this->byClassName("add-16")->click();
1408 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1409 $this->verifyNoErrors();
1410 //On remplit la règle de calcul de la date de validité
1411 $this->byId("action")->value("test_12_recopie_donnees");
1412 $this->byId("libelle")->value("test_12_recopie_donnees");
1413 $this->byId("regle_date_validite")->value("archive_date_validite+12");
1414 // On clique sur ajouter
1415 $this->byXPath("//input[@value='Ajouter']")->click();
1416 // On vérifie qu'il n'y ait pas d'erreur
1417 $this->verifynoerrors();
1418 // On vérifie le message
1419 $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1420 //}}}
1421
1422 //{{{ Ajout de l'événement
1423 //On clique sur le menu "Événement"
1424 $this->byLinkText("Événement")->click();
1425 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1426 $this->verifyNoErrors();
1427 //On clique sur le "+" du tableau
1428 $this->byClassName("add-16")->click();
1429 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1430 $this->verifyNoErrors();
1431 //On remplit l'événement qui va être ajouté avec la nouvelle demande
1432 $this->byId("libelle")->value("test_12_recopie_donnees");
1433 $this->select($this->byName("etats_depuis_lequel_l_evenement_est_disponible[]"))->selectOptionByValue("accepter");
1434 // On sélectionne PCI - P - Initial
1435 $this->select($this->byName("dossier_instruction_type[]"))->selectOptionByValue(1);
1436 $this->select($this->byName("action"))->selectOptionByLabel("test_12_recopie_donnees");
1437 // On clique sur ajouter
1438 $this->byXPath("//input[@value='Ajouter']")->click();
1439 // On vérifie qu'il n'y ait pas d'erreur
1440 $this->verifynoerrors();
1441 // On vérifie le message
1442 $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1443 //}}}
1444
1445 //{{{ Ajout du type de dossier d'instruction
1446 //On clique sur le menu "Type DI"
1447 $this->byLinkText("Type DI")->click();
1448 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1449 $this->verifyNoErrors();
1450 //On clique sur le "+" du tableau
1451 $this->byClassName("add-16")->click();
1452 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1453 $this->verifyNoErrors();
1454 //On remplit le type de la demande
1455 $this->byId("code")->value("DT");
1456 $this->byId("libelle")->value("test_12_recopie_donnees");
1457 // On sélectionne PCI (Permis de construire pour une maison individuelle
1458 // et / ou ses annexes)
1459 $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByValue(1);sleep(1);
1460 $this->byId("suffixe")->click();
1461 // On clique sur ajouter
1462 $this->byXPath("//input[@value='Ajouter']")->click();
1463 // On vérifie qu'il n'y ait pas d'erreur
1464 $this->verifynoerrors();
1465 // On vérifie le message
1466 $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1467 //}}}
1468
1469 //{{{ Ajout du type de la demande
1470 //On clique sur le menu "Type"
1471 $this->byLinkText("Type")->click();
1472 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1473 $this->verifyNoErrors();
1474 //On clique sur le "+" du tableau
1475 $this->byClassName("add-16")->click();
1476 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1477 $this->verifyNoErrors();
1478 //On remplit le type de la demande
1479 $this->byId("code")->value("test_12_recopie_donnees");
1480 $this->byId("libelle")->value("test_12_recopie_donnees");
1481 // On sélectionne Autorisation ADS
1482 $this->select($this->byId("groupe"))->selectOptionByValue(1);sleep(1);
1483 // On sélectionne PCI (Permis de construire pour une maison individuelle
1484 // et / ou ses annexes)
1485 $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByValue(1);
1486 // On sélectionne Dossier existant
1487 $this->select($this->byId("demande_nature"))->selectOptionByValue(2);
1488 // On sélectionne Accordé
1489 $this->select($this->byName("etats_dossier_autorisation_autorises[]"))->selectOptionByValue(2);
1490 $this->select($this->byId("dossier_instruction_type"))->selectOptionByLabel("PCI - test_12_recopie_donnees");
1491 $this->select($this->byId("evenement"))->selectOptionByLabel("test_12_recopie_donnees");
1492 // On clique sur ajouter
1493 $this->byXPath("//input[@value='Ajouter']")->click();
1494 // On vérifie qu'il n'y ait pas d'erreur
1495 $this->verifynoerrors();
1496 // On vérifie le message
1497 $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1498 //On clique sur retour
1499 $this->byClassName("retour")->click();
1500 // On vérifie qu'il n'y ait pas d'erreur
1501 $this->verifynoerrors();
1502 //On saisit le libellé du type de la demande saisit
1503 $this->byName("recherche")->value("test_12_recopie_donnees");
1504 //On valide
1505 $this->byName("s1")->click();
1506 // On vérifie qu'il n'y ait pas d'erreur
1507 $this->verifynoerrors();
1508 //On clique sur le type de la demande
1509 $this->byLinkText("test_12_recopie_donnees")->click();
1510 // On vérifie qu'il n'y ait pas d'erreur
1511 $this->verifynoerrors();
1512 //On récupère l'identifiant du type de la demande
1513 $demande_type = $this->byId("demande_type")->text();
1514 // On se déconnecte
1515 $this->deconnect();
1516 //}}}
1517
1518 //{{{ Ajout de d'un nouveau dossier
1519 // On se connecte à l'application
1520 $this->login("guichet", "guichet");
1521 //On clique sur le menu des instructions
1522 $this->byLinkText("Dossier En Cours")->click();
1523 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1524 $this->verifyNoErrors();
1525 //On ajoute un nouveau dossier
1526 $dossier = $this->addDossierInstruction( 1, $demande_type, 2, str_replace(" ", "", $dossier));
1527 // On se déconnecte
1528 $this->deconnect();
1529 //}}}
1530
1531 //{{{ Vérification de la date de validité
1532 // On se connecte à l'application
1533 $this->login("instr", "instr");
1534 //On clique sur le menu "Recherche"
1535 $this->byLinkText("Recherche")->click();
1536 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1537 $this->verifyNoErrors();
1538 //On clique sur le nouveau dossier
1539 $this->byLinkText($dossier)->click();
1540 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1541 $this->verifyNoErrors();
1542 //On vérifie la date de validité
1543 $this->assertEquals(date("d/m/Y", strtotime('+12 months')), $this->byId("date_validite")->text());
1544 // On se déconnecte
1545 $this->deconnect();
1546 //}}}
1547 }
1548
1549 /**
1550 * Ajout d'un dossier d'instruction par le guichet unique
1551 *
1552 * @param int $dossier_autorisation_type_detaille L'identifiant du type détaillé
1553 * de dossier d'autorisation
1554 * @param int $demande_type L'identifiant du type de la demande
1555 * @param int $type Type de la demande : nouveau dossier ou dossier existant
1556 * @return le numéro de dossier d'instruction qui vient d'être créé
1557 */
1558 public function addDossierInstruction($dossier_autorisation_type_detaille,
1559 $demande_type, $type = 1, $dossier = "" ){
1560
1561 if ($type===1){
1562 //On choisit le type détaillé de dossier d'autorisation
1563 $this->select($this->byName("dossier_autorisation_type_detaille"))->selectOptionByValue($dossier_autorisation_type_detaille);
1564 }
1565 else {
1566 sleep(2);
1567 // On remplit le champ de recherche simple
1568 $this->byCssSelector("input[name='recherche']")->value(str_replace(' ', '', $dossier));
1569 // On clique sur le bouton recherche
1570 $this->byCssSelector(".ui-button")->click();
1571 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1572 $this->verifyNoErrors();
1573 // On clique sur le résultat
1574 $this->byId("action-tab-demande_dossier_encours-left-consulter-".$dossier)->click();
1575 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1576 $this->verifyNoErrors();
1577 }
1578 //On choisit le type de demande
1579 $this->select($this->byName("demande_type"))->selectOptionByValue($demande_type);
1580 //On clique sur "Saisir le pétitionnaire principal"
1581 $this->byId("add_petitionnaire_principal")->click();
1582 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1583 $this->verifyNoErrors();
1584 //On saisie le nom du pétitionnaire principal
1585 $this->byId("particulier_nom")->value("test recopie");
1586 // On clique sur ajouter
1587 $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
1588 // On vérifie qu'il n'y ait pas d'erreur
1589 $this->verifynoerrors();
1590 //On vérifie que le pétitionnaire s'est bien ajouté
1591 // On vérifie le message
1592 $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector("#sousform-petitionnaire .message")->text());
1593 // On clique sur le bouton retour
1594 $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
1595 // On vérifie que le text est présent
1596 $this->assertContains("test recopie",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
1597 // On clique sur ajouter
1598 $this->byXPath("//input[@value='Ajouter']")->click();
1599 // On vérifie qu'il n'y ait pas d'erreur
1600 $this->verifynoerrors();
1601 // On vérifie le message
1602 $this->assertContains("Création du dossier",$this->byCssSelector(".message")->text());
1603 //On récupère le numéro de dossier d'instruction créé
1604 if ($type===1){
1605 preg_match('/(PC)[0-9 ]*(P0)/', $this->byCssSelector("#tabs-1 .message")->text(), $dossier);
1606 }
1607 else{
1608 preg_match('/(PC)[0-9 ]*(DT1)/', $this->byCssSelector("#tabs-1 .message")->text(), $dossier);
1609 }
1610 return $dossier[0];
1611 }
1612 }
1613
1614 ?>

Properties

Name Value
svn:keywords Id

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26