/[openfoncier]/branches/3.14.x/tests/testGeolocalisation.php
ViewVC logotype

Diff of /branches/3.14.x/tests/testGeolocalisation.php

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2172 by softime, Wed Aug 28 09:58:36 2013 UTC revision 2263 by softime, Fri Sep 6 17:58:20 2013 UTC
# Line 3  Line 3 
3   * Fichier contenant la classe de test Geolocalisation   * Fichier contenant la classe de test Geolocalisation
4   *   *
5   * @package openads   * @package openads
6   * @version   * @version SVN : $Id$
7   */   */
8    
9  // Fichiers requis  // Fichiers requis
# Line 11  require_once "base.php"; Line 11  require_once "base.php";
11    
12  /**  /**
13   * Classe de test sur les actions liées à la géolocalisation   * 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 {  class Geolocalisation extends Base2TestCase {
18    
19      /**      /**
20       * Test le calcul de l'emprise       * Test les liens vers le SIG
21         */
22        public function test_lien_localisation_dossier() {
23    
24            // On se connecte en tant que "instr"
25            $this->login("instr", "instr");
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 "Mes encours" dans le menu
29            $this->byLinkText("Recherche")->click();
30            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
31            $this->verifyNoErrors();
32            // Test multi parcelles
33            // On clique sur le lien sig du dossier "AZ0130551200001P0" dans le tableau
34            $this->byId("action-tab-dossier_instruction-left-localiser-sig-externe-AZ0130551200001P0")->click();
35            sleep(5);
36            // Liste les fenêtres
37            $windows = $this->windowHandles();
38            // Change la fenêtre
39            $this->window($windows[1]);
40            // On vérifie qu'il n'y ait pas d'erreur
41            $this->verifynoerrors();
42            // On vérifie que le text est présent
43            $this->assertEquals('http://sig.vdm.mars/elyx/layouts/vdm.jsp?[KEY=VM_PCI_PARC_MPM*/201806%20ab001]&[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());
44            // On ferme la fenêtre
45            $this->closeWindow();
46            // On change le focus de la fenêtre
47            $this->window($windows[0]);
48            // Test une parcelle
49            // On clique sur le lien sig du dossier "AZ0130551200001P0" dans le tableau
50            $this->byId("action-tab-dossier_instruction-left-localiser-sig-externe-PD0130551200001P0")->click();
51            sleep(5);
52            // Liste les fenêtres
53            $windows = $this->windowHandles();
54            // Change la fenêtre
55            $this->window($windows[1]);
56            // On vérifie qu'il n'y ait pas d'erreur
57            $this->verifynoerrors();
58            // On vérifie que le text est présent
59            $this->assertEquals('http://sig.vdm.mars/elyx/layouts/vdm.jsp?KEY=VM_PCI_PARC_MPM*/201805%20ab009&MAX_SCALE=500', $this->url());
60            // On ferme la fenêtre
61            $this->closeWindow();
62            // On change le focus de la fenêtre
63            $this->window($windows[0]);
64            // Test avec geom
65            // On clique sur le lien sig du dossier "AZ0130551200001P0" dans le tableau
66            $this->byId("action-tab-dossier_instruction-left-localiser-sig-externe-PC0130551200001P0")->click();
67            sleep(5);
68            // Liste les fenêtres
69            $windows = $this->windowHandles();
70            // Change la fenêtre
71            $this->window($windows[1]);
72            // On vérifie qu'il n'y ait pas d'erreur
73            $this->verifynoerrors();
74            // On vérifie que le text est présent
75            $this->assertEquals('http://sig.vdm.mars/elyx/layouts/vdm.jsp?KEY=ADS_DOSSIER*/PC0130551200001P0&SELECT=true', $this->url());
76            // On ferme la fenêtre
77            $this->closeWindow();
78            // On change le focus de la fenêtre
79            $this->window($windows[0]);
80            // Test sans geom nin références cadastrales
81            // On clique sur le lien sig du dossier "AZ0130551200001P0" dans le tableau
82            $this->byId("action-tab-dossier_instruction-left-localiser-sig-externe-PC0130551200002P0")->click();
83            sleep(5);
84            // Liste les fenêtres
85            $windows = $this->windowHandles();
86            // Change la fenêtre
87            $this->window($windows[1]);
88            // On vérifie qu'il n'y ait pas d'erreur
89            $this->verifynoerrors();
90            // On vérifie que le text est présent
91            $this->assertEquals('http://sig.vdm.mars/elyx/layouts/vdm.jsp', $this->url());
92            // On ferme la fenêtre
93            $this->closeWindow();
94            // On change le focus de la fenêtre
95            $this->window($windows[0]);
96            // On se déconnecte
97            $this->logout();
98    
99        }
100    
101        /**
102         * Test les différents traitements sur le SIG
103       */       */
104      public function test_calcul_emprise() {      public function test_geolocalisation() {
105    
106          // On se connecte en tant que "instr"          // On se connecte en tant que "instr"
107          $this->login("instr", "instr");          $this->login("instr", "instr");
# Line 33  class Geolocalisation extends Base2TestC Line 117  class Geolocalisation extends Base2TestC
117          $this->verifyNoErrors();          $this->verifyNoErrors();
118          // On clique sur "Géolocalisation"          // On clique sur "Géolocalisation"
119          $this->byLinkText("Géolocalisation")->click();          $this->byLinkText("Géolocalisation")->click();
120          // On vérifie le message du traitement "calcul de l'emprise"          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
121            $this->verifyNoErrors();
122            // On vérifie les messages des traitements "Vérifier les parcelles",
123            // "Calculer l'emprise", "Dessiner l'emprise", "Calculer le centroïde"
124            // et "Récupérer les contraintes"
125            $this->assertEquals("Action non effectuée.", $this->byId("verif_parcelle")->text());
126          $this->assertEquals("Action non effectuée.", $this->byId("calcul_emprise")->text());          $this->assertEquals("Action non effectuée.", $this->byId("calcul_emprise")->text());
127            $this->assertEquals("Action non effectuée.", $this->byId("dessin_emprise")->text());
128            $this->assertEquals("Action non effectuée.", $this->byId("calcul_centroide")->text());
129            $this->assertEquals("Action non effectuée.", $this->byId("recup_contrainte")->text());
130          // On vérifie les données du dossier          // On vérifie les données du dossier
131          $this->assertEquals("123ab001;", $this->byId("references_cadastrales")->text());          $this->assertEquals("806ab001A005;", $this->byId("references_cadastrales")->text());
132          $this->assertEquals("113 boulevard pont de vivaux Marseille 13010", $this->byId("adresse")->text());          $this->assertEquals("113 boulevard pont de vivaux Marseille 13010", $this->byId("adresse")->text());
133            // On clique sur le bouton "Vérifier les parcelles"
134            $this->byId("verif_parcelle-button")->click();
135            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
136            $this->verifyNoErrors();
137            // On vérifie les nouvelles données après le traitement
138            $this->assertRegExp("/^[\s\S]*Les parcelles existent.[\s\S]*$/", $this->byId("verif_parcelle")->text());
139          // On clique sur le bouton "Calculer l'emprise"          // On clique sur le bouton "Calculer l'emprise"
140          $this->byXPath("//div[6]/div[2]/div[3]/div[3]/div/label/input")->click();          $this->byId("calcul_emprise-button")->click();
141            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
142            $this->verifyNoErrors();
143            // On vérifie les nouvelles données après le traitement
144            $this->assertRegExp("/^[\s\S]*L'emprise a été calculé.[\s\S]*$/", $this->byId("calcul_emprise")->text());
145            // On clique sur le bouton "Dessiner l'emprise"
146            $this->byId("dessin_emprise-button")->click();
147            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
148            $this->verifyNoErrors();
149            // On vérifie les nouvelles données après le traitement
150            $this->assertRegExp("/^[\s\S]*Redirigé vers ElyxWeb.[\s\S]*$/", $this->byId("dessin_emprise")->text());
151            // Liste les fenêtres
152            $windows = $this->windowHandles();
153            // On vérifie que l'onglet s'est ouvert
154            $this->assertTrue(count($windows) == 2);
155            // Change la fenêtre
156            $this->window($windows[1]);
157            // On ferme la fenêtre
158            $this->closeWindow();
159            // On change le focus de la fenêtre
160            $this->window($windows[0]);
161             // On clique sur le bouton "Calculer le centroïde"
162            $this->byId("calcul_centroide-button")->click();
163            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
164            $this->verifyNoErrors();
165            // On vérifie les nouvelles données après le traitement        
166            $this->assertRegExp("/^[\s\S]*Le centroide a été calculé[\s\S]*$/", $this->byId("calcul_centroide")->text());
167            $this->assertEquals("Localiser POINT(122 223)", $this->byCssSelector("#sousform-sig_elyx #centroide")->text());
168            // On clique sur le bouton "Récupérer les contraintes"
169            $this->byId("recup_contrainte-button")->click();
170            // On vérifie le message affiché
171            $this->assertEquals('Êtes vous sur de vouloir récupérer les contraintes ?', $this->alertText());
172            // On clique sur "Annuler" dans la boite de dialogue qui apparaît
173            $this->dismissAlert();sleep(1);
174            // On vérifie que le message et les données n'ont pas été modifiés
175            $this->assertEquals("Action non effectuée.", $this->byId("recup_contrainte")->text());
176            $this->assertEquals("", $this->byId("servitude")->text());
177            // On clique sur le bouton "Récupérer les contraintes"
178            $this->byId("recup_contrainte-button")->click();
179            // On clique sur "OK" dans la boite de dialogue qui apparaît
180            $this->acceptAlert();sleep(1);
181          // On vérifie les nouvelles données après le traitement          // On vérifie les nouvelles données après le traitement
182          $this->assertEquals("Dernier traitement effectué le ".date("d/m/Y H:i:s").". L'emprise a ete calcule.", $this->byId("calcul_emprise")->text());          $this->assertRegExp("/^[\s\S]*Les contraintes ont été récupérées.[\s\S]*$/", $this->byId("recup_contrainte")->text());
183            $this->assertEquals("- Une contrainte du PLU", $this->byCssSelector("#sousform-sig_elyx #servitude")->text());
184          // On clique sur le bouton retour          // On clique sur le bouton retour
185          $this->byXPath("//div[6]/div[2]/div[2]/a")->click();          $this->byId("retour-button")->click();
186            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
187            $this->verifyNoErrors();
188          // On se déconnecte          // On se déconnecte
189          $this->logout();          $this->logout();
   
190      }      }
191    
192      /**      /**
193       * Test le calcul du centroide       * Test le bouton permettant de lancer tous les traitements
194         * XXX lorsque la ressource de test le permettra, tester en cas d'erreur
195         * d'un traitements
196       */       */
197      public function test_calcul_centroide() {      public function test_all_geolocalisation_treatments() {
198    
199          // On se connecte en tant que "instr"          // On se connecte en tant que "instr"
200          $this->login("instr", "instr");          $this->login("instr", "instr");
# Line 63  class Geolocalisation extends Base2TestC Line 205  class Geolocalisation extends Base2TestC
205          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
206          $this->verifyNoErrors();          $this->verifyNoErrors();
207          // On clique sur le lien "AZ0130551200001P0" dans le tableau          // On clique sur le lien "AZ0130551200001P0" dans le tableau
208          $this->byLinkText("AZ 013055 12 00001P0")->click();          $this->byLinkText("DP 013055 12 00001P0")->click();
209          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
210          $this->verifyNoErrors();          $this->verifyNoErrors();
211          // On clique sur "Géolocalisation"          // On clique sur "Géolocalisation"
212          $this->byLinkText("Géolocalisation")->click();          $this->byLinkText("Géolocalisation")->click();
213          // On vérifie le message du traitement "calcul du centroide"          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
214            $this->verifyNoErrors();
215            // On vérifie les messages des traitements "Vérifier les parcelles",
216            // "Calculer l'emprise", "Dessiner l'emprise", "Calculer le centroïde"
217            // et "Récupérer les contraintes"
218            $this->assertEquals("Action non effectuée.", $this->byId("verif_parcelle")->text());
219            $this->assertEquals("Action non effectuée.", $this->byId("calcul_emprise")->text());
220            $this->assertEquals("Action non effectuée.", $this->byId("dessin_emprise")->text());
221          $this->assertEquals("Action non effectuée.", $this->byId("calcul_centroide")->text());          $this->assertEquals("Action non effectuée.", $this->byId("calcul_centroide")->text());
222            $this->assertEquals("Action non effectuée.", $this->byId("recup_contrainte")->text());
223          // On vérifie les données du dossier          // On vérifie les données du dossier
224          $this->assertEquals("123ab001;", $this->byId("references_cadastrales")->text());          // XXX Modifier les données de test pour ajouter des références
225          $this->assertEquals("113 boulevard pont de vivaux Marseille 13010", $this->byId("adresse")->text());          // cadastrales et l'adresse
226          // On clique sur le bouton "Calculer le centroïde"          // On clique sur le bouton "J'ai de la chance"
227          $this->byXPath("//div[6]/div[2]/div[3]/div[5]/div/label/input")->click();          $this->byId("chance-button")->click();
228          // On vérifie les nouvelles données après le traitement          // On vérifie le message affiché
229          $this->assertEquals("Dernier traitement effectué le ".date("d/m/Y H:i:s").". Le centroide a ete calcule : 122, 223", $this->byId("calcul_centroide")->text());          $this->assertEquals('Êtes vous sur de vouloir récupérer les contraintes ?', $this->alertText());
230          $this->assertEquals("122, 223", $this->byId("centroide")->text());          // On clique sur "OK" dans la boite de dialogue qui apparaît
231            $this->acceptAlert();sleep(5);
232            // On vérifie tous les messages
233            $this->assertRegExp("/^[\s\S]*Les parcelles existent.[\s\S]*$/", $this->byId("verif_parcelle")->text());
234            $this->assertRegExp("/^[\s\S]*L'emprise a été calculé.[\s\S]*$/", $this->byId("calcul_emprise")->text());
235            $this->assertEquals("Action non effectuée.", $this->byId("dessin_emprise")->text());
236            $this->assertRegExp("/^[\s\S]*Le centroide a été calculé[\s\S]*$/", $this->byId("calcul_centroide")->text());
237            $this->assertRegExp("/^[\s\S]*Les contraintes ont été récupérées.[\s\S]*$/", $this->byId("recup_contrainte")->text());
238            // On vérifie toutes les données
239            $this->assertEquals("Localiser POINT(122 223)", $this->byCssSelector("#sousform-sig_elyx #centroide")->text());
240            $this->assertEquals("- Une contrainte du PLU", $this->byCssSelector("#sousform-sig_elyx #servitude")->text());
241          // On clique sur le bouton retour          // On clique sur le bouton retour
242          $this->byXPath("//div[6]/div[2]/div[2]/a")->click();          $this->byId("retour-button")->click();
243            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
244            $this->verifyNoErrors();
245          // On se déconnecte          // On se déconnecte
246          $this->logout();          $this->logout();
247        }
248    
249        /**
250         * Test la sélection de dossiers dans le SIG vers openADS
251         */
252        public function test_selection_dossiers_sig() {
253            // On se connecte en tant que "instr"
254            $this->login("instr", "instr");
255            // On passe une liste de dossiers à l'url de redirection
256            $this->url("http://localhost/openads/app/affiche_selection_tab.php?dossiers=AT0130551200001P0;CU0130551200001P0");
257            // On vérifie qu'il n'y a pas d'erreur
258            $this->verifyNoErrors();
259            // vérification de l'affichage des dossiers dans le tableau
260            $this->assertEquals("Instruction > Dossiers D'instruction", $this->byCssSelector("#title h2")->text());
261            $this->assertContains("AT 013055 12 00001P0",$this->byCssSelector(".tab-tab")->text());
262            $this->assertContains("CU 013055 12 00001P0",$this->byCssSelector(".tab-tab")->text());
263            // On ne passe pas de dossiers à l'url de redirection
264            $this->url("http://localhost/openads/app/affiche_selection_tab.php");
265            // On vérifie qu'il n'y a pas d'erreur
266            $this->verifyNoErrors();
267            // vérification de l'affichage des dossiers dans le tableau
268            $this->assertEquals("Instruction > Dossiers D'instruction", $this->byCssSelector("#title h2")->text());
269            $this->assertContains("AT 013055 12 00001P0",$this->byCssSelector(".tab-tab")->text());
270            $this->assertContains("AZ 013055 12 00001P0",$this->byCssSelector(".tab-tab")->text());
271            $this->assertContains("CU 013055 12 00001P0",$this->byCssSelector(".tab-tab")->text());
272            $this->assertContains("DP 013055 12 00001P0",$this->byCssSelector(".tab-tab")->text());
273            $this->assertContains("PA 013055 12 00001P0",$this->byCssSelector(".tab-tab")->text());
274            $this->assertContains("PC 013055 12 00001P0",$this->byCssSelector(".tab-tab")->text());
275            $this->assertContains("PC 013055 12 00002P0",$this->byCssSelector(".tab-tab")->text());
276            $this->assertContains("PD 013055 12 00001P0",$this->byCssSelector(".tab-tab")->text());
277            
278            // On passe un dossiers au à l'url de redirection
279            $this->url("http://localhost/openads/app/affiche_selection_tab.php?dossiers=AT0130551200001P0");
280            // On vérifie qu'il n'y a pas d'erreur
281            $this->verifyNoErrors();
282            // vérification de l'affichage des dossiers dans le tableau
283            $this->assertEquals("Instruction > Dossiers D'instruction", $this->byCssSelector("#title h2")->text());
284            $this->assertContains("AT 013055 12 00001P0",$this->byCssSelector(".tab-tab")->text());
285    
286            // On se déconnecte
287            $this->logout();
288      }      }
       
289  }  }
290  ?>  ?>

Legend:
Removed from v.2172  
changed lines
  Added in v.2263

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26