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

Contents of /trunk/tests/testInstruction.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2107 - (show annotations)
Fri Jul 19 15:27:51 2013 UTC (11 years, 6 months ago) by nhaye
File size: 19679 byte(s)
Ajout de données de tests,
ajout des tests concernant la modification de l'autorité compétente via le workflow

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 Instruction extends Base2TestCase {
16
17 /**
18 * Ce test vise uniquement à vérifier que les écrans correspondant à chaque
19 * entrée de menu ne génère pas une erreur de base de données
20 */
21 public function test_01_ouverture_de_chaque_ecran_par_l_instructeur() {
22 //
23 $this->login("instr", "instr");
24 //
25 $this->byLinkText("Mes Encours")->click();
26 $this->verifyNoErrors();
27 $this->assertEquals("DI", $this->byXPath("//a[@href='#tabs-1']")->text());
28 //
29 $this->byLinkText("Tous Les Encours")->click();
30 $this->verifyNoErrors();
31 $this->assertEquals("DI", $this->byXPath("//a[@href='#tabs-1']")->text());
32 //
33 $this->byLinkText("Mes Clôturés")->click();
34 $this->verifyNoErrors();
35 $this->assertEquals("DI", $this->byXPath("//a[@href='#tabs-1']")->text());
36 //
37 $this->byLinkText("Tous Les Clôturés")->click();
38 $this->verifyNoErrors();
39 $this->assertEquals("DI", $this->byXPath("//a[@href='#tabs-1']")->text());
40 //
41 $this->byLinkText("Recherche")->click();
42 $this->verifyNoErrors();
43 $this->assertEquals("DI", $this->byXPath("//a[@href='#tabs-1']")->text());
44 //
45 $this->byLinkText("Dossiers À Qualifier")->click();
46 $this->verifyNoErrors();
47 $this->assertEquals("dossier", $this->byCssSelector(".firstcol .name a")->text());
48 //
49 $this->byLinkText("Mes Retours")->click();
50 $this->verifyNoErrors();
51 $this->assertEquals("dossier", $this->byCssSelector(".col-1 .name a")->text());
52 //
53 $this->byLinkText("Tous Les Retours")->click();
54 $this->verifyNoErrors();
55 $this->assertEquals("dossier", $this->byCssSelector(".col-1 .name a")->text());
56 //
57 $this->byLinkText("Mes Messages")->click();
58 $this->verifyNoErrors();
59 $this->assertEquals("dossier", $this->byCssSelector(".col-1 .name a")->text());
60 //
61 $this->byLinkText("Tous Les Messages")->click();
62 $this->verifyNoErrors();
63 $this->assertEquals("dossier", $this->byCssSelector(".col-1 .name a")->text());
64 //
65 $this->byCssSelector("a.commission_mes_retours-16")->click();
66 $this->verifyNoErrors();
67 $this->assertEquals("dossier", $this->byCssSelector(".col-1 .name a")->text());
68 //
69 $this->byCssSelector("a.commission_tous_retours-16")->click();
70 $this->verifyNoErrors();
71 $this->assertEquals("dossier", $this->byCssSelector(".col-1 .name a")->text());
72
73 //
74 $this->logout();
75 }
76
77 /**
78 *
79 */
80 public function test_02_visualisation_di_et_da_par_l_instructeur_en_charge() {
81
82 // On se connecte en tant que "instr"
83 $this->login("instr", "instr");
84 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
85 $this->verifyNoErrors();
86 // On clique sur le lien "Mes encours" dans le menu
87 $this->byLinkText("Mes Encours")->click();
88 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
89 $this->verifyNoErrors();
90 // On clique sur le lien "AZ0130551200001P0" dans le tableau
91 $this->byLinkText("AZ0130551200001P0")->click();
92 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
93 $this->verifyNoErrors();
94 // On vérifie que le breadcrumb est correct
95 $this->assertEquals("AZ0130551200001P0", $this->byId("dossier")->text());
96 // On clique sur l'onglet "Instruction"
97 $this->byId("instruction")->click();
98 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
99 $this->verifyNoErrors();
100 // On clique sur l'onglet "Consultation(s)"
101 $this->byId("consultation")->click();
102 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
103 $this->verifyNoErrors();
104 // On clique sur l'onglet "Lot(s)"
105 $this->byId("lot")->click();
106 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
107 $this->verifyNoErrors();
108 // On clique sur l'onglet "Message(s)"
109 $this->byId("dossier_message")->click();
110 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
111 $this->verifyNoErrors();
112 // On clique sur l'onglet "Commission(s)"
113 $this->byId("dossier_commission")->click();
114 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
115 $this->verifyNoErrors();
116 // On clique sur l'onglet "Bloc-note"
117 $this->byId("blocnote")->click();
118 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
119 $this->verifyNoErrors();
120 // On clique sur l'onglet "DA"
121 $this->byId("dossier_autorisation")->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 lien "AZ0130551200001" dans le tableau
125 $this->byLinkText("AZ0130551200001")->click();
126 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
127 $this->verifyNoErrors();
128 // On vérifie que le breadcrumb est correct
129 $this->assertEquals("AZ0130551200001", $this->byCssSelector(".form-content #dossier_autorisation")->text());
130 // On clique sur l'onglet "Dossier(s) d'instruction"
131 $this->byId("dossier_instruction")->click();
132 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
133 $this->verifyNoErrors();
134 // On clique sur le lien "AZ0130551200001P0" dans le tableau
135 $this->byLinkText("AZ0130551200001P0")->click();
136 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
137 $this->verifyNoErrors();
138 // On vérifie que le breadcrumb est correct
139 $this->assertEquals("AZ0130551200001P0", $this->byId("dossier")->text());
140 // On se déconnecte
141 $this->logout();
142 }
143
144 /**
145 *
146 */
147 public function test_03_informations_du_widget_profil_instructeur() {
148 // On se connecte en tant que "instr"
149 $this->login("instr", "instr");
150 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
151 $this->verifyNoErrors();
152 // On vérifie que le titre du widget est correct
153 $this->assertEquals("Profil instructeur", $this->byCssSelector("#widget_2 .widget-header h3")->text());
154 // On vérifie que le nom de l'instructeur affiché est le bon
155 $this->assertEquals("Louis Laurent", $this->byCssSelector("div.instructeur-infos-nom > span.value")->text());
156 // On vérifie que la division de l'instructeur affichée est la bonne
157 $this->assertEquals("H", $this->byCssSelector("div.instructeur-infos-division > span.value")->text());
158 // On se déconnecte
159 $this->byLinkText("Déconnexion")->click();
160 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
161 $this->verifyNoErrors();
162 // On se connecte en tant que "instr"
163 $this->login("instr1", "instr");
164 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
165 $this->verifyNoErrors();
166 // On vérifie que le titre du widget est correct
167 $this->assertEquals("Profil instructeur", $this->byCssSelector("#widget_2 .widget-header h3")->text());
168 // On vérifie que le nom de l'instructeur affiché est le bon
169 $this->assertEquals("Martine Nadeau", $this->byCssSelector("div.instructeur-infos-nom > span.value")->text());
170 // On vérifie que la division de l'instructeur affichée est la bonne
171 $this->assertEquals("H", $this->byCssSelector("div.instructeur-infos-division > span.value")->text());
172 // On se déconnecte
173 $this->byLinkText("Déconnexion")->click();
174 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
175 $this->verifyNoErrors();
176 // On se connecte en tant que "instr"
177 $this->login("instr2", "instr");
178 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
179 $this->verifyNoErrors();
180 // On vérifie que le titre du widget est correct
181 $this->assertEquals("Profil instructeur", $this->byCssSelector("#widget_2 .widget-header h3")->text());
182 // On vérifie que le nom de l'instructeur affiché est le bon
183 $this->assertEquals("Roland Richard", $this->byCssSelector("div.instructeur-infos-nom > span.value")->text());
184 // On vérifie que la division de l'instructeur affichée est la bonne
185 $this->assertEquals("J", $this->byCssSelector("div.instructeur-infos-division > span.value")->text());
186 // On se déconnecte
187 $this->logout();
188 }
189
190 /**
191 * Ajout d'instructions par l'instructeur sur le dossier DP0130551200001P0
192 */
193 public function test_04_ajout_instructions_par_instructeur() {
194
195
196 // On se connecte en tant que "instr"
197 $this->login("instr", "instr");
198 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
199 $this->verifyNoErrors();
200 // On clique sur le lien "Mes encours" dans le menu
201 $this->byLinkText("Mes Encours")->click();
202 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
203 $this->verifyNoErrors();
204 sleep(1);
205 // On clique sur le lien "AZ0130551200001P0" dans le tableau
206 $this->byLinkText("DP0130551200001P0")->click();
207 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
208 $this->verifyNoErrors();
209 // On clique sur l'onglet "Instruction"
210 $this->byId("instruction")->click();
211 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
212 $this->verifyNoErrors();
213 //Ajout d'une instruction simple
214 // On clique sur le lien d'ajout dans le tableau
215 $this->byCssSelector(".actions-max-1 a")->click();
216 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
217 $this->verifyNoErrors();
218 //On choisi un événement
219 $this->select($this->byId("evenement"))->selectOptionByValue("22");
220 //On valide le formulaire
221 $this->byXPath("//input[@value='Ajouter']")->click();
222 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
223 $this->verifyNoErrors();
224 sleep(1);
225 $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
226 //On retourne sur le tableau d'instructions
227 $this->byCssSelector("#sousform-instruction .retour")->click();
228 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
229 $this->verifyNoErrors();
230 //On affiche l'instruction
231 $this->byLinkText("CDEC majoration appel decision")->click();
232 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
233 $this->verifyNoErrors();
234 //On vérifie que certains champs n'apparaissent pas
235 $this->assertFalse($this->byId("date_envoi_controle_legalite")->displayed());
236 $this->assertFalse($this->byId("date_retour_controle_legalite")->displayed());
237 //On retourne sur le tableau d'instructions
238 $this->byCssSelector("#sousform-instruction .retour")->click();
239 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
240 $this->verifyNoErrors();
241 //Ajout d'une instruction de type arrêté
242 // On clique sur le lien d'ajout dans le tableau
243 $this->byCssSelector(".actions-max-1 a")->click();
244 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
245 $this->verifyNoErrors();
246 //On choisi un événement
247 $this->select($this->byId("evenement"))->selectOptionByValue("81");
248 //On valide le formulaire
249 $this->byXPath("//input[@value='Ajouter']")->click();
250 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
251 $this->verifyNoErrors();
252 sleep(1);
253 $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
254 //On retourne sur le tableau d'instructions
255 $this->byCssSelector("#sousform-instruction .retour")->click();
256 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
257 $this->verifyNoErrors();
258 //On affiche l'instruction
259 $this->byLinkText("accepter un dossier sans réserve")->click();
260 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
261 $this->verifyNoErrors();
262 //On vérifie que certains champs apparaissent
263 $this->assertTrue($this->byClassName("libelle-date_envoi_controle_legalite")->displayed());
264 $this->assertTrue($this->byClassName("libelle-date_envoi_controle_legalite")->displayed());
265 // On se déconnecte
266 $this->logout();
267 }
268
269 /**
270 * Test le formulaire de la demande de type qui possède des select filtrés
271 */
272 public function test_05_ajout_lot() {
273 // On se connecte en tant que "instr"
274 $this->login("instr", "instr");
275 // On clique sur le lien "Mes encours" dans le menu
276 $this->byLinkText("Mes Encours")->click();
277 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
278 $this->verifyNoErrors();
279 // On clique sur le lien "AZ0130551200001P0" dans le tableau
280 $this->byLinkText("AZ0130551200001P0")->click();
281 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
282 $this->verifyNoErrors();
283 // On clique sur l'onglet "Lot(s)"
284 $this->byId("lot")->click();
285 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
286 $this->verifyNoErrors();
287 // On clique sur le bouton d'ajout de lots
288 $this->byXPath("//div[@id='sousform-lot']/table/thead/tr/th/a/span")->click();
289 // Vérification des champs obligatoires
290 $this->byXPath("//input[@value='Ajouter']")->click();
291 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
292 $this->verifyNoErrors();
293 // On vérifie que le message de champ vide soit affiché
294 $this->assertRegExp('/.*SAISIE NON ENREGISTRÉE.*/', $this->byCssSelector("#sousform-lot .message .text")->text());
295 // Insertion d'un lot
296 $this->byId("libelle")->value("Lot n°1");
297 $this->byXPath("//input[@value='Ajouter']")->click();
298 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
299 $this->verifyNoErrors();
300 // On retourne sur le tableau listant les lots
301 $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();
302 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
303 $this->verifyNoErrors();
304 // On clique sur le bouton d'ajout de lots
305 $this->byXPath("//div[@id='sousform-lot']/table/thead/tr/th/a/span")->click();
306 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
307 $this->verifyNoErrors();
308 // Insertion d'un second lot
309 $this->byId("libelle")->value("Lot n°2");
310 $this->byXPath("//input[@value='Ajouter']")->click();
311 sleep(1);
312 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
313 $this->verifyNoErrors();
314 // On retourne sur le tableau listant les lots
315 $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();
316 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
317 $this->verifyNoErrors();
318 // On se déconnecte
319 $this->logout();
320 }
321
322 /**
323 * Test du lien automatique entre choix autorité compétente dans DI et
324 * évènement d'instruction à créer
325 */
326 public function test_06_modification_autorite_competente() {
327 // On se connecte en tant que "instr"
328 $this->login("instr", "instr");
329 // On clique sur le lien "Mes encours" dans le menu
330 $this->byLinkText("Mes Encours")->click();
331 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
332 $this->verifyNoErrors();
333 // On clique sur le lien "AZ0130551200001P0" dans le tableau
334 $this->byLinkText("AZ0130551200001P0")->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 "Instruction"
338 $this->byId("instruction")->click();
339 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
340 $this->verifyNoErrors();
341 // On clique sur le bouton d'ajout de lots
342 $this->byXPath("//div[@id='sousform-instruction']/table/thead/tr/th/a/span")->click();
343 // Vérification des champs obligatoires
344 $this->byXPath("//input[@value='Ajouter']")->click();
345 sleep(1);
346 //On choisi un événement
347 $this->select($this->byId("evenement"))->selectOptionByValue("94");
348 // Validation du formulaire
349 $this->byXPath("//input[@value='Ajouter']")->click();
350 sleep(1);
351 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
352 $this->verifyNoErrors();
353 $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
354 $this->byCssSelector("form[name=\"f2\"] > a.retour")->click();
355 // Retour à l'onglet principal
356 $this->byId("main")->click();
357 $this->refresh();
358 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
359 $this->verifyNoErrors();
360 // On verifie que l'autorité compétente à changée.
361 $this->assertRegExp('/.*Commune pour état*/', $this->byCssSelector("#tabs-1 #autorite_competente")->text());
362 // On se déconnecte
363 $this->deconnect();
364 // On se connecte en tant que "admin"
365 $this->login("admin", "admin");
366 sleep(1);
367 $this->byLinkText("Instruction")->click();
368 // On clique sur le lien "Recherche" dans le menu
369 $this->byLinkText("Recherche")->click();
370 // On clique sur le lien "AZ0130551200001P0" dans le tableau
371 $this->byLinkText("AZ0130551200001P0")->click();
372 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
373 $this->verifyNoErrors();
374 // On verifie que l'autorité compétente à changée.
375 $this->assertRegExp('/.*Commune pour état*/', $this->byCssSelector("#tabs-1 #autorite_competente")->text());
376 // On clique sur l'onglet "Instruction"
377 $this->byId("instruction")->click();
378 $this->byLinkText("Changer l'autorité compétente 'commune état'")->click();
379 sleep(1);
380 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
381 $this->verifyNoErrors();
382 $this->byXPath("(//div[@id='portlet-actions']/ul/li[2]/a/span)[2]")->click();
383 // On supprime l'element et on verifie le retour de l'autorité "commune"
384 $this->byCssSelector("form[name=\"f2\"] > a.retour")->click();
385 // Retour à l'onglet principal
386 $this->byId("main")->click();
387 $this->refresh();
388 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
389 $this->verifyNoErrors();
390 // On verifie que l'autorité compétente à changée.
391 $this->assertRegExp('/.*Commune*/', $this->byCssSelector("#tabs-1 #autorite_competente")->text());
392 // On se déconnecte
393 $this->logout();
394 }
395
396 }
397
398 ?>

Properties

Name Value
svn:keywords Id

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26