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

Diff of /trunk/tests/testConsultations.php

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

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

Legend:
Removed from v.1864  
changed lines
  Added in v.3156

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26