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

Contents of /trunk/tests/testGuichetUnique.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3802 - (show annotations)
Mon Mar 21 09:21:54 2016 UTC (8 years, 10 months ago) by jymadier
File size: 40940 byte(s)
Suppression de l'utilisation de la géolocalisation dans un test

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 * Cette fonction va tester l'affectation automatique des instructeurs aux
654 * dossiers d'instruction.
655 * Quatre cas sont possibles :
656 * - Aucun instructeur ne correspond, ;
657 * - Un instructeur joker correspond, ;
658 * - Un instructeur correspond, .
659 */
660 function test_10_AffectationAutomatique(){
661
662 // On se connecte à l'application
663 $this->login("guichet", "guichet");
664 //Ajout d'un dossier d'instructeur avec affectation d'aucun instructeur
665 $this->ajoutDossierAffectationAutomatique("801", "A", "0001", "Permis de construire comprenant ou non des démolitions", "Poly Com Marseille");
666
667 //Ajout d'un dossier d'instructeur avec affectation d'un instructeur
668 //joker avec seulement le type de dossier d'autorisation détaillé de
669 //renseigné
670 $this->ajoutDossierAffectationAutomatique("806", "A", "0001", "Permis de construire pour une maison individuelle et / ou ses annexes", "Louis Laurent");
671
672 //Ajout d'un dossier d'instructeur avec affectation du seul instructeur
673 //correspondant parfaitement aux critères
674 $this->ajoutDossierAffectationAutomatique("801", "A", "0001", "Permis de construire pour une maison individuelle et / ou ses annexes", "Pierre Martin");
675 // On se déconnecte
676 $this->logout();
677 }
678
679 /**
680 * Ajoute un dossier d'instruction
681 * @param string $reference_cadastrale_quartier Le quartier de la référence
682 * cadastrale du dossier
683 * @param string $reference_cadastrale_section La section de la référence
684 * cadastrale du dossier
685 * @param string $reference_cadastrale_parcelle La parcelle de la référence
686 * cadastrale du dossier
687 * @param string $datd dossier d'autorisation type détaillé
688 * @param string $instructeur le nom de l'instructeur
689 *
690 * @return boolean
691 */
692 function ajoutDossierAffectationAutomatique($reference_cadastrale_quartier,
693 $reference_cadastrale_section, $reference_cadastrale_parcelle,$datd,
694 $instructeur){
695
696 //On affiche le tableau de bord
697 $this->byLinkText("Tableau de bord")->click();
698 // On clique sur le menu "Nouveau Dossier"
699 $this->byLinkText("Nouveau Dossier")->click();
700 // On vérifie qu'il n'y ait pas d'erreur
701 $this->verifynoerrors();
702 // On vérifie le nom de l'onglet
703 $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
704 // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
705 $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel($datd);
706 // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
707 $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
708 //On saisie les références cadastrales
709 $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(1)")->value($reference_cadastrale_quartier);
710 $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(2)")->value($reference_cadastrale_section);
711 $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(3)")->value($reference_cadastrale_parcelle);
712 // On clique pour ajouter un pétitionnaire principale
713 $this->byId("add_petitionnaire_principal")->click();
714 // On remplit le champ
715 $this->byId("particulier_nom")->value("DURAND");
716 // On remplit le champ
717 $this->byId("particulier_prenom")->value("MICKAEL");
718 // On remplit le champ
719 $this->byId("particulier_date_naissance")->value("03/01/1956");
720 // On remplit le champ
721 $this->byId("particulier_commune_naissance")->value("LILLE");
722 // On remplit le champ
723 $this->byId("particulier_departement_naissance")->value("NORD");
724 // On remplit le champ
725 $this->byId("numero")->value("12");
726 // On remplit le champ
727 $this->byId("voie")->value("RUE DE LA LOI");
728 // On remplit le champ
729 $this->byId("complement")->value("APPT 12");
730 // On remplit le champ
731 $this->byId("localite")->value("MARSEILLE");
732 // On remplit le champ
733 $this->byId("code_postal")->value("13012");
734 // On remplit le champ
735 $this->byId("telephone_fixe")->value("0404040404");
736 // On clique sur ajouter
737 $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
738 // On vérifie qu'il n'y ait pas d'erreur
739 $this->verifynoerrors();
740 // On vérifie le message
741 $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-petitionnaire .message")->text());
742 // On clique sur le bouton retour
743 $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
744 // On vérifie que le text est présent
745 $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
746 // On clique sur ajouter
747 $this->byXPath("//input[@value='Ajouter']")->click();
748 // On vérifie qu'il n'y ait pas d'erreur
749 $this->verifynoerrors();
750 // On vérifie le message
751 $this->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°[\s\S]*$/",$this->byCssSelector(".message")->text());
752 // On clique
753 $this->byCssSelector("a#link_demande_recepisse")->click();sleep(5);
754 // Liste les fenêtres
755 $windows = $this->windowHandles();
756 // Change la fenêtre
757 $this->window($windows[1]);
758 // On vérifie qu'il n'y ait pas d'erreur
759 $this->verifynoerrors();
760 // On vérifie que le text est présent
761 $this->assertRegExp("/^[\s\S]*Dossier suivi par ".$instructeur."[\s\S]*$/",$this->source());
762 // On ferme la fenêtre
763 $this->closeWindow();
764 // On change le focus de la fenêtre
765 $this->window($windows[0]);
766 }
767
768 /**
769 * Vérifie le menu "Autre Dossier" et "Dossier En Cours"
770 */
771 public function test_11_autre_dossier() {
772
773 // On se connecte en tant que "guichet"
774 $this->login("guichet", "guichet");
775 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
776 $this->verifyNoErrors();
777 // On clique sur "Autre Dossier"
778 $this->byLinkText("Autre Dossier")->click();
779 // On vérifie qu'il n'y ait pas d'erreur
780 $this->verifynoerrors();
781 // On vérifie que le dossier qui ne doit pas être dans
782 // "Dossier En Cours" sont ici
783 $this->assertRegExp("/^[\s\S]*PC 013055 ".date("y")." 00001P0[\s\S]*$/",
784 $this->byCssSelector("#tab-demande_autre_dossier .tab-tab")->text());
785 // On clique sur "Dossier En Cours"
786 $this->byLinkText("Dossier En Cours")->click();
787 // On vérifie qu'il n'y ait pas d'erreur
788 $this->verifynoerrors();
789 // On vérifie que le dossier précédement contrôlé n'ait pas
790 // affiché
791 $this->assertNotContains("PC 013055 13 00001P0",
792 $this->byCssSelector("#tab-demande_dossier_encours .tab-tab")->text());
793 // On se déconnecte
794 $this->logout();
795 }
796
797 /**
798 * Désactive l'option sig avec la valeur nécessaire
799 */
800 public function test_12_desactive_option_sig() {
801
802 // On se connecte en tant que "admin"
803 $this->login("admin", "admin");
804 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
805 $this->verifyNoErrors();
806 // On clique sur le lien "Administration" dans le menu
807 $this->byLinkText("Administration")->click();
808 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
809 $this->verifyNoErrors();
810 // // On clique sur le lien "Paramètre" dans le menu
811 $this->byLinkText("Paramètre")->click();
812 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
813 $this->verifyNoErrors();
814 // On remplis le champs de recherche simple
815 $this->byCssSelector("input[name='recherche']")->value('option_sig');
816 // On clique sur le bouton recherche
817 $this->byCssSelector(".ui-button")->click();
818 // On clique sur le résultat MONO
819 $this->byLinkText("MARSEILLE")->click();
820 // On clique sur le bouton "Modifier"
821 $this->byId('action-form-om_parametre-modifier')->click();
822 // On change la valeur par "aucun"
823 $this->byId('valeur')->clear();
824 $this->byId('valeur')->value('aucun');
825 // On valide la modification
826 $this->byCssSelector("input[value='Modifier']")->click();
827 // On vérifie le message de validation
828 $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#tabs-1 .message")->text());
829 // On clique sur le bouton 'Retour'
830 $this->byLinkText("Retour")->click();
831 // On vérifie les nouvelles données
832 $this->assertEquals("aucun", $this->byId("valeur")->text());
833 // On se déconnecte
834 $this->logout();
835 }
836 }
837
838 ?>

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26