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

Annotation of /trunk/tests/testSuivi.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3017 - (hide annotations)
Wed May 7 13:44:10 2014 UTC (10 years, 8 months ago) by vpihour
File size: 33459 byte(s)
Correction des bordereaux d'envoi de courriers

1 fmichon 1673 <?php
2     /**
3     *
4     *
5     * @package openfoncier
6     * @version SVN : $Id$
7     */
8    
9     //
10 fmichon 1677 require_once "base.php";
11 fmichon 1673
12     /**
13     *
14     */
15 nhaye 2412 class Suivi extends Base2TestCase {
16 fmichon 1673
17 softime 2605 // 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 fmichon 1673 /**
30     * Ce test vise uniquement à vérifier que les écrans correspondant à chaque
31     * entrée de menu ne génère pas une erreur de base de données
32     */
33 softime 2605 // Fonction privé
34     private function ouvertureMenu($utilisateur) {
35     // On se connecte
36     $this->login($utilisateur["login"], $utilisateur["mdp"]);
37     // Ouvre le menu
38     $this->openMenu("Suivi", $utilisateur);
39     // On vérifie le menu "Retours De Consultation"
40     $this->byLinkText("Retours De Consultation")->click();
41     $this->assertContains("Suivi > Suivi Des Pièces > Retours De Consultation",
42     $this->byId("title")->text());
43     $this->verifyNoErrors();
44     // On vérifie le menu "Mise À Jour Des Dates"
45 nhaye 2412 $this->byLinkText("Mise À Jour Des Dates")->click();
46     $this->assertContains("Suivi > Suivi Des Pièces > Mise À Jour Des Dates",
47 softime 2605 $this->byId("title")->text());
48 fmichon 1719 $this->verifyNoErrors();
49 softime 2605 // On vérifie le menu "Envoi Lettre RAR"
50     $this->byLinkText("Envoi Lettre RAR")->click();
51     $this->assertContains("Suivi > Suivi Des Pièces > Envoi Lettre RAR",
52     $this->byId("title")->text());
53     $this->verifyNoErrors();
54     // On vérifie le menu "Bordereaux"
55     $this->byLinkText("Bordereaux")->click();
56     $this->assertContains("Suivi > Suivi Des Pièces > Bordereaux",
57     $this->byId("title")->text());
58     $this->verifyNoErrors();
59     // On vérifie le menu "Mise À Jour Des Dates" de la catégorie
60     // "Demandes D'avis"
61     $this->byClassName("demandes_avis_mise_a_jour_des_dates-16")->click();
62     $this->assertContains("Suivi > Demande D'avis > Mise À Jour Des Dates",
63     $this->byId("title")->text());
64     $this->verifyNoErrors();
65     // On vérifie le menu "Gestion"
66 nhaye 2412 $this->byLinkText("Gestion")->click();
67     $this->assertContains("Suivi > Commissions > Gestion",
68 softime 2605 $this->byId("title")->text());
69 fmichon 1719 $this->verifyNoErrors();
70 softime 2605 // On vérifie le menu "Demandes"
71 nhaye 2412 $this->byLinkText("Demandes")->click();
72     $this->assertContains("Suivi > Commissions > Demandes",
73 softime 2605 $this->byId("title")->text());
74 fmichon 1719 $this->verifyNoErrors();
75 softime 2605 // On se déconnecte
76     $this->deconnect();
77 fmichon 1673 }
78 softime 2605 // Fonction public
79 softime 2804 public function test_01_ouverture_menu() {
80 softime 2605 // Récupération des utilisateurs
81     $utilisateurs = $this->listUtlisateurs;
82     // Pour chaque utilisateur on lance le test
83     foreach ($utilisateurs as $utilisateur) {
84     //
85     $this->ouvertureMenu($utilisateur);
86     }
87     // On vérifie la déconnexion
88     $this->verifyDeconnect();
89     }
90 nhaye 1695
91     /**
92     * XXX tous les cas d'utilisation ne sont pas testés
93     * Permet de tester la génération de feuillets pour lettre avec accusé de récéption
94     */
95 softime 2605 // Fonction privé
96     private function envoiLettreRAR($utilisateur, $dossier) {
97 nhaye 2412
98 softime 2605 // On se connecte en tant que "admin"
99 nhaye 2412 $this->login("admin", "admin");
100     // On clique sur le menu Instruction
101     $this->byLinkText("Instruction")->click();
102     // On clique sur le menu Recherche
103     $this->byLinkText("Recherche")->click();
104     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
105     $this->verifyNoErrors();
106 nhaye 2413 // On clique sur le dossier PC 013055 12 00002P
107 softime 2605 $this->byLinkText($dossier)->click();
108 nhaye 2412 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
109     $this->verifyNoErrors();
110 nhaye 2413 // liste des instructions
111 nhaye 2412 $this->byId("instruction")->click();
112     // On clique sur le + pour ajouter une instruction
113     $this->byCssSelector("#sousform-instruction .actions-max-1 a")->click();
114 nmeucci 2879 // On choisit un signataire Albert Dupont
115     $this->select($this->byId("signataire_arrete"))->selectOptionByValue("1");
116 nhaye 2412 // On choisi l'événement "adjoint [majoration]"
117     $this->select($this->byId("evenement"))->selectOptionByValue("81");
118     // On clique sur le bouton ajouter
119     $this->byXPath("//input[@value='Ajouter']")->click();
120     // On vérifie que l'instruction s'est bien ajouté
121     $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
122     // On clique sur le bouton retour
123     $this->byCssSelector("#sousform-instruction form a.retour")->click();
124     // On clique sur l'instruction nouvellement créée
125     $this->byLinkText("accepter un dossier sans réserve")->click();
126 nhaye 2417 $idInstr = $this->byCssSelector("div.form-content > #instruction")->text();
127 nhaye 2412 // On finalise le document
128     $this->byCssSelector("#sousform-instruction .portlet-list li:nth-child(4) a")->click();
129     // On vérifie le message de validation
130     $this->assertEquals('La finalisation du document s\'est effectuée avec succès.', $this->byCssSelector("#sousform-instruction .message .text")->text());
131 vpihour 3017
132     //On clique sur le bouton retour
133     $this->byLinkText("Retour")->click();
134     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
135     $this->verifyNoErrors();
136     // On clique sur le + pour ajouter une instruction
137     $this->byCssSelector("#sousform-instruction .actions-max-1 a")->click();
138     // On choisit un signataire Albert Dupont
139     $this->select($this->byId("signataire_arrete"))->selectOptionByValue("1");
140     // On choisi l'événement "adjoint [majoration]"
141     $this->select($this->byId("evenement"))->selectOptionByValue("29");
142     // On clique sur le bouton ajouter
143     $this->byXPath("//input[@value='Ajouter']")->click();
144     // On vérifie que l'instruction s'est bien ajouté
145     $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
146     // On clique sur le bouton retour
147     $this->byCssSelector("#sousform-instruction form a.retour")->click();
148     // On clique sur l'instruction nouvellement créée
149     $this->byLinkText("retrait apres decision")->click();
150     $idInstr2 = $this->byCssSelector("div.form-content > #instruction")->text();
151     // On finalise le document
152     $this->byCssSelector("#sousform-instruction .portlet-list li:nth-child(4) a")->click();
153     // On vérifie le message de validation
154     $this->assertEquals('La finalisation du document s\'est effectuée avec succès.', $this->byCssSelector("#sousform-instruction .message .text")->text());
155 nhaye 2412 //On se déconnecte de l'application
156     $this->deconnect();
157    
158 nhaye 2413 // Vérification du formulaire de génération des RAR
159 softime 2605 // On se connecte
160     $this->login($utilisateur["login"], $utilisateur["mdp"]);
161     // Ouvre le menu
162     $this->openMenu("Suivi", $utilisateur);
163     // On vérifie le menu "Envoi Lettre RAR"
164 nhaye 2412 $this->byLinkText("Envoi Lettre RAR")->click();
165     $this->assertContains("Suivi > Suivi Des Pièces > Envoi Lettre RAR",
166     $this->byCssSelector("#content")->text());
167 fmichon 1719 $this->verifyNoErrors();
168 fmichon 1710
169 nhaye 1695 // Vérification sans valeur saisie
170 nhaye 2412 $this->byXPath("//input[@value='Valider']")->click();
171 fmichon 1721 $this->verifyNoErrors();
172 nhaye 2412 $this->assertEquals("Tous les champs doivent être remplis.",
173     $this->byCssSelector("span.text")->text());
174 fmichon 1710
175     // Vérification avec un numéro non valide
176 nhaye 2412 $this->byId('liste_code_barres_instruction')->value("a");
177     $this->byXPath("//input[@value='Valider']")->click();
178 fmichon 1721 $this->verifyNoErrors();
179 nhaye 2412 $this->assertEquals("Le code barres d'instruction a n'est pas valide.",
180     $this->byCssSelector("span.text")->text());
181 fmichon 1710
182     // Vérification avec un numéro non présent en base
183 nhaye 2412 $this->byId('liste_code_barres_instruction')->clear();
184     $this->byId('liste_code_barres_instruction')->value("123");
185     $this->byXPath("//input[@value='Valider']")->click();
186 fmichon 1721 $this->verifyNoErrors();
187 nhaye 2412 $this->assertEquals("Le numéro 123 ne correspond à aucun code barres d'instruction.",
188     $this->byCssSelector("span.text")->text());
189 fmichon 1710
190 nhaye 1695 // Vérification formulaire valide
191 nhaye 2412 $this->byId('liste_code_barres_instruction')->clear();
192 nhaye 2417 $this->byId('liste_code_barres_instruction')->value("1100000000".$idInstr);
193 nhaye 2412 $this->byXPath("//input[@value='Valider']")->click();
194 fmichon 1719 $this->verifyNoErrors();
195 nhaye 2412 $this->assertContains("Cliquez sur le lien ci-dessous pour télécharger votre document :",
196     $this->byCssSelector("span.text")->text());
197     $this->assertContains("Télécharger le document pour 1 RAR",
198     $this->byCssSelector("span.text")->text());
199 nhaye 1695 //
200 vpihour 3017 $this->byId('liste_code_barres_instruction')->clear();
201     $this->byId('liste_code_barres_instruction')->value("1100000000".$idInstr2);
202     $this->byXPath("//input[@value='Valider']")->click();
203     $this->verifyNoErrors();
204     $this->assertContains("Cliquez sur le lien ci-dessous pour télécharger votre document :",
205     $this->byCssSelector("span.text")->text());
206     $this->assertContains("Télécharger le document pour 1 RAR",
207     $this->byCssSelector("span.text")->text());
208    
209 softime 2605 $this->deconnect();
210 nhaye 1695 }
211 softime 2605 // Fonction public
212 softime 2804 public function test_02_envoi_lettreRAR() {
213 softime 2605 // Récupération des utilisateurs
214     $utilisateurs = $this->listUtlisateurs;
215     // Liste des dossiers par utilisateur
216     $dossiers = array(
217     "suivi" => "PC 013055 12 00001P0",
218     "adminfonct" => "PC 013055 12 00002P0"
219     );
220     // Pour chaque utilisateur on lance le test
221     foreach ($utilisateurs as $utilisateur) {
222     //
223     $this->envoiLettreRAR($utilisateur, $dossiers[$utilisateur['login']]);
224     }
225     // On vérifie la déconnexion
226     $this->verifyDeconnect();
227     }
228 nhaye 2412
229 softime 2804 public function test_03_mise_a_jour_des_dates_simple_par_la_cellule_suivi() {
230 nhaye 2417 // On se connecte en tant que "instr"
231     $this->login("admin", "admin");
232     // On clique sur le menu Instruction
233     $this->byLinkText("Instruction")->click();
234     // On clique sur le menu Recherche
235     $this->byLinkText("Recherche")->click();
236     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
237     $this->verifyNoErrors();
238     // On clique sur le dossier PC 013055 12 00002P
239     $this->byLinkText("PC 013055 12 00002P0")->click();
240     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
241     $this->verifyNoErrors();
242     // liste des instructions
243     $this->byId("instruction")->click();
244     // On clique sur l'instruction nouvellement créée
245     $this->byLinkText("accepter un dossier sans réserve")->click();
246     $idInstr = $this->byCssSelector("div.form-content > #instruction")->text();
247 vpihour 3017
248     //On clique sur le bouton retour
249     $this->byLinkText("Retour")->click();
250     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
251     $this->verifyNoErrors();
252     // On clique sur l'instruction nouvellement créée
253     $this->byLinkText("retrait apres decision")->click();
254     $idInstr2 = $this->byCssSelector("div.form-content > #instruction")->text();
255 nhaye 2417 $this->deconnect();
256    
257 fmichon 1817 // On se connecte en tant que "suivi"
258     $this->login("suivi", "suivi");
259     // On clique sur le lien "Mise à jour des dates" dans le menu
260 nhaye 2412 $this->byLinkText("Mise À Jour Des Dates")->click();
261 fmichon 1817 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
262     $this->verifyNoErrors();
263     //
264     $dates = array(
265     0 => array(
266     "id" => "date_envoi_signature",
267     "label" => "date d'envoi pour signature Mairie/Préfet",
268 nmeucci 2928 "date" => date("d/m/Y", strtotime("- 6 day")),
269 fmichon 1817 ),
270     1 => array(
271     "id" => "date_retour_signature",
272     "label" => "date de retour de signature Mairie/Préfet",
273 nmeucci 2928 "date" => date("d/m/Y", strtotime("- 4 day")),
274 fmichon 1817 ),
275 fmichon 1818 2 => array(
276     "id" => "date_envoi_controle_legalite",
277     "label" => "date d'envoi au contrôle de légalite",
278 nmeucci 2928 "date" => date("d/m/Y", strtotime("- 4 day")),
279 fmichon 1818 ),
280     3 => array(
281     "id" => "date_retour_controle_legalite",
282     "label" => "date de retour de controle de légalite",
283 nmeucci 2928 "date" => date("d/m/Y"),
284 fmichon 1818 ),
285 fmichon 1817 );
286     foreach($dates as $date) {
287     // On vérifie que le titre de la page est correct
288 nhaye 2412 $this->assertContains("Suivi > Suivi Des Pièces > Mise À Jour Des Dates",
289     $this->byCssSelector("#content")->text());
290 fmichon 1817 // On saisi les informations de mise à jour de la date
291 nhaye 2412 $this->select($this->byId("type_mise_a_jour"))->selectOptionByValue(
292     $date["id"]);
293     $this->byId("date")->clear();
294     $this->byId("date")->value($date["date"]);
295 nhaye 2417 $this->byId("code_barres")->value("1100000000".$idInstr);
296 fmichon 1817 // On clique sur le bouton "Valider"
297 nhaye 2412 $this->byName("validation")->click();
298 fmichon 1817 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
299     $this->verifyNoErrors();
300     // On vérifie que le les informations du dossier sont bien présentes
301 nhaye 2412 $this->assertEquals("PC 013055 12 00002P0",
302     $this->byId("dossier_libelle")->text());
303     $this->assertEquals($date["date"],
304     $this->byCssSelector("#".$date["id"])->text());
305 fmichon 1817 // On clique sur le bouton "Valider"
306 nhaye 2412 $this->byName("validation")->click();
307 fmichon 1817 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
308     $this->verifyNoErrors();
309     // On vérifie que le message de validation est présent
310 nhaye 2412 $this->assertEquals("Saisie enregistrée",
311     $this->byCssSelector("span.text")->text());
312    
313 fmichon 1817 }
314 vpihour 3017 foreach($dates as $date) {
315     // On vérifie que le titre de la page est correct
316     $this->assertContains("Suivi > Suivi Des Pièces > Mise À Jour Des Dates",
317     $this->byCssSelector("#content")->text());
318     // On saisi les informations de mise à jour de la date
319     $this->select($this->byId("type_mise_a_jour"))->selectOptionByValue(
320     $date["id"]);
321     $this->byId("date")->clear();
322     $this->byId("date")->value($date["date"]);
323     $this->byId("code_barres")->value("1100000000".$idInstr2);
324     // On clique sur le bouton "Valider"
325     $this->byName("validation")->click();
326     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
327     $this->verifyNoErrors();
328     // On vérifie que le les informations du dossier sont bien présentes
329     $this->assertEquals("PC 013055 12 00002P0",
330     $this->byId("dossier_libelle")->text());
331     $this->assertEquals($date["date"],
332     $this->byCssSelector("#".$date["id"])->text());
333     // On clique sur le bouton "Valider"
334     $this->byName("validation")->click();
335     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
336     $this->verifyNoErrors();
337     // On vérifie que le message de validation est présent
338     $this->assertEquals("Saisie enregistrée",
339     $this->byCssSelector("span.text")->text());
340    
341     }
342 fmichon 1817 // On se déconnecte
343 nhaye 2412 $this->deconnect();
344 fmichon 1817
345     // On se connecte en tant que "instr"
346     $this->login("instr", "instr");
347 nhaye 2412 // On saisit le numéro de dossier "PC0130551200002P0" dans le champ de
348     // recherche du widget "accès direct" du tableau de bord qui possède le focus
349     $this->byId("dossier")->value("PC0130551200002P0");
350     // On clique sur le bouton "Rechercher" du widget "accès direct" du
351     // tableau de bord
352     $this->byName("validation")->click();
353 fmichon 1817 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
354     $this->verifyNoErrors();
355 nhaye 2412 // On vérifie que le titre de la page est correct
356     // (que nous sommes sur le bon dossier)
357     $this->assertContains("Instruction > Dossiers D'instruction > PC 013055 12 00002P0",
358     $this->byCssSelector("#content")->text());
359 fmichon 1817 // On clique sur l'onglet "Instruction"
360 nhaye 2412 $this->byId("instruction")->click();
361 fmichon 1817 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
362     $this->verifyNoErrors();
363 fmichon 2209 // On clique sur le lien de l'événement d'instruction n°11
364 nhaye 2412 $this->byLinkText("arrete")->click();
365 fmichon 1817 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
366     $this->verifyNoErrors();
367 nhaye 2412 // On vérifie que le sous-titre est correct (que nous sommes sur le bon
368     // événement d'instruction)
369 nhaye 2417 $this->assertEquals($idInstr,
370 nhaye 2412 $this->byCssSelector("div.form-content > #instruction")->text());
371     // On boucle sur chaque date pour vérifier que ces dernières sont bien
372     // présentes sur l'écran de visualisation de l'événement d'instruction
373 fmichon 1818 foreach($dates as $date) {
374     //
375 nhaye 2412 $this->assertEquals($date["date"],
376     $this->byId($date["id"])->text());
377 fmichon 1818 }
378 fmichon 1817 // On clique sur le bouton retour
379 nhaye 2412 $this->byCssSelector("#sformulaire > a.retour")->click();
380 fmichon 1817 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
381     $this->verifyNoErrors();
382 vpihour 3017 // On clique sur le lien de l'événement d'instruction n°11
383     $this->byLinkText("retrait apres decision")->click();
384     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
385     $this->verifyNoErrors();
386     // On vérifie que le sous-titre est correct (que nous sommes sur le bon
387     // événement d'instruction)
388     $this->assertEquals($idInstr2,
389     $this->byCssSelector("div.form-content > #instruction")->text());
390     // On boucle sur chaque date pour vérifier que ces dernières sont bien
391     // présentes sur l'écran de visualisation de l'événement d'instruction
392     foreach($dates as $date) {
393     //
394     $this->assertEquals($date["date"],
395     $this->byId($date["id"])->text());
396     }
397     //On clique sur le bouton retour
398     $this->byLinkText("Retour")->click();
399     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
400     $this->verifyNoErrors();
401    
402 vpihour 2603 //{{{On rajoute une consultation avec demande d'avis
403     //On clique sur le menu "Recherche"
404     $this->byLinkText("Recherche")->click();
405     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
406     $this->verifyNoErrors();
407     //On choisit le dossier AT 013055 13 00001P0
408     $this->byLinkText("AT 013055 12 00001P0")->click();
409     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
410     $this->verifyNoErrors();
411     //On clique sur l'onglet Consultation
412     $this->byId("consultation")->click();
413     //L'assertion précédente est un chargement javascript, on attend 2 secondes
414     sleep(2);
415     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
416     $this->verifyNoErrors();
417     //On ajoute deux consultation de test
418     $consultationPourConformite = $this->addConsultation(2, "Atelier du Patrimoine");
419     $consultationAvecAvisAttendu = $this->addConsultation(13, "Régie des Tranports de Marseille - DTP/CIP");
420    
421     //On se déconnecte
422     $this->deconnect();
423     //}}}
424    
425     // On se connecte à l'application
426     $this->login("suivi", "suivi");
427     //On clique sur le menu "Mise à jour des dates" de la catégorie "Demandes d'avis"
428     $this->byClassName("demandes_avis_mise_a_jour_des_dates-16")->click();
429     //On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
430     $this->verifyNoErrors();
431     //On vérifie qu'on est dans le bon menu
432     $this->assertContains("Demande D'avis", $this->byCssSelector("#title h2")->text());
433     //On saisit un code barres et on ne saisit pas la date
434     $this->byId("code_barres")->value("123456789123");
435     //On valide
436     $this->byXPath("//input[@type='submit']")->click();sleep(1);
437     //On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
438     $this->verifyNoErrors();
439     //On vérifie le message
440     $this->assertContains("Tous les champs doivent être remplis.",
441     $this->byCssSelector(".message .text")->text());
442     //On saisit la date
443     $this->byId("date")->value(date("d/m/Y",strtotime("+1 day")));
444     //On saisit une consultation qui n'existe pas
445     $this->byId("code_barres")->clear();
446     $this->byId("code_barres")->value("123456789123");
447     //On valide
448     $this->byXPath("//input[@type='submit']")->click();sleep(1);
449     //On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
450     $this->verifyNoErrors();
451     //On vérifie le message
452     $this->assertContains("Le numéro saisi ne correspond à aucun code barres de consultation.",
453     $this->byCssSelector(".message .text")->text());
454     //On saisit une consultation qui n'est pas une demande d'avis
455     $this->byId("code_barres")->clear();
456     $this->byId("code_barres")->value("12".str_pad($consultationPourConformite, 10, "0", STR_PAD_LEFT));
457     //On valide
458     $this->byXPath("//input[@type='submit']")->click();sleep(1);
459     //On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
460     $this->verifyNoErrors();
461     //On vérifie le message
462     $this->assertContains("Cette consultation n'a pas d'avis attendu.",
463     $this->byCssSelector(".message .text")->text());
464     //On saisit une consultation qui a une demande d'avis
465     $this->byId("code_barres")->clear();
466     $this->byId("code_barres")->value("12".str_pad($consultationAvecAvisAttendu, 10, "0", STR_PAD_LEFT));
467     //On valide
468     $this->byXPath("//input[@type='submit']")->click();sleep(1);
469     //On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
470     $this->verifyNoErrors();
471     //On vérifie qu'on est sur la consultation
472     $this->assertEquals(trim($this->byId("dossier_libelle")->text()), "AT 013055 12 00001P0");
473     $this->assertEquals($this->byId("code_barres")->value(), "12".str_pad($consultationAvecAvisAttendu, 10, "0", STR_PAD_LEFT));
474     //On valide la mise à jour de la date
475     $this->byXPath("//input[@type='submit']")->click();sleep(1);
476     //On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
477     $this->verifyNoErrors();
478     //On vérifie que la saisie s'est correctement enregistrée
479     $this->assertContains("Saisie enregistrée", $this->byCssSelector(".message .text")->text());
480     //On se déconnecte
481     $this->deconnect();
482     // On se connecte en tant que "instr"
483     $this->login("instr", "instr");
484     //On clique sur le menu "Recherche"
485     $this->byLinkText("Recherche")->click();
486     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
487     $this->verifyNoErrors();
488     //On choisit le dossier AT 013055 13 00001P0
489     $this->byLinkText("AT 013055 12 00001P0")->click();
490     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
491     $this->verifyNoErrors();
492     //On clique sur l'onglet Consultation
493     $this->byId("consultation")->click();
494     //L'assertion précédente est un chargement javascript, on attend 2 secondes
495     sleep(2);
496     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
497     $this->verifyNoErrors();
498     //On clique sur la consultation
499     $this->byLinkText($consultationAvecAvisAttendu)->click();
500     //On vérifie que la date s'est bien mise à jour
501     $this->assertEquals(date("d/m/Y",strtotime("+1 day")), $this->byId("date_reception")->text());
502 fmichon 1817 // On se déconnecte
503     $this->logout();
504     }
505 vpihour 2603
506     /**
507     * Ajoute une consultation
508     * @param $serviceId L'identifiant du service à consulter
509     * @param $serviceLibelle Le libellé du service à consulter
510     * @return L'identifiant de la consultation ajoutée
511     */
512     public function addConsultation($service, $serviceLibelle){
513    
514     // On clique sur le lien "+" dans le tableau
515     $this->byClassName("add-16")->click();
516     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
517     $this->verifyNoErrors();
518     //On choisit un service dont le type d'avis est "avec avis attendu" (13)
519     $this->select($this->byId("service"))->selectOptionByValue($service);
520     // On clique sur le bouton "Ajouter" du formulaire sans sélectionner de service
521     $this->byXPath("//input[@value='Ajouter']")->click();sleep(1);
522     //On vérifie que la consultation s'est bien ajoutée
523     $this->assertContains('Vos modifications ont bien été enregistrées.', $this->byCssSelector("#sousform-consultation .message .text")->text());
524     //On clique sur retour
525     $this->byCssSelector("#sousform-consultation .retour")->click();
526     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
527     $this->verifyNoErrors();
528     //On clique sur la nouvelle consultation
529     $this->byLinkText($serviceLibelle)->click();
530     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
531     $this->verifyNoErrors();
532     //On récupère le numéro de la consultation
533     $consultation = trim($this->byCssSelector("#sousform-consultation #consultation")->text());
534     //On clique sur retour
535     $this->byCssSelector("#sousform-consultation .retour")->click();
536     //On retourne le numéro de la consultation
537     return $consultation;
538 softime 2804 }
539    
540     /**
541     * Teste les bordereaux d'envoi
542     */
543     public function test_04_bordereaux() {
544    
545     // On change l'autorité compétente du dossier pour que le test
546     // fonctionne
547     // On se connecte en tant que "instr"
548     $this->login("instr", "instr");
549     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
550     $this->verifyNoErrors();
551     // On clique sur le lien "Mes encours" dans le menu
552     $this->byLinkText("Recherche")->click();
553     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
554     $this->verifyNoErrors();
555     sleep(1);
556     // On recherche le dossier crée
557     $this->byId("dossier")->value("PC0130551200001P0");
558     // On clique sur le bouton recherche
559     $this->byId("adv-search-submit")->click();
560     // On clique sur le résultat
561     $this->byLinkText("PC 013055 12 00001P0")->click();
562     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
563     $this->verifyNoErrors();
564     // On clique sur l'onglet "Instruction"
565     $this->byId("instruction")->click();
566     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
567     $this->verifyNoErrors();
568     // On clique sur le lien d'ajout dans le tableau
569     $this->byCssSelector(".actions-max-1 a")->click();
570     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
571     $this->verifyNoErrors();
572     //On choisi l'événement "Changer l'autorité compétente 'commune état' [autorite]"
573     $this->select($this->byId("evenement"))->selectOptionByValue("94");
574     //On valide le formulaire
575     $this->byXPath("//input[@value='Ajouter']")->click();
576     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
577     $this->verifyNoErrors();
578     sleep(1);
579     // On vérifie le message de validation
580     $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
581     // On se déconnecte
582     $this->deconnect();
583    
584     // On se connecte en tant que "suivi"
585     $this->login("suivi", "suivi");
586     // On clique sur le menu "Bordereaux"
587     $this->byLinkText("Bordereaux")->click();
588     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
589     $this->verifyNoErrors();
590     // On vérifie le fil d'Ariane
591     $this->assertContains("Suivi > Suivi Des Pièces > Bordereaux",
592     $this->byCssSelector("#content")->text());
593     // On clique sur le bouton valider
594     $this->byXPath("//input[@value='Valider']")->click();
595     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
596     $this->verifyNoErrors();
597     // On vérifie qu'il y a un message d'erreur
598     $this->assertEquals("Veuillez sélectionner un bordereau.",
599     $this->byCssSelector("span.text")->text());
600     // On sélectionne le bordereau "bordereau_avis_maire_prefet"
601     $this->select($this->byId("bordereau"))->selectOptionByValue(
602     "bordereau_avis_maire_prefet");
603     // On supprime la date de début
604     $this->byId("date_bordereau_debut")->clear();
605     // On clique sur "OK" dans la boite de dialogue qui apparaît
606     $this->acceptAlert();
607     sleep(1);
608     // On supprime la date de fin
609     $this->byId("date_bordereau_fin")->clear();
610     // On clique sur "OK" dans la boite de dialogue qui apparaît
611     $this->acceptAlert();
612     sleep(1);
613     // On clique sur le bouton valider
614     $this->byXPath("//input[@value='Valider']")->click();
615     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
616     $this->verifyNoErrors();
617     // On vérifie le message d'erreur
618     $this->assertEquals("Veuillez saisir une date valide.",
619     $this->byCssSelector("span.text")->text());
620     // Tableau valeurs => libelle des bordereaux
621     $bordereaux = array(
622     "bordereau_avis_maire_prefet" => "Bordereau d'envoi des avis du Maire au Préfet",
623     "bordereau_controle_legalite" => "Bordereau d'envoi des contrôles de légalité",
624     "bordereau_courriers_signature_maire" => "Bordereau d'envoi de courriers signature Maire",
625     "bordereau_decisions" => "Bordereau d'envoi des décisions",
626     );
627     // Pour chaque bordereaux
628     foreach ($bordereaux as $key => $bordereau) {
629     // Le dossier à tester
630     $dossier = "PC 013055 12 00002P0";
631     // Initialise les dates de début et de fin
632     $date_debut = date("d/m/Y", strtotime("- 1 year"));
633     $date_fin = date("d/m/Y", strtotime("+ 1 year"));
634     // Si le "Bordereau d'envoi des avis du Maire au Préfet" est testé
635     if ($key == "bordereau_avis_maire_prefet") {
636     // On teste sur le dossier "PC 013055 12 00001P0"
637     $dossier = "PC 013055 12 00001P0";
638     }
639     // On remplis les dates de début et de fin
640     $this->byId("date_bordereau_debut")->value($date_debut);
641     $this->byId("date_bordereau_fin")->value($date_fin);
642     // On sélectionne le bordereau
643     $this->select($this->byId("bordereau"))->selectOptionByValue(
644     $key);
645     // On valide le formulaire
646     $this->byXPath("//input[@value='Valider']")->click();
647     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
648     $this->verifyNoErrors();
649     // On vérifie le message de validation
650     $this->assertContains(
651     "Cliquez sur le lien ci-dessous pour télécharger votre bordereau :\n\n".$bordereau." du ".$date_debut." au ".$date_fin,
652     $this->byCssSelector("span.text")->text());
653     //
654     $this->byLinkText($bordereau." du ".$date_debut." au ".$date_fin)->click();
655     sleep(5);
656     // Liste les fenêtres
657     $windows = $this->windowHandles();
658     // Change la fenêtre
659     $this->window($windows[1]);
660     // On vérifie qu'il n'y ait pas d'erreur
661     $this->verifynoerrors();
662     // On vérifie que le texte est présent
663     $this->assertContains("Edition du ".date("d/m/Y"), $this->source());
664     $this->assertContains("Résultat du ".$date_debut." au ".$date_fin,
665     $this->source());
666     $this->assertContains($dossier, $this->source());
667     // On ferme la fenêtre
668     $this->closeWindow();
669     // On change le focus de la fenêtre
670     $this->window($windows[0]);
671     }
672    
673     //
674     $this->logout();
675     }
676 fmichon 1673 }
677    
678     ?>

Properties

Name Value
svn:keywords Id

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26