/[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 1966 by vpihour, Thu May 30 11:13:34 2013 UTC revision 3235 by vpihour, Tue Jan 6 11:36:31 2015 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->assertContains("Création du dossier d'autorisation n°",$this->byCssSelector(".message .text")->text());
254            // Récupération du numéro de dossier
255            preg_match('/(PC)[0-9 ]*(P0)/', $this->byCssSelector(".message .text")->text(), $dossier);
256            $dossier = $dossier[0];
257            // On se déconnecte
258            $this->logout();
259        }
260    
261          //      /**
262          $this->clickAndWait("link=attestation");       * Test l'ajout d'une demande de modification
263          $this->verifyNoErrors();       */
264          $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->assertAttribute( "css=.message .text a@href", "*spg/file.php*");  
         //  
         $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();  
265    
266          //          // Année en cours
267            $annee = date("y");
268    
269            /// On se connecte à l'application en tant qu'instructeur
270            // pour ajouter une instruction arrêté sur le dossier crée
271            $this->login("instr", "instr");
272            // On clique sur le menu
273            $this->byLinkText("Recherche")->click();
274            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
275            $this->verifyNoErrors();
276            // On clique sur le dossier
277            $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é
279            $this->verifyNoErrors();
280            // On clique sur l'onglet instruction
281            $this->byId("instruction")->click();
282            // On clique sur le + pour ajouter une instruction
283            $this->byCssSelector("#sousform-instruction .actions-max-1 a")->click();
284            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
285            $this->verifyNoErrors();
286            // On choisi l'événement
287            $this->select($this->byId("evenement"))->selectOptionByValue(81);
288            // On clique sur le bouton ajouter
289            $this->byXPath("//input[@value='Ajouter']")->click();
290            // On vérifie que l'instruction s'est bien ajouté
291            $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
292            // On clique sur le bouton retour
293            $this->byCssSelector("#sousform-instruction form a.retour")->click();
294            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
295            $this->verifyNoErrors();
296            // On clique sur l'onglet DI
297            $this->byId("main")->click();
298            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
299            $this->verifyNoErrors();
300            // on rafraichis la page
301            $this->refresh();
302            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
303            $this->verifyNoErrors();
304            // On vérifie l'état du dossier
305            $this->assertEquals("dossier accepter", $this->byId('etat')->text());
306            // On se déconnecte de l'instructeur
307            $this->deconnect();
308            // On se connecte en tant que guichet unique
309            $this->login("guichet", "guichet");
310            // On clique sur le menu "Nouveau Dossier"
311            $this->byLinkText("Autre Dossier")->click();
312            // On vérifie qu'il n'y ait pas d'erreur
313            $this->verifynoerrors();
314            // On vérifie le nom de l'onglet
315            $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
317            $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é
319            $this->verifyNoErrors();
320            // Vérifie le fil d'Ariane
321            $this->assertContains("Guichet Unique > Nouvelle Demande > Autre Dossier > PC 013055", $this->byXPath("//div[3]/div/h2")->text());
322            // On choisis le type de demande
323            $this->select($this->byId("demande_type"))->selectOptionByLabel("Demande de modification");
324            // On clique sur ajouter
325            $this->byXPath("//input[@value='Ajouter']")->click();
326            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
327            $this->verifyNoErrors();
328            // On vérifie le message
329            $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
331            $this->assertTrue(file_exists("../trs/numerisation/Todo/PC013055".$annee."00001.M01"));
332            // On se déconnecte
333            $this->logout();
334            
335        }
336    
337        /**
338         * Tests l'affichage réglementaire
339         */
340        public function testAffichageReglementaire() {
341    
342            // On se connecte à l'application
343            $this->login("guichet", "guichet");
344            // On clique sur le menu "Attestation"
345            $this->byLinkText("Attestation")->click();
346            // On vérifie qu'il n'y ait pas d'erreur
347            $this->verifynoerrors();
348            // On vérifie le nom de l'onglet
349            $this->assertEquals("Imprimer L'attestation D'affichage Réglementaire", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
350            // On écrit "PC0130551200002P0" dans le champ dossier
351            $this->byId("dossier")->value("PC0130551200002P0");
352            // On clique sur "Valider"
353            $this->byXPath("//input[@value='Valider']")->click();
354            // On vérifie qu'il n'y ait pas d'erreur
355            $this->verifynoerrors();
356            // On vérifie que text est présent
357            $this->assertRegExp("/^[\s\S]*Ce dossier n'a jamais été affiché.[\s\S]*$/",$this->byCssSelector("BODY")->text());
358            // On clique sur le menu "Registre"
359            $this->byLinkText("Registre")->click();
360            // On vérifie qu'il n'y ait pas d'erreur
361            $this->verifynoerrors();
362            // On vérifie le nom de l'onglet
363            $this->assertEquals("Imprimer Le Registre D'affichage Réglementaire", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
364            // On clique sur "Valider"
365            $this->byXPath("//input[@value='Valider']")->click();
366            // On clique sur "Oui" dans la fenêtre js qui apparaît
367            $this->acceptAlert();sleep(5);
368            // Liste des fenêtres ouvertes
369            $windows = $this->windowHandles();
370            // On change le focus de la fenêtre
371            $this->window($windows[1]);
372            // On vérifie qu'il n'y ait pas d'erreur
373            $this->verifynoerrors();
374            // On vérifie que text est présent
375            $this->assertRegExp('/^[\s\S]*Registre des dossiers en cours[\s\S]*$/',$this->source());
376            // On ferme la fenêtre
377            $this->closeWindow();
378            // On change le focus de la fenêtre
379            $this->window($windows[0]);
380            // On vérifie qu'il n'y ait pas d'erreur
381            $this->verifynoerrors();
382            // On vérifie que text est présent
383            $this->assertRegExp('/^[\s\S]*Traitement terminé. Le registre a été téléchargé.[\s\S]*$/',$this->byCssSelector("BODY")->text());
384            // On clique sur le menu "Attestation"
385            $this->byLinkText("Attestation")->click();
386            // On vérifie qu'il n'y ait pas d'erreur
387            $this->verifynoerrors();
388            // On vérifie le nom de l'onglet
389            $this->assertEquals("Imprimer L'attestation D'affichage Réglementaire", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
390            // On clique sur "Valider"
391            $this->byXPath("//input[@value='Valider']")->click();
392            // On vérifie qu'il n'y ait pas d'erreur
393            $this->verifynoerrors();
394            // On vérifie que text est présent
395            $this->assertRegExp("/^[\s\S]*Veuiller saisir un N° de dossier.[\s\S]*$/",$this->byCssSelector("BODY")->text());
396            // On écrit "123" dans le champ dossier
397            $this->byId("dossier")->value("123");
398            // On clique sur "Valider"
399            $this->byXPath("//input[@value='Valider']")->click();
400            // On vérifie qu'il n'y ait pas d'erreur
401            $this->verifynoerrors();
402            // On vérifie que text est présent
403            $this->assertRegExp("/^[\s\S]*Ce dossier n'existe pas.[\s\S]*$/",$this->byCssSelector("BODY")->text());
404            // On écrit "PC0130551200002P0" dans le champ dossier
405            $this->byId("dossier")->value("PC0130551200002P0");
406            // On clique sur "Valider"
407            $this->byXPath("//input[@value='Valider']")->click();
408            // On vérifie qu'il n'y ait pas d'erreur
409            $this->verifynoerrors();
410            // On vérifie que le text est présent
411            $this->assertRegExp("/^[\s\S]*Cliquez sur le lien ci-dessous pour télécharger votre attestation d'affichage[\s\S]*$/",$this->byCssSelector("BODY")->text());
412            // On clique sur "Attestation d'affichage"
413            $this->byLinkText("Attestation d'affichage")->click();sleep(5);
414            // Liste les fenêtres
415            $windows = $this->windowHandles();
416            // Change la fenêtre
417            $this->window($windows[1]);
418            // On vérifie qu'il n'y ait pas d'erreur
419            $this->verifynoerrors();
420            // On vérifie que le text est
421            // présent
422            $this->assertRegExp("/^[\s\S]*ATTESTATION D'AFFICHAGE REGLEMENTAIRE[\s\S]*$/",$this->source());
423            // On ferme la fenêtre
424            $this->closeWindow();
425            // On change le focus de la fenêtre
426            $this->window($windows[0]);
427            // On se deconnecte
428          $this->logout();          $this->logout();
429      }      }
430    
431      /**      /**
432       *       * Test le Récépissé
433       */       */
434      public function testRecepisse() {      public function testRecepisse() {
         //  
         $this->login("guichet", "guichet");  
435    
436          //          // On se connecte à l'application
437          $this->clickAndWait("link=récépissé");          $this->login("guichet", "guichet");
438          $this->verifyNoErrors();          // On clique sur le menu "Récépissé"
439          $this->verifyTextPresent("demande");          $this->byLinkText("Récépissé")->click();
440          //          // On vérifie qu'il n'y ait pas d'erreur
441          $this->clickAndWait("link=AT0130551200001P0");          $this->verifynoerrors();
442          $this->verifyNoErrors();          // On vérifie le nom de l'onglet
443          $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());
444            // On clique sur "AT0130551200001P0"
445            $this->byLinkText("AT 013055 12 00001P0")->click();
446            // On vérifie qu'il n'y ait pas d'erreur
447            $this->verifynoerrors();
448            // Vérifie le fil d'Ariane
449            $this->assertEquals("Guichet Unique > Nouvelle Demande > Récépissé > AT 013055 12 00001P0", $this->byXPath("//div[3]/div/h2")->text());
450            // On vérifie que le text est présent
451            $this->assertRegExp("/^[\s\S]*Demande d'autorisation de construire, d'aménager ou de modifier un ERP[\s\S]*$/",$this->byCssSelector("BODY")->text());
452          // Le nom du pétitionnaire doit apparaître          // Le nom du pétitionnaire doit apparaître
453          $this->verifyTextPresent("BERNARD LILIANE");          $this->assertRegExp("/^[\s\S]*BERNARD LILIANE[\s\S]*$/",$this->byCssSelector("BODY")->text());
454          //          // On clique sur le lien
455          $this->click("link=Éditer le récépissé PDF");          $this->byLinkText("Éditer le récépissé PDF")->click();sleep(5);
456          $this->waitForPopUp("", "30000");          // Liste les fenêtres
457          $this->selectPopUp();          $windows = $this->windowHandles();
458          sleep(5);          // Change la fenêtre
459          $this->verifyNoErrors();          $this->window($windows[1]);
460          $this->verifyTextPresent("RECEPISSE DE DEPOT");          // On vérifie qu'il n'y ait pas d'erreur
461          $this->close();          $this->verifynoerrors();
462          //          // On vérifie que le text est présent
463          $this->selectWindow();          $this->assertRegExp("/^[\s\S]*RECEPISSE DE DEPOT[\s\S]*$/",$this->source());
464          //          // On ferme la fenêtre
465          $this->clickAndWait("link=Retour");          $this->closeWindow();
466          $this->verifyNoErrors();          // On change le focus de la fenêtre
467          $this->verifyTextPresent("demande");          $this->window($windows[0]);
468            // On clique sur "Retour"
469          //          $this->byLinkText("Retour")->click();
470            // On vérifie qu'il n'y ait pas d'erreur
471            $this->verifynoerrors();
472            // On vérifie le nom de l'onglet
473            $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
474            // On se deconnecte
475          $this->logout();          $this->logout();
476      }      }
477    
478      /**      /**
479       *       * Test les pétitionnaires fréquents
480       */       */
481      public function testPetitionnaireFrequent() {      public function testPetitionnaireFrequent() {
482          //  
483            // On se connecte à l'application
484          $this->login("guichet", "guichet");          $this->login("guichet", "guichet");
485            // On clique sur le menu "Nouveau Dossier"
486            $this->byLinkText("Nouveau Dossier")->click();
487            // On vérifie qu'il n'y ait pas d'erreur
488            $this->verifynoerrors();
489            // On vérifie le nom de l'onglet
490            $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
491            // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
492            $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel("Permis de construire pour une maison individuelle et / ou ses annexes");
493            // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
494            $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
495            // On clique pour ajouter un pétitionnaire principale
496            $this->byId("add_petitionnaire_principal")->click();
497            // On remplit le champ
498            $this->byId("particulier_nom")->value("DURAND");
499            // On remplit le champ
500            $this->byId("particulier_prenom")->value("MICKAEL");
501            // On remplit le champ
502            $this->byId("particulier_date_naissance")->value("03/01/1956");
503            // On remplit le champ
504            $this->byId("particulier_commune_naissance")->value("LILLE");
505            // On remplit le champ
506            $this->byId("particulier_departement_naissance")->value("NORD");
507            // On remplit le champ
508            $this->byId("numero")->value("12");
509            // On remplit le champ
510            $this->byId("voie")->value("RUE DE LA LOI");
511            // On remplit le champ
512            $this->byId("complement")->value("APPT 12");
513            // On remplit le champ
514            $this->byId("localite")->value("MARSEILLE");
515            // On remplit le champ
516            $this->byId("code_postal")->value("13012");
517            // On remplit le champ
518            $this->byId("telephone_fixe")->value("0404040404");
519            // On sélectionne pétitionnaire fréquent
520            $this->byId("frequent")->click();
521            // On clique sur ajouter
522            $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
523            // On vérifie qu'il n'y ait pas d'erreur
524            $this->verifynoerrors();
525            // On vérifie le message
526            $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-petitionnaire .message")->text());
527            // On clique sur le bouton retour
528            $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
529            // On vérifie que le text est présent
530            $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
531            // On clique sur ajouter
532            $this->byXPath("//input[@value='Ajouter']")->click();
533            // On vérifie qu'il n'y ait pas d'erreur
534            $this->verifynoerrors();
535            // On vérifie le message
536            $this->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°[\s\S]*$/",$this->byCssSelector(".message")->text());
537            // On clique
538            $this->byCssSelector("a.lien")->click();sleep(5);
539            // Liste les fenêtres
540            $windows = $this->windowHandles();
541            // Change la fenêtre
542            $this->window($windows[1]);
543            // On vérifie qu'il n'y ait pas d'erreur
544            $this->verifynoerrors();
545            // On vérifie que le text est présent
546            $this->assertRegExp("/^[\s\S]*RECEPISSE DE DEPOT[\s\S]*$/",$this->source());
547            // On ferme la fenêtre
548            $this->closeWindow();
549            // On change le focus de la fenêtre
550            $this->window($windows[0]);
551            // On clique sur le bouton retour
552            $this->byLinkText("Retour")->click();
553            // On vérifie qu'il n'y ait pas d'erreur
554            $this->verifynoerrors();
555            // On clique sur pétitionnaire fréquent
556            $this->byLinkText("Pétitionnaire Fréquent")->click();
557            // On vérifie qu'il n'y ait pas d'erreur
558            $this->verifynoerrors();
559            // On vérifie que le text est présent
560            $this->assertRegExp("/^[\s\S]*pétitionnaire fréquent[\s\S]*$/",$this->source());
561            // On vérifie que le text est présent
562            $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->source());
563            // On clique sur le résultat
564            $this->byLinkText("DURAND MICKAEL")->click();
565            // On vérifie qu'il n'y ait pas d'erreur
566            $this->verifynoerrors();
567            // On vérifie que le text est présent
568            $this->assertRegExp("/^[\s\S]*RUE DE LA LOI[\s\S]*$/",$this->source());
569            // On clique sur le bouton "Retour"
570            $this->byLinkText("Retour")->click();
571            // On vérifie qu'il n'y ait pas d'erreur
572            $this->verifynoerrors();
573            // On vérifie que le text est présent
574            $this->assertRegExp("/^[\s\S]*pétitionnaire fréquent[\s\S]*$/",$this->source());
575            // On se déconnecte
576            $this->logout();
577        }
578    
579          //      /**
580          $this->clickAndWait("link=nouveau dossier");       * Active l'option sig avec la valeur nécessaire pour la suite des tests
581          $this->verifyNoErrors();       */
582          $this->verifyTextPresent("demande");      public function test_active_option_sig() {
583          //  
584          $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"
585          $this->select("id=demande_type", "label=Dépôt Initial");          $this->login("admin", "admin");
586          $this->click("id=add_petitionnaire_principal");          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
587          $this->type("id=particulier_nom", "DURAND");          $this->verifyNoErrors();
588          $this->type("id=particulier_prenom", "MICKAEL");          // On clique sur le lien "Administration" dans le menu
589          $this->type("id=particulier_date_naissance", "03/01/1956");          $this->byLinkText("Administration")->click();
590          $this->type("id=particulier_commune_naissance", "LILLE");          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
591          $this->type("id=particulier_departement_naissance", "NORD");          $this->verifyNoErrors();
592          $this->type("id=numero", "12");          // // On clique sur le lien "Paramètre" dans le menu
593          $this->type("id=voie", "RUE DE LA LOI");          $this->byLinkText("Paramètre")->click();
594          $this->type("document.f2.complement", "APPT 12");          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
595          $this->type("id=localite", "MARSEILLE");          $this->verifyNoErrors();
596          $this->type("id=code_postal", "13012");          // On remplis le champs de recherche simple
597          $this->type("id=telephone_fixe", "0404040404");          $this->byCssSelector("input[name='recherche']")->value('option_sig');
598          $this->click("id=frequent");          // On clique sur le bouton recherche
599                    $this->byCssSelector(".ui-button")->click();
600          $this->click("//input[@value=\"Ajouter l'enregistrement de la table : 'demandeur'\"]");          // 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);          sleep(1);
674          $this->verifyNoErrors();          // On vérifie que le format des champs est mise à jour automatiquement
675          $this->verifyTextPresent("Vos modifications ont bien été enregistrées.");          $this->assertEquals("001", $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(1)")->attribute('value'));
676          $this->click("css=form[name=\"f2\"] > div.formControls > a.retour");          $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);          sleep(1);
688          //          // On vérifie que les références cadastrales soient toujours affiché
689          $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)")->attribute('value'));
690          $this->clickAndWait("//input[@value='Ajouter']");          $this->assertEquals("DC", $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(2)")->attribute('value'));
691          $this->verifyNoErrors();          $this->assertEquals("0015", $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(3)")->attribute('value'));        
692          $this->verifyTextPresent("Création du dossier d'autorisation n°PC0130551300001");          //On saisie les références cadastrales
693          //          $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(1)")->clear();
694          //$this->click("link=     Télécharger le récépissé de la demande");          $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(2)")->clear();
695          $this->click("css=a.lien");          $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(3)")->clear();
696          $this->waitForPopUp("", "30000");          //On clique sur le bouton de recherche "Cadastrale = > Adresse"
697          $this->selectPopUp();          $this->byId("cad-adr-them")->click();
698          sleep(5);          //On valide le message d'erreur
699          $this->verifyNoErrors();          $this->assertEquals('Aucune référence cadastrale fournie', $this->alertText());
700          $this->verifyTextPresent("RECEPISSE DE DEPOT");          $this->acceptAlert();
701          $this->close();          // On clique pour ajouter un pétitionnaire principale
702          //          $this->byId("add_petitionnaire_principal")->click();
703          $this->selectWindow();          // On remplit le champ
704          //          $this->byId("particulier_nom")->value("DURAND");
705          $this->clickAndWait("link=Retour");          // On remplit le champ
706          $this->verifyNoErrors();          $this->byId("particulier_prenom")->value("MICKAEL");
707          //          // On remplit le champ
708          $this->clickAndWait("link=pétitionnaire fréquent");          $this->byId("particulier_date_naissance")->value("03/01/1956");
709          $this->verifyNoErrors();          // On remplit le champ
710          $this->verifyTextPresent("pétitionnaire fréquent");          $this->byId("particulier_commune_naissance")->value("LILLE");
711          $this->verifyTextPresent("DURAND MICKAEL");          // On remplit le champ
712          //          $this->byId("particulier_departement_naissance")->value("NORD");
713          $this->clickAndWait("link=DURAND MICKAEL");          // On remplit le champ
714          $this->verifyNoErrors();          $this->byId("numero")->value("12");
715          $this->verifyTextPresent("RUE DE LA LOI ");          // On remplit le champ
716          //          $this->byId("voie")->value("RUE DE LA LOI");
717          $this->clickAndWait("link=Retour");          // 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
772         * dossiers d'instruction.
773         * Quatre cas sont possibles :
774         * - Aucun instructeur ne correspond,  ;
775         * - Un instructeur joker correspond,  ;
776         * - Un instructeur correspond, .
777         */
778        function testAffectationAutomatique(){
779            
780            // On se connecte à l'application
781            $this->login("guichet", "guichet");
782            //Ajout d'un dossier d'instructeur avec affectation d'aucun instructeur
783            $this->ajoutDossierAffectationAutomatique("801", "A", "0001", "Permis de construire comprenant ou non des démolitions", " -");
784            
785            //Ajout d'un dossier d'instructeur avec affectation d'un instructeur
786            //joker avec seulement le type de dossier d'autorisation détaillé de
787            //renseigné
788            $this->ajoutDossierAffectationAutomatique("806", "A", "0001", "Permis de construire pour une maison individuelle et / ou ses annexes", "Louis Laurent");
789            
790            //Ajout d'un dossier d'instructeur avec affectation du seul instructeur
791            //correspondant parfaitement aux critères
792            $this->ajoutDossierAffectationAutomatique("801", "A", "0001", "Permis de construire pour une maison individuelle et / ou ses annexes", "Pierre Martin");
793            // On se déconnecte
794            $this->logout();
795        }
796        
797        /**
798         * Ajoute un dossier d'instruction
799         * @param string $reference_cadastrale_quartier Le quartier de la référence
800         *               cadastrale du dossier
801         * @param string $reference_cadastrale_section La section de la référence
802         *               cadastrale du dossier
803         * @param string $reference_cadastrale_parcelle La parcelle de la référence
804         *               cadastrale du dossier
805         * @param string $datd dossier d'autorisation type détaillé
806         * @param string $instructeur le nom de l'instructeur
807         *
808         * @return boolean
809         */
810        function ajoutDossierAffectationAutomatique($reference_cadastrale_quartier,
811            $reference_cadastrale_section, $reference_cadastrale_parcelle,$datd,
812            $instructeur){
813            
814            //On affiche le tableau de bord
815            $this->byLinkText("Tableau de bord")->click();
816            // On clique sur le menu "Nouveau Dossier"
817            $this->byLinkText("Nouveau Dossier")->click();
818            // On vérifie qu'il n'y ait pas d'erreur
819            $this->verifynoerrors();
820            // On vérifie le nom de l'onglet
821            $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
822            // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
823            $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel($datd);
824            // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
825            $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
826            //On saisie les références cadastrales
827            $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(1)")->value($reference_cadastrale_quartier);
828            $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(2)")->value($reference_cadastrale_section);
829            $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(3)")->value($reference_cadastrale_parcelle);
830            //On clique sur le bouton de recherche "Cadastrale = > Adresse"
831            $this->byId("cad-adr-them")->click();
832            // On clique pour ajouter un pétitionnaire principale
833            $this->byId("add_petitionnaire_principal")->click();
834            // On remplit le champ
835            $this->byId("particulier_nom")->value("DURAND");
836            // On remplit le champ
837            $this->byId("particulier_prenom")->value("MICKAEL");
838            // On remplit le champ
839            $this->byId("particulier_date_naissance")->value("03/01/1956");
840            // On remplit le champ
841            $this->byId("particulier_commune_naissance")->value("LILLE");
842            // On remplit le champ
843            $this->byId("particulier_departement_naissance")->value("NORD");
844            // On remplit le champ
845            $this->byId("numero")->value("12");
846            // On remplit le champ
847            $this->byId("voie")->value("RUE DE LA LOI");
848            // On remplit le champ
849            $this->byId("complement")->value("APPT 12");
850            // On remplit le champ
851            $this->byId("localite")->value("MARSEILLE");
852            // On remplit le champ
853            $this->byId("code_postal")->value("13012");
854            // On remplit le champ
855            $this->byId("telephone_fixe")->value("0404040404");
856            // On clique sur ajouter
857            $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
858            // On vérifie qu'il n'y ait pas d'erreur
859            $this->verifynoerrors();
860            // On vérifie le message
861            $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-petitionnaire .message")->text());
862            // On clique sur le bouton retour
863            $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
864            // On vérifie que le text est présent
865            $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
866            // On clique sur ajouter
867            $this->byXPath("//input[@value='Ajouter']")->click();
868            // On vérifie qu'il n'y ait pas d'erreur
869            $this->verifynoerrors();
870            // On vérifie le message
871            $this->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°[\s\S]*$/",$this->byCssSelector(".message")->text());
872            // On clique
873            $this->byCssSelector("a.lien")->click();sleep(5);
874            // Liste les fenêtres
875            $windows = $this->windowHandles();
876            // Change la fenêtre
877            $this->window($windows[1]);
878            // On vérifie qu'il n'y ait pas d'erreur
879            $this->verifynoerrors();
880            // On vérifie que le text est présent
881            $this->assertRegExp("/^[\s\S]*Dossier suivi par  ".$instructeur."[\s\S]*$/",$this->source());
882            // On ferme la fenêtre
883            $this->closeWindow();
884            // On change le focus de la fenêtre
885            $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();          $this->verifyNoErrors();
897          $this->verifyTextPresent("pétitionnaire fréquent");          // 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 le dossier qui ne doit pas être dans
902            // "Dossier En Cours" sont ici
903            $this->assertRegExp("/^[\s\S]*PC 013055 ".date("y")." 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();          $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.1966  
changed lines
  Added in v.3235

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26