/[openfoncier]/branches/3.14.x/tests/testGuichetUnique.php
ViewVC logotype

Contents of /branches/3.14.x/tests/testGuichetUnique.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2321 - (show annotations)
Thu Sep 19 15:00:08 2013 UTC (11 years, 4 months ago) by softime
Original Path: trunk/tests/testGuichetUnique.php
File size: 47682 byte(s)
Les lignes provoquant l'erreur javascript lorsque le focus n'est pas sur le navigateur sont commentées (solution temporaire)

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("#sousform-petitionnaire .message")->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("#petitionnaire_principal_delegataire .synthese_demandeur")->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(".message")->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 avec un instructeur
100 */
101 public function testAjoutDemandeInitialInstructeur() {
102
103 // On se connecte à l'application
104 $this->login("instr", "instr");
105 // On clique sur le menu "Nouveau Dossier"
106 $this->byLinkText("Cliquer ici pour saisir une nouvelle demande concernant le dépôt d'un nouveau dossier")->click();
107 // On vérifie qu'il n'y ait pas d'erreur
108 $this->verifynoerrors();
109 // On vérifie le nom de l'onglet
110 $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
111 // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
112 $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel("Permis de construire pour une maison individuelle et / ou ses annexes");
113 // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
114 $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
115 // On clique pour ajouter un pétitionnaire principale
116 $this->byId("add_petitionnaire_principal")->click();
117 // On remplit le champ
118 $this->byId("particulier_nom")->value("DURAND");
119 // On remplit le champ
120 $this->byId("particulier_prenom")->value("MICKAEL");
121 // On remplit le champ
122 $this->byId("particulier_date_naissance")->value("03/01/1956");
123 // On remplit le champ
124 $this->byId("particulier_commune_naissance")->value("LILLE");
125 // On remplit le champ
126 $this->byId("particulier_departement_naissance")->value("NORD");
127 // On remplit le champ
128 $this->byId("numero")->value("12");
129 // On remplit le champ
130 $this->byId("voie")->value("RUE DE LA LOI");
131 // On remplit le champ
132 $this->byId("complement")->value("APPT 12");
133 // On remplit le champ
134 $this->byId("localite")->value("MARSEILLE");
135 // On remplit le champ
136 $this->byId("code_postal")->value("13012");
137 // On remplit le champ
138 $this->byId("telephone_fixe")->value("0404040404");
139 // On clique sur ajouter
140 $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
141 // On vérifie qu'il n'y ait pas d'erreur
142 $this->verifynoerrors();
143 // On vérifie le message
144 $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("form div.message")->text());
145 // On clique sur le bouton retour
146 $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
147 // On vérifie que le text est présent
148 $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
149 // On clique sur ajouter
150 $this->byXPath("//input[@value='Ajouter']")->click();
151 // On vérifie qu'il n'y ait pas d'erreur
152 $this->verifynoerrors();
153 // On vérifie le message
154 $this->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°PC 013055 13 00002[\s\S]*$/",$this->byCssSelector(".message")->text());
155 // On clique
156 $this->byCssSelector("a.lien")->click();sleep(5);
157 // Liste les fenêtres
158 $windows = $this->windowHandles();
159 // Change la fenêtre
160 $this->window($windows[1]);
161 // On vérifie qu'il n'y ait pas d'erreur
162 $this->verifynoerrors();
163 // On vérifie que le text est présent
164 $this->assertRegExp("/^[\s\S]*RECEPISSE DE DEPOT[\s\S]*$/",$this->source());
165 // On ferme la fenêtre
166 $this->closeWindow();
167 // On change le focus de la fenêtre
168 $this->window($windows[0]);
169 // On clique sur le bouton retour
170 $this->byLinkText("Retour")->click();
171 // On vérifie qu'il n'y ait pas d'erreur
172 $this->verifynoerrors();
173 // On vérifie que le répertoire s'est crée
174 $this->assertTrue(file_exists("../trs/numerisation/Todo/PC0130551300002.P0"));
175 // On se déconnecte
176 $this->logout();
177 }
178
179 /**
180 * Test l'ajout d'une demande de modification
181 */
182 public function testAjoutDemandeModification() {
183
184 /// On se connecte à l'application en tant qu'instructeur
185 // pour ajouter une instruction arrêté sur le dossier crée
186 $this->login("instr", "instr");
187 // On clique sur le menu
188 $this->byLinkText("Recherche")->click();
189 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
190 $this->verifyNoErrors();
191 // On clique sur le dossier
192 $this->byXPath("//div[@id='tab-dossier_instruction']/table/tbody/tr[8]/td/a/span")->click();
193 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
194 $this->verifyNoErrors();
195 // On clique sur l'onglet instruction
196 $this->byId("instruction")->click();
197 // On clique sur le + pour ajouter une instruction
198 $this->byCssSelector("#sousform-instruction .actions-max-1 a")->click();
199 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
200 $this->verifyNoErrors();
201 // On choisi l'événement
202 $this->select($this->byId("evenement"))->selectOptionByLabel("accepter un dossier sans réserve [acceptation]");
203 // On clique sur le bouton ajouter
204 $this->byXPath("//input[@value='Ajouter']")->click();
205 // On vérifie que l'instruction s'est bien ajouté
206 $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
207 // On clique sur le bouton retour
208 $this->byCssSelector("#sousform-instruction form a.retour")->click();
209 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
210 $this->verifyNoErrors();
211 // On clique sur l'onglet DI
212 $this->byId("main")->click();
213 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
214 $this->verifyNoErrors();
215 // on rafraichis la page
216 $this->refresh();
217 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
218 $this->verifyNoErrors();
219 // On vérifie l'état du dossier
220 $this->assertEquals("dossier accepter", $this->byId('etat')->text());
221 // On se déconnecte de l'instructeur
222 $this->deconnect();
223 // On se connecte en tant que guichet unique
224 $this->login("guichet", "guichet");
225 // On clique sur le menu "Nouveau Dossier"
226 $this->byLinkText("Dossier Existant")->click();
227 // On vérifie qu'il n'y ait pas d'erreur
228 $this->verifynoerrors();
229 // On vérifie le nom de l'onglet
230 $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
231 // On clique pour ajouter une demande au dossier existant
232 $this->byXPath("//div[@id='tab-demande_dossier_existant']/table/tbody/tr[8]/td/a/span")->click();
233 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
234 $this->verifyNoErrors();
235 // Vérifie le fil d'Ariane
236 $this->assertEquals("Guichet Unique > Nouvelle Demande > Dossier Existant > PC 013055 13 00001P0", $this->byXPath("//div[3]/div/h2")->text());
237 // On choisis le type de demande
238 $this->select($this->byId("demande_type"))->selectOptionByLabel("Demande de modification");
239 // On clique sur ajouter
240 $this->byXPath("//input[@value='Ajouter']")->click();
241 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
242 $this->verifyNoErrors();
243 // On vérifie le message
244 $this->assertRegExp("/^[\s\S]*Création du dossier d'instruction n°PC 013055 13 00001M01[\s\S]*$/",$this->byCssSelector("BODY")->text());
245 // On vérifie que le répertoire s'est crée
246 $this->assertTrue(file_exists("../trs/numerisation/Todo/PC0130551300001.M01"));
247 // On se déconnecte
248 $this->logout();
249
250 }
251
252 /**
253 * Test l'ajout d'une demande de modification par un instructeur
254 */
255 public function testAjoutDemandeModificationInstructeur() {
256
257 /// On se connecte à l'application en tant qu'instructeur
258 // pour ajouter une instruction arrêté sur le dossier crée
259 $this->login("instr", "instr");
260 // On clique sur le menu
261 $this->byLinkText("Recherche")->click();
262 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
263 $this->verifyNoErrors();
264 // On clique sur le dossier
265 $this->byXPath("//div[@id='tab-dossier_instruction']/table/tbody/tr[8]/td/a/span")->click();
266 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
267 $this->verifyNoErrors();
268 // On clique sur l'onglet instruction
269 $this->byId("instruction")->click();
270 // On clique sur le + pour ajouter une instruction
271 $this->byCssSelector("#sousform-instruction .actions-max-1 a")->click();
272 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
273 $this->verifyNoErrors();
274 // On choisi l'événement
275 $this->select($this->byId("evenement"))->selectOptionByLabel("accepter un dossier sans réserve [acceptation]");
276 // On clique sur le bouton ajouter
277 $this->byXPath("//input[@value='Ajouter']")->click();
278 // On vérifie que l'instruction s'est bien ajouté
279 $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
280 // On clique sur le bouton retour
281 $this->byCssSelector("#sousform-instruction form a.retour")->click();
282 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
283 $this->verifyNoErrors();
284 // On clique sur l'onglet DI
285 $this->byId("main")->click();
286 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
287 $this->verifyNoErrors();
288 // on rafraichis la page
289 $this->refresh();
290 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
291 $this->verifyNoErrors();
292 // On vérifie l'état du dossier
293 $this->assertEquals("dossier accepter", $this->byId('etat')->text());
294 // On clique sur le menu
295 $this->byLinkText("Guichet Unique")->click();
296 $this->byLinkText("Dossier Existant")->click();
297 // On vérifie qu'il n'y ait pas d'erreur
298 $this->verifynoerrors();
299 // On vérifie le nom de l'onglet
300 $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
301 // On clique pour ajouter une demande au dossier existant
302 $this->byXPath("//div[@id='tab-demande_dossier_existant']/table/tbody/tr[8]/td/a/span")->click();
303 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
304 $this->verifyNoErrors();
305 // Vérifie le fil d'Ariane
306 $this->assertEquals("Guichet Unique > Nouvelle Demande > Dossier Existant > PC 013055 13 00001M01", $this->byXPath("//div[3]/div/h2")->text());
307 // On choisis le type de demande
308 $this->select($this->byId("demande_type"))->selectOptionByLabel("Demande de modification");
309 // On clique sur ajouter
310 $this->byXPath("//input[@value='Ajouter']")->click();
311 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
312 $this->verifyNoErrors();
313 // On vérifie le message
314 $this->assertRegExp("/^[\s\S]*Création du dossier d'instruction n°PC 013055 13 00001M02[\s\S]*$/",$this->byCssSelector("BODY")->text());
315 // On vérifie que le répertoire s'est crée
316 $this->assertTrue(file_exists("../trs/numerisation/Todo/PC0130551300001.M02"));
317 // On se déconnecte
318 $this->logout();
319
320 }
321
322 /**
323 * Tests l'affichage réglementaire
324 */
325 public function testAffichageReglementaire() {
326
327 // On se connecte à l'application
328 $this->login("guichet", "guichet");
329 // On clique sur le menu "Attestation"
330 $this->byLinkText("Attestation")->click();
331 // On vérifie qu'il n'y ait pas d'erreur
332 $this->verifynoerrors();
333 // On vérifie le nom de l'onglet
334 $this->assertEquals("Imprimer L'attestation D'affichage Réglementaire", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
335 // On écrit "PC0130551200002P0" dans le champ dossier
336 $this->byId("dossier")->value("PC0130551200002P0");
337 // On clique sur "Valider"
338 $this->byXPath("//input[@value='Valider']")->click();
339 // On vérifie qu'il n'y ait pas d'erreur
340 $this->verifynoerrors();
341 // On vérifie que text est présent
342 $this->assertRegExp("/^[\s\S]*Ce dossier n'a jamais été affiché.[\s\S]*$/",$this->byCssSelector("BODY")->text());
343 // On clique sur le menu "Registre"
344 $this->byLinkText("Registre")->click();
345 // On vérifie qu'il n'y ait pas d'erreur
346 $this->verifynoerrors();
347 // On vérifie le nom de l'onglet
348 $this->assertEquals("Imprimer Le Registre D'affichage Réglementaire", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
349 // On clique sur "Valider"
350 $this->byXPath("//input[@value='Valider']")->click();
351 // On clique sur "Oui" dans la fenêtre js qui apparaît
352 $this->acceptAlert();sleep(5);
353 // Liste des fenêtres ouvertes
354 $windows = $this->windowHandles();
355 // On change le focus de la fenêtre
356 $this->window($windows[1]);
357 // On vérifie qu'il n'y ait pas d'erreur
358 $this->verifynoerrors();
359 // On vérifie que text est présent
360 $this->assertRegExp('/^[\s\S]*Registre des dossiers en cours[\s\S]*$/',$this->source());
361 // On ferme la fenêtre
362 $this->closeWindow();
363 // On change le focus de la fenêtre
364 $this->window($windows[0]);
365 // On vérifie qu'il n'y ait pas d'erreur
366 $this->verifynoerrors();
367 // On vérifie que text est présent
368 $this->assertRegExp('/^[\s\S]*Traitement terminé. Le registre a été téléchargé.[\s\S]*$/',$this->byCssSelector("BODY")->text());
369 // On clique sur le menu "Attestation"
370 $this->byLinkText("Attestation")->click();
371 // On vérifie qu'il n'y ait pas d'erreur
372 $this->verifynoerrors();
373 // On vérifie le nom de l'onglet
374 $this->assertEquals("Imprimer L'attestation D'affichage Réglementaire", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
375 // On clique sur "Valider"
376 $this->byXPath("//input[@value='Valider']")->click();
377 // On vérifie qu'il n'y ait pas d'erreur
378 $this->verifynoerrors();
379 // On vérifie que text est présent
380 $this->assertRegExp("/^[\s\S]*Veuiller saisir un N° de dossier.[\s\S]*$/",$this->byCssSelector("BODY")->text());
381 // On écrit "123" dans le champ dossier
382 $this->byId("dossier")->value("123");
383 // On clique sur "Valider"
384 $this->byXPath("//input[@value='Valider']")->click();
385 // On vérifie qu'il n'y ait pas d'erreur
386 $this->verifynoerrors();
387 // On vérifie que text est présent
388 $this->assertRegExp("/^[\s\S]*Ce dossier n'existe pas.[\s\S]*$/",$this->byCssSelector("BODY")->text());
389 // On écrit "PC0130551200002P0" dans le champ dossier
390 $this->byId("dossier")->value("PC0130551200002P0");
391 // On clique sur "Valider"
392 $this->byXPath("//input[@value='Valider']")->click();
393 // On vérifie qu'il n'y ait pas d'erreur
394 $this->verifynoerrors();
395 // On vérifie que le text est présent
396 $this->assertRegExp("/^[\s\S]*Cliquez sur le lien ci-dessous pour télécharger votre attestation d'affichage[\s\S]*$/",$this->byCssSelector("BODY")->text());
397 // On clique sur "Attestation d'affichage"
398 $this->byLinkText("Attestation d'affichage")->click();sleep(5);
399 // Liste les fenêtres
400 $windows = $this->windowHandles();
401 // Change la fenêtre
402 $this->window($windows[1]);
403 // On vérifie qu'il n'y ait pas d'erreur
404 $this->verifynoerrors();
405 // On vérifie que le text est
406 // présent
407 $this->assertRegExp("/^[\s\S]*ATTESTATION D'AFFICHAGE REGLEMENTAIRE[\s\S]*$/",$this->source());
408 // On ferme la fenêtre
409 $this->closeWindow();
410 // On change le focus de la fenêtre
411 $this->window($windows[0]);
412 // On se deconnecte
413 $this->logout();
414 }
415
416 /**
417 * Test le Récépissé
418 */
419 public function testRecepisse() {
420
421 // On se connecte à l'application
422 $this->login("guichet", "guichet");
423 // On clique sur le menu "Récépissé"
424 $this->byLinkText("Récépissé")->click();
425 // On vérifie qu'il n'y ait pas d'erreur
426 $this->verifynoerrors();
427 // On vérifie le nom de l'onglet
428 $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
429 // On clique sur "AT0130551200001P0"
430 $this->byLinkText("AT 013055 12 00001P0")->click();
431 // On vérifie qu'il n'y ait pas d'erreur
432 $this->verifynoerrors();
433 // Vérifie le fil d'Ariane
434 $this->assertEquals("Guichet Unique > Nouvelle Demande > Récépissé > AT 013055 12 00001P0", $this->byXPath("//div[3]/div/h2")->text());
435 // On vérifie que le text est présent
436 $this->assertRegExp("/^[\s\S]*Demande d'autorisation de construire, d'aménager ou de modifier un ERP[\s\S]*$/",$this->byCssSelector("BODY")->text());
437 // Le nom du pétitionnaire doit apparaître
438 $this->assertRegExp("/^[\s\S]*BERNARD LILIANE[\s\S]*$/",$this->byCssSelector("BODY")->text());
439 // On clique sur le lien
440 $this->byLinkText("Éditer le récépissé PDF")->click();sleep(5);
441 // Liste les fenêtres
442 $windows = $this->windowHandles();
443 // Change la fenêtre
444 $this->window($windows[1]);
445 // On vérifie qu'il n'y ait pas d'erreur
446 $this->verifynoerrors();
447 // On vérifie que le text est présent
448 $this->assertRegExp("/^[\s\S]*RECEPISSE DE DEPOT[\s\S]*$/",$this->source());
449 // On ferme la fenêtre
450 $this->closeWindow();
451 // On change le focus de la fenêtre
452 $this->window($windows[0]);
453 // On clique sur "Retour"
454 $this->byLinkText("Retour")->click();
455 // On vérifie qu'il n'y ait pas d'erreur
456 $this->verifynoerrors();
457 // On vérifie le nom de l'onglet
458 $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
459 // On se deconnecte
460 $this->logout();
461 }
462
463 /**
464 * Test les pétitionnaires fréquents
465 */
466 public function testPetitionnaireFrequent() {
467
468 // On se connecte à l'application
469 $this->login("guichet", "guichet");
470 // On clique sur le menu "Nouveau Dossier"
471 $this->byLinkText("Nouveau Dossier")->click();
472 // On vérifie qu'il n'y ait pas d'erreur
473 $this->verifynoerrors();
474 // On vérifie le nom de l'onglet
475 $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
476 // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
477 $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel("Permis de construire pour une maison individuelle et / ou ses annexes");
478 // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
479 $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
480 // On clique pour ajouter un pétitionnaire principale
481 $this->byId("add_petitionnaire_principal")->click();
482 // On remplit le champ
483 $this->byId("particulier_nom")->value("DURAND");
484 // On remplit le champ
485 $this->byId("particulier_prenom")->value("MICKAEL");
486 // On remplit le champ
487 $this->byId("particulier_date_naissance")->value("03/01/1956");
488 // On remplit le champ
489 $this->byId("particulier_commune_naissance")->value("LILLE");
490 // On remplit le champ
491 $this->byId("particulier_departement_naissance")->value("NORD");
492 // On remplit le champ
493 $this->byId("numero")->value("12");
494 // On remplit le champ
495 $this->byId("voie")->value("RUE DE LA LOI");
496 // On remplit le champ
497 $this->byId("complement")->value("APPT 12");
498 // On remplit le champ
499 $this->byId("localite")->value("MARSEILLE");
500 // On remplit le champ
501 $this->byId("code_postal")->value("13012");
502 // On remplit le champ
503 $this->byId("telephone_fixe")->value("0404040404");
504 // On sélectionne pétitionnaire fréquent
505 $this->byId("frequent")->click();
506 // On clique sur ajouter
507 $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
508 // On vérifie qu'il n'y ait pas d'erreur
509 $this->verifynoerrors();
510 // On vérifie le message
511 $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-petitionnaire .message")->text());
512 // On clique sur le bouton retour
513 $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
514 // On vérifie que le text est présent
515 $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
516 // On clique sur ajouter
517 $this->byXPath("//input[@value='Ajouter']")->click();
518 // On vérifie qu'il n'y ait pas d'erreur
519 $this->verifynoerrors();
520 // On vérifie le message
521 $this->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°PC 013055 13 00003[\s\S]*$/",$this->byCssSelector(".message")->text());
522 // On clique
523 $this->byCssSelector("a.lien")->click();sleep(5);
524 // Liste les fenêtres
525 $windows = $this->windowHandles();
526 // Change la fenêtre
527 $this->window($windows[1]);
528 // On vérifie qu'il n'y ait pas d'erreur
529 $this->verifynoerrors();
530 // On vérifie que le text est présent
531 $this->assertRegExp("/^[\s\S]*RECEPISSE DE DEPOT[\s\S]*$/",$this->source());
532 // On ferme la fenêtre
533 $this->closeWindow();
534 // On change le focus de la fenêtre
535 $this->window($windows[0]);
536 // On clique sur le bouton retour
537 $this->byLinkText("Retour")->click();
538 // On vérifie qu'il n'y ait pas d'erreur
539 $this->verifynoerrors();
540 // On clique sur pétitionnaire fréquent
541 $this->byLinkText("Pétitionnaire Fréquent")->click();
542 // On vérifie qu'il n'y ait pas d'erreur
543 $this->verifynoerrors();
544 // On vérifie que le text est présent
545 $this->assertRegExp("/^[\s\S]*pétitionnaire fréquent[\s\S]*$/",$this->source());
546 // On vérifie que le text est présent
547 $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->source());
548 // On clique sur le résultat
549 $this->byLinkText("DURAND MICKAEL")->click();
550 // On vérifie qu'il n'y ait pas d'erreur
551 $this->verifynoerrors();
552 // On vérifie que le text est présent
553 $this->assertRegExp("/^[\s\S]*RUE DE LA LOI[\s\S]*$/",$this->source());
554 // On clique sur le bouton "Retour"
555 $this->byLinkText("Retour")->click();
556 // On vérifie qu'il n'y ait pas d'erreur
557 $this->verifynoerrors();
558 // On vérifie que le text est présent
559 $this->assertRegExp("/^[\s\S]*pétitionnaire fréquent[\s\S]*$/",$this->source());
560 // On se déconnecte
561 $this->logout();
562 }
563
564 /**
565 * Active l'option sig avec la valeur nécessaire pour la suite des tests
566 */
567 public function test_active_option_sig() {
568
569 // On se connecte en tant que "admin"
570 $this->login("admin", "admin");
571 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
572 $this->verifyNoErrors();
573 // On clique sur le lien "Administration" dans le menu
574 $this->byLinkText("Administration")->click();
575 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
576 $this->verifyNoErrors();
577 // // On clique sur le lien "Paramètre" dans le menu
578 $this->byLinkText("Paramètre")->click();
579 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
580 $this->verifyNoErrors();
581 // On remplis le champs de recherche simple
582 $this->byCssSelector("input[name='recherche']")->value('option_sig');
583 // On clique sur le bouton recherche
584 $this->byCssSelector(".ui-button")->click();
585 // On clique sur le résultat
586 $this->byLinkText("option_sig")->click();
587 // On clique sur le bouton "Modifier"
588 $this->byId('action-form-om_parametre-modifier')->click();
589 // On change la valeur par "sig_externe"
590 $this->byId('valeur')->clear();
591 $this->byId('valeur')->value('sig_externe');
592 // On valide la modification
593 $this->byCssSelector("input[value='Modifier']")->click();
594 // On vérifie le message de validation
595 $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#tabs-1 .message")->text());
596 // On clique sur le bouton 'Retour'
597 $this->byLinkText("Retour")->click();
598 // On vérifie les nouvelles données
599 $this->assertEquals("sig_externe", $this->byId("valeur")->text());
600 // On se déconnecte
601 $this->logout();
602 }
603
604 /**
605 * Test l'ajout d'une demande initial en utilisant les références cadastrales
606 * pour récupérer l'adresse
607 */
608 public function testAjoutDemandeInitialReferenceCadastrale() {
609
610 // On se connecte à l'application
611 $this->login("guichet", "guichet");
612 // On clique sur le menu "Nouveau Dossier"
613 $this->byLinkText("Nouveau Dossier")->click();
614 // On vérifie qu'il n'y ait pas d'erreur
615 $this->verifynoerrors();
616 // On vérifie le nom de l'onglet
617 $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
618 // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
619 $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel("Permis de construire pour une maison individuelle et / ou ses annexes");
620 // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
621 $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
622 // XXX Problème de javascript seulement dans cette fonction
623 // Les alerts ne passent pas lorsque le focus n'est pas sur le
624 // navigateur
625 //On saisie des références cadastrales inccorect
626 // $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(1)")->value("aa");
627 // // On change le focus pour faire apparaitre le message
628 // $this->byId('date_demande')->value(date('d/m/Y'));
629 // sleep(5);
630 // // Message d'erreur concernant le numéro de quartier
631 // $this->assertEquals("Vous ne devez saisir que des nombres entiers", $this->alertText());
632 // $this->acceptAlert();
633 // $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(2)")->value("11");
634 // // On change le focus pour faire apparaitre le message
635 // $this->byId('date_demande')->value(date('d/m/Y'));
636 // sleep(5);
637 // // Message d'erreur concernant la section
638 // $this->assertEquals("Vous ne devez saisir que des lettres dans ce champs.", $this->alertText());
639 // $this->acceptAlert();
640 // $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(3)")->value("bb");
641 // // On change le focus pour faire apparaitre le message
642 // $this->byId('date_demande')->value(date('d/m/Y'));
643 // sleep(5);
644 // // Message d'erreur concernant le numéro de parcelle
645 // $this->assertEquals("Vous ne devez saisir que des nombres entiers", $this->alertText());
646 // $this->acceptAlert();
647 //On saisie les références cadastrales
648 // $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(1)")->value("1");
649 // $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(2)")->value("dc");
650 // $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(3)")->value("15");
651 // XXX Renplace les valeurs juste au dessus qui devraient se mettre au
652 // bon format automatiquement grâce au javascript
653 $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(1)")->value("001");
654 $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(2)")->value("DC");
655 $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(3)")->value("0015");
656 //On clique sur le bouton de recherche "Cadastrale = > Adresse"
657 $this->byId("cad-adr-them")->click();
658 sleep(1);
659 // On vérifie que le format des champs est mise à jour automatiquement
660 $this->assertEquals("001", $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(1)")->value());
661 $this->assertEquals("DC", $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(2)")->value());
662 $this->assertEquals("0015", $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(3)")->value());
663 //On verifie l'adresse
664 $this->assertEquals("0075", $this->byId("terrain_adresse_voie_numero")->value());
665 $this->assertEquals("TRA DE LA DOMINIQUE", $this->byId("terrain_adresse_voie")->value());
666 $this->assertEquals("13011", $this->byId("terrain_adresse_code_postal")->value());
667 $this->assertEquals("MARSEILLE", $this->byId("terrain_adresse_localite")->value());
668 // On valide le formulaire
669 $this->byXPath("//input[@value='Ajouter']")->click();
670 // On vérifie le message d'erreur
671 $this->assertRegExp("/^[\s\S]*SAISIE NON ENREGISTRÉE[\s\S]*$/", $this->byCssSelector(".message")->text());
672 sleep(1);
673 // On vérifie que les références cadastrales soient toujours affiché
674 $this->assertEquals("001", $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(1)")->value());
675 $this->assertEquals("DC", $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(2)")->value());
676 $this->assertEquals("0015", $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(3)")->value());
677 //On saisie les références cadastrales
678 $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(1)")->clear();
679 $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(2)")->clear();
680 $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(3)")->clear();
681 //On clique sur le bouton de recherche "Cadastrale = > Adresse"
682 $this->byId("cad-adr-them")->click();
683 //On valide le message d'erreur
684 $this->assertEquals('Aucune référence cadastrale fournie', $this->alertText());
685 $this->acceptAlert();
686 // On clique pour ajouter un pétitionnaire principale
687 $this->byId("add_petitionnaire_principal")->click();
688 // On remplit le champ
689 $this->byId("particulier_nom")->value("DURAND");
690 // On remplit le champ
691 $this->byId("particulier_prenom")->value("MICKAEL");
692 // On remplit le champ
693 $this->byId("particulier_date_naissance")->value("03/01/1956");
694 // On remplit le champ
695 $this->byId("particulier_commune_naissance")->value("LILLE");
696 // On remplit le champ
697 $this->byId("particulier_departement_naissance")->value("NORD");
698 // On remplit le champ
699 $this->byId("numero")->value("12");
700 // On remplit le champ
701 $this->byId("voie")->value("RUE DE LA LOI");
702 // On remplit le champ
703 $this->byId("complement")->value("APPT 12");
704 // On remplit le champ
705 $this->byId("localite")->value("MARSEILLE");
706 // On remplit le champ
707 $this->byId("code_postal")->value("13012");
708 // On remplit le champ
709 $this->byId("telephone_fixe")->value("0404040404");
710 // On clique sur ajouter
711 $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
712 // On vérifie qu'il n'y ait pas d'erreur
713 $this->verifynoerrors();
714 // On vérifie le message
715 $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-petitionnaire .message")->text());
716 // On clique sur le bouton retour
717 $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
718 // On vérifie que le text est présent
719 $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
720 // On clique sur ajouter
721 $this->byXPath("//input[@value='Ajouter']")->click();
722 // On vérifie qu'il n'y ait pas d'erreur
723 $this->verifynoerrors();
724 // On vérifie le message
725 $this->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°PC 013055 13 00004[\s\S]*$/",$this->byCssSelector(".message")->text());
726 // On clique
727 $this->byCssSelector("a.lien")->click();sleep(5);
728 // Liste les fenêtres
729 $windows = $this->windowHandles();
730 // Change la fenêtre
731 $this->window($windows[1]);
732 // On vérifie qu'il n'y ait pas d'erreur
733 $this->verifynoerrors();
734 // On vérifie que le text est présent
735 $this->assertRegExp("/^[\s\S]*RECEPISSE DE DEPOT[\s\S]*$/",$this->source());
736 // On ferme la fenêtre
737 $this->closeWindow();
738 // On change le focus de la fenêtre
739 $this->window($windows[0]);
740 // On clique sur le bouton retour
741 $this->byLinkText("Retour")->click();
742 // On vérifie qu'il n'y ait pas d'erreur
743 $this->verifynoerrors();
744 // On vérifie que le répertoire s'est crée
745 $this->assertTrue(file_exists("../trs/numerisation/Todo/PC0130551300004.P0"));
746 // On se déconnecte
747 $this->logout();
748 }
749
750 /*
751 * Cette fonction va tester l'affectation automatique des instructeurs aux
752 * dossiers d'instruction.
753 * Quatre cas sont possibles :
754 * - Aucun instructeur ne correspond, ;
755 * - Un instructeur joker correspond, ;
756 * - Un instructeur correspond, .
757 */
758 function testAffectationAutomatique(){
759
760 // On se connecte à l'application
761 $this->login("guichet", "guichet");
762 //Ajout d'un dossier d'instructeur avec affectation d'aucun instructeur
763 $this->ajoutDossierAffectationAutomatique("801", "A", "0001", "Permis de construire comprenant ou non des démolitions", " -");
764
765 //Ajout d'un dossier d'instructeur avec affectation d'un instructeur
766 //joker avec seulement le type de dossier d'autorisation détaillé de
767 //renseigné
768 $this->ajoutDossierAffectationAutomatique("806", "A", "0001", "Permis de construire pour une maison individuelle et / ou ses annexes", "Louis Laurent");
769
770 //Ajout d'un dossier d'instructeur avec affectation du seul instructeur
771 //correspondant parfaitement aux critères
772 $this->ajoutDossierAffectationAutomatique("801", "A", "0001", "Permis de construire pour une maison individuelle et / ou ses annexes", "Pierre Martin");
773 // On se déconnecte
774 $this->logout();
775 }
776
777 /**
778 * Ajoute un dossier d'instruction
779 * @param string $reference_cadastrale_quartier Le quartier de la référence
780 * cadastrale du dossier
781 * @param string $reference_cadastrale_section La section de la référence
782 * cadastrale du dossier
783 * @param string $reference_cadastrale_parcelle La parcelle de la référence
784 * cadastrale du dossier
785 * @param string $datd dossier d'autorisation type détaillé
786 * @param string $instructeur le nom de l'instructeur
787 *
788 * @return boolean
789 */
790 function ajoutDossierAffectationAutomatique($reference_cadastrale_quartier,
791 $reference_cadastrale_section, $reference_cadastrale_parcelle,$datd,
792 $instructeur){
793
794 //On affiche le tableau de bord
795 $this->byLinkText("Tableau de bord")->click();
796 // On clique sur le menu "Nouveau Dossier"
797 $this->byLinkText("Nouveau Dossier")->click();
798 // On vérifie qu'il n'y ait pas d'erreur
799 $this->verifynoerrors();
800 // On vérifie le nom de l'onglet
801 $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
802 // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
803 $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel($datd);
804 // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
805 $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
806 //On saisie les références cadastrales
807 $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(1)")->value($reference_cadastrale_quartier);
808 $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(2)")->value($reference_cadastrale_section);
809 $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(3)")->value($reference_cadastrale_parcelle);
810 //On clique sur le bouton de recherche "Cadastrale = > Adresse"
811 $this->byId("cad-adr-them")->click();
812 // On clique pour ajouter un pétitionnaire principale
813 $this->byId("add_petitionnaire_principal")->click();
814 // On remplit le champ
815 $this->byId("particulier_nom")->value("DURAND");
816 // On remplit le champ
817 $this->byId("particulier_prenom")->value("MICKAEL");
818 // On remplit le champ
819 $this->byId("particulier_date_naissance")->value("03/01/1956");
820 // On remplit le champ
821 $this->byId("particulier_commune_naissance")->value("LILLE");
822 // On remplit le champ
823 $this->byId("particulier_departement_naissance")->value("NORD");
824 // On remplit le champ
825 $this->byId("numero")->value("12");
826 // On remplit le champ
827 $this->byId("voie")->value("RUE DE LA LOI");
828 // On remplit le champ
829 $this->byId("complement")->value("APPT 12");
830 // On remplit le champ
831 $this->byId("localite")->value("MARSEILLE");
832 // On remplit le champ
833 $this->byId("code_postal")->value("13012");
834 // On remplit le champ
835 $this->byId("telephone_fixe")->value("0404040404");
836 // On clique sur ajouter
837 $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
838 // On vérifie qu'il n'y ait pas d'erreur
839 $this->verifynoerrors();
840 // On vérifie le message
841 $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-petitionnaire .message")->text());
842 // On clique sur le bouton retour
843 $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
844 // On vérifie que le text est présent
845 $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
846 // On clique sur ajouter
847 $this->byXPath("//input[@value='Ajouter']")->click();
848 // On vérifie qu'il n'y ait pas d'erreur
849 $this->verifynoerrors();
850 // On vérifie le message
851 $this->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°[\s\S]*$/",$this->byCssSelector(".message")->text());
852 // On clique
853 $this->byCssSelector("a.lien")->click();sleep(5);
854 // Liste les fenêtres
855 $windows = $this->windowHandles();
856 // Change la fenêtre
857 $this->window($windows[1]);
858 // On vérifie qu'il n'y ait pas d'erreur
859 $this->verifynoerrors();
860 // On vérifie que le text est présent
861 $this->assertRegExp("/^[\s\S]*Dossier suivi par ".$instructeur."[\s\S]*$/",$this->source());
862 // On ferme la fenêtre
863 $this->closeWindow();
864 // On change le focus de la fenêtre
865 $this->window($windows[0]);
866 }
867
868 /**
869 * Désactive l'option sig avec la valeur nécessaire
870 */
871 public function test_desactive_option_sig() {
872
873 // On se connecte en tant que "admin"
874 $this->login("admin", "admin");
875 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
876 $this->verifyNoErrors();
877 // On clique sur le lien "Administration" dans le menu
878 $this->byLinkText("Administration")->click();
879 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
880 $this->verifyNoErrors();
881 // // On clique sur le lien "Paramètre" dans le menu
882 $this->byLinkText("Paramètre")->click();
883 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
884 $this->verifyNoErrors();
885 // On remplis le champs de recherche simple
886 $this->byCssSelector("input[name='recherche']")->value('option_sig');
887 // On clique sur le bouton recherche
888 $this->byCssSelector(".ui-button")->click();
889 // On clique sur le résultat
890 $this->byLinkText("option_sig")->click();
891 // On clique sur le bouton "Modifier"
892 $this->byId('action-form-om_parametre-modifier')->click();
893 // On change la valeur par "aucun"
894 $this->byId('valeur')->clear();
895 $this->byId('valeur')->value('aucun');
896 // On valide la modification
897 $this->byCssSelector("input[value='Modifier']")->click();
898 // On vérifie le message de validation
899 $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#tabs-1 .message")->text());
900 // On clique sur le bouton 'Retour'
901 $this->byLinkText("Retour")->click();
902 // On vérifie les nouvelles données
903 $this->assertEquals("aucun", $this->byId("valeur")->text());
904 // On se déconnecte
905 $this->logout();
906 }
907 }
908
909 ?>

Properties

Name Value
svn:keywords Id

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26