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

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

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

revision 2302 by vpihour, Mon Sep 16 16:25:21 2013 UTC revision 3156 by vpihour, Wed Oct 1 09:13:40 2014 UTC
# Line 14  require_once "base.php"; Line 14  require_once "base.php";
14   */   */
15  class GuichetUnique extends Base2TestCase {  class GuichetUnique extends Base2TestCase {
16    
17        // Liste des utilisateurs
18        var $listUtlisateurs = array(
19                array(
20                    "login" => "guichet",
21                    "mdp" => "guichet"
22                ),
23                array(
24                    "login" => "adminfonct",
25                    "mdp" => "adminfonct"
26                ),
27            );
28    
29      /**      /**
30       * Test l'ajout d'une demande       * Ce test vise uniquement à vérifier que les écrans correspondant à chaque
31         * entrée de menu ne génère pas une erreur de base de données
32       */       */
33      public function testAjoutDemandeInitial() {      // Fonction privé
34        private function ouvertureMenu($utilisateur) {
35          // On se connecte à l'application          // On se connecte
36          $this->login("guichet", "guichet");          $this->login($utilisateur["login"], $utilisateur["mdp"]);
37          // On clique sur le menu "Nouveau Dossier"          // Ouvre le menu
38            $this->openMenu("Guichet Unique", $utilisateur);
39            // On vérifie le menu "Nouveau Dossier"
40          $this->byLinkText("Nouveau Dossier")->click();          $this->byLinkText("Nouveau Dossier")->click();
41          // On vérifie qu'il n'y ait pas d'erreur          $this->assertContains("Guichet Unique > Nouvelle Demande > Nouveau Dossier",
42          $this->verifynoerrors();              $this->byId("title")->text());
43          // On vérifie le nom de l'onglet          $this->verifyNoErrors();
44          $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());          // On vérifie le menu "Dossier En Cours"
45          // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"          $this->byLinkText("Dossier En Cours")->click();
46          $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel("Permis de construire pour une maison individuelle et / ou ses annexes");          $this->assertContains("Guichet Unique > Nouvelle Demande > Dossier En Cours",
47          // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"              $this->byId("title")->text());
48          $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");          $this->verifyNoErrors();
49          // On clique pour ajouter un pétitionnaire principale          // On vérifie le menu "Autre Dossier"
50          $this->byId("add_petitionnaire_principal")->click();          $this->byLinkText("Autre Dossier")->click();
51          // On remplit le champ          $this->assertContains("Guichet Unique > Nouvelle Demande > Autre Dossier",
52          $this->byId("particulier_nom")->value("DURAND");              $this->byId("title")->text());
53          // On remplit le champ          $this->verifyNoErrors();
54          $this->byId("particulier_prenom")->value("MICKAEL");          // On vérifie le menu "Récépissé"
55          // On remplit le champ          $this->byLinkText("Récépissé")->click();
56          $this->byId("particulier_date_naissance")->value("03/01/1956");          $this->assertContains("Guichet Unique > Nouvelle Demande > Récépissé",
57          // On remplit le champ              $this->byId("title")->text());
58          $this->byId("particulier_commune_naissance")->value("LILLE");          $this->verifyNoErrors();
59          // On remplit le champ          // On vérifie le menu "Pétitionnaire Fréquent"
60          $this->byId("particulier_departement_naissance")->value("NORD");          $this->byLinkText("Pétitionnaire Fréquent")->click();
61          // On remplit le champ          $this->assertContains("Guichet Unique > Nouvelle Demande > Pétitionnaire Fréquent",
62          $this->byId("numero")->value("12");              $this->byId("title")->text());
63          // On remplit le champ          $this->verifyNoErrors();
64          $this->byId("voie")->value("RUE DE LA LOI");          // On vérifie le menu "Registre"
65          // On remplit le champ          $this->byLinkText("Registre")->click();
66          $this->byId("complement")->value("APPT 12");          $this->assertContains("Guichet Unique > Affichage Réglementaire > Registre",
67          // On remplit le champ              $this->byId("title")->text());
68          $this->byId("localite")->value("MARSEILLE");          $this->verifyNoErrors();
69          // On remplit le champ          // On vérifie le menu "Attestation"
70          $this->byId("code_postal")->value("13012");          $this->byLinkText("Attestation")->click();
71          // On remplit le champ          $this->assertContains("Guichet Unique > Affichage Réglementaire > Attestation",
72          $this->byId("telephone_fixe")->value("0404040404");              $this->byId("title")->text());
73          // On clique sur ajouter          $this->verifyNoErrors();
         $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);  
         // On vérifie qu'il n'y ait pas d'erreur  
         $this->verifynoerrors();  
         // On vérifie le message  
         $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-petitionnaire .message")->text());  
         // On clique sur le bouton retour  
         $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);  
         // On vérifie que le text est présent  
         $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());  
         // On clique sur ajouter  
         $this->byXPath("//input[@value='Ajouter']")->click();  
         // On vérifie qu'il n'y ait pas d'erreur  
         $this->verifynoerrors();  
         // On vérifie le message  
         $this->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°PC 013055 13 00001[\s\S]*$/",$this->byCssSelector(".message")->text());  
         // On clique  
         $this->byCssSelector("a.lien")->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->assertRegExp("/^[\s\S]*RECEPISSE DE DEPOT[\s\S]*$/",$this->source());  
         // On ferme la fenêtre  
         $this->closeWindow();  
         // On change le focus de la fenêtre  
         $this->window($windows[0]);  
         // On clique sur le bouton retour  
         $this->byLinkText("Retour")->click();  
         // On vérifie qu'il n'y ait pas d'erreur  
         $this->verifynoerrors();  
         // On vérifie que le répertoire s'est crée  
         $this->assertTrue(file_exists("../trs/numerisation/Todo/PC0130551300001.P0"));  
