/[openfoncier]/trunk/tests/110_message.robot
ViewVC logotype

Annotation of /trunk/tests/110_message.robot

Parent Directory Parent Directory | Revision Log Revision Log


Revision 9282 - (hide annotations)
Fri Apr 10 16:44:23 2020 UTC (4 years, 9 months ago) by softime
File size: 43870 byte(s)
* Merge de la branche de développement compat-php dans le trunk

1 fmichon 4129 *** Settings ***
2     Documentation Gestion des messages.
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     Constitution du jeu de données
13    
14     [Documentation] L'objet de ce 'Test Case' est de constituer un jeu de
15     ... données cohérent pour les scénarios fonctionnels qui suivent.
16    
17     # Date du jour au format : JJ/MM/AAAA
18 jymadier 4445 ${date_ddmmyyyy} = Date du jour FR
19     Set Suite Variable ${date_ddmmyyyy}
20 fmichon 4129
21 softime 6565 # On active l'option pour que le test standalone fonctionne à l'identique
22     # que s'il était exécuté avec tous les autres
23     Depuis la page d'accueil admin admin
24 softime 8989 &{param_values} = Create Dictionary
25     ... libelle=option_afficher_division
26     ... valeur=true
27     ... om_collectivite=agglo
28     Ajouter le paramètre depuis le menu (surcharge) ${param_values}
29 fmichon 4129
30    
31 softime 6565 Gestion des retours de messages
32    
33 fmichon 4129 [Documentation]
34    
35     ##
36     ## Constitution du jeu de données
37     ##
38     ## On cré deux nouvelles collectivités pour être sûr du nombre
39     ## de retours de messages à vérifier dans les widgets et tableaux
40     ##
41     #
42     ${collectivite_a} = Set Variable SAMBALPUR
43     ${collectivite_b} = Set Variable DRIEKAPELLEN
44     #
45     ${utilisateur_nom_01} = Set Variable Hermione JUAREZ
46     ${utilisateur_login_01} = Set Variable hjuarez
47     ${utilisateur_nom_02} = Set Variable Jorden BOWERS
48     ${utilisateur_login_02} = Set Variable jbowers
49     ${utilisateur_nom_03} = Set Variable Kiara COLE
50     ${utilisateur_login_03} = Set Variable kcole
51     ${utilisateur_nom_04} = Set Variable Elizabeth ORTIZ
52     ${utilisateur_login_04} = Set Variable eortiz
53 softime 6565 ${utilisateur_nom_05} = Set Variable Cyrille LUCE
54     ${utilisateur_login_05} = Set Variable cluce
55     ${utilisateur_nom_06} = Set Variable Irène LOUNO
56     ${utilisateur_login_06} = Set Variable ilouno
57     ${utilisateur_nom_07} = Set Variable Virginie PIRES
58     ${utilisateur_login_07} = Set Variable vpires
59     ${utilisateur_nom_08} = Set Variable Nouel BRASSEUR
60     ${utilisateur_login_08} = Set Variable nbrasseur
61 softime 7366 ${utilisateur_nom_09} = Set Variable Joseph Marcoux
62     ${utilisateur_login_09} = Set Variable jmarcoux
63     ${utilisateur_division_09} = Set Variable subdivision Y
64 fmichon 4129 #
65     Depuis la page d'accueil admin admin
66     #
67     Ajouter la collectivité depuis le menu ${collectivite_a} mono
68     Ajouter la collectivité depuis le menu ${collectivite_b} mono
69     #
70 softime 6565 Ajouter la direction depuis le menu C-T-X Direction C-T-X null Chef C-T-X null null DRIEKAPELLEN
71     #
72     Ajouter la division depuis le menu C-T-X subdivision C-T-X null Chef C-T-X null null Direction C-T-X
73     #
74 jymadier 4445 Ajouter l'utilisateur ${utilisateur_nom_01} [email protected] ${utilisateur_login_01} ${utilisateur_login_01} INSTRUCTEUR ${collectivite_a}
75     Ajouter l'utilisateur ${utilisateur_nom_02} [email protected] ${utilisateur_login_02} ${utilisateur_login_02} INSTRUCTEUR ${collectivite_a}
76     Ajouter l'utilisateur ${utilisateur_nom_03} [email protected] ${utilisateur_login_03} ${utilisateur_login_03} INSTRUCTEUR ${collectivite_a}
77     Ajouter l'utilisateur ${utilisateur_nom_04} [email protected] ${utilisateur_login_04} ${utilisateur_login_04} INSTRUCTEUR ${collectivite_b}
78 softime 6565 Ajouter l'utilisateur ${utilisateur_nom_05} [email protected] ${utilisateur_login_05} ${utilisateur_login_05} JURISTE ${collectivite_b}
79     Ajouter l'utilisateur ${utilisateur_nom_06} [email protected] ${utilisateur_login_06} ${utilisateur_login_06} TECHNICIEN ${collectivite_b}
80     Ajouter l'utilisateur ${utilisateur_nom_07} [email protected] ${utilisateur_login_07} ${utilisateur_login_07} ASSISTANTE ${collectivite_b}
81     Ajouter l'utilisateur ${utilisateur_nom_08} [email protected] ${utilisateur_login_08} ${utilisateur_login_08} RESPONSABLE DIVISION INFRACTION ${collectivite_b}
82 softime 7366
83     # On ajoute un utilisateur/instructeur sur la collectivité de niveau 2
84     Ajouter l'utilisateur ${utilisateur_nom_09} [email protected] ${utilisateur_login_09} ${utilisateur_login_09} INSTRUCTEUR agglo
85    
86    
87     Ajouter la direction depuis le menu AGL Direction AGGLO null Chef AGL null null agglo
88     Ajouter la division depuis le menu Y ${utilisateur_division_09} null Afrodille Boulanger null null Direction AGGLO
89     Ajouter la direction depuis le menu SBP Direction SBP null Chef SBP null null ${collectivite_a}
90     Ajouter la division depuis le menu SBPH subdivision SBPH null Chef SBP null null Direction SBP
91     Ajouter la division depuis le menu SBPJ subdivision SBPJ null Chef SBP null null Direction SBP
92     Ajouter la direction depuis le menu DKP Direction DKP null Chef DKP null null ${collectivite_b}
93     Ajouter la division depuis le menu DKP subdivision DKP null Chef DKP null null Direction DKP
94 softime 6565 Ajouter l'instructeur depuis le menu ${utilisateur_nom_05} subdivision C-T-X juriste ${utilisateur_nom_05}
95     Ajouter l'instructeur depuis le menu ${utilisateur_nom_06} subdivision C-T-X technicien ${utilisateur_nom_06}
96     Ajouter l'instructeur depuis le menu ${utilisateur_nom_08} subdivision C-T-X technicien ${utilisateur_nom_08}
97 fmichon 4129 #
98 softime 7366 Ajouter l'instructeur depuis le menu ${utilisateur_nom_01} subdivision SBPH instructeur ${utilisateur_nom_01}
99     Ajouter l'instructeur depuis le menu ${utilisateur_nom_02} subdivision SBPH instructeur ${utilisateur_nom_02}
100     Ajouter l'instructeur depuis le menu ${utilisateur_nom_03} subdivision SBPJ instructeur ${utilisateur_nom_03}
101     Ajouter l'instructeur depuis le menu ${utilisateur_nom_04} subdivision DKP instructeur ${utilisateur_nom_04}
102     #
103     Ajouter l'instructeur depuis le menu ${utilisateur_nom_09} ${utilisateur_division_09} instructeur ${utilisateur_nom_09}
104     #
105 softime 6565 &{args_affectation} = Create Dictionary
106 softime 7366 ... instructeur=${utilisateur_nom_01} (SBPH)
107 softime 6565 ... om_collectivite=${collectivite_a}
108     Ajouter l'affectation depuis le menu ${args_affectation}
109     &{args_affectation} = Create Dictionary
110 softime 7366 ... instructeur=${utilisateur_nom_02} (SBPH)
111 softime 6565 ... om_collectivite=${collectivite_a}
112     ... dossier_autorisation_type_detaille=Permis de construire comprenant ou non des démolitions
113     Ajouter l'affectation depuis le menu ${args_affectation}
114     &{args_affectation} = Create Dictionary
115 softime 7366 ... instructeur=${utilisateur_nom_03} (SBPJ)
116 softime 6565 ... om_collectivite=${collectivite_a}
117     ... dossier_autorisation_type_detaille=Permis de démolir
118     Ajouter l'affectation depuis le menu ${args_affectation}
119     &{args_affectation} = Create Dictionary
120 softime 7366 ... instructeur=${utilisateur_nom_04} (DKP)
121 softime 6565 ... om_collectivite=${collectivite_b}
122     Ajouter l'affectation depuis le menu ${args_affectation}
123     &{args_affectation} = Create Dictionary
124 softime 7366 ... instructeur=${utilisateur_nom_05} (C-T-X)
125     ... instructeur_2=${utilisateur_nom_06} (C-T-X)
126 softime 6565 ... om_collectivite=${collectivite_b}
127     ... dossier_autorisation_type_detaille=Infraction
128     Ajouter l'affectation depuis le menu ${args_affectation}
129     &{args_affectation} = Create Dictionary
130 softime 7366 ... instructeur=${utilisateur_nom_05} (C-T-X)
131 softime 6565 ... om_collectivite=${collectivite_b}
132     ... dossier_autorisation_type_detaille=Recours gracieux
133     Ajouter l'affectation depuis le menu ${args_affectation}
134 fmichon 4129
135     # DI n°1 : Permis de démolir dans Collectivité A (niveau mono)
136     # => Affecté à l'instructeur '${utilisateur_nom_03}' (${utilisateur_login_03})
137     # => Division 'J'
138     #
139     &{args_petitionnaire_01} = Create Dictionary
140     ... particulier_nom=DUPONT
141     ... particulier_prenom=Jacques
142     ... om_collectivite=${collectivite_a}
143     #
144     &{args_demande_01} = Create Dictionary
145     ... dossier_autorisation_type_detaille=Permis de démolir
146     ... demande_type=Dépôt Initial
147     ... date_demande=12/04/2015
148     ... om_collectivite=${collectivite_a}
149     #
150 softime 7067 ${di_01} = Ajouter la demande par WS ${args_demande_01} ${args_petitionnaire_01}
151 fmichon 4129
152     # DI n°2 : Permis de construire pour une maison individuelle et / ou ses annexes dans Collectivité A (niveau mono)
153     # => Affecté à l'instructeur '${utilisateur_nom_01}' (${utilisateur_login_01})
154     # => Division 'H'
155     #
156     &{args_petitionnaire_02} = Create Dictionary
157     ... particulier_nom=VACHIER
158     ... particulier_prenom=Arthur
159     ... om_collectivite=${collectivite_a}
160     #
161     &{args_demande_02} = Create Dictionary
162     ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes
163     ... demande_type=Dépôt Initial
164     ... date_demande=12/04/2015
165     ... om_collectivite=${collectivite_a}
166     #
167 softime 7067 ${di_02} = Ajouter la demande par WS ${args_demande_02} ${args_petitionnaire_02}
168 fmichon 4129
169     # DI n°3 : Permis de construire comprenant ou non des démolitions dans Collectivité A (niveau mono)
170     # => Affecté à l'instructeur '${utilisateur_nom_02}' (${utilisateur_login_02})
171     # => Division 'H'
172     #
173     &{args_petitionnaire_03} = Create Dictionary
174     ... particulier_nom=BRAY
175     ... particulier_prenom=Guy
176     ... om_collectivite=${collectivite_a}
177     #
178     &{args_demande_03} = Create Dictionary
179     ... dossier_autorisation_type_detaille=Permis de construire comprenant ou non des démolitions
180     ... demande_type=Dépôt Initial
181     ... date_demande=12/04/2015
182     ... om_collectivite=${collectivite_a}
183     #
184 softime 7067 ${di_03} = Ajouter la demande par WS ${args_demande_03} ${args_petitionnaire_03}
185 fmichon 4129
186     # DI n°4 : Permis de construire pour une maison individuelle et / ou ses annexes dans Collectivité B (niveau mono)
187     # => Affecté à l'instructeur '${utilisateur_nom_04}' (${utilisateur_login_04})
188     # => Division 'H'
189     #
190     &{args_petitionnaire_04} = Create Dictionary
191     ... particulier_nom=BOULAGE
192     ... particulier_prenom=Damien
193     ... om_collectivite=${collectivite_b}
194     #
195     &{args_demande_04} = Create Dictionary
196     ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes
197     ... demande_type=Dépôt Initial
198     ... date_demande=12/04/2015
199     ... om_collectivite=${collectivite_b}
200     #
201 softime 7067 ${di_04} = Ajouter la demande par WS ${args_demande_04} ${args_petitionnaire_04}
202 fmichon 4129
203 softime 6565
204     # DI n°5 : Infraction
205     # => Affecté au juriste '${utilisateur_nom_05}' (${utilisateur_login_05})
206     # => Affecté au technicien '${utilisateur_nom_06}' (${utilisateur_login_06})
207     # => Division 'C-T-X'
208     #
209     &{args_contrevenant} = Create Dictionary
210     ... particulier_nom=DUPIN
211     ... particulier_prenom=Romain
212 softime 7067 ... om_collectivite=${collectivite_b}
213 softime 6565 &{args_plaignant} = Create Dictionary
214     ... particulier_nom=MUREAUX
215     ... particulier_prenom=Ludovic
216 softime 7067 ... om_collectivite=${collectivite_b}
217 softime 6565 &{args_autres_demandeurs} = Create Dictionary
218     ... contrevenant_principal=${args_contrevenant}
219     ... plaignant_principal=${args_plaignant}
220     &{args_demande_05} = Create Dictionary
221     ... dossier_autorisation_type_detaille=Infraction
222     ... date_demande=12/04/2015
223 softime 7067 ... demande_type=Dépôt Initial IN
224     ... om_collectivite=${collectivite_b}
225     ${di_05} = Ajouter la demande par WS ${args_demande_05} ${NULL} ${args_autres_demandeurs}
226 softime 6565
227     # DI n°6 : Recours
228     # => Affecté au juriste '${utilisateur_nom_05}' (${utilisateur_login_05})
229     # => Division 'C-T-X'
230     #
231     &{args_demande_06} = Create Dictionary
232     ... dossier_autorisation_type_detaille=Recours gracieux
233 softime 7067 ... demande_type=Dépôt Initial REG
234 softime 6565 ... date_demande=12/04/2015
235     ... autorisation_contestee=${di_04}
236 softime 7067 ... om_collectivite=${collectivite_b}
237     ${di_06} = Ajouter la demande par WS ${args_demande_06} ${EMPTY}
238 softime 6565
239 softime 7067
240 fmichon 4129 # On active l'option de notification par message
241 softime 6565 Depuis la page d'accueil admin admin
242 fmichon 4129 Modifier le paramètre option_notification_piece_numerisee true
243    
244 softime 6565 # On marque comme lu le message créé pour notifier de l'autorisation
245     # contestée afin d'éviter de fausser les tests
246     Marquer comme lu le message dans le dossier d'instruction ${di_04} Autorisation contestée
247    
248 fmichon 4129 # On ajoute un document numérisé par DI
249     &{document_numerise_values} = Create Dictionary
250     ... uid_upload=testImportManuel.pdf
251 jymadier 4445 ... date_creation=${date_ddmmyyyy}
252 fmichon 4129 ... document_numerise_type=autres pièces composant le dossier (A0)
253     Ajouter une pièce depuis le dossier d'instruction ${di_01} ${document_numerise_values}
254     Ajouter une pièce depuis le dossier d'instruction ${di_02} ${document_numerise_values}
255     Ajouter une pièce depuis le dossier d'instruction ${di_03} ${document_numerise_values}
256     Ajouter une pièce depuis le dossier d'instruction ${di_04} ${document_numerise_values}
257 softime 6565 Ajouter une pièce depuis le dossier contentieux infraction ${di_05} ${document_numerise_values}
258     Ajouter une pièce depuis le dossier contentieux recours ${di_06} ${document_numerise_values}
259 fmichon 4129
260     ##
261     ## Cas d'usage
262     ##
263     ##
264     ##
265    
266     #
267     ${widget_id} = Set Variable widget_4
268    
269     # On vérifie qu'on a la collonne collectivité dans le listing tous les messages
270     Go To Submenu In Menu instruction messages_tous_retours
271     Page Title Should Be Instruction > Messages > Tous Les Messages
272     First Tab Title Should Be Message
273     Page Should Contain Les messages marqués comme 'non lu' qui concernent des dossiers d'instruction situés dans toutes les collectivités.
274     Element Should Contain css=#tab-messages_tous_retours table thead instructeur
275     Element Should Contain css=#tab-messages_tous_retours table thead division
276     Element Should Contain css=#tab-messages_tous_retours table thead collectivité
277     # On va sur le listing 'Tous les messages'
278     # Il doit contenir des retours des deux collectivités
279 softime 6565 Input Text css=#tab-messages_tous_retours #adv-search-classic-fields input ${collectivite_a}
280     Click On Search Button
281 fmichon 4129 Element Should Contain css=#tab-messages_tous_retours table ${collectivite_a}
282 softime 6929 # On passe par le tableau de bord afin de fermer le menu instruction.
283     # Sinon, vu que la sous-rubrique du menu contentieux a le même nom,
284     # le mot-clef échoue.
285     Go To Dashboard
286     Go To Submenu In Menu contentieux messages_contentieux_tous_retours
287     Input Text css=#tab-messages_contentieux_tous_retours #adv-search-classic-fields input ${collectivite_b}
288 softime 6565 Click On Search Button
289 softime 6929 Element Should Contain css=#tab-messages_contentieux_tous_retours table ${collectivite_b}
290 fmichon 4129
291     # On se connecte en tant que "${utilisateur_login_01}" (Profil 'INSTRUCTEUR')
292     Depuis la page d'accueil ${utilisateur_login_01} ${utilisateur_login_01}
293     # On vérifie que les messages apparaissent bien sur le tableau de bord de l'instructeur
294     Element Should Contain css=#${widget_id} .widget-content-wrapper span.box-icon 1
295     # On clique sur le lien "Voir +" du widget
296     Click Element css=#${widget_id} .widget-footer a
297     # Le lien Voir + nous amène sur le listing 'Mes retours'
298     # Il ne doit contenir qu'un seul retour
299     Submenu In Menu Should Be Selected instruction messages_mes_retours
300     Page Title Should Be Instruction > Messages > Mes Messages
301     First Tab Title Should Be Message
302 softime 6565 Page Should Contain Les messages marqués comme 'non lu' qui concernent des dossiers d'instruction dont je suis l'instructeur ou dont le destinataire est 'commune'.
303 fmichon 4129 Element Should Contain css=#tab-messages_mes_retours .pagination-text 1 - 1 enregistrement(s) sur 1
304     # On va sur le listing 'Messages de ma division'
305     # Il doit contenir deux retours
306     Go To Submenu In Menu instruction messages_retours_ma_division
307     Page Title Should Be Instruction > Messages > Messages De Ma Division
308     First Tab Title Should Be Message
309 softime 6565 Page Should Contain Les messages marqués comme 'non lu' qui concernent des dossiers d'instruction situés dans ma division ou dont le destinataire est 'commune'.
310 fmichon 4129 Element Should Contain css=#tab-messages_retours_ma_division .pagination-text 1 - 2 enregistrement(s) sur 2
311     Element Should Contain css=#tab-messages_retours_ma_division table ${utilisateur_nom_02}
312     # On va sur le listing 'Tous les messages'
313     # Il doit contenir trois retours
314     Go To Submenu In Menu instruction messages_tous_retours
315     Page Title Should Be Instruction > Messages > Tous Les Messages
316     First Tab Title Should Be Message
317     Page Should Contain Les messages marqués comme 'non lu' qui concernent des dossiers d'instruction situés dans ma collectivité.
318     Element Should Contain css=#tab-messages_tous_retours .pagination-text 1 - 3 enregistrement(s) sur 3
319    
320     # Filtre sur l'instructeur
321     Depuis la page d'accueil admin admin
322 softime 6565 Depuis le contexte du widget 4
323 fmichon 4129 Click On Form Portlet Action om_widget modifier
324 softime 6929 Input Text arguments filtre=division
325 fmichon 4129 Click On Submit Button
326    
327     # On se connecte en tant que "${utilisateur_login_01}" (Profil 'INSTRUCTEUR')
328     Depuis la page d'accueil ${utilisateur_login_01} ${utilisateur_login_01}
329     # On vérifie que les messages apparaissent bien sur le tableau de bord de l'instructeur
330     Element Should Contain css=#${widget_id} .widget-content-wrapper span.box-icon 2
331     # On clique sur le lien "Voir +" du widget
332     Click Element css=#${widget_id} .widget-footer a
333     # Le lien Voir + nous amène sur le listing 'Messages de ma division'
334     # Il doit contenir deux retours
335 fmichon 4228 Submenu In Menu Should Be Selected instruction messages_retours_ma_division
336 fmichon 4129 Page Title Should Be Instruction > Messages > Messages De Ma Division
337     First Tab Title Should Be Message
338 softime 6565 Page Should Contain Les messages marqués comme 'non lu' qui concernent des dossiers d'instruction situés dans ma division ou dont le destinataire est 'commune'.
339 fmichon 4129 Element Should Contain css=#tab-messages_retours_ma_division .pagination-text 1 - 2 enregistrement(s) sur 2
340    
341     # Filtre sur l'instructeur
342     Depuis la page d'accueil admin admin
343 softime 6565 Depuis le contexte du widget 4
344 fmichon 4129 Click On Form Portlet Action om_widget modifier
345 softime 6929 Input Text arguments filtre=aucun
346 fmichon 4129 Click On Submit Button
347    
348     # On se connecte en tant que "${utilisateur_login_01}" (Profil 'INSTRUCTEUR')
349     Depuis la page d'accueil ${utilisateur_login_01} ${utilisateur_login_01}
350     # On vérifie que les messages apparaissent bien sur le tableau de bord de l'instructeur
351     Element Should Contain css=#${widget_id} .widget-content-wrapper span.box-icon 3
352     # On clique sur le lien "Voir +" du widget
353     Click Element css=#${widget_id} .widget-footer a
354     # Le lien Voir + nous amène sur le listing 'Tous les messages'
355     # Il doit contenir trois retours
356 fmichon 4228 Submenu In Menu Should Be Selected instruction messages_tous_retours
357 fmichon 4129 Page Title Should Be Instruction > Messages > Tous Les Messages
358     First Tab Title Should Be Message
359     Page Should Contain Les messages marqués comme 'non lu' qui concernent des dossiers d'instruction situés dans ma collectivité.
360     Element Should Contain css=#tab-messages_tous_retours .pagination-text 1 - 3 enregistrement(s) sur 3
361    
362     # Filtre sur l'instructeur
363     Depuis la page d'accueil admin admin
364 softime 6565 Depuis le contexte du widget 4
365 fmichon 4129 Click On Form Portlet Action om_widget modifier
366 softime 6929 Input Text arguments filtre=instructeur
367 fmichon 4129 Click On Submit Button
368    
369     # On se connecte en tant que Profil 'INSTRUCTEUR'
370     Depuis la page d'accueil ${utilisateur_login_04} ${utilisateur_login_04}
371     # On vérifie que les messages apparaissent bien sur le tableau de bord de l'instructeur
372     Element Should Contain css=#${widget_id} .widget-content-wrapper span.box-icon 1
373     # On clique sur le lien "Voir +" du widget
374     Click Element css=#${widget_id} .widget-footer a
375     # On clique sur le lien du dossier
376     Click Link ${di_04}
377     #
378     Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Be Visible css=#sousform-dossier_message #dossier_message
379     #
380     Page Title Should Contain ${di_04}
381     Page Title Should Contain BOULAGE DAMIEN
382    
383     #
384     Portlet Action Should Be In SubForm dossier_message marquer_comme_lu
385     #
386     Click On SubForm Portlet Action dossier_message marquer_comme_lu
387     #
388     Valid Message Should Be In Subform Le message a été marqué comme lu.
389    
390     #
391     Depuis la page d'accueil ${utilisateur_login_04} ${utilisateur_login_04}
392     #
393     # On vérifie que lorsqu'il n'y a aucun message, une information dans le widget 'Messages'
394     # l'indique et que le lien Voir + n'est pas présent
395     #
396     Element Should Contain css=#${widget_id} .widget-content-wrapper Aucun message non lu.
397     Element Should Not Contain css=#${widget_id} Voir +
398    
399     #
400     # On clique sur les trois listings liés pour vérifier qu'il n'y a aucun résultat
401     #
402     Go To Submenu In Menu instruction messages_mes_retours
403     Page Title Should Be Instruction > Messages > Mes Messages
404     First Tab Title Should Be Message
405 softime 6565 Page Should Contain Les messages marqués comme 'non lu' qui concernent des dossiers d'instruction dont je suis l'instructeur ou dont le destinataire est 'commune'.
406 fmichon 4129 Element Should Contain css=#tab-messages_mes_retours .pagination-text 1 - 0 enregistrement(s) sur 0
407     Element Should Not Contain css=#tab-messages_mes_retours table thead instructeur
408     Element Should Not Contain css=#tab-messages_mes_retours table thead division
409     Element Should Not Contain css=#tab-messages_mes_retours table thead collectivité
410     #
411     Go To Submenu In Menu instruction messages_retours_ma_division
412     Page Title Should Be Instruction > Messages > Messages De Ma Division
413     First Tab Title Should Be Message
414 softime 6565 Page Should Contain Les messages marqués comme 'non lu' qui concernent des dossiers d'instruction situés dans ma division ou dont le destinataire est 'commune'.
415 fmichon 4129 Element Should Contain css=#tab-messages_retours_ma_division .pagination-text 1 - 0 enregistrement(s) sur 0
416     Element Should Contain css=#tab-messages_retours_ma_division table thead instructeur
417     Element Should Not Contain css=#tab-messages_retours_ma_division table thead division
418     Element Should Not Contain css=#tab-messages_retours_ma_division table thead collectivité
419     #
420     Go To Submenu In Menu instruction messages_tous_retours
421     Page Title Should Be Instruction > Messages > Tous Les Messages
422     First Tab Title Should Be Message
423     Page Should Contain Les messages marqués comme 'non lu' qui concernent des dossiers d'instruction situés dans ma collectivité.
424     Element Should Contain css=#tab-messages_tous_retours .pagination-text 1 - 0 enregistrement(s) sur 0
425     Element Should Contain css=#tab-messages_tous_retours table thead instructeur
426     Element Should Contain css=#tab-messages_tous_retours table thead division
427     Element Should Not Contain css=#tab-messages_tous_retours table thead collectivité
428    
429 softime 6565 #
430     # Vérification des messages concernant les dossiers contentieux.
431     # La fonctionnalité étant la même que celle des messages des dossiers
432     # standards, les tests seront moins exhaustifs et contrôlerons seulement le
433     # filtre par groupe et les liens de redirection.
434     #
435 fmichon 4129
436 softime 6565 # On vérifie que les dossiers contentieux n'apparaissent pas le listing des
437     # dossers standards
438     Depuis la page d'accueil admin admin
439     Go To Submenu In Menu instruction messages_tous_retours
440     Page Should Not Contain ${di_05}
441     Page Should Not Contain ${di_06}
442     # On vérifie que les dossiers standards n'apparaissent pas le listing des
443     # dossers contentieux
444     Depuis la page d'accueil admin admin
445     Go To Submenu In Menu contentieux messages_contentieux_tous_retours
446     Page Should Not Contain ${di_01}
447     Page Should Not Contain ${di_02}
448     Page Should Not Contain ${di_03}
449     Page Should Not Contain ${di_04}
450    
451     # On vérifie que le juriste ait accès aux messages recours et infractions
452     Depuis la page d'accueil ${utilisateur_login_05} ${utilisateur_login_05}
453     # On contrôle le widget
454     Element Should Contain css=#widget_134 .widget-content-wrapper span.box-icon 2
455     # On vérifie le listing "instructeur"
456     Click Element css=#widget_134 .widget-footer a
457     Page Should Contain ${di_05}
458     Page Should Contain ${di_06}
459     # On vérifie les liens du recours et de l'infraction
460     Click On Link ${di_05}
461     Submenu In Menu Should Be Selected contentieux dossier_contentieux_mes_infractions
462     Go To Submenu In Menu contentieux messages_contentieux_mes_retours
463     Click On Link ${di_06}
464     Submenu In Menu Should Be Selected contentieux dossier_contentieux_mes_recours
465     # On vérifie le listing "division"
466     Go To Submenu In Menu contentieux messages_contentieux_retours_ma_division
467     Page Should Contain ${di_05}
468     Page Should Contain ${di_06}
469     # On vérifie les liens du recours et de l'infraction
470     Click On Link ${di_05}
471     Submenu In Menu Should Be Selected contentieux dossier_contentieux_toutes_infractions
472     Go To Submenu In Menu contentieux messages_contentieux_retours_ma_division
473     Click On Link ${di_06}
474     Submenu In Menu Should Be Selected contentieux dossier_contentieux_tous_recours
475     # On vérifie le listing "aucun"
476     Go To Submenu In Menu contentieux messages_contentieux_tous_retours
477     Page Should Contain ${di_05}
478     Page Should Contain ${di_06}
479     # On vérifie les liens du recours et de l'infraction
480     Click On Link ${di_05}
481     Submenu In Menu Should Be Selected contentieux dossier_contentieux_toutes_infractions
482     Go To Submenu In Menu contentieux messages_contentieux_tous_retours
483     Click On Link ${di_06}
484     Submenu In Menu Should Be Selected contentieux dossier_contentieux_tous_recours
485    
486     # On vérifie le cas spécifique du responsable de division infraction qui n'a
487     # pas accès aux menu "mes"
488     Depuis la page d'accueil ${utilisateur_login_08} ${utilisateur_login_08}
489     &{args_di} = Create Dictionary
490     ... instructeur_2=${utilisateur_nom_08} (C-T-X)
491     Modifier le dossier d'instruction ${di_05} ${args_di} infraction
492    
493     # Le lien des messages "instructeur" doit rediriger vers le menu "tous"
494     Go To Submenu In Menu contentieux messages_contentieux_mes_retours
495     Click On Link ${di_05}
496     Submenu In Menu Should Be Selected contentieux dossier_contentieux_toutes_infractions
497    
498     ##
499     ## Vérification de la notion de destinataire dans les messages
500     ##
501    
502     #
503     # Constitution du jeux de données
504     #
505    
506     Depuis la page d'accueil admin admin
507    
508     # On affecte automatiquement cet instructeur sur les dossiers de la
509     # collectivité B de niveau 1
510 softime 7366 Supprimer l'affectation depuis le menu Elizabeth ORTIZ (DKP)
511 softime 6565 &{args_affectation} = Create Dictionary
512 softime 7366 ... instructeur=${utilisateur_nom_09} (Y)
513 softime 6565 ... om_collectivite=${collectivite_b}
514     Ajouter l'affectation depuis le menu ${args_affectation}
515    
516     # On ajoute un dossier d'instruction
517     &{args_petitionnaire_07} = Create Dictionary
518     ... particulier_nom=Flamand
519     ... particulier_prenom=Léon
520     ... om_collectivite=${collectivite_b}
521     &{args_demande_07} = Create Dictionary
522     ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes
523     ... demande_type=Dépôt Initial
524     ... om_collectivite=${collectivite_b}
525 softime 7067 ${di_07} = Ajouter la demande par WS ${args_demande_07} ${args_petitionnaire_07}
526 softime 6565
527     #
528     # Depuis un dossier d'instruction de la commune A affecté à un instructeur
529     # de la communauté, on ajoute une pièce avec cet instructeur. Le
530     # destinataire du message doit être "commune" et donc l'instructeur affecté
531     # ne doit pas être notifié.
532     #
533    
534     Depuis la page d'accueil jmarcoux jmarcoux
535     &{document_numerise_values} = Create Dictionary
536     ... uid_upload=testImportManuel.pdf
537     ... document_numerise_type=autres pièces composant le dossier (A0)
538     Ajouter une pièce depuis le dossier d'instruction ${di_07} ${document_numerise_values}
539 softime 7366 Depuis la page d'accueil ${utilisateur_login_09} ${utilisateur_login_09}
540 softime 6565 Depuis le contexte du message dans le dossier d'instruction ${di_07} jmarcoux (Joseph Marcoux)
541     # On vérifie que le champ destinataire contient bien la valeur "commune"
542     Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Form Static Value Should Be css=#destinataire commune
543     # On vérifie que le widget indique aucun message
544     Go To Dashboard
545     Element Should Contain css=#${widget_id} .widget-content-wrapper Aucun message non lu.
546     Element Should Not Contain css=#${widget_id} Voir +
547    
548     #
549     # L'instructeur de la commune doit avoir une notification et doit pouvoir
550     # marquer comme lu le message même s'il ne sont pas de la même division.
551     #
552    
553     Depuis la page d'accueil eortiz eortiz
554     # On vérifie que le widget affiche 1 message
555 softime 7366 Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Contain css=#${widget_id} .widget-content-wrapper span.box-icon 1
556 softime 6565 # Depuis le lien "Voir +" du widget, on vérifie le message
557     Click Element css=#${widget_id} .widget-footer a
558     Click On Link ${di_07}
559     # On vérifie que le champ destinataire contient bien la valeur "commune" et
560     # qu'il a accès à l'action "Marquer comme lu"
561     Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Form Static Value Should Be css=#destinataire commune
562     Portlet Action Should Be In SubForm dossier_message marquer_comme_lu
563    
564     #
565     # On ajoute un message à destination de l'instructeur communauté, le
566     # destinataire doit contenir la valeur "isntructeur". Ce message ne doit pas
567     # être marqué comme lu par un instructeur commune qui n'est pas de la même
568     # division.
569     #
570    
571     Depuis la page d'accueil admin admin
572     &{document_numerise_values} = Create Dictionary
573     ... uid_upload=testImportManuel.pdf
574     ... document_numerise_type=autres pièces composant le dossier (A0)
575     Ajouter une pièce depuis le dossier d'instruction ${di_07} ${document_numerise_values}
576     Depuis le contexte du message dans le dossier d'instruction ${di_07} admin (Administrateur)
577     # On vérifie que le champ destinataire contient bien la valeur "instructeur"
578     Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Form Static Value Should Be css=#destinataire instructeur
579     # L'instructeur du dossier doit pouvoir marquer comme lu le message
580     Depuis la page d'accueil jmarcoux jmarcoux
581     Depuis le contexte du message dans le dossier d'instruction ${di_07} admin (Administrateur)
582     Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Portlet Action Should Be In SubForm dossier_message marquer_comme_lu
583     # L'instructeur de la commune ne doit pas pouvoir marquer comme lu le
584     # message
585     Depuis la page d'accueil eortiz eortiz
586 mbideau 8661 Depuis le contexte du message dans le dossier d'instruction ${di_07} admin (Administrateur)
587 softime 6565 Wait Until Page Contains Element dossier_message
588     Portlet Action Should Not Be In SubForm dossier_message marquer_comme_lu
589    
590    
591 jymadier 4363 Gestion de l'action 'Marquer comme lu'
592     [Documentation] Test des conditions d'affichage de l'action.
593     ... /!\ Dépendant du paramétrage des instructeurs et affectations automatiques
594    
595     # En admin on crée un dossier avec une pièce donc un message
596     &{args_petitionnaire} = Create Dictionary
597     ... particulier_nom=PYRET
598     ... particulier_prenom=Laurent
599     ... om_collectivite=MARSEILLE
600     &{args_demande} = Create Dictionary
601     ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes
602     ... demande_type=Dépôt Initial
603 jymadier 4445 ... date_demande=${date_ddmmyyyy}
604 jymadier 4363 ... om_collectivite=MARSEILLE
605 softime 7067 ${di} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire}
606 jymadier 4363 &{document_numerise_values} = Create Dictionary
607     ... uid_upload=testImportManuel.pdf
608 jymadier 4445 ... date_creation=${date_ddmmyyyy}
609 jymadier 4363 ... document_numerise_type=autres pièces composant le dossier (A0)
610 softime 7067
611     Depuis la page d'accueil admin admin
612 jymadier 4363 Ajouter une pièce depuis le dossier d'instruction ${di} ${document_numerise_values}
613    
614     # En instructeur d'une division différente que celle du dossier
615     # on ne doit pas pouvoir marquer le message comme lu
616     Depuis la page d'accueil instr2 instr
617     Depuis l'onglet des messages du dossier d'instruction ${di}
618     Click On Link Ajout de pièce(s)
619     Portlet Action Should Not Be In SubForm dossier_message marquer_comme_lu
620    
621     # En instructeur du dossier on doit pouvoir marquer le message comme lu
622     Depuis la page d'accueil instr instr
623     Depuis l'onglet des messages du dossier d'instruction ${di}
624     Click On Link Ajout de pièce(s)
625     Portlet Action Should Be In SubForm dossier_message marquer_comme_lu
626    
627     # On accepte le dossier pour le clôturer
628 jymadier 4445 Ajouter une instruction au DI et la finaliser ${di} accepter un dossier sans réserve ${date_ddmmyyyy}
629 jymadier 4363 # On doit toujours pouvoir marquer le message comme lu
630     Depuis l'onglet des messages du dossier d'instruction ${di}
631     Click On Link Ajout de pièce(s)
632     Portlet Action Should Be In SubForm dossier_message marquer_comme_lu
633    
634     # On ajoute le bypass au profil instructeur
635     Depuis la page d'accueil admin admin
636     Ajouter le droit depuis le menu dossier_message_modifier_lu_bypass INSTRUCTEUR
637     # Dorénavant l'instructeur de la division différente doit pouvoir marquer comme lu
638     Depuis la page d'accueil instr2 instr
639     Depuis l'onglet des messages du dossier d'instruction ${di}
640     Click On Link Ajout de pièce(s)
641     Portlet Action Should Be In SubForm dossier_message marquer_comme_lu
642     # Pour la suite des tests on supprime le bypass créé dans ce test case
643     Depuis la page d'accueil admin admin
644     Depuis le listing des droits
645     Use Simple Search libellé dossier_message_modifier_lu_bypass
646     Click On Link INSTRUCTEUR
647     Click On Form Portlet Action om_droit supprimer
648 softime 8329
649    
650     Test de l'action 'ajouter'
651     [Documentation] Ajouter un message manuellement
652    
653     Depuis la page d'accueil admin admin
654     #Ajouter le widget de notification des messages au profil INSTRUCTEUR POLYVALENT
655     Go To ${PROJECT_URL}/app/index.php?module=form&obj=om_dashboard&action=0
656     Select From List By Label om_profil INSTRUCTEUR POLYVALENT
657     Input Text bloc C3
658     Select From List By Label om_widget Mes messages
659     Click On Submit Button
660     #Ajouter le droit d'ajouter un message aux types de profil qui seront utilisés
661     Ajouter le droit depuis le menu dossier_message_ajouter INSTRUCTEUR POLYVALENT
662     #Créer le contexte (Affectation automatique de l'instructeur polyvalent (utilisateur 2)
663     #de l'agglo (niv 2) sur les dossiers de la collectivité de niveau 1)
664     ${collectivite} = Set Variable MadScientist
665     Ajouter la collectivité depuis le menu ${collectivite} mono
666     #
667     &{args_affectation} = Create Dictionary
668     ... instructeur=Poly (H)
669     ... om_collectivite=${collectivite}
670     ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes
671     Ajouter l'affectation depuis le menu ${args_affectation}
672    
673     #
674     ${direction} = Set Variable Direction ME
675     ${direction_code} = Set Variable ME
676     ${div_1} = Set Variable subdivision ME1
677     ${div_code_1} = Set Variable ME1
678     Ajouter la direction depuis le menu ${direction_code} ${direction}
679     ... null Chef A null null ${collectivite}
680     Ajouter la division depuis le menu ${div_code_1} ${div_1} null
681     ... Chef A null null ${direction}
682    
683    
684     #Créer un nouveau dossier (affecté à l'utilisateur 1)
685     Depuis la page d'accueil admin admin
686     #Création du dossier sur lequel un message manuel sera ajouté
687     &{args_petitionnaire} = Create Dictionary
688     ... particulier_nom=Parkopoulos
689     ... particulier_prenom=Sisyphe
690     ... om_collectivite=${collectivite}
691     &{args_demande} = Create Dictionary
692     ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes
693     ... demande_type=Dépôt Initial
694     ... om_collectivite=${collectivite}
695     ${di} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire}
696    
697     #Ajouter un message manuel au dossier collectivité niveau 1 par un administrateur
698     ${message} = Set Variable Message de l'admin
699     ${dossier_message_1} = Ajouter un message dans le dossier d'instruction ${di} ${message}
700    
701     #On vérifie que le message apparait dans le listing des messages
702     Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL}
703     ... Element Should Contain css=table.tab-tab ${dossier_message_1}
704     #On vérifie le type et le destinataire du message
705     Go To ${PROJECT_URL}/app/index.php?module=sousform&obj=dossier_message&action=3&idx=${dossier_message_1}
706     Wait Until Element Is Visible type
707     Element Text Should Be type message manuel
708     Element Text Should Be destinataire instructeur
709    
710     #En vu de pouvoir vérifier l'icone de message dans le listing des derniers dossiers
711     #déposés, on ajoute le widget correspondant au tableau de bord INSTRUCTEUR
712     Ajouter le droit depuis le menu derniers_dossiers_deposes INSTRUCTEUR
713     Depuis le contexte du widget derniers_dossiers_deposes
714     Click On Form Portlet Action om_widget modifier
715     Input Text arguments
716     ... codes_datd=PCI;PD\nfiltre=division\nfiltre_depot=guichet\nnombre_de_jours=15
717     Click On Submit Button
718     # On ajoute le widget au tableau de bord des instructeurs
719     Go To ${PROJECT_URL}/app/index.php?module=form&obj=om_dashboard&action=0
720     Select From List By Label om_profil INSTRUCTEUR
721     Input Text bloc C1
722     Select From List By Label om_widget Les derniers dossiers déposés
723     Click On Submit Button
724    
725     #Actions de l'utilisateur 1
726     Depuis la page d'accueil instrpoly instrpoly
727     # On clique sur le lien du widget Mes messages(Voir +)
728     Click Link css=.widget_messages_retours .widget-footer a
729     # L'instructeur polyvalent doit voir le nouveau message
730     Element Should Contain css=table.tab-tab ${di}
731     #Ajouter un message manuel au dossier par un utilisateur 2 (collectivité de niveau 2)
732     ${message} = Set Variable Message de l'instrpoly (collectivité niveau 2)
733     ${dossier_message_2} = Ajouter un message dans le dossier d'instruction ${di} ${message}
734     #On vérifie que le message apparait dans le listing des messages
735     Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL}
736     ... Element Should Contain css=table.tab-tab ${dossier_message_2}
737     Go To ${PROJECT_URL}/app/index.php?module=sousform&obj=dossier_message&action=3&idx=${dossier_message_2}
738     Wait Until Element Is Visible type
739     Element Text Should Be type message manuel
740     Element Text Should Be destinataire commune
741    
742     Depuis la page d'accueil admin admin
743     Ajouter le droit depuis le menu dossier_message_ajouter INSTRUCTEUR
744     #Créer un nouveau dossier (affecté à l'utilisateur 2)
745     ${utilisateur_2} = Set Variable Makise Kurisu
746     Ajouter l'utilisateur ${utilisateur_2} [email protected] instrms instrms INSTRUCTEUR ${collectivite}
747     Ajouter l'instructeur depuis le menu ${utilisateur_2} ${div_1} instructeur ${utilisateur_2}
748     #
749     &{args_affectation} = Create Dictionary
750     ... instructeur=${utilisateur_2} (${div_code_1})
751     ... om_collectivite=${collectivite}
752     ... dossier_autorisation_type_detaille=Permis de démolir
753     Ajouter l'affectation depuis le menu ${args_affectation}
754     #Création du dossier sur lequel un message manuel sera ajouté
755     &{args_petitionnaire} = Create Dictionary
756     ... particulier_nom=Rintarou
757     ... particulier_prenom=Okabe
758     ... om_collectivite=${collectivite}
759     &{args_demande} = Create Dictionary
760     ... dossier_autorisation_type_detaille=Permis de démolir
761     ... demande_type=Dépôt Initial
762     ... om_collectivite=${collectivite}
763     ${di} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire}
764    
765     Depuis la page d'accueil instrms instrms
766     #On vérifie que l'utilisateur 2 est bien notifié du message laissé par l'admin
767     ${nombre_messages} = Get Text
768     ... css=.widget_messages_retours .widget-content .size-h3.box-icon.rounded.bg-info
769     Should Not Be Empty ${nombre_messages}
770     Should Be Equal ${nombre_messages} 1
771     #Ajouter un message manuel au dossier par l'utilisateur 2 (collectivité de niveau 2)
772     ${message} = Set Variable Message de l'instrms (collectivité niveau 1)
773     ${dossier_message_2} = Ajouter un message dans le dossier d'instruction ${di} ${message}
774     #On vérifie le type et le destinataire du message
775     Go To ${PROJECT_URL}/app/index.php?module=sousform&obj=dossier_message&action=3&idx=${dossier_message_1}
776     Wait Until Element Is Visible type
777     Element Text Should Be type message manuel
778     Element Text Should Be destinataire instructeur
779     #On vérifie que l'utilisateur 2 n'est notifié que du message non lu:
780     # l'instructeur du dossier étant l'emetteur du message, il n'est pas notifié
781     Depuis la page d'accueil instrms instrms
782     ${nombre_messages} = Get Text
783     ... css=.widget_messages_retours .widget-content .size-h3.box-icon.rounded.bg-info
784     Should Not Be Empty ${nombre_messages}
785     Should Be Equal ${nombre_messages} 1
786    
787     # On vérifie que le listing associé au widget des derniers dossiers déposés
788     # affiche bien un indicateur de message manuel pour le dossier
789     # On clique sur le lien vers le listing
790     Depuis la page d'accueil instrms instrms
791     Click Link css=.widget_derniers_dossiers_deposes .widget-footer a
792 softime 9282 Page Title Should Be Instruction > Dossiers Déposés
793 softime 8329 # On vérifie la présence de l'indicateur
794     Page Should Contain Element css=div#tab-derniers_dossiers_deposes div.tab-container table.tab-tab tbody tr td.col-8 a span
795    
796     #On met l'option du widget des derniers dossiers restreindre_msg_non_lu à true
797     Depuis la page d'accueil admin admin
798     Depuis le contexte du widget derniers_dossiers_deposes
799     Click On Form Portlet Action om_widget modifier
800     Input Text arguments
801     ... codes_datd=PCI;PD\nfiltre=division\nfiltre_depot=guichet\nnombre_de_jours=15\nrestreindre_msg_non_lus=true
802     Click On Submit Button
803     Depuis la page d'accueil instrms instrms
804     Click Link css=.widget_derniers_dossiers_deposes .widget-footer a
805 softime 9282 Page Title Should Be Instruction > Dossiers Déposés
806 softime 8329 # On vérifie l'absence' de l'indicateur de message
807     Page Should Not Contain Element css=div#tab-derniers_dossiers_deposes div.tab-container table.tab-tab tbody tr td.col-8 a span
808    
809     #Supprimer le droit ajouté en début de test pour revenir en condition initiale
810     Depuis la page d'accueil admin admin
811     Depuis le listing des droits
812     Use Simple Search libellé derniers_dossiers_deposes
813     Select From List By Label name=selectioncol Tous
814     Click Element css=button#search-submit
815     Wait Until Element Is Visible css=table.tab-tab
816     Click On Link INSTRUCTEUR
817     Click Element action-form-om_droit-supprimer
818     Click On Submit Button
819 softime 8989
820     Décomposition du jeu de données
821     Depuis la page d'accueil admin admin
822     &{param_args} = Create Dictionary
823     ... selection_col=libellé
824     ... search_value=option_afficher_division
825     ... click_value=agglo
826     Supprimer le paramètre (surcharge) ${param_args}

Properties

Name Value
svn:keywords "Id"

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26