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

Contents of /trunk/tests/testSuivi.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3590 - (show annotations)
Wed Jul 22 08:06:04 2015 UTC (9 years, 6 months ago) by nmeucci
File size: 35166 byte(s)
Correction et amélioration des tests.

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

Properties

Name Value
svn:keywords Id

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26