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

Contents of /trunk/tests/testParametrageDossiers.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2456 - (show annotations)
Tue Nov 12 17:57:50 2013 UTC (11 years, 2 months ago) by vpihour
File size: 17028 byte(s)
Lors du paramétrage d'un événement principal (événement avec événement suivant tacite ou retour AR paramétré) le délai, la décision tacite, l'avis, la restriction et le délai de notification sont maintenant récupérés par les événements liés (événement suivant tacite ou retour AR).

1 <?php
2 /**
3 *
4 *
5 * @package openfoncier
6 * @version SVN : $Id$
7 */
8
9 //
10 require_once "base.php";
11
12 /**
13 * Test les paramétrage de dossiers
14 */
15 class testParametrageDossiers extends Base2TestCase {
16
17 /**
18 * Test le formulaire de la demande de type qui possède des select filtrés
19 */
20 public function testDemandeType() {
21
22 // On se connecte à l'application
23 $this->login("admin", "admin");
24 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
25 $this->verifyNoErrors();
26 // On clique sur le menu
27 $this->byLinkText("Paramétrage Dossiers")->click();
28 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
29 $this->verifyNoErrors();
30 // On clique sur le sous-menu
31 $this->byLinkText("Type")->click();
32 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
33 $this->verifyNoErrors();
34 // On clique sur le bouton "Ajouter"
35 $this->byLinkText("Ajouter")->click();
36 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
37 $this->verifyNoErrors();
38 // On remplis le champ code
39 $this->byId("code")->value("TEST");
40 // On remplit le choix libelle
41 $this->byId("libelle")->value("Test ajout de type de demande");
42 // On selectionne le groupe "Autorisation ADS"
43 $this->select($this->byId("groupe"))->selectOptionByValue("1");
44 // On vérifie que le filtre s'est appliqué sur le champ
45 // "type de dossier d'autorisation détaillé "
46 $this->assertTrue((bool)preg_match_all("/(PCI)|(PCA)|(PD)|(PA)|(DP)|(CU)|(AZ)/", $this->select($this->byId("dossier_autorisation_type_detaille"))->text(), $matches));
47 // On selectionne le type détaillé d'autorisation
48 // "AZ (Demande d'autorisation spéciale de travaux dans le périmètre d'une AVAP)"
49 $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByValue("7");
50 // On vérifie que le filtre s'est appliqué sur le champ
51 // "type de dossier d'instruction à créer"
52 $this->assertTrue((bool)preg_match_all("/(AZ - Initial)|(AZ - Transfert)|(AZ - Modificatif)|(AZ - Achèvement et conformité)|(AZ - Ouverture de chantier)/", $this->select($this->byId("dossier_instruction_type"))->text(), $matches));
53 // On selectionne le type de dossier d'instruction "AZ - Initial"
54 $this->select($this->byId("dossier_instruction_type"))->selectOptionByValue("31");
55 // On selectionne le type de l'événement d'instruction à créer
56 $this->select($this->byId("evenement"))->selectOptionByValue("1");
57 // On selectionne la natude de la demande
58 $this->select($this->byId("demande_nature"))->selectOptionByValue("1");
59 // On clique sur "Ajouter"
60 $this->byXPath("//input[@value='Ajouter']")->click();
61 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
62 $this->verifyNoErrors();
63 // On vérifie le message
64 $this->assertEquals("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text());
65 // On clique sur le bouton "Retour"
66 $this->byLinkText("Retour")->click();
67 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
68 $this->verifyNoErrors();
69 // On clique sur le type de demande crée
70 $this->byLinkText("TEST")->click();
71 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
72 $this->verifyNoErrors();
73 // On vérifie le champ code
74 $this->assertEquals("TEST", $this->byId("code")->text());
75 // On vérifie le champ libelle
76 $this->assertEquals("Test ajout de type de demande", $this->byId("libelle")->text());
77 // On vérifie le champ groupe
78 $this->assertEquals("Autorisation ADS", $this->byId("groupe")->text());
79 // On vérifie le champ type de dossier d'autorisation détaillé
80 $this->assertEquals("AZ (Demande d'autorisation spéciale de travaux dans le périmètre d'une AVAP)", $this->byId("dossier_autorisation_type_detaille")->text());
81 // On vérifie le champ type de dossier d'instruction à créer
82 $this->assertEquals("AZ - Initial", $this->byId("dossier_instruction_type")->text());
83 // On clique sur le portlet "Modifier"
84 $this->byXPath("//div[@id='portlet-actions']/ul/li/a/span")->click();
85 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
86 $this->verifyNoErrors();
87 // On vérifie que les champs type de dossier d'autorisation
88 // détaillé et type de dossier d'instruction à créer respectent le filtrage
89 $this->assertTrue((bool)preg_match_all("/(PCI)|(PCA)|(PD)|(PA)|(DP)|(CU)|(AZ)/", $this->select($this->byId("dossier_autorisation_type_detaille"))->text()));
90 $this->assertTrue((bool)preg_match_all("/(AZ - Initial)|(AZ - Transfert)|(AZ - Modificatif)|(AZ - Achèvement et conformité)|(AZ - Ouverture de chantier)/", $this->select($this->byId("dossier_instruction_type"))->text()));
91 // On modifie le type de dossier d'autorisation détaillé
92 $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByValue("1");
93 // On vérifie que le filtre s'est appliqué sur le champ
94 // "type de dossier d'instruction à créer"
95 $this->assertTrue((bool)preg_match_all("/(PCI - Initial)|(PCI - Transfert)|(PCI - Modificatif)|(PCI - Achèvement et conformité)|(PCI - Ouverture de chantier)/", $this->select($this->byId("dossier_instruction_type"))->text()));
96 // On modifie le type de dossier d'instruction à créer
97 $this->select($this->byId("dossier_instruction_type"))->selectOptionByValue("1");
98 // On clique sur modifier
99 $this->byXPath("//input[@value='Modifier']")->click();
100 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
101 $this->verifyNoErrors();
102 // On vérifie le message
103 $this->assertEquals("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text());
104 // On se déconnecte de l'application
105 $this->logout();
106
107 }
108
109 /**
110 * Test l'existence des champs saisis dans la règle d'une action
111 */
112 public function test_action() {
113
114 // On se connecte à l'application
115 $this->login("admin", "admin");
116 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
117 $this->verifyNoErrors();
118 // On clique sur le menu
119 $this->byLinkText("Paramétrage Dossiers")->click();
120 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
121 $this->verifyNoErrors();
122 // On clique sur le sous-menu
123 $this->byLinkText("Action")->click();
124 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
125 $this->verifyNoErrors();
126 // On remplit le champ de recherche simple
127 $this->byCssSelector("input[name='recherche']")->value('acceptation');
128 // On clique sur le bouton recherche
129 $this->byCssSelector(".ui-button")->click();
130 // On clique sur le résultat
131 $this->byLinkText("acceptation")->click();
132 // On clique sur le bouton "Modifier"
133 $this->byId('action-form-action-modifier')->click();
134 // On change la valeur par "etat + champ_errone"
135 $this->byId('regle_etat')->clear();
136 $this->byId('regle_etat')->value('etat + champ_errone');
137 // On valide la modification
138 $this->byCssSelector("input[value='Modifier']")->click();
139 // On vérifie le message de validation
140 $this->assertRegExp("/^[\s\S]*Le champ champ_errone n'est pas utilisable pour le champ règle etat[\s\S]*$/", $this->byCssSelector("#tabs-1 .message")->text());
141 // On change la règle état
142 $this->byId('regle_date_dernier_depot')->clear();
143 $this->byId('regle_date_dernier_depot')->value('NULL');
144 // On valide la modification
145 $this->byCssSelector("input[value='Modifier']")->click();
146 // On vérifie le message de validation
147 $this->assertRegExp("/^[\s\S]*Le champ date de dernier dépôt des dossiers ne peut être mis à NULL.[\s\S]*$/", $this->byCssSelector("#tabs-1 .message")->text());
148 // On change la règle état
149 $this->byId('regle_date_dernier_depot')->clear();
150 // On change la règle état
151 $this->byId('regle_etat')->clear();
152 $this->byId('regle_etat')->value('etat');
153 // On valide la modification
154 $this->byCssSelector("input[value='Modifier']")->click();
155 // On vérifie le message de validation
156 $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/", $this->byCssSelector("#tabs-1 .message")->text());
157 // On clique sur le bouton 'Retour'
158 $this->byLinkText("Retour")->click();
159 // On vérifie les nouvelles données
160 $this->assertEquals("etat", $this->byId("regle_etat")->text());
161 // On se déconnecte
162 $this->logout();
163 }
164
165 /**
166 * Test le paramétrage entre les événements avant AR et les événements AR
167 */
168 public function test_03_evenement_retour() {
169
170 // On se connecte à l'application
171 $this->login("admin", "admin");
172 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
173 $this->verifyNoErrors();
174 // On clique sur le menu "Paramétrage Dossiers"
175 $this->byLinkText("Paramétrage Dossiers")->click();
176 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
177 $this->verifyNoErrors();
178 // On clique sur le sous-menu "Événement"
179 $this->byLinkText("Événement")->click();
180 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
181 $this->verifyNoErrors();
182 // On ajoute un événement "principal" (c-a-d qui n'est pas retour)
183 // On clique sur le bouton ajouter
184 $this->byId("action-tab-evenement-corner-ajouter")->click();
185 // On remplit les champs
186 $this->byId("libelle")->value("test_princ");
187 $this->byId("restriction")->value("date_evenement <= archive_date_dernier_depot + 1");
188 $this->select($this->byId("action"))->selectOptionByLabel("initier un delai");
189 $this->select($this->byId("delai"))->selectOptionByLabel("5 Mois");
190 $this->select($this->byId("accord_tacite"))->selectOptionByLabel("Oui");
191 $this->select($this->byId("delai_notification"))->selectOptionByLabel("1 Mois");
192 $this->select($this->byId("avis_decision"))->selectOptionByLabel("Non concerné");
193 // On valide le formulaire
194 $this->byXPath("//input[@value='Ajouter']")->click();
195 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
196 $this->verifyNoErrors();
197 // On vérifie le message de validation
198 $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message")->text());
199 // On clique sur le bouton retour
200 $this->byLinkText("Retour")->click();
201 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
202 $this->verifyNoErrors();
203 // On ajoute un événement "retour"
204 // On clique sur le bouton ajouter
205 $this->byId("action-tab-evenement-corner-ajouter")->click();
206 // On remplit les champs
207 $this->byId("libelle")->value("test_retour");
208 $this->byId("retour")->click();
209 $this->select($this->byName("etats_depuis_lequel_l_evenement_est_disponible[]"))->clearSelectedOptions();;
210 $this->select($this->byName("etats_depuis_lequel_l_evenement_est_disponible[]"))->selectOptionByLabel("delai de notification envoye");
211 $this->select($this->byName("dossier_instruction_type[]"))->clearSelectedOptions();
212 $this->select($this->byName("dossier_instruction_type[]"))->selectOptionByLabel("PCI - P - Initial");
213 $this->select($this->byId("etat"))->selectOptionByLabel("delai majore");
214 // On valide le formulaire
215 $this->byXPath("//input[@value='Ajouter']")->click();
216 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
217 $this->verifyNoErrors();
218 // On vérifie le message de validation
219 $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message")->text());
220 // On clique sur le bouton retour
221 $this->byLinkText("Retour")->click();
222 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
223 $this->verifyNoErrors();
224 // On recherche l'événement "test_princ"
225 $this->byCssSelector("input[name='recherche']")->value('test_princ');
226 // On clique sur le bouton recherche
227 $this->byCssSelector(".ui-button")->click();
228 // On clique sur le résultat
229 $this->byLinkText("test_princ")->click();
230 // On clique sur le bouton "Modifier"
231 $this->byId('action-form-evenement-modifier')->click();
232 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
233 $this->verifyNoErrors();
234 // On sélectionne l'événement "retour" dans "evenement_retour_ar"
235 $this->select($this->byId("evenement_retour_ar"))->selectOptionByLabel("test_retour");
236 // On sélectionne l'événement "retour" dans "evenement_retour_signature"
237 $this->select($this->byId("evenement_retour_signature"))->selectOptionByLabel("test_retour");
238 // On valide le formulaire
239 $this->byXPath("//input[@value='Modifier']")->click();
240 // On vérifie le message d'erreur
241 $this->assertContains("L'événement \"test_retour\" ne peut pas être utilisé en tant qu'événement d'accusé de réception et événement de retour de signature.", $this->byCssSelector(".message")->text());
242 // On ne sélectionne aucun "evenement_retour_signature"
243 $this->select($this->byId("evenement_retour_signature"))->selectOptionByValue("");
244 // On valide le formulaire
245 $this->byXPath("//input[@value='Modifier']")->click();
246 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
247 $this->verifyNoErrors();
248 // On vérifie le message de validation
249 $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message")->text());
250 // On clique sur le bouton retour
251 $this->byLinkText("Retour")->click();
252 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
253 $this->verifyNoErrors();
254 // On clique sur le bouton retour
255 $this->byLinkText("Retour")->click();
256 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
257 $this->verifyNoErrors();
258 // On recherche l'événement "test_retour"
259 $this->byCssSelector("input[name='recherche']")->clear();
260 $this->byCssSelector("input[name='recherche']")->value('test_retour');
261 // On clique sur le bouton recherche
262 $this->byCssSelector(".ui-button")->click();
263 // On clique sur le résultat
264 $this->byLinkText("test_retour")->click();
265 // On vérifie que les paramètres ont été copiés
266 $this->assertEquals("date_evenement <= archive_date_dernier_depot + 1", $this->byId("restriction")->text());
267 $this->assertEquals("5", $this->byId("delai")->text());
268 $this->assertEquals("Oui", $this->byId("accord_tacite")->text());
269 $this->assertEquals("1", $this->byId("delai_notification")->text());
270 $this->assertEquals("Non concerné", $this->byId("avis_decision")->text());
271 // On clique sur le bouton retour
272 $this->byLinkText("Retour")->click();
273 // On ajoute un événement "principal" (c-a-d qui n'est pas retour)
274 // On clique sur le bouton ajouter
275 $this->byId("action-tab-evenement-corner-ajouter")->click();
276 // On remplit le libellé
277 $this->byId("libelle")->value("test_princ_2");
278 // On sélectionne l'événement "retour" dans "evenement_retour_ar"
279 $this->select($this->byId("evenement_retour_signature"))->selectOptionByLabel("test_retour");
280 // On valide le formulaire
281 $this->byXPath("//input[@value='Ajouter']")->click();
282 // On vérifie le message d'erreur
283 $this->assertContains("L'événement \"test_retour\" est déjà utilisé en tant qu'événement d'accusé de réception.", $this->byCssSelector(".message")->text());
284 // On vérifie dans l'interface workflow
285 // On clique sur le sous-menu "Workflows"
286 $this->byLinkText("Workflows")->click();
287 // On sélectionne le type de DI
288 $this->select($this->byId("di_type"))->selectOptionByLabel("PCI - P - Initial");
289 // On vérifie que l'évenement retour apparaît
290 $this->assertContains("TEST_RETOUR [RETOUR]", $this->byId("tabs-1")->text());
291 // On se déconnecte
292 $this->logout();
293 }
294 }
295
296 ?>

Properties

Name Value
svn:keywords Id

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26