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

Contents of /trunk/tests/testSuivi.php

Parent Directory Parent Directory | Revision Log Revision Log


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

Properties

Name Value
svn:keywords Id

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26