1 |
<?php |
2 |
/** |
3 |
* Fichier contenant la classe test pour l'incomplétude |
4 |
* |
5 |
* @package openfoncier |
6 |
* @version SVN : $Id$ |
7 |
*/ |
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 |
* 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#link_demande_recepisse")->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 |
* 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 |
// 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 |
$this->byLinkText($dossier_libelle)->click(); |
130 |
// 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 |
// On choisi l'événement ABF recours contre avis [majoration] |
137 |
$this->select($this->byId("evenement"))->selectOptionByValue("21"); |
138 |
// 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 |
//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 |
// Finalisation du document |
148 |
$this->byCssSelector("#sousform-instruction .portlet-list a#action-sousform-instruction-finalisation")->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 |
// 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 |
// On choisi l'événement "Notification de pieces manquante [rejet]" |
166 |
$this->select($this->byId("evenement"))->selectOptionByValue("2"); |
167 |
// 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 |
//On récupère le numéro de l'instruction créée |
174 |
$this->byLinkText("Notification de pieces manquante")->click(); |
175 |
$idInstrIncompletude = $this->byCssSelector(".form-content #instruction")->text(); |
176 |
// Finalisation du document |
177 |
$this->byCssSelector("#sousform-instruction .portlet-list a#action-sousform-instruction-finalisation")->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 |
// 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 |
$this->byId("code_barres")->value("11".str_pad($idInstrIncompletude, 10, '0', STR_PAD_LEFT)); |
204 |
// 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 |
$this->byId("code_barres")->value("11".str_pad($idInstrAbf, 10, '0', STR_PAD_LEFT)); |
224 |
// 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 |
// 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 |
$this->byLinkText($dossier_libelle)->click(); |
250 |
// 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 |
// On choisi l'événement "dépôt de pièces complémentaires [retour]" |
260 |
$this->select($this->byId("evenement"))->selectOptionByValue("91"); |
261 |
// 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 |
$date_limite = $this->mois_date(date("Y-m-d"), 8, "+"); |
279 |
$date_limite = date("d/m/Y", strtotime($date_limite)); |
280 |
$this->assertEquals($date_limite, $this->byId('date_limite')->text()); |
281 |
// On se deconnecte |
282 |
$this->logout(); |
283 |
} |
284 |
|
285 |
/** |
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 a#action-sousform-instruction-finalisation")->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('+1 month 2 days'))); |
416 |
// on rentre le code barre |
417 |
$this->byId("code_barres")->value("11".str_pad($idInstrIncompletude, 10, '0', STR_PAD_LEFT)); |
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 |
|
454 |
/** |
455 |
* Test des dates affichées en fonction de l'état du dossier |
456 |
*/ |
457 |
public function testVerificationDateLimiteAffichee() { |
458 |
|
459 |
/** |
460 |
* Création d'un dossier d'instruction |
461 |
*/ |
462 |
// On se connecte à l'application |
463 |
$this->login("guichet", "guichet"); |
464 |
// On clique sur le menu "Nouveau Dossier" |
465 |
$this->byLinkText("Nouveau Dossier")->click(); |
466 |
// On vérifie qu'il n'y ait pas d'erreur |
467 |
$this->verifynoerrors(); |
468 |
// On vérifie le nom de l'onglet |
469 |
$this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text()); |
470 |
// On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes" |
471 |
$this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel("Permis de construire pour une maison individuelle et / ou ses annexes"); |
472 |
// On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes" |
473 |
$this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial"); |
474 |
// On clique pour ajouter un pétitionnaire principale |
475 |
$this->byId("add_petitionnaire_principal")->click(); |
476 |
// On remplit le champ |
477 |
$this->byId("particulier_nom")->value("DURAND"); |
478 |
// On remplit le champ |
479 |
$this->byId("particulier_prenom")->value("MICKAEL"); |
480 |
// On remplit le champ |
481 |
$this->byId("particulier_date_naissance")->value("03/01/1956"); |
482 |
// On remplit le champ |
483 |
$this->byId("particulier_commune_naissance")->value("LILLE"); |
484 |
// On remplit le champ |
485 |
$this->byId("particulier_departement_naissance")->value("NORD"); |
486 |
// On remplit le champ |
487 |
$this->byId("numero")->value("12"); |
488 |
// On remplit le champ |
489 |
$this->byId("voie")->value("RUE DE LA LOI"); |
490 |
// On remplit le champ |
491 |
$this->byId("complement")->value("APPT 12"); |
492 |
// On remplit le champ |
493 |
$this->byId("localite")->value("MARSEILLE"); |
494 |
// On remplit le champ |
495 |
$this->byId("code_postal")->value("13012"); |
496 |
// On remplit le champ |
497 |
$this->byId("telephone_fixe")->value("0404040404"); |
498 |
// On clique sur ajouter |
499 |
$this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1); |
500 |
// On vérifie qu'il n'y ait pas d'erreur |
501 |
$this->verifynoerrors(); |
502 |
// On vérifie le message |
503 |
$this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-petitionnaire .message")->text()); |
504 |
// On clique sur le bouton retour |
505 |
$this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1); |
506 |
// On vérifie que le text est présent |
507 |
$this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text()); |
508 |
// On clique sur ajouter |
509 |
$this->byXPath("//input[@value='Ajouter']")->click(); |
510 |
// On vérifie qu'il n'y ait pas d'erreur |
511 |
$this->verifynoerrors(); |
512 |
// On vérifie le message |
513 |
$this->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°[\s\S]*$/",$this->byCssSelector(".message")->text()); |
514 |
// Récupération du numéro de dossier |
515 |
preg_match('/(PC)[0-9 ]*(P0)/', $this->byCssSelector(".message .text")->text(), $matches); |
516 |
$dossier_libelle = $matches[0]; |
517 |
$dossier = str_replace(' ', '', $dossier_libelle); |
518 |
$dossier_dir = substr_replace($dossier, '.', -2, -3); |
519 |
$dossier_autorisation_libelle = substr($dossier_libelle, 0, -2); |
520 |
$dossier_autorisation = substr($dossier, 0, -2); |
521 |
// On se déconnecte |
522 |
$this->deconnect(); |
523 |
|
524 |
/** |
525 |
* On vérifie les dates affichées si ce n'est pas une incomplétude |
526 |
*/ |
527 |
// on se connecte à l'application |
528 |
$this->login("instr", "instr"); |
529 |
// On clique sur le menu |
530 |
$this->byLinkText("Autorisation")->click(); |
531 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
532 |
$this->verifyNoErrors(); |
533 |
// On clique sur le menu |
534 |
sleep(2); |
535 |
$this->byLinkText("Dossiers D'autorisation")->click(); |
536 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
537 |
sleep(2); |
538 |
$this->verifyNoErrors(); |
539 |
// On recherche le dossier crée |
540 |
$this->byId("dossier")->clear(); |
541 |
$this->byId("dossier")->value($dossier_autorisation); |
542 |
$this->byId("adv-search-submit")->click(); |
543 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
544 |
$this->verifyNoErrors(); |
545 |
// On clique sur le résultat |
546 |
$this->byLinkText($dossier_autorisation_libelle)->click(); |
547 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
548 |
$this->verifyNoErrors(); |
549 |
//On clique sur l'onglet Dossiers D'instruction |
550 |
// On clique sur l'onglet instruction |
551 |
$this->byId("dossier_instruction")->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 la date affiché |
555 |
$this->assertEquals(date("d/m/Y", strtotime($this->mois_date(date('Y-m-d'),2))), $this->byCssSelector("#sousform-dossier_instruction tbody .col-7 a")->text()); |
556 |
|
557 |
// On clique sur le menu |
558 |
$this->byLinkText("Instruction")->click(); |
559 |
// On clique sur le menu |
560 |
$this->byLinkText("Recherche")->click(); |
561 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
562 |
$this->verifyNoErrors(); |
563 |
// On recherche le dossier crée |
564 |
$this->byId("dossier")->value($dossier); |
565 |
// On clique sur le bouton recherche |
566 |
$this->byId("adv-search-submit")->click(); |
567 |
/** |
568 |
* Date du tableau des DI |
569 |
*/ |
570 |
//On vérifie la date affichée |
571 |
$this->assertEquals(date("d/m/Y", strtotime($this->mois_date(date('Y-m-d'),2))), $this->byCssSelector("#formulaire tbody .col-7 a")->text()); |
572 |
// On clique sur le résultat |
573 |
$this->byLinkText($dossier_libelle)->click(); |
574 |
/** |
575 |
* Date dans l'affichage des DI |
576 |
*/ |
577 |
// On vérifie que la date affichée est toujours la date limite initiale |
578 |
$this->assertFalse($this->byId('date_limite_incompletude')->displayed()); |
579 |
// On vérifie que la date affichée est toujours la date limite initiale |
580 |
$this->assertTrue($this->byId('date_limite')->displayed()); |
581 |
/** |
582 |
* Date dans la visualisation de la demande d'avis |
583 |
*/ |
584 |
// On clique sur l'onglet instruction |
585 |
$this->byId("consultation")->click(); |
586 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
587 |
$this->verifyNoErrors(); |
588 |
// On clique sur le lien "Ajouter" dans le tableau |
589 |
$this->byId("action-soustab-consultation-corner-ajouter")->click(); |
590 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
591 |
$this->verifyNoErrors(); |
592 |
// On sélectionne le service "59.07 Service de l' Espace Public" |
593 |
$this->select($this->byId("service"))->selectOptionByValue("7"); |
594 |
// On clique sur le bouton "Ajouter" du formulaire |
595 |
$this->byXPath("//input[@value='Ajouter']")->click();sleep(1); |
596 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
597 |
$this->verifyNoErrors(); |
598 |
// On se deconnecte |
599 |
$this->deconnect(); |
600 |
// on se connecte à l'application |
601 |
$this->connect("consu", "consu"); |
602 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
603 |
$this->verifyNoErrors(); |
604 |
// On recherche le dossier crée |
605 |
$this->byCssSelector(".adv-search-widget .champFormulaire")->value($dossier); |
606 |
// On clique sur le bouton recherche |
607 |
$this->byId("adv-search-submit")->click(); |
608 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
609 |
$this->verifyNoErrors(); |
610 |
// On clique sur le résultat |
611 |
$this->byLinkText($dossier_libelle)->click(); |
612 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
613 |
$this->verifyNoErrors(); |
614 |
// On vérifie la date |
615 |
$this->assertEquals(date("d/m/Y", strtotime($this->mois_date(date('Y-m-d'),2))), $this->byId('dossier_date_limite')->text()); |
616 |
// On se deconnecte |
617 |
$this->deconnect(); |
618 |
|
619 |
/** |
620 |
* Envoi notification de pièces manquantes |
621 |
*/ |
622 |
// on se connecte à l'application |
623 |
$this->login("instr", "instr"); |
624 |
// On clique sur le menu |
625 |
$this->byLinkText("Recherche")->click(); |
626 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
627 |
$this->verifyNoErrors(); |
628 |
// On recherche le dossier crée |
629 |
$this->byId("dossier")->value($dossier); |
630 |
// On clique sur le bouton recherche |
631 |
$this->byId("adv-search-submit")->click(); |
632 |
// On clique sur le résultat |
633 |
$this->byLinkText($dossier_libelle)->click(); |
634 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
635 |
$this->verifyNoErrors(); |
636 |
// On clique sur l'onglet instruction |
637 |
$this->byId("instruction")->click(); |
638 |
// On clique sur le + pour ajouter une instruction |
639 |
$this->byCssSelector("#sousform-instruction .actions-max-1 a")->click(); |
640 |
// On choisi l'événement "Notification de pieces manquante [rejet]" |
641 |
$this->select($this->byId("evenement"))->selectOptionByValue("2"); |
642 |
// On clique sur le bouton ajouter |
643 |
$this->byXPath("//input[@value='Ajouter']")->click(); |
644 |
// On vérifie que l'instruction s'est bien ajouté |
645 |
$this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text()); |
646 |
// On clique sur le bouton retour |
647 |
$this->byCssSelector("#sousform-instruction form a.retour")->click(); |
648 |
//On récupère le numéro de l'instruction créée |
649 |
$this->byLinkText("Notification de pieces manquante")->click(); |
650 |
$idInstrIncompletude = $this->byCssSelector(".form-content #instruction")->text(); |
651 |
// Finalisation du document |
652 |
$this->byCssSelector("#sousform-instruction .portlet-list a#action-sousform-instruction-finalisation")->click(); |
653 |
// On vérifie le message de validation |
654 |
$this->assertEquals('La finalisation du document s\'est effectuée avec succès.', $this->byCssSelector("#sousform-instruction .message .text")->text()); |
655 |
// On clique sur l'onglet DI |
656 |
$this->byId("main")->click(); |
657 |
// on rafraichis la page |
658 |
$this->refresh(); |
659 |
// On vérifie que l'état du dossier |
660 |
$this->assertEquals("dossier incomplet", $this->byId('etat')->text()); |
661 |
// On se deconnecte |
662 |
$this->deconnect(); |
663 |
|
664 |
/** |
665 |
* Retour de l’AR incomplétude |
666 |
*/ |
667 |
// on se connecte en tant que suivi |
668 |
$this->login("suivi", "suivi"); |
669 |
// On clique sur le menu |
670 |
$this->byLinkText("Mise À Jour Des Dates")->click(); |
671 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
672 |
$this->verifyNoErrors(); |
673 |
// on choisit le type de mise à jour |
674 |
$this->select($this->byId("type_mise_a_jour"))->selectOptionByValue("date_retour_rar"); |
675 |
// on choisit la date |
676 |
$this->byId("date")->value(date("d/m/Y", strtotime($this->mois_date(date('Y-m-d'),1)))); |
677 |
// on rentre le code barre |
678 |
$this->byId("code_barres")->value("11".str_pad($idInstrIncompletude, 10, '0', STR_PAD_LEFT)); |
679 |
// on clique sur le bouton valider |
680 |
$this->byName("validation")->click(); |
681 |
// on vérifie que la mise à jour est pour le bon évenement |
682 |
$this->assertEquals("Notification de pieces manquante", $this->byId('evenement')->text()); |
683 |
// on clique encore sur le bouton valider |
684 |
$this->byName("validation")->click(); |
685 |
// on vérifie que la mise à jour est faite |
686 |
$this->assertRegExp('/.*Saisie enregistrée.*/', $this->byCssSelector("#formulaire .message .text")->text()); |
687 |
// On se deconnecte |
688 |
$this->deconnect(); |
689 |
|
690 |
/** |
691 |
* On vérifie les dates affichées si c'est une incomplétude |
692 |
*/ |
693 |
// on se connecte à l'application |
694 |
$this->login("instr", "instr"); |
695 |
// On clique sur le lien "Autorisation" dans le menu |
696 |
$this->byCssSelector(".autorisation-20")->click(); |
697 |
sleep(2); |
698 |
// On clique sur le lien "Dossiers D'autorisation" dans le menu |
699 |
$this->byCssSelector(".dossier_autorisation-16")->click(); |
700 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
701 |
sleep(2); |
702 |
$this->verifyNoErrors(); |
703 |
// On recherche le dossier crée |
704 |
$this->byId("dossier")->clear(); |
705 |
$this->byId("dossier")->value($dossier_autorisation); |
706 |
$this->byId("adv-search-submit")->click(); |
707 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
708 |
$this->verifyNoErrors(); |
709 |
// On clique sur le résultat |
710 |
$this->byLinkText($dossier_autorisation_libelle)->click(); |
711 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
712 |
$this->verifyNoErrors(); |
713 |
// On clique sur l'onglet instruction |
714 |
$this->byId("dossier_instruction")->click(); |
715 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
716 |
$this->verifyNoErrors(); |
717 |
//On vérifie la date affiché |
718 |
$this->assertEquals(date("d/m/Y", strtotime($this->mois_date($this->mois_date(date('Y-m-d'),1),3))), $this->byCssSelector("#sousform-dossier_instruction tbody .col-7 a")->text()); |
719 |
|
720 |
// On clique sur le menu |
721 |
$this->byLinkText("Instruction")->click(); |
722 |
// On clique sur le menu |
723 |
$this->byLinkText("Recherche")->click(); |
724 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
725 |
$this->verifyNoErrors(); |
726 |
// On recherche le dossier crée |
727 |
$this->byId("dossier")->value($dossier); |
728 |
// On clique sur le bouton recherche |
729 |
$this->byId("adv-search-submit")->click(); |
730 |
/** |
731 |
* Date du tableau des DI |
732 |
*/ |
733 |
//On vérifie la date affichée |
734 |
$this->assertEquals(date("d/m/Y", strtotime($this->mois_date($this->mois_date(date('Y-m-d'),1),3))), $this->byCssSelector("#formulaire tbody .col-7 a")->text()); |
735 |
// On clique sur le résultat |
736 |
$this->byLinkText($dossier_libelle)->click(); |
737 |
/** |
738 |
* Date dans l'affichage des DI |
739 |
*/ |
740 |
// On vérifie que la date affichée est toujours la date limite initiale |
741 |
$this->assertTrue($this->byId('date_limite_incompletude')->displayed()); |
742 |
// On vérifie que la date affichée est toujours la date limite initiale |
743 |
$this->assertFalse($this->byId('date_limite')->displayed()); |
744 |
// On se deconnecte |
745 |
$this->deconnect(); |
746 |
|
747 |
/** |
748 |
* Date dans la visualisation de la demande d'avis |
749 |
*/ |
750 |
// on se connecte à l'application |
751 |
$this->connect("consu", "consu"); |
752 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
753 |
$this->verifyNoErrors(); |
754 |
// On recherche le dossier crée |
755 |
$this->byCssSelector(".adv-search-widget .champFormulaire")->value($dossier); |
756 |
// On clique sur le bouton recherche |
757 |
$this->byId("adv-search-submit")->click(); |
758 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
759 |
$this->verifyNoErrors(); |
760 |
// On clique sur le résultat |
761 |
$this->byLinkText($dossier_libelle)->click(); |
762 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
763 |
$this->verifyNoErrors(); |
764 |
// On vérifie la date |
765 |
$this->assertEquals(date("d/m/Y", strtotime($this->mois_date($this->mois_date(date('Y-m-d'),1),3))), $this->byId('dossier_date_limite')->text()); |
766 |
|
767 |
// On se deconnecte |
768 |
$this->logout(); |
769 |
} |
770 |
} |
771 |
?> |