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 Commissions extends BaseTestCase { |
16 |
|
17 |
/* |
18 |
* Ajout d'un type de commission par l'administrateur fonctionnel |
19 |
* */ |
20 |
public function test_10_ajout_type_commission_administrateur_fonctionnel(){ |
21 |
|
22 |
// On se connecte en tant que "admin" |
23 |
$this->login("admin", "admin"); |
24 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
25 |
$this->verifyNoErrors(); |
26 |
// On clique sur le menu de paramétrage du type des commissions |
27 |
$this->clickAndWait("link=type de commission"); |
28 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
29 |
$this->verifyNoErrors(); |
30 |
// On clique sur le bouton d'ajout de type de commission |
31 |
$this->clickAndWait("css=.add-16"); |
32 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
33 |
$this->verifyNoErrors(); |
34 |
// On ajoute les informations du type de commission |
35 |
$this->type("id=code", "TTDC"); |
36 |
$this->type("id=libelle", "Test type de commission"); |
37 |
$this->type("id=lieu_salle", "2a"); |
38 |
$this->type("id=listes_de_diffusion", "[email protected]"); |
39 |
$this->type("id=participants", "Atreal"); |
40 |
$this->type("id=corps_du_courriel", "Test du type de commission"); |
41 |
// On ajoute le type de commission |
42 |
$this->clickAndWait("//input[@value='Ajouter']"); |
43 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
44 |
$this->verifyNoErrors(); |
45 |
// On retourne sur le tableau listant les types de commission |
46 |
$this->clickAndWait("css=a.retour"); |
47 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
48 |
$this->verifyNoErrors(); |
49 |
// On vérifie que le type de commission nouvellement créé avec les informations |
50 |
// ci-dessus existe bien |
51 |
$this->assertText("css=.even td:nth-child(2)", "2"); |
52 |
$this->assertText("css=.even td:nth-child(3)", "TTDC"); |
53 |
$this->assertText("css=.even td:nth-child(4)", "Test type de commission"); |
54 |
$this->assertText("css=.even td:nth-child(7)", "2a"); |
55 |
//On se déconnecte de l'application |
56 |
$this->logout(); |
57 |
} |
58 |
|
59 |
/* |
60 |
* Ajout d'une demande de passage en commission dans le contexte d'un dossier |
61 |
* d'instruction par l'instructeur |
62 |
* */ |
63 |
public function test_20_ajout_demande_de_passage_instructeur() { |
64 |
// On positionne une vitesse pour que les requêtes ajax puissent s'exécuter correctement |
65 |
$this->setSpeed('120'); |
66 |
|
67 |
// On se connecte en tant que "instr" |
68 |
$this->login("instr", "instr"); |
69 |
|
70 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
71 |
$this->verifyNoErrors(); |
72 |
// On clique sur le lien "Mes encours" dans le menu |
73 |
$this->clickAndWait("link=mes encours"); |
74 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
75 |
$this->verifyNoErrors(); |
76 |
// On clique sur le lien "AZ0130551200001P0" dans le tableau |
77 |
$this->clickAndWait("link=AZ 013055 12 00001P0"); |
78 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
79 |
$this->verifyNoErrors(); |
80 |
// On clique sur l'onglet "Commission(s)" |
81 |
$this->click("id=dossier_commission"); |
82 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
83 |
$this->verifyNoErrors(); |
84 |
// On clique sur le lien "Ajouter" dans le tableau |
85 |
$this->click("//div[@id='sousform-dossier_commission']/table/thead/tr/th/a/span"); |
86 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
87 |
$this->verifyNoErrors(); |
88 |
// On vérifie que la date du jour est pré-remplie dans le champs "date souhaitée" |
89 |
try { |
90 |
$this->assertEquals(date("d/m/Y"), $this->getValue("id=date_souhaitee")); |
91 |
} catch (PHPUnit_Framework_AssertionFailedError $e) { |
92 |
array_push($this->verificationErrors, $e->toString()); |
93 |
} |
94 |
// On clique sur le bouton "Ajouter" du formulaire sans sélectionner de type de commission |
95 |
$this->click("//input[@value='Ajouter']"); |
96 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
97 |
$this->verifyNoErrors(); |
98 |
// On vérifie que le message d'erreur est présent |
99 |
$this->verifyTextPresent("SAISIE NON ENREGISTRÉE"); |
100 |
// On sélectionne le type de commission "Commission Technique d'Urbanisme" |
101 |
$this->select("id=commission_type", "label=Test type de commission"); |
102 |
// |
103 |
$this->type("id=motivation", "blablablabla"); |
104 |
// On clique sur le bouton "Ajouter" du formulaire avec toutes les informations saisies |
105 |
$this->click("//input[@value='Ajouter']"); |
106 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
107 |
$this->verifyNoErrors(); |
108 |
// O vérifie que le message de validation est présent |
109 |
$this->verifyTextPresent("Vos modifications ont bien été enregistrées."); |
110 |
// On clique sur le bouton retour |
111 |
$this->click("css=form[name=\"f2\"] > div.formControls > a.retour"); |
112 |
// On vérifie que nous avons bien 1 consultation affichée |
113 |
$this->verifyTextPresent("1 - 2 enregistrement(s) sur 2"); |
114 |
// On se déconnecte |
115 |
$this->logout(); |
116 |
} |
117 |
|
118 |
/* |
119 |
* Création d'une nouvelle commission par la cellule suivi |
120 |
* */ |
121 |
public function test_30_creation_commission_cellule_suivi() { |
122 |
|
123 |
// On positionne une vitesse pour que les requêtes ajax puissent s'exécuter correctement |
124 |
$this->setSpeed('300'); |
125 |
// On se connecte en tant que "suivi" |
126 |
$this->login("suivi", "suivi"); |
127 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
128 |
$this->verifyNoErrors(); |
129 |
// On clique sur l'entrée de menu "Commissions -> Gestion" |
130 |
$this->clickAndWait("link=gestion"); |
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 bouton d'ajout de commission |
134 |
$this->clickAndWait("css=.add-16"); |
135 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
136 |
$this->verifyNoErrors(); |
137 |
// On saisie une nouvelle commission |
138 |
// On vérifie que la date du jour est pré-remplie dans le champs "date souhaitée" |
139 |
try { |
140 |
$this->assertEquals(date("d/m/Y"), $this->getValue("id=date_commission")); |
141 |
} catch (PHPUnit_Framework_AssertionFailedError $e) { |
142 |
array_push($this->verificationErrors, $e->toString()); |
143 |
} |
144 |
// On clique sur le bouton "Ajouter" du formulaire sans sélectionner de type de commission |
145 |
$this->click("//input[@value='Ajouter']"); |
146 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
147 |
$this->verifyNoErrors(); |
148 |
// On vérifie que le message d'erreur est présent |
149 |
$this->verifyTextPresent("SAISIE NON ENREGISTRÉE"); |
150 |
//On choisi un type de commission |
151 |
$this->select("id=commission_type","label=Test type de commission"); |
152 |
// On positionne une vitesse pour que les requêtes ajax puissent s'exécuter correctement |
153 |
$this->setSpeed('120'); |
154 |
// On vérifie que les informations du type de commision sélectionnées sont bien |
155 |
// dans les champs |
156 |
$this->assertValue("id=libelle", "Test type de commission"); |
157 |
$this->assertValue("id=lieu_salle", "2a"); |
158 |
// Aucune adresse n'avait été saisie dans le champ concernant l'adresse |
159 |
$this->assertValue("id=lieu_adresse_ligne1", ""); |
160 |
// Saisie d'une adresse |
161 |
$this->type("id=lieu_adresse_ligne1", "1 boulevard de la république"); |
162 |
$this->type("id=heure_commission", "15:00"); |
163 |
$this->assertValue("id=listes_de_diffusion", "[email protected]"); |
164 |
$this->assertValue("id=participants", "Atreal"); |
165 |
// On ajoute la commission |
166 |
$this->clickAndWait("//input[@value='Ajouter']"); |
167 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
168 |
$this->verifyNoErrors(); |
169 |
// On retourne sur le tableau listant les commissions |
170 |
$this->clickAndWait("css=a.retour"); |
171 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
172 |
$this->verifyNoErrors(); |
173 |
// On vérifie que la commission nouvellement avec les informations ci-dessus |
174 |
// existe bien |
175 |
$this->assertText("css=.odd td:nth-child(2)", "2"); |
176 |
// Champ calculé |
177 |
$this->assertText("css=.odd td:nth-child(3)", "TTDC".date("Ymd")); |
178 |
$this->assertText("css=.odd td:nth-child(4)", "Test type de commission"); |
179 |
$this->assertText("css=.odd td:nth-child(5)", "Test type de commission"); |
180 |
$this->assertText("css=.odd td:nth-child(6)", date("d/m/Y")); |
181 |
$this->assertText("css=.odd td:nth-child(7)", "15:00"); |
182 |
$this->assertText("css=.odd td:nth-child(8)", "1 boulevard de la république"); |
183 |
$this->assertText("css=.odd td:nth-child(9)", ""); |
184 |
$this->assertText("css=.odd td:nth-child(10)", "2a"); |
185 |
// On se déconnecte de l'application |
186 |
$this->logout(); |
187 |
} |
188 |
|
189 |
/* |
190 |
* Plannification des dossiers et impression de l'ordre du jour par la cellule suivi |
191 |
* |
192 |
* */ |
193 |
public function test_31_preparation_commission_cellule_suivi(){ |
194 |
|
195 |
// On positionne une vitesse pour que les requêtes ajax puissent s'exécuter correctement |
196 |
$this->setSpeed('300'); |
197 |
// On se connecte en tant que "suivi" |
198 |
$this->login("suivi", "suivi"); |
199 |
// On clique sur le menu de paramétrage du type des commissions |
200 |
$this->clickAndWait("link=gestion"); |
201 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
202 |
$this->verifyNoErrors(); |
203 |
// Clique sur la commission |
204 |
$this->clickAndWait("link="."TTDC".date("Ymd")); |
205 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
206 |
$this->verifyNoErrors(); |
207 |
// On clique sur l'onglet "Plannifier/retirer des dossiers" |
208 |
$this->click("id=commission_dossiers_plannifier_retirer"); |
209 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
210 |
$this->verifyNoErrors(); |
211 |
// On supprime un dossier par l'onglet planifier/retirer |
212 |
$this->click("css=.odd td:nth-child(1)"); |
213 |
// On valide le formulaire |
214 |
$this->click("//input[@name='validation']"); |
215 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
216 |
$this->verifyNoErrors(); |
217 |
// On vérifie que le formulaire s'est bien validé |
218 |
$this->assertTextPresent("Mise à jour réalisée avec succès pour le(s) dossier(s) : AZ 013055 12 00001P0."); |
219 |
// On clique sur l'onglet "Plannifier/retirer des dossiers" |
220 |
$this->click("id=sousform-dossier_commission"); |
221 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
222 |
$this->verifyNoErrors(); |
223 |
//On verifie que le dossier a bien été supprimé |
224 |
$this->assertTextPresent( "1 - 0 enregistrement(s) sur 0"); |
225 |
// On clique sur l'onglet "Plannifier un dossier spécifique" |
226 |
$this->click("id=commission_dossiers_plannifier_numero"); |
227 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
228 |
$this->verifyNoErrors(); |
229 |
// On saisie le numéro du dossier d'instruction |
230 |
$this->type("id=dossier", "CU0130551200001P0"); |
231 |
// On clique sur le bouton "Valider" du formulaire |
232 |
$this->click("//input[@value='Valider']"); |
233 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
234 |
$this->verifyNoErrors(); |
235 |
// On vérifie que le formulaire s'est bien validé |
236 |
$this->assertTextPresent("Dossier ajouté avec succès."); |
237 |
// On clique sur l'onglet "Les dossiers planifiés" |
238 |
$this->click("id=dossier_planifie"); |
239 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
240 |
$this->verifyNoErrors(); |
241 |
//On verifie que le dossier a bien été ajouté |
242 |
$this->assertTextPresent( "1 - 1 enregistrement(s) sur 1"); |
243 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
244 |
$this->verifyNoErrors(); |
245 |
// On clique sur l'onglet "Plannifier un dossier spécifique" |
246 |
$this->click("id=commission_dossiers_plannifier_numero"); |
247 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
248 |
$this->verifyNoErrors(); |
249 |
// On saisie le même numéro du dossier d'instruction |
250 |
$this->type("id=dossier", "CU0130551200001P0"); |
251 |
// On clique sur le bouton "Valider" du formulaire |
252 |
$this->click("//input[@value='Valider']"); |
253 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
254 |
$this->verifyNoErrors(); |
255 |
// On vérifie qu'il y a un message d'erreur |
256 |
$this->assertTextPresent("Ce dossier est deja a l'ordre du jour."); |
257 |
//On ajoute uniquement le dossier AZ0130551200001P0 à la commission |
258 |
$this->click("id=commission_dossiers_plannifier_retirer"); |
259 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
260 |
$this->verifyNoErrors(); |
261 |
$this->uncheck("name=dossier[]"); |
262 |
$this->check("css=tr:nth-child(2) td:nth-child(1) input"); |
263 |
// On valide le formulaire |
264 |
$this->click("//input[@name='validation']"); |
265 |
// On vérifie que le formulaire s'est bien validé |
266 |
$this->assertTextPresent("Mise à jour réalisée avec succès pour le(s) dossier(s) : CU 013055 12 00001P0, AZ 013055 12 00001P0."); |
267 |
|
268 |
|
269 |
//Problème avec les PDFs |
270 |
/*// Imprime l'ordre du jour |
271 |
$this->click("//div[@id='portlet-actions']/ul/li[6]/a/span"); |
272 |
// |
273 |
$this->waitForPopUp("", "30000"); |
274 |
$this->selectPopUp(); |
275 |
sleep(5); |
276 |
$this->verifyNoErrors(); |
277 |
$this->verifyTextPresent("ORDRE DU JOUR DE LA Test du type de commission DU ".date("d/m/Y")); |
278 |
$this->close(); |
279 |
// |
280 |
$this->selectWindow(); |
281 |
$this->verifyNoErrors();*/ |
282 |
|
283 |
|
284 |
//On se déconnecte de l'application |
285 |
$this->logout(); |
286 |
} |
287 |
|
288 |
/* |
289 |
* Rédaction des retours de commission suite au passage en commission |
290 |
* */ |
291 |
public function test_22_saisie_des_avis_par_la_cellule_suivi() { |
292 |
|
293 |
// On se connecte en tant que "suivi" |
294 |
$this->login("suivi", "suivi"); |
295 |
// On clique sur le menu de paramétrage du type des commissions |
296 |
$this->clickAndWait("link=gestion"); |
297 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
298 |
$this->verifyNoErrors(); |
299 |
// Clique sur la commission |
300 |
$this->clickAndWait("link="."TTDC".date("Ymd")); |
301 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
302 |
$this->verifyNoErrors(); |
303 |
// On positionne une vitesse pour que les requêtes ajax puissent s'exécuter correctement |
304 |
$this->setSpeed('300'); |
305 |
// Affichage en visualisation du dossier qui est passé en commission |
306 |
$this->click("link=AZ 013055 12 00001P0"); |
307 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
308 |
$this->verifyNoErrors(); |
309 |
// On saisie le retour |
310 |
$this->type("id=avis","Favorable"); |
311 |
// Validation du formulaire |
312 |
$this->click("//input[@value='Modifier']"); |
313 |
// La modification a bien été prise en compte |
314 |
$this->assertTextPresent("Vos modifications ont bien été enregistrées"); |
315 |
|
316 |
|
317 |
//Problème avec les PDFs |
318 |
/*//Impression du retour |
319 |
$this->click("//div[@id='portlet-actions']/ul/li[8]/a/span"); |
320 |
// |
321 |
$this->waitForPopUp("", "30000"); |
322 |
$this->selectPopUp(); |
323 |
sleep(5); |
324 |
$this->verifyNoErrors(); |
325 |
$this->verifyTextPresent("COMPTE-RENDU DE LA Test du type de commission DU ".date("d/m/Y")); |
326 |
$this->close(); |
327 |
// |
328 |
$this->selectWindow(); |
329 |
$this->verifyNoErrors();*/ |
330 |
|
331 |
|
332 |
//On se déconnecte de l'application |
333 |
$this->logout(); |
334 |
} |
335 |
|
336 |
|
337 |
public function test_30_gestion_du_retour_de_commission_par_l_instructeur() { |
338 |
|
339 |
// On positionne une vitesse pour que les requêtes ajax puissent s'exécuter correctement |
340 |
$this->setSpeed('120'); |
341 |
// On se connecte en tant que "instr" |
342 |
$this->login("instr", "instr"); |
343 |
//On verifie le message du widget |
344 |
$this->assertTextPresent("Vous avez 1 demande de passage en commission pour laquelle un avis a été rendu."); |
345 |
// On clique sur le lien du widget |
346 |
$this->clickAndWait("link=Voir mes retours de commission"); |
347 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
348 |
$this->verifyNoErrors(); |
349 |
// On se rend sur la demande de passage en visualisaion |
350 |
$this->assertText("css=.odd td:nth-child(7)","Favorable"); |
351 |
//On clique sur le retour du dossier "AZ0130551200001P0" |
352 |
$this->clickAndWait("link=AZ 013055 12 00001P0"); |
353 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
354 |
$this->verifyNoErrors(); |
355 |
// On temporise pour laisser un peu de temps à l'onglet de se charger |
356 |
// (accès direct) |
357 |
sleep(2); |
358 |
//On marque comme lu |
359 |
$this->click("css=#action-sousform-dossier_commission-lu"); |
360 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
361 |
$this->verifyNoErrors(); |
362 |
// On vérifie que la demande de passage est bien passée à lu |
363 |
$this->assertText("id=lu","Oui"); |
364 |
//Retour sur le tableau de bord |
365 |
$this->clickAndWait("link=Tableau de bord"); |
366 |
//On vérifie le tableau de bord |
367 |
$this->assertTextPresent("Vous n'avez aucune demande de passage en commission pour laquelle un avis a été rendu."); |
368 |
// On se déconnecte de l'application |
369 |
$this->logout(); |
370 |
} |
371 |
|
372 |
|
373 |
} |
374 |
|
375 |
?> |