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

Contents of /trunk/tests/testGestionIncompletude.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2864 - (show annotations)
Mon Mar 24 16:23:51 2014 UTC (10 years, 10 months ago) by nmeucci
File size: 14564 byte(s)
Correction test gestion incompletude suite changement du libellé événement.

1 <?php
2 /**
3 * Fichier contenant la classe test pour l'incomplétude
4 *
5 * @package openfoncier
6 * @version SVN : $Id$
7 */
8
9 //
10 require_once "base.php";
11
12 /**
13 * Classe permettant de tester l'incomplétude
14 *
15 * Pour lancer le test seul, changer les données :
16 * - dossier : PC0130551200002P0
17 * - code barres de retour de l’AR incomplétude : 110000000011
18 * - code barres de retour de l’AR de majoration de délai consultation ABF : 110000000010
19 *
20 * Pour lancer le test à la fin du run_testsuite, changer les données :
21 * - dossier : PC0130551300001P0
22 * - code barres de retour de l’AR incomplétude : 110000000021
23 * - code barres de retour de l’AR de majoration de délai consultation ABF : 110000000020
24 */
25 class GestionIncompletude extends Base2TestCase {
26
27 /**
28 * Test l'incomplétude sur un dossier d'instruction
29 */
30 public function testIncompletude() {
31
32 /**
33 * Création d'un dossier d'instruction
34 */
35 // On se connecte à l'application
36 $this->login("guichet", "guichet");
37 // On clique sur le menu "Nouveau Dossier"
38 $this->byLinkText("Nouveau Dossier")->click();
39 // On vérifie qu'il n'y ait pas d'erreur
40 $this->verifynoerrors();
41 // On vérifie le nom de l'onglet
42 $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
43 // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
44 $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel("Permis de construire pour une maison individuelle et / ou ses annexes");
45 // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
46 $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
47 // On clique pour ajouter un pétitionnaire principale
48 $this->byId("add_petitionnaire_principal")->click();
49 // On remplit le champ
50 $this->byId("particulier_nom")->value("DURAND");
51 // On remplit le champ
52 $this->byId("particulier_prenom")->value("MICKAEL");
53 // On remplit le champ
54 $this->byId("particulier_date_naissance")->value("03/01/1956");
55 // On remplit le champ
56 $this->byId("particulier_commune_naissance")->value("LILLE");
57 // On remplit le champ
58 $this->byId("particulier_departement_naissance")->value("NORD");
59 // On remplit le champ
60 $this->byId("numero")->value("12");
61 // On remplit le champ
62 $this->byId("voie")->value("RUE DE LA LOI");
63 // On remplit le champ
64 $this->byId("complement")->value("APPT 12");
65 // On remplit le champ
66 $this->byId("localite")->value("MARSEILLE");
67 // On remplit le champ
68 $this->byId("code_postal")->value("13012");
69 // On remplit le champ
70 $this->byId("telephone_fixe")->value("0404040404");
71 // On clique sur ajouter
72 $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
73 // On vérifie qu'il n'y ait pas d'erreur
74 $this->verifynoerrors();
75 // On vérifie le message
76 $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-petitionnaire .message")->text());
77 // On clique sur le bouton retour
78 $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
79 // On vérifie que le text est présent
80 $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
81 // On clique sur ajouter
82 $this->byXPath("//input[@value='Ajouter']")->click();
83 // On vérifie qu'il n'y ait pas d'erreur
84 $this->verifynoerrors();
85 // On vérifie le message
86 $this->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°[\s\S]*$/",$this->byCssSelector(".message")->text());
87 // Récupération du numéro de dossier
88 preg_match('/(PC)[0-9 ]*(P0)/', $this->byCssSelector(".message .text")->text(), $matches);
89 $dossier_libelle = $matches[0];
90 $dossier = str_replace(' ', '', $dossier_libelle);
91 $dossier_dir = substr_replace($dossier, '.', -2, -3);
92 // On clique
93 $this->byCssSelector("a.lien")->click();sleep(5);
94 // Liste les fenêtres
95 $windows = $this->windowHandles();
96 // Change la fenêtre
97 $this->window($windows[1]);
98 // On vérifie qu'il n'y ait pas d'erreur
99 $this->verifynoerrors();
100 // On vérifie que le text est présent
101 $this->assertRegExp("/^[\s\S]*RECEPISSE DE DEPOT[\s\S]*$/",$this->source());
102 // On ferme la fenêtre
103 $this->closeWindow();
104 // On change le focus de la fenêtre
105 $this->window($windows[0]);
106 // On clique sur le bouton retour
107 $this->byLinkText("Retour")->click();
108 // On vérifie qu'il n'y ait pas d'erreur
109 $this->verifynoerrors();
110 // On vérifie que le répertoire s'est crée
111 $this->assertTrue(file_exists("../trs/numerisation/Todo/".$dossier_dir));
112 // On se déconnecte
113 $this->deconnect();
114
115 /**
116 * Envoi d’un courrier de majoration de délai pour consultation ABF
117 */
118 // on se connecte à l'application
119 $this->login("instr", "instr");
120 // On clique sur le menu
121 $this->byLinkText("Recherche")->click();
122 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
123 $this->verifyNoErrors();
124 // On recherche le dossier crée
125 $this->byId("dossier")->value($dossier);
126 // On clique sur le bouton recherche
127 $this->byId("adv-search-submit")->click();
128 // On clique sur le résultat
129 $this->byLinkText($dossier_libelle)->click();
130 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
131 $this->verifyNoErrors();
132 // On clique sur l'onglet instruction
133 $this->byId("instruction")->click();
134 // On clique sur le + pour ajouter une instruction
135 $this->byCssSelector("#sousform-instruction .actions-max-1 a")->click();
136 // On choisi l'événement ABF recours contre avis [majoration]
137 $this->select($this->byId("evenement"))->selectOptionByValue("21");
138 // On clique sur le bouton ajouter
139 $this->byXPath("//input[@value='Ajouter']")->click();
140 // On vérifie que l'instruction s'est bien ajouté
141 $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
142 // On clique sur le bouton retour
143 $this->byCssSelector("#sousform-instruction form a.retour")->click();
144 //On récupère le numéro de l'instruction créée
145 $this->byLinkText("ABF recours contre avis")->click();
146 $idInstrAbf = $this->byCssSelector(".form-content #instruction")->text();
147 // Finalisation du document
148 $this->byCssSelector("#sousform-instruction .portlet-list li:nth-child(3) a")->click();
149 // On vérifie le message de validation
150 $this->assertEquals('La finalisation du document s\'est effectuée avec succès.', $this->byCssSelector("#sousform-instruction .message .text")->text());
151 // On clique sur l'onglet DI
152 $this->byId("main")->click();
153 // on rafraichis la page
154 $this->refresh();
155 // On vérifie le délai du dossier
156 $this->assertEquals("5", $this->byId('delai')->text());
157
158 /**
159 * Envoi notification de pièces manquantes
160 */
161 // On clique sur l'onglet instruction
162 $this->byId("instruction")->click();
163 // On clique sur le + pour ajouter une instruction
164 $this->byCssSelector("#sousform-instruction .actions-max-1 a")->click();
165 // On choisi l'événement
166 $this->select($this->byId("evenement"))->selectOptionByLabel("Notification de pieces manquante [rejet]");
167 // On clique sur le bouton ajouter
168 $this->byXPath("//input[@value='Ajouter']")->click();
169 // On vérifie que l'instruction s'est bien ajouté
170 $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
171 // On clique sur le bouton retour
172 $this->byCssSelector("#sousform-instruction form a.retour")->click();
173 //On récupère le numéro de l'instruction créée
174 $this->byLinkText("Notification de pieces manquante")->click();
175 $idInstrIncompletude = $this->byCssSelector(".form-content #instruction")->text();
176 // Finalisation du document
177 $this->byCssSelector("#sousform-instruction .portlet-list li:nth-child(3) a")->click();
178 // On vérifie le message de validation
179 $this->assertEquals('La finalisation du document s\'est effectuée avec succès.', $this->byCssSelector("#sousform-instruction .message .text")->text());
180 // On clique sur l'onglet DI
181 $this->byId("main")->click();
182 // on rafraichis la page
183 $this->refresh();
184 // On vérifie que l'état du dossier
185 $this->assertEquals("dossier incomplet", $this->byId('etat')->text());
186 // On se deconnecte
187 $this->deconnect();
188
189 /**
190 * Retour de l’AR incomplétude
191 */
192 // on se connecte en tant que suivi
193 $this->login("suivi", "suivi");
194 // On clique sur le menu
195 $this->byLinkText("Mise À Jour Des Dates")->click();
196 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
197 $this->verifyNoErrors();
198 // on choisit le type de mise à jour
199 $this->select($this->byId("type_mise_a_jour"))->selectOptionByValue("date_retour_rar");
200 // on choisit la date
201 $this->byId("date")->value(date("d/m/Y"));
202 // on rentre le code barre
203 $this->byId("code_barres")->value("1100000000".$idInstrIncompletude);
204 // on clique sur le bouton valider
205 $this->byName("validation")->click();
206 // on vérifie que la mise à jour est pour le bon évenement
207 $this->assertEquals("Notification de pieces manquante", $this->byId('evenement')->text());
208 // on clique encore sur le bouton valider
209 $this->byName("validation")->click();
210 // on vérifie que la mise à jour est faite
211 $this->assertRegExp('/.*Saisie enregistrée.*/', $this->byCssSelector("#formulaire .message .text")->text());
212
213 /**
214 * Retour de l’AR de majoration de délai consultation ABF
215 */
216 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
217 $this->verifyNoErrors();
218 // on choisit le type de mise à jour
219 $this->select($this->byId("type_mise_a_jour"))->selectOptionByValue("date_retour_rar");
220 // on choisit la date
221 $this->byId("date")->value(date("d/m/Y"));
222 // on rentre le code barre
223 $this->byId("code_barres")->value("1100000000".$idInstrAbf);
224 // on clique sur le bouton valider
225 $this->byName("validation")->click();
226 // on vérifie que la mise à jour est pour le bon évenement
227 $this->assertEquals("ABF recours contre avis", $this->byId('evenement')->text());
228 // on clique encore sur le bouton valider
229 $this->byName("validation")->click();
230 // on vérifie que la mise à jour est faite
231 $this->assertRegExp('/.*Saisie enregistrée.*/', $this->byCssSelector("#formulaire .message .text")->text());
232 // On se deconnecte
233 $this->deconnect();
234
235 /**
236 * Dépôt de pièces complémentaires
237 */
238 // on se connecte à l'application
239 $this->login("instr", "instr");
240 // On clique sur le menu
241 $this->byLinkText("Recherche")->click();
242 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
243 $this->verifyNoErrors();
244 // On recherche le dossier crée
245 $this->byId("dossier")->value($dossier);
246 // On clique sur le bouton recherche
247 $this->byId("adv-search-submit")->click();
248 // On clique sur le résultat
249 $this->byLinkText($dossier_libelle)->click();
250 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
251 $this->verifyNoErrors();
252 // On clique sur l'onglet instruction
253 $this->byId("instruction")->click();
254 // on vérifie que les instruction après AR se sont ajouté
255 $this->assertRegExp("/^[\s\S]*incomplétude après accusé de réception[\s\S]*$/", $this->byCssSelector("#sousform-instruction .tab-tab")->text());
256 $this->assertRegExp("/^[\s\S]*majoration délai abf[\s\S]*$/", $this->byCssSelector("#sousform-instruction .tab-tab")->text());
257 // On clique sur le + pour ajouter une instruction
258 $this->byCssSelector("#sousform-instruction .actions-max-1 a")->click();
259 // On choisi l'événement
260 $this->select($this->byId("evenement"))->selectOptionByLabel("dépôt de pièces complémentaires [retour]");
261 // On clique sur le bouton ajouter
262 $this->byXPath("//input[@value='Ajouter']")->click();
263 // On vérifie que l'instruction s'est bien ajouté
264 $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
265 // On clique sur le bouton retour
266 $this->byCssSelector("#sousform-instruction form a.retour")->click();
267 // On clique sur l'onglet DI
268 $this->byId("main")->click();
269 // on rafraichis la page
270 $this->refresh();
271 // on vérifie que l'état ne soit plus à incomplet
272 $this->assertTrue($this->byId('etat')->text() != "dossier incomplet");
273 // on vérifie que le délai est à 8
274 $this->assertEquals("8", $this->byId('delai')->text());
275 // on vérifie la date de complétude
276 $this->assertEquals(date("d/m/Y"), $this->byId('date_complet')->text());
277 // on vérifie la date de limite de l'instruction
278 $date_limite = $this->mois_date(date("Y-m-d"), 8, "+");
279 $date_limite = date("d/m/Y", strtotime($date_limite));
280 $this->assertEquals($date_limite, $this->byId('date_limite')->text());
281 // On se deconnecte
282 $this->logout();
283 }
284
285 }
286 ?>

Properties

Name Value
svn:keywords Id

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26