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

Annotation of /trunk/tests/testInstruction.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2648 - (hide annotations)
Fri Dec 27 18:49:53 2013 UTC (11 years, 1 month ago) by softime
File size: 81787 byte(s)
Contrôle des valeurs avant de les utiliser dans la classe Demande pour éviter des PHP Notice

1 fmichon 1664 <?php
2     /**
3     *
4     *
5     * @package openfoncier
6     * @version SVN : $Id$
7     */
8    
9     //
10 fmichon 1677 require_once "base.php";
11 fmichon 1664
12     /**
13     *
14     */
15 vpihour 2078 class Instruction extends Base2TestCase {
16 fmichon 1664
17 softime 2605 // Liste des utilisateurs
18     var $listUtlisateurs = array(
19     array(
20     "login" => "instr",
21     "mdp" => "instr"
22     ),
23     array(
24     "login" => "adminfonct",
25     "mdp" => "adminfonct"
26     ),
27     );
28    
29 fmichon 1664 /**
30     * Ce test vise uniquement à vérifier que les écrans correspondant à chaque
31     * entrée de menu ne génère pas une erreur de base de données
32     */
33 softime 2605 // Fonction privé
34     private function ouvertureMenu($utilisateur) {
35     // On se connecte
36     $this->login($utilisateur["login"], $utilisateur["mdp"]);
37     // Ouvre le menu
38     $this->openMenu("Instruction", $utilisateur);
39     // On vérifie le menu ""
40 vpihour 2078 $this->byLinkText("Mes Encours")->click();
41 softime 2605 $this->assertContains("Instruction > Dossiers D'instruction",
42     $this->byId("title")->text());
43 fmichon 1720 $this->verifyNoErrors();
44 softime 2605 // On vérifie le menu ""
45 vpihour 2078 $this->byLinkText("Tous Les Encours")->click();
46 softime 2605 $this->assertContains("Instruction > Dossiers D'instruction",
47     $this->byId("title")->text());
48 fmichon 1720 $this->verifyNoErrors();
49 softime 2605 // On vérifie le menu ""
50 vpihour 2078 $this->byLinkText("Mes Clôturés")->click();
51 softime 2605 $this->assertContains("Instruction > Dossiers D'instruction",
52     $this->byId("title")->text());
53 fmichon 1720 $this->verifyNoErrors();
54 softime 2605 // On vérifie le menu ""
55 vpihour 2078 $this->byLinkText("Tous Les Clôturés")->click();
56 softime 2605 $this->assertContains("Instruction > Dossiers D'instruction",
57     $this->byId("title")->text());
58 fmichon 1720 $this->verifyNoErrors();
59 softime 2605 // On vérifie le menu ""
60 vpihour 2078 $this->byLinkText("Recherche")->click();
61 softime 2605 $this->assertContains("Instruction > Dossiers D'instruction",
62     $this->byId("title")->text());
63 fmichon 1720 $this->verifyNoErrors();
64 softime 2605 // On vérifie le menu ""
65 vpihour 2078 $this->byLinkText("Dossiers À Qualifier")->click();
66 softime 2605 $this->assertContains("Instruction > Qualification > Dossiers À Qualifier",
67     $this->byId("title")->text());
68 fmichon 1720 $this->verifyNoErrors();
69 softime 2605 // On vérifie le menu ""
70     $this->byLinkText("Architecte Fréquent")->click();
71     $this->assertContains("Instruction > Qualification > Architecte Fréquent",
72     $this->byId("title")->text());
73     $this->verifyNoErrors();
74     // On vérifie le menu ""
75 vpihour 2078 $this->byLinkText("Mes Retours")->click();
76 softime 2605 $this->assertContains("Instruction > Consultations > Mes Retours",
77     $this->byId("title")->text());
78 fmichon 1720 $this->verifyNoErrors();
79 softime 2605 // On vérifie le menu ""
80 vpihour 2078 $this->byLinkText("Tous Les Retours")->click();
81 softime 2605 $this->assertContains("Instruction > Consultations > Tous Les Retours",
82     $this->byId("title")->text());
83 fmichon 1720 $this->verifyNoErrors();
84 softime 2605 // On vérifie le menu ""
85 vpihour 2078 $this->byLinkText("Mes Messages")->click();
86 softime 2605 $this->assertContains("Instruction > Messages > Mes Messages",
87     $this->byId("title")->text());
88 fmichon 1720 $this->verifyNoErrors();
89 softime 2605 // On vérifie le menu ""
90 vpihour 2078 $this->byLinkText("Tous Les Messages")->click();
91 softime 2605 $this->assertContains("Instruction > Messages > Tous Les Messages",
92     $this->byId("title")->text());
93 fmichon 1720 $this->verifyNoErrors();
94 softime 2605 // On vérifie le menu ""
95 vpihour 2078 $this->byCssSelector("a.commission_mes_retours-16")->click();
96 softime 2605 $this->assertContains("Instruction > Commissions > Mes Retours",
97     $this->byId("title")->text());
98 fmichon 1720 $this->verifyNoErrors();
99 softime 2605 // On vérifie le menu ""
100 vpihour 2078 $this->byCssSelector("a.commission_tous_retours-16")->click();
101 softime 2605 $this->assertContains("Instruction > Commissions > Tous Les Retours",
102     $this->byId("title")->text());
103 fmichon 1720 $this->verifyNoErrors();
104 softime 2605 // On se déconnecte
105     $this->deconnect();
106 fmichon 1664 }
107 softime 2605 // Fonction public
108     public function test01OuvertureMenu() {
109     // Récupération des utilisateurs
110     $utilisateurs = $this->listUtlisateurs;
111     // Pour chaque utilisateur on lance le test
112     foreach ($utilisateurs as $utilisateur) {
113     //
114     $this->ouvertureMenu($utilisateur);
115     }
116     // On vérifie la déconnexion
117     $this->verifyDeconnect();
118     }
119 fmichon 1885
120 fmichon 1755 /**
121     *
122     */
123     public function test_02_visualisation_di_et_da_par_l_instructeur_en_charge() {
124 vpihour 2078
125 fmichon 1755 // On se connecte en tant que "instr"
126     $this->login("instr", "instr");
127     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
128     $this->verifyNoErrors();
129     // On clique sur le lien "Mes encours" dans le menu
130 vpihour 2078 $this->byLinkText("Mes Encours")->click();
131 fmichon 1755 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
132     $this->verifyNoErrors();
133     // On clique sur le lien "AZ0130551200001P0" dans le tableau
134 softime 2112 $this->byLinkText("AZ 013055 12 00001P0")->click();
135 fmichon 1755 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
136     $this->verifyNoErrors();
137     // On vérifie que le breadcrumb est correct
138 softime 2112 $this->assertEquals("AZ 013055 12 00001P0", $this->byId("dossier_libelle")->text());
139 fmichon 1755 // On clique sur l'onglet "Instruction"
140 vpihour 2078 $this->byId("instruction")->click();
141 fmichon 1755 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
142     $this->verifyNoErrors();
143     // On clique sur l'onglet "Consultation(s)"
144 vpihour 2078 $this->byId("consultation")->click();
145 fmichon 1755 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
146     $this->verifyNoErrors();
147     // On clique sur l'onglet "Lot(s)"
148 vpihour 2078 $this->byId("lot")->click();
149 fmichon 1755 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
150     $this->verifyNoErrors();
151     // On clique sur l'onglet "Message(s)"
152 vpihour 2078 $this->byId("dossier_message")->click();
153 fmichon 1755 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
154     $this->verifyNoErrors();
155     // On clique sur l'onglet "Commission(s)"
156 vpihour 2078 $this->byId("dossier_commission")->click();
157 fmichon 1755 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
158     $this->verifyNoErrors();
159 fmichon 1763 // On clique sur l'onglet "Bloc-note"
160 vpihour 2078 $this->byId("blocnote")->click();
161 fmichon 1763 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
162     $this->verifyNoErrors();
163 fmichon 1755 // On clique sur l'onglet "DA"
164 vpihour 2078 $this->byId("dossier_autorisation")->click();
165 fmichon 1755 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
166     $this->verifyNoErrors();
167     // On clique sur le lien "AZ0130551200001" dans le tableau
168 softime 2112 $this->byLinkText("AZ 013055 12 00001")->click();
169 fmichon 1755 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
170     $this->verifyNoErrors();
171     // On vérifie que le breadcrumb est correct
172 softime 2112 $this->assertEquals("AZ 013055 12 00001", $this->byCssSelector(".form-content #dossier_autorisation_libelle")->text());
173 fmichon 1755 // On clique sur l'onglet "Dossier(s) d'instruction"
174 vpihour 2078 $this->byId("dossier_instruction")->click();
175 fmichon 1755 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
176     $this->verifyNoErrors();
177     // On clique sur le lien "AZ0130551200001P0" dans le tableau
178 softime 2112 $this->byLinkText("AZ 013055 12 00001P0")->click();
179 fmichon 1755 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
180     $this->verifyNoErrors();
181     // On vérifie que le breadcrumb est correct
182 softime 2112 $this->assertEquals("AZ 013055 12 00001P0", $this->byId("dossier_libelle")->text());
183 fmichon 1885 // On se déconnecte
184 fmichon 1755 $this->logout();
185     }
186    
187 fmichon 1885 /**
188     *
189     */
190     public function test_03_informations_du_widget_profil_instructeur() {
191     // On se connecte en tant que "instr"
192     $this->login("instr", "instr");
193     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
194     $this->verifyNoErrors();
195     // On vérifie que le titre du widget est correct
196 softime 2120 $this->assertEquals("Infos profil", $this->byCssSelector("#widget_2 .widget-header h3")->text());
197     // On vérifie que le profil est bon
198     $this->assertEquals("INSTRUCTEUR", $this->byCssSelector(".profil-infos-profil span.value")->text());
199 fmichon 1885 // On vérifie que le nom de l'instructeur affiché est le bon
200 softime 2120 $this->assertEquals("Louis Laurent", $this->byCssSelector(".profil-infos-nom span.value")->text());
201 fmichon 1885 // On vérifie que la division de l'instructeur affichée est la bonne
202 softime 2120 $this->assertEquals("H", $this->byCssSelector(".profil-infos-division span.value")->text());
203 fmichon 1885 // On se déconnecte
204 vpihour 2078 $this->byLinkText("Déconnexion")->click();
205     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
206     $this->verifyNoErrors();
207 fmichon 1885 // On se connecte en tant que "instr"
208     $this->login("instr1", "instr");
209     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
210     $this->verifyNoErrors();
211     // On vérifie que le titre du widget est correct
212 fmichon 2184 $this->assertEquals("Infos profil", $this->byCssSelector("#widget_2 .widget-header h3")->text());
213 fmichon 2185 // On vérifie que le profil est bon
214     $this->assertEquals("INSTRUCTEUR", $this->byCssSelector(".profil-infos-profil span.value")->text());
215 fmichon 1885 // On vérifie que le nom de l'instructeur affiché est le bon
216 fmichon 2185 $this->assertEquals("Martine Nadeau", $this->byCssSelector(".profil-infos-nom span.value")->text());
217 fmichon 1885 // On vérifie que la division de l'instructeur affichée est la bonne
218 fmichon 2185 $this->assertEquals("H", $this->byCssSelector(".profil-infos-division span.value")->text());
219 fmichon 1885 // On se déconnecte
220 vpihour 2078 $this->byLinkText("Déconnexion")->click();
221     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
222     $this->verifyNoErrors();
223 fmichon 1885 // On se connecte en tant que "instr"
224     $this->login("instr2", "instr");
225     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
226     $this->verifyNoErrors();
227     // On vérifie que le titre du widget est correct
228 fmichon 2184 $this->assertEquals("Infos profil", $this->byCssSelector("#widget_2 .widget-header h3")->text());
229 fmichon 2185 // On vérifie que le profil est bon
230     $this->assertEquals("INSTRUCTEUR", $this->byCssSelector(".profil-infos-profil span.value")->text());
231 fmichon 1885 // On vérifie que le nom de l'instructeur affiché est le bon
232 fmichon 2185 $this->assertEquals("Roland Richard", $this->byCssSelector(".profil-infos-nom span.value")->text());
233 fmichon 1885 // On vérifie que la division de l'instructeur affichée est la bonne
234 fmichon 2185 $this->assertEquals("J", $this->byCssSelector(".profil-infos-division span.value")->text());
235 fmichon 1885 // On se déconnecte
236     $this->logout();
237     }
238 vpihour 2078
239     /**
240     * Ajout d'instructions par l'instructeur sur le dossier DP0130551200001P0
241 softime 2305 * Modification d'un événement
242 vpihour 2078 */
243     public function test_04_ajout_instructions_par_instructeur() {
244    
245 softime 2305 // On se connecte en tant que "admin"
246     $this->login("admin", "admin");
247     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
248     $this->verifyNoErrors();
249     // On clique sur le lien "Paramétrage Dossiers" dans le menu
250     $this->byLinkText("Paramétrage Dossiers")->click();
251     // On clique sur le sousmenu "Événement"
252     $this->byLinkText("Événement")->click();
253     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
254     $this->verifyNoErrors();
255     // On remplis le champs de recherche simple
256     $this->byCssSelector("input[name='recherche']")->value('CDEC');
257     // On clique sur le bouton recherche
258     $this->byCssSelector(".ui-button")->click();
259     // On clique sur le résultat
260     $this->byLinkText("CDEC majoration appel decision")->click();
261     // On clique sur le bouton "Modifier"
262     $this->byId('action-form-evenement-modifier')->click();
263     // On modifie le champ restriction avec des données erronées
264     $this->byId('restriction')->clear();
265     $this->byId('restriction')->value("date_evenement >= champ_errone + 1");
266     // On valide la modification
267     $this->byCssSelector("input[value='Modifier']")->click();
268     // On vérifie le message de validation
269     $this->assertRegExp("/^[\s\S]*Le champ champ_errone n'est pas utilisable pour le champ restriction[\s\S]*$/",$this->byCssSelector("#tabs-1 .message")->text());
270     // On modifie le champ restriction pour qu'il retourne une erreur au
271     // moment de l'ajout de l'instruction
272     $this->byId('restriction')->clear();
273     $this->byId('restriction')->value("date_evenement >= date_evenement + 1");
274     // On valide la modification
275     $this->byCssSelector("input[value='Modifier']")->click();
276     // On vérifie le message de validation
277     $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#tabs-1 .message")->text());
278     // On se déconnecte
279     $this->deconnect();
280 vpihour 2078 // On se connecte en tant que "instr"
281     $this->login("instr", "instr");
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 lien "Mes encours" dans le menu
285     $this->byLinkText("Mes Encours")->click();
286     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
287     $this->verifyNoErrors();
288 nhaye 2107 sleep(1);
289 softime 2605 // On clique sur le lien "DP 013055 12 00001P0" dans le tableau
290 softime 2112 $this->byLinkText("DP 013055 12 00001P0")->click();
291 vpihour 2078 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
292     $this->verifyNoErrors();
293     // On clique sur l'onglet "Instruction"
294     $this->byId("instruction")->click();
295     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
296     $this->verifyNoErrors();
297     //Ajout d'une instruction simple
298     // On clique sur le lien d'ajout dans le tableau
299     $this->byCssSelector(".actions-max-1 a")->click();
300     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
301     $this->verifyNoErrors();
302     //On choisi un événement
303     $this->select($this->byId("evenement"))->selectOptionByValue("22");
304     //On valide le formulaire
305     $this->byXPath("//input[@value='Ajouter']")->click();
306 softime 2305 // On vérifie le mesage d'erreur
307     $this->assertRegExp('/.*Restriction non valide*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
308     // On se déconnecte
309     $this->deconnect();
310     // On se connecte en tant que "admin"
311     $this->login("admin", "admin");
312 vpihour 2078 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
313     $this->verifyNoErrors();
314 softime 2305 // On clique sur le lien "Paramétrage Dossiers" dans le menu
315     $this->byLinkText("Paramétrage Dossiers")->click();
316     // On clique sur le sousmenu "Événement"
317     $this->byLinkText("Événement")->click();
318     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
319     $this->verifyNoErrors();
320     // On remplis le champs de recherche simple
321     $this->byCssSelector("input[name='recherche']")->value('CDEC');
322     // On clique sur le bouton recherche
323     $this->byCssSelector(".ui-button")->click();
324     // On clique sur le résultat
325     $this->byLinkText("CDEC majoration appel decision")->click();
326     // On clique sur le bouton "Modifier"
327     $this->byId('action-form-evenement-modifier')->click();
328     // On modifie le champ restriction pour qu'il ne retourne pas d'erreur
329     // au moment de l'ajout de l'instruction
330     $this->byId('restriction')->clear();
331     $this->byId('restriction')->value("date_evenement <= date_evenement + 1");
332     // On valide la modification
333     $this->byCssSelector("input[value='Modifier']")->click();
334     // On vérifie le message de validation
335     $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#tabs-1 .message")->text());
336     // On se déconnecte
337     $this->deconnect();
338     // On se connecte en tant que "instr"
339     $this->login("instr", "instr");
340     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
341     $this->verifyNoErrors();
342     // On clique sur le lien "Mes encours" dans le menu
343     $this->byLinkText("Mes Encours")->click();
344     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
345     $this->verifyNoErrors();
346 vpihour 2078 sleep(1);
347 softime 2605 // On clique sur le lien "DP 013055 12 00001P0" dans le tableau
348 softime 2305 $this->byLinkText("DP 013055 12 00001P0")->click();
349     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
350     $this->verifyNoErrors();
351     // On clique sur l'onglet "Instruction"
352     $this->byId("instruction")->click();
353     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
354     $this->verifyNoErrors();
355     //Ajout d'une instruction simple
356     // On clique sur le lien d'ajout dans le tableau
357     $this->byCssSelector(".actions-max-1 a")->click();
358     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
359     $this->verifyNoErrors();
360     //On choisi un événement
361     $this->select($this->byId("evenement"))->selectOptionByValue("22");
362     //On valide le formulaire
363     $this->byXPath("//input[@value='Ajouter']")->click();
364     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
365     $this->verifyNoErrors();
366     sleep(1);
367 vpihour 2078 $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
368     //On retourne sur le tableau d'instructions
369     $this->byCssSelector("#sousform-instruction .retour")->click();
370     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
371     $this->verifyNoErrors();
372     //On affiche l'instruction
373     $this->byLinkText("CDEC majoration appel decision")->click();
374     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
375     $this->verifyNoErrors();
376     //On vérifie que certains champs n'apparaissent pas
377     $this->assertFalse($this->byId("date_envoi_controle_legalite")->displayed());
378     $this->assertFalse($this->byId("date_retour_controle_legalite")->displayed());
379     //On retourne sur le tableau d'instructions
380     $this->byCssSelector("#sousform-instruction .retour")->click();
381     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
382     $this->verifyNoErrors();
383     //Ajout d'une instruction de type arrêté
384     // On clique sur le lien d'ajout dans le tableau
385     $this->byCssSelector(".actions-max-1 a")->click();
386     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
387     $this->verifyNoErrors();
388 softime 2408 //On choisi l'événement "accepter un dossier sans réserve [acceptation]"
389 vpihour 2078 $this->select($this->byId("evenement"))->selectOptionByValue("81");
390 softime 2408 // On clique sur la bible
391     $this->byLinkText('bible')->click();
392     // On vérifie qu'il y est les enregistrments "V56" et "V64"
393     $this->assertRegExp('/^[\s\S]*V56[\s\S]*$/',
394     $this->byCssSelector("#tab-bible")->text());
395     $this->assertRegExp('/^[\s\S]*V64[\s\S]*$/',
396     $this->byCssSelector("#tab-bible")->text());
397     // On choisit plusieurs éléments
398     $this->byId('checkbox0')->click();
399     $this->byId('checkbox1')->click();
400     // On valide le formulaire
401     $this->byXPath("//input[@value='Valider']")->click();
402     // On vérifie le contenu du champ "complément"
403 nhaye 2647 $this->assertRegExp('/^[\s\S]*Vu l\'avis favorable de l\'Architecte des Bâtiments de France en date du[\s\S]*$/', $this->byCssSelector("#complement_om_html")->text());
404     $this->assertRegExp('/^[\s\S]*Vu l\'avis favorable avec prescriptions de la Direction Régionale des Affaires Culturelles en date du[\s\S]*$/', $this->byCssSelector("#complement_om_html")->text());
405 softime 2408 // On valide le formulaire
406 vpihour 2078 $this->byXPath("//input[@value='Ajouter']")->click();
407     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
408     $this->verifyNoErrors();
409     sleep(1);
410     $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
411     //On retourne sur le tableau d'instructions
412     $this->byCssSelector("#sousform-instruction .retour")->click();
413     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
414     $this->verifyNoErrors();
415     //On affiche l'instruction
416     $this->byLinkText("accepter un dossier sans réserve")->click();
417     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
418     $this->verifyNoErrors();
419     //On vérifie que certains champs apparaissent
420     $this->assertTrue($this->byClassName("libelle-date_envoi_controle_legalite")->displayed());
421     $this->assertTrue($this->byClassName("libelle-date_envoi_controle_legalite")->displayed());
422     // On se déconnecte
423     $this->logout();
424     }
425 nhaye 2088
426 nhaye 2107 /**
427 nhaye 2088 * Test le formulaire de la demande de type qui possède des select filtrés
428     */
429     public function test_05_ajout_lot() {
430     // On se connecte en tant que "instr"
431     $this->login("instr", "instr");
432     // On clique sur le lien "Mes encours" dans le menu
433     $this->byLinkText("Mes Encours")->click();
434     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
435     $this->verifyNoErrors();
436     // On clique sur le lien "AZ0130551200001P0" dans le tableau
437 softime 2112 $this->byLinkText("AZ 013055 12 00001P0")->click();
438 nhaye 2088 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
439     $this->verifyNoErrors();
440     // On clique sur l'onglet "Lot(s)"
441     $this->byId("lot")->click();
442     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
443     $this->verifyNoErrors();
444     // On clique sur le bouton d'ajout de lots
445     $this->byXPath("//div[@id='sousform-lot']/table/thead/tr/th/a/span")->click();
446     // Vérification des champs obligatoires
447     $this->byXPath("//input[@value='Ajouter']")->click();
448     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
449     $this->verifyNoErrors();
450     // On vérifie que le message de champ vide soit affiché
451     $this->assertRegExp('/.*SAISIE NON ENREGISTRÉE.*/', $this->byCssSelector("#sousform-lot .message .text")->text());
452     // Insertion d'un lot
453     $this->byId("libelle")->value("Lot n°1");
454     $this->byXPath("//input[@value='Ajouter']")->click();
455     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
456     $this->verifyNoErrors();
457 nhaye 2118 sleep(1);
458 nhaye 2088 // On retourne sur le tableau listant les lots
459     $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();
460     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
461     $this->verifyNoErrors();
462     // On clique sur le bouton d'ajout de lots
463     $this->byXPath("//div[@id='sousform-lot']/table/thead/tr/th/a/span")->click();
464     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
465     $this->verifyNoErrors();
466     // Insertion d'un second lot
467     $this->byId("libelle")->value("Lot n°2");
468     $this->byXPath("//input[@value='Ajouter']")->click();
469 nhaye 2107 sleep(1);
470 nhaye 2088 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
471     $this->verifyNoErrors();
472     // On retourne sur le tableau listant les lots
473     $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();
474     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
475     $this->verifyNoErrors();
476 nhaye 2107 // On se déconnecte
477     $this->logout();
478 nhaye 2088 }
479 nhaye 2107
480     /**
481     * Test du lien automatique entre choix autorité compétente dans DI et
482     * évènement d'instruction à créer
483     */
484 softime 2605 // Fonction privé
485     private function modification_autorite_competente($utilisateur) {
486     // On se connecte à l'application
487     $this->login($utilisateur["login"], $utilisateur["mdp"]);
488     // Ouvre le menu
489     $this->openMenu("Instruction", $utilisateur);
490 nhaye 2107 // On clique sur le lien "Mes encours" dans le menu
491 softime 2605 $this->byLinkText("Recherche")->click();
492 nhaye 2107 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
493     $this->verifyNoErrors();
494     // On clique sur le lien "AZ0130551200001P0" dans le tableau
495 softime 2112 $this->byLinkText("AZ 013055 12 00001P0")->click();
496 nhaye 2107 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
497     $this->verifyNoErrors();
498     // On clique sur l'onglet "Instruction"
499     $this->byId("instruction")->click();
500     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
501     $this->verifyNoErrors();
502     // On clique sur le bouton d'ajout de lots
503     $this->byXPath("//div[@id='sousform-instruction']/table/thead/tr/th/a/span")->click();
504     // Vérification des champs obligatoires
505     $this->byXPath("//input[@value='Ajouter']")->click();
506     sleep(1);
507     //On choisi un événement
508     $this->select($this->byId("evenement"))->selectOptionByValue("94");
509     // Validation du formulaire
510     $this->byXPath("//input[@value='Ajouter']")->click();
511     sleep(1);
512     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
513     $this->verifyNoErrors();
514     $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
515     $this->byCssSelector("form[name=\"f2\"] > a.retour")->click();
516     // Retour à l'onglet principal
517     $this->byId("main")->click();
518     $this->refresh();
519     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
520     $this->verifyNoErrors();
521     // On verifie que l'autorité compétente à changée.
522     $this->assertRegExp('/.*Commune pour état*/', $this->byCssSelector("#tabs-1 #autorite_competente")->text());
523     // On se déconnecte
524     $this->deconnect();
525 softime 2605
526 nhaye 2107 // On se connecte en tant que "admin"
527     $this->login("admin", "admin");
528     sleep(1);
529     $this->byLinkText("Instruction")->click();
530     // On clique sur le lien "Recherche" dans le menu
531     $this->byLinkText("Recherche")->click();
532     // On clique sur le lien "AZ0130551200001P0" dans le tableau
533 softime 2112 $this->byLinkText("AZ 013055 12 00001P0")->click();
534 nhaye 2107 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
535     $this->verifyNoErrors();
536 softime 2633 // On verifie que l'autorité compétente à changée
537     $this->assertEquals('Commune pour état', $this->byCssSelector("#tabs-1 #autorite_competente")->text());
538 nhaye 2107 // On clique sur l'onglet "Instruction"
539     $this->byId("instruction")->click();
540     $this->byLinkText("Changer l'autorité compétente 'commune état'")->click();
541     sleep(1);
542     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
543     $this->verifyNoErrors();
544     // On supprime l'element et on verifie le retour de l'autorité "commune"
545 softime 2633 $this->byId("action-sousform-instruction-supprimer")->click();
546     // On valide le formulaire
547     $this->byXPath("//input[@value='Supprimer']")->click();sleep(1);
548     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
549     $this->verifyNoErrors();
550     // On clique sur le bouton retour
551     $this->byLinkText("Retour")->click();
552     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
553     $this->verifyNoErrors();
554     // On vérifie que l'événement d'instruction n'est plus dans le tableau
555     $this->assertNotContains("Changer l'autorité compétente 'commune état'", $this->byId("sousform-instruction")->text());
556 nhaye 2107 // Retour à l'onglet principal
557     $this->byId("main")->click();
558 softime 2633 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
559     $this->verifyNoErrors();
560     // On rafraîchit la page
561 nhaye 2107 $this->refresh();
562     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
563     $this->verifyNoErrors();
564     // On verifie que l'autorité compétente à changée.
565 softime 2633 $this->assertEquals('Commune', $this->byCssSelector("#tabs-1 #autorite_competente")->text());
566 nhaye 2107 // On se déconnecte
567 softime 2605 $this->deconnect();
568 nhaye 2107 }
569 softime 2605 // Fonction public
570     public function test_06_modification_autorite_competente() {
571     // Récupération des utilisateurs
572     $utilisateurs = $this->listUtlisateurs;
573     // Pour chaque utilisateur on lance le test
574     foreach ($utilisateurs as $utilisateur) {
575     //
576     $this->modification_autorite_competente($utilisateur);
577     }
578     // On vérifie la déconnexion
579     $this->verifyDeconnect();
580     }
581 nhaye 2107
582 nhaye 2116 /**
583     * Test de l'ajout de données techniques au dossier
584     */
585     public function test_07_edition_donnees_techniques() {
586     // On se connecte en tant que "instr"
587 nhaye 2118 $this->login("admin", "admin");
588     sleep(1);
589     // Ouverture du menu de paramétrage des dossiers
590     $this->byLinkText("Paramétrage Dossiers")->click();
591     // Ouverture du menu des cerfa
592     $this->byLinkText("Cerfa")->click();
593     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
594     $this->verifyNoErrors();
595     // Ouverture d'un cerfa
596     $this->byLinkText("cerfa de test n°1")->click();
597     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
598     $this->verifyNoErrors();
599     // Modification du cerfa affiché
600     $this->byXPath("//div[@id='portlet-actions']/ul/li/a/span")->click();
601     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
602     $this->verifyNoErrors();
603     // Ajout de champs au formulaire des données techniques
604     $this->byXPath("//div[@id='form-content']/div[2]/fieldset/legend")->click();
605     $this->byId("terr_juri_titul")->click();
606     $this->byId("terr_juri_lot")->click();
607     $this->byId("terr_juri_zac")->click();
608     $this->byId("terr_juri_afu")->click();
609     $this->byId("terr_juri_pup")->click();
610     $this->byId("terr_juri_oin")->click();
611     $this->byId("terr_juri_desc")->click();
612     // Validation du formulaire
613     $this->byXPath("//input[@value='Modifier']")->click();
614     // Vérification des erreurs
615     $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector(".message .text")->text());
616     $this->byLinkText("Retour")->click();
617     // On se déconnecte
618     $this->deconnect();
619     // On se connecte en tant que "instr"
620 nhaye 2116 $this->login("instr", "instr");
621     // On clique sur le lien "Mes encours" dans le menu
622     $this->byLinkText("Mes Encours")->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 "AZ0130551200001P0" dans le tableau
626     $this->byLinkText("AZ 013055 12 00001P0")->click();
627     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
628     $this->verifyNoErrors();
629     // On click sur le lien "Données techniques"
630     $this->byXPath("//div[@id='portlet-actions']/ul/li[2]/a/span")->click();
631     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
632     $this->verifyNoErrors();
633 nhaye 2118 sleep(1);
634     // Modification des données techniques
635     $this->byCssSelector("#sousform-donnees_techniques .edit-16")->click();
636     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
637     $this->verifyNoErrors();
638     sleep(1);
639     $this->assertRegExp('/^[\s\S]*Terrain[\s\S]*$/', $this->byCssSelector("#sformulaire #form-content legend")->text());
640 nhaye 2116 // Validation du formulaire
641     $this->byXPath("//input[@value='Modifier']")->click();
642     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
643     $this->verifyNoErrors();
644 nhaye 2118 $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-donnees_techniques .message .text")->text());
645     $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();
646     sleep(1);
647 nhaye 2116 // On se déconnecte
648     $this->logout();
649    
650     }
651 softime 2562
652     /**
653     * Test un événement d'instruction qui a un événement "retour"
654     */
655     public function test_08_evenement_instruction_retour() {
656    
657     // Instancie la timezone
658     date_default_timezone_set('Europe/Paris');
659    
660     // On se connecte à l'application en tant qu'administrateur
661     $this->login("admin", "admin");
662     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
663     $this->verifyNoErrors();
664    
665     /** On ajoute une action "retour signature" **/
666     // On clique sur le menu "Paramétrage Dossiers"
667     $this->byLinkText("Paramétrage Dossiers")->click();
668     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
669     $this->verifyNoErrors();
670     // On clique sur le sous-menu "Action"
671     $this->byLinkText("Action")->click();
672     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
673     $this->verifyNoErrors();
674     // On clique sur le bouton "ajouter"
675     $this->byId("action-tab-action-corner-ajouter")->click();
676     // On remplis les champs
677     $this->byId("action")->value("retour signature");
678     $this->byId("libelle")->value("retour signature");
679     $this->byId("regle_etat")->value("etat");
680 softime 2564 $this->byId("regle_date_validite")->value("date_retour_signature + duree_validite");
681 softime 2562 // On valide le formulaire
682     $this->byXPath("//input[@value='Ajouter']")->click();
683     // On vérifie le message de validation
684     $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text());
685     /** Fin **/
686    
687     /** On ajoute un événement "retour signature" **/
688     // On clique sur le sous-menu "Événement"
689     $this->byLinkText("Événement")->click();
690     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
691     $this->verifyNoErrors();
692     // On clique sur le bouton "ajouter"
693     $this->byId("action-tab-evenement-corner-ajouter")->click();
694     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
695     $this->verifyNoErrors();
696     // On remplis les champs
697     $this->byId("libelle")->value("retour signature");
698     $this->byId("retour")->click();
699     $this->select($this->byName("etats_depuis_lequel_l_evenement_est_disponible[]"))->clearSelectedOptions();;
700     $this->select($this->byName("etats_depuis_lequel_l_evenement_est_disponible[]"))->selectOptionByLabel("dossier accepter");
701     $this->select($this->byName("dossier_instruction_type[]"))->clearSelectedOptions();
702     $this->select($this->byName("dossier_instruction_type[]"))->selectOptionByLabel("PCI - P - Initial");
703     $this->select($this->byId("action"))->selectOptionByLabel("retour signature");
704     // On valide le formulaire
705     $this->byXPath("//input[@value='Ajouter']")->click();
706     // On vérifie le message de validation
707     $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text());
708     // On clique sur "Retour"
709     $this->byLinkText("Retour")->click();
710     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
711     $this->verifyNoErrors();
712 softime 2572 // On recherche l'événement "accepter un dossier sans réserve"
713 softime 2562 $this->byCssSelector("input[name='recherche']")->value('accepter un dossier sans réserve');
714     // On clique sur le bouton recherche
715     $this->byCssSelector(".ui-button")->click();
716     // On clique sur le résultat
717     $this->byLinkText("accepter un dossier sans réserve")->click();
718     // On clique sur le bouton "Modifier"
719     $this->byId('action-form-evenement-modifier')->click();
720     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
721     $this->verifyNoErrors();
722     // On sélectionne l'événement "retour" dans "evenement_retour_signature"
723     $this->select($this->byId("evenement_retour_signature"))->selectOptionByLabel("retour signature");
724     // On valide le formulaire
725     $this->byXPath("//input[@value='Modifier']")->click();
726     // On vérifie le message de validation
727     $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text());
728     /** Fin **/
729    
730     /** On ajoute une durée de validité au type de DA PCI **/
731     // On clique sur le sous-menu "Type DA Détaillé"
732     $this->byLinkText("Type DA Détaillé")->click();
733     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
734     $this->verifyNoErrors();
735     // On clique sur le PCI
736     $this->byLinkText("PCI")->click();
737     // On clique sur le bouton "modifier"
738     $this->byId("action-form-dossier_autorisation_type_detaille-modifier")->click();
739     // On modifie la durée de validité
740     $this->byId("duree_validite_parametrage")->clear();
741     $this->byId("duree_validite_parametrage")->value("5");
742     // On valide le formulaire
743     $this->byXPath("//input[@value='Modifier']")->click();
744     // On vérifie le message de validation
745     $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text());
746     /** Fin **/
747    
748     /** On instancie une nouvelle demande initial PCI **/
749     // On clique sur le menu "Guichet Unique"
750     $this->byLinkText("Guichet Unique")->click();
751     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
752     $this->verifyNoErrors();
753     // On clique sur le sous-menu "Nouveau Dossier"
754     $this->byLinkText("Nouveau Dossier")->click();
755     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
756     $this->verifyNoErrors();
757     // On selectionne le type de dossier d'autorisation détaillé "Permis de construire pour une maison individuelle et / ou ses annexes"
758     $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel("Permis de construire pour une maison individuelle et / ou ses annexes");
759     // On selectionne le type de demande "Dépôt Initial"
760     $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
761     // On clique pour ajouter un pétitionnaire principale
762     $this->byId("add_petitionnaire_principal")->click();
763     // On remplit le champ
764     $this->byId("particulier_nom")->value("DURAND");
765     // On remplit le champ
766     $this->byId("particulier_prenom")->value("MICKAEL");
767     // On remplit le champ
768     $this->byId("particulier_date_naissance")->value("03/01/1956");
769     // On remplit le champ
770     $this->byId("particulier_commune_naissance")->value("LILLE");
771     // On remplit le champ
772     $this->byId("particulier_departement_naissance")->value("NORD");
773     // On remplit le champ
774     $this->byId("numero")->value("12");
775     // On remplit le champ
776     $this->byId("voie")->value("RUE DE LA LOI");
777     // On remplit le champ
778     $this->byId("complement")->value("APPT 12");
779     // On remplit le champ
780     $this->byId("localite")->value("MARSEILLE");
781     // On remplit le champ
782     $this->byId("code_postal")->value("13012");
783     // On remplit le champ
784     $this->byId("telephone_fixe")->value("0404040404");
785     // On clique sur ajouter
786     $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
787     // On vérifie le message
788     $this->assertContains("Vos modifications ont bien été enregistrées", $this->byCssSelector("#sousform-petitionnaire .message")->text());
789     // On clique sur le bouton retour
790     $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
791     // On vérifie que le text est présent
792     $this->assertContains("DURAND MICKAEL",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
793     // On clique sur ajouter
794     $this->byXPath("//input[@value='Ajouter']")->click();
795     // On vérifie le message
796     $this->assertContains("Création du dossier d'autorisation n°",$this->byCssSelector(".message .text")->text());
797     // Récupération du numéro de dossier
798     preg_match('/(PC)[0-9 ]*(P0)/', $this->byCssSelector(".message .text")->text(), $dossier);
799     $dossier = $dossier[0];
800     /** Fin **/
801    
802     /** On ajoute une instruction de dossier accepter et on la finalise **/
803     // On clique sur le menu "Instruction"
804     $this->byLinkText("Instruction")->click();
805     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
806     $this->verifyNoErrors();
807     // On clique sur le sous-menu "Recherche"
808     $this->byLinkText("Recherche")->click();
809     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
810     $this->verifyNoErrors();
811 softime 2567 // On recherche le dossier crée
812     $this->byId("dossier")->value(str_replace(' ', '', $dossier));
813     // On clique sur le bouton recherche
814     $this->byId("adv-search-submit")->click();
815     // On clique sur le résultat
816 softime 2562 $this->byLinkText($dossier)->click();
817     // On clique sur l'onglet "Instruction"
818     $this->byId("instruction")->click();
819     // On ajoute un événement d'instruction
820     $this->byId("action-soustab-instruction-corner-ajouter")->click();
821     // On sélectionne l'évenement "accepter un dossier sans réserve"
822     $this->select($this->byId("evenement"))->selectOptionByLabel("accepter un dossier sans réserve [acceptation]");
823     // On valide le formulaire
824     $this->byXPath("//input[@value='Ajouter']")->click();
825     // On vérifie le message
826     $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message .text")->text());
827     // On clique sur le bouton "retour"
828     $this->byLinkText("Retour")->click();
829     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
830     $this->verifyNoErrors();
831     // On clique sur l'événement d'instruction "accepter un dossier sans réserve"
832     $this->byLinkText("accepter un dossier sans réserve")->click();
833     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
834     $this->verifyNoErrors();
835     // On valide l'instruction
836     $this->byId("action-sousform-instruction-finalisation")->click();
837     // On vérifie le message de validation
838     $this->assertContains("La finalisation du document s'est effectuée avec succès.",$this->byCssSelector(".message .text")->text());
839     // On clique sur le bouton "Retour"
840     $this->byLinkText("Retour")->click();
841     // On clique sur l'événement "accepter un dossier sans réserve"
842     $this->byLinkText("accepter un dossier sans réserve")->click();sleep(1);
843     // Récupération du numéro d'événement
844     $evenement = $this->byCssSelector("#instruction.field_value")->text();
845     /** Fin **/
846    
847     /** On met à jour la date de retour signature **/
848     // Date de retour signature
849     $date_retour_signature = date("d/m/Y", mktime(0, 0, 0, date("m"), date("d")+5, date("Y")));
850     // On clique sur le menu "Suivi"
851     $this->byLinkText("Suivi")->click();
852     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
853     $this->verifyNoErrors();
854     // On clique sur le sous-menu "Mise À Jour Des Dates"
855     $this->byLinkText("Mise À Jour Des Dates")->click();
856     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
857     $this->verifyNoErrors();
858     // On sélectionne "date de retour de signature + Envoi contrôle légalite"
859     $this->select($this->byId("type_mise_a_jour"))->selectOptionByLabel("date de retour de signature + Envoi contrôle légalite");
860     // On remplit à la date du jour + 5 jours
861     $this->byId("date")->value($date_retour_signature);
862     // On remplit le code barres de l'instruction
863     $this->byId("code_barres")->value("11".str_pad($evenement, 10, "0", STR_PAD_LEFT));
864     // On clique sur Valider
865     $this->byCssSelector("#suivi_mise_a_jour_des_dates_form div.formControls input.om-button")->click();sleep(1);
866     // On vérifie la synthèse avec le numéro du dossier et l'événement
867     $this->assertContains($dossier, $this->byId("dossier_libelle")->text());
868     $this->assertContains("accepter un dossier sans réserve", $this->byId("evenement")->text());
869     // On clique sur Valider
870     $this->byCssSelector("#suivi_mise_a_jour_des_dates_form div.formControls input.om-button")->click();
871     // On vérifie le message de validation
872     $this->assertContains("Saisie enregistrée",$this->byCssSelector(".message .text")->text());
873     /** Fin **/
874    
875     /** Vérifie l'instruction "retour" et le DI **/
876     // Date de validité
877     $date_validite = date("d/m/Y", mktime(0, 0, 0, date("m")+5, date("d")+5, date("Y")));
878     // On clique sur le menu "Instruction"
879     $this->byLinkText("Instruction")->click();
880     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
881     $this->verifyNoErrors();
882     // On clique sur le sous-menu "Recherche"
883     $this->byLinkText("Recherche")->click();
884     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
885     $this->verifyNoErrors();
886 softime 2572 // On recherche le dossier crée
887     $this->byId("dossier")->value(str_replace(' ', '', $dossier));
888     // On clique sur le bouton recherche
889     $this->byId("adv-search-submit")->click();
890     // On clique sur le résultat
891 softime 2562 $this->byLinkText($dossier)->click();
892     // On vérifie la date de validité mise à jour par l'action
893     $this->assertContains($date_validite, $this->byId("date_validite")->text());
894     // On clique sur l'onglet "Instruction"
895     $this->byId("instruction")->click();
896     // On clique sur l'instruction "retour signature"
897     $this->byLinkText("retour signature")->click();
898     // On contrôle la date de retour signature
899     $this->assertContains($date_retour_signature, $this->byId("date_retour_signature")->text());
900     /** Fin **/
901    
902     // On se déconnecte
903     $this->logout();
904    
905     }
906 vpihour 2606
907     /**
908     * Test la suppression d'un événement d'instruction lié à une demande qui ne
909     * créée pas de nouveau dossier d'instruction
910     */
911     public function test_09_suppression_evenement_demande(){
912    
913     //Ajout du paramétrage d'une nouvelle demande
914     // On se connecte à l'application en tant qu'administrateur
915     $this->login("admin", "admin");
916     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
917     $this->verifyNoErrors();
918     //On clique sur "Paramétrage dossier"
919     $this->byLinkText("Paramétrage Dossiers")->click();
920     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
921     $this->verifyNoErrors();
922     //On clique sur Type
923     $this->byLinkText("Type")->click();
924     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
925     $this->verifyNoErrors();
926     //On clique sur le "+" du tableau
927     $this->byClassName("add-16")->click();
928     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
929     $this->verifyNoErrors();
930     //On saisit le type de la demande
931     $this->byId("code")->value("test_09_suppression");
932     $this->byId("libelle")->value("test_09_suppression");
933 softime 2633 // On sélectionne le groupe 'Autorisation ADS'
934 vpihour 2606 $this->select($this->byId("groupe"))->selectOptionByValue("1");sleep(1);
935 softime 2633 // On sélectionne 'AZ (Demande d'autorisation spéciale de travaux dans
936     // le périmètre d'une AVAP)'
937 vpihour 2606 $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByValue("7");sleep(1);
938 softime 2633 // On sélectionne la nature 'Dossier existant'
939 vpihour 2606 $this->select($this->byId("demande_nature"))->selectOptionByValue("2");
940 softime 2633 // On sélectionne l'état 'En cours'
941 vpihour 2606 $this->select($this->byName("etats_dossier_autorisation_autorises[]"))->selectOptionByValue("1");
942 softime 2633 // On sélectionne l'événement 'Defrichement soumis a enquete publique'
943 vpihour 2606 $this->select($this->byId("evenement"))->selectOptionByValue("15");
944 softime 2633 // On sélectionne la contrainte 'Avec récupération demandeur'
945 vpihour 2606 $this->select($this->byId("contraintes"))->selectOptionByValue("avec_recup");
946     // On clique sur le bouton ajouter
947     $this->byXPath("//input[@value='Ajouter']")->click();
948     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
949     $this->verifyNoErrors();
950     // On vérifie que le type de demande a bien été ajouté
951     $this->assertContains('Vos modifications ont bien été enregistrées', $this->byCssSelector(".message .text")->text());
952     //On se déconnecte
953     $this->deconnect();
954    
955     //Création d'un nouveau dossier d'instruction
956     // On se connecte à l'application
957     $this->login("guichet", "guichet");
958     //On clique sur "Guichet Unique"
959     $this->byLinkText("Guichet Unique")->click();
960     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
961     $this->verifyNoErrors();
962     //On clique sur "Dossier En Cours"
963     $this->byLinkText("Dossier En Cours")->click();
964     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
965     $this->verifyNoErrors();
966     //On clique sur le dossier "AZ0130551200001P0"
967     $this->byId("action-tab-demande_dossier_encours-left-consulter-AZ0130551200001P0")->click();
968     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
969     $this->verifyNoErrors();
970     //On sélectionne le type de la demande
971     $this->select($this->byId("demande_type"))->selectOptionByLabel("test_09_suppression");sleep(1);
972     // On clique sur le bouton ajouter
973     $this->byXPath("//input[@value='Ajouter']")->click();
974     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
975     $this->verifyNoErrors();
976     // On vérifie que le type de demande a bien été ajouté
977     $this->assertContains('Vos modifications ont bien été enregistrées', $this->byCssSelector(".message .text")->text());
978     //On se déconnecte
979     $this->deconnect();
980    
981     //Suppression de l'événement d'instruction
982     // On se connecte à l'application
983     $this->login("admin", "admin");
984     //On clique sur le menu "Instruction"
985     $this->byLinkText("Instruction")->click();
986     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
987     $this->verifyNoErrors();
988     //On clique sur le menu "Recherche"
989     $this->byLinkText("Recherche")->click();
990     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
991     $this->verifyNoErrors();
992     //On clique sur le dossier "AZ 013055 12 00001P0"
993     $this->byLinkText("AZ 013055 12 00001P0")->click();
994     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
995     $this->verifyNoErrors();
996     //On clique sur l'onglet "Instruction"
997     $this->byId("instruction")->click();
998     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
999     $this->verifyNoErrors();
1000     //On clique sur l'instruction "Defrichement soumis a enquete publique"
1001     $this->byLinkText("Defrichement soumis a enquete publique")->click();
1002     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1003     $this->verifyNoErrors();
1004     //On définalise l'instruction
1005     $this->byClassName("definalise")->click();
1006     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1007     $this->verifyNoErrors();
1008     //On clique "Supprimer"
1009     $this->byCssSelector("#sousform-instruction .delete-16")->click();
1010     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1011     $this->verifyNoErrors();
1012     //On clique sur supprimer
1013     $this->byXPath("//input[@value='Supprimer']")->click();
1014     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1015     $this->verifyNoErrors();
1016     //On vérifie que lasuppression a été éffectuée
1017     $this->assertContains("La suppression a été correctement effectuée.",
1018     $this->byCssSelector("#sousform-instruction .message .text")->text());
1019     // On se déconnecte
1020     $this->logout();
1021     }
1022 softime 2613
1023 softime 2630 /**
1024     * Test sur les types d'éditions des consultations
1025     */
1026 vpihour 2621 function test_10_nouveau_type_edition_consultation(){
1027    
1028     //On saisit un service de test
1029     // On se connecte à l'application
1030     $this->login("admin", "admin");
1031     //On clique sur "Paramétrage"
1032     $this->byLinkText("Paramétrage")->click();
1033     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1034     $this->verifyNoErrors();
1035     //On clique sur "Service"
1036     $this->byLinkText("Service")->click();
1037     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1038     $this->verifyNoErrors();
1039     //On clique sur le "+" du tableau
1040     $this->byClassName("add-16")->click();
1041     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1042     $this->verifyNoErrors();
1043     //On saisit les données du service
1044     $this->byId("abrege")->value("test_10");
1045     $this->byId("libelle")->value("test_10");
1046     $this->byId("consultation_papier")->click();
1047 vpihour 2631 $this->select($this->byId("edition"))->selectOptionByLabel("test_10");
1048 vpihour 2621 // On clique sur le bouton ajouter
1049     $this->byXPath("//input[@value='Ajouter']")->click();
1050     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1051     $this->verifyNoErrors();
1052     // On vérifie que le service a bien été ajouté
1053     $this->assertContains('Vos modifications ont bien été enregistrées', $this->byCssSelector(".message .text")->text());
1054     //On se déconnecte
1055     $this->deconnect();
1056    
1057     //On ajoute une consultation sur un dossier et on vérifie l'édition
1058     // On se connecte à l'application
1059     $this->login("instr", "instr");
1060     //On clique sur "Recherche"
1061     $this->byLinkText("Recherche")->click();
1062     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1063     $this->verifyNoErrors();
1064     //On choisit le dossier "AZ 013055 12 00001P0"
1065     $this->byLinkText("AZ 013055 12 00001P0")->click();
1066     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1067     $this->verifyNoErrors();
1068     //On clique sur l'onglet "Consultation"
1069     $this->byId("consultation")->click();
1070     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1071     $this->verifyNoErrors();
1072     //On clique sur le "+" du tableau
1073     $this->byClassName("add-16")->click();
1074     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1075     $this->verifyNoErrors();
1076     //On saist une nouvelle consultation
1077     $this->select($this->byId("service"))->selectOptionByLabel("test_10");
1078     // On clique sur le bouton ajouter
1079     $this->byXPath("//input[@value='Ajouter']")->click();
1080     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1081     $this->verifyNoErrors();
1082     // On vérifie que la consultation a bien été ajoutée
1083     $this->assertContains('Vos modifications ont bien été enregistrées', $this->byCssSelector(".message .text")->text());
1084     //On clique sur retour
1085     $this->byCssSelector("#sousform-consultation .retour")->click();
1086     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1087     $this->verifyNoErrors();
1088     //On clique sur la consultation au service "test_10"
1089     $this->byLinkText("test_10")->click();
1090     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1091     $this->verifyNoErrors();
1092     //On affiche le PDF
1093     $this->byId("action-sousform-consultation-pdfetat")->click();sleep(5);
1094     // Liste les fenêtres
1095     $windows = $this->windowHandles();
1096     // Change la fenêtre
1097     $this->window($windows[1]);
1098     // On vérifie qu'il n'y ait pas d'erreur
1099     $this->verifynoerrors();
1100     // On vérifie que le text est présent
1101     $this->assertContains("test_10",$this->source());
1102     $this->assertNotContains("test_10_2",$this->source());
1103     // On ferme la fenêtre
1104     $this->closeWindow();
1105     // On change le focus de la fenêtre
1106     $this->window($windows[0]);
1107     //On se déconnecte
1108     $this->deconnect();
1109    
1110     //On change l'édition
1111     // On se connecte à l'application
1112     $this->login("admin", "admin");
1113     //On clique sur "Paramétrage"
1114     $this->byLinkText("Paramétrage")->click();
1115     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1116     $this->verifyNoErrors();
1117     //On clique sur "Service"
1118     $this->byLinkText("Service")->click();
1119     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1120     $this->verifyNoErrors();
1121     //On cherche le service
1122     $this->byName("recherche")->value("test_10");
1123     //On valide
1124     $this->byName("s1")->click();
1125     //On clique sur le service test_10
1126     $this->byLinkText("test_10")->click();
1127     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1128     $this->verifyNoErrors();
1129     //On clique sur "Modifier" dans le portail d'action
1130     $this->byClassName("edit-16")->click();
1131     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1132     $this->verifyNoErrors();
1133     //On choisit une seconde édition
1134 vpihour 2631 $this->select($this->byId("edition"))->selectOptionByLabel("test_10_2");
1135 vpihour 2621 // On clique sur le bouton ajouter
1136     $this->byXPath("//input[@value='Modifier']")->click();
1137     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1138     $this->verifyNoErrors();
1139     // On vérifie que le service a bien été ajouté
1140     $this->assertContains('Vos modifications ont bien été enregistrées', $this->byCssSelector(".message .text")->text());
1141     //On se déconnecte
1142     $this->deconnect();
1143    
1144     //On vérifie que c'est la bonne édition qui est affiché
1145     // On se connecte à l'application
1146     $this->login("instr", "instr");
1147     //On clique sur "Recherche"
1148     $this->byLinkText("Recherche")->click();
1149     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1150     $this->verifyNoErrors();
1151     //On choisit le dossier "AZ 013055 12 00001P0"
1152     $this->byLinkText("AZ 013055 12 00001P0")->click();
1153     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1154     $this->verifyNoErrors();
1155     //On clique sur l'onglet "Consultation"
1156     $this->byId("consultation")->click();
1157     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1158     $this->verifyNoErrors();
1159     //On clique sur la consultation au service "test_10"
1160     $this->byLinkText("test_10")->click();
1161     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1162     $this->verifyNoErrors();
1163     //on definalise la consultaion
1164     $this->byClassName("definalise")->click();
1165     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1166     $this->verifyNoErrors();
1167     //On vérifie que la consultation s'est bien définalisée
1168     $this->assertEquals('La definalisation du document s\'est effectuée avec succès.', $this->byCssSelector("#sousform-consultation .message .text")->text());sleep(10);
1169     //On affiche le PDF
1170     $this->byId("action-sousform-consultation-pdfetat")->click();sleep(5);
1171     // Liste les fenêtres
1172     $windows = $this->windowHandles();
1173     // Change la fenêtre
1174     $this->window($windows[1]);
1175     // On vérifie qu'il n'y ait pas d'erreur
1176     $this->verifynoerrors();
1177     // On vérifie que le text est présent
1178     $this->assertContains("test_10_2",$this->source());
1179     // On ferme la fenêtre
1180     $this->closeWindow();
1181     // On change le focus de la fenêtre
1182     $this->window($windows[0]);
1183    
1184     // On se déconnecte
1185     $this->logout();
1186     }
1187    
1188 softime 2613 /**
1189     * Test sur un événement non verrouillable
1190     */
1191 softime 2630 public function test_11_evenement_non_verrouillable(){
1192 softime 2613
1193     /* On crée une nouvelle demande initial */
1194     // On se connecte à l'application
1195     $this->login("guichet", "guichet");
1196     // On clique sur le menu "Nouveau Dossier"
1197     $this->byLinkText("Nouveau Dossier")->click();
1198     // On vérifie qu'il n'y ait pas d'erreur
1199     $this->verifynoerrors();
1200     // On vérifie le nom de l'onglet
1201     $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
1202 nmeucci 2634 // On sélectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
1203 softime 2613 $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel("Permis de construire pour une maison individuelle et / ou ses annexes");
1204 nmeucci 2634 // On selectionne le label "Dépôt Initial"
1205 softime 2613 $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
1206     // On clique pour ajouter un pétitionnaire principale
1207     $this->byId("add_petitionnaire_principal")->click();
1208     // On remplit le champ
1209     $this->byId("particulier_nom")->value("DURAND");
1210     // On remplit le champ
1211     $this->byId("particulier_prenom")->value("MICKAEL");
1212     // On remplit le champ
1213     $this->byId("particulier_date_naissance")->value("03/01/1956");
1214     // On remplit le champ
1215     $this->byId("particulier_commune_naissance")->value("LILLE");
1216     // On remplit le champ
1217     $this->byId("particulier_departement_naissance")->value("NORD");
1218     // On remplit le champ
1219     $this->byId("numero")->value("12");
1220     // On remplit le champ
1221     $this->byId("voie")->value("RUE DE LA LOI");
1222     // On remplit le champ
1223     $this->byId("complement")->value("APPT 12");
1224     // On remplit le champ
1225     $this->byId("localite")->value("MARSEILLE");
1226     // On remplit le champ
1227     $this->byId("code_postal")->value("13012");
1228     // On remplit le champ
1229     $this->byId("telephone_fixe")->value("0404040404");
1230     // On clique sur ajouter
1231     $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
1232     // On vérifie qu'il n'y ait pas d'erreur
1233     $this->verifynoerrors();
1234     // On vérifie le message
1235     $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-petitionnaire .message")->text());
1236     // On clique sur le bouton retour
1237     $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
1238     // On vérifie que le text est présent
1239     $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
1240     // On clique sur ajouter
1241     $this->byXPath("//input[@value='Ajouter']")->click();
1242     // On vérifie qu'il n'y ait pas d'erreur
1243     $this->verifynoerrors();
1244     // On vérifie le message
1245     $this->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°[\s\S]*$/",$this->byCssSelector(".message")->text());
1246     // Récupération du numéro de dossier
1247     preg_match('/(PC)[0-9 ]*(P0)/', $this->byCssSelector(".message .text")->text(), $matches);
1248     $dossier_libelle = $matches[0];
1249     $dossier = str_replace(' ', '', $dossier_libelle);
1250     $dossier_dir = substr_replace($dossier, '.', -2, -3);
1251     // On clique
1252     $this->byCssSelector("a.lien")->click();sleep(5);
1253     // Liste les fenêtres
1254     $windows = $this->windowHandles();
1255     // Change la fenêtre
1256     $this->window($windows[1]);
1257     // On vérifie qu'il n'y ait pas d'erreur
1258     $this->verifynoerrors();
1259     // On vérifie que le text est présent
1260     $this->assertRegExp("/^[\s\S]*RECEPISSE DE DEPOT[\s\S]*$/",$this->source());
1261     // On ferme la fenêtre
1262     $this->closeWindow();
1263     // On change le focus de la fenêtre
1264     $this->window($windows[0]);
1265     // On clique sur le bouton retour
1266     $this->byLinkText("Retour")->click();
1267     // On vérifie qu'il n'y ait pas d'erreur
1268     $this->verifynoerrors();
1269     // On vérifie que le répertoire s'est crée
1270     $this->assertTrue(file_exists("../trs/numerisation/Todo/".$dossier_dir));
1271     // On se déconnecte
1272     $this->deconnect();
1273     /* Fin */
1274    
1275     /* On accepte le dossier d'instruction et le finalise */
1276     // On se connecte à l'application
1277     $this->login("instr", "instr");
1278     // On clique sur le menu 'Recherche'
1279     $this->byLinkText("Recherche")->click();
1280     // On recherche le dossier crée
1281     $this->byId("dossier")->value($dossier);
1282     // On clique sur le bouton recherche
1283     $this->byId("adv-search-submit")->click();
1284     // On clique sur le résultat
1285     $this->byLinkText($dossier_libelle)->click();
1286     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1287     $this->verifyNoErrors();
1288     // On clique sur l'onglet "Instruction"
1289     $this->byId("instruction")->click();
1290     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1291     $this->verifyNoErrors();
1292     // On clique sur le lien d'ajout dans le tableau
1293     $this->byCssSelector(".actions-max-1 a")->click();
1294     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1295     $this->verifyNoErrors();
1296     // On choisi un événement
1297     $this->select($this->byId("evenement"))->selectOptionByLabel("accepter un dossier sans réserve [acceptation]");
1298     // On valide le formulaire
1299     $this->byXPath("//input[@value='Ajouter']")->click();
1300     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1301     $this->verifyNoErrors();
1302     sleep(1);
1303     $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
1304     // On retourne sur le tableau d'instructions
1305     $this->byCssSelector("#sousform-instruction .retour")->click();
1306     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1307     $this->verifyNoErrors();
1308     // On clique sur l'événement d'instruction "accepter un dossier sans réserve"
1309     $this->byLinkText("accepter un dossier sans réserve")->click();
1310     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1311     $this->verifyNoErrors();
1312     // On valide l'instruction (un événement verrouillable ne pourrait pas
1313     // être finalisé)
1314     $this->byId("action-sousform-instruction-finalisation")->click();
1315     // On vérifie le message de validation
1316     $this->assertContains("La finalisation du document s'est effectuée avec succès.",$this->byCssSelector(".message .text")->text());
1317     /* Fin */
1318     }
1319 vpihour 2631
1320     /**
1321     * Test que les données du dossier d'autorisation sont recopiés dans les
1322     * champs 'archive_' de l'événement d'instruction de la création du nouveau
1323     * dossier d'instruction
1324     */
1325 vpihour 2643 public function test_12_recopie_donnees_da_vers_nouveau_di(){
1326 vpihour 2631 date_default_timezone_set("Europe/Paris");
1327    
1328     //{{{ Ajout de d'un nouveau dossier
1329     // On se connecte à l'application
1330     $this->login("guichet", "guichet");
1331     //On clique sur le menu des instructions
1332     $this->byLinkText("Nouveau Dossier")->click();
1333     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1334     $this->verifyNoErrors();
1335     //On ajoute un nouveau dossier
1336     $dossier = $this->addDossierInstruction( 1, 1);
1337     // On se déconnecte
1338     $this->deconnect();
1339     //}}}
1340    
1341     //{{{ Clôture du nouveau dossier
1342     // On se connecte à l'application
1343     $this->login("instr", "instr");
1344     //On clique sur le menu "Recherche"
1345     $this->byLinkText("Recherche")->click();
1346     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1347     $this->verifyNoErrors();
1348     //On clique sur le nouveau dossier
1349     $this->byLinkText($dossier)->click();
1350     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1351     $this->verifyNoErrors();
1352     //On clique sur l'onglet "instruction"
1353     $this->byId("instruction")->click();
1354     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1355     $this->verifyNoErrors();
1356     // On ajoute une instruction
1357     $this->byCssSelector("#sousform-instruction .add-16")->click();
1358     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1359     $this->verifyNoErrors();
1360 softime 2648 //On choisit l'instruction 'accepter un dossier sans réserve
1361     //[acceptation]'
1362 vpihour 2631 $this->select($this->byId("evenement"))->selectOptionByValue(81);
1363     // On clique sur ajouter
1364     $this->byXPath("//input[@value='Ajouter']")->click();
1365     // On vérifie qu'il n'y ait pas d'erreur
1366     $this->verifynoerrors();
1367     // On vérifie le message
1368     $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1369     //On rafraichit la page pour vérifier que le dossier est clôturé
1370     $this->refresh();
1371     $this->assertEquals("Favorable", $this->byId("avis_decision")->text());
1372     // On se déconnecte
1373     $this->deconnect();
1374     //}}}
1375    
1376     //{{{ Ajout de l'action
1377     // On se connecte à l'application
1378     $this->login("admin", "admin");
1379     //On clique sur le menu "Paramétrage dossiers"
1380     $this->byLinkText("Paramétrage Dossiers")->click();
1381     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1382     $this->verifyNoErrors();
1383     //On clique sur le menu "Action"
1384     $this->byLinkText("Action")->click();
1385     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1386     $this->verifyNoErrors();
1387     //On clique sur le "+" du tableau
1388     $this->byClassName("add-16")->click();
1389     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1390     $this->verifyNoErrors();
1391     //On remplit la règle de calcul de la date de validité
1392     $this->byId("action")->value("test_12_recopie_donnees");
1393     $this->byId("libelle")->value("test_12_recopie_donnees");
1394 vpihour 2643 $this->byId("regle_date_validite")->value("archive_date_validite+12");
1395 vpihour 2631 // On clique sur ajouter
1396     $this->byXPath("//input[@value='Ajouter']")->click();
1397     // On vérifie qu'il n'y ait pas d'erreur
1398     $this->verifynoerrors();
1399     // On vérifie le message
1400     $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1401     //}}}
1402    
1403     //{{{ Ajout de l'événement
1404     //On clique sur le menu "Événement"
1405     $this->byLinkText("Événement")->click();
1406     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1407     $this->verifyNoErrors();
1408     //On clique sur le "+" du tableau
1409     $this->byClassName("add-16")->click();
1410     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1411     $this->verifyNoErrors();
1412     //On remplit l'événement qui va être ajouté avec la nouvelle demande
1413     $this->byId("libelle")->value("test_12_recopie_donnees");
1414     $this->select($this->byName("etats_depuis_lequel_l_evenement_est_disponible[]"))->selectOptionByValue("accepter");
1415 softime 2648 // On sélectionne PCI - P - Initial
1416 vpihour 2631 $this->select($this->byName("dossier_instruction_type[]"))->selectOptionByValue(1);
1417 vpihour 2643 $this->select($this->byName("action"))->selectOptionByLabel("test_12_recopie_donnees");
1418 vpihour 2631 // On clique sur ajouter
1419     $this->byXPath("//input[@value='Ajouter']")->click();
1420     // On vérifie qu'il n'y ait pas d'erreur
1421     $this->verifynoerrors();
1422     // On vérifie le message
1423     $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1424     //}}}
1425    
1426     //{{{ Ajout du type de dossier d'instruction
1427     //On clique sur le menu "Type DI"
1428     $this->byLinkText("Type DI")->click();
1429     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1430     $this->verifyNoErrors();
1431     //On clique sur le "+" du tableau
1432     $this->byClassName("add-16")->click();
1433     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1434     $this->verifyNoErrors();
1435     //On remplit le type de la demande
1436     $this->byId("code")->value("DT");
1437     $this->byId("libelle")->value("test_12_recopie_donnees");
1438 softime 2648 // On sélectionne PCI (Permis de construire pour une maison individuelle
1439     // et / ou ses annexes)
1440 vpihour 2631 $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByValue(1);sleep(1);
1441     $this->byId("suffixe")->click();
1442     // On clique sur ajouter
1443     $this->byXPath("//input[@value='Ajouter']")->click();
1444     // On vérifie qu'il n'y ait pas d'erreur
1445     $this->verifynoerrors();
1446     // On vérifie le message
1447     $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1448     //}}}
1449    
1450     //{{{ Ajout du type de la demande
1451     //On clique sur le menu "Type"
1452     $this->byLinkText("Type")->click();
1453     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1454     $this->verifyNoErrors();
1455     //On clique sur le "+" du tableau
1456     $this->byClassName("add-16")->click();
1457     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1458     $this->verifyNoErrors();
1459     //On remplit le type de la demande
1460     $this->byId("code")->value("test_12_recopie_donnees");
1461     $this->byId("libelle")->value("test_12_recopie_donnees");
1462 softime 2648 // On sélectionne Autorisation ADS
1463 vpihour 2631 $this->select($this->byId("groupe"))->selectOptionByValue(1);sleep(1);
1464 softime 2648 // On sélectionne PCI (Permis de construire pour une maison individuelle
1465     // et / ou ses annexes)
1466 vpihour 2631 $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByValue(1);
1467 softime 2648 // On sélectionne Dossier existant
1468 vpihour 2631 $this->select($this->byId("demande_nature"))->selectOptionByValue(2);
1469 softime 2648 // On sélectionne Accordé
1470 vpihour 2631 $this->select($this->byName("etats_dossier_autorisation_autorises[]"))->selectOptionByValue(2);
1471     $this->select($this->byId("dossier_instruction_type"))->selectOptionByLabel("PCI - test_12_recopie_donnees");
1472     $this->select($this->byId("evenement"))->selectOptionByLabel("test_12_recopie_donnees");
1473     // On clique sur ajouter
1474     $this->byXPath("//input[@value='Ajouter']")->click();
1475     // On vérifie qu'il n'y ait pas d'erreur
1476     $this->verifynoerrors();
1477     // On vérifie le message
1478     $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1479     //On clique sur retour
1480     $this->byClassName("retour")->click();
1481     // On vérifie qu'il n'y ait pas d'erreur
1482     $this->verifynoerrors();
1483     //On saisit le libellé du type de la demande saisit
1484     $this->byName("recherche")->value("test_12_recopie_donnees");
1485     //On valide
1486     $this->byName("s1")->click();
1487     // On vérifie qu'il n'y ait pas d'erreur
1488     $this->verifynoerrors();
1489     //On clique sur le type de la demande
1490     $this->byLinkText("test_12_recopie_donnees")->click();
1491     // On vérifie qu'il n'y ait pas d'erreur
1492     $this->verifynoerrors();
1493     //On récupère l'identifiant du type de la demande
1494     $demande_type = $this->byId("demande_type")->text();
1495     // On se déconnecte
1496     $this->deconnect();
1497     //}}}
1498    
1499     //{{{ Ajout de d'un nouveau dossier
1500     // On se connecte à l'application
1501     $this->login("guichet", "guichet");
1502     //On clique sur le menu des instructions
1503     $this->byLinkText("Dossier En Cours")->click();
1504     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1505     $this->verifyNoErrors();
1506     //On ajoute un nouveau dossier
1507     $dossier = $this->addDossierInstruction( 1, $demande_type, 2, str_replace(" ", "", $dossier));
1508     // On se déconnecte
1509     $this->deconnect();
1510     //}}}
1511    
1512     //{{{ Vérification de la date de validité
1513     // On se connecte à l'application
1514     $this->login("instr", "instr");
1515     //On clique sur le menu "Recherche"
1516     $this->byLinkText("Recherche")->click();
1517     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1518     $this->verifyNoErrors();
1519     //On clique sur le nouveau dossier
1520     $this->byLinkText($dossier)->click();
1521     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1522     $this->verifyNoErrors();
1523     //On vérifie la date de validité
1524     $this->assertEquals(date("d/m/Y", strtotime('+12 months')), $this->byId("date_validite")->text());
1525     // On se déconnecte
1526     $this->deconnect();
1527     //}}}
1528     }
1529    
1530     /**
1531     * Ajout d'un dossier d'instruction par le guichet unique
1532     *
1533     * @param int $dossier_autorisation_type_detaille L'identifiant du type détaillé
1534     * de dossier d'autorisation
1535     * @param int $demande_type L'identifiant du type de la demande
1536     * @param int $type Type de la demande : nouveau dossier ou dossier existant
1537     * @return le numéro de dossier d'instruction qui vient d'être créé
1538     */
1539     public function addDossierInstruction($dossier_autorisation_type_detaille,
1540     $demande_type, $type = 1, $dossier = "" ){
1541    
1542     if ($type===1){
1543     //On choisit le type détaillé de dossier d'autorisation
1544     $this->select($this->byName("dossier_autorisation_type_detaille"))->selectOptionByValue($dossier_autorisation_type_detaille);
1545     }
1546     else {
1547     $this->byId("action-tab-demande_dossier_encours-left-consulter-".$dossier)->click();
1548     }
1549     //On choisit le type de demande
1550     $this->select($this->byName("demande_type"))->selectOptionByValue($demande_type);
1551     //On clique sur "Saisir le pétitionnaire principal"
1552     $this->byId("add_petitionnaire_principal")->click();
1553     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1554     $this->verifyNoErrors();
1555     //On saisie le nom du pétitionnaire principal
1556     $this->byId("particulier_nom")->value("test recopie");
1557     // On clique sur ajouter
1558     $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
1559     // On vérifie qu'il n'y ait pas d'erreur
1560     $this->verifynoerrors();
1561     //On vérifie que le pétitionnaire s'est bien ajouté
1562     // On vérifie le message
1563     $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector("#sousform-petitionnaire .message")->text());
1564     // On clique sur le bouton retour
1565     $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
1566     // On vérifie que le text est présent
1567     $this->assertContains("test recopie",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
1568     // On clique sur ajouter
1569     $this->byXPath("//input[@value='Ajouter']")->click();
1570     // On vérifie qu'il n'y ait pas d'erreur
1571     $this->verifynoerrors();
1572     // On vérifie le message
1573     $this->assertContains("Création du dossier",$this->byCssSelector(".message")->text());
1574     //On récupère le numéro de dossier d'instruction créé
1575     if ($type===1){
1576     preg_match('/(PC)[0-9 ]*(P0)/', $this->byCssSelector("#tabs-1 .message")->text(), $dossier);
1577     }
1578     else{
1579     preg_match('/(PC)[0-9 ]*(DT1)/', $this->byCssSelector("#tabs-1 .message")->text(), $dossier);
1580     }
1581     return $dossier[0];
1582     }
1583 fmichon 1664 }
1584    
1585     ?>

Properties

Name Value
svn:keywords Id

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26