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

Contents of /trunk/tests/testSuivi.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 4237 - (show annotations)
Fri May 20 09:41:07 2016 UTC (8 years, 8 months ago) by fmichon
File size: 16180 byte(s)
* Déplacement de scripts du répertoire app/ vers des vues de la classe métier concernée. Les écrans sont : 'Suivi > Demandes D'avis > *'.

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 public function test_02_mise_a_jour_des_dates_simple_par_la_cellule_suivi() {
56 // On se connecte en tant que "admin"
57 $this->login("admin", "admin");
58 // On clique sur le menu Instruction
59 $this->byLinkText("Instruction")->click();
60 // On clique sur le menu Recherche
61 $this->byLinkText("Recherche")->click();
62 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
63 $this->verifyNoErrors();
64 // On clique sur le dossier PC 013055 12 00002P
65 $this->byLinkText("PC 013055 12 00002P0")->click();
66 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
67 $this->verifyNoErrors();
68 // liste des instructions
69 $this->byId("instruction")->click();
70 // On clique sur le + pour ajouter une instruction
71 $this->byCssSelector("#sousform-instruction .actions-max-1 a")->click();
72 // On choisit un signataire Albert Dupont
73 $this->select($this->byId("signataire_arrete"))->selectOptionByValue("1");
74 // On choisi l'événement "adjoint [majoration]"
75 $this->select($this->byId("evenement"))->selectOptionByValue("81");
76 // On clique sur le bouton ajouter
77 $this->byXPath("//input[@value='Ajouter']")->click();
78 // On vérifie que l'instruction s'est bien ajouté
79 $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
80 // On clique sur le bouton retour
81 $this->byCssSelector("#sousform-instruction form a.retour")->click();
82 // On clique sur l'instruction nouvellement créée
83 $this->byLinkText("accepter un dossier sans réserve")->click();
84 $idInstr = $this->byCssSelector("div.form-content > #instruction")->text();
85 // On finalise le document
86 $this->byCssSelector("#sousform-instruction .portlet-list li:nth-child(4) a")->click();
87 // On vérifie le message de validation
88 $this->assertEquals('La finalisation du document s\'est effectuée avec succès.', $this->byCssSelector("#sousform-instruction .message .text")->text());
89 sleep(1);
90 //On clique sur le bouton retour
91 $this->byLinkText("Retour")->click();
92 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
93 $this->verifyNoErrors();
94 // On clique sur le + pour ajouter une instruction
95 $this->byCssSelector("#sousform-instruction .actions-max-1 a")->click();
96 // On choisit un signataire Albert Dupont
97 $this->select($this->byId("signataire_arrete"))->selectOptionByValue("1");
98 // On choisi l'événement "adjoint [majoration]"
99 $this->select($this->byId("evenement"))->selectOptionByValue("29");
100 // On clique sur le bouton ajouter
101 $this->byXPath("//input[@value='Ajouter']")->click();
102 // On vérifie que l'instruction s'est bien ajouté
103 $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
104 // On clique sur le bouton retour
105 $this->byCssSelector("#sousform-instruction form a.retour")->click();
106 // On clique sur l'instruction nouvellement créée
107 $this->byLinkText("retrait apres decision")->click();
108 $idInstr2 = $this->byCssSelector("div.form-content > #instruction")->text();
109 // On finalise le document
110 $this->byCssSelector("#sousform-instruction .portlet-list li:nth-child(4) a")->click();
111 // On vérifie le message de validation
112 $this->assertEquals('La finalisation du document s\'est effectuée avec succès.', $this->byCssSelector("#sousform-instruction .message .text")->text());
113 //On se déconnecte de l'application
114 $this->deconnect();
115
116 // On se connecte en tant qu'admin
117 $this->login("admin", "admin");
118 // On clique sur le menu Instruction
119 $this->byLinkText("Instruction")->click();
120 // On clique sur le menu Recherche
121 $this->byLinkText("Recherche")->click();
122 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
123 $this->verifyNoErrors();
124 // On clique sur le dossier PC 013055 12 00002P
125 $this->byLinkText("PC 013055 12 00002P0")->click();
126 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
127 $this->verifyNoErrors();
128 // liste des instructions
129 $this->byId("instruction")->click();
130 // On clique sur l'instruction nouvellement créée
131 $this->byLinkText("accepter un dossier sans réserve")->click();
132 $idInstr = $this->byCssSelector("div.form-content > #instruction")->text();
133
134 //On clique sur le bouton retour
135 $this->byLinkText("Retour")->click();
136 sleep(1);
137 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
138 $this->verifyNoErrors();
139 // On clique sur l'instruction nouvellement créée
140 $this->byLinkText("retrait apres decision")->click();
141 $idInstr2 = $this->byCssSelector("div.form-content > #instruction")->text();
142 $this->deconnect();
143
144 // On se connecte en tant que "suivi"
145 $this->login("suivi", "suivi");
146 // On clique sur le lien "Mise à jour des dates" dans le menu
147 $this->byLinkText("Mise À Jour Des Dates")->click();
148 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
149 $this->verifyNoErrors();
150 //
151 $dates = array(
152 0 => array(
153 "id" => "date_envoi_signature",
154 "label" => "date d'envoi pour signature Mairie/Préfet",
155 "date" => date("d/m/Y", strtotime("- 6 day")),
156 ),
157 1 => array(
158 "id" => "date_retour_signature",
159 "label" => "date de retour de signature Mairie/Préfet",
160 "date" => date("d/m/Y", strtotime("- 4 day")),
161 ),
162 2 => array(
163 "id" => "date_envoi_controle_legalite",
164 "label" => "date d'envoi au contrôle de légalite",
165 "date" => date("d/m/Y", strtotime("- 4 day")),
166 ),
167 3 => array(
168 "id" => "date_retour_controle_legalite",
169 "label" => "date de retour de controle de légalite",
170 "date" => date("d/m/Y"),
171 ),
172 );
173 foreach($dates as $date) {
174 // On vérifie que le titre de la page est correct
175 $this->assertContains("Suivi > Suivi Des Pièces > Mise À Jour Des Dates",
176 $this->byCssSelector("#content")->text());
177 // On saisi les informations de mise à jour de la date
178 $this->select($this->byId("type_mise_a_jour"))->selectOptionByValue(
179 $date["id"]);
180 $this->byId("date")->clear();
181 $this->byId("date")->value($date["date"]);
182 $this->byId("code_barres")->value("1100000000".$idInstr);
183 // On clique sur le bouton "Valider"
184 $this->byName("validation")->click();
185 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
186 $this->verifyNoErrors();
187 // On vérifie que le les informations du dossier sont bien présentes
188 $this->assertEquals("PC 013055 12 00002P0",
189 $this->byId("dossier_libelle")->text());
190 $this->assertEquals($date["date"],
191 $this->byCssSelector("#".$date["id"])->text());
192 // On clique sur le bouton "Valider"
193 $this->byName("validation")->click();
194 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
195 $this->verifyNoErrors();
196 // On vérifie que le message de validation est présent
197 $this->assertEquals("Saisie enregistrée",
198 $this->byCssSelector("span.text")->text());
199
200 }
201 foreach($dates as $date) {
202 // On vérifie que le titre de la page est correct
203 $this->assertContains("Suivi > Suivi Des Pièces > Mise À Jour Des Dates",
204 $this->byCssSelector("#content")->text());
205 // On saisi les informations de mise à jour de la date
206 $this->select($this->byId("type_mise_a_jour"))->selectOptionByValue(
207 $date["id"]);
208 $this->byId("date")->clear();
209 $this->byId("date")->value($date["date"]);
210 $this->byId("code_barres")->value("1100000000".$idInstr2);
211 // On clique sur le bouton "Valider"
212 $this->byName("validation")->click();
213 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
214 $this->verifyNoErrors();
215 // On vérifie que le les informations du dossier sont bien présentes
216 $this->assertEquals("PC 013055 12 00002P0",
217 $this->byId("dossier_libelle")->text());
218 $this->assertEquals($date["date"],
219 $this->byCssSelector("#".$date["id"])->text());
220 // On clique sur le bouton "Valider"
221 $this->byName("validation")->click();
222 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
223 $this->verifyNoErrors();
224 // On vérifie que le message de validation est présent
225 $this->assertEquals("Saisie enregistrée",
226 $this->byCssSelector("span.text")->text());
227
228 }
229 // On se déconnecte
230 $this->deconnect();
231
232 // On se connecte en tant que "instr"
233 $this->login("instr", "instr");
234 // On saisit le numéro de dossier "PC0130551200002P0" dans le champ de
235 // recherche du widget "accès direct" du tableau de bord qui possède le focus
236 $this->byId("dossier")->value("PC0130551200002P0");
237 // On clique sur le bouton "Rechercher" du widget "accès direct" du
238 // tableau de bord
239 $this->byName("validation")->click();
240 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
241 $this->verifyNoErrors();
242 // On vérifie que le titre de la page est correct
243 // (que nous sommes sur le bon dossier)
244 $this->assertContains("Instruction > Dossiers D'instruction > PC 013055 12 00002P0",
245 $this->byCssSelector("#content")->text());
246 // On clique sur l'onglet "Instruction"
247 $this->byId("instruction")->click();
248 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
249 $this->verifyNoErrors();
250 // On clique sur le lien de l'événement d'instruction n°11
251 $this->byLinkText("arrete")->click();
252 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
253 $this->verifyNoErrors();
254 // On vérifie que le sous-titre est correct (que nous sommes sur le bon
255 // événement d'instruction)
256 $this->assertEquals($idInstr,
257 $this->byCssSelector("div.form-content > #instruction")->text());
258 // On boucle sur chaque date pour vérifier que ces dernières sont bien
259 // présentes sur l'écran de visualisation de l'événement d'instruction
260 foreach($dates as $date) {
261 //
262 $this->assertEquals($date["date"],
263 $this->byId($date["id"])->text());
264 }
265 // On clique sur le bouton retour
266 $this->byCssSelector("#sformulaire a.retour")->click();
267 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
268 $this->verifyNoErrors();
269 // On clique sur le lien de l'événement d'instruction n°11
270 $this->byLinkText("retrait apres decision")->click();
271 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
272 $this->verifyNoErrors();
273 // On vérifie que le sous-titre est correct (que nous sommes sur le bon
274 // événement d'instruction)
275 $this->assertEquals($idInstr2,
276 $this->byCssSelector("div.form-content > #instruction")->text());
277 // On boucle sur chaque date pour vérifier que ces dernières sont bien
278 // présentes sur l'écran de visualisation de l'événement d'instruction
279 foreach($dates as $date) {
280 //
281 $this->assertEquals($date["date"],
282 $this->byId($date["id"])->text());
283 }
284 //On clique sur le bouton retour
285 $this->byLinkText("Retour")->click();
286 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
287 $this->verifyNoErrors();
288
289 }
290
291 /**
292 * Ce test vise uniquement à vérifier que les écrans correspondant à chaque
293 * entrée de menu ne génère pas une erreur de base de données
294 */
295 // Fonction privé
296 private function ouvertureMenu($utilisateur) {
297 // On se connecte
298 $this->login($utilisateur["login"], $utilisateur["mdp"]);
299 // Ouvre le menu
300 $this->openMenu("Suivi", $utilisateur);
301 // On vérifie le menu "Retours De Consultation"
302 $this->byLinkText("Retours De Consultation")->click();
303 $this->assertContains("Suivi > Demandes D'avis > Retours De Consultation",
304 $this->byId("title")->text());
305 $this->verifyNoErrors();
306 // On vérifie le menu "Mise À Jour Des Dates"
307 $this->byLinkText("Mise À Jour Des Dates")->click();
308 $this->assertContains("Suivi > Suivi Des Pièces > Mise À Jour Des Dates",
309 $this->byId("title")->text());
310 $this->verifyNoErrors();
311 // On vérifie le menu "Envoi Lettre RAR"
312 $this->byLinkText("Envoi Lettre RAR")->click();
313 $this->assertContains("Suivi > Suivi Des Pièces > Envoi Lettre RAR",
314 $this->byId("title")->text());
315 $this->verifyNoErrors();
316 // On vérifie le menu "Bordereaux"
317 $this->byLinkText("Bordereaux")->click();
318 $this->assertContains("Suivi > Suivi Des Pièces > Bordereaux",
319 $this->byId("title")->text());
320 $this->verifyNoErrors();
321 // On vérifie le menu "Mise À Jour Des Dates" de la catégorie
322 // "Demandes D'avis"
323 $this->byClassName("demandes_avis_mise_a_jour_des_dates-16")->click();
324 $this->assertContains("Suivi > Demandes D'avis > Mise À Jour Des Dates",
325 $this->byId("title")->text());
326 $this->verifyNoErrors();
327 // On vérifie le menu "Gestion"
328 $this->byLinkText("Gestion")->click();
329 $this->assertContains("Suivi > Commissions > Gestion",
330 $this->byId("title")->text());
331 $this->verifyNoErrors();
332 // On vérifie le menu "Demandes"
333 $this->byLinkText("Demandes")->click();
334 $this->assertContains("Suivi > Commissions > Demandes",
335 $this->byId("title")->text());
336 $this->verifyNoErrors();
337 // On se déconnecte
338 $this->deconnect();
339 }
340 }
341
342 ?>

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26