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

Annotation of /trunk/tests/testGestionIncompletude.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3113 - (hide annotations)
Mon Aug 4 17:11:34 2014 UTC (10 years, 6 months ago) by vpihour
File size: 23251 byte(s)
Si on renseignait une date de retour de l'AR sur un événement d'incomplétude alors que la date limite du dossier d'instruction était dépassée, l'état du dossier passait tout de même en "incomplet notifié". C'est corrigé.

1 softime 2041 <?php
2     /**
3     * Fichier contenant la classe test pour l'incomplétude
4     *
5     * @package openfoncier
6 softime 2607 * @version SVN : $Id$
7 softime 2041 */
8    
9     //
10     require_once "base.php";
11    
12     /**
13     * Classe permettant de tester l'incomplétude
14     *
15     * Pour lancer le test seul, changer les données :
16     * - dossier : PC0130551200002P0
17     * - code barres de retour de l’AR incomplétude : 110000000011
18     * - code barres de retour de l’AR de majoration de délai consultation ABF : 110000000010
19     *
20     * Pour lancer le test à la fin du run_testsuite, changer les données :
21     * - dossier : PC0130551300001P0
22     * - code barres de retour de l’AR incomplétude : 110000000021
23     * - code barres de retour de l’AR de majoration de délai consultation ABF : 110000000020
24     */
25     class GestionIncompletude extends Base2TestCase {
26    
27     /**
28     * Test l'incomplétude sur un dossier d'instruction
29     */
30     public function testIncompletude() {
31    
32     /**
33 softime 2607 * Création d'un dossier d'instruction
34     */
35     // On se connecte à l'application
36     $this->login("guichet", "guichet");
37     // On clique sur le menu "Nouveau Dossier"
38     $this->byLinkText("Nouveau Dossier")->click();
39     // On vérifie qu'il n'y ait pas d'erreur
40     $this->verifynoerrors();
41     // On vérifie le nom de l'onglet
42     $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
43     // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
44     $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel("Permis de construire pour une maison individuelle et / ou ses annexes");
45     // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
46     $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
47     // On clique pour ajouter un pétitionnaire principale
48     $this->byId("add_petitionnaire_principal")->click();
49     // On remplit le champ
50     $this->byId("particulier_nom")->value("DURAND");
51     // On remplit le champ
52     $this->byId("particulier_prenom")->value("MICKAEL");
53     // On remplit le champ
54     $this->byId("particulier_date_naissance")->value("03/01/1956");
55     // On remplit le champ
56     $this->byId("particulier_commune_naissance")->value("LILLE");
57     // On remplit le champ
58     $this->byId("particulier_departement_naissance")->value("NORD");
59     // On remplit le champ
60     $this->byId("numero")->value("12");
61     // On remplit le champ
62     $this->byId("voie")->value("RUE DE LA LOI");
63     // On remplit le champ
64     $this->byId("complement")->value("APPT 12");
65     // On remplit le champ
66     $this->byId("localite")->value("MARSEILLE");
67     // On remplit le champ
68     $this->byId("code_postal")->value("13012");
69     // On remplit le champ
70     $this->byId("telephone_fixe")->value("0404040404");
71     // On clique sur ajouter
72     $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
73     // On vérifie qu'il n'y ait pas d'erreur
74     $this->verifynoerrors();
75     // On vérifie le message
76     $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-petitionnaire .message")->text());
77     // On clique sur le bouton retour
78     $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
79     // On vérifie que le text est présent
80     $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
81     // On clique sur ajouter
82     $this->byXPath("//input[@value='Ajouter']")->click();
83     // On vérifie qu'il n'y ait pas d'erreur
84     $this->verifynoerrors();
85     // On vérifie le message
86     $this->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°[\s\S]*$/",$this->byCssSelector(".message")->text());
87     // Récupération du numéro de dossier
88     preg_match('/(PC)[0-9 ]*(P0)/', $this->byCssSelector(".message .text")->text(), $matches);
89     $dossier_libelle = $matches[0];
90     $dossier = str_replace(' ', '', $dossier_libelle);
91     $dossier_dir = substr_replace($dossier, '.', -2, -3);
92     // On clique
93     $this->byCssSelector("a.lien")->click();sleep(5);
94     // Liste les fenêtres
95     $windows = $this->windowHandles();
96     // Change la fenêtre
97     $this->window($windows[1]);
98     // On vérifie qu'il n'y ait pas d'erreur
99     $this->verifynoerrors();
100     // On vérifie que le text est présent
101     $this->assertRegExp("/^[\s\S]*RECEPISSE DE DEPOT[\s\S]*$/",$this->source());
102     // On ferme la fenêtre
103     $this->closeWindow();
104     // On change le focus de la fenêtre
105     $this->window($windows[0]);
106     // On clique sur le bouton retour
107     $this->byLinkText("Retour")->click();
108     // On vérifie qu'il n'y ait pas d'erreur
109     $this->verifynoerrors();
110     // On vérifie que le répertoire s'est crée
111     $this->assertTrue(file_exists("../trs/numerisation/Todo/".$dossier_dir));
112     // On se déconnecte
113     $this->deconnect();
114    
115     /**
116 softime 2041 * Envoi d’un courrier de majoration de délai pour consultation ABF
117     */
118     // on se connecte à l'application
119     $this->login("instr", "instr");
120     // On clique sur le menu
121     $this->byLinkText("Recherche")->click();
122     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
123     $this->verifyNoErrors();
124 softime 2608 // On recherche le dossier crée
125     $this->byId("dossier")->value($dossier);
126     // On clique sur le bouton recherche
127     $this->byId("adv-search-submit")->click();
128     // On clique sur le résultat
129 softime 2607 $this->byLinkText($dossier_libelle)->click();
130 softime 2041 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
131     $this->verifyNoErrors();
132     // On clique sur l'onglet instruction
133     $this->byId("instruction")->click();
134     // On clique sur le + pour ajouter une instruction
135     $this->byCssSelector("#sousform-instruction .actions-max-1 a")->click();
136 nmeucci 2864 // On choisi l'événement ABF recours contre avis [majoration]
137     $this->select($this->byId("evenement"))->selectOptionByValue("21");
138 softime 2041 // On clique sur le bouton ajouter
139     $this->byXPath("//input[@value='Ajouter']")->click();
140     // On vérifie que l'instruction s'est bien ajouté
141     $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
142     // On clique sur le bouton retour
143     $this->byCssSelector("#sousform-instruction form a.retour")->click();
144 vpihour 2105 //On récupère le numéro de l'instruction créée
145     $this->byLinkText("ABF recours contre avis")->click();
146     $idInstrAbf = $this->byCssSelector(".form-content #instruction")->text();
147 nhaye 2419 // Finalisation du document
148     $this->byCssSelector("#sousform-instruction .portlet-list li:nth-child(3) a")->click();
149     // On vérifie le message de validation
150     $this->assertEquals('La finalisation du document s\'est effectuée avec succès.', $this->byCssSelector("#sousform-instruction .message .text")->text());
151 softime 2041 // On clique sur l'onglet DI
152     $this->byId("main")->click();
153     // on rafraichis la page
154     $this->refresh();
155     // On vérifie le délai du dossier
156     $this->assertEquals("5", $this->byId('delai')->text());
157    
158     /**
159     * Envoi notification de pièces manquantes
160     */
161     // On clique sur l'onglet instruction
162     $this->byId("instruction")->click();
163     // On clique sur le + pour ajouter une instruction
164     $this->byCssSelector("#sousform-instruction .actions-max-1 a")->click();
165 nmeucci 2867 // On choisi l'événement "Notification de pieces manquante [rejet]"
166     $this->select($this->byId("evenement"))->selectOptionByValue("2");
167 softime 2041 // On clique sur le bouton ajouter
168     $this->byXPath("//input[@value='Ajouter']")->click();
169     // On vérifie que l'instruction s'est bien ajouté
170     $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
171     // On clique sur le bouton retour
172     $this->byCssSelector("#sousform-instruction form a.retour")->click();
173 vpihour 2105 //On récupère le numéro de l'instruction créée
174     $this->byLinkText("Notification de pieces manquante")->click();
175 nhaye 2418 $idInstrIncompletude = $this->byCssSelector(".form-content #instruction")->text();
176     // Finalisation du document
177     $this->byCssSelector("#sousform-instruction .portlet-list li:nth-child(3) a")->click();
178     // On vérifie le message de validation
179     $this->assertEquals('La finalisation du document s\'est effectuée avec succès.', $this->byCssSelector("#sousform-instruction .message .text")->text());
180 softime 2041 // On clique sur l'onglet DI
181     $this->byId("main")->click();
182     // on rafraichis la page
183     $this->refresh();
184     // On vérifie que l'état du dossier
185     $this->assertEquals("dossier incomplet", $this->byId('etat')->text());
186     // On se deconnecte
187     $this->deconnect();
188    
189     /**
190     * Retour de l’AR incomplétude
191     */
192     // on se connecte en tant que suivi
193     $this->login("suivi", "suivi");
194     // On clique sur le menu
195     $this->byLinkText("Mise À Jour Des Dates")->click();
196     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
197     $this->verifyNoErrors();
198     // on choisit le type de mise à jour
199     $this->select($this->byId("type_mise_a_jour"))->selectOptionByValue("date_retour_rar");
200     // on choisit la date
201     $this->byId("date")->value(date("d/m/Y"));
202     // on rentre le code barre
203 softime 2607 $this->byId("code_barres")->value("1100000000".$idInstrIncompletude);
204 softime 2041 // on clique sur le bouton valider
205     $this->byName("validation")->click();
206     // on vérifie que la mise à jour est pour le bon évenement
207     $this->assertEquals("Notification de pieces manquante", $this->byId('evenement')->text());
208     // on clique encore sur le bouton valider
209     $this->byName("validation")->click();
210     // on vérifie que la mise à jour est faite
211     $this->assertRegExp('/.*Saisie enregistrée.*/', $this->byCssSelector("#formulaire .message .text")->text());
212    
213     /**
214     * Retour de l’AR de majoration de délai consultation ABF
215     */
216     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
217     $this->verifyNoErrors();
218     // on choisit le type de mise à jour
219     $this->select($this->byId("type_mise_a_jour"))->selectOptionByValue("date_retour_rar");
220     // on choisit la date
221     $this->byId("date")->value(date("d/m/Y"));
222     // on rentre le code barre
223 softime 2607 $this->byId("code_barres")->value("1100000000".$idInstrAbf);
224 softime 2041 // on clique sur le bouton valider
225     $this->byName("validation")->click();
226     // on vérifie que la mise à jour est pour le bon évenement
227     $this->assertEquals("ABF recours contre avis", $this->byId('evenement')->text());
228     // on clique encore sur le bouton valider
229     $this->byName("validation")->click();
230     // on vérifie que la mise à jour est faite
231     $this->assertRegExp('/.*Saisie enregistrée.*/', $this->byCssSelector("#formulaire .message .text")->text());
232     // On se deconnecte
233     $this->deconnect();
234    
235     /**
236     * Dépôt de pièces complémentaires
237     */
238     // on se connecte à l'application
239     $this->login("instr", "instr");
240     // On clique sur le menu
241     $this->byLinkText("Recherche")->click();
242     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
243     $this->verifyNoErrors();
244 softime 2612 // On recherche le dossier crée
245     $this->byId("dossier")->value($dossier);
246     // On clique sur le bouton recherche
247     $this->byId("adv-search-submit")->click();
248     // On clique sur le résultat
249 softime 2607 $this->byLinkText($dossier_libelle)->click();
250 softime 2041 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
251     $this->verifyNoErrors();
252     // On clique sur l'onglet instruction
253     $this->byId("instruction")->click();
254     // on vérifie que les instruction après AR se sont ajouté
255     $this->assertRegExp("/^[\s\S]*incomplétude après accusé de réception[\s\S]*$/", $this->byCssSelector("#sousform-instruction .tab-tab")->text());
256     $this->assertRegExp("/^[\s\S]*majoration délai abf[\s\S]*$/", $this->byCssSelector("#sousform-instruction .tab-tab")->text());
257     // On clique sur le + pour ajouter une instruction
258     $this->byCssSelector("#sousform-instruction .actions-max-1 a")->click();
259 nmeucci 2867 // On choisi l'événement "dépôt de pièces complémentaires [retour]"
260     $this->select($this->byId("evenement"))->selectOptionByValue("91");
261 softime 2041 // On clique sur le bouton ajouter
262     $this->byXPath("//input[@value='Ajouter']")->click();
263     // On vérifie que l'instruction s'est bien ajouté
264     $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
265     // On clique sur le bouton retour
266     $this->byCssSelector("#sousform-instruction form a.retour")->click();
267     // On clique sur l'onglet DI
268     $this->byId("main")->click();
269     // on rafraichis la page
270     $this->refresh();
271     // on vérifie que l'état ne soit plus à incomplet
272     $this->assertTrue($this->byId('etat')->text() != "dossier incomplet");
273     // on vérifie que le délai est à 8
274     $this->assertEquals("8", $this->byId('delai')->text());
275     // on vérifie la date de complétude
276     $this->assertEquals(date("d/m/Y"), $this->byId('date_complet')->text());
277     // on vérifie la date de limite de l'instruction
278 softime 2771 $date_limite = $this->mois_date(date("Y-m-d"), 8, "+");
279     $date_limite = date("d/m/Y", strtotime($date_limite));
280 softime 2041 $this->assertEquals($date_limite, $this->byId('date_limite')->text());
281     // On se deconnecte
282     $this->logout();
283     }
284    
285 vpihour 3113 /**
286     * Test l'incomplétude sur un dossier d'instruction en ajoutant une date de
287     * retour AR dépassée
288     */
289     public function testIncompletudeDelaiDepasse() {
290    
291     /**
292     * Création d'un dossier d'instruction
293     */
294     // On se connecte à l'application
295     $this->login("guichet", "guichet");
296     // On clique sur le menu "Nouveau Dossier"
297     $this->byLinkText("Nouveau Dossier")->click();
298     // On vérifie qu'il n'y ait pas d'erreur
299     $this->verifynoerrors();
300     // On vérifie le nom de l'onglet
301     $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
302     // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
303     $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel("Permis de construire pour une maison individuelle et / ou ses annexes");
304     // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
305     $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
306     // On clique pour ajouter un pétitionnaire principale
307     $this->byId("add_petitionnaire_principal")->click();
308     // On remplit le champ
309     $this->byId("particulier_nom")->value("DURAND");
310     // On remplit le champ
311     $this->byId("particulier_prenom")->value("MICKAEL");
312     // On remplit le champ
313     $this->byId("particulier_date_naissance")->value("03/01/1956");
314     // On remplit le champ
315     $this->byId("particulier_commune_naissance")->value("LILLE");
316     // On remplit le champ
317     $this->byId("particulier_departement_naissance")->value("NORD");
318     // On remplit le champ
319     $this->byId("numero")->value("12");
320     // On remplit le champ
321     $this->byId("voie")->value("RUE DE LA LOI");
322     // On remplit le champ
323     $this->byId("complement")->value("APPT 12");
324     // On remplit le champ
325     $this->byId("localite")->value("MARSEILLE");
326     // On remplit le champ
327     $this->byId("code_postal")->value("13012");
328     // On remplit le champ
329     $this->byId("telephone_fixe")->value("0404040404");
330     // On clique sur ajouter
331     $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
332     // On vérifie qu'il n'y ait pas d'erreur
333     $this->verifynoerrors();
334     // On vérifie le message
335     $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-petitionnaire .message")->text());
336     // On clique sur le bouton retour
337     $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
338     // On vérifie que le text est présent
339     $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
340     // On clique sur ajouter
341     $this->byXPath("//input[@value='Ajouter']")->click();
342     // On vérifie qu'il n'y ait pas d'erreur
343     $this->verifynoerrors();
344     // On vérifie le message
345     $this->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°[\s\S]*$/",$this->byCssSelector(".message")->text());
346     // Récupération du numéro de dossier
347     preg_match('/(PC)[0-9 ]*(P0)/', $this->byCssSelector(".message .text")->text(), $matches);
348     $dossier_libelle = $matches[0];
349     $dossier = str_replace(' ', '', $dossier_libelle);
350     $dossier_dir = substr_replace($dossier, '.', -2, -3);
351     // On se déconnecte
352     $this->deconnect();
353    
354     /**
355     * Envoi d’un courrier de majoration de délai pour consultation ABF
356     */
357     // on se connecte à l'application
358     $this->login("instr", "instr");
359     // On clique sur le menu
360     $this->byLinkText("Recherche")->click();
361     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
362     $this->verifyNoErrors();
363     // On recherche le dossier crée
364     $this->byId("dossier")->value($dossier);
365     // On clique sur le bouton recherche
366     $this->byId("adv-search-submit")->click();
367     // On clique sur le résultat
368     $this->byLinkText($dossier_libelle)->click();
369     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
370     $this->verifyNoErrors();
371    
372     /**
373     * Envoi notification de pièces manquantes
374     */
375     // On clique sur l'onglet instruction
376     $this->byId("instruction")->click();
377     // On clique sur le + pour ajouter une instruction
378     $this->byCssSelector("#sousform-instruction .actions-max-1 a")->click();
379     // On choisi l'événement "Notification de pieces manquante [rejet]"
380     $this->select($this->byId("evenement"))->selectOptionByValue("2");
381     // On clique sur le bouton ajouter
382     $this->byXPath("//input[@value='Ajouter']")->click();
383     // On vérifie que l'instruction s'est bien ajouté
384     $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
385     // On clique sur le bouton retour
386     $this->byCssSelector("#sousform-instruction form a.retour")->click();
387     //On récupère le numéro de l'instruction créée
388     $this->byLinkText("Notification de pieces manquante")->click();
389     $idInstrIncompletude = $this->byCssSelector(".form-content #instruction")->text();
390     // Finalisation du document
391     $this->byCssSelector("#sousform-instruction .portlet-list li:nth-child(3) a")->click();
392     // On vérifie le message de validation
393     $this->assertEquals('La finalisation du document s\'est effectuée avec succès.', $this->byCssSelector("#sousform-instruction .message .text")->text());
394     // On clique sur l'onglet DI
395     $this->byId("main")->click();
396     // on rafraichis la page
397     $this->refresh();
398     // On vérifie que l'état du dossier
399     $this->assertEquals("dossier incomplet", $this->byId('etat')->text());
400     // On se deconnecte
401     $this->deconnect();
402    
403     /**
404     * Retour de l’AR incomplétude
405     */
406     // on se connecte en tant que suivi
407     $this->login("suivi", "suivi");
408     // On clique sur le menu
409     $this->byLinkText("Mise À Jour Des Dates")->click();
410     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
411     $this->verifyNoErrors();
412     // on choisit le type de mise à jour
413     $this->select($this->byId("type_mise_a_jour"))->selectOptionByValue("date_retour_rar");
414     // on choisit la date
415     $this->byId("date")->value(date("d/m/Y", strtotime('+10 years')));
416     // on rentre le code barre
417     $this->byId("code_barres")->value("1100000000".$idInstrIncompletude);
418     // on clique sur le bouton valider
419     $this->byName("validation")->click();
420     // on vérifie que la mise à jour est pour le bon évenement
421     $this->assertEquals("Notification de pieces manquante", $this->byId('evenement')->text());
422     // on clique encore sur le bouton valider
423     $this->byName("validation")->click();
424     // on vérifie que la mise à jour est faite
425     $this->assertRegExp('/.*Saisie enregistrée.*/', $this->byCssSelector("#formulaire .message .text")->text());
426     // On se deconnecte
427     $this->deconnect();
428    
429     /**
430     * Dépôt de pièces complémentaires
431     */
432     // on se connecte à l'application
433     $this->login("instr", "instr");
434     // On clique sur le menu
435     $this->byLinkText("Recherche")->click();
436     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
437     $this->verifyNoErrors();
438     // On recherche le dossier crée
439     $this->byId("dossier")->value($dossier);
440     // On clique sur le bouton recherche
441     $this->byId("adv-search-submit")->click();
442     // On clique sur le résultat
443     $this->byLinkText($dossier_libelle)->click();
444     // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
445     $this->verifyNoErrors();
446     //On vérifie que le dossier n'est pas dans un état incomplet notifié
447     $this->assertFalse($this->byId('date_limite_incompletude')->displayed());
448     $this->assertFalse($this->byId('delai_incompletude')->displayed());
449     $this->assertEquals("dossier incomplet", $this->byId('etat')->text());
450     // On se deconnecte
451     $this->logout();
452     }
453 softime 2041 }
454     ?>

Properties

Name Value
svn:keywords Id

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26