/[openfoncier]/trunk/tests/309_task_TNR.robot
ViewVC logotype

Annotation of /trunk/tests/309_task_TNR.robot

Parent Directory Parent Directory | Revision Log Revision Log


Revision 17206 - (hide annotations)
Fri Mar 22 10:53:14 2024 UTC (10 months ago) by ejpritchard
Original Path: branches/6.5.0-develop/tests/309_task_TNR.robot
File size: 22224 byte(s)
chore(tests) : Separer les TNR et commentaires du fichier des taches.
1 ejpritchard 17206 *** Settings ***
2     Documentation Test de task.
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     *** Variables ***
12     ${alternate_filestorage} filestorage_plop
13    
14     *** Test Cases ***
15     Activation de l'option 'option_notification_piece_numerisee'
16     [Documentation] Il est nécessaire de faire cette manipulation pour éviter le
17     ... FAIL: Element with locator 'dossier_message_id' not found.
18    
19     &{om_param} = Create Dictionary
20     ... libelle=option_notification_piece_numerisee
21     ... valeur=true
22     ... om_collectivite=agglo
23     Gerer le paramètre par WS ${om_param}
24    
25     Depuis la page d'accueil admin admin
26     Rendre les types de dossier d'autorisation détaillés utilisés transmissible à Plat'AU PCI
27    
28    
29     Ajout de commentaire aux tâches du moniteur
30     [Documentation] Vérifie l'implémentation du champ commentaire ainsi que la modification de ce champ
31     ... pour un tache du moniteur Plat'AU/IDE'AU
32    
33     Depuis la page d'accueil admin admin
34    
35     &{args_dossier} = Create Dictionary
36     ... om_collectivite=MARSEILLE
37     ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes
38     ... demande_type=Dépôt Initial
39     ... terrain_adresse_localite=TEST300LieuComments
40     &{args_petitionnaire1} = Create Dictionary
41     ... qualite=particulier
42     ... particulier_nom=Terrieur
43     ... particulier_prenom=Alain
44     ... localite=TEST300Localite
45     ... om_collectivite=MARSEILLE
46     ${di_comments} = Ajouter la demande par WS ${args_dossier} ${args_petitionnaire1}
47    
48     &{donnees_techniques_values} = Create Dictionary
49     ... enga_decla_lieu=TEST300engadelalieu
50     ... enga_decla_date=${date_ddmmyyyy}
51     Saisir les données techniques du DI ${di_comments} ${donnees_techniques_values}
52    
53     ${di_comments_sans_espace} = Sans espace ${di_comments}
54     ${di_comments_da} = Replace String Using Regexp ${di_comments_sans_espace} [A-Z][0-9]+$ ${EMPTY}
55     Set Suite Variable ${di_comments}
56     Set Suite Variable ${di_comments_sans_espace}
57     Set Suite Variable ${di_comments_da}
58    
59     #On accède au listing du moniteur Plat'AU et on vérifie que la colonne "Commentaire" existe bien.
60     Depuis le menu Moniteur Plat'AU
61     Element Should Contain css=th.title.col-8.lastcol commentaire
62    
63     #On effectue une recherche avancée sur le dossier d'instruction précedemment créé.
64     Wait Until Element Is Visible css=div#adv-search-adv-fields input#dossier
65     Wait Until Element Is Visible css=div#adv-search-adv-fields select#type
66     # On remplit
67     Input Text css=div#adv-search-adv-fields input#dossier ${di_comments_da}
68     Select From List By Label css=div#adv-search-adv-fields select#type Création DA
69     # On valide le formulaire de recherche
70     Click On Search Button
71     #On vérifie que la tâche que l'on recherche apparait dans le listing.
72     Element Should Contain css=td.col-1 a.lienTable Création DA
73     Element Should Contain css=td.col-4 a.lienTable ${di_comments_da}
74    
75     &{comments_task_values} = Create Dictionary
76     ... type=creation_DA
77     ... dossier=${di_comments_da}
78     ... state=new
79     ... object_id=${di_comments_da}
80     ... link_dossier=${di_comments_da}
81     ... stream=output
82    
83     #On accède à la tâche afin de la modifier
84     Depuis le contexte d'une task à partir de la recherche avancée ${comments_task_values}
85     ${task_id} = Get Text css=#task
86     Click On Form Portlet Action task modifier
87     #On ajoute un commentaire dans le textarea et on valide la modification
88     Input Text css=textarea#comment.champFormulaire C'est un commentaire de test avec des apostrophes et caractères spéciaux !
89     Click On Submit Button
90     #On vérifie que dans le résumé de la tâche, le commentaire soit bien mis à jour.
91     Element Text Should Be css=span#comment C'est un commentaire de test avec des apostrophes et caractères spéciaux !
92    
93     #On retourne sur le listing global et on recherche à nouveau notre tâche. On peut ainsi vérifier
94     # si le commentaire apparait correctement dans la colonne "Commentaire"
95     Depuis le menu Moniteur Plat'AU
96     Wait Until Element Is Visible css=div#adv-search-adv-fields input#dossier
97     Wait Until Element Is Visible css=div#adv-search-adv-fields select#type
98     # On remplit
99     Input Text css=div#adv-search-adv-fields input#dossier ${di_comments_da}
100     Select From List By Label css=div#adv-search-adv-fields select#type Création DA
101     # On valide le formulaire de recherche
102     Click On Search Button
103     #On vérifie le contenu de la colonne commentaire.
104     Element Text Should Be css=td.col-8.lastcol C'est un commentaire de test avec des apostrophes et caractères spéciaux !
105    
106     # Modification de l'état et du commentaire depuis l'action 997
107     &{task_data} = Create Dictionary
108     ... state=debug
109     ... comment=C'est un autre commentaire de test avec des apostrophes et caractères spéciaux !
110     ${COOKIE} = Get Cookie ${SESSION_COOKIE}
111     ${cookies} = Create Dictionary ${SESSION_COOKIE}=${COOKIE.value}
112     ${session} = Set Variable ${PROJECT_NAME}_web_ihm
113     Create Session ${session} ${PROJECT_URL} cookies=${cookies}
114     ${headers} = Create Dictionary Content-Type=application/x-www-form-urlencoded
115     ${response} = Post Request ${session} /app/index.php?module=form&obj=task&action=997&idx=${task_id} data=${task_data} headers=${headers}
116    
117     Depuis le contexte de la task ${task_id}
118     Element Text Should Be css=span#comment C'est un autre commentaire de test avec des apostrophes et caractères spéciaux !
119    
120    
121     TNR vérification que le lien du dossier fonctionne correctement
122     [Documentation] Test les différents cas pour lequel on a un lien vers le dossier
123     ... qui s'affiche en consultation d'une tâche. Les cas sont les suivants :
124     ... Cas 1 : tâche Sortante avec un numéro de dossier d'autorisation (DA) -> le numéro
125     ... est cliquable et redirige l'utilisateur vers le dossier d'autorisation
126     ... Cas 2 : tâche Sortante avec un numéro de dossier d'instruction (DI) -> le numéro
127     ... est cliquable et renvoie l'utilisateur vers le dossier d'instruction
128     ... Cas 3 : tâche Sortante avec un numéro de DA et le DA n'existe plus -> le numéro est
129     ... affiché mais ce n'est pas un lien
130     ... Cas 4 : tâche Sortante avec un numéro de DI et le DI n'existe plus -> le numéro est
131     ... affiché mais ce n'est pas un lien
132     ... Cas 5 : tâche entrante avec un numéro de DI existant dans l'application -> le numéro
133     ... est cliquable et renvoie l'utilisateur vers le DI
134     ... Cas 6 : tâche entrante avec un numéro de DI non existant dans l'application -> le numéro est
135     ... affiché mais ce n'est pas un lien
136     ... Cas 7 : tâche entrante sans numéro de dossier et sans external UID permettant de le récupérer
137     ... -> pas de numéro et pas de lien affiché dans la synthèse de la tâche
138     ... Cas 8 : tâche entrante pour laquelle un numéro de dossier a été récupéré à l'aide des
139     ... external UID de la tâche et où le DI existe -> le numéro est cliquable et
140     ... renvoie l'utilisateur vers le DI
141     ... Cas 9 : tâche entrante pour laquelle un numéro de dossier a été récupéré à l'aide des
142     ... external UID de la tâche et où le DI n'existe pas -> le numéro n'est pas cliquable
143     ... Cas 10 : tâche entrante de type portal pour laquelle un numéro de dossier a été récupéré
144     ... à l'aide des external UID de la tâche et où le DI existe -> le numéro est pas cliquable
145    
146     # Création d'un dossier transmissible à plat'AU. La création de ce dossier entraine
147     # l'ajout de nouvelles tâches.
148     # La tâche creation_DA sert à tester les cas 1 et 3
149     # La tâche creation_DI sert à tester les cas 2 et 4
150     &{args_dossier} = Create Dictionary
151     ... om_collectivite=MARSEILLE
152     ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes
153     ... demande_type=Dépôt Initial
154     ... terrain_adresse_localite=TEST300AdresseLocalite
155     &{args_petitionnaire} = Create Dictionary
156     ... qualite=particulier
157     ... particulier_nom=TEST300TASKNOM05
158     ... particulier_prenom=TEST300TASKPRENOM05
159     ... localite=TEST300Localite
160     ... om_collectivite=MARSEILLE
161     ${di_lie_taches} = Ajouter la demande par WS ${args_dossier} ${args_petitionnaire}
162     # Récupération du numéro de dossier sans espace et du numéro de dossier d'autorisation
163     # à partir du numéro de dossier fourni à la création du dossier
164     ${di_se} = Sans espace ${di_lie_taches}
165     ${da_lie_taches} = Replace String Using Regexp ${di_lie_taches} [A-Z][0-9]+$ ${EMPTY}
166     ${da_se} = Sans espace ${da_lie_taches}
167    
168    
169     # Ajout d'un élément dans la table lien_id_interne_uid_externe faisant référence
170     # à ce dossier.
171     # Cette référence permettra de tester les tâches en input (cas 5 à 9)
172     ${lien_dossier_payload} = Create Dictionary
173     ... object=dossier
174     ... object_id=${di_se}
175     ... external_uid=000-MMM-10
176     ... dossier=${di_se}
177     ... category=platau
178     Ajouter un external UID ${lien_dossier_payload}
179    
180     # Cas 1 : tâches entrante avec un numéro de DA existant
181     # On accède à cette tâche et on vérifie que le lien vers le dossier est présent
182     # sur le formulaire de consultation de la tâche. Vérifie également que cliquer
183     # sur ce lien redirige bien vers le formulaire de consultation du dossier
184     # d'autorisation
185     &{task_values_cas1} = Create Dictionary
186     ... type=creation_DA
187     ... dossier=${da_se}
188     ... stream=output
189     Depuis le contexte d'une task à partir de la recherche avancée ${task_values_cas1}
190     # Vérifie l'existance du lien
191     La page ne doit pas contenir d'erreur
192     Element Should Contain css=#dossier + a ${da_se}
193     ${id_creation_DA} = Get Text css=#task
194     # Test la redirection
195     Click Link ${da_se}
196     # Temporisation pour s'assurer que la page a bien le temps de se charger
197     Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Contain css=form#dossier_autorisation #dossier_autorisation_libelle ${da_lie_taches}
198     # Cas 2 : tâches entrante avec un numéro de DI existant
199     # On accède à cette tâche et on vérifie que le lien vers le dossier est présent
200     # sur le formulaire de consultation de la tâche. Vérifie également que cliquer
201     # sur ce lien redirige bien vers le formulaire de consultation du dossier
202     &{task_values_cas2} = Create Dictionary
203     ... type=creation_DI
204     ... dossier=${di_se}
205     ... stream=output
206     Depuis le contexte d'une task à partir de la recherche avancée ${task_values_cas2}
207     La page ne doit pas contenir d'erreur
208     Element Should Contain css=#dossier + a ${di_se}
209     Click Link ${di_se}
210     # Temporisation pour s'assurer que la page a bien le temps de se charger
211     Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Contain css=#fieldset-form-dossier_instruction-dossier-d_instruction #dossier_libelle ${di_lie_taches}
212    
213     # Cas 5 : Tâche entrante avec un numéro de dossier existant dans l'application
214     # Création d'une tâche faisant référence au dossier créé précedemment
215     # Récupération de la payload d'une tâche create_DI_for_consultation et modification
216     # du numéro et de l'external uid du dossier pour qu'ils correspondent à ceux ajouté
217     # en début de test
218     ${json_payload} = Get File ${EXECDIR}${/}binary_files${/}json_payload_ref.txt
219     ${json_payload} = Replace String ${json_payload} 7XY-DK8-5X 000-MMM-10
220     ${json_payload} = Replace String ${json_payload} PC0130552007777P0 ${di_se}
221     ${payload_dict} = To Json ${json_payload}
222    
223     ${task_values} = Create Dictionary
224     ... type=create_DI_for_consultation
225     ... json_payload=${json_payload}
226     ... dossier=${di_se}
227     ${task_id_cas5} = Ajouter la tâche par WS ${task_values}
228    
229     # Accède à la tâche, vérifie qu'il existe bien un lien vers le dossier
230     # Vérifie également que cliquer sur ce lien renvoie vers le formulaire
231     # consultation du DI
232     ${task_values} = Create Dictionary
233     ... type=create_DI_for_consultation
234     ... state=new
235     ... dossier=${di_se}
236     ... stream=input
237     ... task=${task_id_cas5}
238     Depuis le contexte d'une task à partir de la recherche avancée ${task_values}
239     La page ne doit pas contenir d'erreur
240     Element Should Contain css=#dossier + a ${di_se}
241     Click Link ${di_se}
242     Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Contain css=#fieldset-form-dossier_instruction-dossier-d_instruction #dossier_libelle ${di_lie_taches}
243    
244     # Cas 7 : tâche entrante pour laquelle le numéro de dossier n'a pas été récupéré
245     # via l'external uid de sa payload
246     # En consultation de la tâche il ne doit pas y avoir de numéro de dossier visible
247     ${json_payload} = Get File ${EXECDIR}${/}binary_files${/}json_ajout_piece_with_b64.json
248     ${json_payload} = Replace String ${json_payload} 7XY-DK8-5X 000-000-00
249     ${task_values} = Create Dictionary
250     ... type=add_piece
251     ... json_payload=${json_payload}
252     ${task_id_cas7} = Ajouter la tâche par WS ${task_values}
253    
254     # Accéde à la tâche et vérifie que le numéro de dossier n'est pas rempli
255     Depuis le contexte de la task ${task_id_cas7}
256     La page ne doit pas contenir d'erreur
257     Element Should Contain css=#dossier ${EMPTY}
258    
259    
260     # Cas 8 : tâche entrante pour laquelle le numéro de dossier a été récupéré via l'external uid
261     # dossier renseignée dans sa payload
262     # Le numéro de dossier doit être visible et cliquable en consultation de la tâche
263     # Récupère le template de payload JSON et le transforme en dictionnaire
264     # Modifie la payload du json pour y ajouter l'external UID faisant référence au dossier
265     # créé pour ce test
266     ${json_payload} = Replace String ${json_payload} 000-000-00 000-MMM-10
267    
268     ${task_values} = Create Dictionary
269     ... type=add_piece
270     ... json_payload=${json_payload}
271     ${task_id_cas8} = Ajouter la tâche par WS ${task_values}
272     # Accéde à la tâche et vérifie la présence du numéro de dossier et le fonctionnement du lien
273     Depuis le contexte de la task ${task_id_cas8}
274     La page ne doit pas contenir d'erreur
275     Element Should Contain css=#dossier + a ${di_se}
276     Click Link ${di_se}
277     Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Contain css=#fieldset-form-dossier_instruction-dossier-d_instruction #dossier_libelle ${di_lie_taches}
278     # Fait en sorte que les taches ne soit pas traité pour ne pas provoquer
279     # des erreurs lors de futur déclenchement des tâches
280     &{task_values_modif} = Create Dictionary
281     ... state=brouillon
282     Modifier la task ${task_id_cas8} ${task_values_modif}
283     Modifier la task ${task_id_cas7} ${task_values_modif}
284     # Activation de l'option de suppression des dossiers
285     &{options} = Create Dictionary
286     ... libelle=option_suppression_dossier_instruction
287     ... valeur=true
288     ... om_collectivite=agglo
289     Gerer le paramètre par WS ${options}
290    
291     # Suppression du dossier. Les tâches liées a ce dossier ne le seront plus.
292     Supprimer le dossier d'instruction ${di_lie_taches}
293     Le dossier d'instruction ne doit pas exister ${di_lie_taches}
294    
295     # Cas 3 : tâche Sortante avec un numéro de DA non existant dans l'application.
296     # Réutilise la tâche créée pour le cas 1. Cette tâche n'est plus liée au
297     # dossier car il a été supprimé.
298     # Vérifie que le numéro de dossier est visible mais que ce n'est pas un lien
299     Depuis le contexte d'une task à partir de la recherche avancée ${task_values_cas1}
300     La page ne doit pas contenir d'erreur
301     Page Should Not Contain Element css=#dossier + a
302     Element Should Contain css=#dossier + span ${da_se}
303    
304     # Cas 4 : tâche Sortante avec un numéro de DI non existant dans l'application.
305     # Réutilise la tâche créée pour le cas 2. Cette tâche n'est plus liée au
306     # dossier car il a été supprimé.
307     # Vérifie que le numéro de dossier est visible mais que ce n'est pas un lien
308     Depuis le contexte d'une task à partir de la recherche avancée ${task_values_cas2}
309     La page ne doit pas contenir d'erreur
310     Page Should Not Contain Element css=#dossier + a
311     Element Should Contain css=#dossier + span ${di_se}
312    
313     # Cas 6 : tâche entrante avec un numéro de DI non existant dans l'application.
314     # Réutilise la tâche créée pour le cas 5. Cette tâche n'est plus liée au
315     # dossier car il a été supprimé.
316     # Vérifie que le numéro de dossier est visible mais que ce n'est pas un lien
317     Depuis le contexte de la task ${task_id_cas5}
318     La page ne doit pas contenir d'erreur
319     Element Should Contain css=#dossier + span ${di_se}
320    
321     # Cas 9 : tâche entrante pour laquelle un numéro de dossier a été récupéré
322     # à l'aide des external UID
323     # Réutilise la tâche créée pour le cas 7. Cette tâche n'est plus liée au
324     # dossier car il a été supprimé.
325     # Vérifie que le numéro de dossier est visible mais que ce n'est pas un lien
326     Depuis le contexte de la task ${task_id_cas8}
327     La page ne doit pas contenir d'erreur
328     Element Should Contain css=#dossier + span ${di_se}
329    
330     # Cas 10 : tache entrante de type portal pour laquelle un numero de dossier a été récuperé
331     # Le numéro de dossier doit être visible et cliquable en consultation de la tâche
332     # Récupère le template de payload JSON et le transforme en dictionnaire. Créé
333     # la tâche avec cette payload et déclenche le traitement pour créer le dossier.
334     ${json_payload} = Get File ${EXECDIR}${/}binary_files${/}portal_task_create_di.json
335    
336     &{platau_type_demande_initial} = Create Dictionary
337     ... libelle=platau_type_demande_initial_PCI
338     ... valeur=DI
339     ... om_collectivite=agglo
340     Gerer le paramètre par WS ${platau_type_demande_initial}
341    
342     ${task_values} = Create Dictionary
343     ... type=create_DI
344     ... json_payload=${json_payload}
345     ... category=portal
346     ${task_id_cas10} = Ajouter la tâche par WS ${task_values}
347     # Avant traitement le numéro de dossier ne dois pas être rempli ni cliquable
348     Depuis le contexte de la task ${task_id_cas10} IDE'AU
349     Page Should Not Contain Element css=#dossier + a
350     Element Should Contain css=#dossier ${EMPTY}
351    
352     # Déclenchement de la tâche et vérification de la présence du numéro de dossier
353     # cliquable
354     Déclencher le traitement des tâches par WS
355     Depuis le contexte de la task ${task_id_cas10} IDE'AU
356     La page ne doit pas contenir d'erreur
357     # Comme on ne connaît pas le numéro de dossier on vérifie qu'il s'agit du bon
358     # en se basant sur les données de la payload
359     Click Link css=#dossier + a
360     # Temporisation pour s'assurer que la page a bien le temps de se charger
361     Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Page Should Contain Avenue Plop, 13000
362    
363    
364     TNR vérification que la création de dossiers non transmissible n'entraine pas une tache Création DA
365     [Documentation] Vérifie que lorsqu'un dossier est créé, si ce n'est pas un type de dossier
366     ... transmissible à Plat'Au alors il n'y a pas de tâche Création DA ajoutée à la liste des
367     ... task
368    
369     # Tout les types de dossier ont été rendu non transmissible au test précédent
370     # n'importe quel type de dossier peut donc être utilisé
371     Depuis la page d'accueil admin admin
372    
373     # Création d'un dossier non transmissible
374     &{args_dossier} = Create Dictionary
375     ... om_collectivite=MARSEILLE
376     ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes
377     ... demande_type=Dépôt Initial
378     ... depot_electronique=true
379     ... source_depot=platau
380     &{args_petitionnaire1} = Create Dictionary
381     ... qualite=particulier
382     ... particulier_nom=Sirois
383     ... particulier_prenom=Eugenia
384     ... om_collectivite=MARSEILLE
385     ${di} = Ajouter la demande par WS ${args_dossier} ${args_petitionnaire1}
386    
387     # Vérification de l'absence de task Création DA lié au dossier
388     Depuis le menu Moniteur Plat'AU
389     #
390     Wait Until Element Is Visible css=div#adv-search-adv-fields input#dossier
391     Wait Until Element Is Visible css=div#adv-search-adv-fields select#type
392     # On remplit
393     ${di_sans_espace} = Sans espace ${di}
394     ${di_da} = Replace String Using Regexp ${di_sans_espace} [A-Z][0-9]+$ ${EMPTY}
395     Select From List By Label css=#type Création DA
396     Input Text css=#dossier ${di_da}
397     Select From List By Label css=#state à traiter
398     Select From List By Label css=#stream Sortant
399     # On valide le formulaire de recherche
400     Click On Search Button
401     # Aucune tache d'ajout de pièce ne doit être trouvé
402     Element Should Contain css=#tab-task Aucun enregistrement.
403    
404    
405     Rendre les types de dossier d'autorisation détaillés utilisés non transmissible à Plat'AU
406     [Documentation] Il est nécessaire de faire cette manipulation pour revenir à un état normal
407     Depuis la page d'accueil admin admin
408     &{args_type_DA_detaille_modification} = Create Dictionary
409     ... dossier_platau=false
410     Modifier type de dossier d'autorisation détaillé PCI ${args_type_DA_detaille_modification}
411    
412    
413     Désactivation de l'option 'option_notification_piece_numerisee'
414     [Documentation] Il est nécessaire de faire cette manipulation pour éviter le
415     ... FAIL: Element with locator 'dossier_message_id' not found.
416    
417     &{om_param} = Create Dictionary
418     ... libelle=option_notification_piece_numerisee
419     ... valeur=false
420     ... om_collectivite=agglo
421     Gerer le paramètre par WS ${om_param}
422    

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26