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

Contents of /trunk/tests/testGeolocalisation.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2361 - (show annotations)
Mon Sep 30 14:17:09 2013 UTC (11 years, 4 months ago) by softime
File size: 22949 byte(s)
Ajout de la table dossier_autorisation_parcelle qui permettra de faire des recherches avancées sur les dossiers d'autorisation grâce aux références cadastrales.

1 <?php
2 /**
3 * Fichier contenant la classe de test Geolocalisation
4 *
5 * @package openads
6 * @version SVN : $Id$
7 */
8
9 // Fichiers requis
10 require_once "base.php";
11
12 /**
13 * Classe de test sur les actions liées à la géolocalisation
14 *
15 * Dossier d'instruction utilisé : AZ 013055 12 00001P0 et DP 013055 12 00001P0
16 */
17 class Geolocalisation extends Base2TestCase {
18
19 /**
20 * Active l'option sig avec la valeur nécessaire pour la suite des tests
21 */
22 public function test_active_option_sig() {
23
24 // On se connecte en tant que "admin"
25 $this->login("admin", "admin");
26 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
27 $this->verifyNoErrors();
28 // On clique sur le lien "Administration" dans le menu
29 $this->byLinkText("Administration")->click();
30 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
31 $this->verifyNoErrors();
32 // // On clique sur le lien "Paramètre" dans le menu
33 $this->byLinkText("Paramètre")->click();
34 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
35 $this->verifyNoErrors();
36 // On remplis le champs de recherche simple
37 $this->byCssSelector("input[name='recherche']")->value('option_sig');
38 // On clique sur le bouton recherche
39 $this->byCssSelector(".ui-button")->click();
40 // On clique sur le résultat
41 $this->byLinkText("option_sig")->click();
42 // On clique sur le bouton "Modifier"
43 $this->byId('action-form-om_parametre-modifier')->click();
44 // On change la valeur par "sig_externe"
45 $this->byId('valeur')->clear();
46 $this->byId('valeur')->value('sig_externe');
47 // On valide la modification
48 $this->byCssSelector("input[value='Modifier']")->click();
49 // On vérifie le message de validation
50 $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#tabs-1 .message")->text());
51 // On clique sur le bouton 'Retour'
52 $this->byLinkText("Retour")->click();
53 // On vérifie les nouvelles données
54 $this->assertEquals("sig_externe", $this->byId("valeur")->text());
55 // On se déconnecte
56 $this->logout();
57 }
58
59 /**
60 * Test la recherche avancée sur les parcelles
61 * le dossier AZ 013055 12 00001P0 à comme références cadastrales
62 * 806AB0001A0005 ce qui revient à dire qu'il a les références cadastrales
63 * 806AB0001, 806AB0002, 806AB0003, 806AB0004 et 806AB0005
64 */
65 public function test_recherche_avancee_parcelle() {
66
67 // On se connecte en tant que "instr"
68 $this->login("instr", "instr");
69 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
70 $this->verifyNoErrors();
71 // On clique sur le lien "Recherche" dans le menu
72 $this->byLinkText("Recherche")->click();
73 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
74 $this->verifyNoErrors();
75 // On remplis le champ parcelle de la recherche avancée
76 $this->byCssSelector("#advanced-form #parcelle")->value('806AB0001');
77 // On clique sur le bouton "Recherche"
78 $this->byId("adv-search-submit")->click();
79 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
80 $this->verifyNoErrors();
81 // On vérifie le dossier "AZ0130551200001P0" apparaît
82 $this->assertRegExp("/^[\s\S]*AZ 013055 12 00001P0[\s\S]*$/", $this->byCssSelector("#tab-dossier_instruction .tab-tab")->text());
83 // On remplis le champ parcelle de la recherche avancée
84 $this->byCssSelector("#advanced-form #parcelle")->value('806AB0001,806AB0003');
85 // On clique sur le bouton "Recherche"
86 $this->byId("adv-search-submit")->click();
87 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
88 $this->verifyNoErrors();
89 // On vérifie le dossier "AZ0130551200001P0" apparaît
90 $this->assertRegExp("/^[\s\S]*AZ 013055 12 00001P0[\s\S]*$/", $this->byCssSelector("#tab-dossier_instruction .tab-tab")->text());
91 // On clique sur le lien "Autorisation" dans le menu
92 $this->byLinkText("Autorisation")->click();
93 // On clique sur le lien "Dossiers D'autorisation" dans le menu
94 $this->byLinkText("Dossiers D'autorisation")->click();
95 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
96 $this->verifyNoErrors();
97 // On remplis le champ parcelle de la recherche avancée
98 $this->byCssSelector("#advanced-form #parcelle")->value('806AB0001');
99 // On clique sur le bouton "Recherche"
100 $this->byId("adv-search-submit")->click();
101 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
102 $this->verifyNoErrors();
103 // On vérifie le dossier "AZ0130551200001" apparaît
104 $this->assertRegExp("/^[\s\S]*AZ 013055 12 00001[\s\S]*$/", $this->byCssSelector("#tab-dossier_autorisation .tab-tab")->text());
105 // On remplis le champ parcelle de la recherche avancée
106 $this->byCssSelector("#advanced-form #parcelle")->value('806AB0001,806AB0003');
107 // On clique sur le bouton "Recherche"
108 $this->byId("adv-search-submit")->click();
109 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
110 $this->verifyNoErrors();
111 // On vérifie le dossier "AZ0130551200001" apparaît
112 $this->assertRegExp("/^[\s\S]*AZ 013055 12 00001[\s\S]*$/", $this->byCssSelector("#tab-dossier_autorisation .tab-tab")->text());
113 // On se déconnecte
114 $this->logout();
115 }
116
117 /**
118 * Test les liens vers le SIG
119 */
120 public function test_lien_localisation_dossier() {
121
122 // On se connecte en tant que "instr"
123 $this->login("instr", "instr");
124 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
125 $this->verifyNoErrors();
126 // On clique sur le lien "Mes encours" dans le menu
127 $this->byLinkText("Recherche")->click();
128 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
129 $this->verifyNoErrors();
130 // Test multi parcelles
131 // On clique sur le lien sig du dossier "AZ0130551200001P0" dans le tableau
132 $this->byId("action-tab-dossier_instruction-left-localiser-sig-externe-AZ0130551200001P0")->click();
133 sleep(5);
134 // Liste les fenêtres
135 $windows = $this->windowHandles();
136 // Change la fenêtre
137 $this->window($windows[1]);
138 // On vérifie qu'il n'y ait pas d'erreur
139 $this->verifynoerrors();
140 // On vérifie que le text est présent
141 $this->assertEquals('http://sig.vdm.mars/elyx/layouts/vdm.jsp?[KEY=VM_PCI_PARC_MPM*/201806%20AB0001]&[KEY=VM_PCI_PARC_MPM*/201806%20AB0002]&[KEY=VM_PCI_PARC_MPM*/201806%20AB0003]&[KEY=VM_PCI_PARC_MPM*/201806%20AB0004]&[KEY=VM_PCI_PARC_MPM*/201806%20AB0005]&MAX_SCALE=500', $this->url());
142 // On ferme la fenêtre
143 $this->closeWindow();
144 // On change le focus de la fenêtre
145 $this->window($windows[0]);
146 // Test une parcelle
147 // On clique sur le lien sig du dossier "AZ0130551200001P0" dans le tableau
148 $this->byId("action-tab-dossier_instruction-left-localiser-sig-externe-PD0130551200001P0")->click();
149 sleep(5);
150 // Liste les fenêtres
151 $windows = $this->windowHandles();
152 // Change la fenêtre
153 $this->window($windows[1]);
154 // On vérifie qu'il n'y ait pas d'erreur
155 $this->verifynoerrors();
156 // On vérifie que le text est présent
157 $this->assertEquals('http://sig.vdm.mars/elyx/layouts/vdm.jsp?KEY=VM_PCI_PARC_MPM*/201805%20AB0009&MAX_SCALE=500', $this->url());
158 // On ferme la fenêtre
159 $this->closeWindow();
160 // On change le focus de la fenêtre
161 $this->window($windows[0]);
162 // Test avec geom
163 // On clique sur le lien sig du dossier "AZ0130551200001P0" dans le tableau
164 $this->byId("action-tab-dossier_instruction-left-localiser-sig-externe-PC0130551200001P0")->click();
165 sleep(5);
166 // Liste les fenêtres
167 $windows = $this->windowHandles();
168 // Change la fenêtre
169 $this->window($windows[1]);
170 // On vérifie qu'il n'y ait pas d'erreur
171 $this->verifynoerrors();
172 // On vérifie que le text est présent
173 $this->assertEquals('http://sig.vdm.mars/elyx/layouts/vdm.jsp?KEY=ADS_EMPRISE*/PC0130551200001P0&SELECT=true', $this->url());
174 // On ferme la fenêtre
175 $this->closeWindow();
176 // On change le focus de la fenêtre
177 $this->window($windows[0]);
178 // Test sans geom nin références cadastrales
179 // On clique sur le lien sig du dossier "AZ0130551200001P0" dans le tableau
180 $this->byId("action-tab-dossier_instruction-left-localiser-sig-externe-PC0130551200002P0")->click();
181 sleep(5);
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 text est présent
189 $this->assertEquals('http://sig.vdm.mars/elyx/layouts/vdm.jsp', $this->url());
190 // On ferme la fenêtre
191 $this->closeWindow();
192 // On change le focus de la fenêtre
193 $this->window($windows[0]);
194 // On se déconnecte
195 $this->logout();
196
197 }
198
199 /**
200 * Test les différents traitements sur le SIG
201 */
202 public function test_geolocalisation() {
203
204 // On se connecte en tant que "instr"
205 $this->login("instr", "instr");
206 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
207 $this->verifyNoErrors();
208 // On clique sur le lien "Mes encours" dans le menu
209 $this->byLinkText("Mes Encours")->click();
210 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
211 $this->verifyNoErrors();
212 // On clique sur le lien "AZ0130551200001P0" dans le tableau
213 $this->byLinkText("AZ 013055 12 00001P0")->click();
214 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
215 $this->verifyNoErrors();
216 // On clique sur "Géolocalisation"
217 $this->byLinkText("Géolocalisation")->click();
218 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
219 $this->verifyNoErrors();
220 // On vérifie les messages des traitements "Vérifier les parcelles",
221 // "Calculer l'emprise", "Dessiner l'emprise", "Calculer le centroïde"
222 // et "Récupérer les contraintes"
223 $this->assertEquals("Action non effectuée.", $this->byId("verif_parcelle")->text());
224 $this->assertEquals("Action non effectuée.", $this->byId("calcul_emprise")->text());
225 $this->assertEquals("Action non effectuée.", $this->byId("dessin_emprise")->text());
226 $this->assertEquals("Action non effectuée.", $this->byId("calcul_centroide")->text());
227 $this->assertEquals("Action non effectuée.", $this->byId("recup_contrainte")->text());
228 // On vérifie les données du dossier
229 $this->assertEquals("806AB0001A0005;", $this->byId("references_cadastrales")->text());
230 $this->assertEquals("113 boulevard pont de vivaux Marseille 13010", $this->byId("adresse")->text());
231 // On clique sur le bouton "Vérifier les parcelles"
232 $this->byId("verif_parcelle-button")->click();
233 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
234 $this->verifyNoErrors();
235 // On vérifie les nouvelles données après le traitement
236 $this->assertRegExp("/^[\s\S]*Les parcelles existent.[\s\S]*$/", $this->byId("verif_parcelle")->text());
237 // On clique sur le bouton "Calculer l'emprise"
238 $this->byId("calcul_emprise-button")->click();
239 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
240 $this->verifyNoErrors();
241 // On vérifie les nouvelles données après le traitement
242 $this->assertRegExp("/^[\s\S]*L'emprise a été calculé.[\s\S]*$/", $this->byId("calcul_emprise")->text());
243 // On clique sur le bouton "Dessiner l'emprise"
244 $this->byId("dessin_emprise-button")->click();
245 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
246 $this->verifyNoErrors();
247 // On vérifie les nouvelles données après le traitement
248 $this->assertRegExp("/^[\s\S]*Redirigé vers ElyxWeb.[\s\S]*$/", $this->byId("dessin_emprise")->text());
249 // Liste les fenêtres
250 $windows = $this->windowHandles();
251 // On vérifie que l'onglet s'est ouvert
252 $this->assertTrue(count($windows) == 2);
253 // Change la fenêtre
254 $this->window($windows[1]);
255 // On ferme la fenêtre
256 $this->closeWindow();
257 // On change le focus de la fenêtre
258 $this->window($windows[0]);
259 // On clique sur le bouton "Calculer le centroïde"
260 $this->byId("calcul_centroide-button")->click();
261 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
262 $this->verifyNoErrors();
263 // On vérifie les nouvelles données après le traitement
264 $this->assertRegExp("/^[\s\S]*Le centroide a été calculé[\s\S]*$/", $this->byId("calcul_centroide")->text());
265 $this->assertEquals("Localiser POINT(122 223)", $this->byCssSelector("#sousform-sig_elyx #centroide")->text());
266 // On clique sur le bouton "Récupérer les contraintes"
267 $this->byId("recup_contrainte-button")->click();
268 // On vérifie le message affiché
269 $this->assertEquals('Êtes vous sur de vouloir récupérer les contraintes ?', $this->alertText());
270 // On clique sur "Annuler" dans la boite de dialogue qui apparaît
271 $this->dismissAlert();sleep(1);
272 // On vérifie que le message et les données n'ont pas été modifiés
273 $this->assertEquals("Action non effectuée.", $this->byId("recup_contrainte")->text());
274 $this->assertEquals("", $this->byId("servitude")->text());
275 // On clique sur le bouton "Récupérer les contraintes"
276 $this->byId("recup_contrainte-button")->click();
277 // On clique sur "OK" dans la boite de dialogue qui apparaît
278 $this->acceptAlert();sleep(1);
279 // On vérifie les nouvelles données après le traitement
280 $this->assertRegExp("/^[\s\S]*Les contraintes ont été récupérées.[\s\S]*$/", $this->byId("recup_contrainte")->text());
281 $this->assertEquals("- Une contrainte du PLU", $this->byCssSelector("#sousform-sig_elyx #servitude")->text());
282 // On clique sur le bouton retour
283 $this->byId("retour-button")->click();
284 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
285 $this->verifyNoErrors();
286 // On se déconnecte
287 $this->logout();
288 }
289
290 /**
291 * Test le bouton permettant de lancer tous les traitements
292 * XXX lorsque la ressource de test le permettra, tester en cas d'erreur
293 * d'un traitements
294 */
295 public function test_all_geolocalisation_treatments() {
296
297 // On se connecte en tant que "instr"
298 $this->login("instr", "instr");
299 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
300 $this->verifyNoErrors();
301 // On clique sur le lien "Mes encours" dans le menu
302 $this->byLinkText("Mes Encours")->click();
303 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
304 $this->verifyNoErrors();
305 // On clique sur le lien "AZ0130551200001P0" dans le tableau
306 $this->byLinkText("DP 013055 12 00001P0")->click();
307 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
308 $this->verifyNoErrors();
309 // On clique sur "Géolocalisation"
310 $this->byLinkText("Géolocalisation")->click();
311 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
312 $this->verifyNoErrors();
313 // On vérifie les messages des traitements "Vérifier les parcelles",
314 // "Calculer l'emprise", "Dessiner l'emprise", "Calculer le centroïde"
315 // et "Récupérer les contraintes"
316 $this->assertEquals("Action non effectuée.", $this->byId("verif_parcelle")->text());
317 $this->assertEquals("Action non effectuée.", $this->byId("calcul_emprise")->text());
318 $this->assertEquals("Action non effectuée.", $this->byId("dessin_emprise")->text());
319 $this->assertEquals("Action non effectuée.", $this->byId("calcul_centroide")->text());
320 $this->assertEquals("Action non effectuée.", $this->byId("recup_contrainte")->text());
321 // On vérifie les données du dossier
322 // XXX Modifier les données de test pour ajouter des références
323 // cadastrales et l'adresse
324 // On clique sur le bouton "J'ai de la chance"
325 $this->byId("chance-button")->click();
326 // On vérifie le message affiché
327 $this->assertEquals('Êtes vous sur de vouloir récupérer les contraintes ?', $this->alertText());
328 // On clique sur "OK" dans la boite de dialogue qui apparaît
329 $this->acceptAlert();sleep(5);
330 // On vérifie tous les messages
331 $this->assertRegExp("/^[\s\S]*Les parcelles existent.[\s\S]*$/", $this->byId("verif_parcelle")->text());
332 $this->assertRegExp("/^[\s\S]*L'emprise a été calculé.[\s\S]*$/", $this->byId("calcul_emprise")->text());
333 $this->assertEquals("Action non effectuée.", $this->byId("dessin_emprise")->text());
334 $this->assertRegExp("/^[\s\S]*Le centroide a été calculé[\s\S]*$/", $this->byId("calcul_centroide")->text());
335 $this->assertRegExp("/^[\s\S]*Les contraintes ont été récupérées.[\s\S]*$/", $this->byId("recup_contrainte")->text());
336 // On vérifie toutes les données
337 $this->assertEquals("Localiser POINT(122 223)", $this->byCssSelector("#sousform-sig_elyx #centroide")->text());
338 $this->assertEquals("- Une contrainte du PLU", $this->byCssSelector("#sousform-sig_elyx #servitude")->text());
339 // On clique sur le bouton retour
340 $this->byId("retour-button")->click();
341 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
342 $this->verifyNoErrors();
343 // On se déconnecte
344 $this->logout();
345 }
346
347 /**
348 * Test la sélection de dossiers dans le SIG vers openADS
349 */
350 public function test_selection_dossiers_sig() {
351 // On se connecte en tant que "instr"
352 $this->login("instr", "instr");
353 // On passe une liste de dossiers à l'url de redirection
354 $this->url("http://localhost/openads/app/affiche_selection_tab.php?dossiers=AT0130551200001P0;CU0130551200001P0");
355 // On vérifie qu'il n'y a pas d'erreur
356 $this->verifyNoErrors();
357 // vérification de l'affichage des dossiers dans le tableau
358 $this->assertEquals("Instruction > Dossiers D'instruction", $this->byCssSelector("#title h2")->text());
359 $this->assertContains("AT 013055 12 00001P0",$this->byCssSelector(".tab-tab")->text());
360 $this->assertContains("CU 013055 12 00001P0",$this->byCssSelector(".tab-tab")->text());
361 // On ne passe pas de dossiers à l'url de redirection
362 $this->url("http://localhost/openads/app/affiche_selection_tab.php");
363 // On vérifie qu'il n'y a pas d'erreur
364 $this->verifyNoErrors();
365 // vérification de l'affichage des dossiers dans le tableau
366 $this->assertEquals("Instruction > Dossiers D'instruction", $this->byCssSelector("#title h2")->text());
367 $this->assertContains("AT 013055 12 00001P0",$this->byCssSelector(".tab-tab")->text());
368 $this->assertContains("AZ 013055 12 00001P0",$this->byCssSelector(".tab-tab")->text());
369 $this->assertContains("CU 013055 12 00001P0",$this->byCssSelector(".tab-tab")->text());
370 $this->assertContains("DP 013055 12 00001P0",$this->byCssSelector(".tab-tab")->text());
371 $this->assertContains("PA 013055 12 00001P0",$this->byCssSelector(".tab-tab")->text());
372 $this->assertContains("PC 013055 12 00001P0",$this->byCssSelector(".tab-tab")->text());
373 $this->assertContains("PC 013055 12 00002P0",$this->byCssSelector(".tab-tab")->text());
374 $this->assertContains("PD 013055 12 00001P0",$this->byCssSelector(".tab-tab")->text());
375
376 // On passe un dossiers au à l'url de redirection
377 $this->url("http://localhost/openads/app/affiche_selection_tab.php?dossiers=AT0130551200001P0");
378 // On vérifie qu'il n'y a pas d'erreur
379 $this->verifyNoErrors();
380 // vérification de l'affichage des dossiers dans le tableau
381 $this->assertEquals("Instruction > Dossiers D'instruction", $this->byCssSelector("#title h2")->text());
382 $this->assertContains("AT 013055 12 00001P0",$this->byCssSelector(".tab-tab")->text());
383
384 // On se déconnecte
385 $this->logout();
386 }
387
388 /**
389 * Active l'option sig avec la valeur nécessaire pour la suite des tests
390 */
391 public function test_desactive_option_sig() {
392
393 // On se connecte en tant que "admin"
394 $this->login("admin", "admin");
395 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
396 $this->verifyNoErrors();
397 // On clique sur le lien "Administration" dans le menu
398 $this->byLinkText("Administration")->click();
399 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
400 $this->verifyNoErrors();
401 // // On clique sur le lien "Paramètre" dans le menu
402 $this->byLinkText("Paramètre")->click();
403 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
404 $this->verifyNoErrors();
405 // On remplis le champs de recherche simple
406 $this->byCssSelector("input[name='recherche']")->value('option_sig');
407 // On clique sur le bouton recherche
408 $this->byCssSelector(".ui-button")->click();
409 // On clique sur le résultat
410 $this->byLinkText("option_sig")->click();
411 // On clique sur le bouton "Modifier"
412 $this->byId('action-form-om_parametre-modifier')->click();
413 // On change la valeur par "aucun"
414 $this->byId('valeur')->clear();
415 $this->byId('valeur')->value('aucun');
416 // On valide la modification
417 $this->byCssSelector("input[value='Modifier']")->click();
418 // On vérifie le message de validation
419 $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#tabs-1 .message")->text());
420 // On clique sur le bouton 'Retour'
421 $this->byLinkText("Retour")->click();
422 // On vérifie les nouvelles données
423 $this->assertEquals("aucun", $this->byId("valeur")->text());
424 // On se déconnecte
425 $this->logout();
426 }
427
428 }
429 ?>

Properties

Name Value
svn:executable *
svn:keywords Id

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26