/[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 2313 - (show annotations)
Wed Sep 18 15:31:34 2013 UTC (11 years, 4 months ago) by softime
Original Path: trunk/tests/testGuichetUnique.php
File size: 47024 byte(s)
- Ajout du contrôle de l'option SIG pour les liens vers le plan sig dans le formulaire des DI et sur le bouton de récupération de l'adresse lors de l'ajout d'une nouvelle demande.
- Modification des tests du guichet unique pour activer l'option SIG afin d'avoir le bouton de récupération de l'adresse + modification d'ordre de passage des tests pour que le test qui provoque l'erreur sur l'Alert qui n'est toujours pas résolus, ne provoque pas l'erreur des tests suivant.

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 //On saisie des références cadastrales inccorect
623 $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(1)")->value("aa");
624 // On change le focus pour faire apparaitre le message
625 $this->byId('date_demande')->value(date('d/m/Y'));
626 sleep(5);
627 // Message d'erreur concernant le numéro de quartier
628 $this->assertEquals("Vous ne devez saisir que des nombres entiers", $this->alertText());
629 $this->acceptAlert();
630 $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(2)")->value("11");
631 // On change le focus pour faire apparaitre le message
632 $this->byId('date_demande')->value(date('d/m/Y'));
633 sleep(5);
634 // Message d'erreur concernant la section
635 $this->assertEquals("Vous ne devez saisir que des lettres dans ce champs.", $this->alertText());
636 $this->acceptAlert();
637 $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(3)")->value("bb");
638 // On change le focus pour faire apparaitre le message
639 $this->byId('date_demande')->value(date('d/m/Y'));
640 sleep(5);
641 // Message d'erreur concernant le numéro de parcelle
642 $this->assertEquals("Vous ne devez saisir que des nombres entiers", $this->alertText());
643 $this->acceptAlert();
644 //On saisie les références cadastrales
645 $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(1)")->value("1");
646 $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(2)")->value("dc");
647 $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(3)")->value("15");
648 //On clique sur le bouton de recherche "Cadastrale = > Adresse"
649 $this->byId("cad-adr-them")->click();
650 sleep(1);
651 // On vérifie que le format des champs est mise à jour automatiquement
652 $this->assertEquals("001", $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(1)")->value());
653 $this->assertEquals("DC", $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(2)")->value());
654 $this->assertEquals("0015", $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(3)")->value());
655 //On verifie l'adresse
656 $this->assertEquals("0075", $this->byId("terrain_adresse_voie_numero")->value());
657 $this->assertEquals("TRA DE LA DOMINIQUE", $this->byId("terrain_adresse_voie")->value());
658 $this->assertEquals("13011", $this->byId("terrain_adresse_code_postal")->value());
659 $this->assertEquals("MARSEILLE", $this->byId("terrain_adresse_localite")->value());
660 // On valide le formulaire
661 $this->byXPath("//input[@value='Ajouter']")->click();
662 // On vérifie le message d'erreur
663 $this->assertRegExp("/^[\s\S]*SAISIE NON ENREGISTRÉE[\s\S]*$/", $this->byCssSelector(".message")->text());
664 sleep(1);
665 // On vérifie que les références cadastrales soient toujours affiché
666 $this->assertEquals("001", $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(1)")->value());
667 $this->assertEquals("DC", $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(2)")->value());
668 $this->assertEquals("0015", $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(3)")->value());
669 //On saisie les références cadastrales
670 $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(1)")->clear();
671 $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(2)")->clear();
672 $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(3)")->clear();
673 //On clique sur le bouton de recherche "Cadastrale = > Adresse"
674 $this->byId("cad-adr-them")->click();
675 //On valide le message d'erreur
676 $this->assertEquals('Aucune référence cadastrale fournie', $this->alertText());
677 $this->acceptAlert();
678 // On clique pour ajouter un pétitionnaire principale
679 $this->byId("add_petitionnaire_principal")->click();
680 // On remplit le champ
681 $this->byId("particulier_nom")->value("DURAND");
682 // On remplit le champ
683 $this->byId("particulier_prenom")->value("MICKAEL");
684 // On remplit le champ
685 $this->byId("particulier_date_naissance")->value("03/01/1956");
686 // On remplit le champ
687 $this->byId("particulier_commune_naissance")->value("LILLE");
688 // On remplit le champ
689 $this->byId("particulier_departement_naissance")->value("NORD");
690 // On remplit le champ
691 $this->byId("numero")->value("12");
692 // On remplit le champ
693 $this->byId("voie")->value("RUE DE LA LOI");
694 // On remplit le champ
695 $this->byId("complement")->value("APPT 12");
696 // On remplit le champ
697 $this->byId("localite")->value("MARSEILLE");
698 // On remplit le champ
699 $this->byId("code_postal")->value("13012");
700 // On remplit le champ
701 $this->byId("telephone_fixe")->value("0404040404");
702 // On clique sur ajouter
703 $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
704 // On vérifie qu'il n'y ait pas d'erreur
705 $this->verifynoerrors();
706 // On vérifie le message
707 $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-petitionnaire .message")->text());
708 // On clique sur le bouton retour
709 $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
710 // On vérifie que le text est présent
711 $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
712 // On clique sur ajouter
713 $this->byXPath("//input[@value='Ajouter']")->click();
714 // On vérifie qu'il n'y ait pas d'erreur
715 $this->verifynoerrors();
716 // On vérifie le message
717 $this->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°PC 013055 13 00004[\s\S]*$/",$this->byCssSelector(".message")->text());
718 // On clique
719 $this->byCssSelector("a.lien")->click();sleep(5);
720 // Liste les fenêtres
721 $windows = $this->windowHandles();
722 // Change la fenêtre
723 $this->window($windows[1]);
724 // On vérifie qu'il n'y ait pas d'erreur
725 $this->verifynoerrors();
726 // On vérifie que le text est présent
727 $this->assertRegExp("/^[\s\S]*RECEPISSE DE DEPOT[\s\S]*$/",$this->source());
728 // On ferme la fenêtre
729 $this->closeWindow();
730 // On change le focus de la fenêtre
731 $this->window($windows[0]);
732 // On clique sur le bouton retour
733 $this->byLinkText("Retour")->click();
734 // On vérifie qu'il n'y ait pas d'erreur
735 $this->verifynoerrors();
736 // On vérifie que le répertoire s'est crée
737 $this->assertTrue(file_exists("../trs/numerisation/Todo/PC0130551300004.P0"));
738 // On se déconnecte
739 $this->logout();
740 }
741
742 /*
743 * Cette fonction va tester l'affectation automatique des instructeurs aux
744 * dossiers d'instruction.
745 * Quatre cas sont possibles :
746 * - Aucun instructeur ne correspond, ;
747 * - Un instructeur joker correspond, ;
748 * - Un instructeur correspond, .
749 */
750 function testAffectationAutomatique(){
751
752 // On se connecte à l'application
753 $this->login("guichet", "guichet");
754 //Ajout d'un dossier d'instructeur avec affectation d'aucun instructeur
755 $this->ajoutDossierAffectationAutomatique("801", "A", "0001", "Permis de construire comprenant ou non des démolitions", " -");
756
757 //Ajout d'un dossier d'instructeur avec affectation d'un instructeur
758 //joker avec seulement le type de dossier d'autorisation détaillé de
759 //renseigné
760 $this->ajoutDossierAffectationAutomatique("806", "A", "0001", "Permis de construire pour une maison individuelle et / ou ses annexes", "Louis Laurent");
761
762 //Ajout d'un dossier d'instructeur avec affectation du seul instructeur
763 //correspondant parfaitement aux critères
764 $this->ajoutDossierAffectationAutomatique("801", "A", "0001", "Permis de construire pour une maison individuelle et / ou ses annexes", "Pierre Martin");
765 // On se déconnecte
766 $this->logout();
767 }
768
769 /**
770 * Ajoute un dossier d'instruction
771 * @param string $reference_cadastrale_quartier Le quartier de la référence
772 * cadastrale du dossier
773 * @param string $reference_cadastrale_section La section de la référence
774 * cadastrale du dossier
775 * @param string $reference_cadastrale_parcelle La parcelle de la référence
776 * cadastrale du dossier
777 * @param string $datd dossier d'autorisation type détaillé
778 * @param string $instructeur le nom de l'instructeur
779 *
780 * @return boolean
781 */
782 function ajoutDossierAffectationAutomatique($reference_cadastrale_quartier,
783 $reference_cadastrale_section, $reference_cadastrale_parcelle,$datd,
784 $instructeur){
785
786 //On affiche le tableau de bord
787 $this->byLinkText("Tableau de bord")->click();
788 // On clique sur le menu "Nouveau Dossier"
789 $this->byLinkText("Nouveau Dossier")->click();
790 // On vérifie qu'il n'y ait pas d'erreur
791 $this->verifynoerrors();
792 // On vérifie le nom de l'onglet
793 $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
794 // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
795 $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel($datd);
796 // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
797 $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
798 //On saisie les références cadastrales
799 $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(1)")->value($reference_cadastrale_quartier);
800 $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(2)")->value($reference_cadastrale_section);
801 $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(3)")->value($reference_cadastrale_parcelle);
802 //On clique sur le bouton de recherche "Cadastrale = > Adresse"
803 $this->byId("cad-adr-them")->click();
804 // On clique pour ajouter un pétitionnaire principale
805 $this->byId("add_petitionnaire_principal")->click();
806 // On remplit le champ
807 $this->byId("particulier_nom")->value("DURAND");
808 // On remplit le champ
809 $this->byId("particulier_prenom")->value("MICKAEL");
810 // On remplit le champ
811 $this->byId("particulier_date_naissance")->value("03/01/1956");
812 // On remplit le champ
813 $this->byId("particulier_commune_naissance")->value("LILLE");
814 // On remplit le champ
815 $this->byId("particulier_departement_naissance")->value("NORD");
816 // On remplit le champ
817 $this->byId("numero")->value("12");
818 // On remplit le champ
819 $this->byId("voie")->value("RUE DE LA LOI");
820 // On remplit le champ
821 $this->byId("complement")->value("APPT 12");
822 // On remplit le champ
823 $this->byId("localite")->value("MARSEILLE");
824 // On remplit le champ
825 $this->byId("code_postal")->value("13012");
826 // On remplit le champ
827 $this->byId("telephone_fixe")->value("0404040404");
828 // On clique sur ajouter
829 $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
830 // On vérifie qu'il n'y ait pas d'erreur
831 $this->verifynoerrors();
832 // On vérifie le message
833 $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-petitionnaire .message")->text());
834 // On clique sur le bouton retour
835 $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
836 // On vérifie que le text est présent
837 $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
838 // On clique sur ajouter
839 $this->byXPath("//input[@value='Ajouter']")->click();
840 // On vérifie qu'il n'y ait pas d'erreur
841 $this->verifynoerrors();
842 // On vérifie le message
843 $this->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°[\s\S]*$/",$this->byCssSelector(".message")->text());
844 // On clique
845 $this->byCssSelector("a.lien")->click();sleep(5);
846 // Liste les fenêtres
847 $windows = $this->windowHandles();
848 // Change la fenêtre
849 $this->window($windows[1]);
850 // On vérifie qu'il n'y ait pas d'erreur
851 $this->verifynoerrors();
852 // On vérifie que le text est présent
853 $this->assertRegExp("/^[\s\S]*Dossier suivi par ".$instructeur."[\s\S]*$/",$this->source());
854 // On ferme la fenêtre
855 $this->closeWindow();
856 // On change le focus de la fenêtre
857 $this->window($windows[0]);
858 }
859
860 /**
861 * Désactive l'option sig avec la valeur nécessaire
862 */
863 public function test_desactive_option_sig() {
864
865 // On se connecte en tant que "admin"
866 $this->login("admin", "admin");
867 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
868 $this->verifyNoErrors();
869 // On clique sur le lien "Administration" dans le menu
870 $this->byLinkText("Administration")->click();
871 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
872 $this->verifyNoErrors();
873 // // On clique sur le lien "Paramètre" dans le menu
874 $this->byLinkText("Paramètre")->click();
875 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
876 $this->verifyNoErrors();
877 // On remplis le champs de recherche simple
878 $this->byCssSelector("input[name='recherche']")->value('option_sig');
879 // On clique sur le bouton recherche
880 $this->byCssSelector(".ui-button")->click();
881 // On clique sur le résultat
882 $this->byLinkText("option_sig")->click();
883 // On clique sur le bouton "Modifier"
884 $this->byId('action-form-om_parametre-modifier')->click();
885 // On change la valeur par "aucun"
886 $this->byId('valeur')->clear();
887 $this->byId('valeur')->value('aucun');
888 // On valide la modification
889 $this->byCssSelector("input[value='Modifier']")->click();
890 // On vérifie le message de validation
891 $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#tabs-1 .message")->text());
892 // On clique sur le bouton 'Retour'
893 $this->byLinkText("Retour")->click();
894 // On vérifie les nouvelles données
895 $this->assertEquals("aucun", $this->byId("valeur")->text());
896 // On se déconnecte
897 $this->logout();
898 }
899 }
900
901 ?>

Properties

Name Value
svn:keywords Id

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26