/[openfoncier]/branches/poc-ui-administration-parametrage/tests/testSuivi.php
ViewVC logotype

Contents of /branches/poc-ui-administration-parametrage/tests/testSuivi.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 4191 - (show annotations)
Wed May 18 09:41:22 2016 UTC (8 years, 8 months ago) by fmichon
File size: 35610 byte(s)
* Rebase

1 <?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("Demandes 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 > Demandes D'avis > 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 > Demandes 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