*** 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=COLLECTIVITE_CIRCUIT ... departement=042 ... commune=043 ... insee=20001 ... direction_code=CV ... direction_libelle=Direction de COLLECTIVITE_CIRCUIT ... direction_chef=Chef ... division_code=CV ... division_libelle=Division CV ... division_chef=Chef ... guichet_om_utilisateur_nom=Saquet Bilbon ... guichet_om_utilisateur_email=bilbon@openads-test.fr ... guichet_om_utilisateur_login=bilbon ... guichet_om_utilisateur_pwd=bilbon ... instr_om_utilisateur_nom=Frodon Saquet ... instr_om_utilisateur_email=frodon@openads-test.fr ... instr_om_utilisateur_login=frodon ... instr_om_utilisateur_pwd=frodon Isolation d'un contexte ${librecom_values} # Ajout des signataires &{args_signataire_case_ok_1} = Create Dictionary ... civilite=Monsieur ... nom=TEST147SIGNATURENOM1 ... prenom=TEST147SIGNATUREPRENOM1 ... qualite=TEST147SIGNATUREQUALITE1 ... signature=X ... defaut=false ... om_collectivite=COLLECTIVITE_CIRCUIT ... email=case8@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=TEST147SIGNATURENOM2 ... prenom=TEST147SIGNATUREPRENOM2 ... qualite=TEST147SIGNATUREQUALITE2 ... signature=X ... defaut=false ... om_collectivite=COLLECTIVITE_CIRCUIT ... email=case8@test.test Ajouter le signataire depuis le menu ${args_signataire_case_ok_2} Set Suite Variable ${args_signataire_case_ok_2} &{args_signataire_validateur_1} = Create Dictionary ... civilite=Monsieur ... nom=140_VAL_NOM_1 ... prenom=140_VAL_PRENOM_1 ... qualite=140_VAL_QUALITE_1 ... habilitation_parapheur=Peut valider et signer ... signature=X ... defaut=false ... om_collectivite=COLLECTIVITE_CIRCUIT ... email=case7@test.test ${signataire_validateur_1} = Ajouter le signataire depuis le menu ${args_signataire_validateur_1} Set Suite Variable ${signataire_validateur_1} Set Suite Variable ${args_signataire_validateur_1} &{args_signataire_validateur_2} = Create Dictionary ... civilite=Monsieur ... civilite=Monsieur ... nom=140_VAL_NOM_2 ... prenom=140_VAL_PRENOM_2 ... qualite=140_VAL_QUALITE_2 ... habilitation_parapheur=Peut valider et signer ... signature=X ... defaut=false ... om_collectivite=COLLECTIVITE_CIRCUIT ... email=case8@test.test ${signataire_validateur_2} = Ajouter le signataire depuis le menu ${args_signataire_validateur_2} Set Suite Variable ${signataire_validateur_2} Set Suite Variable ${args_signataire_validateur_2} &{args_action} = Create Dictionary ... action=retour signature validateurs ... libelle=retour signature validateurs ... regle_etat=etat Ajouter l'action depuis le menu ${args_action} @{etat_source} = Create List delai de notification envoye delai majore @{type_di} = Create List PCI - P - Initial PCI - M - Modificatif PCI - DOC - Ouverture de chantier &{args_evenement} = Create Dictionary ... libelle=147 CIRCUIT VALIDATEURS RETOUR ... etats_depuis_lequel_l_evenement_est_disponible=${etat_source} ... dossier_instruction_type=${type_di} ... retour=true ... lettretype=arrete ARRETE ... action=${args_action.action} # Ajouter l'événement depuis le menu ${args_evenement} Gerer l'événement par WS ${args_evenement} Set Suite Variable ${args_evenement} # Activation de l'option Depuis la page d'accueil admin admin &{om_param} = Create Dictionary ... libelle=option_circuit_validation ... valeur=true ... om_collectivite=agglo Gerer le paramètre par WS ${om_param} Circuit de validation [Documentation] Un circuit de validation peut être défini sur une instruction : ... - si l'instruction peut être envoyée en signature ... - si l'option_circuit_validation est activée ... Une action est alors rendue disponible sur le portlet de l'instruction. ... Cette action ouvre un popup de sélection des validateurs ... Un signataire arreté peut être validateur lorsque son paramètre habilitation_parapheur est défini sur : ... 'Peut valider' ou 'Peut valider et signer' Depuis la page d'accueil admin admin # Présence de l'habilitation parapheur en paramétrage du signataire Depuis le contexte du signataire ${signataire_validateur_1} Element Should Contain habilitation_parapheur Peut valider et signer ${instruction_libelle} Set Variable accepter un dossier sans réserve ${instruction_libelle_sans_validateurs} Set Variable accord tacite (sans arrete) &{args_petitionnaire} = Create Dictionary ... particulier_nom=TEST140CIRCUIT_VALIDNOM1 ... particulier_prenom=TEST140CIRCUIT_VALIDPRENOM1 ... om_collectivite=COLLECTIVITE_CIRCUIT &{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=COLLECTIVITE_CIRCUIT ${di_case_validateurs} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} Ajouter une instruction au DI ${di_case_validateurs} ${instruction_libelle_sans_validateurs} Depuis l'instruction du dossier d'instruction ${di_case_validateurs} ${instruction_libelle_sans_validateurs} Page Should Not Contain Element Validateurs Click On SubForm Portlet Action instruction supprimer Click On Submit Button In Subform Ajouter une instruction au DI et la finaliser ${di_case_validateurs} ${instruction_libelle} signataire_arrete=${args_signataire_case_ok_1.prenom} ${args_signataire_case_ok_1.nom} Depuis l'instruction du dossier d'instruction ${di_case_validateurs} ${instruction_libelle} # Présence de l'action de sélection des validateurs Page Should Contain Sélectionner les validateurs # Ajout d'un premier validateur ${liste_validateurs_ordre_1} = Create List ${args_signataire_validateur_1.prenom} ${args_signataire_validateur_1.nom} (${args_signataire_validateur_1.qualite}) Sélectionner les validateurs ${liste_validateurs_ordre_1} # Sélection d'un validateur Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Contain validateurs 1. ${args_signataire_validateur_1.prenom} ${args_signataire_validateur_1.nom} (${args_signataire_validateur_1.qualite}) # Lorsque on modifie le signataire de l'instruction, les validateurs sont supprimés Click On SubForm Portlet Action instruction definaliser Click On SubForm Portlet Action instruction modifier Select From List By Label signataire_arrete ${args_signataire_case_ok_2.prenom} ${args_signataire_case_ok_2.nom} Click On Submit Button Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Page Should Not Contain Element validateurs # À la sélection des validateurs, ils doivent apparaitre dans l'ordre choisi sur le formulaire (champ 'validateurs') Click On SubForm Portlet Action instruction finaliser ${liste_validateurs_ordre_1} = Create List ${args_signataire_validateur_1.prenom} ${args_signataire_validateur_1.nom} (${args_signataire_validateur_1.qualite}) ${args_signataire_validateur_2.prenom} ${args_signataire_validateur_2.nom} (${args_signataire_validateur_2.qualite}) Sélectionner les validateurs ${liste_validateurs_ordre_1} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Contain validateurs 1. ${args_signataire_validateur_1.prenom} ${args_signataire_validateur_1.nom} (${args_signataire_validateur_1.qualite})\n2. ${args_signataire_validateur_2.prenom} ${args_signataire_validateur_2.nom} (${args_signataire_validateur_2.qualite}) Supprimer les validateurs # L'ordre est changé et on vérifie l'application sur le formulaire ${liste_validateurs_ordre_2} = Create List ${args_signataire_validateur_2.prenom} ${args_signataire_validateur_2.nom} (${args_signataire_validateur_2.qualite}) ${args_signataire_validateur_1.prenom} ${args_signataire_validateur_1.nom} (${args_signataire_validateur_1.qualite}) Sélectionner les validateurs ${liste_validateurs_ordre_2} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Contain validateurs 1. ${args_signataire_validateur_2.prenom} ${args_signataire_validateur_2.nom} (${args_signataire_validateur_2.qualite})\n2. ${args_signataire_validateur_1.prenom} ${args_signataire_validateur_1.nom} (${args_signataire_validateur_1.qualite}) # Envoi en 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. # Suivi du parapheur Click Element css=#fieldset-sousform-instruction-historique legend Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Contain css=#historique_signature_jsontotab td[data-column-id="signataire"] case8@test.test # Changement d'utilisateur Depuis la page d'accueil frodon frodon Depuis l'instruction du dossier d'instruction ${di_case_validateurs} ${instruction_libelle} Click Element css=#fieldset-sousform-instruction-historique legend Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Contain css=#historique_signature_jsontotab td[data-column-id="signataire"] case8@test.test Absence du champ validateur sur un événement de type retour [Documentation] Le champ 'Validateurs ne doit pas apparâtre sur un événement ... dont le paramétrage du champ 'retour' est à 'Oui' Depuis la page d'accueil admin admin # Ajout d'un dossier ${instruction_libelle} Set Variable accepter un dossier sans réserve &{args_petitionnaire} = Create Dictionary ... particulier_nom=TEST147_CIRCUIT_VALIDNOM1 ... particulier_prenom=TEST147_CIRCUIT_VALIDPRENOM1 ... om_collectivite=COLLECTIVITE_CIRCUIT &{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=COLLECTIVITE_CIRCUIT ${di_case_validateurs} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} Ajouter une instruction au DI ${di_case_validateurs} ${args_evenement.libelle} signataire_arrete=${args_signataire_case_ok_1.prenom} ${args_signataire_case_ok_1.nom} Depuis l'instruction du dossier d'instruction ${di_case_validateurs} ${args_evenement.libelle} # Absence de l'action de sélection des validateurs Page Should Not Contain Sélectionner les validateurs Page Should Not Contain Element Validateurs Reset - Circuit de validation et Absence du champ validateur Depuis la page d'accueil admin admin Remove File ..${/}dyn${/}electronicsignature.inc.php &{param_values} = Create Dictionary ... delete=true ... libelle=option_circuit_validation ... om_collectivite=agglo Gerer le paramètre par WS ${param_values}