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

Diff of /trunk/tests/testSuivi.php

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

revision 1677 by fmichon, Mon Apr 15 12:30:11 2013 UTC revision 1965 by softime, Thu May 30 11:08:02 2013 UTC
# Line 14  require_once "base.php"; Line 14  require_once "base.php";
14   */   */
15  class Suivi extends BaseTestCase {  class Suivi extends BaseTestCase {
16    
     private function login() {  
         // on commence par se connecter  
         $this->connect("suivi", "suivi");  
         // On doit être connecté  
         $this->assertTrue($this->isTextPresent("Votre session est maintenant ouverte."));  
     }  
   
     private function logout() {  
         // puis on se déconnecte  
         $this->deconnect();  
         // on doit avoir un message nous indiquant que la session est finie  
         $this->assertTrue($this->isTextPresent("Votre session est maintenant terminée."));  
         // on ne doit plus avoir de lien de déconnexion  
         $this->assertFalse($this->isElementPresent("link=Déconnexion"));  
     }  
   
17      /**      /**
18       * Ce test vise uniquement à vérifier que les écrans correspondant à chaque       * Ce test vise uniquement à vérifier que les écrans correspondant à chaque
19       * entrée de menu ne génère pas une erreur de base de données       * entrée de menu ne génère pas une erreur de base de données
20         *
21         * Ce test est temporaire, il permet d'effectuer un test grossier sur chacun
22         * des écrans en attendant que l'intégralité des cas d'utilisation soient
23         * testés
24       */       */
25      public function testGeneral() {      public function testGeneral() {
26          //          //
27          $this->login();          $this->login("suivi", "suivi");
28        
         //  
         $this->clickAndWait("link=retours de consultation");  
         $this->verifyTextPresent("suivi > suivi des pieces > retours de consultation");  
         $this->verifyNoDatabaseError();  
29          //          //
30          $this->clickAndWait("link=Mise à jour des dates");          $this->clickAndWait("link=Mise à jour des dates");
31          $this->verifyTextPresent("suivi > suivi des pieces > mise a jour des dates");          $this->verifyTextPresent("suivi > suivi des pièces > mise à jour des dates");
32          $this->verifyNoDatabaseError();          $this->verifyNoErrors();
         //  
         $this->clickAndWait("link=Envoi lettre rar");  
         $this->verifyTextPresent("suivi > suivi des pieces > envoi lettre rar");  
         $this->verifyNoDatabaseError();  
         //  
         $this->clickAndWait("link=Bordereaux");  
         $this->verifyTextPresent("suivi > suivi des pieces > bordereaux");  
         $this->verifyNoDatabaseError();  
33          //          //
34          $this->clickAndWait("link=gestion");          $this->clickAndWait("link=gestion");
35          $this->verifyTextPresent("suivi > commissions > gestion");          $this->verifyTextPresent("suivi > commissions > gestion");
36          $this->verifyNoDatabaseError();          $this->verifyNoErrors();
37          //          //
38          $this->clickAndWait("link=demandes");          $this->clickAndWait("link=demandes");
39          $this->verifyTextPresent("suivi > commissions > demandes");          $this->verifyTextPresent("suivi > commissions > demandes");
40          $this->verifyNoDatabaseError();          $this->verifyNoErrors();
41        
42            //
43            $this->logout();
44        }
45    
46        /**
47         *  XXX tous les cas d'utilisation ne sont pas testés
48         * Permet de tester la génération de feuillets pour lettre avec accusé de récéption
49         */
50        public function testEnvoiLettreRAR() {
51            //
52            $this->login("suivi", "suivi");
53            
54            //
55            $this->clickAndWait("link=envoi lettre RAR");
56            $this->verifyTextPresent("suivi > suivi des pièces > envoi lettre RAR");
57            $this->verifyNoErrors();
58            
59            // Vérification sans valeur saisie
60            $this->clickAndWait("//input[@value='Valider']");
61            $this->verifyNoErrors();
62            $this->verifyTextPresent("Tous les champs doivent être remplis.");
63    
64            // Vérification avec un numéro non valide
65            $this->type("id=liste_code_barres_instruction", "a");
66            $this->clickAndWait("//input[@value='Valider']");
67            $this->verifyNoErrors();
68            $this->verifyTextPresent("Le code barres d'instruction a n'est pas valide.");
69    
70            // Vérification avec un numéro non présent en base
71            $this->type("id=liste_code_barres_instruction", "123");
72            $this->clickAndWait("//input[@value='Valider']");
73            $this->verifyNoErrors();
74            $this->verifyTextPresent("Le numéro 123 ne correspond à aucun code barres d'instruction.");
75    
76            // Vérification formulaire valide
77            $this->type("id=liste_code_barres_instruction", "110000000001");
78            $this->clickAndWait("//input[@value='Valider']");
79            $this->verifyNoErrors();
80            $this->verifyTextPresent("Cliquez sur le lien ci-dessous pour télécharger votre document :");
81            $this->verifyTextPresent("Télécharger le document pour 1 RAR");
82          //          //
83          $this->logout();          $this->logout();
84      }      }
85        
86        /**
87         *
88         */
89        public function testBordereaux() {
90            //
91            $this->login("suivi", "suivi");
92        
93            //
94            $this->clickAndWait("link=Bordereaux");
95            $this->verifyNoErrors();
96            $this->verifyTextPresent("suivi > suivi des pièces > bordereaux");
97        
98            //
99            $this->clickAndWait("//input[@value='Valider']");
100            $this->verifyNoErrors();
101            $this->verifyTextPresent("Veuillez sélectionner un bordereau.");
102            
103            //
104            $this->select("id=bordereau", "label=Bordereau d'envoi des avis du Maire au Préfet");
105            $this->click("id=date_bordereau");
106            $this->type("id=date_bordereau", "");
107            $this->assertEquals("La date saisie n'est pas valide", $this->getAlert());
108            $this->clickAndWait("//input[@value='Valider']");
109            $this->verifyNoErrors();
110            $this->verifyTextPresent("Veuillez saisir une date valide.");
111        
112            //
113            $bordereaux = array(
114                "Bordereau d'envoi des avis du Maire au Préfet",
115                "Bordereau d'envoi des contrôles de légalité",
116                "Bordereau d'envoi de courriers signature Maire",
117                "Bordereau d'envoi des décisions",
118            );
119            foreach ($bordereaux as $bordereau) {
120                //
121                $this->select("id=bordereau", "label=".$bordereau."");
122                $this->clickAndWait("//input[@value='Valider']");
123                $this->verifyTextPresent("Cliquez sur le lien ci-dessous pour télécharger votre bordereau : \n\n".$bordereau." au ".date("d/m/Y"));
124                //
125                $this->click("link=".$bordereau." au ".date("d/m/Y"));
126                $this->waitForPopUp("", "30000");
127                $this->selectPopUp();
128                sleep(5);
129                $this->verifyNoErrors();
130                $this->verifyTextPresent("Edition du ".date("d/m/Y"));
131                $this->close();
132                $this->selectWindow();
133            }
134        
135            //
136            $this->logout();
137        }
138    
139        public function test_20_mise_a_jour_des_dates_simple_par_la_cellule_suivi() {
140            // On se connecte en tant que "suivi"
141            $this->login("suivi", "suivi");
142            // On clique sur le lien "Mise à jour des dates" dans le menu
143            $this->clickAndWait("link=Mise à jour des dates");
144            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
145            $this->verifyNoErrors();
146            //
147            $dates = array(
148                0 => array(
149                    "id" => "date_envoi_signature",
150                    "label" => "date d'envoi pour signature Mairie/Préfet",
151                    "date" => "10/04/2013",
152                ),
153                1 => array(
154                    "id" => "date_retour_signature",
155                    "label" => "date de retour de signature Mairie/Préfet",
156                    "date" => "12/04/2013",
157                ),
158                2 => array(
159                    "id" => "date_envoi_controle_legalite",
160                    "label" => "date d'envoi au contrôle de légalite",
161                    "date" => "12/04/2013",
162                ),
163                3 => array(
164                    "id" => "date_retour_controle_legalite",
165                    "label" => "date de retour de controle de légalite",
166                    "date" => "18/04/2013",
167                ),
168            );
169            foreach($dates as $date) {
170                // On vérifie que le titre de la page est correct
171                $this->verifyTextPresent("suivi > suivi des pièces > mise à jour des dates");
172                // On saisi les informations de mise  à jour de la date
173                $this->select("id=type_mise_a_jour", "label=".$date["label"]."");
174                $this->type("id=date", $date["date"]);
175                $this->type("id=code_barres", "110000000009");
176                // On clique sur le bouton "Valider"
177                $this->clickAndWait("name=validation");
178                // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
179                $this->verifyNoErrors();
180                // On vérifie que le les informations du dossier sont bien présentes
181                $this->verifyText("id=dossier", "AZ0130551200001P0");
182                $this->verifyText("id=".$date["id"]."", $date["date"]);
183                // On clique sur le bouton "Valider"
184                $this->clickAndWait("name=validation");
185                // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
186                $this->verifyNoErrors();
187                // On vérifie que le message de validation est présent
188                $this->verifyTextPresent("Saisie enregistrée");
189            }
190            // On clique sur le logo pour revenir au tableau de bord
191            $this->click("css=span.logo");
192            // On se déconnecte
193            $this->logout();
194    
195            // On positionne une vitesse pour que les requêtes ajax puissent s'exécuter correctement
196            $this->setSpeed('120');
197            // On se connecte en tant que "instr"
198            $this->login("instr", "instr");
199            // On saisit le numéro de dossier "AZ0130551200001P0" dans le champ de recherche du widget "accès direct" du tableau de bord qui possède le focus
200            $this->type("id=dossier", "AZ0130551200001P0");
201            // On clique sur le bouton "Rechercher" du widget "accès direct" du tableau de bord
202            $this->clickAndWait("name=validation");
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 titre de la page est correct (que nous sommes sur le bon dossier)
206            $this->verifyTextPresent("Instruction > dossiers d'instruction >  AZ0130551200001P0");
207            // On clique sur l'onglet "Instruction"
208            $this->click("id=instruction");
209            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
210            $this->verifyNoErrors();
211            // On clique sur le lien de l'événement d'instruction n°9
212            $this->click("link=arrete");
213            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
214            $this->verifyNoErrors();
215            // On vérifie que le sous-titre est correct (que nous sommes sur le bon événement d'instruction)
216            $this->verifyTextPresent("Instruction  9");
217            // On boucle sur chaque date pour vérifier que ces dernières sont bien présentes sur l'écran de visualisation de l'événement d'instruction
218            foreach($dates as $date) {
219                //
220                $this->verifyText("id=".$date["id"]."", $date["date"]);
221            }
222            // On clique sur le bouton retour
223            $this->click("css=#sformulaire > a.retour");
224            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
225            $this->verifyNoErrors();
226            // On clique sur le logo pour revenir au tableau de bord
227            $this->click("css=span.logo");
228            // On se déconnecte
229            $this->logout();
230        }
231    
232  }  }
233    

Legend:
Removed from v.1677  
changed lines
  Added in v.1965

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26