1 |
<?php |
2 |
/** |
3 |
* |
4 |
* |
5 |
* @package openfoncier |
6 |
* @version SVN : $Id$ |
7 |
*/ |
8 |
|
9 |
// |
10 |
require_once "base.php"; |
11 |
|
12 |
/** |
13 |
* |
14 |
*/ |
15 |
class GuichetUnique extends Base2TestCase { |
16 |
|
17 |
/** |
18 |
* Test l'ajout d'une demande |
19 |
*/ |
20 |
public function testAjoutDemandeInitial() { |
21 |
|
22 |
// On se connecte à l'application |
23 |
$this->login("guichet", "guichet"); |
24 |
// On clique sur le menu "Nouveau Dossier" |
25 |
$this->byLinkText("Nouveau Dossier")->click(); |
26 |
// On vérifie qu'il n'y ait pas d'erreur |
27 |
$this->verifynoerrors(); |
28 |
// On vérifie le nom de l'onglet |
29 |
$this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text()); |
30 |
// On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes" |
31 |
$this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel("Permis de construire pour une maison individuelle et / ou ses annexes"); |
32 |
// On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes" |
33 |
$this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial"); |
34 |
// On clique pour ajouter un pétitionnaire principale |
35 |
$this->byId("add_petitionnaire_principal")->click(); |
36 |
// On remplit le champ |
37 |
$this->byId("particulier_nom")->value("DURAND"); |
38 |
// On remplit le champ |
39 |
$this->byId("particulier_prenom")->value("MICKAEL"); |
40 |
// On remplit le champ |
41 |
$this->byId("particulier_date_naissance")->value("03/01/1956"); |
42 |
// On remplit le champ |
43 |
$this->byId("particulier_commune_naissance")->value("LILLE"); |
44 |
// On remplit le champ |
45 |
$this->byId("particulier_departement_naissance")->value("NORD"); |
46 |
// On remplit le champ |
47 |
$this->byId("numero")->value("12"); |
48 |
// On remplit le champ |
49 |
$this->byId("voie")->value("RUE DE LA LOI"); |
50 |
// On remplit le champ |
51 |
$this->byId("complement")->value("APPT 12"); |
52 |
// On remplit le champ |
53 |
$this->byId("localite")->value("MARSEILLE"); |
54 |
// On remplit le champ |
55 |
$this->byId("code_postal")->value("13012"); |
56 |
// On remplit le champ |
57 |
$this->byId("telephone_fixe")->value("0404040404"); |
58 |
// On clique sur ajouter |
59 |
$this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1); |
60 |
// On vérifie qu'il n'y ait pas d'erreur |
61 |
$this->verifynoerrors(); |
62 |
// On vérifie le message |
63 |
$this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("BODY")->text()); |
64 |
// On clique sur le bouton retour |
65 |
$this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1); |
66 |
// On vérifie que le text est présent |
67 |
$this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->byCssSelector("BODY")->text()); |
68 |
// On clique sur ajouter |
69 |
$this->byXPath("//input[@value='Ajouter']")->click(); |
70 |
// On vérifie qu'il n'y ait pas d'erreur |
71 |
$this->verifynoerrors(); |
72 |
// On vérifie le message |
73 |
$this->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°PC 013055 13 00001[\s\S]*$/",$this->byCssSelector("BODY")->text()); |
74 |
// On clique |
75 |
$this->byCssSelector("a.lien")->click();sleep(5); |
76 |
// Liste les fenêtres |
77 |
$windows = $this->windowHandles(); |
78 |
// Change la fenêtre |
79 |
$this->window($windows[1]); |
80 |
// On vérifie qu'il n'y ait pas d'erreur |
81 |
$this->verifynoerrors(); |
82 |
// On vérifie que le text est présent |
83 |
$this->assertRegExp("/^[\s\S]*RECEPISSE DE DEPOT[\s\S]*$/",$this->source()); |
84 |
// On ferme la fenêtre |
85 |
$this->closeWindow(); |
86 |
// On change le focus de la fenêtre |
87 |
$this->window($windows[0]); |
88 |
// On clique sur le bouton retour |
89 |
$this->byLinkText("Retour")->click(); |
90 |
// On vérifie qu'il n'y ait pas d'erreur |
91 |
$this->verifynoerrors(); |
92 |
// On vérifie que le répertoire s'est crée |
93 |
$this->assertTrue(file_exists("../trs/numerisation/Todo/PC0130551300001.P0")); |
94 |
// On se déconnecte |
95 |
$this->logout(); |
96 |
} |
97 |
|
98 |
/** |
99 |
* Test l'ajout d'une demande de modification |
100 |
*/ |
101 |
public function testAjoutDemandeModification() { |
102 |
|
103 |
/// On se connecte à l'application en tant qu'instructeur |
104 |
// pour ajouter une instruction arrêté sur le dossier crée |
105 |
$this->login("instr", "instr"); |
106 |
// On clique sur le menu |
107 |
$this->byLinkText("Recherche")->click(); |
108 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
109 |
$this->verifyNoErrors(); |
110 |
// On clique sur le dossier |
111 |
$this->byXPath("//div[@id='tab-dossier_instruction']/table/tbody/tr[8]/td/a/span")->click(); |
112 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
113 |
$this->verifyNoErrors(); |
114 |
// On clique sur l'onglet instruction |
115 |
$this->byId("instruction")->click(); |
116 |
// On clique sur le + pour ajouter une instruction |
117 |
$this->byCssSelector("#sousform-instruction .actions-max-1 a")->click(); |
118 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
119 |
$this->verifyNoErrors(); |
120 |
// On choisi l'événement |
121 |
$this->select($this->byId("evenement"))->selectOptionByLabel("accepter un dossier sans réserve [acceptation]"); |
122 |
// On clique sur le bouton ajouter |
123 |
$this->byXPath("//input[@value='Ajouter']")->click(); |
124 |
// On vérifie que l'instruction s'est bien ajouté |
125 |
$this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text()); |
126 |
// On clique sur le bouton retour |
127 |
$this->byCssSelector("#sousform-instruction form a.retour")->click(); |
128 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
129 |
$this->verifyNoErrors(); |
130 |
// On clique sur l'onglet DI |
131 |
$this->byId("main")->click(); |
132 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
133 |
$this->verifyNoErrors(); |
134 |
// on rafraichis la page |
135 |
$this->refresh(); |
136 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
137 |
$this->verifyNoErrors(); |
138 |
// On vérifie l'état du dossier |
139 |
$this->assertEquals("dossier accepter", $this->byId('etat')->text()); |
140 |
// On se déconnecte de l'instructeur |
141 |
$this->deconnect(); |
142 |
// On se connecte en tant que guichet unique |
143 |
$this->login("guichet", "guichet"); |
144 |
// On clique sur le menu "Nouveau Dossier" |
145 |
$this->byLinkText("Dossier Existant")->click(); |
146 |
// On vérifie qu'il n'y ait pas d'erreur |
147 |
$this->verifynoerrors(); |
148 |
// On vérifie le nom de l'onglet |
149 |
$this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text()); |
150 |
// On clique pour ajouter une demande au dossier existant |
151 |
$this->byXPath("//div[@id='tab-demande_dossier_existant']/table/tbody/tr[8]/td/a/span")->click(); |
152 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
153 |
$this->verifyNoErrors(); |
154 |
// Vérifie le fil d'Ariane |
155 |
$this->assertEquals("Guichet Unique > Nouvelle Demande > Dossier Existant > PC 013055 13 00001P0", $this->byXPath("//div[3]/div/h2")->text()); |
156 |
// On choisis le type de demande |
157 |
$this->select($this->byId("demande_type"))->selectOptionByLabel("Demande de modification"); |
158 |
// On clique sur ajouter |
159 |
$this->byXPath("//input[@value='Ajouter']")->click(); |
160 |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
161 |
$this->verifyNoErrors(); |
162 |
// On vérifie le message |
163 |
$this->assertRegExp("/^[\s\S]*Création du dossier d'instruction n°PC 013055 13 00001M1[\s\S]*$/",$this->byCssSelector("BODY")->text()); |
164 |
// On vérifie que le répertoire s'est crée |
165 |
$this->assertTrue(file_exists("../trs/numerisation/Todo/PC0130551300001.M1")); |
166 |
// On se déconnecte |
167 |
$this->logout(); |
168 |
|
169 |
} |
170 |
|
171 |
/** |
172 |
* Tests l'affichage réglementaire |
173 |
*/ |
174 |
public function testAffichageReglementaire() { |
175 |
|
176 |
// On se connecte à l'application |
177 |
$this->login("guichet", "guichet"); |
178 |
// On clique sur le menu "Attestation" |
179 |
$this->byLinkText("Attestation")->click(); |
180 |
// On vérifie qu'il n'y ait pas d'erreur |
181 |
$this->verifynoerrors(); |
182 |
// On vérifie le nom de l'onglet |
183 |
$this->assertEquals("Imprimer L'attestation D'affichage Réglementaire", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text()); |
184 |
// On écrit "PC0130551200002P0" dans le champ dossier |
185 |
$this->byId("dossier")->value("PC0130551200002P0"); |
186 |
// On clique sur "Valider" |
187 |
$this->byXPath("//input[@value='Valider']")->click(); |
188 |
// On vérifie qu'il n'y ait pas d'erreur |
189 |
$this->verifynoerrors(); |
190 |
// On vérifie que text est présent |
191 |
$this->assertRegExp("/^[\s\S]*Ce dossier n'a jamais été affiché.[\s\S]*$/",$this->byCssSelector("BODY")->text()); |
192 |
// On clique sur le menu "Registre" |
193 |
$this->byLinkText("Registre")->click(); |
194 |
// On vérifie qu'il n'y ait pas d'erreur |
195 |
$this->verifynoerrors(); |
196 |
// On vérifie le nom de l'onglet |
197 |
$this->assertEquals("Imprimer Le Registre D'affichage Réglementaire", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text()); |
198 |
// On clique sur "Valider" |
199 |
$this->byXPath("//input[@value='Valider']")->click(); |
200 |
// On clique sur "Oui" dans la fenêtre js qui apparaît |
201 |
$this->acceptAlert();sleep(5); |
202 |
// Liste des fenêtres ouvertes |
203 |
$windows = $this->windowHandles(); |
204 |
// On change le focus de la fenêtre |
205 |
$this->window($windows[1]); |
206 |
// On vérifie qu'il n'y ait pas d'erreur |
207 |
$this->verifynoerrors(); |
208 |
// On vérifie que text est présent |
209 |
$this->assertRegExp('/^[\s\S]*Registre des dossiers en cours[\s\S]*$/',$this->source()); |
210 |
// On ferme la fenêtre |
211 |
$this->closeWindow(); |
212 |
// On change le focus de la fenêtre |
213 |
$this->window($windows[0]); |
214 |
// On vérifie qu'il n'y ait pas d'erreur |
215 |
$this->verifynoerrors(); |
216 |
// On vérifie que text est présent |
217 |
$this->assertRegExp('/^[\s\S]*Traitement terminé. Le registre a été téléchargé.[\s\S]*$/',$this->byCssSelector("BODY")->text()); |
218 |
// On clique sur le menu "Attestation" |
219 |
$this->byLinkText("Attestation")->click(); |
220 |
// On vérifie qu'il n'y ait pas d'erreur |
221 |
$this->verifynoerrors(); |
222 |
// On vérifie le nom de l'onglet |
223 |
$this->assertEquals("Imprimer L'attestation D'affichage Réglementaire", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text()); |
224 |
// On clique sur "Valider" |
225 |
$this->byXPath("//input[@value='Valider']")->click(); |
226 |
// On vérifie qu'il n'y ait pas d'erreur |
227 |
$this->verifynoerrors(); |
228 |
// On vérifie que text est présent |
229 |
$this->assertRegExp("/^[\s\S]*Veuiller saisir un N° de dossier.[\s\S]*$/",$this->byCssSelector("BODY")->text()); |
230 |
// On écrit "123" dans le champ dossier |
231 |
$this->byId("dossier")->value("123"); |
232 |
// On clique sur "Valider" |
233 |
$this->byXPath("//input[@value='Valider']")->click(); |
234 |
// On vérifie qu'il n'y ait pas d'erreur |
235 |
$this->verifynoerrors(); |
236 |
// On vérifie que text est présent |
237 |
$this->assertRegExp("/^[\s\S]*Ce dossier n'existe pas.[\s\S]*$/",$this->byCssSelector("BODY")->text()); |
238 |
// On écrit "PC0130551200002P0" dans le champ dossier |
239 |
$this->byId("dossier")->value("PC0130551200002P0"); |
240 |
// On clique sur "Valider" |
241 |
$this->byXPath("//input[@value='Valider']")->click(); |
242 |
// On vérifie qu'il n'y ait pas d'erreur |
243 |
$this->verifynoerrors(); |
244 |
// On vérifie que le text est présent |
245 |
$this->assertRegExp("/^[\s\S]*Cliquez sur le lien ci-dessous pour télécharger votre attestation d'affichage[\s\S]*$/",$this->byCssSelector("BODY")->text()); |
246 |
// On clique sur "Attestation d'affichage" |
247 |
$this->byLinkText("Attestation d'affichage")->click();sleep(5); |
248 |
// Liste les fenêtres |
249 |
$windows = $this->windowHandles(); |
250 |
// Change la fenêtre |
251 |
$this->window($windows[1]); |
252 |
// On vérifie qu'il n'y ait pas d'erreur |
253 |
$this->verifynoerrors(); |
254 |
// On vérifie que le text est présent |
255 |
$this->assertRegExp("/^[\s\S]*ATTESTATION D'AFFICHAGE REGLEMENTAIRE[\s\S]*$/",$this->source()); |
256 |
// On ferme la fenêtre |
257 |
$this->closeWindow(); |
258 |
// On change le focus de la fenêtre |
259 |
$this->window($windows[0]); |
260 |
// On se deconnecte |
261 |
$this->logout(); |
262 |
} |
263 |
|
264 |
/** |
265 |
* Test le Récépissé |
266 |
*/ |
267 |
public function testRecepisse() { |
268 |
|
269 |
// On se connecte à l'application |
270 |
$this->login("guichet", "guichet"); |
271 |
// On clique sur le menu "Récépissé" |
272 |
$this->byLinkText("Récépissé")->click(); |
273 |
// On vérifie qu'il n'y ait pas d'erreur |
274 |
$this->verifynoerrors(); |
275 |
// On vérifie le nom de l'onglet |
276 |
$this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text()); |
277 |
// On clique sur "AT0130551200001P0" |
278 |
$this->byLinkText("AT 013055 12 00001P0")->click(); |
279 |
// On vérifie qu'il n'y ait pas d'erreur |
280 |
$this->verifynoerrors(); |
281 |
// Vérifie le fil d'Ariane |
282 |
$this->assertEquals("Guichet Unique > Nouvelle Demande > Récépissé > AT 013055 12 00001P0", $this->byXPath("//div[3]/div/h2")->text()); |
283 |
// On vérifie que le text est présent |
284 |
$this->assertRegExp("/^[\s\S]*Demande d'autorisation de construire, d'aménager ou de modifier un ERP[\s\S]*$/",$this->byCssSelector("BODY")->text()); |
285 |
// Le nom du pétitionnaire doit apparaître |
286 |
$this->assertRegExp("/^[\s\S]*BERNARD LILIANE[\s\S]*$/",$this->byCssSelector("BODY")->text()); |
287 |
// On clique sur le lien |
288 |
$this->byLinkText("Éditer le récépissé PDF")->click();sleep(5); |
289 |
// Liste les fenêtres |
290 |
$windows = $this->windowHandles(); |
291 |
// Change la fenêtre |
292 |
$this->window($windows[1]); |
293 |
// On vérifie qu'il n'y ait pas d'erreur |
294 |
$this->verifynoerrors(); |
295 |
// On vérifie que le text est présent |
296 |
$this->assertRegExp("/^[\s\S]*RECEPISSE DE DEPOT[\s\S]*$/",$this->source()); |
297 |
// On ferme la fenêtre |
298 |
$this->closeWindow(); |
299 |
// On change le focus de la fenêtre |
300 |
$this->window($windows[0]); |
301 |
// On clique sur "Retour" |
302 |
$this->byLinkText("Retour")->click(); |
303 |
// On vérifie qu'il n'y ait pas d'erreur |
304 |
$this->verifynoerrors(); |
305 |
// On vérifie le nom de l'onglet |
306 |
$this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text()); |
307 |
// On se deconnecte |
308 |
$this->logout(); |
309 |
} |
310 |
|
311 |
/** |
312 |
* Test les pétitionnaires fréquents |
313 |
*/ |
314 |
public function testPetitionnaireFrequent() { |
315 |
|
316 |
// On se connecte à l'application |
317 |
$this->login("guichet", "guichet"); |
318 |
// On clique sur le menu "Nouveau Dossier" |
319 |
$this->byLinkText("Nouveau Dossier")->click(); |
320 |
// On vérifie qu'il n'y ait pas d'erreur |
321 |
$this->verifynoerrors(); |
322 |
// On vérifie le nom de l'onglet |
323 |
$this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text()); |
324 |
// On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes" |
325 |
$this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel("Permis de construire pour une maison individuelle et / ou ses annexes"); |
326 |
// On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes" |
327 |
$this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial"); |
328 |
// On clique pour ajouter un pétitionnaire principale |
329 |
$this->byId("add_petitionnaire_principal")->click(); |
330 |
// On remplit le champ |
331 |
$this->byId("particulier_nom")->value("DURAND"); |
332 |
// On remplit le champ |
333 |
$this->byId("particulier_prenom")->value("MICKAEL"); |
334 |
// On remplit le champ |
335 |
$this->byId("particulier_date_naissance")->value("03/01/1956"); |
336 |
// On remplit le champ |
337 |
$this->byId("particulier_commune_naissance")->value("LILLE"); |
338 |
// On remplit le champ |
339 |
$this->byId("particulier_departement_naissance")->value("NORD"); |
340 |
// On remplit le champ |
341 |
$this->byId("numero")->value("12"); |
342 |
// On remplit le champ |
343 |
$this->byId("voie")->value("RUE DE LA LOI"); |
344 |
// On remplit le champ |
345 |
$this->byId("complement")->value("APPT 12"); |
346 |
// On remplit le champ |
347 |
$this->byId("localite")->value("MARSEILLE"); |
348 |
// On remplit le champ |
349 |
$this->byId("code_postal")->value("13012"); |
350 |
// On remplit le champ |
351 |
$this->byId("telephone_fixe")->value("0404040404"); |
352 |
// On sélectionne pétitionnaire fréquent |
353 |
$this->byId("frequent")->click(); |
354 |
// On clique sur ajouter |
355 |
$this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1); |
356 |
// On vérifie qu'il n'y ait pas d'erreur |
357 |
$this->verifynoerrors(); |
358 |
// On vérifie le message |
359 |
$this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("BODY")->text()); |
360 |
// On clique sur le bouton retour |
361 |
$this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1); |
362 |
// On vérifie que le text est présent |
363 |
$this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->byCssSelector("BODY")->text()); |
364 |
// On clique sur ajouter |
365 |
$this->byXPath("//input[@value='Ajouter']")->click(); |
366 |
// On vérifie qu'il n'y ait pas d'erreur |
367 |
$this->verifynoerrors(); |
368 |
// On vérifie le message |
369 |
$this->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°PC 013055 13 00002[\s\S]*$/",$this->byCssSelector("BODY")->text()); |
370 |
// On clique |
371 |
$this->byCssSelector("a.lien")->click();sleep(5); |
372 |
// Liste les fenêtres |
373 |
$windows = $this->windowHandles(); |
374 |
// Change la fenêtre |
375 |
$this->window($windows[1]); |
376 |
// On vérifie qu'il n'y ait pas d'erreur |
377 |
$this->verifynoerrors(); |
378 |
// On vérifie que le text est présent |
379 |
$this->assertRegExp("/^[\s\S]*RECEPISSE DE DEPOT[\s\S]*$/",$this->source()); |
380 |
// On ferme la fenêtre |
381 |
$this->closeWindow(); |
382 |
// On change le focus de la fenêtre |
383 |
$this->window($windows[0]); |
384 |
// On clique sur le bouton retour |
385 |
$this->byLinkText("Retour")->click(); |
386 |
// On vérifie qu'il n'y ait pas d'erreur |
387 |
$this->verifynoerrors(); |
388 |
// On clique sur pétitionnaire fréquent |
389 |
$this->byLinkText("Pétitionnaire Fréquent")->click(); |
390 |
// On vérifie qu'il n'y ait pas d'erreur |
391 |
$this->verifynoerrors(); |
392 |
// On vérifie que le text est présent |
393 |
$this->assertRegExp("/^[\s\S]*pétitionnaire fréquent[\s\S]*$/",$this->source()); |
394 |
// On vérifie que le text est présent |
395 |
$this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->source()); |
396 |
// On clique sur le résultat |
397 |
$this->byLinkText("DURAND MICKAEL")->click(); |
398 |
// On vérifie qu'il n'y ait pas d'erreur |
399 |
$this->verifynoerrors(); |
400 |
// On vérifie que le text est présent |
401 |
$this->assertRegExp("/^[\s\S]*RUE DE LA LOI[\s\S]*$/",$this->source()); |
402 |
// On clique sur le bouton "Retour" |
403 |
$this->byLinkText("Retour")->click(); |
404 |
// On vérifie qu'il n'y ait pas d'erreur |
405 |
$this->verifynoerrors(); |
406 |
// On vérifie que le text est présent |
407 |
$this->assertRegExp("/^[\s\S]*pétitionnaire fréquent[\s\S]*$/",$this->source()); |
408 |
// On se déconnecte |
409 |
$this->logout(); |
410 |
} |
411 |
|
412 |
} |
413 |
|
414 |
?> |