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

Annotation of /trunk/tests/testSuivi.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 4237 - (hide annotations)
Fri May 20 09:41:07 2016 UTC (8 years, 8 months ago) by fmichon
File size: 16180 byte(s)
* Déplacement de scripts du répertoire app/ vers des vues de la classe métier concernée. Les écrans sont : 'Suivi > Demandes D'avis > *'.

1 mbroquet 3730 <?php
2     /**
3     *
4     *
5     * @package openfoncier
6     * @version SVN : $Id: testSuivi.php 5857 2016-02-03 11:48:28Z nmeucci $
7     */
8    
9     //
10     require_once "base.php";
11    
12     /**
13     *
14     */
15     class Suivi extends Base2TestCase {
16    
17     // Liste des utilisateurs
18     var $listUtlisateurs = array(
19     array(
20     "login" => "suivi",
21     "mdp" => "suivi"
22     ),
23     array(
24     "login" => "adminfonct",
25     "mdp" => "adminfonct"
26     ),
27     );
28    
29     /**
30     * Fonction lancée en debut de chaque test
31     */
32     public function setUp() {
33     parent::setUp();
34     echo ' = '.get_class().'.'.str_replace('test_', '', $this->getName())."\r\n";
35     }
36    
37     public function onNotSuccessfulTest(Exception $e){
38     echo 'Line '.$e->getLine().' : '.$e->getMessage()."\r\n";
39     parent::onNotSuccessfulTest($e);
40     }
41    
42     // Fonction public
43     public function test_01_ouverture_menu() {
44     // Récupération des utilisateurs
45     $utilisateurs = $this->listUtlisateurs;
46     // Pour chaque utilisateur on lance le test
47     foreach ($utilisateurs as $utilisateur) {
48     //
49     $this->ouvertureMenu($utilisateur);
50     }
51     // On vérifie la déconnexion
52     $this->verifyDeconnect();
53     }
54    
55 nmeucci 4210 public function test_02_mise_a_jour_des_dates_simple_par_la_cellule_suivi() {
56     // On se connecte en tant que "admin"
57 mbroquet 3730 $this->login("admin", "admin");
58     // On clique sur le menu Instruction
59     $this->byLinkText("Instruction")->click();
60     // On clique sur le menu Recherche
61     $this->byLinkText("Recherche")->click();
62     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
63     $this->verifyNoErrors();
64     // On clique sur le dossier PC 013055 12 00002P
65     $this->byLinkText("PC 013055 12 00002P0")->click();
66     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
67     $this->verifyNoErrors();
68     // liste des instructions
69     $this->byId("instruction")->click();
70 nmeucci 4210 // On clique sur le + pour ajouter une instruction
71     $this->byCssSelector("#sousform-instruction .actions-max-1 a")->click();
72     // On choisit un signataire Albert Dupont
73     $this->select($this->byId("signataire_arrete"))->selectOptionByValue("1");
74     // On choisi l'événement "adjoint [majoration]"
75     $this->select($this->byId("evenement"))->selectOptionByValue("81");
76     // On clique sur le bouton ajouter
77     $this->byXPath("//input[@value='Ajouter']")->click();
78     // On vérifie que l'instruction s'est bien ajouté
79     $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
80     // On clique sur le bouton retour
81     $this->byCssSelector("#sousform-instruction form a.retour")->click();
82 mbroquet 3730 // On clique sur l'instruction nouvellement créée
83     $this->byLinkText("accepter un dossier sans réserve")->click();
84     $idInstr = $this->byCssSelector("div.form-content > #instruction")->text();
85 nmeucci 4210 // On finalise le document
86     $this->byCssSelector("#sousform-instruction .portlet-list li:nth-child(4) a")->click();
87     // On vérifie le message de validation
88     $this->assertEquals('La finalisation du document s\'est effectuée avec succès.', $this->byCssSelector("#sousform-instruction .message .text")->text());
89     sleep(1);
90     //On clique sur le bouton retour
91     $this->byLinkText("Retour")->click();
92     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
93     $this->verifyNoErrors();
94     // On clique sur le + pour ajouter une instruction
95     $this->byCssSelector("#sousform-instruction .actions-max-1 a")->click();
96     // On choisit un signataire Albert Dupont
97     $this->select($this->byId("signataire_arrete"))->selectOptionByValue("1");
98     // On choisi l'événement "adjoint [majoration]"
99     $this->select($this->byId("evenement"))->selectOptionByValue("29");
100     // On clique sur le bouton ajouter
101     $this->byXPath("//input[@value='Ajouter']")->click();
102     // On vérifie que l'instruction s'est bien ajouté
103     $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
104     // On clique sur le bouton retour
105     $this->byCssSelector("#sousform-instruction form a.retour")->click();
106     // On clique sur l'instruction nouvellement créée
107     $this->byLinkText("retrait apres decision")->click();
108     $idInstr2 = $this->byCssSelector("div.form-content > #instruction")->text();
109     // On finalise le document
110     $this->byCssSelector("#sousform-instruction .portlet-list li:nth-child(4) a")->click();
111     // On vérifie le message de validation
112     $this->assertEquals('La finalisation du document s\'est effectuée avec succès.', $this->byCssSelector("#sousform-instruction .message .text")->text());
113     //On se déconnecte de l'application
114     $this->deconnect();
115 mbroquet 3730
116 jymadier 4221 // On se connecte en tant qu'admin
117     $this->login("admin", "admin");
118 nmeucci 4210 // On clique sur le menu Instruction
119     $this->byLinkText("Instruction")->click();
120     // On clique sur le menu Recherche
121     $this->byLinkText("Recherche")->click();
122     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
123     $this->verifyNoErrors();
124     // On clique sur le dossier PC 013055 12 00002P
125     $this->byLinkText("PC 013055 12 00002P0")->click();
126     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
127     $this->verifyNoErrors();
128     // liste des instructions
129     $this->byId("instruction")->click();
130     // On clique sur l'instruction nouvellement créée
131     $this->byLinkText("accepter un dossier sans réserve")->click();
132     $idInstr = $this->byCssSelector("div.form-content > #instruction")->text();
133    
134 mbroquet 3730 //On clique sur le bouton retour
135     $this->byLinkText("Retour")->click();
136     sleep(1);
137     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
138     $this->verifyNoErrors();
139     // On clique sur l'instruction nouvellement créée
140     $this->byLinkText("retrait apres decision")->click();
141     $idInstr2 = $this->byCssSelector("div.form-content > #instruction")->text();
142     $this->deconnect();
143    
144     // On se connecte en tant que "suivi"
145     $this->login("suivi", "suivi");
146     // On clique sur le lien "Mise à jour des dates" dans le menu
147     $this->byLinkText("Mise À Jour Des Dates")->click();
148     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
149     $this->verifyNoErrors();
150     //
151     $dates = array(
152     0 => array(
153     "id" => "date_envoi_signature",
154     "label" => "date d'envoi pour signature Mairie/Préfet",
155     "date" => date("d/m/Y", strtotime("- 6 day")),
156     ),
157     1 => array(
158     "id" => "date_retour_signature",
159     "label" => "date de retour de signature Mairie/Préfet",
160     "date" => date("d/m/Y", strtotime("- 4 day")),
161     ),
162     2 => array(
163     "id" => "date_envoi_controle_legalite",
164     "label" => "date d'envoi au contrôle de légalite",
165     "date" => date("d/m/Y", strtotime("- 4 day")),
166     ),
167     3 => array(
168     "id" => "date_retour_controle_legalite",
169     "label" => "date de retour de controle de légalite",
170     "date" => date("d/m/Y"),
171     ),
172     );
173     foreach($dates as $date) {
174     // On vérifie que le titre de la page est correct
175     $this->assertContains("Suivi > Suivi Des Pièces > Mise À Jour Des Dates",
176     $this->byCssSelector("#content")->text());
177     // On saisi les informations de mise à jour de la date
178     $this->select($this->byId("type_mise_a_jour"))->selectOptionByValue(
179     $date["id"]);
180     $this->byId("date")->clear();
181     $this->byId("date")->value($date["date"]);
182     $this->byId("code_barres")->value("1100000000".$idInstr);
183     // On clique sur le bouton "Valider"
184     $this->byName("validation")->click();
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 les informations du dossier sont bien présentes
188     $this->assertEquals("PC 013055 12 00002P0",
189     $this->byId("dossier_libelle")->text());
190     $this->assertEquals($date["date"],
191     $this->byCssSelector("#".$date["id"])->text());
192     // On clique sur le bouton "Valider"
193     $this->byName("validation")->click();
194     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
195     $this->verifyNoErrors();
196     // On vérifie que le message de validation est présent
197     $this->assertEquals("Saisie enregistrée",
198     $this->byCssSelector("span.text")->text());
199    
200     }
201     foreach($dates as $date) {
202     // On vérifie que le titre de la page est correct
203     $this->assertContains("Suivi > Suivi Des Pièces > Mise À Jour Des Dates",
204     $this->byCssSelector("#content")->text());
205     // On saisi les informations de mise à jour de la date
206     $this->select($this->byId("type_mise_a_jour"))->selectOptionByValue(
207     $date["id"]);
208     $this->byId("date")->clear();
209     $this->byId("date")->value($date["date"]);
210     $this->byId("code_barres")->value("1100000000".$idInstr2);
211     // On clique sur le bouton "Valider"
212     $this->byName("validation")->click();
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 les informations du dossier sont bien présentes
216     $this->assertEquals("PC 013055 12 00002P0",
217     $this->byId("dossier_libelle")->text());
218     $this->assertEquals($date["date"],
219     $this->byCssSelector("#".$date["id"])->text());
220     // On clique sur le bouton "Valider"
221     $this->byName("validation")->click();
222     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
223     $this->verifyNoErrors();
224     // On vérifie que le message de validation est présent
225     $this->assertEquals("Saisie enregistrée",
226     $this->byCssSelector("span.text")->text());
227    
228     }
229     // On se déconnecte
230     $this->deconnect();
231    
232     // On se connecte en tant que "instr"
233     $this->login("instr", "instr");
234     // On saisit le numéro de dossier "PC0130551200002P0" dans le champ de
235     // recherche du widget "accès direct" du tableau de bord qui possède le focus
236     $this->byId("dossier")->value("PC0130551200002P0");
237     // On clique sur le bouton "Rechercher" du widget "accès direct" du
238     // tableau de bord
239     $this->byName("validation")->click();
240     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
241     $this->verifyNoErrors();
242     // On vérifie que le titre de la page est correct
243     // (que nous sommes sur le bon dossier)
244     $this->assertContains("Instruction > Dossiers D'instruction > PC 013055 12 00002P0",
245     $this->byCssSelector("#content")->text());
246     // On clique sur l'onglet "Instruction"
247     $this->byId("instruction")->click();
248     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
249     $this->verifyNoErrors();
250     // On clique sur le lien de l'événement d'instruction n°11
251     $this->byLinkText("arrete")->click();
252     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
253     $this->verifyNoErrors();
254     // On vérifie que le sous-titre est correct (que nous sommes sur le bon
255     // événement d'instruction)
256     $this->assertEquals($idInstr,
257     $this->byCssSelector("div.form-content > #instruction")->text());
258     // On boucle sur chaque date pour vérifier que ces dernières sont bien
259     // présentes sur l'écran de visualisation de l'événement d'instruction
260     foreach($dates as $date) {
261     //
262     $this->assertEquals($date["date"],
263     $this->byId($date["id"])->text());
264     }
265     // On clique sur le bouton retour
266     $this->byCssSelector("#sformulaire a.retour")->click();
267     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
268     $this->verifyNoErrors();
269     // On clique sur le lien de l'événement d'instruction n°11
270     $this->byLinkText("retrait apres decision")->click();
271     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
272     $this->verifyNoErrors();
273     // On vérifie que le sous-titre est correct (que nous sommes sur le bon
274     // événement d'instruction)
275     $this->assertEquals($idInstr2,
276     $this->byCssSelector("div.form-content > #instruction")->text());
277     // On boucle sur chaque date pour vérifier que ces dernières sont bien
278     // présentes sur l'écran de visualisation de l'événement d'instruction
279     foreach($dates as $date) {
280     //
281     $this->assertEquals($date["date"],
282     $this->byId($date["id"])->text());
283     }
284     //On clique sur le bouton retour
285     $this->byLinkText("Retour")->click();
286     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
287     $this->verifyNoErrors();
288    
289     }
290    
291     /**
292     * Ce test vise uniquement à vérifier que les écrans correspondant à chaque
293     * entrée de menu ne génère pas une erreur de base de données
294     */
295     // Fonction privé
296     private function ouvertureMenu($utilisateur) {
297     // On se connecte
298     $this->login($utilisateur["login"], $utilisateur["mdp"]);
299     // Ouvre le menu
300     $this->openMenu("Suivi", $utilisateur);
301     // On vérifie le menu "Retours De Consultation"
302     $this->byLinkText("Retours De Consultation")->click();
303 fmichon 4139 $this->assertContains("Suivi > Demandes D'avis > Retours De Consultation",
304 mbroquet 3730 $this->byId("title")->text());
305     $this->verifyNoErrors();
306     // On vérifie le menu "Mise À Jour Des Dates"
307     $this->byLinkText("Mise À Jour Des Dates")->click();
308     $this->assertContains("Suivi > Suivi Des Pièces > Mise À Jour Des Dates",
309     $this->byId("title")->text());
310     $this->verifyNoErrors();
311     // On vérifie le menu "Envoi Lettre RAR"
312     $this->byLinkText("Envoi Lettre RAR")->click();
313     $this->assertContains("Suivi > Suivi Des Pièces > Envoi Lettre RAR",
314     $this->byId("title")->text());
315     $this->verifyNoErrors();
316     // On vérifie le menu "Bordereaux"
317     $this->byLinkText("Bordereaux")->click();
318     $this->assertContains("Suivi > Suivi Des Pièces > Bordereaux",
319     $this->byId("title")->text());
320     $this->verifyNoErrors();
321     // On vérifie le menu "Mise À Jour Des Dates" de la catégorie
322     // "Demandes D'avis"
323     $this->byClassName("demandes_avis_mise_a_jour_des_dates-16")->click();
324 fmichon 4139 $this->assertContains("Suivi > Demandes D'avis > Mise À Jour Des Dates",
325 mbroquet 3730 $this->byId("title")->text());
326     $this->verifyNoErrors();
327     // On vérifie le menu "Gestion"
328     $this->byLinkText("Gestion")->click();
329     $this->assertContains("Suivi > Commissions > Gestion",
330     $this->byId("title")->text());
331     $this->verifyNoErrors();
332     // On vérifie le menu "Demandes"
333     $this->byLinkText("Demandes")->click();
334     $this->assertContains("Suivi > Commissions > Demandes",
335     $this->byId("title")->text());
336     $this->verifyNoErrors();
337     // On se déconnecte
338     $this->deconnect();
339     }
340     }
341    
342     ?>

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26