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

Contents of /trunk/tests/testCommissions.php

Parent Directory Parent Directory | Revision Log Revision Log


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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26