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

Annotation of /trunk/tests/testSuivi.php

Parent Directory Parent Directory | Revision Log Revision Log


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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26