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

Annotation of /trunk/tests/testSuivi.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2804 - (hide annotations)
Tue Mar 11 11:12:20 2014 UTC (10 years, 10 months ago) by softime
File size: 28238 byte(s)
Amélioration suyr les états des bordereaux :  Tous les bordereaux se font désormais sur une période, seulement les dossiers du groupe 'ADS' sont affichés, le bordereau d'envoi au contrôle de légalité filtre désormais sur l'autorité compétente 'Commune', le bordereau d'envoi de courriers signature Maire ne filtre plus sur les événements de type 'arrêté', le bordereau d’envoi des avis du Maire au Préfet filtre désormais sur la date d'envoi RAR et sur l'autorité compétente 'Commune pour État'.

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

Properties

Name Value
svn:keywords Id

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26