/[openfoncier]/trunk/tests/testGuichetUnique.php
ViewVC logotype

Contents of /trunk/tests/testGuichetUnique.php

Parent Directory Parent Directory | Revision Log Revision Log


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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26