*** 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}" *** Keywords *** L'autocompletion "${autocomplete}" ne propose pas l'élément "${value}" quand on cherche "${search}" Page Should Not Contain Element css=ul.ui-autocomplete * message=La page ne doit pas contenir de résultats d'autocomplete auparavant, sinon le test n'est pas fiable 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 * Page Should Not Contain Element css=a.autocomplete-${autocomplete}-result-${value} L'autocompletion "${autocomplete}" propose bien l'élément "${value}" quand on cherche "${search}" Page Should Not Contain Element css=ul.ui-autocomplete * message=La page ne doit pas contenir de résultats d'autocomplete auparavant, sinon le test n'est pas fiable 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 * Page Should Contain Element css=a.autocomplete-${autocomplete}-result-${value}