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

Annotation of /trunk/tests/testSuivi.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3325 - (hide annotations)
Wed Mar 4 13:38:04 2015 UTC (9 years, 11 months ago) by vpihour
File size: 35130 byte(s)
Correction des tests

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 vpihour 3145 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 vpihour 3145 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 vpihour 3145 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 vpihour 3135 $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 vpihour 3156 $this->assertEquals($this->byId("code_barres")->attribute('value'), "12".str_pad($consultationAvecAvisAttendu, 10, "0", STR_PAD_LEFT));
474 vpihour 2603 //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 vpihour 3213 //On ajoute le paramétrage nécessaire
546 vpihour 3143 // On se connecte en tant que "admin"
547     $this->login("admin", "admin");
548     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
549     $this->verifyNoErrors();
550     // On clique sur le lien "Administration" dans le menu
551     $this->byLinkText("Administration")->click();
552     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
553     $this->verifyNoErrors();
554     // // On clique sur le lien "Paramètre" dans le menu
555     $this->byLinkText("Paramètre")->click();
556     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
557     $this->verifyNoErrors();
558     // On remplis le champs de recherche simple
559     $this->byCssSelector("input[name='recherche']")->value('id_evenement_bordereau_avis_maire_prefet');
560     // On clique sur le bouton recherche
561     $this->byCssSelector(".ui-button")->click();
562     // On clique sur le résultat
563     $this->byLinkText("id_evenement_bordereau_avis_maire_prefet")->click();
564     // On clique sur le bouton "Modifier"
565     $this->byId('action-form-om_parametre-modifier')->click();
566     // On change la valeur par "sig_externe"
567     $this->byId('valeur')->clear();
568 vpihour 3213 $this->byId('valeur')->value('81');
569 vpihour 3143 // On valide la modification
570     $this->byCssSelector("input[value='Modifier']")->click();
571     // On vérifie le message de validation
572     $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#tabs-1 .message")->text());
573     // On clique sur le bouton 'Retour'
574     $this->byLinkText("Retour")->click();
575     // On vérifie les nouvelles données
576 vpihour 3214 $this->assertEquals("81", $this->byId("valeur")->text());
577 vpihour 3143 // On se déconnecte
578     $this->deconnect();
579    
580 softime 2804 // On change l'autorité compétente du dossier pour que le test
581     // fonctionne
582     // On se connecte en tant que "instr"
583     $this->login("instr", "instr");
584     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
585     $this->verifyNoErrors();
586     // On clique sur le lien "Mes encours" dans le menu
587     $this->byLinkText("Recherche")->click();
588     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
589     $this->verifyNoErrors();
590     sleep(1);
591     // On recherche le dossier crée
592     $this->byId("dossier")->value("PC0130551200001P0");
593     // On clique sur le bouton recherche
594     $this->byId("adv-search-submit")->click();
595     // On clique sur le résultat
596     $this->byLinkText("PC 013055 12 00001P0")->click();
597     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
598     $this->verifyNoErrors();
599     // On clique sur l'onglet "Instruction"
600     $this->byId("instruction")->click();
601     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
602     $this->verifyNoErrors();
603     // On clique sur le lien d'ajout dans le tableau
604     $this->byCssSelector(".actions-max-1 a")->click();
605     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
606     $this->verifyNoErrors();
607     //On choisi l'événement "Changer l'autorité compétente 'commune état' [autorite]"
608     $this->select($this->byId("evenement"))->selectOptionByValue("94");
609     //On valide le formulaire
610     $this->byXPath("//input[@value='Ajouter']")->click();
611     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
612     $this->verifyNoErrors();
613     sleep(1);
614     // On vérifie le message de validation
615     $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
616     // On se déconnecte
617     $this->deconnect();
618    
619     // On se connecte en tant que "suivi"
620     $this->login("suivi", "suivi");
621     // On clique sur le menu "Bordereaux"
622     $this->byLinkText("Bordereaux")->click();
623     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
624     $this->verifyNoErrors();
625     // On vérifie le fil d'Ariane
626     $this->assertContains("Suivi > Suivi Des Pièces > Bordereaux",
627     $this->byCssSelector("#content")->text());
628     // On clique sur le bouton valider
629     $this->byXPath("//input[@value='Valider']")->click();
630     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
631     $this->verifyNoErrors();
632     // On vérifie qu'il y a un message d'erreur
633     $this->assertEquals("Veuillez sélectionner un bordereau.",
634     $this->byCssSelector("span.text")->text());
635     // On sélectionne le bordereau "bordereau_avis_maire_prefet"
636     $this->select($this->byId("bordereau"))->selectOptionByValue(
637     "bordereau_avis_maire_prefet");
638     // On supprime la date de début
639     $this->byId("date_bordereau_debut")->clear();
640     sleep(1);
641     // On supprime la date de fin
642     $this->byId("date_bordereau_fin")->clear();
643     sleep(1);
644     // On clique sur le bouton valider
645     $this->byXPath("//input[@value='Valider']")->click();
646     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
647     $this->verifyNoErrors();
648     // On vérifie le message d'erreur
649     $this->assertEquals("Veuillez saisir une date valide.",
650     $this->byCssSelector("span.text")->text());
651     // Tableau valeurs => libelle des bordereaux
652     $bordereaux = array(
653     "bordereau_avis_maire_prefet" => "Bordereau d'envoi des avis du Maire au Préfet",
654     "bordereau_controle_legalite" => "Bordereau d'envoi des contrôles de légalité",
655     "bordereau_courriers_signature_maire" => "Bordereau d'envoi de courriers signature Maire",
656     "bordereau_decisions" => "Bordereau d'envoi des décisions",
657     );
658     // Pour chaque bordereaux
659     foreach ($bordereaux as $key => $bordereau) {
660     // Le dossier à tester
661     $dossier = "PC 013055 12 00002P0";
662     // Initialise les dates de début et de fin
663     $date_debut = date("d/m/Y", strtotime("- 1 year"));
664     $date_fin = date("d/m/Y", strtotime("+ 1 year"));
665     // Si le "Bordereau d'envoi des avis du Maire au Préfet" est testé
666     if ($key == "bordereau_avis_maire_prefet") {
667     // On teste sur le dossier "PC 013055 12 00001P0"
668     $dossier = "PC 013055 12 00001P0";
669     }
670     // On remplis les dates de début et de fin
671     $this->byId("date_bordereau_debut")->value($date_debut);
672     $this->byId("date_bordereau_fin")->value($date_fin);
673     // On sélectionne le bordereau
674     $this->select($this->byId("bordereau"))->selectOptionByValue(
675     $key);
676     // On valide le formulaire
677     $this->byXPath("//input[@value='Valider']")->click();
678     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
679     $this->verifyNoErrors();
680     // On vérifie le message de validation
681     $this->assertContains(
682     "Cliquez sur le lien ci-dessous pour télécharger votre bordereau :\n\n".$bordereau." du ".$date_debut." au ".$date_fin,
683     $this->byCssSelector("span.text")->text());
684     //
685     $this->byLinkText($bordereau." du ".$date_debut." au ".$date_fin)->click();
686     sleep(5);
687     // Liste les fenêtres
688     $windows = $this->windowHandles();
689     // Change la fenêtre
690     $this->window($windows[1]);
691     // On vérifie qu'il n'y ait pas d'erreur
692     $this->verifynoerrors();
693     // On vérifie que le texte est présent
694     $this->assertContains("Edition du ".date("d/m/Y"), $this->source());
695     $this->assertContains("Résultat du ".$date_debut." au ".$date_fin,
696     $this->source());
697     $this->assertContains($dossier, $this->source());
698     // On ferme la fenêtre
699     $this->closeWindow();
700     // On change le focus de la fenêtre
701     $this->window($windows[0]);
702     }
703    
704     //
705     $this->logout();
706     }
707 fmichon 1673 }
708    
709     ?>

Properties

Name Value
svn:keywords Id

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26