/[openfoncier]/trunk/tests/044_widgets_dossier.robot
ViewVC logotype

Annotation of /trunk/tests/044_widgets_dossier.robot

Parent Directory Parent Directory | Revision Log Revision Log


Revision 17341 - (hide annotations)
Tue Apr 9 14:57:17 2024 UTC (9 months, 3 weeks ago) by ejpritchard
Original Path: branches/6.5.0-develop-10192_widget_suivi_test/tests/044_widgets_dossier.robot
File size: 105811 byte(s)
chore(branch) : Séparation des Widgets de dossier des autres widgets pour rendre plus lisible les tests des widgets.
1 ejpritchard 17341 *** Settings ***
2     Documentation Les widgets dossiers.
3    
4     # On inclut les mots-clefs
5     Resource resources/resources.robot
6     # On ouvre/ferme le navigateur au début/à la fin du Test Suite.
7     Suite Setup For Suite Setup
8     Suite Teardown For Suite Teardown
9    
10    
11     *** Test Cases ***
12     Création du jeu de données
13    
14     [Documentation] Constitue le jeu de données.
15    
16     #
17     &{args_petitionnaire} = Create Dictionary
18     ... particulier_nom=Reault
19     ... particulier_prenom=Julienne
20     ... om_collectivite=MARSEILLE
21     &{args_autres_demandeurs} = Create Dictionary
22     ... petitionnaire=${args_petitionnaire}
23    
24     &{args_demande} = Create Dictionary
25     ... dossier_autorisation_type_detaille=Recours contentieux
26     ... demande_type=Dépôt Initial REC
27     ... autorisation_contestee=PC 013055 12 00001P0
28     ... om_collectivite=MARSEILLE
29     ${args_peti} = Create Dictionary
30    
31     ${di_rec} = Ajouter la demande par WS ${args_demande} ${args_peti} ${args_autres_demandeurs}
32    
33     #
34     &{args_petitionnaire} = Create Dictionary
35     ... particulier_nom=Boncoeur
36     ... particulier_prenom=Amélie
37     ... om_collectivite=MARSEILLE
38     &{args_autres_demandeurs} = Create Dictionary
39     ... petitionnaire=${args_petitionnaire}
40    
41     &{args_demande} = Create Dictionary
42     ... dossier_autorisation_type_detaille=Recours gracieux
43     ... demande_type=Dépôt Initial REG
44     ... autorisation_contestee=PC 013055 12 00001P0
45     ... om_collectivite=MARSEILLE
46    
47     ${di_reg} = Ajouter la demande par WS ${args_demande} ${NULL} ${args_autres_demandeurs}
48    
49     #
50     &{args_contrevenant} = Create Dictionary
51     ... particulier_nom=Ferland
52     ... particulier_prenom=Honoré
53     ... om_collectivite=MARSEILLE
54     &{args_plaignant} = Create Dictionary
55     ... particulier_nom=Routhier
56     ... particulier_prenom=Vick
57     ... om_collectivite=MARSEILLE
58     &{args_autres_demandeurs} = Create Dictionary
59     ... contrevenant_principal=${args_contrevenant}
60     ... plaignant_principal=${args_plaignant}
61    
62     &{args_demande} = Create Dictionary
63     ... dossier_autorisation_type_detaille=Infraction
64     ... demande_type=Dépôt Initial IN
65     ... om_collectivite=MARSEILLE
66    
67     ${di_inf} = Ajouter la demande par WS ${args_demande} ${NULL} ${args_autres_demandeurs}
68    
69     Set Suite Variable ${di_rec}
70     Set Suite Variable ${di_reg}
71     Set Suite Variable ${di_inf}
72    
73    
74     Widget "Dossiers Limites"
75    
76     [Documentation] L'objet de ce 'Test Case' est de vérifier le
77     ... fonctionnement du widget 'Dossiers Limites'
78     ... (widget_dossiers_limites).
79     ... Ajoute 1 enjeu sur un des dossiers et 2 sur un autre puis vérifie
80     ... l'affichage des icônes des enjeux sur le listing du widget et le listing
81     ... accessible via le bouton "Voir +"
82    
83     #
84     # Cas d'utilisation n°1
85     # Un paramètre permet de filtrer les dossiers qui apparaissent soit par :
86     # - instructeur
87     # - division
88     # - aucun
89     #
90     ${om_widget_libelle} = Set Variable dossiers_limites
91    
92     # Ajout d'un instructeur secondaire à affecter aux dossiers
93     ${instructeur_secondaire_login} = Set Variable instructeur_secondaire_dl
94     # Isole le contexte du test (création d'une collectivité, 2 divisions et 3 instructeurs)
95    
96     &{librecom_values} = Create Dictionary
97     ... om_collectivite_libelle=LIBRECOM_045_DS
98     ... departement=001
99     ... commune=001
100     ... insee=01001
101     ... direction_code=B
102     ... direction_libelle=Direction B de LIBRECOM_045_DS
103     ... direction_chef=Chef
104     ... division_code=B
105     ... division_libelle=Division B
106     ... division_chef=Chef
107     ... instr_om_utilisateur_nom=Phillipa Durand
108     ... [email protected]
109     ... instr_om_utilisateur_login=pdurand
110     ... instr_om_utilisateur_pwd=pdurand
111     ... instr_2_om_utilisateur_nom=${instructeur_secondaire_login}
112     ... instr_2_om_utilisateur_email=${instructeur_secondaire_login}@openads-test.fr
113     ... instr_2_om_utilisateur_login=${instructeur_secondaire_login}
114     ... instr_2_om_utilisateur_pwd=${instructeur_secondaire_login}
115     Isolation d'un contexte ${librecom_values}
116    
117     # Ajouter la direction depuis le menu K Direction K de LIBRECOM_045_DS null Chef null null ${librecom_values.om_collectivite_libelle}
118     # Ajouter la division depuis le menu K Division K null Chef null null Direction K de LIBRECOM_045_DS
119     Ajouter l'utilisateur depuis le menu Simone Girard [email protected] sgirard sgirard INSTRUCTEUR ${librecom_values.om_collectivite_libelle}
120     Ajouter l'instructeur depuis le menu Simone Girard Division B instructeur Simone Girard
121     &{args_affectation} = Create Dictionary
122     ... instructeur=Simone Girard (B)
123     ... om_collectivite=${librecom_values.om_collectivite_libelle}
124     ... dossier_autorisation_type_detaille=DP - Déclaration préalable
125     Ajouter l'affectation depuis le menu ${args_affectation}
126     Ajouter la direction depuis le menu M Direction M de LIBRECOM_045_DS null Chef null null ${librecom_values.om_collectivite_libelle}
127     Ajouter la division depuis le menu M Division M null Chef null null Direction M de LIBRECOM_045_DS
128     Ajouter l'utilisateur depuis le menu Louis Laprise [email protected] llaprise llaprise INSTRUCTEUR ${librecom_values.om_collectivite_libelle}
129     Ajouter l'instructeur depuis le menu Louis Laprise Division M instructeur Louis Laprise
130     &{args_affectation} = Create Dictionary
131     ... instructeur=Louis Laprise (M)
132     ... om_collectivite=${librecom_values.om_collectivite_libelle}
133     ... dossier_autorisation_type_detaille=PD - Permis de démolir
134     Ajouter l'affectation depuis le menu ${args_affectation}
135    
136     # Création de deux enjeux
137     @{om_collectivite} = Create List LIBRECOM_045_DS
138     @{dossier_instruction_type} = Create List PCI - P - Initial DP - P - Initiale
139     &{values_enjeux_1} = Create Dictionary
140     ... libelle=TST_045_ENJEUX_1
141     ... couleur=AAAAAA
142     ... om_collectivite=${om_collectivite}
143     ... dossier_instruction_type=${dossier_instruction_type}
144     Ajouter un enjeu ${values_enjeux_1}
145     &{values_enjeux_2} = Create Dictionary
146     ... libelle=TST_045_ENJEUX_2
147     ... couleur=BBBBBB
148     ... om_collectivite=${om_collectivite}
149     ... dossier_instruction_type=${dossier_instruction_type}
150     Ajouter un enjeu ${values_enjeux_2}
151    
152     # En se basant sur le fait que les 3 types de dossiers ont un délai d'instruction à 2 mois
153     ${date_di_db} = Subtract Time From Date ${DATE_FORMAT_YYYY-MM-DD} 50 days result_format=%Y-%m-%d
154     ${date_di} = Convert Date ${date_di_db} result_format=%d/%m/%Y
155     &{args_petitionnaire} = Create Dictionary
156     ... particulier_nom=PETIPRINC_NOM_01_045_DS
157     ... particulier_prenom=PETIPRINC_PRENOM_01_045_DS
158     ... om_collectivite=${librecom_values.om_collectivite_libelle}
159     &{args_demande} = Create Dictionary
160     ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes
161     ... demande_type=Dépôt Initial
162     ... om_collectivite=${librecom_values.om_collectivite_libelle}
163     ... date_demande=${date_di}
164     ${di_instr_1_division_1_commune_1} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire}
165     &{args_petitionnaire} = Create Dictionary
166     ... particulier_nom=PETIPRINC_NOM_02_045_DS
167     ... particulier_prenom=PETIPRINC_PRENOM_02_045_DS
168     ... om_collectivite=${librecom_values.om_collectivite_libelle}
169     &{args_demande} = Create Dictionary
170     ... dossier_autorisation_type_detaille=Déclaration préalable
171     ... demande_type=Dépôt Initial
172     ... om_collectivite=${librecom_values.om_collectivite_libelle}
173     ... date_demande=${date_di}
174     ${di_instr_2_division_1_commune_1} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire}
175     &{args_petitionnaire} = Create Dictionary
176     ... particulier_nom=PETIPRINC_NOM_03_045_DS
177     ... particulier_prenom=PETIPRINC_PRENOM_03_045_DS
178     ... om_collectivite=${librecom_values.om_collectivite_libelle}
179     &{args_demande} = Create Dictionary
180     ... dossier_autorisation_type_detaille=Permis de démolir
181     ... demande_type=Dépôt Initial
182     ... om_collectivite=${librecom_values.om_collectivite_libelle}
183     ... date_demande=${date_di}
184     ${di_instr_3_division_2_commune_1} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire}
185    
186     # Ajout d'un enjeu simple sur le dossier di_instr_1_division_1_commune_1
187     @{enjeux} = Create List ${values_enjeux_1.libelle}
188     ${values} = Create Dictionary
189     ... enjeux=${enjeux}
190     Modifier le dossier d'instruction ${di_instr_1_division_1_commune_1} ${values}
191     # Ajout d'enjeux multiples sur le dossier di_instr_2_division_1_commune_1
192     @{enjeux} = Create List ${values_enjeux_1.libelle} ${values_enjeux_2.libelle}
193     ${values} = Create Dictionary
194     ... enjeux=${enjeux}
195     Modifier le dossier d'instruction ${di_instr_2_division_1_commune_1} ${values}
196    
197     ${di_instr_1_division_1_commune_1_se} = Sans espace ${di_instr_1_division_1_commune_1}
198     ${di_instr_2_division_1_commune_1_se} = Sans espace ${di_instr_2_division_1_commune_1}
199    
200    
201     # Filtre sur l'instructeur
202     Insérer les paramètres suivants dans le widget
203     ... filtre=instructeur
204     ... ${om_widget_libelle}
205     #
206     Depuis la page d'accueil pdurand pdurand
207     Element Should Not Contain css=.widget_${om_widget_libelle} Vous n'avez pas de dossiers limites pour le moment.
208     Element Should Contain css=.widget_${om_widget_libelle} ${di_instr_1_division_1_commune_1}
209     # Cas 1 : affichage d'un dossier avec un seul enjeu
210     Page Should Contain Element css=a[href*="idx=${di_instr_1_division_1_commune_1_se}"] i.ri-alert-line[style*="color:#${values_enjeux_1.couleur}"]
211     Page Should Contain Element css=a[href*="idx=${di_instr_1_division_1_commune_1_se}"] i.ri-alert-line[title="${values_enjeux_1.libelle}"]
212    
213     Element Should Not Contain css=.widget_${om_widget_libelle} ${di_instr_2_division_1_commune_1}
214     Element Should Not Contain css=.widget_${om_widget_libelle} ${di_instr_3_division_2_commune_1}
215     Click Element css=.widget_${om_widget_libelle} .widget-footer a
216     Le titre de la page doit être Instruction > Dossiers Limites
217     Element Should Contain css=#tab-${om_widget_libelle} ${di_instr_1_division_1_commune_1}
218     # Cas 1 : affichage d'un dossier avec un seul enjeu
219     Page Should Contain Element css=a[href*="idx=${di_instr_1_division_1_commune_1_se}"] i.ri-alert-line[style*="color:#${values_enjeux_1.couleur}"]
220     Page Should Contain Element css=a[href*="idx=${di_instr_1_division_1_commune_1_se}"] i.ri-alert-line[title="${values_enjeux_1.libelle}"]
221    
222     Element Should Not Contain css=#tab-${om_widget_libelle} ${di_instr_2_division_1_commune_1}
223     Element Should Not Contain css=#tab-${om_widget_libelle} ${di_instr_3_division_2_commune_1}
224    
225     # Filtre sur la division
226     Depuis la page d'accueil admin admin
227     Insérer les paramètres suivants dans le widget
228     ... filtre=division
229     ... ${om_widget_libelle}
230     #
231     Depuis la page d'accueil pdurand pdurand
232     Element Should Not Contain css=.widget_${om_widget_libelle} Vous n'avez pas de dossiers limites pour le moment.
233     Element Should Contain css=.widget_${om_widget_libelle} ${di_instr_1_division_1_commune_1}
234     Element Should Contain css=.widget_${om_widget_libelle} ${di_instr_2_division_1_commune_1}
235     # Cas 2 : affichage d'un dossier avec un plusieurs enjeu
236     Page Should Contain Element css=a[href*="idx=${di_instr_2_division_1_commune_1_se}"] i.omi-alert-multiple-line
237    
238     Element Should Not Contain css=.widget_${om_widget_libelle} ${di_instr_3_division_2_commune_1}
239     Click Element css=.widget_${om_widget_libelle} .widget-footer a
240     Le titre de la page doit être Instruction > Dossiers Limites
241     Element Should Contain css=#tab-${om_widget_libelle} ${di_instr_1_division_1_commune_1}
242     Element Should Contain css=#tab-${om_widget_libelle} ${di_instr_2_division_1_commune_1}
243     # Cas 2 : affichage d'un dossier avec un plusieurs enjeu
244     Page Should Contain Element css=a[href*="idx=${di_instr_2_division_1_commune_1_se}"] i.omi-alert-multiple-line
245    
246     Element Should Not Contain css=#tab-${om_widget_libelle} ${di_instr_3_division_2_commune_1}
247    
248     # Filtre sur l'instructeur secondaire
249     Depuis la page d'accueil admin admin
250     Insérer les paramètres suivants dans le widget
251     ... filtre=instructeur_secondaire
252     ... ${om_widget_libelle}
253    
254     Depuis la page d'accueil ${instructeur_secondaire_login} ${instructeur_secondaire_login}
255     Element Should Contain css=.widget_${om_widget_libelle} ${di_instr_1_division_1_commune_1}
256     Element Should Not Contain css=.widget_${om_widget_libelle} ${di_instr_2_division_1_commune_1}
257     Element Should Not Contain css=.widget_${om_widget_libelle} ${di_instr_3_division_2_commune_1}
258     Click Element css=.widget_${om_widget_libelle} .widget-footer a
259     Le titre de la page doit être Instruction > Dossiers Limites
260     Element Should Contain css=#tab-${om_widget_libelle} ${di_instr_1_division_1_commune_1}
261     Element Should Not Contain css=#tab-${om_widget_libelle} ${di_instr_2_division_1_commune_1}
262     Element Should Not Contain css=#tab-${om_widget_libelle} ${di_instr_3_division_2_commune_1}
263     # L'instructeur du dossier ne dois pas avoir de résultat
264     Depuis la page d'accueil pdurand pdurand
265     Element Should Contain css=.widget_${om_widget_libelle} Vous n'avez pas de dossiers limites pour le moment.
266    
267     #
268     Depuis la page d'accueil admin admin
269     Insérer les paramètres suivants dans le widget
270     ... filtre=aucun
271     ... ${om_widget_libelle}
272     #
273     Depuis la page d'accueil pdurand pdurand
274     Element Should Not Contain css=.widget_${om_widget_libelle} Vous n'avez pas de dossiers limites pour le moment.
275     Element Should Contain css=.widget_${om_widget_libelle} ${di_instr_1_division_1_commune_1}
276     Element Should Contain css=.widget_${om_widget_libelle} ${di_instr_2_division_1_commune_1}
277     Element Should Contain css=.widget_${om_widget_libelle} ${di_instr_3_division_2_commune_1}
278     Click Element css=.widget_${om_widget_libelle} .widget-footer a
279     Le titre de la page doit être Instruction > Dossiers Limites
280     Element Should Contain css=#tab-${om_widget_libelle} ${di_instr_1_division_1_commune_1}
281     Element Should Contain css=#tab-${om_widget_libelle} ${di_instr_2_division_1_commune_1}
282     Element Should Contain css=#tab-${om_widget_libelle} ${di_instr_3_division_2_commune_1}
283    
284     #
285     # Cas d'utilisation n°2
286     # Un paramètre permet de filtrer sur les types de dossiers qui apparaissent
287     #
288    
289     ${di_type_dp} = Set Variable ${di_instr_2_division_1_commune_1}
290     ${di_type_pc} = Set Variable ${di_instr_1_division_1_commune_1}
291    
292     #
293     Depuis la page d'accueil admin admin
294     Insérer les paramètres suivants dans le widget
295     ... codes_datd=PCI;PCA;PC\nfiltre=aucun
296     ... ${om_widget_libelle}
297     #
298     Depuis la page d'accueil pdurand pdurand
299     Element Should Not Contain css=.widget_${om_widget_libelle} Vous n'avez pas de dossiers limites pour le moment.
300     Element Should Contain css=.widget_${om_widget_libelle} ${di_type_pc}
301     Element Should Not Contain css=.widget_${om_widget_libelle} ${di_type_dp}
302     Click Element css=.widget_${om_widget_libelle} .widget-footer a
303     Le titre de la page doit être Instruction > Dossiers Limites
304     Element Should Contain css=#tab-${om_widget_libelle} ${di_type_pc}
305     Element Should Not Contain css=#tab-${om_widget_libelle} ${di_type_dp}
306    
307     #
308     Depuis la page d'accueil admin admin
309     Insérer les paramètres suivants dans le widget
310     ... codes_datd=DP;DPS\nfiltre=aucun
311     ... ${om_widget_libelle}
312     #
313     Depuis la page d'accueil pdurand pdurand
314     Element Should Not Contain css=.widget_${om_widget_libelle} Vous n'avez pas de dossiers limites pour le moment.
315     Element Should Contain css=.widget_${om_widget_libelle} ${di_type_dp}
316     Element Should Not Contain css=.widget_${om_widget_libelle} ${di_type_pc}
317     Click Element css=.widget_${om_widget_libelle} .widget-footer a
318     Le titre de la page doit être Instruction > Dossiers Limites
319     Element Should Contain css=#tab-${om_widget_libelle} ${di_type_dp}
320     Element Should Not Contain css=#tab-${om_widget_libelle} ${di_type_pc}
321    
322     #
323     Depuis la page d'accueil admin admin
324     Insérer les paramètres suivants dans le widget
325     ... codes_datd=ZZ\nfiltre=aucun
326     ... ${om_widget_libelle}
327     #
328     Depuis la page d'accueil pdurand pdurand
329     Element Should Contain css=.widget_${om_widget_libelle} Vous n'avez pas de dossiers limites pour le moment.
330     Element Should Not Contain css=.widget_${om_widget_libelle} ${di_type_dp}
331     Element Should Not Contain css=.widget_${om_widget_libelle} ${di_type_pc}
332     Element Should Not Contain css=.widget_${om_widget_libelle} Voir +
333    
334     #
335     # Cas d'utilisation n°3
336     # Vérifier le paramètre nombre de jours
337     #
338    
339     #
340     Depuis la page d'accueil admin admin
341     Insérer les paramètres suivants dans le widget
342     ... nombre_de_jours=7\nfiltre=aucun
343     ... ${om_widget_libelle}
344    
345     # En se basant sur le fait que les 3 types de dossiers ont un délai d'instruction à 2 mois
346     ${date_di_db} = Subtract Time From Date ${DATE_FORMAT_YYYY-MM-DD} 55 days result_format=%Y-%m-%d
347     ${date_di} = Convert Date ${date_di_db} result_format=%d/%m/%Y
348     &{args_petitionnaire} = Create Dictionary
349     ... particulier_nom=PETIPRINC_NOM_04_045_DS
350     ... particulier_prenom=PETIPRINC_PRENOM_04_045_DS
351     ... om_collectivite=${librecom_values.om_collectivite_libelle}
352     &{args_demande} = Create Dictionary
353     ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes
354     ... demande_type=Dépôt Initial
355     ... om_collectivite=${librecom_values.om_collectivite_libelle}
356     ... date_demande=${date_di}
357     ${di2_instr_1_division_1_commune_1} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire}
358    
359     #
360     Depuis la page d'accueil pdurand pdurand
361     Element Should Not Contain css=.widget_${om_widget_libelle} Vous n'avez pas de dossiers limites pour le moment.
362     Element Should Not Contain css=.widget_${om_widget_libelle} ${di_instr_1_division_1_commune_1}
363     Element Should Not Contain css=.widget_${om_widget_libelle} ${di_instr_2_division_1_commune_1}
364     Element Should Not Contain css=.widget_${om_widget_libelle} ${di_instr_3_division_2_commune_1}
365     Element Should Contain css=.widget_${om_widget_libelle} ${di2_instr_1_division_1_commune_1}
366     Click Element css=.widget_${om_widget_libelle} .widget-footer a
367     Le titre de la page doit être Instruction > Dossiers Limites
368     Element Should Not Contain css=#tab-${om_widget_libelle} ${di_instr_1_division_1_commune_1}
369     Element Should Not Contain css=#tab-${om_widget_libelle} ${di_instr_2_division_1_commune_1}
370     Element Should Not Contain css=#tab-${om_widget_libelle} ${di_instr_3_division_2_commune_1}
371     Element Should Contain css=#tab-${om_widget_libelle} ${di2_instr_1_division_1_commune_1}
372    
373     #
374     # Cas d'utilisation n°4
375     # Vérifie l'affichage d'un dossier d'instruction icomplet
376     # Le délai d'incomplétude est géré par un autre champ que celui pour la date limite complet
377     #
378    
379     ${di_limite} = Set Variable ${di_instr_1_division_1_commune_1}
380     # ${di_limite_incomplet} = Set Variable AT 013055 13 00001P0
381    
382     # Filtre sur la division
383     Depuis la page d'accueil admin admin
384     Insérer les paramètres suivants dans le widget
385     ... filtre=division
386     ... ${om_widget_libelle}
387    
388     Ajouter l'utilisateur depuis le menu Arthur Heureux [email protected] aheureux aheureux DIVISIONNAIRE ${librecom_values.om_collectivite_libelle}
389     Ajouter l'instructeur depuis le menu Arthur Heureux Division B instructeur Arthur Heureux
390    
391     # En se basant sur le fait que les 3 types de dossiers ont un délai d'instruction à 2 mois
392     ${date_di_db} = Subtract Time From Date ${DATE_FORMAT_YYYY-MM-DD} 100 days result_format=%Y-%m-%d
393     ${date_di} = Convert Date ${date_di_db} result_format=%d/%m/%Y
394     &{args_petitionnaire} = Create Dictionary
395     ... particulier_nom=PETIPRINC_NOM_05_045_DS
396     ... particulier_prenom=PETIPRINC_PRENOM_05_045_DS
397     ... om_collectivite=${librecom_values.om_collectivite_libelle}
398     &{args_demande} = Create Dictionary
399     ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes
400     ... demande_type=Dépôt Initial
401     ... om_collectivite=${librecom_values.om_collectivite_libelle}
402     ... date_demande=${date_di}
403     ${di3_instr_1_division_1_commune_1} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire}
404     ${di_limite_incomplet} = Set Variable ${di3_instr_1_division_1_commune_1}
405     Constitution du Workflow de gestion d'une incomplétude 045
406     ${date_incomplet_db} = Subtract Time From Date ${DATE_FORMAT_YYYY-MM-DD} 80 days result_format=%Y-%m-%d
407     ${date_incomplet} = Convert Date ${date_incomplet_db} result_format=%d/%m/%Y
408     Ajouter une instruction au DI et la finaliser ${di3_instr_1_division_1_commune_1} ${incompletude_libelle} false ${date_incomplet}
409     Depuis l'instruction du dossier d'instruction ${di3_instr_1_division_1_commune_1} ${incompletude_libelle}
410     Click On SubForm Portlet Action instruction modifier_suivi
411     Input Datepicker date_retour_signature ${date_incomplet}
412     Click On Submit Button In Subform
413    
414     #
415     Depuis la page d'accueil aheureux aheureux
416     Element Should Not Contain css=.widget_${om_widget_libelle} Vous n'avez pas de dossiers limites pour le moment.
417     Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Contain css=.widget_${om_widget_libelle} ${di_limite}
418     Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Contain css=.widget_${om_widget_libelle} ${di_limite_incomplet}
419     Click Element css=.widget_${om_widget_libelle} .widget-footer a
420     Le titre de la page doit être Instruction > Dossiers Limites
421     Element Should Contain css=#tab-${om_widget_libelle} ${di_limite}
422     Element Should Contain css=#tab-${om_widget_libelle} ${di_limite_incomplet}
423    
424     #
425     # Cas d'utilisation n°5
426     # Restreindre le resultat aux dossiers d'instruction dont le caractère
427     # tacite est actif
428     #
429    
430     # Filtre sur la division
431     Depuis la page d'accueil admin admin
432     Insérer les paramètres suivants dans le widget
433     ... restreindre_aux_tacites=true\nfiltre=division
434     ... ${om_widget_libelle}
435     # Ajout de l'action et de l'événement pour suspendre le tacite automatique
436     &{args_action} = Create Dictionary
437     ... action=susp_tacite_auto
438     ... libelle=Suspendre le tacite automatique
439     ... regle_accord_tacite=accord_tacite
440     Ajouter l'action depuis le menu ${args_action}
441     @{etat_source} = Create List delai de notification envoye
442     @{type_di} = Create List PCI - P - Initial
443     &{args_evenement} = Create Dictionary
444     ... libelle=Suspendre le tacite automatique
445     ... etats_depuis_lequel_l_evenement_est_disponible=${etat_source}
446     ... dossier_instruction_type=${type_di}
447     ... action=Suspendre le tacite automatique
448     ... accord_tacite=Non
449     Ajouter l'événement depuis le menu ${args_evenement}
450    
451     #
452     Depuis la page d'accueil aheureux aheureux
453     Element Should Not Contain css=.widget_${om_widget_libelle} Vous n'avez pas de dossiers limites pour le moment.
454     Element Should Contain css=.widget_${om_widget_libelle} ${di_instr_1_division_1_commune_1}
455     Element Should Contain css=.widget_${om_widget_libelle} ${di_instr_2_division_1_commune_1}
456     Element Should Contain css=.widget_${om_widget_libelle} ${di2_instr_1_division_1_commune_1}
457     Element Should Contain css=.widget_${om_widget_libelle} ${di3_instr_1_division_1_commune_1}
458     Click Element css=.widget_${om_widget_libelle} .widget-footer a
459     Le titre de la page doit être Instruction > Dossiers Limites
460     Element Should Contain css=#tab-${om_widget_libelle} ${di_instr_1_division_1_commune_1}
461     Element Should Contain css=#tab-${om_widget_libelle} ${di_instr_2_division_1_commune_1}
462     Element Should Contain css=#tab-${om_widget_libelle} ${di2_instr_1_division_1_commune_1}
463     Element Should Contain css=#tab-${om_widget_libelle} ${di3_instr_1_division_1_commune_1}
464    
465     # Suspend le tacite automatique d'un dossiers
466     Depuis la page d'accueil admin admin
467     Ajouter une instruction au DI ${di_instr_1_division_1_commune_1} Suspendre le tacite automatique
468    
469     # Le dossier ne doit plus apparaitre dans les dossiers limites
470     Depuis la page d'accueil aheureux aheureux
471     Element Should Not Contain css=.widget_${om_widget_libelle} Vous n'avez pas de dossiers limites pour le moment.
472     Element Should Not Contain css=.widget_${om_widget_libelle} ${di_instr_1_division_1_commune_1}
473     Element Should Contain css=.widget_${om_widget_libelle} ${di_instr_2_division_1_commune_1}
474     Element Should Contain css=.widget_${om_widget_libelle} ${di2_instr_1_division_1_commune_1}
475     Element Should Contain css=.widget_${om_widget_libelle} ${di3_instr_1_division_1_commune_1}
476     Click Element css=.widget_${om_widget_libelle} .widget-footer a
477     Le titre de la page doit être Instruction > Dossiers Limites
478     Element Should Not Contain css=#tab-${om_widget_libelle} ${di_instr_1_division_1_commune_1}
479     Element Should Contain css=#tab-${om_widget_libelle} ${di_instr_2_division_1_commune_1}
480     Element Should Contain css=#tab-${om_widget_libelle} ${di2_instr_1_division_1_commune_1}
481     Element Should Contain css=#tab-${om_widget_libelle} ${di3_instr_1_division_1_commune_1}
482    
483     # Test l'affichage du widget avec un nombre plutôt qu'une liste
484     Depuis la page d'accueil admin admin
485     Insérer les paramètres suivants dans le widget
486     ... restreindre_aux_tacites=true\nfiltre=division\naffichage=nombre
487     ... ${om_widget_libelle}
488    
489     Depuis la page d'accueil aheureux aheureux
490     Element Should Contain css=.widget_${om_widget_libelle} span.bg-info 3
491    
492     # Désactive la restriction aux dossiers d'instruction tacites sur le widget
493     # des dossiers limites
494     Depuis la page d'accueil admin admin
495     Insérer les paramètres suivants dans le widget
496     ... ${EMPTY}
497     ... ${om_widget_libelle}
498    
499    
500     Widget "Recherche Dossier"
501    
502     [Documentation] L'objet de ce 'Test Case' est de vérifier le
503     ... fonctionnement du widget 'Recherche Dossier'
504     ... (widget_recherche_dossier)
505    
506     &{isolation_values_01} = Create Dictionary
507     ... om_collectivite_libelle=JIYUCITY045WRD01
508     ... departement=066
509     ... commune=088
510     ... insee=66088
511     ... direction_code=O
512     ... direction_libelle=Direction de JIYUCITY045WRD01
513     ... direction_chef=Chef
514     ... division_code=O
515     ... division_libelle=Division O
516     ... division_chef=Chef
517     ... instr_om_utilisateur_nom=Alexandria Le Menard
518     ... [email protected]
519     ... instr_om_utilisateur_login=alemenard
520     ... instr_om_utilisateur_pwd=alemenard
521     Isolation d'un contexte ${isolation_values_01}
522     &{isolation_values_02} = Create Dictionary
523     ... om_collectivite_libelle=JIYUCITY045WRD02
524     ... departement=066
525     ... commune=089
526     ... insee=66089
527     ... direction_code=P
528     ... direction_libelle=Direction de JIYUCITY045WRD02
529     ... direction_chef=Chef
530     ... division_code=P
531     ... division_libelle=Division P
532     ... division_chef=Chef
533     ... instr_om_utilisateur_nom=Daniel LeGrand
534     ... [email protected]
535     ... instr_om_utilisateur_login=dlegrand
536     ... instr_om_utilisateur_pwd=dlegrand
537     Isolation d'un contexte ${isolation_values_02}
538    
539     # Dossier pour vérifier les différents cas
540     &{args_petitionnaire_di} = Create Dictionary
541     ... particulier_nom=LABONTÉ
542     ... particulier_prenom=WILLIAM
543     ... om_collectivite=${isolation_values_01.om_collectivite_libelle}
544     &{args_demande_di} = Create Dictionary
545     ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes
546     ... demande_type=Dépôt Initial
547     ... om_collectivite=${isolation_values_01.om_collectivite_libelle}
548     ${di} = Ajouter la demande par WS ${args_demande_di} ${args_petitionnaire_di}
549     ${di_ns} = Sans espace ${di}
550     &{args_petitionnaire_di_a} = Create Dictionary
551     ... particulier_nom=DUPÉRÉ
552     ... particulier_prenom=ZURIE
553     ... om_collectivite=${isolation_values_02.om_collectivite_libelle}
554     &{args_demande_di_a} = Create Dictionary
555     ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes
556     ... demande_type=Dépôt Initial
557     ... om_collectivite=${isolation_values_02.om_collectivite_libelle}
558     ${di_allauch} = Ajouter la demande par WS ${args_demande_di_a} ${args_petitionnaire_di_a}
559     &{args_petitionnaire_di_b} = Create Dictionary
560     ... particulier_nom=MARTEL
561     ... particulier_prenom=LAURENT
562     ... om_collectivite=${isolation_values_01.om_collectivite_libelle}
563     &{args_demande_di_b} = Create Dictionary
564     ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes
565     ... demande_type=Dépôt Initial
566     ... om_collectivite=${isolation_values_01.om_collectivite_libelle}
567     ${di_b} = Ajouter la demande par WS ${args_demande_di_b} ${args_petitionnaire_di_b}
568    
569     # En tant qu'instructeur
570     Depuis la page d'accueil alemenard alemenard
571    
572     #
573     # Cas d'utilisation n°1
574     #
575     # Saisie d'un numéro de dossier complet (avec et sans espaces)
576     #
577     Go To Dashboard via Link
578     Input Text css=#dashboard div.widget_recherche_dossier input#dossier ${di}
579     Click Element css=#dashboard div.widget_recherche_dossier div.formControls input
580     Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Le titre de la page doit être Instruction > Dossiers D'instruction > ${di} ${args_petitionnaire_di.particulier_nom} ${args_petitionnaire_di.particulier_prenom}
581     La page ne doit pas contenir d'erreur
582     #
583     Go To Dashboard via Link
584     Input Text css=#dashboard div.widget_recherche_dossier input#dossier ${di_ns}
585     Click Element css=#dashboard div.widget_recherche_dossier div.formControls input
586     Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Le titre de la page doit être Instruction > Dossiers D'instruction > ${di} ${args_petitionnaire_di.particulier_nom} ${args_petitionnaire_di.particulier_prenom}
587     La page ne doit pas contenir d'erreur
588    
589     #
590     # Cas d'utilisation n°2
591     #
592     # Saisie d'une portion d'un numéro de dossier
593     #
594     # Cas 2a : un seul dossier
595     Go To Dashboard via Link
596     ${search_2a_1} = Get Substring ${di_ns} 0 2
597     ${search_2a_2} = Get Substring ${di_ns} 6 9
598     ${search_2a_3} = Get Substring ${di_ns} 14 16
599     ${search_2a} = Catenate SEPARATOR=* ${search_2a_1} ${search_2a_2} ${search_2a_3}
600     Input Text css=#dashboard div.widget_recherche_dossier input#dossier ${search_2a}
601     Click Element css=#dashboard div.widget_recherche_dossier div.formControls input
602     Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Le titre de la page doit être Instruction > Dossiers D'instruction > ${di} ${args_petitionnaire_di.particulier_nom} ${args_petitionnaire_di.particulier_prenom}
603     La page ne doit pas contenir d'erreur
604     # Cas 2b : plusieurs dossiers
605     Go To Dashboard via Link
606     ${search_2b} = Get Substring ${di_ns} 2 7
607     ${search_2b_adv} = Catenate SEPARATOR= * ${search_2b}
608     Input Text css=#dashboard div.widget_recherche_dossier input#dossier ${search_2b}
609     Click Element css=#dashboard div.widget_recherche_dossier div.formControls input
610     Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Le titre de la page doit être Instruction > Dossiers D'instruction
611     La page ne doit pas contenir d'erreur
612     Textfield Value Should Be css=#advanced-form input#dossier ${search_2b_adv}
613    
614     #
615     # Cas d'utilisation n°3
616     #
617     # Saisie d'un numéro de dossier inexistant
618     #
619     Go To Dashboard via Link
620     Input Text css=#dashboard div.widget_recherche_dossier input#dossier ZZZZZZZZZZZZ
621     Click Element css=#dashboard div.widget_recherche_dossier div.formControls input
622     Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Le titre de la page doit être Tableau De Bord
623     La page ne doit pas contenir d'erreur
624     Element Text Should Be css=#dashboard div.widget_recherche_dossier div.message.ui-state-error p span.text Aucun dossier trouvé.
625    
626     #
627     # Cas d'utilisation n°4
628     #
629     # Aucune valeur saisie
630     #
631     Go To Dashboard via Link
632     Click Element css=#dashboard div.widget_recherche_dossier div.formControls input
633     Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Le titre de la page doit être Tableau De Bord
634     La page ne doit pas contenir d'erreur
635     Element Text Should Be css=#dashboard div.widget_recherche_dossier div.message.ui-state-error p span.text Veuillez saisir un No de dossier.
636    
637     #
638     # TNR Bug "Erreur de base de données" lors de saisie de caractères spéciaux
639     #
640     Go To Dashboard via Link
641     Input Text css=#dashboard div.widget_recherche_dossier input#dossier ;"?#'
642     Click Element css=#dashboard div.widget_recherche_dossier div.formControls input
643     Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Le titre de la page doit être Instruction > Dossiers D'instruction
644     La page ne doit pas contenir d'erreur
645     Textfield Value Should Be css=#advanced-form input#dossier *,
646    
647     #
648     # Les DI contentieux ne doivent pas accessibles
649     #
650     Go To Dashboard via Link
651     Input Text css=#dashboard div.widget_recherche_dossier input#dossier ${di_rec}
652     Click Element css=#dashboard div.widget_recherche_dossier div.formControls input
653     Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Le titre de la page doit être Tableau De Bord
654     La page ne doit pas contenir d'erreur
655     Element Text Should Be css=#dashboard div.widget_recherche_dossier div.message.ui-state-error p span.text Aucun dossier trouvé.
656    
657     # L'utilisateur étant mono, le DI d'une autre collectivité ne doit pas être trouvé
658     Go To Dashboard via Link
659     Input Text css=#dashboard div.widget_recherche_dossier input#dossier ${di_allauch}
660     Click Element css=#dashboard div.widget_recherche_dossier div.formControls input
661     Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Text Should Be css=#dashboard div.widget_recherche_dossier div.message.ui-state-error p span.text Aucun dossier trouvé.
662     La page ne doit pas contenir d'erreur
663    
664    
665     Widget "Recherche Dossier par type"
666    
667     [Documentation] L'objet de ce 'Test Case' est de vérifier le
668     ... fonctionnement du widget 'Recherche Dossier par type'
669     ... (widget_recherche_dossier_par_type)
670     ...
671     ... Vérification des points suivants :
672     ... - un utilisateur mono ne doit pas pouvoir rechercher un DI d'une autre collectivité
673     ... - la recherche fonctionne avec des numéros de dossier avec et sans espaces
674     ... - selon le type de dossier, on est redirigés au bon endroit
675    
676     #
677     &{args_petitionnaire_di} = Create Dictionary
678     ... particulier_nom=PETIT
679     ... particulier_prenom=SEBASTIEN
680     ... om_collectivite=MARSEILLE
681     &{args_demande_di} = Create Dictionary
682     ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes
683     ... demande_type=Dépôt Initial
684     ... om_collectivite=MARSEILLE
685     ... date_demande=01/01/1999
686     ${di} = Ajouter la demande par WS ${args_demande_di} ${args_petitionnaire_di}
687     ${di_ns} = Sans espace ${di}
688     &{args_petitionnaire_di_a} = Create Dictionary
689     ... particulier_nom=PETRIE
690     ... particulier_prenom=CHRISTELLE
691     ... om_collectivite=ALLAUCH
692     &{args_demande_di_a} = Create Dictionary
693     ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes
694     ... demande_type=Dépôt Initial
695     ... om_collectivite=ALLAUCH
696     ... date_demande=01/01/1999
697     ${di_allauch} = Ajouter la demande par WS ${args_demande_di_a} ${args_petitionnaire_di_a}
698    
699     Depuis la page d'accueil assist assist
700    
701     # Aucune valeur saisie
702     Go To Dashboard via Link
703     Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Selected List Label Should Be css=select#type_dossier_recherche ADS
704     Click Element css=#dashboard div.widget_recherche_dossier_par_type div.formControls input
705     Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Le titre de la page doit être Tableau De Bord
706     La page ne doit pas contenir d'erreur
707     Element Text Should Be css=#dashboard div.widget_recherche_dossier_par_type div.message.ui-state-error p span.text Veuillez saisir un No de dossier.
708    
709     # Saisie d'un numéro de dossier inexistant
710     Input Text css=#dashboard div.widget_recherche_dossier_par_type input#dossier ZZZZZZZZZZZZ
711     Click Element css=#dashboard div.widget_recherche_dossier_par_type div.formControls input
712     Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Le titre de la page doit être Tableau De Bord
713     La page ne doit pas contenir d'erreur
714     Element Text Should Be css=#dashboard div.widget_recherche_dossier_par_type div.message.ui-state-error p span.text Aucun dossier trouvé.
715    
716     # Contrôle de la saisie de caractères spéciaux
717     Input Text css=#dashboard div.widget_recherche_dossier_par_type input#dossier ;"?#'';'
718     Click Element css=#dashboard div.widget_recherche_dossier_par_type div.formControls input
719     Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Le titre de la page doit être Instruction > Dossiers D'instruction
720     La page ne doit pas contenir d'erreur
721     Textfield Value Should Be css=#advanced-form input#dossier *,
722    
723     # L'utilisateur étant mono, le DI d'une autre collectivité ne doit pas être trouvé
724     Go To Dashboard via Link
725     Input Text css=#dashboard div.widget_recherche_dossier_par_type input#dossier ${di_allauch}
726     Click Element css=#dashboard div.widget_recherche_dossier_par_type div.formControls input
727     Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Text Should Be css=#dashboard div.widget_recherche_dossier_par_type div.message.ui-state-error p span.text Aucun dossier trouvé.
728     La page ne doit pas contenir d'erreur
729    
730     # Recherche de dossiers ADS existants avec et sans espaces dans le numéro
731     Input Text css=#dashboard div.widget_recherche_dossier_par_type input#dossier ${di}
732     Click Element css=#dashboard div.widget_recherche_dossier_par_type div.formControls input
733     Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Le titre de la page doit être Instruction > Dossiers D'instruction > ${di} ${args_petitionnaire_di.particulier_nom} ${args_petitionnaire_di.particulier_prenom}
734     La page ne doit pas contenir d'erreur
735    
736     Go To Dashboard via Link
737     Input Text css=#dashboard div.widget_recherche_dossier_par_type input#dossier ${di_ns}
738     Click Element css=#dashboard div.widget_recherche_dossier_par_type div.formControls input
739     Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Le titre de la page doit être Instruction > Dossiers D'instruction > ${di} ${args_petitionnaire_di.particulier_nom} ${args_petitionnaire_di.particulier_prenom}
740     La page ne doit pas contenir d'erreur
741    
742     # Saisie d'une portion d'un numéro de dossier, avec un seul dossier en résultat
743     Go To Dashboard via Link
744     ${search_2a_1} = Get Substring ${di_ns} 0 2
745     ${search_2a_2} = Get Substring ${di_ns} 6 9
746     ${search_2a_3} = Get Substring ${di_ns} 14 16
747     ${search_2a} = Catenate SEPARATOR=* ${search_2a_1} ${search_2a_2} ${search_2a_3}
748     Input Text css=#dashboard div.widget_recherche_dossier_par_type input#dossier ${search_2a}
749     Click Element css=#dashboard div.widget_recherche_dossier_par_type div.formControls input
750     Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Le titre de la page doit être Instruction > Dossiers D'instruction > ${di} ${args_petitionnaire_di.particulier_nom} ${args_petitionnaire_di.particulier_prenom}
751     La page ne doit pas contenir d'erreur
752    
753     # Saisie d'une portion d'un numéro de dossier, avec plusieurs dossiers en résultat
754     Go To Dashboard via Link
755     ${search_2b} = Get Substring ${di_ns} 2 7
756     ${search_2b_adv} = Catenate SEPARATOR= *${search_2b}
757     Input Text css=#dashboard div.widget_recherche_dossier_par_type input#dossier ${search_2b}
758     Click Element css=#dashboard div.widget_recherche_dossier_par_type div.formControls input
759     Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Le titre de la page doit être Instruction > Dossiers D'instruction
760     La page ne doit pas contenir d'erreur
761     Textfield Value Should Be css=#advanced-form input#dossier ${search_2b_adv}
762    
763     # Passage de l'utilisateur juriste sur la collectivité agglo pour tester le filtre sur
764     # la collectivité
765     Depuis la page d'accueil admin admin
766     Modifier l'utilisateur juriste [email protected] juriste juriste JURISTE agglo
767    
768     # Un utilisateur multi doit pouvoir rechercher des dossiers de toutes les collectivités
769     Depuis la page d'accueil juriste juriste
770     Go To Dashboard via Link
771     Input Text css=#dashboard div.widget_recherche_dossier_par_type input#dossier ${di_allauch}
772     Click Element css=#dashboard div.widget_recherche_dossier_par_type div.formControls input
773     Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Le titre de la page doit être Instruction > Dossiers D'instruction > ${di_allauch} ${args_petitionnaire_di_a.particulier_nom} ${args_petitionnaire_di_a.particulier_prenom}
774     La page ne doit pas contenir d'erreur
775    
776     # Modification du type de dossier sélectionné par défaut
777     Depuis la page d'accueil admin admin
778     Depuis le contexte du widget recherche_dossier_par_type
779     Click On Form Portlet Action om_widget modifier
780     Input Text arguments type_defaut=RE*
781     Click On Submit Button
782     Modifier l'utilisateur juriste [email protected] juriste juriste JURISTE MARSEILLE
783    
784     Depuis la page d'accueil juriste juriste
785     # Recherche d'un dossier IN
786     Go To Dashboard via Link
787     Selected List Label Should Be css=select#type_dossier_recherche RE*
788     Select From List By Label css=select#type_dossier_recherche IN
789     Input Text css=#dashboard div.widget_recherche_dossier_par_type input#dossier ${di_inf}
790     Click Element css=#dashboard div.widget_recherche_dossier_par_type div.formControls input
791     Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Le titre de la page doit être Contentieux > Infraction > ${di_inf}
792     La page ne doit pas contenir d'erreur
793    
794     # Recherche de dossiers IN
795     Go To Dashboard via Link
796     Select From List By Label css=select#type_dossier_recherche IN
797     Input Text css=#dashboard div.widget_recherche_dossier_par_type input#dossier IN
798     Click Element css=#dashboard div.widget_recherche_dossier_par_type div.formControls input
799     Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Le titre de la page doit être Contentieux > Infractions
800     La page ne doit pas contenir d'erreur
801    
802     # Recherche d'un dossier RE
803     Go To Dashboard via Link
804     Input Text css=#dashboard div.widget_recherche_dossier_par_type input#dossier ${di_rec}
805     Click Element css=#dashboard div.widget_recherche_dossier_par_type div.formControls input
806     Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Le titre de la page doit être Contentieux > Recours > ${di_rec}
807     La page ne doit pas contenir d'erreur
808    
809     # Recherche de dossiers RE
810     Go To Dashboard via Link
811     Input Text css=#dashboard div.widget_recherche_dossier_par_type input#dossier RE
812     Click Element css=#dashboard div.widget_recherche_dossier_par_type div.formControls input
813     Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Le titre de la page doit être Contentieux > Recours
814     La page ne doit pas contenir d'erreur
815    
816    
817     Widget "Dossiers incomplets ou majorés sans date de notification"
818    
819     [Documentation] L'objet de ce 'Test Case' est de vérifier le
820     ... fonctionnement du widget 'Dossiers incomplets ou majorés sans date de notification'
821     ... (dossiers_evenement_incomplet_majoration)
822    
823     ##
824     ## Constitution du jeu de données
825     ##
826     ## On crée deux nouvelles collectivités pour être sûr du nombre
827     ## de retours de messages à vérifier dans les widgets et tableaux
828     ##
829     #
830     ${collectivite_a} = Set Variable DAKAR
831     ${collectivite_b} = Set Variable SINESALOUM
832     #
833     ${utilisateur_nom_01} = Set Variable Nicole Leduc
834     ${utilisateur_login_01} = Set Variable nleduc
835     ${utilisateur_nom_02} = Set Variable Julie Giguère
836     ${utilisateur_login_02} = Set Variable jguiguere
837     ${utilisateur_nom_03} = Set Variable Arno Perreault
838     ${utilisateur_login_03} = Set Variable aperreault
839     ${utilisateur_nom_04} = Set Variable Albertine Echeverri
840     ${utilisateur_login_04} = Set Variable aecheverri
841     ${utilisateur_secondaire_login} = Set Variable instructeur_secondaire_eim
842     #
843     Depuis la page d'accueil admin admin
844     #
845     Ajouter la collectivité depuis le menu ${collectivite_a} mono
846     Ajouter la collectivité depuis le menu ${collectivite_b} mono
847     #
848     Ajouter l'utilisateur ${utilisateur_nom_01} [email protected] ${utilisateur_login_01} ${utilisateur_login_01} INSTRUCTEUR ${collectivite_a}
849     Ajouter l'utilisateur ${utilisateur_nom_02} [email protected] ${utilisateur_login_02} ${utilisateur_login_02} INSTRUCTEUR ${collectivite_a}
850     Ajouter l'utilisateur ${utilisateur_nom_03} [email protected] ${utilisateur_login_03} ${utilisateur_login_03} INSTRUCTEUR ${collectivite_a}
851     Ajouter l'utilisateur ${utilisateur_nom_04} [email protected] ${utilisateur_login_04} ${utilisateur_login_04} INSTRUCTEUR ${collectivite_b}
852     Ajouter l'utilisateur ${utilisateur_secondaire_login} [email protected] ${utilisateur_secondaire_login} ${utilisateur_secondaire_login} INSTRUCTEUR ${collectivite_a}
853     #
854     Ajouter la direction depuis le menu D Direction D null Chef D null null ${collectivite_a}
855     Ajouter la direction depuis le menu S Direction S null Chef S null null ${collectivite_b}
856     #
857     Ajouter la division depuis le menu D subdivision D null Chef D null null Direction D
858     Ajouter la division depuis le menu DD subdivision DD null Chef D null null Direction D
859     Ajouter la division depuis le menu S subdivision S null Chef S null null Direction S
860     #
861     #
862     Ajouter l'instructeur depuis le menu ${utilisateur_nom_01} subdivision D instructeur ${utilisateur_nom_01}
863     Ajouter l'instructeur depuis le menu ${utilisateur_nom_02} subdivision DD instructeur ${utilisateur_nom_02}
864     Ajouter l'instructeur depuis le menu ${utilisateur_nom_03} subdivision D instructeur ${utilisateur_nom_03}
865     Ajouter l'instructeur depuis le menu ${utilisateur_nom_04} subdivision S instructeur ${utilisateur_nom_04}
866     Ajouter l'instructeur depuis le menu ${utilisateur_secondaire_login} subdivision D instructeur ${utilisateur_secondaire_login}
867     #
868     &{args_affectation} = Create Dictionary
869     ... instructeur=${utilisateur_nom_01} (D)
870     ... instructeur_2=${utilisateur_secondaire_login} (D)
871     ... om_collectivite=${collectivite_a}
872     Ajouter l'affectation depuis le menu ${args_affectation}
873     &{args_affectation} = Create Dictionary
874     ... instructeur=${utilisateur_nom_02} (DD)
875     ... instructeur_2=${utilisateur_secondaire_login} (D)
876     ... om_collectivite=${collectivite_a}
877     ... dossier_autorisation_type_detaille=PCA - Permis de construire comprenant ou non des démolitions
878     Ajouter l'affectation depuis le menu ${args_affectation}
879     &{args_affectation} = Create Dictionary
880     ... instructeur=${utilisateur_nom_03} (D)
881     ... instructeur_2=${utilisateur_secondaire_login} (D)
882     ... om_collectivite=${collectivite_a}
883     ... dossier_autorisation_type_detaille=PD - Permis de démolir
884     Ajouter l'affectation depuis le menu ${args_affectation}
885     &{args_affectation} = Create Dictionary
886     ... instructeur=${utilisateur_nom_04} (S)
887     ... om_collectivite=${collectivite_b}
888     Ajouter l'affectation depuis le menu ${args_affectation}
889    
890     # DI n°1 : Permis de démolir dans Collectivité A (niveau mono)
891     # => Affecté à l'instructeur '${utilisateur_nom_03}' (${utilisateur_login_03})
892     # => Division 'D'
893     #
894     &{args_petitionnaire_01} = Create Dictionary
895     ... particulier_nom=Chandonnet
896     ... particulier_prenom=Leone
897     ... om_collectivite=${collectivite_a}
898     #
899     &{args_demande_01} = Create Dictionary
900     ... dossier_autorisation_type_detaille=Permis de démolir
901     ... demande_type=Dépôt Initial
902     ... date_demande=${date_ddmmyyyy}
903     ... om_collectivite=${collectivite_a}
904     #
905     ${di_01} = Ajouter la demande par WS ${args_demande_01} ${args_petitionnaire_01}
906    
907     # DI n°2 : Permis de construire pour une maison individuelle et / ou ses annexes dans Collectivité A (niveau mono)
908     # => Affecté à l'instructeur '${utilisateur_nom_01}' (${utilisateur_login_01})
909     # => Division 'D'
910     #
911     &{args_petitionnaire_02} = Create Dictionary
912     ... particulier_nom=Joly
913     ... particulier_prenom=Frédérique
914     ... om_collectivite=${collectivite_a}
915     #
916     &{args_demande_02} = Create Dictionary
917     ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes
918     ... demande_type=Dépôt Initial
919     ... date_demande=${date_ddmmyyyy}
920     ... om_collectivite=${collectivite_a}
921     #
922     ${di_02} = Ajouter la demande par WS ${args_demande_02} ${args_petitionnaire_02}
923    
924     # DI n°3 : Permis de construire comprenant ou non des démolitions dans Collectivité A (niveau mono)
925     # => Affecté à l'instructeur '${utilisateur_nom_02}' (${utilisateur_login_02})
926     # => Division 'DD'
927     #
928     &{args_petitionnaire_03} = Create Dictionary
929     ... particulier_nom=Boucher
930     ... particulier_prenom=Bernadette
931     ... om_collectivite=${collectivite_a}
932     #
933     &{args_demande_03} = Create Dictionary
934     ... dossier_autorisation_type_detaille=Permis de construire comprenant ou non des démolitions
935     ... demande_type=Dépôt Initial
936     ... date_demande=${date_ddmmyyyy}
937     ... om_collectivite=${collectivite_a}
938     #
939     ${di_03} = Ajouter la demande par WS ${args_demande_03} ${args_petitionnaire_03}
940    
941     # DI n°4 : Permis de construire pour une maison individuelle et / ou ses annexes dans Collectivité B (niveau mono)
942     # => Affecté à l'instructeur '${utilisateur_nom_04}' (${utilisateur_login_04})
943     # => Division 'S'
944     #
945     &{args_petitionnaire_04} = Create Dictionary
946     ... particulier_nom=BOULAGE
947     ... particulier_prenom=Damien
948     ... om_collectivite=${collectivite_b}
949     #
950     &{args_demande_04} = Create Dictionary
951     ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes
952     ... demande_type=Dépôt Initial
953     ... date_demande=${date_ddmmyyyy}
954     ... om_collectivite=${collectivite_b}
955     #
956     ${di_04} = Ajouter la demande par WS ${args_demande_04} ${args_petitionnaire_04}
957    
958     # On applique l'événement "majoration + DPC hors SS" à chaque dossier et on met une
959     # date d'envoi AR à l'événement pour que les dossiers soient affichés dans le widget
960     Ajouter une instruction au DI et la finaliser ${di_01} majoration + DPC hors SS false ${date_ddmmyyyy}
961     Click On SubForm Portlet Action instruction modifier_suivi
962     Input Datepicker date_envoi_rar ${date_ddmmyyyy}
963     Click On Submit Button In Subform
964    
965     Ajouter une instruction au DI et la finaliser ${di_02} majoration + DPC hors SS false ${date_ddmmyyyy}
966     Click On SubForm Portlet Action instruction modifier_suivi
967     Input Datepicker date_envoi_rar ${date_ddmmyyyy}
968     Click On Submit Button In Subform
969    
970     Ajouter une instruction au DI et la finaliser ${di_03} majoration + DPC hors SS false ${date_ddmmyyyy}
971     Click On SubForm Portlet Action instruction modifier_suivi
972     Input Datepicker date_envoi_rar ${date_ddmmyyyy}
973     Click On Submit Button In Subform
974    
975     Ajouter une instruction au DI et la finaliser ${di_04} majoration + DPC hors SS false ${date_ddmmyyyy}
976     Click On SubForm Portlet Action instruction modifier_suivi
977     Input Datepicker date_envoi_rar ${date_ddmmyyyy}
978     Click On Submit Button In Subform
979    
980     #
981     # Cas d'utilisation n°1
982     # Un paramètre permet de filtrer les dossiers qui apparaissent soit par :
983     # - instructeur
984     # - division
985     # - aucun (collectivite)
986     #
987     # Vérification du :
988     # - fonctionnement des filtres
989     # - de la redirection vers le dossier
990     # - des dossiers affichés dans le widget ET la liste "voir plus"
991    
992     #
993     ${widget_id} = Set Variable widget_10
994     ${libelle_widget} = Set Variable dossiers_evenement_incomplet_majoration
995    
996     ## Vérification du filtre par défaut (instructeur)
997     # On se connecte en tant que "${utilisateur_login_01}" (Profil 'INSTRUCTEUR')
998     Depuis la page d'accueil ${utilisateur_login_01} ${utilisateur_login_01}
999     Element Should Contain css=#${widget_id} ${di_02}
1000     Element Should Not Contain css=#${widget_id} ${di_01}
1001     Element Should Not Contain css=#${widget_id} ${di_03}
1002     Element Should Not Contain css=#${widget_id} ${di_04}
1003     Click Link ${di_02}
1004     Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Le titre de la page doit être Instruction > Dossiers D'instruction > ${di_02} JOLY FRÉDÉRIQUE
1005    
1006     Depuis la page d'accueil ${utilisateur_login_01} ${utilisateur_login_01}
1007     Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Click Element css=#${widget_id} .widget-footer a
1008     Le titre de la page doit être Instruction > Dossiers Incomplets Ou Majorés Sans Date De Notification
1009     Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Contain css=#tab-dossiers_evenement_incomplet_majoration ${di_02}
1010     Element Should Not Contain css=#tab-dossiers_evenement_incomplet_majoration ${di_01}
1011     Element Should Not Contain css=#tab-dossiers_evenement_incomplet_majoration ${di_03}
1012     Element Should Not Contain css=#tab-dossiers_evenement_incomplet_majoration ${di_04}
1013     Click Link ${di_02}
1014     Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Le titre de la page doit être Instruction > Dossiers D'instruction > ${di_02} JOLY FRÉDÉRIQUE
1015    
1016     ## Vérification du filtre instructeur
1017     Depuis la page d'accueil admin admin
1018     Insérer les paramètres suivants dans le widget
1019     ... filtre=instructeur
1020     ... ${libelle_widget}
1021    
1022     # L'instructeur doit seulement voir son dossier
1023     Depuis la page d'accueil ${utilisateur_login_04} ${utilisateur_login_04}
1024     Element Should Contain css=#${widget_id} ${di_04}
1025     Element Should Not Contain css=#${widget_id} ${di_01}
1026     Element Should Not Contain css=#${widget_id} ${di_02}
1027     Element Should Not Contain css=#${widget_id} ${di_03}
1028    
1029     Click Element css=#${widget_id} .widget-footer a
1030     Le titre de la page doit être Instruction > Dossiers Incomplets Ou Majorés Sans Date De Notification
1031     Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Contain css=#tab-dossiers_evenement_incomplet_majoration ${di_04}
1032     Element Should Not Contain css=#tab-dossiers_evenement_incomplet_majoration ${di_01}
1033     Element Should Not Contain css=#tab-dossiers_evenement_incomplet_majoration ${di_02}
1034     Element Should Not Contain css=#tab-dossiers_evenement_incomplet_majoration ${di_03}
1035    
1036     # Filtre sur la division
1037     Depuis la page d'accueil admin admin
1038     Insérer les paramètres suivants dans le widget
1039     ... filtre=division
1040     ... ${libelle_widget}
1041    
1042     # On doit avoir 2 dossiers de la division
1043     Depuis la page d'accueil ${utilisateur_login_01} ${utilisateur_login_01}
1044     Element Should Contain css=#${widget_id} ${di_01}
1045     Element Should Contain css=#${widget_id} ${di_02}
1046     Element Should Not Contain css=#${widget_id} ${di_04}
1047     Element Should Not Contain css=#${widget_id} ${di_03}
1048    
1049     Click Element css=#${widget_id} .widget-footer a
1050     Le titre de la page doit être Instruction > Dossiers Incomplets Ou Majorés Sans Date De Notification
1051     Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Contain css=#tab-dossiers_evenement_incomplet_majoration ${di_02}
1052     Element Should Contain css=#tab-dossiers_evenement_incomplet_majoration ${di_01}
1053     Element Should Not Contain css=#tab-dossiers_evenement_incomplet_majoration ${di_04}
1054     Element Should Not Contain css=#tab-dossiers_evenement_incomplet_majoration ${di_03}
1055    
1056     # Filtre "aucun" donc sur la collectivité
1057     Depuis la page d'accueil admin admin
1058     Insérer les paramètres suivants dans le widget
1059     ... filtre=aucun
1060     ... ${libelle_widget}
1061    
1062     # On doit avoir les 3 dossiers de la collectivité
1063     Depuis la page d'accueil ${utilisateur_login_03} ${utilisateur_login_03}
1064     Element Should Contain css=#${widget_id} ${di_01}
1065     Element Should Contain css=#${widget_id} ${di_02}
1066     Element Should Contain css=#${widget_id} ${di_03}
1067     Element Should Not Contain css=#${widget_id} ${di_04}
1068     Click Element css=#${widget_id} .widget-footer a
1069     Le titre de la page doit être Instruction > Dossiers Incomplets Ou Majorés Sans Date De Notification
1070     Element Should Contain css=#tab-dossiers_evenement_incomplet_majoration ${di_01}
1071     Element Should Contain css=#tab-dossiers_evenement_incomplet_majoration ${di_02}
1072     Element Should Contain css=#tab-dossiers_evenement_incomplet_majoration ${di_03}
1073     Element Should Not Contain css=#tab-dossiers_evenement_incomplet_majoration ${di_04}
1074    
1075     ## Vérification du filtre instructeur_secondaire
1076     Depuis la page d'accueil admin admin
1077     Insérer les paramètres suivants dans le widget
1078     ... filtre=instructeur_secondaire
1079     ... ${libelle_widget}
1080     # On doit avoir les 3 dossiers sur lesquels l'instructeur secondaire est affecté
1081     Depuis la page d'accueil ${utilisateur_secondaire_login} ${utilisateur_secondaire_login}
1082     Element Should Contain css=#${widget_id} ${di_01}
1083     Element Should Contain css=#${widget_id} ${di_02}
1084     Element Should Contain css=#${widget_id} ${di_03}
1085     Element Should Not Contain css=#${widget_id} ${di_04}
1086     Click Element css=#${widget_id} .widget-footer a
1087     Le titre de la page doit être Instruction > Dossiers Incomplets Ou Majorés Sans Date De Notification
1088     Element Should Contain css=#tab-dossiers_evenement_incomplet_majoration ${di_01}
1089     Element Should Contain css=#tab-dossiers_evenement_incomplet_majoration ${di_02}
1090     Element Should Contain css=#tab-dossiers_evenement_incomplet_majoration ${di_03}
1091     Element Should Not Contain css=#tab-dossiers_evenement_incomplet_majoration ${di_04}
1092    
1093     # l'instructeur n'aura aucun résultat
1094     Depuis la page d'accueil ${utilisateur_login_03} ${utilisateur_login_03}
1095     Element Should Contain
1096     ... css=.widget_dossiers_evenement_incomplet_majoration
1097     ... Vous n'avez pas de dossiers d'instruction avec un événement d'incomplétude ou de majoration de délai sans date de notification.
1098    
1099     # Test l'affichage du widget avec un nombre plutôt qu'une liste
1100     Depuis la page d'accueil admin admin
1101     Insérer les paramètres suivants dans le widget
1102     ... filtre=aucun\naffichage=nombre
1103     ... ${libelle_widget}
1104    
1105     Depuis la page d'accueil ${utilisateur_login_03} ${utilisateur_login_03}
1106     Element Should Contain css=.widget_dossiers_evenement_incomplet_majoration span.bg-info 3
1107    
1108     # Suppression des affectations automatique
1109     Depuis la page d'accueil admin admin
1110     Supprimer l'affectation depuis le menu ${utilisateur_nom_01} (D)
1111     Supprimer l'affectation depuis le menu ${utilisateur_nom_02} (DD)
1112     Supprimer l'affectation depuis le menu ${utilisateur_nom_03} (D)
1113     Supprimer l'affectation depuis le menu ${utilisateur_nom_04} (S)
1114    
1115     Depuis le contexte du widget ${libelle_widget}
1116     Click On Form Portlet Action om_widget modifier
1117     Input Text arguments ${EMPTY}
1118     Click On Submit Button
1119    
1120    
1121     Widget "Nouveau dossier" et "Nouveau dossier contentieux"
1122     [Documentation] Ces widgets affichent un lien pour rediriger l'utilisateur
1123     ... Soit vers un nouveau dossier ADS soit vers un nouveau dossier contentieux.
1124    
1125     Depuis la page d'accueil guichet guichet
1126     Go To Dashboard via Link
1127     Click On Link Cliquer ici pour saisir une nouvelle demande concernant le dépôt d'un nouveau dossier
1128     Submenu In Menu Should Be Selected guichet_unique nouveau-dossier
1129    
1130     Depuis la page d'accueil assist assist
1131     Go To Dashboard via Link
1132     Click On Link Cliquer ici pour saisir une nouvelle demande concernant le dépôt d'un nouveau dossier
1133     Submenu In Menu Should Be Selected contentieux nouveau-dossier
1134    
1135    
1136     Widget "Dossiers Consultés"
1137     [Documentation] Ce widget affiche dans un tableau les X derniers dossiers consultés.
1138    
1139     # Permet de réinitialiser la session
1140     Depuis la page d'accueil instr instr
1141     Depuis la page d'accueil admin admin
1142     # Ajouter des DI
1143     &{args_petitionnaire} = Create Dictionary
1144     ... particulier_nom=Parfa
1145     ... particulier_prenom=Pierre
1146     ... om_collectivite=MARSEILLE
1147     &{args_demande} = Create Dictionary
1148     ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes
1149     ... demande_type=Dépôt Initial
1150     ... om_collectivite=MARSEILLE
1151     ${di_consulte_1} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire}
1152    
1153     &{args_petitionnaire} = Create Dictionary
1154     ... particulier_nom=Maurice
1155     ... particulier_prenom=Eric
1156     ... om_collectivite=MARSEILLE
1157     &{args_demande} = Create Dictionary
1158     ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes
1159     ... demande_type=Dépôt Initial
1160     ... om_collectivite=MARSEILLE
1161     ${di_consulte_2} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire}
1162    
1163     &{args_petitionnaire} = Create Dictionary
1164     ... particulier_nom=Oracle
1165     ... particulier_prenom=Yeal
1166     ... om_collectivite=MARSEILLE
1167     &{args_demande} = Create Dictionary
1168     ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes
1169     ... demande_type=Dépôt Initial
1170     ... om_collectivite=MARSEILLE
1171     ${di_consulte_3} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire}
1172    
1173     &{args_petitionnaire} = Create Dictionary
1174     ... particulier_nom=Paya
1175     ... particulier_prenom=Tim
1176     ... om_collectivite=MARSEILLE
1177     &{args_demande} = Create Dictionary
1178     ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes
1179     ... demande_type=Dépôt Initial
1180     ... om_collectivite=MARSEILLE
1181     ${di_consulte_4} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire}
1182    
1183     &{args_petitionnaire} = Create Dictionary
1184     ... particulier_nom=Marcel
1185     ... particulier_prenom=Jean
1186     ... om_collectivite=MARSEILLE
1187     &{args_demande} = Create Dictionary
1188     ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes
1189     ... demande_type=Dépôt Initial
1190     ... om_collectivite=MARSEILLE
1191     ${di_consulte_5} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire}
1192    
1193     # Suppression du widget des dossiers consultés par défaut du tableau de bord
1194     Go To ${PROJECT_URL}/app/index.php?module=tab&obj=om_dashboard
1195     Use Simple Search Profil ADMINISTRATEUR TECHNIQUE ET FONCTIONNEL
1196     Click Link Les derniers dossiers consultés
1197     Click On Form Portlet Action om_dashboard supprimer
1198     Click On Submit Button
1199    
1200     # Ajout du Widget avec un nombre limite à 3
1201     Go To ${PROJECT_URL}/app/index.php?module=form&obj=om_widget&action=0
1202     Input Text libelle Les derniers dossiers consultés (3)
1203     # Selection
1204     Select From List By Label type file - le contenu du widget provient d'un script sur le serveur
1205     Select From List By Label script dossier_consulter
1206     Input Text arguments nb_dossiers=3
1207     Click On Submit Button
1208    
1209     # Ajouter a la composition
1210     Go To ${PROJECT_URL}/app/index.php?module=form&obj=om_dashboard&action=0
1211     Select From List By Label om_profil ADMINISTRATEUR TECHNIQUE ET FONCTIONNEL
1212     Input Text bloc C1
1213     Select From List By Label om_widget Les derniers dossiers consultés (3)
1214     Click On Submit Button
1215    
1216     Go To Dashboard via Link
1217     Element Should Not Contain css=.widget_dossier_consulter ${di_consulte_1}
1218     Element Should Not Contain css=.widget_dossier_consulter ${di_consulte_2}
1219     Element Should Contain css=.widget_dossier_consulter Vous n'avez pas consulté de dossier pour le moment.
1220    
1221     # Les consulter
1222     Go To ${PROJECT_URL}/app/index.php?module=tab&obj=dossier_instruction
1223     Input Text dossier ${di_consulte_1},${di_consulte_2}
1224     Click Element css=#adv-search-submit
1225     Click On Link ${di_consulte_1}
1226     Click On Back Button
1227     Click On Link ${di_consulte_2}
1228    
1229     # On vérifie que le bouton "Afficher +" n'est pas affiché
1230     Go To Dashboard via Link
1231     Element Should Not Contain css=.widget_dossier_consulter Afficher +
1232    
1233     Go To ${PROJECT_URL}/app/index.php?module=tab&obj=dossier_instruction
1234     Input Text dossier ${di_consulte_3},${di_consulte_4},${di_consulte_5}
1235     Click Element css=#adv-search-submit
1236     Click On Link ${di_consulte_3}
1237     Click On Back Button
1238     Click On Link ${di_consulte_4}
1239     Click On Back Button
1240     Click On Link ${di_consulte_5}
1241    
1242     Go To Dashboard via Link
1243     Element Should Not Contain css=.widget_dossier_consulter ${di_consulte_1}
1244     Element Should Not Contain css=.widget_dossier_consulter ${di_consulte_2}
1245     Element Should Contain css=.widget_dossier_consulter ${di_consulte_3}
1246     Element Should Contain css=.widget_dossier_consulter ${di_consulte_4}
1247     Element Should Contain css=.widget_dossier_consulter ${di_consulte_5}
1248     Element Should Not Contain css=.widget_dossier_consulter Vous n'avez pas consulté de dossier pour le moment.
1249    
1250     # Test contenu du Afficher +
1251     Click Element css=.widget_dossier_consulter .widget-footer a
1252     Element Should Contain css=.widget_dossier_consulter ${di_consulte_1}
1253     Element Should Contain css=.widget_dossier_consulter ${di_consulte_2}
1254    
1255     # Ajout d'un dossier de recours et d'un dossier d'infraction pour tester les
1256     # différentes redirections possibles
1257     &{args_petitionnaire} = Create Dictionary
1258     ... particulier_nom=Parfa
1259     ... particulier_prenom=Pierre
1260     ... om_collectivite=MARSEILLE
1261     &{args_autres_demandeurs} = Create Dictionary
1262     ... petitionnaire=${args_petitionnaire}
1263     &{args_demande} = Create Dictionary
1264     ... dossier_autorisation_type_detaille=Recours gracieux
1265     ... demande_type=Dépôt Initial REG
1266     ... autorisation_contestee=${di_consulte_1}
1267     ... om_collectivite=MARSEILLE
1268     ${di_reg} = Ajouter la demande par WS ${args_demande} ${NULL} ${args_autres_demandeurs}
1269    
1270     &{args_contrevenant} = Create Dictionary
1271     ... particulier_nom=Massé
1272     ... particulier_prenom=Madelene
1273     ... om_collectivite=MARSEILLE
1274     &{args_autres_demandeurs} = Create Dictionary
1275     ... contrevenant_principal=${args_contrevenant}
1276     &{args_demande} = Create Dictionary
1277     ... dossier_autorisation_type_detaille=Infraction
1278     ... demande_type=Dépôt Initial IN
1279     ... om_collectivite=MARSEILLE
1280     ${di_inf} = Ajouter la demande par WS ${args_demande} ${NULL} ${args_autres_demandeurs}
1281    
1282     Depuis le contexte du dossier recours ${di_reg}
1283     Depuis le contexte du dossier infraction ${di_inf}
1284     Depuis le contexte du dossier d'instruction ${di_consulte_1}
1285    
1286     Go To Dashboard via Link
1287     Click Element css=.widget_dossier_consulter .widget-footer a
1288     Click On Link ${di_consulte_1}
1289     Page Should Not Contain Droits insuffisants
1290     Go To Dashboard via Link
1291     Click Element css=.widget_dossier_consulter .widget-footer a
1292     Click On Link ${di_reg}
1293     Page Should Not Contain Droits insuffisants
1294     Go To Dashboard via Link
1295     Click Element css=.widget_dossier_consulter .widget-footer a
1296     Click On Link ${di_inf}
1297     Page Should Not Contain Droits insuffisants
1298    
1299     # Suppression du widget du tableau de bord
1300     Go To ${PROJECT_URL}/app/index.php?module=tab&obj=om_dashboard
1301     Use Simple Search Profil ADMINISTRATEUR TECHNIQUE ET FONCTIONNEL
1302     Click Link Les derniers dossiers consultés (3)
1303     Click On Form Portlet Action om_dashboard supprimer
1304     Click On Submit Button
1305    
1306     # Suppression du widget
1307     Go To ${PROJECT_URL}/app/index.php?module=tab&obj=om_widget
1308     Use Simple Search libellé Les derniers dossiers consultés (3)
1309     Click Link Les derniers dossiers consultés (3)
1310     Click On Form Portlet Action om_widget supprimer
1311     Click On Submit Button
1312    
1313     # Ajout le widget par défaut
1314     Go To ${PROJECT_URL}/app/index.php?module=form&obj=om_dashboard&action=0
1315     Select From List By Label om_profil ADMINISTRATEUR TECHNIQUE ET FONCTIONNEL
1316     Input Text bloc C1
1317     Select From List By Label om_widget Les derniers dossiers consultés
1318     Click On Submit Button
1319    
1320    
1321     Widget "Derniers dossiers déposés"
1322     [Documentation] Ce widget affiche le nombre des derniers
1323     ... dossiers déposés.
1324    
1325     # On crée une collectivité, ses divisions et ses instructeurs
1326     # pour ne pas perturber ni être perturbé par les autres tests.
1327     #
1328     Depuis la page d'accueil admin admin
1329     #
1330     Ajouter la collectivité depuis le menu STORYBROOK mono
1331     Ajouter la direction depuis le menu STORYBROOK STORYBROOK null Chef STORYBROOK null null STORYBROOK
1332     Ajouter la division depuis le menu SB1 subdivision SB1 null
1333     ... Chef STORYBROOK null null STORYBROOK
1334     Ajouter la division depuis le menu SB2 subdivision SB2 null
1335     ... Chef STORYBROOK null null STORYBROOK
1336    
1337     # Ajout d'un instructeur secondaire à affecter aux dossiers
1338     ${instructeur_secondaire_login} = Set Variable instructeur_secondaire_ddd
1339     Ajouter l'utilisateur ${instructeur_secondaire_login} [email protected] ${instructeur_secondaire_login} ${instructeur_secondaire_login} INSTRUCTEUR STORYBROOK
1340     Ajouter l'instructeur depuis le menu ${instructeur_secondaire_login} subdivision SB1 instructeur ${instructeur_secondaire_login}
1341    
1342     Ajouter l'utilisateur Peter Pan [email protected] ppan ppan INSTRUCTEUR STORYBROOK
1343     Ajouter l'instructeur depuis le menu Peter Pan subdivision SB1 instructeur Peter Pan
1344     &{args_affectation} = Create Dictionary
1345     ... instructeur=Peter Pan (SB1)
1346     ... instructeur_2=${instructeur_secondaire_login} (SB1)
1347     ... om_collectivite=STORYBROOK
1348     ... dossier_autorisation_type_detaille=PCI - Permis de construire pour une maison individuelle et / ou ses annexes
1349     Ajouter l'affectation depuis le menu ${args_affectation}
1350     #
1351     Ajouter l'utilisateur Wendy Darling [email protected] wdarling wdarling INSTRUCTEUR STORYBROOK
1352     Ajouter l'instructeur depuis le menu Wendy Darling subdivision SB2 instructeur Wendy Darling
1353     &{args_affectation} = Create Dictionary
1354     ... instructeur=Wendy Darling (SB2)
1355     ... instructeur_2=${instructeur_secondaire_login} (SB1)
1356     ... om_collectivite=STORYBROOK
1357     ... dossier_autorisation_type_detaille=PD - Permis de démolir
1358     Ajouter l'affectation depuis le menu ${args_affectation}
1359     #
1360     #Création des divisions, instructeurs et affectations automatiques
1361    
1362     # On ajoute le droit au profil instructeur
1363     Depuis la page d'accueil admin admin
1364     Ajouter le droit depuis le menu derniers_dossiers_deposes INSTRUCTEUR
1365    
1366    
1367     # On vérifie que le widget est paramétré correctement:
1368     # DATD: PCI et PD
1369     # Filtre division
1370     # Intervalle de date de dépôt: 15 jours
1371     # type de dépôt: dépôt électronique
1372     Insérer les paramètres suivants dans le widget
1373     ... codes_datd=PCI;PD\nfiltre=division\nfiltre_depot=depot_electronique\nnombre_de_jours=15
1374     ... derniers_dossiers_deposes
1375    
1376     # On ajoute le widget au tableau de bord des instructeurs
1377     Go To ${PROJECT_URL}/app/index.php?module=form&obj=om_dashboard&action=0
1378     Select From List By Label om_profil INSTRUCTEUR
1379     Input Text bloc C1
1380     Select From List By Label om_widget Les derniers dossiers déposés
1381     Click On Submit Button
1382    
1383     # On vérifie que le widget n'indique aucun dossier déposé
1384     Depuis la page d'accueil ppan ppan
1385     Element Should Contain css=.widget_derniers_dossiers_deposes .widget-content
1386     ... Aucun dossier déposé dernièrement.
1387    
1388     #En DIVISION 1 :Création d'un jeu de dossiers remplissant les critères :
1389     # intervalle de dépôt, dépôt électronique
1390     &{args_petitionnaire} = Create Dictionary
1391     ... particulier_nom=Applefield
1392     ... particulier_prenom=Nadia
1393     ... om_collectivite=STORYBROOK
1394     &{args_demande} = Create Dictionary
1395     ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes
1396     ... demande_type=Dépôt Initial
1397     ... om_collectivite=STORYBROOK
1398     ... depot_electronique=true
1399     ${di_01} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire}
1400    
1401     &{args_petitionnaire} = Create Dictionary
1402     ... particulier_nom=Dandelion
1403     ... particulier_prenom=Leopold
1404     ... om_collectivite=STORYBROOK
1405     &{args_demande} = Create Dictionary
1406     ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes
1407     ... demande_type=Dépôt Initial
1408     ... om_collectivite=STORYBROOK
1409     ... depot_electronique=true
1410     ${di_02} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire}
1411    
1412     #En DIVISION 2: Création d'un jeu de dossiers remplissant les critères :
1413     # intervalle de dépôt, dépôt électronique
1414     &{args_petitionnaire} = Create Dictionary
1415     ... particulier_nom=Haskill
1416     ... particulier_prenom=George
1417     ... om_collectivite=STORYBROOK
1418     &{args_demande} = Create Dictionary
1419     ... dossier_autorisation_type_detaille=Permis de démolir
1420     ... demande_type=Dépôt Initial
1421     ... om_collectivite=STORYBROOK
1422     ... depot_electronique=true
1423     ${di_03} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire}
1424    
1425    
1426     #DIV 1: Création d'un dossier ne remplissant pas le critère intervalle de dépôt
1427     &{args_petitionnaire} = Create Dictionary
1428     ... particulier_nom=Prince
1429     ... particulier_prenom=François
1430     ... om_collectivite=STORYBROOK
1431     &{args_demande} = Create Dictionary
1432     ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes
1433     ... demande_type=Dépôt Initial
1434     ... om_collectivite=STORYBROOK
1435     ... date_demande=01/01/2015
1436     ... depot_electronique=true
1437     ${di_04} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire}
1438    
1439     #DIV 1: Création d'un dossier ne remplissant pas le critère dépôt électronique
1440     &{args_petitionnaire} = Create Dictionary
1441     ... particulier_nom=Noire
1442     ... particulier_prenom=Rose
1443     ... om_collectivite=STORYBROOK
1444     ... om_collectivite=MARSEILLE
1445     &{args_demande} = Create Dictionary
1446     ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes
1447     ... demande_type=Dépôt Initial
1448     ... om_collectivite=STORYBROOK
1449     ... depot_electronique=false
1450     ${di_05} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire}
1451    
1452     ## Vérification du widget et du listing Division 1
1453     Depuis la page d'accueil ppan ppan
1454     ${nombre_derniers_dossiers_deposes} = Get Text
1455     ... css=div#content.ui-widget.ui-widget-content.ui-corner-all div.widget_derniers_dossiers_deposes .widget-content span.size-h3.box-icon.rounded.bg-info
1456     Should Not Be Empty ${nombre_derniers_dossiers_deposes}
1457     Should Be Equal ${nombre_derniers_dossiers_deposes} 2
1458     # On clique sur le lien du widget (Voir +)
1459     Click Link css=.widget_derniers_dossiers_deposes .widget-footer a
1460     Le titre de la page doit être Instruction > Dossiers Déposés
1461     # L'instructeur doit voir tous les dossiers de sa division
1462     # qui respectent les paramètres du widget(sauf intervalle de dépot)
1463     Element Should Contain css=#tab-derniers_dossiers_deposes ${di_01}
1464     Element Should Contain css=#tab-derniers_dossiers_deposes ${di_02}
1465     Element Should Not Contain css=#tab-derniers_dossiers_deposes ${di_03}
1466     Element Should Not Contain css=#tab-derniers_dossiers_deposes ${di_04}
1467     Element Should Not Contain css=#tab-derniers_dossiers_deposes ${di_05}
1468    
1469     ## Vérification du widget et du listing Division 2
1470     Depuis la page d'accueil wdarling wdarling
1471     ${nombre_derniers_dossiers_deposes} = Get Text
1472     ... css=.widget_derniers_dossiers_deposes .widget-content span.size-h3.box-icon.rounded.bg-info
1473     Should Not Be Empty ${nombre_derniers_dossiers_deposes}
1474     Should Be Equal ${nombre_derniers_dossiers_deposes} 1
1475     # On clique sur le lien du widget (Voir +)
1476     Click Link css=.widget_derniers_dossiers_deposes .widget-footer a
1477     Le titre de la page doit être Instruction > Dossiers Déposés
1478     # L'instructeur doit voir tous les dossiers de sa division
1479     # qui respectent les paramètres du widget(sauf intervalle de dépot)
1480     Element Should Not Contain css=#tab-derniers_dossiers_deposes ${di_01}
1481     Element Should Not Contain css=#tab-derniers_dossiers_deposes ${di_02}
1482     Element Should Contain css=#tab-derniers_dossiers_deposes ${di_03}
1483     Element Should Not Contain css=#tab-derniers_dossiers_deposes ${di_05}
1484     Element Should Not Contain css=#tab-derniers_dossiers_deposes ${di_04}
1485    
1486     # Modification du filtre de dépôt pour vérifier la modification du résultat
1487     # et l'ajout d'une colonne au lisitng
1488     Depuis la page d'accueil admin admin
1489     Insérer les paramètres suivants dans le widget
1490     ... codes_datd=PCI;PD\nfiltre=division\nfiltre_depot=aucun\nnombre_de_jours=15
1491     ... derniers_dossiers_deposes
1492    
1493     ## Vérification du widget et du listing Division 1
1494     Depuis la page d'accueil ppan ppan
1495     ${nombre_derniers_dossiers_deposes} = Get Text
1496     ... css=div#content.ui-widget.ui-widget-content.ui-corner-all div.widget_derniers_dossiers_deposes .widget-content span.size-h3.box-icon.rounded.bg-info
1497     Should Not Be Empty ${nombre_derniers_dossiers_deposes}
1498     Should Be Equal ${nombre_derniers_dossiers_deposes} 3
1499     # On clique sur le lien du widget (Voir +)
1500     Click Link css=.widget_derniers_dossiers_deposes .widget-footer a
1501     Le titre de la page doit être Instruction > Dossiers Déposés
1502     # L'instructeur doit voir tous les dossiers de sa division
1503     # qui respectent les paramètres du widget(sauf intervalle de dépot)
1504     Element Should Contain css=#tab-derniers_dossiers_deposes ${di_01}
1505     Element Should Contain css=#tab-derniers_dossiers_deposes ${di_02}
1506     Element Should Not Contain css=#tab-derniers_dossiers_deposes ${di_03}
1507     Element Should Not Contain css=#tab-derniers_dossiers_deposes ${di_04}
1508     Element Should Contain css=#tab-derniers_dossiers_deposes ${di_05}
1509     # Vérifie que la colonne "dépôt électronique" est affichée
1510     Element Should Contain css=#tab-derniers_dossiers_deposes dépôt électronique
1511    
1512     # Modification du filtre de dépôt pour tester le filtre sur l'instructeur secondaire
1513     Depuis la page d'accueil admin admin
1514     Insérer les paramètres suivants dans le widget
1515     ... filtre=instructeur_secondaire\ncodes_datd=PCI;PD\nfiltre_depot=aucun\nnombre_de_jours=15
1516     ... derniers_dossiers_deposes
1517     # Vérification des résultats affichés dans le widgets
1518     Depuis la page d'accueil ${instructeur_secondaire_login} ${instructeur_secondaire_login}
1519     Element Should Contain css=.widget_derniers_dossiers_deposes span.bg-info 4
1520     # On clique sur le lien du widget (Voir +)
1521     Click Link css=.widget_derniers_dossiers_deposes .widget-footer a
1522     # L'instructeur doit voir tous les dossiers sur lesquels il est affecté en tant qu'instructeur
1523     # secondaire et qui respectent les paramètres du widget(sauf intervalle de dépot)
1524     Wait Until Page Contains Element css=#tab-derniers_dossiers_deposes
1525     Element Should Contain css=#tab-derniers_dossiers_deposes ${di_01}
1526     Element Should Contain css=#tab-derniers_dossiers_deposes ${di_02}
1527     Element Should Contain css=#tab-derniers_dossiers_deposes ${di_03}
1528     Element Should Not Contain css=#tab-derniers_dossiers_deposes ${di_04}
1529     Element Should Contain css=#tab-derniers_dossiers_deposes ${di_05}
1530    
1531     #Supprimer le droit ajouté en début de test pour revenir en condition initiale
1532     Depuis la page d'accueil admin admin
1533     Depuis le listing des droits
1534     Use Simple Search libellé derniers_dossiers_deposes
1535     Select From List By Label name=selectioncol Tous
1536     Click Element css=button#search-submit
1537     Wait Until Element Is Visible css=table.tab-tab
1538     Click On Link INSTRUCTEUR
1539     Click On Form Portlet Action om_droit supprimer
1540     Click On Submit Button
1541    
1542    
1543     Widget "Dossiers à qualifier (limite de la notification du délai)"
1544     [Documentation] Ce widget affiche les dossiers à qualifier
1545     ... et dont la date notification de délai n'est par encore dépassée.
1546    
1547     #
1548     Depuis la page d'accueil admin admin
1549     # Isolation du contexte
1550     Ajouter la collectivité depuis le menu TESTNOTIFICATIONDELAI mono
1551     Ajouter la direction depuis le menu TESTNOTIFICATIONDELAI TESTNOTIFICATIONDELAI null Chef TESTNOTIFICATIONDELAI null null TESTNOTIFICATIONDELAI
1552     Ajouter la division depuis le menu SB8 subdivision SB8 null
1553     ... Chef TESTNOTIFICATIONDELAI null null TESTNOTIFICATIONDELAI
1554     Ajouter la division depuis le menu SB9 subdivision SB9 null
1555     ... Chef TESTNOTIFICATIONDELAI null null TESTNOTIFICATIONDELAI
1556    
1557     Ajouter l'utilisateur delai_pre_inst [email protected] delai_pre_inst delai_pre_inst INSTRUCTEUR POLYVALENT TESTNOTIFICATIONDELAI
1558     ${instructeur_secondaire_login} = Set Variable instructeur_secondaire
1559     Ajouter l'utilisateur ${instructeur_secondaire_login} [email protected] ${instructeur_secondaire_login} ${instructeur_secondaire_login} INSTRUCTEUR POLYVALENT TESTNOTIFICATIONDELAI
1560     # TODO : ajouter un 3ème profil et l'affecter en instructeur secondaire
1561     # On affecte cet instructeur aux PCI
1562     Ajouter l'instructeur depuis le menu delai_pre_inst subdivision SB8 instructeur delai_pre_inst
1563     Ajouter l'instructeur depuis le menu ${instructeur_secondaire_login} subdivision SB8 instructeur ${instructeur_secondaire_login}
1564     &{args_affectation} = Create Dictionary
1565     ... instructeur=delai_pre_inst (SB8)
1566     ... instructeur_2=${instructeur_secondaire_login} (SB8)
1567     ... om_collectivite=TESTNOTIFICATIONDELAI
1568     ... dossier_autorisation_type_detaille=PCI - Permis de construire pour une maison individuelle et / ou ses annexes
1569     Ajouter l'affectation depuis le menu ${args_affectation}
1570     # On affecte cet instructeur aux CU
1571     Ajouter l'utilisateur delai_pre_inst_polycomm [email protected] delai_pre_inst_polycomm delai_pre_inst_polycomm INSTRUCTEUR POLYVALENT COMMUNE TESTNOTIFICATIONDELAI
1572     Ajouter l'instructeur depuis le menu delai_pre_inst_polycomm subdivision SB9 instructeur delai_pre_inst_polycomm
1573     &{args_affectation} = Create Dictionary
1574     ... instructeur=delai_pre_inst_polycomm (SB9)
1575     ... instructeur_2=${instructeur_secondaire_login} (SB8)
1576     ... om_collectivite=TESTNOTIFICATIONDELAI
1577     ... dossier_autorisation_type_detaille=CU - Certificat d'urbanisme
1578     Ajouter l'affectation depuis le menu ${args_affectation}
1579    
1580     # On vérifie que le widget apparaît sur le tableau de bord des utilisateurs instrpolycomm
1581     Depuis la page d'accueil delai_pre_inst_polycomm delai_pre_inst_polycomm
1582     Element Should Contain css=.widget_dossiers_pre_instruction Vous n'avez aucun dossier d'instruction à qualifier dont la date limite de notification du délai au pétitionnaire arrive bientôt à échéance.
1583    
1584     # Calcul de la date de demande des dossiers pour leur donner une date limite de notification (dln)
1585     # le plus proche possible de celle du jour
1586     # La dln est calculé en ajoutant 1 mois à la date de demande. On enlève donc 1 mois
1587     # à la date courante pour s'en approcher
1588     ${date_di} = Ajouter ou supprimer des mois à une date -1 ${date_ddmmyyyy}
1589     # Calcul la dln à partir de la date de demande précédente
1590     ${date_limite_notification} = Ajouter ou supprimer des mois à une date 1 ${date_di}
1591     # Vérifie si la date courante n'est pas supérieure à la dln.
1592     # Ce cas est possible pour les jours en 31 ou si on est le 29, 30 ou 31 mars.
1593     # Si c'est le cas on prend le 1 jour du mois courant comme jour pour la date de demande
1594     ${date_dmy} = Convert Date ${date_ddmmyyyy} datetime date_format=%d/%m/%Y
1595     ${month_dmy} = Set Variable If ${date_dmy.month} < 10 0${date_dmy.month} ${date_dmy.month}
1596     ${date_dln} = Convert Date ${date_limite_notification} datetime date_format=%d/%m/%Y
1597     ${date_di} = Run Keyword If ${date_dmy.day} > ${date_dln.day}
1598     ... Convert date ${date_dmy.year}-${month_dmy}-01 result_format=%d/%m/%Y
1599     ... ELSE Set Variable ${date_di}
1600    
1601     # Ajout d'un dossier afin qu'il soit affiché dans le widget (-1 mois avant)
1602     &{args_petitionnaire_alert_pre_instruction} = Create Dictionary
1603     ... particulier_nom=045TESTDELAIPREINSTRUCTIONNOM
1604     ... particulier_prenom=045TESTDELAIPREINSTRUCTIONPRENOM
1605     ... om_collectivite=TESTNOTIFICATIONDELAI
1606     &{args_demande_alert_pre_instruction} = Create Dictionary
1607     ... date_demande=${date_di}
1608     ... dossier_autorisation_type_detaille=Certificat d'urbanisme
1609     ... demande_type=Dépôt Initial
1610     ... om_collectivite=TESTNOTIFICATIONDELAI
1611     ${di_alert_pre_instruction} = Ajouter la demande par WS ${args_demande_alert_pre_instruction} ${args_petitionnaire_alert_pre_instruction}
1612     # On vérifie que le dossier apparraît ou non dans le widget des utilisateurs
1613     Depuis la page d'accueil delai_pre_inst_polycomm delai_pre_inst_polycomm
1614     Element Should Contain css=#dossier_dossiers_pre_instruction_0 ${di_alert_pre_instruction}
1615    
1616     Depuis la page d'accueil delai_pre_inst delai_pre_inst
1617     Element Should Contain css=.widget_dossiers_pre_instruction Vous n'avez aucun dossier d'instruction à qualifier dont la date limite de notification du délai au pétitionnaire arrive bientôt à échéance.
1618    
1619     # On change le filtre sur 'aucun'
1620     Depuis la page d'accueil admin admin
1621     Insérer les paramètres suivants dans le widget filtre=aucun dossiers_pre_instruction
1622    
1623     Depuis la page d'accueil delai_pre_inst delai_pre_inst
1624     Element Should Contain css=#dossier_dossiers_pre_instruction_0 ${di_alert_pre_instruction}
1625    
1626     # On remet le filtre par défaut (instructeur)
1627     Depuis la page d'accueil admin admin
1628     Insérer les paramètres suivants dans le widget ${EMPTY} dossiers_pre_instruction
1629    
1630     &{args_petitionnaire_alert_pre_instruction1} = Create Dictionary
1631     ... particulier_nom=045TESTDELAIPREINSTRUCTIONNOM1
1632     ... particulier_prenom=045TESTDELAIPREINSTRUCTIONPRENOM1
1633     ... om_collectivite=TESTNOTIFICATIONDELAI
1634     &{args_demande_alert_pre_instruction1} = Create Dictionary
1635     ... date_demande=${date_di}
1636     ... dossier_autorisation_type_detaille=Certificat d'urbanisme
1637     ... demande_type=Dépôt Initial
1638     ... om_collectivite=TESTNOTIFICATIONDELAI
1639     ${di_alert_pre_instruction1} = Ajouter la demande par WS ${args_demande_alert_pre_instruction1} ${args_petitionnaire_alert_pre_instruction1}
1640    
1641     Depuis la page d'accueil delai_pre_inst_polycomm delai_pre_inst_polycomm
1642     Element Should Contain css=#dossier_dossiers_pre_instruction_0 ${di_alert_pre_instruction}
1643     Element Should Contain css=#dossier_dossiers_pre_instruction_1 ${di_alert_pre_instruction1}
1644    
1645     Depuis la page d'accueil delai_pre_inst delai_pre_inst
1646     Element Should Contain css=.widget_dossiers_pre_instruction Vous n'avez aucun dossier d'instruction à qualifier dont la date limite de notification du délai au pétitionnaire arrive bientôt à échéance.
1647    
1648     # On change le filtre sur 'aucun'
1649     Depuis la page d'accueil admin admin
1650     Insérer les paramètres suivants dans le widget filtre=aucun dossiers_pre_instruction
1651    
1652     Depuis la page d'accueil delai_pre_inst delai_pre_inst
1653     Element Should Contain css=#dossier_dossiers_pre_instruction_0 ${di_alert_pre_instruction}
1654     Element Should Contain css=#dossier_dossiers_pre_instruction_1 ${di_alert_pre_instruction1}
1655     Click Element css=.widget_dossiers_pre_instruction .widget-footer a
1656     Le titre de la page doit être Instruction > Dossiers À Qualifier (limite De La Notification Du Délai)
1657     Element Should Contain css=#tab-dossiers_pre_instruction ${di_alert_pre_instruction}
1658     Element Should Contain css=#tab-dossiers_pre_instruction ${di_alert_pre_instruction1}
1659    
1660     # On met un filtre sur les PCI
1661     Depuis la page d'accueil admin admin
1662     Insérer les paramètres suivants dans le widget filtre=aucun\ncodes_datd=PCI dossiers_pre_instruction
1663     # L'utilisateur ne possède que des CU donc il ne doit pas y avoir de dossier.
1664     Depuis la page d'accueil delai_pre_inst_polycomm delai_pre_inst_polycomm
1665     Element Should Contain css=.widget_dossiers_pre_instruction Vous n'avez aucun dossier d'instruction à qualifier dont la date limite de notification du délai au pétitionnaire arrive bientôt à échéance.
1666    
1667     &{args_petitionnaire_alert_pre_instruction2} = Create Dictionary
1668     ... particulier_nom=045TESTDELAIPREINSTRUCTIONNOM2
1669     ... particulier_prenom=045TESTDELAIPREINSTRUCTIONPRENOM2
1670     ... om_collectivite=TESTNOTIFICATIONDELAI
1671     &{args_demande_alert_pre_instruction2} = Create Dictionary
1672     ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes
1673     ... date_demande=${date_di}
1674     ... demande_type=Dépôt Initial
1675     ... om_collectivite=TESTNOTIFICATIONDELAI
1676     ${di_alert_pre_instruction2} = Ajouter la demande par WS ${args_demande_alert_pre_instruction2} ${args_petitionnaire_alert_pre_instruction2}
1677    
1678     Depuis la page d'accueil delai_pre_inst delai_pre_inst
1679     Element Should Contain css=#dossier_dossiers_pre_instruction_0 ${di_alert_pre_instruction2}
1680    
1681     Depuis la page d'accueil delai_pre_inst_polycomm delai_pre_inst_polycomm
1682     Element Should Contain css=#dossier_dossiers_pre_instruction_0 ${di_alert_pre_instruction2}
1683     # On clique sur Voir + pour vérifier que les dossiers sont présents
1684     Click Element css=.widget_dossiers_pre_instruction .widget-footer a
1685     Le titre de la page doit être Instruction > Dossiers À Qualifier (limite De La Notification Du Délai)
1686     Element Should Not Contain css=#tab-dossiers_pre_instruction ${di_alert_pre_instruction}
1687     Element Should Not Contain css=#tab-dossiers_pre_instruction ${di_alert_pre_instruction1}
1688     Element Should Contain css=#tab-dossiers_pre_instruction ${di_alert_pre_instruction2}
1689    
1690     # On met un filtre de division
1691     Depuis la page d'accueil admin admin
1692     Insérer les paramètres suivants dans le widget filtre=division dossiers_pre_instruction
1693     #On vérifie que seulement les dossier de la division de l'utilisateur sont présentes
1694     Depuis la page d'accueil delai_pre_inst_polycomm delai_pre_inst_polycomm
1695     Element Should Contain css=#dossier_dossiers_pre_instruction_0 ${di_alert_pre_instruction}
1696     Element Should Contain css=#dossier_dossiers_pre_instruction_1 ${di_alert_pre_instruction1}
1697     Page Should Not Contain ${di_alert_pre_instruction2}
1698     # De même dans Voir +
1699     Click Element css=.widget_dossiers_pre_instruction .widget-footer a
1700     Le titre de la page doit être Instruction > Dossiers À Qualifier (limite De La Notification Du Délai)
1701     Element Should Not Contain css=#tab-dossiers_pre_instruction ${di_alert_pre_instruction2}
1702     Element Should Contain css=#tab-dossiers_pre_instruction ${di_alert_pre_instruction}
1703     Element Should Contain css=#tab-dossiers_pre_instruction ${di_alert_pre_instruction1}
1704    
1705     # Test l'affichage du widget avec un nombre plutôt qu'une liste
1706     Depuis la page d'accueil admin admin
1707     Insérer les paramètres suivants dans le widget filtre=division\naffichage=nombre dossiers_pre_instruction
1708    
1709     Depuis la page d'accueil delai_pre_inst_polycomm delai_pre_inst_polycomm
1710     Element Should Contain css=.widget_dossiers_pre_instruction span.bg-info 2
1711    
1712     # Test du filtrage par instructeur secondaire
1713     Depuis la page d'accueil admin admin
1714     Insérer les paramètres suivants dans le widget filtre=instructeur_secondaire\naffichage=nombre dossiers_pre_instruction
1715    
1716     Depuis la page d'accueil ${instructeur_secondaire_login} ${instructeur_secondaire_login}
1717     Element Should Contain css=.widget_dossiers_pre_instruction span.bg-info 3
1718    
1719     Depuis la page d'accueil admin admin
1720     Insérer les paramètres suivants dans le widget ${EMPTY} dossiers_pre_instruction
1721    
1722    
1723     TNR Vérifier que la pagination fonctionne pour le widget "Derniers dossiers déposés"
1724     [Documentation] Suite à un bug concernant la pagination du listing du widget "Derniers dossiers déposés"
1725     ... on vérifie que cette pagination fonctionne correctement
1726    
1727     # On crée une collectivité, ses divisions et ses instructeurs
1728     # pour ne pas perturber ni être perturbé par les autres tests.
1729     #
1730     Depuis la page d'accueil admin admin
1731     #
1732     Ajouter la collectivité depuis le menu DDD mono
1733     Ajouter la direction depuis le menu DDD DDD null Chef DDD null null DDD
1734     Ajouter la division depuis le menu SB11 subdivision SB11 null
1735     ... Chef DDD null null DDD
1736    
1737     Ajouter l'utilisateur Poter Pun [email protected] ppun ppun INSTRUCTEUR DDD
1738    
1739     Ajouter l'instructeur depuis le menu Poter Pun subdivision SB11 instructeur Poter Pun
1740     &{args_affectation} = Create Dictionary
1741     ... instructeur=Poter Pun (SB11)
1742     ... om_collectivite=DDD
1743     ... dossier_autorisation_type_detaille=PCI - Permis de construire pour une maison individuelle et / ou ses annexes
1744     Ajouter l'affectation depuis le menu ${args_affectation}
1745    
1746     # On ajoute le droit au profil instructeur
1747     Depuis la page d'accueil admin admin
1748     Ajouter le droit depuis le menu si il n'existe pas derniers_dossiers_deposes INSTRUCTEUR
1749    
1750    
1751     # On paramètre le widget :
1752     # DATD: PCI et PD
1753     # Filtre division
1754     # Intervalle de date de dépôt: 15 jours
1755     # type de dépôt: dépôt électronique
1756     Depuis le contexte du widget derniers_dossiers_deposes
1757     Click On Form Portlet Action om_widget modifier
1758     Input Text arguments
1759     ... codes_datd=PCI;PD\nfiltre=division\nfiltre_depot=depot_electronique\nnombre_de_jours=15
1760     Click On Submit Button
1761    
1762     # On ajoute le widget au tableau de bord des instructeurs
1763     Go To ${PROJECT_URL}/app/index.php?module=form&obj=om_dashboard&action=0
1764     Select From List By Label om_profil INSTRUCTEUR
1765     Input Text bloc C1
1766     Select From List By Label om_widget Les derniers dossiers déposés
1767     Click On Submit Button
1768    
1769     # On vérifie que le widget n'indique aucun dossier déposé
1770     Depuis la page d'accueil ppun ppun
1771     Element Should Contain css=.widget_derniers_dossiers_deposes .widget-content
1772     ... Aucun dossier déposé dernièrement.
1773    
1774     # On doit ajouter 16 dossiers afin de pouvoir utiliser la page suivant dans le listing de "Voir +"
1775     # du widget.
1776     &{args_petitionnaire} = Create Dictionary
1777     ... particulier_nom=Applefield
1778     ... particulier_prenom=Nadia
1779     ... om_collectivite=DDD
1780     &{args_demande} = Create Dictionary
1781     ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes
1782     ... demande_type=Dépôt Initial
1783     ... om_collectivite=DDD
1784     ... depot_electronique=true
1785     # TODO : faire une boucle pour ajouter les demandes
1786     ${di_01} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire}
1787     ${di_02} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire}
1788     ${di_03} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire}
1789     ${di_04} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire}
1790     ${di_05} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire}
1791     ${di_06} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire}
1792     ${di_07} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire}
1793     ${di_08} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire}
1794     ${di_09} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire}
1795     ${di_10} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire}
1796     ${di_11} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire}
1797     ${di_12} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire}
1798     ${di_13} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire}
1799     ${di_14} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire}
1800     ${di_15} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire}
1801     ${di_16} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire}
1802    
1803     Depuis la page d'accueil ppun ppun
1804     # On accède au "Voir +"
1805     Click Element css=.widget_derniers_dossiers_deposes .widget-footer a
1806     Wait Until Page Contains Element css=.pagination-next
1807     # On change de page
1808     Click Element css=.pagination-next
1809     Wait Until Element Contains css=div.pagination-nb 16 -
1810     # On doit trouver le dernier dossier ajouté
1811     Element Should Contain css=td.col-3 a.lienTable ${di_16}
1812    
1813     #Supprimer le droit ajouté en début de test pour revenir en condition initiale
1814     Depuis la page d'accueil admin admin
1815     Depuis le listing des droits
1816     Use Simple Search libellé derniers_dossiers_deposes
1817     Select From List By Label name=selectioncol Tous
1818     Click Element css=button#search-submit
1819     Wait Until Element Is Visible css=table.tab-tab
1820     Click On Link INSTRUCTEUR
1821     Click On Form Portlet Action om_droit supprimer
1822     Click On Submit Button
1823    
1824    
1825     TNR Vérifier que les widget de recherche de dossier fonctionne si le nom du dossier a une minuscule
1826     [Documentation] Suite à un bug concernant les widget de recherche de dossier
1827     ... on vérifie que cette recherche fonctionne correctement
1828    
1829     Depuis la page d'accueil admin admin
1830    
1831     # On ajoute le widget au tableau de bord des admin
1832     Go To ${PROJECT_URL}/app/index.php?module=form&obj=om_dashboard&action=0
1833     Select From List By Label om_profil ADMINISTRATEUR TECHNIQUE ET FONCTIONNEL
1834     Input Text bloc C1
1835     Select From List By Label om_widget Recherche accès direct
1836     Click On Submit Button
1837    
1838     # Paramètre l'appli pour pouvoir choisir le nom du dossier
1839     &{param_values} = Create Dictionary
1840     ... libelle=option_dossier_saisie_numero
1841     ... valeur=true
1842     ... om_collectivite=agglo
1843     Gerer le paramètre par WS ${param_values}
1844    
1845     # On ajoute deux dossier contenant des minuscules dans leur nom
1846     &{args_petitionnaire} = Create Dictionary
1847     ... particulier_nom=Applefield
1848     ... particulier_prenom=Nadia
1849     ... om_collectivite=agglo
1850     &{args_demande} = Create Dictionary
1851     ... dossier_autorisation_type_detaille=PCI - Permis de construire pour une maison individuelle et / ou ses annexes
1852     ... om_collectivite=agglo
1853     Ajouter la nouvelle demande depuis le menu sans validation du formulaire ${args_demande} ${args_petitionnaire}
1854     # Les champs du numéro de dossier devraient être présent mais desactivées.
1855     Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Be Visible css=#num_doss_sequence[disabled="disabled"]
1856     # Activer le remplissage manuel du numéro de dossier pour la séquence et la division
1857     Click Element css=#num_doss_manuel
1858     Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Not Be Visible css=#num_doss_sequence[disabled="disabled"]
1859    
1860     # Saisie du numéro de dossier avec une lettre en minuscule
1861     Wait Until Element Is Visible css=#num_doss_division
1862     Input Text css=#num_doss_division a
1863     Validation du formulaire de la demande
1864     # On récupère le libelle du dossier d'instruction
1865     ${libelle_di} = Get Text new_di
1866    
1867     # On effectue une recherche à l'aide du widget
1868     Go To Dashboard via Link
1869     Input Text css=#widget_recherche_dossier_form input#dossier ${libelle_di}
1870     Click Element css=#widget_recherche_dossier_form input.om-button
1871     Page should not contain Droit insuffisants
1872     Element Should Contain css=#dossier_libelle ${libelle_di}
1873    
1874    
1875     Reset Params - TNR Vérifier que les widget de recherche de dossier fonctionne si le nom du dossier a une minuscule
1876     #Supprime le paramètre de saisie du numéro des dossiers
1877     &{param_values} = Create Dictionary
1878     ... delete=true
1879     ... libelle=option_dossier_saisie_numero
1880     ... om_collectivite=agglo
1881     Gerer le paramètre par WS ${param_values}
1882    
1883    
1884     TNR vérifier que le listing du widget derniers dossiers déposés n'affiche pas de doublon
1885     # On crée une collectivité, ses divisions et ses instructeurs
1886     # pour ne pas perturber ni être perturbé par les autres tests.
1887     #
1888     Depuis la page d'accueil admin admin
1889     #
1890     Ajouter la collectivité depuis le menu EEE mono
1891     Ajouter la direction depuis le menu EEE EEE null Chef EEE null null EEE
1892     Ajouter la division depuis le menu SB12 subdivision SB12 null
1893     ... Chef EEE null null EEE
1894    
1895     Ajouter l'utilisateur Poter Pin [email protected] ppin ppin INSTRUCTEUR EEE
1896    
1897     Ajouter l'instructeur depuis le menu Poter Pin subdivision SB12 instructeur Poter Pin
1898     &{args_affectation} = Create Dictionary
1899     ... instructeur=Poter Pin (SB12)
1900     ... om_collectivite=EEE
1901     ... dossier_autorisation_type_detaille=PCI - Permis de construire pour une maison individuelle et / ou ses annexes
1902     Ajouter l'affectation depuis le menu ${args_affectation}
1903    
1904     # On ajoute le droit au profil instructeur
1905     Depuis la page d'accueil admin admin
1906     Ajouter le droit depuis le menu si il n'existe pas derniers_dossiers_deposes INSTRUCTEUR
1907    
1908     Depuis le contexte du widget derniers_dossiers_deposes
1909     Click On Form Portlet Action om_widget modifier
1910     Input Text arguments
1911     ... codes_datd=PCI;PD\nfiltre=division\nfiltre_depot=depot_electronique\nnombre_de_jours=15
1912     Click On Submit Button
1913    
1914     # On ajoute le widget au tableau de bord des instructeurs
1915     Go To ${PROJECT_URL}/app/index.php?module=form&obj=om_dashboard&action=0
1916     Select From List By Label om_profil INSTRUCTEUR
1917     Input Text bloc C1
1918     Select From List By Label om_widget Les derniers dossiers déposés
1919     Click On Submit Button
1920    
1921     &{args_petitionnaire} = Create Dictionary
1922     ... particulier_nom=045WIDGETDOUBLONNOM
1923     ... particulier_prenom=045WIDGETDOUBLONPRENOM
1924     ... om_collectivite=EEE
1925     &{args_demande} = Create Dictionary
1926     ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes
1927     ... demande_type=Dépôt Initial
1928     ... om_collectivite=EEE
1929     ... depot_electronique=true
1930     ${di} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire}
1931    
1932     Ajouter un message dans le dossier d'instruction ${di} Test doublon message 1
1933     Ajouter un message dans le dossier d'instruction ${di} Test doublon message 2
1934    
1935    
1936     Depuis la page d'accueil ppin ppin
1937     # On accède au "Voir +"
1938     Click Element css=.widget_derniers_dossiers_deposes .widget-footer a
1939    
1940     Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL}
1941     ... Element Should Contain css=.pagination-nb .pagination-text 1 - 1 enregistrement(s) sur 1
1942    
1943     #Supprimer le droit ajouté en début de test pour revenir en condition initiale
1944     Depuis la page d'accueil admin admin
1945     Supprimer le droit depuis le contexte du profil derniers_dossiers_deposes INSTRUCTEUR
1946    
1947    

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26