*** Settings *** Documentation Les widgets. # On inclut les mots-clefs Resource resources/resources.robot # On ouvre/ferme le navigateur au début/à la fin du Test Suite. Suite Setup For Suite Setup Suite Teardown For Suite Teardown *** Test Cases *** Création du jeu de données [Documentation] Constitue le jeu de données. # &{args_petitionnaire} = Create Dictionary ... particulier_nom=Reault ... particulier_prenom=Julienne ... om_collectivite=MARSEILLE &{args_autres_demandeurs} = Create Dictionary ... petitionnaire=${args_petitionnaire} &{args_demande} = Create Dictionary ... dossier_autorisation_type_detaille=Recours contentieux ... demande_type=Dépôt Initial REC ... autorisation_contestee=PC 013055 12 00001P0 ... om_collectivite=MARSEILLE ${args_peti} = Create Dictionary ${di_rec} = Ajouter la demande par WS ${args_demande} ${args_peti} ${args_autres_demandeurs} # &{args_petitionnaire} = Create Dictionary ... particulier_nom=Ayot ... particulier_prenom=Alain ... om_collectivite=MARSEILLE &{args_autres_demandeurs} = Create Dictionary ... petitionnaire=${args_petitionnaire} &{args_demande} = Create Dictionary ... dossier_autorisation_type_detaille=Recours contentieux ... demande_type=Dépôt Initial REC ... autorisation_contestee=PC 013055 12 00001P0 ... om_collectivite=MARSEILLE ${di_rec_2} = Ajouter la demande par WS ${args_demande} ${NULL} ${args_autres_demandeurs} # &{args_contrevenant} = Create Dictionary ... particulier_nom=Ferland ... particulier_prenom=Honoré ... om_collectivite=MARSEILLE &{args_plaignant} = Create Dictionary ... particulier_nom=Routhier ... particulier_prenom=Vick ... om_collectivite=MARSEILLE &{args_autres_demandeurs} = Create Dictionary ... contrevenant_principal=${args_contrevenant} ... plaignant_principal=${args_plaignant} &{args_demande} = Create Dictionary ... dossier_autorisation_type_detaille=Infraction ... demande_type=Dépôt Initial IN ... om_collectivite=MARSEILLE ${di_inf} = Ajouter la demande par WS ${args_demande} ${NULL} ${args_autres_demandeurs} # &{args_contrevenant} = Create Dictionary ... particulier_nom=Chnadonnet ... particulier_prenom=Gaston ... om_collectivite=MARSEILLE &{args_plaignant} = Create Dictionary ... particulier_nom=Audet ... particulier_prenom=Saber ... om_collectivite=MARSEILLE &{args_autres_demandeurs} = Create Dictionary ... contrevenant_principal=${args_contrevenant} ... plaignant_principal=${args_plaignant} &{args_demande} = Create Dictionary ... dossier_autorisation_type_detaille=Infraction ... demande_type=Dépôt Initial IN ... om_collectivite=MARSEILLE ${di_inf_2} = Ajouter la demande par WS ${args_demande} ${NULL} ${args_autres_demandeurs} Set Suite Variable ${di_rec} Set Suite Variable ${di_rec_2} Set Suite Variable ${di_inf} Set Suite Variable ${di_inf_2} Widget "Alerte parquet" [Documentation] Permet de vérifier le fonctionnement du widget 'Alerte ... parquet'. Ce widget doit afficher les 5 infractions en cours ... d'instruction, les plus anciennes pour lesquelles la date de réception ... est dépassée depuis plus de 9 mois et pour lesquelles la date de ... transmission au parquet est nulle. # On ajoute une infraction dont la date de réception est dépassée de 10 mois ${date_di_inf_db} = Subtract Time From Date ${DATE_FORMAT_YYYY-MM-DD} 300 days result_format=%Y-%m-%d ${date_di_inf_form} = Convert Date ${date_di_inf_db} result_format=%d/%m/%Y &{args_contrevenant} = Create Dictionary ... particulier_nom=Charrette ... particulier_prenom=Ophelia ... om_collectivite=MARSEILLE &{args_plaignant} = Create Dictionary ... particulier_nom=Moreau ... particulier_prenom=Marcel ... om_collectivite=MARSEILLE &{args_autres_demandeurs} = Create Dictionary ... contrevenant_principal=${args_contrevenant} ... plaignant_principal=${args_plaignant} &{args_demande} = Create Dictionary ... dossier_autorisation_type_detaille=Infraction ... demande_type=Dépôt Initial IN ... date_demande=${date_di_inf_form} ... om_collectivite=MARSEILLE ${di_inf} = Ajouter la demande par WS ${args_demande} ${NULL} ${args_autres_demandeurs} # Ajout d'un widget de test dont l'argument 'dossier_encours' aura la valeur # 'false', sur le profil du juriste afin de vérifier l'affichage des # infractions clôturées Depuis la page d'accueil admin admin ${om_widget_libelle} = Set Variable TEST045WIDGETALERTEPARQUET &{args_om_widget} = Create Dictionary ... libelle=${om_widget_libelle} ... type=file - le contenu du widget provient d'un script sur le serveur ... script=dossier_contentieux_alerte_parquet ... arguments=dossier_encours=false ${om_widget} = Ajouter le widget depuis l'URL ${args_om_widget} Set Suite Variable ${om_widget} &{args_om_dashboard} = Create Dictionary ... om_widget=${om_widget_libelle} ... om_profil=JURISTE ... bloc=C1 ... position=1 ${om_dashboard} = Ajouter le widget au tableau de bord du profil depuis l'URL ${args_om_dashboard} Set Suite Variable ${om_dashboard} Depuis la page d'accueil juriste juriste Element Should Contain css=.widget_dossier_contentieux_alerte_parquet ${di_inf} # On vérifie que l'infraction est affichée dans le widget Depuis la page d'accueil tech tech Element Should Contain css=.widget_dossier_contentieux_alerte_parquet ${di_inf} # Clôture le dossier est vérifie que l'infraction n'est plus affichée dans # le widget Ajouter une instruction au DI ${di_inf} accepter un dossier sans réserve null infraction Go To Dashboard via Link Element Should Not Contain css=.widget_dossier_contentieux_alerte_parquet ${di_inf} # On vérifie que l'infraction est toujours affichée pour le juriste Depuis la page d'accueil juriste juriste Element Should Contain css=.widget_dossier_contentieux_alerte_parquet ${di_inf} # Test l'affichage du widget avec un nombre plutôt qu'une liste Depuis la page d'accueil admin admin &{args_om_widget} = Create Dictionary ... arguments=dossier_encours=false\naffichage=nombre Modifier le widget ${om_widget_libelle} ${args_om_widget} Depuis la page d'accueil juriste juriste Element Should Contain css=.widget_dossier_contentieux_alerte_parquet span.bg-info 1 Depuis la page d'accueil admin admin &{args_om_widget} = Create Dictionary ... arguments=dossier_encours=false Modifier le widget ${om_widget_libelle} ${args_om_widget} # On supprime l'instruction afin que l'infraction soit toujours en cours Depuis la page d'accueil admin admin Supprimer l'instruction ${di_inf} accepter un dossier sans réserve infraction Depuis la page d'accueil tech tech Element Should Contain css=.widget_dossier_contentieux_alerte_parquet ${di_inf} # On saisit la date de transmission au parquet Depuis la page d'accueil juriste juriste Ajouter une instruction au DI ${di_inf} Transmission au Parquet null infraction Go To Dashboard via Link Element Should Not Contain css=.widget_dossier_contentieux_alerte_parquet ${di_inf} # On vérifie que l'infraction n'est plus affichée dans le widget Depuis la page d'accueil tech tech Element Should Not Contain css=.widget_dossier_contentieux_alerte_parquet ${di_inf} Reset Params - Widget "Alerte parquet" [Documentation] On supprime les modifications effectuées sur le profil Depuis la page d'accueil admin admin Supprimer le tableau de bord depuis l'URL par l'identifiant ${om_dashboard} Supprimer le widget depuis l'URL par l'identifiant ${om_widget} Widget "Alerte visite" [Documentation] Permet de vérifier le fonctionnement du widget 'Alerte ... visite'. Ce widget doit afficher les 5 infractions en cours ... d'instruction, les plus anciennes pour lesquelles la date de réception ... est dépassée depuis plus de 3 mois et pour lesquelles la date de ... première visite est nulle. # On ajoute une infraction dont la date de réception est dépassée de 4 mois ${date_di_inf_db} = Subtract Time From Date ${DATE_FORMAT_YYYY-MM-DD} 120 days result_format=%Y-%m-%d ${date_di_inf_form} = Convert Date ${date_di_inf_db} result_format=%d/%m/%Y &{args_contrevenant} = Create Dictionary ... particulier_nom=Raymond ... particulier_prenom=Bertrand ... om_collectivite=MARSEILLE &{args_plaignant} = Create Dictionary ... particulier_nom=Bonsaint ... particulier_prenom=Philippe ... om_collectivite=MARSEILLE &{args_autres_demandeurs} = Create Dictionary ... contrevenant_principal=${args_contrevenant} ... plaignant_principal=${args_plaignant} &{args_demande} = Create Dictionary ... dossier_autorisation_type_detaille=Infraction ... date_demande=${date_di_inf_form} ... demande_type=Dépôt Initial IN ... om_collectivite=MARSEILLE ${di_inf} = Ajouter la demande par WS ${args_demande} ${NULL} ${args_autres_demandeurs} # Ajout d'un widget de test dont l'argument 'dossier_encours' aura la valeur # 'false', sur le profil du juriste afin de vérifier l'affichage des # infractions clôturées Depuis la page d'accueil admin admin ${om_widget_libelle} = Set Variable TEST045WIDGETALERTEVISITE &{args_om_widget} = Create Dictionary ... libelle=${om_widget_libelle} ... type=file - le contenu du widget provient d'un script sur le serveur ... script=dossier_contentieux_alerte_visite ... arguments=dossier_encours=false ${om_widget} = Ajouter le widget depuis l'URL ${args_om_widget} Set Suite Variable ${om_widget} &{args_om_dashboard} = Create Dictionary ... om_widget=${om_widget_libelle} ... om_profil=JURISTE ... bloc=C1 ... position=1 ${om_dashboard} = Ajouter le widget au tableau de bord du profil depuis l'URL ${args_om_dashboard} Set Suite Variable ${om_dashboard} Depuis la page d'accueil juriste juriste Element Should Contain css=.widget_dossier_contentieux_alerte_visite ${di_inf} # On vérifie que l'infraction est affichée dans le widget Depuis la page d'accueil tech tech Element Should Contain css=.widget_dossier_contentieux_alerte_visite ${di_inf} # Clôture le dossier est vérifie que l'infraction n'est plus affichée dans # le widget Ajouter une instruction au DI ${di_inf} accepter un dossier sans réserve null infraction Go To Dashboard via Link Element Should Not Contain css=.widget_dossier_contentieux_alerte_visite ${di_inf} # On vérifie que l'infraction est toujours affichée pour le juriste Depuis la page d'accueil juriste juriste Element Should Contain css=.widget_dossier_contentieux_alerte_visite ${di_inf} # On supprime l'instruction afin que l'infraction soit toujours en cours Depuis la page d'accueil admin admin Supprimer l'instruction ${di_inf} accepter un dossier sans réserve infraction Depuis la page d'accueil tech tech Element Should Contain css=.widget_dossier_contentieux_alerte_visite ${di_inf} # Test l'affichage du widget avec un nombre plutôt qu'une liste Depuis la page d'accueil admin admin &{args_om_widget} = Create Dictionary ... arguments=dossier_encours=false\naffichage=nombre Modifier le widget ${om_widget_libelle} ${args_om_widget} Depuis la page d'accueil juriste juriste Element Should Contain css=.widget_dossier_contentieux_alerte_visite span.bg-info 2 Depuis la page d'accueil admin admin &{args_om_widget} = Create Dictionary ... arguments=dossier_encours=false Modifier le widget ${om_widget_libelle} ${args_om_widget} # On saisit la date de transmission au parquet Depuis la page d'accueil juriste juriste Ajouter une instruction au DI ${di_inf} Première visite null infraction Go To Dashboard via Link Element Should Not Contain css=.widget_dossier_contentieux_alerte_visite ${di_inf} # On supprime l'instruction pour que l'infraction soit à nouveau en cours # On vérifie que l'infraction n'est plus affichée dans le widget Depuis la page d'accueil tech tech Element Should Not Contain css=.widget_dossier_contentieux_alerte_visite ${di_inf} Reset Params - Widget "Alerte visite" [Documentation] Vidage des paramètres, on supprime les modifications effectuées sur le profil. Depuis la page d'accueil admin admin Supprimer le tableau de bord depuis l'URL par l'identifiant ${om_dashboard} Supprimer le widget depuis l'URL par l'identifiant ${om_widget} Widget "Les infractions non affectées" [Documentation] Permet de vérifier le fonctionnement du widget 'Les ... infractions non affectées'. Ce widget doit afficher les 5 infractions ... en cours les plus anciennes pour lesquelles il n'y a pas de technicien ... affecté. # On ajoute une infraction &{args_contrevenant} = Create Dictionary ... particulier_nom=Flamand ... particulier_prenom=Benjamin ... om_collectivite=MARSEILLE &{args_plaignant} = Create Dictionary ... particulier_nom=Pouliotte ... particulier_prenom=Clementine ... om_collectivite=MARSEILLE &{args_autres_demandeurs} = Create Dictionary ... contrevenant_principal=${args_contrevenant} ... plaignant_principal=${args_plaignant} &{args_demande} = Create Dictionary ... dossier_autorisation_type_detaille=Infraction ... demande_type=Dépôt Initial IN ... om_collectivite=MARSEILLE ${di_inf} = Ajouter la demande par WS ${args_demande} ${NULL} ${args_autres_demandeurs} # On vérifie que l'infraction n'est pas affichée dans le widget Depuis la page d'accueil assist assist Element Should Not Contain css=.widget_dossier_contentieux_inaffectes ${di_inf} # On supprime l'affectation automatique du technicien sur les infractions Depuis la page d'accueil admin admin Supprimer l'affectation depuis le menu null Infraction # On ajoute une infraction sans affectation automatique &{args_contrevenant} = Create Dictionary ... particulier_nom=Lagueux ... particulier_prenom=Anne ... om_collectivite=MARSEILLE &{args_plaignant} = Create Dictionary ... particulier_nom=Hachée ... particulier_prenom=Diane ... om_collectivite=MARSEILLE &{args_autres_demandeurs} = Create Dictionary ... contrevenant_principal=${args_contrevenant} ... plaignant_principal=${args_plaignant} &{args_demande} = Create Dictionary ... dossier_autorisation_type_detaille=Infraction ... demande_type=Dépôt Initial IN ... om_collectivite=MARSEILLE ${args_peti} = Create Dictionary ${di_inf} = Ajouter la demande par WS ${args_demande} ${args_peti} ${args_autres_demandeurs} # On vérifie que l'infraction est affichée dans le widget Depuis la page d'accueil assist assist Element Should Contain css=.widget_dossier_contentieux_inaffectes ${di_inf} # Clôture le dossier et vérifie que l'infraction n'est plus affichée dans # le widget Ajouter une instruction au DI ${di_inf} accepter un dossier sans réserve null infraction Go To Dashboard via Link Element Should Not Contain css=.widget_dossier_contentieux_inaffectes ${di_inf} ## Vérification de l'argument dossier_encours Depuis la page d'accueil admin admin &{args_om_widget} = Create Dictionary ... arguments=filtre=aucun\ndossier_encours=false Modifier le widget dossier_contentieux_inaffectes ${args_om_widget} # On vérifie que l'infraction est de nouveau affichée affichée Depuis la page d'accueil assist assist Element Should Contain css=.widget_dossier_contentieux_inaffectes ${di_inf} # On supprime l'instruction afin que l'infraction soit toujours en cours Depuis la page d'accueil admin admin Supprimer l'instruction ${di_inf} accepter un dossier sans réserve infraction Depuis la page d'accueil assist assist Element Should Contain css=.widget_dossier_contentieux_inaffectes ${di_inf} # On ajoute explicitement l'argument Depuis la page d'accueil admin admin &{args_om_widget} = Create Dictionary ... arguments=filtre=aucun\ndossier_encours=true Modifier le widget dossier_contentieux_inaffectes ${args_om_widget} Depuis la page d'accueil assist assist Element Should Contain css=.widget_dossier_contentieux_inaffectes ${di_inf} # Test l'affichage du widget avec un nombre plutôt qu'une liste Depuis la page d'accueil admin admin &{args_om_widget} = Create Dictionary ... arguments=filtre=aucun\ndossier_encours=true\naffichage=nombre Modifier le widget dossier_contentieux_inaffectes ${args_om_widget} Depuis la page d'accueil assist assist Element Should Contain css=.widget_dossier_contentieux_inaffectes span.bg-info 1 Reset Params - Widget "Les infractions non affectées" [Documentation] On remet en place l'affectation automatique du technicien et le widget Depuis la page d'accueil admin admin &{args_affectation} = Create Dictionary ... instructeur=Juriste (H) ... instructeur_2=Technicien (H) ... om_collectivite=MARSEILLE ... dossier_autorisation_type_detaille=IN - Infraction Ajouter l'affectation depuis le menu ${args_affectation} &{args_om_widget} = Create Dictionary ... arguments=filtre=aucun Modifier le widget dossier_contentieux_inaffectes ${args_om_widget} Widget "Mes clôtures" [Documentation] Permet de vérifier le fonctionnement du widget 'Mes ... clôtures'. Ce widget doit afficher les 5 recours les plus proches ... pour lesquels une date de clôture d'instruction existe, est comprise ... entre le jour courant et un mois dans le futur et pour lesquels ... l'utilisateur connecté est positionné en juriste. # On ajoute une autorisation à contester &{args_petitionnaire} = Create Dictionary ... particulier_nom=Charlebois ... particulier_prenom=Agate ... om_collectivite=MARSEILLE &{args_demande} = Create Dictionary ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes ... demande_type=Dépôt Initial ... om_collectivite=MARSEILLE ${di_conteste} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} # On ajoute un recours ${date_di_re_db} = Add Time To Date ${DATE_FORMAT_YYYY-MM-DD} 10 days result_format=%Y-%m-%d ${date_di_re_form} = Convert Date ${date_di_re_db} result_format=%d/%m/%Y &{args_requerant} = Create Dictionary ... particulier_nom=Henrichon ... particulier_prenom=Aurore ... om_collectivite=MARSEILLE &{args_autres_demandeurs} = Create Dictionary ... requerant_principal=${args_requerant} &{args_demande} = Create Dictionary ... dossier_autorisation_type_detaille=Recours gracieux ... demande_type=Dépôt Initial REG ... autorisation_contestee=${di_conteste} ... om_collectivite=MARSEILLE ${di_re} = Ajouter la demande par WS ${args_demande} ${NULL} ${args_autres_demandeurs} # On vérifie que le recours n'est pas affiché dans le widget Depuis la page d'accueil juriste juriste Element Should Not Contain css=.widget_dossier_contentieux_clotures ${di_re} # On saisit la date de clôture du recours Ajouter une instruction au DI ${di_re} Clôture de l'instruction ${date_di_re_form} recours # On vérifie que le recours est affiché dans le widget Go To Dashboard via Link Element Should Contain css=.widget_dossier_contentieux_clotures ${di_re} # Test l'affichage du widget avec un nombre plutôt qu'une liste Depuis la page d'accueil admin admin &{args_om_widget} = Create Dictionary ... arguments=affichage=nombre Modifier le widget dossier_contentieux_clotures ${args_om_widget} Depuis la page d'accueil juriste juriste Element Should Contain css=.widget_dossier_contentieux_clotures span.bg-info 1 # Test le fonctionnement du bouton voir+ Clique sur le bouton Voir + dossier_contentieux_clotures La page ne doit pas contenir d'erreur # Verifie que le DI est bien dans le tableau Wait Until Element Contains css=.tab-tab ${di_re} Reset Params - Widget "Mes clôtures" [Documentation] Vidage des parametres du widget dossier_contentieux_clotures. Depuis la page d'accueil admin admin &{args_om_widget} = Create Dictionary ... arguments=${EMPTY} Modifier le widget dossier_contentieux_clotures ${args_om_widget} Widget "Les audiences" [Documentation] Permet de vérifier le fonctionnement du widget 'Les ... audiences'. Ce widget doit afficher les 5 infractions dont la date ... d'audience est la plus proche, pour lesquelles la date d'audience est ... comprise entre le jour courant et un mois dans le futur. # On ajoute une infraction ${date_di_inf_db} = Add Time To Date ${DATE_FORMAT_YYYY-MM-DD} 10 days result_format=%Y-%m-%d ${date_di_inf_form} = Convert Date ${date_di_inf_db} result_format=%d/%m/%Y &{args_contrevenant} = Create Dictionary ... particulier_nom=Courtois ... particulier_prenom=Christine ... om_collectivite=MARSEILLE &{args_plaignant} = Create Dictionary ... particulier_nom=Blais ... particulier_prenom=Eugenia ... om_collectivite=MARSEILLE &{args_autres_demandeurs} = Create Dictionary ... contrevenant_principal=${args_contrevenant} ... plaignant_principal=${args_plaignant} &{args_demande} = Create Dictionary ... dossier_autorisation_type_detaille=Infraction ... om_collectivite=MARSEILLE ... demande_type=Dépôt Initial IN ${di_inf} = Ajouter la demande par WS ${args_demande} ${NULL} ${args_autres_demandeurs} # On vérifie que l'infraction n'est pas affichée dans le widget Depuis la page d'accueil juriste juriste Element Should Not Contain css=.widget_dossier_contentieux_audience ${di_inf} # On saisit la date d'audience dans les données techniques &{donnees_techniques_values} = Create Dictionary ... ctx_date_audience=${date_di_inf_form} Saisir les données techniques du dossier infraction ${di_inf} ${donnees_techniques_values} # On vérifie que l'infraction est affichée dans le widget Click Element css=.ui-icon-closethick Go To Dashboard via Link Element Should Contain css=.widget_dossier_contentieux_audience ${di_inf} # Test l'affichage du widget avec un nombre plutôt qu'une liste Depuis la page d'accueil admin admin &{args_om_widget} = Create Dictionary ... arguments=affichage=nombre Modifier le widget dossier_contentieux_audience ${args_om_widget} Depuis la page d'accueil juriste juriste Element Should Contain css=.widget_dossier_contentieux_audience span.bg-info 1 Reset Params - Widget "Les audiences" [Documentation] Vidage des parametres du widget dossier_contentieux_audience. Depuis la page d'accueil admin admin &{args_om_widget} = Create Dictionary ... arguments=${EMPTY} Modifier le widget dossier_contentieux_audience ${args_om_widget} Widget "Mes AIT" et "Les AIT" [Documentation] Permet de vérifier le fonctionnement du widget 'Mes AIT' et ... du widget "Les AIT". Ces widgets doivent afficher les 5 infractions les ... plus récentes pour lesquelles il y a un AIT signé, dans le cas du ... widget 'Mes AIT', cela ne concerne que le juriste connecté. ## ## Widget 'Mes AIT' ## # On ajoute une infraction Depuis la page d'accueil assist assist # &{args_contrevenant} = Create Dictionary ... particulier_nom=Champagne ... particulier_prenom=Felicienne ... om_collectivite=MARSEILLE &{args_plaignant} = Create Dictionary ... particulier_nom=Blais ... particulier_prenom=Eugenia ... om_collectivite=MARSEILLE &{args_autres_demandeurs} = Create Dictionary ... contrevenant_principal=${args_contrevenant} ... plaignant_principal=${args_plaignant} &{args_demande} = Create Dictionary ... dossier_autorisation_type_detaille=Infraction ... om_collectivite=MARSEILLE ... demande_type=Dépôt Initial IN ${di_inf} = Ajouter la demande par WS ${args_demande} ${NULL} ${args_autres_demandeurs} # On vérifie que l'infraction n'est pas affichée dans le widget Go To Dashboard via Link Element Should Not Contain css=.widget_dossier_contentieux_ait ${di_inf} Depuis la page d'accueil juriste juriste Element Should Not Contain css=.widget_dossier_contentieux_ait ${di_inf} # On saisit la date d'audience d'ait et on renseigne sa date de retour # signature Ajouter une instruction au DI et la finaliser ${di_inf} Arrêté interruptif des travaux false null infraction &{args_instruction} = Create Dictionary ... date_retour_signature=${DATE_FORMAT_DD/MM/YYYY} Modifier le suivi des dates ${di_inf} Arrêté interruptif des travaux ${args_instruction} infraction # On vérifie que l'infraction est affichée dans le widget Go To Dashboard via Link Element Should Contain css=.widget_dossier_contentieux_ait ${di_inf} Depuis la page d'accueil assist assist Element Should Contain css=.widget_dossier_contentieux_ait ${di_inf} ## ## Widget 'Les AIT' ## # On supprime l'affectation automatique du technicien sur les infractions Depuis la page d'accueil admin admin Supprimer l'affectation depuis le menu null Infraction # On ajoute une infraction non affectée Depuis la page d'accueil assist assist # &{args_contrevenant} = Create Dictionary ... particulier_nom=Talon ... particulier_prenom=Petrie ... om_collectivite=MARSEILLE &{args_plaignant} = Create Dictionary ... particulier_nom=Baril ... particulier_prenom=Martin ... om_collectivite=MARSEILLE &{args_autres_demandeurs} = Create Dictionary ... contrevenant_principal=${args_contrevenant} ... plaignant_principal=${args_plaignant} &{args_demande} = Create Dictionary ... dossier_autorisation_type_detaille=Infraction ... demande_type=Dépôt Initial IN ... om_collectivite=MARSEILLE ${args_peti} = Create Dictionary ${di_inf_2} = Ajouter la demande par WS ${args_demande} ${args_peti} ${args_autres_demandeurs} # On vérifie que l'infraction n'est pas affichée dans le widget Go To Dashboard via Link Element Should Not Contain css=.widget_dossier_contentieux_ait ${di_inf_2} Depuis la page d'accueil juriste juriste Element Should Not Contain css=.widget_dossier_contentieux_ait ${di_inf_2} # On saisit la date d'ait et on renseigne sa date de retour signature Depuis la page d'accueil admin admin Ajouter une instruction au DI et la finaliser ${di_inf_2} Arrêté interruptif des travaux false null infraction &{args_instruction} = Create Dictionary ... date_retour_signature=${DATE_FORMAT_DD/MM/YYYY} Modifier le suivi des dates ${di_inf_2} Arrêté interruptif des travaux ${args_instruction} infraction # On vérifie que l'infraction est affichée dans le widget Depuis la page d'accueil assist assist Element Should Contain css=.widget_dossier_contentieux_ait ${di_inf_2} Depuis la page d'accueil juriste juriste Element Should Not Contain css=.widget_dossier_contentieux_ait ${di_inf_2} #Test l'affichage du widget avec un nombre plutôt qu'une liste Depuis la page d'accueil admin admin &{args_om_widget} = Create Dictionary ... arguments=filtre=aucun\naffichage=nombre Modifier le widget dossier_contentieux_ait ${args_om_widget} Depuis la page d'accueil assist assist Element Should Contain css=.widget_dossier_contentieux_ait span.bg-info 2 Depuis la page d'accueil admin admin &{args_om_widget} = Create Dictionary ... arguments=filtre=aucun Modifier le widget dossier_contentieux_ait ${args_om_widget} # On ajoute l'affectation automatique du technicien Depuis la page d'accueil admin admin &{args_affectation} = Create Dictionary ... instructeur=Juriste (H) ... instructeur_2=Technicien (H) ... om_collectivite=MARSEILLE ... dossier_autorisation_type_detaille=IN - Infraction Ajouter l'affectation depuis le menu ${args_affectation} Widget "Mes contradictoires" et "Les contradictoires" [Documentation] Permet de vérifier le fonctionnement du widget 'Mes ... contradictoires' et du widget "Les contradictoires". Ces widgets ... doivent afficher les 5 infractions les plus anciennes pour lesquelles ... la date de contradictoire est supérieure ou égale à la date du jour + 3 ... semaines OU la date de retour du contradictoire est vide, pour ... lesquelles il n'y a pas d'événements de type 'Annlation de ... contradictoire' et pour lesquelles il n'y a pas d'AIT créé. Dans le cas ... du widget 'Mes contradictoires', cela ne concerne que le juriste ... connecté. ## ## Cas n°1 : infraction dont la date de contradictoire est supérieure ou ## égale à la date du jour + 3 semaines, la date retour de contradictoire ## est saisie, sans événements de type 'Annlation de contradictoire' et sans ## AIT ## # On ajoute une infraction Depuis la page d'accueil assist assist # ${date_di_inf_db} = Add Time To Date ${DATE_FORMAT_YYYY-MM-DD} 28 days result_format=%Y-%m-%d ${date_di_inf_form} = Convert Date ${date_di_inf_db} result_format=%d/%m/%Y &{args_contrevenant} = Create Dictionary ... particulier_nom=Archambault ... particulier_prenom=Corette ... om_collectivite=MARSEILLE &{args_plaignant} = Create Dictionary ... particulier_nom=Cantin ... particulier_prenom=Joanna ... om_collectivite=MARSEILLE &{args_autres_demandeurs} = Create Dictionary ... contrevenant_principal=${args_contrevenant} ... plaignant_principal=${args_plaignant} &{args_demande} = Create Dictionary ... dossier_autorisation_type_detaille=Infraction ... demande_type=Dépôt Initial IN ... om_collectivite=MARSEILLE ${di_inf_1} = Ajouter la demande par WS ${args_demande} ${NULL} ${args_autres_demandeurs} # On vérifie que l'infraction n'est pas affichée dans les widgets Go To Dashboard via Link Element Should Not Contain css=.widget_dossier_contentieux_contradictoire ${di_inf_1} Depuis la page d'accueil juriste juriste Element Should Not Contain css=.widget_dossier_contentieux_contradictoire ${di_inf_1} # On saisit une date de contradictoire et une date de retour de # contradictoire Ajouter une instruction au DI ${di_inf_1} Date contradictoire ${date_di_inf_form} infraction Ajouter une instruction au DI ${di_inf_1} Retour du contradictoire null infraction # On vérifie que l'infraction est affichée dans les widgets Go To Dashboard via Link Element Should Contain css=.widget_dossier_contentieux_contradictoire ${di_inf_1} Depuis la page d'accueil assist assist Element Should Contain css=.widget_dossier_contentieux_contradictoire ${di_inf_1} ## ## Cas n°2 : infraction dont la date de contradictoire n'est pas supérieure ## ou égale à la date du jour + 3 semaines, la date de retour du ## contradictoire n'est pas saisie, sans événements de type 'Annlation de ## contradictoire' et sans AIT ## # &{args_contrevenant} = Create Dictionary ... particulier_nom=Desnoyer ... particulier_prenom=Etoile ... om_collectivite=MARSEILLE &{args_plaignant} = Create Dictionary ... particulier_nom=Meunier ... particulier_prenom=Eglantine ... om_collectivite=MARSEILLE &{args_autres_demandeurs} = Create Dictionary ... contrevenant_principal=${args_contrevenant} ... plaignant_principal=${args_plaignant} &{args_demande} = Create Dictionary ... dossier_autorisation_type_detaille=Infraction ... demande_type=Dépôt Initial IN ... om_collectivite=MARSEILLE ${args_peti} = Create Dictionary ${di_inf_2} = Ajouter la demande par WS ${args_demande} ${args_peti} ${args_autres_demandeurs} # On vérifie que l'infraction n'est pas affichée dans les widgets Go To Dashboard via Link Element Should Not Contain css=.widget_dossier_contentieux_contradictoire ${di_inf_2} Depuis la page d'accueil juriste juriste Element Should Not Contain css=.widget_dossier_contentieux_contradictoire ${di_inf_2} # On saisit une date de contradictoire Ajouter une instruction au DI ${di_inf_2} Date contradictoire null infraction # On vérifie que l'infraction est affichée dans les widgets Go To Dashboard via Link Element Should Contain css=.widget_dossier_contentieux_contradictoire ${di_inf_2} Depuis la page d'accueil assist assist Element Should Contain css=.widget_dossier_contentieux_contradictoire ${di_inf_2} # Test l'affichage du widget avec un nombre plutôt qu'une liste Depuis la page d'accueil admin admin &{args_om_widget} = Create Dictionary ... arguments=filtre=aucun\naffichage=nombre Modifier le widget dossier_contentieux_contradictoire ${args_om_widget} Depuis la page d'accueil assist assist Element Should Contain css=.widget_dossier_contentieux_contradictoire span.bg-info 2 Depuis la page d'accueil admin admin &{args_om_widget} = Create Dictionary ... arguments=filtre=aucun Modifier le widget dossier_contentieux_contradictoire ${args_om_widget} ## ## Cas n°3 : infraction du cas n°1 avec un événement de type 'Annlation de ## contradictoire' ## # On saisit une date de contradictoire Depuis la page d'accueil juriste juriste Ajouter une instruction au DI ${di_inf_1} Annulation de contradictoire null infraction # On vérifie que l'infraction n'est plus affichée dans les widgets Go To Dashboard via Link Element Should Not Contain css=.widget_dossier_contentieux_contradictoire ${di_inf_1} Depuis la page d'accueil assist assist Element Should Not Contain css=.widget_dossier_contentieux_contradictoire ${di_inf_1} ## ## Cas n°4 : infraction du cas n°2 avec un AIT créé ## # On saisit une date de contradictoire Depuis la page d'accueil juriste juriste Ajouter une instruction au DI ${di_inf_2} Arrêté interruptif des travaux null infraction # On vérifie que l'infraction n'est plus affichée dans les widgets Go To Dashboard via Link Element Should Not Contain css=.widget_dossier_contentieux_contradictoire ${di_inf_2} Depuis la page d'accueil assist assist Element Should Not Contain css=.widget_dossier_contentieux_contradictoire ${di_inf_2} Widget "Mes Recours" et "Mes Infractions" [Documentation] Ces widget affiche les derniers Dossiers recours ou infraction. # Constitution du jeu de données Depuis la page d'accueil admin admin # On recupere les dossiers à creer en JSON ${json} = Get File binary_files/dossier_widget_contentieux_test.json # On parse le json pour avoir une liste de dossiers ${dossier_list}= Evaluate json.loads('''${json}''') json # Création du juriste et du tech &{args_affectation_inf} = Create Dictionary ... instructeur=Félicien Roland (H) ... instructeur_2=Sylvain Camille (H) ... om_collectivite=MARSEILLE ... dossier_autorisation_type_detaille=IN - Infraction &{args_affectation_rec} = Create Dictionary ... instructeur=Félicien Roland (H) ... om_collectivite=MARSEILLE ... dossier_autorisation_type_detaille=REC - Recours contentieux Ajouter l'utilisateur depuis le menu Félicien Roland support@atreal.fr juriste2 juriste2 JURISTE MARSEILLE Ajouter l'instructeur depuis le menu Félicien Roland subdivision H juriste Félicien Roland Ajouter l'utilisateur depuis le menu Sylvain Camille support@atreal.fr tech2 tech2 TECHNICIEN MARSEILLE Ajouter l'instructeur depuis le menu Sylvain Camille subdivision H technicien Sylvain Camille Supprimer l'affectation depuis le menu null Infraction Supprimer l'affectation depuis le menu null Recours contentieux Ajouter l'affectation depuis le menu ${args_affectation_inf} Ajouter l'affectation depuis le menu ${args_affectation_rec} # Initialisation du compteur de di ${di_id} = Set Variable 0 :FOR ${dossier} IN @{dossier_list["infraction"]} # Incrementation de l'identifient de di \ ${di_id} = Evaluate ${di_id}+1 \ &{args_demandeur} = Create Dictionary \ ... particulier_prenom=${dossier["args_petitionnaire"]["particulier_prenom"]} \ ... particulier_nom=${dossier["args_petitionnaire"]["particulier_nom"]} \ ... om_collectivite=MARSEILLE \ &{args_petitionnaire} = Create Dictionary \ ... contrevenant_principal=&{args_demandeur} \ &{args_demande} = Create Dictionary \ ... dossier_autorisation_type_detaille=${dossier["args_demande"]["dossier_autorisation_type_detaille"]} \ ... demande_type=${dossier["args_demande"]["demande_type"]} \ ... date_demande=${dossier["args_demande"]["date_demande"]} \ ... om_collectivite=MARSEILLE \ ${di} = Ajouter la demande par WS ${args_demande} ${NULL} ${args_petitionnaire} # Concatenation du nom de di_ et du numero de di \ Set Test Variable ${di_inf_${di_id}} ${di} \ Set Suite Variable ${di_inf_${di_id}} # Initialisation du compteur de di ${di_id} = Set Variable 0 :FOR ${dossier} IN @{dossier_list["recours"]} # Incrementation de l'identifient de di \ ${di_id} = Evaluate ${di_id}+1 \ &{args_petitionnaire} = Create Dictionary \ ... particulier_prenom=${dossier["args_petitionnaire"]["particulier_prenom"]} \ ... particulier_nom=${dossier["args_petitionnaire"]["particulier_nom"]} \ ... om_collectivite=MARSEILLE \ &{args_demande} = Create Dictionary \ ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes \ ... demande_type=Dépôt Initial \ ... om_collectivite=MARSEILLE \ ${di} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} \ &{args_demande} = Create Dictionary \ ... dossier_autorisation_type_detaille=${dossier["args_demande"]["dossier_autorisation_type_detaille"]} \ ... demande_type=${dossier["args_demande"]["demande_type"]} \ ... date_demande=${dossier["args_demande"]["date_demande"]} \ ... autorisation_contestee=${di} \ ... om_collectivite=MARSEILLE \ ${di_rec} = Ajouter la demande par WS ${args_demande} ${NULL} # Concatenation du nom de di_ et du numero de di \ Set Test Variable ${di_rec_${di_id}} ${di_rec} \ Set Suite Variable ${di_rec_${di_id}} \ Set Test Variable ${di_${di_id}} ${di} \ Set Suite Variable ${di_${di_id}} # Vérification des accés du juriste (accés au infraction et pas au recours) Depuis la page d'accueil juriste2 juriste2 # On vérifie l'absence du dossier trop vieux Element Should Not Contain css=#dashboard div.widget_dossier_contentieux_infraction ${di_inf_1} # On vérifi la presence des autres Element Should Contain css=#dashboard div.widget_dossier_contentieux_infraction ${di_inf_2} Element Should Contain css=#dashboard div.widget_dossier_contentieux_infraction ${di_inf_3} Element Should Contain css=#dashboard div.widget_dossier_contentieux_infraction ${di_inf_4} Element Should Contain css=#dashboard div.widget_dossier_contentieux_infraction ${di_inf_5} Element Should Contain css=#dashboard div.widget_dossier_contentieux_infraction ${di_inf_6} # On verifie l'ingrité des raccourci Click Link ${di_inf_6} Le titre de la page doit être Contentieux > Infraction > ${di_inf_6} Go Back # On verifie le voir + Wait Until Element Is Visible css=.widget_dossier_contentieux_infraction .widget-footer a Click Element css=.widget_dossier_contentieux_infraction .widget-footer a Le titre de la page doit être Contentieux > Infractions Element Should Contain css=.tab-tab ${di_inf_1} Element Should Contain css=.tab-tab ${di_inf_2} Element Should Contain css=.tab-tab ${di_inf_3} Element Should Contain css=.tab-tab ${di_inf_4} Element Should Contain css=.tab-tab ${di_inf_5} Element Should Contain css=.tab-tab ${di_inf_6} Go Back # On vérifie l'absence du dossier trop vieux Element Should Not Contain css=#dashboard div.widget_dossier_contentieux_recours ${di_rec_1} # On vérifi la presence des autres Element Should Contain css=#dashboard div.widget_dossier_contentieux_recours ${di_rec_2} Element Should Contain css=#dashboard div.widget_dossier_contentieux_recours ${di_rec_3} Element Should Contain css=#dashboard div.widget_dossier_contentieux_recours ${di_rec_4} Element Should Contain css=#dashboard div.widget_dossier_contentieux_recours ${di_rec_5} Element Should Contain css=#dashboard div.widget_dossier_contentieux_recours ${di_rec_6} # On verifie l'ingrité des raccourci Click Link ${di_rec_6} Le titre de la page doit être Contentieux > Recours > ${di_rec_6} Go Back # On verifie le voir + Wait Until Element Is Visible css=.widget_dossier_contentieux_recours .widget-footer a Click Element css=.widget_dossier_contentieux_recours .widget-footer a Le titre de la page doit être Contentieux > Recours Element Should Contain css=.tab-tab ${di_rec_1} Element Should Contain css=.tab-tab ${di_rec_2} Element Should Contain css=.tab-tab ${di_rec_3} Element Should Contain css=.tab-tab ${di_rec_4} Element Should Contain css=.tab-tab ${di_rec_5} Element Should Contain css=.tab-tab ${di_rec_6} Depuis la page d'accueil tech2 tech2 # On vérifie l'absence du dossier trop vieux Element Should Not Contain css=#dashboard div.widget_dossier_contentieux_infraction ${di_inf_1} # On vérifi la presence des autres Element Should Contain css=#dashboard div.widget_dossier_contentieux_infraction ${di_inf_2} Element Should Contain css=#dashboard div.widget_dossier_contentieux_infraction ${di_inf_3} Element Should Contain css=#dashboard div.widget_dossier_contentieux_infraction ${di_inf_4} Element Should Contain css=#dashboard div.widget_dossier_contentieux_infraction ${di_inf_5} Element Should Contain css=#dashboard div.widget_dossier_contentieux_infraction ${di_inf_6} # On verifie l'ingrité des raccourci Click Link ${di_inf_6} Le titre de la page doit être Contentieux > Infraction > ${di_inf_6} Go Back # On verifie le voir + Wait Until Element Is Visible css=.widget_dossier_contentieux_infraction .widget-footer a Click Element css=.widget_dossier_contentieux_infraction .widget-footer a Le titre de la page doit être Contentieux > Infractions Element Should Contain css=.tab-tab ${di_inf_1} Element Should Contain css=.tab-tab ${di_inf_2} Element Should Contain css=.tab-tab ${di_inf_3} Element Should Contain css=.tab-tab ${di_inf_4} Element Should Contain css=.tab-tab ${di_inf_5} Element Should Contain css=.tab-tab ${di_inf_6} # On remet les affectations automatique par défaut Depuis la page d'accueil admin admin Supprimer l'affectation depuis le menu null Infraction Supprimer l'affectation depuis le menu null Recours contentieux &{args_affectation_inf} = Create Dictionary ... instructeur=Juriste (H) ... instructeur_2=Technicien (H) ... om_collectivite=MARSEILLE ... dossier_autorisation_type_detaille=IN - Infraction &{args_affectation_rec} = Create Dictionary ... instructeur=Juriste (H) ... om_collectivite=MARSEILLE ... dossier_autorisation_type_detaille=REC - Recours contentieux Ajouter l'affectation depuis le menu ${args_affectation_inf} Ajouter l'affectation depuis le menu ${args_affectation_rec} # # Vérification du filtre sur les infractions en cours d'instruction lorsque # le filtre "instructeur" est activé ou non # &{args_contrevenant} = Create Dictionary ... particulier_nom=Flamand ... particulier_prenom=Benjamin ... om_collectivite=MARSEILLE &{args_plaignant} = Create Dictionary ... particulier_nom=Pouliotte ... particulier_prenom=Clementine ... om_collectivite=MARSEILLE &{args_autres_demandeurs} = Create Dictionary ... contrevenant_principal=${args_contrevenant} ... plaignant_principal=${args_plaignant} &{args_demande} = Create Dictionary ... dossier_autorisation_type_detaille=Infraction ... demande_type=Dépôt Initial IN ... om_collectivite=MARSEILLE ${di_inf} = Ajouter la demande par WS ${args_demande} ${NULL} ${args_autres_demandeurs} # On vérifie que l'infraction en cours apparait bien dans le widget et le # menu "Mes infractions" en tant que "TECHNICIEN" Depuis la page d'accueil tech tech Element Should Contain css=#dashboard div.widget_dossier_contentieux_infraction ${di_inf} Click Element css=.widget_dossier_contentieux_infraction .widget-footer a Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Element Should Contain css=.tab-tab ${di_inf} Go To Submenu dossier_contentieux_mes_infractions Element Should Contain css=.tab-tab ${di_inf} # Test l'affichage du widget avec un nombre plutôt qu'une liste Depuis la page d'accueil admin admin &{args_om_widget} = Create Dictionary ... arguments=affichage=nombre Modifier le widget dossier_contentieux_infraction ${args_om_widget} Depuis la page d'accueil tech tech Page Should Contain Element css=.widget_dossier_contentieux_infraction span.bg-info Depuis la page d'accueil admin admin &{args_om_widget} = Create Dictionary ... arguments= Modifier le widget dossier_contentieux_infraction ${args_om_widget} # Ajout d'un widget de test qui affiche les infractions sans filtre sur le # profil "ASSISTANTE" (qui n'est pas instructeur) Depuis la page d'accueil admin admin ${om_widget_libelle} = Set Variable TEST045WIDGETINFRACTIONS &{args_om_widget} = Create Dictionary ... libelle=${om_widget_libelle} ... type=file - le contenu du widget provient d'un script sur le serveur ... script=dossier_contentieux_infraction ... arguments=filtre=aucun ${om_widget} = Ajouter le widget depuis l'URL ${args_om_widget} Set Suite Variable ${om_widget} &{args_om_dashboard} = Create Dictionary ... om_widget=${om_widget_libelle} ... om_profil=ASSISTANTE ... bloc=C1 ... position=1 ${om_dashboard} = Ajouter le widget au tableau de bord du profil depuis l'URL ${args_om_dashboard} Set Suite Variable ${om_dashboard} # On vérifie que l'infraction en cours apparait bien dans le widget listant # les infractions avec le profil "ASSISTANTE" Depuis la page d'accueil assist assist Element Should Contain css=#dashboard div.widget_dossier_contentieux_infraction ${di_inf} Click Element css=.widget_dossier_contentieux_infraction .widget-footer a Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Element Should Contain css=.tab-tab ${di_inf} # On clôture le'infraction afin que l'instruction ne soit plus en cours # d'instruction Ajouter une instruction au DI ${di_inf} accepter un dossier sans réserve null infraction # Le profil "ASSISTANTE" doit toujours voir l'infraction Go To Dashboard via Link Element Should Contain css=.widget_dossier_contentieux_infraction ${di_inf} Click Element css=.widget_dossier_contentieux_infraction .widget-footer a Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Element Should Contain css=.tab-tab ${di_inf} # Le profil "TECHNICIEN" ne doit plus voir ni l'infraction dans son widget, # ni dans le menu Depuis la page d'accueil tech tech Element Should Not Contain css=#dashboard div.widget_dossier_contentieux_infraction ${di_inf} Go To Submenu dossier_contentieux_mes_infractions Element Should Not Contain css=.tab-tab ${di_inf} Reset Params - Widget "Mes Recours" et "Mes Infractions" [Documentation] On supprime les modifications effectuées sur le profil "ASSISTANTE" Depuis la page d'accueil admin admin Supprimer le tableau de bord depuis l'URL par l'identifiant ${om_dashboard} Supprimer le widget depuis l'URL par l'identifiant ${om_widget} Widget "Retours de Commission" [Documentation] Ce widget indique le nombre de retours de commission non ... lus. &{param_division} = Create Dictionary ... libelle=option_afficher_division ... valeur=true ... om_collectivite=agglo Gerer le paramètre par WS ${param_division} # On enregistre le nom du widget qui sera utilisé dans le tests ${om_widget} = Set Variable commission_retours Set Suite Variable ${om_widget} # On crée une collectivité pour ne pas perturber ni être perturbé par # les autres tests. ${collectivite_a} = Set Variable MÉRIGNAC ${collectivite_b} = Set Variable SAINT-JOSEPH ${direction_a} = Set Variable Direction ME ${direction_b} = Set Variable Direction SJ ${direction_code_a} = Set Variable ME ${direction_code_b} = Set Variable SJ ${div_a1} = Set Variable subdivision ME1 ${div_code_a1} = Set Variable ME1 ${div_a2} = Set Variable subdivision ME2 ${div_code_a2} = Set Variable ME2 ${div_b} = Set Variable subdivision SJ ${div_code_b} = Set Variable SJ # ${utilisateur_nom_01} = Set Variable Arnolda Calis ${utilisateur_login_01} = Set Variable acalis ${utilisateur_nom_02} = Set Variable Bekhan Panova ${utilisateur_login_02} = Set Variable bpanova ${utilisateur_nom_03} = Set Variable Jolina Toral ${utilisateur_login_03} = Set Variable jtoral ${utilisateur_nom_04} = Set Variable Felix Simonsen ${utilisateur_login_04} = Set Variable fsimonsen ${instructeur_secondaire_login} = Set Variable instructeur_secondaire_rc # Depuis la page d'accueil admin admin # Ajouter la collectivité depuis le menu ${collectivite_a} mono Ajouter la collectivité depuis le menu ${collectivite_b} mono # Ajouter l'utilisateur ${utilisateur_nom_01} nospam@openmairie.org ${utilisateur_login_01} ${utilisateur_login_01} INSTRUCTEUR ${collectivite_a} Ajouter l'utilisateur ${utilisateur_nom_02} nospam@openmairie.org ${utilisateur_login_02} ${utilisateur_login_02} INSTRUCTEUR ${collectivite_a} Ajouter l'utilisateur ${utilisateur_nom_03} nospam@openmairie.org ${utilisateur_login_03} ${utilisateur_login_03} INSTRUCTEUR ${collectivite_a} Ajouter l'utilisateur ${utilisateur_nom_04} nospam@openmairie.org ${utilisateur_login_04} ${utilisateur_login_04} INSTRUCTEUR ${collectivite_b} Ajouter l'utilisateur ${instructeur_secondaire_login} nospam@openmairie.org ${instructeur_secondaire_login} ${instructeur_secondaire_login} INSTRUCTEUR ${collectivite_a} # Ajouter la direction depuis le menu ${direction_code_a} ${direction_a} ... null Chef A null null ${collectivite_a} Ajouter la direction depuis le menu ${direction_code_b} ${direction_b} ... null Chef B null null ${collectivite_b} # Ajouter la division depuis le menu ${div_code_a1} ${div_a1} null ... Chef A null null ${direction_a} Ajouter la division depuis le menu ${div_code_a2} ${div_a2} null ... Chef A null null ${direction_a} Ajouter la division depuis le menu ${div_code_b} ${div_b} null ... Chef B null null ${direction_b} # # Ajouter l'instructeur depuis le menu ${utilisateur_nom_01} ${div_a1} ... instructeur ${utilisateur_nom_01} Ajouter l'instructeur depuis le menu ${utilisateur_nom_02} ${div_a2} ... instructeur ${utilisateur_nom_02} Ajouter l'instructeur depuis le menu ${utilisateur_nom_03} ${div_a1} ... instructeur ${utilisateur_nom_03} Ajouter l'instructeur depuis le menu ${utilisateur_nom_04} ${div_b} ... instructeur ${utilisateur_nom_04} Ajouter l'instructeur depuis le menu ${instructeur_secondaire_login} ${div_a1} ... instructeur ${instructeur_secondaire_login} # &{args_affectation} = Create Dictionary ... instructeur=${utilisateur_nom_01} (${div_code_a1}) ... instructeur_2=${instructeur_secondaire_login} (${div_code_a1}) ... om_collectivite=${collectivite_a} Ajouter l'affectation depuis le menu ${args_affectation} &{args_affectation} = Create Dictionary ... instructeur=${utilisateur_nom_02} (${div_code_a2}) ... instructeur_2=${instructeur_secondaire_login} (${div_code_a1}) ... om_collectivite=${collectivite_a} ... dossier_autorisation_type_detaille=PCA - Permis de construire comprenant ou non des démolitions Ajouter l'affectation depuis le menu ${args_affectation} &{args_affectation} = Create Dictionary ... instructeur=${utilisateur_nom_03} (${div_code_a1}) ... instructeur_2=${instructeur_secondaire_login} (${div_code_a1}) ... om_collectivite=${collectivite_a} ... dossier_autorisation_type_detaille=PD - Permis de démolir Ajouter l'affectation depuis le menu ${args_affectation} &{args_affectation} = Create Dictionary ... instructeur=${utilisateur_nom_04} (${div_code_b}) ... om_collectivite=${collectivite_b} Ajouter l'affectation depuis le menu ${args_affectation} ${date_ddmmyyyy} = Date du jour FR ${DATE_YYYY-MM-DD} = Date du jour EN ${DATE_YYYYMMDD} = Replace String ${DATE_YYYY-MM-DD} - ${EMPTY} # DI n°1 : Permis de démolir dans Collectivité A (niveau mono) # => Affecté à l'instructeur '${utilisateur_nom_03}' (${utilisateur_login_03}) # => Division 'J' # &{args_petitionnaire_01} = Create Dictionary ... particulier_nom=Hajnal ... particulier_prenom=Katalin ... om_collectivite=${collectivite_a} # &{args_demande_01} = Create Dictionary ... dossier_autorisation_type_detaille=Permis de démolir ... demande_type=Dépôt Initial ... date_demande=${date_ddmmyyyy} ... om_collectivite=${collectivite_a} # ${di_01} = Ajouter la demande par WS ${args_demande_01} ${args_petitionnaire_01} # DI n°2 : Permis de construire pour une maison individuelle et / ou ses annexes dans Collectivité A (niveau mono) # => Affecté à l'instructeur '${utilisateur_nom_01}' (${utilisateur_login_01}) # => Division 'H' # &{args_petitionnaire_02} = Create Dictionary ... particulier_nom=Stoter ... particulier_prenom=Ashni ... om_collectivite=${collectivite_a} # &{args_demande_02} = Create Dictionary ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes ... demande_type=Dépôt Initial ... date_demande=${date_ddmmyyyy} ... om_collectivite=${collectivite_a} # ${di_02} = Ajouter la demande par WS ${args_demande_02} ${args_petitionnaire_02} # DI n°3 : Permis de construire comprenant ou non des démolitions dans Collectivité A (niveau mono) # => Affecté à l'instructeur '${utilisateur_nom_02}' (${utilisateur_login_02}) # => Division 'L' # &{args_petitionnaire_03} = Create Dictionary ... particulier_nom=West ... particulier_prenom=Simon ... om_collectivite=${collectivite_a} # &{args_demande_03} = Create Dictionary ... dossier_autorisation_type_detaille=Permis de construire comprenant ou non des démolitions ... demande_type=Dépôt Initial ... date_demande=${date_ddmmyyyy} ... om_collectivite=${collectivite_a} # ${di_03} = Ajouter la demande par WS ${args_demande_03} ${args_petitionnaire_03} # DI n°4 : Permis de construire pour une maison individuelle et / ou ses annexes dans Collectivité B (niveau mono) # => Affecté à l'instructeur '${utilisateur_nom_04}' (${utilisateur_login_04}) # => Division 'H' # &{args_petitionnaire_04} = Create Dictionary ... particulier_nom=Martin ... particulier_prenom=Eloise ... om_collectivite=${collectivite_b} # &{args_demande_04} = Create Dictionary ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes ... demande_type=Dépôt Initial ... date_demande=${date_ddmmyyyy} ... om_collectivite=${collectivite_b} # ${di_04} = Ajouter la demande par WS ${args_demande_04} ${args_petitionnaire_04} ${code_type_commission_c} = Set Variable TC &{args_type_de_commission} = Create Dictionary ... code=${code_type_commission_c} ... libelle=Type C ... om_collectivite=${collectivite_a} Ajouter type de commission ${args_type_de_commission} ${code_type_commission_d} = Set Variable TD &{args_type_de_commission} = Create Dictionary ... code=${code_type_commission_d} ... libelle=Type D ... om_collectivite=${collectivite_b} Ajouter type de commission ${args_type_de_commission} # Demandes passage de commission Ajouter la commission depuis le contexte du dossier d'instruction ... ${di_01} Type C ${date_ddmmyyyy} Ajouter la commission depuis le contexte du dossier d'instruction ... ${di_02} Type C ${date_ddmmyyyy} Ajouter la commission depuis le contexte du dossier d'instruction ... ${di_03} Type C ${date_ddmmyyyy} Ajouter la commission depuis le contexte du dossier d'instruction ... ${di_04} Type D ${date_ddmmyyyy} # On vérifie que le widget n'indique aucun retour non lu Depuis la page d'accueil ${utilisateur_login_01} ${utilisateur_login_01} Element Should Contain css=.widget_${om_widget} .widget-content ... Aucun retour de commission non lu. # Créer une commission pour les 2 collectivités Depuis la page d'accueil admin admin &{args_commission} = Create Dictionary ... om_collectivite=${collectivite_a} ... commission_type=Type C Ajouter un suivi de commission ${args_commission} &{args_commission} = Create Dictionary ... om_collectivite=${collectivite_b} ... commission_type=Type D Ajouter un suivi de commission ${args_commission} # ... ${di_01} ${code_type_commission_c}${DATE_FORMAT_YYYYMMDD} # Planifier et rendre des avis sur les 4 DI Planifier un dossier pour une commission ... ${di_01} ${code_type_commission_c}${DATE_YYYYMMDD} Rendre un avis sur dossier passé en commission ... favorable ${di_01} ${code_type_commission_c}${DATE_YYYYMMDD} Planifier un dossier pour une commission ... ${di_02} ${code_type_commission_c}${DATE_YYYYMMDD} Rendre un avis sur dossier passé en commission ... favorable ${di_02} ${code_type_commission_c}${DATE_YYYYMMDD} Planifier un dossier pour une commission ... ${di_03} ${code_type_commission_c}${DATE_YYYYMMDD} Rendre un avis sur dossier passé en commission ... favorable ${di_03} ${code_type_commission_c}${DATE_YYYYMMDD} Planifier un dossier pour une commission ... ${di_04} ${code_type_commission_d}${DATE_YYYYMMDD} Rendre un avis sur dossier passé en commission ... favorable ${di_04} ${code_type_commission_d}${DATE_YYYYMMDD} ## Vérification du filtre par défaut (instructeur) Depuis la page d'accueil ${utilisateur_login_01} ${utilisateur_login_01} Element Should Contain css=.widget_${om_widget} .box-icon 1 # On clique sur le lien du widget (Voir +) Click Link css=.widget_${om_widget} .widget-footer a Le titre de la page doit être Instruction > Commissions > Mes Retours # L'instructeur doit seulement voir son dossier Element Should Contain css=#tab-commission_mes_retours ${di_02} Element Should Not Contain css=#tab-commission_mes_retours ${di_01} Element Should Not Contain css=#tab-commission_mes_retours ${di_03} Element Should Not Contain css=#tab-commission_mes_retours ${di_04} La page ne doit pas contenir d'erreur Click Link ${di_02} Le titre de la page doit contenir Instruction > Dossiers D'instruction > ${di_02} La page ne doit pas contenir d'erreur ## Vérification du filtre instructeur Depuis la page d'accueil admin admin Insérer les paramètres suivants dans le widget ... filtre=instructeur ... ${om_widget} Depuis la page d'accueil ${utilisateur_login_04} ${utilisateur_login_04} Element Should Contain css=.widget_${om_widget} .box-icon 1 # On clique sur le lien du widget (Voir +) Click Link css=.widget_${om_widget} .widget-footer a Le titre de la page doit être Instruction > Commissions > Mes Retours # L'instructeur doit seulement voir son dossier Element Should Contain css=#tab-commission_mes_retours ${di_04} Element Should Not Contain css=#tab-commission_mes_retours ${di_01} Element Should Not Contain css=#tab-commission_mes_retours ${di_02} Element Should Not Contain css=#tab-commission_mes_retours ${di_03} ## Filtre sur l'instructeur secondaire' Depuis la page d'accueil admin admin Insérer les paramètres suivants dans le widget ... filtre=instructeur_secondaire ... ${om_widget} Depuis la page d'accueil ${utilisateur_login_01} ${utilisateur_login_01} # On doit avoir 0 dossier pour l'instructeur Element Should Contain css=.widget_${om_widget} Aucun retour de commission non lu. Depuis la page d'accueil ${instructeur_secondaire_login} ${instructeur_secondaire_login} # Les 3 dossiers affectés à l'instructeur secondaire doivent être visible Element Should Contain css=.widget_${om_widget} .box-icon 3 # On clique sur le lien du widget (Voir +) Click Link css=.widget_${om_widget} .widget-footer a Le titre de la page doit être Instruction > Commissions > Mes Retours Element Should Contain css=#tab-commission_mes_retours ${di_01} Element Should Contain css=#tab-commission_mes_retours ${di_02} Element Should Contain css=#tab-commission_mes_retours ${di_03} Element Should Not Contain css=#tab-commission_mes_retours ${di_04} ## Filtre sur la division Depuis la page d'accueil admin admin Insérer les paramètres suivants dans le widget ... filtre=division ... ${om_widget} Depuis la page d'accueil ${utilisateur_login_01} ${utilisateur_login_01} # On doit avoir 2 dossiers de la division Element Should Contain css=.widget_${om_widget} .box-icon 2 # On clique sur le lien du widget (Voir +) Click Link css=.widget_${om_widget} .widget-footer a Le titre de la page doit être Instruction > Commissions > Retours De Ma Division Element Should Contain css=#tab-${om_widget}_ma_division ${di_01} Element Should Contain css=#tab-${om_widget}_ma_division ${di_02} Element Should Not Contain css=#tab-${om_widget}_ma_division ${di_03} Element Should Not Contain css=#tab-${om_widget}_ma_division ${di_04} ## Filtre sur la division quand aucun instructeur sur le DI # TNR pour s'assurer que la division est récupérée directement sur le DI et # pas sur l'instructeur du DI. On supprime donc l'instructeur d'un DI. # Il faut changer l'instructeur puis resélectionner la division car la # division change en fnction de l'instructeur Depuis la page d'accueil admin admin &{modifications} = Create Dictionary ... instructeur=Choisir l'instructeur${EMPTY} ... division=subdivision ME1 Modifier le dossier d'instruction ${di_01} ${modifications} Depuis la page d'accueil ${utilisateur_login_01} ${utilisateur_login_01} # On doit avoir 2 dossiers de la division Element Should Contain css=.widget_${om_widget} .box-icon 2 # On clique sur le lien du widget (Voir +) Click Link css=.widget_${om_widget} .widget-footer a Le titre de la page doit être Instruction > Commissions > Retours De Ma Division Element Should Contain css=#tab-${om_widget}_ma_division ${di_01} Element Should Contain css=#tab-${om_widget}_ma_division ${di_02} Element Should Not Contain css=#tab-${om_widget}_ma_division ${di_04} Element Should Not Contain css=#tab-${om_widget}_ma_division ${di_03} ## Filtre "aucun" donc sur la collectivité Depuis la page d'accueil admin admin Insérer les paramètres suivants dans le widget ... filtre=aucun ... ${om_widget} Depuis la page d'accueil ${utilisateur_login_01} ${utilisateur_login_01} # On doit avoir 3 dossiers de la collectivité Element Should Contain css=.widget_${om_widget} .box-icon 3 # On clique sur le lien du widget (Voir +) Click Link css=.widget_${om_widget} .widget-footer a Le titre de la page doit être Instruction > Commissions > Tous Les Retours Element Should Contain css=#tab-commission_tous_retours ${di_01} Element Should Contain css=#tab-commission_tous_retours ${di_02} Element Should Contain css=#tab-commission_tous_retours ${di_03} Element Should Not Contain css=#tab-commission_tous_retours ${di_04} ## Marquage comme non lu et vérifation widget et listing Click Link ${di_01} # pas le même instructeur mais même division Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Portlet Action Should Be In SubForm dossier_commission marquer_comme_lu # On marque comme lu Click On SubForm Portlet Action dossier_commission marquer_comme_lu Valid Message Should Contain In Subform Mise à jour effectuée avec succès Element Should Contain css=#lu Oui # vérification que c'est bien pris en compte dans widget et listing Depuis la page d'accueil ${utilisateur_login_01} ${utilisateur_login_01} # On doit avoir 2 dossiers de la collectivité Element Should Contain css=.widget_${om_widget} .box-icon 2 # On clique sur le lien du widget (Voir +) Click Link css=.widget_${om_widget} .widget-footer a Le titre de la page doit être Instruction > Commissions > Tous Les Retours Element Should Contain css=#tab-commission_tous_retours ${di_02} Element Should Contain css=#tab-commission_tous_retours ${di_03} Element Should Not Contain css=#tab-commission_tous_retours ${di_01} Element Should Not Contain css=#tab-commission_tous_retours ${di_04} Reset Params - Widget "Retours de Commission" [Documentation] Nettoyage: suppression de l'argument du widget pour ne pas perturber les ... autres tests. &{param_division} = Create Dictionary ... libelle=option_afficher_division ... valeur=false ... om_collectivite=agglo Gerer le paramètre par WS ${param_division} Depuis la page d'accueil admin admin Depuis le contexte du widget ${om_widget} Click On Form Portlet Action om_widget modifier Input Text arguments ${EMPTY} Click On Submit Button