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

Annotation of /trunk/tests/testCommissions.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3730 - (hide 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 mbroquet 3730 <?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