/[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 2178 by softime, Thu Aug 29 09:56:20 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 la vérification de l'emprise       * Test les liens vers le SIG
21       */       */
22      // public function test_verif_emprise() {      public function test_lien_localisation_dossier() {
23    
24      //     // On se connecte en tant que "instr"          // On se connecte en tant que "instr"
25      //     $this->login("instr", "instr");          $this->login("instr", "instr");
26      //     // 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é
27      //     $this->verifyNoErrors();          $this->verifyNoErrors();
28      //     // On clique sur le lien "Mes encours" dans le menu          // On clique sur le lien "Mes encours" dans le menu
29      //     $this->byLinkText("Mes Encours")->click();          $this->byLinkText("Recherche")->click();
30      //     // 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é
31      //     $this->verifyNoErrors();          $this->verifyNoErrors();
32      //     // On clique sur le lien "AZ0130551200001P0" dans le tableau          // Test multi parcelles
33      //     $this->byLinkText("AZ 013055 12 00001P0")->click();          // On clique sur le lien sig du dossier "AZ0130551200001P0" dans le tableau
34      //     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché          $this->byId("action-tab-dossier_instruction-left-localiser-sig-externe-AZ0130551200001P0")->click();
35      //     $this->verifyNoErrors();          sleep(5);
36      //     // On clique sur "Géolocalisation"          // Liste les fenêtres
37      //     $this->byLinkText("Géolocalisation")->click();          $windows = $this->windowHandles();
38      //     // On vérifie le message du traitement "Vérifier les parcelles"          // Change la fenêtre
39      //     $this->assertEquals("Action non effectuée.", $this->byId("verif_parcelle")->text());          $this->window($windows[1]);
40      //     // On vérifie les données du dossier          // On vérifie qu'il n'y ait pas d'erreur
41      //     $this->assertEquals("123ab001;", $this->byId("references_cadastrales")->text());          $this->verifynoerrors();
42      //     $this->assertEquals("113 boulevard pont de vivaux Marseille 13010", $this->byId("adresse")->text());          // On vérifie que le text est présent
43      //     // On clique sur le bouton "Vérifier les parcelles"          $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      //     $this->byXPath("//div[6]/div[2]/div[3]/div[2]/div/label/input")->click();          // On ferme la fenêtre
45      //     // On vérifie les nouvelles données après le traitement          $this->closeWindow();
46      //     $this->assertEquals("Dernier traitement effectué le ".date("d/m/Y H:i:s").". Les parcelles existent.", $this->byId("verif_parcelle")->text());          // On change le focus de la fenêtre
47      //     // On clique sur le bouton retour          $this->window($windows[0]);
48      //     $this->byXPath("//div[6]/div[2]/div[2]/a")->click();          // Test une parcelle
49      //     // On se déconnecte          // On clique sur le lien sig du dossier "AZ0130551200001P0" dans le tableau
50      //     $this->logout();          $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 le dessin de m'emprise       * Test les différents traitements sur le SIG
103       */       */
104      public function test_dessin_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 68  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 "Dessiner 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());
127          $this->assertEquals("Action non effectuée.", $this->byId("dessin_emprise")->text());          $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"
140            $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"          // On clique sur le bouton "Dessiner l'emprise"
146          $this->byXPath("//div[6]/div[2]/div[3]/div[4]/div/label/input")->click();          $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          // Liste les fenêtres
152          $windows = $this->windowHandles();          $windows = $this->windowHandles();
153          // On vérifie que l'onglet s'est ouvert          // On vérifie que l'onglet s'est ouvert
# Line 85  class Geolocalisation extends Base2TestC Line 158  class Geolocalisation extends Base2TestC
158          $this->closeWindow();          $this->closeWindow();
159          // On change le focus de la fenêtre          // On change le focus de la fenêtre
160          $this->window($windows[0]);          $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").". Redirection vers ElyxWeb.", $this->byId("dessin_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 de l'emprise       * 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_emprise() {      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 108  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 de l'emprise"          // 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());          $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());
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 l'emprise"          // On clique sur le bouton "J'ai de la chance"
227          $this->byXPath("//div[6]/div[2]/div[3]/div[3]/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").". L'emprise a ete calcule.", $this->byId("calcul_emprise")->text());          $this->assertEquals('Êtes vous sur de vouloir récupérer les contraintes ?', $this->alertText());
230            // 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 le calcul du centroide       * Test la sélection de dossiers dans le SIG vers openADS
251       */       */
252      public function test_calcul_centroide() {      public function test_selection_dossiers_sig() {
   
253          // On se connecte en tant que "instr"          // On se connecte en tant que "instr"
254          $this->login("instr", "instr");          $this->login("instr", "instr");
255          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché          // 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();          $this->verifyNoErrors();
259          // On clique sur le lien "Mes encours" dans le menu          // vérification de l'affichage des dossiers dans le tableau
260          $this->byLinkText("Mes Encours")->click();          $this->assertEquals("Instruction > Dossiers D'instruction", $this->byCssSelector("#title h2")->text());
261          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché          $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();          $this->verifyNoErrors();
267          // On clique sur le lien "AZ0130551200001P0" dans le tableau          // vérification de l'affichage des dossiers dans le tableau
268          $this->byLinkText("AZ 013055 12 00001P0")->click();          $this->assertEquals("Instruction > Dossiers D'instruction", $this->byCssSelector("#title h2")->text());
269          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché          $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();          $this->verifyNoErrors();
282          // On clique sur "Géolocalisation"          // vérification de l'affichage des dossiers dans le tableau
283          $this->byLinkText("Géolocalisation")->click();          $this->assertEquals("Instruction > Dossiers D'instruction", $this->byCssSelector("#title h2")->text());
284          // On vérifie le message du traitement "calcul du centroide"          $this->assertContains("AT 013055 12 00001P0",$this->byCssSelector(".tab-tab")->text());
285          $this->assertEquals("Action non effectuée.", $this->byId("calcul_centroide")->text());  
         // On vérifie les données du dossier  
         $this->assertEquals("123ab001;", $this->byId("references_cadastrales")->text());  
         $this->assertEquals("113 boulevard pont de vivaux Marseille 13010", $this->byId("adresse")->text());  
         // On clique sur le bouton "Calculer le centroïde"  
         $this->byXPath("//div[6]/div[2]/div[3]/div[5]/div/label/input")->click();  
         // On vérifie les nouvelles données après le traitement  
         $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("122, 223", $this->byId("centroide")->text());  
         // On clique sur le bouton retour  
         $this->byXPath("//div[6]/div[2]/div[2]/a")->click();  
286          // On se déconnecte          // On se déconnecte
287          $this->logout();          $this->logout();
   
288      }      }
       
289  }  }
290  ?>  ?>

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26