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

Contents of /trunk/tests/testConsultations.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3892 - (show annotations)
Fri Apr 8 13:48:30 2016 UTC (8 years, 9 months ago) by fmichon
File size: 32465 byte(s)
Merge de la branche de correctif 'merge_3.14.x' :
* Correction - Les métadonnées des fichiers enregistrés sur le filestorage sont
  désormais correctes.
* Correction - Lorsque l'avis d'une consultation est automatiquement passé à
  tacite, le champ "lu" est désormais positionné à non lu. Cela permet de
  l'afficher dans le widget "consultation" du tableau de bord de l'instructeur.
* Correction - L'aide à la saisie sur le formulaire des pétitionnaires et des
  architectes permettant de chercher dans les "fréquents" prends en compte
  désormais le caractère '*' dans la chaîne recherchée.

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26