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

Annotation of /trunk/tests/testConsultations.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3730 - (hide annotations)
Fri Mar 18 11:50:26 2016 UTC (8 years, 10 months ago) by mbroquet
File size: 32421 byte(s)
Actualisation du trunk
1 mbroquet 3730 <?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("#sformulaire #avis_consultation"))->selectOptionByLabel("Defavorable");
187     $this->byId("motivation")->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("4",$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 - 4 enregistrement(s) sur 4", $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("3",$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