/[openfoncier]/branches/3.14.x/tests/testGuichetUnique.php
ViewVC logotype

Contents of /branches/3.14.x/tests/testGuichetUnique.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3479 - (show annotations)
Mon May 18 16:21:59 2015 UTC (9 years, 8 months ago) by nhaye
File size: 56649 byte(s)
Suppression du bouton de modification d'architectes et petitionnaires lorsqu'ils sont fréquents.

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

Properties

Name Value
svn:keywords Id

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26