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

Contents of /trunk/tests/testCommissions.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2943 - (show annotations)
Tue Apr 15 15:32:35 2014 UTC (10 years, 9 months ago) by nmeucci
File size: 19842 byte(s)
Correction du testcase Commissions suite changement de titre.

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 ?>

Properties

Name Value
svn:keywords Id

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26