/[openfoncier]/trunk/tests/testGuichetUnique.php
ViewVC logotype

Annotation of /trunk/tests/testGuichetUnique.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3803 - (hide annotations)
Mon Mar 21 09:50:16 2016 UTC (8 years, 10 months ago) by nhaye
File size: 41258 byte(s)
Ajout de l'adresse du terrain lors de la saise d'une nouvelle demande

1 mbroquet 3730 <?php
2     /**
3     *
4     *
5     * @package openfoncier
6     * @version SVN : $Id: testGuichetUnique.php 6145 2016-03-10 09:07:45Z nhaye $
7     */
8    
9     //
10     require_once "base.php";
11    
12     /**
13     *
14     */
15     class GuichetUnique extends Base2TestCase {
16     /**
17     * Fonction lancée en debut de chaque test
18     */
19     public function setUp() {
20     parent::setUp();
21     echo ' = '.get_class().'.'.str_replace('test_', '', $this->getName())."\r\n";
22     }
23    
24     public function onNotSuccessfulTest(Exception $e){
25     echo 'Line '.$e->getLine().' : '.$e->getMessage()."\r\n";
26     parent::onNotSuccessfulTest($e);
27     }
28    
29     // Liste des utilisateurs
30     var $listUtlisateurs = array(
31     array(
32     "login" => "guichet",
33     "mdp" => "guichet"
34     ),
35     array(
36     "login" => "adminfonct",
37     "mdp" => "adminfonct"
38     ),
39     );
40    
41     /**
42     * Ce test vise uniquement à vérifier que les écrans correspondant à chaque
43     * entrée de menu ne génère pas une erreur de base de données
44     */
45     // Fonction privé
46     private function ouvertureMenu($utilisateur) {
47     // On se connecte
48     $this->login($utilisateur["login"], $utilisateur["mdp"]);
49     // Ouvre le menu
50     $this->openMenu("Guichet Unique", $utilisateur);
51     // On vérifie le menu "Nouveau Dossier"
52     $this->byLinkText("Nouveau Dossier")->click();
53     $this->assertContains("Guichet Unique > Nouvelle Demande > Nouveau Dossier",
54     $this->byId("title")->text());
55     $this->verifyNoErrors();
56     // On vérifie le menu "Dossier En Cours"
57     $this->byLinkText("Dossier En Cours")->click();
58     $this->assertContains("Guichet Unique > Nouvelle Demande > Dossier En Cours",
59     $this->byId("title")->text());
60     $this->verifyNoErrors();
61     // On vérifie le menu "Autre Dossier"
62     $this->byLinkText("Autre Dossier")->click();
63     $this->assertContains("Guichet Unique > Nouvelle Demande > Autre Dossier",
64     $this->byId("title")->text());
65     $this->verifyNoErrors();
66     // On vérifie le menu "Récépissé"
67     $this->byLinkText("Récépissé")->click();
68     $this->assertContains("Guichet Unique > Nouvelle Demande > Récépissé",
69     $this->byId("title")->text());
70     $this->verifyNoErrors();
71     // On vérifie le menu "Pétitionnaire Fréquent"
72     $this->byLinkText("Pétitionnaire Fréquent")->click();
73     $this->assertContains("Guichet Unique > Nouvelle Demande > Pétitionnaire Fréquent",
74     $this->byId("title")->text());
75     $this->verifyNoErrors();
76     // On vérifie le menu "Registre"
77     $this->byLinkText("Registre")->click();
78     $this->assertContains("Guichet Unique > Affichage Réglementaire > Registre",
79     $this->byId("title")->text());
80     $this->verifyNoErrors();
81     // On vérifie le menu "Attestation"
82     $this->byLinkText("Attestation")->click();
83     $this->assertContains("Guichet Unique > Affichage Réglementaire > Attestation",
84     $this->byId("title")->text());
85     $this->verifyNoErrors();
86     // On se déconnecte
87     $this->deconnect();
88     }
89     // Fonction public
90     public function test_01_OuvertureMenu() {
91     // Récupération des utilisateurs
92     $utilisateurs = $this->listUtlisateurs;
93     // Pour chaque utilisateur on lance le test
94     foreach ($utilisateurs as $utilisateur) {
95     //
96     $this->ouvertureMenu($utilisateur);
97     }
98     // On vérifie la déconnexion
99     $this->verifyDeconnect();
100     }
101    
102     /**
103     * Test l'ajout d'une demande
104     */
105     // Fonction privé
106     private function ajoutDemandeInitial($utilisateur) {
107    
108     // On se connecte à l'application
109     $this->login($utilisateur["login"], $utilisateur["mdp"]);
110     // Ouvre le menu
111     $this->openMenu("Guichet Unique", $utilisateur);
112     // On clique sur le menu "Nouveau Dossier"
113     $this->byLinkText("Nouveau Dossier")->click();
114     // On vérifie qu'il n'y ait pas d'erreur
115     $this->verifynoerrors();
116     // On vérifie le nom de l'onglet
117     $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
118     // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
119     $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel("Permis de construire pour une maison individuelle et / ou ses annexes");
120     // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
121     $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
122     // On clique pour ajouter un pétitionnaire principale
123     $this->byId("add_petitionnaire_principal")->click();
124     // On remplit le champ
125     $this->select($this->byId("particulier_civilite"))->selectOptionByLabel("Monsieur");
126     // On remplit le champ
127     $this->byId("particulier_nom")->value("DURAND");
128     // On remplit le champ
129     $this->byId("particulier_prenom")->value("MICKAEL");
130     // On remplit le champ
131     $this->byId("particulier_date_naissance")->value("03/01/1956");
132     // On remplit le champ
133     $this->byId("particulier_commune_naissance")->value("LILLE");
134     // On remplit le champ
135     $this->byId("particulier_departement_naissance")->value("NORD");
136     // On remplit le champ
137     $this->byId("numero")->value("12");
138     // On remplit le champ
139     $this->byId("voie")->value("RUE DE LA LOI");
140     // On remplit le champ
141     $this->byId("complement")->value("APPT 12");
142     // On remplit le champ
143     $this->byId("localite")->value("MARSEILLE");
144     // On remplit le champ
145     $this->byId("code_postal")->value("13012");
146     // On remplit le champ
147     $this->byId("telephone_fixe")->value("0404040404");
148     // On remplit le champ
149     $this->byId("fax")->value("0405040404");
150     // On clique sur ajouter
151     $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
152     // On vérifie qu'il n'y ait pas d'erreur
153     $this->verifynoerrors();
154     // On vérifie le message
155     $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-petitionnaire .message")->text());
156     // On clique sur le bouton retour
157     $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
158     // On vérifie que le text est présent
159     $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
160     // On clique sur ajouter
161     $this->byXPath("//input[@value='Ajouter']")->click();
162     // On vérifie qu'il n'y ait pas d'erreur
163     $this->verifynoerrors();
164     // On vérifie le message
165     $this->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°[\s\S]*$/",$this->byCssSelector(".message")->text());
166     // On clique
167     $this->byCssSelector("a#link_demande_recepisse")->click();sleep(5);
168     // Liste les fenêtres
169     $windows = $this->windowHandles();
170     // Change la fenêtre
171     $this->window($windows[1]);
172     // On vérifie qu'il n'y ait pas d'erreur
173     $this->verifynoerrors();
174     // On vérifie que le text est présent
175     $this->assertRegExp("/^[\s\S]*RECEPISSE DE DEPOT[\s\S]*$/",$this->source());
176     // On ferme la fenêtre
177     $this->closeWindow();
178     // On change le focus de la fenêtre
179     $this->window($windows[0]);
180     // On clique sur le bouton retour
181     $this->byLinkText("Retour")->click();
182     // On vérifie qu'il n'y ait pas d'erreur
183     $this->verifynoerrors();
184     // On se déconnecte
185     $this->deconnect();
186     }
187     // Fonction public
188     public function test_02_AjoutDemandeInitial() {
189     // Récupération des utilisateurs
190     $utilisateurs = $this->listUtlisateurs;
191     // Pour chaque utilisateur on lance le test
192     foreach ($utilisateurs as $utilisateur) {
193     //
194     $this->ajoutDemandeInitial($utilisateur);
195     }
196     // On vérifie la déconnexion
197     $this->verifyDeconnect();
198     }
199    
200     /**
201     * Test l'ajout d'une demande et de création d'une nouvelle sequence
202     */
203     public function test_03_AjoutDemandeNouvelleSequence() {
204    
205     // On se connecte à l'application
206     $this->login("guichet", "guichet");
207     // On clique sur le menu "Nouveau Dossier"
208     $this->byLinkText("Nouveau Dossier")->click();
209     // On vérifie qu'il n'y ait pas d'erreur
210     $this->verifynoerrors();
211     // On vérifie le nom de l'onglet
212     $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
213     // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
214     $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel("Permis de construire pour une maison individuelle et / ou ses annexes");
215     // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
216     $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
217     // Modification de la date
218     $this->byId("date_demande")->clear();
219     $this->byId("date_demande")->value("10/10/2014");
220     // On clique pour ajouter un pétitionnaire principale
221     $this->byId("add_petitionnaire_principal")->click();
222     // On remplit le champ
223     $this->select($this->byId("particulier_civilite"))->selectOptionByLabel("Monsieur");
224     // On remplit le champ
225     $this->byId("particulier_nom")->value("DURAND");
226     // On remplit le champ
227     $this->byId("particulier_prenom")->value("MICKAEL");
228     // On remplit le champ
229     $this->byId("particulier_date_naissance")->value("03/01/1956");
230     // On remplit le champ
231     $this->byId("particulier_commune_naissance")->value("LILLE");
232     // On remplit le champ
233     $this->byId("particulier_departement_naissance")->value("NORD");
234     // On remplit le champ
235     $this->byId("numero")->value("12");
236     // On remplit le champ
237     $this->byId("voie")->value("RUE DE LA LOI");
238     // On remplit le champ
239     $this->byId("complement")->value("APPT 12");
240     // On remplit le champ
241     $this->byId("localite")->value("MARSEILLE");
242     // On remplit le champ
243     $this->byId("code_postal")->value("13012");
244     // On remplit le champ
245     $this->byId("telephone_fixe")->value("0404040404");
246     // On clique sur ajouter
247     $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
248     // On vérifie qu'il n'y ait pas d'erreur
249     $this->verifynoerrors();
250     // On vérifie le message
251     $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-petitionnaire .message")->text());
252     // On clique sur le bouton retour
253     $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
254     // On vérifie que le text est présent
255     $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
256     // On clique sur ajouter
257     $this->byXPath("//input[@value='Ajouter']")->click();
258     // On vérifie qu'il n'y ait pas d'erreur
259     $this->verifynoerrors();
260     // On vérifie le message
261     $this->assertContains("Création du dossier d'autorisation n°",$this->byCssSelector(".message .text")->text());
262     // Récupération du numéro de dossier
263     preg_match('/(PC)[0-9 ]*(P0)/', $this->byCssSelector(".message .text")->text(), $dossier);
264     $dossier = $dossier[0];
265     // On se déconnecte
266     $this->logout();
267     }
268    
269     /**
270     * Test l'ajout d'une demande de modification
271     */
272     public function test_04_AjoutDemandeModification() {
273    
274     // Année en cours
275     $annee = date("y");
276    
277     /// On se connecte à l'application en tant qu'instructeur
278     // pour ajouter une instruction arrêté sur le dossier crée
279     $this->login("instr", "instr");
280     // On clique sur le menu
281     $this->byLinkText("Recherche")->click();
282     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
283     $this->verifyNoErrors();
284     // On clique sur le dossier
285     $this->byId("action-tab-dossier_instruction-left-consulter-PC013055".$annee."00001P0")->click();
286     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
287     $this->verifyNoErrors();
288     //On déplie le fieldset Pétitionnaire
289     $this->byCssSelector("#liste_demandeur legend")->click();
290     sleep(1);
291     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
292     $this->verifyNoErrors();
293     // On vérifie la civilité du demandeur
294     $this->assertContains("Monsieur",$this->byCssSelector(".synthese_demandeur")->text());
295     // On clique sur l'onglet instruction
296     $this->byId("instruction")->click();
297     // On clique sur le + pour ajouter une instruction
298     $this->byCssSelector("#sousform-instruction .actions-max-1 a")->click();
299     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
300     $this->verifyNoErrors();
301     // On choisi l'événement
302     $this->select($this->byId("evenement"))->selectOptionByValue(81);
303     // On clique sur le bouton ajouter
304     $this->byXPath("//input[@value='Ajouter']")->click();
305     // On vérifie que l'instruction s'est bien ajouté
306     $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
307     // On clique sur le bouton retour
308     $this->byCssSelector("#sousform-instruction form a.retour")->click();
309     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
310     $this->verifyNoErrors();
311     // On clique sur l'onglet DI
312     $this->byId("main")->click();
313     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
314     $this->verifyNoErrors();
315     // on rafraichis la page
316     $this->refresh();
317     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
318     $this->verifyNoErrors();
319     // On vérifie l'état du dossier
320     $this->assertEquals("dossier accepter", $this->byId('etat')->text());
321     // On se déconnecte de l'instructeur
322     $this->deconnect();
323     // On se connecte en tant que guichet unique
324     $this->login("guichet", "guichet");
325     // On clique sur le menu "Nouveau Dossier"
326     $this->byLinkText("Autre Dossier")->click();
327     // On vérifie qu'il n'y ait pas d'erreur
328     $this->verifynoerrors();
329     // On vérifie le nom de l'onglet
330     $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
331     // On clique pour ajouter une demande au dossier existant
332     $this->byId("action-tab-demande_autre_dossier-left-consulter-PC013055".$annee."00001P0")->click();
333     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
334     $this->verifyNoErrors();
335     // Vérifie le fil d'Ariane
336     $this->assertContains("Guichet Unique > Nouvelle Demande > Autre Dossier > PC 013055", $this->byXPath("//div[3]/div/h2")->text());
337     // On choisis le type de demande
338     $this->select($this->byId("demande_type"))->selectOptionByLabel("Demande de modification");
339     // On clique sur ajouter
340     $this->byXPath("//input[@value='Ajouter']")->click();
341     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
342     $this->verifyNoErrors();
343     // On vérifie le message
344     $this->assertRegExp("/^[\s\S]*Création du dossier d'instruction n°[\s\S]*$/", $this->byCssSelector("BODY")->text());
345     // On se déconnecte
346     $this->logout();
347    
348     }
349    
350     /**
351     * Tests l'affichage réglementaire
352     */
353     public function test_05_AffichageReglementaire() {
354    
355     // On se connecte à l'application
356     $this->login("guichet", "guichet");
357     // On clique sur le menu "Attestation"
358     $this->byLinkText("Attestation")->click();
359     // On vérifie qu'il n'y ait pas d'erreur
360     $this->verifynoerrors();
361     // On vérifie le nom de l'onglet
362     $this->assertEquals("Imprimer L'attestation D'affichage Réglementaire", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
363     // On écrit "PC0130551200002P0" dans le champ dossier
364     $this->byId("dossier")->value("PC0130551200002P0");
365     // On clique sur "Valider"
366     $this->byXPath("//input[@value='Valider']")->click();
367     // On vérifie qu'il n'y ait pas d'erreur
368     $this->verifynoerrors();
369     // On vérifie que text est présent
370     $this->assertRegExp("/^[\s\S]*Ce dossier n'a jamais été affiché.[\s\S]*$/",$this->byCssSelector("BODY")->text());
371     // On clique sur le menu "Registre"
372     $this->byLinkText("Registre")->click();
373     // On vérifie qu'il n'y ait pas d'erreur
374     $this->verifynoerrors();
375     // On vérifie le nom de l'onglet
376     $this->assertEquals("Imprimer Le Registre D'affichage Réglementaire", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
377     // On clique sur "Valider"
378     $this->byXPath("//input[@value='Valider']")->click();
379     // On clique sur "Oui" dans la fenêtre js qui apparaît
380     $this->acceptAlert();sleep(5);
381     // Liste des fenêtres ouvertes
382     $windows = $this->windowHandles();
383     // On change le focus de la fenêtre
384     $this->window($windows[1]);
385     sleep(2);
386     // On vérifie qu'il n'y ait pas d'erreur
387     $this->verifynoerrors();
388     // On vérifie que text est présent
389     $this->assertRegExp('/^[\s\S]*Registre des dossiers en cours[\s\S]*$/',$this->source());
390     // On ferme la fenêtre
391     $this->closeWindow();
392     // On change le focus de la fenêtre
393     $this->window($windows[0]);
394     // On vérifie qu'il n'y ait pas d'erreur
395     $this->verifynoerrors();
396     // On vérifie que text est présent
397     $this->assertRegExp('/^[\s\S]*Traitement terminé. Le registre a été téléchargé.[\s\S]*$/',$this->byCssSelector("BODY")->text());
398     // On clique sur le menu "Attestation"
399     $this->byLinkText("Attestation")->click();
400     // On vérifie qu'il n'y ait pas d'erreur
401     $this->verifynoerrors();
402     // On vérifie le nom de l'onglet
403     $this->assertEquals("Imprimer L'attestation D'affichage Réglementaire", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
404     // On clique sur "Valider"
405     $this->byXPath("//input[@value='Valider']")->click();
406     // On vérifie qu'il n'y ait pas d'erreur
407     $this->verifynoerrors();
408     // On vérifie que text est présent
409     $this->assertRegExp("/^[\s\S]*Veuiller saisir un N° de dossier.[\s\S]*$/",$this->byCssSelector("BODY")->text());
410     // On écrit "123" dans le champ dossier
411     $this->byId("dossier")->value("123");
412     // On clique sur "Valider"
413     $this->byXPath("//input[@value='Valider']")->click();
414     // On vérifie qu'il n'y ait pas d'erreur
415     $this->verifynoerrors();
416     // On vérifie que text est présent
417     $this->assertRegExp("/^[\s\S]*Ce dossier n'existe pas.[\s\S]*$/",$this->byCssSelector("BODY")->text());
418     // On écrit "PC0130551200002P0" dans le champ dossier
419     $this->byId("dossier")->value("PC0130551200002P0");
420     // On clique sur "Valider"
421     $this->byXPath("//input[@value='Valider']")->click();
422     // On vérifie qu'il n'y ait pas d'erreur
423     $this->verifynoerrors();
424     // On vérifie que le text est présent
425     $this->assertRegExp("/^[\s\S]*Cliquez sur le lien ci-dessous pour télécharger votre attestation d'affichage[\s\S]*$/",$this->byCssSelector("BODY")->text());
426     // On clique sur "Attestation d'affichage"
427     $this->byLinkText("Attestation d'affichage")->click();sleep(5);
428     // Liste les fenêtres
429     $windows = $this->windowHandles();
430     // Change la fenêtre
431     $this->window($windows[1]);
432     // On vérifie qu'il n'y ait pas d'erreur
433     $this->verifynoerrors();
434     // On vérifie que le text est
435     // présent
436     $this->assertRegExp("/^[\s\S]*ATTESTATION D'AFFICHAGE REGLEMENTAIRE[\s\S]*$/",$this->source());
437     // On ferme la fenêtre
438     $this->closeWindow();
439     // On change le focus de la fenêtre
440     $this->window($windows[0]);
441     // On se deconnecte
442     $this->logout();
443     }
444    
445     /**
446     * Test le Récépissé
447     */
448     public function test_06_Recepisse() {
449    
450     // On se connecte à l'application
451     $this->login("guichet", "guichet");
452     // On clique sur le menu "Récépissé"
453     $this->byLinkText("Récépissé")->click();
454     // On vérifie qu'il n'y ait pas d'erreur
455     $this->verifynoerrors();
456     // On vérifie le nom de l'onglet
457     $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
458     // On clique sur "AT0130551200001P0"
459     $this->byLinkText("AT 013055 12 00001P0")->click();
460     // On vérifie qu'il n'y ait pas d'erreur
461     $this->verifynoerrors();
462     // Vérifie le fil d'Ariane
463     $this->assertEquals("Guichet Unique > Nouvelle Demande > Récépissé > AT 013055 12 00001P0", $this->byXPath("//div[3]/div/h2")->text());
464     // On vérifie que le text est présent
465     $this->assertRegExp("/^[\s\S]*Demande d'autorisation de construire, d'aménager ou de modifier un ERP[\s\S]*$/",$this->byCssSelector("BODY")->text());
466     // Le nom du pétitionnaire doit apparaître
467     $this->assertRegExp("/^[\s\S]*BERNARD LILIANE[\s\S]*$/",$this->byCssSelector("BODY")->text());
468     // On clique sur le lien
469     $this->byLinkText("Éditer le récépissé PDF")->click();sleep(5);
470     // Liste les fenêtres
471     $windows = $this->windowHandles();
472     // Change la fenêtre
473     $this->window($windows[1]);
474     // On vérifie qu'il n'y ait pas d'erreur
475     $this->verifynoerrors();
476     // On vérifie que le text est présent
477     $this->assertRegExp("/^[\s\S]*RECEPISSE DE DEPOT[\s\S]*$/",$this->source());
478     // On ferme la fenêtre
479     $this->closeWindow();
480     // On change le focus de la fenêtre
481     $this->window($windows[0]);
482     // On clique sur "Retour"
483     $this->byLinkText("Retour")->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 se deconnecte
489     $this->logout();
490     }
491    
492     /**
493     * Test les pétitionnaires fréquents
494     */
495     public function test_07_PetitionnaireFrequent() {
496    
497     // On se connecte à l'application
498     $this->login("guichet", "guichet");
499     // On clique sur le menu "Nouveau Dossier"
500     $this->byLinkText("Nouveau Dossier")->click();
501     // On vérifie qu'il n'y ait pas d'erreur
502     $this->verifynoerrors();
503     // On vérifie le nom de l'onglet
504     $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
505     // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
506     $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel("Permis de construire pour une maison individuelle et / ou ses annexes");
507     // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
508     $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
509     // On clique pour ajouter un pétitionnaire principale
510     $this->byId("add_petitionnaire_principal")->click();
511     // On remplit le champ
512     $this->byId("particulier_nom")->value("DURAND");
513     // On remplit le champ
514     $this->byId("particulier_prenom")->value("MICKAEL");
515     // On remplit le champ
516     $this->byId("particulier_date_naissance")->value("03/01/1956");
517     // On remplit le champ
518     $this->byId("particulier_commune_naissance")->value("LILLE");
519     // On remplit le champ
520     $this->byId("particulier_departement_naissance")->value("NORD");
521     // On remplit le champ
522     $this->byId("numero")->value("12");
523     // On remplit le champ
524     $this->byId("voie")->value("RUE DE LA LOI");
525     // On remplit le champ
526     $this->byId("complement")->value("APPT 12");
527     // On remplit le champ
528     $this->byId("localite")->value("MARSEILLE");
529     // On remplit le champ
530     $this->byId("code_postal")->value("13012");
531     // On remplit le champ
532     $this->byId("telephone_fixe")->value("0404040404");
533     // On sélectionne pétitionnaire fréquent
534     $this->byId("frequent")->click();
535     // On clique sur ajouter
536     $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
537     // On vérifie qu'il n'y ait pas d'erreur
538     $this->verifynoerrors();
539     // On vérifie le message
540     $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-petitionnaire .message")->text());
541     // On clique sur le bouton retour
542     $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
543     // On vérifie que le text est présent
544     $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
545     // On clique sur ajouter
546     $this->byXPath("//input[@value='Ajouter']")->click();
547     // On vérifie qu'il n'y ait pas d'erreur
548     $this->verifynoerrors();
549     // On vérifie le message
550     $this->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°[\s\S]*$/",$this->byCssSelector(".message")->text());
551     // On clique
552     $this->byCssSelector("a#link_demande_recepisse")->click();sleep(5);
553     // Liste les fenêtres
554     $windows = $this->windowHandles();
555     // Change la fenêtre
556     $this->window($windows[1]);
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]*RECEPISSE DE DEPOT[\s\S]*$/",$this->source());
561     // On ferme la fenêtre
562     $this->closeWindow();
563     // On change le focus de la fenêtre
564     $this->window($windows[0]);
565     // On clique sur le bouton retour
566     $this->byLinkText("Retour")->click();
567     // On vérifie qu'il n'y ait pas d'erreur
568     $this->verifynoerrors();
569     //On se déconnecte
570     $this->deconnect();
571    
572     //On se connecte en administrateur
573     $this->login("admin", "admin");
574     //On clique sur le menu guichet unique
575     $this->byLinkText("Guichet Unique")->click();
576     // On clique sur pétitionnaire fréquent
577     $this->byLinkText("Pétitionnaire Fréquent")->click();
578     // On vérifie qu'il n'y ait pas d'erreur
579     $this->verifynoerrors();
580     // On vérifie que le text est présent
581     $this->assertRegExp("/^[\s\S]*pétitionnaire fréquent[\s\S]*$/",$this->source());
582     // On lance une recherche simple
583     $this->byName("recherche")->value("*DUR");
584     $this->select($this->byName("selectioncol"))->selectOptionByLabel("nom");
585     // On clique sur recherche
586     $this->byName("s1")->click();
587     // On vérifie qu'il n'y ait pas d'erreur
588     $this->verifynoerrors();
589     // On vérifie que le text est présent
590     $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->source());
591     // On clique sur le résultat
592     $this->byLinkText("DURAND MICKAEL")->click();
593     // On vérifie qu'il n'y ait pas d'erreur
594     $this->verifynoerrors();
595     // On vérifie que le text est présent
596     $this->assertRegExp("/^[\s\S]*RUE DE LA LOI[\s\S]*$/",$this->source());
597     // On marque le pétitionnaire comme non fréquent
598     $this->byId("action-form-petitionnaire_frequent-non_frequent")->click();
599     //On vérifie le message
600     $this->assertRegExp("/^[\s\S]*Mise à jour effectuée avec succès[\s\S]*$/",$this->byCssSelector("#tabs-1 .message")->text());
601     // On clique sur le bouton "Retour"
602     $this->byLinkText("Retour")->click();
603     // On vérifie qu'il n'y ait pas d'erreur
604     $this->verifynoerrors();
605     // On vérifie que le text est présent
606     $this->assertRegExp("/^[\s\S]*pétitionnaire fréquent[\s\S]*$/",$this->source());
607     $this->assertNotContains('DURAND MICKAEL', $this->source());
608     // On se déconnecte
609     $this->logout();
610     }
611    
612     /**
613     * Active l'option sig avec la valeur nécessaire pour la suite des tests
614     */
615     public function test_08_active_option_sig() {
616    
617     // On se connecte en tant que "admin"
618     $this->login("admin", "admin");
619     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
620     $this->verifyNoErrors();
621     // On clique sur le lien "Administration" dans le menu
622     $this->byLinkText("Administration")->click();
623     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
624     $this->verifyNoErrors();
625     // // On clique sur le lien "Paramètre" dans le menu
626     $this->byLinkText("Paramètre")->click();
627     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
628     $this->verifyNoErrors();
629     // On remplis le champs de recherche simple
630     $this->byCssSelector("input[name='recherche']")->value('option_sig');
631     // On clique sur le bouton recherche
632     $this->byCssSelector(".ui-button")->click();
633     // On clique sur le résultat MONO
634     $this->byLinkText("MARSEILLE")->click();
635     // On clique sur le bouton "Modifier"
636     $this->byId('action-form-om_parametre-modifier')->click();
637     // On change la valeur par "sig_externe"
638     $this->byId('valeur')->clear();
639     $this->byId('valeur')->value('sig_externe');
640     // On valide la modification
641     $this->byCssSelector("input[value='Modifier']")->click();
642     // On vérifie le message de validation
643     $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#tabs-1 .message")->text());
644     // On clique sur le bouton 'Retour'
645     $this->byLinkText("Retour")->click();
646     // On vérifie les nouvelles données
647     $this->assertEquals("sig_externe", $this->byId("valeur")->text());
648     // On se déconnecte
649     $this->logout();
650     }
651    
652     /*
653     * Cette fonction va tester l'affectation automatique des instructeurs aux
654     * dossiers d'instruction.
655     * Quatre cas sont possibles :
656     * - Aucun instructeur ne correspond, ;
657     * - Un instructeur joker correspond, ;
658     * - Un instructeur correspond, .
659     */
660     function test_10_AffectationAutomatique(){
661    
662     // On se connecte à l'application
663     $this->login("guichet", "guichet");
664     //Ajout d'un dossier d'instructeur avec affectation d'aucun instructeur
665     $this->ajoutDossierAffectationAutomatique("801", "A", "0001", "Permis de construire comprenant ou non des démolitions", "Poly Com Marseille");
666    
667     //Ajout d'un dossier d'instructeur avec affectation d'un instructeur
668     //joker avec seulement le type de dossier d'autorisation détaillé de
669     //renseigné
670     $this->ajoutDossierAffectationAutomatique("806", "A", "0001", "Permis de construire pour une maison individuelle et / ou ses annexes", "Louis Laurent");
671    
672     //Ajout d'un dossier d'instructeur avec affectation du seul instructeur
673     //correspondant parfaitement aux critères
674     $this->ajoutDossierAffectationAutomatique("801", "A", "0001", "Permis de construire pour une maison individuelle et / ou ses annexes", "Pierre Martin");
675     // On se déconnecte
676     $this->logout();
677     }
678    
679     /**
680     * Ajoute un dossier d'instruction
681     * @param string $reference_cadastrale_quartier Le quartier de la référence
682     * cadastrale du dossier
683     * @param string $reference_cadastrale_section La section de la référence
684     * cadastrale du dossier
685     * @param string $reference_cadastrale_parcelle La parcelle de la référence
686     * cadastrale du dossier
687     * @param string $datd dossier d'autorisation type détaillé
688     * @param string $instructeur le nom de l'instructeur
689     *
690     * @return boolean
691     */
692     function ajoutDossierAffectationAutomatique($reference_cadastrale_quartier,
693     $reference_cadastrale_section, $reference_cadastrale_parcelle,$datd,
694     $instructeur){
695    
696     //On affiche le tableau de bord
697     $this->byLinkText("Tableau de bord")->click();
698     // On clique sur le menu "Nouveau Dossier"
699     $this->byLinkText("Nouveau Dossier")->click();
700     // On vérifie qu'il n'y ait pas d'erreur
701     $this->verifynoerrors();
702     // On vérifie le nom de l'onglet
703     $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
704     // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
705     $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel($datd);
706     // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
707     $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
708     //On saisie les références cadastrales
709     $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(1)")->value($reference_cadastrale_quartier);
710     $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(2)")->value($reference_cadastrale_section);
711     $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(3)")->value($reference_cadastrale_parcelle);
712 nhaye 3803 //On saisi l'adresse
713     $this->byId("terrain_adresse_voie_numero")->value("0075");
714     $this->byId("terrain_adresse_voie")->value("TRA DE LA DOMINIQUE");
715     $this->byId("terrain_adresse_code_postal")->value("13011");
716     $this->byId("terrain_adresse_localite")->value("MARSEILLE");
717    
718 mbroquet 3730 // On clique pour ajouter un pétitionnaire principale
719     $this->byId("add_petitionnaire_principal")->click();
720     // On remplit le champ
721     $this->byId("particulier_nom")->value("DURAND");
722     // On remplit le champ
723     $this->byId("particulier_prenom")->value("MICKAEL");
724     // On remplit le champ
725     $this->byId("particulier_date_naissance")->value("03/01/1956");
726     // On remplit le champ
727     $this->byId("particulier_commune_naissance")->value("LILLE");
728     // On remplit le champ
729     $this->byId("particulier_departement_naissance")->value("NORD");
730     // On remplit le champ
731     $this->byId("numero")->value("12");
732     // On remplit le champ
733     $this->byId("voie")->value("RUE DE LA LOI");
734     // On remplit le champ
735     $this->byId("complement")->value("APPT 12");
736     // On remplit le champ
737     $this->byId("localite")->value("MARSEILLE");
738     // On remplit le champ
739     $this->byId("code_postal")->value("13012");
740     // On remplit le champ
741     $this->byId("telephone_fixe")->value("0404040404");
742     // On clique sur ajouter
743     $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
744     // On vérifie qu'il n'y ait pas d'erreur
745     $this->verifynoerrors();
746     // On vérifie le message
747     $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-petitionnaire .message")->text());
748     // On clique sur le bouton retour
749     $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
750     // On vérifie que le text est présent
751     $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
752     // On clique sur ajouter
753     $this->byXPath("//input[@value='Ajouter']")->click();
754     // On vérifie qu'il n'y ait pas d'erreur
755     $this->verifynoerrors();
756     // On vérifie le message
757     $this->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°[\s\S]*$/",$this->byCssSelector(".message")->text());
758     // On clique
759     $this->byCssSelector("a#link_demande_recepisse")->click();sleep(5);
760     // Liste les fenêtres
761     $windows = $this->windowHandles();
762     // Change la fenêtre
763     $this->window($windows[1]);
764     // On vérifie qu'il n'y ait pas d'erreur
765     $this->verifynoerrors();
766     // On vérifie que le text est présent
767     $this->assertRegExp("/^[\s\S]*Dossier suivi par ".$instructeur."[\s\S]*$/",$this->source());
768     // On ferme la fenêtre
769     $this->closeWindow();
770     // On change le focus de la fenêtre
771     $this->window($windows[0]);
772     }
773    
774     /**
775     * Vérifie le menu "Autre Dossier" et "Dossier En Cours"
776     */
777     public function test_11_autre_dossier() {
778    
779     // On se connecte en tant que "guichet"
780     $this->login("guichet", "guichet");
781     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
782     $this->verifyNoErrors();
783     // On clique sur "Autre Dossier"
784     $this->byLinkText("Autre Dossier")->click();
785     // On vérifie qu'il n'y ait pas d'erreur
786     $this->verifynoerrors();
787     // On vérifie que le dossier qui ne doit pas être dans
788     // "Dossier En Cours" sont ici
789     $this->assertRegExp("/^[\s\S]*PC 013055 ".date("y")." 00001P0[\s\S]*$/",
790     $this->byCssSelector("#tab-demande_autre_dossier .tab-tab")->text());
791     // On clique sur "Dossier En Cours"
792     $this->byLinkText("Dossier En Cours")->click();
793     // On vérifie qu'il n'y ait pas d'erreur
794     $this->verifynoerrors();
795     // On vérifie que le dossier précédement contrôlé n'ait pas
796     // affiché
797     $this->assertNotContains("PC 013055 13 00001P0",
798     $this->byCssSelector("#tab-demande_dossier_encours .tab-tab")->text());
799     // On se déconnecte
800     $this->logout();
801     }
802    
803     /**
804     * Désactive l'option sig avec la valeur nécessaire
805     */
806     public function test_12_desactive_option_sig() {
807    
808     // On se connecte en tant que "admin"
809     $this->login("admin", "admin");
810     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
811     $this->verifyNoErrors();
812     // On clique sur le lien "Administration" dans le menu
813     $this->byLinkText("Administration")->click();
814     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
815     $this->verifyNoErrors();
816     // // On clique sur le lien "Paramètre" dans le menu
817     $this->byLinkText("Paramètre")->click();
818     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
819     $this->verifyNoErrors();
820     // On remplis le champs de recherche simple
821     $this->byCssSelector("input[name='recherche']")->value('option_sig');
822     // On clique sur le bouton recherche
823     $this->byCssSelector(".ui-button")->click();
824     // On clique sur le résultat MONO
825     $this->byLinkText("MARSEILLE")->click();
826     // On clique sur le bouton "Modifier"
827     $this->byId('action-form-om_parametre-modifier')->click();
828     // On change la valeur par "aucun"
829     $this->byId('valeur')->clear();
830     $this->byId('valeur')->value('aucun');
831     // On valide la modification
832     $this->byCssSelector("input[value='Modifier']")->click();
833     // On vérifie le message de validation
834     $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#tabs-1 .message")->text());
835     // On clique sur le bouton 'Retour'
836     $this->byLinkText("Retour")->click();
837     // On vérifie les nouvelles données
838     $this->assertEquals("aucun", $this->byId("valeur")->text());
839     // On se déconnecte
840     $this->logout();
841     }
842     }
843    
844 nhaye 3803 ?>

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26