/[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 1727 by fmichon, Thu Apr 18 18:04:39 2013 UTC revision 2820 by nmeucci, Thu Mar 13 14:03:35 2014 UTC
# Line 12  require_once "base.php"; Line 12  require_once "base.php";
12  /**  /**
13   *   *
14   */   */
15  class GuichetUnique extends BaseTestCase {  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       * Ce test doit être réalisé juste après la réinitialisation de la base       * Ce test vise uniquement à vérifier que les écrans correspondant à chaque
31       * de données.       * entrée de menu ne génère pas une erreur de base de données
32       */       */
33      public function testAffichageReglementaire() {      // Fonction privé
34          //      private function ouvertureMenu($utilisateur) {
35            // On se connecte
36            $this->login($utilisateur["login"], $utilisateur["mdp"]);
37            // Ouvre le menu
38            $this->openMenu("Guichet Unique", $utilisateur);
39            // On vérifie le menu "Nouveau Dossier"
40            $this->byLinkText("Nouveau Dossier")->click();
41            $this->assertContains("Guichet Unique > Nouvelle Demande > Nouveau Dossier",
42                $this->byId("title")->text());
43            $this->verifyNoErrors();
44            // On vérifie le menu "Dossier En Cours"
45            $this->byLinkText("Dossier En Cours")->click();
46            $this->assertContains("Guichet Unique > Nouvelle Demande > Dossier En Cours",
47                $this->byId("title")->text());
48            $this->verifyNoErrors();
49            // On vérifie le menu "Autre Dossier"
50            $this->byLinkText("Autre Dossier")->click();
51            $this->assertContains("Guichet Unique > Nouvelle Demande > Autre Dossier",
52                $this->byId("title")->text());
53            $this->verifyNoErrors();
54            // On vérifie le menu "Récépissé"
55            $this->byLinkText("Récépissé")->click();
56            $this->assertContains("Guichet Unique > Nouvelle Demande > Récépissé",
57                $this->byId("title")->text());
58            $this->verifyNoErrors();
59            // On vérifie le menu "Pétitionnaire Fréquent"
60            $this->byLinkText("Pétitionnaire Fréquent")->click();
61            $this->assertContains("Guichet Unique > Nouvelle Demande > Pétitionnaire Fréquent",
62                $this->byId("title")->text());
63            $this->verifyNoErrors();
64            // On vérifie le menu "Registre"
65            $this->byLinkText("Registre")->click();
66            $this->assertContains("Guichet Unique > Affichage Réglementaire > Registre",
67                $this->byId("title")->text());
68            $this->verifyNoErrors();
69            // On vérifie le menu "Attestation"
70            $this->byLinkText("Attestation")->click();
71            $this->assertContains("Guichet Unique > Affichage Réglementaire > Attestation",
72                $this->byId("title")->text());
73            $this->verifyNoErrors();
74            // On se déconnecte
75            $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
92         */
93        // Fonction privé
94        private function ajoutDemandeInitial($utilisateur) {
95    
96            // On se connecte à l'application
97            $this->login($utilisateur["login"], $utilisateur["mdp"]);
98            // Ouvre le menu
99            $this->openMenu("Guichet Unique", $utilisateur);
100            // On clique sur le menu "Nouveau Dossier"
101            $this->byLinkText("Nouveau Dossier")->click();
102            // On vérifie qu'il n'y ait pas d'erreur
103            $this->verifynoerrors();
104            // On vérifie le nom de l'onglet
105            $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
106            // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
107            $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"
109            $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
110            // On clique pour ajouter un pétitionnaire principale
111            $this->byId("add_petitionnaire_principal")->click();
112            // On remplit le champ
113            $this->byId("particulier_nom")->value("DURAND");
114            // On remplit le champ
115            $this->byId("particulier_prenom")->value("MICKAEL");
116            // On remplit le champ
117            $this->byId("particulier_date_naissance")->value("03/01/1956");
118            // On remplit le champ
119            $this->byId("particulier_commune_naissance")->value("LILLE");
120            // On remplit le champ
121            $this->byId("particulier_departement_naissance")->value("NORD");
122            // On remplit le champ
123            $this->byId("numero")->value("12");
124            // On remplit le champ
125            $this->byId("voie")->value("RUE DE LA LOI");
126            // On remplit le champ
127            $this->byId("complement")->value("APPT 12");
128            // On remplit le champ
129            $this->byId("localite")->value("MARSEILLE");
130            // On remplit le champ
131            $this->byId("code_postal")->value("13012");
132            // On remplit le champ
133            $this->byId("telephone_fixe")->value("0404040404");
134            // On remplit le champ
135            $this->byId("fax")->value("0405040404");
136            // On clique sur ajouter
137            $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
139            $this->verifynoerrors();
140            // On vérifie le message
141            $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-petitionnaire .message")->text());
142            // On clique sur le bouton retour
143            $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
144            // On vérifie que le text est présent
145            $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
146            // On clique sur ajouter
147            $this->byXPath("//input[@value='Ajouter']")->click();
148            // On vérifie qu'il n'y ait pas d'erreur
149            $this->verifynoerrors();
150            // On vérifie le message
151            $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
158            $this->byCssSelector("a.lien")->click();sleep(5);
159            // Liste les fenêtres
160            $windows = $this->windowHandles();
161            // Change la fenêtre
162            $this->window($windows[1]);
163            // On vérifie qu'il n'y ait pas d'erreur
164            $this->verifynoerrors();
165            // On vérifie que le text est présent
166            $this->assertRegExp("/^[\s\S]*RECEPISSE DE DEPOT[\s\S]*$/",$this->source());
167            // On ferme la fenêtre
168            $this->closeWindow();
169            // On change le focus de la fenêtre
170            $this->window($windows[0]);
171            // On clique sur le bouton retour
172            $this->byLinkText("Retour")->click();
173            // On vérifie qu'il n'y ait pas d'erreur
174            $this->verifynoerrors();
175            // On vérifie que le répertoire s'est crée
176            $this->assertTrue(file_exists("../trs/numerisation/Todo/".$dossier_dir));
177            // On se déconnecte
178            $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 et de création d'une nouvelle sequence
195         */
196        public function testAjoutDemandeNouvelleSequence() {
197    
198            // On se connecte à l'application
199          $this->login("guichet", "guichet");          $this->login("guichet", "guichet");
200            // On clique sur le menu "Nouveau Dossier"
201            $this->byLinkText("Nouveau Dossier")->click();
202            // On vérifie qu'il n'y ait pas d'erreur
203            $this->verifynoerrors();
204            // On vérifie le nom de l'onglet
205            $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
206            // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
207            $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"
209            $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
215            $this->byId("add_petitionnaire_principal")->click();
216            // On remplit le champ
217            $this->byId("particulier_nom")->value("DURAND");
218            // On remplit le champ
219            $this->byId("particulier_prenom")->value("MICKAEL");
220            // On remplit le champ
221            $this->byId("particulier_date_naissance")->value("03/01/1956");
222            // On remplit le champ
223            $this->byId("particulier_commune_naissance")->value("LILLE");
224            // On remplit le champ
225            $this->byId("particulier_departement_naissance")->value("NORD");
226            // On remplit le champ
227            $this->byId("numero")->value("12");
228            // On remplit le champ
229            $this->byId("voie")->value("RUE DE LA LOI");
230            // On remplit le champ
231            $this->byId("complement")->value("APPT 12");
232            // On remplit le champ
233            $this->byId("localite")->value("MARSEILLE");
234            // On remplit le champ
235            $this->byId("code_postal")->value("13012");
236            // On remplit le champ
237            $this->byId("telephone_fixe")->value("0404040404");
238            // On clique sur ajouter
239            $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
240            // On vérifie qu'il n'y ait pas d'erreur
241            $this->verifynoerrors();
242            // On vérifie le message
243            $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
245            $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
246            // On vérifie que le text est présent
247            $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
248            // On clique sur ajouter
249            $this->byXPath("//input[@value='Ajouter']")->click();
250            // On vérifie qu'il n'y ait pas d'erreur
251            $this->verifynoerrors();
252            // On vérifie le message
253            $this->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°PC 013055 14 00003[\s\S]*$/",$this->byCssSelector(".message")->text());
254            // On se déconnecte
255            $this->logout();
256        }
257    
258          //      /**
259          $this->clickAndWait("link=attestation");       * Test l'ajout d'une demande de modification
260          $this->verifyNoErrors();       */
261          $this->verifyTextPresent("imprimer l'attestation d'affichage réglementaire");      public function testAjoutDemandeModification() {
         //  
         $this->type("id=dossier", "PC0130551200002P0");  
         $this->clickAndWait("//input[@value='Valider']");  
         $this->verifyNoErrors();  
         $this->verifyTextPresent("Ce dossier n'a jamais été affiché.");  
   
         //  
         $this->clickAndWait("link=registre");  
         $this->verifyNoErrors();  
         $this->verifyTextPresent("imprimer le registre d'affichage réglementaire");  
         //  
         $this->click("//input[@value='Valider']");  
         $this->assertTrue((bool)preg_match('/^Etes-vous sur de vouloir confirmer cette action [\s\S]$/',$this->getConfirmation()));  
         //  
         $this->waitForPopUp("", "30000");  
         $this->selectPopUp();  
         sleep(5);  
         $this->verifyNoErrors();  
         $this->verifyTextPresent("Registre des dossiers en cours");  
         $this->close();  
         //  
         $this->selectWindow();  
         $this->verifyNoErrors();  
         $this->verifyTextPresent("Traitement terminé. Le registre a été téléchargé.");  
   
         //  
         $this->clickAndWait("link=attestation");  
         $this->verifyNoErrors();  
         $this->verifyTextPresent("imprimer l'attestation d'affichage réglementaire");  
         //  
         $this->clickAndWait("//input[@value='Valider']");  
         $this->verifyNoErrors();  
         $this->verifyTextPresent("Veuiller saisir un N° de dossier.");  
         //  
         $this->type("id=dossier", "123");  
         $this->clickAndWait("//input[@value='Valider']");  
         $this->verifyNoErrors();  
         $this->verifyTextPresent("Ce dossier n'existe pas.");  
         //  
         $this->type("id=dossier", "PC0130551200002P0");  
         $this->clickAndWait("//input[@value='Valider']");  
         $this->verifyNoErrors();  
         $this->verifyTextPresent("Cliquez sur le lien ci-dessous pour télécharger votre attestation d'affichage : \n\nAttestation d'affichage");  
         //  
         $this->click("link=Attestation d'affichage");  
         $this->waitForPopUp("", "30000");  
         $this->selectPopUp();  
         sleep(5);  
         $this->verifyNoErrors();  
         $this->verifyTextPresent("ATTESTATION D'AFFICHAGE REGLEMENTAIRE");  
         $this->close();  
         //  
         $this->selectWindow();  
262    
263          //          // Année en cours
264            $annee = date("y");
265    
266            /// On se connecte à l'application en tant qu'instructeur
267            // pour ajouter une instruction arrêté sur le dossier crée
268            $this->login("instr", "instr");
269            // On clique sur le menu
270            $this->byLinkText("Recherche")->click();
271            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
272            $this->verifyNoErrors();
273            // On clique sur le dossier
274            $this->byId("action-tab-dossier_instruction-left-consulter-PC013055".$annee."00001P0")->click();
275            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
276            $this->verifyNoErrors();
277            // On clique sur l'onglet instruction
278            $this->byId("instruction")->click();
279            // On clique sur le + pour ajouter une instruction
280            $this->byCssSelector("#sousform-instruction .actions-max-1 a")->click();
281            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
282            $this->verifyNoErrors();
283            // On choisi l'événement
284            $this->select($this->byId("evenement"))->selectOptionByLabel("accepter un dossier sans réserve [acceptation]");
285            // On clique sur le bouton ajouter
286            $this->byXPath("//input[@value='Ajouter']")->click();
287            // On vérifie que l'instruction s'est bien ajouté
288            $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
289            // On clique sur le bouton retour
290            $this->byCssSelector("#sousform-instruction form a.retour")->click();
291            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
292            $this->verifyNoErrors();
293            // On clique sur l'onglet DI
294            $this->byId("main")->click();
295            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
296            $this->verifyNoErrors();
297            // on rafraichis la page
298            $this->refresh();
299            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
300            $this->verifyNoErrors();
301            // On vérifie l'état du dossier
302            $this->assertEquals("dossier accepter", $this->byId('etat')->text());
303            // On se déconnecte de l'instructeur
304            $this->deconnect();
305            // On se connecte en tant que guichet unique
306            $this->login("guichet", "guichet");
307            // On clique sur le menu "Nouveau Dossier"
308            $this->byLinkText("Autre Dossier")->click();
309            // On vérifie qu'il n'y ait pas d'erreur
310            $this->verifynoerrors();
311            // On vérifie le nom de l'onglet
312            $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
313            // On clique pour ajouter une demande au dossier existant
314            $this->byId("action-tab-demande_autre_dossier-left-consulter-PC013055".$annee."00001P0")->click();
315            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
316            $this->verifyNoErrors();
317            // Vérifie le fil d'Ariane
318            $this->assertContains("Guichet Unique > Nouvelle Demande > Autre Dossier > PC 013055", $this->byXPath("//div[3]/div/h2")->text());
319            // On choisis le type de demande
320            $this->select($this->byId("demande_type"))->selectOptionByLabel("Demande de modification");
321            // On clique sur ajouter
322            $this->byXPath("//input[@value='Ajouter']")->click();
323            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
324            $this->verifyNoErrors();
325            // On vérifie le message
326            $this->assertRegExp("/^[\s\S]*Création du dossier d'instruction n°[\s\S]*$/", $this->byCssSelector("BODY")->text());
327            // On vérifie que le répertoire s'est crée
328            $this->assertTrue(file_exists("../trs/numerisation/Todo/PC013055".$annee."00001.M01"));
329            // On se déconnecte
330            $this->logout();
331            
332        }
333    
334        /**
335         * Tests l'affichage réglementaire
336         */
337        public function testAffichageReglementaire() {
338    
339            // On se connecte à l'application
340            $this->login("guichet", "guichet");
341            // On clique sur le menu "Attestation"
342            $this->byLinkText("Attestation")->click();
343            // On vérifie qu'il n'y ait pas d'erreur
344            $this->verifynoerrors();
345            // On vérifie le nom de l'onglet
346            $this->assertEquals("Imprimer L'attestation D'affichage Réglementaire", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
347            // On écrit "PC0130551200002P0" dans le champ dossier
348            $this->byId("dossier")->value("PC0130551200002P0");
349            // On clique sur "Valider"
350            $this->byXPath("//input[@value='Valider']")->click();
351            // On vérifie qu'il n'y ait pas d'erreur
352            $this->verifynoerrors();
353            // On vérifie que text est présent
354            $this->assertRegExp("/^[\s\S]*Ce dossier n'a jamais été affiché.[\s\S]*$/",$this->byCssSelector("BODY")->text());
355            // On clique sur le menu "Registre"
356            $this->byLinkText("Registre")->click();
357            // On vérifie qu'il n'y ait pas d'erreur
358            $this->verifynoerrors();
359            // On vérifie le nom de l'onglet
360            $this->assertEquals("Imprimer Le Registre D'affichage Réglementaire", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
361            // On clique sur "Valider"
362            $this->byXPath("//input[@value='Valider']")->click();
363            // On clique sur "Oui" dans la fenêtre js qui apparaît
364            $this->acceptAlert();sleep(5);
365            // Liste des fenêtres ouvertes
366            $windows = $this->windowHandles();
367            // On change le focus de la fenêtre
368            $this->window($windows[1]);
369            // On vérifie qu'il n'y ait pas d'erreur
370            $this->verifynoerrors();
371            // On vérifie que text est présent
372            $this->assertRegExp('/^[\s\S]*Registre des dossiers en cours[\s\S]*$/',$this->source());
373            // On ferme la fenêtre
374            $this->closeWindow();
375            // On change le focus de la fenêtre
376            $this->window($windows[0]);
377            // On vérifie qu'il n'y ait pas d'erreur
378            $this->verifynoerrors();
379            // On vérifie que text est présent
380            $this->assertRegExp('/^[\s\S]*Traitement terminé. Le registre a été téléchargé.[\s\S]*$/',$this->byCssSelector("BODY")->text());
381            // On clique sur le menu "Attestation"
382            $this->byLinkText("Attestation")->click();
383            // On vérifie qu'il n'y ait pas d'erreur
384            $this->verifynoerrors();
385            // On vérifie le nom de l'onglet
386            $this->assertEquals("Imprimer L'attestation D'affichage Réglementaire", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
387            // On clique sur "Valider"
388            $this->byXPath("//input[@value='Valider']")->click();
389            // On vérifie qu'il n'y ait pas d'erreur
390            $this->verifynoerrors();
391            // On vérifie que text est présent
392            $this->assertRegExp("/^[\s\S]*Veuiller saisir un N° de dossier.[\s\S]*$/",$this->byCssSelector("BODY")->text());
393            // On écrit "123" dans le champ dossier
394            $this->byId("dossier")->value("123");
395            // On clique sur "Valider"
396            $this->byXPath("//input[@value='Valider']")->click();
397            // On vérifie qu'il n'y ait pas d'erreur
398            $this->verifynoerrors();
399            // On vérifie que text est présent
400            $this->assertRegExp("/^[\s\S]*Ce dossier n'existe pas.[\s\S]*$/",$this->byCssSelector("BODY")->text());
401            // On écrit "PC0130551200002P0" dans le champ dossier
402            $this->byId("dossier")->value("PC0130551200002P0");
403            // On clique sur "Valider"
404            $this->byXPath("//input[@value='Valider']")->click();
405            // On vérifie qu'il n'y ait pas d'erreur
406            $this->verifynoerrors();
407            // On vérifie que le text est présent
408            $this->assertRegExp("/^[\s\S]*Cliquez sur le lien ci-dessous pour télécharger votre attestation d'affichage[\s\S]*$/",$this->byCssSelector("BODY")->text());
409            // On clique sur "Attestation d'affichage"
410            $this->byLinkText("Attestation d'affichage")->click();sleep(5);
411            // Liste les fenêtres
412            $windows = $this->windowHandles();
413            // Change la fenêtre
414            $this->window($windows[1]);
415            // On vérifie qu'il n'y ait pas d'erreur
416            $this->verifynoerrors();
417            // On vérifie que le text est
418            // présent
419            $this->assertRegExp("/^[\s\S]*ATTESTATION D'AFFICHAGE REGLEMENTAIRE[\s\S]*$/",$this->source());
420            // On ferme la fenêtre
421            $this->closeWindow();
422            // On change le focus de la fenêtre
423            $this->window($windows[0]);
424            // On se deconnecte
425          $this->logout();          $this->logout();
426      }      }
427    
428      /**      /**
429       *       * Test le Récépissé
430       */       */
431      public function testRecepisse() {      public function testRecepisse() {
         //  
         $this->login("guichet", "guichet");  
432    
433          //          // On se connecte à l'application
434          $this->clickAndWait("link=récépissé");          $this->login("guichet", "guichet");
435          $this->verifyNoErrors();          // On clique sur le menu "Récépissé"
436          $this->verifyTextPresent("demande");          $this->byLinkText("Récépissé")->click();
437          //          // On vérifie qu'il n'y ait pas d'erreur
438          $this->clickAndWait("link=DAT0130551200001P0");          $this->verifynoerrors();
439          $this->verifyNoErrors();          // On vérifie le nom de l'onglet
440          $this->verifyTextPresent("Demande d'autorisation de construire, d'aménager ou de modifier un ERP");          $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
441            // On clique sur "AT0130551200001P0"
442            $this->byLinkText("AT 013055 12 00001P0")->click();
443            // On vérifie qu'il n'y ait pas d'erreur
444            $this->verifynoerrors();
445            // Vérifie le fil d'Ariane
446            $this->assertEquals("Guichet Unique > Nouvelle Demande > Récépissé > AT 013055 12 00001P0", $this->byXPath("//div[3]/div/h2")->text());
447            // On vérifie que le text est présent
448            $this->assertRegExp("/^[\s\S]*Demande d'autorisation de construire, d'aménager ou de modifier un ERP[\s\S]*$/",$this->byCssSelector("BODY")->text());
449          // Le nom du pétitionnaire doit apparaître          // Le nom du pétitionnaire doit apparaître
450          $this->verifyTextPresent("BERNARD LILIANE");          $this->assertRegExp("/^[\s\S]*BERNARD LILIANE[\s\S]*$/",$this->byCssSelector("BODY")->text());
451          //          // On clique sur le lien
452          $this->click("link=Éditer le récépissé PDF");          $this->byLinkText("Éditer le récépissé PDF")->click();sleep(5);
453          $this->waitForPopUp("", "30000");          // Liste les fenêtres
454          $this->selectPopUp();          $windows = $this->windowHandles();
455          sleep(5);          // Change la fenêtre
456          $this->verifyNoErrors();          $this->window($windows[1]);
457          $this->verifyTextPresent("RECEPISSE DE DEPOT");          // On vérifie qu'il n'y ait pas d'erreur
458          $this->close();          $this->verifynoerrors();
459          //          // On vérifie que le text est présent
460          $this->selectWindow();          $this->assertRegExp("/^[\s\S]*RECEPISSE DE DEPOT[\s\S]*$/",$this->source());
461          //          // On ferme la fenêtre
462          $this->clickAndWait("link=Retour");          $this->closeWindow();
463          $this->verifyNoErrors();          // On change le focus de la fenêtre
464          $this->verifyTextPresent("demande");          $this->window($windows[0]);
465            // On clique sur "Retour"
466          //          $this->byLinkText("Retour")->click();
467            // On vérifie qu'il n'y ait pas d'erreur
468            $this->verifynoerrors();
469            // On vérifie le nom de l'onglet
470            $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
471            // On se deconnecte
472          $this->logout();          $this->logout();
473      }      }
474    
475      /**      /**
476       *       * Test les pétitionnaires fréquents
477       */       */
478      public function testPetitionnaireFrequent() {      public function testPetitionnaireFrequent() {
479          //  
480            // On se connecte à l'application
481          $this->login("guichet", "guichet");          $this->login("guichet", "guichet");
482            // On clique sur le menu "Nouveau Dossier"
483            $this->byLinkText("Nouveau Dossier")->click();
484            // On vérifie qu'il n'y ait pas d'erreur
485            $this->verifynoerrors();
486            // On vérifie le nom de l'onglet
487            $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
488            // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
489            $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel("Permis de construire pour une maison individuelle et / ou ses annexes");
490            // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
491            $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
492            // On clique pour ajouter un pétitionnaire principale
493            $this->byId("add_petitionnaire_principal")->click();
494            // On remplit le champ
495            $this->byId("particulier_nom")->value("DURAND");
496            // On remplit le champ
497            $this->byId("particulier_prenom")->value("MICKAEL");
498            // On remplit le champ
499            $this->byId("particulier_date_naissance")->value("03/01/1956");
500            // On remplit le champ
501            $this->byId("particulier_commune_naissance")->value("LILLE");
502            // On remplit le champ
503            $this->byId("particulier_departement_naissance")->value("NORD");
504            // On remplit le champ
505            $this->byId("numero")->value("12");
506            // On remplit le champ
507            $this->byId("voie")->value("RUE DE LA LOI");
508            // On remplit le champ
509            $this->byId("complement")->value("APPT 12");
510            // On remplit le champ
511            $this->byId("localite")->value("MARSEILLE");
512            // On remplit le champ
513            $this->byId("code_postal")->value("13012");
514            // On remplit le champ
515            $this->byId("telephone_fixe")->value("0404040404");
516            // On sélectionne pétitionnaire fréquent
517            $this->byId("frequent")->click();
518            // On clique sur ajouter
519            $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
520            // On vérifie qu'il n'y ait pas d'erreur
521            $this->verifynoerrors();
522            // On vérifie le message
523            $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-petitionnaire .message")->text());
524            // On clique sur le bouton retour
525            $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
526            // On vérifie que le text est présent
527            $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
528            // On clique sur ajouter
529            $this->byXPath("//input[@value='Ajouter']")->click();
530            // On vérifie qu'il n'y ait pas d'erreur
531            $this->verifynoerrors();
532            // On vérifie le message
533            $this->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°[\s\S]*$/",$this->byCssSelector(".message")->text());
534            // On clique
535            $this->byCssSelector("a.lien")->click();sleep(5);
536            // Liste les fenêtres
537            $windows = $this->windowHandles();
538            // Change la fenêtre
539            $this->window($windows[1]);
540            // On vérifie qu'il n'y ait pas d'erreur
541            $this->verifynoerrors();
542            // On vérifie que le text est présent
543            $this->assertRegExp("/^[\s\S]*RECEPISSE DE DEPOT[\s\S]*$/",$this->source());
544            // On ferme la fenêtre
545            $this->closeWindow();
546            // On change le focus de la fenêtre
547            $this->window($windows[0]);
548            // On clique sur le bouton retour
549            $this->byLinkText("Retour")->click();
550            // On vérifie qu'il n'y ait pas d'erreur
551            $this->verifynoerrors();
552            // On clique sur pétitionnaire fréquent
553            $this->byLinkText("Pétitionnaire Fréquent")->click();
554            // On vérifie qu'il n'y ait pas d'erreur
555            $this->verifynoerrors();
556            // On vérifie que le text est présent
557            $this->assertRegExp("/^[\s\S]*pétitionnaire fréquent[\s\S]*$/",$this->source());
558            // On vérifie que le text est présent
559            $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->source());
560            // On clique sur le résultat
561            $this->byLinkText("DURAND MICKAEL")->click();
562            // On vérifie qu'il n'y ait pas d'erreur
563            $this->verifynoerrors();
564            // On vérifie que le text est présent
565            $this->assertRegExp("/^[\s\S]*RUE DE LA LOI[\s\S]*$/",$this->source());
566            // On clique sur le bouton "Retour"
567            $this->byLinkText("Retour")->click();
568            // On vérifie qu'il n'y ait pas d'erreur
569            $this->verifynoerrors();
570            // On vérifie que le text est présent
571            $this->assertRegExp("/^[\s\S]*pétitionnaire fréquent[\s\S]*$/",$this->source());
572            // On se déconnecte
573            $this->logout();
574        }
575    
576          //      /**
577          $this->clickAndWait("link=nouveau dossier");       * Active l'option sig avec la valeur nécessaire pour la suite des tests
578          $this->verifyNoErrors();       */
579          $this->verifyTextPresent("demande");      public function test_active_option_sig() {
580          //  
581          $this->select("id=dossier_autorisation_type_detaille", "label=Permis de construire pour une maison individuelle et / ou ses annexes");          // On se connecte en tant que "admin"
582          $this->select("id=demande_type", "label=Dépôt Initial");          $this->login("admin", "admin");
583          $this->click("id=add_petitionnaire_principal");          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
584          $this->type("id=particulier_nom", "DURAND");          $this->verifyNoErrors();
585          $this->type("id=particulier_prenom", "MICKAEL");          // On clique sur le lien "Administration" dans le menu
586          $this->type("id=particulier_date_naissance", "03/01/1956");          $this->byLinkText("Administration")->click();
587          $this->type("id=particulier_commune_naissance", "LILLE");          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
588          $this->type("id=particulier_departement_naissance", "NORD");          $this->verifyNoErrors();
589          $this->type("id=numero", "12");          // // On clique sur le lien "Paramètre" dans le menu
590          $this->type("id=voie", "RUE DE LA LOI");          $this->byLinkText("Paramètre")->click();
591          $this->type("document.f2.complement", "APPT 12");          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
592          $this->type("id=localite", "MARSEILLE");          $this->verifyNoErrors();
593          $this->type("id=code_postal", "13012");          // On remplis le champs de recherche simple
594          $this->type("id=telephone_fixe", "0404040404");          $this->byCssSelector("input[name='recherche']")->value('option_sig');
595          $this->click("id=frequent");          // On clique sur le bouton recherche
596                    $this->byCssSelector(".ui-button")->click();
597          $this->click("//input[@value=\"Ajouter l'enregistrement de la table : 'demandeur'\"]");          // On clique sur le résultat
598            $this->byLinkText("option_sig")->click();
599            // On clique sur le bouton "Modifier"
600            $this->byId('action-form-om_parametre-modifier')->click();
601            // On change la valeur par "sig_externe"
602            $this->byId('valeur')->clear();
603            $this->byId('valeur')->value('sig_externe');
604            // On valide la modification
605            $this->byCssSelector("input[value='Modifier']")->click();
606            // On vérifie le message de validation
607            $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#tabs-1 .message")->text());
608            // On clique sur le bouton 'Retour'
609            $this->byLinkText("Retour")->click();
610            // On vérifie les nouvelles données
611            $this->assertEquals("sig_externe", $this->byId("valeur")->text());
612            // On se déconnecte
613            $this->logout();
614        }
615    
616        /**
617         * Test l'ajout d'une demande initial en utilisant les références cadastrales
618         * pour récupérer l'adresse
619         */
620        public function testAjoutDemandeInitialReferenceCadastrale() {
621    
622            // On se connecte à l'application
623            $this->login("guichet", "guichet");
624            // On clique sur le menu "Nouveau Dossier"
625            $this->byLinkText("Nouveau Dossier")->click();
626            // On vérifie qu'il n'y ait pas d'erreur
627            $this->verifynoerrors();
628            // On vérifie le nom de l'onglet
629            $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
630            // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
631            $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel("Permis de construire pour une maison individuelle et / ou ses annexes");
632            // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
633            $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
634            // XXX Problème de javascript seulement dans cette fonction
635            // Les alerts ne passent pas lorsque le focus n'est pas sur le
636            // navigateur
637            //On saisie des références cadastrales inccorect
638            // $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(1)")->value("aa");
639            // // On change le focus pour faire apparaitre le message
640            // $this->byId('date_demande')->value(date('d/m/Y'));
641            // sleep(5);
642            // // Message d'erreur concernant le numéro de quartier
643            // $this->assertEquals("Vous ne devez saisir que des nombres entiers", $this->alertText());
644            // $this->acceptAlert();
645            // $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(2)")->value("11");
646            // // On change le focus pour faire apparaitre le message
647            // $this->byId('date_demande')->value(date('d/m/Y'));
648            // sleep(5);
649            // // Message d'erreur concernant la section
650            // $this->assertEquals("Vous ne devez saisir que des lettres dans ce champs.", $this->alertText());
651            // $this->acceptAlert();
652            // $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(3)")->value("bb");
653            // // On change le focus pour faire apparaitre le message
654            // $this->byId('date_demande')->value(date('d/m/Y'));
655            // sleep(5);
656            // // Message d'erreur concernant le numéro de parcelle
657            // $this->assertEquals("Vous ne devez saisir que des nombres entiers", $this->alertText());
658            // $this->acceptAlert();
659            //On saisie les références cadastrales
660            // $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(1)")->value("1");
661            // $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(2)")->value("dc");
662            // $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(3)")->value("15");
663            // XXX Renplace les valeurs juste au dessus qui devraient se mettre au
664            // bon format automatiquement grâce au javascript
665            $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(1)")->value("001");
666            $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(2)")->value("DC");
667            $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(3)")->value("0015");
668            //On clique sur le bouton de recherche "Cadastrale = > Adresse"
669            $this->byId("cad-adr-them")->click();
670          sleep(1);          sleep(1);
671          $this->verifyNoErrors();          // On vérifie que le format des champs est mise à jour automatiquement
672          $this->verifyTextPresent("Vos modifications ont bien été enregistrées.");          $this->assertEquals("001", $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(1)")->value());
673          $this->click("css=form[name=\"f2\"] > div.formControls > a.retour");          $this->assertEquals("DC", $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(2)")->value());
674            $this->assertEquals("0015", $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(3)")->value());
675            //On verifie l'adresse
676            $this->assertEquals("0075", $this->byId("terrain_adresse_voie_numero")->value());
677            $this->assertEquals("TRA DE LA DOMINIQUE", $this->byId("terrain_adresse_voie")->value());
678            $this->assertEquals("13011", $this->byId("terrain_adresse_code_postal")->value());
679            $this->assertEquals("MARSEILLE", $this->byId("terrain_adresse_localite")->value());
680            // On valide le formulaire
681            $this->byXPath("//input[@value='Ajouter']")->click();
682            // On vérifie le message d'erreur
683            $this->assertRegExp("/^[\s\S]*SAISIE NON ENREGISTRÉE[\s\S]*$/", $this->byCssSelector(".message")->text());
684          sleep(1);          sleep(1);
685          //          // On vérifie que les références cadastrales soient toujours affiché
686          $this->verifyTextPresent("DURAND MICKAEL\n 12 RUE DE LA LOI APPT 12 \n 13012 MARSEILLE \n 0404040404");          $this->assertEquals("001", $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(1)")->value());
687          $this->clickAndWait("//input[@value='Ajouter']");          $this->assertEquals("DC", $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(2)")->value());
688          $this->verifyNoErrors();          $this->assertEquals("0015", $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(3)")->value());        
689          $this->verifyTextPresent("Création du dossier d'autorisation n°PC0130551300003");          //On saisie les références cadastrales
690          //          $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(1)")->clear();
691          //$this->click("link=     Télécharger le récépissé de la demande");          $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(2)")->clear();
692          $this->click("css=a.lien");          $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(3)")->clear();
693          $this->waitForPopUp("", "30000");          //On clique sur le bouton de recherche "Cadastrale = > Adresse"
694          $this->selectPopUp();          $this->byId("cad-adr-them")->click();
695          sleep(5);          //On valide le message d'erreur
696          $this->verifyNoErrors();          $this->assertEquals('Aucune référence cadastrale fournie', $this->alertText());
697          $this->verifyTextPresent("RECEPISSE DE DEPOT");          $this->acceptAlert();
698          $this->close();          // On clique pour ajouter un pétitionnaire principale
699          //          $this->byId("add_petitionnaire_principal")->click();
700          $this->selectWindow();          // On remplit le champ
701          //          $this->byId("particulier_nom")->value("DURAND");
702          $this->clickAndWait("link=Retour");          // On remplit le champ
703          $this->verifyNoErrors();          $this->byId("particulier_prenom")->value("MICKAEL");
704          //          // On remplit le champ
705          $this->clickAndWait("link=pétitionnaire fréquent");          $this->byId("particulier_date_naissance")->value("03/01/1956");
706          $this->verifyNoErrors();          // On remplit le champ
707          $this->verifyTextPresent("pétitionnaire fréquent");          $this->byId("particulier_commune_naissance")->value("LILLE");
708          $this->verifyTextPresent("DURAND MICKAEL");          // On remplit le champ
709          //          $this->byId("particulier_departement_naissance")->value("NORD");
710          $this->clickAndWait("link=DURAND MICKAEL");          // On remplit le champ
711          $this->verifyNoErrors();          $this->byId("numero")->value("12");
712          $this->verifyTextPresent("RUE DE LA LOI ");          // On remplit le champ
713          //          $this->byId("voie")->value("RUE DE LA LOI");
714          $this->clickAndWait("link=Retour");          // On remplit le champ
715            $this->byId("complement")->value("APPT 12");
716            // On remplit le champ
717            $this->byId("localite")->value("MARSEILLE");
718            // On remplit le champ
719            $this->byId("code_postal")->value("13012");
720            // On remplit le champ
721            $this->byId("telephone_fixe")->value("0404040404");
722            // On clique sur ajouter
723            $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
724            // On vérifie qu'il n'y ait pas d'erreur
725            $this->verifynoerrors();
726            // On vérifie le message
727            $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-petitionnaire .message")->text());
728            // On clique sur le bouton retour
729            $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
730            // On vérifie que le text est présent
731            $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
732            // On clique sur ajouter
733            $this->byXPath("//input[@value='Ajouter']")->click();
734            // On vérifie qu'il n'y ait pas d'erreur
735            $this->verifynoerrors();
736            // On vérifie le message
737            $this->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°[\s\S]*$/",$this->byCssSelector(".message")->text());
738            // Récupération du numéro de dossier
739            preg_match('/(PC)[0-9 ]*(P0)/', $this->byCssSelector(".message .text")->text(), $dossier);
740            $dossier_libelle = $dossier[0];
741            $dossier = str_replace(' ', '', $dossier_libelle);
742            $dossier_dir = substr_replace($dossier, '.', -2, -3);
743            // On clique
744            $this->byCssSelector("a.lien")->click();sleep(5);
745            // Liste les fenêtres
746            $windows = $this->windowHandles();
747            // Change la fenêtre
748            $this->window($windows[1]);
749            // On vérifie qu'il n'y ait pas d'erreur
750            $this->verifynoerrors();
751            // On vérifie que le text est présent
752            $this->assertRegExp("/^[\s\S]*RECEPISSE DE DEPOT[\s\S]*$/",$this->source());
753            // On ferme la fenêtre
754            $this->closeWindow();
755            // On change le focus de la fenêtre
756            $this->window($windows[0]);
757            // On clique sur le bouton retour
758            $this->byLinkText("Retour")->click();
759            // On vérifie qu'il n'y ait pas d'erreur
760            $this->verifynoerrors();
761            // On vérifie que le répertoire s'est crée
762            $this->assertTrue(file_exists("../trs/numerisation/Todo/".$dossier_dir));
763            // On se déconnecte
764            $this->logout();
765        }
766        
767        /*
768         * Cette fonction va tester l'affectation automatique des instructeurs aux
769         * dossiers d'instruction.
770         * Quatre cas sont possibles :
771         * - Aucun instructeur ne correspond,  ;
772         * - Un instructeur joker correspond,  ;
773         * - Un instructeur correspond, .
774         */
775        function testAffectationAutomatique(){
776            
777            // On se connecte à l'application
778            $this->login("guichet", "guichet");
779            //Ajout d'un dossier d'instructeur avec affectation d'aucun instructeur
780            $this->ajoutDossierAffectationAutomatique("801", "A", "0001", "Permis de construire comprenant ou non des démolitions", " -");
781            
782            //Ajout d'un dossier d'instructeur avec affectation d'un instructeur
783            //joker avec seulement le type de dossier d'autorisation détaillé de
784            //renseigné
785            $this->ajoutDossierAffectationAutomatique("806", "A", "0001", "Permis de construire pour une maison individuelle et / ou ses annexes", "Louis Laurent");
786            
787            //Ajout d'un dossier d'instructeur avec affectation du seul instructeur
788            //correspondant parfaitement aux critères
789            $this->ajoutDossierAffectationAutomatique("801", "A", "0001", "Permis de construire pour une maison individuelle et / ou ses annexes", "Pierre Martin");
790            // On se déconnecte
791            $this->logout();
792        }
793        
794        /**
795         * Ajoute un dossier d'instruction
796         * @param string $reference_cadastrale_quartier Le quartier de la référence
797         *               cadastrale du dossier
798         * @param string $reference_cadastrale_section La section de la référence
799         *               cadastrale du dossier
800         * @param string $reference_cadastrale_parcelle La parcelle de la référence
801         *               cadastrale du dossier
802         * @param string $datd dossier d'autorisation type détaillé
803         * @param string $instructeur le nom de l'instructeur
804         *
805         * @return boolean
806         */
807        function ajoutDossierAffectationAutomatique($reference_cadastrale_quartier,
808            $reference_cadastrale_section, $reference_cadastrale_parcelle,$datd,
809            $instructeur){
810            
811            //On affiche le tableau de bord
812            $this->byLinkText("Tableau de bord")->click();
813            // On clique sur le menu "Nouveau Dossier"
814            $this->byLinkText("Nouveau Dossier")->click();
815            // On vérifie qu'il n'y ait pas d'erreur
816            $this->verifynoerrors();
817            // On vérifie le nom de l'onglet
818            $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
819            // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
820            $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel($datd);
821            // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
822            $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
823            //On saisie les références cadastrales
824            $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(1)")->value($reference_cadastrale_quartier);
825            $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(2)")->value($reference_cadastrale_section);
826            $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(3)")->value($reference_cadastrale_parcelle);
827            //On clique sur le bouton de recherche "Cadastrale = > Adresse"
828            $this->byId("cad-adr-them")->click();
829            // On clique pour ajouter un pétitionnaire principale
830            $this->byId("add_petitionnaire_principal")->click();
831            // On remplit le champ
832            $this->byId("particulier_nom")->value("DURAND");
833            // On remplit le champ
834            $this->byId("particulier_prenom")->value("MICKAEL");
835            // On remplit le champ
836            $this->byId("particulier_date_naissance")->value("03/01/1956");
837            // On remplit le champ
838            $this->byId("particulier_commune_naissance")->value("LILLE");
839            // On remplit le champ
840            $this->byId("particulier_departement_naissance")->value("NORD");
841            // On remplit le champ
842            $this->byId("numero")->value("12");
843            // On remplit le champ
844            $this->byId("voie")->value("RUE DE LA LOI");
845            // On remplit le champ
846            $this->byId("complement")->value("APPT 12");
847            // On remplit le champ
848            $this->byId("localite")->value("MARSEILLE");
849            // On remplit le champ
850            $this->byId("code_postal")->value("13012");
851            // On remplit le champ
852            $this->byId("telephone_fixe")->value("0404040404");
853            // On clique sur ajouter
854            $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
855            // On vérifie qu'il n'y ait pas d'erreur
856            $this->verifynoerrors();
857            // On vérifie le message
858            $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-petitionnaire .message")->text());
859            // On clique sur le bouton retour
860            $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
861            // On vérifie que le text est présent
862            $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
863            // On clique sur ajouter
864            $this->byXPath("//input[@value='Ajouter']")->click();
865            // On vérifie qu'il n'y ait pas d'erreur
866            $this->verifynoerrors();
867            // On vérifie le message
868            $this->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°[\s\S]*$/",$this->byCssSelector(".message")->text());
869            // On clique
870            $this->byCssSelector("a.lien")->click();sleep(5);
871            // Liste les fenêtres
872            $windows = $this->windowHandles();
873            // Change la fenêtre
874            $this->window($windows[1]);
875            // On vérifie qu'il n'y ait pas d'erreur
876            $this->verifynoerrors();
877            // On vérifie que le text est présent
878            $this->assertRegExp("/^[\s\S]*Dossier suivi par  ".$instructeur."[\s\S]*$/",$this->source());
879            // On ferme la fenêtre
880            $this->closeWindow();
881            // On change le focus de la fenêtre
882            $this->window($windows[0]);
883        }
884    
885        /**
886         * Vérifie le menu "Autre Dossier" et "Dossier En Cours"
887         */
888        public function test_autre_dossier() {
889    
890            // On se connecte en tant que "guichet"
891            $this->login("guichet", "guichet");
892            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
893          $this->verifyNoErrors();          $this->verifyNoErrors();
894          $this->verifyTextPresent("pétitionnaire fréquent");          // On clique sur "Autre Dossier"
895          //          $this->byLinkText("Autre Dossier")->click();
896            // On vérifie qu'il n'y ait pas d'erreur
897            $this->verifynoerrors();
898            // On vérifie que ledossier qui ne doit pas être dans
899            // "Dossier En Cours" sont ici
900            $this->assertRegExp("/^[\s\S]*PC 013055 14 00001P0[\s\S]*$/",
901                $this->byCssSelector("#tab-demande_autre_dossier .tab-tab")->text());
902            // On clique sur "Dossier En Cours"
903            $this->byLinkText("Dossier En Cours")->click();
904            // On vérifie qu'il n'y ait pas d'erreur
905            $this->verifynoerrors();
906            // On vérifie que le dossier précédement contrôlé n'ait pas
907            // affiché
908            $this->assertNotContains("PC 013055 13 00001P0",
909                $this->byCssSelector("#tab-demande_dossier_encours .tab-tab")->text());
910            // On se déconnecte
911          $this->logout();          $this->logout();
912      }      }
913    
914        /**
915         * Désactive l'option sig avec la valeur nécessaire
916         */
917        public function test_desactive_option_sig() {
918    
919            // On se connecte en tant que "admin"
920            $this->login("admin", "admin");
921            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
922            $this->verifyNoErrors();
923            // On clique sur le lien "Administration" dans le menu
924            $this->byLinkText("Administration")->click();
925            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
926            $this->verifyNoErrors();
927            // // On clique sur le lien "Paramètre" dans le menu
928            $this->byLinkText("Paramètre")->click();
929            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
930            $this->verifyNoErrors();
931            // On remplis le champs de recherche simple
932            $this->byCssSelector("input[name='recherche']")->value('option_sig');
933            // On clique sur le bouton recherche
934            $this->byCssSelector(".ui-button")->click();
935            // On clique sur le résultat
936            $this->byLinkText("option_sig")->click();
937            // On clique sur le bouton "Modifier"
938            $this->byId('action-form-om_parametre-modifier')->click();
939            // On change la valeur par "aucun"
940            $this->byId('valeur')->clear();
941            $this->byId('valeur')->value('aucun');
942            // On valide la modification
943            $this->byCssSelector("input[value='Modifier']")->click();
944            // On vérifie le message de validation
945            $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#tabs-1 .message")->text());
946            // On clique sur le bouton 'Retour'
947            $this->byLinkText("Retour")->click();
948            // On vérifie les nouvelles données
949            $this->assertEquals("aucun", $this->byId("valeur")->text());
950            // On se déconnecte
951            $this->logout();
952        }
953  }  }
954    
955  ?>  ?>

Legend:
Removed from v.1727  
changed lines
  Added in v.2820

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26