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