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

Annotation of /trunk/tests/testCommissions.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1758 - (hide annotations)
Mon Apr 22 16:39:48 2013 UTC (11 years, 9 months ago) by vpihour
File size: 18065 byte(s)
Ajout des tests fonctionnels pour le processus de commission

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26