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

Annotation of /trunk/tests/testGuichetUnique.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3730 - (hide annotations)
Fri Mar 18 11:50:26 2016 UTC (8 years, 10 months ago) by mbroquet
File size: 56683 byte(s)
Actualisation du trunk
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     * Test l'ajout d'une demande initial en utilisant les références cadastrales
654     * pour récupérer l'adresse
655     */
656     public function test_09_AjoutDemandeInitialReferenceCadastrale() {
657    
658     // On se connecte à l'application
659     $this->login("guichet", "guichet");
660     // On clique sur le menu "Nouveau Dossier"
661     $this->byLinkText("Nouveau Dossier")->click();
662     // On vérifie qu'il n'y ait pas d'erreur
663     $this->verifynoerrors();
664     // On vérifie le nom de l'onglet
665     $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
666     // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
667     $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel("Permis de construire pour une maison individuelle et / ou ses annexes");
668     // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
669     $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
670     // XXX Problème de javascript seulement dans cette fonction
671     // Les alerts ne passent pas lorsque le focus n'est pas sur le
672     // navigateur
673     //On saisie des références cadastrales inccorect
674     // $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(1)")->value("aa");
675     // // On change le focus pour faire apparaitre le message
676     // $this->byId('date_demande')->value(date('d/m/Y'));
677     // sleep(5);
678     // // Message d'erreur concernant le numéro de quartier
679     // $this->assertEquals("Vous ne devez saisir que des nombres entiers", $this->alertText());
680     // $this->acceptAlert();
681     // $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(2)")->value("11");
682     // // On change le focus pour faire apparaitre le message
683     // $this->byId('date_demande')->value(date('d/m/Y'));
684     // sleep(5);
685     // // Message d'erreur concernant la section
686     // $this->assertEquals("Vous ne devez saisir que des lettres dans ce champs.", $this->alertText());
687     // $this->acceptAlert();
688     // $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(3)")->value("bb");
689     // // On change le focus pour faire apparaitre le message
690     // $this->byId('date_demande')->value(date('d/m/Y'));
691     // sleep(5);
692     // // Message d'erreur concernant le numéro de parcelle
693     // $this->assertEquals("Vous ne devez saisir que des nombres entiers", $this->alertText());
694     // $this->acceptAlert();
695     //On saisie les références cadastrales
696     // $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(1)")->value("1");
697     // $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(2)")->value("dc");
698     // $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(3)")->value("15");
699     // XXX Renplace les valeurs juste au dessus qui devraient se mettre au
700     // bon format automatiquement grâce au javascript
701     $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(1)")->value("001");
702     $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(2)")->value("DC");
703     $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(3)")->value("0015");
704     //On clique sur le bouton de recherche "Cadastrale = > Adresse"
705     $this->byId("cad-adr-them")->click();
706     sleep(1);
707     // On vérifie que le format des champs est mise à jour automatiquement
708     $this->assertEquals("001", $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(1)")->attribute('value'));
709     $this->assertEquals("DC", $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(2)")->attribute('value'));
710     $this->assertEquals("0015", $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(3)")->attribute('value'));
711     //On verifie l'adresse
712     $this->assertEquals("0075", $this->byId("terrain_adresse_voie_numero")->attribute('value'));
713     $this->assertEquals("TRA DE LA DOMINIQUE", $this->byId("terrain_adresse_voie")->attribute('value'));
714     $this->assertEquals("13011", $this->byId("terrain_adresse_code_postal")->attribute('value'));
715     $this->assertEquals("MARSEILLE", $this->byId("terrain_adresse_localite")->attribute('value'));
716     //On vide un des champs des références cadastrales
717     $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(3)")->clear();
718     // On valide le formulaire
719     $this->byXPath("//input[@value='Ajouter']")->click();
720     //Un alert javascript doit apparaître, on vérifie le message
721     $this->assertEquals("Les références cadastrales saisies sont incorrectes. Veuillez les corriger.", $this->alertText());
722     // On valide l'alert
723     $this->acceptAlert();sleep(1);
724     //On ajoute la référence
725     $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(3)")->value("0015");
726     //On valide le formulaire
727     $this->byXPath("//input[@value='Ajouter']")->click();
728     // On vérifie le message d'erreur
729     $this->assertRegExp("/^[\s\S]*SAISIE NON ENREGISTRÉE[\s\S]*$/", $this->byCssSelector(".message")->text());
730     sleep(1);
731     // On vérifie que les références cadastrales soient toujours affiché
732     $this->assertEquals("001", $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(1)")->attribute('value'));
733     $this->assertEquals("DC", $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(2)")->attribute('value'));
734     $this->assertEquals("0015", $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(3)")->attribute('value'));
735     //On saisie les références cadastrales
736     $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(1)")->clear();
737     $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(2)")->clear();
738     $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(3)")->clear();
739     //On clique sur le bouton de recherche "Cadastrale = > Adresse"
740     $this->byId("cad-adr-them")->click();
741     //On valide le message d'erreur
742     $this->assertEquals('Aucune référence cadastrale fournie', $this->alertText());
743     $this->acceptAlert();
744     // On ressaisit les références cadatrales
745     // ref 1
746     $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(1)")->value("001");
747     $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(2)")->value("DC");
748     $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(3)")->value("0015");
749     // réf 2
750     $this->byCssSelector("div#morelineReferenceCadastrale > div.form-content > span.add-16")->click();
751     $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(6)")->value("002");
752     $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(7)")->value("DC");
753     $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(8)")->value("0015");
754     // réf 3
755     $this->byCssSelector("div#morelineReferenceCadastrale > div.form-content > span.add-16")->click();
756     $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(11)")->value("003");
757     $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(12)")->value("DC");
758     $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(13)")->value("0015");
759     // réf 4
760     $this->byCssSelector("div#morelineReferenceCadastrale > div.form-content > span.add-16")->click();
761     $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(16)")->value("004");
762     $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(17)")->value("DC");
763     $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(18)")->value("0015");
764     // réf 5
765     $this->byCssSelector("div#morelineReferenceCadastrale > div.form-content > span.add-16")->click();
766     $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(21)")->value("005");
767     $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(22)")->value("DC");
768     $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(23)")->value("0015");
769     // réf 6
770     $this->byCssSelector("div#morelineReferenceCadastrale > div.form-content > span.add-16")->click();
771     $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(26)")->value("006");
772     $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(27)")->value("DC");
773     $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(28)")->value("0015");
774     // réf 7
775     $this->byCssSelector("div#morelineReferenceCadastrale > div.form-content > span.add-16")->click();
776     $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(31)")->value("007");
777     $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(32)")->value("DC");
778     $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(33)")->value("0015");
779     // réf 8
780     $this->byCssSelector("div#morelineReferenceCadastrale > div.form-content > span.add-16")->click();
781     $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(36)")->value("008");
782     $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(37)")->value("DC");
783     $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(38)")->value("0015");
784     // réf 9
785     $this->byCssSelector("div#morelineReferenceCadastrale > div.form-content > span.add-16")->click();
786     $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(41)")->value("009");
787     $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(42)")->value("DC");
788     $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(43)")->value("0015");
789     // réf 10
790     $this->byCssSelector("div#morelineReferenceCadastrale > div.form-content > span.add-16")->click();
791     $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(46)")->value("010");
792     $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(47)")->value("DC");
793     $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(48)")->value("0015");
794     // réf 11
795     $this->byCssSelector("div#morelineReferenceCadastrale > div.form-content > span.add-16")->click();
796     $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(51)")->value("011");
797     $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(52)")->value("DC");
798     $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(53)")->value("0015");
799     // réf 12
800     $this->byCssSelector("div#morelineReferenceCadastrale > div.form-content > span.add-16")->click();
801     $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(56)")->value("012");
802     $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(57)")->value("DC");
803     $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(58)")->value("0015");
804     // réf 13
805     $this->byCssSelector("div#morelineReferenceCadastrale > div.form-content > span.add-16")->click();
806     $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(61)")->value("013");
807     $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(62)")->value("DC");
808     $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(63)")->value("0015");
809     // réf 14
810     $this->byCssSelector("div#morelineReferenceCadastrale > div.form-content > span.add-16")->click();
811     $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(66)")->value("014");
812     $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(67)")->value("DC");
813     $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(68)")->value("0015");
814     // On clique pour ajouter un pétitionnaire principale
815     $this->byId("add_petitionnaire_principal")->click();
816     // On remplit le champ
817     $this->byId("particulier_nom")->value("DURAND");
818     // On remplit le champ
819     $this->byId("particulier_prenom")->value("MICKAEL");
820     // On remplit le champ
821     $this->byId("particulier_date_naissance")->value("03/01/1956");
822     // On remplit le champ
823     $this->byId("particulier_commune_naissance")->value("LILLE");
824     // On remplit le champ
825     $this->byId("particulier_departement_naissance")->value("NORD");
826     // On remplit le champ
827     $this->byId("numero")->value("12");
828     // On remplit le champ
829     $this->byId("voie")->value("RUE DE LA LOI");
830     // On remplit le champ
831     $this->byId("complement")->value("APPT 12");
832     // On remplit le champ
833     $this->byId("localite")->value("MARSEILLE");
834     // On remplit le champ
835     $this->byId("code_postal")->value("13012");
836     // On remplit le champ
837     $this->byId("telephone_fixe")->value("0404040404");
838     // On clique sur ajouter
839     $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
840     // On vérifie qu'il n'y ait pas d'erreur
841     $this->verifynoerrors();
842     // On vérifie le message
843     $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-petitionnaire .message")->text());
844     // On clique sur le bouton retour
845     $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
846     // On vérifie que le text est présent
847     $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
848     // On clique sur ajouter
849     $this->byXPath("//input[@value='Ajouter']")->click();
850     // On vérifie qu'il n'y ait pas d'erreur
851     $this->verifynoerrors();
852     // On vérifie le message
853     $this->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°[\s\S]*$/",$this->byCssSelector(".message")->text());
854     // Récupération du numéro de dossier
855     preg_match('/(PC)[0-9 ]*(P0)/', $this->byCssSelector(".message .text")->text(), $dossier);
856     // On clique
857     $this->byCssSelector("a#link_demande_recepisse")->click();sleep(5);
858     // Liste les fenêtres
859     $windows = $this->windowHandles();
860     // Change la fenêtre
861     $this->window($windows[1]);
862     // On vérifie qu'il n'y ait pas d'erreur
863     $this->verifynoerrors();
864     // On vérifie que le text est présent
865     $this->assertRegExp("/^[\s\S]*RECEPISSE DE DEPOT[\s\S]*$/",$this->source());
866     // On ferme la fenêtre
867     $this->closeWindow();
868     // On change le focus de la fenêtre
869     $this->window($windows[0]);
870     // On clique sur le bouton retour
871     $this->byLinkText("Retour")->click();
872     // On vérifie qu'il n'y ait pas d'erreur
873     $this->verifynoerrors();
874     // On se déconnecte
875     $this->logout();
876     }
877    
878     /*
879     * Cette fonction va tester l'affectation automatique des instructeurs aux
880     * dossiers d'instruction.
881     * Quatre cas sont possibles :
882     * - Aucun instructeur ne correspond, ;
883     * - Un instructeur joker correspond, ;
884     * - Un instructeur correspond, .
885     */
886     function test_10_AffectationAutomatique(){
887    
888     // On se connecte à l'application
889     $this->login("guichet", "guichet");
890     //Ajout d'un dossier d'instructeur avec affectation d'aucun instructeur
891     $this->ajoutDossierAffectationAutomatique("801", "A", "0001", "Permis de construire comprenant ou non des démolitions", "Poly Com Marseille");
892    
893     //Ajout d'un dossier d'instructeur avec affectation d'un instructeur
894     //joker avec seulement le type de dossier d'autorisation détaillé de
895     //renseigné
896     $this->ajoutDossierAffectationAutomatique("806", "A", "0001", "Permis de construire pour une maison individuelle et / ou ses annexes", "Louis Laurent");
897    
898     //Ajout d'un dossier d'instructeur avec affectation du seul instructeur
899     //correspondant parfaitement aux critères
900     $this->ajoutDossierAffectationAutomatique("801", "A", "0001", "Permis de construire pour une maison individuelle et / ou ses annexes", "Pierre Martin");
901     // On se déconnecte
902     $this->logout();
903     }
904    
905     /**
906     * Ajoute un dossier d'instruction
907     * @param string $reference_cadastrale_quartier Le quartier de la référence
908     * cadastrale du dossier
909     * @param string $reference_cadastrale_section La section de la référence
910     * cadastrale du dossier
911     * @param string $reference_cadastrale_parcelle La parcelle de la référence
912     * cadastrale du dossier
913     * @param string $datd dossier d'autorisation type détaillé
914     * @param string $instructeur le nom de l'instructeur
915     *
916     * @return boolean
917     */
918     function ajoutDossierAffectationAutomatique($reference_cadastrale_quartier,
919     $reference_cadastrale_section, $reference_cadastrale_parcelle,$datd,
920     $instructeur){
921    
922     //On affiche le tableau de bord
923     $this->byLinkText("Tableau de bord")->click();
924     // On clique sur le menu "Nouveau Dossier"
925     $this->byLinkText("Nouveau Dossier")->click();
926     // On vérifie qu'il n'y ait pas d'erreur
927     $this->verifynoerrors();
928     // On vérifie le nom de l'onglet
929     $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
930     // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
931     $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel($datd);
932     // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
933     $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
934     //On saisie les références cadastrales
935     $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(1)")->value($reference_cadastrale_quartier);
936     $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(2)")->value($reference_cadastrale_section);
937     $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(3)")->value($reference_cadastrale_parcelle);
938     //On clique sur le bouton de recherche "Cadastrale = > Adresse"
939     $this->byId("cad-adr-them")->click();
940     // On clique pour ajouter un pétitionnaire principale
941     $this->byId("add_petitionnaire_principal")->click();
942     // On remplit le champ
943     $this->byId("particulier_nom")->value("DURAND");
944     // On remplit le champ
945     $this->byId("particulier_prenom")->value("MICKAEL");
946     // On remplit le champ
947     $this->byId("particulier_date_naissance")->value("03/01/1956");
948     // On remplit le champ
949     $this->byId("particulier_commune_naissance")->value("LILLE");
950     // On remplit le champ
951     $this->byId("particulier_departement_naissance")->value("NORD");
952     // On remplit le champ
953     $this->byId("numero")->value("12");
954     // On remplit le champ
955     $this->byId("voie")->value("RUE DE LA LOI");
956     // On remplit le champ
957     $this->byId("complement")->value("APPT 12");
958     // On remplit le champ
959     $this->byId("localite")->value("MARSEILLE");
960     // On remplit le champ
961     $this->byId("code_postal")->value("13012");
962     // On remplit le champ
963     $this->byId("telephone_fixe")->value("0404040404");
964     // On clique sur ajouter
965     $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
966     // On vérifie qu'il n'y ait pas d'erreur
967     $this->verifynoerrors();
968     // On vérifie le message
969     $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-petitionnaire .message")->text());
970     // On clique sur le bouton retour
971     $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
972     // On vérifie que le text est présent
973     $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
974     // On clique sur ajouter
975     $this->byXPath("//input[@value='Ajouter']")->click();
976     // On vérifie qu'il n'y ait pas d'erreur
977     $this->verifynoerrors();
978     // On vérifie le message
979     $this->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°[\s\S]*$/",$this->byCssSelector(".message")->text());
980     // On clique
981     $this->byCssSelector("a#link_demande_recepisse")->click();sleep(5);
982     // Liste les fenêtres
983     $windows = $this->windowHandles();
984     // Change la fenêtre
985     $this->window($windows[1]);
986     // On vérifie qu'il n'y ait pas d'erreur
987     $this->verifynoerrors();
988     // On vérifie que le text est présent
989     $this->assertRegExp("/^[\s\S]*Dossier suivi par ".$instructeur."[\s\S]*$/",$this->source());
990     // On ferme la fenêtre
991     $this->closeWindow();
992     // On change le focus de la fenêtre
993     $this->window($windows[0]);
994     }
995    
996     /**
997     * Vérifie le menu "Autre Dossier" et "Dossier En Cours"
998     */
999     public function test_11_autre_dossier() {
1000    
1001     // On se connecte en tant que "guichet"
1002     $this->login("guichet", "guichet");
1003     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1004     $this->verifyNoErrors();
1005     // On clique sur "Autre Dossier"
1006     $this->byLinkText("Autre Dossier")->click();
1007     // On vérifie qu'il n'y ait pas d'erreur
1008     $this->verifynoerrors();
1009     // On vérifie que le dossier qui ne doit pas être dans
1010     // "Dossier En Cours" sont ici
1011     $this->assertRegExp("/^[\s\S]*PC 013055 ".date("y")." 00001P0[\s\S]*$/",
1012     $this->byCssSelector("#tab-demande_autre_dossier .tab-tab")->text());
1013     // On clique sur "Dossier En Cours"
1014     $this->byLinkText("Dossier En Cours")->click();
1015     // On vérifie qu'il n'y ait pas d'erreur
1016     $this->verifynoerrors();
1017     // On vérifie que le dossier précédement contrôlé n'ait pas
1018     // affiché
1019     $this->assertNotContains("PC 013055 13 00001P0",
1020     $this->byCssSelector("#tab-demande_dossier_encours .tab-tab")->text());
1021     // On se déconnecte
1022     $this->logout();
1023     }
1024    
1025     /**
1026     * Désactive l'option sig avec la valeur nécessaire
1027     */
1028     public function test_12_desactive_option_sig() {
1029    
1030     // On se connecte en tant que "admin"
1031     $this->login("admin", "admin");
1032     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1033     $this->verifyNoErrors();
1034     // On clique sur le lien "Administration" dans le menu
1035     $this->byLinkText("Administration")->click();
1036     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1037     $this->verifyNoErrors();
1038     // // On clique sur le lien "Paramètre" dans le menu
1039     $this->byLinkText("Paramètre")->click();
1040     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1041     $this->verifyNoErrors();
1042     // On remplis le champs de recherche simple
1043     $this->byCssSelector("input[name='recherche']")->value('option_sig');
1044     // On clique sur le bouton recherche
1045     $this->byCssSelector(".ui-button")->click();
1046     // On clique sur le résultat MONO
1047     $this->byLinkText("MARSEILLE")->click();
1048     // On clique sur le bouton "Modifier"
1049     $this->byId('action-form-om_parametre-modifier')->click();
1050     // On change la valeur par "aucun"
1051     $this->byId('valeur')->clear();
1052     $this->byId('valeur')->value('aucun');
1053     // On valide la modification
1054     $this->byCssSelector("input[value='Modifier']")->click();
1055     // On vérifie le message de validation
1056     $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#tabs-1 .message")->text());
1057     // On clique sur le bouton 'Retour'
1058     $this->byLinkText("Retour")->click();
1059     // On vérifie les nouvelles données
1060     $this->assertEquals("aucun", $this->byId("valeur")->text());
1061     // On se déconnecte
1062     $this->logout();
1063     }
1064     }
1065    
1066     ?>

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26