74          // On se déconnecte          // On se déconnecte
75          $this->logout();          $this->deconnect();
76      }      }
77            // Fonction public
78        public function test01OuvertureMenu() {
79            // Récupération des utilisateurs
80            $utilisateurs = $this->listUtlisateurs;
81            // Pour chaque utilisateur on lance le test
82            foreach ($utilisateurs as $utilisateur) {
83                //
84                $this->ouvertureMenu($utilisateur);
85            }
86            // On vérifie la déconnexion
87            $this->verifyDeconnect();
88        }
89    
90      /**      /**
91       * Test l'ajout d'une demande initial en utilisant les références cadastrales       * Test l'ajout d'une demande
      * pour récupérer l'adresse  
92       */       */
93      public function testAjoutDemandeInitialReferenceCadastrale() {      // Fonction privé
94        private function ajoutDemandeInitial($utilisateur) {
95    
96          // On se connecte à l'application          // On se connecte à l'application
97          $this->login("guichet", "guichet");          $this->login($utilisateur["login"], $utilisateur["mdp"]);
98            // Ouvre le menu
99            $this->openMenu("Guichet Unique", $utilisateur);
100          // On clique sur le menu "Nouveau Dossier"          // On clique sur le menu "Nouveau Dossier"
101          $this->byLinkText("Nouveau Dossier")->click();          $this->byLinkText("Nouveau Dossier")->click();
102          // On vérifie qu'il n'y ait pas d'erreur          // On vérifie qu'il n'y ait pas d'erreur
# Line 113  class GuichetUnique extends Base2TestCas Line 107  class GuichetUnique extends Base2TestCas
107          $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel("Permis de construire pour une maison individuelle et / ou ses annexes");          $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel("Permis de construire pour une maison individuelle et / ou ses annexes");
108          // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"          // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
109          $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");          $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
         //On saisie des références cadastrales inccorect  
         $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(1)")->value("aa");  
         // On change le focus pour faire apparaitre le message  
         $this->byId('date_demande')->click();  
         sleep(2);  
         // Message d'erreur concernant le numéro de quartier  
         $this->assertEquals("Vous ne devez saisir que des nombres entiers", $this->alertText());  
         $this->acceptAlert();  
         $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(2)")->value("11");  
         // On change le focus pour faire apparaitre le message  
         $this->byId('date_demande')->click();  
         sleep(2);  
         // Message d'erreur concernant la section  
         $this->assertEquals("Vous ne devez saisir que des lettres dans ce champs.", $this->alertText());  
         $this->acceptAlert();  
         $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(3)")->value("bb");  
         // On change le focus pour faire apparaitre le message  
         $this->byId('date_demande')->click();  
         sleep(2);  
         // Message d'erreur concernant le numéro de parcelle  
         $this->assertEquals("Vous ne devez saisir que des nombres entiers", $this->alertText());  
         $this->acceptAlert();  
         //On saisie les références cadastrales  
         $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(1)")->value("1");  
         $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(2)")->value("dc");  
         $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(3)")->value("15");  
         //On clique sur le bouton de recherche "Cadastrale = > Adresse"  
         $this->byId("cad-adr-them")->click();  
         sleep(1);  
         // On vérifie que le format des champs est mise à jour automatiquement  
         $this->assertEquals("001", $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(1)")->value());  
         $this->assertEquals("DC", $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(2)")->value());  
         $this->assertEquals("0015", $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(3)")->value());  
         //On verifie l'adresse  
         $this->assertEquals("0075", $this->byId("terrain_adresse_voie_numero")->value());  
         $this->assertEquals("TRA DE LA DOMINIQUE", $this->byId("terrain_adresse_voie")->value());  
         $this->assertEquals("13011", $this->byId("terrain_adresse_code_postal")->value());  
         $this->assertEquals("MARSEILLE", $this->byId("terrain_adresse_localite")->value());  
         // On valide le formulaire  
         $this->byXPath("//input[@value='Ajouter']")->click();  
         // On vérifie le message d'erreur  
         $this->assertRegExp("/^[\s\S]*SAISIE NON ENREGISTRÉE[\s\S]*$/",$this->byCssSelector(".message")->text());  
         sleep(1);  
         // On vérifie que les références cadastrales soient toujours affiché  
         $this->assertEquals("001", $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(1)")->value());  
         $this->assertEquals("DC", $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(2)")->value());  
         $this->assertEquals("0015", $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(3)")->value());          
         //On saisie les références cadastrales  
         $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(1)")->clear();  
         $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(2)")->clear();  
         $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(3)")->clear();  
         //On clique sur le bouton de recherche "Cadastrale = > Adresse"  
         $this->byId("cad-adr-them")->click();  
         //On valide le message d'erreur  
         $this->assertEquals('Aucune référence cadastrale fournie', $this->alertText());  
         $this->acceptAlert();  
110          // On clique pour ajouter un pétitionnaire principale          // On clique pour ajouter un pétitionnaire principale
111          $this->byId("add_petitionnaire_principal")->click();          $this->byId("add_petitionnaire_principal")->click();
112          // On remplit le champ          // On remplit le champ
# Line 193  class GuichetUnique extends Base2TestCas Line 131  class GuichetUnique extends Base2TestCas
131          $this->byId("code_postal")->value("13012");          $this->byId("code_postal")->value("13012");
132          // On remplit le champ          // On remplit le champ
133          $this->byId("telephone_fixe")->value("0404040404");          $this->byId("telephone_fixe")->value("0404040404");
134            // On remplit le champ
135            $this->byId("fax")->value("0405040404");
136          // On clique sur ajouter          // On clique sur ajouter
137          $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);          $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
138          // On vérifie qu'il n'y ait pas d'erreur          // On vérifie qu'il n'y ait pas d'erreur
# Line 208  class GuichetUnique extends Base2TestCas Line 148  class GuichetUnique extends Base2TestCas
148          // On vérifie qu'il n'y ait pas d'erreur          // On vérifie qu'il n'y ait pas d'erreur
149          $this->verifynoerrors();          $this->verifynoerrors();
150          // On vérifie le message          // On vérifie le message
151          $this->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°PC 013055 13 00002[\s\S]*$/",$this->byCssSelector(".message")->text());          $this->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°[\s\S]*$/",$this->byCssSelector(".message")->text());
152            // Récupération du numéro de dossier
153            preg_match('/(PC)[0-9 ]*(P0)/', $this->byCssSelector(".message .text")->text(), $matches);
154            $dossier_libelle = $matches[0];
155            $dossier = str_replace(' ', '', $dossier_libelle);
156            $dossier_dir = substr_replace($dossier, '.', -2, -3);
157          // On clique          // On clique
158          $this->byCssSelector("a.lien")->click();sleep(5);          $this->byCssSelector("a.lien")->click();sleep(5);
159          // Liste les fenêtres          // Liste les fenêtres
# Line 228  class GuichetUnique extends Base2TestCas Line 173  class GuichetUnique extends Base2TestCas
173          // On vérifie qu'il n'y ait pas d'erreur          // On vérifie qu'il n'y ait pas d'erreur
174          $this->verifynoerrors();          $this->verifynoerrors();
175          // On vérifie que le répertoire s'est crée          // On vérifie que le répertoire s'est crée
176          $this->assertTrue(file_exists("../trs/numerisation/Todo/PC0130551300002.P0"));          $this->assertTrue(file_exists("../trs/numerisation/Todo/".$dossier_dir));
177          // On se déconnecte          // On se déconnecte
178          $this->logout();          $this->deconnect();
179      }      }
180            // Fonction public
181        public function test02AjoutDemandeInitial() {
182            // Récupération des utilisateurs
183            $utilisateurs = $this->listUtlisateurs;
184            // Pour chaque utilisateur on lance le test
185            foreach ($utilisateurs as $utilisateur) {
186                //
187                $this->ajoutDemandeInitial($utilisateur);
188            }
189            // On vérifie la déconnexion
190            $this->verifyDeconnect();
191        }
192    
193      /**      /**
194       * Test l'ajout d'une demande avec un instructeur       * Test l'ajout d'une demande et de création d'une nouvelle sequence
195       */       */
196      public function testAjoutDemandeInitialInstructeur() {      public function testAjoutDemandeNouvelleSequence() {
197    
198          // On se connecte à l'application          // On se connecte à l'application
199          $this->login("instr", "instr");          $this->login("guichet", "guichet");
200          // On clique sur le menu "Nouveau Dossier"          // On clique sur le menu "Nouveau Dossier"
201          $this->byLinkText("Cliquer ici pour saisir une nouvelle demande concernant le dépôt d'un nouveau dossier")->click();          $this->byLinkText("Nouveau Dossier")->click();
202          // On vérifie qu'il n'y ait pas d'erreur          // On vérifie qu'il n'y ait pas d'erreur
203          $this->verifynoerrors();          $this->verifynoerrors();
204          // On vérifie le nom de l'onglet          // On vérifie le nom de l'onglet
# Line 250  class GuichetUnique extends Base2TestCas Line 207  class GuichetUnique extends Base2TestCas
207          $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel("Permis de construire pour une maison individuelle et / ou ses annexes");          $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel("Permis de construire pour une maison individuelle et / ou ses annexes");
208          // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"          // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
209          $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");          $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
210            // Modification de la date
211            $this->byId("date_demande")->clear();
212            $this->acceptAlert();
213            $this->byId("date_demande")->value("10/10/2014");
214          // On clique pour ajouter un pétitionnaire principale          // On clique pour ajouter un pétitionnaire principale
215          $this->byId("add_petitionnaire_principal")->click();          $this->byId("add_petitionnaire_principal")->click();
216          // On remplit le champ          // On remplit le champ
# Line 279  class GuichetUnique extends Base2TestCas Line 240  class GuichetUnique extends Base2TestCas
240          // On vérifie qu'il n'y ait pas d'erreur          // On vérifie qu'il n'y ait pas d'erreur
241          $this->verifynoerrors();          $this->verifynoerrors();
242          // On vérifie le message          // On vérifie le message
243          $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("form div.message")->text());          $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-petitionnaire .message")->text());
244          // On clique sur le bouton retour          // On clique sur le bouton retour
245          $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);          $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
246          // On vérifie que le text est présent          // On vérifie que le text est présent
# Line 289  class GuichetUnique extends Base2TestCas Line 250  class GuichetUnique extends Base2TestCas
250          // On vérifie qu'il n'y ait pas d'erreur          // On vérifie qu'il n'y ait pas d'erreur
251          $this->verifynoerrors();          $this->verifynoerrors();
252          // On vérifie le message          // On vérifie le message
253          $this->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°PC 013055 13 00003[\s\S]*$/",$this->byCssSelector(".message")->text());          $this->assertContains("Création du dossier d'autorisation n°",$this->byCssSelector(".message .text")->text());
254          // On clique          // Récupération du numéro de dossier
255          $this->byCssSelector("a.lien")->click();sleep(5);          preg_match('/(PC)[0-9 ]*(P0)/', $this->byCssSelector(".message .text")->text(), $dossier);
256          // Liste les fenêtres          $dossier = $dossier[0];
         $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->assertRegExp("/^[\s\S]*RECEPISSE DE DEPOT[\s\S]*$/",$this->source());  
         // On ferme la fenêtre  
         $this->closeWindow();  
         // On change le focus de la fenêtre  
         $this->window($windows[0]);  
         // On clique sur le bouton retour  
         $this->byLinkText("Retour")->click();  
         // On vérifie qu'il n'y ait pas d'erreur  
         $this->verifynoerrors();  
         // On vérifie que le répertoire s'est crée  
         $this->assertTrue(file_exists("../trs/numerisation/Todo/PC0130551300003.P0"));  
257          // On se déconnecte          // On se déconnecte
258          $this->logout();          $this->logout();
259      }      }
# Line 319  class GuichetUnique extends Base2TestCas Line 263  class GuichetUnique extends Base2TestCas
263       */       */
264      public function testAjoutDemandeModification() {      public function testAjoutDemandeModification() {
265    
266            // Année en cours
267            $annee = date("y");
268    
269          /// On se connecte à l'application en tant qu'instructeur          /// On se connecte à l'application en tant qu'instructeur
270          // pour ajouter une instruction arrêté sur le dossier crée          // pour ajouter une instruction arrêté sur le dossier crée
271          $this->login("instr", "instr");          $this->login("instr", "instr");
# Line 327  class GuichetUnique extends Base2TestCas Line 274  class GuichetUnique extends Base2TestCas
274          // 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é
275          $this->verifyNoErrors();          $this->verifyNoErrors();
276          // On clique sur le dossier          // On clique sur le dossier
277          $this->byXPath("//div[@id='tab-dossier_instruction']/table/tbody/tr[8]/td/a/span")->click();          $this->byId("action-tab-dossier_instruction-left-consulter-PC013055".$annee."00001P0")->click();
278          // 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é
279          $this->verifyNoErrors();          $this->verifyNoErrors();
280          // On clique sur l'onglet instruction          // On clique sur l'onglet instruction
# Line 337  class GuichetUnique extends Base2TestCas Line 284  class GuichetUnique extends Base2TestCas
284          // 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é
285          $this->verifyNoErrors();          $this->verifyNoErrors();
286          // On choisi l'événement          // On choisi l'événement
287          $this->select($this->byId("evenement"))->selectOptionByLabel("accepter un dossier sans réserve [acceptation]");          $this->select($this->byId("evenement"))->selectOptionByValue(81);
288          // On clique sur le bouton ajouter          // On clique sur le bouton ajouter
289          $this->byXPath("//input[@value='Ajouter']")->click();          $this->byXPath("//input[@value='Ajouter']")->click();
290          // On vérifie que l'instruction s'est bien ajouté          // On vérifie que l'instruction s'est bien ajouté
# Line 361  class GuichetUnique extends Base2TestCas Line 308  class GuichetUnique extends Base2TestCas
308          // On se connecte en tant que guichet unique          // On se connecte en tant que guichet unique
309          $this->login("guichet", "guichet");          $this->login("guichet", "guichet");
310          // On clique sur le menu "Nouveau Dossier"          // On clique sur le menu "Nouveau Dossier"
311          $this->byLinkText("Dossier Existant")->click();          $this->byLinkText("Autre Dossier")->click();
         // On vérifie qu'il n'y ait pas d'erreur  
         $this->verifynoerrors();  
         // On vérifie le nom de l'onglet  
         $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());  
         // On clique pour ajouter une demande au dossier existant  
         $this->byXPath("//div[@id='tab-demande_dossier_existant']/table/tbody/tr[8]/td/a/span")->click();  
         // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché  
         $this->verifyNoErrors();  
         // Vérifie le fil d'Ariane  
         $this->assertEquals("Guichet Unique > Nouvelle Demande > Dossier Existant > PC 013055 13 00001P0", $this->byXPath("//div[3]/div/h2")->text());  
         // On choisis le type de demande  
         $this->select($this->byId("demande_type"))->selectOptionByLabel("Demande de modification");  
         // On clique sur ajouter  
         $this->byXPath("//input[@value='Ajouter']")->click();  
         // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché  
         $this->verifyNoErrors();  
         // On vérifie le message  
         $this->assertRegExp("/^[\s\S]*Création du dossier d'instruction n°PC 013055 13 00001M01[\s\S]*$/",$this->byCssSelector("BODY")->text());  
         // On vérifie que le répertoire s'est crée  
         $this->assertTrue(file_exists("../trs/numerisation/Todo/PC0130551300001.M01"));  
         // On se déconnecte  
         $this->logout();  
           
     }  
   
     /**  
      * Test l'ajout d'une demande de modification par un instructeur  
      */  
     public function testAjoutDemandeModificationInstructeur() {  
   
         /// On se connecte à l'application en tant qu'instructeur  
         // pour ajouter une instruction arrêté sur le dossier crée  
         $this->login("instr", "instr");  
         // On clique sur 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 clique sur le dossier  
         $this->byXPath("//div[@id='tab-dossier_instruction']/table/tbody/tr[8]/td/a/span")->click();  
         // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché  
         $this->verifyNoErrors();  
         // On clique sur l'onglet instruction  
         $this->byId("instruction")->click();  
         // On clique sur le + pour ajouter une instruction  
         $this->byCssSelector("#sousform-instruction .actions-max-1 a")->click();  
         // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché  
         $this->verifyNoErrors();  
         // On choisi l'événement  
         $this->select($this->byId("evenement"))->selectOptionByLabel("accepter un dossier sans réserve [acceptation]");  
         // On clique sur le bouton ajouter  
         $this->byXPath("//input[@value='Ajouter']")->click();  
         // On vérifie que l'instruction s'est bien ajouté  
         $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text());  
         // On clique sur le bouton retour  
         $this->byCssSelector("#sousform-instruction form a.retour")->click();  
         // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché  
         $this->verifyNoErrors();  
         // On clique sur l'onglet DI  
         $this->byId("main")->click();  
         // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché  
         $this->verifyNoErrors();  
         // on rafraichis la page  
         $this->refresh();  
         // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché  
         $this->verifyNoErrors();  
         // On vérifie l'état du dossier  
         $this->assertEquals("dossier accepter", $this->byId('etat')->text());  
         // On clique sur le menu  
         $this->byLinkText("Guichet Unique")->click();  
         $this->byLinkText("Dossier Existant")->click();  
312          // On vérifie qu'il n'y ait pas d'erreur          // On vérifie qu'il n'y ait pas d'erreur
313          $this->verifynoerrors();          $this->verifynoerrors();
314          // On vérifie le nom de l'onglet          // On vérifie le nom de l'onglet
315          $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());          $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
316          // On clique pour ajouter une demande au dossier existant          // On clique pour ajouter une demande au dossier existant
317          $this->byXPath("//div[@id='tab-demande_dossier_existant']/table/tbody/tr[8]/td/a/span")->click();          $this->byId("action-tab-demande_autre_dossier-left-consulter-PC013055".$annee."00001P0")->click();
318          // 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é
319          $this->verifyNoErrors();          $this->verifyNoErrors();
320          // Vérifie le fil d'Ariane          // Vérifie le fil d'Ariane
321          $this->assertEquals("Guichet Unique > Nouvelle Demande > Dossier Existant > PC 013055 13 00001M01", $this->byXPath("//div[3]/div/h2")->text());          $this->assertContains("Guichet Unique > Nouvelle Demande > Autre Dossier > PC 013055", $this->byXPath("//div[3]/div/h2")->text());
322          // On choisis le type de demande          // On choisis le type de demande
323          $this->select($this->byId("demande_type"))->selectOptionByLabel("Demande de modification");          $this->select($this->byId("demande_type"))->selectOptionByLabel("Demande de modification");
324          // On clique sur ajouter          // On clique sur ajouter
# Line 449  class GuichetUnique extends Base2TestCas Line 326  class GuichetUnique extends Base2TestCas
326          // 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é
327          $this->verifyNoErrors();          $this->verifyNoErrors();
328          // On vérifie le message          // On vérifie le message
329          $this->assertRegExp("/^[\s\S]*Création du dossier d'instruction n°PC 013055 13 00001M02[\s\S]*$/",$this->byCssSelector("BODY")->text());          $this->assertRegExp("/^[\s\S]*Création du dossier d'instruction n°[\s\S]*$/", $this->byCssSelector("BODY")->text());
330          // On vérifie que le répertoire s'est crée          // On vérifie que le répertoire s'est crée
331          $this->assertTrue(file_exists("../trs/numerisation/Todo/PC0130551300001.M02"));          $this->assertTrue(file_exists("../trs/numerisation/Todo/PC013055".$annee."00001.M01"));
332          // On se déconnecte          // On se déconnecte
333          $this->logout();          $this->logout();
334                    
# Line 656  class GuichetUnique extends Base2TestCas Line 533  class GuichetUnique extends Base2TestCas
533          // On vérifie qu'il n'y ait pas d'erreur          // On vérifie qu'il n'y ait pas d'erreur
534          $this->verifynoerrors();          $this->verifynoerrors();
535          // On vérifie le message          // On vérifie le message
536          $this->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°PC 013055 13 00004[\s\S]*$/",$this->byCssSelector(".message")->text());          $this->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°[\s\S]*$/",$this->byCssSelector(".message")->text());
537          // On clique          // On clique
538          $this->byCssSelector("a.lien")->click();sleep(5);          $this->byCssSelector("a.lien")->click();sleep(5);
539          // Liste les fenêtres          // Liste les fenêtres
# Line 698  class GuichetUnique extends Base2TestCas Line 575  class GuichetUnique extends Base2TestCas
575          // On se déconnecte          // On se déconnecte
576          $this->logout();          $this->logout();
577      }      }
578    
579        /**
580         * Active l'option sig avec la valeur nécessaire pour la suite des tests
581         */
582        public function test_active_option_sig() {
583    
584            // On se connecte en tant que "admin"
585            $this->login("admin", "admin");
586            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
587            $this->verifyNoErrors();
588            // On clique sur le lien "Administration" dans le menu
589            $this->byLinkText("Administration")->click();
590            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
591            $this->verifyNoErrors();
592            // // On clique sur le lien "Paramètre" dans le menu
593            $this->byLinkText("Paramètre")->click();
594            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
595            $this->verifyNoErrors();
596            // On remplis le champs de recherche simple
597            $this->byCssSelector("input[name='recherche']")->value('option_sig');
598            // On clique sur le bouton recherche
599            $this->byCssSelector(".ui-button")->click();
600            // On clique sur le résultat
601            $this->byLinkText("option_sig")->click();
602            // On clique sur le bouton "Modifier"
603            $this->byId('action-form-om_parametre-modifier')->click();
604            // On change la valeur par "sig_externe"
605            $this->byId('valeur')->clear();
606            $this->byId('valeur')->value('sig_externe');
607            // On valide la modification
608            $this->byCssSelector("input[value='Modifier']")->click();
609            // On vérifie le message de validation
610            $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#tabs-1 .message")->text());
611            // On clique sur le bouton 'Retour'
612            $this->byLinkText("Retour")->click();
613            // On vérifie les nouvelles données
614            $this->assertEquals("sig_externe", $this->byId("valeur")->text());
615            // On se déconnecte
616            $this->logout();
617        }
618    
619        /**
620         * Test l'ajout d'une demande initial en utilisant les références cadastrales
621         * pour récupérer l'adresse
622         */
623        public function testAjoutDemandeInitialReferenceCadastrale() {
624    
625            // On se connecte à l'application
626            $this->login("guichet", "guichet");
627            // On clique sur le menu "Nouveau Dossier"
628            $this->byLinkText("Nouveau Dossier")->click();
629            // On vérifie qu'il n'y ait pas d'erreur
630            $this->verifynoerrors();
631            // On vérifie le nom de l'onglet
632            $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
633            // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
634            $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel("Permis de construire pour une maison individuelle et / ou ses annexes");
635            // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
636            $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
637            // XXX Problème de javascript seulement dans cette fonction
638            // Les alerts ne passent pas lorsque le focus n'est pas sur le
639            // navigateur
640            //On saisie des références cadastrales inccorect
641            // $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(1)")->value("aa");
642            // // On change le focus pour faire apparaitre le message
643            // $this->byId('date_demande')->value(date('d/m/Y'));
644            // sleep(5);
645            // // Message d'erreur concernant le numéro de quartier
646            // $this->assertEquals("Vous ne devez saisir que des nombres entiers", $this->alertText());
647            // $this->acceptAlert();
648            // $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(2)")->value("11");
649            // // On change le focus pour faire apparaitre le message
650            // $this->byId('date_demande')->value(date('d/m/Y'));
651            // sleep(5);
652            // // Message d'erreur concernant la section
653            // $this->assertEquals("Vous ne devez saisir que des lettres dans ce champs.", $this->alertText());
654            // $this->acceptAlert();
655            // $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(3)")->value("bb");
656            // // On change le focus pour faire apparaitre le message
657            // $this->byId('date_demande')->value(date('d/m/Y'));
658            // sleep(5);
659            // // Message d'erreur concernant le numéro de parcelle
660            // $this->assertEquals("Vous ne devez saisir que des nombres entiers", $this->alertText());
661            // $this->acceptAlert();
662            //On saisie les références cadastrales
663            // $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(1)")->value("1");
664            // $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(2)")->value("dc");
665            // $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(3)")->value("15");
666            // XXX Renplace les valeurs juste au dessus qui devraient se mettre au
667            // bon format automatiquement grâce au javascript
668            $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(1)")->value("001");
669            $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(2)")->value("DC");
670            $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(3)")->value("0015");
671            //On clique sur le bouton de recherche "Cadastrale = > Adresse"
672            $this->byId("cad-adr-them")->click();
673            sleep(1);
674            // On vérifie que le format des champs est mise à jour automatiquement
675            $this->assertEquals("001", $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(1)")->attribute('value'));
676            $this->assertEquals("DC", $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(2)")->attribute('value'));
677            $this->assertEquals("0015", $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(3)")->attribute('value'));
678            //On verifie l'adresse
679            $this->assertEquals("0075", $this->byId("terrain_adresse_voie_numero")->attribute('value'));
680            $this->assertEquals("TRA DE LA DOMINIQUE", $this->byId("terrain_adresse_voie")->attribute('value'));
681            $this->assertEquals("13011", $this->byId("terrain_adresse_code_postal")->attribute('value'));
682            $this->assertEquals("MARSEILLE", $this->byId("terrain_adresse_localite")->attribute('value'));
683            // On valide le formulaire
684            $this->byXPath("//input[@value='Ajouter']")->click();
685            // On vérifie le message d'erreur
686            $this->assertRegExp("/^[\s\S]*SAISIE NON ENREGISTRÉE[\s\S]*$/", $this->byCssSelector(".message")->text());
687            sleep(1);
688            // On vérifie que les références cadastrales soient toujours affiché
689            $this->assertEquals("001", $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(1)")->attribute('value'));
690            $this->assertEquals("DC", $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(2)")->attribute('value'));
691            $this->assertEquals("0015", $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(3)")->attribute('value'));        
692            //On saisie les références cadastrales
693            $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(1)")->clear();
694            $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(2)")->clear();
695            $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(3)")->clear();
696            //On clique sur le bouton de recherche "Cadastrale = > Adresse"
697            $this->byId("cad-adr-them")->click();
698            //On valide le message d'erreur
699            $this->assertEquals('Aucune référence cadastrale fournie', $this->alertText());
700            $this->acceptAlert();
701            // On clique pour ajouter un pétitionnaire principale
702            $this->byId("add_petitionnaire_principal")->click();
703            // On remplit le champ
704            $this->byId("particulier_nom")->value("DURAND");
705            // On remplit le champ
706            $this->byId("particulier_prenom")->value("MICKAEL");
707            // On remplit le champ
708            $this->byId("particulier_date_naissance")->value("03/01/1956");
709            // On remplit le champ
710            $this->byId("particulier_commune_naissance")->value("LILLE");
711            // On remplit le champ
712            $this->byId("particulier_departement_naissance")->value("NORD");
713            // On remplit le champ
714            $this->byId("numero")->value("12");
715            // On remplit le champ
716            $this->byId("voie")->value("RUE DE LA LOI");
717            // On remplit le champ
718            $this->byId("complement")->value("APPT 12");
719            // On remplit le champ
720            $this->byId("localite")->value("MARSEILLE");
721            // On remplit le champ
722            $this->byId("code_postal")->value("13012");
723            // On remplit le champ
724            $this->byId("telephone_fixe")->value("0404040404");
725            // On clique sur ajouter
726            $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
727            // On vérifie qu'il n'y ait pas d'erreur
728            $this->verifynoerrors();
729            // On vérifie le message
730            $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-petitionnaire .message")->text());
731            // On clique sur le bouton retour
732            $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
733            // On vérifie que le text est présent
734            $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
735            // On clique sur ajouter
736            $this->byXPath("//input[@value='Ajouter']")->click();
737            // On vérifie qu'il n'y ait pas d'erreur
738            $this->verifynoerrors();
739            // On vérifie le message
740            $this->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°[\s\S]*$/",$this->byCssSelector(".message")->text());
741            // Récupération du numéro de dossier
742            preg_match('/(PC)[0-9 ]*(P0)/', $this->byCssSelector(".message .text")->text(), $dossier);
743            $dossier_libelle = $dossier[0];
744            $dossier = str_replace(' ', '', $dossier_libelle);
745            $dossier_dir = substr_replace($dossier, '.', -2, -3);
746            // On clique
747            $this->byCssSelector("a.lien")->click();sleep(5);
748            // Liste les fenêtres
749            $windows = $this->windowHandles();
750            // Change la fenêtre
751            $this->window($windows[1]);
752            // On vérifie qu'il n'y ait pas d'erreur
753            $this->verifynoerrors();
754            // On vérifie que le text est présent
755            $this->assertRegExp("/^[\s\S]*RECEPISSE DE DEPOT[\s\S]*$/",$this->source());
756            // On ferme la fenêtre
757            $this->closeWindow();
758            // On change le focus de la fenêtre
759            $this->window($windows[0]);
760            // On clique sur le bouton retour
761            $this->byLinkText("Retour")->click();
762            // On vérifie qu'il n'y ait pas d'erreur
763            $this->verifynoerrors();
764            // On vérifie que le répertoire s'est crée
765            $this->assertTrue(file_exists("../trs/numerisation/Todo/".$dossier_dir));
766            // On se déconnecte
767            $this->logout();
768        }
769            
770      /*      /*
771       * Cette fonction va tester l'affectation automatique des instructeurs aux       * Cette fonction va tester l'affectation automatique des instructeurs aux
# Line 816  class GuichetUnique extends Base2TestCas Line 884  class GuichetUnique extends Base2TestCas
884          // On change le focus de la fenêtre          // On change le focus de la fenêtre
885          $this->window($windows[0]);          $this->window($windows[0]);
886      }      }
887    
888        /**
889         * Vérifie le menu "Autre Dossier" et "Dossier En Cours"
890         */
891        public function test_autre_dossier() {
892    
893            // On se connecte en tant que "guichet"
894            $this->login("guichet", "guichet");
895            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
896            $this->verifyNoErrors();
897            // On clique sur "Autre Dossier"
898            $this->byLinkText("Autre Dossier")->click();
899            // On vérifie qu'il n'y ait pas d'erreur
900            $this->verifynoerrors();
901            // On vérifie que ledossier qui ne doit pas être dans
902            // "Dossier En Cours" sont ici
903            $this->assertRegExp("/^[\s\S]*PC 013055 14 00001P0[\s\S]*$/",
904                $this->byCssSelector("#tab-demande_autre_dossier .tab-tab")->text());
905            // On clique sur "Dossier En Cours"
906            $this->byLinkText("Dossier En Cours")->click();
907            // On vérifie qu'il n'y ait pas d'erreur
908            $this->verifynoerrors();
909            // On vérifie que le dossier précédement contrôlé n'ait pas
910            // affiché
911            $this->assertNotContains("PC 013055 13 00001P0",
912                $this->byCssSelector("#tab-demande_dossier_encours .tab-tab")->text());
913            // On se déconnecte
914            $this->logout();
915        }
916    
917        /**
918         * Désactive l'option sig avec la valeur nécessaire
919         */
920        public function test_desactive_option_sig() {
921    
922            // On se connecte en tant que "admin"
923            $this->login("admin", "admin");
924            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
925            $this->verifyNoErrors();
926            // On clique sur le lien "Administration" dans le menu
927            $this->byLinkText("Administration")->click();
928            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
929            $this->verifyNoErrors();
930            // // On clique sur le lien "Paramètre" dans le menu
931            $this->byLinkText("Paramètre")->click();
932            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
933            $this->verifyNoErrors();
934            // On remplis le champs de recherche simple
935            $this->byCssSelector("input[name='recherche']")->value('option_sig');
936            // On clique sur le bouton recherche
937            $this->byCssSelector(".ui-button")->click();
938            // On clique sur le résultat
939            $this->byLinkText("option_sig")->click();
940            // On clique sur le bouton "Modifier"
941            $this->byId('action-form-om_parametre-modifier')->click();
942            // On change la valeur par "aucun"
943            $this->byId('valeur')->clear();
944            $this->byId('valeur')->value('aucun');
945            // On valide la modification
946            $this->byCssSelector("input[value='Modifier']")->click();
947            // On vérifie le message de validation
948            $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#tabs-1 .message")->text());
949            // On clique sur le bouton 'Retour'
950            $this->byLinkText("Retour")->click();
951            // On vérifie les nouvelles données
952            $this->assertEquals("aucun", $this->byId("valeur")->text());
953            // On se déconnecte
954            $this->logout();
955        }
956  }  }
957    
958  ?>  ?>

Legend:
Removed from v.2302  
changed lines
  Added in v.3156

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26