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

Contents of /trunk/tests/testConsultations.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2081 - (show annotations)
Thu Jul 11 17:33:54 2013 UTC (11 years, 6 months ago) by softime
File size: 17934 byte(s)
Correction du traitement dans la classe consultation en cas de notification de mail sur service
+ modification de données pour l'envoi de mail
+ modification des tests pour tester si le mail est envoyé

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 Consultations extends Base2TestCase {
16
17 public function test_01_ajout_consultation_simple_par_l_instructeur() {
18
19 // On se connecte en tant que "instr"
20 $this->login("instr", "instr");
21 // On clique sur le lien "Mes encours" dans le menu
22 $this->byLinkText("Mes Encours")->click();
23 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
24 $this->verifyNoErrors();
25 // On clique sur le lien "AZ0130551200001P0" dans le tableau
26 $this->byLinkText("AZ0130551200001P0")->click();
27 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
28 $this->verifyNoErrors();
29 // On clique sur l'onglet "Consultation(s)"
30 $this->byId("consultation")->click();
31 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
32 $this->verifyNoErrors();
33 // On clique sur le lien "Ajouter" dans le tableau
34 $this->byXPath("//div[@id='sousform-consultation']/table/thead/tr/th/a/span")->click();
35 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
36 $this->verifyNoErrors();
37 // On vérifie que la date du jour est pré-remplie dans le champs "date d'envoi"
38 try {
39 $this->assertEquals(date("d/m/Y"), $this->byId("date_envoi")->value());
40 } catch (PHPUnit_Framework_AssertionFailedError $e) {
41 array_push($this->verificationErrors, $e->toString());
42 }
43 // On clique sur le bouton "Ajouter" du formulaire sans sélectionner de service
44 $this->byXPath("//input[@value='Ajouter']")->click();
45 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
46 $this->verifyNoErrors();
47 // On vérifie que le message d'erreur est présent
48 $this->assertRegExp('/.*SAISIE NON ENREGISTRÉE.*/', $this->byCssSelector("#sousform-consultation .message .text")->text());
49 // On sélectionne le service "59.01 Direction de l'Eau et de l'Assainissement"
50 $this->select($this->byId("service"))->selectOptionByValue("1");
51 // On saisit une date d'envoi vide
52 $this->byId("date_envoi")->clear();
53 // On valide l'alerte javascript qui nous indique que la date saisie est invalide
54 $this->assertEquals("La date saisie n'est pas valide", $this->alertText());
55 $this->acceptAlert();
56 // On clique sur le bouton "Ajouter" du formulaire
57 $this->byXPath("//input[@value='Ajouter']")->click();
58 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
59 $this->verifyNoErrors();
60 // On vérifie que le message d'erreur est présent
61 $this->assertRegExp('/.*SAISIE NON ENREGISTRÉE.*/', $this->byCssSelector("#sousform-consultation .message .text")->text());
62 // On saisit une date d'envoi vide
63 $this->byId("date_envoi")->value(date("d/m/Y"));
64 // On clique sur le bouton "Ajouter" du formulaire
65 $this->byXPath("//input[@value='Ajouter']")->click();
66 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
67 $this->verifyNoErrors();sleep(1);
68 // On vérifie que le message de notification de mail est présent
69 $this->assertRegExp("/.*Envoi d'un mail de notification au service.*/", $this->byCssSelector("#sousform-consultation .message .text")->text());
70 // On vérifie le message de validation
71 $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-consultation .message .text")->text());
72 // On clique sur le bouton retour
73 $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();
74 // On vérifie que nous avons bien 1 consultation affichée
75 $this->assertRegExp('/.*1 \- 1 enregistrement\(s\) sur 1*/', $this->byCssSelector("#sousform-consultation .pagination-text")->text());
76 // On se déconnecte
77 $this->logout();
78 }
79
80 public function test_02_ajout_consultation_multiple_par_l_instructeur() {
81
82 // On se connecte en tant que "instr"
83 $this->login("instr", "instr");
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 "Mes encours" dans le menu
87 $this->byLinkText("Mes Encours")->click();
88 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
89 $this->verifyNoErrors();
90 // On clique sur le lien "AZ0130551200001P0" dans le tableau
91 $this->byLinkText("AZ0130551200001P0")->click();
92 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
93 $this->verifyNoErrors();
94 // On clique sur l'onglet "Consultation(s)"
95 $this->byId("consultation")->click();
96 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
97 $this->verifyNoErrors();
98 // On clique sur le lien "Ajouter multiples" dans le tableau
99 $this->byXPath("//div[@id='sousform-consultation']/table/thead/tr/th/a[2]/span")->click();
100 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
101 $this->verifyNoErrors();
102 // On clique sur le bouton "Ajouter" du formulaire sans sélectionner de service
103 $this->byId("button_val")->click();
104 // On vérifie qu'une alerte javascript nous indique qu'il y a une erreur de saisie
105 $this->assertEquals("Veuillez choisir au moins un service et une date d envoi", $this->alertText());
106 $this->acceptAlert();
107 // On sélectionne quatre services
108 $this->byId("t10_572_0_")->click();
109 $this->byId("t10_575_0_")->click();
110 $this->byId("t10_584_0_")->click();
111 $this->byId("t10_542_0_")->click();
112 // On les ajoute à la sélection
113 $this->byId("add-ser-them")->click();
114 // On sélectionne un des services sélectionnés
115 $this->byCssSelector("div[name=\"t10_542_0_\"]")->click();
116 // On l'enlève de la sélection
117 $this->byId("del-ser-them")->click();
118 // On coche la case pour la consultation papier pour un des services
119 $this->byCssSelector("div.cell2 > div > input.t10_575_0_")->click();
120 // On clique sur le bouton "Ajouter" du formulaire
121 $this->byId("button_val")->click();
122 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
123 $this->verifyNoErrors();
124 // On vérifie que le message de validation est présent avec le bon nombre de consultations
125 $this->assertRegExp('/.*3 service\(s\) sélectionné\(s\) dont 1 consultation\(s\) papier.*/', $this->byCssSelector("#sousform-consultation .message .text")->text());
126 // On vérifie que nous avons bien 4 consultations affichées
127 $this->assertRegExp('/.*1 - 4 enregistrement\(s\) sur 4*/', $this->byCssSelector("#sousform-consultation .pagination-text")->text());
128 // On se déconnecte
129 $this->logout();
130 }
131
132 public function test_03_reponse_a_une_consultation_par_le_service_consulte() {
133
134 // On se connecte en tant que "instr"
135 $this->login("consu", "consu");
136 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
137 $this->verifyNoErrors();
138 // On clique sur le lien "Demandes en cours" dans le menu
139 $this->byLinkText("Demandes En Cours")->click();
140 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
141 $this->verifyNoErrors();
142 // On clique sur le lien "AZ0130551200001P0" dans le tableau
143 $this->byLinkText("AZ0130551200001P0")->click();
144 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
145 $this->verifyNoErrors();
146 // On clique sur le lien "Saisir un avis" dans le portlet
147 $this->byXPath("//div[@id='portlet-actions']/ul/li/a/span")->click();
148 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
149 $this->verifyNoErrors();
150 // On vérifie que le sous-titre de l'élément affiché est correct
151 $this->assertEquals("3", $this->byCssSelector("#sformulaire #consultation")->value());
152 // On clique sur le bouton "Modifier" du formulaire sans saisir de retour d'avis
153 $this->byXPath("//input[@value='Modifier']")->click();
154 sleep(1);
155 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
156 $this->verifyNoErrors();
157 // Retour à la liste des demandes
158 $this->byCssSelector("#sformulaire a.retour")->click();
159 // Accès au dossier en visualisation
160 $this->byLinkText("AZ0130551200001P0")->click();
161 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
162 $this->verifyNoErrors();
163 // Accès à l'onglet des consultations
164 $this->byXPath("//div[@id='portlet-actions']/ul/li/a/span")->click();
165 $this->assertEquals("3", $this->byCssSelector("#sformulaire #consultation")->value());
166 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
167 $this->verifyNoErrors();
168 // Saisie de valeurs
169 $this->select($this->byId("avis_consultation"))->selectOptionByLabel("Defavorable");
170 $this->byId("motivation")->value("Pas motivé");
171 // Upload de fichier
172 $this->byCssSelector("span.ui-icon.ui-icon-arrowthickstop-1-s")->click();
173 // Validation sans saisie de fichier
174 $this->byName("submit")->click();
175 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
176 $this->verifyNoErrors();
177 //
178 $this->assertRegExp('/.*Vous devez sélectionner un fichier.*/', $this->byCssSelector("#upload-container .message .text")->text());
179 // Saisie de fichier
180 $this->byName("userfile[]")->value(dirname(__FILE__)."/binary_files/lettre_rar16042013124515.pdf");
181 $this->byName("submit")->click();
182 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
183 $this->verifyNoErrors();
184 // Validation de la modification de la demande d'avis
185 $this->byXPath("//input[@value='Modifier']")->click();
186 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
187 $this->verifyNoErrors();
188 // On vérifie que le message de validation est présent
189 $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sformulaire .message .text")->text());
190 // On clique sur le lien retour
191 $this->byCssSelector("#sformulaire a.retour")->click();
192 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
193 $this->verifyNoErrors();
194 // Vérification que la demande d'avis n'est plus presente
195 try {
196 $el = $this->byLinkText("AZ0130551200001P0");
197 $this->fail('Cet élément ne devrait pas exister.');
198 } catch (PHPUnit_Extensions_Selenium2TestCase_WebDriverException $e) {
199 $this->assertEquals(PHPUnit_Extensions_Selenium2TestCase_WebDriverException::NoSuchElement, $e->getCode());
200 }
201 // On se déconnecte
202 $this->logout();
203 }
204
205
206 public function test_04_reponse_a_une_consultation_par_la_cellule_suivi() {
207
208 // On se connecte en tant que "suivi"
209 $this->login("suivi", "suivi");
210 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
211 $this->verifyNoErrors();
212 //
213 $this->byLinkText("Retours De Consultation")->click();
214 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
215 $this->verifyNoErrors();
216 // On vérifie que le titre de la page est correct
217 $this->assertRegExp('/.*Retours De Consultation.*/', $this->byCssSelector("#title h2")->text());
218 // On clique sur le bouton "Valider" sans saisir de code barres
219 $this->byXPath("//input[@value='Valider']")->click();
220 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
221 $this->verifyNoErrors();
222 //
223 $this->assertRegExp('/.*Veuiller saisir un code barres de consultation.*/', $this->byCssSelector(".message .text")->text());
224 //
225 $this->byId("code_barres")->value("aze");
226 $this->byXPath("//input[@value='Valider']")->click();
227 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
228 $this->verifyNoErrors();
229 $this->assertRegExp('/.*Cette consultation n\'existe pas.*/', $this->byCssSelector(".message .text")->text());
230 // XXX Aller plus loin dans les cas d'utilisation lors de la saisie
231 $this->byId("code_barres")->value("120000000004");
232 $this->byXPath("//input[@value='Valider']")->click();
233 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
234 $this->verifyNoErrors();
235 // On vérifie que le titre de la page est correct
236 $this->assertEquals("4", $this->byId("consultation")->value());
237 $this->assertEquals("AZ0130551200001P0", $this->byId("dossier")->value());
238 $this->select($this->byId("avis_consultation"))->selectOptionByLabel("Favorable");
239 $this->byId("motivation")->value("blablabla");
240 // Upload de fichier
241 $this->byCssSelector("span.ui-icon.ui-icon-arrowthickstop-1-s")->click();
242 // Validation sans saisie de fichier
243 $this->byName("submit")->click();
244 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
245 $this->verifyNoErrors();
246 $this->assertRegExp('/.*Vous devez sélectionner un fichier.*/', $this->byCssSelector("#upload-container .message .text")->text());
247 // Saisie de fichier
248 $this->byName("userfile[]")->value(dirname(__FILE__)."/binary_files/lettre_rar16042013124515.pdf");
249 $this->byName("submit")->click();
250 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
251 $this->verifyNoErrors();
252 // Visualisation du fichier
253 $this->byCssSelector("span.ui-icon.ui-icon-newwin")->click();
254 $this->assertRegExp('/.*lettre_rar16042013124515.pdf.*/', $this->byId("fichier_upload")->value());
255 //
256 $this->byXPath("//input[@value='Modifier']")->click();
257 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
258 $this->verifyNoErrors();
259 // On vérifie que le message de validation est présent
260 $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector(".message .text")->text());
261 // On clique sur le lien retour
262 $this->byLinkText("Retour")->click();
263 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
264 $this->verifyNoErrors();
265 // On vérifie que le titre de la page est correct
266 $this->assertStringEndsWith('app/suivi_retours_de_consultation.php', $this->url());
267 // On se déconnecte
268 $this->logout();
269 }
270
271 public function test_05_gestion_de_la_consultation_par_l_instructeur() {
272
273 // On se connecte en tant que "instr"
274 $this->login("instr", "instr");
275 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
276 $this->verifyNoErrors();
277 // On vérifie que les consultations apparaissent bien sur le tableau de bord de l'instructeur
278 $this->assertEquals("2",$this->byCssSelector("#widget_3 .widget-content-wrapper .message .text .bold")->text());
279 // On clique sur le lien "Mes retours" dans le menu
280 $this->byLinkText("Mes Retours")->click();
281 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
282 $this->verifyNoErrors();
283 // On vérifie que le titre de la page est correct
284 $this->assertEquals("Consultation_mes_retours", $this->byXPath("//a[@href='#tabs-1']")->text());
285 // On vérifie que les deux consultations sont présentes dans le tableau
286 $this->assertEquals("1 - 2 enregistrement(s) sur 2", $this->byClassName("pagination-text")->text());
287 // On clique sur le lien "59.01 Direction de l'Eau et de l'Assainissement" dans le tableau
288 $this->byLinkText("59.01 Direction de l'Eau et de l'Assainissement")->click();
289 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
290 $this->verifyNoErrors();
291 // On vérifie que le formulaire de la consultation s'est bien ouvert
292 $this->assertEquals("3", $this->byCssSelector("#sousform-consultation #consultation")->text());
293 // On clique sur le lien "Marquer comme lu" dans le portlet
294 $this->byXPath("(//div[@id='portlet-actions']/ul/li[2]/a/span)[2]")->click();
295 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
296 $this->verifyNoErrors();
297 // On vérifie que le message de validation est présent avec le bon nombre de consultations
298 $this->assertRegExp('/.*Mise a jour effectue avec succes.*/', $this->byCssSelector(".message .text")->text());
299 // On clique sur le lien retour
300 $this->byCssSelector("#sousform-consultation > #sformulaire > div.formControls > a.retour")->click();
301 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
302 $this->verifyNoErrors();
303 // On vérifie que le nombre de consultations est le bon
304 $this->assertEquals("1 - 4 enregistrement(s) sur 4", $this->byClassName("pagination-text")->text());
305 // On clique sur le lien "Tableau de bord" dans le menu
306 $this->byLinkText("Tableau de bord")->click();
307 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
308 $this->verifyNoErrors();
309 // On vérifie que les consultations apparaissent bien sur le tableau de bord de l'instructeur
310 $this->assertEquals("1",$this->byCssSelector("#widget_3 .widget-content-wrapper .message .text .bold")->text());
311 // On se déconnecte
312 $this->logout();
313 }
314 }
315
316 ?>

Properties

Name Value
svn:keywords Id

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26