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