login("admin", "admin"); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur le lien "Administration" dans le menu $this->byLinkText("Administration")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // // On clique sur le lien "Paramètre" dans le menu $this->byLinkText("Paramètre")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On remplis le champs de recherche simple $this->byCssSelector("input[name='recherche']")->value('option_sig'); // On clique sur le bouton recherche $this->byCssSelector(".ui-button")->click(); // On clique sur le résultat $this->byLinkText("option_sig")->click(); // On clique sur le bouton "Modifier" $this->byId('action-form-om_parametre-modifier')->click(); // On change la valeur par "sig_externe" $this->byId('valeur')->clear(); $this->byId('valeur')->value('sig_externe'); // On valide la modification $this->byCssSelector("input[value='Modifier']")->click(); // On vérifie le message de validation $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#tabs-1 .message")->text()); // On clique sur le bouton 'Retour' $this->byLinkText("Retour")->click(); // On vérifie les nouvelles données $this->assertEquals("sig_externe", $this->byId("valeur")->text()); // On se déconnecte $this->logout(); } /** * Test la recherche avancée sur les parcelles * le dossier AZ 013055 12 00001P0 a comme références cadastrales * 806AB0001A0005 ce qui revient à dire qu'il possède ces références : * 806AB0001, 806AB0002, 806AB0003, 806AB0004 et 806AB0005 */ public function test_02_recherche_avancee_parcelle() { // On se connecte en tant que "instr" $this->login("instr", "instr"); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur le lien "Recherche" dans le menu $this->byLinkText("Recherche")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On remplit le champ parcelle de la recherche avancée $this->byCssSelector("#advanced-form #parcelle")->clear(); $this->byCssSelector("#advanced-form #parcelle")->value('806AB0001'); // On clique sur le bouton "Recherche" $this->byId("adv-search-submit")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On vérifie le DI "AZ0130551200001P0" apparaît $this->assertRegExp("/^[\s\S]*AZ 013055 12 00001P0[\s\S]*$/", $this->byCssSelector("#tab-dossier_instruction .tab-tab")->text()); // On remplit le champ parcelle de la recherche avancée $this->byCssSelector("#advanced-form #parcelle")->clear(); $this->byCssSelector("#advanced-form #parcelle")->value('806AB0001,806AB0003'); // On clique sur le bouton "Recherche" $this->byId("adv-search-submit")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On vérifie le DI "AZ0130551200001P0" apparaît toujours $this->assertRegExp("/^[\s\S]*AZ 013055 12 00001P0[\s\S]*$/", $this->byCssSelector("#tab-dossier_instruction .tab-tab")->text()); // On clique sur le lien "Autorisation" dans le menu $this->byCssSelector(".autorisation-20")->click(); sleep(2); // On clique sur le lien "Dossiers D'autorisation" dans le menu $this->byCssSelector(".dossier_autorisation-16")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On remplit le champ parcelle de la recherche avancée $this->byCssSelector("#advanced-form #parcelle")->clear(); $this->byCssSelector("#advanced-form #parcelle")->value('806AB0001'); // On clique sur le bouton "Recherche" $this->byId("adv-search-submit")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On vérifie le DA "AZ0130551200001" apparaît $this->assertRegExp("/^[\s\S]*AZ 013055 12 00001[\s\S]*$/", $this->byCssSelector("#tab-dossier_autorisation .tab-tab")->text()); // On remplit le champ parcelle de la recherche avancée $this->byCssSelector("#advanced-form #parcelle")->clear(); $this->byCssSelector("#advanced-form #parcelle")->value('806AB0001,806AB0003'); // On clique sur le bouton "Recherche" $this->byId("adv-search-submit")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On vérifie le DA "AZ0130551200001" apparaît toujours $this->assertRegExp("/^[\s\S]*AZ 013055 12 00001[\s\S]*$/", $this->byCssSelector("#tab-dossier_autorisation .tab-tab")->text()); // On se déconnecte $this->logout(); } /** * Test les liens vers le SIG */ public function test_03_01_lien_localisation_dossier() { // Test en CHEF DE SERVICE // On se connecte en tant que "chef" $this->login("chef", "chef"); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur le lien "Mes encours" dans le menu $this->byLinkText("Recherche")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // Test multi parcelles // On clique sur le lien sig du dossier "AZ0130551200001P0" dans le tableau $this->byId("action-tab-dossier_instruction-left-localiser-sig-externe-AZ0130551200001P0")->click(); sleep(5); // Liste les fenêtres $windows = $this->windowHandles(); // Change la fenêtre $this->window($windows[1]); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // On vérifie que le text est présent $this->assertEquals('http://sig.vdm.mars/elyx/layouts/vdm.jsp?[KEY=VM_PCI_PARC_MPM*/201806AB0001]&[KEY=VM_PCI_PARC_MPM*/201806AB0002]&[KEY=VM_PCI_PARC_MPM*/201806AB0003]&[KEY=VM_PCI_PARC_MPM*/201806AB0004]&[KEY=VM_PCI_PARC_MPM*/201806AB0005]&MAX_SCALE=500', $this->url()); // On ferme la fenêtre $this->closeWindow(); // On change le focus de la fenêtre $this->window($windows[0]); // On recherche le dossier $this->byId("dossier")->clear(); $this->byId("dossier")->value('PD0130551200001P0'); $this->byId("adv-search-submit")->click(); // Test une parcelle // On clique sur le lien sig du dossier "AZ0130551200001P0" dans le tableau $this->byId("action-tab-dossier_instruction-left-localiser-sig-externe-PD0130551200001P0")->click(); sleep(5); // Liste les fenêtres $windows = $this->windowHandles(); // Change la fenêtre $this->window($windows[1]); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // On vérifie que le text est présent $this->assertEquals('http://sig.vdm.mars/elyx/layouts/vdm.jsp?KEY=VM_PCI_PARC_MPM*/201805AB0009&MAX_SCALE=500', $this->url()); // On ferme la fenêtre $this->closeWindow(); // On change le focus de la fenêtre $this->window($windows[0]); // On recherche le dossier $this->byId("dossier")->clear(); $this->byId("dossier")->value('PC0130551200001P0'); $this->byId("adv-search-submit")->click(); // Test avec geom // On clique sur le lien sig du dossier "AZ0130551200001P0" dans le tableau $this->byId("action-tab-dossier_instruction-left-localiser-sig-externe-PC0130551200001P0")->click(); sleep(5); // Liste les fenêtres $windows = $this->windowHandles(); // Change la fenêtre $this->window($windows[1]); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // On vérifie que le text est présent $this->assertEquals('http://sig.vdm.mars/elyx/layouts/vdm.jsp?KEY=ADS_EMPRISE*/PC0130551200001P0&SELECT=true', $this->url()); // On ferme la fenêtre $this->closeWindow(); // On change le focus de la fenêtre $this->window($windows[0]); // On recherche le dossier $this->byId("dossier")->clear(); $this->byId("dossier")->value('PC0130551200002P0'); $this->byId("adv-search-submit")->click(); // Test sans geom nin références cadastrales // On clique sur le lien sig du dossier "AZ0130551200001P0" dans le tableau $this->byId("action-tab-dossier_instruction-left-localiser-sig-externe-PC0130551200002P0")->click(); sleep(5); // Liste les fenêtres $windows = $this->windowHandles(); // Change la fenêtre $this->window($windows[1]); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // On vérifie que le text est présent $this->assertEquals('http://sig.vdm.mars/elyx/layouts/vdm.jsp', $this->url()); // On ferme la fenêtre $this->closeWindow(); // On change le focus de la fenêtre $this->window($windows[0]); // On se déconnecte $this->logout(); } /** * Test les liens vers le SIG */ public function test_03_02_lien_localisation_dossier() { // Test en DIVISIONNAIRE // On se connecte en tant que "divi" $this->login("divi", "divi"); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur le lien "Mes encours" dans le menu $this->byLinkText("Recherche")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // Test multi parcelles // On clique sur le lien sig du dossier "AZ0130551200001P0" dans le tableau $this->byId("action-tab-dossier_instruction-left-localiser-sig-externe-AZ0130551200001P0")->click(); sleep(5); // Liste les fenêtres $windows = $this->windowHandles(); // Change la fenêtre $this->window($windows[1]); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // On vérifie que le text est présent $this->assertEquals('http://sig.vdm.mars/elyx/layouts/vdm.jsp?[KEY=VM_PCI_PARC_MPM*/201806AB0001]&[KEY=VM_PCI_PARC_MPM*/201806AB0002]&[KEY=VM_PCI_PARC_MPM*/201806AB0003]&[KEY=VM_PCI_PARC_MPM*/201806AB0004]&[KEY=VM_PCI_PARC_MPM*/201806AB0005]&MAX_SCALE=500', $this->url()); // On ferme la fenêtre $this->closeWindow(); // On change le focus de la fenêtre $this->window($windows[0]); // On recherche le dossier $this->byId("dossier")->clear(); $this->byId("dossier")->value('PD0130551200001P0'); $this->byId("adv-search-submit")->click(); // Test une parcelle // On clique sur le lien sig du dossier "AZ0130551200001P0" dans le tableau $this->byId("action-tab-dossier_instruction-left-localiser-sig-externe-PD0130551200001P0")->click(); sleep(5); // Liste les fenêtres $windows = $this->windowHandles(); // Change la fenêtre $this->window($windows[1]); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // On vérifie que le text est présent $this->assertEquals('http://sig.vdm.mars/elyx/layouts/vdm.jsp?KEY=VM_PCI_PARC_MPM*/201805AB0009&MAX_SCALE=500', $this->url()); // On ferme la fenêtre $this->closeWindow(); // On change le focus de la fenêtre $this->window($windows[0]); // On recherche le dossier $this->byId("dossier")->clear(); $this->byId("dossier")->value('PC0130551200001P0'); $this->byId("adv-search-submit")->click(); // Test avec geom // On clique sur le lien sig du dossier "AZ0130551200001P0" dans le tableau $this->byId("action-tab-dossier_instruction-left-localiser-sig-externe-PC0130551200001P0")->click(); sleep(5); // Liste les fenêtres $windows = $this->windowHandles(); // Change la fenêtre $this->window($windows[1]); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // On vérifie que le text est présent $this->assertEquals('http://sig.vdm.mars/elyx/layouts/vdm.jsp?KEY=ADS_EMPRISE*/PC0130551200001P0&SELECT=true', $this->url()); // On ferme la fenêtre $this->closeWindow(); // On change le focus de la fenêtre $this->window($windows[0]); // On recherche le dossier $this->byId("dossier")->clear(); $this->byId("dossier")->value('PC0130551200002P0'); $this->byId("adv-search-submit")->click(); // Test sans geom nin références cadastrales // On clique sur le lien sig du dossier "AZ0130551200001P0" dans le tableau $this->byId("action-tab-dossier_instruction-left-localiser-sig-externe-PC0130551200002P0")->click(); sleep(5); // Liste les fenêtres $windows = $this->windowHandles(); // Change la fenêtre $this->window($windows[1]); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // On vérifie que le text est présent $this->assertEquals('http://sig.vdm.mars/elyx/layouts/vdm.jsp', $this->url()); // On ferme la fenêtre $this->closeWindow(); // On change le focus de la fenêtre $this->window($windows[0]); // On se déconnecte $this->logout(); } /** * Test les liens vers le SIG */ public function test_03_03_lien_localisation_dossier() { // Test en INSTRUCTEUR // On se connecte en tant que "instr" $this->login("instr", "instr"); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur le lien "Mes encours" dans le menu $this->byLinkText("Recherche")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // Test multi parcelles // On clique sur le lien sig du dossier "AZ0130551200001P0" dans le tableau $this->byId("action-tab-dossier_instruction-left-localiser-sig-externe-AZ0130551200001P0")->click(); sleep(5); // Liste les fenêtres $windows = $this->windowHandles(); // Change la fenêtre $this->window($windows[1]); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // On vérifie que le text est présent $this->assertEquals('http://sig.vdm.mars/elyx/layouts/vdm.jsp?[KEY=VM_PCI_PARC_MPM*/201806AB0001]&[KEY=VM_PCI_PARC_MPM*/201806AB0002]&[KEY=VM_PCI_PARC_MPM*/201806AB0003]&[KEY=VM_PCI_PARC_MPM*/201806AB0004]&[KEY=VM_PCI_PARC_MPM*/201806AB0005]&MAX_SCALE=500', $this->url()); // On ferme la fenêtre $this->closeWindow(); // On change le focus de la fenêtre $this->window($windows[0]); // On recherche le dossier $this->byId("dossier")->clear(); $this->byId("dossier")->value('PD0130551200001P0'); $this->byId("adv-search-submit")->click(); // Test une parcelle // On clique sur le lien sig du dossier "AZ0130551200001P0" dans le tableau $this->byId("action-tab-dossier_instruction-left-localiser-sig-externe-PD0130551200001P0")->click(); sleep(5); // Liste les fenêtres $windows = $this->windowHandles(); // Change la fenêtre $this->window($windows[1]); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // On vérifie que le text est présent $this->assertEquals('http://sig.vdm.mars/elyx/layouts/vdm.jsp?KEY=VM_PCI_PARC_MPM*/201805AB0009&MAX_SCALE=500', $this->url()); // On ferme la fenêtre $this->closeWindow(); // On change le focus de la fenêtre $this->window($windows[0]); // On recherche le dossier $this->byId("dossier")->clear(); $this->byId("dossier")->value('PC0130551200001P0'); $this->byId("adv-search-submit")->click(); // Test avec geom // On clique sur le lien sig du dossier "AZ0130551200001P0" dans le tableau $this->byId("action-tab-dossier_instruction-left-localiser-sig-externe-PC0130551200001P0")->click(); sleep(5); // Liste les fenêtres $windows = $this->windowHandles(); // Change la fenêtre $this->window($windows[1]); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // On vérifie que le text est présent $this->assertEquals('http://sig.vdm.mars/elyx/layouts/vdm.jsp?KEY=ADS_EMPRISE*/PC0130551200001P0&SELECT=true', $this->url()); // On ferme la fenêtre $this->closeWindow(); // On change le focus de la fenêtre $this->window($windows[0]); // On recherche le dossier $this->byId("dossier")->clear(); $this->byId("dossier")->value('PC0130551200002P0'); $this->byId("adv-search-submit")->click(); // Test sans geom nin références cadastrales // On clique sur le lien sig du dossier "AZ0130551200001P0" dans le tableau $this->byId("action-tab-dossier_instruction-left-localiser-sig-externe-PC0130551200002P0")->click(); sleep(5); // Liste les fenêtres $windows = $this->windowHandles(); // Change la fenêtre $this->window($windows[1]); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // On vérifie que le text est présent $this->assertEquals('http://sig.vdm.mars/elyx/layouts/vdm.jsp', $this->url()); // On ferme la fenêtre $this->closeWindow(); // On change le focus de la fenêtre $this->window($windows[0]); // On se déconnecte $this->logout(); } /** * Test la synchronisation des requêtes. * XXX Le message retourné par le synchronisation peut être différent si le * test n'est pas lancé dans le run all testsuite. */ public function test_04_synchro_contrainte() { // On se connecte en tant que "admin" $this->login("admin", "admin"); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur le lien "Paramétrage Dossiers" dans le menu $this->byLinkText("Paramétrage Dossiers")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur le lien "Synchronisation Des Contraintes" dans le menu $this->byLinkText("Synchronisation Des Contraintes")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur le bouton "Synchroniser" $this->byId("button-contrainte-synchronisation-synchroniser")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On vérifie le message retourné $this->assertContains("Aucune contraintes à ajouter.", $this->byCssSelector(".message")->text()); $this->assertContains("2 contrainte(s) modifiée(s).", $this->byCssSelector(".message")->text()); $this->assertContains("Aucune contraintes à archiver.", $this->byCssSelector(".message")->text()); // On clique sur le lien "Contrainte" dans le menu $this->byLinkText("Contrainte")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On vérifie que la contrainte est ajoutée $this->assertContains("Une contrainte du PLU", $this->byCssSelector(".tab-tab")->text()); // On clique pour afficher les éléments archivés $this->byLinkText("Afficher les éléments expirés")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On vérifie une contrainte qui doit être archivée $this->assertContains("emplacement réservé pour équipement public (superstructure)", $this->byCssSelector(".tab-tab")->text()); // On se déconnecte $this->logout(); } /** * Test les différents traitements sur le SIG */ public function test_05_geolocalisation() { // On se connecte en tant que "instr" $this->login("instr", "instr"); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur le lien "Mes encours" dans le menu $this->byLinkText("Mes Encours")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur le lien "AZ0130551200001P0" dans le tableau $this->byLinkText("AZ 013055 12 00001P0")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur "Géolocalisation" $this->byLinkText("Géolocalisation")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On vérifie les messages des traitements "Vérifier les parcelles", // "Calculer l'emprise", "Dessiner l'emprise", "Calculer le centroïde" // et "Récupérer les contraintes" $this->assertEquals("Action non effectuée.", $this->byId("verif_parcelle")->text()); $this->assertEquals("Action non effectuée.", $this->byId("calcul_emprise")->text()); $this->assertEquals("Action non effectuée.", $this->byId("dessin_emprise")->text()); $this->assertEquals("Action non effectuée.", $this->byId("calcul_centroide")->text()); $this->assertEquals("Action non effectuée.", $this->byId("recup_contrainte")->text()); // On teste que le CSS des messages est bien un fond gris $bgc_gris = "rgba(227, 227, 227, 1)"; $this->assertEquals($bgc_gris, $this->byCssSelector("#verif_parcelle-message.ui-state-empty")->css('background-color')); $this->assertEquals($bgc_gris, $this->byCssSelector("#calcul_emprise-message.ui-state-empty")->css('background-color')); $this->assertEquals($bgc_gris, $this->byCssSelector("#dessin_emprise-message.ui-state-empty")->css('background-color')); $this->assertEquals($bgc_gris, $this->byCssSelector("#calcul_centroide-message.ui-state-empty")->css('background-color')); $this->assertEquals($bgc_gris, $this->byCssSelector("#recup_contrainte-message.ui-state-empty")->css('background-color')); // On vérifie les données du dossier $this->assertEquals("806AB0001A0005;", $this->byId("references_cadastrales")->text()); $this->assertEquals("113 boulevard pont de vivaux 13010 Marseille", $this->byId("adresse")->text()); // On clique sur le bouton "Vérifier les parcelles" $this->byId("verif_parcelle-button")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On vérifie les nouvelles données après le traitement $this->assertRegExp("/^[\s\S]*Les parcelles existent.[\s\S]*$/", $this->byId("verif_parcelle")->text()); // On clique sur le bouton "Calculer l'emprise" $this->byId("calcul_emprise-button")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On vérifie les nouvelles données après le traitement $this->assertRegExp("/^[\s\S]*L'emprise a été calculé.[\s\S]*$/", $this->byId("calcul_emprise")->text()); // On clique sur le bouton "Dessiner l'emprise" $this->byId("dessin_emprise-button")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On vérifie les nouvelles données après le traitement $this->assertRegExp("/^[\s\S]*Redirigé vers ElyxWeb.[\s\S]*$/", $this->byId("dessin_emprise")->text()); // Liste les fenêtres $windows = $this->windowHandles(); // On vérifie que l'onglet s'est ouvert $this->assertTrue(count($windows) == 2); // Change la fenêtre $this->window($windows[1]); // On ferme la fenêtre $this->closeWindow(); // On change le focus de la fenêtre $this->window($windows[0]); // On clique sur le bouton "Calculer le centroïde" $this->byId("calcul_centroide-button")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On vérifie les nouvelles données après le traitement $this->assertRegExp("/^[\s\S]*Le centroide a été calculé[\s\S]*$/", $this->byId("calcul_centroide")->text()); sleep(10); $this->assertEquals("Localiser POINT(122 223)", $this->byCssSelector("#sousform-sig_elyx #centroide")->text()); // On clique sur le bouton "Récupérer les contraintes" $this->byId("recup_contrainte-button")->click(); // On vérifie le message affiché $this->assertEquals('Êtes vous sur de vouloir récupérer les contraintes ?', $this->alertText()); // On clique sur "Annuler" dans la boite de dialogue qui apparaît $this->dismissAlert();sleep(1); // On vérifie que le message et les données n'ont pas été modifiés $this->assertEquals("Action non effectuée.", $this->byId("recup_contrainte")->text()); $this->assertEquals("", $this->byId("servitude")->text()); // On clique sur le bouton "Récupérer les contraintes" $this->byId("recup_contrainte-button")->click(); // On clique sur "OK" dans la boite de dialogue qui apparaît $this->acceptAlert();sleep(1); // On vérifie les nouvelles données après le traitement $this->assertContains("Les contraintes ont été récupérées.", $this->byId("recup_contrainte")->text()); // On vérifie le message du champ contrainte $this->assertContains("Aucune contraintes ajoutées depuis l'application", $this->byCssSelector("#sousform-sig_elyx #contrainte")->text()); $this->assertContains("2 contrainte(s) ajoutée(s) depuis le SIG", $this->byCssSelector("#sousform-sig_elyx #contrainte")->text()); // On teste que le CSS des messages est bien un fond vert $bgc_vert = "rgba(209, 242, 196, 1)"; $this->assertEquals($bgc_vert, $this->byCssSelector("#verif_parcelle-message.ui-state-valid")->css('background-color')); $this->assertEquals($bgc_vert, $this->byCssSelector("#calcul_emprise-message.ui-state-valid")->css('background-color')); $this->assertEquals($bgc_vert, $this->byCssSelector("#dessin_emprise-message.ui-state-valid")->css('background-color')); $this->assertEquals($bgc_vert, $this->byCssSelector("#calcul_centroide-message.ui-state-valid")->css('background-color')); $this->assertEquals($bgc_vert, $this->byCssSelector("#recup_contrainte-message.ui-state-valid")->css('background-color')); // On clique sur le bouton retour $this->byId("retour-button")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On se déconnecte $this->logout(); } /** * Test le bouton permettant de lancer tous les traitements * XXX lorsque la ressource de test le permettra, tester en cas d'erreur * d'un traitements */ public function test_06_all_geolocalisation_treatments() { // On se connecte en tant que "instr" $this->login("instr", "instr"); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur le lien "Mes encours" dans le menu $this->byLinkText("Mes Encours")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur le lien "DP 013055 12 00001P0" dans le tableau $this->byLinkText("DP 013055 12 00001P0")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur "Géolocalisation" $this->byLinkText("Géolocalisation")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On vérifie les messages des traitements "Vérifier les parcelles", // "Calculer l'emprise", "Dessiner l'emprise", "Calculer le centroïde" // et "Récupérer les contraintes" $this->assertEquals("Action non effectuée.", $this->byId("verif_parcelle")->text()); $this->assertEquals("Action non effectuée.", $this->byId("calcul_emprise")->text()); $this->assertEquals("Action non effectuée.", $this->byId("dessin_emprise")->text()); $this->assertEquals("Action non effectuée.", $this->byId("calcul_centroide")->text()); $this->assertEquals("Action non effectuée.", $this->byId("recup_contrainte")->text()); // On vérifie les données du dossier // XXX Modifier les données de test pour ajouter des références // cadastrales et l'adresse // On clique sur le bouton "J'ai de la chance" $this->byId("chance-button")->click(); // On vérifie le message affiché $this->assertEquals('Êtes vous sur de vouloir récupérer les contraintes ?', $this->alertText()); // On clique sur "OK" dans la boite de dialogue qui apparaît $this->acceptAlert();sleep(5); // On vérifie tous les messages $this->assertRegExp("/^[\s\S]*Les parcelles existent.[\s\S]*$/", $this->byId("verif_parcelle")->text()); $this->assertRegExp("/^[\s\S]*L'emprise a été calculé.[\s\S]*$/", $this->byId("calcul_emprise")->text()); $this->assertEquals("Action non effectuée.", $this->byId("dessin_emprise")->text()); $this->assertRegExp("/^[\s\S]*Le centroide a été calculé[\s\S]*$/", $this->byId("calcul_centroide")->text()); $this->assertRegExp("/^[\s\S]*Les contraintes ont été récupérées.[\s\S]*$/", $this->byId("recup_contrainte")->text()); // On vérifie toutes les données $this->assertEquals("Localiser POINT(122 223)", $this->byCssSelector("#sousform-sig_elyx #centroide")->text()); $this->assertContains("Aucune contraintes ajoutées depuis l'application", $this->byCssSelector("#sousform-sig_elyx #contrainte")->text()); $this->assertContains("2 contrainte(s) ajoutée(s) depuis le SIG", $this->byCssSelector("#sousform-sig_elyx #contrainte")->text()); // On clique sur le bouton retour $this->byId("retour-button")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On se déconnecte $this->logout(); } /** * Test l'ajout d'une contrainte sur un dossier. */ public function test_07_dossier_contrainte_add() { // On se connecte en tant que "instr" $this->login("instr", "instr"); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur le lien "Mes encours" dans le menu $this->byLinkText("Mes Encours")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur le lien "DP 013055 12 00001P0" dans le tableau $this->byLinkText("DP 013055 12 00001P0")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur "Contrainte(s)" $this->byId("dossier_contrainte")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur "Ajouter des contraintes" $this->byId("action-soustab-dossier_contrainte-corner-ajouter")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On déploie le groupe "Contraintes Openads" $this->byCssSelector("#fieldset-sousform-dossier_contrainte-contraintes-openads legend")->click(); sleep(1); // On déploie le sous-groupe "Environnement" $this->byCssSelector("#fieldset-sousform-dossier_contrainte-environnement legend")->click(); sleep(1); // On clique sur la checkbox de la contrainte $this->byId("contrainte_5")->click(); // On applique les changements $this->byCssSelector("input[value='Appliquer les changements']")->click();sleep(1); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On vérifie le message de validation $this->assertContains("La contrainte Pollution puits a été ajoutée au dossier.", $this->byCssSelector(".message")->text()); // On clique sur le bouton "Retour" $this->byLinkText("Retour")->click();sleep(1); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // Vérifie que la contrainte est présente $this->assertContains("Le puits d'une profondeur de [...] est pollué.", $this->byId("sousform-dossier_contrainte")->text()); // On se déconnecte $this->logout(); } /** * Test l'affichage des contraintes sur la fiche du DI. */ public function test_08_affichage_contrainte_DI() { // On se connecte en tant que "instr" $this->login("instr", "instr"); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur le lien "Mes encours" dans le menu $this->byLinkText("Mes Encours")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur le lien "DP 013055 12 00001P0" dans le tableau $this->byLinkText("DP 013055 12 00001P0")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // Ouvre le fieldset contraintes liées $this->byId("fieldset_contraintes_liees")->click(); // On vérifie les contraintes affichées $this->assertContains("Une contrainte du PLU", $this->byId("liste_contrainte")->text()); $this->assertContains("Le puits d'une profondeur de [...] est pollué.", $this->byId("liste_contrainte")->text()); // On se déconnecte $this->logout(); } /** * Change la condition d'affichage des contraintes sur la fiche d'un DI et * test l'affichage. */ public function test_09_option_contrainte_di() { // On se connecte en tant que "admin" $this->login("admin", "admin"); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur le lien "Administration" dans le menu $this->byLinkText("Administration")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // // On clique sur le lien "Paramètre" dans le menu $this->byLinkText("Paramètre")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On remplis le champs de recherche simple $this->byCssSelector("input[name='recherche']")->value('option_contrainte_di'); // On clique sur le bouton recherche $this->byCssSelector(".ui-button")->click(); // On clique sur le résultat $this->byLinkText("option_contrainte_di")->click(); // On clique sur le bouton "Modifier" $this->byId('action-form-om_parametre-modifier')->click(); // On change la valeur par "sig_externe" $this->byId('valeur')->clear(); $this->byId('valeur')->value('liste_ssgroupe=environnement'); // On valide la modification $this->byCssSelector("input[value='Modifier']")->click(); // On vérifie le message de validation $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#tabs-1 .message")->text()); // On clique sur le bouton 'Retour' $this->byLinkText("Retour")->click(); // On vérifie les nouvelles données $this->assertEquals("liste_ssgroupe=environnement", $this->byId("valeur")->text()); // On se déconnecte $this->deconnect(); // On se connecte en tant que "instr" $this->login("instr", "instr"); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur le lien "Mes encours" dans le menu $this->byLinkText("Mes Encours")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur le lien "DP 013055 12 00001P0" dans le tableau $this->byLinkText("DP 013055 12 00001P0")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // Ouvre le fieldset contraintes liées $this->byId("fieldset_contraintes_liees")->click(); // On vérifie les contraintes affichées $this->assertNotContains("Une contrainte du PLU", $this->byId("liste_contrainte")->text()); $this->assertContains("Le puits d'une profondeur de [...] est pollué.", $this->byId("liste_contrainte")->text()); // On se déconnecte $this->logout(); } /** * Test la modification et la suppression d'une contrainte sur un dossier. */ public function test_10_dossier_contrainte_modif_suppr() { // On se connecte en tant que "instr" $this->login("instr", "instr"); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur le lien "Mes encours" dans le menu $this->byLinkText("Mes Encours")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur le lien "DP 013055 12 00001P0" dans le tableau $this->byLinkText("DP 013055 12 00001P0")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur "Contrainte(s)" $this->byId("dossier_contrainte")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur le résultat $this->byLinkText("Pollution puits")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique pour modifier la contrainte $this->byId("action-sousform-dossier_contrainte-modifier")->click();sleep(1); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On modifie le texte complété $this->byId("texte_complete")->clear(); $this->byId("texte_complete")->value("Texte complété de la contrainte sur le dossier."); // On valide le formulaire $this->byXPath("//input[@value='Modifier']")->click(); // On vérifie le message de validation $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector("#sousform-dossier_contrainte .message .text")->text()); // On clique sur le bouton retour $this->byLinkText("Retour")->click();sleep(1); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur le résultat $this->byLinkText("Pollution puits")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On supprime la contrainte $this->byId("action-sousform-dossier_contrainte-supprimer")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On valide le formulaire $this->byXPath("//input[@value='Supprimer']")->click(); // On vérifie le message de validation $this->assertContains("La suppression a été correctement effectuée.", $this->byCssSelector("#sousform-dossier_contrainte .message .text")->text()); // On clique sur le bouton retour $this->byLinkText("Retour")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); } /** * Test la sélection de dossiers dans le SIG vers openADS */ public function test_08_selection_dossiers_sig() { // On se connecte en tant que "instr" $this->login("instr", "instr"); // On passe une liste de dossiers à l'url de redirection $this->url("http://localhost/".BASE_PATH_URL."/app/affiche_selection_tab.php?dossiers=AT0130551200001P0;CU0130551200001P0"); // On vérifie qu'il n'y a pas d'erreur $this->verifyNoErrors(); // vérification de l'affichage des dossiers dans le tableau $this->assertEquals("Instruction > Dossiers D'instruction", $this->byCssSelector("#title h2")->text()); $this->assertContains("AT 013055 12 00001P0",$this->byCssSelector(".tab-tab")->text()); $this->assertContains("CU 013055 12 00001P0",$this->byCssSelector(".tab-tab")->text()); // On ne passe pas de dossiers à l'url de redirection $this->url("http://localhost/".BASE_PATH_URL."/app/affiche_selection_tab.php"); // On vérifie qu'il n'y a pas d'erreur $this->verifyNoErrors(); // vérification de l'affichage des dossiers dans le tableau $this->assertEquals("Instruction > Dossiers D'instruction", $this->byCssSelector("#title h2")->text()); // On recherche le dossier $this->byId("dossier")->clear(); $this->byId("dossier")->value('AT0130551200001P0'); $this->byId("adv-search-submit")->click(); $this->assertContains("AT 013055 12 00001P0",$this->byCssSelector(".tab-tab")->text()); // On recherche le dossier $this->byId("dossier")->clear(); $this->byId("dossier")->value('AZ0130551200001P0'); $this->byId("adv-search-submit")->click(); $this->assertContains("AZ 013055 12 00001P0",$this->byCssSelector(".tab-tab")->text()); // On recherche le dossier $this->byId("dossier")->clear(); $this->byId("dossier")->value('CU0130551200001P0'); $this->byId("adv-search-submit")->click(); $this->assertContains("CU 013055 12 00001P0",$this->byCssSelector(".tab-tab")->text()); // On recherche le dossier $this->byId("dossier")->clear(); $this->byId("dossier")->value('DP0130551200001P0'); $this->byId("adv-search-submit")->click(); $this->assertContains("DP 013055 12 00001P0",$this->byCssSelector(".tab-tab")->text()); // On recherche le dossier $this->byId("dossier")->clear(); $this->byId("dossier")->value('PA0130551200001P0'); $this->byId("adv-search-submit")->click(); $this->assertContains("PA 013055 12 00001P0",$this->byCssSelector(".tab-tab")->text()); // On recherche le dossier $this->byId("dossier")->clear(); $this->byId("dossier")->value('PC0130551200001P0'); $this->byId("adv-search-submit")->click(); $this->assertContains("PC 013055 12 00001P0",$this->byCssSelector(".tab-tab")->text()); // On recherche le dossier $this->byId("dossier")->clear(); $this->byId("dossier")->value('PC0130551200002P0'); $this->byId("adv-search-submit")->click(); $this->assertContains("PC 013055 12 00002P0",$this->byCssSelector(".tab-tab")->text()); // On recherche le dossier $this->byId("dossier")->clear(); $this->byId("dossier")->value('PD0130551200001P0'); $this->byId("adv-search-submit")->click(); $this->assertContains("PD 013055 12 00001P0",$this->byCssSelector(".tab-tab")->text()); // On passe un dossiers au à l'url de redirection $this->url("http://localhost/".BASE_PATH_URL."/app/affiche_selection_tab.php?dossiers=AT0130551200001P0"); // On vérifie qu'il n'y a pas d'erreur $this->verifyNoErrors(); // vérification de l'affichage des dossiers dans le tableau $this->assertEquals("Instruction > Dossiers D'instruction", $this->byCssSelector("#title h2")->text()); $this->assertContains("AT 013055 12 00001P0",$this->byCssSelector(".tab-tab")->text()); // On se déconnecte $this->logout(); } /** * Active l'option sig avec la valeur nécessaire pour la suite des tests */ public function test_09_desactive_option_sig() { // On se connecte en tant que "admin" $this->login("admin", "admin"); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur le lien "Administration" dans le menu $this->byLinkText("Administration")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // // On clique sur le lien "Paramètre" dans le menu $this->byLinkText("Paramètre")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On remplis le champs de recherche simple $this->byCssSelector("input[name='recherche']")->value('option_sig'); // On clique sur le bouton recherche $this->byCssSelector(".ui-button")->click(); // On clique sur le résultat $this->byLinkText("option_sig")->click(); // On clique sur le bouton "Modifier" $this->byId('action-form-om_parametre-modifier')->click(); // On change la valeur par "aucun" $this->byId('valeur')->clear(); $this->byId('valeur')->value('aucun'); // On valide la modification $this->byCssSelector("input[value='Modifier']")->click(); // On vérifie le message de validation $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#tabs-1 .message")->text()); // On clique sur le bouton 'Retour' $this->byLinkText("Retour")->click(); // On vérifie les nouvelles données $this->assertEquals("aucun", $this->byId("valeur")->text()); // On se déconnecte $this->logout(); } } ?>