/[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 3667 - (show annotations)
Mon Oct 12 13:51:29 2015 UTC (9 years, 3 months ago) by nmeucci
File size: 57302 byte(s)
Correction des tests

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 // Liste des utilisateurs
18 var $listUtlisateurs = array(
19 array(
20 "login" => "guichet",
21 "mdp" => "guichet"
22 ),
23 array(
24 "login" => "adminfonct",
25 "mdp" => "adminfonct"
26 ),
27 );
28
29 /**
30 * Ce test vise uniquement à vérifier que les écrans correspondant à chaque
31 * entrée de menu ne génère pas une erreur de base de données
32 */
33 // Fonction privé
34 private function ouvertureMenu($utilisateur) {
35 // On se connecte
36 $this->login($utilisateur["login"], $utilisateur["mdp"]);
37 // Ouvre le menu
38 $this->openMenu("Guichet Unique", $utilisateur);
39 // On vérifie le menu "Nouveau Dossier"
40 $this->byLinkText("Nouveau Dossier")->click();
41 $this->assertContains("Guichet Unique > Nouvelle Demande > Nouveau Dossier",
42 $this->byId("title")->text());
43 $this->verifyNoErrors();
44 // On vérifie le menu "Dossier En Cours"
45 $this->byLinkText("Dossier En Cours")->click();
46 $this->assertContains("Guichet Unique > Nouvelle Demande > Dossier En Cours",
47 $this->byId("title")->text());
48 $this->verifyNoErrors();
49 // On vérifie le menu "Autre Dossier"
50 $this->byLinkText("Autre Dossier")->click();
51 $this->assertContains("Guichet Unique > Nouvelle Demande > Autre Dossier",
52 $this->byId("title")->text());
53 $this->verifyNoErrors();
54 // On vérifie le menu "Récépissé"
55 $this->byLinkText("Récépissé")->click();
56 $this->assertContains("Guichet Unique > Nouvelle Demande > Récépissé",
57 $this->byId("title")->text());
58 $this->verifyNoErrors();
59 // On vérifie le menu "Pétitionnaire Fréquent"
60 $this->byLinkText("Pétitionnaire Fréquent")->click();
61 $this->assertContains("Guichet Unique > Nouvelle Demande > Pétitionnaire Fréquent",
62 $this->byId("title")->text());
63 $this->verifyNoErrors();
64 // On vérifie le menu "Registre"
65 $this->byLinkText("Registre")->click();
66 $this->assertContains("Guichet Unique > Affichage Réglementaire > Registre",
67 $this->byId("title")->text());
68 $this->verifyNoErrors();
69 // On vérifie le menu "Attestation"
70 $this->byLinkText("Attestation")->click();
71 $this->assertContains("Guichet Unique > Affichage Réglementaire > Attestation",
72 $this->byId("title")->text());
73 $this->verifyNoErrors();
74 // On se déconnecte
75 $this->deconnect();
76 }
77 // Fonction public
78 public function test01OuvertureMenu() {
79 // Récupération des utilisateurs
80 $utilisateurs = $this->listUtlisateurs;
81 // Pour chaque utilisateur on lance le test
82 foreach ($utilisateurs as $utilisateur) {
83 //
84 $this->ouvertureMenu($utilisateur);
85 }
86 // On vérifie la déconnexion
87 $this->verifyDeconnect();
88 }
89
90 /**
91 * Test l'ajout d'une demande
92 */
93 // Fonction privé
94 private function ajoutDemandeInitial($utilisateur) {
95
96 // On se connecte à l'application
97 $this->login($utilisateur["login"], $utilisateur["mdp"]);
98 // Ouvre le menu
99 $this->openMenu("Guichet Unique", $utilisateur);
100 // On clique sur le menu "Nouveau Dossier"
101 $this->byLinkText("Nouveau Dossier")->click();
102 // On vérifie qu'il n'y ait pas d'erreur
103 $this->verifynoerrors();
104 // On vérifie le nom de l'onglet
105 $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
106 // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
107 $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel("Permis de construire pour une maison individuelle et / ou ses annexes");
108 // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
109 $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
110 // On clique pour ajouter un pétitionnaire principale
111 $this->byId("add_petitionnaire_principal")->click();
112 // On remplit le champ
113 $this->select($this->byId("particulier_civilite"))->selectOptionByLabel("Monsieur");
114 // On remplit le champ
115 $this->byId("particulier_nom")->value("DURAND");
116 // On remplit le champ
117 $this->byId("particulier_prenom")->value("MICKAEL");
118 // On remplit le champ
119 $this->byId("particulier_date_naissance")->value("03/01/1956");
120 // On remplit le champ
121 $this->byId("particulier_commune_naissance")->value("LILLE");
122 // On remplit le champ
123 $this->byId("particulier_departement_naissance")->value("NORD");
124 // On remplit le champ
125 $this->byId("numero")->value("12");
126 // On remplit le champ
127 $this->byId("voie")->value("RUE DE LA LOI");
128 // On remplit le champ
129 $this->byId("complement")->value("APPT 12");
130 // On remplit le champ
131 $this->byId("localite")->value("MARSEILLE");
132 // On remplit le champ
133 $this->byId("code_postal")->value("13012");
134 // On remplit le champ
135 $this->byId("telephone_fixe")->value("0404040404");
136 // On remplit le champ
137 $this->byId("fax")->value("0405040404");
138 // On clique sur ajouter
139 $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
140 // On vérifie qu'il n'y ait pas d'erreur
141 $this->verifynoerrors();
142 // On vérifie le message
143 $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-petitionnaire .message")->text());
144 // On clique sur le bouton retour
145 $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
146 // On vérifie que le text est présent
147 $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
148 // On clique sur ajouter
149 $this->byXPath("//input[@value='Ajouter']")->click();
150 // On vérifie qu'il n'y ait pas d'erreur
151 $this->verifynoerrors();
152 // On vérifie le message
153 $this->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°[\s\S]*$/",$this->byCssSelector(".message")->text());
154 // Récupération du numéro de dossier
155 preg_match('/(PC)[0-9 ]*(P0)/', $this->byCssSelector(".message .text")->text(), $matches);
156 $dossier_libelle = $matches[0];
157 $dossier = str_replace(' ', '', $dossier_libelle);
158 $dossier_dir = substr_replace($dossier, '.', -2, -3);
159 // On clique
160 $this->byCssSelector("a#link_demande_recepisse")->click();sleep(5);
161 // Liste les fenêtres
162 $windows = $this->windowHandles();
163 // Change la fenêtre
164 $this->window($windows[1]);
165 // On vérifie qu'il n'y ait pas d'erreur
166 $this->verifynoerrors();
167 // On vérifie que le text est présent
168 $this->assertRegExp("/^[\s\S]*RECEPISSE DE DEPOT[\s\S]*$/",$this->source());
169 // On ferme la fenêtre
170 $this->closeWindow();
171 // On change le focus de la fenêtre
172 $this->window($windows[0]);
173 // On clique sur le bouton retour
174 $this->byLinkText("Retour")->click();
175 // On vérifie qu'il n'y ait pas d'erreur
176 $this->verifynoerrors();
177 // On vérifie que le répertoire s'est crée
178 $this->assertTrue(file_exists("../trs/numerisation/Todo/".$dossier_dir));
179 // On se déconnecte
180 $this->deconnect();
181 }
182 // Fonction public
183 public function test02AjoutDemandeInitial() {
184 // Récupération des utilisateurs
185 $utilisateurs = $this->listUtlisateurs;
186 // Pour chaque utilisateur on lance le test
187 foreach ($utilisateurs as $utilisateur) {
188 //
189 $this->ajoutDemandeInitial($utilisateur);
190 }
191 // On vérifie la déconnexion
192 $this->verifyDeconnect();
193 }
194
195 /**
196 * Test l'ajout d'une demande et de création d'une nouvelle sequence
197 */
198 public function testAjoutDemandeNouvelleSequence() {
199
200 // On se connecte à l'application
201 $this->login("guichet", "guichet");
202 // On clique sur le menu "Nouveau Dossier"
203 $this->byLinkText("Nouveau Dossier")->click();
204 // On vérifie qu'il n'y ait pas d'erreur
205 $this->verifynoerrors();
206 // On vérifie le nom de l'onglet
207 $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
208 // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
209 $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel("Permis de construire pour une maison individuelle et / ou ses annexes");
210 // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
211 $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
212 // Modification de la date
213 $this->byId("date_demande")->clear();
214 $this->byId("date_demande")->value("10/10/2014");
215 // On clique pour ajouter un pétitionnaire principale
216 $this->byId("add_petitionnaire_principal")->click();
217 // On remplit le champ
218 $this->select($this->byId("particulier_civilite"))->selectOptionByLabel("Monsieur");
219 // On remplit le champ
220 $this->byId("particulier_nom")->value("DURAND");
221 // On remplit le champ
222 $this->byId("particulier_prenom")->value("MICKAEL");
223 // On remplit le champ
224 $this->byId("particulier_date_naissance")->value("03/01/1956");
225 // On remplit le champ
226 $this->byId("particulier_commune_naissance")->value("LILLE");
227 // On remplit le champ
228 $this->byId("particulier_departement_naissance")->value("NORD");
229 // On remplit le champ
230 $this->byId("numero")->value("12");
231 // On remplit le champ
232 $this->byId("voie")->value("RUE DE LA LOI");
233 // On remplit le champ
234 $this->byId("complement")->value("APPT 12");
235 // On remplit le champ
236 $this->byId("localite")->value("MARSEILLE");
237 // On remplit le champ
238 $this->byId("code_postal")->value("13012");
239 // On remplit le champ
240 $this->byId("telephone_fixe")->value("0404040404");
241 // On clique sur ajouter
242 $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
243 // On vérifie qu'il n'y ait pas d'erreur
244 $this->verifynoerrors();
245 // On vérifie le message
246 $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-petitionnaire .message")->text());
247 // On clique sur le bouton retour
248 $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
249 // On vérifie que le text est présent
250 $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
251 // On clique sur ajouter
252 $this->byXPath("//input[@value='Ajouter']")->click();
253 // On vérifie qu'il n'y ait pas d'erreur
254 $this->verifynoerrors();
255 // On vérifie le message
256 $this->assertContains("Création du dossier d'autorisation n°",$this->byCssSelector(".message .text")->text());
257 // Récupération du numéro de dossier
258 preg_match('/(PC)[0-9 ]*(P0)/', $this->byCssSelector(".message .text")->text(), $dossier);
259 $dossier = $dossier[0];
260 // On se déconnecte
261 $this->logout();
262 }
263
264 /**
265 * Test l'ajout d'une demande de modification
266 */
267 public function testAjoutDemandeModification() {
268
269 // Année en cours
270 $annee = date("y");
271
272 /// On se connecte à l'application en tant qu'instructeur
273 // pour ajouter une instruction arrêté sur le dossier crée
274 $this->login("instr", "instr");
275 // On clique sur le menu
276 $this->byLinkText("Recherche")->click();
277 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
278 $this->verifyNoErrors();
279 // On recherche le dossier
280 $this->byId("dossier")->clear();
281 $this->byId("dossier")->value("PC013055".$annee."00001P0");
282 $this->byId("adv-search-submit")->click();
283 // On clique sur le dossier
284 $this->byId("action-tab-dossier_instruction-left-consulter-PC013055".$annee."00001P0")->click();
285 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
286 $this->verifyNoErrors();
287 //On déplie le fieldset Pétitionnaire
288 $this->byCssSelector("#liste_demandeur legend")->click();
289 sleep(1);
290 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
291 $this->verifyNoErrors();
292 // On vérifie la civilité du demandeur
293 $this->assertContains("Monsieur",$this->byCssSelector(".synthese_demandeur")->text());
294 // On clique sur l'onglet instruction
295 $this->byId("instruction")->click();
296 // On clique sur le + pour ajouter une instruction
297 $this->byCssSelector("#sousform-instruction .actions-max-1 a")->click();
298 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
299 $this->verifyNoErrors();
300 // On choisi l'événement
301 $this->select($this->byId("evenement"))->selectOptionByValue(81);
302 // On clique sur le bouton ajouter
303 $this->byXPath("//input[@value='Ajouter']")->click();
304 // On vérifie que l'instruction s'est bien ajouté
305 $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
306 // On clique sur le bouton retour
307 $this->byCssSelector("#sousform-instruction form a.retour")->click();
308 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
309 $this->verifyNoErrors();
310 // On clique sur l'onglet DI
311 $this->byId("main")->click();
312 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
313 $this->verifyNoErrors();
314 // on rafraichis la page
315 $this->refresh();
316 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
317 $this->verifyNoErrors();
318 // On vérifie l'état du dossier
319 $this->assertEquals("dossier accepter", $this->byId('etat')->text());
320 // On se déconnecte de l'instructeur
321 $this->deconnect();
322 // On se connecte en tant que guichet unique
323 $this->login("guichet", "guichet");
324 // On clique sur le menu "Nouveau Dossier"
325 $this->byLinkText("Autre Dossier")->click();
326 // On vérifie qu'il n'y ait pas d'erreur
327 $this->verifynoerrors();
328 // On vérifie le nom de l'onglet
329 $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
330 $this->byCssSelector("input[name='recherche']")->clear();
331 $this->byCssSelector("input[name='recherche']")->value("PC013055".$annee."00001P0");
332 $this->byId("adv-search-submit")->click();
333 // On clique pour ajouter une demande au dossier existant
334 $this->byId("action-tab-demande_autre_dossier-left-consulter-PC013055".$annee."00001P0")->click();
335 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
336 $this->verifyNoErrors();
337 // Vérifie le fil d'Ariane
338 $this->assertContains("Guichet Unique > Nouvelle Demande > Autre Dossier > PC 013055", $this->byXPath("//div[3]/div/h2")->text());
339 // On choisis le type de demande
340 $this->select($this->byId("demande_type"))->selectOptionByLabel("Demande de modification");
341 // On clique sur ajouter
342 $this->byXPath("//input[@value='Ajouter']")->click();
343 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
344 $this->verifyNoErrors();
345 // On vérifie le message
346 $this->assertRegExp("/^[\s\S]*Création du dossier d'instruction n°[\s\S]*$/", $this->byCssSelector("BODY")->text());
347 // On vérifie que le répertoire s'est crée
348 $this->assertTrue(file_exists("../trs/numerisation/Todo/PC013055".$annee."00001.M01"));
349 // On se déconnecte
350 $this->logout();
351
352 }
353
354 /**
355 * Tests l'affichage réglementaire
356 */
357 public function testAffichageReglementaire() {
358
359 // On se connecte à l'application
360 $this->login("guichet", "guichet");
361 // On clique sur le menu "Attestation"
362 $this->byLinkText("Attestation")->click();
363 // On vérifie qu'il n'y ait pas d'erreur
364 $this->verifynoerrors();
365 // On vérifie le nom de l'onglet
366 $this->assertEquals("Imprimer L'attestation D'affichage Réglementaire", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
367 // On écrit "PC0130551200002P0" dans le champ dossier
368 $this->byId("dossier")->value("PC0130551200002P0");
369 // On clique sur "Valider"
370 $this->byXPath("//input[@value='Valider']")->click();
371 // On vérifie qu'il n'y ait pas d'erreur
372 $this->verifynoerrors();
373 // On vérifie que text est présent
374 $this->assertRegExp("/^[\s\S]*Ce dossier n'a jamais été affiché.[\s\S]*$/",$this->byCssSelector("BODY")->text());
375 // On clique sur le menu "Registre"
376 $this->byLinkText("Registre")->click();
377 // On vérifie qu'il n'y ait pas d'erreur
378 $this->verifynoerrors();
379 // On vérifie le nom de l'onglet
380 $this->assertEquals("Imprimer Le Registre D'affichage Réglementaire", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
381 // On clique sur "Valider"
382 $this->byXPath("//input[@value='Valider']")->click();
383 // On clique sur "Oui" dans la fenêtre js qui apparaît
384 $this->acceptAlert();sleep(10);
385 // Liste des fenêtres ouvertes
386 $windows = $this->windowHandles();
387 // On change le focus de la fenêtre
388 $this->window($windows[1]);
389 // On vérifie qu'il n'y ait pas d'erreur
390 $this->verifynoerrors();
391 // On vérifie que text est présent
392 $this->assertRegExp('/^[\s\S]*Registre des dossiers en cours[\s\S]*$/',$this->source());
393 // On ferme la fenêtre
394 $this->closeWindow();
395 // On change le focus de la fenêtre
396 $this->window($windows[0]);
397 // On vérifie qu'il n'y ait pas d'erreur
398 $this->verifynoerrors();
399 // On vérifie que text est présent
400 $this->assertRegExp('/^[\s\S]*Traitement terminé. Le registre a été téléchargé.[\s\S]*$/',$this->byCssSelector("BODY")->text());
401 // On clique sur le menu "Attestation"
402 $this->byLinkText("Attestation")->click();
403 // On vérifie qu'il n'y ait pas d'erreur
404 $this->verifynoerrors();
405 // On vérifie le nom de l'onglet
406 $this->assertEquals("Imprimer L'attestation D'affichage Réglementaire", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
407 // On clique sur "Valider"
408 $this->byXPath("//input[@value='Valider']")->click();
409 // On vérifie qu'il n'y ait pas d'erreur
410 $this->verifynoerrors();
411 // On vérifie que text est présent
412 $this->assertRegExp("/^[\s\S]*Veuiller saisir un N° de dossier.[\s\S]*$/",$this->byCssSelector("BODY")->text());
413 // On écrit "123" dans le champ dossier
414 $this->byId("dossier")->value("123");
415 // On clique sur "Valider"
416 $this->byXPath("//input[@value='Valider']")->click();
417 // On vérifie qu'il n'y ait pas d'erreur
418 $this->verifynoerrors();
419 // On vérifie que text est présent
420 $this->assertRegExp("/^[\s\S]*Ce dossier n'existe pas.[\s\S]*$/",$this->byCssSelector("BODY")->text());
421 // On écrit "PC0130551200002P0" dans le champ dossier
422 $this->byId("dossier")->value("PC0130551200002P0");
423 // On clique sur "Valider"
424 $this->byXPath("//input[@value='Valider']")->click();
425 // On vérifie qu'il n'y ait pas d'erreur
426 $this->verifynoerrors();
427 // On vérifie que le text est présent
428 $this->assertRegExp("/^[\s\S]*Cliquez sur le lien ci-dessous pour télécharger votre attestation d'affichage[\s\S]*$/",$this->byCssSelector("BODY")->text());
429 // On clique sur "Attestation d'affichage"
430 $this->byLinkText("Attestation d'affichage")->click();sleep(5);
431 // Liste les fenêtres
432 $windows = $this->windowHandles();
433 // Change la fenêtre
434 $this->window($windows[1]);
435 // On vérifie qu'il n'y ait pas d'erreur
436 $this->verifynoerrors();
437 // On vérifie que le text est
438 // présent
439 $this->assertRegExp("/^[\s\S]*ATTESTATION D'AFFICHAGE REGLEMENTAIRE[\s\S]*$/",$this->source());
440 // On ferme la fenêtre
441 $this->closeWindow();
442 // On change le focus de la fenêtre
443 $this->window($windows[0]);
444 // On se deconnecte
445 $this->logout();
446 }
447
448 /**
449 * Test le Récépissé
450 */
451 public function testRecepisse() {
452
453 // On se connecte à l'application
454 $this->login("guichet", "guichet");
455 // On clique sur le menu "Récépissé"
456 $this->byLinkText("Récépissé")->click();
457 // On vérifie qu'il n'y ait pas d'erreur
458 $this->verifynoerrors();
459 // On vérifie le nom de l'onglet
460 $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
461 // On clique sur "AT0130551200001P0"
462 $this->byLinkText("AT 013055 12 00001P0")->click();
463 // On vérifie qu'il n'y ait pas d'erreur
464 $this->verifynoerrors();
465 // Vérifie le fil d'Ariane
466 $this->assertEquals("Guichet Unique > Nouvelle Demande > Récépissé > AT 013055 12 00001P0", $this->byXPath("//div[3]/div/h2")->text());
467 // On vérifie que le text est présent
468 $this->assertRegExp("/^[\s\S]*Demande d'autorisation de construire, d'aménager ou de modifier un ERP[\s\S]*$/",$this->byCssSelector("BODY")->text());
469 // Le nom du pétitionnaire doit apparaître
470 $this->assertRegExp("/^[\s\S]*BERNARD LILIANE[\s\S]*$/",$this->byCssSelector("BODY")->text());
471 // On clique sur le lien
472 $this->byLinkText("Éditer le récépissé PDF")->click();sleep(5);
473 // Liste les fenêtres
474 $windows = $this->windowHandles();
475 // Change la fenêtre
476 $this->window($windows[1]);
477 // On vérifie qu'il n'y ait pas d'erreur
478 $this->verifynoerrors();
479 // On vérifie que le text est présent
480 $this->assertRegExp("/^[\s\S]*RECEPISSE DE DEPOT[\s\S]*$/",$this->source());
481 // On ferme la fenêtre
482 $this->closeWindow();
483 // On change le focus de la fenêtre
484 $this->window($windows[0]);
485 // On clique sur "Retour"
486 $this->byLinkText("Retour")->click();
487 // On vérifie qu'il n'y ait pas d'erreur
488 $this->verifynoerrors();
489 // On vérifie le nom de l'onglet
490 $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
491 // On se deconnecte
492 $this->logout();
493 }
494
495 /**
496 * Test les pétitionnaires fréquents
497 */
498 public function testPetitionnaireFrequent() {
499
500 // On se connecte à l'application
501 $this->login("guichet", "guichet");
502 // On clique sur le menu "Nouveau Dossier"
503 $this->byLinkText("Nouveau Dossier")->click();
504 // On vérifie qu'il n'y ait pas d'erreur
505 $this->verifynoerrors();
506 // On vérifie le nom de l'onglet
507 $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
508 // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
509 $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel("Permis de construire pour une maison individuelle et / ou ses annexes");
510 // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
511 $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
512 // On clique pour ajouter un pétitionnaire principale
513 $this->byId("add_petitionnaire_principal")->click();
514 // On remplit le champ
515 $this->byId("particulier_nom")->value("DURAND");
516 // On remplit le champ
517 $this->byId("particulier_prenom")->value("MICKAEL");
518 // On remplit le champ
519 $this->byId("particulier_date_naissance")->value("03/01/1956");
520 // On remplit le champ
521 $this->byId("particulier_commune_naissance")->value("LILLE");
522 // On remplit le champ
523 $this->byId("particulier_departement_naissance")->value("NORD");
524 // On remplit le champ
525 $this->byId("numero")->value("12");
526 // On remplit le champ
527 $this->byId("voie")->value("RUE DE LA LOI");
528 // On remplit le champ
529 $this->byId("complement")->value("APPT 12");
530 // On remplit le champ
531 $this->byId("localite")->value("MARSEILLE");
532 // On remplit le champ
533 $this->byId("code_postal")->value("13012");
534 // On remplit le champ
535 $this->byId("telephone_fixe")->value("0404040404");
536 // On sélectionne pétitionnaire fréquent
537 $this->byId("frequent")->click();
538 // On clique sur ajouter
539 $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
540 // On vérifie qu'il n'y ait pas d'erreur
541 $this->verifynoerrors();
542 // On vérifie le message
543 $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-petitionnaire .message")->text());
544 // On clique sur le bouton retour
545 $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
546 // On vérifie que le text est présent
547 $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
548 // On clique sur ajouter
549 $this->byXPath("//input[@value='Ajouter']")->click();
550 // On vérifie qu'il n'y ait pas d'erreur
551 $this->verifynoerrors();
552 // On vérifie le message
553 $this->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°[\s\S]*$/",$this->byCssSelector(".message")->text());
554 // On clique
555 $this->byCssSelector("a#link_demande_recepisse")->click();sleep(5);
556 // Liste les fenêtres
557 $windows = $this->windowHandles();
558 // Change la fenêtre
559 $this->window($windows[1]);
560 // On vérifie qu'il n'y ait pas d'erreur
561 $this->verifynoerrors();
562 // On vérifie que le text est présent
563 $this->assertRegExp("/^[\s\S]*RECEPISSE DE DEPOT[\s\S]*$/",$this->source());
564 // On ferme la fenêtre
565 $this->closeWindow();
566 // On change le focus de la fenêtre
567 $this->window($windows[0]);
568 // On clique sur le bouton retour
569 $this->byLinkText("Retour")->click();
570 // On vérifie qu'il n'y ait pas d'erreur
571 $this->verifynoerrors();
572 //On se déconnecte
573 $this->deconnect();
574
575 //On se connecte en administrateur
576 $this->login("admin", "admin");
577 //On clique sur le menu guichet unique
578 $this->byLinkText("Guichet Unique")->click();
579 // On clique sur pétitionnaire fréquent
580 $this->byLinkText("Pétitionnaire Fréquent")->click();
581 // On vérifie qu'il n'y ait pas d'erreur
582 $this->verifynoerrors();
583 // On vérifie que le text est présent
584 $this->assertRegExp("/^[\s\S]*pétitionnaire fréquent[\s\S]*$/",$this->source());
585 // On vérifie que le text est présent
586 $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->source());
587 // On clique sur le résultat
588 $this->byLinkText("DURAND MICKAEL")->click();
589 // On vérifie qu'il n'y ait pas d'erreur
590 $this->verifynoerrors();
591 // On vérifie que le text est présent
592 $this->assertRegExp("/^[\s\S]*RUE DE LA LOI[\s\S]*$/",$this->source());
593 // On marque le pétitionnaire comme non fréquent
594 $this->byId("action-form-petitionnaire_frequent-frequent")->click();
595 //On vérifie le message
596 $this->assertRegExp("/^[\s\S]*Mise à jour effectuée avec succès[\s\S]*$/",$this->byCssSelector("#tabs-1 .message")->text());
597 // On clique sur le bouton "Retour"
598 $this->byLinkText("Retour")->click();
599 // On vérifie qu'il n'y ait pas d'erreur
600 $this->verifynoerrors();
601 // On vérifie que le text est présent
602 $this->assertRegExp("/^[\s\S]*pétitionnaire fréquent[\s\S]*$/",$this->source());
603 $this->assertNotContains('DURAND MICKAEL', $this->source());
604 // On se déconnecte
605 $this->logout();
606 }
607
608 /**
609 * Active l'option sig avec la valeur nécessaire pour la suite des tests
610 */
611 public function test_active_option_sig() {
612
613 // On se connecte en tant que "admin"
614 $this->login("admin", "admin");
615 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
616 $this->verifyNoErrors();
617 // On clique sur le lien "Administration" dans le menu
618 $this->byLinkText("Administration")->click();
619 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
620 $this->verifyNoErrors();
621 // // On clique sur le lien "Paramètre" dans le menu
622 $this->byLinkText("Paramètre")->click();
623 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
624 $this->verifyNoErrors();
625 // On remplis le champs de recherche simple
626 $this->byCssSelector("input[name='recherche']")->value('option_sig');
627 // On clique sur le bouton recherche
628 $this->byCssSelector(".ui-button")->click();
629 // On clique sur le résultat
630 $this->byLinkText("option_sig")->click();
631 // On clique sur le bouton "Modifier"
632 $this->byId('action-form-om_parametre-modifier')->click();
633 // On change la valeur par "sig_externe"
634 $this->byId('valeur')->clear();
635 $this->byId('valeur')->value('sig_externe');
636 // On valide la modification
637 $this->byCssSelector("input[value='Modifier']")->click();
638 // On vérifie le message de validation
639 $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#tabs-1 .message")->text());
640 // On clique sur le bouton 'Retour'
641 $this->byLinkText("Retour")->click();
642 // On vérifie les nouvelles données
643 $this->assertEquals("sig_externe", $this->byId("valeur")->text());
644 // On se déconnecte
645 $this->logout();
646 }
647
648 /**
649 * Test l'ajout d'une demande initial en utilisant les références cadastrales
650 * pour récupérer l'adresse
651 */
652 public function testAjoutDemandeInitialReferenceCadastrale() {
653
654 // On se connecte à l'application
655 $this->login("guichet", "guichet");
656 // On clique sur le menu "Nouveau Dossier"
657 $this->byLinkText("Nouveau Dossier")->click();
658 // On vérifie qu'il n'y ait pas d'erreur
659 $this->verifynoerrors();
660 // On vérifie le nom de l'onglet
661 $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
662 // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
663 $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel("Permis de construire pour une maison individuelle et / ou ses annexes");
664 // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
665 $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
666 // XXX Problème de javascript seulement dans cette fonction
667 // Les alerts ne passent pas lorsque le focus n'est pas sur le
668 // navigateur
669 //On saisie des références cadastrales inccorect
670 // $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(1)")->value("aa");
671 // // On change le focus pour faire apparaitre le message
672 // $this->byId('date_demande')->value(date('d/m/Y'));
673 // sleep(5);
674 // // Message d'erreur concernant le numéro de quartier
675 // $this->assertEquals("Vous ne devez saisir que des nombres entiers", $this->alertText());
676 // $this->acceptAlert();
677 // $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(2)")->value("11");
678 // // On change le focus pour faire apparaitre le message
679 // $this->byId('date_demande')->value(date('d/m/Y'));
680 // sleep(5);
681 // // Message d'erreur concernant la section
682 // $this->assertEquals("Vous ne devez saisir que des lettres dans ce champs.", $this->alertText());
683 // $this->acceptAlert();
684 // $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(3)")->value("bb");
685 // // On change le focus pour faire apparaitre le message
686 // $this->byId('date_demande')->value(date('d/m/Y'));
687 // sleep(5);
688 // // Message d'erreur concernant le numéro de parcelle
689 // $this->assertEquals("Vous ne devez saisir que des nombres entiers", $this->alertText());
690 // $this->acceptAlert();
691 //On saisie les références cadastrales
692 // $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(1)")->value("1");
693 // $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(2)")->value("dc");
694 // $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(3)")->value("15");
695 // XXX Renplace les valeurs juste au dessus qui devraient se mettre au
696 // bon format automatiquement grâce au javascript
697 $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(1)")->value("001");
698 $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(2)")->value("DC");
699 $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(3)")->value("0015");
700 //On clique sur le bouton de recherche "Cadastrale = > Adresse"
701 $this->byId("cad-adr-them")->click();
702 sleep(1);
703 // On vérifie que le format des champs est mise à jour automatiquement
704 $this->assertEquals("001", $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(1)")->attribute('value'));
705 $this->assertEquals("DC", $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(2)")->attribute('value'));
706 $this->assertEquals("0015", $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(3)")->attribute('value'));
707 //On verifie l'adresse
708 $this->assertEquals("0075", $this->byId("terrain_adresse_voie_numero")->attribute('value'));
709 $this->assertEquals("TRA DE LA DOMINIQUE", $this->byId("terrain_adresse_voie")->attribute('value'));
710 $this->assertEquals("13011", $this->byId("terrain_adresse_code_postal")->attribute('value'));
711 $this->assertEquals("MARSEILLE", $this->byId("terrain_adresse_localite")->attribute('value'));
712 //On vide un des champs des références cadastrales
713 $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(3)")->clear();
714 // On valide le formulaire
715 $this->byXPath("//input[@value='Ajouter']")->click();
716 //Un alert javascript doit apparaître, on vérifie le message
717 $this->assertEquals("Les références cadastrales saisies sont incorrectes. Veuillez les corriger.", $this->alertText());
718 // On valide l'alert
719 $this->acceptAlert();sleep(1);
720 //On ajoute la référence
721 $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(3)")->value("0015");
722 //On valide le formulaire
723 $this->byXPath("//input[@value='Ajouter']")->click();
724 // On vérifie le message d'erreur
725 $this->assertRegExp("/^[\s\S]*SAISIE NON ENREGISTRÉE[\s\S]*$/", $this->byCssSelector(".message")->text());
726 sleep(1);
727 // On vérifie que les références cadastrales soient toujours affiché
728 $this->assertEquals("001", $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(1)")->attribute('value'));
729 $this->assertEquals("DC", $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(2)")->attribute('value'));
730 $this->assertEquals("0015", $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(3)")->attribute('value'));
731 //On saisie les références cadastrales
732 $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(1)")->clear();
733 $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(2)")->clear();
734 $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(3)")->clear();
735 //On clique sur le bouton de recherche "Cadastrale = > Adresse"
736 $this->byId("cad-adr-them")->click();
737 //On valide le message d'erreur
738 $this->assertEquals('Aucune référence cadastrale fournie', $this->alertText());
739 $this->acceptAlert();
740 // On ressaisit les références cadatrales
741 // ref 1
742 $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(1)")->value("001");
743 $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(2)")->value("DC");
744 $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(3)")->value("0015");
745 // réf 2
746 $this->byCssSelector("div#morelineReferenceCadastrale > div.form-content > span.add-16")->click();
747 $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(6)")->value("002");
748 $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(7)")->value("DC");
749 $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(8)")->value("0015");
750 // réf 3
751 $this->byCssSelector("div#morelineReferenceCadastrale > div.form-content > span.add-16")->click();
752 $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(11)")->value("003");
753 $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(12)")->value("DC");
754 $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(13)")->value("0015");
755 // réf 4
756 $this->byCssSelector("div#morelineReferenceCadastrale > div.form-content > span.add-16")->click();
757 $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(16)")->value("004");
758 $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(17)")->value("DC");
759 $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(18)")->value("0015");
760 // réf 5
761 $this->byCssSelector("div#morelineReferenceCadastrale > div.form-content > span.add-16")->click();
762 $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(21)")->value("005");
763 $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(22)")->value("DC");
764 $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(23)")->value("0015");
765 // réf 6
766 $this->byCssSelector("div#morelineReferenceCadastrale > div.form-content > span.add-16")->click();
767 $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(26)")->value("006");
768 $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(27)")->value("DC");
769 $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(28)")->value("0015");
770 // réf 7
771 $this->byCssSelector("div#morelineReferenceCadastrale > div.form-content > span.add-16")->click();
772 $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(31)")->value("007");
773 $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(32)")->value("DC");
774 $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(33)")->value("0015");
775 // réf 8
776 $this->byCssSelector("div#morelineReferenceCadastrale > div.form-content > span.add-16")->click();
777 $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(36)")->value("008");
778 $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(37)")->value("DC");
779 $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(38)")->value("0015");
780 // réf 9
781 $this->byCssSelector("div#morelineReferenceCadastrale > div.form-content > span.add-16")->click();
782 $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(41)")->value("009");
783 $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(42)")->value("DC");
784 $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(43)")->value("0015");
785 // réf 10
786 $this->byCssSelector("div#morelineReferenceCadastrale > div.form-content > span.add-16")->click();
787 $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(46)")->value("010");
788 $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(47)")->value("DC");
789 $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(48)")->value("0015");
790 // réf 11
791 $this->byCssSelector("div#morelineReferenceCadastrale > div.form-content > span.add-16")->click();
792 $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(51)")->value("011");
793 $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(52)")->value("DC");
794 $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(53)")->value("0015");
795 // réf 12
796 $this->byCssSelector("div#morelineReferenceCadastrale > div.form-content > span.add-16")->click();
797 $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(56)")->value("012");
798 $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(57)")->value("DC");
799 $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(58)")->value("0015");
800 // réf 13
801 $this->byCssSelector("div#morelineReferenceCadastrale > div.form-content > span.add-16")->click();
802 $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(61)")->value("013");
803 $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(62)")->value("DC");
804 $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(63)")->value("0015");
805 // réf 14
806 $this->byCssSelector("div#morelineReferenceCadastrale > div.form-content > span.add-16")->click();
807 $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(66)")->value("014");
808 $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(67)")->value("DC");
809 $this->byCssSelector("input.reference_cadastrale_custom_field:nth-child(68)")->value("0015");
810 // On clique pour ajouter un pétitionnaire principale
811 $this->byId("add_petitionnaire_principal")->click();
812 // On remplit le champ
813 $this->byId("particulier_nom")->value("DURAND");
814 // On remplit le champ
815 $this->byId("particulier_prenom")->value("MICKAEL");
816 // On remplit le champ
817 $this->byId("particulier_date_naissance")->value("03/01/1956");
818 // On remplit le champ
819 $this->byId("particulier_commune_naissance")->value("LILLE");
820 // On remplit le champ
821 $this->byId("particulier_departement_naissance")->value("NORD");
822 // On remplit le champ
823 $this->byId("numero")->value("12");
824 // On remplit le champ
825 $this->byId("voie")->value("RUE DE LA LOI");
826 // On remplit le champ
827 $this->byId("complement")->value("APPT 12");
828 // On remplit le champ
829 $this->byId("localite")->value("MARSEILLE");
830 // On remplit le champ
831 $this->byId("code_postal")->value("13012");
832 // On remplit le champ
833 $this->byId("telephone_fixe")->value("0404040404");
834 // On clique sur ajouter
835 $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
836 // On vérifie qu'il n'y ait pas d'erreur
837 $this->verifynoerrors();
838 // On vérifie le message
839 $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-petitionnaire .message")->text());
840 // On clique sur le bouton retour
841 $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
842 // On vérifie que le text est présent
843 $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
844 // On clique sur ajouter
845 $this->byXPath("//input[@value='Ajouter']")->click();
846 // On vérifie qu'il n'y ait pas d'erreur
847 $this->verifynoerrors();
848 // On vérifie le message
849 $this->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°[\s\S]*$/",$this->byCssSelector(".message")->text());
850 // Récupération du numéro de dossier
851 preg_match('/(PC)[0-9 ]*(P0)/', $this->byCssSelector(".message .text")->text(), $dossier);
852 $dossier_libelle = $dossier[0];
853 $dossier = str_replace(' ', '', $dossier_libelle);
854 $dossier_dir = substr_replace($dossier, '.', -2, -3);
855 // On clique
856 $this->byCssSelector("a#link_demande_recepisse")->click();sleep(5);
857 // Liste les fenêtres
858 $windows = $this->windowHandles();
859 // Change la fenêtre
860 $this->window($windows[1]);
861 // On vérifie qu'il n'y ait pas d'erreur
862 $this->verifynoerrors();
863 // On vérifie que le text est présent
864 $this->assertRegExp("/^[\s\S]*RECEPISSE DE DEPOT[\s\S]*$/",$this->source());
865 // On ferme la fenêtre
866 $this->closeWindow();
867 // On change le focus de la fenêtre
868 $this->window($windows[0]);
869 // On clique sur le bouton retour
870 $this->byLinkText("Retour")->click();
871 // On vérifie qu'il n'y ait pas d'erreur
872 $this->verifynoerrors();
873 // On vérifie que le répertoire s'est crée
874 $this->assertTrue(file_exists("../trs/numerisation/Todo/".$dossier_dir));
875 // On se déconnecte
876 $this->logout();
877 }
878
879 /*
880 * Cette fonction va tester l'affectation automatique des instructeurs aux
881 * dossiers d'instruction.
882 * Quatre cas sont possibles :
883 * - Aucun instructeur ne correspond, ;
884 * - Un instructeur joker correspond, ;
885 * - Un instructeur correspond, .
886 */
887 function testAffectationAutomatique(){
888
889 // On se connecte à l'application
890 $this->login("guichet", "guichet");
891 //Ajout d'un dossier d'instructeur avec affectation d'aucun instructeur
892 $this->ajoutDossierAffectationAutomatique("801", "A", "0001", "Permis de construire comprenant ou non des démolitions", " -");
893
894 //Ajout d'un dossier d'instructeur avec affectation d'un instructeur
895 //joker avec seulement le type de dossier d'autorisation détaillé de
896 //renseigné
897 $this->ajoutDossierAffectationAutomatique("806", "A", "0001", "Permis de construire pour une maison individuelle et / ou ses annexes", "Louis Laurent");
898
899 //Ajout d'un dossier d'instructeur avec affectation du seul instructeur
900 //correspondant parfaitement aux critères
901 $this->ajoutDossierAffectationAutomatique("801", "A", "0001", "Permis de construire pour une maison individuelle et / ou ses annexes", "Pierre Martin");
902 // On se déconnecte
903 $this->logout();
904 }
905
906 /**
907 * Ajoute un dossier d'instruction
908 * @param string $reference_cadastrale_quartier Le quartier de la référence
909 * cadastrale du dossier
910 * @param string $reference_cadastrale_section La section de la référence
911 * cadastrale du dossier
912 * @param string $reference_cadastrale_parcelle La parcelle de la référence
913 * cadastrale du dossier
914 * @param string $datd dossier d'autorisation type détaillé
915 * @param string $instructeur le nom de l'instructeur
916 *
917 * @return boolean
918 */
919 function ajoutDossierAffectationAutomatique($reference_cadastrale_quartier,
920 $reference_cadastrale_section, $reference_cadastrale_parcelle,$datd,
921 $instructeur){
922
923 //On affiche le tableau de bord
924 $this->byLinkText("Tableau de bord")->click();
925 // On clique sur le menu "Nouveau Dossier"
926 $this->byLinkText("Nouveau Dossier")->click();
927 // On vérifie qu'il n'y ait pas d'erreur
928 $this->verifynoerrors();
929 // On vérifie le nom de l'onglet
930 $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
931 // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
932 $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel($datd);
933 // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
934 $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
935 //On saisie les références cadastrales
936 $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(1)")->value($reference_cadastrale_quartier);
937 $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(2)")->value($reference_cadastrale_section);
938 $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(3)")->value($reference_cadastrale_parcelle);
939 //On clique sur le bouton de recherche "Cadastrale = > Adresse"
940 $this->byId("cad-adr-them")->click();
941 // On clique pour ajouter un pétitionnaire principale
942 $this->byId("add_petitionnaire_principal")->click();
943 // On remplit le champ
944 $this->byId("particulier_nom")->value("DURAND");
945 // On remplit le champ
946 $this->byId("particulier_prenom")->value("MICKAEL");
947 // On remplit le champ
948 $this->byId("particulier_date_naissance")->value("03/01/1956");
949 // On remplit le champ
950 $this->byId("particulier_commune_naissance")->value("LILLE");
951 // On remplit le champ
952 $this->byId("particulier_departement_naissance")->value("NORD");
953 // On remplit le champ
954 $this->byId("numero")->value("12");
955 // On remplit le champ
956 $this->byId("voie")->value("RUE DE LA LOI");
957 // On remplit le champ
958 $this->byId("complement")->value("APPT 12");
959 // On remplit le champ
960 $this->byId("localite")->value("MARSEILLE");
961 // On remplit le champ
962 $this->byId("code_postal")->value("13012");
963 // On remplit le champ
964 $this->byId("telephone_fixe")->value("0404040404");
965 // On clique sur ajouter
966 $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
967 // On vérifie qu'il n'y ait pas d'erreur
968 $this->verifynoerrors();
969 // On vérifie le message
970 $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-petitionnaire .message")->text());
971 // On clique sur le bouton retour
972 $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
973 // On vérifie que le text est présent
974 $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
975 // On clique sur ajouter
976 $this->byXPath("//input[@value='Ajouter']")->click();
977 // On vérifie qu'il n'y ait pas d'erreur
978 $this->verifynoerrors();
979 // On vérifie le message
980 $this->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°[\s\S]*$/",$this->byCssSelector(".message")->text());
981 // On clique
982 $this->byCssSelector("a#link_demande_recepisse")->click();sleep(5);
983 // Liste les fenêtres
984 $windows = $this->windowHandles();
985 // Change la fenêtre
986 $this->window($windows[1]);
987 // On vérifie qu'il n'y ait pas d'erreur
988 $this->verifynoerrors();
989 // On vérifie que le text est présent
990 $this->assertRegExp("/^[\s\S]*Dossier suivi par ".$instructeur."[\s\S]*$/",$this->source());
991 // On ferme la fenêtre
992 $this->closeWindow();
993 // On change le focus de la fenêtre
994 $this->window($windows[0]);
995 }
996
997 /**
998 * Vérifie le menu "Autre Dossier" et "Dossier En Cours"
999 */
1000 public function test_autre_dossier() {
1001
1002 // On se connecte en tant que "guichet"
1003 $this->login("guichet", "guichet");
1004 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1005 $this->verifyNoErrors();
1006 // On clique sur "Autre Dossier"
1007 $this->byLinkText("Autre Dossier")->click();
1008 // On vérifie qu'il n'y ait pas d'erreur
1009 $this->verifynoerrors();
1010 // On recherche le dossier
1011 $this->byCssSelector("input[name='recherche']")->clear();
1012 $this->byCssSelector("input[name='recherche']")->value("PC013055".date("y")."00001P0");
1013 $this->byId("adv-search-submit")->click();
1014 // On vérifie qu'on ne le trouve pas
1015 $this->assertRegExp(
1016 "/^[\s\S]*PC 013055 ".date("y")." 00001P0[\s\S]*$/",
1017 $this->byCssSelector("#tab-demande_autre_dossier .tab-tab")->text()
1018 );
1019 // On clique sur "Dossier En Cours"
1020 $this->byLinkText("Dossier En Cours")->click();
1021 // On vérifie qu'il n'y ait pas d'erreur
1022 $this->verifynoerrors();
1023 // On vérifie que le dossier précédement contrôlé n'ait pas
1024 // affiché
1025 $this->assertNotContains("PC 013055 13 00001P0",
1026 $this->byCssSelector("#tab-demande_dossier_encours .tab-tab")->text());
1027 // On se déconnecte
1028 $this->logout();
1029 }
1030
1031 /**
1032 * Désactive l'option sig avec la valeur nécessaire
1033 */
1034 public function test_desactive_option_sig() {
1035
1036 // On se connecte en tant que "admin"
1037 $this->login("admin", "admin");
1038 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1039 $this->verifyNoErrors();
1040 // On clique sur le lien "Administration" dans le menu
1041 $this->byLinkText("Administration")->click();
1042 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1043 $this->verifyNoErrors();
1044 // // On clique sur le lien "Paramètre" dans le menu
1045 $this->byLinkText("Paramètre")->click();
1046 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1047 $this->verifyNoErrors();
1048 // On remplis le champs de recherche simple
1049 $this->byCssSelector("input[name='recherche']")->value('option_sig');
1050 // On clique sur le bouton recherche
1051 $this->byCssSelector(".ui-button")->click();
1052 // On clique sur le résultat
1053 $this->byLinkText("option_sig")->click();
1054 // On clique sur le bouton "Modifier"
1055 $this->byId('action-form-om_parametre-modifier')->click();
1056 // On change la valeur par "aucun"
1057 $this->byId('valeur')->clear();
1058 $this->byId('valeur')->value('aucun');
1059 // On valide la modification
1060 $this->byCssSelector("input[value='Modifier']")->click();
1061 // On vérifie le message de validation
1062 $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#tabs-1 .message")->text());
1063 // On clique sur le bouton 'Retour'
1064 $this->byLinkText("Retour")->click();
1065 // On vérifie les nouvelles données
1066 $this->assertEquals("aucun", $this->byId("valeur")->text());
1067 // On se déconnecte
1068 $this->logout();
1069 }
1070 }
1071
1072 ?>

Properties

Name Value
svn:keywords Id

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26