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

Contents of /trunk/tests/testGuichetUnique.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 4232 - (show annotations)
Fri May 20 06:24:43 2016 UTC (8 years, 8 months ago) by fmichon
File size: 32623 byte(s)
* Tests : Suppression de testcases inutiles permettant d'activer/désactiver
  l'option SIG.

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 * Test le Récépissé
352 */
353 public function test_06_Recepisse() {
354
355 // On se connecte à l'application
356 $this->login("guichet", "guichet");
357 // On clique sur le menu "Récépissé"
358 $this->byLinkText("Récépissé")->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("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
363 // On clique sur "AT0130551200001P0"
364 $this->byLinkText("AT 013055 12 00001P0")->click();
365 // On vérifie qu'il n'y ait pas d'erreur
366 $this->verifynoerrors();
367 // Vérifie le fil d'Ariane
368 $this->assertEquals("Guichet Unique > Nouvelle Demande > Récépissé > AT 013055 12 00001P0", $this->byXPath("//div[3]/div/h2")->text());
369 // On vérifie que le text est présent
370 $this->assertRegExp("/^[\s\S]*Demande d'autorisation de construire, d'aménager ou de modifier un ERP[\s\S]*$/",$this->byCssSelector("BODY")->text());
371 // Le nom du pétitionnaire doit apparaître
372 $this->assertRegExp("/^[\s\S]*BERNARD LILIANE[\s\S]*$/",$this->byCssSelector("BODY")->text());
373 // On clique sur le lien
374 $this->byLinkText("Éditer le récépissé PDF")->click();sleep(5);
375 // Liste les fenêtres
376 $windows = $this->windowHandles();
377 // Change la fenêtre
378 $this->window($windows[1]);
379 // On vérifie qu'il n'y ait pas d'erreur
380 $this->verifynoerrors();
381 // On vérifie que le text est présent
382 $this->assertRegExp("/^[\s\S]*RECEPISSE DE DEPOT[\s\S]*$/",$this->source());
383 // On ferme la fenêtre
384 $this->closeWindow();
385 // On change le focus de la fenêtre
386 $this->window($windows[0]);
387 // On clique sur "Retour"
388 $this->byLinkText("Retour")->click();
389 // On vérifie qu'il n'y ait pas d'erreur
390 $this->verifynoerrors();
391 // On vérifie le nom de l'onglet
392 $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
393 // On se deconnecte
394 $this->logout();
395 }
396
397 /**
398 * Test les pétitionnaires fréquents
399 */
400 public function test_07_PetitionnaireFrequent() {
401
402 // On se connecte à l'application
403 $this->login("guichet", "guichet");
404 // On clique sur le menu "Nouveau Dossier"
405 $this->byLinkText("Nouveau Dossier")->click();
406 // On vérifie qu'il n'y ait pas d'erreur
407 $this->verifynoerrors();
408 // On vérifie le nom de l'onglet
409 $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
410 // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
411 $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel("Permis de construire pour une maison individuelle et / ou ses annexes");
412 // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
413 $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
414 // On clique pour ajouter un pétitionnaire principale
415 $this->byId("add_petitionnaire_principal")->click();
416 // On remplit le champ
417 $this->byId("particulier_nom")->value("DURAND");
418 // On remplit le champ
419 $this->byId("particulier_prenom")->value("MICKAEL");
420 // On remplit le champ
421 $this->byId("particulier_date_naissance")->value("03/01/1956");
422 // On remplit le champ
423 $this->byId("particulier_commune_naissance")->value("LILLE");
424 // On remplit le champ
425 $this->byId("particulier_departement_naissance")->value("NORD");
426 // On remplit le champ
427 $this->byId("numero")->value("12");
428 // On remplit le champ
429 $this->byId("voie")->value("RUE DE LA LOI");
430 // On remplit le champ
431 $this->byId("complement")->value("APPT 12");
432 // On remplit le champ
433 $this->byId("localite")->value("MARSEILLE");
434 // On remplit le champ
435 $this->byId("code_postal")->value("13012");
436 // On remplit le champ
437 $this->byId("telephone_fixe")->value("0404040404");
438 // On sélectionne pétitionnaire fréquent
439 $this->byId("frequent")->click();
440 // On clique sur ajouter
441 $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
442 // On vérifie qu'il n'y ait pas d'erreur
443 $this->verifynoerrors();
444 // On vérifie le message
445 $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-petitionnaire .message")->text());
446 // On clique sur le bouton retour
447 $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
448 // On vérifie que le text est présent
449 $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
450 // On clique sur ajouter
451 $this->byXPath("//input[@value='Ajouter']")->click();
452 // On vérifie qu'il n'y ait pas d'erreur
453 $this->verifynoerrors();
454 // On vérifie le message
455 $this->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°[\s\S]*$/",$this->byCssSelector(".message")->text());
456 // On clique
457 $this->byCssSelector("a#link_demande_recepisse")->click();sleep(5);
458 // Liste les fenêtres
459 $windows = $this->windowHandles();
460 // Change la fenêtre
461 $this->window($windows[1]);
462 // On vérifie qu'il n'y ait pas d'erreur
463 $this->verifynoerrors();
464 // On vérifie que le text est présent
465 $this->assertRegExp("/^[\s\S]*RECEPISSE DE DEPOT[\s\S]*$/",$this->source());
466 // On ferme la fenêtre
467 $this->closeWindow();
468 // On change le focus de la fenêtre
469 $this->window($windows[0]);
470 // On clique sur le bouton retour
471 $this->byLinkText("Retour")->click();
472 // On vérifie qu'il n'y ait pas d'erreur
473 $this->verifynoerrors();
474 //On se déconnecte
475 $this->deconnect();
476
477 //On se connecte en administrateur
478 $this->login("admin", "admin");
479 //On clique sur le menu guichet unique
480 $this->byLinkText("Guichet Unique")->click();
481 // On clique sur pétitionnaire fréquent
482 $this->byLinkText("Pétitionnaire Fréquent")->click();
483 // On vérifie qu'il n'y ait pas d'erreur
484 $this->verifynoerrors();
485 // On vérifie que le text est présent
486 $this->assertRegExp("/^[\s\S]*pétitionnaire fréquent[\s\S]*$/",$this->source());
487 // On lance une recherche simple
488 $this->byName("recherche")->value("*DUR");
489 $this->select($this->byName("selectioncol"))->selectOptionByLabel("nom");
490 // On clique sur recherche
491 $this->byName("s1")->click();
492 // On vérifie qu'il n'y ait pas d'erreur
493 $this->verifynoerrors();
494 // On vérifie que le text est présent
495 $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->source());
496 // On clique sur le résultat
497 $this->byLinkText("DURAND MICKAEL")->click();
498 // On vérifie qu'il n'y ait pas d'erreur
499 $this->verifynoerrors();
500 // On vérifie que le text est présent
501 $this->assertRegExp("/^[\s\S]*RUE DE LA LOI[\s\S]*$/",$this->source());
502 // On marque le pétitionnaire comme non fréquent
503 $this->byId("action-form-petitionnaire_frequent-non_frequent")->click();
504 //On vérifie le message
505 $this->assertRegExp("/^[\s\S]*Mise à jour effectuée avec succès[\s\S]*$/",$this->byCssSelector("#tabs-1 .message")->text());
506 // On clique sur le bouton "Retour"
507 $this->byLinkText("Retour")->click();
508 // On vérifie qu'il n'y ait pas d'erreur
509 $this->verifynoerrors();
510 // On vérifie que le text est présent
511 $this->assertRegExp("/^[\s\S]*pétitionnaire fréquent[\s\S]*$/",$this->source());
512 $this->assertNotContains('DURAND MICKAEL', $this->source());
513 // On se déconnecte
514 $this->logout();
515 }
516
517 /*
518 * Cette fonction va tester l'affectation automatique des instructeurs aux
519 * dossiers d'instruction.
520 * Quatre cas sont possibles :
521 * - Aucun instructeur ne correspond, ;
522 * - Un instructeur joker correspond, ;
523 * - Un instructeur correspond, .
524 */
525 function test_10_AffectationAutomatique(){
526
527 // On se connecte à l'application
528 $this->login("guichet", "guichet");
529 //Ajout d'un dossier d'instructeur avec affectation d'aucun instructeur
530 $this->ajoutDossierAffectationAutomatique("801", "A", "0001", "Permis de construire comprenant ou non des démolitions", "Poly Com Marseille");
531
532 //Ajout d'un dossier d'instructeur avec affectation d'un instructeur
533 //joker avec seulement le type de dossier d'autorisation détaillé de
534 //renseigné
535 $this->ajoutDossierAffectationAutomatique("806", "A", "0001", "Permis de construire pour une maison individuelle et / ou ses annexes", "Louis Laurent");
536
537 //Ajout d'un dossier d'instructeur avec affectation du seul instructeur
538 //correspondant parfaitement aux critères
539 $this->ajoutDossierAffectationAutomatique("801", "A", "0001", "Permis de construire pour une maison individuelle et / ou ses annexes", "Pierre Martin");
540 // On se déconnecte
541 $this->logout();
542 }
543
544 /**
545 * Ajoute un dossier d'instruction
546 * @param string $reference_cadastrale_quartier Le quartier de la référence
547 * cadastrale du dossier
548 * @param string $reference_cadastrale_section La section de la référence
549 * cadastrale du dossier
550 * @param string $reference_cadastrale_parcelle La parcelle de la référence
551 * cadastrale du dossier
552 * @param string $datd dossier d'autorisation type détaillé
553 * @param string $instructeur le nom de l'instructeur
554 *
555 * @return boolean
556 */
557 function ajoutDossierAffectationAutomatique($reference_cadastrale_quartier,
558 $reference_cadastrale_section, $reference_cadastrale_parcelle,$datd,
559 $instructeur){
560
561 //On affiche le tableau de bord
562 $this->byLinkText("Tableau de bord")->click();
563 // On clique sur le menu "Nouveau Dossier"
564 $this->byLinkText("Nouveau Dossier")->click();
565 // On vérifie qu'il n'y ait pas d'erreur
566 $this->verifynoerrors();
567 // On vérifie le nom de l'onglet
568 $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
569 // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
570 $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel($datd);
571 // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
572 $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
573 //On saisie les références cadastrales
574 $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(1)")->value($reference_cadastrale_quartier);
575 $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(2)")->value($reference_cadastrale_section);
576 $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(3)")->value($reference_cadastrale_parcelle);
577 //On saisi l'adresse
578 $this->byId("terrain_adresse_voie_numero")->value("0075");
579 $this->byId("terrain_adresse_voie")->value("TRA DE LA DOMINIQUE");
580 $this->byId("terrain_adresse_code_postal")->value("13011");
581 $this->byId("terrain_adresse_localite")->value("MARSEILLE");
582
583 // On clique pour ajouter un pétitionnaire principale
584 $this->byId("add_petitionnaire_principal")->click();
585 // On remplit le champ
586 $this->byId("particulier_nom")->value("DURAND");
587 // On remplit le champ
588 $this->byId("particulier_prenom")->value("MICKAEL");
589 // On remplit le champ
590 $this->byId("particulier_date_naissance")->value("03/01/1956");
591 // On remplit le champ
592 $this->byId("particulier_commune_naissance")->value("LILLE");
593 // On remplit le champ
594 $this->byId("particulier_departement_naissance")->value("NORD");
595 // On remplit le champ
596 $this->byId("numero")->value("12");
597 // On remplit le champ
598 $this->byId("voie")->value("RUE DE LA LOI");
599 // On remplit le champ
600 $this->byId("complement")->value("APPT 12");
601 // On remplit le champ
602 $this->byId("localite")->value("MARSEILLE");
603 // On remplit le champ
604 $this->byId("code_postal")->value("13012");
605 // On remplit le champ
606 $this->byId("telephone_fixe")->value("0404040404");
607 // On clique sur ajouter
608 $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
609 // On vérifie qu'il n'y ait pas d'erreur
610 $this->verifynoerrors();
611 // On vérifie le message
612 $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-petitionnaire .message")->text());
613 // On clique sur le bouton retour
614 $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
615 // On vérifie que le text est présent
616 $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
617 // On clique sur ajouter
618 $this->byXPath("//input[@value='Ajouter']")->click();
619 // On vérifie qu'il n'y ait pas d'erreur
620 $this->verifynoerrors();
621 // On vérifie le message
622 $this->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°[\s\S]*$/",$this->byCssSelector(".message")->text());
623 // On clique
624 $this->byCssSelector("a#link_demande_recepisse")->click();sleep(5);
625 // Liste les fenêtres
626 $windows = $this->windowHandles();
627 // Change la fenêtre
628 $this->window($windows[1]);
629 // On vérifie qu'il n'y ait pas d'erreur
630 $this->verifynoerrors();
631 // On vérifie que le text est présent
632 $this->assertRegExp("/^[\s\S]*Dossier suivi par ".$instructeur."[\s\S]*$/",$this->source());
633 // On ferme la fenêtre
634 $this->closeWindow();
635 // On change le focus de la fenêtre
636 $this->window($windows[0]);
637 }
638
639 /**
640 * Vérifie le menu "Autre Dossier" et "Dossier En Cours"
641 */
642 public function test_11_autre_dossier() {
643
644 // On se connecte en tant que "guichet"
645 $this->login("guichet", "guichet");
646 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
647 $this->verifyNoErrors();
648 // On clique sur "Autre Dossier"
649 $this->byLinkText("Autre Dossier")->click();
650 // On vérifie qu'il n'y ait pas d'erreur
651 $this->verifynoerrors();
652 // On vérifie que le dossier qui ne doit pas être dans
653 // "Dossier En Cours" sont ici
654 $this->assertRegExp("/^[\s\S]*PC 013055 ".date("y")." 00001P0[\s\S]*$/",
655 $this->byCssSelector("#tab-demande_autre_dossier .tab-tab")->text());
656 // On clique sur "Dossier En Cours"
657 $this->byLinkText("Dossier En Cours")->click();
658 // On vérifie qu'il n'y ait pas d'erreur
659 $this->verifynoerrors();
660 // On vérifie que le dossier précédement contrôlé n'ait pas
661 // affiché
662 $this->assertNotContains("PC 013055 13 00001P0",
663 $this->byCssSelector("#tab-demande_dossier_encours .tab-tab")->text());
664 // On se déconnecte
665 $this->logout();
666 }
667
668 }
669
670 ?>

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26