*** Settings *** Documentation Envoi en signature dans le parapheur # On inclut les mots-clefs Resource resources/resources.robot # On ouvre et on ferme le navigateur respectivement au début et à la fin # du Test Suite. Suite Setup For Suite Setup Suite Teardown For Suite Teardown *** Test Cases *** Constitution du jeu de données # Copie le fichier de configuration pour le connecteur test du parapheur Copy File ..${/}tests${/}binary_files${/}electronicsignature_test${/}electronicsignature.inc.php ..${/}dyn${/} # Isolation du contexte &{librecom_values} = Create Dictionary ... om_collectivite_libelle=LIBRECOM_ELECSIGN ... departement=020 ... commune=001 ... insee=20001 ... direction_code=H ... direction_libelle=Direction de LIBRECOM_ELECSIGN ... direction_chef=Chef ... division_code=H ... division_libelle=Division H ... division_chef=Chef ... guichet_om_utilisateur_nom=Fabienne St-Jean ... guichet_om_utilisateur_email=fstjean@openads-test.fr ... guichet_om_utilisateur_login=fstjean ... guichet_om_utilisateur_pwd=fstjean ... instr_om_utilisateur_nom=Zara Cliche ... instr_om_utilisateur_email=zcliche@openads-test.fr ... instr_om_utilisateur_login=zcliche ... instr_om_utilisateur_pwd=zcliche Isolation d'un contexte ${librecom_values} # Ajout des sinataires &{args_signataire_case_err_1} = Create Dictionary ... civilite=Monsieur ... nom=TEST140SIGNATURENOM1 ... prenom=TEST140SIGNATUREPRENOM1 ... qualite=TEST140SIGNATUREQUALITE1 ... signature=X ... defaut=false ... om_collectivite=LIBRECOM_ELECSIGN ... email=caseerror1@test.test Ajouter le signataire depuis le menu ${args_signataire_case_err_1} Set Suite Variable ${args_signataire_case_err_1} &{args_signataire_case_err_2} = Create Dictionary ... civilite=Monsieur ... nom=TEST140SIGNATURENOM2 ... prenom=TEST140SIGNATUREPRENOM2 ... qualite=TEST140SIGNATUREQUALITE2 ... signature=X ... defaut=false ... om_collectivite=LIBRECOM_ELECSIGN ... email=caseerror2@test.test Ajouter le signataire depuis le menu ${args_signataire_case_err_2} Set Suite Variable ${args_signataire_case_err_2} &{args_signataire_case_err_3} = Create Dictionary ... civilite=Monsieur ... nom=TEST140SIGNATURENOM3 ... prenom=TEST140SIGNATUREPRENOM3 ... qualite=TEST140SIGNATUREQUALITE3 ... signature=X ... defaut=false ... om_collectivite=LIBRECOM_ELECSIGN ... email=caseerror3@test.test Ajouter le signataire depuis le menu ${args_signataire_case_err_3} Set Suite Variable ${args_signataire_case_err_3} &{args_signataire_case_ok_1} = Create Dictionary ... civilite=Monsieur ... nom=TEST140SIGNATURENOM4 ... prenom=TEST140SIGNATUREPRENOM4 ... qualite=TEST140SIGNATUREQUALITE4 ... signature=X ... defaut=false ... om_collectivite=LIBRECOM_ELECSIGN ... email=case1-1@test.test Ajouter le signataire depuis le menu ${args_signataire_case_ok_1} Set Suite Variable ${args_signataire_case_ok_1} &{args_signataire_case_ok_2} = Create Dictionary ... civilite=Monsieur ... nom=TEST140SIGNATURENOM5 ... prenom=TEST140SIGNATUREPRENOM5 ... qualite=TEST140SIGNATUREQUALITE5 ... signature=X ... defaut=false ... om_collectivite=LIBRECOM_ELECSIGN ... email=case2-1@test.test Ajouter le signataire depuis le menu ${args_signataire_case_ok_2} Set Suite Variable ${args_signataire_case_ok_2} &{args_signataire_case_ok_3} = Create Dictionary ... civilite=Monsieur ... nom=TEST140SIGNATURENOM6 ... prenom=TEST140SIGNATUREPRENOM6 ... qualite=TEST140SIGNATUREQUALITE6 ... signature=X ... defaut=false ... om_collectivite=LIBRECOM_ELECSIGN ... email=case3@test.test Ajouter le signataire depuis le menu ${args_signataire_case_ok_3} Set Suite Variable ${args_signataire_case_ok_3} &{args_signataire_case_ok_4} = Create Dictionary ... civilite=Monsieur ... nom=TEST140SIGNATURENOM7 ... prenom=TEST140SIGNATUREPRENOM7 ... qualite=TEST140SIGNATUREQUALITE7 ... signature=X ... defaut=false ... om_collectivite=LIBRECOM_ELECSIGN ... email=case4@test.test Ajouter le signataire depuis le menu ${args_signataire_case_ok_4} Set Suite Variable ${args_signataire_case_ok_4} &{args_signataire_case_ok_5} = Create Dictionary ... civilite=Monsieur ... nom=TEST140SIGNATURENOM8 ... prenom=TEST140SIGNATUREPRENOM8 ... qualite=TEST140SIGNATUREQUALITE8 ... signature=X ... defaut=false ... om_collectivite=LIBRECOM_ELECSIGN ... email=case5@test.test Ajouter le signataire depuis le menu ${args_signataire_case_ok_5} Set Suite Variable ${args_signataire_case_ok_5} &{args_signataire_case_ok_6} = Create Dictionary ... civilite=Monsieur ... nom=TEST140SIGNATURENOM9 ... prenom=TEST140SIGNATUREPRENOM9 ... qualite=TEST140SIGNATUREQUALITE9 ... signature=X ... defaut=false ... om_collectivite=LIBRECOM_ELECSIGN ... email=case6@test.test Ajouter le signataire depuis le menu ${args_signataire_case_ok_6} Set Suite Variable ${args_signataire_case_ok_6} Envoi en signature des documents dans le parapheur avec un connecteur de test [Documentation] Vérification de 6 scénarios avec le parapheur, 3 avec ... erreur et 3 sans erreur. ... ... Les scénarios avec erreurs : ... 1/ Erreur lors de l'envoi en signature, le connecteur de test retourne un ... message d'erreur spécifique. ... 2/ Erreur lors de la récupération du statut du parapheur, le connecteur ... de test retourne un message d'erreur spécifique. ... 3/ Erreur lors de la récupération du document signé, le connecteur de ... test retourne un message spécifique. ... ... Les scénarios sans erreurs : ... 1/ Le statut du parapheur récupéré est toujours le même que celui lors ... de l'envoi en signature, seulement la date d'envoi en signature sur ... l'instruction est modifiée. Les dates d'envoi et de retour signature ne ... sont plus modifiable depuis le suivi des dates. On vérifie aussi que lorsque ... le commentaire est modifié, une nouvelle entrée est ajoutée. ... 2/ Le statut du parapheur récupéré est différent de celui lors de l'envoi ... en signature et il s'agit d'un 'finished' avec récupération du document ... signé, donc modification de l'édition et ajout de la date de retour ... signature sur l'instruction. ... 3/ Le statut du parapheur récupéré est différent de celui lors de l'envoi ... en signature et il s'agit d'un 'canceled', l'action d'envoi en signature ... doit être à nouveau possible depuis l'instruction. Depuis la page d'accueil admin admin # Cas d'erreur 1 &{args_petitionnaire} = Create Dictionary ... particulier_nom=TEST140SIGNATUREPETNOM1 ... particulier_prenom=TEST140SIGNATUREPETPRENOM1 ... om_collectivite=LIBRECOM_ELECSIGN &{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=LIBRECOM_ELECSIGN ${di_case_err_1} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} Ajouter une instruction au DI et la finaliser ${di_case_err_1} accepter un dossier sans réserve signataire_arrete=${args_signataire_case_err_1.prenom} ${args_signataire_case_err_1.nom} Click On SubForm Portlet Action instruction envoyer_a_signature modale Cliquer sur le bouton de la fenêtre modale Confirmer Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Error Message Should Contain In Subform Produit une exception sur la méthode send_for_signature # Cas d'erreur 2 &{args_petitionnaire} = Create Dictionary ... particulier_nom=TEST140SIGNATUREPETNOM2 ... particulier_prenom=TEST140SIGNATUREPETPRENOM2 ... om_collectivite=LIBRECOM_ELECSIGN &{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=LIBRECOM_ELECSIGN ${di_case_err_2} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} Ajouter une instruction au DI et la finaliser ${di_case_err_2} accepter un dossier sans réserve signataire_arrete=${args_signataire_case_err_2.prenom} ${args_signataire_case_err_2.nom} Click On SubForm Portlet Action instruction envoyer_a_signature modale Cliquer sur le bouton de la fenêtre modale Confirmer Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Valid Message Should Contain In Subform Le document a été envoyé pour signature dans le parapheur. ${json} = Set Variable {"module":"update_parapheur_datas"} Vérifier le code retour du web service et vérifier que son message contient Post maintenance ${json} 200 Produit une exception sur la méthode get_signature_status # Cas d'erreur 3 &{args_petitionnaire} = Create Dictionary ... particulier_nom=TEST140SIGNATUREPETNOM3 ... particulier_prenom=TEST140SIGNATUREPETPRENOM3 ... om_collectivite=LIBRECOM_ELECSIGN &{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=LIBRECOM_ELECSIGN ${di_case_err_3} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} Ajouter une instruction au DI et la finaliser ${di_case_err_3} accepter un dossier sans réserve signataire_arrete=${args_signataire_case_err_3.prenom} ${args_signataire_case_err_3.nom} Click On SubForm Portlet Action instruction envoyer_a_signature modale Cliquer sur le bouton de la fenêtre modale Confirmer Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Valid Message Should Contain In Subform Le document a été envoyé pour signature dans le parapheur. ${json} = Set Variable {"module":"update_parapheur_datas"} Vérifier le code retour du web service et vérifier que son message contient Post maintenance ${json} 200 Produit une exception sur la méthode get_signed_document # On modifie la base de l'URL de la redirection vers le dossier d'instruction dans les # métadonnées du dossier pour vérifier que *param_base_path_metadata_url_di* fonctionne # correctement # La vérification est faite dans le cas 1 du connecteur de test &{param_division} = Create Dictionary ... libelle=param_base_path_metadata_url_di ... valeur=test_metadata_url_di ... om_collectivite=agglo Gerer le paramètre par WS ${param_division} # Cas succès 1 &{args_petitionnaire} = Create Dictionary ... particulier_nom=TEST140SIGNATUREPETNOM4 ... particulier_prenom=TEST140SIGNATUREPETPRENOM4 ... om_collectivite=LIBRECOM_ELECSIGN &{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=LIBRECOM_ELECSIGN ${di_case_ok_1} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} Ajouter une instruction au DI et la finaliser ${di_case_ok_1} accepter un dossier sans réserve signataire_arrete=${args_signataire_case_ok_1.prenom} ${args_signataire_case_ok_1.nom} Click On SubForm Portlet Action instruction envoyer_a_signature modale Cliquer sur le bouton de la fenêtre modale Confirmer Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Valid Message Should Contain In Subform Le document a été envoyé pour signature dans le parapheur. Form Static Value Should Be css=#date_envoi_signature ${date_ddmmyyyy} Form Static Value Should Be css=#statut_signature en cours de signature Portlet Action Should Not Be In SubForm instruction envoyer_a_signature Portlet Action Should Not Be In SubForm instruction annuler_envoi_en_signature Click On SubForm Portlet Action instruction modifier_suivi Element Should Be Visible css=#date_envoi_signature[readonly="readonly"] Element Should Be Visible css=#date_retour_signature[readonly="readonly"] ${json} = Set Variable {"module":"update_parapheur_datas"} # Ajout du commentaire lors de la première vérification du statut de signature Vérifier le code retour du web service et vérifier que son message contient Post maintenance ${json} 200 a bien été mise à jour # Vérification de la nouvelle entrée dans le tableau d'historique et dans le champ commentaire Depuis l'instruction du dossier d'instruction ${di_case_ok_1} accepter un dossier sans réserve Form Value Should Contain css=#commentaire_signature Test de commentaire lorsque le statut est en cours, l'apostrophe est aussi testé ;) ${id_instruction} = Get Value css=.form-content input#instruction Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Click Element css=#fieldset-sousform-instruction-historique legend Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Contain css=.gridjs-tbody Test de commentaire lorsque le statut est en cours, l'apostrophe est aussi testé ;) # À la deuxième vérification rien n'a changé Vérifier le code retour du web service et vérifier que son message contient Post maintenance ${json} 200 Rien à faire sur l'instruction ${id_instruction} # Active l'action d'annulation d'envoi en signature Run sed -i 's/"cancel_send" => false/"cancel_send" => true/' ../dyn/electronicsignature.inc.php # Vérification de l'action d'annulation Depuis la page d'accueil admin admin Depuis l'instruction du dossier d'instruction ${di_case_ok_1} accepter un dossier sans réserve ${status} = Run Keyword And Return Status Portlet Action Should Be In SubForm instruction annuler_envoi_signature Run Keyword If ${status} == False Run Keywords ... Reload Page ... AND Depuis l'instruction du dossier d'instruction ${di_case_ok_1} accepter un dossier sans réserve ... AND Portlet Action Should Be In SubForm instruction annuler_envoi_signature Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Portlet Action Should Be In SubForm instruction annuler_envoi_signature Click On SubForm Portlet Action instruction annuler_envoi_signature modale Cliquer sur le bouton de la fenêtre modale Confirmer Form Value Should Contain css=#commentaire_signature Annulé par l'émetteur le ${date_ddmmyyyy} Form Static Value Should Be css=#statut_signature signature annulée Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Portlet Action Should Be In SubForm instruction envoyer_a_signature Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Portlet Action Should Not Be In SubForm instruction annuler_envoi_signature # On supprime *param_base_path_metadata_url_di* de l'URL de la redirection vers le # dossier d'instruction dans les métadonnées du dossier pour vérifier que la base # de l'URL est utilisée comme prévu # La vérification est faite dans le cas 2 du connecteur de test &{param_args} = Create Dictionary ... delete=true ... libelle=param_base_path_metadata_url_di ... om_collectivite=agglo Gerer le paramètre par WS ${param_args} # Cas succès 2 &{args_petitionnaire} = Create Dictionary ... particulier_nom=TEST140SIGNATUREPETNOM5 ... particulier_prenom=TEST140SIGNATUREPETPRENOM5 ... om_collectivite=LIBRECOM_ELECSIGN &{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=LIBRECOM_ELECSIGN ${di_case_ok_2} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} Ajouter une instruction au DI et la finaliser ${di_case_ok_2} accepter un dossier sans réserve signataire_arrete=${args_signataire_case_ok_2.prenom} ${args_signataire_case_ok_2.nom} Click On SubForm Portlet Action instruction envoyer_a_signature modale Cliquer sur le bouton de la fenêtre modale Confirmer Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Valid Message Should Contain In Subform Le document a été envoyé pour signature dans le parapheur. Wait Until Element Contains css=#date_envoi_signature ${date_ddmmyyyy} Form Static Value Should Be css=#statut_signature en cours de signature Portlet Action Should Not Be In SubForm instruction envoyer_a_signature ${id_instruction} = Get Value css=.form-content input#instruction ${json} = Set Variable {"module":"update_parapheur_datas"} Vérifier le code retour du web service et vérifier que son message contient Post maintenance ${json} 200 ${id_instruction} et son document ont bien été mis à jour Depuis l'instruction du dossier d'instruction ${di_case_ok_2} ${id_instruction} Form Static Value Should Be css=#date_retour_signature ${date_ddmmyyyy} Form Static Value Should Be css=#statut_signature signé Portlet Action Should Not Be In SubForm instruction envoyer_a_signature # Un document signé ne peut pas être annulé Portlet Action Should Not Be In SubForm instruction annuler_envoi_signature Form Value Should Contain css=#commentaire_signature Test commentaire document signé. Click On SubForm Portlet Action instruction edition new_window Open PDF ${OM_PDF_TITLE} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Page Should Contain PARAPHEUR CONNECTEUR DE TEST Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Page Should Contain DOCUMENT SIGNÉ Close PDF # Vérification de la possibilité de reprendre la rédaction du document d'instruction : # L'utilisateur *admin* ayant la permission *instruction_definaliser_apres_signature* # doit pouvoir reprendre la rédaction. # L'instructeur affecté au dossier ne doit pas pouvoir réaliser cette action. Depuis la page d'accueil zcliche zcliche Depuis l'instruction du dossier d'instruction ${di_case_ok_2} ${id_instruction} Portlet Action Should Not Be In SubForm instruction definaliser Depuis la page d'accueil admin admin Depuis l'instruction du dossier d'instruction ${di_case_ok_2} ${id_instruction} Portlet Action Should Be In SubForm instruction definaliser # On défini le format de l'url attendu pour être rediriger sur l'onglet 'Pièces & Documents' # du dossier courant # Récupère l'année de manière dynamique pour ne pas avoir d'erreur à chaque changement d'année ${year} = Get Time year ${YY} = Get Substring ${year} -2 ${new_url_parapheur} = Set Variable http://localhost/openads/app/index.php?module=form&direct_link=true&obj=dossier_instruction&action=3&idx=PC020001${YY}00005P0&direct_field=dossier&direct_form=document_numerise&direct_action=4&direct_idx=PC020001${YY}00005P0 # On ouvre le fieldset 'Historique' Click Element css=#fieldset-sousform-instruction-historique legend # On récupère l'url de redirection envoyé en commentaire pour la tester ${new_URL_redirect_parapheur} = Get Text css=tbody tr:nth-child(1) td[data-column-id="commentaire"] Should Be Equal ${new_url_parapheur} ${new_URL_redirect_parapheur} # On accède à l'url pour vérifier que tout est bon : pas d'erreur, et qu'on est bien dans le bon dossier et le bon onglet 'Pièces & Documents' Go To ${new_URL_redirect_parapheur} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} La page ne doit pas contenir d'erreur # On vérifie qu'on est bien dans le bon dossier Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Page Should Contain PC 020001 ${YY} 00005P0 TEST140SIGNATUREPETNOM5 TEST140SIGNATUREPETPRENOM5 # On vérifie qu'on est bien dans l'onglet 'Pièces & Documents' via la visibilité du lien de l'ajout d'une pièce Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Page Should Contain Ajouter une pièce # On vérifie que la page affiché est bien fonctionnelle Click On Link css=#action-soustab-blocnote-message-ajouter Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Be Visible css=#fieldset-sousform-document_numerise-piece # Cas succès 3 &{args_petitionnaire} = Create Dictionary ... particulier_nom=TEST140SIGNATUREPETNOM6 ... particulier_prenom=TEST140SIGNATUREPETPRENOM6 ... om_collectivite=LIBRECOM_ELECSIGN &{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=LIBRECOM_ELECSIGN ${di_case_ok_3} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} Ajouter une instruction au DI et la finaliser ${di_case_ok_3} accepter un dossier sans réserve signataire_arrete=${args_signataire_case_ok_3.prenom} ${args_signataire_case_ok_3.nom} Click On SubForm Portlet Action instruction envoyer_a_signature modale Cliquer sur le bouton de la fenêtre modale Confirmer Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Valid Message Should Contain In Subform Le document a été envoyé pour signature dans le parapheur. Wait Until Element Contains css=#date_envoi_signature ${date_ddmmyyyy} Form Static Value Should Be css=#statut_signature en cours de signature Portlet Action Should Not Be In SubForm instruction envoyer_a_signature ${id_instruction} = Get Value css=.form-content input#instruction ${json} = Set Variable {"module":"update_parapheur_datas"} Vérifier le code retour du web service et vérifier que son message contient Post maintenance ${json} 200 ${id_instruction} a bien été mise à jour Depuis l'instruction du dossier d'instruction ${di_case_ok_3} ${id_instruction} Form Static Value Should Be css=#date_envoi_signature ${EMPTY} Form Static Value Should Be css=#statut_signature signature annulée Form Value Should Contain css=#commentaire_signature Test d'un commentaire refus. Portlet Action Should Be In SubForm instruction envoyer_a_signature # Cas 5 vérification de l'envoi en signature le jour de la date limite # La date limite doit être aujourd'hui sachant qu'il y a un délai de 2 mois # 1 - créer une action de modification de date @{type_di} = Create List ... PCI - P - Initial &{args_action} = Create Dictionary ... action=changement_date ... libelle=changement_date ... regle_date_limite=date_evenement Ajouter Action ${args_action} @{etats_autorises2} = Create List ... delai de notification envoye # 2 - créer un événement éponyme utilisant cette action &{args_evenement_para2} = Create Dictionary ... libelle=Changement date - 140 envoi signature ... dossier_instruction_type=${type_di} ... action=${args_action.libelle} ... etats_autorises=${etats_autorises2} ... etats_depuis_lequel_l_evenement_est_disponible=${etats_autorises2} Ajouter l'événement depuis le menu ${args_evenement_para2} &{args_petitionnaire} = Create Dictionary ... particulier_nom=TEST140SIGNATUREPETNOM8 ... particulier_prenom=TEST140SIGNATUREPETPRENOM8 ... om_collectivite=LIBRECOM_ELECSIGN &{args_demande} = Create Dictionary ... date_demande=${date_ddmmyyyy} ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes ... demande_type=Dépôt Initial ... om_collectivite=LIBRECOM_ELECSIGN ${di_case_ok_5} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} # 3 - déclencher l'événement à l'aide d'une instruction Ajouter une instruction au DI ${di_case_ok_5} Changement date - 140 envoi signature Ajouter une instruction au DI et la finaliser ${di_case_ok_5} accepter un dossier sans réserve signataire_arrete=${args_signataire_case_ok_5.prenom} ${args_signataire_case_ok_5.nom} Click On SubForm Portlet Action instruction envoyer_a_signature modale Cliquer sur le bouton de la fenêtre modale Confirmer Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Valid Message Should Contain In Subform Le document a été envoyé pour signature dans le parapheur. Wait Until Element Contains css=#date_envoi_signature ${date_ddmmyyyy} Form Static Value Should Be css=#statut_signature en cours de signature Portlet Action Should Not Be In SubForm instruction envoyer_a_signature ${id_instruction} = Get Value css=.form-content input#instruction ${json} = Set Variable {"module":"update_parapheur_datas"} Vérifier le code retour du web service et vérifier que son message contient Post maintenance ${json} 200 Rien à faire sur l'instruction ${id_instruction} Depuis l'instruction du dossier d'instruction ${di_case_ok_5} ${id_instruction} ${date_limite} = Add Time To Date ${DATE_FORMAT_YYYY-MM-DD} 1 days result_format=%Y-%m-%d Form Value Should Contain css=#commentaire_signature ${date_limite} # Vérification de l'envoi en signature si document expiré &{args_petitionnaire} = Create Dictionary ... particulier_nom=TEST140SIGNATUREPETNOM9 ... particulier_prenom=TEST140SIGNATUREPETPRENOM9 ... om_collectivite=LIBRECOM_ELECSIGN &{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=LIBRECOM_ELECSIGN ${di_case_ok_6} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} Depuis la page d'accueil zcliche zcliche Ajouter une instruction au DI et la finaliser ${di_case_ok_6} accepter un dossier sans réserve signataire_arrete=${args_signataire_case_ok_6.prenom} ${args_signataire_case_ok_6.nom} Click On SubForm Portlet Action instruction envoyer_a_signature modale Cliquer sur le bouton de la fenêtre modale Confirmer Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Valid Message Should Contain In Subform Le document a été envoyé pour signature dans le parapheur. ${date_envoi_signature} = Add Time To Date ${DATE_FORMAT_YYYY-MM-DD} -1 days ${date_envoi_signature} = Convert Date ${date_envoi_signature} result_format=%d/%m/%Y Wait Until Element Contains css=#date_envoi_signature ${date_envoi_signature} Form Static Value Should Be css=#statut_signature en cours de signature ${id_instruction} = Get Value css=.form-content input#instruction ${json} = Set Variable {"module":"update_parapheur_datas"} Vérifier le code retour du web service et vérifier que son message contient Post maintenance ${json} 200 ${id_instruction} a bien été mise à jour Depuis l'instruction du dossier d'instruction ${di_case_ok_6} ${id_instruction} Form Static Value Should Be css=#statut_signature délai de signature expiré Portlet Action Should Be In SubForm instruction envoyer_a_signature Click On SubForm Portlet Action instruction envoyer_a_signature modale Cliquer sur le bouton de la fenêtre modale Confirmer Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Valid Message Should Contain In Subform Le document a été envoyé pour signature dans le parapheur. Vérification de l'utilisation de l'envoi en signature avec relecture [Documentation] Permet de vérifier si l'envoi en signature avec relecture fonctionne correctement. ... Une option est mise à disposition pour activer l'envoi en signature avec relecture. Elle se nomme "option_parapheur_relecture" ... Lorsque cette option est activée l'action "Envoi en signature avec relecture" est disponible dans l'instruction. ... Lorsqu'on envoi le document en signature avec relecture cette information est spécifié dans le tableau historique sous l'adresse ... email du signataire. ... L'action est similaire à celle d'envoi en signature avec un paramètre en plus. Le signataire utilisé sera le case_ok_4. # Copie le fichier de configuration pour le connecteur test du parapheur Copy File ..${/}tests${/}binary_files${/}electronicsignature_test${/}electronicsignature.inc.php ..${/}dyn${/} Depuis la page d'accueil admin admin # Active l'action d'envoi en signature avec relecture Run sed -i 's/"is_forced_view_files" => null/"is_forced_view_files" => true/' ../dyn/electronicsignature.inc.php # Cas succès 4 &{args_petitionnaire} = Create Dictionary ... particulier_nom=TEST140SIGNATUREPETNOM7 ... particulier_prenom=TEST140SIGNATUREPETPRENOM7 ... om_collectivite=LIBRECOM_ELECSIGN &{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=LIBRECOM_ELECSIGN ${di_case_ok_4} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} Ajouter une instruction au DI et la finaliser ${di_case_ok_4} accepter un dossier sans réserve signataire_arrete=${args_signataire_case_ok_4.prenom} ${args_signataire_case_ok_4.nom} Click On SubForm Portlet Action instruction envoyer_a_signature_relecture modale Cliquer sur le bouton de la fenêtre modale Confirmer Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Valid Message Should Contain In Subform Le document a été envoyé pour signature dans le parapheur. Form Static Value Should Be css=#date_envoi_signature ${date_ddmmyyyy} Form Static Value Should Be css=#statut_signature en cours de signature Portlet Action Should Not Be In SubForm instruction envoyer_a_signature Portlet Action Should Not Be In SubForm instruction envoyer_a_signature_relecture Form Value Should Contain css=#commentaire_signature Relecture demandée. ${id_instruction} = Get Value css=.form-content input#instruction ${json} = Set Variable {"module":"update_parapheur_datas"} Vérifier le code retour du web service et vérifier que son message contient Post maintenance ${json} 200 ${id_instruction} a bien été mise à jour Depuis l'instruction du dossier d'instruction ${di_case_ok_4} ${id_instruction} Form Static Value Should Be css=#date_envoi_signature ${EMPTY} Form Static Value Should Be css=#statut_signature signature annulée Form Value Should Contain css=#commentaire_signature Test d'un commentaire refus. Portlet Action Should Be In SubForm instruction envoyer_a_signature Portlet Action Should Be In SubForm instruction envoyer_a_signature_relecture # Désactive l'action d'envoi en signature avec relecture Run sed -i 's/"is_forced_view_files" => true/"is_forced_view_files" => null/' ../dyn/electronicsignature.inc.php Depuis l'instruction du dossier d'instruction ${di_case_ok_4} ${id_instruction} Portlet Action Should Be In SubForm instruction envoyer_a_signature Portlet Action Should Not Be In SubForm instruction envoyer_a_signature_relecture Vérification de l'envoi en signature d'un document sur un dossier sans date limite [Documentation] Afin de vérifier que l'envoi en signature se fait correctement ... pour un document sur un dossier sans date limite, on va modifier la règle de l'action ... initier un délai de notification, qui est utilisé sur la première instruction ... ajouté lors de l'ajout d'un PC, afin d'enlever le calcul de la date limite ... On test ensuite l'envoi en signature d'un document et on vérifie qu'il n'y ... a pas de message d'erreur. ... Enfin on rétabli la règle de l'action comme avant. # On enlève la règle de calcul de la date limite sur l'action d'initialisation du dossier d'instruction &{args_action_modif} = Create Dictionary ... regle_date_limite=${EMPTY} Modifier Action initialisation ${args_action_modif} # Création d'un dossier &{args_petitionnaire} = Create Dictionary ... particulier_nom=TEST140SIGNATUREDTLNOM ... particulier_prenom=TEST140SIGNATUREDTLPRENOM ... om_collectivite=LIBRECOM_ELECSIGN &{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=LIBRECOM_ELECSIGN ${di_case_ok_dtl} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} # On vérifie que la date limite est bien vide sur le dossier Depuis le contexte du dossier d'instruction ${di_case_ok_dtl} Element Text Should Be css=#date_limite ${EMPTY} # On ajoute une instruction à envoyer au parapheur Ajouter une instruction au DI et la finaliser ${di_case_ok_dtl} accepter un dossier sans réserve signataire_arrete=${args_signataire_case_ok_4.prenom} ${args_signataire_case_ok_4.nom} Click On SubForm Portlet Action instruction envoyer_a_signature modale Cliquer sur le bouton de la fenêtre modale Confirmer # Le document doit bien être envoyé Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Valid Message Should Contain In Subform Le document a été envoyé pour signature dans le parapheur. Form Static Value Should Be css=#date_envoi_signature ${date_ddmmyyyy} Form Static Value Should Be css=#statut_signature en cours de signature La page ne doit pas contenir d'erreur # On rétabli la règle de calcul de la date limite sur l'action d'initialisation du dossier d'instruction &{args_action_modif} = Create Dictionary ... regle_date_limite=archive_date_dernier_depot+delai Modifier Action initialisation ${args_action_modif} Suppression du fichier de configuration du connecteur parapheur de test Remove File ..${/}dyn${/}electronicsignature.inc.php TNR recherche avancée du listing des signataires Depuis la page d'accueil admin admin # Paramètre l'appli pour renommer om_collectivite en service &{param_values} = Create Dictionary ... libelle=option_renommer_collectivite ... valeur=true ... om_collectivite=agglo Gerer le paramètre par WS ${param_values} # Création d'une habilitation et d'un signataire ayant cette habilitation &{args_signataire_habilitation} = Create Dictionary ... libelle=habilitation test ... Description=TEST ... prenom=TEST140SIGNATUREPRENOM1 ... om_validite_debut=22/02/2022 Ajouter signataire_habilitation ${args_signataire_habilitation} ${current_date} = Get Current Date result_format=%d/%m/%Y ${nextDay} = Add Time To Date ${current_date} 1 days %d/%m/%Y True %d/%m/%Y &{args_signataire} = Create Dictionary ... civilite=Monsieur ... nom=TNRNOM ... prenom=TNRPRENOM ... qualite=TNRQUALITE ... signataire_habilitation=habilitation test ... signature=X ... defaut=false ... om_collectivite=MARSEILLE ... email=test@test.test ... description=description test ... om_validite_debut=22/02/2022 ... om_validite_fin=${nextDay} Ajouter le signataire depuis le menu ${args_signataire} # Remplissage du formulaire de recherche avancé avec tous les champs Depuis le tableau des signataires Input Text css=div#adv-search-adv-fields input#signataire_arrete TNRPRENOM Input Text css=div#adv-search-adv-fields input#qualite TNRQUALITE Input Text css=div#adv-search-adv-fields input#signataire_habilitation habilitation test Select from list by label css=div#adv-search-adv-fields select#defaut Non Input Text css=div#adv-search-adv-fields input#date_validite_debut_min 21/02/2022 Input Text css=div#adv-search-adv-fields input#date_validite_debut_max ${nextDay} Input Text css=div#adv-search-adv-fields input#date_validite_fin_min ${nextDay} Input Text css=div#adv-search-adv-fields input#date_validite_fin_max ${nextDay} Input Text css=div#adv-search-adv-fields input#email test@test.test Input Text css=div#adv-search-adv-fields input#description description Select from list by label css=div#adv-search-adv-fields select#om_collectivite MARSEILLE # On valide le formulaire de recherche Click On Search Button La page ne doit pas contenir d'erreur Page Should Contain TNRNOM # On vérifie que l'export traduit bien la colonne om_collectivite en service lorsque l'option est activée ${link_export_listing}= Get Element Attribute css=.tab-export a href ${output_dir} ${output_name} = Télécharger un fichier ${SESSION_COOKIE} ${link_export_listing} ${EXECDIR}${/}binary_files${/} ${full_path_to_file} = Catenate SEPARATOR= ${output_dir} ${output_name} # On vérifie dans le fichier téléchargé que l'entête correspond à ce qui est attendu ${content_file} = Get File ${full_path_to_file} ${firstline_csv_file} = Set Variable signataire;civilité;nom;prénom;qualité;"type d'habilitation";défaut;"date de début de validité";"date de fin de validité";email;description;service;signature;"paramètre du parapheur";agrément;visa;code Should Contain ${content_file} ${firstline_csv_file} Reset params - TNR recherche avancée du listing des signataires #Supprime le paramètre &{param_values} = Create Dictionary ... delete=true ... libelle=option_renommer_collectivite ... om_collectivite=agglo Gerer le paramètre par WS ${param_values}