/[openfoncier]/branches/3.14.x/tests/testConsultations.php
ViewVC logotype

Contents of /branches/3.14.x/tests/testConsultations.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3635 - (show annotations)
Wed Sep 2 14:20:14 2015 UTC (9 years, 5 months ago) by nmeucci
File size: 37417 byte(s)
Correction - Lorsque l'on rend un avis pour une demande en cours, la sélection de l'avis est maintenant obligatoire.

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("AZ 013055 12 00001P0")->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->byId("action-soustab-consultation-corner-ajouter")->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 $this->assertEquals(date("d/m/Y"), $this->byId("date_envoi")->attribute('value'));
39 // On clique sur le bouton "Ajouter" du formulaire sans sélectionner de service
40 $this->byXPath("//input[@value='Ajouter']")->click();sleep(1);
41 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
42 $this->verifyNoErrors();
43 // On vérifie que le message d'erreur est présent
44 $this->assertRegExp('/.*SAISIE NON ENREGISTRÉE.*/', $this->byCssSelector("#sousform-consultation .message .text")->text());
45 // On sélectionne le service "59.01 Direction de l'Eau et de l'Assainissement"
46 $this->select($this->byId("service"))->selectOptionByValue("1");
47 // On saisit une date d'envoi vide
48 $this->byId("date_envoi")->clear();
49 // On clique sur le bouton "Ajouter" du formulaire
50 $this->byXPath("//input[@value='Ajouter']")->click();sleep(1);
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 message d'erreur est présent
54 $this->assertRegExp('/.*SAISIE NON ENREGISTRÉE.*/', $this->byCssSelector("#sousform-consultation .message .text")->text());sleep(2);
55 // On saisit une date d'envoi vide
56 $this->byId("date_envoi")->value("20/".date("m/Y"));sleep(1);
57 // On ouvre le calendrier
58 /*$this->byCssSelector(".ui-datepicker-trigger")->click();sleep(2);
59 // On clique sur le "20" du mois encours
60 $this->byLinkText("20")->click();sleep(2);*/
61 // On clique sur le bouton "Ajouter" du formulaire
62 $this->byXPath("//input[@value='Ajouter']")->click();sleep(5);
63 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
64 $this->verifyNoErrors();sleep(1);
65 // On vérifie que le message de notification de mail est présent
66 $this->assertRegExp("/.*Envoi d'un mail de notification au service.*/", $this->byCssSelector("#sousform-consultation .message .text")->text());
67 // On vérifie le message de validation
68 $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-consultation .message .text")->text());
69 // On clique sur le bouton retour
70 $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();
71 // On vérifie que nous avons bien 1 consultation affichée
72 $this->assertRegExp('/.*1 \- 2 enregistrement\(s\) sur 2*/', $this->byCssSelector("#sousform-consultation .pagination-text")->text());
73 // On se déconnecte
74 $this->logout();
75 }
76
77 public function test_02_ajout_consultation_multiple_par_l_instructeur() {
78
79 // On se connecte en tant que "instr"
80 $this->login("instr", "instr");
81 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
82 $this->verifyNoErrors();
83 // On clique sur le lien "Mes encours" dans le menu
84 $this->byLinkText("Mes Encours")->click();
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 "AZ0130551200001P0" dans le tableau
88 $this->byLinkText("AZ 013055 12 00001P0")->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 l'onglet "Consultation(s)"
92 $this->byId("consultation")->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 le lien "Ajouter multiples" dans le tableau
96 $this->byXPath("//div[@id='sousform-consultation']/table/thead/tr/th/a[2]/span")->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 bouton "Ajouter" du formulaire sans sélectionner de service
100 $this->byId("button_val")->click();
101 // On vérifie qu'une alerte javascript nous indique qu'il y a une erreur de saisie
102 $this->assertEquals("Veuillez choisir au moins un service et une date d envoi", $this->alertText());
103 $this->acceptAlert();
104 // On sélectionne quatre services
105 $this->byId("t10_572_0_")->click();
106 $this->byId("t10_575_0_")->click();
107 $this->byId("t2_13_0_")->click();
108 $this->byId("t10_542_0_")->click();
109 // On les ajoute à la sélection
110 $this->byId("add-ser-them")->click();
111 // On sélectionne un des services sélectionnés
112 $this->byCssSelector("div[name=\"t10_542_0_\"]")->click();
113 // On l'enlève de la sélection
114 $this->byId("del-ser-them")->click();
115 // On coche la case pour la consultation papier pour un des services
116 $this->byCssSelector("div.cell2 > div > input.t10_575_0_")->click();
117 // On clique sur le bouton "Ajouter" du formulaire
118 $this->byId("button_val")->click();
119 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
120 $this->verifyNoErrors();
121 // On vérifie que le message de validation est présent avec le bon nombre de consultations
122 $this->assertRegExp('/.*3 service\(s\) sélectionné\(s\) dont 1 consultation\(s\) papier.*/', $this->byCssSelector("#sousform-consultation .message .text")->text());
123 // On vérifie que nous avons bien 4 consultations affichées
124 $this->assertRegExp('/.*1 - 5 enregistrement\(s\) sur 5*/', $this->byCssSelector("#sousform-consultation .pagination-text")->text());
125 // On se déconnecte
126 $this->logout();
127 }
128
129 public function test_03_reponse_a_une_consultation_par_le_service_consulte() {
130
131 // On se connecte en tant que "consu"
132 // !!! Attention on n'utilise pas la méthode login standard car
133 // l'utilisateur est redirigé automatiquement vers un autre écran
134 // sans voir le message de connexion !!!
135 // On se connecte
136 $this->connect("consu", "consu");
137 // Allonge le temps d'attente lors de la recherche d'élément
138 $this->timeouts()->implicitWait(10000);
139 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
140 $this->verifynoerrors();
141 // On temporise pour laisser le temps au javascript de redirection
142 // de faire son travail
143 sleep(1);
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 "AZ0130551200001P0" dans le tableau
147 $this->byLinkText("59.13")->click();
148 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
149 $this->verifyNoErrors();
150 // On clique sur le lien "Saisir un avis" dans le portlet
151 $this->byXPath("//div[@id='portlet-actions']/ul/li/a/span")->click();
152 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
153 $this->verifyNoErrors();
154 // On vérifie que le sous-titre de l'élément affiché est correct
155 $this->assertEquals("9", $this->byCssSelector("#sformulaire #consultation")->attribute('value'));
156 // On clique sur le bouton "Modifier" du formulaire sans saisir de retour d'avis
157 $this->byXPath("//input[@value='Modifier']")->click();
158 sleep(1);
159 // On vérifie qu'il manque l'avis
160 $this->assertRegExp("/^[\s\S]*La sélection d'un avis est obligatoire\.[\s\S]*$/",$this->byCssSelector("#sousform-consultation .message .text")->text());
161 // Fermerture de l'overlay
162 $this->byCssSelector("#sformulaire a.retour")->click();
163 // Retour à la liste des demandes
164 $this->byLinkText("Retour")->click();
165 // On vérifie que la surface est affichée
166 $this->assertEquals("1099", $this->byCssSelector("#formulaire tbody .col-6 a")->text());
167 // Accès au dossier en visualisation
168 $this->byLinkText("AZ 013055 12 00001P0")->click();
169 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
170 $this->verifyNoErrors();
171 // Accès à l'onglet des consultations
172 $this->byXPath("//div[@id='portlet-actions']/ul/li/a/span")->click();
173 $this->assertEquals("9", $this->byCssSelector("#sformulaire #consultation")->attribute('value'));
174 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
175 $this->verifyNoErrors();
176 // Saisie de valeurs
177 $this->select($this->byId("avis_consultation"))->selectOptionByLabel("Defavorable");
178 $this->byId("motivation")->value("Pas motivé");
179 // Upload de fichier
180 $this->byCssSelector("span.ui-icon.ui-icon-arrowthickstop-1-s")->click();
181 // Validation sans saisie de fichier
182 $this->byName("submit")->click();
183 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
184 $this->verifyNoErrors();
185 //
186 $this->assertRegExp('/.*Vous devez sélectionner un fichier.*/', $this->byCssSelector("#upload-container .message .text")->text());
187 // Saisie de fichier
188 $this->byName("userfile[]")->value(dirname(__FILE__)."/binary_files/lettre_rar16042013124515.pdf");
189 $this->byName("submit")->click();
190 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
191 $this->verifyNoErrors();
192 // Validation de la modification de la demande d'avis
193 $this->byXPath("//input[@value='Modifier']")->click();
194 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
195 $this->verifyNoErrors();
196 // On vérifie que le message de validation est présent
197 $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sformulaire .message .text")->text());
198 // On clique sur le lien retour
199 $this->byCssSelector("#sformulaire a.retour")->click();
200 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
201 $this->verifyNoErrors();
202 // Vérification que la demande d'avis n'est plus presente
203 try {
204 $el = $this->byLinkText("59.13");
205 $this->fail('Cet élément ne devrait pas exister.');
206 } catch (PHPUnit_Extensions_Selenium2TestCase_WebDriverException $e) {
207 $this->assertEquals(PHPUnit_Extensions_Selenium2TestCase_WebDriverException::NoSuchElement, $e->getCode());
208 }
209 // On se déconnecte
210 $this->logout();
211 }
212
213
214 public function test_04_reponse_a_une_consultation_par_la_cellule_suivi() {
215
216 // On se connecte en tant que "suivi"
217 $this->login("suivi", "suivi");
218 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
219 $this->verifyNoErrors();
220 //
221 $this->byLinkText("Retours De Consultation")->click();
222 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
223 $this->verifyNoErrors();
224 // On vérifie que le titre de la page est correct
225 $this->assertRegExp('/.*Retours De Consultation.*/', $this->byCssSelector("#title h2")->text());
226 // On clique sur le bouton "Valider" sans saisir de code barres
227 $this->byXPath("//input[@value='Valider']")->click();
228 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
229 $this->verifyNoErrors();
230 //
231 $this->assertRegExp('/.*Veuiller saisir un code barres de consultation.*/', $this->byCssSelector(".message .text")->text());
232 //
233 $this->byId("code_barres")->value("aze");
234 $this->byXPath("//input[@value='Valider']")->click();
235 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
236 $this->verifyNoErrors();
237 $this->assertRegExp('/.*Cette consultation n\'existe pas.*/', $this->byCssSelector(".message .text")->text());
238 // XXX Aller plus loin dans les cas d'utilisation lors de la saisie
239 $this->byId("code_barres")->value("120000000006");
240 $this->byXPath("//input[@value='Valider']")->click();
241 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
242 $this->verifyNoErrors();
243 // On vérifie que le titre de la page est correct
244 $this->assertEquals("6", $this->byId("consultation")->attribute('value'));
245 $this->assertEquals("AZ 013055 12 00001P0", $this->byId("dossier_libelle")->attribute('value'));
246 $this->select($this->byId("avis_consultation"))->selectOptionByLabel("Favorable");
247 $this->byId("motivation")->value("blablabla");
248 // Upload de fichier
249 $this->byCssSelector("span.ui-icon.ui-icon-arrowthickstop-1-s")->click();
250 // Validation sans saisie de fichier
251 $this->byName("submit")->click();
252 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
253 $this->verifyNoErrors();
254 $this->assertRegExp('/.*Vous devez sélectionner un fichier.*/', $this->byCssSelector("#upload-container .message .text")->text());
255 // Saisie de fichier
256 $this->byName("userfile[]")->value(dirname(__FILE__)."/binary_files/lettre_rar16042013124515.pdf");
257 $this->byName("submit")->click();
258 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
259 $this->verifyNoErrors();
260 // Visualisation du fichier
261 $this->byCssSelector("span.ui-icon.ui-icon-newwin")->click();
262 $this->assertRegExp('/.*lettre_rar16042013124515.pdf.*/', $this->byId("fichier_upload")->attribute('value'));
263 //On ferme l'overlay
264 $this->byCssSelector(".ui-dialog .ui-icon-closethick")->click();
265 //
266 $this->byXPath("//input[@value='Modifier']")->click();
267 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
268 $this->verifyNoErrors();
269 // On vérifie que le message de validation est présent
270 $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector(".message .text")->text());
271 // On clique sur le lien retour
272 $this->byLinkText("Retour")->click();
273 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
274 $this->verifyNoErrors();
275 // On vérifie que le titre de la page est correct
276 $this->assertStringEndsWith('app/suivi_retours_de_consultation.php', $this->url());
277 // On se déconnecte
278 $this->logout();
279 }
280
281 public function test_05_gestion_de_la_consultation_par_l_instructeur() {
282
283 // On se connecte en tant que "instr"
284 $this->login("instr", "instr");
285 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
286 $this->verifyNoErrors();
287 // On vérifie que les consultations apparaissent bien sur le tableau de bord de l'instructeur
288 $this->assertEquals("2",$this->byCssSelector("#widget_3 .widget-content-wrapper .message .text .bold")->text());
289 // On clique sur le lien "Mes retours" dans le menu
290 $this->byLinkText("Mes Retours")->click();
291 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
292 $this->verifyNoErrors();
293 // On vérifie que le titre de la page est correct
294 $this->assertEquals("Consultation_mes_retours", $this->byXPath("//a[@href='#tabs-1']")->text());
295 // On vérifie que les deux consultations sont présentes dans le tableau
296 $this->assertEquals("1 - 2 enregistrement(s) sur 2", $this->byClassName("pagination-text")->text());
297 // On clique sur le lien "59.01 Direction de l'Eau et de l'Assainissement" dans le tableau
298 $this->byLinkText("59.01 Direction de l'Eau et de l'Assainissement")->click();
299 // On temporise pour laisser un peu de temps à l'onglet de se charger
300 // (accès direct)
301 sleep(2);
302 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
303 $this->verifyNoErrors();
304 // On vérifie que le formulaire de la consultation s'est bien ouvert
305 $this->assertEquals("6", $this->byCssSelector("#sousform-consultation #consultation")->text());
306 // On clique sur le lien "Marquer comme lu" dans le portlet
307 $this->byId("action-sousform-consultation-lu")->click();
308 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
309 $this->verifyNoErrors();
310 // On vérifie que le message de validation est présent avec le bon nombre de consultations
311 $this->assertRegExp('/.*Mise a jour effectue avec succes.*/', $this->byCssSelector(".message .text")->text());
312 // On clique sur le lien retour
313 $this->byCssSelector("#sousform-consultation #sformulaire div.formControls a.retour")->click();
314 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
315 $this->verifyNoErrors();
316 // On vérifie que le nombre de consultations est le bon
317 $this->assertEquals("1 - 5 enregistrement(s) sur 5", $this->byClassName("pagination-text")->text());
318 // On clique sur le lien "Tableau de bord" dans le menu
319 $this->byLinkText("Tableau de bord")->click();
320 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
321 $this->verifyNoErrors();
322 // On vérifie que les consultations apparaissent bien sur le tableau de bord de l'instructeur
323 $this->assertEquals("1",$this->byCssSelector("#widget_3 .widget-content-wrapper .message .text .bold")->text());
324 // On se déconnecte
325 $this->logout();
326 }
327
328 /*
329 * Cette méthode teste l'envoi de message au référentiel ERP lors de l'ajout
330 * de consultation
331 */
332 public function test_06_envoi_de_message_erp(){
333
334 // On se connecte en tant que "admin"
335 $this->login("admin", "admin");
336 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
337 $this->verifyNoErrors();
338
339 //{{{ On ajoute trois services
340 //On clique sur Paramétrage
341 $this->byLinkText("Paramétrage")->click();
342 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
343 $this->verifyNoErrors();
344 //On clique sur Service
345 $this->byLinkText("Service")->click();
346 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
347 $this->verifyNoErrors();
348 //Initialisation de la variable
349 $services = array();
350 //On ajoute trois services
351 for ($i = 1 ; $i < 4 ; $i++){
352 $services[] = $this->addService("test_erp_".$i, "test_service_erp_".$i);
353 }
354 //}}}
355
356 //{{{ On change trois variables erp_service_accessibilite,
357 // erp_service_securite et erp_service_conformite
358 //Retour sur le tableau de bord
359 $this->byLinkText("Tableau de bord")->click();
360 //On clique sur Administration
361 $this->byLinkText("Administration")->click();
362 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
363 $this->verifyNoErrors();
364 //On clique sur Paramètre
365 $this->byLinkText("Paramètre")->click();
366 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
367 $this->verifyNoErrors();
368 $erp_service_accessibilite = $this->changeParametreServiceErp("erp_service_accessibilite", $services[0]);
369 $erp_service_securite = $this->changeParametreServiceErp("erp_service_securite", $services[1]);
370 $erp_service_conformite = $this->changeParametreServiceErp("erp_service_conformite", $services[2]);
371
372 ///}}}
373
374 // On se déconnecte
375 $this->deconnect();
376
377 // On se connecte en tant que "instr"
378 $this->login("guichet", "guichet");
379 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
380 $this->verifyNoErrors();
381 //{{{On ajoute un dossier d'instruction
382 //On clique sur Nouveau Dossier
383 $this->byLinkText("Nouveau Dossier")->click();
384 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
385 $this->verifyNoErrors();
386 //On choisit le type détaillé de dossier d'autorisation
387 $this->select($this->byName("dossier_autorisation_type_detaille"))->selectOptionByValue("1");
388 //On choisit le type de demande - Dépôt initial
389 $this->select($this->byName("demande_type"))->selectOptionByValue("1");
390 //On clique sur "Saisir le pétitionnaire principal"
391 $this->byId("add_petitionnaire_principal")->click();
392 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
393 $this->verifyNoErrors();
394 // On remplit le champ
395 $this->select($this->byId("particulier_civilite"))->selectOptionByLabel("Monsieur");
396 //On saisie le nom du pétitionnaire principal
397 $this->byId("particulier_nom")->value("test");
398 // On clique sur ajouter
399 $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
400 // On vérifie qu'il n'y ait pas d'erreur
401 $this->verifynoerrors();
402 //On vérifie que le pétitionnaire s'est bien ajouté
403 // On vérifie le message
404 $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector("#sousform-petitionnaire .message")->text());
405 // On clique sur le bouton retour
406 $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
407 // On vérifie que le text est présent
408 $this->assertContains("test",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
409 // On clique sur ajouter
410 $this->byXPath("//input[@value='Ajouter']")->click();
411 // On vérifie qu'il n'y ait pas d'erreur
412 $this->verifynoerrors();
413 // On vérifie le message
414 $this->assertContains("Création du dossier",$this->byCssSelector(".message")->text());
415 //On récupère le numéro de dossier d'instruction créé
416 preg_match('/(PC)[0-9 ]*(P0)/', $this->byCssSelector("#tabs-1 .message")->text(), $dossier);
417 //On récupère le numéro de dossier
418 $dossier = $dossier[0];
419
420 //}}}
421 // On se déconnecte
422 $this->deconnect();
423
424 // On se connecte en tant que "instr"
425 $this->login("instr", "instr");
426 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
427 $this->verifyNoErrors();
428 //{{{ On ajoute trois consultation
429 //On clique sur Nouveau Dossier
430 $this->byLinkText("Recherche")->click();
431 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
432 $this->verifyNoErrors();
433 //On cherche le dossier d'instruction
434 $this->byId("dossier")->value(str_replace(" ", "", $dossier));
435 // On valide la recherche
436 $this->byId("advanced-form")->submit();
437 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
438 $this->verifyNoErrors();
439 //On clique sur le dossier d'instruction
440 $this->byLinkText($dossier)->click();
441 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
442 $this->verifyNoErrors();
443 //On clique sur Modifier
444 $this->byClassName("edit-16")->click();
445 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
446 $this->verifyNoErrors();
447 //On clique sur erp
448 $this->byId("erp")->click();
449 //On valide le formulaire
450 $this->byName("f1")->submit();
451 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
452 $this->verifyNoErrors();
453 // On vérifie le message
454 $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message .text")->text());
455 //On clique sur l'onglet Consulation
456 $this->byId("consultation")->click();
457 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
458 $this->verifyNoErrors();
459 //On ajoute trois consultations
460 foreach ($services as $value) {
461 $this->addConsultation($value);
462 }
463
464 //}}}
465
466 // On se déconnecte
467 $this->deconnect();
468
469 // On se connecte en tant que "admin"
470 $this->login("admin", "admin");
471 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
472 $this->verifyNoErrors();
473 //{{{ On remet les valeurs par défaut des paramètres
474 //On clique sur Administration
475 $this->byLinkText("Administration")->click();
476 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
477 $this->verifyNoErrors();
478 //On clique sur Paramètre
479 $this->byLinkText("Paramètre")->click();
480 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
481 $this->verifyNoErrors();
482 $this->changeParametreServiceErp("erp_service_accessibilite", $erp_service_accessibilite);
483 $this->changeParametreServiceErp("erp_service_securite", $erp_service_securite);
484 $this->changeParametreServiceErp("erp_service_conformite", $erp_service_conformite);
485 //}}}
486
487 //On se déconnecte
488 $this->logout();
489 }
490
491 public function test_07_reponse_a_une_consultation_par_linstructeur() {
492
493 // On se connecte en tant que "instr"
494 $this->login("guichet", "guichet");
495 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
496 $this->verifyNoErrors();
497 //{{{On ajoute un dossier d'instruction
498 //On clique sur Nouveau Dossier
499 $this->byLinkText("Nouveau Dossier")->click();
500 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
501 $this->verifyNoErrors();
502 //On choisit le type détaillé de dossier d'autorisation
503 $this->select($this->byName("dossier_autorisation_type_detaille"))->selectOptionByValue("1");
504 //On choisit le type de demande - Dépôt initial
505 $this->select($this->byName("demande_type"))->selectOptionByValue("1");
506 //On clique sur "Saisir le pétitionnaire principal"
507 $this->byId("add_petitionnaire_principal")->click();
508 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
509 $this->verifyNoErrors();
510 // On remplit le champ
511 $this->select($this->byId("particulier_civilite"))->selectOptionByLabel("Monsieur");
512 //On saisie le nom du pétitionnaire principal
513 $this->byId("particulier_nom")->value("test consultation instr");
514 // On clique sur ajouter
515 $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
516 // On vérifie qu'il n'y ait pas d'erreur
517 $this->verifynoerrors();
518 //On vérifie que le pétitionnaire s'est bien ajouté
519 // On vérifie le message
520 $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector("#sousform-petitionnaire .message")->text());
521 // On clique sur le bouton retour
522 $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
523 // On vérifie que le text est présent
524 $this->assertContains("test",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
525 // On clique sur ajouter
526 $this->byXPath("//input[@value='Ajouter']")->click();
527 // On vérifie qu'il n'y ait pas d'erreur
528 $this->verifynoerrors();
529 // On vérifie le message
530 $this->assertContains("Création du dossier",$this->byCssSelector(".message")->text());
531 //On récupère le numéro de dossier d'instruction créé
532 preg_match('/(PC)[0-9 ]*(P0)/', $this->byCssSelector("#tabs-1 .message")->text(), $dossier);
533 //On récupère le numéro de dossier
534 $dossier = $dossier[0];
535
536 //}}}
537 // On se déconnecte
538 $this->deconnect();
539
540 // On se connecte en tant que "instr"
541 $this->login("instr", "instr");
542 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
543 $this->verifyNoErrors();
544 //{{{ On ajoute trois consultation
545 //On clique sur Nouveau Dossier
546 $this->byLinkText("Recherche")->click();
547 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
548 $this->verifyNoErrors();
549 //On cherche le dossier d'instruction
550 $this->byId("dossier")->value(str_replace(" ", "", $dossier));
551 // On valide la recherche
552 $this->byId("advanced-form")->submit();
553 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
554 $this->verifyNoErrors();
555 //On clique sur le dossier d'instruction
556 $this->byLinkText($dossier)->click();
557 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
558 $this->verifyNoErrors();
559 //On clique sur Modifier
560 $this->byClassName("edit-16")->click();
561 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
562 $this->verifyNoErrors();
563 //On clique sur l'onglet Consulation
564 $this->byId("consultation")->click();
565 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
566 $this->verifyNoErrors();
567 //On ajoute une consultation
568 $this->addConsultation("1", false);
569 // On y accede
570 $this->byLinkText("Direction de l'Eau et de l'Assainissement")->click();
571 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
572 $this->verifyNoErrors();
573 // On rend l'avis
574 $this->byId("action-sousform-consultation-modifier")->click();
575 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
576 $this->verifyNoErrors();
577 $this->select($this->byId("avis_consultation"))->selectOptionByLabel("Defavorable");
578 $this->byId("motivation")->value("Pas motivé");
579 // Validation de la modification de la demande d'avis
580 //On valide le formulaire
581 $this->byName("f2")->submit();
582 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
583 $this->verifyNoErrors();
584 // On vérifie que le message de validation est présent
585 $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sformulaire .message .text")->text());
586 //On se déconnecte
587 $this->logout();
588 }
589 /*
590 * Ajoute un service
591 * @param string $abrege le nom abrege du service
592 * @param string $libelle le libelle du service
593 *
594 * @return int l'identifiant du service crée
595 */
596 private function addService($abrege, $libelle){
597
598 //On clique sur le + du tableau
599 $this->byClassName("add-16")->click();
600 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
601 $this->verifyNoErrors();
602 //On remplit les champs obligatoires
603 $this->byId("abrege")->value($abrege);
604 $this->byId("libelle")->value($libelle);
605 //Consultation - Demande d'avis
606 $this->select($this->byId("edition"))->selectOptionByValue("9");
607 //On valide le formulaire
608 $this->byName('f1')->submit();
609 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
610 $this->verifyNoErrors();
611 // On vérifie que le message de validation est présent
612 $this->assertContains('Vos modifications ont bien été enregistrées.', $this->byCssSelector(".message .text")->text());
613 //On clique sur le bouton retour
614 $this->byLinkText("Retour")->click();
615 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
616 $this->verifyNoErrors();
617 //On saisie le nom du service dans la recherche simple
618 $this->byClassName("champFormulaire")->value($libelle);
619 //On valide la recherche
620 $this->byName('s1')->submit();
621 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
622 $this->verifyNoErrors();
623 //On clique sur le service
624 $this->byLinkText($libelle)->click();
625 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
626 $this->verifyNoErrors();
627 //On récupère l'identifiant
628 $serviceId = trim($this->byId("service")->text());
629 //On clique sur le bouton Retour
630 $this->byLinkText("Retour")->click();
631 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
632 $this->verifyNoErrors();
633 //On retourne l'identifiant
634 return $serviceId;
635 }
636
637 /*
638 * Modifie la valeur du paramètre du numéro de service pour le message ERP
639 * @param string $parametre le libelle du paramètre
640 * @param string $valeur la valeur à renseigner
641 *
642 * @return string la valeur précédente du paramètre
643 */
644 private function changeParametreServiceErp($parametre, $valeur){
645
646 //On vide le champ
647 $this->byClassName("champFormulaire")->clear();
648 //On saisie le nom de la variable dans la recherche simple
649 $this->byClassName("champFormulaire")->value($parametre);
650 //On valide la recherche
651 $this->byName('s1')->submit();
652 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
653 $this->verifyNoErrors();
654 //On clique sur le service
655 $this->byLinkText($parametre)->click();
656 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
657 $this->verifyNoErrors();
658 //On clique sur modifier dans le portail d'action
659 $this->byClassName("edit-16")->click();
660 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
661 $this->verifyNoErrors();
662 //On récupère la valeur actuelle du paramètre
663 $parametre = trim($this->byId("valeur")->attribute('value'));
664 //On vide le champ
665 $this->byId("valeur")->clear();
666 //On change la valeur du paramètre
667 $this->byId("valeur")->value($valeur);
668 //On valide le formulaire
669 $this->byName('f1')->submit();
670 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
671 $this->verifyNoErrors();
672 // On vérifie que le message de validation est présent
673 $this->assertContains('Vos modifications ont bien été enregistrées.', $this->byCssSelector(".message .text")->text());
674 //On clique sur le bouton retour
675 $this->byLinkText("Retour")->click();
676 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
677 $this->verifyNoErrors();
678 //On clique sur le bouton retour
679 $this->byLinkText("Retour")->click();
680 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
681 $this->verifyNoErrors();
682 //On retourne la valeur
683 return $parametre;
684 }
685
686 /*
687 * Ajoute une consultation
688 * @param int $service l'identifiant du service
689 */
690 private function addConsultation($service, $erp = true){
691 //On clique sur le + du tableau
692 $this->byId("action-soustab-consultation-corner-ajouter")->click();
693 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
694 $this->verifyNoErrors();
695 //On choisit le service
696 $this->select($this->byId("service"))->selectOptionByValue($service);
697 //On valide le formulaire
698 $this->byName("f2")->submit();
699 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
700 $this->verifyNoErrors();
701 // On vérifie que le message de validation est présent
702 $this->assertContains('Vos modifications ont bien été enregistrées.', $this->byCssSelector("#sousform-consultation .message .text")->text());
703 // On vérifie que le message d'envoi est présent
704 if( $erp === true ) {
705 $this->assertContains('Le message a été transmis au référentiel ERP.', $this->byCssSelector("#sousform-consultation .message .text")->text());
706 }
707 //On clique sur le bouton retour
708 $this->byLinkText("Retour")->click();
709 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
710 $this->verifyNoErrors();
711 }
712 }
713
714 ?>

Properties

Name Value
svn:keywords Id

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26