*** Settings *** Resource resources/resources.robot Suite Setup For Suite Setup Suite Teardown For Suite Teardown Documentation Tests génériques pour la gestion multi-collectivité ... Ce test vérifie que les utilisateurs ne voient que les données de leur collectivité ... et que l'utilisateur niveau 2 (multi) voit toutes les collectivités. *** Test Cases *** Initialisation des données de test [Documentation] Initialisation des collectivités et utilisateurs de test Depuis la page d'accueil admin admin ${testid} = Set Variable 900 Set Suite Variable ${testid} Isolation des données - Emplacement VILLE-01 non visible par VILLE-02 [Documentation] Vérifie qu'un emplacement ajouté dans la collectivité 1 ... n'est PAS visible par un utilisateur de la collectivité 2 # ======================================================================== # 1. USER VILLE-01 : Ajout d'un emplacement dans sa collectivité # ======================================================================== Depuis la page d'accueil user_ville01 user_ville01 &{concession_ville01} = Create Dictionary ... famille=FAMILLE${testid}-VILLE01 ... numero=100 ... cimetierelib=CIMETIERE-VILLE-01 ... zonelib=CARRE ZONE-VILLE-01 ... voielib=ALLEE VOIE-VILLE-01 ... sepulturetype=Type sépulture test 01 ${concession_ville01.id} = Ajouter la concession ${concession_ville01} Set Suite Variable ${concession_ville01} # On vérifie que l'emplacement est visible dans le listing Depuis le listing des concessions Use Simple Search famille ${concession_ville01.famille} Page Should Contain ${concession_ville01.famille} # ======================================================================== # 2. USER VILLE-02 : NE DOIT PAS voir l'emplacement de VILLE-01 # ======================================================================== Depuis la page d'accueil user_ville02 user_ville02 Depuis le listing des concessions Use Simple Search famille ${concession_ville01.famille} Page Should Contain Aucun enregistrement. # Tentative d'accès direct à l'emplacement par URL Go To ${PROJECT_URL}${OM_ROUTE_FORM}&obj=concession&action=3&idx=${concession_ville01.id} # Doit afficher un message d'erreur Error Message Should Contain Droits insuffisants. Vous n'avez pas suffisament de droits pour accéder à cette page. Page Should Not Contain ${concession_ville01.famille} # ======================================================================== # 3. USER MULTI : DOIT voir l'emplacement de VILLE-01 # ======================================================================== Depuis la page d'accueil user_multi user_multi Depuis le listing des concessions Use Simple Search famille ${concession_ville01.famille} Page Should Contain ${concession_ville01.famille} # Accès direct à l'emplacement Depuis le contexte de la concession ${concession_ville01.id} Element Should Contain css=#concession-famille ${concession_ville01.famille} Isolation des données - Emplacement VILLE-01 non autocomplétable par VILLE-02 [Documentation] Vérifie qu'un emplacement ajouté dans la collectivité 1 ... n'est PAS disponible dans l'autocomplétion des emplacements par un utilisateur de la collectivité 2 # ======================================================================== # 1. USER VILLE-01 : DOIT voir son propre emplacement # ======================================================================== Depuis la page d'accueil user_ville01 user_ville01 Depuis le formulaire d'ajout d'une opération de transfert L'autocompletion "emplacement" propose bien l'élément "${concession_ville01.id}" quand on cherche "${concession_ville01.famille}" Reload Page # pour réinitialiser l'autocomplétion L'autocompletion "emplacement_transfert" propose bien l'élément "${concession_ville01.id}" quand on cherche "${concession_ville01.famille}" Depuis le formulaire d'ajout d'un contrat L'autocompletion "emplacement" propose bien l'élément "${concession_ville01.id}" quand on cherche "${concession_ville01.famille}" # ======================================================================== # 2. USER VILLE-02 : NE DOIT PAS voir l'emplacement de VILLE-01 # ======================================================================== Depuis la page d'accueil user_ville02 user_ville02 Depuis le formulaire d'ajout d'une opération de transfert L'autocompletion "emplacement" ne propose pas l'élément "${concession_ville01.id}" quand on cherche "${concession_ville01.famille}" Reload Page # pour réinitialiser l'autocomplétion L'autocompletion "emplacement_transfert" ne propose pas l'élément "${concession_ville01.id}" quand on cherche "${concession_ville01.famille}" Depuis le formulaire d'ajout d'un contrat L'autocompletion "emplacement" ne propose pas l'élément "${concession_ville01.id}" quand on cherche "${concession_ville01.famille}" # ======================================================================== # 3. USER MULTI : DOIT voir l'emplacement de VILLE-01 # ======================================================================== Depuis la page d'accueil user_multi user_multi # On ne test pas d'opération car l'utilisateur MULTI n'a pas à faire d'opération Depuis le formulaire d'ajout d'un contrat L'autocompletion "emplacement" propose bien l'élément "${concession_ville01.id}" quand on cherche "${concession_ville01.famille}" Isolation des données - Emplacement VILLE-02 non visible par VILLE-01 [Documentation] Vérifie qu'un emplacement ajouté dans la collectivité 2 ... n'est PAS visible par un utilisateur de la collectivité 1 # ======================================================================== # 1. USER VILLE-02 : Ajout d'un emplacement dans sa collectivité # ======================================================================== Depuis la page d'accueil user_ville02 user_ville02 &{concession_ville02} = Create Dictionary ... famille=FAMILLE${testid}-VILLE02 ... numero=200 ... cimetierelib=CIMETIERE-VILLE-02 ... zonelib=CARRE ZONE-VILLE-02 ... voielib=ALLEE VOIE-VILLE-02 ${concession_ville02.id} = Ajouter la concession ${concession_ville02} Set Suite Variable ${concession_ville02} # ======================================================================== # 2. USER VILLE-01 : NE DOIT PAS voir l'emplacement de VILLE-02 # ======================================================================== Depuis la page d'accueil user_ville01 user_ville01 Depuis le listing des concessions Use Simple Search famille ${concession_ville02.famille} Page Should Contain Aucun enregistrement. # Tentative d'accès direct à l'emplacement par URL Go To ${PROJECT_URL}${OM_ROUTE_FORM}&obj=concession&action=3&idx=${concession_ville02.id} # Doit afficher un message d'erreur Error Message Should Contain Droits insuffisants. Vous n'avez pas suffisament de droits pour accéder à cette page. Page Should Not Contain ${concession_ville02.famille} # ======================================================================== # 3. USER MULTI : DOIT voir l'emplacement de VILLE-02 # ======================================================================== Depuis la page d'accueil user_multi user_multi Depuis le listing des concessions Use Simple Search famille ${concession_ville02.famille} Page Should Contain ${concession_ville02.famille} Ajout d'un emplacement par utilisateur MULTI (niveau 2) [Documentation] Vérifie qu'un utilisateur niveau 2 peut ajouter un emplacement ... dans n'importe quelle collectivité Depuis la page d'accueil user_multi user_multi # ======================================================================== # Ajout dans VILLE-01 par USER MULTI # ======================================================================== &{concession_multi_ville01} = Create Dictionary ... om_collectivite=VILLE-TEST-01 ... famille=FAMILLE${testid}-MULTI-V01 ... numero=300 ... cimetierelib=CIMETIERE-VILLE-01 ... zonelib=CARRE ZONE-VILLE-01 ... voielib=ALLEE VOIE-VILLE-01 ... sepulturetype=Type sépulture test 01 ${concession_multi_ville01.id} = Ajouter la concession ${concession_multi_ville01} # Vérification : USER VILLE-01 doit voir cet emplacement Depuis la page d'accueil user_ville01 user_ville01 Depuis le listing des concessions Use Simple Search famille ${concession_multi_ville01.famille} Page Should Contain ${concession_multi_ville01.famille} # Vérification : USER VILLE-02 NE doit PAS voir cet emplacement Depuis la page d'accueil user_ville02 user_ville02 Depuis le listing des concessions Use Simple Search famille ${concession_multi_ville01.famille} Page Should Contain Aucun enregistrement. # ======================================================================== # Ajout dans VILLE-02 par USER MULTI # ======================================================================== Depuis la page d'accueil user_multi user_multi &{concession_multi_ville02} = Create Dictionary ... om_collectivite=VILLE-TEST-02 ... famille=FAMILLE${testid}-MULTI-V02 ... numero=400 ... cimetierelib=CIMETIERE-VILLE-02 ... zonelib=CARRE ZONE-VILLE-02 ... voielib=ALLEE VOIE-VILLE-02 ${concession_multi_ville02.id} = Ajouter la concession ${concession_multi_ville02} # Vérification : USER VILLE-02 doit voir cet emplacement Depuis la page d'accueil user_ville02 user_ville02 Depuis le listing des concessions Use Simple Search famille ${concession_multi_ville02.famille} Page Should Contain ${concession_multi_ville02.famille} # Vérification : USER VILLE-01 NE doit PAS voir cet emplacement Depuis la page d'accueil user_ville01 user_ville01 Depuis le listing des concessions Use Simple Search famille ${concession_multi_ville02.famille} Page Should Contain Aucun enregistrement. Isolation des données - Défunts [Documentation] Vérifie l'isolation des défunts entre collectivités ... Les défunts sont accessibles uniquement via l'emplacement # ======================================================================== # 1. USER VILLE-01 : Ajout d'un défunt dans sa collectivité # ======================================================================== Depuis la page d'accueil user_ville01 user_ville01 &{defunt_ville01} = Create Dictionary ... titre=Monsieur ... nom=DEFUNT${testid}-VILLE01 ... prenom=JEAN ... datenaissance=01/01/1950 ... lieunaissance=VILLE-TEST-01 ... datedeces=01/01/2020 ... lieudeces=VILLE-TEST-01 ... nature=cercueil ${defunt_ville01.id} = Ajouter le defunt dans le contexte de la concession ${defunt_ville01} ${concession_ville01.id} Set Suite Variable ${defunt_ville01} # Vérification : le défunt est visible dans l'onglet défunt de sa concession Depuis l'onglet 'défunt' de la concession ${concession_ville01.id} Page Should Contain ${defunt_ville01.nom} # ======================================================================== # 2. USER VILLE-02 : NE DOIT PAS voir le défunt de VILLE-01 # ======================================================================== Depuis la page d'accueil user_ville02 user_ville02 # Tentative d'accès direct au défunt par URL Go To ${PROJECT_URL}${OM_ROUTE_FORM}&obj=defunt&action=3&idx=${defunt_ville01.id} # Doit afficher un message d'erreur Error Message Should Contain Droits insuffisants. Vous n'avez pas suffisament de droits pour accéder à cette page. Page Should Not Contain ${defunt_ville01.nom} # ======================================================================== # 3. USER MULTI : DOIT voir le défunt de VILLE-01 # ======================================================================== Depuis la page d'accueil user_multi user_multi # Accès via l'onglet défunt de la concession Depuis l'onglet 'défunt' de la concession ${concession_ville01.id} Page Should Contain ${defunt_ville01.nom} Isolation des données - Opérations [Documentation] Vérifie l'isolation des opérations entre collectivités # ======================================================================== # 1. USER VILLE-01 : Ajout d'une opération dans sa collectivité # ======================================================================== Depuis la page d'accueil user_ville01 user_ville01 &{operation_ville01} = Create Dictionary ... date=${DATE_FORMAT_DD/MM/YYYY} ... heure=10:00:00 ... emplacement_autocomplete_search=(${concession_ville01.id}) ... emplacement_autocomplete_id=${concession_ville01.id} ... categorie=Inhumation ${operation_ville01.id} = Ajouter l'opération d'inhumation sur concession ${operation_ville01} Set Suite Variable ${operation_ville01} # Vérification dans le listing des opérations Depuis le listing operation # Vérification que l'ID de l'opération apparaît dans le tableau Element Should Contain css=.tab-tab tbody ${operation_ville01.id} # ======================================================================== # 2. USER VILLE-02 : NE DOIT PAS voir l'opération de VILLE-01 # ======================================================================== Depuis la page d'accueil user_ville02 user_ville02 Depuis le listing operation # Vérification que l'ID de l'opération n'apparaît pas dans le tableau Element Should Not Contain css=.tab-tab tbody ${operation_ville01.id} # Tentative d'accès direct à l'opération par URL Go To ${PROJECT_URL}${OM_ROUTE_FORM}&obj=inhumation_concession&action=3&idx=${operation_ville01.id} # Doit afficher un message d'erreur Error Message Should Contain Droits insuffisants. Vous n'avez pas suffisament de droits pour accéder à cette page. # ======================================================================== # 3. USER MULTI : DOIT voir l'opération de VILLE-01 # ======================================================================== Depuis la page d'accueil user_multi user_multi Depuis le listing operation # Vérification que l'ID de l'opération apparaît dans le tableau Element Should Contain css=.tab-tab tbody ${operation_ville01.id} Isolation des données - Contrats [Documentation] Vérifie l'isolation des contrats entre collectivités # ======================================================================== # 1. USER VILLE-01 : Ajout d'un contrat dans sa collectivité # ======================================================================== Depuis la page d'accueil user_ville01 user_ville01 &{contrat_ville01} = Create Dictionary ... emplacement=${concession_ville01.id} ... datedemande=${DATE_FORMAT_DD/MM/YYYY} ... origine=Achat ... terme=perpétuité ... datevente=01/01/2020 ... valide=true ${contrat_ville01.id} = Ajouter un contrat depuis l'emplacement ${contrat_ville01} Set Suite Variable ${contrat_ville01} # Vérification dans le listing des contrats Depuis le listing contrat Input Text css=#id ${contrat_ville01.id} Click On Search Button # Vérification que l'ID de l'contrat apparaît dans le tableau Element Should Contain css=.tab-tab tbody ${contrat_ville01.id} # ======================================================================== # 2. USER VILLE-02 : NE DOIT PAS voir le contrat de VILLE-01 # ======================================================================== Depuis la page d'accueil user_ville02 user_ville02 Depuis le listing contrat Input Text css=#id ${contrat_ville01.id} Click On Search Button # Vérification que l'ID de l'contrat n'apparaît pas dans le tableau Element Should Not Contain css=.tab-tab tbody ${contrat_ville01.id} # Tentative d'accès direct au contrat par URL Go To ${PROJECT_URL}${OM_ROUTE_FORM}&obj=contrat&action=3&idx=${contrat_ville01.id} # Doit afficher un message d'erreur Error Message Should Contain Droits insuffisants. Vous n'avez pas suffisament de droits pour accéder à cette page. # ======================================================================== # 3. USER MULTI : DOIT voir le contrat de VILLE-01 # ======================================================================== Depuis la page d'accueil user_multi user_multi Depuis le listing contrat Input Text css=#id ${contrat_ville01.id} Click On Search Button # Vérification que l'ID de l'contrat apparaît dans le tableau Element Should Contain css=.tab-tab tbody ${contrat_ville01.id} Isolation des données - Travaux [Documentation] Vérifie l'isolation des travaux entre collectivités ... Les travaux sont accessibles uniquement via l'emplacement # Ajout d'une entreprise pour les tests Depuis la page d'accueil admin admin &{entreprise_test} = Create Dictionary ... nomentreprise=ENTREPRISE${testid} ... pf=Non ... adresse1=12 rue Test ... cp=99000 ... ville=VILLE-TEST ... telephone=0000000000 Ajouter l'entreprise ${entreprise_test} Set Suite Variable ${entreprise_test} # ======================================================================== # 1. USER VILLE-01 : Ajout de travaux dans sa collectivité # ======================================================================== Depuis la page d'accueil user_ville01 user_ville01 &{travaux_ville01} = Create Dictionary ... entreprise=${entreprise_test.nomentreprise} ... datedebinter=${DATE_FORMAT_DD/MM/YYYY} ... datefininter=${DATE_FORMAT_DD/MM/YYYY} ... naturetravaux=Construction caveau T1 bas ${travaux_ville01.id} = Ajouter le travaux dans le contexte de la concession ${travaux_ville01} ${concession_ville01.id} Set Suite Variable ${travaux_ville01} # Vérification : les travaux sont visibles dans l'onglet travaux de sa concession Depuis l'onglet 'travaux' de la concession ${concession_ville01.id} # Vérification que l'ID des travaux apparaît dans le tableau Element Should Contain css=.tab-tab tbody ${travaux_ville01.id} # ======================================================================== # 2. USER VILLE-02 : NE DOIT PAS voir les travaux de VILLE-01 # ======================================================================== Depuis la page d'accueil user_ville02 user_ville02 # Tentative d'accès direct aux travaux par URL Go To ${PROJECT_URL}${OM_ROUTE_FORM}&obj=travaux&action=3&idx=${travaux_ville01.id} # Doit afficher un message d'erreur Error Message Should Contain Droits insuffisants. Vous n'avez pas suffisament de droits pour accéder à cette page. Page Should Not Contain ${entreprise_test.nomentreprise} # ======================================================================== # 3. USER MULTI : DOIT voir les travaux de VILLE-01 # ======================================================================== Depuis la page d'accueil user_multi user_multi # Accès via l'onglet travaux de la concession Depuis l'onglet 'travaux' de la concession ${concession_ville01.id} # Vérification que l'ID des travaux apparaît dans le tableau Element Should Contain css=.tab-tab tbody ${travaux_ville01.id} Isolation des listings - Travaux [Documentation] Vérifie le filtrage du listing travaux selon la collectivité # ======================================================================== # 1. USER VILLE-01 : Voit ses travaux dans le listing # ======================================================================== Depuis la page d'accueil user_ville01 user_ville01 Go To ${PROJECT_URL}${OM_ROUTE_TAB}&obj=travaux # Doit voir les travaux de VILLE-01 Page Should Contain Element css=.tab-tab tbody Element Should Contain css=.tab-tab tbody ${travaux_ville01.id} # ======================================================================== # 2. USER VILLE-02 : Ne voit PAS les travaux de VILLE-01 # ======================================================================== Depuis la page d'accueil user_ville02 user_ville02 Go To ${PROJECT_URL}${OM_ROUTE_TAB}&obj=travaux # Ne doit PAS voir les travaux de VILLE-01 Run Keyword And Continue On Failure Element Should Not Contain css=.tab-tab tbody ${travaux_ville01.id} # ======================================================================== # 3. USER MULTI : Voit tous les travaux # ======================================================================== Depuis la page d'accueil user_multi user_multi Go To ${PROJECT_URL}${OM_ROUTE_TAB}&obj=travaux # Doit voir les travaux de VILLE-01 Element Should Contain css=.tab-tab tbody ${travaux_ville01.id} Isolation des listings - Défunts [Documentation] Vérifie le filtrage du listing défunts selon la collectivité # ======================================================================== # 1. USER VILLE-01 : Voit ses défunts dans le listing # ======================================================================== Depuis la page d'accueil user_ville01 user_ville01 Go To ${PROJECT_URL}${OM_ROUTE_TAB}&obj=defunt # Doit voir le défunt de VILLE-01 Page Should Contain Element css=.tab-tab tbody Element Should Contain css=body ${defunt_ville01.nom} # ======================================================================== # 2. USER VILLE-02 : Ne voit PAS les défunts de VILLE-01 # ======================================================================== Depuis la page d'accueil user_ville02 user_ville02 Go To ${PROJECT_URL}${OM_ROUTE_TAB}&obj=defunt # Ne doit PAS voir le défunt de VILLE-01 Run Keyword And Continue On Failure Page Should Not Contain ${defunt_ville01.nom} # ======================================================================== # 3. USER MULTI : Voit tous les défunts # ======================================================================== Depuis la page d'accueil user_multi user_multi Go To ${PROJECT_URL}${OM_ROUTE_TAB}&obj=defunt # Doit voir le défunt de VILLE-01 Page Should Contain ${defunt_ville01.nom} Isolation des listings - Autorisations (Contacts) [Documentation] Vérifie le filtrage du listing autorisations selon la collectivité ... On ajoute d'abord un contact de test # ======================================================================== # Ajout d'un contact par USER VILLE-01 # ======================================================================== Depuis la page d'accueil user_ville01 user_ville01 &{autorisation_ville01} = Create Dictionary ... nature=concessionnaire ... titre=Monsieur ... nom=CONTACT${testid}-VILLE01 ... prenom=PIERRE ... datenaissance=01/01/1960 ${autorisation_ville01.id} = Ajouter le contact dans le contexte de l'emplacement ${autorisation_ville01} ${concession_ville01.id} concessionnaire Set Suite Variable ${autorisation_ville01} # ======================================================================== # 1. USER VILLE-01 : Voit ses contacts dans le listing # ======================================================================== Go To ${PROJECT_URL}${OM_ROUTE_TAB}&obj=autorisation # Doit voir le contact de VILLE-01 Page Should Contain Element css=.tab-tab tbody Element Should Contain css=body ${autorisation_ville01.nom} # ======================================================================== # 2. USER VILLE-02 : Ne voit PAS les contacts de VILLE-01 # ======================================================================== Depuis la page d'accueil user_ville02 user_ville02 Go To ${PROJECT_URL}${OM_ROUTE_TAB}&obj=autorisation # Ne doit PAS voir le contact de VILLE-01 Run Keyword And Continue On Failure Page Should Not Contain ${autorisation_ville01.nom} # ======================================================================== # 3. USER MULTI : Voit tous les contacts # ======================================================================== Depuis la page d'accueil user_multi user_multi Go To ${PROJECT_URL}${OM_ROUTE_TAB}&obj=autorisation # Doit voir le contact de VILLE-01 Page Should Contain ${autorisation_ville01.nom} Isolation des listings - Dossiers [Documentation] Vérifie le filtrage du listing dossiers selon la collectivité ... On ajoute d'abord un dossier de test # ======================================================================== # Ajout d'un dossier par USER VILLE-01 # ======================================================================== Depuis la page d'accueil user_ville01 user_ville01 &{dossier_ville01} = Create Dictionary ... datedossier=${DATE_FORMAT_DD/MM/YYYY} ... typedossier=photo ... fichier=saintpierre.png ... observation=Dossier test ${testid} ${dossier_ville01.id} = Ajouter le dossier dans le contexte de la concession ${dossier_ville01} ${concession_ville01.id} Set Suite Variable ${dossier_ville01} # ======================================================================== # 1. USER VILLE-01 : Voit ses dossiers dans le listing # ======================================================================== Go To ${PROJECT_URL}${OM_ROUTE_TAB}&obj=dossier # Doit voir le dossier de VILLE-01 Page Should Contain Element css=.tab-tab tbody Element Should Contain css=.tab-tab tbody ${dossier_ville01.id} # ======================================================================== # 2. USER VILLE-02 : Ne voit PAS les dossiers de VILLE-01 # ======================================================================== Depuis la page d'accueil user_ville02 user_ville02 Go To ${PROJECT_URL}${OM_ROUTE_TAB}&obj=dossier # Ne doit PAS voir le dossier de VILLE-01 Run Keyword And Continue On Failure Element Should Not Contain css=.tab-tab tbody ${dossier_ville01.id} # ======================================================================== # 3. USER MULTI : Voit tous les dossiers # ======================================================================== Depuis la page d'accueil user_multi user_multi Go To ${PROJECT_URL}${OM_ROUTE_TAB}&obj=dossier # Doit voir le dossier de VILLE-01 Element Should Contain css=.tab-tab tbody ${dossier_ville01.id} Isolation des listings - Courriers [Documentation] Vérifie le filtrage du listing courriers selon la collectivité ... On ajoute d'abord un courrier de test # ======================================================================== # Ajout d'un courrier par USER VILLE-01 # ======================================================================== Depuis la page d'accueil user_ville01 user_ville01 &{courrier_ville01} = Create Dictionary ... datecourrier=${DATE_FORMAT_DD/MM/YYYY} ... contexte=autre ... lettretype=test_courrier testchampfusioncourrier ... objet=Courrier test ${testid} ${courrier_ville01.id} = Ajouter le courrier dans le contexte de la concession ${courrier_ville01} ${concession_ville01.id} Set Suite Variable ${courrier_ville01} # ======================================================================== # 1. USER VILLE-01 : Voit ses courriers dans le listing # ======================================================================== Go To ${PROJECT_URL}${OM_ROUTE_TAB}&obj=courrier # Doit voir le courrier de VILLE-01 Page Should Contain Element css=.tab-tab tbody Element Should Contain css=.tab-tab tbody ${courrier_ville01.id} # ======================================================================== # 2. USER VILLE-02 : Ne voit PAS les courriers de VILLE-01 # ======================================================================== Depuis la page d'accueil user_ville02 user_ville02 Go To ${PROJECT_URL}${OM_ROUTE_TAB}&obj=courrier # Ne doit PAS voir le courrier de VILLE-01 Run Keyword And Continue On Failure Element Should Not Contain css=.tab-tab tbody ${courrier_ville01.id} # ======================================================================== # 3. USER MULTI : Voit tous les courriers # ======================================================================== Depuis la page d'accueil user_multi user_multi Go To ${PROJECT_URL}${OM_ROUTE_TAB}&obj=courrier # Doit voir le courrier de VILLE-01 Element Should Contain css=.tab-tab tbody ${courrier_ville01.id} Test isolation des listings - Généalogies [Documentation] Vérifie le filtrage du listing généalogies selon la collectivité ... On ajoute d'abord un lien de parenté et une généalogie de test en utilisant le défunt et l'autorisation existants # ======================================================================== # Ajout d'un lien de parenté par USER VILLE-01 # ======================================================================== Depuis la page d'accueil user_ville01 user_ville01 &{lien_parente_ville01} = Create Dictionary ... libelle=Père/Mère ... lien_inverse=Fils/Fille ${lien_parente_ville01.id} = Ajouter le lien de parenté ${lien_parente_ville01} Set Suite Variable ${lien_parente_ville01} # ======================================================================== # Ajout d'une généalogie par USER VILLE-01 # ======================================================================== &{genealogie_ville01} = Create Dictionary ... personne_1=${defunt_ville01.id} ${defunt_ville01.nom} ${defunt_ville01.prenom} defunt ... personne_2=${autorisation_ville01.id} ${autorisation_ville01.nom} ${autorisation_ville01.prenom} contact ... lien_parente=${lien_parente_ville01.libelle} -> ${lien_parente_ville01.lien_inverse} ${genealogie_ville01.id} = Ajouter la généalogie ${concession_ville01.id} ${genealogie_ville01} Set Suite Variable ${genealogie_ville01} # ======================================================================== # 1. USER VILLE-01 : Voit ses généalogies dans le listing # ======================================================================== Go To ${PROJECT_URL}${OM_ROUTE_TAB}&obj=genealogie # Doit voir la généalogie de VILLE-01 Page Should Contain Element css=.tab-tab tbody Element Should Contain css=.tab-tab tbody ${genealogie_ville01.id} # ======================================================================== # 2. USER VILLE-02 : Ne voit PAS les généalogies de VILLE-01 # ======================================================================== Depuis la page d'accueil user_ville02 user_ville02 Go To ${PROJECT_URL}${OM_ROUTE_TAB}&obj=genealogie # Ne doit PAS voir la généalogie de VILLE-01 Run Keyword And Continue On Failure Element Should Not Contain css=.tab-tab tbody ${genealogie_ville01.id} # ======================================================================== # 3. USER MULTI : Voit toutes les généalogies # ======================================================================== Depuis la page d'accueil user_multi user_multi Go To ${PROJECT_URL}${OM_ROUTE_TAB}&obj=genealogie # Doit voir la généalogie de VILLE-01 Element Should Contain css=.tab-tab tbody ${genealogie_ville01.id} Isolation des données listings - Reprises sur abandon [Documentation] Vérifie qu'une reprise sur abandon est isolée par collectivité ... On ajoute d'abord une reprise sur abandon de test # ======================================================================== # Ajout d'une reprise sur abandon par USER VILLE-01 # ======================================================================== Depuis la page d'accueil user_ville01 user_ville01 &{reprise_abandon_ville01} = Create Dictionary ... statut=En cours ... etat=1 - Phase préliminaire ... datecreation=${DATE_FORMAT_DD/MM/YYYY} ${reprise_abandon_ville01.id} = Ajouter une reprise sur abandon ${reprise_abandon_ville01} ${concession_ville01.id} Set Suite Variable ${reprise_abandon_ville01} # ======================================================================== # 1. USER VILLE-01 : Voit ses reprises sur abandon dans le listing # ======================================================================== Go To ${PROJECT_URL}${OM_ROUTE_TAB}&obj=reprise_abandon # Doit voir la reprise sur abandon de VILLE-01 Page Should Contain Element css=.tab-tab tbody Element Should Contain css=.tab-tab tbody ${reprise_abandon_ville01.id} # ======================================================================== # 2. USER VILLE-02 : Ne voit PAS les reprises sur abandon de VILLE-01 # ======================================================================== Depuis la page d'accueil user_ville02 user_ville02 Go To ${PROJECT_URL}${OM_ROUTE_TAB}&obj=reprise_abandon # Ne doit PAS voir le dossier de VILLE-01 Run Keyword And Continue On Failure Element Should Not Contain css=.tab-tab tbody ${reprise_abandon_ville01.id} # ======================================================================== # 3. USER MULTI : Voit tous les reprises sur abandon # ======================================================================== Depuis la page d'accueil user_multi user_multi Go To ${PROJECT_URL}${OM_ROUTE_TAB}&obj=reprise_abandon # Doit voir la reprise sur abandon de VILLE-01 Element Should Contain css=.tab-tab tbody ${reprise_abandon_ville01.id} Isolation des données - Reprises sur abandon [Documentation] Vérifie l'isolation des reprises sur abandon entre collectivités # ======================================================================== # 1. USER VILLE-01 : Ajout d'une reprise sur abandon dans sa collectivité # ======================================================================== Depuis la page d'accueil user_ville01 user_ville01 &{reprise_abandon_ville01} = Create Dictionary ... statut=En cours ... etat=1 - Phase préliminaire ... datecreation=${DATE_FORMAT_DD/MM/YYYY} ${reprise_abandon_ville01.id} = Ajouter une reprise sur abandon ${reprise_abandon_ville01} ${concession_ville01.id} Set Suite Variable ${reprise_abandon_ville01} # Vérification dans le listing des reprises sur abandon Depuis le listing reprise_abandon # Vérification que l'ID de la reprise apparaît dans le tableau Element Should Contain css=.tab-tab tbody ${reprise_abandon_ville01.id} # ======================================================================== # 2. USER VILLE-02 : NE DOIT PAS voir la reprise de VILLE-01 # ======================================================================== Depuis la page d'accueil user_ville02 user_ville02 Depuis le listing reprise_abandon # Vérification que l'ID de la reprise n'apparaît pas dans le tableau Element Should Not Contain css=.tab-tab tbody ${reprise_abandon_ville01.id} # Tentative d'accès direct à la reprise sur abandon par URL Go To ${PROJECT_URL}${OM_ROUTE_FORM}&obj=reprise_abandon&action=3&idx=${reprise_abandon_ville01.id} # Doit afficher un message d'erreur Error Message Should Contain Droits insuffisants. Vous n'avez pas suffisament de droits pour accéder à cette page. # ======================================================================== # 3. USER MULTI : DOIT voir la reprise de VILLE-01 # ======================================================================== Depuis la page d'accueil user_multi user_multi Depuis le listing reprise_abandon # Vérification que l'ID de la reprise apparaît dans le tableau Element Should Contain css=.tab-tab tbody ${reprise_abandon_ville01.id} Isolation des données - Courrier [Documentation] Vérifie l'isolation des courriers entre collectivités ... Les courriers sont accessibles uniquement via l'emplacement # ======================================================================== # 1. USER VILLE-01 : Ajout d'un courrier dans sa collectivité # ======================================================================== Depuis la page d'accueil user_ville01 user_ville01 &{courrier_ville01} = Create Dictionary ... datecourrier=${DATE_FORMAT_DD/MM/YYYY} ... lettretype=test_courrier testchampfusioncourrier ... contexte=autre ... lettretype_id=test_courrier ... objet=Courrier test VILLE-01 ${courrier_ville01.id} = Ajouter le courrier dans le contexte de la concession ${courrier_ville01} ${concession_ville01.id} Set Suite Variable ${courrier_ville01} # ======================================================================== # 2. USER VILLE-02 : NE DOIT PAS voir le courrier de VILLE-01 # ======================================================================== Depuis la page d'accueil user_ville02 user_ville02 # Tentative d'accès direct au courrier par URL Go To ${PROJECT_URL}${OM_ROUTE_FORM}&obj=courrier&action=3&idx=${courrier_ville01.id} # Doit afficher un message d'erreur Error Message Should Contain Droits insuffisants. Vous n'avez pas suffisament de droits pour accéder à cette page. # ======================================================================== # 3. USER MULTI : DOIT voir le courrier de VILLE-01 # ======================================================================== Depuis la page d'accueil user_multi user_multi # Accès via l'onglet courrier de la concession Depuis l'onglet 'courrier' de la concession ${concession_ville01.id} # Vérification que l'ID du courrier apparaît dans le tableau Element Should Contain css=.tab-tab tbody ${courrier_ville01.id} Isolation des données - Dossier [Documentation] Vérifie l'isolation des dossiers entre collectivités ... Les dossiers sont accessibles uniquement via l'emplacement # ======================================================================== # 1. USER VILLE-01 : Ajout d'un dossier dans sa collectivité # ======================================================================== Depuis la page d'accueil user_ville01 user_ville01 &{dossier_ville01} = Create Dictionary ... fichier=saintpierre.png ... typedossier=photo ... datedossier=${DATE_FORMAT_DD/MM/YYYY} ... observation=Dossier test ${dossier_ville01.id} = Ajouter le dossier dans le contexte de la concession ${dossier_ville01} ${concession_ville01.id} Set Suite Variable ${dossier_ville01} # ======================================================================== # 2. USER VILLE-02 : NE DOIT PAS voir le dossier de VILLE-01 # ======================================================================== Depuis la page d'accueil user_ville02 user_ville02 # Tentative d'accès direct au dossier par URL Go To ${PROJECT_URL}${OM_ROUTE_FORM}&obj=dossier&action=3&idx=${dossier_ville01.id} # Doit afficher un message d'erreur Error Message Should Contain Droits insuffisants. Vous n'avez pas suffisament de droits pour accéder à cette page. # ======================================================================== # 3. USER MULTI : DOIT voir le dossier de VILLE-01 # ======================================================================== Depuis la page d'accueil user_multi user_multi # Accès via l'onglet dossier de la concession Depuis l'onglet 'dossier' de la concession ${concession_ville01.id} # Vérification que l'ID du dossier apparaît dans le tableau Element Should Contain css=#sousform-dossier .tab-tab tbody ${dossier_ville01.id} Widgets dashboard - Isolation des données [Documentation] Vérifie que les widgets du tableau de bord ne montrent que ... les données de la collectivité de l'utilisateur # ======================================================================== # 1. USER VILLE-01 : Doit voir uniquement ses données # ======================================================================== Depuis la page d'accueil user_ville01 user_ville01 # Vérification du widget localisation (si option_localisation = plan) # Doit voir ses propres plans ${option_localisation} = Get Text css=body Run Keyword If 'Plan' in '''${option_localisation}''' Page Should Contain Element css=#widget_localisation Run Keyword If 'Plan' in '''${option_localisation}''' Element Should Contain css=#widget_localisation Localisation # Vérification du widget contrats à valider Page Should Contain Element css=.widget_contrat_a_valider # Le widget doit filtrer et ne montrer que les contrats de VILLE-01 Element Should Not Contain css=.widget_contrat_a_valider ${concession_ville02.famille} # Vérification du widget supervision Page Should Contain Element css=.widget_supervision # Le widget doit filtrer et ne montrer que les données de VILLE-01 Element Should Not Contain css=.widget_supervision ${concession_ville02.famille} Element Should Not Contain css=.widget_supervision CIMETIERE-VILLE-02 # Vérification globale du dashboard - ne doit PAS contenir les éléments de VILLE-02 Element Should Not Contain css=#dashboard ${concession_ville02.famille} Element Should Not Contain css=#dashboard CIMETIERE-VILLE-02 # ======================================================================== # 2. USER VILLE-02 : Doit voir uniquement ses données # ======================================================================== Depuis la page d'accueil user_ville02 user_ville02 # Vérification du widget contrats à valider Page Should Contain Element css=.widget_contrat_a_valider # Le widget doit filtrer et ne montrer que les contrats de VILLE-02 Element Should Not Contain css=.widget_contrat_a_valider ${concession_ville01.famille} # Vérification du widget supervision Page Should Contain Element css=.widget_supervision # Le widget doit filtrer et ne montrer que les données de VILLE-02 Element Should Not Contain css=.widget_supervision ${concession_ville01.famille} Element Should Not Contain css=.widget_supervision CIMETIERE-VILLE-01 # Vérification globale du dashboard - ne doit PAS contenir les éléments de VILLE-01 Element Should Not Contain css=#dashboard ${concession_ville01.famille} Element Should Not Contain css=#dashboard CIMETIERE-VILLE-01 # ======================================================================== # 3. USER MULTI : Doit voir toutes les données # ======================================================================== Depuis la page d'accueil user_multi user_multi # Vérification du widget contrats à valider Page Should Contain Element css=.widget_contrat_a_valider # L'utilisateur MULTI doit voir les contrats de toutes les collectivités # (ou au moins ne pas être limité à une seule) # Vérification du widget supervision Page Should Contain Element css=.widget_supervision # L'utilisateur MULTI doit voir les données de toutes les collectivités # Si l'option de localisation est "plan", vérifier le widget localisation # et qu'il affiche les plans des différentes collectivités Run Keyword If 'Plan' in '''${option_localisation}''' Page Should Contain Element css=#widget_localisation Widget localisation - Filtrage par collectivité [Documentation] Vérifie que le widget localisation affiche uniquement les plans ... de la collectivité de l'utilisateur (si option_localisation = plan) # ======================================================================== # Activation de l'option de localisation "plan" pour chaque collectivité # ======================================================================== # Pour VILLE-01 Depuis la page d'accueil user_ville01 user_ville01 Activer l'option de localisation 'plan' # Pour VILLE-02 Depuis la page d'accueil user_ville02 user_ville02 Activer l'option de localisation 'plan' # Pour MULTI - on utilise admin pour ajouter le paramètre sur la collectivité MULTI Depuis la page d'accueil user_multi user_multi # Ajout manuel du paramètre pour la collectivité MULTI Depuis le listing om_parametre Click On Add Button Input Text css=#libelle option_localisation Input Text css=#valeur plan Select From List By Label css=#om_collectivite MULTI Click On Submit Button Valid Message Should Be Vos modifications ont bien été enregistrées. # ======================================================================== # Création des plans de test par chaque utilisateur dans sa collectivité # ======================================================================== # Plan pour VILLE-01 créé par user_ville01 Depuis la page d'accueil user_ville01 user_ville01 &{plan_ville01} = Create Dictionary ... planslib=PLAN TEST VILLE-01 ... fichier=saintpierre.png ${plan_ville01.id} = Ajouter le plan ${plan_ville01} Set Suite Variable ${plan_ville01} # Plan pour VILLE-02 créé par user_ville02 Depuis la page d'accueil user_ville02 user_ville02 &{plan_ville02} = Create Dictionary ... planslib=PLAN TEST VILLE-02 ... fichier=saintpierre.png ${plan_ville02.id} = Ajouter le plan ${plan_ville02} Set Suite Variable ${plan_ville02} # ======================================================================== # USER VILLE-01 : Ne doit voir que son plan # ======================================================================== Depuis la page d'accueil user_ville01 user_ville01 # Vérification du widget localisation Wait Until Element Is Visible css=.widget_localisation timeout=${TIMEOUT} # Doit voir son propre plan Element Should Contain css=.widget_localisation ${plan_ville01.planslib} # Ne doit PAS voir le plan de VILLE-02 Element Should Not Contain css=.widget_localisation ${plan_ville02.planslib} # ======================================================================== # USER VILLE-02 : Ne doit voir que son plan # ======================================================================== Depuis la page d'accueil user_ville02 user_ville02 # Vérification du widget localisation Wait Until Element Is Visible css=.widget_localisation timeout=${TIMEOUT} # Doit voir son propre plan Element Should Contain css=.widget_localisation ${plan_ville02.planslib} # Ne doit PAS voir le plan de VILLE-01 Element Should Not Contain css=.widget_localisation ${plan_ville01.planslib} # ======================================================================== # USER MULTI : Doit voir tous les plans # ======================================================================== Depuis la page d'accueil user_multi user_multi # Vérification du widget localisation Wait Until Element Is Visible css=.widget_localisation timeout=${TIMEOUT} # Doit voir les deux plans Element Should Contain css=.widget_localisation ${plan_ville01.planslib} Element Should Contain css=.widget_localisation ${plan_ville02.planslib} Recherche globale - Isolation des données [Documentation] Vérifie que la recherche globale ne retourne que ... les données de la collectivité de l'utilisateur # ======================================================================== # 1. USER VILLE-01 : Recherche des données # ======================================================================== Depuis la page d'accueil user_ville01 user_ville01 # Recherche d'un emplacement de VILLE-01 : doit le trouver Effectuer une recherche globale ${concession_ville01.famille} Page Should Contain ${concession_ville01.famille} # Recherche d'un emplacement de VILLE-02 : NE doit PAS le trouver Effectuer une recherche globale ${concession_ville02.famille} Page Should Not Contain ${concession_ville02.famille} # ======================================================================== # 2. USER MULTI : Recherche des données # ======================================================================== Depuis la page d'accueil user_multi user_multi # Doit trouver les données des deux collectivités Effectuer une recherche globale ${concession_ville01.famille} Page Should Contain ${concession_ville01.famille} Effectuer une recherche globale ${concession_ville02.famille} Page Should Contain ${concession_ville02.famille} Listes déroulantes - Cimetières, Zones, Voies [Documentation] Vérifie que les listes déroulantes (cimetières, zones, voies) ... ne montrent que les éléments de la collectivité de l'utilisateur # ======================================================================== # 1. USER VILLE-01 : Listes déroulantes # ======================================================================== Depuis la page d'accueil user_ville01 user_ville01 Depuis le formulaire d'ajout d'une concession # Doit voir CIMETIERE-VILLE-01 Click Element css=#autocomplete-voie-link-selection ${liste_cimetieres} = Get List Items css=#combo-select-cimetiere List Should Contain Value ${liste_cimetieres} CIMETIERE-VILLE-01 # NE doit PAS voir CIMETIERE-VILLE-02 List Should Not Contain Value ${liste_cimetieres} CIMETIERE-VILLE-02 # ======================================================================== # 2. USER VILLE-02 : Listes déroulantes # ======================================================================== Depuis la page d'accueil user_ville02 user_ville02 Depuis le formulaire d'ajout d'une concession # Doit voir CIMETIERE-VILLE-02 Click Element css=#autocomplete-voie-link-selection ${liste_cimetieres} = Get List Items css=#combo-select-cimetiere List Should Contain Value ${liste_cimetieres} CIMETIERE-VILLE-02 # NE doit PAS voir CIMETIERE-VILLE-01 List Should Not Contain Value ${liste_cimetieres} CIMETIERE-VILLE-01 # ======================================================================== # 3. USER MULTI : Listes déroulantes # ======================================================================== Depuis la page d'accueil user_multi user_multi Depuis le formulaire d'ajout d'une concession # Doit voir les deux cimetières Click Element css=#autocomplete-voie-link-selection ${liste_cimetieres} = Get List Items css=#combo-select-cimetiere List Should Contain Value ${liste_cimetieres} CIMETIERE-VILLE-01 List Should Contain Value ${liste_cimetieres} CIMETIERE-VILLE-02 Éditions PDF - Isolation des données [Documentation] Vérifie que les éditions PDF ne contiennent que ... les données de la collectivité appropriée # ======================================================================== # USER VILLE-01 (niveau 1) : Génération d'une édition sur concession VILLE-01 # ======================================================================== Depuis la page d'accueil user_ville01 user_ville01 # Génération d'une fiche emplacement Depuis le contexte de la concession ${concession_ville01.id} # Génération de l'édition "Fiche Emplacement" Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Click On Form Portlet Action concession pdf-edition new_window # Vérification du contenu de l'édition - doit contenir les données de VILLE-01 ${contenu_pdf_ville01} = Create List ${concession_ville01.famille} CIMETIERE-VILLE-01 VILLE-TEST-01 Vérifier Que Le PDF Contient Des Strings ${OM_PDF_TITLE} ${contenu_pdf_ville01} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Click On Form Portlet Action concession pdf-edition new_window # Vérification qu'il ne contient PAS de données de VILLE-02 ${contenu_pdf_ville02_exclus} = Create List ${concession_ville02.famille} CIMETIERE-VILLE-02 Vérifier Que Le PDF Ne Contient Pas Des Strings ${OM_PDF_TITLE} ${contenu_pdf_ville02_exclus} # ======================================================================== # USER VILLE-02 (niveau 1) : Génération d'une édition sur concession VILLE-02 # ======================================================================== Depuis la page d'accueil user_ville02 user_ville02 # Génération d'une fiche emplacement Depuis le contexte de la concession ${concession_ville02.id} # Génération de l'édition "Fiche Emplacement" Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Click On Form Portlet Action concession pdf-edition new_window # Vérification du contenu de l'édition - doit contenir les données de VILLE-02 ${contenu_pdf_ville02} = Create List ${concession_ville02.famille} CIMETIERE-VILLE-02 VILLE-TEST-02 Vérifier Que Le PDF Contient Des Strings ${OM_PDF_TITLE} ${contenu_pdf_ville02} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Click On Form Portlet Action concession pdf-edition new_window # Vérification qu'il ne contient PAS de données de VILLE-01 ${contenu_pdf_ville01_exclus} = Create List ${concession_ville01.famille} CIMETIERE-VILLE-01 Vérifier Que Le PDF Ne Contient Pas Des Strings ${OM_PDF_TITLE} ${contenu_pdf_ville01_exclus} # ======================================================================== # USER MULTI (niveau 2) : Génération d'éditions pour les deux collectivités # ======================================================================== Depuis la page d'accueil user_multi user_multi # Édition pour concession VILLE-01 Depuis le contexte de la concession ${concession_ville01.id} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Click On Form Portlet Action concession pdf-edition new_window ${contenu_pdf_multi_ville01} = Create List ${concession_ville01.famille} VILLE-TEST-01 Vérifier Que Le PDF Contient Des Strings ${OM_PDF_TITLE} ${contenu_pdf_multi_ville01} # Édition pour concession VILLE-02 Depuis le contexte de la concession ${concession_ville02.id} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Click On Form Portlet Action concession pdf-edition new_window ${contenu_pdf_multi_ville02} = Create List ${concession_ville02.famille} VILLE-TEST-02 Vérifier Que Le PDF Contient Des Strings ${OM_PDF_TITLE} ${contenu_pdf_multi_ville02} Éditions PDF - Utilisateur mono-collectivité utilise son propre état [Documentation] Vérifie qu'un utilisateur de niveau 1 (mono) utilise bien l'état ... de sa propre collectivité et non celui de la collectivité multi (niveau 2) # ======================================================================== # USER VILLE-01 : Vérification de l'utilisation de l'état VILLE-TEST-01 # ======================================================================== Depuis la page d'accueil user_ville01 user_ville01 Depuis le contexte de la concession ${concession_ville01.id} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Click On Form Portlet Action concession pdf-edition new_window # L'édition doit contenir "VILLE-TEST-01" dans le titre (spécifique à l'état de cette collectivité) # Cela prouve qu'on utilise bien l'état de la collectivité 91 et non celui de niveau 2 ${contenu_etat_ville01} = Create List VILLE-TEST-01 Vérifier Que Le PDF Contient Des Strings ${OM_PDF_TITLE} ${contenu_etat_ville01} # ======================================================================== # USER VILLE-02 : Vérification de l'utilisation de l'état VILLE-TEST-02 # ======================================================================== Depuis la page d'accueil user_ville02 user_ville02 Depuis le contexte de la concession ${concession_ville02.id} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Click On Form Portlet Action concession pdf-edition new_window # L'édition doit contenir "VILLE-TEST-02" dans le titre (spécifique à l'état de cette collectivité) # Cela prouve qu'on utilise bien l'état de la collectivité 92 et non celui de niveau 2 ${contenu_etat_ville02} = Create List VILLE-TEST-02 Vérifier Que Le PDF Contient Des Strings ${OM_PDF_TITLE} ${contenu_etat_ville02} Éditions PDF - Fallback vers état niveau 2 en absence d'état niveau 1 [Documentation] Vérifie que si aucun état n'existe pour une collectivité de niveau 1, ... le système utilise automatiquement l'état de la collectivité de niveau 2 (fallback) # ======================================================================== # Création d'une concession pour user_multi dans VILLE-01 # mais on va utiliser un type d'emplacement différent (colombarium) # pour lequel on n'a PAS créé d'état spécifique niveau 1 # ======================================================================== Depuis la page d'accueil user_multi user_multi &{colombarium_ville01} = Create Dictionary ... om_collectivite=VILLE-TEST-01 ... famille=COLOMBARIUM${testid}-VILLE01 ... numero=500 ... cimetierelib=CIMETIERE-VILLE-01 ... zonelib=CARRE ZONE-VILLE-01 ... voielib=ALLEE VOIE-VILLE-01 ${colombarium_ville01.id} = Ajouter le colombarium ${colombarium_ville01} Set Suite Variable ${colombarium_ville01} # ======================================================================== # USER MULTI génère l'édition pour le colombarium # Comme il n'y a pas d'état "colombarium" pour VILLE-TEST-01, # le système doit utiliser l'état de niveau 2 (fallback) # ======================================================================== Depuis le contexte du colombarium ${colombarium_ville01.id} # L'édition doit être générée sans erreur (utilisation de l'état niveau 2) Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Click On Form Portlet Action colombarium pdf-edition new_window # Vérification que les données du colombarium sont présentes ${contenu_pdf_colombarium} = Create List ${colombarium_ville01.famille} CIMETIERE-VILLE-01 Vérifier Que Le PDF Contient Des Strings ${OM_PDF_TITLE} ${contenu_pdf_colombarium} # ======================================================================== # USER VILLE-01 génère l'édition pour le même colombarium # Même comportement : fallback vers niveau 2 car pas d'état spécifique # ======================================================================== Depuis la page d'accueil user_ville01 user_ville01 # On crée un autre colombarium pour user_ville01 &{colombarium_ville01_user} = Create Dictionary ... famille=COLOMBARIUM${testid}-USERV01 ... numero=501 ... cimetierelib=CIMETIERE-VILLE-01 ... zonelib=CARRE ZONE-VILLE-01 ... voielib=ALLEE VOIE-VILLE-01 ${colombarium_ville01_user.id} = Ajouter le colombarium ${colombarium_ville01_user} Depuis le contexte du colombarium ${colombarium_ville01_user.id} # L'édition doit être générée sans erreur (fallback vers état niveau 2) Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Click On Form Portlet Action colombarium pdf-edition new_window # Vérification que les données sont présentes ${contenu_pdf_colombarium_user} = Create List ${colombarium_ville01_user.famille} CIMETIERE-VILLE-01 Vérifier Que Le PDF Contient Des Strings ${OM_PDF_TITLE} ${contenu_pdf_colombarium_user} Isolation des données - Archivage [Documentation] Vérifie que l'archivage des emplacements respecte l'isolation ... des données entre collectivités et que les utilisateurs ne peuvent accéder ... qu'aux archives de leur propre collectivité # ======================================================================== # USER VILLE-01 : Archivage d'une concession dans VILLE-01 # ======================================================================== Depuis la page d'accueil user_ville01 user_ville01 # Création d'une concession à archiver pour VILLE-01 &{concession_archivage_ville01} = Create Dictionary ... famille=ARCHIVE${testid}-VILLE01 ... numero=600 ... cimetierelib=CIMETIERE-VILLE-01 ... zonelib=CARRE ZONE-VILLE-01 ... voielib=ALLEE VOIE-VILLE-01 ... datevente=01/01/2010 ... duree=10 ${concession_archivage_ville01.id} = Ajouter la concession ${concession_archivage_ville01} Set Suite Variable ${concession_archivage_ville01} # Ajout d'un défunt dans la concession &{defunt_archive_ville01} = Create Dictionary ... titre=Monsieur ... nom=ARCHIVE${testid}-VILLE01 ... prenom=Jean ... datenaissance=01/01/1950 ... lieunaissance=VILLE-TEST-01 ... datedeces=01/01/2020 ... lieudeces=VILLE-TEST-01 ... nature=cercueil ... exhumation=Oui ... dateexhumation=01/01/2024 ${defunt_archive_ville01.id} = Ajouter le defunt dans le contexte de la concession ${defunt_archive_ville01} ${concession_archivage_ville01.id} # Archivage de la concession &{data_archivage} = Create Dictionary ... dateexhumation=01/01/2024 Archiver une concession ${concession_archivage_ville01.id} ${data_archivage} # Vérification que la concession archivée est visible dans le listing des archives Depuis le listing emplacement_archive Use Simple Search famille ${concession_archivage_ville01.famille} Page Should Contain ${concession_archivage_ville01.famille} # ======================================================================== # USER VILLE-02 : Archivage d'une concession dans VILLE-02 # ======================================================================== Depuis la page d'accueil user_ville02 user_ville02 # Création d'une concession à archiver pour VILLE-02 &{concession_archivage_ville02} = Create Dictionary ... famille=ARCHIVE${testid}-VILLE02 ... numero=700 ... cimetierelib=CIMETIERE-VILLE-02 ... zonelib=CARRE ZONE-VILLE-02 ... voielib=ALLEE VOIE-VILLE-02 ... datevente=01/01/2010 ... duree=10 ${concession_archivage_ville02.id} = Ajouter la concession ${concession_archivage_ville02} Set Suite Variable ${concession_archivage_ville02} # Ajout d'un défunt dans la concession &{defunt_archive_ville02} = Create Dictionary ... titre=Madame ... nom=ARCHIVE${testid}-VILLE02 ... prenom=Marie ... datenaissance=01/01/1955 ... lieunaissance=VILLE-TEST-02 ... datedeces=01/01/2021 ... lieudeces=VILLE-TEST-02 ... nature=cercueil ... exhumation=Oui ... dateexhumation=01/01/2024 ${defunt_archive_ville02.id} = Ajouter le defunt dans le contexte de la concession ${defunt_archive_ville02} ${concession_archivage_ville02.id} # Archivage de la concession Archiver une concession ${concession_archivage_ville02.id} ${data_archivage} # Vérification que la concession archivée est visible dans le listing des archives Depuis le listing emplacement_archive Use Simple Search famille ${concession_archivage_ville02.famille} Page Should Contain ${concession_archivage_ville02.famille} # ======================================================================== # USER VILLE-01 : NE DOIT PAS voir les archives de VILLE-02 # ======================================================================== Depuis la page d'accueil user_ville01 user_ville01 # Vérification que l'archive de VILLE-02 n'est PAS visible Depuis le listing emplacement_archive Use Simple Search famille ${concession_archivage_ville02.famille} Page Should Contain Aucun enregistrement. # Tentative d'accès direct à l'archive par URL Go To ${PROJECT_URL}${OM_ROUTE_FORM}&obj=emplacement_archive&action=3&idx=${concession_archivage_ville02.id} Error Message Should Contain Droits insuffisants. Vous n'avez pas suffisament de droits pour accéder à cette page. Page Should Not Contain ${concession_archivage_ville02.famille} # Vérification que ses propres archives sont accessibles Depuis le listing emplacement_archive Use Simple Search famille ${concession_archivage_ville01.famille} Page Should Contain ${concession_archivage_ville01.famille} # ======================================================================== # USER VILLE-02 : NE DOIT PAS voir les archives de VILLE-01 # ======================================================================== Depuis la page d'accueil user_ville02 user_ville02 # Vérification que l'archive de VILLE-01 n'est PAS visible Depuis le listing emplacement_archive Use Simple Search famille ${concession_archivage_ville01.famille} Page Should Contain Aucun enregistrement. # Tentative d'accès direct à l'archive par URL Go To ${PROJECT_URL}${OM_ROUTE_FORM}&obj=emplacement_archive&action=3&idx=${concession_archivage_ville01.id} Error Message Should Contain Droits insuffisants. Vous n'avez pas suffisament de droits pour accéder à cette page. Page Should Not Contain ${concession_archivage_ville01.famille} # Vérification que ses propres archives sont accessibles Depuis le listing emplacement_archive Use Simple Search famille ${concession_archivage_ville02.famille} Page Should Contain ${concession_archivage_ville02.famille} # ======================================================================== # USER MULTI : DOIT voir les archives des deux collectivités # ======================================================================== Depuis la page d'accueil user_multi user_multi # Vérification que les archives de VILLE-01 sont visibles Depuis le listing emplacement_archive Use Simple Search famille ${concession_archivage_ville01.famille} Page Should Contain ${concession_archivage_ville01.famille} # Accès direct à l'archive de VILLE-01 Go To ${PROJECT_URL}${OM_ROUTE_FORM}&obj=emplacement_archive&action=3&idx=${concession_archivage_ville01.id} Element Should Contain css=#famille ${concession_archivage_ville01.famille} # Vérification que les archives de VILLE-02 sont visibles Depuis le listing emplacement_archive Use Simple Search famille ${concession_archivage_ville02.famille} Page Should Contain ${concession_archivage_ville02.famille} # Accès direct à l'archive de VILLE-02 Go To ${PROJECT_URL}${OM_ROUTE_FORM}&obj=emplacement_archive&action=3&idx=${concession_archivage_ville02.id} Element Should Contain css=#famille ${concession_archivage_ville02.famille} # ======================================================================== # Vérification des listings d'éléments archivés pour chaque collectivité # ======================================================================== # USER VILLE-01 : Vérification listings archives Depuis la page d'accueil user_ville01 user_ville01 # Défunts archivés Depuis le listing defunt_archive La page ne doit pas contenir d'erreur # On ne doit voir que les défunts de VILLE-01 Page Should Not Contain ${defunt_archive_ville02.nom} # USER VILLE-02 : Vérification listings archives Depuis la page d'accueil user_ville02 user_ville02 # Défunts archivés Depuis le listing defunt_archive La page ne doit pas contenir d'erreur # On ne doit voir que les défunts de VILLE-02 Page Should Not Contain ${defunt_archive_ville01.nom} # USER MULTI : Vérification qu'il voit tous les listings Depuis la page d'accueil user_multi user_multi # Emplacements archivés Depuis le listing emplacement_archive La page ne doit pas contenir d'erreur # Défunts archivés Depuis le listing defunt_archive La page ne doit pas contenir d'erreur Isolation des données - Voie VILLE-01 non autocomplétable par VILLE-02 [Documentation] Vérifie qu'une voie de la collectivité 1 ... n'est PAS disponible dans l'autocomplétion des voies par un utilisateur de la collectivité 2 ... dans le formulaire d'ajout d'un emplacement # Voies de test créées dans init_data_multi_collectivite.sql &{voie_ville01} = Create Dictionary ... id=900001 ... libelle=VOIE-VILLE-01 &{voie_ville02} = Create Dictionary ... id=900002 ... libelle=VOIE-VILLE-02 # ======================================================================== # 1. USER VILLE-01 : DOIT voir sa propre voie # ======================================================================== Depuis la page d'accueil user_ville01 user_ville01 Depuis le formulaire d'ajout d'une concession L'autocompletion "voie" propose bien l'élément "${voie_ville01.id}" quand on cherche "${voie_ville01.libelle}" # ======================================================================== # 2. USER VILLE-02 : NE DOIT PAS voir la voie de VILLE-01 # ======================================================================== Depuis la page d'accueil user_ville02 user_ville02 Depuis le formulaire d'ajout d'une concession L'autocompletion "voie" ne propose pas l'élément "${voie_ville01.id}" quand on cherche "${voie_ville01.libelle}" # ======================================================================== # 3. USER MULTI : DOIT voir les voies des deux collectivités # ======================================================================== Depuis la page d'accueil user_multi user_multi Depuis le formulaire d'ajout d'une concession L'autocompletion "voie" propose bien l'élément "${voie_ville01.id}" quand on cherche "${voie_ville01.libelle}" Reload Page # pour réinitialiser l'autocomplétion L'autocompletion "voie" propose bien l'élément "${voie_ville02.id}" quand on cherche "${voie_ville02.libelle}" Transfert - Filtrage de la destination par la collectivité de l'origine (utilisateur MULTI) [Documentation] Vérifie que lors d'une opération de transfert, lors du choix d'origine d'une concession ... le champ de sélection de destination pour choisir une concessions doit contenir ... les concessions de même collectivité que la concession d'origine. # Depuis la page d'accueil user_multi user_multi # # Concession n°1 collectivité VILLE-TEST-01 # &{concession_multi_01} = Create Dictionary ... om_collectivite=VILLE-TEST-01 ... famille=GUY${testid}-USER01-V01 ... numero=501 ... cimetierelib=CIMETIERE-VILLE-01 ... zonelib=CARRE ZONE-VILLE-01 ... voielib=ALLEE VOIE-VILLE-01 ${concession_multi_01.id} = Ajouter la concession ${concession_multi_01} Set Suite Variable ${concession_multi_01} # # Concession n°2 collectivité VILLE-TEST-01 # &{concession_multi_02} = Create Dictionary ... om_collectivite=VILLE-TEST-01 ... famille=YUG${testid}-USER02-V01 ... numero=501 ... cimetierelib=CIMETIERE-VILLE-01 ... zonelib=CARRE ZONE-VILLE-01 ... voielib=ALLEE VOIE-VILLE-01 ${concession_multi_02.id} = Ajouter la concession ${concession_multi_02} Set Suite Variable ${concession_multi_02} # # Concession collectivité LIBREVILLE # &{concession_multi_03} = Create Dictionary ... om_collectivite=LIBREVILLE ... famille=DUCHEMINEMENT${testid}-USER01-LIBREVILLE ... numero=80 ... cimetierelib=CIMETIÈRE DE MOULÈS ... zonelib=CARRE 1 ... voielib=ALLEE B ${concession_multi_03.id} = Ajouter la concession ${concession_multi_03} Set Suite Variable ${concession_multi_03} # Depuis le formulaire d'ajout d'une opération de transfert # # Test autocompletion doit contenir une concession de collectivité VILLE-TEST-01 # L'autocompletion "emplacement" propose bien l'élément "${concession_multi_01.id}" quand on cherche "${concession_multi_01.famille}" Click Element css=a.autocomplete-emplacement-result-${concession_multi_01.id} # L'autocompletion "emplacement_transfert" propose bien l'élément "${concession_multi_02.id}" quand on cherche "${concession_multi_02.famille}" # # Test autocompletion ne doit pas contenir une concession de collectivité LIBREVILLE # Depuis le formulaire d'ajout d'une opération de transfert # L'autocompletion "emplacement" propose bien l'élément "${concession_multi_01.id}" quand on cherche "${concession_multi_01.famille}" Click Element css=a.autocomplete-emplacement-result-${concession_multi_01.id} # L'autocompletion "emplacement_transfert" ne propose pas l'élément "${concession_multi_03.id}" quand on cherche "${concession_multi_03.famille}" # # Test avec une concession d'origine de collectivité LIBREVILLE # Depuis le formulaire d'ajout d'une opération de transfert # L'autocompletion "emplacement" propose bien l'élément "${concession_multi_03.id}" quand on cherche "${concession_multi_03.famille}" Click Element css=a.autocomplete-emplacement-result-${concession_multi_03.id} # L'autocompletion "emplacement_transfert" ne propose pas l'élément "${concession_multi_01.id}" quand on cherche "${concession_multi_01.famille}" *** Keywords *** L'autocompletion "${autocomplete}" ne propose pas l'élément "${value}" quand on cherche "${search}" Element Should Not Be Visible css=ul.ui-autocomplete#autocomplete-${autocomplete} message=Le dropdown autocomplete doit être fermé avant de lancer la vérification Input Text css=#autocomplete-${autocomplete}-search ${search} # On attends que l'autocomplete soit chargé # Wait Until Page Contains Element css=ul.ui-autocomplete * Wait Until Element Is Visible css=ul.ui-autocomplete#autocomplete-${autocomplete} Page Should Not Contain Element css=a.autocomplete-${autocomplete}-result-${value} L'autocompletion "${autocomplete}" propose bien l'élément "${value}" quand on cherche "${search}" Element Should Not Be Visible css=ul.ui-autocomplete#autocomplete-${autocomplete} message=Le dropdown autocomplete doit être fermé avant de lancer la vérification Input Text css=#autocomplete-${autocomplete}-search ${search} # On attends que l'autocomplete soit chargé # Wait Until Page Contains Element css=ul.ui-autocomplete * Wait Until Element Is Visible css=ul.ui-autocomplete#autocomplete-${autocomplete} Page Should Contain Element css=a.autocomplete-${autocomplete}-result-${value}