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

Contents of /trunk/tests/testFinalisationDocuments.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3730 - (show annotations)
Fri Mar 18 11:50:26 2016 UTC (8 years, 10 months ago) by mbroquet
File size: 23270 byte(s)
Actualisation du trunk
1 <?php
2 /**
3 *
4 *
5 * @package openfoncier
6 * @version SVN : $Id: testFinalisationDocuments.php
7 */
8
9 //
10 require_once "base.php";
11
12 /**
13 * Test de la finalisatiotn des documents.
14 */
15 class FinalisationDocuments extends Base2TestCase {
16 /**
17 * Fonction lancée en debut de chaque test
18 */
19 public function setUp() {
20 parent::setUp();
21 echo ' = '.get_class().'.'.str_replace('test_', '', $this->getName())."\r\n";
22 }
23
24 public function onNotSuccessfulTest(Exception $e){
25 echo 'Line '.$e->getLine().' : '.$e->getMessage()."\r\n";
26 parent::onNotSuccessfulTest($e);
27 }
28
29 /**
30 * Test de la finalisation du rapport d'instruction par un instructeur pour le
31 * dossier PC0130551200001.
32 */
33 function test_01_FinalisationRapportInstruction(){
34
35 // On se connecte en tant que "instr"
36 $this->login("instr", "instr");
37 // On clique sur le menu des encours
38 $this->byLinkText("Mes Encours")->click();
39 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
40 $this->verifyNoErrors();
41 // On clique sur le dossier PC0130551200001
42 $this->byLinkText("PC 013055 12 00002P0")->click();
43 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
44 $this->verifyNoErrors();
45 // On clique sur le lien "Rapport d'instruction" dans le portlet d'action
46 $this->byId("action-form-dossier_instruction_mes_encours-rapport_instruction")->click();
47 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
48 $this->verifyNoErrors();
49 // On valide le rapport d'instruction
50 $this->byXPath("//input[@value='Ajouter']")->click();
51 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
52 $this->verifyNoErrors();
53 // On vérifie que le rapport d'instruction s'est bien ajouté
54 $this->assertEquals("Vos modifications ont bien été enregistrées.", $this->byCssSelector("#sousform-rapport_instruction .message .text")->text());
55 // On clique sur retour
56 $this->byCssSelector("#sousform-rapport_instruction form a.retour")->click();
57 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
58 $this->verifyNoErrors();
59 // On clique sur le lien "Rapport d'instruction" dans le portlet d'action
60 $this->byId("action-form-dossier_instruction_mes_encours-rapport_instruction")->click();
61 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
62 $this->verifyNoErrors();
63 // On finalise le document
64 $this->byId("action-sousform-rapport_instruction-finalise")->click();
65 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
66 $this->verifyNoErrors();
67 // On vérifie le message de validation
68 $this->assertEquals('La finalisation du document s\'est effectuée avec succès.', $this->byCssSelector("#sousform-rapport_instruction .message .text")->text());
69 // On vérifie que le lien de finalisation a disparu
70 try {
71 $el = $this->byId("action-sousform-rapport_instruction-finalise");
72 $this->fail('Cet élément ne devrait pas exister.');
73 } catch (PHPUnit_Extensions_Selenium2TestCase_WebDriverException $e) {
74 $this->assertEquals(PHPUnit_Extensions_Selenium2TestCase_WebDriverException::NoSuchElement, $e->getCode());
75 }
76 //On vérifie que l'action de modification n'existe plus
77 try {
78 $el = $this->byId("action-sousform-rapport_instruction-modifier");
79 $this->fail('Cet élément ne devrait pas exister.');
80 } catch (PHPUnit_Extensions_Selenium2TestCase_WebDriverException $e) {
81 $this->assertEquals(PHPUnit_Extensions_Selenium2TestCase_WebDriverException::NoSuchElement, $e->getCode());
82 }
83 // On vérifie que le lien de dé-finalisation est apparu
84 $this->assertTrue($this->byId("action-sousform-rapport_instruction-definalise")->displayed());
85 $this->assertEquals("Reprendre la rédaction du document", $this->byId("action-sousform-rapport_instruction-definalise")->text());
86 // On clique sur l'édition
87 $this->byId("action-sousform-rapport_instruction-edition")->click();
88 // Liste les fenêtres
89 $windows = $this->windowHandles();
90 // Change la fenêtre
91 $this->window($windows[1]);
92 // On vérifie qu'il n'y ait pas d'erreur
93 $this->verifynoerrors();
94 // On vérifie que le lien de l'édition a changé
95 $this->assertRegExp('/^[\s\S]*spg\/file\.php[\s\S]*$/', $this->url());
96 $this->closeWindow();
97 // On change le focus de la fenêtre
98 $this->window($windows[0]);
99 // On dé-finalise le document en cliquant sur le lien Reprendre la rédaction
100 // du document
101 $this->byCssSelector("#sousform-rapport_instruction .portlet-list li:nth-child(2) a")->click();
102 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
103 $this->verifyNoErrors();
104 // On vérifie le message de validation
105 $this->assertEquals('La definalisation du document s\'est effectuée avec succès.', $this->byCssSelector("#sousform-rapport_instruction .message .text")->text());
106 // On vérifie que le lien de dé-finalisation a disparu
107 try {
108 $el = $this->byId("action-sousform-rapport_instruction-definalise");
109 $this->fail('Cet élément ne devrait pas exister.');
110 } catch (PHPUnit_Extensions_Selenium2TestCase_WebDriverException $e) {
111 $this->assertEquals(PHPUnit_Extensions_Selenium2TestCase_WebDriverException::NoSuchElement, $e->getCode());
112 }
113 // On vérifie que le lien de modification est apparu
114 $this->assertTrue($this->byCssSelector("#sousform-rapport_instruction .edit-16")->displayed());
115 // On vérifie que le lien de finalisation est apparu
116 $this->assertTrue($this->byId("action-sousform-rapport_instruction-finalise")->displayed());
117 $this->assertEquals("Finaliser le document", $this->byCssSelector("#sousform-rapport_instruction .portlet-list li:nth-child(3) a span.finalise")->text());
118 // On clique sur l'édition
119 $this->byId("action-sousform-rapport_instruction-edition")->click();
120 // Liste les fenêtres
121 $windows = $this->windowHandles();
122 // Change la fenêtre
123 $this->window($windows[1]);
124 // On vérifie qu'il n'y ait pas d'erreur
125 $this->verifynoerrors();
126 // On vérifie que le lien de l'édition a changé
127 $this->assertRegExp('/^[\s\S]*scr\/sousform\.php[\s\S]*$/', $this->url());
128 $this->closeWindow();
129 // On change le focus de la fenêtre
130 $this->window($windows[0]);
131 //On ferme l'overlay
132 $this->byCssSelector(".ui-dialog-titlebar a.ui-dialog-titlebar-close")->click();
133 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
134 $this->verifyNoErrors();
135 // On se déconnecte de l'application
136 $this->logout();
137 }
138
139 /**
140 * Test de la finalisation du document lors de l'ajout d'une consultation par un
141 * instructeur pour le dossier PC 013055 12 00002P0.
142 */
143 function test_02_FinalisationAjoutConsultation(){
144
145 // On se connecte en tant que "instr"
146 $this->login("instr", "instr");
147 // On clique sur le menu des encours
148 $this->byLinkText("Mes Encours")->click();
149 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
150 $this->verifyNoErrors();
151 // On clique sur le dossier PC0130551200001
152 $this->byLinkText("PC 013055 12 00002P0")->click();
153 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
154 $this->verifyNoErrors();
155 // On clique sur l'onglet consultation
156 $this->byId("consultation")->click();
157 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
158 $this->verifyNoErrors();
159 // On clique sur le + pour ajouter une consultation
160 $this->byCssSelector("#sousform-consultation .actions-max-2 a")->click();
161 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
162 $this->verifyNoErrors();
163 // On choisi le service "Atelier du Patrimoine"
164 $this->select($this->byId("service"))->selectOptionByValue("2");
165 // On clique sur le bouton ajouter
166 $this->byXPath("//input[@value='Ajouter']")->click();
167 sleep(1);
168 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
169 $this->verifyNoErrors();
170 // On vérifie que la consultation a bien été ajoutée
171 $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-consultation .message .text")->text());
172 // On clique sur retour
173 $this->byCssSelector("#sousform-consultation form a.retour")->click();
174 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
175 $this->verifyNoErrors();
176 // On clique sur la consultation
177 $this->byLinkText("59.02 - Atelier du Patrimoine")->click();
178 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
179 $this->verifyNoErrors();
180 // On clique sur l'édition
181 $this->byId("action-sousform-consultation-consulter_pdf")->click();
182 // Liste les fenêtres
183 $windows = $this->windowHandles();
184 // Change la fenêtre
185 $this->window($windows[1]);
186 // On vérifie qu'il n'y ait pas d'erreur
187 $this->verifynoerrors();
188 // On vérifie que le lien de l'édition a changé
189 $this->assertRegExp('/^[\s\S]*spg\/file\.php[\s\S]*$/', $this->url());
190 $this->closeWindow();
191 // On change le focus de la fenêtre
192 $this->window($windows[0]);
193 //On vérifie que le lien de finalisation n'est pas apparu
194 try {
195 $el = $this->byCssSelector("#sousform-consultation .portlet-list li:nth-child(2) a span.finalise");
196 $this->fail('Cet élément ne devrait pas exister.');
197 } catch (PHPUnit_Extensions_Selenium2TestCase_WebDriverException $e) {
198 $this->assertEquals(PHPUnit_Extensions_Selenium2TestCase_WebDriverException::NoSuchElement, $e->getCode());
199 }
200 //On vérifie que le lien de définalisation est apparu
201 $this->assertTrue($this->byCssSelector("#sousform-consultation .portlet-list li:nth-child(2) a span.definalise")->displayed());
202 //On définalise
203 $this->byCssSelector("#sousform-consultation .portlet-list li:nth-child(2) a")->click();
204 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
205 $this->verifyNoErrors();
206 // On vérifie le message de validation
207 $this->assertEquals('La definalisation du document s\'est effectuée avec succès.', $this->byCssSelector("#sousform-consultation .message .text")->text());
208 // On vérifie que le lien de dé-finalisation a disparu
209 try {
210 $el = $this->byCssSelector("#sousform-instruction .portlet-list li:nth-child(2) a span.definalise");
211 $this->fail('Cet élément ne devrait pas consultation.');
212 } catch (PHPUnit_Extensions_Selenium2TestCase_WebDriverException $e) {
213 $this->assertEquals(PHPUnit_Extensions_Selenium2TestCase_WebDriverException::NoSuchElement, $e->getCode());
214 }
215 //On vérifie que le lien de suppression est apparu
216 $this->assertTrue($this->byCssSelector("#sousform-consultation .portlet-list .delete-16")->displayed());
217 //On vérifie que l'action de modification n'est pas apparu
218 try {
219 $el = $this->byCssSelector("#sousform-consultation .edit-16");
220 $this->fail('Cet élément ne devrait pas exister.');
221 } catch (PHPUnit_Extensions_Selenium2TestCase_WebDriverException $e) {
222 $this->assertEquals(PHPUnit_Extensions_Selenium2TestCase_WebDriverException::NoSuchElement, $e->getCode());
223 }
224 //On vérifie que le lien de finalisation est apparu
225 $this->assertTrue($this->byCssSelector("#sousform-consultation .portlet-list a span.finalise")->displayed());
226 // On se déconnecte de l'application
227 $this->logout();
228 }
229
230 /**
231 * Test de la finalisation du document d'une instruction par un instructeur pour
232 * le dossier PC 013055 12 00002P0.
233 */
234 function test_03_FinalisationInstruction(){
235
236 // On se connecte en tant que "instr"
237 $this->login("instr", "instr");
238 // On clique sur le menu des encours
239 $this->byLinkText("Mes Encours")->click();
240 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
241 $this->verifyNoErrors();
242 // On clique sur le dossier PC0130551200001
243 $this->byLinkText("PC 013055 12 00002P0")->click();
244 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
245 $this->verifyNoErrors();
246 //Ralenti l'exécution du script pour permettre au JS de se charger
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 + pour ajouter une instruction
251 $this->byCssSelector("#sousform-instruction .actions-max-1 a")->click();
252 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
253 $this->verifyNoErrors();
254 // On choisi l'événement "adjoint [majoration]"
255 $this->select($this->byId("evenement"))->selectOptionByValue("62");
256 // On clique sur le bouton ajouter
257 $this->byXPath("//input[@value='Ajouter']")->click();
258 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
259 $this->verifyNoErrors();
260 // On vérifie que l'instruction s'est bien ajouté
261 $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
262 // On clique sur le bouton retour
263 $this->byCssSelector("#sousform-instruction form a.retour")->click();
264 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
265 $this->verifyNoErrors();
266 // On clique sur l'instruction nouvellement créée
267 $this->byLinkText("adjoint")->click();
268 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
269 $this->verifyNoErrors();
270 // On vérifie que le lien de finalisation est apparu
271 $this->assertTrue($this->byId("action-sousform-instruction-finaliser")->displayed());
272 $this->assertEquals("Finaliser le document", $this->byId("action-sousform-instruction-finaliser")->text());
273 // On clique sur l'édition
274 $this->byId("action-sousform-instruction-edition")->click();
275 // Liste les fenêtres
276 $windows = $this->windowHandles();
277 // Change la fenêtre
278 $this->window($windows[1]);
279 // On vérifie qu'il n'y ait pas d'erreur
280 $this->verifynoerrors();
281 // On vérifie que le lien de l'édition
282 $this->assertRegExp('/^[\s\S]*scr\/sousform\.php[\s\S]*$/', $this->url());
283 $this->closeWindow();
284 // On change le focus de la fenêtre
285 $this->window($windows[0]);
286 // On finalise le document
287 $this->byId("action-sousform-instruction-finaliser")->click();
288 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
289 $this->verifyNoErrors();
290 // On vérifie le message de validation
291 $this->assertEquals('La finalisation du document s\'est effectuée avec succès.', $this->byCssSelector("#sousform-instruction .message .text")->text());
292 // On vérifie que le lien de finalisation a disparu
293 try {
294 sleep(1);
295 $el = $this->byId("action-sousform-instruction-finaliser");
296 $this->fail('Cet élément ne devrait pas exister.');
297 } catch (PHPUnit_Extensions_Selenium2TestCase_WebDriverException $e) {
298 $this->assertEquals(PHPUnit_Extensions_Selenium2TestCase_WebDriverException::NoSuchElement, $e->getCode());
299 }
300 // On vérifie que le lien de modification a disparu
301 try {
302 $el = $this->byId("action-sousform-instruction-modifier");
303 $this->fail('Cet élément ne devrait pas exister.');
304 } catch (PHPUnit_Extensions_Selenium2TestCase_WebDriverException $e) {
305 $this->assertEquals(PHPUnit_Extensions_Selenium2TestCase_WebDriverException::NoSuchElement, $e->getCode());
306 }
307 // On vérifie que le lien de dé-finalisation est apparu
308 $this->assertTrue($this->byId("action-sousform-instruction-definaliser")->displayed());
309 $this->assertEquals("Reprendre la rédaction du document", $this->byId("action-sousform-instruction-definaliser")->text());
310 // On clique sur l'édition
311 $this->byId("action-sousform-instruction-edition")->click();
312 // Liste les fenêtres
313 $windows = $this->windowHandles();
314 // Change la fenêtre
315 $this->window($windows[1]);
316 // On vérifie qu'il n'y ait pas d'erreur
317 $this->verifynoerrors();
318 // On vérifie que le lien de l'édition a changé
319 $this->assertRegExp('/^[\s\S]*spg\/file\.php[\s\S]*$/', $this->url());
320 $this->closeWindow();
321 // On change le focus de la fenêtre
322 $this->window($windows[0]);
323 // On dé-finalise le document en cliquant sur le lien Reprendre la rédaction
324 // du document
325 $this->byId("action-sousform-instruction-definaliser")->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 le message de validation
329 $this->assertEquals('La definalisation du document s\'est effectuée avec succès.', $this->byCssSelector("#sousform-instruction .message .text")->text());
330 // On vérifie que le lien de dé-finalisation a disparu
331 try {
332 $el = $this->byId("action-sousform-instruction-definaliser");
333 $this->fail('Cet élément ne devrait pas exister.');
334 } catch (PHPUnit_Extensions_Selenium2TestCase_WebDriverException $e) {
335 $this->assertEquals(PHPUnit_Extensions_Selenium2TestCase_WebDriverException::NoSuchElement, $e->getCode());
336 }
337 //On vérifie que le lien de modification est apparu
338 $this->assertTrue($this->byId("action-sousform-instruction-modifier")->displayed());
339 //On se déconnecte de l'application
340 $this->logout();
341 }
342
343 /**
344 * Test de la finalisation du compte rendu et de l'ordre du jour d'une commission
345 * par la cellule suivi sur le dossier PC 013055 12 00002P0.
346 */
347 function test_04_FinalisationCommission(){
348
349 // On se connecte en tant que "instr"
350 $this->login("instr", "instr");
351 // On clique sur le menu des encours
352 $this->byLinkText("Mes Encours")->click();
353 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
354 $this->verifyNoErrors();
355 // On clique sur le dossier PC0130551200001
356 $this->byLinkText("PC 013055 12 00002P0")->click();
357 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
358 $this->verifyNoErrors();
359 // On clique sur l'onglet commission
360 $this->byId("dossier_commission")->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 + pour ajouter une commission
364 $this->byCssSelector("#sousform-dossier_commission .actions-max-1 a")->click();
365 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
366 $this->verifyNoErrors();
367 // On choisi le type de commission "Commission Technique d'Urbanisme"
368 $this->select($this->byId("commission_type"))->selectOptionByValue("1");
369 // On clique sur le bouton ajouter
370 $this->byXPath("//input[@value='Ajouter']")->click();
371 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
372 $this->verifyNoErrors();
373 // On vérifie que l'instruction s'est bien ajouté
374 $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-dossier_commission .message .text")->text());
375 //On se déconnecte de l'application
376 $this->deconnect();
377 // On se connecte en tant que "suivi"
378 $this->login("suivi", "suivi");
379 // On clique sur le menu gestion
380 $this->byLinkText("Gestion")->click();
381 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
382 $this->verifyNoErrors();
383 // On clique sur la commission numéro 1
384 $this->byLinkText("1")->click();
385 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
386 $this->verifyNoErrors();
387 //Mise à jour de la liste de diffusion
388 $this->byCssSelector(".portlet-list li:nth-child(1) a")->click();
389 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
390 $this->verifyNoErrors();
391 $this->byId("listes_de_diffusion")->clear();
392 $this->byId("listes_de_diffusion")->value("[email protected]");
393 $this->byXPath("//input[@value='Modifier']")->click();
394 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
395 $this->verifyNoErrors();
396 // On vérifie que la commission s'est bien mise à jour
397 $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector(".message .text")->text());
398 //On clique sur le lien retour
399 $this->byLinkText("Retour")->click();
400 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
401 $this->verifyNoErrors();
402 //On clique sur la diffusion de l'ordre du jour
403 $this->byCssSelector(".portlet-list li:nth-child(3) a")->click();
404 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
405 $this->verifyNoErrors();
406 //On vérifie que l'ordre du jour s'est bien envoyé
407 $this->assertRegExp('/.*La diffusion de l\'ordre du jour s\'est effectuée avec succès.*/', $this->byCssSelector(".message span.text")->text());
408 // On vérifie que le lien de l'édition a changé
409 $this->assertRegExp('/^[\s\S]*spg\/file\.php[\s\S]*$/',$this->byCssSelector(".portlet-list li:nth-child(6) a")->attribute("href"));
410 // On clique sur la diffusion du compte rendu
411 $this->byCssSelector(".portlet-list li:nth-child(4) a")->click();
412 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
413 $this->verifyNoErrors();
414 //On vérifie que le compte rendu s'est bien envoyé
415 $this->assertRegExp('/.*La diffusion du compte-rendu s\'est effectuée avec succès.*/', $this->byCssSelector(".message span.text")->text());
416 // On vérifie que le lien de l'édition a changé
417 $this->assertRegExp('/^[\s\S]*spg\/file\.php[\s\S]*$/',$this->byCssSelector(".portlet-list li:nth-child(7) a")->attribute("href"));
418 //On se déconnecte de l'application
419 $this->logout();
420 }
421 }

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26